<?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>231880</bug_id>
          
          <creation_ts>2021-10-17 14:24:19 -0700</creation_ts>
          <short_desc>[GTK][WPE] Support setting status code and getting HTTP method in custom URI scheme handlers</short_desc>
          <delta_ts>2021-11-02 19:46:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>WebKit Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=231564</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=232653</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>liushuyu011</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1805421</commentid>
    <comment_count>0</comment_count>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-17 14:24:19 -0700</bug_when>
    <thetext>Currently, there is no way for the URI scheme handler to get the request HTTP method or set the response status code.

However, those functionalities are necessary, because:

* The same functionality already exists in the macOS version of the WebKit implementation (by manipulating `NSHTTPURLResponse`)
* API consistency: similar functions exist for `WebKitURIRequest` but not for `WebKitURISchemeRequest`
* From the web application standpoint, URI scheme requests are just normal XHRs so applications will handle them as such
* There are already feature requests for this: https://bugs.webkit.org/show_bug.cgi?id=231564

Related: https://bugs.webkit.org/show_bug.cgi?id=203273</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805439</commentid>
    <comment_count>1</comment_count>
      <attachid>441554</attachid>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-17 15:55:18 -0700</bug_when>
    <thetext>Created attachment 441554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805440</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-10-17 15:56:32 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805444</commentid>
    <comment_count>3</comment_count>
      <attachid>441555</attachid>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-17 16:29:48 -0700</bug_when>
    <thetext>Created attachment 441555
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805660</commentid>
    <comment_count>4</comment_count>
      <attachid>441555</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-18 11:22:55 -0700</bug_when>
    <thetext>Comment on attachment 441555
Patch

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

Looks pretty good overall.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:173
&gt; + * Since: 2.35

2.36

(2.35 is a development release leading up to 2.36. It&apos;s confusing.)

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:175
&gt; +void webkit_uri_scheme_request_set_status_code(WebKitURISchemeRequest* request, int statusCode)

Since this is public API, it use gint. (Yes, they&apos;re exactly the same. It&apos;s just style.)

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:190
&gt; + * Since: 2.35

2.36

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:192
&gt; +const char* webkit_uri_scheme_request_get_http_method(WebKitURISchemeRequest* request)

Since this is public API, it should use gchar*.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:196
&gt; +    return request-&gt;priv-&gt;task-&gt;request().httpMethod().utf8().data();

This is a use-after-free: after the function call returns, httpMethod().utf8() is destroyed and the caller is left with a dangling pointer. To avoid this, you&apos;ll need to cache the result in a CString object that you add to the priv struct. You can see three other examples of how to do it.

I remember making the exact same mistake in one of my first patches to WebKit....

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:-184
&gt; -        response.setHTTPStatusText(&quot;OK&quot;_s);

Maybe run this if the status code is 200?

&gt; Source/WebKit/UIProcess/API/gtk/WebKitURISchemeRequest.h:76
&gt; +WEBKIT_API void
&gt; +webkit_uri_scheme_request_set_status_code (WebKitURISchemeRequest* request,
&gt; +                                           int status_code);

The public headers use GNOME style, different from the WebKit style used in the C++ sources:

WEBKIT_API void
webkit_uri_scheme_request_set_status_code (WebKitURISchemeRequest *request,
                                                                                                gint                                                   status_code);

Note the parameter alignment is different, * hangs on the variable name, and int -&gt; gint.

&gt; Source/WebKit/UIProcess/API/gtk/WebKitURISchemeRequest.h:79
&gt; +webkit_uri_scheme_request_get_http_method (WebKitURISchemeRequest* request);

WebKitURISchemeRequest *request

&gt; Source/WebKit/UIProcess/API/wpe/WebKitURISchemeRequest.h:80
&gt; +WEBKIT_API void
&gt; +webkit_uri_scheme_request_set_status_code (WebKitURISchemeRequest* request, 
&gt; +                                           int status_code);
&gt; +
&gt; +WEBKIT_API const gchar *
&gt; +webkit_uri_scheme_request_get_http_method (WebKitURISchemeRequest* request);

Same style nits here.

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:106
&gt; +        URISchemeHandler(const char* reply, int replyLength, const char* mimeType, int statusCode)

Use a default argument:

URISchemeHandler(const char* reply, int replyLength, const char* mimeType, int statusCode = 200)

Then you don&apos;t need two separate overloads.

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:137
&gt; +
&gt; +

Only one blank line here.

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:181
&gt; +    void registerURISchemeHandler(const char* scheme, const char* reply, int replyLength, const char* mimeType, int statusCode)

Again, you only need one implementation if you use a default argument:

void registerURISchemeHandler(const char* scheme, const char* reply, int replyLength, const char* mimeType, int statusCode = 200)

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:325
&gt; +    test-&gt;registerURISchemeHandler(&quot;notfound&quot;, kBarHTML, strlen(kBarHTML), &quot;text/html&quot;, 404);
&gt; +    test-&gt;m_loadEvents.clear();
&gt; +    test-&gt;loadURI(&quot;notfound:blank&quot;);
&gt; +    test-&gt;waitUntilLoadFinished();
&gt; +    g_assert_true(test-&gt;m_loadEvents.contains(LoadTrackingTest::LoadFailed));

What happens if you pass 200 as the status code? Does the test still pass (load fails with LoadTrackingTest::LoadFailed), or does the test fail? I&apos;m nervous because it looks like the load would fail because &quot;notfound:blank&quot; is not a registered URI scheme, not because of the 404 status code. The test is only useful if it fails without your change, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805661</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-18 11:25:30 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #4)
&gt; The public headers use GNOME style, different from the WebKit style used in
&gt; the C++ sources:

Trying again to show the correct alignment:

WEBKIT_API void
webkit_uri_scheme_request_set_status_code (WebKitURISchemeRequest *request,
                                           gint                    status_code);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805868</commentid>
    <comment_count>6</comment_count>
      <attachid>441685</attachid>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-18 20:44:42 -0700</bug_when>
    <thetext>Created attachment 441685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805938</commentid>
    <comment_count>7</comment_count>
      <attachid>441685</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-10-19 03:33:59 -0700</bug_when>
    <thetext>Comment on attachment 441685
Patch

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

&gt; Source/WebKit/ChangeLog:8
&gt; +        Add new public APIs to set status code and get HTTP method in custom URI scheme handlers.

Why do you need to get the HTTP method? custom uri schemes are not actually HTTP, so only GET is supported.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:89
&gt; +    request-&gt;priv-&gt;statusCode = 200;

This is weird, the status code doesn&apos;t belong to a request, but to a response. So, this should only have a value after the response is received (in this case the first time webkitURISchemeRequestReadCallback is called).

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:168
&gt; + * webkit_uri_scheme_request_set_status_code:

Same here, setting a response value in the request looks weird. I think the status code should be set when finalizing the request like other response parameters (stream, content type, content length, etc.). Problem here is that we can&apos;t add more parameters to webkit_uri_scheme_request_finish(). We have several options here:

 a) add webkit_uri_scheme_request_finish_with_status() and add status code and status text parameters.
 b) add a more generic webkit_uri_sheme_request_finish_full taking var args like if they were properties.
 c) add WebKitURISchemeResponse + webkit_uri_scheme_request_finish_with_response(). 

Good thing of c) is that we can add more properties to the response in the future if needed without chanigng the request API.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:184
&gt; + * webkit_uri_scheme_request_get_http_method:

Doesn&apos;t this always return &quot;GET&quot;?

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:224
&gt; +        response.setHTTPStatusCode(priv-&gt;statusCode);
&gt; +        if (priv-&gt;statusCode &gt;= 0)
&gt; +            response.setHTTPStatusText(soup_status_get_phrase((guint)priv-&gt;statusCode));

If we allow to set a status code, we should allow to optionally set a status text too and just use soup_status_get_phrase() as fallback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806497</commentid>
    <comment_count>8</comment_count>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-19 22:05:56 -0700</bug_when>
    <thetext>&gt; Why do you need to get the HTTP method? custom uri schemes are not actually HTTP, so only GET is supported.

Sorry, I may not understand this correctly. I would like to know what would happen when the web application makes an XHR or fetch() request to the custom scheme URI? Will it return an error when the method specified is not &quot;GET&quot;? (Currently, I am getting CORS errors with any XHR requests)

&gt;  c) add WebKitURISchemeResponse + webkit_uri_scheme_request_finish_with_response(). 

Yeah, I think this is better. However, I am not sure how to approach this? Shouldn&apos;t I place a `WebKitURISchemeResponse` type field inside `WebKitURISchemeRequest` as well since it&apos;s a callback function? I would imagine it needs to be here to temporarily store the response struct before `webkitURISchemeRequestReadCallback` is called?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806532</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-10-20 01:03:55 -0700</bug_when>
    <thetext>(In reply to liushuyu011 from comment #8)
&gt; &gt; Why do you need to get the HTTP method? custom uri schemes are not actually HTTP, so only GET is supported.
&gt; 
&gt; Sorry, I may not understand this correctly. I would like to know what would
&gt; happen when the web application makes an XHR or fetch() request to the
&gt; custom scheme URI? Will it return an error when the method specified is not
&gt; &quot;GET&quot;? (Currently, I am getting CORS errors with any XHR requests)

I don&apos;t know, that&apos;s a good point. It would be a great to have a unit test for this.

&gt; &gt;  c) add WebKitURISchemeResponse + webkit_uri_scheme_request_finish_with_response(). 
&gt; 
&gt; Yeah, I think this is better. However, I am not sure how to approach this?
&gt; Shouldn&apos;t I place a `WebKitURISchemeResponse` type field inside
&gt; `WebKitURISchemeRequest` as well since it&apos;s a callback function? I would
&gt; imagine it needs to be here to temporarily store the response struct before
&gt; `webkitURISchemeRequestReadCallback` is called?

We need to add a new object WebKitURISchemeResponse with api to set the response properties (stream, content length, content type, status code and text). The user would have to create an instance before calling webkit_uri_request_finish_with_response and pass it as argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806993</commentid>
    <comment_count>10</comment_count>
      <attachid>441978</attachid>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-20 20:35:35 -0700</bug_when>
    <thetext>Created attachment 441978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806994</commentid>
    <comment_count>11</comment_count>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-20 20:37:34 -0700</bug_when>
    <thetext>(In reply to liushuyu011 from comment #10)
&gt; Created attachment 441978 [details]
&gt; Patch

This is a WIP patch.

I am not sure if my API design is reasonable, so the tests are not updated to save some work at this stage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807023</commentid>
    <comment_count>12</comment_count>
      <attachid>441990</attachid>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-20 23:17:44 -0700</bug_when>
    <thetext>Created attachment 441990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807037</commentid>
    <comment_count>13</comment_count>
      <attachid>441990</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-10-21 01:16:00 -0700</bug_when>
    <thetext>Comment on attachment 441990
Patch

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

Thanks, this goes in the right direction, but we don&apos;t really want to duplicate the code to read the stream.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:262
&gt; +    webkitURISchemeResponseSetTask(response, request-&gt;priv-&gt;task);
&gt; +    webkitURISchemeResponseReadStart(response);

We don&apos;t want to move/duplicate the code to read the response, just use the new WebKitURISchemeResponse to store the response parameters and get them from here to reuse the exiting code. Current webkit_uri_scheme_request_finish should be rewritten to build a response and call this method.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:70
&gt; +WEBKIT_DEFINE_TYPE(WebKitURISchemeResponse, webkit_uri_scheme_response, G_TYPE_OBJECT);

We don&apos;t need the ; here

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:76
&gt; +WebKitURISchemeResponse* webkit_uri_scheme_response_new()

This could receive the stream and length at least, since the stream is mandatory.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:133
&gt; +void webkitURISchemeResponseSetTask(WebKitURISchemeResponse* schemeResponse, RefPtr&lt;WebURLSchemeTask&gt; task)
&gt; +{
&gt; +    g_return_if_fail(WEBKIT_IS_URI_SCHEME_RESPONSE(schemeResponse));
&gt; +    schemeResponse-&gt;priv-&gt;task = task;
&gt; +}

We don&apos;t need the task here.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:144
&gt; +void webkit_uri_scheme_response_set_status_code(WebKitURISchemeResponse* response, gint statusCode)

We could add a single method set_status() like liboup3 does, that receives an optional reason_phrase (or status text) parameter.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:168
&gt; + * webkit_uri_scheme_response_set_status_body:

I think the body should be a constructor parameter and I would add a new setter for the content type

&gt; Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:1295
&gt; +WebKitURISchemeResponse

This doesn&apos;t belong here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807038</commentid>
    <comment_count>14</comment_count>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-21 01:19:50 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #13)

Thank you! I will make these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807052</commentid>
    <comment_count>15</comment_count>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-21 02:07:12 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #13)
&gt; Comment on attachment 441990 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441990&amp;action=review
&gt; 
&gt; Thanks, this goes in the right direction, but we don&apos;t really want to
&gt; duplicate the code to read the stream.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:262
&gt; &gt; +    webkitURISchemeResponseSetTask(response, request-&gt;priv-&gt;task);
&gt; &gt; +    webkitURISchemeResponseReadStart(response);
&gt; 
&gt; We don&apos;t want to move/duplicate the code to read the response, just use the
&gt; new WebKitURISchemeResponse to store the response parameters and get them
&gt; from here to reuse the existing code. Current
&gt; webkit_uri_scheme_request_finish should be rewritten to build a response and
&gt; call this method.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:133
&gt; &gt; +void webkitURISchemeResponseSetTask(WebKitURISchemeResponse* schemeResponse, RefPtr&lt;WebURLSchemeTask&gt; task)
&gt; &gt; +{
&gt; &gt; +    g_return_if_fail(WEBKIT_IS_URI_SCHEME_RESPONSE(schemeResponse));
&gt; &gt; +    schemeResponse-&gt;priv-&gt;task = task;
&gt; &gt; +}
&gt; 
&gt; We don&apos;t need the task here.
&gt; 

Sorry, I have a question here:

I can think of two approaches to read the input stream from the `WebKitURISchemeResponse` in the `WebKitURISchemeRequest` context:

1. Add a non-public function to get the `GInputStream` in the `WebKitURISchemeResponse`, then assign it to the `stream` field in `WebKitURISchemeRequest`;
2. Change `webkit_uri_scheme_request_finish_with_response` to accept a `GInputStream` parameter so `WebKitURISchemeResponse` only contains &quot;metadata&quot;

I am not sure which one is better in your opinion?

Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807069</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-10-21 03:12:39 -0700</bug_when>
    <thetext>(In reply to liushuyu011 from comment #15)
&gt; (In reply to Carlos Garcia Campos from comment #13)
&gt; &gt; Comment on attachment 441990 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=441990&amp;action=review
&gt; &gt; 
&gt; &gt; Thanks, this goes in the right direction, but we don&apos;t really want to
&gt; &gt; duplicate the code to read the stream.
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:262
&gt; &gt; &gt; +    webkitURISchemeResponseSetTask(response, request-&gt;priv-&gt;task);
&gt; &gt; &gt; +    webkitURISchemeResponseReadStart(response);
&gt; &gt; 
&gt; &gt; We don&apos;t want to move/duplicate the code to read the response, just use the
&gt; &gt; new WebKitURISchemeResponse to store the response parameters and get them
&gt; &gt; from here to reuse the existing code. Current
&gt; &gt; webkit_uri_scheme_request_finish should be rewritten to build a response and
&gt; &gt; call this method.
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:133
&gt; &gt; &gt; +void webkitURISchemeResponseSetTask(WebKitURISchemeResponse* schemeResponse, RefPtr&lt;WebURLSchemeTask&gt; task)
&gt; &gt; &gt; +{
&gt; &gt; &gt; +    g_return_if_fail(WEBKIT_IS_URI_SCHEME_RESPONSE(schemeResponse));
&gt; &gt; &gt; +    schemeResponse-&gt;priv-&gt;task = task;
&gt; &gt; &gt; +}
&gt; &gt; 
&gt; &gt; We don&apos;t need the task here.
&gt; &gt; 
&gt; 
&gt; Sorry, I have a question here:
&gt; 
&gt; I can think of two approaches to read the input stream from the
&gt; `WebKitURISchemeResponse` in the `WebKitURISchemeRequest` context:
&gt; 
&gt; 1. Add a non-public function to get the `GInputStream` in the
&gt; `WebKitURISchemeResponse`, then assign it to the `stream` field in
&gt; `WebKitURISchemeRequest`;
&gt; 2. Change `webkit_uri_scheme_request_finish_with_response` to accept a
&gt; `GInputStream` parameter so `WebKitURISchemeResponse` only contains
&gt; &quot;metadata&quot;
&gt; 
&gt; I am not sure which one is better in your opinion?
&gt; 
&gt; Thanks

I&apos;m not sure I understand, just keep the current code to read the stream, but instead of using request-&gt;priv-&gt;stream get the stream from the response. Move the response members to the response object (stream, streamLength and contentType) and add GRefPtr&lt;WebKitURISchemeResponse&gt; as a member of the request instead. In finish_with_response you just need to set the response (request-&gt;priv-&gt;response = response) and start reading the stream. In current finish implementation, create a response object with the given parameters and call finish_with_response</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807409</commentid>
    <comment_count>17</comment_count>
      <attachid>442078</attachid>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-21 15:44:05 -0700</bug_when>
    <thetext>Created attachment 442078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807418</commentid>
    <comment_count>18</comment_count>
      <attachid>442080</attachid>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-21 16:15:08 -0700</bug_when>
    <thetext>Created attachment 442080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807574</commentid>
    <comment_count>19</comment_count>
      <attachid>442080</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-10-22 01:01:45 -0700</bug_when>
    <thetext>Comment on attachment 442080
Patch

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

Looks much better but still needs a bit more work.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:194
&gt; +    WebKitURISchemeResponsePrivate* respPriv = priv-&gt;response-&gt;priv;

Better add getters to WebKitURISchemeResponsePrivate.h and keep the private struct in the cpp file.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:207
&gt; +            response.setHTTPStatusText(soup_status_get_phrase((guint)respPriv-&gt;statusCode));

Don&apos;t use C style casts, use C++ static_cast instead.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:239
&gt; +    request-&gt;priv-&gt;response = webkit_uri_scheme_response_new(inputStream, streamLength, contentType);

You need to use adoptGRef to not leak the response. Since the contentType is optional, I prefer to add a specific setter for it instead of pass it to the constructor.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:242
&gt;      g_input_stream_read_async(inputStream, request-&gt;priv-&gt;readBuffer, gReadBufferSize, RunLoopSourcePriority::AsyncIONetwork, request-&gt;priv-&gt;cancellable.get(),
&gt;          reinterpret_cast&lt;GAsyncReadyCallback&gt;(webkitURISchemeRequestReadCallback), g_object_ref(request));

Instead fo setting the response here and calling g_input_stream_read() use a local variable and call webkit_uri_scheme_request_finish_with_response().

auto response = adoptGRef(webkit_uri_scheme_response_new(inputStream, streamLength));
if (contentType)
    webkit_uri_scheme_response_set_content_type(response.get(), contentType);
webkit_uri_scheme_request_finish_with_response(request, response.get());

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:259
&gt; +    request-&gt;priv-&gt;response = response;

You need to create the cancellable here.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:280
&gt; +    priv-&gt;response-&gt;priv-&gt;stream = nullptr;

priv-&gt;response = nullptr

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:31
&gt; +#include &quot;APIData.h&quot;
&gt; +#include &quot;WebKitPrivate.h&quot;
&gt; +#include &quot;WebURLSchemeTask.h&quot;
&gt; +#include &lt;WebCore/HTTPParsers.h&gt;
&gt; +#include &lt;WebCore/MIMETypeRegistry.h&gt;
&gt; +#include &lt;wtf/glib/GRefPtr.h&gt;
&gt; +#include &lt;wtf/glib/RunLoopSourcePriority.h&gt;
&gt; +#include &lt;wtf/glib/WTFGType.h&gt;
&gt; +#include &lt;wtf/text/CString.h&gt;

Too many headers included here, I&apos;m sure you don&apos;t need all of them.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:50
&gt; + * webkit_uri_request_finish_with_response with it to return the response.

webkit_uri_request_finish_with_response()

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:54
&gt; +WEBKIT_DEFINE_TYPE(WebKitURISchemeResponse, webkit_uri_scheme_response, G_TYPE_OBJECT);

The ; isn&apos;t needed here.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:77
&gt; +    response-&gt;priv-&gt;statusCode = 200;

Why do we want to initialize this to 200? Since there&apos;s a setter for it, I would init this to -1 indicating, no status has been set. To keep the compatibility I would add webkit_uri_scheme_response_set_status(response, 200, &quot;OK&quot;) to webkit_uri_scheme_request_finish().

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:81
&gt; +    response-&gt;priv-&gt;bytesRead = 0;

I would leave this in the request which is the one actually reading.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:97
&gt; +void webkit_uri_scheme_response_set_status(WebKitURISchemeResponse* response, gint statusCode, const gchar* statusMessage)

I think statusCode should be unsigned

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:102
&gt; +    response-&gt;priv-&gt;statusMessage = statusMessage;

Maybe we can set the fallback status message here, so that the caller only need to check whether it&apos;s null

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponsePrivate.h:31
&gt; +    uint64_t bytesRead;

This is already in the request.

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:109
&gt; +        int statusCode;

Where is this used? I don&apos;t see where you are using the new api in the test.

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:127
&gt; +        const char* method = webkit_uri_scheme_request_get_http_method(request);
&gt; +        g_assert_nonnull(method);
&gt; +        g_assert_cmpstr(method, ==, &quot;GET&quot;);

I still would like to see a test where method doesn&apos;t return GET. Maybe we can split the patch and leave the method for a different bug, I&apos;m still not sure it&apos;s actually useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808138</commentid>
    <comment_count>20</comment_count>
      <attachid>442282</attachid>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-23 15:57:25 -0700</bug_when>
    <thetext>Created attachment 442282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808139</commentid>
    <comment_count>21</comment_count>
      <attachid>442283</attachid>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-23 16:22:19 -0700</bug_when>
    <thetext>Created attachment 442283
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808292</commentid>
    <comment_count>22</comment_count>
      <attachid>442335</attachid>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-24 20:11:10 -0700</bug_when>
    <thetext>Created attachment 442335
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809149</commentid>
    <comment_count>23</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-26 19:02:53 -0700</bug_when>
    <thetext>Carlos, are you happy with this version?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809195</commentid>
    <comment_count>24</comment_count>
      <attachid>442335</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-10-27 00:47:00 -0700</bug_when>
    <thetext>Comment on attachment 442335
Patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        * SourcesGTK.txt: Added WebKitURISchemeRequest.cpp
&gt; +        * SourcesWPE.txt: Added WebKitURISchemeRequest.cpp

You mean WebKitURISchemeResponse.cpp

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:199
&gt; +    WebKitURISchemeResponsePrivate* respPriv = priv-&gt;response-&gt;priv;

You shouldn&apos;t need this.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:201
&gt; +        CString contentType = WebKitURISchemeResponseGetContentType(respPriv);

Private getter should receive a WebKitURISchemeResponse as parameter.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:208
&gt; +        if (statusMessage.isNull())
&gt; +            webkit_uri_scheme_response_set_status(priv-&gt;response.get(), 200, &quot;OK&quot;);
&gt; +        response.setHTTPStatusCode(WebKitURISchemeResponseGetStatusCode(respPriv));
&gt; +        response.setHTTPStatusText(statusMessage.data());

I think you should set the status code and if message is not null set status text text too, but we don&apos;t need to call webkit_uri_scheme_response_set_status() in any case.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequestPrivate.h:23
&gt; +#include &quot;WebKitURISchemeResponsePrivate.h&quot;

Include this from WebKitURISchemeRequest.cpp not from here.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:27
&gt; +#include &quot;APIData.h&quot;
&gt; +#include &quot;WebKitPrivate.h&quot;
&gt; +#include &quot;WebURLSchemeTask.h&quot;
&gt; +#include &lt;WebCore/HTTPParsers.h&gt;
&gt; +#include &lt;WebCore/MIMETypeRegistry.h&gt;

I don&apos;t think these are needed.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:29
&gt; +#include &lt;wtf/glib/RunLoopSourcePriority.h&gt;

Nor this one

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:80
&gt; +CString WebKitURISchemeResponseGetStatusMessage(const WebKitURISchemeResponsePrivate* response)

const CString

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:85
&gt; +CString WebKitURISchemeResponseGetContentType(const WebKitURISchemeResponsePrivate* response)

Ditto

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:98
&gt; +void WebKitURISchemeResponseDisposeStream(WebKitURISchemeResponsePrivate* response)
&gt; +{
&gt; +    response-&gt;stream = nullptr;
&gt; +}

This is unused.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:110
&gt; +/**
&gt; + * webkit_uri_scheme_response_set_status_body:
&gt; + * @response: a #WebKitURISchemeResponse
&gt; + * @stream: a #GInputStream to read the contents of the request
&gt; + * @stream_length: the length of the stream or -1 if not known
&gt; + * @content_type: (allow-none): the content type of the stream or %NULL if not known
&gt; + *
&gt; + * Sets the status message for the @response
&gt; + *
&gt; + * Since: 2.36
&gt; + */

This documentation isn&apos;t correct, this is webkit_uri_scheme_response_new().

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:120
&gt; +    response-&gt;priv-&gt;statusCode = -1;
&gt; +    response-&gt;priv-&gt;stream = inputStream;
&gt; +    // We use -1 in the API for consistency with soup when the content length is not known, but 0 internally.
&gt; +    response-&gt;priv-&gt;streamLength = streamLength == -1 ? 0 : streamLength;

I&apos;ve just realized that this is a problem for bindings because this is a public constructor. The statusCode initialization could be done in the struct declaration and stream and length should be construct only properties.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:127
&gt; + * @content_type: (allow-none): the content type of the stream or %NULL if not known

I&apos;m not sure we should allow none now that we have a specific setter for this, if unknown don&apos;t call this function.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponsePrivate.h:26
&gt; +#include &quot;WebKitURISchemeResponse.h&quot;
&gt; +#include &quot;WebKitWebContext.h&quot;
&gt; +#include &quot;WebPageProxy.h&quot;
&gt; +#include &quot;WebURLSchemeTask.h&quot;
&gt; +#include &lt;WebCore/ResourceRequest.h&gt;

You don&apos;t need all this headers here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809484</commentid>
    <comment_count>25</comment_count>
      <attachid>442650</attachid>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-27 16:27:34 -0700</bug_when>
    <thetext>Created attachment 442650
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809498</commentid>
    <comment_count>26</comment_count>
      <attachid>442655</attachid>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-27 17:12:26 -0700</bug_when>
    <thetext>Created attachment 442655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809995</commentid>
    <comment_count>27</comment_count>
      <attachid>442655</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-10-29 00:51:00 -0700</bug_when>
    <thetext>Comment on attachment 442655
Patch

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

Looks good to me, but there are still a few minor issues to fix before landing.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeRequest.cpp:205
&gt; +        CString statusMessage = WebKitURISchemeResponseGetStatusMessage(resp);

const CString&amp; or const auto&amp;

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:25
&gt; +#include &quot;APIData.h&quot;
&gt; +#include &quot;WebKitPrivate.h&quot;
&gt; +#include &quot;WebURLSchemeTask.h&quot;

Are these needed?

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:29
&gt; +#include &lt;wtf/text/CString.h&gt;

This is already included in WebKitURISchemeResponsePrivate.h

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:65
&gt; +    int statusCode = -1;

int statusCode { -1 };

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:86
&gt; +static void webkitURISchemeResponseGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec)
&gt; +{
&gt; +    WebKitURISchemeResponse* response = WEBKIT_URI_SCHEME_RESPONSE(object);
&gt; +
&gt; +    switch (propId) {
&gt; +    case PROP_STREAM:
&gt; +        g_value_set_object(value, response-&gt;priv-&gt;stream.get());
&gt; +        break;
&gt; +    case PROP_STREAM_LENGTH:
&gt; +        g_value_set_int64(value, response-&gt;priv-&gt;streamLength);
&gt; +        break;
&gt; +    default:
&gt; +        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
&gt; +    }
&gt; +}

We don&apos;t have public getters, so maybe it&apos;s better to make the properties as writable + construct_only and don&apos;t implement get_property.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:91
&gt; +    gint64 streamLength;

Move this to the case PROP_STREAM_LENGTH

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:98
&gt; +        streamLength = g_value_get_int64(value);

gint64 streamLength = g_value_get_int64(value);

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:117
&gt; +     */

Since: 2.36

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:130
&gt; +     */

Since: 2.36

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:153
&gt; +const CString WebKitURISchemeResponseGetStatusMessage(const WebKitURISchemeResponse* response)

const CString&amp;

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:158
&gt; +const CString WebKitURISchemeResponseGetContentType(const WebKitURISchemeResponse* response)

Ditto.

&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:185
&gt; +    WebKitURISchemeResponse* response = WEBKIT_URI_SCHEME_RESPONSE(g_object_new(WEBKIT_TYPE_URI_SCHEME_RESPONSE, &quot;stream&quot;, inputStream, &quot;stream-length&quot;, streamLength, nullptr));
&gt; +    return response;

just return WEBKIT_URI_SCHEME_RESPONSE(g_object_new(WEBKIT_TYPE_URI_SCHEME_RESPONSE, &quot;stream&quot;, inputStream, &quot;stream-length&quot;, streamLength, nullptr));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810320</commentid>
    <comment_count>28</comment_count>
      <attachid>442655</attachid>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-29 16:50:07 -0700</bug_when>
    <thetext>Comment on attachment 442655
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:91
&gt;&gt; +    gint64 streamLength;
&gt; 
&gt; Move this to the case PROP_STREAM_LENGTH

If I do this when compiling using Clang 12.0.1, the compiler will complain about (GCC does not report this one though):
(Line numbers are from the newer patch)

```
WebKitURISchemeResponse.cpp:83:13: warning: Cannot jump from switch statement to this case label clang(switch_into_protected_scope)
WebKitURISchemeResponse.cpp:78:16: note: Jump bypasses variable initialization
```

I am not sure if this is a false-positive from the compiler?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810327</commentid>
    <comment_count>29</comment_count>
      <attachid>442655</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-29 17:09:06 -0700</bug_when>
    <thetext>Comment on attachment 442655
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:91
&gt;&gt;&gt; +    gint64 streamLength;
&gt;&gt; 
&gt;&gt; Move this to the case PROP_STREAM_LENGTH
&gt; 
&gt; If I do this when compiling using Clang 12.0.1, the compiler will complain about (GCC does not report this one though):
&gt; (Line numbers are from the newer patch)
&gt; 
&gt; ```
&gt; WebKitURISchemeResponse.cpp:83:13: warning: Cannot jump from switch statement to this case label clang(switch_into_protected_scope)
&gt; WebKitURISchemeResponse.cpp:78:16: note: Jump bypasses variable initialization
&gt; ```
&gt; 
&gt; I am not sure if this is a false-positive from the compiler?

Well that warning message seems clearly wrong, but perhaps you can silence it by adding braces?

case PROP_STREAM_LENGTH: {
    // ...
    break;
}

This will limit the scope of the variable to only the &apos;case PROP_STREAM_LENGTH&apos;, which was the goal behind moving it anyway.

Good job iterating on all the feedback btw. The strict code style requirements keep things more maintainable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810331</commentid>
    <comment_count>30</comment_count>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-29 17:14:06 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #29)
&gt; Comment on attachment 442655 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=442655&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:91
&gt; &gt;&gt;&gt; +    gint64 streamLength;
&gt; &gt;&gt; 
&gt; &gt;&gt; Move this to the case PROP_STREAM_LENGTH
&gt; &gt; 
&gt; &gt; If I do this when compiling using Clang 12.0.1, the compiler will complain about (GCC does not report this one though):
&gt; &gt; (Line numbers are from the newer patch)
&gt; &gt; 
&gt; &gt; ```
&gt; &gt; WebKitURISchemeResponse.cpp:83:13: warning: Cannot jump from switch statement to this case label clang(switch_into_protected_scope)
&gt; &gt; WebKitURISchemeResponse.cpp:78:16: note: Jump bypasses variable initialization
&gt; &gt; ```
&gt; &gt; 
&gt; &gt; I am not sure if this is a false-positive from the compiler?
&gt; 
&gt; Well that warning message seems clearly wrong, but perhaps you can silence
&gt; it by adding braces?
&gt; 
&gt; case PROP_STREAM_LENGTH: {
&gt;     // ...
&gt;     break;
&gt; }
&gt; 
&gt; This will limit the scope of the variable to only the &apos;case
&gt; PROP_STREAM_LENGTH&apos;, which was the goal behind moving it anyway.
&gt; 

Thank you! The solves it. I am not sure why Clang is having issues with switch scoping in this case though.

&gt; Good job iterating on all the feedback btw. The strict code style
&gt; requirements keep things more maintainable.

Thank you! I think iterating the patch is a good way of learning how bigger projects write and maintain their code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810365</commentid>
    <comment_count>31</comment_count>
      <attachid>442893</attachid>
    <who name="">liushuyu011</who>
    <bug_when>2021-10-29 18:56:32 -0700</bug_when>
    <thetext>Created attachment 442893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811006</commentid>
    <comment_count>32</comment_count>
    <who name="">liushuyu011</who>
    <bug_when>2021-11-01 19:08:37 -0700</bug_when>
    <thetext>(In reply to liushuyu011 from comment #31)
&gt; Created attachment 442893 [details]
&gt; Patch

Is there anything I need to do before this patch could be merged?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811064</commentid>
    <comment_count>33</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-02 01:47:36 -0700</bug_when>
    <thetext>Committed r285155 (243791@main): &lt;https://commits.webkit.org/243791@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442893.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811065</commentid>
    <comment_count>34</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-02 01:48:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/84920723&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441554</attachid>
            <date>2021-10-17 15:55:18 -0700</date>
            <delta_ts>2021-10-17 16:29:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231880-20211017165518.patch</filename>
            <type>text/plain</type>
            <size>10986</size>
            <attacher>liushuyu011</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJlOWM2Zjg3Mjk2MGRhNTFl
ZDU0MjVhOGM0YTUyYTBkYjU1MzUzZjkuLjI4OGUxZTgxZTNiMmY1ZDkxYWJhY2QwZTVkM2U4MjU1
OTM2MThiMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMTAtMTcgIFppeGluZyBM
aXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdXBwb3J0
IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4gY3VzdG9tIFVS
SSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwOgorICAgICAgICAod2Via2l0VVJJU2No
ZW1lUmVxdWVzdENyZWF0ZSk6IFNldCBkZWZhdWx0IHN0YXR1cyBjb2RlIHRvIDIwMCBmb3IgYmFj
a3dhcmQgY29tcGF0aWJpbGl0eQorICAgICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9z
ZXRfc3RhdHVzX2NvZGUpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICh3ZWJraXRf
dXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZCk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rp
b24KKyAgICAgICAgKHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RSZWFkQ2FsbGJhY2spOiBBZGRlZCBh
IHN0ZXAgdG8gc2V0IHRoZSBzdGF0dXMgY29kZQorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaDogQWRkZWQgZnVuY3Rpb24gcHJvdG90eXBlIGZvciAK
KyAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9zZXRfc3RhdHVzX2NvZGUgYW5kIHdl
YmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQ6IEFkZGVkIG5ldyBz
eW1ib2xzCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dC5oOiBBZGRlZCBmdW5jdGlvbiBwcm90b3R5cGUgZm9yIAorICAgICAgICB3ZWJraXRfdXJpX3Nj
aGVtZV9yZXF1ZXN0X3NldF9zdGF0dXNfY29kZSBhbmQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9nZXRfaHR0cF9tZXRob2QKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0x
LjAtc2VjdGlvbnMudHh0OiBBZGRlZCBuZXcgc3ltYm9scworCiAyMDIxLTEwLTE2ICBEYXZpZCBL
aWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhuXSBNYW55IE9i
amVjdGl2ZS1DIGNsYXNzZXMgbGVhayB0aGVpciBpbnN0YW5jZSB2YXJpYWJsZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5jcHAKaW5kZXggNmEwZDU5YzEwMjg5ZTFiODBjYTJhMTU1ZTQ2ZTdkZDk4OWY1ZTlm
MS4uYjljNWE3NWM0OTQzNmU5MTU0OTNmYmYwMWEzZjhhNjRkNjI1ZTdkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5jcHAKQEAgLTY2LDYgKzY2LDcgQEAgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXF1
ZXN0UHJpdmF0ZSB7CiAKICAgICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4gc3RyZWFtOwogICAgIHVp
bnQ2NF90IHN0cmVhbUxlbmd0aDsKKyAgICBpbnQgc3RhdHVzQ29kZTsKICAgICBHUmVmUHRyPEdD
YW5jZWxsYWJsZT4gY2FuY2VsbGFibGU7CiAgICAgY2hhciByZWFkQnVmZmVyW2dSZWFkQnVmZmVy
U2l6ZV07CiAgICAgdWludDY0X3QgYnl0ZXNSZWFkOwpAQCAtODQsNiArODUsNyBAQCBXZWJLaXRV
UklTY2hlbWVSZXF1ZXN0KiB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0Q3JlYXRlKFdlYktpdFdlYkNv
bnRleHQqIHdlYkNvbnRleAogICAgIHJlcXVlc3QtPnByaXYtPndlYkNvbnRleHQgPSB3ZWJDb250
ZXh0OwogICAgIHJlcXVlc3QtPnByaXYtPnRhc2sgPSAmdGFzazsKICAgICByZXF1ZXN0LT5wcml2
LT5pbml0aWF0aW5nUGFnZSA9ICZwYWdlOworICAgIHJlcXVlc3QtPnByaXYtPnN0YXR1c0NvZGUg
PSAyMDA7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKQEAgLTE2MSw2ICsxNjMsMzkgQEAgV2Vi
S2l0V2ViVmlldyogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcoV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdCogcmUKICAgICByZXR1cm4gd2Via2l0V2ViQ29udGV4dEdldFdlYlZp
ZXdGb3JQYWdlKHJlcXVlc3QtPnByaXYtPndlYkNvbnRleHQsIHJlcXVlc3QtPnByaXYtPmluaXRp
YXRpbmdQYWdlLmdldCgpKTsKIH0KIAorLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X3NldF9zdGF0dXNfY29kZToKKyAqIEByZXF1ZXN0OiBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
CisgKiBAc3RhdHVzX2NvZGU6IHRoZSBIVFRQIHN0YXR1cyBjb2RlIHRvIGJlIHJldHVybmVkCisg
KgorICogU2V0cyB0aGUgc3RhdHVzIGNvZGUgZm9yIHRoZSBAcmVxdWVzdAorICoKKyAqIFNpbmNl
OiAyLjM1CisgKi8KK3ZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9zZXRfc3RhdHVzX2Nv
ZGUoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgaW50IHN0YXR1c0NvZGUpCit7Cisg
ICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVFVRVNUKHJlcXVlc3Qp
KTsKKworICAgIHJlcXVlc3QtPnByaXYtPnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlOworfQorCisv
KioKKyAqIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kOgorICogQHJl
cXVlc3Q6IGEgI1dlYktpdFVSSVNjaGVtZVJlcXVlc3QKKyAqCisgKiBHZXQgdGhlIEhUVFAgbWV0
aG9kIG9mIHRoZSBAcmVxdWVzdAorICoKKyAqIFJldHVybnM6IHRoZSBIVFRQIG1ldGhvZCBvZiB0
aGUgQHJlcXVlc3QKKyAqIAorICogU2luY2U6IDIuMzUKKyAqLworY29uc3QgY2hhciogd2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QoV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dCogcmVxdWVzdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfVVJJX1ND
SEVNRV9SRVFVRVNUKHJlcXVlc3QpLCBudWxscHRyKTsKKworICAgIHJldHVybiByZXF1ZXN0LT5w
cml2LT50YXNrLT5yZXF1ZXN0KCkuaHR0cE1ldGhvZCgpLnV0ZjgoKS5kYXRhKCk7Cit9CisKIHN0
YXRpYyB2b2lkIHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RSZWFkQ2FsbGJhY2soR0lucHV0U3RyZWFt
KiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0KiByZXN1bHQsIFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QqIHNjaGVtZVJlcXVlc3QpCiB7CiAgICAgR1JlZlB0cjxXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
PiByZXF1ZXN0ID0gYWRvcHRHUmVmKHNjaGVtZVJlcXVlc3QpOwpAQCAtMTgwLDggKzIxNSw3IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RSZWFkQ2FsbGJhY2soR0lucHV0U3Ry
ZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jCiAgICAgaWYgKCFwcml2LT5ieXRlc1JlYWQpIHsKICAg
ICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJs
KCksIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUocHJpdi0+Y29udGVudFR5cGUuZGF0YSgp
KSwgcHJpdi0+c3RyZWFtTGVuZ3RoLCBlbXB0eVN0cmluZygpKTsKICAgICAgICAgcmVzcG9uc2Uu
c2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUocHJpdi0+Y29u
dGVudFR5cGUuZGF0YSgpKSk7Ci0gICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKDIw
MCk7Ci0gICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KCJPSyJfcyk7CisgICAgICAg
IHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKHByaXYtPnN0YXR1c0NvZGUpOwogICAgICAgICBp
ZiAocmVzcG9uc2UubWltZVR5cGUoKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXNwb25zZS5z
ZXRNaW1lVHlwZShNSU1FVHlwZVJlZ2lzdHJ5OjptaW1lVHlwZUZvclBhdGgocmVzcG9uc2UudXJs
KCkucGF0aCgpLnRvU3RyaW5nKCkpKTsKICAgICAgICAgcHJpdi0+dGFzay0+ZGlkUmVjZWl2ZVJl
c3BvbnNlKHJlc3BvbnNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKaW5kZXggZDJiMDZhMTRkYzVhMjA3ZTg3
NTY0YTBlYmMzNWJjYzEzOWIxZWM0ZS4uNDAwZWE3YWFkMGYwOTNmM2QzYWNhYmM0OTIxMmU1NWIx
MTE2NThjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRVUklTY2hlbWVSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKQEAgLTcxLDYgKzcxLDEzIEBAIHdlYmtpdF91cmlf
c2NoZW1lX3JlcXVlc3RfZ2V0X3BhdGggICAgIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1
ZXN0KTsKIFdFQktJVF9BUEkgV2ViS2l0V2ViVmlldyAqCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X2dldF93ZWJfdmlldyAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CiAKK1dF
QktJVF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9zZXRfc3RhdHVzX2NvZGUg
KFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXR1c19jb2RlKTsKKworV0VCS0lUX0FQSSBjb25z
dCBnY2hhciAqCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZCAoV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCk7CisKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2ggICAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3Qg
KnJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0lucHV0
U3RyZWFtICAgICAgICAgICAqc3RyZWFtLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQK
aW5kZXggMWJhYmI5MzlmY2VjMTZmOTQ5MzRhZjM4OGU0MTZlOTAzYmUxZWU4Ny4uYjQxZDU4MGQ4
ODY4NmM1ZDNmZmQwN2UxMTUwZGQ2OGU0ODBiMmRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2Vj
dGlvbnMudHh0CkBAIC0xMjc3LDYgKzEyNzcsOCBAQCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2dldF9zY2hlbWUKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3VyaQogd2Via2l0X3Vy
aV9zY2hlbWVfcmVxdWVzdF9nZXRfcGF0aAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRf
d2ViX3ZpZXcKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rfc2V0X3N0YXR1c19jb2RlCit3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZAogd2Via2l0X3VyaV9zY2hlbWVf
cmVxdWVzdF9maW5pc2gKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vycm9yCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0LmgKaW5kZXggOGViZWRhNGU3N2YxYmJkMThlMWNiZGFkYzNmN2YyNDZlMDk5
MTdiMS4uMmU3ZTMxOGU3NTVjYWM1Y2E1ODQzNzllOTY3NTBhNTBhNjM2ZWQ0NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVS
ZXF1ZXN0LmgKQEAgLTcyLDYgKzcyLDEzIEBAIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0
X3BhdGggICAgIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKIFdFQktJVF9BUEkg
V2ViS2l0V2ViVmlldyAqCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmlldyAo
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9zZXRfc3RhdHVzX2NvZGUgKFdlYktpdFVSSVNjaGVtZVJl
cXVlc3QqIHJlcXVlc3QsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCBzdGF0dXNfY29kZSk7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QgKFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QqIHJlcXVlc3QpOworCiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZmluaXNoICAgICAgIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJbnB1dFN0cmVhbSAgICAgICAgICAg
KnN0cmVhbSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9j
cy93cGUtMS4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
ZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dAppbmRleCBiOGIwOGQyZjkxZjI1NjRjZWY3ZGEwYjhl
Y2VkYzhhMTEyZDViZTkwLi4xN2EwMGIxNjMzZmU1NmJkZWI2M2Q3NGQ2ZTVjNmM0N2VlMTkzNGM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEu
MC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2Nz
L3dwZS0xLjAtc2VjdGlvbnMudHh0CkBAIC0xMjE0LDYgKzEyMTQsOCBAQCB3ZWJraXRfdXJpX3Nj
aGVtZV9yZXF1ZXN0X2dldF9zY2hlbWUKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3Vy
aQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfcGF0aAogd2Via2l0X3VyaV9zY2hlbWVf
cmVxdWVzdF9nZXRfd2ViX3ZpZXcKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rfc2V0X3N0YXR1
c19jb2RlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZAogd2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2gKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmlu
aXNoX2Vycm9yCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCA2NWY2ZGQ0OGZjNmMxMTMxZDcwNGUyNTY1ZTg0MzY0NWU1MzAzNmUxLi5jM2MxODlm
NTM3YmJiNTZiNjNlODM3ODRiZTQyZTljZjI0MmY2YmQxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTcg
IFppeGluZyBMaXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BF
XSBTdXBwb3J0IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4g
Y3VzdG9tIFVSSSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RX
ZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKHRlc3RXZWJDb250ZXh0VVJJU2NoZW1lKTog
QWRkZWQgdGVzdHMgdG8gdGVzdCBuZXcgcHVibGljIEFQSXMgZm9yIFdlYktpdEd0aworCiAyMDIx
LTEwLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFBhZ2Ugem9vbSBpcyBtZXNzZWQgdXAgYWZ0ZXIgbmF2aWdhdGluZyBiYWNrIGZyb20gYSBQREYK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2Vi
S2l0V2ViQ29udGV4dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGI5MzZjOGUwNzc1YTE3YWNhYmUyMTI4YWE3
MTkzMmU1ZjRkOTBmNDMuLmRiYmExZmY2ODQwYzg1NWQ4NmY4ZWU5YmYwOGViM2QwZjk3NWUzYWIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2Vi
S2l0V2ViQ29udGV4dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtOTksMTIgKzk5LDIyIEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIDogcmVwbHkocmVwbHkpCiAgICAgICAgICAgICAsIHJlcGx5TGVuZ3RoKHJl
cGx5TGVuZ3RoKQogICAgICAgICAgICAgLCBtaW1lVHlwZShtaW1lVHlwZSkKKyAgICAgICAgICAg
ICwgc3RhdHVzQ29kZSgyMDApCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFVSSVNj
aGVtZUhhbmRsZXIoY29uc3QgY2hhciogcmVwbHksIGludCByZXBseUxlbmd0aCwgY29uc3QgY2hh
ciogbWltZVR5cGUsIGludCBzdGF0dXNDb2RlKQorICAgICAgICAgICAgOiByZXBseShyZXBseSkK
KyAgICAgICAgICAgICwgcmVwbHlMZW5ndGgocmVwbHlMZW5ndGgpCisgICAgICAgICAgICAsIG1p
bWVUeXBlKG1pbWVUeXBlKQorICAgICAgICAgICAgLCBzdGF0dXNDb2RlKHN0YXR1c0NvZGUpCiAg
ICAgICAgIHsKICAgICAgICAgfQogCiAgICAgICAgIENTdHJpbmcgcmVwbHk7CiAgICAgICAgIGlu
dCByZXBseUxlbmd0aDsKICAgICAgICAgQ1N0cmluZyBtaW1lVHlwZTsKKyAgICAgICAgaW50IHN0
YXR1c0NvZGU7CiAgICAgfTsKIAogICAgIHN0YXRpYyB2b2lkIHVyaVNjaGVtZVJlcXVlc3RDYWxs
YmFjayhXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCBncG9pbnRlciB1c2VyRGF0YSkK
QEAgLTEyMCw3ICsxMzAsMTMgQEAgcHVibGljOgogICAgICAgICBnX2Fzc2VydF9ub25udWxsKHNj
aGVtZSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+bV9oYW5kbGVyc01hcC5jb250YWlu
cyhTdHJpbmc6OmZyb21VVEY4KHNjaGVtZSkpKTsKIAorICAgICAgICBjb25zdCBjaGFyKiBtZXRo
b2QgPSB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZChyZXF1ZXN0KTsK
KyAgICAgICAgZ19hc3NlcnRfbm9ubnVsbChtZXRob2QpOworICAgICAgICBnX2Fzc2VydF9jbXBz
dHIobWV0aG9kLCA9PSwgIkdFVCIpOworCisKICAgICAgICAgY29uc3QgVVJJU2NoZW1lSGFuZGxl
ciYgaGFuZGxlciA9IHRlc3QtPm1faGFuZGxlcnNNYXAuZ2V0KFN0cmluZzo6ZnJvbVVURjgoc2No
ZW1lKSk7CisgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rfc2V0X3N0YXR1c19jb2Rl
KHJlcXVlc3QsIGhhbmRsZXIuc3RhdHVzQ29kZSk7CiAKICAgICAgICAgR1JlZlB0cjxHSW5wdXRT
dHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKGdfbWVtb3J5X2lucHV0X3N0cmVhbV9uZXco
KSk7CiAgICAgICAgIHRlc3QtPmFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMo
R19PQkpFQ1QoaW5wdXRTdHJlYW0uZ2V0KCkpKTsKQEAgLTI5Nyw2ICszMTMsMTIgQEAgc3RhdGlj
IHZvaWQgdGVzdFdlYkNvbnRleHRVUklTY2hlbWUoVVJJU2NoZW1lVGVzdCogdGVzdCwgZ2NvbnN0
cG9pbnRlcikKICAgICBnX2Fzc2VydF90cnVlKHRlc3QtPm1fbG9hZEZhaWxlZCk7CiAgICAgZ19h
c3NlcnRfZXJyb3IodGVzdC0+bV9lcnJvci5nZXQoKSwgR19JT19FUlJPUiwgR19JT19FUlJPUl9D
TE9TRUQpOwogCisgICAgdGVzdC0+cmVnaXN0ZXJVUklTY2hlbWVIYW5kbGVyKCJub3Rmb3VuZCIs
IGtCYXJIVE1MLCBzdHJsZW4oa0JhckhUTUwpLCAidGV4dC9odG1sIiwgNDA0KTsKKyAgICB0ZXN0
LT5tX2xvYWRFdmVudHMuY2xlYXIoKTsKKyAgICB0ZXN0LT5sb2FkVVJJKCJub3Rmb3VuZDpibGFu
ayIpOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworICAgIGdfYXNzZXJ0X3Ry
dWUodGVzdC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rlc3Q6OkxvYWRGYWls
ZWQpKTsKKwogICAgIC8vIFRvcnR1cmUgdGVzdCB0aW1lOiBtYWtlIHN1cmUgaXQgc3RpbGwgd29y
a3MgaWYgd2UgaXNzdWUgYSBidW5jaCBvZiBkaWZmZXJlbnQgcmVxdWVzdHMgYWxsIGF0CiAgICAg
Ly8gb25jZS4gRWFjaCByZXF1ZXN0IHNob3VsZCBmaW5pc2ggYW5kIHJldHVybiBleGFjdGx5IHRo
ZSBzYW1lIGRhdGEuCiAgICAgaW50IG51bUl0ZXJhdGlvbnMgPSAyNTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441555</attachid>
            <date>2021-10-17 16:29:48 -0700</date>
            <delta_ts>2021-10-18 20:44:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231880-20211017172948.patch</filename>
            <type>text/plain</type>
            <size>11908</size>
            <attacher>liushuyu011</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ5NWMzYjVmNDdiM2VmYmQy
NmJhMWIyNjlhYjc4Y2Q5NTJkZmViYWIuLmQ2NjRmMmIxN2U2Y2NmNWIwYmI1OTZiNzZlOTExMjg4
MmU1ZWU4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjEtMTAtMTcgIFppeGluZyBM
aXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdXBwb3J0
IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4gY3VzdG9tIFVS
SSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBuZXcgcHVibGljIEFQSXMgdG8gc2V0IHN0YXR1cyBjb2RlIGFuZCBnZXQg
SFRUUCBtZXRob2QgaW4gY3VzdG9tIFVSSSBzY2hlbWUgaGFuZGxlcnMuCisKKyAgICAgICAgVGVz
dHMgYXJlIGFkZGVkIGluIHRoZSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdFdlYktpdFdlYkNvbnRleHQuY3BwIGZpbGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHA6CisgICAgICAgICh3ZWJraXRVUklTY2hl
bWVSZXF1ZXN0Q3JlYXRlKTogU2V0IGRlZmF1bHQgc3RhdHVzIGNvZGUgdG8gMjAwIGZvciBiYWNr
d2FyZCBjb21wYXRpYmlsaXR5CisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X3Nl
dF9zdGF0dXNfY29kZSk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rpb24KKyAgICAgICAgKHdlYmtpdF91
cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kKTogQWRkZWQgbmV3IEFQSSBmdW5jdGlv
bgorICAgICAgICAod2Via2l0VVJJU2NoZW1lUmVxdWVzdFJlYWRDYWxsYmFjayk6IEFkZGVkIGEg
c3RlcCB0byBzZXQgdGhlIHN0YXR1cyBjb2RlCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oOiBBZGRlZCBmdW5jdGlvbiBwcm90b3R5cGUgZm9yIAor
ICAgICAgICB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X3NldF9zdGF0dXNfY29kZSBhbmQgd2Vi
a2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dDogQWRkZWQgbmV3IHN5
bWJvbHMKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0
Lmg6IEFkZGVkIGZ1bmN0aW9uIHByb3RvdHlwZSBmb3IgCisgICAgICAgIHdlYmtpdF91cmlfc2No
ZW1lX3JlcXVlc3Rfc2V0X3N0YXR1c19jb2RlIGFuZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2dldF9odHRwX21ldGhvZAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEu
MC1zZWN0aW9ucy50eHQ6IEFkZGVkIG5ldyBzeW1ib2xzCisKIDIwMjEtMTAtMTcgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGb2xsb3ctdXA6IFdlYktpdDo6
TG9jYWxDb25uZWN0aW9uOjpjcmVhdGVDcmVkZW50aWFsUHJpdmF0ZUtleSBsZWFrcyBhbiBOU011
dGFibGVEaWN0aW9uYXJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCmluZGV4IDZhMGQ1OWMxMDI4OWUx
YjgwY2EyYTE1NWU0NmU3ZGQ5ODlmNWU5ZjEuLmI5YzVhNzVjNDk0MzZlOTE1NDkzZmJmMDFhM2Y4
YTY0ZDYyNWU3ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCkBAIC02Niw2ICs2Niw3IEBAIHN0
cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUgewogCiAgICAgR1JlZlB0cjxHSW5w
dXRTdHJlYW0+IHN0cmVhbTsKICAgICB1aW50NjRfdCBzdHJlYW1MZW5ndGg7CisgICAgaW50IHN0
YXR1c0NvZGU7CiAgICAgR1JlZlB0cjxHQ2FuY2VsbGFibGU+IGNhbmNlbGxhYmxlOwogICAgIGNo
YXIgcmVhZEJ1ZmZlcltnUmVhZEJ1ZmZlclNpemVdOwogICAgIHVpbnQ2NF90IGJ5dGVzUmVhZDsK
QEAgLTg0LDYgKzg1LDcgQEAgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogd2Via2l0VVJJU2NoZW1l
UmVxdWVzdENyZWF0ZShXZWJLaXRXZWJDb250ZXh0KiB3ZWJDb250ZXgKICAgICByZXF1ZXN0LT5w
cml2LT53ZWJDb250ZXh0ID0gd2ViQ29udGV4dDsKICAgICByZXF1ZXN0LT5wcml2LT50YXNrID0g
JnRhc2s7CiAgICAgcmVxdWVzdC0+cHJpdi0+aW5pdGlhdGluZ1BhZ2UgPSAmcGFnZTsKKyAgICBy
ZXF1ZXN0LT5wcml2LT5zdGF0dXNDb2RlID0gMjAwOwogICAgIHJldHVybiByZXF1ZXN0OwogfQog
CkBAIC0xNjEsNiArMTYzLDM5IEBAIFdlYktpdFdlYlZpZXcqIHdlYmtpdF91cmlfc2NoZW1lX3Jl
cXVlc3RfZ2V0X3dlYl92aWV3KFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlCiAgICAgcmV0dXJu
IHdlYmtpdFdlYkNvbnRleHRHZXRXZWJWaWV3Rm9yUGFnZShyZXF1ZXN0LT5wcml2LT53ZWJDb250
ZXh0LCByZXF1ZXN0LT5wcml2LT5pbml0aWF0aW5nUGFnZS5nZXQoKSk7CiB9CiAKKy8qKgorICog
d2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9zZXRfc3RhdHVzX2NvZGU6CisgKiBAcmVxdWVzdDog
YSAjV2ViS2l0VVJJU2NoZW1lUmVxdWVzdAorICogQHN0YXR1c19jb2RlOiB0aGUgSFRUUCBzdGF0
dXMgY29kZSB0byBiZSByZXR1cm5lZAorICoKKyAqIFNldHMgdGhlIHN0YXR1cyBjb2RlIGZvciB0
aGUgQHJlcXVlc3QKKyAqCisgKiBTaW5jZTogMi4zNQorICovCit2b2lkIHdlYmtpdF91cmlfc2No
ZW1lX3JlcXVlc3Rfc2V0X3N0YXR1c19jb2RlKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVl
c3QsIGludCBzdGF0dXNDb2RlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1VS
SV9TQ0hFTUVfUkVRVUVTVChyZXF1ZXN0KSk7CisKKyAgICByZXF1ZXN0LT5wcml2LT5zdGF0dXND
b2RlID0gc3RhdHVzQ29kZTsKK30KKworLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2dldF9odHRwX21ldGhvZDoKKyAqIEByZXF1ZXN0OiBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
CisgKgorICogR2V0IHRoZSBIVFRQIG1ldGhvZCBvZiB0aGUgQHJlcXVlc3QKKyAqCisgKiBSZXR1
cm5zOiB0aGUgSFRUUCBtZXRob2Qgb2YgdGhlIEByZXF1ZXN0CisgKiAKKyAqIFNpbmNlOiAyLjM1
CisgKi8KK2NvbnN0IGNoYXIqIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0
aG9kKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVRVUVTVChyZXF1ZXN0KSwgbnVsbHB0cik7
CisKKyAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+dGFzay0+cmVxdWVzdCgpLmh0dHBNZXRob2Qo
KS51dGY4KCkuZGF0YSgpOworfQorCiBzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0
UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luY1Jlc3VsdCogcmVz
dWx0LCBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiBzY2hlbWVSZXF1ZXN0KQogewogICAgIEdSZWZQ
dHI8V2ViS2l0VVJJU2NoZW1lUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0R1JlZihzY2hlbWVSZXF1
ZXN0KTsKQEAgLTE4MCw4ICsyMTUsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1
ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luYwogICAgIGlm
ICghcHJpdi0+Ynl0ZXNSZWFkKSB7CiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Uo
cHJpdi0+dGFzay0+cmVxdWVzdCgpLnVybCgpLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBl
KHByaXYtPmNvbnRlbnRUeXBlLmRhdGEoKSksIHByaXYtPnN0cmVhbUxlbmd0aCwgZW1wdHlTdHJp
bmcoKSk7CiAgICAgICAgIHJlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJz
ZXRGcm9tTWVkaWFUeXBlKHByaXYtPmNvbnRlbnRUeXBlLmRhdGEoKSkpOwotICAgICAgICByZXNw
b25zZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwotICAgICAgICByZXNwb25zZS5zZXRIVFRQU3Rh
dHVzVGV4dCgiT0siX3MpOworICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZShwcml2
LT5zdGF0dXNDb2RlKTsKICAgICAgICAgaWYgKHJlc3BvbnNlLm1pbWVUeXBlKCkuaXNFbXB0eSgp
KQogICAgICAgICAgICAgcmVzcG9uc2Uuc2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWlt
ZVR5cGVGb3JQYXRoKHJlc3BvbnNlLnVybCgpLnBhdGgoKS50b1N0cmluZygpKSk7CiAgICAgICAg
IHByaXYtPnRhc2stPmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5o
CmluZGV4IGQyYjA2YTE0ZGM1YTIwN2U4NzU2NGEwZWJjMzViY2MxMzliMWVjNGUuLjQwMGVhN2Fh
ZDBmMDkzZjNkM2FjYWJjNDkyMTJlNTViMTExNjU4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCkBAIC03
MSw2ICs3MSwxMyBAQCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9wYXRoICAgICAoV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CiBXRUJLSVRfQVBJIFdlYktpdFdlYlZpZXcg
Kgogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcgKFdlYktpdFVSSVNjaGVt
ZVJlcXVlc3QgKnJlcXVlc3QpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91cmlfc2NoZW1l
X3JlcXVlc3Rfc2V0X3N0YXR1c19jb2RlIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGF0dXNf
Y29kZSk7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdF9nZXRfaHR0cF9tZXRob2QgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QpOwor
CiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoICAgICAg
IChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdJbnB1dFN0cmVhbSAgICAgICAgICAgKnN0cmVhbSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQu
MC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CmluZGV4IDFiYWJiOTM5ZmNlYzE2Zjk0OTM0YWYzODhl
NDE2ZTkwM2JlMWVlODcuLmI0MWQ1ODBkODg2ODZjNWQzZmZkMDdlMTE1MGRkNjhlNDgwYjJkYzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQy
Z3RrLTQuMC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dApAQCAtMTI3Nyw2ICsxMjc3LDggQEAg
d2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfc2NoZW1lCiB3ZWJraXRfdXJpX3NjaGVtZV9y
ZXF1ZXN0X2dldF91cmkKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3BhdGgKIHdlYmtp
dF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3Cit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X3NldF9zdGF0dXNfY29kZQord2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9t
ZXRob2QKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoCiB3ZWJraXRfdXJpX3NjaGVt
ZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCmluZGV4IDhlYmVkYTRlNzdm
MWJiZDE4ZTFjYmRhZGMzZjdmMjQ2ZTA5OTE3YjEuLjJlN2UzMThlNzU1Y2FjNWNhNTg0Mzc5ZTk2
NzUwYTUwYTYzNmVkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCkBAIC03Miw2ICs3MiwxMyBAQCB3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9wYXRoICAgICAoV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dCAqcmVxdWVzdCk7CiBXRUJLSVRfQVBJIFdlYktpdFdlYlZpZXcgKgogd2Via2l0X3VyaV9zY2hl
bWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3Qp
OwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rfc2V0X3N0YXR1
c19jb2RlIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhdHVzX2NvZGUpOworCitXRUJLSVRf
QVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0
aG9kIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KTsKKwogV0VCS0lUX0FQSSB2b2lk
CiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaCAgICAgICAoV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdCAqcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHSW5wdXRTdHJlYW0gICAgICAgICAgICpzdHJlYW0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKaW5kZXgg
YjhiMDhkMmY5MWYyNTY0Y2VmN2RhMGI4ZWNlZGM4YTExMmQ1YmU5MC4uMTdhMDBiMTYzM2ZlNTZi
ZGViNjNkNzRkNmU1YzZjNDdlZTE5MzRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dApAQCAtMTIxNCw2
ICsxMjE0LDggQEAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfc2NoZW1lCiB3ZWJraXRf
dXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0
X3BhdGgKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3Cit3ZWJraXRfdXJp
X3NjaGVtZV9yZXF1ZXN0X3NldF9zdGF0dXNfY29kZQord2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9nZXRfaHR0cF9tZXRob2QKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoCiB3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcgogCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWI5YTk1ZDYyNjVmMDAzNmJlN2VjZjBh
NjFmODYyZjBkOTcxMDY2Yy4uOWZiMjljYjBhY2ExMTRmNmQ3ZmFmY2Y2N2NjYjdhNzA5NWI2NDli
NSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDIxLTEwLTE3ICBaaXhpbmcgTGl1ICA8bGl1c2h1eXUwMTFAZ21haWwu
Y29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gU3VwcG9ydCBzZXR0aW5nIHN0YXR1cyBjb2RlIGFu
ZCBnZXR0aW5nIEhUVFAgbWV0aG9kIGluIGN1c3RvbSBVUkkgc2NoZW1lIGhhbmRsZXJzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4ODAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgICh0
ZXN0V2ViQ29udGV4dFVSSVNjaGVtZSk6IEFkZGVkIHRlc3RzIHRvIHRlc3QgbmV3IHB1YmxpYyBB
UElzIGZvciBXZWJLaXRHdGsKKwogMjAyMS0xMC0xNyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCB0ZXN0cyBmb3IgV1RGOjpPU09iamVjdFB0ci9hZG9w
dE9TT2JqZWN0IGluIENvY29hIHdpdGggYW5kIHdpdGhvdXQgQVJDCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250
ZXh0LmNwcAppbmRleCBiOTM2YzhlMDc3NWExN2FjYWJlMjEyOGFhNzE5MzJlNWY0ZDkwZjQzLi43
MWY2MDdlMDJlNzIxMDc2ODFhY2U0NzNiNjc3MDcxMjY5NTIxZDJmIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2Vi
Q29udGV4dC5jcHAKQEAgLTk5LDEyICs5OSwyMiBAQCBwdWJsaWM6CiAgICAgICAgICAgICA6IHJl
cGx5KHJlcGx5KQogICAgICAgICAgICAgLCByZXBseUxlbmd0aChyZXBseUxlbmd0aCkKICAgICAg
ICAgICAgICwgbWltZVR5cGUobWltZVR5cGUpCisgICAgICAgICAgICAsIHN0YXR1c0NvZGUoMjAw
KQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBVUklTY2hlbWVIYW5kbGVyKGNvbnN0
IGNoYXIqIHJlcGx5LCBpbnQgcmVwbHlMZW5ndGgsIGNvbnN0IGNoYXIqIG1pbWVUeXBlLCBpbnQg
c3RhdHVzQ29kZSkKKyAgICAgICAgICAgIDogcmVwbHkocmVwbHkpCisgICAgICAgICAgICAsIHJl
cGx5TGVuZ3RoKHJlcGx5TGVuZ3RoKQorICAgICAgICAgICAgLCBtaW1lVHlwZShtaW1lVHlwZSkK
KyAgICAgICAgICAgICwgc3RhdHVzQ29kZShzdGF0dXNDb2RlKQogICAgICAgICB7CiAgICAgICAg
IH0KIAogICAgICAgICBDU3RyaW5nIHJlcGx5OwogICAgICAgICBpbnQgcmVwbHlMZW5ndGg7CiAg
ICAgICAgIENTdHJpbmcgbWltZVR5cGU7CisgICAgICAgIGludCBzdGF0dXNDb2RlOwogICAgIH07
CiAKICAgICBzdGF0aWMgdm9pZCB1cmlTY2hlbWVSZXF1ZXN0Q2FsbGJhY2soV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdCogcmVxdWVzdCwgZ3BvaW50ZXIgdXNlckRhdGEpCkBAIC0xMjAsNyArMTMwLDEz
IEBAIHB1YmxpYzoKICAgICAgICAgZ19hc3NlcnRfbm9ubnVsbChzY2hlbWUpOwogICAgICAgICBn
X2Fzc2VydF90cnVlKHRlc3QtPm1faGFuZGxlcnNNYXAuY29udGFpbnMoU3RyaW5nOjpmcm9tVVRG
OChzY2hlbWUpKSk7CiAKKyAgICAgICAgY29uc3QgY2hhciogbWV0aG9kID0gd2Via2l0X3VyaV9z
Y2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QocmVxdWVzdCk7CisgICAgICAgIGdfYXNzZXJ0
X25vbm51bGwobWV0aG9kKTsKKyAgICAgICAgZ19hc3NlcnRfY21wc3RyKG1ldGhvZCwgPT0sICJH
RVQiKTsKKworCiAgICAgICAgIGNvbnN0IFVSSVNjaGVtZUhhbmRsZXImIGhhbmRsZXIgPSB0ZXN0
LT5tX2hhbmRsZXJzTWFwLmdldChTdHJpbmc6OmZyb21VVEY4KHNjaGVtZSkpOworICAgICAgICB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X3NldF9zdGF0dXNfY29kZShyZXF1ZXN0LCBoYW5kbGVy
LnN0YXR1c0NvZGUpOwogCiAgICAgICAgIEdSZWZQdHI8R0lucHV0U3RyZWFtPiBpbnB1dFN0cmVh
bSA9IGFkb3B0R1JlZihnX21lbW9yeV9pbnB1dF9zdHJlYW1fbmV3KCkpOwogICAgICAgICB0ZXN0
LT5hc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGlucHV0U3Ry
ZWFtLmdldCgpKSk7CkBAIC0xNTksNyArMTc1LDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVn
aXN0ZXJVUklTY2hlbWVIYW5kbGVyKGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVw
bHksIGludCByZXBseUxlbmd0aCwgY29uc3QgY2hhciogbWltZVR5cGUpCiAgICAgewotICAgICAg
ICBtX2hhbmRsZXJzTWFwLnNldChTdHJpbmc6OmZyb21VVEY4KHNjaGVtZSksIFVSSVNjaGVtZUhh
bmRsZXIocmVwbHksIHJlcGx5TGVuZ3RoLCBtaW1lVHlwZSkpOworICAgICAgICByZWdpc3RlclVS
SVNjaGVtZUhhbmRsZXIoc2NoZW1lLCByZXBseSwgcmVwbHlMZW5ndGgsIG1pbWVUeXBlLCAyMDAp
OworICAgIH0KKworICAgIHZvaWQgcmVnaXN0ZXJVUklTY2hlbWVIYW5kbGVyKGNvbnN0IGNoYXIq
IHNjaGVtZSwgY29uc3QgY2hhciogcmVwbHksIGludCByZXBseUxlbmd0aCwgY29uc3QgY2hhciog
bWltZVR5cGUsIGludCBzdGF0dXNDb2RlKQorICAgIHsKKyAgICAgICAgbV9oYW5kbGVyc01hcC5z
ZXQoU3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpLCBVUklTY2hlbWVIYW5kbGVyKHJlcGx5LCByZXBs
eUxlbmd0aCwgbWltZVR5cGUsIHN0YXR1c0NvZGUpKTsKICAgICAgICAgd2Via2l0X3dlYl9jb250
ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUobV93ZWJDb250ZXh0LmdldCgpLCBzY2hlbWUsIHVyaVNj
aGVtZVJlcXVlc3RDYWxsYmFjaywgdGhpcywgMCk7CiAgICAgfQogCkBAIC0yOTcsNiArMzE4LDEy
IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJDb250ZXh0VVJJU2NoZW1lKFVSSVNjaGVtZVRlc3QqIHRl
c3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2xvYWRGYWlsZWQp
OwogICAgIGdfYXNzZXJ0X2Vycm9yKHRlc3QtPm1fZXJyb3IuZ2V0KCksIEdfSU9fRVJST1IsIEdf
SU9fRVJST1JfQ0xPU0VEKTsKIAorICAgIHRlc3QtPnJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcigi
bm90Zm91bmQiLCBrQmFySFRNTCwgc3RybGVuKGtCYXJIVE1MKSwgInRleHQvaHRtbCIsIDQwNCk7
CisgICAgdGVzdC0+bV9sb2FkRXZlbnRzLmNsZWFyKCk7CisgICAgdGVzdC0+bG9hZFVSSSgibm90
Zm91bmQ6YmxhbmsiKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBn
X2Fzc2VydF90cnVlKHRlc3QtPm1fbG9hZEV2ZW50cy5jb250YWlucyhMb2FkVHJhY2tpbmdUZXN0
OjpMb2FkRmFpbGVkKSk7CisKICAgICAvLyBUb3J0dXJlIHRlc3QgdGltZTogbWFrZSBzdXJlIGl0
IHN0aWxsIHdvcmtzIGlmIHdlIGlzc3VlIGEgYnVuY2ggb2YgZGlmZmVyZW50IHJlcXVlc3RzIGFs
bCBhdAogICAgIC8vIG9uY2UuIEVhY2ggcmVxdWVzdCBzaG91bGQgZmluaXNoIGFuZCByZXR1cm4g
ZXhhY3RseSB0aGUgc2FtZSBkYXRhLgogICAgIGludCBudW1JdGVyYXRpb25zID0gMjU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441685</attachid>
            <date>2021-10-18 20:44:42 -0700</date>
            <delta_ts>2021-10-20 20:35:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231880-20211018214442.patch</filename>
            <type>text/plain</type>
            <size>12724</size>
            <attacher>liushuyu011</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQzMjkzMmY3ZDIxMWRkMzA5
M2QwYzQ4ZjBkZTg1MjIwYmVmYWMyN2QuLjI3NjQzY2Y5M2VjYTI3OWE2ZTM2ZjhhNWE1ZTNjNGEw
ZTRkZDY4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjEtMTAtMTggIFppeGluZyBM
aXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdXBwb3J0
IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4gY3VzdG9tIFVS
SSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBuZXcgcHVibGljIEFQSXMgdG8gc2V0IHN0YXR1cyBjb2RlIGFuZCBnZXQg
SFRUUCBtZXRob2QgaW4gY3VzdG9tIFVSSSBzY2hlbWUgaGFuZGxlcnMuCisKKyAgICAgICAgVGVz
dHMgYXJlIGFkZGVkIGluIHRoZSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdFdlYktpdFdlYkNvbnRleHQuY3BwIGZpbGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHA6CisgICAgICAgICh3ZWJraXRVUklTY2hl
bWVSZXF1ZXN0Q3JlYXRlKTogU2V0IGRlZmF1bHQgc3RhdHVzIGNvZGUgdG8gMjAwIGZvciBiYWNr
d2FyZCBjb21wYXRpYmlsaXR5CisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X3Nl
dF9zdGF0dXNfY29kZSk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rpb24KKyAgICAgICAgKHdlYmtpdF91
cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kKTogQWRkZWQgbmV3IEFQSSBmdW5jdGlv
bgorICAgICAgICAod2Via2l0VVJJU2NoZW1lUmVxdWVzdFJlYWRDYWxsYmFjayk6IEFkZGVkIGEg
c3RlcCB0byBzZXQgdGhlIHN0YXR1cyBjb2RlCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oOiBBZGRlZCBmdW5jdGlvbiBwcm90b3R5cGUgZm9yIAor
ICAgICAgICB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X3NldF9zdGF0dXNfY29kZSBhbmQgd2Vi
a2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dDogQWRkZWQgbmV3IHN5
bWJvbHMKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0
Lmg6IEFkZGVkIGZ1bmN0aW9uIHByb3RvdHlwZSBmb3IgCisgICAgICAgIHdlYmtpdF91cmlfc2No
ZW1lX3JlcXVlc3Rfc2V0X3N0YXR1c19jb2RlIGFuZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2dldF9odHRwX21ldGhvZAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEu
MC1zZWN0aW9ucy50eHQ6IEFkZGVkIG5ldyBzeW1ib2xzCisKIDIwMjEtMTAtMTggIEpvaG4gUGFz
Y29lICA8al9wYXNjb2VAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBdXRobl0gT2J0YWluIGNv
bnNlbnQgdG8gY3JlYXRlIG5ldyBjcmVkZW50aWFsIHdoZW4gcGxhdGZvcm0gYXV0aGVudGljYXRv
ciBpbiBleGNsdWRlZENyZWRlbnRpYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCmluZGV4IDZhMGQ1
OWMxMDI4OWUxYjgwY2EyYTE1NWU0NmU3ZGQ5ODlmNWU5ZjEuLjE4MDhjN2ZiYmZkOTY2NDQyYWRj
YTc1ZDA3ZTVjZmE0NDZhMjhjYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCkBAIC02NiwxMCAr
NjYsMTIgQEAgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZSB7CiAKICAgICBH
UmVmUHRyPEdJbnB1dFN0cmVhbT4gc3RyZWFtOwogICAgIHVpbnQ2NF90IHN0cmVhbUxlbmd0aDsK
KyAgICBpbnQgc3RhdHVzQ29kZTsKICAgICBHUmVmUHRyPEdDYW5jZWxsYWJsZT4gY2FuY2VsbGFi
bGU7CiAgICAgY2hhciByZWFkQnVmZmVyW2dSZWFkQnVmZmVyU2l6ZV07CiAgICAgdWludDY0X3Qg
Ynl0ZXNSZWFkOwogICAgIENTdHJpbmcgY29udGVudFR5cGU7CisgICAgY29uc3QgY2hhciogaHR0
cE1ldGhvZDsKIH07CiAKIFdFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
LCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0LCBHX1RZUEVfT0JKRUNUKQpAQCAtODQsNiArODYs
NyBAQCBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0Q3JlYXRl
KFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleAogICAgIHJlcXVlc3QtPnByaXYtPndlYkNvbnRl
eHQgPSB3ZWJDb250ZXh0OwogICAgIHJlcXVlc3QtPnByaXYtPnRhc2sgPSAmdGFzazsKICAgICBy
ZXF1ZXN0LT5wcml2LT5pbml0aWF0aW5nUGFnZSA9ICZwYWdlOworICAgIHJlcXVlc3QtPnByaXYt
PnN0YXR1c0NvZGUgPSAyMDA7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKQEAgLTE2MSw2ICsx
NjQsNDIgQEAgV2ViS2l0V2ViVmlldyogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2Vi
X3ZpZXcoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmUKICAgICByZXR1cm4gd2Via2l0V2ViQ29u
dGV4dEdldFdlYlZpZXdGb3JQYWdlKHJlcXVlc3QtPnByaXYtPndlYkNvbnRleHQsIHJlcXVlc3Qt
PnByaXYtPmluaXRpYXRpbmdQYWdlLmdldCgpKTsKIH0KIAorLyoqCisgKiB3ZWJraXRfdXJpX3Nj
aGVtZV9yZXF1ZXN0X3NldF9zdGF0dXNfY29kZToKKyAqIEByZXF1ZXN0OiBhICNXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0CisgKiBAc3RhdHVzX2NvZGU6IHRoZSBIVFRQIHN0YXR1cyBjb2RlIHRvIGJl
IHJldHVybmVkCisgKgorICogU2V0cyB0aGUgc3RhdHVzIGNvZGUgZm9yIHRoZSBAcmVxdWVzdAor
ICoKKyAqIFNpbmNlOiAyLjM2CisgKi8KK3ZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9z
ZXRfc3RhdHVzX2NvZGUoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgZ2ludCBzdGF0
dXNDb2RlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVR
VUVTVChyZXF1ZXN0KSk7CisKKyAgICByZXF1ZXN0LT5wcml2LT5zdGF0dXNDb2RlID0gc3RhdHVz
Q29kZTsKK30KKworLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21l
dGhvZDoKKyAqIEByZXF1ZXN0OiBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0CisgKgorICogR2V0
IHRoZSBIVFRQIG1ldGhvZCBvZiB0aGUgQHJlcXVlc3QKKyAqCisgKiBSZXR1cm5zOiB0aGUgSFRU
UCBtZXRob2Qgb2YgdGhlIEByZXF1ZXN0CisgKiAKKyAqIFNpbmNlOiAyLjM2CisgKi8KK2NvbnN0
IGdjaGFyKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZChXZWJLaXRV
UklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9JU19VUklfU0NIRU1FX1JFUVVFU1QocmVxdWVzdCksIG51bGxwdHIpOworCisgICAgaWYg
KCFyZXF1ZXN0LT5wcml2LT5odHRwTWV0aG9kKQorICAgICAgICByZXF1ZXN0LT5wcml2LT5odHRw
TWV0aG9kID0gZ19pbnRlcm5fc3RyaW5nKHJlcXVlc3QtPnByaXYtPnRhc2stPnJlcXVlc3QoKS5o
dHRwTWV0aG9kKCkudXRmOCgpLmRhdGEoKSk7CisKKyAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+
aHR0cE1ldGhvZDsKK30KKwogc3RhdGljIHZvaWQgd2Via2l0VVJJU2NoZW1lUmVxdWVzdFJlYWRD
YWxsYmFjayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwg
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogc2NoZW1lUmVxdWVzdCkKIHsKICAgICBHUmVmUHRyPFdl
YktpdFVSSVNjaGVtZVJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdEdSZWYoc2NoZW1lUmVxdWVzdCk7
CkBAIC0xODAsOCArMjE5LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0VVJJU2NoZW1lUmVxdWVzdFJl
YWRDYWxsYmFjayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5bmMKICAgICBpZiAoIXBy
aXYtPmJ5dGVzUmVhZCkgewogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKHByaXYt
PnRhc2stPnJlcXVlc3QoKS51cmwoKSwgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShwcml2
LT5jb250ZW50VHlwZS5kYXRhKCkpLCBwcml2LT5zdHJlYW1MZW5ndGgsIGVtcHR5U3RyaW5nKCkp
OwogICAgICAgICByZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJv
bU1lZGlhVHlwZShwcml2LT5jb250ZW50VHlwZS5kYXRhKCkpKTsKLSAgICAgICAgcmVzcG9uc2Uu
c2V0SFRUUFN0YXR1c0NvZGUoMjAwKTsKLSAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1Rl
eHQoIk9LIl9zKTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUocHJpdi0+c3Rh
dHVzQ29kZSk7CisgICAgICAgIGlmIChwcml2LT5zdGF0dXNDb2RlID49IDApCisgICAgICAgICAg
ICByZXNwb25zZS5zZXRIVFRQU3RhdHVzVGV4dChzb3VwX3N0YXR1c19nZXRfcGhyYXNlKChndWlu
dClwcml2LT5zdGF0dXNDb2RlKSk7CiAgICAgICAgIGlmIChyZXNwb25zZS5taW1lVHlwZSgpLmlz
RW1wdHkoKSkKICAgICAgICAgICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKE1JTUVUeXBlUmVnaXN0
cnk6Om1pbWVUeXBlRm9yUGF0aChyZXNwb25zZS51cmwoKS5wYXRoKCkudG9TdHJpbmcoKSkpOwog
ICAgICAgICBwcml2LT50YXNrLT5kaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJl
cXVlc3QuaAppbmRleCBkMmIwNmExNGRjNWEyMDdlODc1NjRhMGViYzM1YmNjMTM5YjFlYzRlLi5i
NmM3NWZjYzllOWYzYjI1OTYyZDRmNmRmM2IzM2U2MjNlOGYzODIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
aApAQCAtNzEsNiArNzEsMTMgQEAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfcGF0aCAg
ICAgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOwogV0VCS0lUX0FQSSBXZWJLaXRX
ZWJWaWV3ICoKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3IChXZWJLaXRV
UklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJp
X3NjaGVtZV9yZXF1ZXN0X3NldF9zdGF0dXNfY29kZSAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAq
cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50
IHN0YXR1c19jb2RlKTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfdXJpX3Nj
aGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZCAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVx
dWVzdCk7CisKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5p
c2ggICAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0lucHV0U3RyZWFtICAgICAgICAgICAqc3RyZWFt
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtp
dDJndGstNC4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
ZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKaW5kZXggMWJhYmI5MzlmY2VjMTZmOTQ5
MzRhZjM4OGU0MTZlOTAzYmUxZWU4Ny4uYjQxZDU4MGQ4ODY4NmM1ZDNmZmQwN2UxMTUwZGQ2OGU0
ODBiMmRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2Nz
L3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CkBAIC0xMjc3LDYgKzEy
NzcsOCBAQCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9zY2hlbWUKIHdlYmtpdF91cmlf
c2NoZW1lX3JlcXVlc3RfZ2V0X3VyaQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfcGF0
aAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcKK3dlYmtpdF91cmlfc2No
ZW1lX3JlcXVlc3Rfc2V0X3N0YXR1c19jb2RlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dl
dF9odHRwX21ldGhvZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2gKIHdlYmtpdF91
cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vycm9yCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKaW5kZXggOGVi
ZWRhNGU3N2YxYmJkMThlMWNiZGFkYzNmN2YyNDZlMDk5MTdiMS4uMGVjMDY3MjI5Nzc1MzFhYjJh
NjY3Y2EyOWRjYWQxOTlmYTVjYzIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKQEAgLTcyLDYgKzcyLDEz
IEBAIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3BhdGggICAgIChXZWJLaXRVUklTY2hl
bWVSZXF1ZXN0ICpyZXF1ZXN0KTsKIFdFQktJVF9BUEkgV2ViS2l0V2ViVmlldyAqCiB3ZWJraXRf
dXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmlldyAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAq
cmVxdWVzdCk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9z
ZXRfc3RhdHVzX2NvZGUgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QsIAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGF0dXNfY29kZSk7CisK
K1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRf
aHR0cF9tZXRob2QgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOworCiBXRUJLSVRf
QVBJIHZvaWQKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoICAgICAgIChXZWJLaXRV
UklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdJbnB1dFN0cmVhbSAgICAgICAgICAgKnN0cmVhbSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4
dAppbmRleCBiOGIwOGQyZjkxZjI1NjRjZWY3ZGEwYjhlY2VkYzhhMTEyZDViZTkwLi4xN2EwMGIx
NjMzZmU1NmJkZWI2M2Q3NGQ2ZTVjNmM0N2VlMTkzNGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CkBA
IC0xMjE0LDYgKzEyMTQsOCBAQCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9zY2hlbWUK
IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3VyaQogd2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdF9nZXRfcGF0aAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcKK3dl
YmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rfc2V0X3N0YXR1c19jb2RlCit3ZWJraXRfdXJpX3NjaGVt
ZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5p
c2gKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vycm9yCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMDAyM2EyNDg1MDg5ZGNh
Mzc5MTY3ODFjODYxMjZiOTcyMjQ2YTVlLi5kMjAyNzk0NTk0NzkzYWIyYzQ1YmZkNTEzZjQzMmFk
YTdlYzhiOGNhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTggIFppeGluZyBMaXUgIDxsaXVzaHV5dTAx
MUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdXBwb3J0IHNldHRpbmcgc3RhdHVz
IGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4gY3VzdG9tIFVSSSBzY2hlbWUgaGFuZGxl
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTg4
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKHRlc3RXZWJDb250ZXh0VVJJU2NoZW1lKTogQWRkZWQgdGVzdHMgdG8gdGVzdCBuZXcg
cHVibGljIEFQSXMgZm9yIFdlYktpdEd0aworCiAyMDIxLTEwLTE4ICBKb25hdGhhbiBCZWRhcmQg
IDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4
NDM5OS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9U
ZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGI5MzZjOGUwNzc1YTE3YWNhYmUy
MTI4YWE3MTkzMmU1ZjRkOTBmNDMuLjJiOGZlNDUwOTUyNzQyYWQ0NGFiNjIzNTA0ODUyNTM1NGZi
Zjg3OTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9U
ZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtOTUsMTYgKzk1LDE4IEBAIHB1
YmxpYzoKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgVVJJU2NoZW1lSGFuZGxlcihj
b25zdCBjaGFyKiByZXBseSwgaW50IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1lVHlwZSkK
KyAgICAgICAgVVJJU2NoZW1lSGFuZGxlcihjb25zdCBjaGFyKiByZXBseSwgaW50IHJlcGx5TGVu
Z3RoLCBjb25zdCBjaGFyKiBtaW1lVHlwZSwgaW50IHN0YXR1c0NvZGUgPSAyMDApCiAgICAgICAg
ICAgICA6IHJlcGx5KHJlcGx5KQogICAgICAgICAgICAgLCByZXBseUxlbmd0aChyZXBseUxlbmd0
aCkKICAgICAgICAgICAgICwgbWltZVR5cGUobWltZVR5cGUpCisgICAgICAgICAgICAsIHN0YXR1
c0NvZGUoc3RhdHVzQ29kZSkKICAgICAgICAgewogICAgICAgICB9CiAKICAgICAgICAgQ1N0cmlu
ZyByZXBseTsKICAgICAgICAgaW50IHJlcGx5TGVuZ3RoOwogICAgICAgICBDU3RyaW5nIG1pbWVU
eXBlOworICAgICAgICBpbnQgc3RhdHVzQ29kZTsKICAgICB9OwogCiAgICAgc3RhdGljIHZvaWQg
dXJpU2NoZW1lUmVxdWVzdENhbGxiYWNrKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3Qs
IGdwb2ludGVyIHVzZXJEYXRhKQpAQCAtMTIwLDcgKzEyMiwxMyBAQCBwdWJsaWM6CiAgICAgICAg
IGdfYXNzZXJ0X25vbm51bGwoc2NoZW1lKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5t
X2hhbmRsZXJzTWFwLmNvbnRhaW5zKFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKSkpOwogCisgICAg
ICAgIGNvbnN0IGNoYXIqIG1ldGhvZCA9IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0
dHBfbWV0aG9kKHJlcXVlc3QpOworICAgICAgICBnX2Fzc2VydF9ub25udWxsKG1ldGhvZCk7Cisg
ICAgICAgIGdfYXNzZXJ0X2NtcHN0cihtZXRob2QsID09LCAiR0VUIik7CisKKwogICAgICAgICBj
b25zdCBVUklTY2hlbWVIYW5kbGVyJiBoYW5kbGVyID0gdGVzdC0+bV9oYW5kbGVyc01hcC5nZXQo
U3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpKTsKKyAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdF9zZXRfc3RhdHVzX2NvZGUocmVxdWVzdCwgaGFuZGxlci5zdGF0dXNDb2RlKTsKIAogICAg
ICAgICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4gaW5wdXRTdHJlYW0gPSBhZG9wdEdSZWYoZ19tZW1v
cnlfaW5wdXRfc3RyZWFtX25ldygpKTsKICAgICAgICAgdGVzdC0+YXNzZXJ0T2JqZWN0SXNEZWxl
dGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChpbnB1dFN0cmVhbS5nZXQoKSkpOwpAQCAtMTU3
LDkgKzE2NSw5IEBAIHB1YmxpYzoKICAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9m
aW5pc2gocmVxdWVzdCwgaW5wdXRTdHJlYW0uZ2V0KCksIGhhbmRsZXIucmVwbHlMZW5ndGgsIGhh
bmRsZXIubWltZVR5cGUuZGF0YSgpKTsKICAgICB9CiAKLSAgICB2b2lkIHJlZ2lzdGVyVVJJU2No
ZW1lSGFuZGxlcihjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlcGx5LCBpbnQgcmVw
bHlMZW5ndGgsIGNvbnN0IGNoYXIqIG1pbWVUeXBlKQorICAgIHZvaWQgcmVnaXN0ZXJVUklTY2hl
bWVIYW5kbGVyKGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVwbHksIGludCByZXBs
eUxlbmd0aCwgY29uc3QgY2hhciogbWltZVR5cGUsIGludCBzdGF0dXNDb2RlID0gMjAwKQogICAg
IHsKLSAgICAgICAgbV9oYW5kbGVyc01hcC5zZXQoU3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpLCBV
UklTY2hlbWVIYW5kbGVyKHJlcGx5LCByZXBseUxlbmd0aCwgbWltZVR5cGUpKTsKKyAgICAgICAg
bV9oYW5kbGVyc01hcC5zZXQoU3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpLCBVUklTY2hlbWVIYW5k
bGVyKHJlcGx5LCByZXBseUxlbmd0aCwgbWltZVR5cGUsIHN0YXR1c0NvZGUpKTsKICAgICAgICAg
d2Via2l0X3dlYl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUobV93ZWJDb250ZXh0LmdldCgp
LCBzY2hlbWUsIHVyaVNjaGVtZVJlcXVlc3RDYWxsYmFjaywgdGhpcywgMCk7CiAgICAgfQogCkBA
IC0yOTcsNiArMzA1LDIwIEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJDb250ZXh0VVJJU2NoZW1lKFVS
SVNjaGVtZVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0
LT5tX2xvYWRGYWlsZWQpOwogICAgIGdfYXNzZXJ0X2Vycm9yKHRlc3QtPm1fZXJyb3IuZ2V0KCks
IEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0xPU0VEKTsKIAorICAgIHRlc3QtPnJlZ2lzdGVyVVJJ
U2NoZW1lSGFuZGxlcigibm90Zm91bmQiLCBrQmFySFRNTCwgc3RybGVuKGtCYXJIVE1MKSwgInRl
eHQvaHRtbCIsIDQwNCk7CisgICAgdGVzdC0+bV9sb2FkRXZlbnRzLmNsZWFyKCk7CisgICAgdGVz
dC0+bG9hZFVSSSgibm90Zm91bmQ6YmxhbmsiKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmlu
aXNoZWQoKTsKKyAgICBnX2Fzc2VydF9mYWxzZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMo
TG9hZFRyYWNraW5nVGVzdDo6UHJvdmlzaW9uYWxMb2FkRmFpbGVkKSk7CisgICAgZ19hc3NlcnRf
dHJ1ZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVzdDo6TG9hZEZh
aWxlZCkpOworCisgICAgdGVzdC0+cmVnaXN0ZXJVUklTY2hlbWVIYW5kbGVyKCJub2NvbnRlbnQi
LCBudWxscHRyLCAwLCAiYXBwbGljYXRpb24vanNvbiIsIDIwNCk7CisgICAgdGVzdC0+bV9sb2Fk
RXZlbnRzLmNsZWFyKCk7CisgICAgdGVzdC0+bG9hZFVSSSgibm9jb250ZW50OmJsYW5rIik7Cisg
ICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnRfZmFsc2UodGVz
dC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rlc3Q6OlByb3Zpc2lvbmFsTG9h
ZEZhaWxlZCkpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHRlc3QtPm1fbG9hZEV2ZW50cy5jb250YWlu
cyhMb2FkVHJhY2tpbmdUZXN0OjpMb2FkRmFpbGVkKSk7CisKICAgICAvLyBUb3J0dXJlIHRlc3Qg
dGltZTogbWFrZSBzdXJlIGl0IHN0aWxsIHdvcmtzIGlmIHdlIGlzc3VlIGEgYnVuY2ggb2YgZGlm
ZmVyZW50IHJlcXVlc3RzIGFsbCBhdAogICAgIC8vIG9uY2UuIEVhY2ggcmVxdWVzdCBzaG91bGQg
ZmluaXNoIGFuZCByZXR1cm4gZXhhY3RseSB0aGUgc2FtZSBkYXRhLgogICAgIGludCBudW1JdGVy
YXRpb25zID0gMjU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441978</attachid>
            <date>2021-10-20 20:35:35 -0700</date>
            <delta_ts>2021-10-20 23:17:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231880-20211020213534.patch</filename>
            <type>text/plain</type>
            <size>35828</size>
            <attacher>liushuyu011</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQzMjkzMmY3ZDIxMWRkMzA5
M2QwYzQ4ZjBkZTg1MjIwYmVmYWMyN2QuLmQ1MjZhNjQ1MTZjYTEzYTE5OGFkYTE0MjE3ZmU4Y2Fj
OGY4Y2E4MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjEtMTAtMjAgIFppeGluZyBM
aXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdXBwb3J0
IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4gY3VzdG9tIFVS
SSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlc0dUSy50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
Y3BwCisgICAgICAgICogU291cmNlc1dQRS50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwOgorICAgICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRo
b2QpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3Rf
ZmluaXNoX3dpdGhfcmVzcG9uc2UpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmg6ICBBZGRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2Uu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2NsYXNzX2lu
aXQpOiBBZGRlZCBpbml0IGZ1bmN0aW9uIGZvciB0aGUgbmV3IHR5cGUKKyAgICAgICAgKHdlYmtp
dF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rpb24KKyAgICAg
ICAgKHdlYmtpdFVSSVNjaGVtZVJlc3BvbnNlUmVhZENhbGxiYWNrKToKKyAgICAgICAgKHdlYmtp
dFVSSVNjaGVtZVJlc3BvbnNlUmVhZFN0YXJ0KToKKyAgICAgICAgKHdlYmtpdFVSSVNjaGVtZVJl
c3BvbnNlU2V0VGFzayk6CisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRf
c3RhdHVzX2NvZGUpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICh3ZWJraXRfdXJp
X3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzX21lc3NhZ2UpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0
aW9uCisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfYm9keSk6IEFkZGVk
IG5ldyBBUEkgZnVuY3Rpb24KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2VQcml2YXRlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmguCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmg6IFJlZ2lzdGVyIGNsZWFuLXVw
IGZ1bmN0aW9uIGZvciBXZWJraXRVUklTY2hlbWVSZXNwb25zZQorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaDogQWRkZWQgZnVuY3Rpb24gcHJvdG90
eXBlIGZvciAKKyAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRo
b2QKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4w
LXNlY3Rpb25zLnR4dDogQWRkZWQgbmV3IHN5bWJvbHMgYW5kIG5ldyB0eXBlcworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaDogSW5jbHVkZSBhIG5ldyBoZWFkZXI6IFdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlLmgKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRV
UklTY2hlbWVSZXF1ZXN0Lmg6IEFkZGVkIGZ1bmN0aW9uIHByb3RvdHlwZSBmb3IgCisgICAgICAg
IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaDogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS93cGUvd2Via2l0Lmg6IEluY2x1ZGUgYSBuZXcgaGVhZGVyOiBXZWJL
aXRVUklTY2hlbWVSZXNwb25zZS5oCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93
cGUtMS4wLXNlY3Rpb25zLnR4dDogQWRkZWQgbmV3IHN5bWJvbHMgYW5kIG5ldyB0eXBlcworCiAy
MDIxLTEwLTE4ICBKb2huIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KIAogICAgICAgICBb
V2ViQXV0aG5dIE9idGFpbiBjb25zZW50IHRvIGNyZWF0ZSBuZXcgY3JlZGVudGlhbCB3aGVuIHBs
YXRmb3JtIGF1dGhlbnRpY2F0b3IgaW4gZXhjbHVkZWRDcmVkZW50aWFscwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50
eHQKaW5kZXggNWM5NTRlZWY5YWUxYjJmOTRlZjAwOGIyYTM4YWY4ODk0YjBjOWFjNS4uZjIxMjQ2
ZjAwYzE4ZjIzODFmY2VlNzMxN2Y5NjQ5ZjFiNjYxZTM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CkBA
IC0xNzMsNiArMTczLDcgQEAgVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNlY3VyaXR5T3JpZ2lu
LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAgQG5v
LXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIEBuby11bmlmeQog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwIEBuby11bmlmeQor
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmNwcCBAbm8tdW5pZnkK
IFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklVdGlsaXRpZXMuY3BwIEBuby11bmlmeQogVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFVzZXJDb250ZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmNwcCBAbm8tdW5pZnkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNXUEUudHh0CmluZGV4IDhhMWMzMGYzMmYzYjkzNTBhMzA2YmVmNTMwZWNiMzM0MGMxZjI5
YzcuLjk0NDE5ZGQ4NmYwNzljNWM1M2U2OGNlOGU3OWI5MTU1MDVhODdhYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
V1BFLnR4dApAQCAtMTY0LDYgKzE2NCw3IEBAIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZWN1
cml0eU9yaWdpbi5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGlu
Z3MuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcCBA
bm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBA
bm8tdW5pZnkKK1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5jcHAg
QG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJVXRpbGl0aWVzLmNwcCBAbm8t
dW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudC5jcHAgQG5vLXVuaWZ5
CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5jcHAgQG5v
LXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCmluZGV4IDZhMGQ1OWMxMDI4OWUxYjgwY2EyYTE1
NWU0NmU3ZGQ5ODlmNWU5ZjEuLjhkM2JkMmExZmVjNjJhMTRiYTgzYTU5OWIxODZmMzc5NGYyMzE3
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVS
SVNjaGVtZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCkBAIC03MCw2ICs3MCw3IEBAIHN0cnVjdCBfV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUgewogICAgIGNoYXIgcmVhZEJ1ZmZlcltnUmVhZEJ1
ZmZlclNpemVdOwogICAgIHVpbnQ2NF90IGJ5dGVzUmVhZDsKICAgICBDU3RyaW5nIGNvbnRlbnRU
eXBlOworICAgIGNvbnN0IGNoYXIqIGh0dHBNZXRob2Q7CiB9OwogCiBXRUJLSVRfREVGSU5FX1RZ
UEUoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCwgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdCwgR19U
WVBFX09CSkVDVCkKQEAgLTE2MSw2ICsxNjIsMjYgQEAgV2ViS2l0V2ViVmlldyogd2Via2l0X3Vy
aV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmUK
ICAgICByZXR1cm4gd2Via2l0V2ViQ29udGV4dEdldFdlYlZpZXdGb3JQYWdlKHJlcXVlc3QtPnBy
aXYtPndlYkNvbnRleHQsIHJlcXVlc3QtPnByaXYtPmluaXRpYXRpbmdQYWdlLmdldCgpKTsKIH0K
IAorLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZDoKKyAq
IEByZXF1ZXN0OiBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0CisgKgorICogR2V0IHRoZSBIVFRQ
IG1ldGhvZCBvZiB0aGUgQHJlcXVlc3QKKyAqCisgKiBSZXR1cm5zOiB0aGUgSFRUUCBtZXRob2Qg
b2YgdGhlIEByZXF1ZXN0CisgKiAKKyAqIFNpbmNlOiAyLjM2CisgKi8KK2NvbnN0IGdjaGFyKiB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZChXZWJLaXRVUklTY2hlbWVS
ZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19V
UklfU0NIRU1FX1JFUVVFU1QocmVxdWVzdCksIG51bGxwdHIpOworCisgICAgaWYgKCFyZXF1ZXN0
LT5wcml2LT5odHRwTWV0aG9kKQorICAgICAgICByZXF1ZXN0LT5wcml2LT5odHRwTWV0aG9kID0g
Z19pbnRlcm5fc3RyaW5nKHJlcXVlc3QtPnByaXYtPnRhc2stPnJlcXVlc3QoKS5odHRwTWV0aG9k
KCkudXRmOCgpLmRhdGEoKSk7CisKKyAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+aHR0cE1ldGhv
ZDsKK30KKwogc3RhdGljIHZvaWQgd2Via2l0VVJJU2NoZW1lUmVxdWVzdFJlYWRDYWxsYmFjayhH
SW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdCogc2NoZW1lUmVxdWVzdCkKIHsKICAgICBHUmVmUHRyPFdlYktpdFVSSVNj
aGVtZVJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdEdSZWYoc2NoZW1lUmVxdWVzdCk7CkBAIC0yMjMs
NiArMjQ0LDI0IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2goV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0lucHV0U3RyCiAgICAgICAgIHJlaW50ZXJwcmV0
X2Nhc3Q8R0FzeW5jUmVhZHlDYWxsYmFjaz4od2Via2l0VVJJU2NoZW1lUmVxdWVzdFJlYWRDYWxs
YmFjayksIGdfb2JqZWN0X3JlZihyZXF1ZXN0KSk7CiB9CiAKKy8qKgorICogd2Via2l0X3VyaV9y
ZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlOgorICogQHJlcXVlc3Q6IGEgI1dlYktpdFVSSVNj
aGVtZVJlcXVlc3QKKyAqIEByZXNwb25zZTogYSAKKyAqCisgKiBGaW5pc2ggYSAjV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdCBieSAKKyAqCisgKiBTaW5jZTogMi4zNgorICovCit2b2lkIHdlYmtpdF91
cmlfcmVxdWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZShXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiBy
ZXF1ZXN0LCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAgZ19yZXR1
cm5faWZfZmFpbChXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVFVRVNUKHJlcXVlc3QpKTsKKyAgICBn
X3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFKHJlc3BvbnNlKSk7
CisKKyAgICB3ZWJraXRVUklTY2hlbWVSZXNwb25zZVNldFRhc2socmVzcG9uc2UsIHJlcXVlc3Qt
PnByaXYtPnRhc2spOworICAgIHdlYmtpdFVSSVNjaGVtZVJlc3BvbnNlUmVhZFN0YXJ0KHJlc3Bv
bnNlKTsKK30KKwogLyoqCiAgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJv
cjoKICAqIEByZXF1ZXN0OiBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdFByaXZhdGUuaAppbmRleCAwMTg0OWUxNTc2OTQzNTE5ZDgxMjk0Njk4ZDc1ZWIyNmYy
Mjk5ZDNhLi43MDc3OTAwMTkzNDk5NmVhMjk4ZjI2MTMwOWYzNmFiZDljNTliY2IwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1
ZXN0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmgKQEAgLTIwLDYgKzIwLDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYktp
dFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHQu
aCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNr
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRV
UklTY2hlbWVSZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRVUklTY2hlbWVSZXNwb25zZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTlhMzlkNTRkM2JlM2Y0MDhm
MmE4ZTllZGE2Y2M0OTg2MDYwOWVlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmNwcApAQCAtMCwwICsx
LDE5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBaaXhpbmcgTGl1CisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUuaCIKKwor
I2luY2x1ZGUgIkFQSURhdGEuaCIKKyNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCisjaW5jbHVk
ZSAiV2ViVVJMU2NoZW1lVGFzay5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUFBhcnNlcnMuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvUnVuTG9vcFNvdXJjZVByaW9yaXR5Lmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvV1RGR1R5cGUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworLyoqCisgKiBTRUNUSU9OOiBXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICogQFNob3J0
X2Rlc2NyaXB0aW9uOiBSZXByZXNlbnRzIGEgVVJJIHNjaGVtZSByZXNwb25zZQorICogQFRpdGxl
OiBXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICoKKyAqIElmIHlvdSByZWdpc3RlciBhIHBhcnRp
Y3VsYXIgVVJJIHNjaGVtZSBpbiBhICNXZWJLaXRXZWJDb250ZXh0LAorICogdXNpbmcgd2Via2l0
X3dlYl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUoKSwgeW91IGhhdmUgdG8gcHJvdmlkZQor
ICogYSAjV2ViS2l0VVJJU2NoZW1lUmVxdWVzdENhbGxiYWNrLiBBZnRlciB0aGF0LCB3aGVuIGEg
VVJJIHJlc3BvbnNlCisgKiBpcyBtYWRlIHdpdGggdGhhdCBwYXJ0aWN1bGFyIHNjaGVtZSwgeW91
ciBjYWxsYmFjayB3aWxsIGJlCisgKiBjYWxsZWQuIFRoZXJlIHlvdSB3aWxsIGJlIGFibGUgdG8g
cHJvdmlkZSBtb3JlIHJlc3BvbnNlIHBhcmFtZXRlcnMKKyAqIHdoZW4gdGhlIG1ldGhvZHMgYW5k
IHByb3BlcnRpZXMgb2YgYSAjV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCBpcyBub3QKKyAqIGVub3Vn
aC4KKyAqIAorICogV2hlbiB5b3UgZmluaXNoZWQgc2V0dGluZyB1cCB5b3VyICNXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZSwgY2FsbAorICogd2Via2l0X3VyaV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jl
c3BvbnNlIHdpdGggaXQgdG8gcmV0dXJuIHRoZSByZXNwb25zZS4KKyAqCisgKi8KKworc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGdSZWFkQnVmZmVyU2l6ZSA9IDgxOTI7CisKK3N0cnVjdCBfV2ViS2l0
VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlIHsKKyAgICBSZWZQdHI8V2ViVVJMU2NoZW1lVGFzaz4g
dGFzazsKKworICAgIEdSZWZQdHI8R0lucHV0U3RyZWFtPiBzdHJlYW07CisgICAgdWludDY0X3Qg
c3RyZWFtTGVuZ3RoOworICAgIEdSZWZQdHI8R0NhbmNlbGxhYmxlPiBjYW5jZWxsYWJsZTsKKyAg
ICBjaGFyIHJlYWRCdWZmZXJbZ1JlYWRCdWZmZXJTaXplXTsKKyAgICB1aW50NjRfdCBieXRlc1Jl
YWQ7CisKKyAgICBpbnQgc3RhdHVzQ29kZTsKKyAgICBDU3RyaW5nIHN0YXR1c01lc3NhZ2U7Cisg
ICAgQ1N0cmluZyBjb250ZW50VHlwZTsKK307CisKK1dFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRV
UklTY2hlbWVSZXNwb25zZSwgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2UsIEdfVFlQRV9PQkpF
Q1QpOworCitzdGF0aWMgdm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9jbGFzc19pbml0
KFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MqKQoreworfQorCitXZWJLaXRVUklTY2hlbWVS
ZXNwb25zZSogd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfbmV3KCkKK3sKKyAgICBXZWJLaXRV
UklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UgPSBXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRShn
X29iamVjdF9uZXcoV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSwgbnVsbHB0cikpOwor
ICAgIHJlc3BvbnNlLT5wcml2LT5zdGF0dXNDb2RlID0gMjAwOworICAgIHJldHVybiByZXNwb25z
ZTsKK30KKwordm9pZCB3ZWJraXRVUklTY2hlbWVSZXNwb25zZVJlYWRDYWxsYmFjayhHSW5wdXRT
dHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2UqIHNjaGVtZVJlc3BvbnNlKQoreworICAgIEdSZWZQdHI8V2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2U+IHJlc3BvbnNlID0gYWRvcHRHUmVmKHNjaGVtZVJlc3BvbnNlKTsKKyAgICBHVW5p
cXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CisgICAgZ3NzaXplIGJ5dGVzUmVhZCA9IGdfaW5wdXRf
c3RyZWFtX3JlYWRfZmluaXNoKGlucHV0U3RyZWFtLCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSk7
CisgICAgaWYgKGJ5dGVzUmVhZCA9PSAtMSkgeworICAgICAgICAvLyBUT0RPOiBob3cgdG8gaGFu
ZGxlIHRoaXMgZXJyb3I/CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZVByaXZhdGUqIHByaXYgPSByZXNwb25zZS0+cHJpdjsKKyAgICAvLyBOZWVk
IHRvIGNoZWNrIHRoZSBzdHJlYW0gYmVmb3JlIHByb2NlZWRpbmcgYXMgaXQgY2FuIGJlIGNhbmNl
bGxlZCBpZiBmaW5pc2hfZXJyb3IKKyAgICAvLyB3YXMgcHJldmlvdXNseSBjYWxsLCB3aGljaCB3
b24ndCBiZSBkZXRlY3RlZCBieSBnX2lucHV0X3N0cmVhbV9yZWFkX2ZpbmlzaCgpLgorICAgIGlm
ICghcHJpdi0+c3RyZWFtKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXByaXYtPmJ5dGVz
UmVhZCkgeworICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKHByaXYtPnRhc2stPnJl
cXVlc3QoKS51cmwoKSwgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShwcml2LT5jb250ZW50
VHlwZS5kYXRhKCkpLCBwcml2LT5zdHJlYW1MZW5ndGgsIGVtcHR5U3RyaW5nKCkpOworICAgICAg
ICByZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlw
ZShwcml2LT5jb250ZW50VHlwZS5kYXRhKCkpKTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0
YXR1c0NvZGUocHJpdi0+c3RhdHVzQ29kZSk7CisgICAgICAgIGlmICghcHJpdi0+c3RhdHVzTWVz
c2FnZS5pc051bGwoKSkKKyAgICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KHBy
aXYtPnN0YXR1c01lc3NhZ2UuZGF0YSgpKTsKKyAgICAgICAgZWxzZSBpZiAocHJpdi0+c3RhdHVz
Q29kZSA+PSAwKQorICAgICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoc291cF9z
dGF0dXNfZ2V0X3BocmFzZSgoZ3VpbnQpcHJpdi0+c3RhdHVzQ29kZSkpOworICAgICAgICBpZiAo
cmVzcG9uc2UubWltZVR5cGUoKS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXNwb25zZS5zZXRN
aW1lVHlwZShNSU1FVHlwZVJlZ2lzdHJ5OjptaW1lVHlwZUZvclBhdGgocmVzcG9uc2UudXJsKCku
cGF0aCgpLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgcHJpdi0+dGFzay0+ZGlkUmVjZWl2ZVJlc3Bv
bnNlKHJlc3BvbnNlKTsKKyAgICB9CisKKyAgICBpZiAoIWJ5dGVzUmVhZCkgeworICAgICAgICBw
cml2LT50YXNrLT5kaWRDb21wbGV0ZSh7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgcHJpdi0+dGFzay0+ZGlkUmVjZWl2ZURhdGEoU2hhcmVkQnVmZmVyOjpjcmVhdGUocHJpdi0+
cmVhZEJ1ZmZlciwgYnl0ZXNSZWFkKSk7CisgICAgcHJpdi0+Ynl0ZXNSZWFkICs9IGJ5dGVzUmVh
ZDsKKyAgICBnX2lucHV0X3N0cmVhbV9yZWFkX2FzeW5jKGlucHV0U3RyZWFtLCBwcml2LT5yZWFk
QnVmZmVyLCBnUmVhZEJ1ZmZlclNpemUsIFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6QXN5bmNJT05l
dHdvcmssIHByaXYtPmNhbmNlbGxhYmxlLmdldCgpLAorICAgICAgICByZWludGVycHJldF9jYXN0
PEdBc3luY1JlYWR5Q2FsbGJhY2s+KHdlYmtpdFVSSVNjaGVtZVJlc3BvbnNlUmVhZENhbGxiYWNr
KSwgZ19vYmplY3RfcmVmKHJlc3BvbnNlLmdldCgpKSk7Cit9CisKK3ZvaWQgd2Via2l0VVJJU2No
ZW1lUmVzcG9uc2VSZWFkU3RhcnQoV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHNjaGVtZVJlc3Bv
bnNlKQoreworICAgIGdfaW5wdXRfc3RyZWFtX3JlYWRfYXN5bmMoc2NoZW1lUmVzcG9uc2UtPnBy
aXYtPnN0cmVhbS5nZXQoKSwgc2NoZW1lUmVzcG9uc2UtPnByaXYtPnJlYWRCdWZmZXIsIGdSZWFk
QnVmZmVyU2l6ZSwgUnVuTG9vcFNvdXJjZVByaW9yaXR5OjpBc3luY0lPTmV0d29yaywgc2NoZW1l
UmVzcG9uc2UtPnByaXYtPmNhbmNlbGxhYmxlLmdldCgpLAorICAgICAgICByZWludGVycHJldF9j
YXN0PEdBc3luY1JlYWR5Q2FsbGJhY2s+KHdlYmtpdFVSSVNjaGVtZVJlc3BvbnNlUmVhZENhbGxi
YWNrKSwgZ19vYmplY3RfcmVmKHNjaGVtZVJlc3BvbnNlKSk7Cit9CisKK3ZvaWQgd2Via2l0VVJJ
U2NoZW1lUmVzcG9uc2VTZXRUYXNrKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKiBzY2hlbWVSZXNw
b25zZSwgUmVmUHRyPFdlYlVSTFNjaGVtZVRhc2s+IHRhc2spCit7CisgICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRShzY2hlbWVSZXNwb25zZSkpOworICAg
IHNjaGVtZVJlc3BvbnNlLT5wcml2LT50YXNrID0gdGFzazsKK30KKworLyoqCisgKiB3ZWJraXRf
dXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzX2NvZGU6CisgKiBAcmVzcG9uc2U6IGEgI1dl
YktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKiBAc3RhdHVzX2NvZGU6IHRoZSBIVFRQIHN0YXR1cyBj
b2RlIHRvIGJlIHJldHVybmVkCisgKgorICogU2V0cyB0aGUgc3RhdHVzIGNvZGUgZm9yIHRoZSBA
cmVzcG9uc2UKKyAqCisgKiBTaW5jZTogMi4zNgorICovCit2b2lkIHdlYmtpdF91cmlfc2NoZW1l
X3Jlc3BvbnNlX3NldF9zdGF0dXNfY29kZShXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9u
c2UsIGdpbnQgc3RhdHVzQ29kZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19V
UklfU0NIRU1FX1JFU1BPTlNFKHJlc3BvbnNlKSk7CisKKyAgICByZXNwb25zZS0+cHJpdi0+c3Rh
dHVzQ29kZSA9IHN0YXR1c0NvZGU7Cit9CisKKy8qKgorICogd2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdF9zZXRfc3RhdHVzX21lc3NhZ2U6CisgKiBAcmVzcG9uc2U6IGEgI1dlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlCisgKiBAc3RhdHVzX2NvZGU6IHRoZSBIVFRQIHN0YXR1cyBtZXNzYWdlIHRvIGJl
IHJldHVybmVkCisgKgorICogU2V0cyB0aGUgc3RhdHVzIG1lc3NhZ2UgZm9yIHRoZSBAcmVzcG9u
c2UKKyAqCisgKiBTaW5jZTogMi4zNgorICovCit2b2lkIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3Bv
bnNlX3NldF9zdGF0dXNfbWVzc2FnZShXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2Us
IGNvbnN0IGdjaGFyKiBzdGF0dXNNZXNzYWdlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VC
S0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0UocmVzcG9uc2UpKTsKKworICAgIHJlc3BvbnNlLT5w
cml2LT5zdGF0dXNNZXNzYWdlID0gc3RhdHVzTWVzc2FnZTsKK30KKworLyoqCisgKiB3ZWJraXRf
dXJpX3NjaGVtZV9yZXF1ZXN0X3NldF9zdGF0dXNfbWVzc2FnZToKKyAqIEByZXNwb25zZTogYSAj
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAqIEBzdHJlYW06IGEgI0dJbnB1dFN0cmVhbSB0byBy
ZWFkIHRoZSBjb250ZW50cyBvZiB0aGUgcmVxdWVzdAorICogQHN0cmVhbV9sZW5ndGg6IHRoZSBs
ZW5ndGggb2YgdGhlIHN0cmVhbSBvciAtMSBpZiBub3Qga25vd24KKyAqIEBjb250ZW50X3R5cGU6
IChhbGxvdy1ub25lKTogdGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgc3RyZWFtIG9yICVOVUxMIGlm
IG5vdCBrbm93bgorICoKKyAqIFNldHMgdGhlIHN0YXR1cyBtZXNzYWdlIGZvciB0aGUgQHJlc3Bv
bnNlCisgKgorICogU2luY2U6IDIuMzYKKyAqLwordm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXNw
b25zZV9zZXRfYm9keShXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UsIEdJbnB1dFN0
cmVhbSogaW5wdXRTdHJlYW0sIGdpbnQ2NCBzdHJlYW1MZW5ndGgsIGNvbnN0IGdjaGFyKiBjb250
ZW50VHlwZSkKK3sKKyAgICAvLyBjb3BpZWQgZnJvbSB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2ZpbmlzaAorICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9O
U0UocmVzcG9uc2UpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKEdfSVNfSU5QVVRfU1RSRUFNKGlu
cHV0U3RyZWFtKSk7CisgICAgZ19yZXR1cm5faWZfZmFpbChzdHJlYW1MZW5ndGggPT0gLTEgfHwg
c3RyZWFtTGVuZ3RoID49IDApOworCisgICAgcmVzcG9uc2UtPnByaXYtPnN0cmVhbSA9IGlucHV0
U3RyZWFtOworICAgIC8vIFdlIHVzZSAtMSBpbiB0aGUgQVBJIGZvciBjb25zaXN0ZW5jeSB3aXRo
IHNvdXAgd2hlbiB0aGUgY29udGVudCBsZW5ndGggaXMgbm90IGtub3duLCBidXQgMCBpbnRlcm5h
bGx5LgorICAgIHJlc3BvbnNlLT5wcml2LT5zdHJlYW1MZW5ndGggPSBzdHJlYW1MZW5ndGggPT0g
LTEgPyAwIDogc3RyZWFtTGVuZ3RoOworICAgIHJlc3BvbnNlLT5wcml2LT5jYW5jZWxsYWJsZSA9
IGFkb3B0R1JlZihnX2NhbmNlbGxhYmxlX25ldygpKTsKKyAgICByZXNwb25zZS0+cHJpdi0+Ynl0
ZXNSZWFkID0gMDsKKyAgICByZXNwb25zZS0+cHJpdi0+Y29udGVudFR5cGUgPSBjb250ZW50VHlw
ZTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZhYjBj
ZGZmMjZiYWI5ZGQyZTM3ZGRhODllYzFkYjAxMDQyMTNlZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJp
dmF0ZS5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgWml4aW5n
IExpdQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgi
CisjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5o
IgorI2luY2x1ZGUgIldlYlVSTFNjaGVtZVRhc2suaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlUmVxdWVzdC5oPgorCit2b2lkIHdlYmtpdFVSSVNjaGVtZVJlc3BvbnNlUmVhZENhbGxiYWNr
KEdJbnB1dFN0cmVhbSosIEdBc3luY1Jlc3VsdCosIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKik7
Cit2b2lkIHdlYmtpdFVSSVNjaGVtZVJlc3BvbnNlUmVhZFN0YXJ0KFdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlKik7Cit2b2lkIHdlYmtpdFVSSVNjaGVtZVJlc3BvbnNlU2V0VGFzayhXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZSosIFJlZlB0cjxXZWJVUkxTY2hlbWVUYXNrPik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaAppbmRleCBh
NGFhZmQ3M2ZiMmFhN2Q4M2I1YTNmMzY5YTAyZTYxZTg2MGRkMjRlLi4yNWRmN2QwNzg1Y2Y4ZjZk
OTU4ZWVkODgwNmFkYzIzNzBjMzM4M2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKQEAgLTYyLDYgKzYyLDcgQEAgR19E
RUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFNldHRpbmdzLCBnX29iamVjdF91bnJl
ZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVUklSZXF1ZXN0LCBnX29i
amVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVUklSZXNw
b25zZSwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NM
RUFOVVBfRlVOQyAoV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UsIGdfb2JqZWN0X3VucmVmKQogR19E
RUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUs
IGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVz
ZXJDb250ZW50TWFuYWdlciwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFO
VVBfRlVOQyAoV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVm
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVS
SVNjaGVtZVJlcXVlc3QuaAppbmRleCBkMmIwNmExNGRjNWEyMDdlODc1NjRhMGViYzM1YmNjMTM5
YjFlYzRlLi5hODQzZmFjYWE5OWQ0ZDkxM2MwYmRlN2ViNGJiMjZlMTQxNjI1ODNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVt
ZVJlcXVlc3QuaApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAj
aW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJL
aXRGb3J3YXJkRGVjbGFyYXRpb25zLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklTY2hl
bWVSZXNwb25zZS5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTcxLDEyICs3MiwxOSBAQCB3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9wYXRoICAgICAoV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dCAqcmVxdWVzdCk7CiBXRUJLSVRfQVBJIFdlYktpdFdlYlZpZXcgKgogd2Via2l0X3VyaV9zY2hl
bWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3Qp
OwogCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
Z2V0X2h0dHBfbWV0aG9kIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKKwogV0VC
S0lUX0FQSSB2b2lkCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaCAgICAgICAoV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHSW5wdXRTdHJlYW0gICAgICAgICAgICpzdHJlYW0sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludDY0ICAgICAgICAgICAgICAgICAgc3Ry
ZWFtX2xlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBnY2hhciAgICAgICAgICAgICpjb250ZW50X3R5cGUpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dl
YmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX3dpdGhfcmVzcG9uc2UgKFdlYktpdFVSSVNj
aGVtZVJlcXVlc3QgICAgICAgICpyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3Bv
bnNlKTsKKwogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2Zpbmlz
aF9lcnJvciAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAgICAgICplcnJvcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNj
aGVtZVJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVS
SVNjaGVtZVJlc3BvbnNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGMyMzI2MzI4OWU5OTNmNWVkYjFjMDU0YWRi
MjE1MzBiNWM5NjRlMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaApAQCAtMCwwICsxLDgxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIFppeGluZyBMaXUKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9I
X0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5
IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgor
CisjaWZuZGVmIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlX2gKKyNkZWZpbmUgV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2VfaAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZvcndhcmREZWNs
YXJhdGlvbnMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX1VSSV9T
Q0hFTUVfUkVTUE9OU0UgICAgICAgICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0Uob2JqKSAgICAgICAg
ICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfVVJJX1ND
SEVNRV9SRVNQT05TRSwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UpKQorI2RlZmluZSBXRUJLSVRf
SVNfVVJJX1NDSEVNRV9SRVNQT05TRShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5D
RV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFKSkKKyNkZWZpbmUg
V0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tf
Q0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSwgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19VUklfU0NIRU1F
X1JFU1BPTlNFX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwg
IFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UpKQorI2RlZmluZSBXRUJLSVRfVVJJX1ND
SEVNRV9SRVNQT05TRV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1Mo
KG9iaiksICBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVS
ZXNwb25zZUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNl
ICAgICAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZTsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRV
UklTY2hlbWVSZXNwb25zZUNsYXNzICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUgV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2VQcml2YXRlOworCitzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlIHsK
KyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0
ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcyB7Cisg
ICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKKworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2Vy
dmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOworICAg
IHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jl
c2VydmVkMykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3VyaV9zY2hl
bWVfcmVzcG9uc2VfZ2V0X3R5cGUgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBXZWJL
aXRVUklTY2hlbWVSZXNwb25zZSAqCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9uZXcgICAg
ICAgICAgICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91cmlfc2NoZW1l
X3Jlc3BvbnNlX3NldF9zdGF0dXNfY29kZSAgICAoV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgKnJl
c3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
aW50IHN0YXR1c19jb2RlKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9y
ZXNwb25zZV9zZXRfc3RhdHVzX21lc3NhZ2UgKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNw
b25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgZ2NoYXIgKnN0YXR1c19tZXNzYWdlKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJp
X3NjaGVtZV9yZXNwb25zZV9zZXRfYm9keSAgICAgICAgICAgKFdlYktpdFVSSVNjaGVtZVJlc3Bv
bnNlICpyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0lucHV0U3RyZWFtICAgICAgICAgICAgKmlucHV0X3N0cmVhbSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludDY0ICAgICAgICAgICAgICAg
ICAgIHN0cmVhbV9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICpjb250ZW50X3R5cGUpOworCitHX0VO
RF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CmluZGV4IDFi
YWJiOTM5ZmNlYzE2Zjk0OTM0YWYzODhlNDE2ZTkwM2JlMWVlODcuLjcxZjU1OWMwMTg2ZjM5NTY0
NTQ1NDM1YzllZDRlMGZlZjhkZjlhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4
dApAQCAtMTI3Nyw2ICsxMjc3LDcgQEAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfc2No
ZW1lCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkKIHdlYmtpdF91cmlfc2NoZW1l
X3JlcXVlc3RfZ2V0X3BhdGgKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3
Cit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZAogd2Via2l0X3VyaV9z
Y2hlbWVfcmVxdWVzdF9maW5pc2gKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vy
cm9yCiAKQEAgLTEyOTQsNiArMTI5NSwyOCBAQCBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0
ZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCis8U0VD
VElPTj4KKzxGSUxFPldlYktpdFVSSVNjaGVtZVJlc3BvbnNlPC9GSUxFPgorV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2UKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldword2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1c19jb2RlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25z
ZV9zZXRfc3RhdHVzX21lc3NhZ2UKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9ib2R5
CisKKzxTVUJTRUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcwor
V0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRQorV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9O
U0UKK1dFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfVVJJX1NDSEVNRV9SRVNQ
T05TRV9DTEFTUworV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1MKK1dFQktJVF9V
UklfU0NIRU1FX1JFU1BPTlNFX0dFVF9DTEFTUworCis8U1VCU0VDVElPTiBQcml2YXRlPgorV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9n
ZXRfdHlwZQorPC9TRUNUSU9OPgorCiA8U0VDVElPTj4KIDxGSUxFPldlYktpdFZlcnNpb248L0ZJ
TEU+CiB3ZWJraXRfZ2V0X21ham9yX3ZlcnNpb24KQEAgLTE5ODUsNCArMjAwOCwzIEBAIHdlYmtp
dF9tZW1vcnlfcHJlc3N1cmVfc2V0dGluZ3NfZ2V0X3R5cGUKIDxTVUJTRUNUSU9OIFN0YW5kYXJk
PgogV0VCS0lUX1RZUEVfTUVNT1JZX1BSRVNTVVJFX1NFVFRJTkdTCiA8L1NFQ1RJT04+Ci0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKaW5kZXggYjdkMjc0MWM0YjJj
MWFkNGUzNGExZmFiNDhmZWM2MWFmMWM2MTAyZC4uNWNkOTUyNDI1MmE5N2Q0ZWE2NGRmZWIyMmU1
YTQ3YjU1ZjM2Yzg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay93ZWJraXQyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQy
LmgKQEAgLTc4LDYgKzc4LDcgQEAKICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlcXVlc3Qu
aD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRV
UklTY2hlbWVSZXNwb25zZS5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJVXRpbGl0aWVz
Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVc2VyQ29udGVudC5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAppbmRl
eCA4ZWJlZGE0ZTc3ZjFiYmQxOGUxY2JkYWRjM2Y3ZjI0NmUwOTkxN2IxLi4wZWMwNjcyMjk3NzUz
MWFiMmE2NjdjYTI5ZGNhZDE5OWZhNWNjMjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaApAQCAtNzIsNiAr
NzIsMTMgQEAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfcGF0aCAgICAgKFdlYktpdFVS
SVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOwogV0VCS0lUX0FQSSBXZWJLaXRXZWJWaWV3ICoKIHdl
YmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3IChXZWJLaXRVUklTY2hlbWVSZXF1
ZXN0ICpyZXF1ZXN0KTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X3NldF9zdGF0dXNfY29kZSAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCwgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXR1c19jb2Rl
KTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2dldF9odHRwX21ldGhvZCAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CisKIFdF
QktJVF9BUEkgdm9pZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2ggICAgICAgKFdl
YktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0lucHV0U3RyZWFtICAgICAgICAgICAqc3RyZWFtLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXNwb25z
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXNw
b25zZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjBjMjMyNjMyODllOTkzZjVlZGIxYzA1NGFkYjIxNTMwYjVjOTY0
ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dl
YktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBaaXhpbmcgTGl1CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykg
JiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93
ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBX
ZWJLaXRVUklTY2hlbWVSZXNwb25zZV9oCisjZGVmaW5lIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRE
ZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGb3J3YXJkRGVjbGFyYXRpb25zLmg+
CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BP
TlNFICAgICAgICAgICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2dldF90eXBlKCkpCisj
ZGVmaW5lIFdFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFKG9iaikgICAgICAgICAgICAoR19UWVBF
X0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9O
U0UsIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VSSV9TQ0hF
TUVfUkVTUE9OU0Uob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2Jq
KSwgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSkpCisjZGVmaW5lIFdFQktJVF9VUklf
U0NIRU1FX1JFU1BPTlNFX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1Qo
KGtsYXNzKSwgIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UsIFdlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlQ2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRV9D
TEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQ
RV9VUklfU0NIRU1FX1JFU1BPTlNFKSkKKyNkZWZpbmUgV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9O
U0VfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VC
S0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFz
cykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZSAgICAgICAgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2U7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVz
cG9uc2VDbGFzcyAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZSB7CisgICAgR09iamVj
dCBwYXJlbnQ7CisKKyAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUgKnByaXY7Cit9
OworCitzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MgeworICAgIEdPYmplY3RD
bGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lk
KTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2
b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNl
X2dldF90eXBlICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2UgKgord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfbmV3ICAgICAgICAgICAgICAg
ICh2b2lkKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9z
ZXRfc3RhdHVzX2NvZGUgICAgKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCBzdGF0dXNf
Y29kZSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0
X3N0YXR1c19tZXNzYWdlIChXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9uc2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpz
dGF0dXNfbWVzc2FnZSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVz
cG9uc2Vfc2V0X2JvZHkgICAgICAgICAgIChXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9u
c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJbnB1
dFN0cmVhbSAgICAgICAgICAgICppbnB1dF9zdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQ2NCAgICAgICAgICAgICAgICAgICBzdHJlYW1f
bGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBnY2hhciAgICAgICAgICAgICAqY29udGVudF90eXBlKTsKKworR19FTkRfREVDTFMKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mv
d3BlLTEuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2Rv
Y3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKaW5kZXggYjhiMDhkMmY5MWYyNTY0Y2VmN2RhMGI4ZWNl
ZGM4YTExMmQ1YmU5MC4uYmM0MjU5ZjI3OWVlM2EyZjY0YjUyN2FiNzVhOTFlMzgwZTNmN2I1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAt
c2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93
cGUtMS4wLXNlY3Rpb25zLnR4dApAQCAtMTIxNCw2ICsxMjE0LDcgQEAgd2Via2l0X3VyaV9zY2hl
bWVfcmVxdWVzdF9nZXRfc2NoZW1lCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkK
IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3BhdGgKIHdlYmtpdF91cmlfc2NoZW1lX3Jl
cXVlc3RfZ2V0X3dlYl92aWV3Cit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21l
dGhvZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2gKIHdlYmtpdF91cmlfc2NoZW1l
X3JlcXVlc3RfZmluaXNoX2Vycm9yCiAKQEAgLTEyMzEsNiArMTIzMiwyOCBAQCBXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0UHJpdmF0ZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdHlwZQog
PC9TRUNUSU9OPgogCis8U0VDVElPTj4KKzxGSUxFPldlYktpdFVSSVNjaGVtZVJlc3BvbnNlPC9G
SUxFPgorV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNl
X25ldword2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1c19jb2RlCit3ZWJraXRf
dXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzX21lc3NhZ2UKK3dlYmtpdF91cmlfc2NoZW1l
X3Jlc3BvbnNlX3NldF9ib2R5CisKKzxTVUJTRUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2VDbGFzcworV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRQorV0VCS0lU
X1VSSV9TQ0hFTUVfUkVTUE9OU0UKK1dFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFCitXRUJL
SVRfVVJJX1NDSEVNRV9SRVNQT05TRV9DTEFTUworV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9O
U0VfQ0xBU1MKK1dFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFX0dFVF9DTEFTUworCis8U1VCU0VD
VElPTiBQcml2YXRlPgorV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlCit3ZWJraXRfdXJp
X3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZQorPC9TRUNUSU9OPgorCiA8U0VDVElPTj4KIDxGSUxF
PldlYktpdFZlcnNpb248L0ZJTEU+CiB3ZWJraXRfZ2V0X21ham9yX3ZlcnNpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvd2Via2l0LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL3dlYmtpdC5oCmluZGV4IDVjOTNkNzYwZjczNGExMmY2MTQ4
OTk1NDUxMzVmZGY3NzAxNjQ1NzUuLmMyMjIxZWZjMDA2MThjMmVjNGQyMGE4OGM1OTg0MDc2N2Jk
NTJmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvd2Via2l0
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS93ZWJraXQuaApAQCAtNzMs
NiArNzMsNyBAQAogI2luY2x1ZGUgPHdwZS9XZWJLaXRVUklSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
d3BlL1dlYktpdFVSSVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVNjaGVtZVJl
cXVlc3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaD4KICNpbmNs
dWRlIDx3cGUvV2ViS2l0VVJJVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVzZXJD
b250ZW50Lmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUuaD4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMDAy
M2EyNDg1MDg5ZGNhMzc5MTY3ODFjODYxMjZiOTcyMjQ2YTVlLi45YWI4ZDRhNTUwYjFlMjZkZThm
M2RlNjc2NmI0ZWZmOWE2OWQ3ODUyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMjAgIFppeGluZyBMaXUg
IDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdXBwb3J0IHNl
dHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4gY3VzdG9tIFVSSSBz
Y2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250
ZXh0LmNwcDoKKyAgICAgICAgKHRlc3RXZWJDb250ZXh0VVJJU2NoZW1lKTogQWRkZWQgdGVzdHMg
dG8gdGVzdCBuZXcgcHVibGljIEFQSXMgZm9yIFdlYktpdEd0aworCiAyMDIxLTEwLTE4ICBKb25h
dGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
ZXZlcnRpbmcgcjI4NDM5OS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGI5MzZjOGUw
Nzc1YTE3YWNhYmUyMTI4YWE3MTkzMmU1ZjRkOTBmNDMuLmI0MDM2ZDVhMjNkNGZhMWQxNDg5ZGU0
YmI5NzUyMjYwMmVlNWYwYTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtOTUsMTYg
Kzk1LDE4IEBAIHB1YmxpYzoKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgVVJJU2No
ZW1lSGFuZGxlcihjb25zdCBjaGFyKiByZXBseSwgaW50IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFy
KiBtaW1lVHlwZSkKKyAgICAgICAgVVJJU2NoZW1lSGFuZGxlcihjb25zdCBjaGFyKiByZXBseSwg
aW50IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1lVHlwZSwgaW50IHN0YXR1c0NvZGUgPSAy
MDApCiAgICAgICAgICAgICA6IHJlcGx5KHJlcGx5KQogICAgICAgICAgICAgLCByZXBseUxlbmd0
aChyZXBseUxlbmd0aCkKICAgICAgICAgICAgICwgbWltZVR5cGUobWltZVR5cGUpCisgICAgICAg
ICAgICAsIHN0YXR1c0NvZGUoc3RhdHVzQ29kZSkKICAgICAgICAgewogICAgICAgICB9CiAKICAg
ICAgICAgQ1N0cmluZyByZXBseTsKICAgICAgICAgaW50IHJlcGx5TGVuZ3RoOwogICAgICAgICBD
U3RyaW5nIG1pbWVUeXBlOworICAgICAgICBpbnQgc3RhdHVzQ29kZTsKICAgICB9OwogCiAgICAg
c3RhdGljIHZvaWQgdXJpU2NoZW1lUmVxdWVzdENhbGxiYWNrKFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QqIHJlcXVlc3QsIGdwb2ludGVyIHVzZXJEYXRhKQpAQCAtMTIwLDYgKzEyMiwxMSBAQCBwdWJs
aWM6CiAgICAgICAgIGdfYXNzZXJ0X25vbm51bGwoc2NoZW1lKTsKICAgICAgICAgZ19hc3NlcnRf
dHJ1ZSh0ZXN0LT5tX2hhbmRsZXJzTWFwLmNvbnRhaW5zKFN0cmluZzo6ZnJvbVVURjgoc2NoZW1l
KSkpOwogCisgICAgICAgIGNvbnN0IGNoYXIqIG1ldGhvZCA9IHdlYmtpdF91cmlfc2NoZW1lX3Jl
cXVlc3RfZ2V0X2h0dHBfbWV0aG9kKHJlcXVlc3QpOworICAgICAgICBnX2Fzc2VydF9ub25udWxs
KG1ldGhvZCk7CisgICAgICAgIGdfYXNzZXJ0X2NtcHN0cihtZXRob2QsID09LCAiR0VUIik7CisK
KwogICAgICAgICBjb25zdCBVUklTY2hlbWVIYW5kbGVyJiBoYW5kbGVyID0gdGVzdC0+bV9oYW5k
bGVyc01hcC5nZXQoU3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpKTsKIAogICAgICAgICBHUmVmUHRy
PEdJbnB1dFN0cmVhbT4gaW5wdXRTdHJlYW0gPSBhZG9wdEdSZWYoZ19tZW1vcnlfaW5wdXRfc3Ry
ZWFtX25ldygpKTsKQEAgLTE1Nyw5ICsxNjQsOSBAQCBwdWJsaWM6CiAgICAgICAgIHdlYmtpdF91
cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoKHJlcXVlc3QsIGlucHV0U3RyZWFtLmdldCgpLCBoYW5k
bGVyLnJlcGx5TGVuZ3RoLCBoYW5kbGVyLm1pbWVUeXBlLmRhdGEoKSk7CiAgICAgfQogCi0gICAg
dm9pZCByZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIoY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBj
aGFyKiByZXBseSwgaW50IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1lVHlwZSkKKyAgICB2
b2lkIHJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcihjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNo
YXIqIHJlcGx5LCBpbnQgcmVwbHlMZW5ndGgsIGNvbnN0IGNoYXIqIG1pbWVUeXBlLCBpbnQgc3Rh
dHVzQ29kZSA9IDIwMCkKICAgICB7Ci0gICAgICAgIG1faGFuZGxlcnNNYXAuc2V0KFN0cmluZzo6
ZnJvbVVURjgoc2NoZW1lKSwgVVJJU2NoZW1lSGFuZGxlcihyZXBseSwgcmVwbHlMZW5ndGgsIG1p
bWVUeXBlKSk7CisgICAgICAgIG1faGFuZGxlcnNNYXAuc2V0KFN0cmluZzo6ZnJvbVVURjgoc2No
ZW1lKSwgVVJJU2NoZW1lSGFuZGxlcihyZXBseSwgcmVwbHlMZW5ndGgsIG1pbWVUeXBlLCBzdGF0
dXNDb2RlKSk7CiAgICAgICAgIHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1l
KG1fd2ViQ29udGV4dC5nZXQoKSwgc2NoZW1lLCB1cmlTY2hlbWVSZXF1ZXN0Q2FsbGJhY2ssIHRo
aXMsIDApOwogICAgIH0KIApAQCAtMjk3LDYgKzMwNCwyMCBAQCBzdGF0aWMgdm9pZCB0ZXN0V2Vi
Q29udGV4dFVSSVNjaGVtZShVUklTY2hlbWVUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAg
IGdfYXNzZXJ0X3RydWUodGVzdC0+bV9sb2FkRmFpbGVkKTsKICAgICBnX2Fzc2VydF9lcnJvcih0
ZXN0LT5tX2Vycm9yLmdldCgpLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NMT1NFRCk7CiAKKyAg
ICB0ZXN0LT5yZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIoIm5vdGZvdW5kIiwga0JhckhUTUwsIHN0
cmxlbihrQmFySFRNTCksICJ0ZXh0L2h0bWwiLCA0MDQpOworICAgIHRlc3QtPm1fbG9hZEV2ZW50
cy5jbGVhcigpOworICAgIHRlc3QtPmxvYWRVUkkoIm5vdGZvdW5kOmJsYW5rIik7CisgICAgdGVz
dC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnRfZmFsc2UodGVzdC0+bV9s
b2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rlc3Q6OlByb3Zpc2lvbmFsTG9hZEZhaWxl
ZCkpOworICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRU
cmFja2luZ1Rlc3Q6OkxvYWRGYWlsZWQpKTsKKworICAgIHRlc3QtPnJlZ2lzdGVyVVJJU2NoZW1l
SGFuZGxlcigibm9jb250ZW50IiwgbnVsbHB0ciwgMCwgImFwcGxpY2F0aW9uL2pzb24iLCAyMDQp
OworICAgIHRlc3QtPm1fbG9hZEV2ZW50cy5jbGVhcigpOworICAgIHRlc3QtPmxvYWRVUkkoIm5v
Y29udGVudDpibGFuayIpOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworICAg
IGdfYXNzZXJ0X2ZhbHNlKHRlc3QtPm1fbG9hZEV2ZW50cy5jb250YWlucyhMb2FkVHJhY2tpbmdU
ZXN0OjpQcm92aXNpb25hbExvYWRGYWlsZWQpKTsKKyAgICBnX2Fzc2VydF9mYWxzZSh0ZXN0LT5t
X2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVzdDo6TG9hZEZhaWxlZCkpOworCiAg
ICAgLy8gVG9ydHVyZSB0ZXN0IHRpbWU6IG1ha2Ugc3VyZSBpdCBzdGlsbCB3b3JrcyBpZiB3ZSBp
c3N1ZSBhIGJ1bmNoIG9mIGRpZmZlcmVudCByZXF1ZXN0cyBhbGwgYXQKICAgICAvLyBvbmNlLiBF
YWNoIHJlcXVlc3Qgc2hvdWxkIGZpbmlzaCBhbmQgcmV0dXJuIGV4YWN0bHkgdGhlIHNhbWUgZGF0
YS4KICAgICBpbnQgbnVtSXRlcmF0aW9ucyA9IDI1Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441990</attachid>
            <date>2021-10-20 23:17:44 -0700</date>
            <delta_ts>2021-10-21 15:44:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231880-20211021001744.patch</filename>
            <type>text/plain</type>
            <size>41030</size>
            <attacher>liushuyu011</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQzMjkzMmY3ZDIxMWRkMzA5
M2QwYzQ4ZjBkZTg1MjIwYmVmYWMyN2QuLmQ1MjZhNjQ1MTZjYTEzYTE5OGFkYTE0MjE3ZmU4Y2Fj
OGY4Y2E4MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjEtMTAtMjAgIFppeGluZyBM
aXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdXBwb3J0
IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4gY3VzdG9tIFVS
SSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlc0dUSy50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
Y3BwCisgICAgICAgICogU291cmNlc1dQRS50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwOgorICAgICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRo
b2QpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3Rf
ZmluaXNoX3dpdGhfcmVzcG9uc2UpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmg6ICBBZGRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2Uu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2NsYXNzX2lu
aXQpOiBBZGRlZCBpbml0IGZ1bmN0aW9uIGZvciB0aGUgbmV3IHR5cGUKKyAgICAgICAgKHdlYmtp
dF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rpb24KKyAgICAg
ICAgKHdlYmtpdFVSSVNjaGVtZVJlc3BvbnNlUmVhZENhbGxiYWNrKToKKyAgICAgICAgKHdlYmtp
dFVSSVNjaGVtZVJlc3BvbnNlUmVhZFN0YXJ0KToKKyAgICAgICAgKHdlYmtpdFVSSVNjaGVtZVJl
c3BvbnNlU2V0VGFzayk6CisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRf
c3RhdHVzX2NvZGUpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICh3ZWJraXRfdXJp
X3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzX21lc3NhZ2UpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0
aW9uCisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfYm9keSk6IEFkZGVk
IG5ldyBBUEkgZnVuY3Rpb24KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2VQcml2YXRlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmguCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmg6IFJlZ2lzdGVyIGNsZWFuLXVw
IGZ1bmN0aW9uIGZvciBXZWJraXRVUklTY2hlbWVSZXNwb25zZQorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaDogQWRkZWQgZnVuY3Rpb24gcHJvdG90
eXBlIGZvciAKKyAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRo
b2QKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4w
LXNlY3Rpb25zLnR4dDogQWRkZWQgbmV3IHN5bWJvbHMgYW5kIG5ldyB0eXBlcworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaDogSW5jbHVkZSBhIG5ldyBoZWFkZXI6IFdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlLmgKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRV
UklTY2hlbWVSZXF1ZXN0Lmg6IEFkZGVkIGZ1bmN0aW9uIHByb3RvdHlwZSBmb3IgCisgICAgICAg
IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaDogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS93cGUvd2Via2l0Lmg6IEluY2x1ZGUgYSBuZXcgaGVhZGVyOiBXZWJL
aXRVUklTY2hlbWVSZXNwb25zZS5oCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93
cGUtMS4wLXNlY3Rpb25zLnR4dDogQWRkZWQgbmV3IHN5bWJvbHMgYW5kIG5ldyB0eXBlcworCiAy
MDIxLTEwLTE4ICBKb2huIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KIAogICAgICAgICBb
V2ViQXV0aG5dIE9idGFpbiBjb25zZW50IHRvIGNyZWF0ZSBuZXcgY3JlZGVudGlhbCB3aGVuIHBs
YXRmb3JtIGF1dGhlbnRpY2F0b3IgaW4gZXhjbHVkZWRDcmVkZW50aWFscwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1H
VEsuY21ha2UKaW5kZXggODhjNTYwY2M5ZjYyY2U1YzVlOWNkZWY5ZDQ3MGRlNDdmYWQ0NWFlNC4u
MTQxNzA1YTIwNGUwMjhjMThjNDQyYTBkOTQyOTQzMWFlODg4MWZhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
R1RLLmNtYWtlCkBAIC0xNDYsNiArMTQ2LDcgQEAgc2V0KFdlYktpdDJHVEtfSU5TVEFMTEVEX0hF
QURFUlMKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlcXVl
c3QuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9u
c2UuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklT
Y2hlbWVSZXNwb25zZS5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRVUklVdGlsaXRpZXMuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VXNlckNvbnRlbnQuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCBm
NGNkNWJlZjQwMmIwYzYzZTFmYmI3YTA3MTMyOTAwY2U2ZjczOGJiLi4wZmIzZTNlNzgwNmM5OGIx
OGViMzQ0YTAzNWEzOGM1OTBlNTg3MTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTE3
Niw2ICsxNzYsNyBAQCBzZXQoV1BFX0FQSV9JTlNUQUxMRURfSEVBREVSUwogICAgICR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJUmVxdWVzdC5oCiAgICAgJHtXRUJLSVRf
RElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklSZXNwb25zZS5oCiAgICAgJHtXRUJLSVRf
RElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKKyAgICAke1dF
QktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKICAg
ICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVV0aWxpdGllcy5oCiAg
ICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVc2VyQ29udGVudC5oCiAg
ICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVc2VyQ29udGVudEZpbHRl
clN0b3JlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CmluZGV4IDVjOTU0ZWVmOWFlMWIyZjk0ZWYwMDhiMmEz
OGFmODg5NGIwYzlhYzUuLmYyMTI0NmYwMGMxOGYyMzgxZmNlZTczMTdmOTY0OWYxYjY2MWUzNDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzR1RLLnR4dApAQCAtMTczLDYgKzE3Myw3IEBAIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRTZWN1cml0eU9yaWdpbi5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0U2V0dGluZ3MuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJ
Q2xpZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVS
ZXF1ZXN0LmNwcCBAbm8tdW5pZnkKK1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVS
ZXNwb25zZS5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJVXRpbGl0
aWVzLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudC5j
cHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJT
dG9yZS5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAppbmRleCA4YTFjMzBmMzJmM2I5MzUw
YTMwNmJlZjUzMGVjYjMzNDBjMWYyOWM3Li45NDQxOWRkODZmMDc5YzVjNTNlNjhjZThlNzliOTE1
NTA1YTg3YWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKQEAgLTE2NCw2ICsxNjQsNyBAQCBVSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0U2VjdXJpdHlPcmlnaW4uY3BwIEBuby11bmlmeQogVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRVSUNsaWVudC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdC5jcHAgQG5vLXVuaWZ5CitVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
VVJJU2NoZW1lUmVzcG9uc2UuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVSSVV0aWxpdGllcy5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNl
ckNvbnRlbnQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVzZXJDb250
ZW50RmlsdGVyU3RvcmUuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcAppbmRleCA2
YTBkNTljMTAyODllMWI4MGNhMmExNTVlNDZlN2RkOTg5ZjVlOWYxLi40YWYwMjFkNzg0Y2FhY2Q5
ZjJkODczNTFjNmYyZmVjZTRmOGI0ODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcApAQCAtNzAs
NiArNzAsNyBAQCBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlIHsKICAgICBj
aGFyIHJlYWRCdWZmZXJbZ1JlYWRCdWZmZXJTaXplXTsKICAgICB1aW50NjRfdCBieXRlc1JlYWQ7
CiAgICAgQ1N0cmluZyBjb250ZW50VHlwZTsKKyAgICBjb25zdCBjaGFyKiBodHRwTWV0aG9kOwog
fTsKIAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QsIHdlYmtpdF91
cmlfc2NoZW1lX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1QpCkBAIC0xNjEsNiArMTYyLDI2IEBAIFdl
YktpdFdlYlZpZXcqIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3KFdlYktp
dFVSSVNjaGVtZVJlcXVlc3QqIHJlCiAgICAgcmV0dXJuIHdlYmtpdFdlYkNvbnRleHRHZXRXZWJW
aWV3Rm9yUGFnZShyZXF1ZXN0LT5wcml2LT53ZWJDb250ZXh0LCByZXF1ZXN0LT5wcml2LT5pbml0
aWF0aW5nUGFnZS5nZXQoKSk7CiB9CiAKKy8qKgorICogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9nZXRfaHR0cF9tZXRob2Q6CisgKiBAcmVxdWVzdDogYSAjV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dAorICoKKyAqIEdldCB0aGUgSFRUUCBtZXRob2Qgb2YgdGhlIEByZXF1ZXN0CisgKgorICogUmV0
dXJuczogdGhlIEhUVFAgbWV0aG9kIG9mIHRoZSBAcmVxdWVzdAorICogCisgKiBTaW5jZTogMi4z
NgorICovCitjb25zdCBnY2hhciogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9t
ZXRob2QoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVFVRVNUKHJlcXVlc3QpLCBudWxscHRy
KTsKKworICAgIGlmICghcmVxdWVzdC0+cHJpdi0+aHR0cE1ldGhvZCkKKyAgICAgICAgcmVxdWVz
dC0+cHJpdi0+aHR0cE1ldGhvZCA9IGdfaW50ZXJuX3N0cmluZyhyZXF1ZXN0LT5wcml2LT50YXNr
LT5yZXF1ZXN0KCkuaHR0cE1ldGhvZCgpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgcmV0dXJuIHJl
cXVlc3QtPnByaXYtPmh0dHBNZXRob2Q7Cit9CisKIHN0YXRpYyB2b2lkIHdlYmtpdFVSSVNjaGVt
ZVJlcXVlc3RSZWFkQ2FsbGJhY2soR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVz
dWx0KiByZXN1bHQsIFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHNjaGVtZVJlcXVlc3QpCiB7CiAg
ICAgR1JlZlB0cjxXZWJLaXRVUklTY2hlbWVSZXF1ZXN0PiByZXF1ZXN0ID0gYWRvcHRHUmVmKHNj
aGVtZVJlcXVlc3QpOwpAQCAtMjIzLDYgKzI0NCwyNCBAQCB2b2lkIHdlYmtpdF91cmlfc2NoZW1l
X3JlcXVlc3RfZmluaXNoKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIEdJbnB1dFN0
cgogICAgICAgICByZWludGVycHJldF9jYXN0PEdBc3luY1JlYWR5Q2FsbGJhY2s+KHdlYmtpdFVS
SVNjaGVtZVJlcXVlc3RSZWFkQ2FsbGJhY2spLCBnX29iamVjdF9yZWYocmVxdWVzdCkpOwogfQog
CisvKioKKyAqIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX3dpdGhfcmVzcG9uc2U6
CisgKiBAcmVxdWVzdDogYSAjV2ViS2l0VVJJU2NoZW1lUmVxdWVzdAorICogQHJlc3BvbnNlOiBh
ICNXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICoKKyAqIEZpbmlzaCBhICNXZWJLaXRVUklTY2hl
bWVSZXF1ZXN0IGJ5IHJldHVybmluZyBhICNXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICoKKyAq
IFNpbmNlOiAyLjM2CisgKi8KK3ZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hf
d2l0aF9yZXNwb25zZShXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCBXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRf
SVNfVVJJX1NDSEVNRV9SRVFVRVNUKHJlcXVlc3QpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKFdF
QktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFKHJlc3BvbnNlKSk7CisKKyAgICB3ZWJraXRVUklT
Y2hlbWVSZXNwb25zZVNldFRhc2socmVzcG9uc2UsIHJlcXVlc3QtPnByaXYtPnRhc2spOworICAg
IHdlYmtpdFVSSVNjaGVtZVJlc3BvbnNlUmVhZFN0YXJ0KHJlc3BvbnNlKTsKK30KKwogLyoqCiAg
KiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcjoKICAqIEByZXF1ZXN0OiBh
ICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUuaApp
bmRleCAwMTg0OWUxNTc2OTQzNTE5ZDgxMjk0Njk4ZDc1ZWIyNmYyMjk5ZDNhLi43MDc3OTAwMTkz
NDk5NmVhMjk4ZjI2MTMwOWYzNmFiZDljNTliY2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQ
cml2YXRlLmgKQEAgLTIwLDYgKzIwLDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlc3BvbnNl
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJQ
YWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNrLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNw
b25zZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDcwOGZiNDNiYzMxYzVjN2JjOGExN2Q5N2M2YjBlMWU2NjU2
MDc4MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmNwcApAQCAtMCwwICsxLDE5MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBaaXhpbmcgTGl1CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUuaCIKKworI2luY2x1ZGUgIkFQSURhdGEu
aCIKKyNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViVVJMU2NoZW1lVGFz
ay5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUFBhcnNlcnMuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL2dsaWIvUnVuTG9vcFNvdXJjZVByaW9yaXR5Lmg+CisjaW5jbHVkZSA8d3RmL2ds
aWIvV1RGR1R5cGUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworLyoqCisgKiBTRUNU
SU9OOiBXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICogQFNob3J0X2Rlc2NyaXB0aW9uOiBSZXBy
ZXNlbnRzIGEgVVJJIHNjaGVtZSByZXNwb25zZQorICogQFRpdGxlOiBXZWJLaXRVUklTY2hlbWVS
ZXNwb25zZQorICoKKyAqIElmIHlvdSByZWdpc3RlciBhIHBhcnRpY3VsYXIgVVJJIHNjaGVtZSBp
biBhICNXZWJLaXRXZWJDb250ZXh0LAorICogdXNpbmcgd2Via2l0X3dlYl9jb250ZXh0X3JlZ2lz
dGVyX3VyaV9zY2hlbWUoKSwgeW91IGhhdmUgdG8gcHJvdmlkZQorICogYSAjV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdENhbGxiYWNrLiBBZnRlciB0aGF0LCB3aGVuIGEgVVJJIHJlc3BvbnNlCisgKiBp
cyBtYWRlIHdpdGggdGhhdCBwYXJ0aWN1bGFyIHNjaGVtZSwgeW91ciBjYWxsYmFjayB3aWxsIGJl
CisgKiBjYWxsZWQuIFRoZXJlIHlvdSB3aWxsIGJlIGFibGUgdG8gcHJvdmlkZSBtb3JlIHJlc3Bv
bnNlIHBhcmFtZXRlcnMKKyAqIHdoZW4gdGhlIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgb2YgYSAj
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdCBpcyBub3QKKyAqIGVub3VnaC4KKyAqIAorICogV2hlbiB5
b3UgZmluaXNoZWQgc2V0dGluZyB1cCB5b3VyICNXZWJLaXRVUklTY2hlbWVSZXNwb25zZSwgY2Fs
bAorICogd2Via2l0X3VyaV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlIHdpdGggaXQgdG8g
cmV0dXJuIHRoZSByZXNwb25zZS4KKyAqCisgKi8KKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGdS
ZWFkQnVmZmVyU2l6ZSA9IDgxOTI7CisKK3N0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQ
cml2YXRlIHsKKyAgICBSZWZQdHI8V2ViVVJMU2NoZW1lVGFzaz4gdGFzazsKKworICAgIEdSZWZQ
dHI8R0lucHV0U3RyZWFtPiBzdHJlYW07CisgICAgdWludDY0X3Qgc3RyZWFtTGVuZ3RoOworICAg
IEdSZWZQdHI8R0NhbmNlbGxhYmxlPiBjYW5jZWxsYWJsZTsKKyAgICBjaGFyIHJlYWRCdWZmZXJb
Z1JlYWRCdWZmZXJTaXplXTsKKyAgICB1aW50NjRfdCBieXRlc1JlYWQ7CisKKyAgICBpbnQgc3Rh
dHVzQ29kZTsKKyAgICBDU3RyaW5nIHN0YXR1c01lc3NhZ2U7CisgICAgQ1N0cmluZyBjb250ZW50
VHlwZTsKK307CisKK1dFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRVUklTY2hlbWVSZXNwb25zZSwg
d2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2UsIEdfVFlQRV9PQkpFQ1QpOworCitzdGF0aWMgdm9p
ZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9jbGFzc19pbml0KFdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlQ2xhc3MqKQoreworfQorCitXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogd2Via2l0X3Vy
aV9zY2hlbWVfcmVzcG9uc2VfbmV3KCkKK3sKKyAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSog
cmVzcG9uc2UgPSBXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRShnX29iamVjdF9uZXcoV0VCS0lU
X1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSwgbnVsbHB0cikpOworICAgIHJlc3BvbnNlLT5wcml2
LT5zdGF0dXNDb2RlID0gMjAwOworICAgIHJldHVybiByZXNwb25zZTsKK30KKwordm9pZCB3ZWJr
aXRVUklTY2hlbWVSZXNwb25zZVJlYWRDYWxsYmFjayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFt
LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHNjaGVtZVJl
c3BvbnNlKQoreworICAgIEdSZWZQdHI8V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2U+IHJlc3BvbnNl
ID0gYWRvcHRHUmVmKHNjaGVtZVJlc3BvbnNlKTsKKyAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4g
ZXJyb3I7CisgICAgZ3NzaXplIGJ5dGVzUmVhZCA9IGdfaW5wdXRfc3RyZWFtX3JlYWRfZmluaXNo
KGlucHV0U3RyZWFtLCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSk7CisgICAgaWYgKGJ5dGVzUmVh
ZCA9PSAtMSkgeworICAgICAgICAvLyBUT0RPOiBob3cgdG8gaGFuZGxlIHRoaXMgZXJyb3I/Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZh
dGUqIHByaXYgPSByZXNwb25zZS0+cHJpdjsKKyAgICAvLyBOZWVkIHRvIGNoZWNrIHRoZSBzdHJl
YW0gYmVmb3JlIHByb2NlZWRpbmcgYXMgaXQgY2FuIGJlIGNhbmNlbGxlZCBpZiBmaW5pc2hfZXJy
b3IKKyAgICAvLyB3YXMgcHJldmlvdXNseSBjYWxsLCB3aGljaCB3b24ndCBiZSBkZXRlY3RlZCBi
eSBnX2lucHV0X3N0cmVhbV9yZWFkX2ZpbmlzaCgpLgorICAgIGlmICghcHJpdi0+c3RyZWFtKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXByaXYtPmJ5dGVzUmVhZCkgeworICAgICAgICBS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgZXh0
cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShwcml2LT5jb250ZW50VHlwZS5kYXRhKCkpLCBwcml2
LT5zdHJlYW1MZW5ndGgsIGVtcHR5U3RyaW5nKCkpOworICAgICAgICByZXNwb25zZS5zZXRUZXh0
RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShwcml2LT5jb250ZW50VHlw
ZS5kYXRhKCkpKTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUocHJpdi0+c3Rh
dHVzQ29kZSk7CisgICAgICAgIGlmICghcHJpdi0+c3RhdHVzTWVzc2FnZS5pc051bGwoKSkKKyAg
ICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KHByaXYtPnN0YXR1c01lc3NhZ2Uu
ZGF0YSgpKTsKKyAgICAgICAgZWxzZSBpZiAocHJpdi0+c3RhdHVzQ29kZSA+PSAwKQorICAgICAg
ICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoc291cF9zdGF0dXNfZ2V0X3BocmFzZSgo
Z3VpbnQpcHJpdi0+c3RhdHVzQ29kZSkpOworICAgICAgICBpZiAocmVzcG9uc2UubWltZVR5cGUo
KS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXNwb25zZS5zZXRNaW1lVHlwZShNSU1FVHlwZVJl
Z2lzdHJ5OjptaW1lVHlwZUZvclBhdGgocmVzcG9uc2UudXJsKCkucGF0aCgpLnRvU3RyaW5nKCkp
KTsKKyAgICAgICAgcHJpdi0+dGFzay0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKKyAg
ICB9CisKKyAgICBpZiAoIWJ5dGVzUmVhZCkgeworICAgICAgICBwcml2LT50YXNrLT5kaWRDb21w
bGV0ZSh7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcHJpdi0+dGFzay0+ZGlk
UmVjZWl2ZURhdGEoU2hhcmVkQnVmZmVyOjpjcmVhdGUocHJpdi0+cmVhZEJ1ZmZlciwgYnl0ZXNS
ZWFkKSk7CisgICAgcHJpdi0+Ynl0ZXNSZWFkICs9IGJ5dGVzUmVhZDsKKyAgICBnX2lucHV0X3N0
cmVhbV9yZWFkX2FzeW5jKGlucHV0U3RyZWFtLCBwcml2LT5yZWFkQnVmZmVyLCBnUmVhZEJ1ZmZl
clNpemUsIFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6QXN5bmNJT05ldHdvcmssIHByaXYtPmNhbmNl
bGxhYmxlLmdldCgpLAorICAgICAgICByZWludGVycHJldF9jYXN0PEdBc3luY1JlYWR5Q2FsbGJh
Y2s+KHdlYmtpdFVSSVNjaGVtZVJlc3BvbnNlUmVhZENhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJl
c3BvbnNlLmdldCgpKSk7Cit9CisKK3ZvaWQgd2Via2l0VVJJU2NoZW1lUmVzcG9uc2VSZWFkU3Rh
cnQoV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHNjaGVtZVJlc3BvbnNlKQoreworICAgIGdfaW5w
dXRfc3RyZWFtX3JlYWRfYXN5bmMoc2NoZW1lUmVzcG9uc2UtPnByaXYtPnN0cmVhbS5nZXQoKSwg
c2NoZW1lUmVzcG9uc2UtPnByaXYtPnJlYWRCdWZmZXIsIGdSZWFkQnVmZmVyU2l6ZSwgUnVuTG9v
cFNvdXJjZVByaW9yaXR5OjpBc3luY0lPTmV0d29yaywgc2NoZW1lUmVzcG9uc2UtPnByaXYtPmNh
bmNlbGxhYmxlLmdldCgpLAorICAgICAgICByZWludGVycHJldF9jYXN0PEdBc3luY1JlYWR5Q2Fs
bGJhY2s+KHdlYmtpdFVSSVNjaGVtZVJlc3BvbnNlUmVhZENhbGxiYWNrKSwgZ19vYmplY3RfcmVm
KHNjaGVtZVJlc3BvbnNlKSk7Cit9CisKK3ZvaWQgd2Via2l0VVJJU2NoZW1lUmVzcG9uc2VTZXRU
YXNrKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKiBzY2hlbWVSZXNwb25zZSwgUmVmUHRyPFdlYlVS
TFNjaGVtZVRhc2s+IHRhc2spCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfVVJJ
X1NDSEVNRV9SRVNQT05TRShzY2hlbWVSZXNwb25zZSkpOworICAgIHNjaGVtZVJlc3BvbnNlLT5w
cml2LT50YXNrID0gdGFzazsKK30KKworLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25z
ZV9zZXRfc3RhdHVzX2NvZGU6CisgKiBAcmVzcG9uc2U6IGEgI1dlYktpdFVSSVNjaGVtZVJlc3Bv
bnNlCisgKiBAc3RhdHVzX2NvZGU6IHRoZSBIVFRQIHN0YXR1cyBjb2RlIHRvIGJlIHJldHVybmVk
CisgKgorICogU2V0cyB0aGUgc3RhdHVzIGNvZGUgZm9yIHRoZSBAcmVzcG9uc2UKKyAqCisgKiBT
aW5jZTogMi4zNgorICovCit2b2lkIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0
dXNfY29kZShXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UsIGdpbnQgc3RhdHVzQ29k
ZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNF
KHJlc3BvbnNlKSk7CisKKyAgICByZXNwb25zZS0+cHJpdi0+c3RhdHVzQ29kZSA9IHN0YXR1c0Nv
ZGU7Cit9CisKKy8qKgorICogd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1c19t
ZXNzYWdlOgorICogQHJlc3BvbnNlOiBhICNXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICogQHN0
YXR1c19tZXNzYWdlOiB0aGUgSFRUUCBzdGF0dXMgbWVzc2FnZSB0byBiZSByZXR1cm5lZAorICoK
KyAqIFNldHMgdGhlIHN0YXR1cyBtZXNzYWdlIGZvciB0aGUgQHJlc3BvbnNlCisgKgorICogU2lu
Y2U6IDIuMzYKKyAqLwordm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVz
X21lc3NhZ2UoV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3BvbnNlLCBjb25zdCBnY2hhciog
c3RhdHVzTWVzc2FnZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NI
RU1FX1JFU1BPTlNFKHJlc3BvbnNlKSk7CisKKyAgICByZXNwb25zZS0+cHJpdi0+c3RhdHVzTWVz
c2FnZSA9IHN0YXR1c01lc3NhZ2U7Cit9CisKKy8qKgorICogd2Via2l0X3VyaV9zY2hlbWVfcmVz
cG9uc2Vfc2V0X3N0YXR1c19ib2R5OgorICogQHJlc3BvbnNlOiBhICNXZWJLaXRVUklTY2hlbWVS
ZXNwb25zZQorICogQHN0cmVhbTogYSAjR0lucHV0U3RyZWFtIHRvIHJlYWQgdGhlIGNvbnRlbnRz
IG9mIHRoZSByZXF1ZXN0CisgKiBAc3RyZWFtX2xlbmd0aDogdGhlIGxlbmd0aCBvZiB0aGUgc3Ry
ZWFtIG9yIC0xIGlmIG5vdCBrbm93bgorICogQGNvbnRlbnRfdHlwZTogKGFsbG93LW5vbmUpOiB0
aGUgY29udGVudCB0eXBlIG9mIHRoZSBzdHJlYW0gb3IgJU5VTEwgaWYgbm90IGtub3duCisgKgor
ICogU2V0cyB0aGUgc3RhdHVzIG1lc3NhZ2UgZm9yIHRoZSBAcmVzcG9uc2UKKyAqCisgKiBTaW5j
ZTogMi4zNgorICovCit2b2lkIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9ib2R5KFdl
YktpdFVSSVNjaGVtZVJlc3BvbnNlKiByZXNwb25zZSwgR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVh
bSwgZ2ludDY0IHN0cmVhbUxlbmd0aCwgY29uc3QgZ2NoYXIqIGNvbnRlbnRUeXBlKQoreworICAg
IC8vIGNvcGllZCBmcm9tIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoCisgICAgZ19y
ZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRShyZXNwb25zZSkpOwor
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoR19JU19JTlBVVF9TVFJFQU0oaW5wdXRTdHJlYW0pKTsKKyAg
ICBnX3JldHVybl9pZl9mYWlsKHN0cmVhbUxlbmd0aCA9PSAtMSB8fCBzdHJlYW1MZW5ndGggPj0g
MCk7CisKKyAgICByZXNwb25zZS0+cHJpdi0+c3RyZWFtID0gaW5wdXRTdHJlYW07CisgICAgLy8g
V2UgdXNlIC0xIGluIHRoZSBBUEkgZm9yIGNvbnNpc3RlbmN5IHdpdGggc291cCB3aGVuIHRoZSBj
b250ZW50IGxlbmd0aCBpcyBub3Qga25vd24sIGJ1dCAwIGludGVybmFsbHkuCisgICAgcmVzcG9u
c2UtPnByaXYtPnN0cmVhbUxlbmd0aCA9IHN0cmVhbUxlbmd0aCA9PSAtMSA/IDAgOiBzdHJlYW1M
ZW5ndGg7CisgICAgcmVzcG9uc2UtPnByaXYtPmNhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdfY2Fu
Y2VsbGFibGVfbmV3KCkpOworICAgIHJlc3BvbnNlLT5wcml2LT5ieXRlc1JlYWQgPSAwOworICAg
IHJlc3BvbnNlLT5wcml2LT5jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklT
Y2hlbWVSZXNwb25zZVByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTcxYmMwMDYwMjFjYTBiMDYxM2Zl
Mzg4N2VmZjFjMmZjZDNiMmMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlLmgKQEAgLTAsMCAr
MSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBaaXhpbmcgTGl1CisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJXZWJL
aXRXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2Vi
VVJMU2NoZW1lVGFzay5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisK
K3ZvaWQgd2Via2l0VVJJU2NoZW1lUmVzcG9uc2VSZWFkQ2FsbGJhY2soR0lucHV0U3RyZWFtKiwg
R0FzeW5jUmVzdWx0KiwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqKTsKK3ZvaWQgd2Via2l0VVJJ
U2NoZW1lUmVzcG9uc2VSZWFkU3RhcnQoV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqKTsKK3ZvaWQg
d2Via2l0VVJJU2NoZW1lUmVzcG9uc2VTZXRUYXNrKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKiwg
UmVmUHRyPFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzaz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKaW5kZXggYTRhYWZkNzNm
YjJhYTdkODNiNWEzZjM2OWEwMmU2MWU4NjBkZDI0ZS4uMjVkZjdkMDc4NWNmOGY2ZDk1OGVlZDg4
MDZhZGMyMzcwYzMzODNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oCkBAIC02Miw2ICs2Miw3IEBAIEdfREVGSU5FX0FV
VE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRTZXR0aW5ncywgZ19vYmplY3RfdW5yZWYpCiBHX0RF
RklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJUmVxdWVzdCwgZ19vYmplY3RfdW5y
ZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJUmVzcG9uc2UsIGdf
b2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVNj
aGVtZVJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZV
TkMgKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FV
VE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLCBnX29iamVj
dF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyQ29udGVu
dE1hbmFnZXIsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMg
KFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVS
ZXF1ZXN0LmgKaW5kZXggZDJiMDZhMTRkYzVhMjA3ZTg3NTY0YTBlYmMzNWJjYzEzOWIxZWM0ZS4u
MmI4OGFhNmE4OTc4NDdiYTE0ZjZlODkyMjQ2MzA3Njg1ZjNkZTk5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0
LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUg
PHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2Fy
ZERlY2xhcmF0aW9ucy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2UuaD4KIAogR19CRUdJTl9ERUNMUwogCkBAIC03MSwxMiArNzIsMTkgQEAgd2Via2l0X3VyaV9z
Y2hlbWVfcmVxdWVzdF9nZXRfcGF0aCAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVl
c3QpOwogV0VCS0lUX0FQSSBXZWJLaXRXZWJWaWV3ICoKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZ2V0X3dlYl92aWV3IChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKIAorV0VC
S0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRw
X21ldGhvZCAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CisKIFdFQktJVF9BUEkg
dm9pZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2ggICAgICAgKFdlYktpdFVSSVNj
aGVtZVJlcXVlc3QgKnJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0lucHV0U3RyZWFtICAgICAgICAgICAqc3RyZWFtLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdpbnQ2NCAgICAgICAgICAgICAgICAgIHN0cmVhbV9sZW5n
dGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIg
ICAgICAgICAgICAqY29udGVudF90eXBlKTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJp
X3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlIChXZWJLaXRVUklTY2hlbWVSZXF1
ZXN0ICAqcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSk7CisKIFdFQktJVF9BUEkg
dm9pZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3IgKFdlYktpdFVSSVNj
aGVtZVJlcXVlc3QgKnJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0Vycm9yICAgICAgICAgICAgICAgICAqZXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBjMjMyNjMyODllOTkzZjVlZGIxYzA1NGFkYjIxNTMwYjVjOTY0ZTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNj
aGVtZVJlc3BvbnNlLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBaaXhpbmcgTGl1CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmlu
ZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+
IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZV9oCisjZGVmaW5lIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlX2gKKworI2lu
Y2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+
CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGb3J3YXJkRGVjbGFyYXRpb25zLmg+CisKK0dfQkVH
SU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFICAgICAg
ICAgICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2dldF90eXBlKCkpCisjZGVmaW5lIFdF
QktJVF9VUklfU0NIRU1FX1JFU1BPTlNFKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lO
U1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UsIFdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9O
U0Uob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lU
X1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSkpCisjZGVmaW5lIFdFQktJVF9VUklfU0NIRU1FX1JF
U1BPTlNFX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwg
IFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UsIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRV9DTEFTUyhrbGFz
cykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9VUklfU0NI
RU1FX1JFU1BPTlNFKSkKKyNkZWZpbmUgV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfR0VUX0NM
QVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVf
VVJJX1NDSEVNRV9SRVNQT05TRSwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcykpCisKK3R5
cGVkZWYgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZSAgICAgICAgV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2U7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFz
cyAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZTsK
Kworc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZSB7CisgICAgR09iamVjdCBwYXJlbnQ7
CisKKyAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1
Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJl
bnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307
CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2dldF90eXBl
ICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2Ug
Kgord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfbmV3ICAgICAgICAgICAgICAgICh2b2lkKTsK
KworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVz
X2NvZGUgICAgKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCBzdGF0dXNfY29kZSk7CisK
K1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1c19t
ZXNzYWdlIChXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9uc2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpzdGF0dXNfbWVz
c2FnZSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0
X2JvZHkgICAgICAgICAgIChXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9uc2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJbnB1dFN0cmVhbSAg
ICAgICAgICAgICppbnB1dF9zdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdpbnQ2NCAgICAgICAgICAgICAgICAgICBzdHJlYW1fbGVuZ3RoLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hh
ciAgICAgICAgICAgICAqY29udGVudF90eXBlKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay00LjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2Nz
L3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCAxYmFiYjkzOWZjZWMxNmY5NDkzNGFm
Mzg4ZTQxNmU5MDNiZTFlZTg3Li5mNWE0Nzk3ZDJjNzdlMGM2MTI1ZjQxYjhkNGEyOTRlOWM0ZTA5
ODRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKQEAgLTEyNzcsNyArMTI3Nyw5
IEBAIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3NjaGVtZQogd2Via2l0X3VyaV9zY2hl
bWVfcmVxdWVzdF9nZXRfdXJpCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9wYXRoCiB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmlldword2Via2l0X3VyaV9zY2hlbWVf
cmVxdWVzdF9nZXRfaHR0cF9tZXRob2QKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNo
Cit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlCiB3ZWJraXRf
dXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcgogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4K
QEAgLTEyOTAsMTAgKzEyOTIsMzMgQEAgV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVRVUVTVF9DTEFT
UwogV0VCS0lUX1VSSV9TQ0hFTUVfUkVRVUVTVF9HRVRfQ0xBU1MKIAogPFNVQlNFQ1RJT04gUHJp
dmF0ZT4KK1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlCiBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJp
dmF0ZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCis8
U0VDVElPTj4KKzxGSUxFPldlYktpdFVSSVNjaGVtZVJlc3BvbnNlPC9GSUxFPgorV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2UKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldword2Via2l0X3Vy
aV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1c19jb2RlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNw
b25zZV9zZXRfc3RhdHVzX21lc3NhZ2UKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9i
b2R5CisKKzxTVUJTRUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFz
cworV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRQorV0VCS0lUX1VSSV9TQ0hFTUVfUkVT
UE9OU0UKK1dFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfVVJJX1NDSEVNRV9S
RVNQT05TRV9DTEFTUworV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1MKK1dFQktJ
VF9VUklfU0NIRU1FX1JFU1BPTlNFX0dFVF9DTEFTUworCis8U1VCU0VDVElPTiBQcml2YXRlPgor
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25z
ZV9nZXRfdHlwZQorPC9TRUNUSU9OPgorCiA8U0VDVElPTj4KIDxGSUxFPldlYktpdFZlcnNpb248
L0ZJTEU+CiB3ZWJraXRfZ2V0X21ham9yX3ZlcnNpb24KQEAgLTE5ODUsNCArMjAxMCwzIEBAIHdl
YmtpdF9tZW1vcnlfcHJlc3N1cmVfc2V0dGluZ3NfZ2V0X3R5cGUKIDxTVUJTRUNUSU9OIFN0YW5k
YXJkPgogV0VCS0lUX1RZUEVfTUVNT1JZX1BSRVNTVVJFX1NFVFRJTkdTCiA8L1NFQ1RJT04+Ci0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQy
Z3RrLTQuMC50eXBlcyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJr
aXQyZ3RrLTQuMC50eXBlcwppbmRleCA0OTM3YWJiNTY0ODczY2UwNmViNjQzMTU5MWRlMzFkY2Ix
ZDBjNTUxLi5lZjZlOGFkNjU5NTY1OWMwZDUwZjVjNjJkMzUwNWEyMTZiNzBhZjI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAu
dHlwZXMKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJn
dGstNC4wLnR5cGVzCkBAIC0xOSw2ICsxOSw3IEBAIHdlYmtpdF9wbHVnaW5fZ2V0X3R5cGUKIHdl
YmtpdF9taW1lX2luZm9fZ2V0X3R5cGUKIHdlYmtpdF93ZWJfaW5zcGVjdG9yX2dldF90eXBlCiB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF90eXBlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNw
b25zZV9nZXRfdHlwZQogd2Via2l0X2NvbnRleHRfbWVudV9nZXRfdHlwZQogd2Via2l0X2NvbnRl
eHRfbWVudV9pdGVtX2dldF90eXBlCiB3ZWJraXRfd2ViX2V4dGVuc2lvbl9nZXRfdHlwZQpAQCAt
NDIsNCArNDMsNCBAQCB3ZWJraXRfb3B0aW9uX21lbnVfaXRlbV9nZXRfdHlwZQogd2Via2l0X2Rl
dmljZV9pbmZvX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQogd2Via2l0X2dlb2xvY2F0aW9u
X21hbmFnZXJfZ2V0X3R5cGUKIHdlYmtpdF9nZW9sb2NhdGlvbl9wb3NpdGlvbl9nZXRfdHlwZQot
d2Via2l0X3BvaW50ZXJfbG9ja19wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCit3ZWJraXRfcG9pbnRlcl9sb2NrX3Blcm1pc3Npb25fcmVxdWVz
dF9nZXRfdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstZG9jcy5zZ21sIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCmluZGV4IDQxMWVlNjRkODMzMzNmMDUyMzA2YzVi
OTlkMDczYmI0Mjc5NzhhNjUuLmUxMmM3ZGI1Yzc5NmZjNThjYTg2MmQwNjJiYWM3MWM4MDhlYTYw
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJr
aXQyZ3RrLWRvY3Muc2dtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2Rv
Y3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKQEAgLTQ1LDYgKzQ1LDcgQEAKICAgICA8eGk6aW5jbHVk
ZSBocmVmPSJ4bWwvV2ViS2l0UGx1Z2luLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9Inht
bC9XZWJLaXRXZWJJbnNwZWN0b3IueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dl
YktpdFVSSVNjaGVtZVJlcXVlc3QueG1sIi8+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dl
YktpdFVSSVNjaGVtZVJlc3BvbnNlLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9X
ZWJLaXRWZXJzaW9uLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRDb250
ZXh0TWVudS54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0Q29udGV4dE1l
bnVJdGVtLnhtbCIvPgpAQCAtMTcwLDUgKzE3MSwxMCBAQAogICAgIDx4aTppbmNsdWRlIGhyZWY9
InhtbC9hcGktaW5kZXgtMi4zMC54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KICAg
PC9pbmRleD4KIAorICA8aW5kZXggaWQ9ImFwaS1pbmRleC0yLTM2IiByb2xlPSIyLjM2Ij4KKyAg
ICA8dGl0bGU+SW5kZXggb2YgbmV3IHN5bWJvbHMgaW4gMi4zNjwvdGl0bGU+CisgICAgPHhpOmlu
Y2x1ZGUgaHJlZj0ieG1sL2FwaS1pbmRleC0yLjM2LnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTpp
bmNsdWRlPgorICA8L2luZGV4PgorCiAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hbm5vdGF0aW9u
LWdsb3NzYXJ5LnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRlPgogPC9ib29rPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAppbmRleCBiN2QyNzQxYzRiMmMx
YWQ0ZTM0YTFmYWI0OGZlYzYxYWYxYzYxMDJkLi41Y2Q5NTI0MjUyYTk3ZDRlYTY0ZGZlYjIyZTVh
NDdiNTVmMzZjODg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L3dlYmtpdDIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIu
aApAQCAtNzgsNiArNzgsNyBAQAogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJUmVxdWVzdC5o
PgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJUmVzcG9uc2UuaD4KICNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVS
SVNjaGVtZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklVdGlsaXRpZXMu
aD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVzZXJDb250ZW50Lmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEF1dG9jbGVhbnVwcy5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRBdXRvY2xlYW51cHMuaAppbmRleCA3N2FiNzdi
Yzk4NGU3MGQzZmFjZTAwMzNmMTI0MmQyNmM0MDJkMGI2Li41ZTIwZjQzNWUyMzFkZTRmOTVmMmU3
YTFlNGY5OTg5ODdhNjhjYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdEF1dG9jbGVhbnVwcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0QXV0b2NsZWFudXBzLmgKQEAgLTU2LDYgKzU2LDcgQEAgR19ERUZJTkVf
QVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFNldHRpbmdzLCBnX29iamVjdF91bnJlZikKIEdf
REVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVUklSZXF1ZXN0LCBnX29iamVjdF91
bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVUklSZXNwb25zZSwg
Z19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBf
RlVOQyAoV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVf
QVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUsIGdfb2Jq
ZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJDb250
ZW50TWFuYWdlciwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVO
QyAoV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVS
ZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVt
ZVJlcXVlc3QuaAppbmRleCA4ZWJlZGE0ZTc3ZjFiYmQxOGUxY2JkYWRjM2Y3ZjI0NmUwOTkxN2Ix
Li4yZGRhYmE4NWI4NmFjNTI3Y2NhNzIzM2YyNWI2YjE3NTIwMGQxOTRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuaApAQCAtNzIsNiArNzIsOSBAQCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9wYXRo
ICAgICAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CiBXRUJLSVRfQVBJIFdlYktp
dFdlYlZpZXcgKgogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcgKFdlYktp
dFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOwogCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoK
K3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kIChXZWJLaXRVUklTY2hl
bWVSZXF1ZXN0ICpyZXF1ZXN0KTsKKwogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfdXJpX3NjaGVt
ZV9yZXF1ZXN0X2ZpbmlzaCAgICAgICAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSW5wdXRTdHJlYW0gICAg
ICAgICAgICpzdHJlYW0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFiMGM3M2M4ZmY3
NGE4ZWNjNTQ2YjdkMWZiMGFlNWYyMmRhMWEwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaApAQCAtMCww
ICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIFppeGluZyBMaXUKKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZp
bmVkKF9fV0VCS0lUX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04p
CisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIK
KyNlbmRpZgorCisjaWZuZGVmIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlX2gKKyNkZWZpbmUgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2VfaAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNs
dWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VC
S0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSAgICAgICAgICAgICh3ZWJraXRfdXJpX3NjaGVt
ZV9yZXNwb25zZV9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05T
RShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJL
SVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSkpCisj
ZGVmaW5lIFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFKG9iaikgICAgICAgICAoR19UWVBF
X0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9O
U0UpKQorI2RlZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9DTEFTUyhrbGFzcykgICAg
KEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9VUklfU0NIRU1F
X1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzKSkKKyNkZWZpbmUgV0VCS0lU
X0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
VFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSkpCisjZGVmaW5l
IFdFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RB
TkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UsIFdl
YktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2UgICAgICAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlOwordHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MgICBXZWJLaXRVUklTY2hlbWVSZXNw
b25zZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0
ZSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2UgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2VQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNw
b25zZUNsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAo
Kl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQx
KSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9p
ZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3
ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZSAgICAgICAgICAgKHZvaWQpOworCitX
RUJLSVRfQVBJIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICoKK3dlYmtpdF91cmlfc2NoZW1lX3Jl
c3BvbnNlX25ldyAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1c19jb2RlICAgIChXZWJLaXRVUklTY2hl
bWVSZXNwb25zZSAqcmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdpbnQgc3RhdHVzX2NvZGUpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtp
dF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXNfbWVzc2FnZSAoV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2UgKnJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAqc3RhdHVzX21lc3NhZ2UpOworCitXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9ib2R5ICAgICAgICAgICAoV2ViS2l0
VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHSW5wdXRTdHJlYW0gICAgICAgICAgICAqaW5wdXRfc3RyZWFt
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50NjQg
ICAgICAgICAgICAgICAgICAgc3RyZWFtX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgKmNvbnRlbnRf
dHlwZSk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CmluZGV4IGI4
YjA4ZDJmOTFmMjU2NGNlZjdkYTBiOGVjZWRjOGExMTJkNWJlOTAuLmJjNDI1OWYyNzllZTNhMmY2
NGI1MjdhYjc1YTkxZTM4MGUzZjdiNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKQEAgLTEyMTQsNiAr
MTIxNCw3IEBAIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3NjaGVtZQogd2Via2l0X3Vy
aV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9w
YXRoCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmlldword2Via2l0X3VyaV9z
Y2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
ZmluaXNoCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcgogCkBAIC0xMjMx
LDYgKzEyMzIsMjggQEAgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUKIHdlYmtpdF91cmlf
c2NoZW1lX3JlcXVlc3RfZ2V0X3R5cGUKIDwvU0VDVElPTj4KIAorPFNFQ1RJT04+Cis8RklMRT5X
ZWJLaXRVUklTY2hlbWVSZXNwb25zZTwvRklMRT4KK1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlCit3
ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9uZXcKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNl
X3NldF9zdGF0dXNfY29kZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1c19t
ZXNzYWdlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfYm9keQorCis8U1VCU0VDVElP
TiBTdGFuZGFyZD4KK1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MKK1dFQktJVF9UWVBFX1VS
SV9TQ0hFTUVfUkVTUE9OU0UKK1dFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfSVNf
VVJJX1NDSEVNRV9SRVNQT05TRQorV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1MKK1dF
QktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFX0NMQVNTCitXRUJLSVRfVVJJX1NDSEVNRV9SRVNQ
T05TRV9HRVRfQ0xBU1MKKworPFNVQlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlUHJpdmF0ZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUKKzwvU0VD
VElPTj4KKwogPFNFQ1RJT04+CiA8RklMRT5XZWJLaXRWZXJzaW9uPC9GSUxFPgogd2Via2l0X2dl
dF9tYWpvcl92ZXJzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL2RvY3Mvd3BlLWRvY3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
ZG9jcy93cGUtZG9jcy5zZ21sCmluZGV4IDhlMjU3ZjAyZjExZmViZWNkMmE1NjczYjhlODcwNmQ1
ZWM2YzY4MzkuLmY4NTg5NDY3YmFiNGVhMzQ5OTdlMWI0N2IwMWRkZjQyMWI0NjBmYjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21s
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21s
CkBAIC00MSw2ICs0MSw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdENvb2tp
ZU1hbmFnZXIueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBsdWdpbi54
bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC54
bWwiLz4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2Uu
eG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdENvbnRleHRNZW51LnhtbCIv
PgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRDb250ZXh0TWVudUl0ZW0ueG1sIi8+
CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC54
bWwiLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvd2Via2l0
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL3dlYmtpdC5oCmluZGV4IDVjOTNk
NzYwZjczNGExMmY2MTQ4OTk1NDUxMzVmZGY3NzAxNjQ1NzUuLmMyMjIxZWZjMDA2MThjMmVjNGQy
MGE4OGM1OTg0MDc2N2JkNTJmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvd2Via2l0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS93
ZWJraXQuaApAQCAtNzMsNiArNzMsNyBAQAogI2luY2x1ZGUgPHdwZS9XZWJLaXRVUklSZXF1ZXN0
Lmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d3BlL1dl
YktpdFVSSVNjaGVtZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJU2NoZW1lUmVz
cG9uc2UuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8
d3BlL1dlYktpdFVzZXJDb250ZW50Lmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVzZXJDb250ZW50
RmlsdGVyU3RvcmUuaD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBlMDAyM2EyNDg1MDg5ZGNhMzc5MTY3ODFjODYxMjZiOTcyMjQ2YTVlLi45YWI4
ZDRhNTUwYjFlMjZkZThmM2RlNjc2NmI0ZWZmOWE2OWQ3ODUyIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAt
MjAgIFppeGluZyBMaXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11b
V1BFXSBTdXBwb3J0IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2Qg
aW4gY3VzdG9tIFVSSSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RXZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKHRlc3RXZWJDb250ZXh0VVJJU2NoZW1l
KTogQWRkZWQgdGVzdHMgdG8gdGVzdCBuZXcgcHVibGljIEFQSXMgZm9yIFdlYktpdEd0aworCiAy
MDIxLTEwLTE4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4NDM5OS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3Bw
CmluZGV4IGI5MzZjOGUwNzc1YTE3YWNhYmUyMTI4YWE3MTkzMmU1ZjRkOTBmNDMuLmI0MDM2ZDVh
MjNkNGZhMWQxNDg5ZGU0YmI5NzUyMjYwMmVlNWYwYTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0
LmNwcApAQCAtOTUsMTYgKzk1LDE4IEBAIHB1YmxpYzoKICAgICAgICAgewogICAgICAgICB9CiAK
LSAgICAgICAgVVJJU2NoZW1lSGFuZGxlcihjb25zdCBjaGFyKiByZXBseSwgaW50IHJlcGx5TGVu
Z3RoLCBjb25zdCBjaGFyKiBtaW1lVHlwZSkKKyAgICAgICAgVVJJU2NoZW1lSGFuZGxlcihjb25z
dCBjaGFyKiByZXBseSwgaW50IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1lVHlwZSwgaW50
IHN0YXR1c0NvZGUgPSAyMDApCiAgICAgICAgICAgICA6IHJlcGx5KHJlcGx5KQogICAgICAgICAg
ICAgLCByZXBseUxlbmd0aChyZXBseUxlbmd0aCkKICAgICAgICAgICAgICwgbWltZVR5cGUobWlt
ZVR5cGUpCisgICAgICAgICAgICAsIHN0YXR1c0NvZGUoc3RhdHVzQ29kZSkKICAgICAgICAgewog
ICAgICAgICB9CiAKICAgICAgICAgQ1N0cmluZyByZXBseTsKICAgICAgICAgaW50IHJlcGx5TGVu
Z3RoOwogICAgICAgICBDU3RyaW5nIG1pbWVUeXBlOworICAgICAgICBpbnQgc3RhdHVzQ29kZTsK
ICAgICB9OwogCiAgICAgc3RhdGljIHZvaWQgdXJpU2NoZW1lUmVxdWVzdENhbGxiYWNrKFdlYktp
dFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIGdwb2ludGVyIHVzZXJEYXRhKQpAQCAtMTIwLDYg
KzEyMiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIGdfYXNzZXJ0X25vbm51bGwoc2NoZW1lKTsKICAg
ICAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2hhbmRsZXJzTWFwLmNvbnRhaW5zKFN0cmluZzo6
ZnJvbVVURjgoc2NoZW1lKSkpOwogCisgICAgICAgIGNvbnN0IGNoYXIqIG1ldGhvZCA9IHdlYmtp
dF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kKHJlcXVlc3QpOworICAgICAgICBn
X2Fzc2VydF9ub25udWxsKG1ldGhvZCk7CisgICAgICAgIGdfYXNzZXJ0X2NtcHN0cihtZXRob2Qs
ID09LCAiR0VUIik7CisKKwogICAgICAgICBjb25zdCBVUklTY2hlbWVIYW5kbGVyJiBoYW5kbGVy
ID0gdGVzdC0+bV9oYW5kbGVyc01hcC5nZXQoU3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpKTsKIAog
ICAgICAgICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4gaW5wdXRTdHJlYW0gPSBhZG9wdEdSZWYoZ19t
ZW1vcnlfaW5wdXRfc3RyZWFtX25ldygpKTsKQEAgLTE1Nyw5ICsxNjQsOSBAQCBwdWJsaWM6CiAg
ICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoKHJlcXVlc3QsIGlucHV0U3Ry
ZWFtLmdldCgpLCBoYW5kbGVyLnJlcGx5TGVuZ3RoLCBoYW5kbGVyLm1pbWVUeXBlLmRhdGEoKSk7
CiAgICAgfQogCi0gICAgdm9pZCByZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIoY29uc3QgY2hhciog
c2NoZW1lLCBjb25zdCBjaGFyKiByZXBseSwgaW50IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFyKiBt
aW1lVHlwZSkKKyAgICB2b2lkIHJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcihjb25zdCBjaGFyKiBz
Y2hlbWUsIGNvbnN0IGNoYXIqIHJlcGx5LCBpbnQgcmVwbHlMZW5ndGgsIGNvbnN0IGNoYXIqIG1p
bWVUeXBlLCBpbnQgc3RhdHVzQ29kZSA9IDIwMCkKICAgICB7Ci0gICAgICAgIG1faGFuZGxlcnNN
YXAuc2V0KFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKSwgVVJJU2NoZW1lSGFuZGxlcihyZXBseSwg
cmVwbHlMZW5ndGgsIG1pbWVUeXBlKSk7CisgICAgICAgIG1faGFuZGxlcnNNYXAuc2V0KFN0cmlu
Zzo6ZnJvbVVURjgoc2NoZW1lKSwgVVJJU2NoZW1lSGFuZGxlcihyZXBseSwgcmVwbHlMZW5ndGgs
IG1pbWVUeXBlLCBzdGF0dXNDb2RlKSk7CiAgICAgICAgIHdlYmtpdF93ZWJfY29udGV4dF9yZWdp
c3Rlcl91cmlfc2NoZW1lKG1fd2ViQ29udGV4dC5nZXQoKSwgc2NoZW1lLCB1cmlTY2hlbWVSZXF1
ZXN0Q2FsbGJhY2ssIHRoaXMsIDApOwogICAgIH0KIApAQCAtMjk3LDYgKzMwNCwyMCBAQCBzdGF0
aWMgdm9pZCB0ZXN0V2ViQ29udGV4dFVSSVNjaGVtZShVUklTY2hlbWVUZXN0KiB0ZXN0LCBnY29u
c3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+bV9sb2FkRmFpbGVkKTsKICAgICBn
X2Fzc2VydF9lcnJvcih0ZXN0LT5tX2Vycm9yLmdldCgpLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9S
X0NMT1NFRCk7CiAKKyAgICB0ZXN0LT5yZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIoIm5vdGZvdW5k
Iiwga0JhckhUTUwsIHN0cmxlbihrQmFySFRNTCksICJ0ZXh0L2h0bWwiLCA0MDQpOworICAgIHRl
c3QtPm1fbG9hZEV2ZW50cy5jbGVhcigpOworICAgIHRlc3QtPmxvYWRVUkkoIm5vdGZvdW5kOmJs
YW5rIik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnRf
ZmFsc2UodGVzdC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rlc3Q6OlByb3Zp
c2lvbmFsTG9hZEZhaWxlZCkpOworICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+bV9sb2FkRXZlbnRz
LmNvbnRhaW5zKExvYWRUcmFja2luZ1Rlc3Q6OkxvYWRGYWlsZWQpKTsKKworICAgIHRlc3QtPnJl
Z2lzdGVyVVJJU2NoZW1lSGFuZGxlcigibm9jb250ZW50IiwgbnVsbHB0ciwgMCwgImFwcGxpY2F0
aW9uL2pzb24iLCAyMDQpOworICAgIHRlc3QtPm1fbG9hZEV2ZW50cy5jbGVhcigpOworICAgIHRl
c3QtPmxvYWRVUkkoIm5vY29udGVudDpibGFuayIpOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRG
aW5pc2hlZCgpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHRlc3QtPm1fbG9hZEV2ZW50cy5jb250YWlu
cyhMb2FkVHJhY2tpbmdUZXN0OjpQcm92aXNpb25hbExvYWRGYWlsZWQpKTsKKyAgICBnX2Fzc2Vy
dF9mYWxzZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVzdDo6TG9h
ZEZhaWxlZCkpOworCiAgICAgLy8gVG9ydHVyZSB0ZXN0IHRpbWU6IG1ha2Ugc3VyZSBpdCBzdGls
bCB3b3JrcyBpZiB3ZSBpc3N1ZSBhIGJ1bmNoIG9mIGRpZmZlcmVudCByZXF1ZXN0cyBhbGwgYXQK
ICAgICAvLyBvbmNlLiBFYWNoIHJlcXVlc3Qgc2hvdWxkIGZpbmlzaCBhbmQgcmV0dXJuIGV4YWN0
bHkgdGhlIHNhbWUgZGF0YS4KICAgICBpbnQgbnVtSXRlcmF0aW9ucyA9IDI1Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442078</attachid>
            <date>2021-10-21 15:44:05 -0700</date>
            <delta_ts>2021-10-21 16:15:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231880-20211021164404.patch</filename>
            <type>text/plain</type>
            <size>40732</size>
            <attacher>liushuyu011</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQzMjkzMmY3ZDIxMWRkMzA5
M2QwYzQ4ZjBkZTg1MjIwYmVmYWMyN2QuLmMxYzgxNWVjOGM2MzY3YzUwYWE2MDhmNGFlNDJmNGQ5
ZjE1YWZhYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMTAtMjAgIFppeGluZyBM
aXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdXBwb3J0
IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4gY3VzdG9tIFVS
SSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlc0dUSy50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
Y3BwCisgICAgICAgICogU291cmNlc1dQRS50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwOgorICAgICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRo
b2QpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3Rf
ZmluaXNoX3dpdGhfcmVzcG9uc2UpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmg6ICBBZGRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2Uu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2NsYXNzX2lu
aXQpOiBBZGRlZCBpbml0IGZ1bmN0aW9uIGZvciB0aGUgbmV3IHR5cGUKKyAgICAgICAgKHdlYmtp
dF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rpb24KKyAgICAg
ICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMpOiBBZGRlZCBuZXcgQVBJ
IGZ1bmN0aW9uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlUHJpdmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5oLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oOiBSZWdpc3RlciBjbGVhbi11cCBmdW5jdGlv
biBmb3IgV2Via2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmg6IEFkZGVkIGZ1bmN0aW9uIHByb3RvdHlwZSBmb3Ig
CisgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaDogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9u
cy50eHQ6IEFkZGVkIG5ldyBzeW1ib2xzIGFuZCBuZXcgdHlwZXMKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay93ZWJraXQyLmg6IEluY2x1ZGUgYSBuZXcgaGVhZGVyOiBXZWJLaXRVUklTY2hl
bWVSZXNwb25zZS5oCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5oOiBBZGRlZCBmdW5jdGlvbiBwcm90b3R5cGUgZm9yIAorICAgICAgICB3ZWJraXRf
dXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZAorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvd3BlL3dlYmtpdC5oOiBJbmNsdWRlIGEgbmV3IGhlYWRlcjogV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2UuaAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1z
ZWN0aW9ucy50eHQ6IEFkZGVkIG5ldyBzeW1ib2xzIGFuZCBuZXcgdHlwZXMKKwogMjAyMS0xMC0x
OCAgSm9obiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhu
XSBPYnRhaW4gY29uc2VudCB0byBjcmVhdGUgbmV3IGNyZWRlbnRpYWwgd2hlbiBwbGF0Zm9ybSBh
dXRoZW50aWNhdG9yIGluIGV4Y2x1ZGVkQ3JlZGVudGlhbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtl
CmluZGV4IDg4YzU2MGNjOWY2MmNlNWM1ZTljZGVmOWQ0NzBkZTQ3ZmFkNDVhZTQuLjE0MTcwNWEy
MDRlMDI4YzE4YzQ0MmEwZDk0Mjk0MzFhZTg4ODFmYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFr
ZQpAQCAtMTQ2LDYgKzE0Niw3IEBAIHNldChXZWJLaXQyR1RLX0lOU1RBTExFRF9IRUFERVJTCiAg
ICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmgKICAg
ICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlc3BvbnNlLmgKICAg
ICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
aAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVz
cG9uc2UuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJVXRp
bGl0aWVzLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJD
b250ZW50LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJD
b250ZW50RmlsdGVyU3RvcmUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQ
RS5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKaW5kZXggZjRjZDViZWY0
MDJiMGM2M2UxZmJiN2EwNzEzMjkwMGNlNmY3MzhiYi4uMGZiM2UzZTc4MDZjOThiMThlYjM0NGEw
MzVhMzhjNTkwZTU4NzEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0xNzYsNiArMTc2
LDcgQEAgc2V0KFdQRV9BUElfSU5TVEFMTEVEX0hFQURFUlMKICAgICAke1dFQktJVF9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVJlcXVlc3QuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQ
cm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJUmVzcG9uc2UuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQ
cm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCisgICAgJHtXRUJLSVRfRElS
fS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCiAgICAgJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklVdGlsaXRpZXMuaAogICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VXNlckNvbnRlbnQuaAogICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzR1RLLnR4dAppbmRleCA1Yzk1NGVlZjlhZTFiMmY5NGVmMDA4YjJhMzhhZjg4OTRi
MGM5YWM1Li5mMjEyNDZmMDBjMThmMjM4MWZjZWU3MzE3Zjk2NDlmMWI2NjFlMzQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc0dUSy50eHQKQEAgLTE3Myw2ICsxNzMsNyBAQCBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
U2VjdXJpdHlPcmlnaW4uY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNl
dHRpbmdzLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5j
cHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5j
cHAgQG5vLXVuaWZ5CitVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2Uu
Y3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVV0aWxpdGllcy5jcHAg
QG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNvbnRlbnQuY3BwIEBuby11
bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUuY3Bw
IEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKaW5kZXggOGExYzMwZjMyZjNiOTM1MGEzMDZiZWY1
MzBlY2IzMzQwYzFmMjljNy4uOTQ0MTlkZDg2ZjA3OWM1YzUzZTY4Y2U4ZTc5YjkxNTUwNWE4N2Fi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNXUEUudHh0CkBAIC0xNjQsNiArMTY0LDcgQEAgVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFNlY3VyaXR5T3JpZ2luLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRTZXR0aW5ncy5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
VUlDbGllbnQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVt
ZVJlcXVlc3QuY3BwIEBuby11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklVdGls
aXRpZXMuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVzZXJDb250ZW50
LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRl
clN0b3JlLmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKaW5kZXggNmEwZDU5YzEw
Mjg5ZTFiODBjYTJhMTU1ZTQ2ZTdkZDk4OWY1ZTlmMS4uNDA2Y2E1YmE0NDBjOTM0NTljMTE3ODBj
YmQ0ZTczOTkzMTlmMDNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKQEAgLTY0LDEyICs2NCwx
MSBAQCBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlIHsKICAgICBDU3RyaW5n
IHVyaVNjaGVtZTsKICAgICBDU3RyaW5nIHVyaVBhdGg7CiAKLSAgICBHUmVmUHRyPEdJbnB1dFN0
cmVhbT4gc3RyZWFtOwotICAgIHVpbnQ2NF90IHN0cmVhbUxlbmd0aDsKKyAgICBHUmVmUHRyPFdl
YktpdFVSSVNjaGVtZVJlc3BvbnNlPiByZXNwb25zZTsKICAgICBHUmVmUHRyPEdDYW5jZWxsYWJs
ZT4gY2FuY2VsbGFibGU7CiAgICAgY2hhciByZWFkQnVmZmVyW2dSZWFkQnVmZmVyU2l6ZV07CiAg
ICAgdWludDY0X3QgYnl0ZXNSZWFkOwotICAgIENTdHJpbmcgY29udGVudFR5cGU7CisgICAgY29u
c3QgY2hhciogaHR0cE1ldGhvZDsKIH07CiAKIFdFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0LCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0LCBHX1RZUEVfT0JKRUNUKQpA
QCAtMTYxLDYgKzE2MCwyNiBAQCBXZWJLaXRXZWJWaWV3KiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X2dldF93ZWJfdmlldyhXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZQogICAgIHJldHVybiB3
ZWJraXRXZWJDb250ZXh0R2V0V2ViVmlld0ZvclBhZ2UocmVxdWVzdC0+cHJpdi0+d2ViQ29udGV4
dCwgcmVxdWVzdC0+cHJpdi0+aW5pdGlhdGluZ1BhZ2UuZ2V0KCkpOwogfQogCisvKioKKyAqIHdl
YmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kOgorICogQHJlcXVlc3Q6IGEg
I1dlYktpdFVSSVNjaGVtZVJlcXVlc3QKKyAqCisgKiBHZXQgdGhlIEhUVFAgbWV0aG9kIG9mIHRo
ZSBAcmVxdWVzdAorICoKKyAqIFJldHVybnM6IHRoZSBIVFRQIG1ldGhvZCBvZiB0aGUgQHJlcXVl
c3QKKyAqIAorICogU2luY2U6IDIuMzYKKyAqLworY29uc3QgZ2NoYXIqIHdlYmtpdF91cmlfc2No
ZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVl
c3QpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVR
VUVTVChyZXF1ZXN0KSwgbnVsbHB0cik7CisKKyAgICBpZiAoIXJlcXVlc3QtPnByaXYtPmh0dHBN
ZXRob2QpCisgICAgICAgIHJlcXVlc3QtPnByaXYtPmh0dHBNZXRob2QgPSBnX2ludGVybl9zdHJp
bmcocmVxdWVzdC0+cHJpdi0+dGFzay0+cmVxdWVzdCgpLmh0dHBNZXRob2QoKS51dGY4KCkuZGF0
YSgpKTsKKworICAgIHJldHVybiByZXF1ZXN0LT5wcml2LT5odHRwTWV0aG9kOworfQorCiBzdGF0
aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSog
aW5wdXRTdHJlYW0sIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
KiBzY2hlbWVSZXF1ZXN0KQogewogICAgIEdSZWZQdHI8V2ViS2l0VVJJU2NoZW1lUmVxdWVzdD4g
cmVxdWVzdCA9IGFkb3B0R1JlZihzY2hlbWVSZXF1ZXN0KTsKQEAgLTE3MiwxNiArMTkxLDIwIEBA
IHN0YXRpYyB2b2lkIHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RSZWFkQ2FsbGJhY2soR0lucHV0U3Ry
ZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jCiAgICAgfQogCiAgICAgV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OworICAgIFdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlUHJpdmF0ZSogcmVzcFByaXYgPSBwcml2LT5yZXNwb25zZS0+cHJpdjsKICAgICAvLyBO
ZWVkIHRvIGNoZWNrIHRoZSBzdHJlYW0gYmVmb3JlIHByb2NlZWRpbmcgYXMgaXQgY2FuIGJlIGNh
bmNlbGxlZCBpZiBmaW5pc2hfZXJyb3IKICAgICAvLyB3YXMgcHJldmlvdXNseSBjYWxsLCB3aGlj
aCB3b24ndCBiZSBkZXRlY3RlZCBieSBnX2lucHV0X3N0cmVhbV9yZWFkX2ZpbmlzaCgpLgotICAg
IGlmICghcHJpdi0+c3RyZWFtKQorICAgIGlmICghcmVzcFByaXYtPnN0cmVhbSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgaWYgKCFwcml2LT5ieXRlc1JlYWQpIHsKLSAgICAgICAgUmVzb3VyY2VS
ZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIGV4dHJhY3RNSU1F
VHlwZUZyb21NZWRpYVR5cGUocHJpdi0+Y29udGVudFR5cGUuZGF0YSgpKSwgcHJpdi0+c3RyZWFt
TGVuZ3RoLCBlbXB0eVN0cmluZygpKTsKLSAgICAgICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5n
TmFtZShleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUocHJpdi0+Y29udGVudFR5cGUuZGF0YSgp
KSk7Ci0gICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKDIwMCk7Ci0gICAgICAgIHJl
c3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KCJPSyJfcyk7CisgICAgICAgIFJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2UocHJpdi0+dGFzay0+cmVxdWVzdCgpLnVybCgpLCBleHRyYWN0TUlNRVR5cGVG
cm9tTWVkaWFUeXBlKHJlc3BQcml2LT5jb250ZW50VHlwZS5kYXRhKCkpLCByZXNwUHJpdi0+c3Ry
ZWFtTGVuZ3RoLCBlbXB0eVN0cmluZygpKTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29k
aW5nTmFtZShleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUocmVzcFByaXYtPmNvbnRlbnRUeXBl
LmRhdGEoKSkpOworICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZShyZXNwUHJpdi0+
c3RhdHVzQ29kZSk7CisgICAgICAgIGlmICghcmVzcFByaXYtPnN0YXR1c01lc3NhZ2UuaXNOdWxs
KCkpCisgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzVGV4dChyZXNwUHJpdi0+c3Rh
dHVzTWVzc2FnZS5kYXRhKCkpOworICAgICAgICBlbHNlIGlmIChyZXNwUHJpdi0+c3RhdHVzQ29k
ZSA+PSAwKQorICAgICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoc291cF9zdGF0
dXNfZ2V0X3BocmFzZSgoZ3VpbnQpcmVzcFByaXYtPnN0YXR1c0NvZGUpKTsKICAgICAgICAgaWYg
KHJlc3BvbnNlLm1pbWVUeXBlKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmVzcG9uc2Uuc2V0
TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKHJlc3BvbnNlLnVybCgp
LnBhdGgoKS50b1N0cmluZygpKSk7CiAgICAgICAgIHByaXYtPnRhc2stPmRpZFJlY2VpdmVSZXNw
b25zZShyZXNwb25zZSk7CkBAIC0yMTMsMTYgKzIzNiwzMiBAQCB2b2lkIHdlYmtpdF91cmlfc2No
ZW1lX3JlcXVlc3RfZmluaXNoKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIEdJbnB1
dFN0cgogICAgIGdfcmV0dXJuX2lmX2ZhaWwoR19JU19JTlBVVF9TVFJFQU0oaW5wdXRTdHJlYW0p
KTsKICAgICBnX3JldHVybl9pZl9mYWlsKHN0cmVhbUxlbmd0aCA9PSAtMSB8fCBzdHJlYW1MZW5n
dGggPj0gMCk7CiAKLSAgICByZXF1ZXN0LT5wcml2LT5zdHJlYW0gPSBpbnB1dFN0cmVhbTsKLSAg
ICAvLyBXZSB1c2UgLTEgaW4gdGhlIEFQSSBmb3IgY29uc2lzdGVuY3kgd2l0aCBzb3VwIHdoZW4g
dGhlIGNvbnRlbnQgbGVuZ3RoIGlzIG5vdCBrbm93biwgYnV0IDAgaW50ZXJuYWxseS4KLSAgICBy
ZXF1ZXN0LT5wcml2LT5zdHJlYW1MZW5ndGggPSBzdHJlYW1MZW5ndGggPT0gLTEgPyAwIDogc3Ry
ZWFtTGVuZ3RoOwotICAgIHJlcXVlc3QtPnByaXYtPmNhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdf
Y2FuY2VsbGFibGVfbmV3KCkpOwotICAgIHJlcXVlc3QtPnByaXYtPmJ5dGVzUmVhZCA9IDA7Ci0g
ICAgcmVxdWVzdC0+cHJpdi0+Y29udGVudFR5cGUgPSBjb250ZW50VHlwZTsKKyAgICByZXF1ZXN0
LT5wcml2LT5yZXNwb25zZSA9IHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyhpbnB1dFN0
cmVhbSwgc3RyZWFtTGVuZ3RoLCBjb250ZW50VHlwZSk7CisKICAgICBnX2lucHV0X3N0cmVhbV9y
ZWFkX2FzeW5jKGlucHV0U3RyZWFtLCByZXF1ZXN0LT5wcml2LT5yZWFkQnVmZmVyLCBnUmVhZEJ1
ZmZlclNpemUsIFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6QXN5bmNJT05ldHdvcmssIHJlcXVlc3Qt
PnByaXYtPmNhbmNlbGxhYmxlLmdldCgpLAogICAgICAgICByZWludGVycHJldF9jYXN0PEdBc3lu
Y1JlYWR5Q2FsbGJhY2s+KHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RSZWFkQ2FsbGJhY2spLCBnX29i
amVjdF9yZWYocmVxdWVzdCkpOwogfQogCisvKioKKyAqIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZmluaXNoX3dpdGhfcmVzcG9uc2U6CisgKiBAcmVxdWVzdDogYSAjV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdAorICogQHJlc3BvbnNlOiBhICNXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICoKKyAq
IEZpbmlzaCBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0IGJ5IHJldHVybmluZyBhICNXZWJLaXRV
UklTY2hlbWVSZXNwb25zZQorICoKKyAqIFNpbmNlOiAyLjM2CisgKi8KK3ZvaWQgd2Via2l0X3Vy
aV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZShXZWJLaXRVUklTY2hlbWVSZXF1
ZXN0KiByZXF1ZXN0LCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAg
Z19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVFVRVNUKHJlcXVlc3QpKTsK
KyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFKHJlc3Bv
bnNlKSk7CisKKyAgICByZXF1ZXN0LT5wcml2LT5yZXNwb25zZSA9IHJlc3BvbnNlOworCisgICAg
Z19pbnB1dF9zdHJlYW1fcmVhZF9hc3luYyhyZXNwb25zZS0+cHJpdi0+c3RyZWFtLmdldCgpLCBy
ZXF1ZXN0LT5wcml2LT5yZWFkQnVmZmVyLCBnUmVhZEJ1ZmZlclNpemUsIFJ1bkxvb3BTb3VyY2VQ
cmlvcml0eTo6QXN5bmNJT05ldHdvcmssIHJlcXVlc3QtPnByaXYtPmNhbmNlbGxhYmxlLmdldCgp
LAorICAgICAgICByZWludGVycHJldF9jYXN0PEdBc3luY1JlYWR5Q2FsbGJhY2s+KHdlYmtpdFVS
SVNjaGVtZVJlcXVlc3RSZWFkQ2FsbGJhY2spLCBnX29iamVjdF9yZWYocmVxdWVzdCkpOworfQor
CiAvKioKICAqIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vycm9yOgogICogQHJl
cXVlc3Q6IGEgI1dlYktpdFVSSVNjaGVtZVJlcXVlc3QKQEAgLTIzOCw3ICsyNzcsNyBAQCB2b2lk
IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vycm9yKFdlYktpdFVSSVNjaGVtZVJl
cXVlc3QqIHJlcXVlc3QsIEdFcgogICAgIGdfcmV0dXJuX2lmX2ZhaWwoZXJyb3IpOwogCiAgICAg
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwotICAg
IHByaXYtPnN0cmVhbSA9IG51bGxwdHI7CisgICAgcHJpdi0+cmVzcG9uc2UtPnByaXYtPnN0cmVh
bSA9IG51bGxwdHI7CiAgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKGdfcXVhcmtfdG9f
c3RyaW5nKGVycm9yLT5kb21haW4pLCB0b1dlYkNvcmVFcnJvcihlcnJvci0+Y29kZSksIHByaXYt
PnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkp
OwogICAgIHByaXYtPnRhc2stPmRpZENvbXBsZXRlKHJlc291cmNlRXJyb3IpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVS
SVNjaGVtZVJlcXVlc3RQcml2YXRlLmgKaW5kZXggMDE4NDllMTU3Njk0MzUxOWQ4MTI5NDY5OGQ3
NWViMjZmMjI5OWQzYS4uNzA3NzkwMDE5MzQ5OTZlYTI5OGYyNjEzMDlmMzZhYmQ5YzU5YmNiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5oCkBAIC0yMCw2ICsyMCw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlcXVlc3QuaCIKKyNpbmNsdWRl
ICJXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJD
b250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViVVJMU2No
ZW1lVGFzay5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlOGNmNzMxZmY5
YWM3YzQ5ODE4Y2EzZDI0ZDgyZjI3Y2MyZjY4YzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5jcHAKQEAg
LTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgWml4aW5nIExpdQorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRl
LmgiCisKKyNpbmNsdWRlICJBUElEYXRhLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgor
I2luY2x1ZGUgIldlYlVSTFNjaGVtZVRhc2suaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBQYXJz
ZXJzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8
d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlv
cml0eS5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL1dURkdUeXBlLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKKy8qKgorICogU0VDVElPTjogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAq
IEBTaG9ydF9kZXNjcmlwdGlvbjogUmVwcmVzZW50cyBhIFVSSSBzY2hlbWUgcmVzcG9uc2UKKyAq
IEBUaXRsZTogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAqCisgKiBJZiB5b3UgcmVnaXN0ZXIg
YSBwYXJ0aWN1bGFyIFVSSSBzY2hlbWUgaW4gYSAjV2ViS2l0V2ViQ29udGV4dCwKKyAqIHVzaW5n
IHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lKCksIHlvdSBoYXZlIHRvIHBy
b3ZpZGUKKyAqIGEgI1dlYktpdFVSSVNjaGVtZVJlcXVlc3RDYWxsYmFjay4gQWZ0ZXIgdGhhdCwg
d2hlbiBhIFVSSSByZXNwb25zZQorICogaXMgbWFkZSB3aXRoIHRoYXQgcGFydGljdWxhciBzY2hl
bWUsIHlvdXIgY2FsbGJhY2sgd2lsbCBiZQorICogY2FsbGVkLiBUaGVyZSB5b3Ugd2lsbCBiZSBh
YmxlIHRvIHByb3ZpZGUgbW9yZSByZXNwb25zZSBwYXJhbWV0ZXJzCisgKiB3aGVuIHRoZSBtZXRo
b2RzIGFuZCBwcm9wZXJ0aWVzIG9mIGEgI1dlYktpdFVSSVNjaGVtZVJlcXVlc3QgaXMgbm90Cisg
KiBlbm91Z2guCisgKiAKKyAqIFdoZW4geW91IGZpbmlzaGVkIHNldHRpbmcgdXAgeW91ciAjV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2UsIGNhbGwKKyAqIHdlYmtpdF91cmlfcmVxdWVzdF9maW5pc2hf
d2l0aF9yZXNwb25zZSB3aXRoIGl0IHRvIHJldHVybiB0aGUgcmVzcG9uc2UuCisgKgorICovCisK
K1dFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRVUklTY2hlbWVSZXNwb25zZSwgd2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2UsIEdfVFlQRV9PQkpFQ1QpOworCitzdGF0aWMgdm9pZCB3ZWJraXRfdXJp
X3NjaGVtZV9yZXNwb25zZV9jbGFzc19pbml0KFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3Mq
KQoreworfQorCisvKioKKyAqIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXNf
Ym9keToKKyAqIEByZXNwb25zZTogYSAjV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAqIEBzdHJl
YW06IGEgI0dJbnB1dFN0cmVhbSB0byByZWFkIHRoZSBjb250ZW50cyBvZiB0aGUgcmVxdWVzdAor
ICogQHN0cmVhbV9sZW5ndGg6IHRoZSBsZW5ndGggb2YgdGhlIHN0cmVhbSBvciAtMSBpZiBub3Qg
a25vd24KKyAqIEBjb250ZW50X3R5cGU6IChhbGxvdy1ub25lKTogdGhlIGNvbnRlbnQgdHlwZSBv
ZiB0aGUgc3RyZWFtIG9yICVOVUxMIGlmIG5vdCBrbm93bgorICoKKyAqIFNldHMgdGhlIHN0YXR1
cyBtZXNzYWdlIGZvciB0aGUgQHJlc3BvbnNlCisgKgorICogU2luY2U6IDIuMzYKKyAqLworV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2UqIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyhHSW5w
dXRTdHJlYW0qIGlucHV0U3RyZWFtLCBnaW50NjQgc3RyZWFtTGVuZ3RoLCBjb25zdCBnY2hhciog
Y29udGVudFR5cGUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoR19JU19JTlBVVF9TVFJF
QU0oaW5wdXRTdHJlYW0pLCBudWxscHRyKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzdHJl
YW1MZW5ndGggPT0gLTEgfHwgc3RyZWFtTGVuZ3RoID49IDAsIG51bGxwdHIpOworCisgICAgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3BvbnNlID0gV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9O
U0UoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UsIG51bGxwdHIp
KTsKKyAgICByZXNwb25zZS0+cHJpdi0+c3RhdHVzQ29kZSA9IDIwMDsKKyAgICByZXNwb25zZS0+
cHJpdi0+c3RyZWFtID0gaW5wdXRTdHJlYW07CisgICAgLy8gV2UgdXNlIC0xIGluIHRoZSBBUEkg
Zm9yIGNvbnNpc3RlbmN5IHdpdGggc291cCB3aGVuIHRoZSBjb250ZW50IGxlbmd0aCBpcyBub3Qg
a25vd24sIGJ1dCAwIGludGVybmFsbHkuCisgICAgcmVzcG9uc2UtPnByaXYtPnN0cmVhbUxlbmd0
aCA9IHN0cmVhbUxlbmd0aCA9PSAtMSA/IDAgOiBzdHJlYW1MZW5ndGg7CisgICAgcmVzcG9uc2Ut
PnByaXYtPmJ5dGVzUmVhZCA9IDA7CisgICAgcmVzcG9uc2UtPnByaXYtPmNvbnRlbnRUeXBlID0g
Y29udGVudFR5cGU7CisgICAgcmV0dXJuIHJlc3BvbnNlOworfQorCisvKioKKyAqIHdlYmtpdF91
cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXM6CisgKiBAcmVzcG9uc2U6IGEgI1dlYktpdFVS
SVNjaGVtZVJlc3BvbnNlCisgKiBAc3RhdHVzX2NvZGU6IHRoZSBIVFRQIHN0YXR1cyBjb2RlIHRv
IGJlIHJldHVybmVkCisgKiBAcmVhc29uX3BocmFzZTogKGFsbG93LW5vbmUpOiBhIHJlYXNvbiBw
aHJhc2UKKyAqCisgKiBTZXRzIHRoZSBzdGF0dXMgY29kZSBhbmQgcmVhc29uIHBocmFzZSBmb3Ig
dGhlIEByZXNwb25zZS4KKyAqIElmIEBzdGF0dXNfY29kZSBpcyBhIGtub3duIHZhbHVlIGFuZCBA
cmVhc29uX3BocmFzZSBpcyAlTlVMTCwgdGhlIEByZWFzb25fcGhyYXNlIHdpbGwgYmUgc2V0IGF1
dG9tYXRpY2FsbHkuCisgKgorICogU2luY2U6IDIuMzYKKyAqLwordm9pZCB3ZWJraXRfdXJpX3Nj
aGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKiByZXNwb25z
ZSwgZ2ludCBzdGF0dXNDb2RlLCBjb25zdCBnY2hhciogc3RhdHVzTWVzc2FnZSkKK3sKKyAgICBn
X3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFKHJlc3BvbnNlKSk7
CisKKyAgICByZXNwb25zZS0+cHJpdi0+c3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7CisgICAgcmVz
cG9uc2UtPnByaXYtPnN0YXR1c01lc3NhZ2UgPSBzdGF0dXNNZXNzYWdlOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklT
Y2hlbWVSZXNwb25zZVByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGY1ODA3ZjExYzhiNTU1ZTVlY2M0
ZDFiY2UzMzIzNmI5ZDc4NmZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlLmgKQEAgLTAsMCAr
MSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBaaXhpbmcgTGl1CisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJXZWJL
aXRXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2Vi
VVJMU2NoZW1lVGFzay5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisK
K3N0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlIHsKKyAgICBHUmVmUHRyPEdJ
bnB1dFN0cmVhbT4gc3RyZWFtOworICAgIHVpbnQ2NF90IHN0cmVhbUxlbmd0aDsKKyAgICB1aW50
NjRfdCBieXRlc1JlYWQ7CisKKyAgICBpbnQgc3RhdHVzQ29kZTsKKyAgICBDU3RyaW5nIHN0YXR1
c01lc3NhZ2U7CisgICAgQ1N0cmluZyBjb250ZW50VHlwZTsKK307CisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oCmluZGV4IGE0
YWFmZDczZmIyYWE3ZDgzYjVhM2YzNjlhMDJlNjFlODYwZGQyNGUuLjI1ZGY3ZDA3ODVjZjhmNmQ5
NThlZWQ4ODA2YWRjMjM3MGMzMzgzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaApAQCAtNjIsNiArNjIsNyBAQCBHX0RF
RklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0U2V0dGluZ3MsIGdfb2JqZWN0X3VucmVm
KQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVJlcXVlc3QsIGdfb2Jq
ZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVJlc3Bv
bnNlLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xF
QU5VUF9GVU5DIChXZWJLaXRVUklTY2hlbWVSZXNwb25zZSwgZ19vYmplY3RfdW5yZWYpCiBHX0RF
RklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZSwg
Z19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VXNl
ckNvbnRlbnRNYW5hZ2VyLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5V
UF9GVU5DIChXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNj
aGVtZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdC5oCmluZGV4IGQyYjA2YTE0ZGM1YTIwN2U4NzU2NGEwZWJjMzViY2MxMzli
MWVjNGUuLjJiODhhYTZhODk3ODQ3YmExNGY2ZTg5MjI0NjMwNzY4NWYzZGU5OWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNp
bmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktp
dEZvcndhcmREZWNsYXJhdGlvbnMuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlLmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNzEsMTIgKzcyLDE5IEBAIHdlYmtp
dF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3BhdGggICAgIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
ICpyZXF1ZXN0KTsKIFdFQktJVF9BUEkgV2ViS2l0V2ViVmlldyAqCiB3ZWJraXRfdXJpX3NjaGVt
ZV9yZXF1ZXN0X2dldF93ZWJfdmlldyAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7
CiAKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9n
ZXRfaHR0cF9tZXRob2QgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOworCiBXRUJL
SVRfQVBJIHZvaWQKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoICAgICAgIChXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdJbnB1dFN0cmVhbSAgICAgICAgICAgKnN0cmVhbSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50NjQgICAgICAgICAgICAgICAgICBzdHJl
YW1fbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGdjaGFyICAgICAgICAgICAgKmNvbnRlbnRfdHlwZSk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZSAoV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdCAgKnJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9uc2UpOworCiBXRUJL
SVRfQVBJIHZvaWQKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vycm9yIChXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAgICAgKmVycm9yKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2Uu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNjRkOWE3NWUzNDVkMmVhNWEwMWE3N2FmOGRkOTE1ZTZiZTBkMzQz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRVUklTY2hlbWVSZXNwb25zZS5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgWml4aW5nIExpdQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYm
ICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Vi
a2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2VfaAorI2RlZmluZSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZV9o
CisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVm
aW5lcy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oPgor
CitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05T
RSAgICAgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRShvYmopICAgICAgICAgICAgKEdfVFlQRV9D
SEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNF
LCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSkpCisjZGVmaW5lIFdFQktJVF9JU19VUklfU0NIRU1F
X1JFU1BPTlNFKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiks
IFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UpKQorI2RlZmluZSBXRUJLSVRfVVJJX1ND
SEVNRV9SRVNQT05TRV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChr
bGFzcyksICBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVS
ZXNwb25zZUNsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xB
U1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVf
VVJJX1NDSEVNRV9SRVNQT05TRSkpCisjZGVmaW5lIFdFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNF
X0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJ
VF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UsIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3Mp
KQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgICAgICAgIFdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3Bv
bnNlQ2xhc3MgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVBy
aXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgeworICAgIEdPYmplY3Qg
cGFyZW50OworCisgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlICpwcml2OworfTsK
Kworc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzIHsKKyAgICBHT2JqZWN0Q2xh
c3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7
CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9p
ZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9n
ZXRfdHlwZSAgICAgICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlICoKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyAgICAgICAgICAgICAgICAo
R0lucHV0U3RyZWFtICAgICAgICAgICAgKmlucHV0X3N0cmVhbSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludDY0ICAgICAgICAgICAgICAgICAgIHN0
cmVhbV9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICpjb250ZW50X3R5cGUpOworCitXRUJLSVRfQVBJ
IHZvaWQKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMgICAgICAgICAoV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnaW50ICAgICAgICAgICAgICAgICAgICAgc3RhdHVzX2Nv
ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGdjaGFyICAgICAgICAgICAgICpyZWFzb25fcGhyYXNlKTsKKworR19FTkRfREVDTFMKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCAxYmFiYjkzOWZjZWMxNmY5
NDkzNGFmMzg4ZTQxNmU5MDNiZTFlZTg3Li44OWRmNGEwY2IyZTQ2MDA0ZTk1NTY5ZmE0NWQwZDQx
YjZmM2E3MTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2Rv
Y3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKQEAgLTEyNzcsNyAr
MTI3Nyw5IEBAIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3NjaGVtZQogd2Via2l0X3Vy
aV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9w
YXRoCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmlldword2Via2l0X3VyaV9z
Y2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
ZmluaXNoCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlCiB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcgogCiA8U1VCU0VDVElPTiBTdGFu
ZGFyZD4KQEAgLTEyOTQsNiArMTI5NiwyNiBAQCBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0
ZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCis8U0VD
VElPTj4KKzxGSUxFPldlYktpdFVSSVNjaGVtZVJlc3BvbnNlPC9GSUxFPgorV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2UKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldword2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cworCis8U1VCU0VDVElPTiBTdGFuZGFyZD4KK1dlYktp
dFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MKK1dFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UK
K1dFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05T
RQorV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1MKK1dFQktJVF9JU19VUklfU0NIRU1F
X1JFU1BPTlNFX0NMQVNTCitXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9HRVRfQ0xBU1MKKwor
PFNVQlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZQord2Vi
a2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUKKzwvU0VDVElPTj4KKwogPFNFQ1RJT04+
CiA8RklMRT5XZWJLaXRWZXJzaW9uPC9GSUxFPgogd2Via2l0X2dldF9tYWpvcl92ZXJzaW9uCkBA
IC0xOTg1LDQgKzIwMDcsMyBAQCB3ZWJraXRfbWVtb3J5X3ByZXNzdXJlX3NldHRpbmdzX2dldF90
eXBlCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KIFdFQktJVF9UWVBFX01FTU9SWV9QUkVTU1VSRV9T
RVRUSU5HUwogPC9TRUNUSU9OPgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAudHlwZXMgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAudHlwZXMKaW5kZXggNDkzN2FiYjU2NDg3
M2NlMDZlYjY0MzE1OTFkZTMxZGNiMWQwYzU1MS4uZWY2ZThhZDY1OTU2NTljMGQ1MGY1YzYyZDM1
MDVhMjE2YjcwYWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstNC4wLnR5cGVzCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC50eXBlcwpAQCAtMTksNiArMTksNyBAQCB3ZWJr
aXRfcGx1Z2luX2dldF90eXBlCiB3ZWJraXRfbWltZV9pbmZvX2dldF90eXBlCiB3ZWJraXRfd2Vi
X2luc3BlY3Rvcl9nZXRfdHlwZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdHlwZQor
d2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUKIHdlYmtpdF9jb250ZXh0X21lbnVf
Z2V0X3R5cGUKIHdlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9nZXRfdHlwZQogd2Via2l0X3dlYl9l
eHRlbnNpb25fZ2V0X3R5cGUKQEAgLTQyLDQgKzQzLDQgQEAgd2Via2l0X29wdGlvbl9tZW51X2l0
ZW1fZ2V0X3R5cGUKIHdlYmtpdF9kZXZpY2VfaW5mb19wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5
cGUKIHdlYmtpdF9nZW9sb2NhdGlvbl9tYW5hZ2VyX2dldF90eXBlCiB3ZWJraXRfZ2VvbG9jYXRp
b25fcG9zaXRpb25fZ2V0X3R5cGUKLXdlYmtpdF9wb2ludGVyX2xvY2tfcGVybWlzc2lvbl9yZXF1
ZXN0X2dldF90eXBlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQord2Via2l0X3BvaW50ZXJf
bG9ja19wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbAppbmRleCA0
MTFlZTY0ZDgzMzMzZjA1MjMwNmM1Yjk5ZDA3M2JiNDI3OTc4YTY1Li5lMTJjN2RiNWM3OTZmYzU4
Y2E4NjJkMDYyYmFjNzFjODA4ZWE2MGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCkBAIC00NSw2ICs0
NSw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBsdWdpbi54bWwiLz4KICAg
ICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0V2ViSW5zcGVjdG9yLnhtbCIvPgogICAgIDx4
aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LnhtbCIvPgorICAgIDx4
aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS54bWwiLz4KICAgICA8
eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0VmVyc2lvbi54bWwiLz4KICAgICA8eGk6aW5jbHVk
ZSBocmVmPSJ4bWwvV2ViS2l0Q29udGV4dE1lbnUueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJl
Zj0ieG1sL1dlYktpdENvbnRleHRNZW51SXRlbS54bWwiLz4KQEAgLTE3MCw1ICsxNzEsMTAgQEAK
ICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LTIuMzAueG1sIj48eGk6ZmFsbGJh
Y2sgLz48L3hpOmluY2x1ZGU+CiAgIDwvaW5kZXg+CiAKKyAgPGluZGV4IGlkPSJhcGktaW5kZXgt
Mi0zNiIgcm9sZT0iMi4zNiI+CisgICAgPHRpdGxlPkluZGV4IG9mIG5ldyBzeW1ib2xzIGluIDIu
MzY8L3RpdGxlPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hcGktaW5kZXgtMi4zNi54bWwi
Pjx4aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KKyAgPC9pbmRleD4KKwogICA8eGk6aW5jbHVk
ZSBocmVmPSJ4bWwvYW5ub3RhdGlvbi1nbG9zc2FyeS54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6
aW5jbHVkZT4KIDwvYm9vaz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvd2Via2l0Mi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQy
LmgKaW5kZXggYjdkMjc0MWM0YjJjMWFkNGUzNGExZmFiNDhmZWM2MWFmMWM2MTAyZC4uNWNkOTUy
NDI1MmE5N2Q0ZWE2NGRmZWIyMmU1YTQ3YjU1ZjM2Yzg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKQEAgLTc4LDYgKzc4LDcgQEAKICNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdFVSSVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlc3Bv
bnNlLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmg+CisjaW5j
bHVkZSA8d2Via2l0Mi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oPgogI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0VVJJVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVc2VyQ29u
dGVudC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRBdXRv
Y2xlYW51cHMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0QXV0b2Ns
ZWFudXBzLmgKaW5kZXggNzdhYjc3YmM5ODRlNzBkM2ZhY2UwMDMzZjEyNDJkMjZjNDAyZDBiNi4u
NWUyMGY0MzVlMjMxZGU0Zjk1ZjJlN2ExZTRmOTk4OTg3YTY4Y2FkOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRBdXRvY2xlYW51cHMuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEF1dG9jbGVhbnVwcy5oCkBAIC01
Niw2ICs1Niw3IEBAIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRTZXR0aW5n
cywgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0
VVJJUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVO
QyAoV2ViS2l0VVJJUmVzcG9uc2UsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9D
TEVBTlVQX0ZVTkMgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19E
RUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlLCBnX29i
amVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyQ29u
dGVudEZpbHRlclN0b3JlLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5V
UF9GVU5DIChXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJ
TkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LCBnX29iamVjdF91bnJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKaW5kZXggOGViZWRhNGU3N2YxYmJkMThl
MWNiZGFkYzNmN2YyNDZlMDk5MTdiMS4uZTgxYmU4MTQ4MDRkYmZjY2E5M2QwNWViYThkN2RkMDhi
OGE0ZDMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRVUklTY2hlbWVSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKQEAgLTcyLDEyICs3MiwxOSBAQCB3ZWJraXRfdXJp
X3NjaGVtZV9yZXF1ZXN0X2dldF9wYXRoICAgICAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVx
dWVzdCk7CiBXRUJLSVRfQVBJIFdlYktpdFdlYlZpZXcgKgogd2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdF9nZXRfd2ViX3ZpZXcgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOwogCitX
RUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0
dHBfbWV0aG9kIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKKwogV0VCS0lUX0FQ
SSB2b2lkCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaCAgICAgICAoV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdCAqcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHSW5wdXRTdHJlYW0gICAgICAgICAgICpzdHJlYW0sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2ludDY0ICAgICAgICAgICAgICAgICAgc3RyZWFtX2xl
bmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hh
ciAgICAgICAgICAgICpjb250ZW50X3R5cGUpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91
cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX3dpdGhfcmVzcG9uc2UgKFdlYktpdFVSSVNjaGVtZVJl
cXVlc3QgICpyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlKTsKKwogV0VCS0lUX0FQ
SSB2b2lkCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvciAoV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdCAqcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHRXJyb3IgICAgICAgICAgICAgICAgICplcnJvcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjNmZGVhNjMyMTU4YzM3Nzc2ZDU4NjE0Mzk0MjdlNTI3YzVhY2UzYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2UuaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIFppeGluZyBMaXUKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUX0hfSU5TSURFX18pICYmICFkZWZp
bmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQuaD4gY2Fu
IGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlX2gKKyNkZWZpbmUgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VfaAorCisjaW5jbHVk
ZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JF
R0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSAgICAg
ICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZSgpKQorI2RlZmluZSBX
RUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19J
TlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJL
aXRVUklTY2hlbWVSZXNwb25zZSkpCisjZGVmaW5lIFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BP
TlNFKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJ
VF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UpKQorI2RlZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9S
RVNQT05TRV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyks
ICBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVSZXNwb25z
ZUNsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1Moa2xh
c3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVJJX1ND
SEVNRV9SRVNQT05TRSkpCisjZGVmaW5lIFdFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFX0dFVF9D
TEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBF
X1VSSV9TQ0hFTUVfUkVTUE9OU0UsIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MpKQorCit0
eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgICAgICAgIFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xh
c3MgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktp
dFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGU7
CisKK3N0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgeworICAgIEdPYmplY3QgcGFyZW50
OworCisgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlICpwcml2OworfTsKKworc3Ry
dWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFy
ZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAg
dm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVz
ZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9
OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlw
ZSAgICAgICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
ICoKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyAgICAgICAgICAgICAgICAoR0lucHV0
U3RyZWFtICAgICAgICAgICAgKmlucHV0X3N0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2ludDY0ICAgICAgICAgICAgICAgICAgIHN0cmVhbV9s
ZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGdjaGFyICAgICAgICAgICAgICpjb250ZW50X3R5cGUpOworCitXRUJLSVRfQVBJIHZvaWQK
K3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMgICAgICAgICAoV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnaW50ICAgICAgICAgICAgICAgICAgICAgc3RhdHVzX2NvZGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFy
ICAgICAgICAgICAgICpyZWFzb25fcGhyYXNlKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1z
ZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEu
MC1zZWN0aW9ucy50eHQKaW5kZXggYjhiMDhkMmY5MWYyNTY0Y2VmN2RhMGI4ZWNlZGM4YTExMmQ1
YmU5MC4uMThkZjIxODBkNTRmZmE5ZTUxMTExNDgwZmE1ZTYwN2U0YWZiY2I3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNl
Y3Rpb25zLnR4dApAQCAtMTIxNCw3ICsxMjE0LDkgQEAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9nZXRfc2NoZW1lCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkKIHdlYmtpdF91
cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3BhdGgKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0
X3dlYl92aWV3Cit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZAogd2Vi
a2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2gKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
ZmluaXNoX3dpdGhfcmVzcG9uc2UKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vy
cm9yCiAKIDxTVUJTRUNUSU9OIFN0YW5kYXJkPgpAQCAtMTIzMSw2ICsxMjMzLDI2IEBAIFdlYktp
dFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF90
eXBlCiA8L1NFQ1RJT04+CiAKKzxTRUNUSU9OPgorPEZJTEU+V2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2U8L0ZJTEU+CitXZWJLaXRVUklTY2hlbWVSZXNwb25zZQord2Via2l0X3VyaV9zY2hlbWVfcmVz
cG9uc2VfbmV3Cit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzCisKKzxTVUJT
RUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcworV0VCS0lUX1RZ
UEVfVVJJX1NDSEVNRV9SRVNQT05TRQorV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0UKK1dFQktJ
VF9JU19VUklfU0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9DTEFT
UworV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1MKK1dFQktJVF9VUklfU0NIRU1F
X1JFU1BPTlNFX0dFVF9DTEFTUworCis8U1VCU0VDVElPTiBQcml2YXRlPgorV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2VQcml2YXRlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZQor
PC9TRUNUSU9OPgorCiA8U0VDVElPTj4KIDxGSUxFPldlYktpdFZlcnNpb248L0ZJTEU+CiB3ZWJr
aXRfZ2V0X21ham9yX3ZlcnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9kb2NzL3dwZS1kb2NzLnNnbWwKaW5kZXggOGUyNTdmMDJmMTFmZWJlY2QyYTU2NzNiOGU4
NzA2ZDVlYzZjNjgzOS4uMmJjYzBjYmRhODg1ZGY5YmY3NDk1MzRlM2RkMWVlYjY5OWJkMTFkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS1kb2Nz
LnNnbWwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS1kb2Nz
LnNnbWwKQEAgLTQxLDYgKzQxLDcgQEAKICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0
Q29va2llTWFuYWdlci54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0UGx1
Z2luLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVUklTY2hlbWVSZXF1
ZXN0LnhtbCIvPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVUklTY2hlbWVSZXNw
b25zZS54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0Q29udGV4dE1lbnUu
eG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdENvbnRleHRNZW51SXRlbS54
bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1
ZXN0LnhtbCIvPgpAQCAtMTA4LDUgKzEwOSwxMCBAQAogICAgIDx4aTppbmNsdWRlIGhyZWY9Inht
bC9hcGktaW5kZXgtMi4zMC54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KICAgPC9p
bmRleD4KIAorICA8aW5kZXggaWQ9ImFwaS1pbmRleC0yLTM2IiByb2xlPSIyLjM2Ij4KKyAgICA8
dGl0bGU+SW5kZXggb2YgbmV3IHN5bWJvbHMgaW4gMi4zNjwvdGl0bGU+CisgICAgPHhpOmluY2x1
ZGUgaHJlZj0ieG1sL2FwaS1pbmRleC0yLjM2LnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNs
dWRlPgorICA8L2luZGV4PgorCiAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hbm5vdGF0aW9uLWds
b3NzYXJ5LnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRlPgogPC9ib29rPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS93ZWJraXQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvd2Via2l0LmgKaW5kZXggNWM5M2Q3NjBmNzM0YTEyZjYx
NDg5OTU0NTEzNWZkZjc3MDE2NDU3NS4uYzIyMjFlZmMwMDYxOGMyZWM0ZDIwYTg4YzU5ODQwNzY3
YmQ1MmZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS93ZWJr
aXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL3dlYmtpdC5oCkBAIC03
Myw2ICs3Myw3IEBACiAjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVJlcXVlc3QuaD4KICNpbmNsdWRl
IDx3cGUvV2ViS2l0VVJJUmVzcG9uc2UuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oPgogI2lu
Y2x1ZGUgPHdwZS9XZWJLaXRVUklVdGlsaXRpZXMuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0VXNl
ckNvbnRlbnQuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5o
PgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUw
MDIzYTI0ODUwODlkY2EzNzkxNjc4MWM4NjEyNmI5NzIyNDZhNWUuLjlhYjhkNGE1NTBiMWUyNmRl
OGYzZGU2NzY2YjRlZmY5YTY5ZDc4NTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMC0yMCAgWml4aW5nIExp
dSAgPGxpdXNodXl1MDExQGdtYWlsLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIFN1cHBvcnQg
c2V0dGluZyBzdGF0dXMgY29kZSBhbmQgZ2V0dGluZyBIVFRQIG1ldGhvZCBpbiBjdXN0b20gVVJJ
IHNjaGVtZSBoYW5kbGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxODgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNv
bnRleHQuY3BwOgorICAgICAgICAodGVzdFdlYkNvbnRleHRVUklTY2hlbWUpOiBBZGRlZCB0ZXN0
cyB0byB0ZXN0IG5ldyBwdWJsaWMgQVBJcyBmb3IgV2ViS2l0R3RrCisKIDIwMjEtMTAtMTggIEpv
bmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJldmVydGluZyByMjg0Mzk5LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggYjkzNmM4
ZTA3NzVhMTdhY2FiZTIxMjhhYTcxOTMyZTVmNGQ5MGY0My4uYjQwMzZkNWEyM2Q0ZmExZDE0ODlk
ZTRiYjk3NTIyNjAyZWU1ZjBhNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCkBAIC05NSwx
NiArOTUsMTggQEAgcHVibGljOgogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBVUklT
Y2hlbWVIYW5kbGVyKGNvbnN0IGNoYXIqIHJlcGx5LCBpbnQgcmVwbHlMZW5ndGgsIGNvbnN0IGNo
YXIqIG1pbWVUeXBlKQorICAgICAgICBVUklTY2hlbWVIYW5kbGVyKGNvbnN0IGNoYXIqIHJlcGx5
LCBpbnQgcmVwbHlMZW5ndGgsIGNvbnN0IGNoYXIqIG1pbWVUeXBlLCBpbnQgc3RhdHVzQ29kZSA9
IDIwMCkKICAgICAgICAgICAgIDogcmVwbHkocmVwbHkpCiAgICAgICAgICAgICAsIHJlcGx5TGVu
Z3RoKHJlcGx5TGVuZ3RoKQogICAgICAgICAgICAgLCBtaW1lVHlwZShtaW1lVHlwZSkKKyAgICAg
ICAgICAgICwgc3RhdHVzQ29kZShzdGF0dXNDb2RlKQogICAgICAgICB7CiAgICAgICAgIH0KIAog
ICAgICAgICBDU3RyaW5nIHJlcGx5OwogICAgICAgICBpbnQgcmVwbHlMZW5ndGg7CiAgICAgICAg
IENTdHJpbmcgbWltZVR5cGU7CisgICAgICAgIGludCBzdGF0dXNDb2RlOwogICAgIH07CiAKICAg
ICBzdGF0aWMgdm9pZCB1cmlTY2hlbWVSZXF1ZXN0Q2FsbGJhY2soV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdCogcmVxdWVzdCwgZ3BvaW50ZXIgdXNlckRhdGEpCkBAIC0xMjAsNiArMTIyLDExIEBAIHB1
YmxpYzoKICAgICAgICAgZ19hc3NlcnRfbm9ubnVsbChzY2hlbWUpOwogICAgICAgICBnX2Fzc2Vy
dF90cnVlKHRlc3QtPm1faGFuZGxlcnNNYXAuY29udGFpbnMoU3RyaW5nOjpmcm9tVVRGOChzY2hl
bWUpKSk7CiAKKyAgICAgICAgY29uc3QgY2hhciogbWV0aG9kID0gd2Via2l0X3VyaV9zY2hlbWVf
cmVxdWVzdF9nZXRfaHR0cF9tZXRob2QocmVxdWVzdCk7CisgICAgICAgIGdfYXNzZXJ0X25vbm51
bGwobWV0aG9kKTsKKyAgICAgICAgZ19hc3NlcnRfY21wc3RyKG1ldGhvZCwgPT0sICJHRVQiKTsK
KworCiAgICAgICAgIGNvbnN0IFVSSVNjaGVtZUhhbmRsZXImIGhhbmRsZXIgPSB0ZXN0LT5tX2hh
bmRsZXJzTWFwLmdldChTdHJpbmc6OmZyb21VVEY4KHNjaGVtZSkpOwogCiAgICAgICAgIEdSZWZQ
dHI8R0lucHV0U3RyZWFtPiBpbnB1dFN0cmVhbSA9IGFkb3B0R1JlZihnX21lbW9yeV9pbnB1dF9z
dHJlYW1fbmV3KCkpOwpAQCAtMTU3LDkgKzE2NCw5IEBAIHB1YmxpYzoKICAgICAgICAgd2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2gocmVxdWVzdCwgaW5wdXRTdHJlYW0uZ2V0KCksIGhh
bmRsZXIucmVwbHlMZW5ndGgsIGhhbmRsZXIubWltZVR5cGUuZGF0YSgpKTsKICAgICB9CiAKLSAg
ICB2b2lkIHJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcihjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0
IGNoYXIqIHJlcGx5LCBpbnQgcmVwbHlMZW5ndGgsIGNvbnN0IGNoYXIqIG1pbWVUeXBlKQorICAg
IHZvaWQgcmVnaXN0ZXJVUklTY2hlbWVIYW5kbGVyKGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3Qg
Y2hhciogcmVwbHksIGludCByZXBseUxlbmd0aCwgY29uc3QgY2hhciogbWltZVR5cGUsIGludCBz
dGF0dXNDb2RlID0gMjAwKQogICAgIHsKLSAgICAgICAgbV9oYW5kbGVyc01hcC5zZXQoU3RyaW5n
Ojpmcm9tVVRGOChzY2hlbWUpLCBVUklTY2hlbWVIYW5kbGVyKHJlcGx5LCByZXBseUxlbmd0aCwg
bWltZVR5cGUpKTsKKyAgICAgICAgbV9oYW5kbGVyc01hcC5zZXQoU3RyaW5nOjpmcm9tVVRGOChz
Y2hlbWUpLCBVUklTY2hlbWVIYW5kbGVyKHJlcGx5LCByZXBseUxlbmd0aCwgbWltZVR5cGUsIHN0
YXR1c0NvZGUpKTsKICAgICAgICAgd2Via2l0X3dlYl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hl
bWUobV93ZWJDb250ZXh0LmdldCgpLCBzY2hlbWUsIHVyaVNjaGVtZVJlcXVlc3RDYWxsYmFjaywg
dGhpcywgMCk7CiAgICAgfQogCkBAIC0yOTcsNiArMzA0LDIwIEBAIHN0YXRpYyB2b2lkIHRlc3RX
ZWJDb250ZXh0VVJJU2NoZW1lKFVSSVNjaGVtZVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAg
ICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2xvYWRGYWlsZWQpOwogICAgIGdfYXNzZXJ0X2Vycm9y
KHRlc3QtPm1fZXJyb3IuZ2V0KCksIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0xPU0VEKTsKIAor
ICAgIHRlc3QtPnJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcigibm90Zm91bmQiLCBrQmFySFRNTCwg
c3RybGVuKGtCYXJIVE1MKSwgInRleHQvaHRtbCIsIDQwNCk7CisgICAgdGVzdC0+bV9sb2FkRXZl
bnRzLmNsZWFyKCk7CisgICAgdGVzdC0+bG9hZFVSSSgibm90Zm91bmQ6YmxhbmsiKTsKKyAgICB0
ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBnX2Fzc2VydF9mYWxzZSh0ZXN0LT5t
X2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVzdDo6UHJvdmlzaW9uYWxMb2FkRmFp
bGVkKSk7CisgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9h
ZFRyYWNraW5nVGVzdDo6TG9hZEZhaWxlZCkpOworCisgICAgdGVzdC0+cmVnaXN0ZXJVUklTY2hl
bWVIYW5kbGVyKCJub2NvbnRlbnQiLCBudWxscHRyLCAwLCAiYXBwbGljYXRpb24vanNvbiIsIDIw
NCk7CisgICAgdGVzdC0+bV9sb2FkRXZlbnRzLmNsZWFyKCk7CisgICAgdGVzdC0+bG9hZFVSSSgi
bm9jb250ZW50OmJsYW5rIik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7Cisg
ICAgZ19hc3NlcnRfZmFsc2UodGVzdC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2lu
Z1Rlc3Q6OlByb3Zpc2lvbmFsTG9hZEZhaWxlZCkpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHRlc3Qt
Pm1fbG9hZEV2ZW50cy5jb250YWlucyhMb2FkVHJhY2tpbmdUZXN0OjpMb2FkRmFpbGVkKSk7CisK
ICAgICAvLyBUb3J0dXJlIHRlc3QgdGltZTogbWFrZSBzdXJlIGl0IHN0aWxsIHdvcmtzIGlmIHdl
IGlzc3VlIGEgYnVuY2ggb2YgZGlmZmVyZW50IHJlcXVlc3RzIGFsbCBhdAogICAgIC8vIG9uY2Uu
IEVhY2ggcmVxdWVzdCBzaG91bGQgZmluaXNoIGFuZCByZXR1cm4gZXhhY3RseSB0aGUgc2FtZSBk
YXRhLgogICAgIGludCBudW1JdGVyYXRpb25zID0gMjU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442080</attachid>
            <date>2021-10-21 16:15:08 -0700</date>
            <delta_ts>2021-10-23 15:57:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231880-20211021171507.patch</filename>
            <type>text/plain</type>
            <size>40871</size>
            <attacher>liushuyu011</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQzMjkzMmY3ZDIxMWRkMzA5
M2QwYzQ4ZjBkZTg1MjIwYmVmYWMyN2QuLmMxYzgxNWVjOGM2MzY3YzUwYWE2MDhmNGFlNDJmNGQ5
ZjE1YWZhYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMTAtMjAgIFppeGluZyBM
aXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdXBwb3J0
IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4gY3VzdG9tIFVS
SSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlc0dUSy50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
Y3BwCisgICAgICAgICogU291cmNlc1dQRS50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwOgorICAgICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRo
b2QpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3Rf
ZmluaXNoX3dpdGhfcmVzcG9uc2UpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmg6ICBBZGRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2Uu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2NsYXNzX2lu
aXQpOiBBZGRlZCBpbml0IGZ1bmN0aW9uIGZvciB0aGUgbmV3IHR5cGUKKyAgICAgICAgKHdlYmtp
dF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rpb24KKyAgICAg
ICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMpOiBBZGRlZCBuZXcgQVBJ
IGZ1bmN0aW9uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlUHJpdmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5oLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oOiBSZWdpc3RlciBjbGVhbi11cCBmdW5jdGlv
biBmb3IgV2Via2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmg6IEFkZGVkIGZ1bmN0aW9uIHByb3RvdHlwZSBmb3Ig
CisgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaDogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9u
cy50eHQ6IEFkZGVkIG5ldyBzeW1ib2xzIGFuZCBuZXcgdHlwZXMKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay93ZWJraXQyLmg6IEluY2x1ZGUgYSBuZXcgaGVhZGVyOiBXZWJLaXRVUklTY2hl
bWVSZXNwb25zZS5oCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5oOiBBZGRlZCBmdW5jdGlvbiBwcm90b3R5cGUgZm9yIAorICAgICAgICB3ZWJraXRf
dXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZAorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvd3BlL3dlYmtpdC5oOiBJbmNsdWRlIGEgbmV3IGhlYWRlcjogV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2UuaAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1z
ZWN0aW9ucy50eHQ6IEFkZGVkIG5ldyBzeW1ib2xzIGFuZCBuZXcgdHlwZXMKKwogMjAyMS0xMC0x
OCAgSm9obiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhu
XSBPYnRhaW4gY29uc2VudCB0byBjcmVhdGUgbmV3IGNyZWRlbnRpYWwgd2hlbiBwbGF0Zm9ybSBh
dXRoZW50aWNhdG9yIGluIGV4Y2x1ZGVkQ3JlZGVudGlhbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtl
CmluZGV4IDg4YzU2MGNjOWY2MmNlNWM1ZTljZGVmOWQ0NzBkZTQ3ZmFkNDVhZTQuLjE0MTcwNWEy
MDRlMDI4YzE4YzQ0MmEwZDk0Mjk0MzFhZTg4ODFmYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFr
ZQpAQCAtMTQ2LDYgKzE0Niw3IEBAIHNldChXZWJLaXQyR1RLX0lOU1RBTExFRF9IRUFERVJTCiAg
ICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmgKICAg
ICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlc3BvbnNlLmgKICAg
ICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
aAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVz
cG9uc2UuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJVXRp
bGl0aWVzLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJD
b250ZW50LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJD
b250ZW50RmlsdGVyU3RvcmUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQ
RS5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKaW5kZXggZjRjZDViZWY0
MDJiMGM2M2UxZmJiN2EwNzEzMjkwMGNlNmY3MzhiYi4uMGZiM2UzZTc4MDZjOThiMThlYjM0NGEw
MzVhMzhjNTkwZTU4NzEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0xNzYsNiArMTc2
LDcgQEAgc2V0KFdQRV9BUElfSU5TVEFMTEVEX0hFQURFUlMKICAgICAke1dFQktJVF9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVJlcXVlc3QuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQ
cm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJUmVzcG9uc2UuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQ
cm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCisgICAgJHtXRUJLSVRfRElS
fS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCiAgICAgJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklVdGlsaXRpZXMuaAogICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VXNlckNvbnRlbnQuaAogICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzR1RLLnR4dAppbmRleCA1Yzk1NGVlZjlhZTFiMmY5NGVmMDA4YjJhMzhhZjg4OTRi
MGM5YWM1Li5mMjEyNDZmMDBjMThmMjM4MWZjZWU3MzE3Zjk2NDlmMWI2NjFlMzQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc0dUSy50eHQKQEAgLTE3Myw2ICsxNzMsNyBAQCBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
U2VjdXJpdHlPcmlnaW4uY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNl
dHRpbmdzLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5j
cHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5j
cHAgQG5vLXVuaWZ5CitVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2Uu
Y3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVV0aWxpdGllcy5jcHAg
QG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNvbnRlbnQuY3BwIEBuby11
bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUuY3Bw
IEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKaW5kZXggOGExYzMwZjMyZjNiOTM1MGEzMDZiZWY1
MzBlY2IzMzQwYzFmMjljNy4uOTQ0MTlkZDg2ZjA3OWM1YzUzZTY4Y2U4ZTc5YjkxNTUwNWE4N2Fi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNXUEUudHh0CkBAIC0xNjQsNiArMTY0LDcgQEAgVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFNlY3VyaXR5T3JpZ2luLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRTZXR0aW5ncy5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
VUlDbGllbnQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVt
ZVJlcXVlc3QuY3BwIEBuby11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklVdGls
aXRpZXMuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVzZXJDb250ZW50
LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2VyQ29udGVudEZpbHRl
clN0b3JlLmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKaW5kZXggNmEwZDU5YzEw
Mjg5ZTFiODBjYTJhMTU1ZTQ2ZTdkZDk4OWY1ZTlmMS4uNDA2Y2E1YmE0NDBjOTM0NTljMTE3ODBj
YmQ0ZTczOTkzMTlmMDNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKQEAgLTY0LDEyICs2NCwx
MSBAQCBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlIHsKICAgICBDU3RyaW5n
IHVyaVNjaGVtZTsKICAgICBDU3RyaW5nIHVyaVBhdGg7CiAKLSAgICBHUmVmUHRyPEdJbnB1dFN0
cmVhbT4gc3RyZWFtOwotICAgIHVpbnQ2NF90IHN0cmVhbUxlbmd0aDsKKyAgICBHUmVmUHRyPFdl
YktpdFVSSVNjaGVtZVJlc3BvbnNlPiByZXNwb25zZTsKICAgICBHUmVmUHRyPEdDYW5jZWxsYWJs
ZT4gY2FuY2VsbGFibGU7CiAgICAgY2hhciByZWFkQnVmZmVyW2dSZWFkQnVmZmVyU2l6ZV07CiAg
ICAgdWludDY0X3QgYnl0ZXNSZWFkOwotICAgIENTdHJpbmcgY29udGVudFR5cGU7CisgICAgY29u
c3QgY2hhciogaHR0cE1ldGhvZDsKIH07CiAKIFdFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0LCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0LCBHX1RZUEVfT0JKRUNUKQpA
QCAtMTYxLDYgKzE2MCwyNiBAQCBXZWJLaXRXZWJWaWV3KiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X2dldF93ZWJfdmlldyhXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZQogICAgIHJldHVybiB3
ZWJraXRXZWJDb250ZXh0R2V0V2ViVmlld0ZvclBhZ2UocmVxdWVzdC0+cHJpdi0+d2ViQ29udGV4
dCwgcmVxdWVzdC0+cHJpdi0+aW5pdGlhdGluZ1BhZ2UuZ2V0KCkpOwogfQogCisvKioKKyAqIHdl
YmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kOgorICogQHJlcXVlc3Q6IGEg
I1dlYktpdFVSSVNjaGVtZVJlcXVlc3QKKyAqCisgKiBHZXQgdGhlIEhUVFAgbWV0aG9kIG9mIHRo
ZSBAcmVxdWVzdAorICoKKyAqIFJldHVybnM6IHRoZSBIVFRQIG1ldGhvZCBvZiB0aGUgQHJlcXVl
c3QKKyAqIAorICogU2luY2U6IDIuMzYKKyAqLworY29uc3QgZ2NoYXIqIHdlYmtpdF91cmlfc2No
ZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVl
c3QpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVR
VUVTVChyZXF1ZXN0KSwgbnVsbHB0cik7CisKKyAgICBpZiAoIXJlcXVlc3QtPnByaXYtPmh0dHBN
ZXRob2QpCisgICAgICAgIHJlcXVlc3QtPnByaXYtPmh0dHBNZXRob2QgPSBnX2ludGVybl9zdHJp
bmcocmVxdWVzdC0+cHJpdi0+dGFzay0+cmVxdWVzdCgpLmh0dHBNZXRob2QoKS51dGY4KCkuZGF0
YSgpKTsKKworICAgIHJldHVybiByZXF1ZXN0LT5wcml2LT5odHRwTWV0aG9kOworfQorCiBzdGF0
aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSog
aW5wdXRTdHJlYW0sIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
KiBzY2hlbWVSZXF1ZXN0KQogewogICAgIEdSZWZQdHI8V2ViS2l0VVJJU2NoZW1lUmVxdWVzdD4g
cmVxdWVzdCA9IGFkb3B0R1JlZihzY2hlbWVSZXF1ZXN0KTsKQEAgLTE3MiwxNiArMTkxLDIwIEBA
IHN0YXRpYyB2b2lkIHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RSZWFkQ2FsbGJhY2soR0lucHV0U3Ry
ZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jCiAgICAgfQogCiAgICAgV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OworICAgIFdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlUHJpdmF0ZSogcmVzcFByaXYgPSBwcml2LT5yZXNwb25zZS0+cHJpdjsKICAgICAvLyBO
ZWVkIHRvIGNoZWNrIHRoZSBzdHJlYW0gYmVmb3JlIHByb2NlZWRpbmcgYXMgaXQgY2FuIGJlIGNh
bmNlbGxlZCBpZiBmaW5pc2hfZXJyb3IKICAgICAvLyB3YXMgcHJldmlvdXNseSBjYWxsLCB3aGlj
aCB3b24ndCBiZSBkZXRlY3RlZCBieSBnX2lucHV0X3N0cmVhbV9yZWFkX2ZpbmlzaCgpLgotICAg
IGlmICghcHJpdi0+c3RyZWFtKQorICAgIGlmICghcmVzcFByaXYtPnN0cmVhbSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgaWYgKCFwcml2LT5ieXRlc1JlYWQpIHsKLSAgICAgICAgUmVzb3VyY2VS
ZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIGV4dHJhY3RNSU1F
VHlwZUZyb21NZWRpYVR5cGUocHJpdi0+Y29udGVudFR5cGUuZGF0YSgpKSwgcHJpdi0+c3RyZWFt
TGVuZ3RoLCBlbXB0eVN0cmluZygpKTsKLSAgICAgICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5n
TmFtZShleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUocHJpdi0+Y29udGVudFR5cGUuZGF0YSgp
KSk7Ci0gICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKDIwMCk7Ci0gICAgICAgIHJl
c3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KCJPSyJfcyk7CisgICAgICAgIFJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2UocHJpdi0+dGFzay0+cmVxdWVzdCgpLnVybCgpLCBleHRyYWN0TUlNRVR5cGVG
cm9tTWVkaWFUeXBlKHJlc3BQcml2LT5jb250ZW50VHlwZS5kYXRhKCkpLCByZXNwUHJpdi0+c3Ry
ZWFtTGVuZ3RoLCBlbXB0eVN0cmluZygpKTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29k
aW5nTmFtZShleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUocmVzcFByaXYtPmNvbnRlbnRUeXBl
LmRhdGEoKSkpOworICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZShyZXNwUHJpdi0+
c3RhdHVzQ29kZSk7CisgICAgICAgIGlmICghcmVzcFByaXYtPnN0YXR1c01lc3NhZ2UuaXNOdWxs
KCkpCisgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzVGV4dChyZXNwUHJpdi0+c3Rh
dHVzTWVzc2FnZS5kYXRhKCkpOworICAgICAgICBlbHNlIGlmIChyZXNwUHJpdi0+c3RhdHVzQ29k
ZSA+PSAwKQorICAgICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoc291cF9zdGF0
dXNfZ2V0X3BocmFzZSgoZ3VpbnQpcmVzcFByaXYtPnN0YXR1c0NvZGUpKTsKICAgICAgICAgaWYg
KHJlc3BvbnNlLm1pbWVUeXBlKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmVzcG9uc2Uuc2V0
TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKHJlc3BvbnNlLnVybCgp
LnBhdGgoKS50b1N0cmluZygpKSk7CiAgICAgICAgIHByaXYtPnRhc2stPmRpZFJlY2VpdmVSZXNw
b25zZShyZXNwb25zZSk7CkBAIC0yMTMsMTYgKzIzNiwzMiBAQCB2b2lkIHdlYmtpdF91cmlfc2No
ZW1lX3JlcXVlc3RfZmluaXNoKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIEdJbnB1
dFN0cgogICAgIGdfcmV0dXJuX2lmX2ZhaWwoR19JU19JTlBVVF9TVFJFQU0oaW5wdXRTdHJlYW0p
KTsKICAgICBnX3JldHVybl9pZl9mYWlsKHN0cmVhbUxlbmd0aCA9PSAtMSB8fCBzdHJlYW1MZW5n
dGggPj0gMCk7CiAKLSAgICByZXF1ZXN0LT5wcml2LT5zdHJlYW0gPSBpbnB1dFN0cmVhbTsKLSAg
ICAvLyBXZSB1c2UgLTEgaW4gdGhlIEFQSSBmb3IgY29uc2lzdGVuY3kgd2l0aCBzb3VwIHdoZW4g
dGhlIGNvbnRlbnQgbGVuZ3RoIGlzIG5vdCBrbm93biwgYnV0IDAgaW50ZXJuYWxseS4KLSAgICBy
ZXF1ZXN0LT5wcml2LT5zdHJlYW1MZW5ndGggPSBzdHJlYW1MZW5ndGggPT0gLTEgPyAwIDogc3Ry
ZWFtTGVuZ3RoOwotICAgIHJlcXVlc3QtPnByaXYtPmNhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdf
Y2FuY2VsbGFibGVfbmV3KCkpOwotICAgIHJlcXVlc3QtPnByaXYtPmJ5dGVzUmVhZCA9IDA7Ci0g
ICAgcmVxdWVzdC0+cHJpdi0+Y29udGVudFR5cGUgPSBjb250ZW50VHlwZTsKKyAgICByZXF1ZXN0
LT5wcml2LT5yZXNwb25zZSA9IHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyhpbnB1dFN0
cmVhbSwgc3RyZWFtTGVuZ3RoLCBjb250ZW50VHlwZSk7CisKICAgICBnX2lucHV0X3N0cmVhbV9y
ZWFkX2FzeW5jKGlucHV0U3RyZWFtLCByZXF1ZXN0LT5wcml2LT5yZWFkQnVmZmVyLCBnUmVhZEJ1
ZmZlclNpemUsIFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6QXN5bmNJT05ldHdvcmssIHJlcXVlc3Qt
PnByaXYtPmNhbmNlbGxhYmxlLmdldCgpLAogICAgICAgICByZWludGVycHJldF9jYXN0PEdBc3lu
Y1JlYWR5Q2FsbGJhY2s+KHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RSZWFkQ2FsbGJhY2spLCBnX29i
amVjdF9yZWYocmVxdWVzdCkpOwogfQogCisvKioKKyAqIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZmluaXNoX3dpdGhfcmVzcG9uc2U6CisgKiBAcmVxdWVzdDogYSAjV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdAorICogQHJlc3BvbnNlOiBhICNXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICoKKyAq
IEZpbmlzaCBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0IGJ5IHJldHVybmluZyBhICNXZWJLaXRV
UklTY2hlbWVSZXNwb25zZQorICoKKyAqIFNpbmNlOiAyLjM2CisgKi8KK3ZvaWQgd2Via2l0X3Vy
aV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZShXZWJLaXRVUklTY2hlbWVSZXF1
ZXN0KiByZXF1ZXN0LCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAg
Z19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVFVRVNUKHJlcXVlc3QpKTsK
KyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFKHJlc3Bv
bnNlKSk7CisKKyAgICByZXF1ZXN0LT5wcml2LT5yZXNwb25zZSA9IHJlc3BvbnNlOworCisgICAg
Z19pbnB1dF9zdHJlYW1fcmVhZF9hc3luYyhyZXNwb25zZS0+cHJpdi0+c3RyZWFtLmdldCgpLCBy
ZXF1ZXN0LT5wcml2LT5yZWFkQnVmZmVyLCBnUmVhZEJ1ZmZlclNpemUsIFJ1bkxvb3BTb3VyY2VQ
cmlvcml0eTo6QXN5bmNJT05ldHdvcmssIHJlcXVlc3QtPnByaXYtPmNhbmNlbGxhYmxlLmdldCgp
LAorICAgICAgICByZWludGVycHJldF9jYXN0PEdBc3luY1JlYWR5Q2FsbGJhY2s+KHdlYmtpdFVS
SVNjaGVtZVJlcXVlc3RSZWFkQ2FsbGJhY2spLCBnX29iamVjdF9yZWYocmVxdWVzdCkpOworfQor
CiAvKioKICAqIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vycm9yOgogICogQHJl
cXVlc3Q6IGEgI1dlYktpdFVSSVNjaGVtZVJlcXVlc3QKQEAgLTIzOCw3ICsyNzcsNyBAQCB2b2lk
IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vycm9yKFdlYktpdFVSSVNjaGVtZVJl
cXVlc3QqIHJlcXVlc3QsIEdFcgogICAgIGdfcmV0dXJuX2lmX2ZhaWwoZXJyb3IpOwogCiAgICAg
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwotICAg
IHByaXYtPnN0cmVhbSA9IG51bGxwdHI7CisgICAgcHJpdi0+cmVzcG9uc2UtPnByaXYtPnN0cmVh
bSA9IG51bGxwdHI7CiAgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKGdfcXVhcmtfdG9f
c3RyaW5nKGVycm9yLT5kb21haW4pLCB0b1dlYkNvcmVFcnJvcihlcnJvci0+Y29kZSksIHByaXYt
PnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkp
OwogICAgIHByaXYtPnRhc2stPmRpZENvbXBsZXRlKHJlc291cmNlRXJyb3IpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVS
SVNjaGVtZVJlcXVlc3RQcml2YXRlLmgKaW5kZXggMDE4NDllMTU3Njk0MzUxOWQ4MTI5NDY5OGQ3
NWViMjZmMjI5OWQzYS4uNzA3NzkwMDE5MzQ5OTZlYTI5OGYyNjEzMDlmMzZhYmQ5YzU5YmNiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5oCkBAIC0yMCw2ICsyMCw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlcXVlc3QuaCIKKyNpbmNsdWRl
ICJXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJD
b250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViVVJMU2No
ZW1lVGFzay5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlOGNmNzMxZmY5
YWM3YzQ5ODE4Y2EzZDI0ZDgyZjI3Y2MyZjY4YzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5jcHAKQEAg
LTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgWml4aW5nIExpdQorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRl
LmgiCisKKyNpbmNsdWRlICJBUElEYXRhLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgor
I2luY2x1ZGUgIldlYlVSTFNjaGVtZVRhc2suaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBQYXJz
ZXJzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8
d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlv
cml0eS5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL1dURkdUeXBlLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKKy8qKgorICogU0VDVElPTjogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAq
IEBTaG9ydF9kZXNjcmlwdGlvbjogUmVwcmVzZW50cyBhIFVSSSBzY2hlbWUgcmVzcG9uc2UKKyAq
IEBUaXRsZTogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAqCisgKiBJZiB5b3UgcmVnaXN0ZXIg
YSBwYXJ0aWN1bGFyIFVSSSBzY2hlbWUgaW4gYSAjV2ViS2l0V2ViQ29udGV4dCwKKyAqIHVzaW5n
IHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lKCksIHlvdSBoYXZlIHRvIHBy
b3ZpZGUKKyAqIGEgI1dlYktpdFVSSVNjaGVtZVJlcXVlc3RDYWxsYmFjay4gQWZ0ZXIgdGhhdCwg
d2hlbiBhIFVSSSByZXNwb25zZQorICogaXMgbWFkZSB3aXRoIHRoYXQgcGFydGljdWxhciBzY2hl
bWUsIHlvdXIgY2FsbGJhY2sgd2lsbCBiZQorICogY2FsbGVkLiBUaGVyZSB5b3Ugd2lsbCBiZSBh
YmxlIHRvIHByb3ZpZGUgbW9yZSByZXNwb25zZSBwYXJhbWV0ZXJzCisgKiB3aGVuIHRoZSBtZXRo
b2RzIGFuZCBwcm9wZXJ0aWVzIG9mIGEgI1dlYktpdFVSSVNjaGVtZVJlcXVlc3QgaXMgbm90Cisg
KiBlbm91Z2guCisgKiAKKyAqIFdoZW4geW91IGZpbmlzaGVkIHNldHRpbmcgdXAgeW91ciAjV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2UsIGNhbGwKKyAqIHdlYmtpdF91cmlfcmVxdWVzdF9maW5pc2hf
d2l0aF9yZXNwb25zZSB3aXRoIGl0IHRvIHJldHVybiB0aGUgcmVzcG9uc2UuCisgKgorICovCisK
K1dFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRVUklTY2hlbWVSZXNwb25zZSwgd2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2UsIEdfVFlQRV9PQkpFQ1QpOworCitzdGF0aWMgdm9pZCB3ZWJraXRfdXJp
X3NjaGVtZV9yZXNwb25zZV9jbGFzc19pbml0KFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3Mq
KQoreworfQorCisvKioKKyAqIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXNf
Ym9keToKKyAqIEByZXNwb25zZTogYSAjV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAqIEBzdHJl
YW06IGEgI0dJbnB1dFN0cmVhbSB0byByZWFkIHRoZSBjb250ZW50cyBvZiB0aGUgcmVxdWVzdAor
ICogQHN0cmVhbV9sZW5ndGg6IHRoZSBsZW5ndGggb2YgdGhlIHN0cmVhbSBvciAtMSBpZiBub3Qg
a25vd24KKyAqIEBjb250ZW50X3R5cGU6IChhbGxvdy1ub25lKTogdGhlIGNvbnRlbnQgdHlwZSBv
ZiB0aGUgc3RyZWFtIG9yICVOVUxMIGlmIG5vdCBrbm93bgorICoKKyAqIFNldHMgdGhlIHN0YXR1
cyBtZXNzYWdlIGZvciB0aGUgQHJlc3BvbnNlCisgKgorICogU2luY2U6IDIuMzYKKyAqLworV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2UqIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyhHSW5w
dXRTdHJlYW0qIGlucHV0U3RyZWFtLCBnaW50NjQgc3RyZWFtTGVuZ3RoLCBjb25zdCBnY2hhciog
Y29udGVudFR5cGUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoR19JU19JTlBVVF9TVFJF
QU0oaW5wdXRTdHJlYW0pLCBudWxscHRyKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzdHJl
YW1MZW5ndGggPT0gLTEgfHwgc3RyZWFtTGVuZ3RoID49IDAsIG51bGxwdHIpOworCisgICAgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3BvbnNlID0gV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9O
U0UoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UsIG51bGxwdHIp
KTsKKyAgICByZXNwb25zZS0+cHJpdi0+c3RhdHVzQ29kZSA9IDIwMDsKKyAgICByZXNwb25zZS0+
cHJpdi0+c3RyZWFtID0gaW5wdXRTdHJlYW07CisgICAgLy8gV2UgdXNlIC0xIGluIHRoZSBBUEkg
Zm9yIGNvbnNpc3RlbmN5IHdpdGggc291cCB3aGVuIHRoZSBjb250ZW50IGxlbmd0aCBpcyBub3Qg
a25vd24sIGJ1dCAwIGludGVybmFsbHkuCisgICAgcmVzcG9uc2UtPnByaXYtPnN0cmVhbUxlbmd0
aCA9IHN0cmVhbUxlbmd0aCA9PSAtMSA/IDAgOiBzdHJlYW1MZW5ndGg7CisgICAgcmVzcG9uc2Ut
PnByaXYtPmJ5dGVzUmVhZCA9IDA7CisgICAgcmVzcG9uc2UtPnByaXYtPmNvbnRlbnRUeXBlID0g
Y29udGVudFR5cGU7CisgICAgcmV0dXJuIHJlc3BvbnNlOworfQorCisvKioKKyAqIHdlYmtpdF91
cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXM6CisgKiBAcmVzcG9uc2U6IGEgI1dlYktpdFVS
SVNjaGVtZVJlc3BvbnNlCisgKiBAc3RhdHVzX2NvZGU6IHRoZSBIVFRQIHN0YXR1cyBjb2RlIHRv
IGJlIHJldHVybmVkCisgKiBAcmVhc29uX3BocmFzZTogKGFsbG93LW5vbmUpOiBhIHJlYXNvbiBw
aHJhc2UKKyAqCisgKiBTZXRzIHRoZSBzdGF0dXMgY29kZSBhbmQgcmVhc29uIHBocmFzZSBmb3Ig
dGhlIEByZXNwb25zZS4KKyAqIElmIEBzdGF0dXNfY29kZSBpcyBhIGtub3duIHZhbHVlIGFuZCBA
cmVhc29uX3BocmFzZSBpcyAlTlVMTCwgdGhlIEByZWFzb25fcGhyYXNlIHdpbGwgYmUgc2V0IGF1
dG9tYXRpY2FsbHkuCisgKgorICogU2luY2U6IDIuMzYKKyAqLwordm9pZCB3ZWJraXRfdXJpX3Nj
aGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKiByZXNwb25z
ZSwgZ2ludCBzdGF0dXNDb2RlLCBjb25zdCBnY2hhciogc3RhdHVzTWVzc2FnZSkKK3sKKyAgICBn
X3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFKHJlc3BvbnNlKSk7
CisKKyAgICByZXNwb25zZS0+cHJpdi0+c3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7CisgICAgcmVz
cG9uc2UtPnByaXYtPnN0YXR1c01lc3NhZ2UgPSBzdGF0dXNNZXNzYWdlOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklT
Y2hlbWVSZXNwb25zZVByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGY1ODA3ZjExYzhiNTU1ZTVlY2M0
ZDFiY2UzMzIzNmI5ZDc4NmZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlLmgKQEAgLTAsMCAr
MSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBaaXhpbmcgTGl1CisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJXZWJL
aXRXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2Vi
VVJMU2NoZW1lVGFzay5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisK
K3N0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlIHsKKyAgICBHUmVmUHRyPEdJ
bnB1dFN0cmVhbT4gc3RyZWFtOworICAgIHVpbnQ2NF90IHN0cmVhbUxlbmd0aDsKKyAgICB1aW50
NjRfdCBieXRlc1JlYWQ7CisKKyAgICBpbnQgc3RhdHVzQ29kZTsKKyAgICBDU3RyaW5nIHN0YXR1
c01lc3NhZ2U7CisgICAgQ1N0cmluZyBjb250ZW50VHlwZTsKK307CisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oCmluZGV4IGE0
YWFmZDczZmIyYWE3ZDgzYjVhM2YzNjlhMDJlNjFlODYwZGQyNGUuLjI1ZGY3ZDA3ODVjZjhmNmQ5
NThlZWQ4ODA2YWRjMjM3MGMzMzgzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaApAQCAtNjIsNiArNjIsNyBAQCBHX0RF
RklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0U2V0dGluZ3MsIGdfb2JqZWN0X3VucmVm
KQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVJlcXVlc3QsIGdfb2Jq
ZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVJlc3Bv
bnNlLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xF
QU5VUF9GVU5DIChXZWJLaXRVUklTY2hlbWVSZXNwb25zZSwgZ19vYmplY3RfdW5yZWYpCiBHX0RF
RklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZSwg
Z19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VXNl
ckNvbnRlbnRNYW5hZ2VyLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5V
UF9GVU5DIChXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNj
aGVtZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdC5oCmluZGV4IGQyYjA2YTE0ZGM1YTIwN2U4NzU2NGEwZWJjMzViY2MxMzli
MWVjNGUuLjJiODhhYTZhODk3ODQ3YmExNGY2ZTg5MjI0NjMwNzY4NWYzZGU5OWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNp
bmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktp
dEZvcndhcmREZWNsYXJhdGlvbnMuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlLmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNzEsMTIgKzcyLDE5IEBAIHdlYmtp
dF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3BhdGggICAgIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
ICpyZXF1ZXN0KTsKIFdFQktJVF9BUEkgV2ViS2l0V2ViVmlldyAqCiB3ZWJraXRfdXJpX3NjaGVt
ZV9yZXF1ZXN0X2dldF93ZWJfdmlldyAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7
CiAKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9n
ZXRfaHR0cF9tZXRob2QgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOworCiBXRUJL
SVRfQVBJIHZvaWQKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoICAgICAgIChXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdJbnB1dFN0cmVhbSAgICAgICAgICAgKnN0cmVhbSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50NjQgICAgICAgICAgICAgICAgICBzdHJl
YW1fbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGdjaGFyICAgICAgICAgICAgKmNvbnRlbnRfdHlwZSk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZSAoV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdCAgKnJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9uc2UpOworCiBXRUJL
SVRfQVBJIHZvaWQKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vycm9yIChXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAgICAgKmVycm9yKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2Uu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNjRkOWE3NWUzNDVkMmVhNWEwMWE3N2FmOGRkOTE1ZTZiZTBkMzQz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRVUklTY2hlbWVSZXNwb25zZS5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgWml4aW5nIExpdQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYm
ICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Vi
a2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2VfaAorI2RlZmluZSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZV9o
CisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVm
aW5lcy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oPgor
CitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05T
RSAgICAgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRShvYmopICAgICAgICAgICAgKEdfVFlQRV9D
SEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNF
LCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSkpCisjZGVmaW5lIFdFQktJVF9JU19VUklfU0NIRU1F
X1JFU1BPTlNFKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiks
IFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UpKQorI2RlZmluZSBXRUJLSVRfVVJJX1ND
SEVNRV9SRVNQT05TRV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChr
bGFzcyksICBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVS
ZXNwb25zZUNsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xB
U1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVf
VVJJX1NDSEVNRV9SRVNQT05TRSkpCisjZGVmaW5lIFdFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNF
X0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJ
VF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UsIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3Mp
KQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgICAgICAgIFdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3Bv
bnNlQ2xhc3MgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVBy
aXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgeworICAgIEdPYmplY3Qg
cGFyZW50OworCisgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlICpwcml2OworfTsK
Kworc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzIHsKKyAgICBHT2JqZWN0Q2xh
c3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7
CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9p
ZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9n
ZXRfdHlwZSAgICAgICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlICoKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyAgICAgICAgICAgICAgICAo
R0lucHV0U3RyZWFtICAgICAgICAgICAgKmlucHV0X3N0cmVhbSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludDY0ICAgICAgICAgICAgICAgICAgIHN0
cmVhbV9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICpjb250ZW50X3R5cGUpOworCitXRUJLSVRfQVBJ
IHZvaWQKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMgICAgICAgICAoV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnaW50ICAgICAgICAgICAgICAgICAgICAgc3RhdHVzX2Nv
ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGdjaGFyICAgICAgICAgICAgICpyZWFzb25fcGhyYXNlKTsKKworR19FTkRfREVDTFMKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCAxYmFiYjkzOWZjZWMxNmY5
NDkzNGFmMzg4ZTQxNmU5MDNiZTFlZTg3Li44OWRmNGEwY2IyZTQ2MDA0ZTk1NTY5ZmE0NWQwZDQx
YjZmM2E3MTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2Rv
Y3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKQEAgLTEyNzcsNyAr
MTI3Nyw5IEBAIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3NjaGVtZQogd2Via2l0X3Vy
aV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9w
YXRoCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmlldword2Via2l0X3VyaV9z
Y2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
ZmluaXNoCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlCiB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcgogCiA8U1VCU0VDVElPTiBTdGFu
ZGFyZD4KQEAgLTEyOTQsNiArMTI5NiwyNiBAQCBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0
ZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCis8U0VD
VElPTj4KKzxGSUxFPldlYktpdFVSSVNjaGVtZVJlc3BvbnNlPC9GSUxFPgorV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2UKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldword2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cworCis8U1VCU0VDVElPTiBTdGFuZGFyZD4KK1dlYktp
dFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MKK1dFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UK
K1dFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05T
RQorV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1MKK1dFQktJVF9JU19VUklfU0NIRU1F
X1JFU1BPTlNFX0NMQVNTCitXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9HRVRfQ0xBU1MKKwor
PFNVQlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZQord2Vi
a2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUKKzwvU0VDVElPTj4KKwogPFNFQ1RJT04+
CiA8RklMRT5XZWJLaXRWZXJzaW9uPC9GSUxFPgogd2Via2l0X2dldF9tYWpvcl92ZXJzaW9uCkBA
IC0xOTg1LDQgKzIwMDcsMyBAQCB3ZWJraXRfbWVtb3J5X3ByZXNzdXJlX3NldHRpbmdzX2dldF90
eXBlCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KIFdFQktJVF9UWVBFX01FTU9SWV9QUkVTU1VSRV9T
RVRUSU5HUwogPC9TRUNUSU9OPgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAudHlwZXMgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAudHlwZXMKaW5kZXggNDkzN2FiYjU2NDg3
M2NlMDZlYjY0MzE1OTFkZTMxZGNiMWQwYzU1MS4uZWY2ZThhZDY1OTU2NTljMGQ1MGY1YzYyZDM1
MDVhMjE2YjcwYWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstNC4wLnR5cGVzCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC50eXBlcwpAQCAtMTksNiArMTksNyBAQCB3ZWJr
aXRfcGx1Z2luX2dldF90eXBlCiB3ZWJraXRfbWltZV9pbmZvX2dldF90eXBlCiB3ZWJraXRfd2Vi
X2luc3BlY3Rvcl9nZXRfdHlwZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdHlwZQor
d2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUKIHdlYmtpdF9jb250ZXh0X21lbnVf
Z2V0X3R5cGUKIHdlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9nZXRfdHlwZQogd2Via2l0X3dlYl9l
eHRlbnNpb25fZ2V0X3R5cGUKQEAgLTQyLDQgKzQzLDQgQEAgd2Via2l0X29wdGlvbl9tZW51X2l0
ZW1fZ2V0X3R5cGUKIHdlYmtpdF9kZXZpY2VfaW5mb19wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5
cGUKIHdlYmtpdF9nZW9sb2NhdGlvbl9tYW5hZ2VyX2dldF90eXBlCiB3ZWJraXRfZ2VvbG9jYXRp
b25fcG9zaXRpb25fZ2V0X3R5cGUKLXdlYmtpdF9wb2ludGVyX2xvY2tfcGVybWlzc2lvbl9yZXF1
ZXN0X2dldF90eXBlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQord2Via2l0X3BvaW50ZXJf
bG9ja19wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbAppbmRleCA0
MTFlZTY0ZDgzMzMzZjA1MjMwNmM1Yjk5ZDA3M2JiNDI3OTc4YTY1Li5lMTJjN2RiNWM3OTZmYzU4
Y2E4NjJkMDYyYmFjNzFjODA4ZWE2MGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCkBAIC00NSw2ICs0
NSw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBsdWdpbi54bWwiLz4KICAg
ICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0V2ViSW5zcGVjdG9yLnhtbCIvPgogICAgIDx4
aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LnhtbCIvPgorICAgIDx4
aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS54bWwiLz4KICAgICA8
eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0VmVyc2lvbi54bWwiLz4KICAgICA8eGk6aW5jbHVk
ZSBocmVmPSJ4bWwvV2ViS2l0Q29udGV4dE1lbnUueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJl
Zj0ieG1sL1dlYktpdENvbnRleHRNZW51SXRlbS54bWwiLz4KQEAgLTE3MCw1ICsxNzEsMTAgQEAK
ICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LTIuMzAueG1sIj48eGk6ZmFsbGJh
Y2sgLz48L3hpOmluY2x1ZGU+CiAgIDwvaW5kZXg+CiAKKyAgPGluZGV4IGlkPSJhcGktaW5kZXgt
Mi0zNiIgcm9sZT0iMi4zNiI+CisgICAgPHRpdGxlPkluZGV4IG9mIG5ldyBzeW1ib2xzIGluIDIu
MzY8L3RpdGxlPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hcGktaW5kZXgtMi4zNi54bWwi
Pjx4aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KKyAgPC9pbmRleD4KKwogICA8eGk6aW5jbHVk
ZSBocmVmPSJ4bWwvYW5ub3RhdGlvbi1nbG9zc2FyeS54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6
aW5jbHVkZT4KIDwvYm9vaz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvd2Via2l0Mi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQy
LmgKaW5kZXggYjdkMjc0MWM0YjJjMWFkNGUzNGExZmFiNDhmZWM2MWFmMWM2MTAyZC4uNWNkOTUy
NDI1MmE5N2Q0ZWE2NGRmZWIyMmU1YTQ3YjU1ZjM2Yzg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKQEAgLTc4LDYgKzc4LDcgQEAKICNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdFVSSVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlc3Bv
bnNlLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmg+CisjaW5j
bHVkZSA8d2Via2l0Mi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oPgogI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0VVJJVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVc2VyQ29u
dGVudC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRBdXRv
Y2xlYW51cHMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0QXV0b2Ns
ZWFudXBzLmgKaW5kZXggNzdhYjc3YmM5ODRlNzBkM2ZhY2UwMDMzZjEyNDJkMjZjNDAyZDBiNi4u
NWUyMGY0MzVlMjMxZGU0Zjk1ZjJlN2ExZTRmOTk4OTg3YTY4Y2FkOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRBdXRvY2xlYW51cHMuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEF1dG9jbGVhbnVwcy5oCkBAIC01
Niw2ICs1Niw3IEBAIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRTZXR0aW5n
cywgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0
VVJJUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVO
QyAoV2ViS2l0VVJJUmVzcG9uc2UsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9D
TEVBTlVQX0ZVTkMgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19E
RUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlLCBnX29i
amVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyQ29u
dGVudEZpbHRlclN0b3JlLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5V
UF9GVU5DIChXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJ
TkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
LCBnX29iamVjdF91bnJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKaW5kZXggOGViZWRhNGU3N2YxYmJkMThl
MWNiZGFkYzNmN2YyNDZlMDk5MTdiMS4uZTg4Y2E3OWU1NzVlNDliZjY3NjE3MWMzYzlkYzRjNzQz
Y2Q1YjA4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRVUklTY2hlbWVSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUg
PGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRl
IDx3cGUvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaD4KIAogR19CRUdJTl9ERUNMUwogCkBAIC03
MiwxMiArNzMsMTkgQEAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfcGF0aCAgICAgKFdl
YktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOwogV0VCS0lUX0FQSSBXZWJLaXRXZWJWaWV3
ICoKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3IChXZWJLaXRVUklTY2hl
bWVSZXF1ZXN0ICpyZXF1ZXN0KTsKIAorV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRf
dXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZCAoV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dCAqcmVxdWVzdCk7CisKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9maW5pc2ggICAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0lucHV0U3RyZWFtICAgICAgICAgICAq
c3RyZWFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQ2NCAg
ICAgICAgICAgICAgICAgIHN0cmVhbV9sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAqY29udGVudF90eXBlKTsKIAor
V0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jl
c3BvbnNlIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICAqcmVxdWVzdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
ICpyZXNwb25zZSk7CisKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9maW5pc2hfZXJyb3IgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAgICAgICAgICAq
ZXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRVUklTY2hlbWVSZXNwb25zZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzZmRlYTYzMjE1OGMzNzc3NmQ1
ODYxNDM5NDI3ZTUyN2M1YWNlM2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKQEAgLTAsMCArMSw3MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBaaXhpbmcgTGl1CisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dF
QktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9y
ICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYK
KworI2lmbmRlZiBXZWJLaXRVUklTY2hlbWVSZXNwb25zZV9oCisjZGVmaW5lIFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlX2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d3Bl
L1dlYktpdERlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBF
X1VSSV9TQ0hFTUVfUkVTUE9OU0UgICAgICAgICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVzcG9u
c2VfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0Uob2JqKSAg
ICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVf
VVJJX1NDSEVNRV9SRVNQT05TRSwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UpKQorI2RlZmluZSBX
RUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19J
TlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFKSkKKyNk
ZWZpbmUgV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05T
RSwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19VUklf
U0NIRU1FX1JFU1BPTlNFX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGts
YXNzKSwgIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UpKQorI2RlZmluZSBXRUJLSVRf
VVJJX1NDSEVNRV9SRVNQT05TRV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRf
Q0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlICAgICAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZTsKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUgV2ViS2l0
VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlOworCitzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3Bv
bnNlIHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFz
cyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKKworICAgIHZvaWQgKCpfd2Via2l0
X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQp
OworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOworICAgIHZvaWQgKCpfd2Vi
a2l0X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3Vy
aV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQ
SSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9u
ZXcgICAgICAgICAgICAgICAgKEdJbnB1dFN0cmVhbSAgICAgICAgICAgICppbnB1dF9zdHJlYW0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQ2NCAg
ICAgICAgICAgICAgICAgICBzdHJlYW1fbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAqY29udGVudF90
eXBlKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRf
c3RhdHVzICAgICAgICAgKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCAgICAgICAgICAg
ICAgICAgICAgIHN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAqcmVhc29uX3BocmFzZSk7CisK
K0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CmluZGV4IGI4YjA4ZDJmOTFm
MjU2NGNlZjdkYTBiOGVjZWRjOGExMTJkNWJlOTAuLjE4ZGYyMTgwZDU0ZmZhOWU1MTExMTQ4MGZh
NWU2MDdlNGFmYmNiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKQEAgLTEyMTQsNyArMTIxNCw5IEBA
IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3NjaGVtZQogd2Via2l0X3VyaV9zY2hlbWVf
cmVxdWVzdF9nZXRfdXJpCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9wYXRoCiB3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmlldword2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdF9nZXRfaHR0cF9tZXRob2QKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoCit3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlCiB3ZWJraXRfdXJp
X3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcgogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KQEAg
LTEyMzEsNiArMTIzMywyNiBAQCBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZQogd2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCis8U0VDVElPTj4KKzxG
SUxFPldlYktpdFVSSVNjaGVtZVJlc3BvbnNlPC9GSUxFPgorV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2UKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldword2Via2l0X3VyaV9zY2hlbWVfcmVz
cG9uc2Vfc2V0X3N0YXR1cworCis8U1VCU0VDVElPTiBTdGFuZGFyZD4KK1dlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlQ2xhc3MKK1dFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UKK1dFQktJVF9V
UklfU0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRQorV0VCS0lU
X1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1MKK1dFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNF
X0NMQVNTCitXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9HRVRfQ0xBU1MKKworPFNVQlNFQ1RJ
T04gUHJpdmF0ZT4KK1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZQord2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUKKzwvU0VDVElPTj4KKwogPFNFQ1RJT04+CiA8RklMRT5X
ZWJLaXRWZXJzaW9uPC9GSUxFPgogd2Via2l0X2dldF9tYWpvcl92ZXJzaW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLWRvY3Muc2dtbCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCmluZGV4IDhl
MjU3ZjAyZjExZmViZWNkMmE1NjczYjhlODcwNmQ1ZWM2YzY4MzkuLjJiY2MwY2JkYTg4NWRmOWJm
NzQ5NTM0ZTNkZDFlZWI2OTliZDExZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCkBAIC00MSw2ICs0MSw3IEBACiAgICAgPHhp
OmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdENvb2tpZU1hbmFnZXIueG1sIi8+CiAgICAgPHhpOmlu
Y2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBsdWdpbi54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVm
PSJ4bWwvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC54bWwiLz4KKyAgICA8eGk6aW5jbHVkZSBocmVm
PSJ4bWwvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJl
Zj0ieG1sL1dlYktpdENvbnRleHRNZW51LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9Inht
bC9XZWJLaXRDb250ZXh0TWVudUl0ZW0ueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1s
L1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC54bWwiLz4KQEAgLTEwOCw1ICsxMDksMTAgQEAK
ICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LTIuMzAueG1sIj48eGk6ZmFsbGJh
Y2sgLz48L3hpOmluY2x1ZGU+CiAgIDwvaW5kZXg+CiAKKyAgPGluZGV4IGlkPSJhcGktaW5kZXgt
Mi0zNiIgcm9sZT0iMi4zNiI+CisgICAgPHRpdGxlPkluZGV4IG9mIG5ldyBzeW1ib2xzIGluIDIu
MzY8L3RpdGxlPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hcGktaW5kZXgtMi4zNi54bWwi
Pjx4aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KKyAgPC9pbmRleD4KKwogICA8eGk6aW5jbHVk
ZSBocmVmPSJ4bWwvYW5ub3RhdGlvbi1nbG9zc2FyeS54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6
aW5jbHVkZT4KIDwvYm9vaz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvd2Via2l0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL3dlYmtpdC5o
CmluZGV4IDVjOTNkNzYwZjczNGExMmY2MTQ4OTk1NDUxMzVmZGY3NzAxNjQ1NzUuLmMyMjIxZWZj
MDA2MThjMmVjNGQyMGE4OGM1OTg0MDc2N2JkNTJmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvd2Via2l0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS93ZWJraXQuaApAQCAtNzMsNiArNzMsNyBAQAogI2luY2x1ZGUgPHdwZS9XZWJL
aXRVUklSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVJlc3BvbnNlLmg+CiAjaW5j
bHVkZSA8d3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0
VVJJU2NoZW1lUmVzcG9uc2UuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJVXRpbGl0aWVzLmg+
CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVzZXJDb250ZW50Lmg+CiAjaW5jbHVkZSA8d3BlL1dlYktp
dFVzZXJDb250ZW50RmlsdGVyU3RvcmUuaD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMDAyM2EyNDg1MDg5ZGNhMzc5MTY3ODFjODYxMjZiOTcy
MjQ2YTVlLi45YWI4ZDRhNTUwYjFlMjZkZThmM2RlNjc2NmI0ZWZmOWE2OWQ3ODUyIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMjEtMTAtMjAgIFppeGluZyBMaXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAg
ICAgICAgW0dUS11bV1BFXSBTdXBwb3J0IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcg
SFRUUCBtZXRob2QgaW4gY3VzdG9tIFVSSSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKHRlc3RXZWJDb250
ZXh0VVJJU2NoZW1lKTogQWRkZWQgdGVzdHMgdG8gdGVzdCBuZXcgcHVibGljIEFQSXMgZm9yIFdl
YktpdEd0aworCiAyMDIxLTEwLTE4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4NDM5OS4KZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4
dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdl
YkNvbnRleHQuY3BwCmluZGV4IGI5MzZjOGUwNzc1YTE3YWNhYmUyMTI4YWE3MTkzMmU1ZjRkOTBm
NDMuLmI0MDM2ZDVhMjNkNGZhMWQxNDg5ZGU0YmI5NzUyMjYwMmVlNWYwYTUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4
dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJL
aXRXZWJDb250ZXh0LmNwcApAQCAtOTUsMTYgKzk1LDE4IEBAIHB1YmxpYzoKICAgICAgICAgewog
ICAgICAgICB9CiAKLSAgICAgICAgVVJJU2NoZW1lSGFuZGxlcihjb25zdCBjaGFyKiByZXBseSwg
aW50IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1lVHlwZSkKKyAgICAgICAgVVJJU2NoZW1l
SGFuZGxlcihjb25zdCBjaGFyKiByZXBseSwgaW50IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFyKiBt
aW1lVHlwZSwgaW50IHN0YXR1c0NvZGUgPSAyMDApCiAgICAgICAgICAgICA6IHJlcGx5KHJlcGx5
KQogICAgICAgICAgICAgLCByZXBseUxlbmd0aChyZXBseUxlbmd0aCkKICAgICAgICAgICAgICwg
bWltZVR5cGUobWltZVR5cGUpCisgICAgICAgICAgICAsIHN0YXR1c0NvZGUoc3RhdHVzQ29kZSkK
ICAgICAgICAgewogICAgICAgICB9CiAKICAgICAgICAgQ1N0cmluZyByZXBseTsKICAgICAgICAg
aW50IHJlcGx5TGVuZ3RoOwogICAgICAgICBDU3RyaW5nIG1pbWVUeXBlOworICAgICAgICBpbnQg
c3RhdHVzQ29kZTsKICAgICB9OwogCiAgICAgc3RhdGljIHZvaWQgdXJpU2NoZW1lUmVxdWVzdENh
bGxiYWNrKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIGdwb2ludGVyIHVzZXJEYXRh
KQpAQCAtMTIwLDYgKzEyMiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIGdfYXNzZXJ0X25vbm51bGwo
c2NoZW1lKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2hhbmRsZXJzTWFwLmNvbnRh
aW5zKFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKSkpOwogCisgICAgICAgIGNvbnN0IGNoYXIqIG1l
dGhvZCA9IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kKHJlcXVlc3Qp
OworICAgICAgICBnX2Fzc2VydF9ub25udWxsKG1ldGhvZCk7CisgICAgICAgIGdfYXNzZXJ0X2Nt
cHN0cihtZXRob2QsID09LCAiR0VUIik7CisKKwogICAgICAgICBjb25zdCBVUklTY2hlbWVIYW5k
bGVyJiBoYW5kbGVyID0gdGVzdC0+bV9oYW5kbGVyc01hcC5nZXQoU3RyaW5nOjpmcm9tVVRGOChz
Y2hlbWUpKTsKIAogICAgICAgICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4gaW5wdXRTdHJlYW0gPSBh
ZG9wdEdSZWYoZ19tZW1vcnlfaW5wdXRfc3RyZWFtX25ldygpKTsKQEAgLTE1Nyw5ICsxNjQsOSBA
QCBwdWJsaWM6CiAgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoKHJlcXVl
c3QsIGlucHV0U3RyZWFtLmdldCgpLCBoYW5kbGVyLnJlcGx5TGVuZ3RoLCBoYW5kbGVyLm1pbWVU
eXBlLmRhdGEoKSk7CiAgICAgfQogCi0gICAgdm9pZCByZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIo
Y29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiByZXBseSwgaW50IHJlcGx5TGVuZ3RoLCBj
b25zdCBjaGFyKiBtaW1lVHlwZSkKKyAgICB2b2lkIHJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcihj
b25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlcGx5LCBpbnQgcmVwbHlMZW5ndGgsIGNv
bnN0IGNoYXIqIG1pbWVUeXBlLCBpbnQgc3RhdHVzQ29kZSA9IDIwMCkKICAgICB7Ci0gICAgICAg
IG1faGFuZGxlcnNNYXAuc2V0KFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKSwgVVJJU2NoZW1lSGFu
ZGxlcihyZXBseSwgcmVwbHlMZW5ndGgsIG1pbWVUeXBlKSk7CisgICAgICAgIG1faGFuZGxlcnNN
YXAuc2V0KFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKSwgVVJJU2NoZW1lSGFuZGxlcihyZXBseSwg
cmVwbHlMZW5ndGgsIG1pbWVUeXBlLCBzdGF0dXNDb2RlKSk7CiAgICAgICAgIHdlYmtpdF93ZWJf
Y29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lKG1fd2ViQ29udGV4dC5nZXQoKSwgc2NoZW1lLCB1
cmlTY2hlbWVSZXF1ZXN0Q2FsbGJhY2ssIHRoaXMsIDApOwogICAgIH0KIApAQCAtMjk3LDYgKzMw
NCwyMCBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViQ29udGV4dFVSSVNjaGVtZShVUklTY2hlbWVUZXN0
KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+bV9sb2FkRmFp
bGVkKTsKICAgICBnX2Fzc2VydF9lcnJvcih0ZXN0LT5tX2Vycm9yLmdldCgpLCBHX0lPX0VSUk9S
LCBHX0lPX0VSUk9SX0NMT1NFRCk7CiAKKyAgICB0ZXN0LT5yZWdpc3RlclVSSVNjaGVtZUhhbmRs
ZXIoIm5vdGZvdW5kIiwga0JhckhUTUwsIHN0cmxlbihrQmFySFRNTCksICJ0ZXh0L2h0bWwiLCA0
MDQpOworICAgIHRlc3QtPm1fbG9hZEV2ZW50cy5jbGVhcigpOworICAgIHRlc3QtPmxvYWRVUkko
Im5vdGZvdW5kOmJsYW5rIik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7Cisg
ICAgZ19hc3NlcnRfZmFsc2UodGVzdC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2lu
Z1Rlc3Q6OlByb3Zpc2lvbmFsTG9hZEZhaWxlZCkpOworICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+
bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rlc3Q6OkxvYWRGYWlsZWQpKTsKKwor
ICAgIHRlc3QtPnJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcigibm9jb250ZW50IiwgbnVsbHB0ciwg
MCwgImFwcGxpY2F0aW9uL2pzb24iLCAyMDQpOworICAgIHRlc3QtPm1fbG9hZEV2ZW50cy5jbGVh
cigpOworICAgIHRlc3QtPmxvYWRVUkkoIm5vY29udGVudDpibGFuayIpOworICAgIHRlc3QtPndh
aXRVbnRpbExvYWRGaW5pc2hlZCgpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHRlc3QtPm1fbG9hZEV2
ZW50cy5jb250YWlucyhMb2FkVHJhY2tpbmdUZXN0OjpQcm92aXNpb25hbExvYWRGYWlsZWQpKTsK
KyAgICBnX2Fzc2VydF9mYWxzZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNr
aW5nVGVzdDo6TG9hZEZhaWxlZCkpOworCiAgICAgLy8gVG9ydHVyZSB0ZXN0IHRpbWU6IG1ha2Ug
c3VyZSBpdCBzdGlsbCB3b3JrcyBpZiB3ZSBpc3N1ZSBhIGJ1bmNoIG9mIGRpZmZlcmVudCByZXF1
ZXN0cyBhbGwgYXQKICAgICAvLyBvbmNlLiBFYWNoIHJlcXVlc3Qgc2hvdWxkIGZpbmlzaCBhbmQg
cmV0dXJuIGV4YWN0bHkgdGhlIHNhbWUgZGF0YS4KICAgICBpbnQgbnVtSXRlcmF0aW9ucyA9IDI1
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442282</attachid>
            <date>2021-10-23 15:57:25 -0700</date>
            <delta_ts>2021-10-23 16:26:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231880-20211023165725.patch</filename>
            <type>text/plain</type>
            <size>44387</size>
            <attacher>liushuyu011</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQzMjkzMmY3ZDIxMWRkMzA5
M2QwYzQ4ZjBkZTg1MjIwYmVmYWMyN2QuLjAxZGY5YTA4MjQ3OWNkMDUxZDFmNWVjNDgyMmUzMTk5
YTIyZTUxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMTAtMjAgIFppeGluZyBM
aXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdXBwb3J0
IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4gY3VzdG9tIFVS
SSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlc0dUSy50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
Y3BwCisgICAgICAgICogU291cmNlc1dQRS50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwOgorICAgICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRo
b2QpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3Rf
ZmluaXNoX3dpdGhfcmVzcG9uc2UpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmg6ICBBZGRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2Uu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2NsYXNzX2lu
aXQpOiBBZGRlZCBpbml0IGZ1bmN0aW9uIGZvciB0aGUgbmV3IHR5cGUKKyAgICAgICAgKHdlYmtp
dF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rpb24KKyAgICAg
ICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMpOiBBZGRlZCBuZXcgQVBJ
IGZ1bmN0aW9uCisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfY29udGVu
dF90eXBlKTogQWRkZWQgbmV3IEFQSSBmdW5jdGlvbgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUu
aC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaDogUmVn
aXN0ZXIgY2xlYW4tdXAgZnVuY3Rpb24gZm9yIFdlYmtpdFVSSVNjaGVtZVJlc3BvbnNlCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oOiBBZGRlZCBm
dW5jdGlvbiBwcm90b3R5cGUgZm9yIAorICAgICAgICB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2dldF9odHRwX21ldGhvZAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNj
aGVtZVJlc3BvbnNlLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mv
d2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0OiBBZGRlZCBuZXcgc3ltYm9scyBhbmQgbmV3IHR5
cGVzCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oOiBJbmNsdWRlIGEgbmV3
IGhlYWRlcjogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaAorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaDogQWRkZWQgZnVuY3Rpb24gcHJvdG90eXBl
IGZvciAKKyAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS93ZWJraXQuaDogSW5jbHVkZSBhIG5l
dyBoZWFkZXI6IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0OiBBZGRlZCBuZXcgc3ltYm9scyBhbmQg
bmV3IHR5cGVzCisKIDIwMjEtMTAtMTggIEpvaG4gUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29t
PgogCiAgICAgICAgIFtXZWJBdXRobl0gT2J0YWluIGNvbnNlbnQgdG8gY3JlYXRlIG5ldyBjcmVk
ZW50aWFsIHdoZW4gcGxhdGZvcm0gYXV0aGVudGljYXRvciBpbiBleGNsdWRlZENyZWRlbnRpYWxz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA4OGM1NjBjYzlmNjJjZTVjNWU5Y2RlZjlkNDcw
ZGU0N2ZhZDQ1YWU0Li4xNDE3MDVhMjA0ZTAyOGMxOGM0NDJhMGQ5NDI5NDMxYWU4ODgxZmFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTE0Niw2ICsxNDYsNyBAQCBzZXQoV2ViS2l0MkdU
S19JTlNUQUxMRURfSEVBREVSUwogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VVJJUmVxdWVzdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRVUklSZXNwb25zZS5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVSSVV0aWxpdGllcy5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BF
LmNtYWtlCmluZGV4IGY0Y2Q1YmVmNDAyYjBjNjNlMWZiYjdhMDcxMzI5MDBjZTZmNzM4YmIuLjBm
YjNlM2U3ODA2Yzk4YjE4ZWIzNDRhMDM1YTM4YzU5MGU1ODcxMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQ
RS5jbWFrZQpAQCAtMTc2LDYgKzE3Niw3IEBAIHNldChXUEVfQVBJX0lOU1RBTExFRF9IRUFERVJT
CiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklSZXF1ZXN0LmgK
ICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVJlc3BvbnNlLmgK
ICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2UuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJ
VXRpbGl0aWVzLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVz
ZXJDb250ZW50LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVz
ZXJDb250ZW50RmlsdGVyU3RvcmUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
R1RLLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKaW5kZXggNWM5NTRlZWY5YWUx
YjJmOTRlZjAwOGIyYTM4YWY4ODk0YjBjOWFjNS4uZjIxMjQ2ZjAwYzE4ZjIzODFmY2VlNzMxN2Y5
NjQ5ZjFiNjYxZTM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CkBAIC0xNzMsNiArMTczLDcgQEAgVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFNlY3VyaXR5T3JpZ2luLmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwIEBuby11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFVSSVNjaGVtZVJlc3BvbnNlLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRVUklVdGlsaXRpZXMuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVzZXJDb250ZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2Vy
Q29udGVudEZpbHRlclN0b3JlLmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc1dQRS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4IDhh
MWMzMGYzMmYzYjkzNTBhMzA2YmVmNTMwZWNiMzM0MGMxZjI5YzcuLjk0NDE5ZGQ4NmYwNzljNWM1
M2U2OGNlOGU3OWI5MTU1MDVhODdhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c1dQRS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dApAQCAtMTY0LDYgKzE2
NCw3IEBAIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZWN1cml0eU9yaWdpbi5jcHAgQG5vLXVu
aWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwIEBuby11bmlmeQogVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBAbm8tdW5pZnkKK1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0VVJJVXRpbGl0aWVzLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVc2VyQ29udGVudC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwCmluZGV4IDZhMGQ1OWMxMDI4OWUxYjgwY2EyYTE1NWU0NmU3ZGQ5ODlmNWU5ZjEuLmEx
ZDkyZGQ1NjQ1NjJkZGNkZGUwZGM0MTg1Mzc3Y2VlOWJkMDI1YmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwCkBAIC02NCwxMiArNjQsMTEgQEAgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0
UHJpdmF0ZSB7CiAgICAgQ1N0cmluZyB1cmlTY2hlbWU7CiAgICAgQ1N0cmluZyB1cmlQYXRoOwog
Ci0gICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IHN0cmVhbTsKLSAgICB1aW50NjRfdCBzdHJlYW1M
ZW5ndGg7CisgICAgR1JlZlB0cjxXZWJLaXRVUklTY2hlbWVSZXNwb25zZT4gcmVzcG9uc2U7CiAg
ICAgR1JlZlB0cjxHQ2FuY2VsbGFibGU+IGNhbmNlbGxhYmxlOwogICAgIGNoYXIgcmVhZEJ1ZmZl
cltnUmVhZEJ1ZmZlclNpemVdOwogICAgIHVpbnQ2NF90IGJ5dGVzUmVhZDsKLSAgICBDU3RyaW5n
IGNvbnRlbnRUeXBlOworICAgIGNvbnN0IGNoYXIqIGh0dHBNZXRob2Q7CiB9OwogCiBXRUJLSVRf
REVGSU5FX1RZUEUoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCwgd2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdCwgR19UWVBFX09CSkVDVCkKQEAgLTE2MSw2ICsxNjAsMjYgQEAgV2ViS2l0V2ViVmlldyog
d2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcoV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdCogcmUKICAgICByZXR1cm4gd2Via2l0V2ViQ29udGV4dEdldFdlYlZpZXdGb3JQYWdlKHJl
cXVlc3QtPnByaXYtPndlYkNvbnRleHQsIHJlcXVlc3QtPnByaXYtPmluaXRpYXRpbmdQYWdlLmdl
dCgpKTsKIH0KIAorLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21l
dGhvZDoKKyAqIEByZXF1ZXN0OiBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0CisgKgorICogR2V0
IHRoZSBIVFRQIG1ldGhvZCBvZiB0aGUgQHJlcXVlc3QKKyAqCisgKiBSZXR1cm5zOiB0aGUgSFRU
UCBtZXRob2Qgb2YgdGhlIEByZXF1ZXN0CisgKiAKKyAqIFNpbmNlOiAyLjM2CisgKi8KK2NvbnN0
IGdjaGFyKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZChXZWJLaXRV
UklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9JU19VUklfU0NIRU1FX1JFUVVFU1QocmVxdWVzdCksIG51bGxwdHIpOworCisgICAgaWYg
KCFyZXF1ZXN0LT5wcml2LT5odHRwTWV0aG9kKQorICAgICAgICByZXF1ZXN0LT5wcml2LT5odHRw
TWV0aG9kID0gZ19pbnRlcm5fc3RyaW5nKHJlcXVlc3QtPnByaXYtPnRhc2stPnJlcXVlc3QoKS5o
dHRwTWV0aG9kKCkudXRmOCgpLmRhdGEoKSk7CisKKyAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+
aHR0cE1ldGhvZDsKK30KKwogc3RhdGljIHZvaWQgd2Via2l0VVJJU2NoZW1lUmVxdWVzdFJlYWRD
YWxsYmFjayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwg
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogc2NoZW1lUmVxdWVzdCkKIHsKICAgICBHUmVmUHRyPFdl
YktpdFVSSVNjaGVtZVJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdEdSZWYoc2NoZW1lUmVxdWVzdCk7
CkBAIC0xNzIsMTYgKzE5MSwyMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0
UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luYwogICAgIH0KIAog
ICAgIFdlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsK
KyAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUqIHJlc3BQcml2ID0gcHJpdi0+cmVz
cG9uc2UtPnByaXY7CiAgICAgLy8gTmVlZCB0byBjaGVjayB0aGUgc3RyZWFtIGJlZm9yZSBwcm9j
ZWVkaW5nIGFzIGl0IGNhbiBiZSBjYW5jZWxsZWQgaWYgZmluaXNoX2Vycm9yCiAgICAgLy8gd2Fz
IHByZXZpb3VzbHkgY2FsbCwgd2hpY2ggd29uJ3QgYmUgZGV0ZWN0ZWQgYnkgZ19pbnB1dF9zdHJl
YW1fcmVhZF9maW5pc2goKS4KLSAgICBpZiAoIXByaXYtPnN0cmVhbSkKKyAgICBpZiAoIVdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RyZWFtKHJlc3BQcml2KSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKCFwcml2LT5ieXRlc1JlYWQpIHsKLSAgICAgICAgUmVzb3VyY2VSZXNwb25zZSBy
ZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIGV4dHJhY3RNSU1FVHlwZUZyb21N
ZWRpYVR5cGUocHJpdi0+Y29udGVudFR5cGUuZGF0YSgpKSwgcHJpdi0+c3RyZWFtTGVuZ3RoLCBl
bXB0eVN0cmluZygpKTsKLSAgICAgICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRy
YWN0Q2hhcnNldEZyb21NZWRpYVR5cGUocHJpdi0+Y29udGVudFR5cGUuZGF0YSgpKSk7Ci0gICAg
ICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKDIwMCk7Ci0gICAgICAgIHJlc3BvbnNlLnNl
dEhUVFBTdGF0dXNUZXh0KCJPSyJfcyk7CisgICAgICAgIENTdHJpbmcgY29udGVudFR5cGUgPSBX
ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKHJlc3BQcml2KTsKKyAgICAgICAg
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIGV4
dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUuZGF0YSgpKSwgV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2VHZXRTdHJlYW1MZW5ndGgocmVzcFByaXYpLCBlbXB0eVN0cmluZygpKTsK
KyAgICAgICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hhcnNldEZyb21N
ZWRpYVR5cGUoY29udGVudFR5cGUuZGF0YSgpKSk7CisgICAgICAgIENTdHJpbmcgc3RhdHVzTWVz
c2FnZSA9IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzTWVzc2FnZShyZXNwUHJpdik7
CisgICAgICAgIGlmIChzdGF0dXNNZXNzYWdlLmlzTnVsbCgpKQorICAgICAgICAgICAgd2Via2l0
X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cyhwcml2LT5yZXNwb25zZS5nZXQoKSwgMjAw
LCAiT0siKTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUoV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2VHZXRTdGF0dXNDb2RlKHJlc3BQcml2KSk7CisgICAgICAgIHJlc3BvbnNlLnNl
dEhUVFBTdGF0dXNUZXh0KHN0YXR1c01lc3NhZ2UuZGF0YSgpKTsKICAgICAgICAgaWYgKHJlc3Bv
bnNlLm1pbWVUeXBlKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmVzcG9uc2Uuc2V0TWltZVR5
cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKHJlc3BvbnNlLnVybCgpLnBhdGgo
KS50b1N0cmluZygpKSk7CiAgICAgICAgIHByaXYtPnRhc2stPmRpZFJlY2VpdmVSZXNwb25zZShy
ZXNwb25zZSk7CkBAIC0yMTMsMTMgKzIzNywzMSBAQCB2b2lkIHdlYmtpdF91cmlfc2NoZW1lX3Jl
cXVlc3RfZmluaXNoKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIEdJbnB1dFN0cgog
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoR19JU19JTlBVVF9TVFJFQU0oaW5wdXRTdHJlYW0pKTsKICAg
ICBnX3JldHVybl9pZl9mYWlsKHN0cmVhbUxlbmd0aCA9PSAtMSB8fCBzdHJlYW1MZW5ndGggPj0g
MCk7CiAKLSAgICByZXF1ZXN0LT5wcml2LT5zdHJlYW0gPSBpbnB1dFN0cmVhbTsKLSAgICAvLyBX
ZSB1c2UgLTEgaW4gdGhlIEFQSSBmb3IgY29uc2lzdGVuY3kgd2l0aCBzb3VwIHdoZW4gdGhlIGNv
bnRlbnQgbGVuZ3RoIGlzIG5vdCBrbm93biwgYnV0IDAgaW50ZXJuYWxseS4KLSAgICByZXF1ZXN0
LT5wcml2LT5zdHJlYW1MZW5ndGggPSBzdHJlYW1MZW5ndGggPT0gLTEgPyAwIDogc3RyZWFtTGVu
Z3RoOworICAgIEdSZWZQdHI8V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2U+IHJlc3BvbnNlID0gYWRv
cHRHUmVmKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyhpbnB1dFN0cmVhbSwgc3RyZWFt
TGVuZ3RoKSk7CisgICAgaWYgKGNvbnRlbnRUeXBlKQorICAgICAgICB3ZWJraXRfdXJpX3NjaGVt
ZV9yZXNwb25zZV9zZXRfY29udGVudF90eXBlKHJlc3BvbnNlLmdldCgpLCBjb250ZW50VHlwZSk7
IAorCisgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZShy
ZXF1ZXN0LCByZXNwb25zZS5nZXQoKSk7Cit9CisKKy8qKgorICogd2Via2l0X3VyaV9zY2hlbWVf
cmVxdWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZToKKyAqIEByZXF1ZXN0OiBhICNXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0CisgKiBAcmVzcG9uc2U6IGEgI1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlCisg
KgorICogRmluaXNoIGEgI1dlYktpdFVSSVNjaGVtZVJlcXVlc3QgYnkgcmV0dXJuaW5nIGEgI1dl
YktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKgorICogU2luY2U6IDIuMzYKKyAqLwordm9pZCB3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlKFdlYktpdFVSSVNjaGVt
ZVJlcXVlc3QqIHJlcXVlc3QsIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKiByZXNwb25zZSkKK3sK
KyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NIRU1FX1JFUVVFU1QocmVxdWVz
dCkpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0Uo
cmVzcG9uc2UpKTsKKwogICAgIHJlcXVlc3QtPnByaXYtPmNhbmNlbGxhYmxlID0gYWRvcHRHUmVm
KGdfY2FuY2VsbGFibGVfbmV3KCkpOwotICAgIHJlcXVlc3QtPnByaXYtPmJ5dGVzUmVhZCA9IDA7
Ci0gICAgcmVxdWVzdC0+cHJpdi0+Y29udGVudFR5cGUgPSBjb250ZW50VHlwZTsKLSAgICBnX2lu
cHV0X3N0cmVhbV9yZWFkX2FzeW5jKGlucHV0U3RyZWFtLCByZXF1ZXN0LT5wcml2LT5yZWFkQnVm
ZmVyLCBnUmVhZEJ1ZmZlclNpemUsIFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6QXN5bmNJT05ldHdv
cmssIHJlcXVlc3QtPnByaXYtPmNhbmNlbGxhYmxlLmdldCgpLAorICAgIHJlcXVlc3QtPnByaXYt
PnJlc3BvbnNlID0gcmVzcG9uc2U7CisKKyAgICBnX2lucHV0X3N0cmVhbV9yZWFkX2FzeW5jKFdl
YktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RyZWFtKHJlc3BvbnNlLT5wcml2KSwgcmVxdWVzdC0+
cHJpdi0+cmVhZEJ1ZmZlciwgZ1JlYWRCdWZmZXJTaXplLCBSdW5Mb29wU291cmNlUHJpb3JpdHk6
OkFzeW5jSU9OZXR3b3JrLCByZXF1ZXN0LT5wcml2LT5jYW5jZWxsYWJsZS5nZXQoKSwKICAgICAg
ICAgcmVpbnRlcnByZXRfY2FzdDxHQXN5bmNSZWFkeUNhbGxiYWNrPih3ZWJraXRVUklTY2hlbWVS
ZXF1ZXN0UmVhZENhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJlcXVlc3QpKTsKIH0KIApAQCAtMjM4
LDcgKzI4MCw3IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3Io
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAgICAgZ19yZXR1cm5faWZfZmFp
bChlcnJvcik7CiAKICAgICBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJl
cXVlc3QtPnByaXY7Ci0gICAgcHJpdi0+c3RyZWFtID0gbnVsbHB0cjsKKyAgICBwcml2LT5yZXNw
b25zZSA9IG51bGxwdHI7CiAgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKGdfcXVhcmtf
dG9fc3RyaW5nKGVycm9yLT5kb21haW4pLCB0b1dlYkNvcmVFcnJvcihlcnJvci0+Y29kZSksIHBy
aXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2Fn
ZSkpOwogICAgIHByaXYtPnRhc2stPmRpZENvbXBsZXRlKHJlc291cmNlRXJyb3IpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmgKaW5kZXggMDE4NDllMTU3Njk0MzUxOWQ4MTI5NDY5
OGQ3NWViMjZmMjI5OWQzYS4uNzA3NzkwMDE5MzQ5OTZlYTI5OGYyNjEzMDlmMzZhYmQ5YzU5YmNi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5oCkBAIC0yMCw2ICsyMCw3IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlcXVlc3QuaCIKKyNpbmNs
dWRlICJXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRX
ZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViVVJM
U2NoZW1lVGFzay5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjNjI2YjBl
ZDRlOTliNmVhM2E0N2Y4N2I0MDZjZDkwZWY5NjkwNWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5jcHAK
QEAgLTAsMCArMSwxNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgWml4aW5nIExpdQor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2
YXRlLmgiCisKKyNpbmNsdWRlICJBUElEYXRhLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5o
IgorI2luY2x1ZGUgIldlYlVSTFNjaGVtZVRhc2suaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBQ
YXJzZXJzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisjaW5jbHVk
ZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL1J1bkxvb3BTb3VyY2VQ
cmlvcml0eS5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL1dURkdUeXBlLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKKy8qKgorICogU0VDVElPTjogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UK
KyAqIEBTaG9ydF9kZXNjcmlwdGlvbjogUmVwcmVzZW50cyBhIFVSSSBzY2hlbWUgcmVzcG9uc2UK
KyAqIEBUaXRsZTogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAqCisgKiBJZiB5b3UgcmVnaXN0
ZXIgYSBwYXJ0aWN1bGFyIFVSSSBzY2hlbWUgaW4gYSAjV2ViS2l0V2ViQ29udGV4dCwKKyAqIHVz
aW5nIHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lKCksIHlvdSBoYXZlIHRv
IHByb3ZpZGUKKyAqIGEgI1dlYktpdFVSSVNjaGVtZVJlcXVlc3RDYWxsYmFjay4gQWZ0ZXIgdGhh
dCwgd2hlbiBhIFVSSSByZXNwb25zZQorICogaXMgbWFkZSB3aXRoIHRoYXQgcGFydGljdWxhciBz
Y2hlbWUsIHlvdXIgY2FsbGJhY2sgd2lsbCBiZQorICogY2FsbGVkLiBUaGVyZSB5b3Ugd2lsbCBi
ZSBhYmxlIHRvIHByb3ZpZGUgbW9yZSByZXNwb25zZSBwYXJhbWV0ZXJzCisgKiB3aGVuIHRoZSBt
ZXRob2RzIGFuZCBwcm9wZXJ0aWVzIG9mIGEgI1dlYktpdFVSSVNjaGVtZVJlcXVlc3QgaXMgbm90
CisgKiBlbm91Z2guCisgKiAKKyAqIFdoZW4geW91IGZpbmlzaGVkIHNldHRpbmcgdXAgeW91ciAj
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UsIGNhbGwKKyAqIHdlYmtpdF91cmlfcmVxdWVzdF9maW5p
c2hfd2l0aF9yZXNwb25zZSgpIHdpdGggaXQgdG8gcmV0dXJuIHRoZSByZXNwb25zZS4KKyAqCisg
Ki8KKworc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUgeworICAgIEdSZWZQ
dHI8R0lucHV0U3RyZWFtPiBzdHJlYW07CisgICAgdWludDY0X3Qgc3RyZWFtTGVuZ3RoOworCisg
ICAgaW50IHN0YXR1c0NvZGU7CisgICAgQ1N0cmluZyBzdGF0dXNNZXNzYWdlOworICAgIENTdHJp
bmcgY29udGVudFR5cGU7Cit9OworCitXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2UsIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlLCBHX1RZUEVfT0JKRUNUKQorCitz
dGF0aWMgdm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9jbGFzc19pbml0KFdlYktpdFVS
SVNjaGVtZVJlc3BvbnNlQ2xhc3MqKQoreworfQorCisvLyBQcml2YXRlIGdldHRlcnMKK2ludCBX
ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0YXR1c0NvZGUoY29uc3QgV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2VQcml2YXRlKiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gcmVzcG9uc2UtPnN0YXR1
c0NvZGU7Cit9CisKK0dJbnB1dFN0cmVhbSogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRTdHJl
YW0oY29uc3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlKiByZXNwb25zZSkKK3sKKyAg
ICByZXR1cm4gcmVzcG9uc2UtPnN0cmVhbS5nZXQoKTsKK30KKworQ1N0cmluZyBXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZUdldFN0YXR1c01lc3NhZ2UoY29uc3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2VQcml2YXRlKiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gcmVzcG9uc2UtPnN0YXR1c01lc3Nh
Z2U7Cit9CisKK0NTdHJpbmcgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRDb250ZW50VHlwZShj
b25zdCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUqIHJlc3BvbnNlKQoreworICAgIHJl
dHVybiByZXNwb25zZS0+Y29udGVudFR5cGU7Cit9CisKK3VpbnQ2NF90IFdlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlR2V0U3RyZWFtTGVuZ3RoKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJp
dmF0ZSogcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIHJlc3BvbnNlLT5zdHJlYW1MZW5ndGg7Cit9
CisKKy8qKgorICogd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1c19ib2R5Ogor
ICogQHJlc3BvbnNlOiBhICNXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICogQHN0cmVhbTogYSAj
R0lucHV0U3RyZWFtIHRvIHJlYWQgdGhlIGNvbnRlbnRzIG9mIHRoZSByZXF1ZXN0CisgKiBAc3Ry
ZWFtX2xlbmd0aDogdGhlIGxlbmd0aCBvZiB0aGUgc3RyZWFtIG9yIC0xIGlmIG5vdCBrbm93bgor
ICogQGNvbnRlbnRfdHlwZTogKGFsbG93LW5vbmUpOiB0aGUgY29udGVudCB0eXBlIG9mIHRoZSBz
dHJlYW0gb3IgJU5VTEwgaWYgbm90IGtub3duCisgKgorICogU2V0cyB0aGUgc3RhdHVzIG1lc3Nh
Z2UgZm9yIHRoZSBAcmVzcG9uc2UKKyAqCisgKiBTaW5jZTogMi4zNgorICovCitXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZSogd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfbmV3KEdJbnB1dFN0cmVh
bSogaW5wdXRTdHJlYW0sIGdpbnQ2NCBzdHJlYW1MZW5ndGgpCit7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoR19JU19JTlBVVF9TVFJFQU0oaW5wdXRTdHJlYW0pLCBudWxscHRyKTsKKyAgICBn
X3JldHVybl92YWxfaWZfZmFpbChzdHJlYW1MZW5ndGggPT0gLTEgfHwgc3RyZWFtTGVuZ3RoID49
IDAsIG51bGxwdHIpOworCisgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3BvbnNlID0g
V0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0UoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1VSSV9T
Q0hFTUVfUkVTUE9OU0UsIG51bGxwdHIpKTsKKyAgICByZXNwb25zZS0+cHJpdi0+c3RhdHVzQ29k
ZSA9IC0xOworICAgIHJlc3BvbnNlLT5wcml2LT5zdHJlYW0gPSBpbnB1dFN0cmVhbTsKKyAgICAv
LyBXZSB1c2UgLTEgaW4gdGhlIEFQSSBmb3IgY29uc2lzdGVuY3kgd2l0aCBzb3VwIHdoZW4gdGhl
IGNvbnRlbnQgbGVuZ3RoIGlzIG5vdCBrbm93biwgYnV0IDAgaW50ZXJuYWxseS4KKyAgICByZXNw
b25zZS0+cHJpdi0+c3RyZWFtTGVuZ3RoID0gc3RyZWFtTGVuZ3RoID09IC0xID8gMCA6IHN0cmVh
bUxlbmd0aDsKKyAgICByZXR1cm4gcmVzcG9uc2U7Cit9CisKKy8qKgorICogd2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZToKKyAqIEByZXNwb25zZTogYSAjV2ViS2l0
VVJJU2NoZW1lUmVzcG9uc2UKKyAqIEBjb250ZW50X3R5cGU6IChhbGxvdy1ub25lKTogdGhlIGNv
bnRlbnQgdHlwZSBvZiB0aGUgc3RyZWFtIG9yICVOVUxMIGlmIG5vdCBrbm93bgorICoKKyAqIFNl
dHMgdGhlIGNvbnRlbnQgdHlwZSBmb3IgdGhlIEByZXNwb25zZQorICoKKyAqIFNpbmNlOiAyLjM2
CisgKi8KK3ZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZShX
ZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UsIGNvbnN0IGdjaGFyKiBjb250ZW50VHlw
ZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNF
KHJlc3BvbnNlKSk7CisKKyAgICByZXNwb25zZS0+cHJpdi0+Y29udGVudFR5cGUgPSBjb250ZW50
VHlwZTsKK30KKworLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVz
OgorICogQHJlc3BvbnNlOiBhICNXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICogQHN0YXR1c19j
b2RlOiB0aGUgSFRUUCBzdGF0dXMgY29kZSB0byBiZSByZXR1cm5lZAorICogQHJlYXNvbl9waHJh
c2U6IChhbGxvdy1ub25lKTogYSByZWFzb24gcGhyYXNlCisgKgorICogU2V0cyB0aGUgc3RhdHVz
IGNvZGUgYW5kIHJlYXNvbiBwaHJhc2UgZm9yIHRoZSBAcmVzcG9uc2UuCisgKiBJZiBAc3RhdHVz
X2NvZGUgaXMgYSBrbm93biB2YWx1ZSBhbmQgQHJlYXNvbl9waHJhc2UgaXMgJU5VTEwsIHRoZSBA
cmVhc29uX3BocmFzZSB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5LgorICoKKyAqIFNpbmNlOiAy
LjM2CisgKi8KK3ZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cyhXZWJL
aXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UsIGd1aW50IHN0YXR1c0NvZGUsIGNvbnN0IGdj
aGFyKiBzdGF0dXNNZXNzYWdlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1VS
SV9TQ0hFTUVfUkVTUE9OU0UocmVzcG9uc2UpKTsKKworICAgIHJlc3BvbnNlLT5wcml2LT5zdGF0
dXNDb2RlID0gc3RhdGljX2Nhc3Q8Z2ludD4oc3RhdHVzQ29kZSk7CisgICAgaWYgKHN0YXR1c01l
c3NhZ2UpCisgICAgICAgIHJlc3BvbnNlLT5wcml2LT5zdGF0dXNNZXNzYWdlID0gc3RhdHVzTWVz
c2FnZTsKKyAgICBlbHNlCisgICAgICAgIHJlc3BvbnNlLT5wcml2LT5zdGF0dXNNZXNzYWdlID0g
c291cF9zdGF0dXNfZ2V0X3BocmFzZShzdGF0dXNDb2RlKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVz
cG9uc2VQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNhODA1ZjNlOWEzZTRmYWVmNzU3NGEwYTM5YjJh
NjJkNDZhNTgxYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgWml4aW5nIExpdQorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgiCisjaW5jbHVkZSAiV2ViS2l0V2ViQ29u
dGV4dC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlVSTFNjaGVt
ZVRhc2suaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorCitpbnQgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRTdGF0dXNDb2RlKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlUHJpdmF0ZSopOworR0lucHV0U3RyZWFtKiBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdl
dFN0cmVhbShjb25zdCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUqKTsKK0NTdHJpbmcg
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRTdGF0dXNNZXNzYWdlKGNvbnN0IFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlUHJpdmF0ZSopOworQ1N0cmluZyBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdl
dENvbnRlbnRUeXBlKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZSopOwordWlu
dDY0X3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRTdHJlYW1MZW5ndGgoY29uc3QgV2ViS2l0
VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaAppbmRleCBhNGFhZmQ3M2ZiMmFhN2Q4
M2I1YTNmMzY5YTAyZTYxZTg2MGRkMjRlLi4yNWRmN2QwNzg1Y2Y4ZjZkOTU4ZWVkODgwNmFkYzIz
NzBjMzM4M2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEF1dG9jbGVhbnVwcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0QXV0b2NsZWFudXBzLmgKQEAgLTYyLDYgKzYyLDcgQEAgR19ERUZJTkVfQVVUT1BUUl9D
TEVBTlVQX0ZVTkMgKFdlYktpdFNldHRpbmdzLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FV
VE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVUklSZXF1ZXN0LCBnX29iamVjdF91bnJlZikKIEdf
REVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVUklSZXNwb25zZSwgZ19vYmplY3Rf
dW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdCwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2UsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9D
TEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUsIGdfb2JqZWN0X3VucmVm
KQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJDb250ZW50TWFuYWdl
ciwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
aAppbmRleCBkMmIwNmExNGRjNWEyMDdlODc1NjRhMGViYzM1YmNjMTM5YjFlYzRlLi4yYjg4YWE2
YTg5Nzg0N2JhMTRmNmU4OTIyNDYzMDc2ODVmM2RlOTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaApAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0
Mi9XZWJLaXREZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGb3J3YXJkRGVjbGFy
YXRpb25zLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oPgog
CiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTcxLDEyICs3MiwxOSBAQCB3ZWJraXRfdXJpX3NjaGVtZV9y
ZXF1ZXN0X2dldF9wYXRoICAgICAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CiBX
RUJLSVRfQVBJIFdlYktpdFdlYlZpZXcgKgogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRf
d2ViX3ZpZXcgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOwogCitXRUJLSVRfQVBJ
IGNvbnN0IGdjaGFyICoKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9k
IChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKKwogV0VCS0lUX0FQSSB2b2lkCiB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaCAgICAgICAoV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdCAqcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
SW5wdXRTdHJlYW0gICAgICAgICAgICpzdHJlYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ2ludDY0ICAgICAgICAgICAgICAgICAgc3RyZWFtX2xlbmd0aCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAg
ICAgICpjb250ZW50X3R5cGUpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91cmlfc2NoZW1l
X3JlcXVlc3RfZmluaXNoX3dpdGhfcmVzcG9uc2UgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgICpy
ZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlKTsKKwogV0VCS0lUX0FQSSB2b2lkCiB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvciAoV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdCAqcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
RXJyb3IgICAgICAgICAgICAgICAgICplcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGM3MGNlNjczZWEyNDRkZTA3MDBmMGY2MDQxZWU2ZWFiNjBhNzdkZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVz
cG9uc2UuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIFppeGlu
ZyBMaXUKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
Ki8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJL
SVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJl
IGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlX2gKKyNkZWZpbmUgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VfaAorCisjaW5jbHVkZSA8
Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KKyNpbmNs
dWRlIDx3ZWJraXQyL1dlYktpdEZvcndhcmREZWNsYXJhdGlvbnMuaD4KKworR19CRUdJTl9ERUNM
UworCisjZGVmaW5lIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UgICAgICAgICAgICAo
d2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1VS
SV9TQ0hFTUVfUkVTUE9OU0Uob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0Vf
Q0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSwgV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2UpKQorI2RlZmluZSBXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRShvYmop
ICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9V
UklfU0NIRU1FX1JFU1BPTlNFKSkKKyNkZWZpbmUgV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0Vf
Q0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lU
X1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcykp
CisjZGVmaW5lIFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFX0NMQVNTKGtsYXNzKSAoR19U
WVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVT
UE9OU0UpKQorI2RlZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9HRVRfQ0xBU1Mob2Jq
KSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9VUklfU0NI
RU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzKSkKKwordHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlICAgICAgICBXZWJLaXRVUklTY2hlbWVSZXNw
b25zZTsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzICAgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVUklTY2hl
bWVSZXNwb25zZVByaXZhdGUgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlOworCitzdHJ1
Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlIHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAg
IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFz
czsKKworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpf
d2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikg
KHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworV0VC
S0lUX0FQSSBHVHlwZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUgICAgICAg
ICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqCit3ZWJr
aXRfdXJpX3NjaGVtZV9yZXNwb25zZV9uZXcgICAgICAgICAgICAgICAgKEdJbnB1dFN0cmVhbSAg
ICAgICAgICAgICppbnB1dF9zdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdpbnQ2NCAgICAgICAgICAgICAgICAgICBzdHJlYW1fbGVuZ3RoKTsK
KworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVz
ICAgICAgICAgKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAg
ICAgIHN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAqcmVhc29uX3BocmFzZSk7CisKK1dFQktJ
VF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZSAg
IChXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICpjb250
ZW50X3R5cGUpOworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2Vj
dGlvbnMudHh0CmluZGV4IDFiYWJiOTM5ZmNlYzE2Zjk0OTM0YWYzODhlNDE2ZTkwM2JlMWVlODcu
Ljc3YzQ1NGE1YTQyMTkzMTMwZmM5MjEyNzM0NjkwMWJiNmRmMzY4YzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9u
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJn
dGstNC4wLXNlY3Rpb25zLnR4dApAQCAtMTI3Nyw3ICsxMjc3LDkgQEAgd2Via2l0X3VyaV9zY2hl
bWVfcmVxdWVzdF9nZXRfc2NoZW1lCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkK
IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3BhdGgKIHdlYmtpdF91cmlfc2NoZW1lX3Jl
cXVlc3RfZ2V0X3dlYl92aWV3Cit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21l
dGhvZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2gKK3dlYmtpdF91cmlfc2NoZW1l
X3JlcXVlc3RfZmluaXNoX3dpdGhfcmVzcG9uc2UKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
ZmluaXNoX2Vycm9yCiAKIDxTVUJTRUNUSU9OIFN0YW5kYXJkPgpAQCAtMTI5NCw2ICsxMjk2LDI3
IEBAIFdlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X2dldF90eXBlCiA8L1NFQ1RJT04+CiAKKzxTRUNUSU9OPgorPEZJTEU+V2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2U8L0ZJTEU+CitXZWJLaXRVUklTY2hlbWVSZXNwb25zZQord2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2VfbmV3Cit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfY29udGVu
dF90eXBlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzCisKKzxTVUJTRUNU
SU9OIFN0YW5kYXJkPgorV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcworV0VCS0lUX1RZUEVf
VVJJX1NDSEVNRV9SRVNQT05TRQorV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0UKK1dFQktJVF9J
U19VUklfU0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9DTEFTUwor
V0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1MKK1dFQktJVF9VUklfU0NIRU1FX1JF
U1BPTlNFX0dFVF9DTEFTUworCis8U1VCU0VDVElPTiBQcml2YXRlPgorV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2VQcml2YXRlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZQorPC9T
RUNUSU9OPgorCiA8U0VDVElPTj4KIDxGSUxFPldlYktpdFZlcnNpb248L0ZJTEU+CiB3ZWJraXRf
Z2V0X21ham9yX3ZlcnNpb24KQEAgLTE5ODUsNCArMjAwOCwzIEBAIHdlYmtpdF9tZW1vcnlfcHJl
c3N1cmVfc2V0dGluZ3NfZ2V0X3R5cGUKIDxTVUJTRUNUSU9OIFN0YW5kYXJkPgogV0VCS0lUX1RZ
UEVfTUVNT1JZX1BSRVNTVVJFX1NFVFRJTkdTCiA8L1NFQ1RJT04+Ci0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC50eXBlcyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC50eXBl
cwppbmRleCA0OTM3YWJiNTY0ODczY2UwNmViNjQzMTU5MWRlMzFkY2IxZDBjNTUxLi5lZjZlOGFk
NjU5NTY1OWMwZDUwZjVjNjJkMzUwNWEyMTZiNzBhZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAudHlwZXMKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLnR5cGVzCkBA
IC0xOSw2ICsxOSw3IEBAIHdlYmtpdF9wbHVnaW5fZ2V0X3R5cGUKIHdlYmtpdF9taW1lX2luZm9f
Z2V0X3R5cGUKIHdlYmtpdF93ZWJfaW5zcGVjdG9yX2dldF90eXBlCiB3ZWJraXRfdXJpX3NjaGVt
ZV9yZXF1ZXN0X2dldF90eXBlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZQog
d2Via2l0X2NvbnRleHRfbWVudV9nZXRfdHlwZQogd2Via2l0X2NvbnRleHRfbWVudV9pdGVtX2dl
dF90eXBlCiB3ZWJraXRfd2ViX2V4dGVuc2lvbl9nZXRfdHlwZQpAQCAtNDIsNCArNDMsNCBAQCB3
ZWJraXRfb3B0aW9uX21lbnVfaXRlbV9nZXRfdHlwZQogd2Via2l0X2RldmljZV9pbmZvX3Blcm1p
c3Npb25fcmVxdWVzdF9nZXRfdHlwZQogd2Via2l0X2dlb2xvY2F0aW9uX21hbmFnZXJfZ2V0X3R5
cGUKIHdlYmtpdF9nZW9sb2NhdGlvbl9wb3NpdGlvbl9nZXRfdHlwZQotd2Via2l0X3BvaW50ZXJf
bG9ja19wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCit3ZWJraXRfcG9pbnRlcl9sb2NrX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGst
ZG9jcy5zZ21sIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJn
dGstZG9jcy5zZ21sCmluZGV4IDQxMWVlNjRkODMzMzNmMDUyMzA2YzViOTlkMDczYmI0Mjc5Nzhh
NjUuLmUxMmM3ZGI1Yzc5NmZjNThjYTg2MmQwNjJiYWM3MWM4MDhlYTYwYmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dt
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1k
b2NzLnNnbWwKQEAgLTQ1LDYgKzQ1LDcgQEAKICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2Vi
S2l0UGx1Z2luLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRXZWJJbnNw
ZWN0b3IueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFVSSVNjaGVtZVJl
cXVlc3QueG1sIi8+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRWZXJzaW9uLnht
bCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRDb250ZXh0TWVudS54bWwiLz4K
ICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0Q29udGV4dE1lbnVJdGVtLnhtbCIvPgpA
QCAtMTcwLDUgKzE3MSwxMCBAQAogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hcGktaW5kZXgt
Mi4zMC54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KICAgPC9pbmRleD4KIAorICA8
aW5kZXggaWQ9ImFwaS1pbmRleC0yLTM2IiByb2xlPSIyLjM2Ij4KKyAgICA8dGl0bGU+SW5kZXgg
b2YgbmV3IHN5bWJvbHMgaW4gMi4zNjwvdGl0bGU+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1s
L2FwaS1pbmRleC0yLjM2LnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRlPgorICA8L2lu
ZGV4PgorCiAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hbm5vdGF0aW9uLWdsb3NzYXJ5LnhtbCI+
PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRlPgogPC9ib29rPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAppbmRleCBiN2QyNzQxYzRiMmMxYWQ0ZTM0YTFmYWI0OGZl
YzYxYWYxYzYxMDJkLi41Y2Q5NTI0MjUyYTk3ZDRlYTY0ZGZlYjIyZTVhNDdiNTVmMzZjODg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaApAQCAtNzgsNiArNzgs
NyBAQAogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0VVJJUmVzcG9uc2UuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVNj
aGVtZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNl
Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklVdGlsaXRpZXMuaD4KICNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdFVzZXJDb250ZW50Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVc2Vy
Q29udGVudEZpbHRlclN0b3JlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1dlYktpdEF1dG9jbGVhbnVwcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRBdXRvY2xlYW51cHMuaAppbmRleCA3N2FiNzdiYzk4NGU3MGQzZmFjZTAw
MzNmMTI0MmQyNmM0MDJkMGI2Li41ZTIwZjQzNWUyMzFkZTRmOTVmMmU3YTFlNGY5OTg5ODdhNjhj
YWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEF1
dG9jbGVhbnVwcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
QXV0b2NsZWFudXBzLmgKQEAgLTU2LDYgKzU2LDcgQEAgR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQ
X0ZVTkMgKFdlYktpdFNldHRpbmdzLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJf
Q0xFQU5VUF9GVU5DIChXZWJLaXRVUklSZXF1ZXN0LCBnX29iamVjdF91bnJlZikKIEdfREVGSU5F
X0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVUklSZXNwb25zZSwgZ19vYmplY3RfdW5yZWYp
CiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCwg
Z19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2UsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQ
X0ZVTkMgKFdlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUsIGdfb2JqZWN0X3VucmVmKQogR19E
RUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJDb250ZW50TWFuYWdlciwgZ19v
YmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAppbmRl
eCA4ZWJlZGE0ZTc3ZjFiYmQxOGUxY2JkYWRjM2Y3ZjI0NmUwOTkxN2IxLi5lODhjYTc5ZTU3NWU0
OWJmNjc2MTcxYzNjOWRjNGM3NDNjZDViMDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaApAQCAtMjYsNiAr
MjYsNyBAQAogCiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0
RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oPgogCiBH
X0JFR0lOX0RFQ0xTCiAKQEAgLTcyLDEyICs3MywxOSBAQCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X2dldF9wYXRoICAgICAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CiBXRUJL
SVRfQVBJIFdlYktpdFdlYlZpZXcgKgogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2Vi
X3ZpZXcgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOwogCitXRUJLSVRfQVBJIGNv
bnN0IGdjaGFyICoKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kIChX
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKKwogV0VCS0lUX0FQSSB2b2lkCiB3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaCAgICAgICAoV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dCAqcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSW5w
dXRTdHJlYW0gICAgICAgICAgICpzdHJlYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2ludDY0ICAgICAgICAgICAgICAgICAgc3RyZWFtX2xlbmd0aCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAg
ICpjb250ZW50X3R5cGUpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91cmlfc2NoZW1lX3Jl
cXVlc3RfZmluaXNoX3dpdGhfcmVzcG9uc2UgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgICpyZXF1
ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlKTsKKwogV0VCS0lUX0FQSSB2b2lkCiB3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvciAoV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dCAqcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJy
b3IgICAgICAgICAgICAgICAgICplcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzIyMGIxZjQ2ODg2NzE2MzlmNzZhZjgxYzcyNzVmZmU3OTFjYzVmMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2UuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIFppeGluZyBM
aXUKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2lmICFkZWZpbmVkKF9fV0VCS0lUX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJf
Q09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQuaD4gY2FuIGJlIGluY2x1ZGVk
IGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlX2gK
KyNkZWZpbmUgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VfaAorCisjaW5jbHVkZSA8Z2xpYi1vYmpl
Y3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisK
KyNkZWZpbmUgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSAgICAgICAgICAgICh3ZWJr
aXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfVVJJX1ND
SEVNRV9SRVNQT05TRShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNU
KChvYmopLCBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVS
ZXNwb25zZSkpCisjZGVmaW5lIFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFKG9iaikgICAg
ICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1VSSV9T
Q0hFTUVfUkVTUE9OU0UpKQorI2RlZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9DTEFT
UyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQ
RV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzKSkKKyNk
ZWZpbmUgV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1Moa2xhc3MpIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05T
RSkpCisjZGVmaW5lIFdFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFX0dFVF9DTEFTUyhvYmopICAo
R19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVf
UkVTUE9OU0UsIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVj
dCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgICAgICAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MgICBXZWJLaXRV
UklTY2hlbWVSZXNwb25zZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlUHJpdmF0ZSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGU7CisKK3N0cnVjdCBf
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRV
UklTY2hlbWVSZXNwb25zZUNsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwor
CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9p
ZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRf
QVBJIEdUeXBlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZSAgICAgICAgICAg
KHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICoKK3dlYmtpdF91
cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyAgICAgICAgICAgICAgICAoR0lucHV0U3RyZWFtICAgICAg
ICAgICAgKmlucHV0X3N0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2ludDY0ICAgICAgICAgICAgICAgICAgIHN0cmVhbV9sZW5ndGgpOworCitX
RUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMgICAg
ICAgICAoV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAg
c3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICpyZWFzb25fcGhyYXNlKTsKKworV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfY29udGVudF90eXBlICAgKFdl
YktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgKmNvbnRlbnRf
dHlwZSk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CmluZGV4IGI4
YjA4ZDJmOTFmMjU2NGNlZjdkYTBiOGVjZWRjOGExMTJkNWJlOTAuLjBhOWNmMjRjNzM4ZDJjYzA1
NzVmMDBkNzNkZGNlN2MwYjQ2YmJkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKQEAgLTEyMTQsNyAr
MTIxNCw5IEBAIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3NjaGVtZQogd2Via2l0X3Vy
aV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9w
YXRoCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmlldword2Via2l0X3VyaV9z
Y2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
ZmluaXNoCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlCiB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcgogCiA8U1VCU0VDVElPTiBTdGFu
ZGFyZD4KQEAgLTEyMzEsNiArMTIzMywyNyBAQCBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0
ZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCis8U0VD
VElPTj4KKzxGSUxFPldlYktpdFVSSVNjaGVtZVJlc3BvbnNlPC9GSUxFPgorV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2UKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldword2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9u
c2Vfc2V0X3N0YXR1cworCis8U1VCU0VDVElPTiBTdGFuZGFyZD4KK1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlQ2xhc3MKK1dFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UKK1dFQktJVF9VUklf
U0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRQorV0VCS0lUX1VS
SV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1MKK1dFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFX0NM
QVNTCitXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9HRVRfQ0xBU1MKKworPFNVQlNFQ1RJT04g
UHJpdmF0ZT4KK1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZQord2Via2l0X3VyaV9zY2hl
bWVfcmVzcG9uc2VfZ2V0X3R5cGUKKzwvU0VDVElPTj4KKwogPFNFQ1RJT04+CiA8RklMRT5XZWJL
aXRWZXJzaW9uPC9GSUxFPgogd2Via2l0X2dldF9tYWpvcl92ZXJzaW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLWRvY3Muc2dtbCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCmluZGV4IDhlMjU3
ZjAyZjExZmViZWNkMmE1NjczYjhlODcwNmQ1ZWM2YzY4MzkuLjJiY2MwY2JkYTg4NWRmOWJmNzQ5
NTM0ZTNkZDFlZWI2OTliZDExZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCkBAIC00MSw2ICs0MSw3IEBACiAgICAgPHhpOmlu
Y2x1ZGUgaHJlZj0ieG1sL1dlYktpdENvb2tpZU1hbmFnZXIueG1sIi8+CiAgICAgPHhpOmluY2x1
ZGUgaHJlZj0ieG1sL1dlYktpdFBsdWdpbi54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4
bWwvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC54bWwiLz4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4
bWwvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0i
eG1sL1dlYktpdENvbnRleHRNZW51LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9X
ZWJLaXRDb250ZXh0TWVudUl0ZW0ueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dl
YktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC54bWwiLz4KQEAgLTEwOCw1ICsxMDksMTAgQEAKICAg
ICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LTIuMzAueG1sIj48eGk6ZmFsbGJhY2sg
Lz48L3hpOmluY2x1ZGU+CiAgIDwvaW5kZXg+CiAKKyAgPGluZGV4IGlkPSJhcGktaW5kZXgtMi0z
NiIgcm9sZT0iMi4zNiI+CisgICAgPHRpdGxlPkluZGV4IG9mIG5ldyBzeW1ib2xzIGluIDIuMzY8
L3RpdGxlPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hcGktaW5kZXgtMi4zNi54bWwiPjx4
aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KKyAgPC9pbmRleD4KKwogICA8eGk6aW5jbHVkZSBo
cmVmPSJ4bWwvYW5ub3RhdGlvbi1nbG9zc2FyeS54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6aW5j
bHVkZT4KIDwvYm9vaz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvd2Via2l0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL3dlYmtpdC5oCmlu
ZGV4IDVjOTNkNzYwZjczNGExMmY2MTQ4OTk1NDUxMzVmZGY3NzAxNjQ1NzUuLmMyMjIxZWZjMDA2
MThjMmVjNGQyMGE4OGM1OTg0MDc2N2JkNTJmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvd2Via2l0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS93ZWJraXQuaApAQCAtNzMsNiArNzMsNyBAQAogI2luY2x1ZGUgPHdwZS9XZWJLaXRV
UklSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVJlc3BvbnNlLmg+CiAjaW5jbHVk
ZSA8d3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2UuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJVXRpbGl0aWVzLmg+CiAj
aW5jbHVkZSA8d3BlL1dlYktpdFVzZXJDb250ZW50Lmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVz
ZXJDb250ZW50RmlsdGVyU3RvcmUuaD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBlMDAyM2EyNDg1MDg5ZGNhMzc5MTY3ODFjODYxMjZiOTcyMjQ2
YTVlLi45YWI4ZDRhNTUwYjFlMjZkZThmM2RlNjc2NmI0ZWZmOWE2OWQ3ODUyIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMjEtMTAtMjAgIFppeGluZyBMaXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAg
ICAgW0dUS11bV1BFXSBTdXBwb3J0IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRU
UCBtZXRob2QgaW4gY3VzdG9tIFVSSSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKHRlc3RXZWJDb250ZXh0
VVJJU2NoZW1lKTogQWRkZWQgdGVzdHMgdG8gdGVzdCBuZXcgcHVibGljIEFQSXMgZm9yIFdlYktp
dEd0aworCiAyMDIxLTEwLTE4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4NDM5OS4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNv
bnRleHQuY3BwCmluZGV4IGI5MzZjOGUwNzc1YTE3YWNhYmUyMTI4YWE3MTkzMmU1ZjRkOTBmNDMu
LmYyMDA4YWE2MWU0MmFlOGU5M2VlYjU4NGZmNDJiZjIyMjBiNzAxZTMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRX
ZWJDb250ZXh0LmNwcApAQCAtOTUsMTYgKzk1LDE4IEBAIHB1YmxpYzoKICAgICAgICAgewogICAg
ICAgICB9CiAKLSAgICAgICAgVVJJU2NoZW1lSGFuZGxlcihjb25zdCBjaGFyKiByZXBseSwgaW50
IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1lVHlwZSkKKyAgICAgICAgVVJJU2NoZW1lSGFu
ZGxlcihjb25zdCBjaGFyKiByZXBseSwgaW50IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1l
VHlwZSwgaW50IHN0YXR1c0NvZGUgPSAyMDApCiAgICAgICAgICAgICA6IHJlcGx5KHJlcGx5KQog
ICAgICAgICAgICAgLCByZXBseUxlbmd0aChyZXBseUxlbmd0aCkKICAgICAgICAgICAgICwgbWlt
ZVR5cGUobWltZVR5cGUpCisgICAgICAgICAgICAsIHN0YXR1c0NvZGUoc3RhdHVzQ29kZSkKICAg
ICAgICAgewogICAgICAgICB9CiAKICAgICAgICAgQ1N0cmluZyByZXBseTsKICAgICAgICAgaW50
IHJlcGx5TGVuZ3RoOwogICAgICAgICBDU3RyaW5nIG1pbWVUeXBlOworICAgICAgICBpbnQgc3Rh
dHVzQ29kZTsKICAgICB9OwogCiAgICAgc3RhdGljIHZvaWQgdXJpU2NoZW1lUmVxdWVzdENhbGxi
YWNrKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIGdwb2ludGVyIHVzZXJEYXRhKQpA
QCAtMTIwLDYgKzEyMiwxMyBAQCBwdWJsaWM6CiAgICAgICAgIGdfYXNzZXJ0X25vbm51bGwoc2No
ZW1lKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2hhbmRsZXJzTWFwLmNvbnRhaW5z
KFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKSkpOwogCisgICAgICAgIGNvbnN0IGNoYXIqIG1ldGhv
ZCA9IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kKHJlcXVlc3QpOwor
ICAgICAgICBnX2Fzc2VydF9ub25udWxsKG1ldGhvZCk7CisgICAgICAgIGlmICghZ19zdHJjbXAw
KHNjaGVtZSwgInBvc3QiKSkKKyAgICAgICAgICAgIGdfYXNzZXJ0X2NtcHN0cihtZXRob2QsID09
LCAiUE9TVCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBnX2Fzc2VydF9jbXBzdHIobWV0
aG9kLCA9PSwgIkdFVCIpOworCiAgICAgICAgIGNvbnN0IFVSSVNjaGVtZUhhbmRsZXImIGhhbmRs
ZXIgPSB0ZXN0LT5tX2hhbmRsZXJzTWFwLmdldChTdHJpbmc6OmZyb21VVEY4KHNjaGVtZSkpOwog
CiAgICAgICAgIEdSZWZQdHI8R0lucHV0U3RyZWFtPiBpbnB1dFN0cmVhbSA9IGFkb3B0R1JlZihn
X21lbW9yeV9pbnB1dF9zdHJlYW1fbmV3KCkpOwpAQCAtMTU0LDEyICsxNjMsMTUgQEAgcHVibGlj
OgogICAgICAgICBlbHNlIGlmICghaGFuZGxlci5yZXBseS5pc051bGwoKSkKICAgICAgICAgICAg
IGdfbWVtb3J5X2lucHV0X3N0cmVhbV9hZGRfZGF0YShHX01FTU9SWV9JTlBVVF9TVFJFQU0oaW5w
dXRTdHJlYW0uZ2V0KCkpLCBoYW5kbGVyLnJlcGx5LmRhdGEoKSwgaGFuZGxlci5yZXBseS5sZW5n
dGgoKSwgMCk7CiAKLSAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2gocmVx
dWVzdCwgaW5wdXRTdHJlYW0uZ2V0KCksIGhhbmRsZXIucmVwbHlMZW5ndGgsIGhhbmRsZXIubWlt
ZVR5cGUuZGF0YSgpKTsKKyAgICAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3BvbnNl
ID0gd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfbmV3KGlucHV0U3RyZWFtLmdldCgpLCBoYW5k
bGVyLnJlcGx5TGVuZ3RoKTsKKyAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0
X3N0YXR1cyhyZXNwb25zZSwgaGFuZGxlci5zdGF0dXNDb2RlLCBudWxscHRyKTsKKyAgICAgICAg
d2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZShyZXNwb25zZSwgaGFu
ZGxlci5taW1lVHlwZS5kYXRhKCkpOworICAgICAgICB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2ZpbmlzaF93aXRoX3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlKTsKICAgICB9CiAKLSAgICB2
b2lkIHJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcihjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNo
YXIqIHJlcGx5LCBpbnQgcmVwbHlMZW5ndGgsIGNvbnN0IGNoYXIqIG1pbWVUeXBlKQorICAgIHZv
aWQgcmVnaXN0ZXJVUklTY2hlbWVIYW5kbGVyKGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hh
ciogcmVwbHksIGludCByZXBseUxlbmd0aCwgY29uc3QgY2hhciogbWltZVR5cGUsIGludCBzdGF0
dXNDb2RlID0gMjAwKQogICAgIHsKLSAgICAgICAgbV9oYW5kbGVyc01hcC5zZXQoU3RyaW5nOjpm
cm9tVVRGOChzY2hlbWUpLCBVUklTY2hlbWVIYW5kbGVyKHJlcGx5LCByZXBseUxlbmd0aCwgbWlt
ZVR5cGUpKTsKKyAgICAgICAgbV9oYW5kbGVyc01hcC5zZXQoU3RyaW5nOjpmcm9tVVRGOChzY2hl
bWUpLCBVUklTY2hlbWVIYW5kbGVyKHJlcGx5LCByZXBseUxlbmd0aCwgbWltZVR5cGUsIHN0YXR1
c0NvZGUpKTsKICAgICAgICAgd2Via2l0X3dlYl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUo
bV93ZWJDb250ZXh0LmdldCgpLCBzY2hlbWUsIHVyaVNjaGVtZVJlcXVlc3RDYWxsYmFjaywgdGhp
cywgMCk7CiAgICAgfQogCkBAIC0yOTcsNiArMzA5LDMyIEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJD
b250ZXh0VVJJU2NoZW1lKFVSSVNjaGVtZVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAg
Z19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2xvYWRGYWlsZWQpOwogICAgIGdfYXNzZXJ0X2Vycm9yKHRl
c3QtPm1fZXJyb3IuZ2V0KCksIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0xPU0VEKTsKIAorICAg
IHRlc3QtPnJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcigibm90Zm91bmQiLCBrQmFySFRNTCwgc3Ry
bGVuKGtCYXJIVE1MKSwgInRleHQvaHRtbCIsIDQwNCk7CisgICAgdGVzdC0+bV9sb2FkRXZlbnRz
LmNsZWFyKCk7CisgICAgdGVzdC0+bG9hZFVSSSgibm90Zm91bmQ6YmxhbmsiKTsKKyAgICB0ZXN0
LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBnX2Fzc2VydF9mYWxzZSh0ZXN0LT5tX2xv
YWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVzdDo6UHJvdmlzaW9uYWxMb2FkRmFpbGVk
KSk7CisgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRy
YWNraW5nVGVzdDo6TG9hZEZhaWxlZCkpOworCisgICAgdGVzdC0+cmVnaXN0ZXJVUklTY2hlbWVI
YW5kbGVyKCJub2NvbnRlbnQiLCBudWxscHRyLCAwLCAiYXBwbGljYXRpb24vanNvbiIsIDIwNCk7
CisgICAgdGVzdC0+bV9sb2FkRXZlbnRzLmNsZWFyKCk7CisgICAgdGVzdC0+bG9hZFVSSSgibm9j
b250ZW50OmJsYW5rIik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAg
Z19hc3NlcnRfZmFsc2UodGVzdC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rl
c3Q6OlByb3Zpc2lvbmFsTG9hZEZhaWxlZCkpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHRlc3QtPm1f
bG9hZEV2ZW50cy5jb250YWlucyhMb2FkVHJhY2tpbmdUZXN0OjpMb2FkRmFpbGVkKSk7CisKKyAg
ICBzdGF0aWMgY29uc3QgY2hhciogZm9ybUhUTUwgPSAiPGh0bWw+PGJvZHk+PGZvcm0gbWV0aG9k
PVwiUE9TVFwiIGFjdGlvbj1cInBvc3Q6ZGF0YVwiPC9ib2R5PjwvaHRtbD4iOworICAgIHRlc3Qt
PnJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcigicG9zdCIsIG51bGxwdHIsIDAsICJhcHBsaWNhdGlv
bi9qc29uIiwgMjA0KTsKKyAgICB0ZXN0LT5tX2xvYWRFdmVudHMuY2xlYXIoKTsKKyAgICB0ZXN0
LT5sb2FkSHRtbChmb3JtSFRNTCwgInBvc3Q6Zm9ybSIpOworICAgIHRlc3QtPndhaXRVbnRpbExv
YWRGaW5pc2hlZCgpOworICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKKyAgICB0ZXN0
LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVudGlsRmluaXNoZWQoImRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0LWZvcm0nKS5zdWJtaXQoKSIsICZlcnJvci5vdXRQdHIoKSk7CisgICAgZ19hc3Nl
cnRfbm9fZXJyb3IoZXJyb3IuZ2V0KCkpOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hl
ZCgpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHRlc3QtPm1fbG9hZEV2ZW50cy5jb250YWlucyhMb2Fk
VHJhY2tpbmdUZXN0OjpQcm92aXNpb25hbExvYWRGYWlsZWQpKTsKKyAgICBnX2Fzc2VydF9mYWxz
ZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVzdDo6TG9hZEZhaWxl
ZCkpOworCiAgICAgLy8gVG9ydHVyZSB0ZXN0IHRpbWU6IG1ha2Ugc3VyZSBpdCBzdGlsbCB3b3Jr
cyBpZiB3ZSBpc3N1ZSBhIGJ1bmNoIG9mIGRpZmZlcmVudCByZXF1ZXN0cyBhbGwgYXQKICAgICAv
LyBvbmNlLiBFYWNoIHJlcXVlc3Qgc2hvdWxkIGZpbmlzaCBhbmQgcmV0dXJuIGV4YWN0bHkgdGhl
IHNhbWUgZGF0YS4KICAgICBpbnQgbnVtSXRlcmF0aW9ucyA9IDI1Owo=
</data>
<flag name="commit-queue"
          id="466748"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442283</attachid>
            <date>2021-10-23 16:22:19 -0700</date>
            <delta_ts>2021-10-24 20:11:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231880-20211023172219.patch</filename>
            <type>text/plain</type>
            <size>44399</size>
            <attacher>liushuyu011</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQzMjkzMmY3ZDIxMWRkMzA5
M2QwYzQ4ZjBkZTg1MjIwYmVmYWMyN2QuLjAxZGY5YTA4MjQ3OWNkMDUxZDFmNWVjNDgyMmUzMTk5
YTIyZTUxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMTAtMjAgIFppeGluZyBM
aXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdXBwb3J0
IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4gY3VzdG9tIFVS
SSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlc0dUSy50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
Y3BwCisgICAgICAgICogU291cmNlc1dQRS50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwOgorICAgICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRo
b2QpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3Rf
ZmluaXNoX3dpdGhfcmVzcG9uc2UpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmg6ICBBZGRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2Uu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2NsYXNzX2lu
aXQpOiBBZGRlZCBpbml0IGZ1bmN0aW9uIGZvciB0aGUgbmV3IHR5cGUKKyAgICAgICAgKHdlYmtp
dF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rpb24KKyAgICAg
ICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMpOiBBZGRlZCBuZXcgQVBJ
IGZ1bmN0aW9uCisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfY29udGVu
dF90eXBlKTogQWRkZWQgbmV3IEFQSSBmdW5jdGlvbgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUu
aC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaDogUmVn
aXN0ZXIgY2xlYW4tdXAgZnVuY3Rpb24gZm9yIFdlYmtpdFVSSVNjaGVtZVJlc3BvbnNlCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oOiBBZGRlZCBm
dW5jdGlvbiBwcm90b3R5cGUgZm9yIAorICAgICAgICB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2dldF9odHRwX21ldGhvZAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNj
aGVtZVJlc3BvbnNlLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mv
d2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0OiBBZGRlZCBuZXcgc3ltYm9scyBhbmQgbmV3IHR5
cGVzCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oOiBJbmNsdWRlIGEgbmV3
IGhlYWRlcjogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaAorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaDogQWRkZWQgZnVuY3Rpb24gcHJvdG90eXBl
IGZvciAKKyAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS93ZWJraXQuaDogSW5jbHVkZSBhIG5l
dyBoZWFkZXI6IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0OiBBZGRlZCBuZXcgc3ltYm9scyBhbmQg
bmV3IHR5cGVzCisKIDIwMjEtMTAtMTggIEpvaG4gUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29t
PgogCiAgICAgICAgIFtXZWJBdXRobl0gT2J0YWluIGNvbnNlbnQgdG8gY3JlYXRlIG5ldyBjcmVk
ZW50aWFsIHdoZW4gcGxhdGZvcm0gYXV0aGVudGljYXRvciBpbiBleGNsdWRlZENyZWRlbnRpYWxz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA4OGM1NjBjYzlmNjJjZTVjNWU5Y2RlZjlkNDcw
ZGU0N2ZhZDQ1YWU0Li4xNDE3MDVhMjA0ZTAyOGMxOGM0NDJhMGQ5NDI5NDMxYWU4ODgxZmFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTE0Niw2ICsxNDYsNyBAQCBzZXQoV2ViS2l0MkdU
S19JTlNUQUxMRURfSEVBREVSUwogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VVJJUmVxdWVzdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRVUklSZXNwb25zZS5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVSSVV0aWxpdGllcy5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BF
LmNtYWtlCmluZGV4IGY0Y2Q1YmVmNDAyYjBjNjNlMWZiYjdhMDcxMzI5MDBjZTZmNzM4YmIuLjBm
YjNlM2U3ODA2Yzk4YjE4ZWIzNDRhMDM1YTM4YzU5MGU1ODcxMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQ
RS5jbWFrZQpAQCAtMTc2LDYgKzE3Niw3IEBAIHNldChXUEVfQVBJX0lOU1RBTExFRF9IRUFERVJT
CiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklSZXF1ZXN0LmgK
ICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVJlc3BvbnNlLmgK
ICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2UuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJ
VXRpbGl0aWVzLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVz
ZXJDb250ZW50LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVz
ZXJDb250ZW50RmlsdGVyU3RvcmUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
R1RLLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKaW5kZXggNWM5NTRlZWY5YWUx
YjJmOTRlZjAwOGIyYTM4YWY4ODk0YjBjOWFjNS4uZjIxMjQ2ZjAwYzE4ZjIzODFmY2VlNzMxN2Y5
NjQ5ZjFiNjYxZTM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CkBAIC0xNzMsNiArMTczLDcgQEAgVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFNlY3VyaXR5T3JpZ2luLmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwIEBuby11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFVSSVNjaGVtZVJlc3BvbnNlLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRVUklVdGlsaXRpZXMuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVzZXJDb250ZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2Vy
Q29udGVudEZpbHRlclN0b3JlLmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc1dQRS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4IDhh
MWMzMGYzMmYzYjkzNTBhMzA2YmVmNTMwZWNiMzM0MGMxZjI5YzcuLjk0NDE5ZGQ4NmYwNzljNWM1
M2U2OGNlOGU3OWI5MTU1MDVhODdhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c1dQRS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dApAQCAtMTY0LDYgKzE2
NCw3IEBAIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZWN1cml0eU9yaWdpbi5jcHAgQG5vLXVu
aWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwIEBuby11bmlmeQogVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBAbm8tdW5pZnkKK1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0VVJJVXRpbGl0aWVzLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVc2VyQ29udGVudC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwCmluZGV4IDZhMGQ1OWMxMDI4OWUxYjgwY2EyYTE1NWU0NmU3ZGQ5ODlmNWU5ZjEuLmEx
ZDkyZGQ1NjQ1NjJkZGNkZGUwZGM0MTg1Mzc3Y2VlOWJkMDI1YmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwCkBAIC02NCwxMiArNjQsMTEgQEAgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0
UHJpdmF0ZSB7CiAgICAgQ1N0cmluZyB1cmlTY2hlbWU7CiAgICAgQ1N0cmluZyB1cmlQYXRoOwog
Ci0gICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IHN0cmVhbTsKLSAgICB1aW50NjRfdCBzdHJlYW1M
ZW5ndGg7CisgICAgR1JlZlB0cjxXZWJLaXRVUklTY2hlbWVSZXNwb25zZT4gcmVzcG9uc2U7CiAg
ICAgR1JlZlB0cjxHQ2FuY2VsbGFibGU+IGNhbmNlbGxhYmxlOwogICAgIGNoYXIgcmVhZEJ1ZmZl
cltnUmVhZEJ1ZmZlclNpemVdOwogICAgIHVpbnQ2NF90IGJ5dGVzUmVhZDsKLSAgICBDU3RyaW5n
IGNvbnRlbnRUeXBlOworICAgIGNvbnN0IGNoYXIqIGh0dHBNZXRob2Q7CiB9OwogCiBXRUJLSVRf
REVGSU5FX1RZUEUoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCwgd2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdCwgR19UWVBFX09CSkVDVCkKQEAgLTE2MSw2ICsxNjAsMjYgQEAgV2ViS2l0V2ViVmlldyog
d2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcoV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdCogcmUKICAgICByZXR1cm4gd2Via2l0V2ViQ29udGV4dEdldFdlYlZpZXdGb3JQYWdlKHJl
cXVlc3QtPnByaXYtPndlYkNvbnRleHQsIHJlcXVlc3QtPnByaXYtPmluaXRpYXRpbmdQYWdlLmdl
dCgpKTsKIH0KIAorLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21l
dGhvZDoKKyAqIEByZXF1ZXN0OiBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0CisgKgorICogR2V0
IHRoZSBIVFRQIG1ldGhvZCBvZiB0aGUgQHJlcXVlc3QKKyAqCisgKiBSZXR1cm5zOiB0aGUgSFRU
UCBtZXRob2Qgb2YgdGhlIEByZXF1ZXN0CisgKiAKKyAqIFNpbmNlOiAyLjM2CisgKi8KK2NvbnN0
IGdjaGFyKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZChXZWJLaXRV
UklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9JU19VUklfU0NIRU1FX1JFUVVFU1QocmVxdWVzdCksIG51bGxwdHIpOworCisgICAgaWYg
KCFyZXF1ZXN0LT5wcml2LT5odHRwTWV0aG9kKQorICAgICAgICByZXF1ZXN0LT5wcml2LT5odHRw
TWV0aG9kID0gZ19pbnRlcm5fc3RyaW5nKHJlcXVlc3QtPnByaXYtPnRhc2stPnJlcXVlc3QoKS5o
dHRwTWV0aG9kKCkudXRmOCgpLmRhdGEoKSk7CisKKyAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+
aHR0cE1ldGhvZDsKK30KKwogc3RhdGljIHZvaWQgd2Via2l0VVJJU2NoZW1lUmVxdWVzdFJlYWRD
YWxsYmFjayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwg
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogc2NoZW1lUmVxdWVzdCkKIHsKICAgICBHUmVmUHRyPFdl
YktpdFVSSVNjaGVtZVJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdEdSZWYoc2NoZW1lUmVxdWVzdCk7
CkBAIC0xNzIsMTYgKzE5MSwyMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0
UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luYwogICAgIH0KIAog
ICAgIFdlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsK
KyAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUqIHJlc3BQcml2ID0gcHJpdi0+cmVz
cG9uc2UtPnByaXY7CiAgICAgLy8gTmVlZCB0byBjaGVjayB0aGUgc3RyZWFtIGJlZm9yZSBwcm9j
ZWVkaW5nIGFzIGl0IGNhbiBiZSBjYW5jZWxsZWQgaWYgZmluaXNoX2Vycm9yCiAgICAgLy8gd2Fz
IHByZXZpb3VzbHkgY2FsbCwgd2hpY2ggd29uJ3QgYmUgZGV0ZWN0ZWQgYnkgZ19pbnB1dF9zdHJl
YW1fcmVhZF9maW5pc2goKS4KLSAgICBpZiAoIXByaXYtPnN0cmVhbSkKKyAgICBpZiAoIVdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RyZWFtKHJlc3BQcml2KSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKCFwcml2LT5ieXRlc1JlYWQpIHsKLSAgICAgICAgUmVzb3VyY2VSZXNwb25zZSBy
ZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIGV4dHJhY3RNSU1FVHlwZUZyb21N
ZWRpYVR5cGUocHJpdi0+Y29udGVudFR5cGUuZGF0YSgpKSwgcHJpdi0+c3RyZWFtTGVuZ3RoLCBl
bXB0eVN0cmluZygpKTsKLSAgICAgICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRy
YWN0Q2hhcnNldEZyb21NZWRpYVR5cGUocHJpdi0+Y29udGVudFR5cGUuZGF0YSgpKSk7Ci0gICAg
ICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKDIwMCk7Ci0gICAgICAgIHJlc3BvbnNlLnNl
dEhUVFBTdGF0dXNUZXh0KCJPSyJfcyk7CisgICAgICAgIENTdHJpbmcgY29udGVudFR5cGUgPSBX
ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKHJlc3BQcml2KTsKKyAgICAgICAg
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIGV4
dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUuZGF0YSgpKSwgV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2VHZXRTdHJlYW1MZW5ndGgocmVzcFByaXYpLCBlbXB0eVN0cmluZygpKTsK
KyAgICAgICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hhcnNldEZyb21N
ZWRpYVR5cGUoY29udGVudFR5cGUuZGF0YSgpKSk7CisgICAgICAgIENTdHJpbmcgc3RhdHVzTWVz
c2FnZSA9IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzTWVzc2FnZShyZXNwUHJpdik7
CisgICAgICAgIGlmIChzdGF0dXNNZXNzYWdlLmlzTnVsbCgpKQorICAgICAgICAgICAgd2Via2l0
X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cyhwcml2LT5yZXNwb25zZS5nZXQoKSwgMjAw
LCAiT0siKTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUoV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2VHZXRTdGF0dXNDb2RlKHJlc3BQcml2KSk7CisgICAgICAgIHJlc3BvbnNlLnNl
dEhUVFBTdGF0dXNUZXh0KHN0YXR1c01lc3NhZ2UuZGF0YSgpKTsKICAgICAgICAgaWYgKHJlc3Bv
bnNlLm1pbWVUeXBlKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmVzcG9uc2Uuc2V0TWltZVR5
cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKHJlc3BvbnNlLnVybCgpLnBhdGgo
KS50b1N0cmluZygpKSk7CiAgICAgICAgIHByaXYtPnRhc2stPmRpZFJlY2VpdmVSZXNwb25zZShy
ZXNwb25zZSk7CkBAIC0yMTMsMTMgKzIzNywzMSBAQCB2b2lkIHdlYmtpdF91cmlfc2NoZW1lX3Jl
cXVlc3RfZmluaXNoKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIEdJbnB1dFN0cgog
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoR19JU19JTlBVVF9TVFJFQU0oaW5wdXRTdHJlYW0pKTsKICAg
ICBnX3JldHVybl9pZl9mYWlsKHN0cmVhbUxlbmd0aCA9PSAtMSB8fCBzdHJlYW1MZW5ndGggPj0g
MCk7CiAKLSAgICByZXF1ZXN0LT5wcml2LT5zdHJlYW0gPSBpbnB1dFN0cmVhbTsKLSAgICAvLyBX
ZSB1c2UgLTEgaW4gdGhlIEFQSSBmb3IgY29uc2lzdGVuY3kgd2l0aCBzb3VwIHdoZW4gdGhlIGNv
bnRlbnQgbGVuZ3RoIGlzIG5vdCBrbm93biwgYnV0IDAgaW50ZXJuYWxseS4KLSAgICByZXF1ZXN0
LT5wcml2LT5zdHJlYW1MZW5ndGggPSBzdHJlYW1MZW5ndGggPT0gLTEgPyAwIDogc3RyZWFtTGVu
Z3RoOworICAgIEdSZWZQdHI8V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2U+IHJlc3BvbnNlID0gYWRv
cHRHUmVmKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyhpbnB1dFN0cmVhbSwgc3RyZWFt
TGVuZ3RoKSk7CisgICAgaWYgKGNvbnRlbnRUeXBlKQorICAgICAgICB3ZWJraXRfdXJpX3NjaGVt
ZV9yZXNwb25zZV9zZXRfY29udGVudF90eXBlKHJlc3BvbnNlLmdldCgpLCBjb250ZW50VHlwZSk7
IAorCisgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZShy
ZXF1ZXN0LCByZXNwb25zZS5nZXQoKSk7Cit9CisKKy8qKgorICogd2Via2l0X3VyaV9zY2hlbWVf
cmVxdWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZToKKyAqIEByZXF1ZXN0OiBhICNXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0CisgKiBAcmVzcG9uc2U6IGEgI1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlCisg
KgorICogRmluaXNoIGEgI1dlYktpdFVSSVNjaGVtZVJlcXVlc3QgYnkgcmV0dXJuaW5nIGEgI1dl
YktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKgorICogU2luY2U6IDIuMzYKKyAqLwordm9pZCB3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlKFdlYktpdFVSSVNjaGVt
ZVJlcXVlc3QqIHJlcXVlc3QsIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKiByZXNwb25zZSkKK3sK
KyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NIRU1FX1JFUVVFU1QocmVxdWVz
dCkpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0Uo
cmVzcG9uc2UpKTsKKwogICAgIHJlcXVlc3QtPnByaXYtPmNhbmNlbGxhYmxlID0gYWRvcHRHUmVm
KGdfY2FuY2VsbGFibGVfbmV3KCkpOwotICAgIHJlcXVlc3QtPnByaXYtPmJ5dGVzUmVhZCA9IDA7
Ci0gICAgcmVxdWVzdC0+cHJpdi0+Y29udGVudFR5cGUgPSBjb250ZW50VHlwZTsKLSAgICBnX2lu
cHV0X3N0cmVhbV9yZWFkX2FzeW5jKGlucHV0U3RyZWFtLCByZXF1ZXN0LT5wcml2LT5yZWFkQnVm
ZmVyLCBnUmVhZEJ1ZmZlclNpemUsIFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6QXN5bmNJT05ldHdv
cmssIHJlcXVlc3QtPnByaXYtPmNhbmNlbGxhYmxlLmdldCgpLAorICAgIHJlcXVlc3QtPnByaXYt
PnJlc3BvbnNlID0gcmVzcG9uc2U7CisKKyAgICBnX2lucHV0X3N0cmVhbV9yZWFkX2FzeW5jKFdl
YktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RyZWFtKHJlc3BvbnNlLT5wcml2KSwgcmVxdWVzdC0+
cHJpdi0+cmVhZEJ1ZmZlciwgZ1JlYWRCdWZmZXJTaXplLCBSdW5Mb29wU291cmNlUHJpb3JpdHk6
OkFzeW5jSU9OZXR3b3JrLCByZXF1ZXN0LT5wcml2LT5jYW5jZWxsYWJsZS5nZXQoKSwKICAgICAg
ICAgcmVpbnRlcnByZXRfY2FzdDxHQXN5bmNSZWFkeUNhbGxiYWNrPih3ZWJraXRVUklTY2hlbWVS
ZXF1ZXN0UmVhZENhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJlcXVlc3QpKTsKIH0KIApAQCAtMjM4
LDcgKzI4MCw3IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3Io
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAgICAgZ19yZXR1cm5faWZfZmFp
bChlcnJvcik7CiAKICAgICBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJl
cXVlc3QtPnByaXY7Ci0gICAgcHJpdi0+c3RyZWFtID0gbnVsbHB0cjsKKyAgICBwcml2LT5yZXNw
b25zZSA9IG51bGxwdHI7CiAgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKGdfcXVhcmtf
dG9fc3RyaW5nKGVycm9yLT5kb21haW4pLCB0b1dlYkNvcmVFcnJvcihlcnJvci0+Y29kZSksIHBy
aXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2Fn
ZSkpOwogICAgIHByaXYtPnRhc2stPmRpZENvbXBsZXRlKHJlc291cmNlRXJyb3IpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmgKaW5kZXggMDE4NDllMTU3Njk0MzUxOWQ4MTI5NDY5
OGQ3NWViMjZmMjI5OWQzYS4uNzA3NzkwMDE5MzQ5OTZlYTI5OGYyNjEzMDlmMzZhYmQ5YzU5YmNi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5oCkBAIC0yMCw2ICsyMCw3IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlcXVlc3QuaCIKKyNpbmNs
dWRlICJXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRX
ZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViVVJM
U2NoZW1lVGFzay5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjNjI2YjBl
ZDRlOTliNmVhM2E0N2Y4N2I0MDZjZDkwZWY5NjkwNWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5jcHAK
QEAgLTAsMCArMSwxNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgWml4aW5nIExpdQor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2
YXRlLmgiCisKKyNpbmNsdWRlICJBUElEYXRhLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5o
IgorI2luY2x1ZGUgIldlYlVSTFNjaGVtZVRhc2suaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBQ
YXJzZXJzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisjaW5jbHVk
ZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL1J1bkxvb3BTb3VyY2VQ
cmlvcml0eS5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL1dURkdUeXBlLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKKy8qKgorICogU0VDVElPTjogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UK
KyAqIEBTaG9ydF9kZXNjcmlwdGlvbjogUmVwcmVzZW50cyBhIFVSSSBzY2hlbWUgcmVzcG9uc2UK
KyAqIEBUaXRsZTogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAqCisgKiBJZiB5b3UgcmVnaXN0
ZXIgYSBwYXJ0aWN1bGFyIFVSSSBzY2hlbWUgaW4gYSAjV2ViS2l0V2ViQ29udGV4dCwKKyAqIHVz
aW5nIHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lKCksIHlvdSBoYXZlIHRv
IHByb3ZpZGUKKyAqIGEgI1dlYktpdFVSSVNjaGVtZVJlcXVlc3RDYWxsYmFjay4gQWZ0ZXIgdGhh
dCwgd2hlbiBhIFVSSSByZXNwb25zZQorICogaXMgbWFkZSB3aXRoIHRoYXQgcGFydGljdWxhciBz
Y2hlbWUsIHlvdXIgY2FsbGJhY2sgd2lsbCBiZQorICogY2FsbGVkLiBUaGVyZSB5b3Ugd2lsbCBi
ZSBhYmxlIHRvIHByb3ZpZGUgbW9yZSByZXNwb25zZSBwYXJhbWV0ZXJzCisgKiB3aGVuIHRoZSBt
ZXRob2RzIGFuZCBwcm9wZXJ0aWVzIG9mIGEgI1dlYktpdFVSSVNjaGVtZVJlcXVlc3QgaXMgbm90
CisgKiBlbm91Z2guCisgKiAKKyAqIFdoZW4geW91IGZpbmlzaGVkIHNldHRpbmcgdXAgeW91ciAj
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UsIGNhbGwKKyAqIHdlYmtpdF91cmlfcmVxdWVzdF9maW5p
c2hfd2l0aF9yZXNwb25zZSgpIHdpdGggaXQgdG8gcmV0dXJuIHRoZSByZXNwb25zZS4KKyAqCisg
Ki8KKworc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUgeworICAgIEdSZWZQ
dHI8R0lucHV0U3RyZWFtPiBzdHJlYW07CisgICAgdWludDY0X3Qgc3RyZWFtTGVuZ3RoOworCisg
ICAgaW50IHN0YXR1c0NvZGU7CisgICAgQ1N0cmluZyBzdGF0dXNNZXNzYWdlOworICAgIENTdHJp
bmcgY29udGVudFR5cGU7Cit9OworCitXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2UsIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlLCBHX1RZUEVfT0JKRUNUKQorCitz
dGF0aWMgdm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9jbGFzc19pbml0KFdlYktpdFVS
SVNjaGVtZVJlc3BvbnNlQ2xhc3MqKQoreworfQorCisvLyBQcml2YXRlIGdldHRlcnMKK2ludCBX
ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0YXR1c0NvZGUoY29uc3QgV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2VQcml2YXRlKiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gcmVzcG9uc2UtPnN0YXR1
c0NvZGU7Cit9CisKK0dJbnB1dFN0cmVhbSogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRTdHJl
YW0oY29uc3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlKiByZXNwb25zZSkKK3sKKyAg
ICByZXR1cm4gcmVzcG9uc2UtPnN0cmVhbS5nZXQoKTsKK30KKworQ1N0cmluZyBXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZUdldFN0YXR1c01lc3NhZ2UoY29uc3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2VQcml2YXRlKiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gcmVzcG9uc2UtPnN0YXR1c01lc3Nh
Z2U7Cit9CisKK0NTdHJpbmcgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRDb250ZW50VHlwZShj
b25zdCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUqIHJlc3BvbnNlKQoreworICAgIHJl
dHVybiByZXNwb25zZS0+Y29udGVudFR5cGU7Cit9CisKK3VpbnQ2NF90IFdlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlR2V0U3RyZWFtTGVuZ3RoKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJp
dmF0ZSogcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIHJlc3BvbnNlLT5zdHJlYW1MZW5ndGg7Cit9
CisKKy8qKgorICogd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1c19ib2R5Ogor
ICogQHJlc3BvbnNlOiBhICNXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICogQHN0cmVhbTogYSAj
R0lucHV0U3RyZWFtIHRvIHJlYWQgdGhlIGNvbnRlbnRzIG9mIHRoZSByZXF1ZXN0CisgKiBAc3Ry
ZWFtX2xlbmd0aDogdGhlIGxlbmd0aCBvZiB0aGUgc3RyZWFtIG9yIC0xIGlmIG5vdCBrbm93bgor
ICogQGNvbnRlbnRfdHlwZTogKGFsbG93LW5vbmUpOiB0aGUgY29udGVudCB0eXBlIG9mIHRoZSBz
dHJlYW0gb3IgJU5VTEwgaWYgbm90IGtub3duCisgKgorICogU2V0cyB0aGUgc3RhdHVzIG1lc3Nh
Z2UgZm9yIHRoZSBAcmVzcG9uc2UKKyAqCisgKiBTaW5jZTogMi4zNgorICovCitXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZSogd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfbmV3KEdJbnB1dFN0cmVh
bSogaW5wdXRTdHJlYW0sIGdpbnQ2NCBzdHJlYW1MZW5ndGgpCit7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoR19JU19JTlBVVF9TVFJFQU0oaW5wdXRTdHJlYW0pLCBudWxscHRyKTsKKyAgICBn
X3JldHVybl92YWxfaWZfZmFpbChzdHJlYW1MZW5ndGggPT0gLTEgfHwgc3RyZWFtTGVuZ3RoID49
IDAsIG51bGxwdHIpOworCisgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3BvbnNlID0g
V0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0UoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1VSSV9T
Q0hFTUVfUkVTUE9OU0UsIG51bGxwdHIpKTsKKyAgICByZXNwb25zZS0+cHJpdi0+c3RhdHVzQ29k
ZSA9IC0xOworICAgIHJlc3BvbnNlLT5wcml2LT5zdHJlYW0gPSBpbnB1dFN0cmVhbTsKKyAgICAv
LyBXZSB1c2UgLTEgaW4gdGhlIEFQSSBmb3IgY29uc2lzdGVuY3kgd2l0aCBzb3VwIHdoZW4gdGhl
IGNvbnRlbnQgbGVuZ3RoIGlzIG5vdCBrbm93biwgYnV0IDAgaW50ZXJuYWxseS4KKyAgICByZXNw
b25zZS0+cHJpdi0+c3RyZWFtTGVuZ3RoID0gc3RyZWFtTGVuZ3RoID09IC0xID8gMCA6IHN0cmVh
bUxlbmd0aDsKKyAgICByZXR1cm4gcmVzcG9uc2U7Cit9CisKKy8qKgorICogd2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZToKKyAqIEByZXNwb25zZTogYSAjV2ViS2l0
VVJJU2NoZW1lUmVzcG9uc2UKKyAqIEBjb250ZW50X3R5cGU6IChhbGxvdy1ub25lKTogdGhlIGNv
bnRlbnQgdHlwZSBvZiB0aGUgc3RyZWFtIG9yICVOVUxMIGlmIG5vdCBrbm93bgorICoKKyAqIFNl
dHMgdGhlIGNvbnRlbnQgdHlwZSBmb3IgdGhlIEByZXNwb25zZQorICoKKyAqIFNpbmNlOiAyLjM2
CisgKi8KK3ZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZShX
ZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UsIGNvbnN0IGdjaGFyKiBjb250ZW50VHlw
ZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNF
KHJlc3BvbnNlKSk7CisKKyAgICByZXNwb25zZS0+cHJpdi0+Y29udGVudFR5cGUgPSBjb250ZW50
VHlwZTsKK30KKworLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVz
OgorICogQHJlc3BvbnNlOiBhICNXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICogQHN0YXR1c19j
b2RlOiB0aGUgSFRUUCBzdGF0dXMgY29kZSB0byBiZSByZXR1cm5lZAorICogQHJlYXNvbl9waHJh
c2U6IChhbGxvdy1ub25lKTogYSByZWFzb24gcGhyYXNlCisgKgorICogU2V0cyB0aGUgc3RhdHVz
IGNvZGUgYW5kIHJlYXNvbiBwaHJhc2UgZm9yIHRoZSBAcmVzcG9uc2UuCisgKiBJZiBAc3RhdHVz
X2NvZGUgaXMgYSBrbm93biB2YWx1ZSBhbmQgQHJlYXNvbl9waHJhc2UgaXMgJU5VTEwsIHRoZSBA
cmVhc29uX3BocmFzZSB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5LgorICoKKyAqIFNpbmNlOiAy
LjM2CisgKi8KK3ZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cyhXZWJL
aXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UsIGd1aW50IHN0YXR1c0NvZGUsIGNvbnN0IGdj
aGFyKiBzdGF0dXNNZXNzYWdlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1VS
SV9TQ0hFTUVfUkVTUE9OU0UocmVzcG9uc2UpKTsKKworICAgIHJlc3BvbnNlLT5wcml2LT5zdGF0
dXNDb2RlID0gc3RhdGljX2Nhc3Q8Z2ludD4oc3RhdHVzQ29kZSk7CisgICAgaWYgKHN0YXR1c01l
c3NhZ2UpCisgICAgICAgIHJlc3BvbnNlLT5wcml2LT5zdGF0dXNNZXNzYWdlID0gc3RhdHVzTWVz
c2FnZTsKKyAgICBlbHNlCisgICAgICAgIHJlc3BvbnNlLT5wcml2LT5zdGF0dXNNZXNzYWdlID0g
c291cF9zdGF0dXNfZ2V0X3BocmFzZShzdGF0dXNDb2RlKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVz
cG9uc2VQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNhODA1ZjNlOWEzZTRmYWVmNzU3NGEwYTM5YjJh
NjJkNDZhNTgxYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgWml4aW5nIExpdQorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgiCisjaW5jbHVkZSAiV2ViS2l0V2ViQ29u
dGV4dC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlVSTFNjaGVt
ZVRhc2suaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorCitpbnQgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRTdGF0dXNDb2RlKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlUHJpdmF0ZSopOworR0lucHV0U3RyZWFtKiBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdl
dFN0cmVhbShjb25zdCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUqKTsKK0NTdHJpbmcg
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRTdGF0dXNNZXNzYWdlKGNvbnN0IFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlUHJpdmF0ZSopOworQ1N0cmluZyBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdl
dENvbnRlbnRUeXBlKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZSopOwordWlu
dDY0X3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRTdHJlYW1MZW5ndGgoY29uc3QgV2ViS2l0
VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaAppbmRleCBhNGFhZmQ3M2ZiMmFhN2Q4
M2I1YTNmMzY5YTAyZTYxZTg2MGRkMjRlLi4yNWRmN2QwNzg1Y2Y4ZjZkOTU4ZWVkODgwNmFkYzIz
NzBjMzM4M2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEF1dG9jbGVhbnVwcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0QXV0b2NsZWFudXBzLmgKQEAgLTYyLDYgKzYyLDcgQEAgR19ERUZJTkVfQVVUT1BUUl9D
TEVBTlVQX0ZVTkMgKFdlYktpdFNldHRpbmdzLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FV
VE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVUklSZXF1ZXN0LCBnX29iamVjdF91bnJlZikKIEdf
REVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVUklSZXNwb25zZSwgZ19vYmplY3Rf
dW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdCwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2UsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9D
TEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUsIGdfb2JqZWN0X3VucmVm
KQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJDb250ZW50TWFuYWdl
ciwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
aAppbmRleCBkMmIwNmExNGRjNWEyMDdlODc1NjRhMGViYzM1YmNjMTM5YjFlYzRlLi4yYjg4YWE2
YTg5Nzg0N2JhMTRmNmU4OTIyNDYzMDc2ODVmM2RlOTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaApAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0
Mi9XZWJLaXREZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGb3J3YXJkRGVjbGFy
YXRpb25zLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oPgog
CiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTcxLDEyICs3MiwxOSBAQCB3ZWJraXRfdXJpX3NjaGVtZV9y
ZXF1ZXN0X2dldF9wYXRoICAgICAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CiBX
RUJLSVRfQVBJIFdlYktpdFdlYlZpZXcgKgogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRf
d2ViX3ZpZXcgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOwogCitXRUJLSVRfQVBJ
IGNvbnN0IGdjaGFyICoKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9k
IChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKKwogV0VCS0lUX0FQSSB2b2lkCiB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaCAgICAgICAoV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdCAqcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
SW5wdXRTdHJlYW0gICAgICAgICAgICpzdHJlYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ2ludDY0ICAgICAgICAgICAgICAgICAgc3RyZWFtX2xlbmd0aCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAg
ICAgICpjb250ZW50X3R5cGUpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91cmlfc2NoZW1l
X3JlcXVlc3RfZmluaXNoX3dpdGhfcmVzcG9uc2UgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgICpy
ZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlKTsKKwogV0VCS0lUX0FQSSB2b2lkCiB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvciAoV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdCAqcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
RXJyb3IgICAgICAgICAgICAgICAgICplcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGM3MGNlNjczZWEyNDRkZTA3MDBmMGY2MDQxZWU2ZWFiNjBhNzdkZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVz
cG9uc2UuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIFppeGlu
ZyBMaXUKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
Ki8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJL
SVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJl
IGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlX2gKKyNkZWZpbmUgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VfaAorCisjaW5jbHVkZSA8
Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KKyNpbmNs
dWRlIDx3ZWJraXQyL1dlYktpdEZvcndhcmREZWNsYXJhdGlvbnMuaD4KKworR19CRUdJTl9ERUNM
UworCisjZGVmaW5lIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UgICAgICAgICAgICAo
d2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1VS
SV9TQ0hFTUVfUkVTUE9OU0Uob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0Vf
Q0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSwgV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2UpKQorI2RlZmluZSBXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRShvYmop
ICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9V
UklfU0NIRU1FX1JFU1BPTlNFKSkKKyNkZWZpbmUgV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0Vf
Q0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lU
X1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcykp
CisjZGVmaW5lIFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFX0NMQVNTKGtsYXNzKSAoR19U
WVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVT
UE9OU0UpKQorI2RlZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9HRVRfQ0xBU1Mob2Jq
KSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9VUklfU0NI
RU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzKSkKKwordHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlICAgICAgICBXZWJLaXRVUklTY2hlbWVSZXNw
b25zZTsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzICAgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVUklTY2hl
bWVSZXNwb25zZVByaXZhdGUgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlOworCitzdHJ1
Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlIHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAg
IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFz
czsKKworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpf
d2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikg
KHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworV0VC
S0lUX0FQSSBHVHlwZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUgICAgICAg
ICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqCit3ZWJr
aXRfdXJpX3NjaGVtZV9yZXNwb25zZV9uZXcgICAgICAgICAgICAgICAgKEdJbnB1dFN0cmVhbSAg
ICAgICAgICAgICppbnB1dF9zdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdpbnQ2NCAgICAgICAgICAgICAgICAgICBzdHJlYW1fbGVuZ3RoKTsK
KworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVz
ICAgICAgICAgKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAg
ICAgIHN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAqcmVhc29uX3BocmFzZSk7CisKK1dFQktJ
VF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZSAg
IChXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICpjb250
ZW50X3R5cGUpOworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2Vj
dGlvbnMudHh0CmluZGV4IDFiYWJiOTM5ZmNlYzE2Zjk0OTM0YWYzODhlNDE2ZTkwM2JlMWVlODcu
Ljc3YzQ1NGE1YTQyMTkzMTMwZmM5MjEyNzM0NjkwMWJiNmRmMzY4YzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9u
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJn
dGstNC4wLXNlY3Rpb25zLnR4dApAQCAtMTI3Nyw3ICsxMjc3LDkgQEAgd2Via2l0X3VyaV9zY2hl
bWVfcmVxdWVzdF9nZXRfc2NoZW1lCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkK
IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3BhdGgKIHdlYmtpdF91cmlfc2NoZW1lX3Jl
cXVlc3RfZ2V0X3dlYl92aWV3Cit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21l
dGhvZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2gKK3dlYmtpdF91cmlfc2NoZW1l
X3JlcXVlc3RfZmluaXNoX3dpdGhfcmVzcG9uc2UKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
ZmluaXNoX2Vycm9yCiAKIDxTVUJTRUNUSU9OIFN0YW5kYXJkPgpAQCAtMTI5NCw2ICsxMjk2LDI3
IEBAIFdlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X2dldF90eXBlCiA8L1NFQ1RJT04+CiAKKzxTRUNUSU9OPgorPEZJTEU+V2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2U8L0ZJTEU+CitXZWJLaXRVUklTY2hlbWVSZXNwb25zZQord2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2VfbmV3Cit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfY29udGVu
dF90eXBlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzCisKKzxTVUJTRUNU
SU9OIFN0YW5kYXJkPgorV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcworV0VCS0lUX1RZUEVf
VVJJX1NDSEVNRV9SRVNQT05TRQorV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0UKK1dFQktJVF9J
U19VUklfU0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9DTEFTUwor
V0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1MKK1dFQktJVF9VUklfU0NIRU1FX1JF
U1BPTlNFX0dFVF9DTEFTUworCis8U1VCU0VDVElPTiBQcml2YXRlPgorV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2VQcml2YXRlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZQorPC9T
RUNUSU9OPgorCiA8U0VDVElPTj4KIDxGSUxFPldlYktpdFZlcnNpb248L0ZJTEU+CiB3ZWJraXRf
Z2V0X21ham9yX3ZlcnNpb24KQEAgLTE5ODUsNCArMjAwOCwzIEBAIHdlYmtpdF9tZW1vcnlfcHJl
c3N1cmVfc2V0dGluZ3NfZ2V0X3R5cGUKIDxTVUJTRUNUSU9OIFN0YW5kYXJkPgogV0VCS0lUX1RZ
UEVfTUVNT1JZX1BSRVNTVVJFX1NFVFRJTkdTCiA8L1NFQ1RJT04+Ci0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC50eXBlcyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC50eXBl
cwppbmRleCA0OTM3YWJiNTY0ODczY2UwNmViNjQzMTU5MWRlMzFkY2IxZDBjNTUxLi5lZjZlOGFk
NjU5NTY1OWMwZDUwZjVjNjJkMzUwNWEyMTZiNzBhZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAudHlwZXMKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLnR5cGVzCkBA
IC0xOSw2ICsxOSw3IEBAIHdlYmtpdF9wbHVnaW5fZ2V0X3R5cGUKIHdlYmtpdF9taW1lX2luZm9f
Z2V0X3R5cGUKIHdlYmtpdF93ZWJfaW5zcGVjdG9yX2dldF90eXBlCiB3ZWJraXRfdXJpX3NjaGVt
ZV9yZXF1ZXN0X2dldF90eXBlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZQog
d2Via2l0X2NvbnRleHRfbWVudV9nZXRfdHlwZQogd2Via2l0X2NvbnRleHRfbWVudV9pdGVtX2dl
dF90eXBlCiB3ZWJraXRfd2ViX2V4dGVuc2lvbl9nZXRfdHlwZQpAQCAtNDIsNCArNDMsNCBAQCB3
ZWJraXRfb3B0aW9uX21lbnVfaXRlbV9nZXRfdHlwZQogd2Via2l0X2RldmljZV9pbmZvX3Blcm1p
c3Npb25fcmVxdWVzdF9nZXRfdHlwZQogd2Via2l0X2dlb2xvY2F0aW9uX21hbmFnZXJfZ2V0X3R5
cGUKIHdlYmtpdF9nZW9sb2NhdGlvbl9wb3NpdGlvbl9nZXRfdHlwZQotd2Via2l0X3BvaW50ZXJf
bG9ja19wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCit3ZWJraXRfcG9pbnRlcl9sb2NrX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGst
ZG9jcy5zZ21sIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJn
dGstZG9jcy5zZ21sCmluZGV4IDQxMWVlNjRkODMzMzNmMDUyMzA2YzViOTlkMDczYmI0Mjc5Nzhh
NjUuLmUxMmM3ZGI1Yzc5NmZjNThjYTg2MmQwNjJiYWM3MWM4MDhlYTYwYmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dt
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1k
b2NzLnNnbWwKQEAgLTQ1LDYgKzQ1LDcgQEAKICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2Vi
S2l0UGx1Z2luLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRXZWJJbnNw
ZWN0b3IueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFVSSVNjaGVtZVJl
cXVlc3QueG1sIi8+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRWZXJzaW9uLnht
bCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRDb250ZXh0TWVudS54bWwiLz4K
ICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0Q29udGV4dE1lbnVJdGVtLnhtbCIvPgpA
QCAtMTcwLDUgKzE3MSwxMCBAQAogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hcGktaW5kZXgt
Mi4zMC54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KICAgPC9pbmRleD4KIAorICA8
aW5kZXggaWQ9ImFwaS1pbmRleC0yLTM2IiByb2xlPSIyLjM2Ij4KKyAgICA8dGl0bGU+SW5kZXgg
b2YgbmV3IHN5bWJvbHMgaW4gMi4zNjwvdGl0bGU+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1s
L2FwaS1pbmRleC0yLjM2LnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRlPgorICA8L2lu
ZGV4PgorCiAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hbm5vdGF0aW9uLWdsb3NzYXJ5LnhtbCI+
PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRlPgogPC9ib29rPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAppbmRleCBiN2QyNzQxYzRiMmMxYWQ0ZTM0YTFmYWI0OGZl
YzYxYWYxYzYxMDJkLi41Y2Q5NTI0MjUyYTk3ZDRlYTY0ZGZlYjIyZTVhNDdiNTVmMzZjODg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaApAQCAtNzgsNiArNzgs
NyBAQAogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0VVJJUmVzcG9uc2UuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVNj
aGVtZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNl
Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklVdGlsaXRpZXMuaD4KICNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdFVzZXJDb250ZW50Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVc2Vy
Q29udGVudEZpbHRlclN0b3JlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1dlYktpdEF1dG9jbGVhbnVwcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRBdXRvY2xlYW51cHMuaAppbmRleCA3N2FiNzdiYzk4NGU3MGQzZmFjZTAw
MzNmMTI0MmQyNmM0MDJkMGI2Li41ZTIwZjQzNWUyMzFkZTRmOTVmMmU3YTFlNGY5OTg5ODdhNjhj
YWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEF1
dG9jbGVhbnVwcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
QXV0b2NsZWFudXBzLmgKQEAgLTU2LDYgKzU2LDcgQEAgR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQ
X0ZVTkMgKFdlYktpdFNldHRpbmdzLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJf
Q0xFQU5VUF9GVU5DIChXZWJLaXRVUklSZXF1ZXN0LCBnX29iamVjdF91bnJlZikKIEdfREVGSU5F
X0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVUklSZXNwb25zZSwgZ19vYmplY3RfdW5yZWYp
CiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCwg
Z19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2UsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQ
X0ZVTkMgKFdlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUsIGdfb2JqZWN0X3VucmVmKQogR19E
RUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJDb250ZW50TWFuYWdlciwgZ19v
YmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAppbmRl
eCA4ZWJlZGE0ZTc3ZjFiYmQxOGUxY2JkYWRjM2Y3ZjI0NmUwOTkxN2IxLi5lODhjYTc5ZTU3NWU0
OWJmNjc2MTcxYzNjOWRjNGM3NDNjZDViMDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaApAQCAtMjYsNiAr
MjYsNyBAQAogCiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0
RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oPgogCiBH
X0JFR0lOX0RFQ0xTCiAKQEAgLTcyLDEyICs3MywxOSBAQCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X2dldF9wYXRoICAgICAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CiBXRUJL
SVRfQVBJIFdlYktpdFdlYlZpZXcgKgogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2Vi
X3ZpZXcgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOwogCitXRUJLSVRfQVBJIGNv
bnN0IGdjaGFyICoKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kIChX
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKKwogV0VCS0lUX0FQSSB2b2lkCiB3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaCAgICAgICAoV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dCAqcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSW5w
dXRTdHJlYW0gICAgICAgICAgICpzdHJlYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2ludDY0ICAgICAgICAgICAgICAgICAgc3RyZWFtX2xlbmd0aCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAg
ICpjb250ZW50X3R5cGUpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91cmlfc2NoZW1lX3Jl
cXVlc3RfZmluaXNoX3dpdGhfcmVzcG9uc2UgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgICpyZXF1
ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlKTsKKwogV0VCS0lUX0FQSSB2b2lkCiB3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvciAoV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dCAqcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJy
b3IgICAgICAgICAgICAgICAgICplcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzIyMGIxZjQ2ODg2NzE2MzlmNzZhZjgxYzcyNzVmZmU3OTFjYzVmMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2UuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIFppeGluZyBM
aXUKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2lmICFkZWZpbmVkKF9fV0VCS0lUX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJf
Q09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQuaD4gY2FuIGJlIGluY2x1ZGVk
IGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlX2gK
KyNkZWZpbmUgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VfaAorCisjaW5jbHVkZSA8Z2xpYi1vYmpl
Y3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisK
KyNkZWZpbmUgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSAgICAgICAgICAgICh3ZWJr
aXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfVVJJX1ND
SEVNRV9SRVNQT05TRShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNU
KChvYmopLCBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVS
ZXNwb25zZSkpCisjZGVmaW5lIFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFKG9iaikgICAg
ICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1VSSV9T
Q0hFTUVfUkVTUE9OU0UpKQorI2RlZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9DTEFT
UyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQ
RV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzKSkKKyNk
ZWZpbmUgV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1Moa2xhc3MpIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05T
RSkpCisjZGVmaW5lIFdFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFX0dFVF9DTEFTUyhvYmopICAo
R19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVf
UkVTUE9OU0UsIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVj
dCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgICAgICAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MgICBXZWJLaXRV
UklTY2hlbWVSZXNwb25zZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlUHJpdmF0ZSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGU7CisKK3N0cnVjdCBf
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRV
UklTY2hlbWVSZXNwb25zZUNsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwor
CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9p
ZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRf
QVBJIEdUeXBlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZSAgICAgICAgICAg
KHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICoKK3dlYmtpdF91
cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyAgICAgICAgICAgICAgICAoR0lucHV0U3RyZWFtICAgICAg
ICAgICAgKmlucHV0X3N0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2ludDY0ICAgICAgICAgICAgICAgICAgIHN0cmVhbV9sZW5ndGgpOworCitX
RUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMgICAg
ICAgICAoV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAg
c3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICpyZWFzb25fcGhyYXNlKTsKKworV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfY29udGVudF90eXBlICAgKFdl
YktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgKmNvbnRlbnRf
dHlwZSk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CmluZGV4IGI4
YjA4ZDJmOTFmMjU2NGNlZjdkYTBiOGVjZWRjOGExMTJkNWJlOTAuLjBhOWNmMjRjNzM4ZDJjYzA1
NzVmMDBkNzNkZGNlN2MwYjQ2YmJkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKQEAgLTEyMTQsNyAr
MTIxNCw5IEBAIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3NjaGVtZQogd2Via2l0X3Vy
aV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9w
YXRoCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmlldword2Via2l0X3VyaV9z
Y2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
ZmluaXNoCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlCiB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcgogCiA8U1VCU0VDVElPTiBTdGFu
ZGFyZD4KQEAgLTEyMzEsNiArMTIzMywyNyBAQCBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0
ZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCis8U0VD
VElPTj4KKzxGSUxFPldlYktpdFVSSVNjaGVtZVJlc3BvbnNlPC9GSUxFPgorV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2UKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldword2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9u
c2Vfc2V0X3N0YXR1cworCis8U1VCU0VDVElPTiBTdGFuZGFyZD4KK1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlQ2xhc3MKK1dFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UKK1dFQktJVF9VUklf
U0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRQorV0VCS0lUX1VS
SV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1MKK1dFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFX0NM
QVNTCitXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9HRVRfQ0xBU1MKKworPFNVQlNFQ1RJT04g
UHJpdmF0ZT4KK1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZQord2Via2l0X3VyaV9zY2hl
bWVfcmVzcG9uc2VfZ2V0X3R5cGUKKzwvU0VDVElPTj4KKwogPFNFQ1RJT04+CiA8RklMRT5XZWJL
aXRWZXJzaW9uPC9GSUxFPgogd2Via2l0X2dldF9tYWpvcl92ZXJzaW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLWRvY3Muc2dtbCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCmluZGV4IDhlMjU3
ZjAyZjExZmViZWNkMmE1NjczYjhlODcwNmQ1ZWM2YzY4MzkuLjJiY2MwY2JkYTg4NWRmOWJmNzQ5
NTM0ZTNkZDFlZWI2OTliZDExZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCkBAIC00MSw2ICs0MSw3IEBACiAgICAgPHhpOmlu
Y2x1ZGUgaHJlZj0ieG1sL1dlYktpdENvb2tpZU1hbmFnZXIueG1sIi8+CiAgICAgPHhpOmluY2x1
ZGUgaHJlZj0ieG1sL1dlYktpdFBsdWdpbi54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4
bWwvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC54bWwiLz4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4
bWwvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0i
eG1sL1dlYktpdENvbnRleHRNZW51LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9X
ZWJLaXRDb250ZXh0TWVudUl0ZW0ueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dl
YktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC54bWwiLz4KQEAgLTEwOCw1ICsxMDksMTAgQEAKICAg
ICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LTIuMzAueG1sIj48eGk6ZmFsbGJhY2sg
Lz48L3hpOmluY2x1ZGU+CiAgIDwvaW5kZXg+CiAKKyAgPGluZGV4IGlkPSJhcGktaW5kZXgtMi0z
NiIgcm9sZT0iMi4zNiI+CisgICAgPHRpdGxlPkluZGV4IG9mIG5ldyBzeW1ib2xzIGluIDIuMzY8
L3RpdGxlPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hcGktaW5kZXgtMi4zNi54bWwiPjx4
aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KKyAgPC9pbmRleD4KKwogICA8eGk6aW5jbHVkZSBo
cmVmPSJ4bWwvYW5ub3RhdGlvbi1nbG9zc2FyeS54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6aW5j
bHVkZT4KIDwvYm9vaz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvd2Via2l0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL3dlYmtpdC5oCmlu
ZGV4IDVjOTNkNzYwZjczNGExMmY2MTQ4OTk1NDUxMzVmZGY3NzAxNjQ1NzUuLmMyMjIxZWZjMDA2
MThjMmVjNGQyMGE4OGM1OTg0MDc2N2JkNTJmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvd2Via2l0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS93ZWJraXQuaApAQCAtNzMsNiArNzMsNyBAQAogI2luY2x1ZGUgPHdwZS9XZWJLaXRV
UklSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVJlc3BvbnNlLmg+CiAjaW5jbHVk
ZSA8d3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2UuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJVXRpbGl0aWVzLmg+CiAj
aW5jbHVkZSA8d3BlL1dlYktpdFVzZXJDb250ZW50Lmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVz
ZXJDb250ZW50RmlsdGVyU3RvcmUuaD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBlMDAyM2EyNDg1MDg5ZGNhMzc5MTY3ODFjODYxMjZiOTcyMjQ2
YTVlLi45YWI4ZDRhNTUwYjFlMjZkZThmM2RlNjc2NmI0ZWZmOWE2OWQ3ODUyIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMjEtMTAtMjAgIFppeGluZyBMaXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAg
ICAgW0dUS11bV1BFXSBTdXBwb3J0IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRU
UCBtZXRob2QgaW4gY3VzdG9tIFVSSSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKHRlc3RXZWJDb250ZXh0
VVJJU2NoZW1lKTogQWRkZWQgdGVzdHMgdG8gdGVzdCBuZXcgcHVibGljIEFQSXMgZm9yIFdlYktp
dEd0aworCiAyMDIxLTEwLTE4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4NDM5OS4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNv
bnRleHQuY3BwCmluZGV4IGI5MzZjOGUwNzc1YTE3YWNhYmUyMTI4YWE3MTkzMmU1ZjRkOTBmNDMu
LmU3ZjEwODQ1MmVlMjNjY2Q2NDMyYzA5ZThhMTc5MzE1YWJiYmZlZjEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRX
ZWJDb250ZXh0LmNwcApAQCAtOTUsMTYgKzk1LDE4IEBAIHB1YmxpYzoKICAgICAgICAgewogICAg
ICAgICB9CiAKLSAgICAgICAgVVJJU2NoZW1lSGFuZGxlcihjb25zdCBjaGFyKiByZXBseSwgaW50
IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1lVHlwZSkKKyAgICAgICAgVVJJU2NoZW1lSGFu
ZGxlcihjb25zdCBjaGFyKiByZXBseSwgaW50IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1l
VHlwZSwgaW50IHN0YXR1c0NvZGUgPSAyMDApCiAgICAgICAgICAgICA6IHJlcGx5KHJlcGx5KQog
ICAgICAgICAgICAgLCByZXBseUxlbmd0aChyZXBseUxlbmd0aCkKICAgICAgICAgICAgICwgbWlt
ZVR5cGUobWltZVR5cGUpCisgICAgICAgICAgICAsIHN0YXR1c0NvZGUoc3RhdHVzQ29kZSkKICAg
ICAgICAgewogICAgICAgICB9CiAKICAgICAgICAgQ1N0cmluZyByZXBseTsKICAgICAgICAgaW50
IHJlcGx5TGVuZ3RoOwogICAgICAgICBDU3RyaW5nIG1pbWVUeXBlOworICAgICAgICBpbnQgc3Rh
dHVzQ29kZTsKICAgICB9OwogCiAgICAgc3RhdGljIHZvaWQgdXJpU2NoZW1lUmVxdWVzdENhbGxi
YWNrKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIGdwb2ludGVyIHVzZXJEYXRhKQpA
QCAtMTIwLDYgKzEyMiwxMyBAQCBwdWJsaWM6CiAgICAgICAgIGdfYXNzZXJ0X25vbm51bGwoc2No
ZW1lKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2hhbmRsZXJzTWFwLmNvbnRhaW5z
KFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKSkpOwogCisgICAgICAgIGNvbnN0IGNoYXIqIG1ldGhv
ZCA9IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kKHJlcXVlc3QpOwor
ICAgICAgICBnX2Fzc2VydF9ub25udWxsKG1ldGhvZCk7CisgICAgICAgIGlmICghZ19zdHJjbXAw
KHNjaGVtZSwgInBvc3QiKSkKKyAgICAgICAgICAgIGdfYXNzZXJ0X2NtcHN0cihtZXRob2QsID09
LCAiUE9TVCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBnX2Fzc2VydF9jbXBzdHIobWV0
aG9kLCA9PSwgIkdFVCIpOworCiAgICAgICAgIGNvbnN0IFVSSVNjaGVtZUhhbmRsZXImIGhhbmRs
ZXIgPSB0ZXN0LT5tX2hhbmRsZXJzTWFwLmdldChTdHJpbmc6OmZyb21VVEY4KHNjaGVtZSkpOwog
CiAgICAgICAgIEdSZWZQdHI8R0lucHV0U3RyZWFtPiBpbnB1dFN0cmVhbSA9IGFkb3B0R1JlZihn
X21lbW9yeV9pbnB1dF9zdHJlYW1fbmV3KCkpOwpAQCAtMTU0LDEyICsxNjMsMTUgQEAgcHVibGlj
OgogICAgICAgICBlbHNlIGlmICghaGFuZGxlci5yZXBseS5pc051bGwoKSkKICAgICAgICAgICAg
IGdfbWVtb3J5X2lucHV0X3N0cmVhbV9hZGRfZGF0YShHX01FTU9SWV9JTlBVVF9TVFJFQU0oaW5w
dXRTdHJlYW0uZ2V0KCkpLCBoYW5kbGVyLnJlcGx5LmRhdGEoKSwgaGFuZGxlci5yZXBseS5sZW5n
dGgoKSwgMCk7CiAKLSAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2gocmVx
dWVzdCwgaW5wdXRTdHJlYW0uZ2V0KCksIGhhbmRsZXIucmVwbHlMZW5ndGgsIGhhbmRsZXIubWlt
ZVR5cGUuZGF0YSgpKTsKKyAgICAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3BvbnNl
ID0gd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfbmV3KGlucHV0U3RyZWFtLmdldCgpLCBoYW5k
bGVyLnJlcGx5TGVuZ3RoKTsKKyAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0
X3N0YXR1cyhyZXNwb25zZSwgaGFuZGxlci5zdGF0dXNDb2RlLCBudWxscHRyKTsKKyAgICAgICAg
d2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZShyZXNwb25zZSwgaGFu
ZGxlci5taW1lVHlwZS5kYXRhKCkpOworICAgICAgICB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2ZpbmlzaF93aXRoX3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlKTsKICAgICB9CiAKLSAgICB2
b2lkIHJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcihjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNo
YXIqIHJlcGx5LCBpbnQgcmVwbHlMZW5ndGgsIGNvbnN0IGNoYXIqIG1pbWVUeXBlKQorICAgIHZv
aWQgcmVnaXN0ZXJVUklTY2hlbWVIYW5kbGVyKGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hh
ciogcmVwbHksIGludCByZXBseUxlbmd0aCwgY29uc3QgY2hhciogbWltZVR5cGUsIGludCBzdGF0
dXNDb2RlID0gMjAwKQogICAgIHsKLSAgICAgICAgbV9oYW5kbGVyc01hcC5zZXQoU3RyaW5nOjpm
cm9tVVRGOChzY2hlbWUpLCBVUklTY2hlbWVIYW5kbGVyKHJlcGx5LCByZXBseUxlbmd0aCwgbWlt
ZVR5cGUpKTsKKyAgICAgICAgbV9oYW5kbGVyc01hcC5zZXQoU3RyaW5nOjpmcm9tVVRGOChzY2hl
bWUpLCBVUklTY2hlbWVIYW5kbGVyKHJlcGx5LCByZXBseUxlbmd0aCwgbWltZVR5cGUsIHN0YXR1
c0NvZGUpKTsKICAgICAgICAgd2Via2l0X3dlYl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUo
bV93ZWJDb250ZXh0LmdldCgpLCBzY2hlbWUsIHVyaVNjaGVtZVJlcXVlc3RDYWxsYmFjaywgdGhp
cywgMCk7CiAgICAgfQogCkBAIC0yOTcsNiArMzA5LDMyIEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJD
b250ZXh0VVJJU2NoZW1lKFVSSVNjaGVtZVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAg
Z19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2xvYWRGYWlsZWQpOwogICAgIGdfYXNzZXJ0X2Vycm9yKHRl
c3QtPm1fZXJyb3IuZ2V0KCksIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0xPU0VEKTsKIAorICAg
IHRlc3QtPnJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcigibm90Zm91bmQiLCBrQmFySFRNTCwgc3Ry
bGVuKGtCYXJIVE1MKSwgInRleHQvaHRtbCIsIDQwNCk7CisgICAgdGVzdC0+bV9sb2FkRXZlbnRz
LmNsZWFyKCk7CisgICAgdGVzdC0+bG9hZFVSSSgibm90Zm91bmQ6YmxhbmsiKTsKKyAgICB0ZXN0
LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBnX2Fzc2VydF9mYWxzZSh0ZXN0LT5tX2xv
YWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVzdDo6UHJvdmlzaW9uYWxMb2FkRmFpbGVk
KSk7CisgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRy
YWNraW5nVGVzdDo6TG9hZEZhaWxlZCkpOworCisgICAgdGVzdC0+cmVnaXN0ZXJVUklTY2hlbWVI
YW5kbGVyKCJub2NvbnRlbnQiLCBudWxscHRyLCAwLCAiYXBwbGljYXRpb24vanNvbiIsIDIwNCk7
CisgICAgdGVzdC0+bV9sb2FkRXZlbnRzLmNsZWFyKCk7CisgICAgdGVzdC0+bG9hZFVSSSgibm9j
b250ZW50OmJsYW5rIik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAg
Z19hc3NlcnRfZmFsc2UodGVzdC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rl
c3Q6OlByb3Zpc2lvbmFsTG9hZEZhaWxlZCkpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHRlc3QtPm1f
bG9hZEV2ZW50cy5jb250YWlucyhMb2FkVHJhY2tpbmdUZXN0OjpMb2FkRmFpbGVkKSk7CisKKyAg
ICBzdGF0aWMgY29uc3QgY2hhciogZm9ybUhUTUwgPSAiPGh0bWw+PGJvZHk+PGZvcm0gbWV0aG9k
PVwiUE9TVFwiIGFjdGlvbj1cInBvc3Q6ZGF0YVwiPC9ib2R5PjwvaHRtbD4iOworICAgIHRlc3Qt
PnJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcigicG9zdCIsIG51bGxwdHIsIDAsICJhcHBsaWNhdGlv
bi9qc29uIiwgMjA0KTsKKyAgICB0ZXN0LT5tX2xvYWRFdmVudHMuY2xlYXIoKTsKKyAgICB0ZXN0
LT5sb2FkSHRtbChmb3JtSFRNTCwgInBvc3Q6Zm9ybSIpOworICAgIHRlc3QtPndhaXRVbnRpbExv
YWRGaW5pc2hlZCgpOworICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBwb3N0RXJyb3I7CisgICAg
dGVzdC0+cnVuSmF2YVNjcmlwdEFuZFdhaXRVbnRpbEZpbmlzaGVkKCJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdC1mb3JtJykuc3VibWl0KCkiLCAmcG9zdEVycm9yLm91dFB0cigpKTsKKyAg
ICBnX2Fzc2VydF9ub19lcnJvcihwb3N0RXJyb3IuZ2V0KCkpOworICAgIHRlc3QtPndhaXRVbnRp
bExvYWRGaW5pc2hlZCgpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHRlc3QtPm1fbG9hZEV2ZW50cy5j
b250YWlucyhMb2FkVHJhY2tpbmdUZXN0OjpQcm92aXNpb25hbExvYWRGYWlsZWQpKTsKKyAgICBn
X2Fzc2VydF9mYWxzZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVz
dDo6TG9hZEZhaWxlZCkpOworCiAgICAgLy8gVG9ydHVyZSB0ZXN0IHRpbWU6IG1ha2Ugc3VyZSBp
dCBzdGlsbCB3b3JrcyBpZiB3ZSBpc3N1ZSBhIGJ1bmNoIG9mIGRpZmZlcmVudCByZXF1ZXN0cyBh
bGwgYXQKICAgICAvLyBvbmNlLiBFYWNoIHJlcXVlc3Qgc2hvdWxkIGZpbmlzaCBhbmQgcmV0dXJu
IGV4YWN0bHkgdGhlIHNhbWUgZGF0YS4KICAgICBpbnQgbnVtSXRlcmF0aW9ucyA9IDI1Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442335</attachid>
            <date>2021-10-24 20:11:10 -0700</date>
            <delta_ts>2021-10-27 16:27:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231880-20211024211109.patch</filename>
            <type>text/plain</type>
            <size>44647</size>
            <attacher>liushuyu011</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQzMjkzMmY3ZDIxMWRkMzA5
M2QwYzQ4ZjBkZTg1MjIwYmVmYWMyN2QuLjAxZGY5YTA4MjQ3OWNkMDUxZDFmNWVjNDgyMmUzMTk5
YTIyZTUxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMTAtMjAgIFppeGluZyBM
aXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdXBwb3J0
IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4gY3VzdG9tIFVS
SSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlc0dUSy50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
Y3BwCisgICAgICAgICogU291cmNlc1dQRS50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwOgorICAgICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRo
b2QpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3Rf
ZmluaXNoX3dpdGhfcmVzcG9uc2UpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmg6ICBBZGRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2Uu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2NsYXNzX2lu
aXQpOiBBZGRlZCBpbml0IGZ1bmN0aW9uIGZvciB0aGUgbmV3IHR5cGUKKyAgICAgICAgKHdlYmtp
dF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rpb24KKyAgICAg
ICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMpOiBBZGRlZCBuZXcgQVBJ
IGZ1bmN0aW9uCisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfY29udGVu
dF90eXBlKTogQWRkZWQgbmV3IEFQSSBmdW5jdGlvbgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUu
aC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaDogUmVn
aXN0ZXIgY2xlYW4tdXAgZnVuY3Rpb24gZm9yIFdlYmtpdFVSSVNjaGVtZVJlc3BvbnNlCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oOiBBZGRlZCBm
dW5jdGlvbiBwcm90b3R5cGUgZm9yIAorICAgICAgICB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2dldF9odHRwX21ldGhvZAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNj
aGVtZVJlc3BvbnNlLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mv
d2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0OiBBZGRlZCBuZXcgc3ltYm9scyBhbmQgbmV3IHR5
cGVzCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oOiBJbmNsdWRlIGEgbmV3
IGhlYWRlcjogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaAorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaDogQWRkZWQgZnVuY3Rpb24gcHJvdG90eXBl
IGZvciAKKyAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS93ZWJraXQuaDogSW5jbHVkZSBhIG5l
dyBoZWFkZXI6IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0OiBBZGRlZCBuZXcgc3ltYm9scyBhbmQg
bmV3IHR5cGVzCisKIDIwMjEtMTAtMTggIEpvaG4gUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29t
PgogCiAgICAgICAgIFtXZWJBdXRobl0gT2J0YWluIGNvbnNlbnQgdG8gY3JlYXRlIG5ldyBjcmVk
ZW50aWFsIHdoZW4gcGxhdGZvcm0gYXV0aGVudGljYXRvciBpbiBleGNsdWRlZENyZWRlbnRpYWxz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA4OGM1NjBjYzlmNjJjZTVjNWU5Y2RlZjlkNDcw
ZGU0N2ZhZDQ1YWU0Li4xNDE3MDVhMjA0ZTAyOGMxOGM0NDJhMGQ5NDI5NDMxYWU4ODgxZmFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTE0Niw2ICsxNDYsNyBAQCBzZXQoV2ViS2l0MkdU
S19JTlNUQUxMRURfSEVBREVSUwogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VVJJUmVxdWVzdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRVUklSZXNwb25zZS5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVSSVV0aWxpdGllcy5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BF
LmNtYWtlCmluZGV4IGY0Y2Q1YmVmNDAyYjBjNjNlMWZiYjdhMDcxMzI5MDBjZTZmNzM4YmIuLjBm
YjNlM2U3ODA2Yzk4YjE4ZWIzNDRhMDM1YTM4YzU5MGU1ODcxMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQ
RS5jbWFrZQpAQCAtMTc2LDYgKzE3Niw3IEBAIHNldChXUEVfQVBJX0lOU1RBTExFRF9IRUFERVJT
CiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklSZXF1ZXN0LmgK
ICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVJlc3BvbnNlLmgK
ICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2UuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJ
VXRpbGl0aWVzLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVz
ZXJDb250ZW50LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVz
ZXJDb250ZW50RmlsdGVyU3RvcmUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
R1RLLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKaW5kZXggNWM5NTRlZWY5YWUx
YjJmOTRlZjAwOGIyYTM4YWY4ODk0YjBjOWFjNS4uZjIxMjQ2ZjAwYzE4ZjIzODFmY2VlNzMxN2Y5
NjQ5ZjFiNjYxZTM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CkBAIC0xNzMsNiArMTczLDcgQEAgVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFNlY3VyaXR5T3JpZ2luLmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwIEBuby11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFVSSVNjaGVtZVJlc3BvbnNlLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRVUklVdGlsaXRpZXMuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVzZXJDb250ZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVc2Vy
Q29udGVudEZpbHRlclN0b3JlLmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc1dQRS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4IDhh
MWMzMGYzMmYzYjkzNTBhMzA2YmVmNTMwZWNiMzM0MGMxZjI5YzcuLjk0NDE5ZGQ4NmYwNzljNWM1
M2U2OGNlOGU3OWI5MTU1MDVhODdhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c1dQRS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dApAQCAtMTY0LDYgKzE2
NCw3IEBAIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZWN1cml0eU9yaWdpbi5jcHAgQG5vLXVu
aWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwIEBuby11bmlmeQogVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBAbm8tdW5pZnkKK1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0VVJJVXRpbGl0aWVzLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVc2VyQ29udGVudC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwCmluZGV4IDZhMGQ1OWMxMDI4OWUxYjgwY2EyYTE1NWU0NmU3ZGQ5ODlmNWU5ZjEuLjVm
MDAzMDE3ODUyYTg3MDQ3NDlhZDZjMDEyODU4NGU1NGU0ODI0YjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVl
c3QuY3BwCkBAIC02NCwxMiArNjQsMTEgQEAgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0
UHJpdmF0ZSB7CiAgICAgQ1N0cmluZyB1cmlTY2hlbWU7CiAgICAgQ1N0cmluZyB1cmlQYXRoOwog
Ci0gICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IHN0cmVhbTsKLSAgICB1aW50NjRfdCBzdHJlYW1M
ZW5ndGg7CisgICAgR1JlZlB0cjxXZWJLaXRVUklTY2hlbWVSZXNwb25zZT4gcmVzcG9uc2U7CiAg
ICAgR1JlZlB0cjxHQ2FuY2VsbGFibGU+IGNhbmNlbGxhYmxlOwogICAgIGNoYXIgcmVhZEJ1ZmZl
cltnUmVhZEJ1ZmZlclNpemVdOwogICAgIHVpbnQ2NF90IGJ5dGVzUmVhZDsKLSAgICBDU3RyaW5n
IGNvbnRlbnRUeXBlOworICAgIGNvbnN0IGNoYXIqIGh0dHBNZXRob2Q7CiB9OwogCiBXRUJLSVRf
REVGSU5FX1RZUEUoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCwgd2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdCwgR19UWVBFX09CSkVDVCkKQEAgLTE2MSw2ICsxNjAsMjYgQEAgV2ViS2l0V2ViVmlldyog
d2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcoV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdCogcmUKICAgICByZXR1cm4gd2Via2l0V2ViQ29udGV4dEdldFdlYlZpZXdGb3JQYWdlKHJl
cXVlc3QtPnByaXYtPndlYkNvbnRleHQsIHJlcXVlc3QtPnByaXYtPmluaXRpYXRpbmdQYWdlLmdl
dCgpKTsKIH0KIAorLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21l
dGhvZDoKKyAqIEByZXF1ZXN0OiBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0CisgKgorICogR2V0
IHRoZSBIVFRQIG1ldGhvZCBvZiB0aGUgQHJlcXVlc3QKKyAqCisgKiBSZXR1cm5zOiB0aGUgSFRU
UCBtZXRob2Qgb2YgdGhlIEByZXF1ZXN0CisgKiAKKyAqIFNpbmNlOiAyLjM2CisgKi8KK2NvbnN0
IGdjaGFyKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZChXZWJLaXRV
UklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9JU19VUklfU0NIRU1FX1JFUVVFU1QocmVxdWVzdCksIG51bGxwdHIpOworCisgICAgaWYg
KCFyZXF1ZXN0LT5wcml2LT5odHRwTWV0aG9kKQorICAgICAgICByZXF1ZXN0LT5wcml2LT5odHRw
TWV0aG9kID0gZ19pbnRlcm5fc3RyaW5nKHJlcXVlc3QtPnByaXYtPnRhc2stPnJlcXVlc3QoKS5o
dHRwTWV0aG9kKCkudXRmOCgpLmRhdGEoKSk7CisKKyAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+
aHR0cE1ldGhvZDsKK30KKwogc3RhdGljIHZvaWQgd2Via2l0VVJJU2NoZW1lUmVxdWVzdFJlYWRD
YWxsYmFjayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwg
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogc2NoZW1lUmVxdWVzdCkKIHsKICAgICBHUmVmUHRyPFdl
YktpdFVSSVNjaGVtZVJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdEdSZWYoc2NoZW1lUmVxdWVzdCk7
CkBAIC0xNzQsMjAgKzE5MywyNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0
UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luYwogICAgIFdlYktp
dFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKICAgICAvLyBO
ZWVkIHRvIGNoZWNrIHRoZSBzdHJlYW0gYmVmb3JlIHByb2NlZWRpbmcgYXMgaXQgY2FuIGJlIGNh
bmNlbGxlZCBpZiBmaW5pc2hfZXJyb3IKICAgICAvLyB3YXMgcHJldmlvdXNseSBjYWxsLCB3aGlj
aCB3b24ndCBiZSBkZXRlY3RlZCBieSBnX2lucHV0X3N0cmVhbV9yZWFkX2ZpbmlzaCgpLgotICAg
IGlmICghcHJpdi0+c3RyZWFtKQorICAgIGlmICghcHJpdi0+cmVzcG9uc2UpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZSogcmVzcFByaXYgPSBw
cml2LT5yZXNwb25zZS0+cHJpdjsKICAgICBpZiAoIXByaXYtPmJ5dGVzUmVhZCkgewotICAgICAg
ICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwg
ZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShwcml2LT5jb250ZW50VHlwZS5kYXRhKCkpLCBw
cml2LT5zdHJlYW1MZW5ndGgsIGVtcHR5U3RyaW5nKCkpOwotICAgICAgICByZXNwb25zZS5zZXRU
ZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShwcml2LT5jb250ZW50
VHlwZS5kYXRhKCkpKTsKLSAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUoMjAwKTsK
LSAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKKyAgICAgICAgQ1N0
cmluZyBjb250ZW50VHlwZSA9IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0Q29udGVudFR5cGUo
cmVzcFByaXYpOworICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKHByaXYtPnRhc2st
PnJlcXVlc3QoKS51cmwoKSwgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlw
ZS5kYXRhKCkpLCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0cmVhbUxlbmd0aChyZXNwUHJp
diksIGVtcHR5U3RyaW5nKCkpOworICAgICAgICByZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1l
KGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZS5kYXRhKCkpKTsKKyAgICAg
ICAgQ1N0cmluZyBzdGF0dXNNZXNzYWdlID0gV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRTdGF0
dXNNZXNzYWdlKHJlc3BQcml2KTsKKyAgICAgICAgaWYgKHN0YXR1c01lc3NhZ2UuaXNOdWxsKCkp
CisgICAgICAgICAgICB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzKHByaXYt
PnJlc3BvbnNlLmdldCgpLCAyMDAsICJPSyIpOworICAgICAgICByZXNwb25zZS5zZXRIVFRQU3Rh
dHVzQ29kZShXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0YXR1c0NvZGUocmVzcFByaXYpKTsK
KyAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoc3RhdHVzTWVzc2FnZS5kYXRhKCkp
OwogICAgICAgICBpZiAocmVzcG9uc2UubWltZVR5cGUoKS5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXNwb25zZS5zZXRNaW1lVHlwZShNSU1FVHlwZVJlZ2lzdHJ5OjptaW1lVHlwZUZvclBhdGgo
cmVzcG9uc2UudXJsKCkucGF0aCgpLnRvU3RyaW5nKCkpKTsKICAgICAgICAgcHJpdi0+dGFzay0+
ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKICAgICB9CiAKICAgICBpZiAoIWJ5dGVzUmVh
ZCkgeworICAgICAgICBwcml2LT5yZXNwb25zZSA9IG51bGxwdHI7CiAgICAgICAgIHByaXYtPnRh
c2stPmRpZENvbXBsZXRlKHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMTMsMTMg
KzIzOCwzMSBAQCB2b2lkIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoKFdlYktpdFVS
SVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIEdJbnB1dFN0cgogICAgIGdfcmV0dXJuX2lmX2ZhaWwo
R19JU19JTlBVVF9TVFJFQU0oaW5wdXRTdHJlYW0pKTsKICAgICBnX3JldHVybl9pZl9mYWlsKHN0
cmVhbUxlbmd0aCA9PSAtMSB8fCBzdHJlYW1MZW5ndGggPj0gMCk7CiAKLSAgICByZXF1ZXN0LT5w
cml2LT5zdHJlYW0gPSBpbnB1dFN0cmVhbTsKLSAgICAvLyBXZSB1c2UgLTEgaW4gdGhlIEFQSSBm
b3IgY29uc2lzdGVuY3kgd2l0aCBzb3VwIHdoZW4gdGhlIGNvbnRlbnQgbGVuZ3RoIGlzIG5vdCBr
bm93biwgYnV0IDAgaW50ZXJuYWxseS4KLSAgICByZXF1ZXN0LT5wcml2LT5zdHJlYW1MZW5ndGgg
PSBzdHJlYW1MZW5ndGggPT0gLTEgPyAwIDogc3RyZWFtTGVuZ3RoOworICAgIEdSZWZQdHI8V2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2U+IHJlc3BvbnNlID0gYWRvcHRHUmVmKHdlYmtpdF91cmlfc2No
ZW1lX3Jlc3BvbnNlX25ldyhpbnB1dFN0cmVhbSwgc3RyZWFtTGVuZ3RoKSk7CisgICAgaWYgKGNv
bnRlbnRUeXBlKQorICAgICAgICB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfY29udGVu
dF90eXBlKHJlc3BvbnNlLmdldCgpLCBjb250ZW50VHlwZSk7CisKKyAgICB3ZWJraXRfdXJpX3Nj
aGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlLmdldCgp
KTsKK30KKworLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jl
c3BvbnNlOgorICogQHJlcXVlc3Q6IGEgI1dlYktpdFVSSVNjaGVtZVJlcXVlc3QKKyAqIEByZXNw
b25zZTogYSAjV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAqCisgKiBGaW5pc2ggYSAjV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdCBieSByZXR1cm5pbmcgYSAjV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UK
KyAqCisgKiBTaW5jZTogMi4zNgorICovCit2b2lkIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
ZmluaXNoX3dpdGhfcmVzcG9uc2UoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3BvbnNlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwo
V0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVRVUVTVChyZXF1ZXN0KSk7CisgICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRShyZXNwb25zZSkpOworCiAgICAgcmVx
dWVzdC0+cHJpdi0+Y2FuY2VsbGFibGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSk7
Ci0gICAgcmVxdWVzdC0+cHJpdi0+Ynl0ZXNSZWFkID0gMDsKLSAgICByZXF1ZXN0LT5wcml2LT5j
b250ZW50VHlwZSA9IGNvbnRlbnRUeXBlOwotICAgIGdfaW5wdXRfc3RyZWFtX3JlYWRfYXN5bmMo
aW5wdXRTdHJlYW0sIHJlcXVlc3QtPnByaXYtPnJlYWRCdWZmZXIsIGdSZWFkQnVmZmVyU2l6ZSwg
UnVuTG9vcFNvdXJjZVByaW9yaXR5OjpBc3luY0lPTmV0d29yaywgcmVxdWVzdC0+cHJpdi0+Y2Fu
Y2VsbGFibGUuZ2V0KCksCisgICAgcmVxdWVzdC0+cHJpdi0+cmVzcG9uc2UgPSByZXNwb25zZTsK
KworICAgIGdfaW5wdXRfc3RyZWFtX3JlYWRfYXN5bmMoV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VH
ZXRTdHJlYW0ocmVzcG9uc2UtPnByaXYpLCByZXF1ZXN0LT5wcml2LT5yZWFkQnVmZmVyLCBnUmVh
ZEJ1ZmZlclNpemUsIFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6QXN5bmNJT05ldHdvcmssIHJlcXVl
c3QtPnByaXYtPmNhbmNlbGxhYmxlLmdldCgpLAogICAgICAgICByZWludGVycHJldF9jYXN0PEdB
c3luY1JlYWR5Q2FsbGJhY2s+KHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RSZWFkQ2FsbGJhY2spLCBn
X29iamVjdF9yZWYocmVxdWVzdCkpOwogfQogCkBAIC0yMzgsNyArMjgxLDcgQEAgdm9pZCB3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcihXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
KiByZXF1ZXN0LCBHRXIKICAgICBnX3JldHVybl9pZl9mYWlsKGVycm9yKTsKIAogICAgIFdlYktp
dFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKLSAgICBwcml2
LT5zdHJlYW0gPSBudWxscHRyOworICAgIHByaXYtPnJlc3BvbnNlID0gbnVsbHB0cjsKICAgICBS
ZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFp
biksIHRvV2ViQ29yZUVycm9yKGVycm9yLT5jb2RlKSwgcHJpdi0+dGFzay0+cmVxdWVzdCgpLnVy
bCgpLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSk7CiAgICAgcHJpdi0+dGFzay0+
ZGlkQ29tcGxldGUocmVzb3VyY2VFcnJvcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZh
dGUuaAppbmRleCAwMTg0OWUxNTc2OTQzNTE5ZDgxMjk0Njk4ZDc1ZWIyNmYyMjk5ZDNhLi43MDc3
OTAwMTkzNDk5NmVhMjk4ZjI2MTMwOWYzNmFiZDljNTliY2IwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJl
cXVlc3RQcml2YXRlLmgKQEAgLTIwLDYgKzIwLDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYktpdFVSSVNjaGVtZVJl
c3BvbnNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHQuaCIKICNpbmNsdWRl
ICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNrLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNw
b25zZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hl
bWVSZXNwb25zZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg2ZmVmZDM2ZWUyYzUzMmJkODI5OWNlYTdkZmM3
ZTViOTk0MWY2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmNwcApAQCAtMCwwICsxLDE2MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBaaXhpbmcgTGl1CisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUuaCIKKworI2luY2x1ZGUgIkFQ
SURhdGEuaCIKKyNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViVVJMU2No
ZW1lVGFzay5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUFBhcnNlcnMuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvUnVuTG9vcFNvdXJjZVByaW9yaXR5Lmg+CisjaW5jbHVkZSA8
d3RmL2dsaWIvV1RGR1R5cGUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworLyoqCisg
KiBTRUNUSU9OOiBXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICogQFNob3J0X2Rlc2NyaXB0aW9u
OiBSZXByZXNlbnRzIGEgVVJJIHNjaGVtZSByZXNwb25zZQorICogQFRpdGxlOiBXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZQorICoKKyAqIElmIHlvdSByZWdpc3RlciBhIHBhcnRpY3VsYXIgVVJJIHNj
aGVtZSBpbiBhICNXZWJLaXRXZWJDb250ZXh0LAorICogdXNpbmcgd2Via2l0X3dlYl9jb250ZXh0
X3JlZ2lzdGVyX3VyaV9zY2hlbWUoKSwgeW91IGhhdmUgdG8gcHJvdmlkZQorICogYSAjV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdENhbGxiYWNrLiBBZnRlciB0aGF0LCB3aGVuIGEgVVJJIHJlc3BvbnNl
CisgKiBpcyBtYWRlIHdpdGggdGhhdCBwYXJ0aWN1bGFyIHNjaGVtZSwgeW91ciBjYWxsYmFjayB3
aWxsIGJlCisgKiBjYWxsZWQuIFRoZXJlIHlvdSB3aWxsIGJlIGFibGUgdG8gcHJvdmlkZSBtb3Jl
IHJlc3BvbnNlIHBhcmFtZXRlcnMKKyAqIHdoZW4gdGhlIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMg
b2YgYSAjV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCBpcyBub3QKKyAqIGVub3VnaC4KKyAqIAorICog
V2hlbiB5b3UgZmluaXNoZWQgc2V0dGluZyB1cCB5b3VyICNXZWJLaXRVUklTY2hlbWVSZXNwb25z
ZSwgY2FsbAorICogd2Via2l0X3VyaV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlKCkgd2l0
aCBpdCB0byByZXR1cm4gdGhlIHJlc3BvbnNlLgorICoKKyAqLworCitzdHJ1Y3QgX1dlYktpdFVS
SVNjaGVtZVJlc3BvbnNlUHJpdmF0ZSB7CisgICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IHN0cmVh
bTsKKyAgICB1aW50NjRfdCBzdHJlYW1MZW5ndGg7CisKKyAgICBpbnQgc3RhdHVzQ29kZTsKKyAg
ICBDU3RyaW5nIHN0YXR1c01lc3NhZ2U7CisgICAgQ1N0cmluZyBjb250ZW50VHlwZTsKK307CisK
K1dFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRVUklTY2hlbWVSZXNwb25zZSwgd2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2UsIEdfVFlQRV9PQkpFQ1QpCisKK3N0YXRpYyB2b2lkIHdlYmtpdF91cmlf
c2NoZW1lX3Jlc3BvbnNlX2NsYXNzX2luaXQoV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcyog
a2xhc3MpCit7Cit9CisKKy8vIFByaXZhdGUgZ2V0dGVycworaW50IFdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlR2V0U3RhdHVzQ29kZShjb25zdCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUq
IHJlc3BvbnNlKQoreworICAgIHJldHVybiByZXNwb25zZS0+c3RhdHVzQ29kZTsKK30KKworR0lu
cHV0U3RyZWFtKiBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0cmVhbShjb25zdCBXZWJLaXRV
UklTY2hlbWVSZXNwb25zZVByaXZhdGUqIHJlc3BvbnNlKQoreworICAgIHJldHVybiByZXNwb25z
ZS0+c3RyZWFtLmdldCgpOworfQorCitDU3RyaW5nIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0
U3RhdHVzTWVzc2FnZShjb25zdCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUqIHJlc3Bv
bnNlKQoreworICAgIHJldHVybiByZXNwb25zZS0+c3RhdHVzTWVzc2FnZTsKK30KKworQ1N0cmlu
ZyBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKGNvbnN0IFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlUHJpdmF0ZSogcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIHJlc3BvbnNlLT5j
b250ZW50VHlwZTsKK30KKwordWludDY0X3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRTdHJl
YW1MZW5ndGgoY29uc3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlKiByZXNwb25zZSkK
K3sKKyAgICByZXR1cm4gcmVzcG9uc2UtPnN0cmVhbUxlbmd0aDsKK30KKwordm9pZCBXZWJLaXRV
UklTY2hlbWVSZXNwb25zZURpc3Bvc2VTdHJlYW0oV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2
YXRlKiByZXNwb25zZSkKK3sKKyAgICByZXNwb25zZS0+c3RyZWFtID0gbnVsbHB0cjsKK30KKwor
LyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzX2JvZHk6CisgKiBA
cmVzcG9uc2U6IGEgI1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKiBAc3RyZWFtOiBhICNHSW5w
dXRTdHJlYW0gdG8gcmVhZCB0aGUgY29udGVudHMgb2YgdGhlIHJlcXVlc3QKKyAqIEBzdHJlYW1f
bGVuZ3RoOiB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJlYW0gb3IgLTEgaWYgbm90IGtub3duCisgKiBA
Y29udGVudF90eXBlOiAoYWxsb3ctbm9uZSk6IHRoZSBjb250ZW50IHR5cGUgb2YgdGhlIHN0cmVh
bSBvciAlTlVMTCBpZiBub3Qga25vd24KKyAqCisgKiBTZXRzIHRoZSBzdGF0dXMgbWVzc2FnZSBm
b3IgdGhlIEByZXNwb25zZQorICoKKyAqIFNpbmNlOiAyLjM2CisgKi8KK1dlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9uZXcoR0lucHV0U3RyZWFtKiBp
bnB1dFN0cmVhbSwgZ2ludDY0IHN0cmVhbUxlbmd0aCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChHX0lTX0lOUFVUX1NUUkVBTShpbnB1dFN0cmVhbSksIG51bGxwdHIpOworICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKHN0cmVhbUxlbmd0aCA9PSAtMSB8fCBzdHJlYW1MZW5ndGggPj0gMCwg
bnVsbHB0cik7CisKKyAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UgPSBXRUJL
SVRfVVJJX1NDSEVNRV9SRVNQT05TRShnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfVVJJX1NDSEVN
RV9SRVNQT05TRSwgbnVsbHB0cikpOworICAgIHJlc3BvbnNlLT5wcml2LT5zdGF0dXNDb2RlID0g
LTE7CisgICAgcmVzcG9uc2UtPnByaXYtPnN0cmVhbSA9IGlucHV0U3RyZWFtOworICAgIC8vIFdl
IHVzZSAtMSBpbiB0aGUgQVBJIGZvciBjb25zaXN0ZW5jeSB3aXRoIHNvdXAgd2hlbiB0aGUgY29u
dGVudCBsZW5ndGggaXMgbm90IGtub3duLCBidXQgMCBpbnRlcm5hbGx5LgorICAgIHJlc3BvbnNl
LT5wcml2LT5zdHJlYW1MZW5ndGggPSBzdHJlYW1MZW5ndGggPT0gLTEgPyAwIDogc3RyZWFtTGVu
Z3RoOworICAgIHJldHVybiByZXNwb25zZTsKK30KKworLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVt
ZV9yZXNwb25zZV9zZXRfY29udGVudF90eXBlOgorICogQHJlc3BvbnNlOiBhICNXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZQorICogQGNvbnRlbnRfdHlwZTogKGFsbG93LW5vbmUpOiB0aGUgY29udGVu
dCB0eXBlIG9mIHRoZSBzdHJlYW0gb3IgJU5VTEwgaWYgbm90IGtub3duCisgKgorICogU2V0cyB0
aGUgY29udGVudCB0eXBlIGZvciB0aGUgQHJlc3BvbnNlCisgKgorICogU2luY2U6IDIuMzYKKyAq
Lwordm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfY29udGVudF90eXBlKFdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlKiByZXNwb25zZSwgY29uc3QgZ2NoYXIqIGNvbnRlbnRUeXBlKQor
eworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0UocmVz
cG9uc2UpKTsKKworICAgIHJlc3BvbnNlLT5wcml2LT5jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBl
OworfQorCisvKioKKyAqIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXM6Cisg
KiBAcmVzcG9uc2U6IGEgI1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKiBAc3RhdHVzX2NvZGU6
IHRoZSBIVFRQIHN0YXR1cyBjb2RlIHRvIGJlIHJldHVybmVkCisgKiBAcmVhc29uX3BocmFzZTog
KGFsbG93LW5vbmUpOiBhIHJlYXNvbiBwaHJhc2UKKyAqCisgKiBTZXRzIHRoZSBzdGF0dXMgY29k
ZSBhbmQgcmVhc29uIHBocmFzZSBmb3IgdGhlIEByZXNwb25zZS4KKyAqIElmIEBzdGF0dXNfY29k
ZSBpcyBhIGtub3duIHZhbHVlIGFuZCBAcmVhc29uX3BocmFzZSBpcyAlTlVMTCwgdGhlIEByZWFz
b25fcGhyYXNlIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkuCisgKgorICogU2luY2U6IDIuMzYK
KyAqLwordm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzKFdlYktpdFVS
SVNjaGVtZVJlc3BvbnNlKiByZXNwb25zZSwgZ3VpbnQgc3RhdHVzQ29kZSwgY29uc3QgZ2NoYXIq
IHN0YXR1c01lc3NhZ2UpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfVVJJX1ND
SEVNRV9SRVNQT05TRShyZXNwb25zZSkpOworCisgICAgcmVzcG9uc2UtPnByaXYtPnN0YXR1c0Nv
ZGUgPSBzdGF0aWNfY2FzdDxnaW50PihzdGF0dXNDb2RlKTsKKyAgICBpZiAoc3RhdHVzTWVzc2Fn
ZSkKKyAgICAgICAgcmVzcG9uc2UtPnByaXYtPnN0YXR1c01lc3NhZ2UgPSBzdGF0dXNNZXNzYWdl
OworICAgIGVsc2UKKyAgICAgICAgcmVzcG9uc2UtPnByaXYtPnN0YXR1c01lc3NhZ2UgPSBzb3Vw
X3N0YXR1c19nZXRfcGhyYXNlKHN0YXR1c0NvZGUpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25z
ZVByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDcwZTViMmVlODg4YWJjYjc2MzY2Mjg0OGIzOTRjYmM5
ZmMyNWI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlLmgKQEAgLTAsMCArMSwzMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBaaXhpbmcgTGl1CisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJXZWJLaXRXZWJDb250ZXh0
LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViVVJMU2NoZW1lVGFz
ay5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisKK2ludCBXZWJLaXRV
UklTY2hlbWVSZXNwb25zZUdldFN0YXR1c0NvZGUoY29uc3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2VQcml2YXRlKik7CitHSW5wdXRTdHJlYW0qIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3Ry
ZWFtKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZSopOworQ1N0cmluZyBXZWJL
aXRVUklTY2hlbWVSZXNwb25zZUdldFN0YXR1c01lc3NhZ2UoY29uc3QgV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2VQcml2YXRlKik7CitDU3RyaW5nIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0Q29u
dGVudFR5cGUoY29uc3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlKik7Cit1aW50NjRf
dCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0cmVhbUxlbmd0aChjb25zdCBXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZVByaXZhdGUqKTsKK3ZvaWQgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VEaXNw
b3NlU3RyZWFtKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZSopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKaW5kZXgg
YTRhYWZkNzNmYjJhYTdkODNiNWEzZjM2OWEwMmU2MWU4NjBkZDI0ZS4uMjVkZjdkMDc4NWNmOGY2
ZDk1OGVlZDg4MDZhZGMyMzcwYzMzODNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oCkBAIC02Miw2ICs2Miw3IEBAIEdf
REVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRTZXR0aW5ncywgZ19vYmplY3RfdW5y
ZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJUmVxdWVzdCwgZ19v
YmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJUmVz
cG9uc2UsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdl
YktpdFVSSVNjaGVtZVJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9D
TEVBTlVQX0ZVTkMgKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlLCBnX29iamVjdF91bnJlZikKIEdf
REVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3Jl
LCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRV
c2VyQ29udGVudE1hbmFnZXIsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVB
TlVQX0ZVTkMgKFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJl
ZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
UklTY2hlbWVSZXF1ZXN0LmgKaW5kZXggZDJiMDZhMTRkYzVhMjA3ZTg3NTY0YTBlYmMzNWJjYzEz
OWIxZWM0ZS4uMmI4OGFhNmE4OTc4NDdiYTE0ZjZlODkyMjQ2MzA3Njg1ZjNkZTk5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1
ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hl
bWVSZXF1ZXN0LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgog
I2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2Vi
S2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2UuaD4KIAogR19CRUdJTl9ERUNMUwogCkBAIC03MSwxMiArNzIsMTkgQEAgd2Vi
a2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfcGF0aCAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QgKnJlcXVlc3QpOwogV0VCS0lUX0FQSSBXZWJLaXRXZWJWaWV3ICoKIHdlYmtpdF91cmlfc2No
ZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3IChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0
KTsKIAorV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2dldF9odHRwX21ldGhvZCAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CisKIFdF
QktJVF9BUEkgdm9pZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2ggICAgICAgKFdl
YktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0lucHV0U3RyZWFtICAgICAgICAgICAqc3RyZWFtLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQ2NCAgICAgICAgICAgICAgICAgIHN0
cmVhbV9sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgZ2NoYXIgICAgICAgICAgICAqY29udGVudF90eXBlKTsKIAorV0VCS0lUX0FQSSB2b2lkCit3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlIChXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0ICAqcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSk7CisKIFdF
QktJVF9BUEkgdm9pZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3IgKFdl
YktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAgICAgICAgICAqZXJyb3IpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNwb25z
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNw
b25zZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRjNzBjZTY3M2VhMjQ0ZGUwNzAwZjBmNjA0MWVlNmVhYjYwYTc3
ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBaaXhpbmcgTGl1CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykg
JiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93
ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBX
ZWJLaXRVUklTY2hlbWVSZXNwb25zZV9oCisjZGVmaW5lIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRE
ZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGb3J3YXJkRGVjbGFyYXRpb25zLmg+
CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BP
TlNFICAgICAgICAgICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2dldF90eXBlKCkpCisj
ZGVmaW5lIFdFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFKG9iaikgICAgICAgICAgICAoR19UWVBF
X0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9O
U0UsIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VSSV9TQ0hF
TUVfUkVTUE9OU0Uob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2Jq
KSwgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSkpCisjZGVmaW5lIFdFQktJVF9VUklf
U0NIRU1FX1JFU1BPTlNFX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1Qo
KGtsYXNzKSwgIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UsIFdlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlQ2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRV9D
TEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQ
RV9VUklfU0NIRU1FX1JFU1BPTlNFKSkKKyNkZWZpbmUgV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9O
U0VfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VC
S0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFz
cykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZSAgICAgICAgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2U7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVz
cG9uc2VDbGFzcyAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZSB7CisgICAgR09iamVj
dCBwYXJlbnQ7CisKKyAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUgKnByaXY7Cit9
OworCitzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MgeworICAgIEdPYmplY3RD
bGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lk
KTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2
b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNl
X2dldF90eXBlICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2UgKgord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfbmV3ICAgICAgICAgICAgICAg
IChHSW5wdXRTdHJlYW0gICAgICAgICAgICAqaW5wdXRfc3RyZWFtLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50NjQgICAgICAgICAgICAgICAgICAg
c3RyZWFtX2xlbmd0aCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVz
cG9uc2Vfc2V0X3N0YXR1cyAgICAgICAgIChXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9u
c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50
ICAgICAgICAgICAgICAgICAgICBzdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgKnJlYXNvbl9w
aHJhc2UpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3Nl
dF9jb250ZW50X3R5cGUgICAoV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAg
ICAgICAgICAgICAqY29udGVudF90eXBlKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00
LjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dl
YmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCAxYmFiYjkzOWZjZWMxNmY5NDkzNGFmMzg4
ZTQxNmU5MDNiZTFlZTg3Li43N2M0NTRhNWE0MjE5MzEzMGZjOTIxMjczNDY5MDFiYjZkZjM2OGM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay00LjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKQEAgLTEyNzcsNyArMTI3Nyw5IEBA
IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3NjaGVtZQogd2Via2l0X3VyaV9zY2hlbWVf
cmVxdWVzdF9nZXRfdXJpCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9wYXRoCiB3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmlldword2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdF9nZXRfaHR0cF9tZXRob2QKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoCit3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlCiB3ZWJraXRfdXJp
X3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcgogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KQEAg
LTEyOTQsNiArMTI5NiwyNyBAQCBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZQogd2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCis8U0VDVElPTj4KKzxG
SUxFPldlYktpdFVSSVNjaGVtZVJlc3BvbnNlPC9GSUxFPgorV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2UKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX25ldword2Via2l0X3VyaV9zY2hlbWVfcmVz
cG9uc2Vfc2V0X2NvbnRlbnRfdHlwZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0
YXR1cworCis8U1VCU0VDVElPTiBTdGFuZGFyZD4KK1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xh
c3MKK1dFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UKK1dFQktJVF9VUklfU0NIRU1FX1JF
U1BPTlNFCitXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRQorV0VCS0lUX1VSSV9TQ0hFTUVf
UkVTUE9OU0VfQ0xBU1MKK1dFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFX0NMQVNTCitXRUJL
SVRfVVJJX1NDSEVNRV9SRVNQT05TRV9HRVRfQ0xBU1MKKworPFNVQlNFQ1RJT04gUHJpdmF0ZT4K
K1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9u
c2VfZ2V0X3R5cGUKKzwvU0VDVElPTj4KKwogPFNFQ1RJT04+CiA8RklMRT5XZWJLaXRWZXJzaW9u
PC9GSUxFPgogd2Via2l0X2dldF9tYWpvcl92ZXJzaW9uCkBAIC0xOTg1LDQgKzIwMDgsMyBAQCB3
ZWJraXRfbWVtb3J5X3ByZXNzdXJlX3NldHRpbmdzX2dldF90eXBlCiA8U1VCU0VDVElPTiBTdGFu
ZGFyZD4KIFdFQktJVF9UWVBFX01FTU9SWV9QUkVTU1VSRV9TRVRUSU5HUwogPC9TRUNUSU9OPgot
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay00LjAudHlwZXMgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay00LjAudHlwZXMKaW5kZXggNDkzN2FiYjU2NDg3M2NlMDZlYjY0MzE1OTFkZTMxZGNi
MWQwYzU1MS4uZWY2ZThhZDY1OTU2NTljMGQ1MGY1YzYyZDM1MDVhMjE2YjcwYWYyOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4w
LnR5cGVzCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQy
Z3RrLTQuMC50eXBlcwpAQCAtMTksNiArMTksNyBAQCB3ZWJraXRfcGx1Z2luX2dldF90eXBlCiB3
ZWJraXRfbWltZV9pbmZvX2dldF90eXBlCiB3ZWJraXRfd2ViX2luc3BlY3Rvcl9nZXRfdHlwZQog
d2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdHlwZQord2Via2l0X3VyaV9zY2hlbWVfcmVz
cG9uc2VfZ2V0X3R5cGUKIHdlYmtpdF9jb250ZXh0X21lbnVfZ2V0X3R5cGUKIHdlYmtpdF9jb250
ZXh0X21lbnVfaXRlbV9nZXRfdHlwZQogd2Via2l0X3dlYl9leHRlbnNpb25fZ2V0X3R5cGUKQEAg
LTQyLDQgKzQzLDQgQEAgd2Via2l0X29wdGlvbl9tZW51X2l0ZW1fZ2V0X3R5cGUKIHdlYmtpdF9k
ZXZpY2VfaW5mb19wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKIHdlYmtpdF9nZW9sb2NhdGlv
bl9tYW5hZ2VyX2dldF90eXBlCiB3ZWJraXRfZ2VvbG9jYXRpb25fcG9zaXRpb25fZ2V0X3R5cGUK
LXdlYmtpdF9wb2ludGVyX2xvY2tfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQord2Via2l0X3BvaW50ZXJfbG9ja19wZXJtaXNzaW9uX3JlcXVl
c3RfZ2V0X3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
ZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbAppbmRleCA0MTFlZTY0ZDgzMzMzZjA1MjMwNmM1
Yjk5ZDA3M2JiNDI3OTc4YTY1Li5lMTJjN2RiNWM3OTZmYzU4Y2E4NjJkMDYyYmFjNzFjODA4ZWE2
MGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay1kb2NzLnNnbWwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCkBAIC00NSw2ICs0NSw3IEBACiAgICAgPHhpOmluY2x1
ZGUgaHJlZj0ieG1sL1dlYktpdFBsdWdpbi54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4
bWwvV2ViS2l0V2ViSW5zcGVjdG9yLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9X
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0LnhtbCIvPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9X
ZWJLaXRVUklTY2hlbWVSZXNwb25zZS54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwv
V2ViS2l0VmVyc2lvbi54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0Q29u
dGV4dE1lbnUueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdENvbnRleHRN
ZW51SXRlbS54bWwiLz4KQEAgLTE3MCw1ICsxNzEsMTAgQEAKICAgICA8eGk6aW5jbHVkZSBocmVm
PSJ4bWwvYXBpLWluZGV4LTIuMzAueG1sIj48eGk6ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CiAg
IDwvaW5kZXg+CiAKKyAgPGluZGV4IGlkPSJhcGktaW5kZXgtMi0zNiIgcm9sZT0iMi4zNiI+Cisg
ICAgPHRpdGxlPkluZGV4IG9mIG5ldyBzeW1ib2xzIGluIDIuMzY8L3RpdGxlPgorICAgIDx4aTpp
bmNsdWRlIGhyZWY9InhtbC9hcGktaW5kZXgtMi4zNi54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6
aW5jbHVkZT4KKyAgPC9pbmRleD4KKwogICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYW5ub3RhdGlv
bi1nbG9zc2FyeS54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KIDwvYm9vaz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKaW5kZXggYjdkMjc0MWM0YjJj
MWFkNGUzNGExZmFiNDhmZWM2MWFmMWM2MTAyZC4uNWNkOTUyNDI1MmE5N2Q0ZWE2NGRmZWIyMmU1
YTQ3YjU1ZjM2Yzg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay93ZWJraXQyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQy
LmgKQEAgLTc4LDYgKzc4LDcgQEAKICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlcXVlc3Qu
aD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRV
UklTY2hlbWVSZXNwb25zZS5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJVXRpbGl0aWVz
Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVc2VyQ29udGVudC5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRBdXRvY2xlYW51cHMuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0QXV0b2NsZWFudXBzLmgKaW5kZXggNzdhYjc3
YmM5ODRlNzBkM2ZhY2UwMDMzZjEyNDJkMjZjNDAyZDBiNi4uNWUyMGY0MzVlMjMxZGU0Zjk1ZjJl
N2ExZTRmOTk4OTg3YTY4Y2FkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRBdXRvY2xlYW51cHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1dlYktpdEF1dG9jbGVhbnVwcy5oCkBAIC01Niw2ICs1Niw3IEBAIEdfREVGSU5F
X0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRTZXR0aW5ncywgZ19vYmplY3RfdW5yZWYpCiBH
X0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJUmVxdWVzdCwgZ19vYmplY3Rf
dW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJUmVzcG9uc2Us
IGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVS
SVNjaGVtZVJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQ
X0ZVTkMgKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5F
X0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLCBnX29i
amVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyQ29u
dGVudE1hbmFnZXIsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZV
TkMgKFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hl
bWVSZXF1ZXN0LmgKaW5kZXggOGViZWRhNGU3N2YxYmJkMThlMWNiZGFkYzNmN2YyNDZlMDk5MTdi
MS4uZTg4Y2E3OWU1NzVlNDliZjY3NjE3MWMzYzlkYzRjNzQzY2Q1YjA4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1
ZXN0LmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5j
bHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2UuaD4KIAogR19CRUdJTl9ERUNMUwogCkBAIC03MiwxMiArNzMsMTkgQEAgd2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfcGF0aCAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3Qg
KnJlcXVlc3QpOwogV0VCS0lUX0FQSSBXZWJLaXRXZWJWaWV3ICoKIHdlYmtpdF91cmlfc2NoZW1l
X3JlcXVlc3RfZ2V0X3dlYl92aWV3IChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsK
IAorV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dl
dF9odHRwX21ldGhvZCAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CisKIFdFQktJ
VF9BUEkgdm9pZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2ggICAgICAgKFdlYktp
dFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0lucHV0U3RyZWFtICAgICAgICAgICAqc3RyZWFtLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQ2NCAgICAgICAgICAgICAgICAgIHN0cmVh
bV9sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Z2NoYXIgICAgICAgICAgICAqY29udGVudF90eXBlKTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlIChXZWJLaXRVUklTY2hl
bWVSZXF1ZXN0ICAqcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSk7CisKIFdFQktJ
VF9BUEkgdm9pZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3IgKFdlYktp
dFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0Vycm9yICAgICAgICAgICAgICAgICAqZXJyb3IpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXNwb25z
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjMyMjBiMWY0Njg4NjcxNjM5Zjc2YWY4MWM3Mjc1ZmZlNzkxY2M1ZjMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktp
dFVSSVNjaGVtZVJlc3BvbnNlLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBaaXhpbmcgTGl1CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lOU0lERV9fKSAmJiAh
ZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+
IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZV9oCisjZGVmaW5lIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlX2gKKworI2lu
Y2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KKwor
R19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0Ug
ICAgICAgICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0Uob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hF
Q0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSwg
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UpKQorI2RlZmluZSBXRUJLSVRfSVNfVVJJX1NDSEVNRV9S
RVNQT05TRShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBX
RUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFKSkKKyNkZWZpbmUgV0VCS0lUX1VSSV9TQ0hF
TUVfUkVTUE9OU0VfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xh
c3MpLCAgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSwgV2ViS2l0VVJJU2NoZW1lUmVz
cG9uc2VDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFX0NMQVNT
KGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1VS
SV9TQ0hFTUVfUkVTUE9OU0UpKQorI2RlZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9H
RVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRf
VFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzKSkK
KwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlICAgICAgICBXZWJLaXRV
UklTY2hlbWVSZXNwb25zZTsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25z
ZUNsYXNzICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2
YXRlOworCitzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlIHsKKyAgICBHT2JqZWN0IHBh
cmVudDsKKworICAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZSAqcHJpdjsKK307CisK
K3N0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcyB7CisgICAgR09iamVjdENsYXNz
IHBhcmVudF9jbGFzczsKKworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOwor
ICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0
X3Jlc2VydmVkMikgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQp
OworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0
X3R5cGUgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBXZWJLaXRVUklTY2hlbWVSZXNw
b25zZSAqCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9uZXcgICAgICAgICAgICAgICAgKEdJ
bnB1dFN0cmVhbSAgICAgICAgICAgICppbnB1dF9zdHJlYW0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQ2NCAgICAgICAgICAgICAgICAgICBzdHJl
YW1fbGVuZ3RoKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25z
ZV9zZXRfc3RhdHVzICAgICAgICAgKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAg
ICAgICAgICAgICAgICAgIHN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAqcmVhc29uX3BocmFz
ZSk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2Nv
bnRlbnRfdHlwZSAgIChXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9uc2UsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAg
ICAgICAgICpjb250ZW50X3R5cGUpOworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25z
LnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rp
b25zLnR4dAppbmRleCBiOGIwOGQyZjkxZjI1NjRjZWY3ZGEwYjhlY2VkYzhhMTEyZDViZTkwLi4w
YTljZjI0YzczOGQyY2MwNTc1ZjAwZDczZGRjZTdjMGI0NmJiZGE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMu
dHh0CkBAIC0xMjE0LDcgKzEyMTQsOSBAQCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9z
Y2hlbWUKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3VyaQogd2Via2l0X3VyaV9zY2hl
bWVfcmVxdWVzdF9nZXRfcGF0aAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3Zp
ZXcKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kCiB3ZWJraXRfdXJp
X3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaAord2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hf
d2l0aF9yZXNwb25zZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3IKIAog
PFNVQlNFQ1RJT04gU3RhbmRhcmQ+CkBAIC0xMjMxLDYgKzEyMzMsMjcgQEAgV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdFByaXZhdGUKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3R5cGUKIDwv
U0VDVElPTj4KIAorPFNFQ1RJT04+Cis8RklMRT5XZWJLaXRVUklTY2hlbWVSZXNwb25zZTwvRklM
RT4KK1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9u
ZXcKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9jb250ZW50X3R5cGUKK3dlYmtpdF91
cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMKKworPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CitX
ZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzCitXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BP
TlNFCitXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRQorV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVT
UE9OU0UKK1dFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFX0NMQVNTCitXRUJLSVRfSVNfVVJJX1ND
SEVNRV9SRVNQT05TRV9DTEFTUworV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfR0VUX0NMQVNT
CisKKzxTVUJTRUNUSU9OIFByaXZhdGU+CitXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUK
K3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2dldF90eXBlCis8L1NFQ1RJT04+CisKIDxTRUNU
SU9OPgogPEZJTEU+V2ViS2l0VmVyc2lvbjwvRklMRT4KIHdlYmtpdF9nZXRfbWFqb3JfdmVyc2lv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS1k
b2NzLnNnbWwgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLWRvY3Mu
c2dtbAppbmRleCA4ZTI1N2YwMmYxMWZlYmVjZDJhNTY3M2I4ZTg3MDZkNWVjNmM2ODM5Li4yYmNj
MGNiZGE4ODVkZjliZjc0OTUzNGUzZGQxZWViNjk5YmQxMWRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLWRvY3Muc2dtbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLWRvY3Muc2dtbApAQCAtNDEsNiArNDEs
NyBAQAogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRDb29raWVNYW5hZ2VyLnhtbCIv
PgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRQbHVnaW4ueG1sIi8+CiAgICAgPHhp
OmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QueG1sIi8+CisgICAgPHhp
OmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLnhtbCIvPgogICAgIDx4
aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRDb250ZXh0TWVudS54bWwiLz4KICAgICA8eGk6aW5j
bHVkZSBocmVmPSJ4bWwvV2ViS2l0Q29udGV4dE1lbnVJdGVtLnhtbCIvPgogICAgIDx4aTppbmNs
dWRlIGhyZWY9InhtbC9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QueG1sIi8+CkBAIC0xMDgs
NSArMTA5LDEwIEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2FwaS1pbmRleC0yLjMwLnht
bCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRlPgogICA8L2luZGV4PgogCisgIDxpbmRleCBp
ZD0iYXBpLWluZGV4LTItMzYiIHJvbGU9IjIuMzYiPgorICAgIDx0aXRsZT5JbmRleCBvZiBuZXcg
c3ltYm9scyBpbiAyLjM2PC90aXRsZT4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWlu
ZGV4LTIuMzYueG1sIj48eGk6ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CisgIDwvaW5kZXg+CisK
ICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2Fubm90YXRpb24tZ2xvc3NhcnkueG1sIj48eGk6ZmFs
bGJhY2sgLz48L3hpOmluY2x1ZGU+CiA8L2Jvb2s+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL3dlYmtpdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS93ZWJraXQuaAppbmRleCA1YzkzZDc2MGY3MzRhMTJmNjE0ODk5NTQ1MTM1ZmRmNzcwMTY0
NTc1Li5jMjIyMWVmYzAwNjE4YzJlYzRkMjBhODhjNTk4NDA3NjdiZDUyZmY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL3dlYmtpdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvd2Via2l0LmgKQEAgLTczLDYgKzczLDcgQEAKICNpbmNs
dWRlIDx3cGUvV2ViS2l0VVJJUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXRVUklSZXNw
b25zZS5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmg+CisjaW5jbHVk
ZSA8d3BlL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVS
SVV0aWxpdGllcy5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXRVc2VyQ29udGVudC5oPgogI2luY2x1
ZGUgPHdwZS9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmg+CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTAwMjNhMjQ4NTA4OWRjYTM3OTE2
NzgxYzg2MTI2Yjk3MjI0NmE1ZS4uOWFiOGQ0YTU1MGIxZTI2ZGU4ZjNkZTY3NjZiNGVmZjlhNjlk
Nzg1MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDIxLTEwLTIwICBaaXhpbmcgTGl1ICA8bGl1c2h1eXUwMTFAZ21h
aWwuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gU3VwcG9ydCBzZXR0aW5nIHN0YXR1cyBjb2Rl
IGFuZCBnZXR0aW5nIEhUVFAgbWV0aG9kIGluIGN1c3RvbSBVUkkgc2NoZW1lIGhhbmRsZXJzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4ODAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAg
ICh0ZXN0V2ViQ29udGV4dFVSSVNjaGVtZSk6IEFkZGVkIHRlc3RzIHRvIHRlc3QgbmV3IHB1Ymxp
YyBBUElzIGZvciBXZWJLaXRHdGsKKwogMjAyMS0xMC0xOCAgSm9uYXRoYW4gQmVkYXJkICA8amJl
ZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODQzOTku
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdl
YktpdFdlYkNvbnRleHQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBiOTM2YzhlMDc3NWExN2FjYWJlMjEyOGFh
NzE5MzJlNWY0ZDkwZjQzLi5lMWQxMDM1OWRjOGQ1NjU0M2E0YmQzYTVjYzYzYTQ1ZjM5MDc3NDc1
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdl
YktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKQEAgLTk1LDE2ICs5NSwxOCBAQCBwdWJsaWM6
CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIFVSSVNjaGVtZUhhbmRsZXIoY29uc3Qg
Y2hhciogcmVwbHksIGludCByZXBseUxlbmd0aCwgY29uc3QgY2hhciogbWltZVR5cGUpCisgICAg
ICAgIFVSSVNjaGVtZUhhbmRsZXIoY29uc3QgY2hhciogcmVwbHksIGludCByZXBseUxlbmd0aCwg
Y29uc3QgY2hhciogbWltZVR5cGUsIGludCBzdGF0dXNDb2RlID0gMjAwKQogICAgICAgICAgICAg
OiByZXBseShyZXBseSkKICAgICAgICAgICAgICwgcmVwbHlMZW5ndGgocmVwbHlMZW5ndGgpCiAg
ICAgICAgICAgICAsIG1pbWVUeXBlKG1pbWVUeXBlKQorICAgICAgICAgICAgLCBzdGF0dXNDb2Rl
KHN0YXR1c0NvZGUpCiAgICAgICAgIHsKICAgICAgICAgfQogCiAgICAgICAgIENTdHJpbmcgcmVw
bHk7CiAgICAgICAgIGludCByZXBseUxlbmd0aDsKICAgICAgICAgQ1N0cmluZyBtaW1lVHlwZTsK
KyAgICAgICAgaW50IHN0YXR1c0NvZGU7CiAgICAgfTsKIAogICAgIHN0YXRpYyB2b2lkIHVyaVNj
aGVtZVJlcXVlc3RDYWxsYmFjayhXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCBncG9p
bnRlciB1c2VyRGF0YSkKQEAgLTEyMCw2ICsxMjIsMTMgQEAgcHVibGljOgogICAgICAgICBnX2Fz
c2VydF9ub25udWxsKHNjaGVtZSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+bV9oYW5k
bGVyc01hcC5jb250YWlucyhTdHJpbmc6OmZyb21VVEY4KHNjaGVtZSkpKTsKIAorICAgICAgICBj
b25zdCBjaGFyKiBtZXRob2QgPSB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21l
dGhvZChyZXF1ZXN0KTsKKyAgICAgICAgZ19hc3NlcnRfbm9ubnVsbChtZXRob2QpOworICAgICAg
ICBpZiAoIWdfc3RyY21wMChzY2hlbWUsICJwb3N0IikpCisgICAgICAgICAgICBnX2Fzc2VydF9j
bXBzdHIobWV0aG9kLCA9PSwgIlBPU1QiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZ19h
c3NlcnRfY21wc3RyKG1ldGhvZCwgPT0sICJHRVQiKTsKKwogICAgICAgICBjb25zdCBVUklTY2hl
bWVIYW5kbGVyJiBoYW5kbGVyID0gdGVzdC0+bV9oYW5kbGVyc01hcC5nZXQoU3RyaW5nOjpmcm9t
VVRGOChzY2hlbWUpKTsKIAogICAgICAgICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4gaW5wdXRTdHJl
YW0gPSBhZG9wdEdSZWYoZ19tZW1vcnlfaW5wdXRfc3RyZWFtX25ldygpKTsKQEAgLTE1NCwxMiAr
MTYzLDE1IEBAIHB1YmxpYzoKICAgICAgICAgZWxzZSBpZiAoIWhhbmRsZXIucmVwbHkuaXNOdWxs
KCkpCiAgICAgICAgICAgICBnX21lbW9yeV9pbnB1dF9zdHJlYW1fYWRkX2RhdGEoR19NRU1PUllf
SU5QVVRfU1RSRUFNKGlucHV0U3RyZWFtLmdldCgpKSwgaGFuZGxlci5yZXBseS5kYXRhKCksIGhh
bmRsZXIucmVwbHkubGVuZ3RoKCksIDApOwogCi0gICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3Jl
cXVlc3RfZmluaXNoKHJlcXVlc3QsIGlucHV0U3RyZWFtLmdldCgpLCBoYW5kbGVyLnJlcGx5TGVu
Z3RoLCBoYW5kbGVyLm1pbWVUeXBlLmRhdGEoKSk7CisgICAgICAgIGF1dG8gcmVzcG9uc2UgPSBh
ZG9wdEdSZWYod2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfbmV3KGlucHV0U3RyZWFtLmdldCgp
LCBoYW5kbGVyLnJlcGx5TGVuZ3RoKSk7CisgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3Bv
bnNlX3NldF9zdGF0dXMocmVzcG9uc2UuZ2V0KCksIGhhbmRsZXIuc3RhdHVzQ29kZSwgbnVsbHB0
cik7CisgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9jb250ZW50X3R5cGUo
cmVzcG9uc2UuZ2V0KCksIGhhbmRsZXIubWltZVR5cGUuZGF0YSgpKTsKKyAgICAgICAgd2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZShyZXF1ZXN0LCByZXNwb25z
ZS5nZXQoKSk7CiAgICAgfQogCi0gICAgdm9pZCByZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIoY29u
c3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiByZXBseSwgaW50IHJlcGx5TGVuZ3RoLCBjb25z
dCBjaGFyKiBtaW1lVHlwZSkKKyAgICB2b2lkIHJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcihjb25z
dCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlcGx5LCBpbnQgcmVwbHlMZW5ndGgsIGNvbnN0
IGNoYXIqIG1pbWVUeXBlLCBpbnQgc3RhdHVzQ29kZSA9IDIwMCkKICAgICB7Ci0gICAgICAgIG1f
aGFuZGxlcnNNYXAuc2V0KFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKSwgVVJJU2NoZW1lSGFuZGxl
cihyZXBseSwgcmVwbHlMZW5ndGgsIG1pbWVUeXBlKSk7CisgICAgICAgIG1faGFuZGxlcnNNYXAu
c2V0KFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKSwgVVJJU2NoZW1lSGFuZGxlcihyZXBseSwgcmVw
bHlMZW5ndGgsIG1pbWVUeXBlLCBzdGF0dXNDb2RlKSk7CiAgICAgICAgIHdlYmtpdF93ZWJfY29u
dGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lKG1fd2ViQ29udGV4dC5nZXQoKSwgc2NoZW1lLCB1cmlT
Y2hlbWVSZXF1ZXN0Q2FsbGJhY2ssIHRoaXMsIDApOwogICAgIH0KIApAQCAtMjk3LDYgKzMwOSwz
MSBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViQ29udGV4dFVSSVNjaGVtZShVUklTY2hlbWVUZXN0KiB0
ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+bV9sb2FkRmFpbGVk
KTsKICAgICBnX2Fzc2VydF9lcnJvcih0ZXN0LT5tX2Vycm9yLmdldCgpLCBHX0lPX0VSUk9SLCBH
X0lPX0VSUk9SX0NMT1NFRCk7CiAKKyAgICB0ZXN0LT5yZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIo
Im5vdGZvdW5kIiwga0JhckhUTUwsIHN0cmxlbihrQmFySFRNTCksICJ0ZXh0L2h0bWwiLCA0MDQp
OworICAgIHRlc3QtPm1fbG9hZEV2ZW50cy5jbGVhcigpOworICAgIHRlc3QtPmxvYWRVUkkoIm5v
dGZvdW5kOmJsYW5rIik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAg
Z19hc3NlcnRfZmFsc2UodGVzdC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rl
c3Q6OlByb3Zpc2lvbmFsTG9hZEZhaWxlZCkpOworCisgICAgdGVzdC0+cmVnaXN0ZXJVUklTY2hl
bWVIYW5kbGVyKCJub2NvbnRlbnQiLCBudWxscHRyLCAwLCAiYXBwbGljYXRpb24vanNvbiIsIDIw
NCk7CisgICAgdGVzdC0+bV9sb2FkRXZlbnRzLmNsZWFyKCk7CisgICAgdGVzdC0+bG9hZFVSSSgi
bm9jb250ZW50OmJsYW5rIik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7Cisg
ICAgZ19hc3NlcnRfZmFsc2UodGVzdC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2lu
Z1Rlc3Q6OlByb3Zpc2lvbmFsTG9hZEZhaWxlZCkpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHRlc3Qt
Pm1fbG9hZEV2ZW50cy5jb250YWlucyhMb2FkVHJhY2tpbmdUZXN0OjpMb2FkRmFpbGVkKSk7CisK
KyAgICBzdGF0aWMgY29uc3QgY2hhciogZm9ybUhUTUwgPSAiPGh0bWw+PGJvZHk+PGZvcm0gaWQ9
XCJ0ZXN0LWZvcm1cIiBtZXRob2Q9XCJQT1NUXCIgYWN0aW9uPVwicG9zdDpkYXRhXCI8L2JvZHk+
PC9odG1sPiI7CisgICAgdGVzdC0+cmVnaXN0ZXJVUklTY2hlbWVIYW5kbGVyKCJwb3N0IiwgbnVs
bHB0ciwgMCwgImFwcGxpY2F0aW9uL2pzb24iLCAyMDQpOworICAgIHRlc3QtPm1fbG9hZEV2ZW50
cy5jbGVhcigpOworICAgIHRlc3QtPmxvYWRIdG1sKGZvcm1IVE1MLCAicG9zdDpmb3JtIik7Cisg
ICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgR1VuaXF1ZU91dFB0cjxHRXJy
b3I+IHBvc3RFcnJvcjsKKyAgICB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVudGlsRmluaXNo
ZWQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LWZvcm0nKS5zdWJtaXQoKSIsICZwb3N0
RXJyb3Iub3V0UHRyKCkpOworICAgIGdfYXNzZXJ0X25vX2Vycm9yKHBvc3RFcnJvci5nZXQoKSk7
CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnRfZmFsc2Uo
dGVzdC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rlc3Q6OlByb3Zpc2lvbmFs
TG9hZEZhaWxlZCkpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHRlc3QtPm1fbG9hZEV2ZW50cy5jb250
YWlucyhMb2FkVHJhY2tpbmdUZXN0OjpMb2FkRmFpbGVkKSk7CisKICAgICAvLyBUb3J0dXJlIHRl
c3QgdGltZTogbWFrZSBzdXJlIGl0IHN0aWxsIHdvcmtzIGlmIHdlIGlzc3VlIGEgYnVuY2ggb2Yg
ZGlmZmVyZW50IHJlcXVlc3RzIGFsbCBhdAogICAgIC8vIG9uY2UuIEVhY2ggcmVxdWVzdCBzaG91
bGQgZmluaXNoIGFuZCByZXR1cm4gZXhhY3RseSB0aGUgc2FtZSBkYXRhLgogICAgIGludCBudW1J
dGVyYXRpb25zID0gMjU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442650</attachid>
            <date>2021-10-27 16:27:34 -0700</date>
            <delta_ts>2021-10-27 17:14:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231880-20211027172733.patch</filename>
            <type>text/plain</type>
            <size>46227</size>
            <attacher>liushuyu011</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQzMjkzMmY3ZDIxMWRkMzA5
M2QwYzQ4ZjBkZTg1MjIwYmVmYWMyN2QuLjQzZTVmNmM4YjlkOWVmYjhkNzkyZDA2OTE2OTUyYjI3
OTJiNTgwNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMTAtMjAgIFppeGluZyBM
aXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdXBwb3J0
IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4gY3VzdG9tIFVS
SSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlc0dUSy50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
LmNwcAorICAgICAgICAqIFNvdXJjZXNXUEUudHh0OiBBZGRlZCBXZWJLaXRVUklTY2hlbWVSZXNw
b25zZS5jcHAKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdC5jcHA6CisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21l
dGhvZCk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rpb24KKyAgICAgICAgKHdlYmtpdF91cmlfcmVxdWVz
dF9maW5pc2hfd2l0aF9yZXNwb25zZSk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rpb24KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUuaDogIEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25z
ZS5jcHA6IEFkZGVkLgorICAgICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfY2xhc3Nf
aW5pdCk6IEFkZGVkIGluaXQgZnVuY3Rpb24gZm9yIHRoZSBuZXcgdHlwZQorICAgICAgICAod2Vi
a2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfbmV3KTogQWRkZWQgbmV3IEFQSSBmdW5jdGlvbgorICAg
ICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cyk6IEFkZGVkIG5ldyBB
UEkgZnVuY3Rpb24KKyAgICAgICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9jb250
ZW50X3R5cGUpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0
ZS5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oOiBS
ZWdpc3RlciBjbGVhbi11cCBmdW5jdGlvbiBmb3IgV2Via2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmg6IEFkZGVk
IGZ1bmN0aW9uIHByb3RvdHlwZSBmb3IgCisgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZ2V0X2h0dHBfbWV0aG9kCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2UuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9j
cy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQ6IEFkZGVkIG5ldyBzeW1ib2xzIGFuZCBuZXcg
dHlwZXMKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmg6IEluY2x1ZGUgYSBu
ZXcgaGVhZGVyOiBXZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oOiBBZGRlZCBmdW5jdGlvbiBwcm90b3R5
cGUgZm9yIAorICAgICAgICB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhv
ZAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmg6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL3dlYmtpdC5oOiBJbmNsdWRlIGEg
bmV3IGhlYWRlcjogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaAorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6IEFkZGVkIG5ldyBzeW1ib2xzIGFu
ZCBuZXcgdHlwZXMKKwogMjAyMS0xMC0xOCAgSm9obiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5j
b20+CiAKICAgICAgICAgW1dlYkF1dGhuXSBPYnRhaW4gY29uc2VudCB0byBjcmVhdGUgbmV3IGNy
ZWRlbnRpYWwgd2hlbiBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yIGluIGV4Y2x1ZGVkQ3JlZGVudGlh
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDg4YzU2MGNjOWY2MmNlNWM1ZTljZGVmOWQ0
NzBkZTQ3ZmFkNDVhZTQuLjE0MTcwNWEyMDRlMDI4YzE4YzQ0MmEwZDk0Mjk0MzFhZTg4ODFmYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTQ2LDYgKzE0Niw3IEBAIHNldChXZWJLaXQy
R1RLX0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVUklSZXF1ZXN0LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVSSVJlc3BvbnNlLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VVJJVXRpbGl0aWVzLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUuaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1X
UEUuY21ha2UKaW5kZXggZjRjZDViZWY0MDJiMGM2M2UxZmJiN2EwNzEzMjkwMGNlNmY3MzhiYi4u
MGZiM2UzZTc4MDZjOThiMThlYjM0NGEwMzVhMzhjNTkwZTU4NzEyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
V1BFLmNtYWtlCkBAIC0xNzYsNiArMTc2LDcgQEAgc2V0KFdQRV9BUElfSU5TVEFMTEVEX0hFQURF
UlMKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVJlcXVlc3Qu
aAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJUmVzcG9uc2Uu
aAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hl
bWVSZXNwb25zZS5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRV
UklVdGlsaXRpZXMuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
VXNlckNvbnRlbnQuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNHVEsudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAppbmRleCA1Yzk1NGVlZjlh
ZTFiMmY5NGVmMDA4YjJhMzhhZjg4OTRiMGM5YWM1Li5mMjEyNDZmMDBjMThmMjM4MWZjZWU3MzE3
Zjk2NDlmMWI2NjFlMzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKQEAgLTE3Myw2ICsxNzMsNyBAQCBV
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2VjdXJpdHlPcmlnaW4uY3BwIEBuby11bmlmeQogVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAgQG5vLXVuaWZ5CitVSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFVSSVV0aWxpdGllcy5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0VXNlckNvbnRlbnQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVz
ZXJDb250ZW50RmlsdGVyU3RvcmUuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKaW5kZXgg
OGExYzMwZjMyZjNiOTM1MGEzMDZiZWY1MzBlY2IzMzQwYzFmMjljNy4uOTQ0MTlkZDg2ZjA3OWM1
YzUzZTY4Y2U4ZTc5YjkxNTUwNWE4N2FiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzV1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CkBAIC0xNjQsNiAr
MTY0LDcgQEAgVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNlY3VyaXR5T3JpZ2luLmNwcCBAbm8t
dW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAgQG5vLXVuaWZ5CiBV
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwIEBuby11bmlmeQorVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRVUklVdGlsaXRpZXMuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVzZXJDb250ZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdC5jcHAKaW5kZXggNmEwZDU5YzEwMjg5ZTFiODBjYTJhMTU1ZTQ2ZTdkZDk4OWY1ZTlmMS4u
MjRiNWZhMzQwNmNiZjNmMDJkNTI0NGVhZGU4OTQ1YzUzNGNkM2JiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdC5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJBUElEYXRhLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2
YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCkBAIC02NCwxMiArNjUsMTEgQEAgc3RydWN0
IF9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZSB7CiAgICAgQ1N0cmluZyB1cmlTY2hlbWU7
CiAgICAgQ1N0cmluZyB1cmlQYXRoOwogCi0gICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IHN0cmVh
bTsKLSAgICB1aW50NjRfdCBzdHJlYW1MZW5ndGg7CisgICAgR1JlZlB0cjxXZWJLaXRVUklTY2hl
bWVSZXNwb25zZT4gcmVzcG9uc2U7CiAgICAgR1JlZlB0cjxHQ2FuY2VsbGFibGU+IGNhbmNlbGxh
YmxlOwogICAgIGNoYXIgcmVhZEJ1ZmZlcltnUmVhZEJ1ZmZlclNpemVdOwogICAgIHVpbnQ2NF90
IGJ5dGVzUmVhZDsKLSAgICBDU3RyaW5nIGNvbnRlbnRUeXBlOworICAgIGNvbnN0IGNoYXIqIGh0
dHBNZXRob2Q7CiB9OwogCiBXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dCwgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdCwgR19UWVBFX09CSkVDVCkKQEAgLTE2MSw2ICsx
NjEsMjYgQEAgV2ViS2l0V2ViVmlldyogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2Vi
X3ZpZXcoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmUKICAgICByZXR1cm4gd2Via2l0V2ViQ29u
dGV4dEdldFdlYlZpZXdGb3JQYWdlKHJlcXVlc3QtPnByaXYtPndlYkNvbnRleHQsIHJlcXVlc3Qt
PnByaXYtPmluaXRpYXRpbmdQYWdlLmdldCgpKTsKIH0KIAorLyoqCisgKiB3ZWJraXRfdXJpX3Nj
aGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZDoKKyAqIEByZXF1ZXN0OiBhICNXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0CisgKgorICogR2V0IHRoZSBIVFRQIG1ldGhvZCBvZiB0aGUgQHJlcXVlc3QK
KyAqCisgKiBSZXR1cm5zOiB0aGUgSFRUUCBtZXRob2Qgb2YgdGhlIEByZXF1ZXN0CisgKiAKKyAq
IFNpbmNlOiAyLjM2CisgKi8KK2NvbnN0IGdjaGFyKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2dldF9odHRwX21ldGhvZChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQoreworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NIRU1FX1JFUVVFU1QocmVxdWVz
dCksIG51bGxwdHIpOworCisgICAgaWYgKCFyZXF1ZXN0LT5wcml2LT5odHRwTWV0aG9kKQorICAg
ICAgICByZXF1ZXN0LT5wcml2LT5odHRwTWV0aG9kID0gZ19pbnRlcm5fc3RyaW5nKHJlcXVlc3Qt
PnByaXYtPnRhc2stPnJlcXVlc3QoKS5odHRwTWV0aG9kKCkudXRmOCgpLmRhdGEoKSk7CisKKyAg
ICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+aHR0cE1ldGhvZDsKK30KKwogc3RhdGljIHZvaWQgd2Vi
a2l0VVJJU2NoZW1lUmVxdWVzdFJlYWRDYWxsYmFjayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFt
LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogc2NoZW1lUmVx
dWVzdCkKIHsKICAgICBHUmVmUHRyPFdlYktpdFVSSVNjaGVtZVJlcXVlc3Q+IHJlcXVlc3QgPSBh
ZG9wdEdSZWYoc2NoZW1lUmVxdWVzdCk7CkBAIC0xNzQsMjAgKzE5NCwyOSBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRT
dHJlYW0sIEdBc3luYwogICAgIFdlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlKiBwcml2ID0g
cmVxdWVzdC0+cHJpdjsKICAgICAvLyBOZWVkIHRvIGNoZWNrIHRoZSBzdHJlYW0gYmVmb3JlIHBy
b2NlZWRpbmcgYXMgaXQgY2FuIGJlIGNhbmNlbGxlZCBpZiBmaW5pc2hfZXJyb3IKICAgICAvLyB3
YXMgcHJldmlvdXNseSBjYWxsLCB3aGljaCB3b24ndCBiZSBkZXRlY3RlZCBieSBnX2lucHV0X3N0
cmVhbV9yZWFkX2ZpbmlzaCgpLgotICAgIGlmICghcHJpdi0+c3RyZWFtKQorICAgIGlmICghcHJp
di0+cmVzcG9uc2UpCiAgICAgICAgIHJldHVybjsKIAorICAgIFdlYktpdFVSSVNjaGVtZVJlc3Bv
bnNlKiByZXNwID0gcHJpdi0+cmVzcG9uc2UuZ2V0KCk7CiAgICAgaWYgKCFwcml2LT5ieXRlc1Jl
YWQpIHsKLSAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1
ZXN0KCkudXJsKCksIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUocHJpdi0+Y29udGVudFR5
cGUuZGF0YSgpKSwgcHJpdi0+c3RyZWFtTGVuZ3RoLCBlbXB0eVN0cmluZygpKTsKLSAgICAgICAg
cmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUo
cHJpdi0+Y29udGVudFR5cGUuZGF0YSgpKSk7Ci0gICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0
dXNDb2RlKDIwMCk7Ci0gICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KCJPSyJfcyk7
CisgICAgICAgIENTdHJpbmcgY29udGVudFR5cGUgPSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdl
dENvbnRlbnRUeXBlKHJlc3ApOworICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKHBy
aXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShj
b250ZW50VHlwZS5kYXRhKCkpLCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0cmVhbUxlbmd0
aChyZXNwKSwgZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIHJlc3BvbnNlLnNldFRleHRFbmNvZGlu
Z05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlLmRhdGEoKSkpOwor
ICAgICAgICBDU3RyaW5nIHN0YXR1c01lc3NhZ2UgPSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdl
dFN0YXR1c01lc3NhZ2UocmVzcCk7CisgICAgICAgIGlmIChzdGF0dXNNZXNzYWdlLmlzTnVsbCgp
KSB7CisgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOworICAgICAg
ICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKFdlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlR2V0U3RhdHVzQ29kZShyZXNwKSk7CisgICAgICAgICAgICByZXNwb25zZS5zZXRI
VFRQU3RhdHVzVGV4dChzdGF0dXNNZXNzYWdlLmRhdGEoKSk7CisgICAgICAgIH0KICAgICAgICAg
aWYgKHJlc3BvbnNlLm1pbWVUeXBlKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmVzcG9uc2Uu
c2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKHJlc3BvbnNlLnVy
bCgpLnBhdGgoKS50b1N0cmluZygpKSk7CiAgICAgICAgIHByaXYtPnRhc2stPmRpZFJlY2VpdmVS
ZXNwb25zZShyZXNwb25zZSk7CiAgICAgfQogCiAgICAgaWYgKCFieXRlc1JlYWQpIHsKKyAgICAg
ICAgcHJpdi0+cmVzcG9uc2UgPSBudWxscHRyOwogICAgICAgICBwcml2LT50YXNrLT5kaWRDb21w
bGV0ZSh7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjEzLDEzICsyNDIsMzEgQEAg
dm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaChXZWJLaXRVUklTY2hlbWVSZXF1
ZXN0KiByZXF1ZXN0LCBHSW5wdXRTdHIKICAgICBnX3JldHVybl9pZl9mYWlsKEdfSVNfSU5QVVRf
U1RSRUFNKGlucHV0U3RyZWFtKSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzdHJlYW1MZW5ndGgg
PT0gLTEgfHwgc3RyZWFtTGVuZ3RoID49IDApOwogCi0gICAgcmVxdWVzdC0+cHJpdi0+c3RyZWFt
ID0gaW5wdXRTdHJlYW07Ci0gICAgLy8gV2UgdXNlIC0xIGluIHRoZSBBUEkgZm9yIGNvbnNpc3Rl
bmN5IHdpdGggc291cCB3aGVuIHRoZSBjb250ZW50IGxlbmd0aCBpcyBub3Qga25vd24sIGJ1dCAw
IGludGVybmFsbHkuCi0gICAgcmVxdWVzdC0+cHJpdi0+c3RyZWFtTGVuZ3RoID0gc3RyZWFtTGVu
Z3RoID09IC0xID8gMCA6IHN0cmVhbUxlbmd0aDsKKyAgICBHUmVmUHRyPFdlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0R1JlZih3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25z
ZV9uZXcoaW5wdXRTdHJlYW0sIHN0cmVhbUxlbmd0aCkpOworICAgIGlmIChjb250ZW50VHlwZSkK
KyAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZShyZXNw
b25zZS5nZXQoKSwgY29udGVudFR5cGUpOworCisgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9maW5pc2hfd2l0aF9yZXNwb25zZShyZXF1ZXN0LCByZXNwb25zZS5nZXQoKSk7Cit9CisKKy8q
KgorICogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZToKKyAq
IEByZXF1ZXN0OiBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0CisgKiBAcmVzcG9uc2U6IGEgI1dl
YktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKgorICogRmluaXNoIGEgI1dlYktpdFVSSVNjaGVtZVJl
cXVlc3QgYnkgcmV0dXJuaW5nIGEgI1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKgorICogU2lu
Y2U6IDIuMzYKKyAqLwordm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRo
X3Jlc3BvbnNlKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIFdlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlKiByZXNwb25zZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19V
UklfU0NIRU1FX1JFUVVFU1QocmVxdWVzdCkpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lU
X0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0UocmVzcG9uc2UpKTsKKwogICAgIHJlcXVlc3QtPnByaXYt
PmNhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpOwotICAgIHJlcXVl
c3QtPnByaXYtPmJ5dGVzUmVhZCA9IDA7Ci0gICAgcmVxdWVzdC0+cHJpdi0+Y29udGVudFR5cGUg
PSBjb250ZW50VHlwZTsKLSAgICBnX2lucHV0X3N0cmVhbV9yZWFkX2FzeW5jKGlucHV0U3RyZWFt
LCByZXF1ZXN0LT5wcml2LT5yZWFkQnVmZmVyLCBnUmVhZEJ1ZmZlclNpemUsIFJ1bkxvb3BTb3Vy
Y2VQcmlvcml0eTo6QXN5bmNJT05ldHdvcmssIHJlcXVlc3QtPnByaXYtPmNhbmNlbGxhYmxlLmdl
dCgpLAorICAgIHJlcXVlc3QtPnByaXYtPnJlc3BvbnNlID0gcmVzcG9uc2U7CisKKyAgICBnX2lu
cHV0X3N0cmVhbV9yZWFkX2FzeW5jKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RyZWFtKHJl
c3BvbnNlKSwgcmVxdWVzdC0+cHJpdi0+cmVhZEJ1ZmZlciwgZ1JlYWRCdWZmZXJTaXplLCBSdW5M
b29wU291cmNlUHJpb3JpdHk6OkFzeW5jSU9OZXR3b3JrLCByZXF1ZXN0LT5wcml2LT5jYW5jZWxs
YWJsZS5nZXQoKSwKICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxHQXN5bmNSZWFkeUNhbGxiYWNr
Pih3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJlcXVl
c3QpKTsKIH0KIApAQCAtMjM4LDcgKzI4NSw3IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdF9maW5pc2hfZXJyb3IoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAg
ICAgZ19yZXR1cm5faWZfZmFpbChlcnJvcik7CiAKICAgICBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7Ci0gICAgcHJpdi0+c3RyZWFtID0gbnVsbHB0
cjsKKyAgICBwcml2LT5yZXNwb25zZSA9IG51bGxwdHI7CiAgICAgUmVzb3VyY2VFcnJvciByZXNv
dXJjZUVycm9yKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pLCB0b1dlYkNvcmVFcnJv
cihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOChlcnJvci0+bWVzc2FnZSkpOwogICAgIHByaXYtPnRhc2stPmRpZENvbXBsZXRlKHJlc291
cmNlRXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwOWY2OTg5
MmRmODRmYWU2NTIyNWUwZDU5MzUwYWIyYjg3YWU4ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5jcHAK
QEAgLTAsMCArMSwyMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgWml4aW5nIExpdQor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2
YXRlLmgiCisKKyNpbmNsdWRlICJBUElEYXRhLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5o
IgorI2luY2x1ZGUgIldlYlVSTFNjaGVtZVRhc2suaCIKKyNpbmNsdWRlIDxnbGliL2dpMThuLWxp
Yi5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9X
VEZHVHlwZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworZW51bSB7CisgICAg
UFJPUF8wLAorICAgIFBST1BfU1RSRUFNLAorICAgIFBST1BfU1RSRUFNX0xFTkdUSCwKKyAgICBO
X1BST1BFUlRJRVMsCit9OworCitzdGF0aWMgR1BhcmFtU3BlYyogc09ialByb3BlcnRpZXNbTl9Q
Uk9QRVJUSUVTXSA9IHsgbnVsbHB0ciwgfTsKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCisvKioKKyAqIFNFQ1RJT046IFdlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlCisgKiBAU2hvcnRfZGVzY3JpcHRpb246IFJlcHJlc2VudHMgYSBVUkkgc2NoZW1l
IHJlc3BvbnNlCisgKiBAVGl0bGU6IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKgorICogSWYg
eW91IHJlZ2lzdGVyIGEgcGFydGljdWxhciBVUkkgc2NoZW1lIGluIGEgI1dlYktpdFdlYkNvbnRl
eHQsCisgKiB1c2luZyB3ZWJraXRfd2ViX2NvbnRleHRfcmVnaXN0ZXJfdXJpX3NjaGVtZSgpLCB5
b3UgaGF2ZSB0byBwcm92aWRlCisgKiBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Q2FsbGJhY2su
IEFmdGVyIHRoYXQsIHdoZW4gYSBVUkkgcmVzcG9uc2UKKyAqIGlzIG1hZGUgd2l0aCB0aGF0IHBh
cnRpY3VsYXIgc2NoZW1lLCB5b3VyIGNhbGxiYWNrIHdpbGwgYmUKKyAqIGNhbGxlZC4gVGhlcmUg
eW91IHdpbGwgYmUgYWJsZSB0byBwcm92aWRlIG1vcmUgcmVzcG9uc2UgcGFyYW1ldGVycworICog
d2hlbiB0aGUgbWV0aG9kcyBhbmQgcHJvcGVydGllcyBvZiBhICNXZWJLaXRVUklTY2hlbWVSZXF1
ZXN0IGlzIG5vdAorICogZW5vdWdoLgorICogCisgKiBXaGVuIHlvdSBmaW5pc2hlZCBzZXR0aW5n
IHVwIHlvdXIgI1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLCBjYWxsCisgKiB3ZWJraXRfdXJpX3Jl
cXVlc3RfZmluaXNoX3dpdGhfcmVzcG9uc2UoKSB3aXRoIGl0IHRvIHJldHVybiB0aGUgcmVzcG9u
c2UuCisgKgorICovCisKK3N0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlIHsK
KyAgICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4gc3RyZWFtOworICAgIHVpbnQ2NF90IHN0cmVhbUxl
bmd0aDsKKworICAgIGludCBzdGF0dXNDb2RlID0gLTE7CisgICAgQ1N0cmluZyBzdGF0dXNNZXNz
YWdlOworICAgIENTdHJpbmcgY29udGVudFR5cGU7Cit9OworCitXRUJLSVRfREVGSU5FX1RZUEUo
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UsIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlLCBHX1RZ
UEVfT0JKRUNUKQorCitzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXNwb25zZUdldFByb3Bl
cnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1T
cGVjKiBwYXJhbVNwZWMpCit7CisgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3BvbnNl
ID0gV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0Uob2JqZWN0KTsKKworICAgIHN3aXRjaCAocHJv
cElkKSB7CisgICAgY2FzZSBQUk9QX1NUUkVBTToKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0
KHZhbHVlLCByZXNwb25zZS0+cHJpdi0+c3RyZWFtLmdldCgpKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBQUk9QX1NUUkVBTV9MRU5HVEg6CisgICAgICAgIGdfdmFsdWVfc2V0X2ludDY0KHZh
bHVlLCByZXNwb25zZS0+cHJpdi0+c3RyZWFtTGVuZ3RoKTsKKyAgICAgICAgYnJlYWs7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVj
dCwgcHJvcElkLCBwYXJhbVNwZWMpOworICAgIH0KK30KKworc3RhdGljIHZvaWQgd2Via2l0VVJJ
U2NoZW1lUmVzcG9uc2VTZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwg
Y29uc3QgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcGFyYW1TcGVjKQoreworICAgIFdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlKiByZXNwb25zZSA9IFdFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNF
KG9iamVjdCk7CisgICAgZ2ludDY0IHN0cmVhbUxlbmd0aDsKKworICAgIHN3aXRjaCAocHJvcElk
KSB7CisgICAgY2FzZSBQUk9QX1NUUkVBTToKKyAgICAgICAgcmVzcG9uc2UtPnByaXYtPnN0cmVh
bSA9IEdfSU5QVVRfU1RSRUFNKGdfdmFsdWVfZ2V0X29iamVjdCh2YWx1ZSkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFBST1BfU1RSRUFNX0xFTkdUSDoKKyAgICAgICAgc3RyZWFtTGVuZ3Ro
ID0gZ192YWx1ZV9nZXRfaW50NjQodmFsdWUpOworICAgICAgICAvLyBXZSB1c2UgLTEgaW4gdGhl
IEFQSSBmb3IgY29uc2lzdGVuY3kgd2l0aCBzb3VwIHdoZW4gdGhlIGNvbnRlbnQgbGVuZ3RoIGlz
IG5vdCBrbm93biwgYnV0IDAgaW50ZXJuYWxseS4KKyAgICAgICAgcmVzcG9uc2UtPnByaXYtPnN0
cmVhbUxlbmd0aCA9IHN0cmVhbUxlbmd0aCA9PSAtMSA/IDAgOiBzdHJlYW1MZW5ndGg7CisgICAg
ICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9Q
Uk9QRVJUWV9JRChvYmplY3QsIHByb3BJZCwgcGFyYW1TcGVjKTsKKyAgICB9Cit9CisKK3N0YXRp
YyB2b2lkIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2NsYXNzX2luaXQoV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2VDbGFzcyoga2xhc3MpCit7CisgICAgR09iamVjdENsYXNzKiBvYmplY3RDbGFz
cyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKyAgICBvYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5
ID0gd2Via2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRQcm9wZXJ0eTsKKyAgICBvYmplY3RDbGFzcy0+
c2V0X3Byb3BlcnR5ID0gd2Via2l0VVJJU2NoZW1lUmVzcG9uc2VTZXRQcm9wZXJ0eTsKKworICAg
IC8qKgorICAgICAqIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlOnN0cmVhbToKKyAgICAgKgorICAg
ICAqIFRoZSBpbnB1dCBzdHJlYW0gdG8gcmVhZCBmcm9tLgorICAgICAqLworICAgIHNPYmpQcm9w
ZXJ0aWVzW1BST1BfU1RSRUFNXSA9IAorICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAorICAg
ICAgICAgICAgInN0cmVhbSIsCisgICAgICAgICAgICBfKCJJbnB1dCBzdHJlYW0iKSwKKyAgICAg
ICAgICAgIF8oIlRoZSBpbnB1dCBzdHJlYW0gdG8gcmVhZCBmcm9tLiIpLAorICAgICAgICAgICAg
R19UWVBFX0lOUFVUX1NUUkVBTSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdz
PihXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1RfT05MWSkpOworCisg
ICAgLyoqCisgICAgICogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2U6c3RyZWFtX2xlbmd0aDoKKyAg
ICAgKgorICAgICAqIFRoZSBpbnB1dCBzdHJlYW0gbGVuZ3RoIGluIGJ5dGVzLiAtMSBmb3IgdW5r
bm93biBsZW5ndGguCisgICAgICovCisgICAgc09ialByb3BlcnRpZXNbUFJPUF9TVFJFQU1fTEVO
R1RIXSA9IAorICAgICAgICBnX3BhcmFtX3NwZWNfaW50NjQoCisgICAgICAgICAgICAic3RyZWFt
LWxlbmd0aCIsCisgICAgICAgICAgICBfKCJJbnB1dCBzdHJlYW0gbGVuZ3RoIiksCisgICAgICAg
ICAgICBfKCJUaGUgaW5wdXQgc3RyZWFtIGxlbmd0aCBpbiBieXRlcy4gLTEgZm9yIHVua25vd24g
bGVuZ3RoLiIpLAorICAgICAgICAgICAgLTEsIElOVDY0X01BWCwgLTEsCisgICAgICAgICAgICBz
dGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1f
Q09OU1RSVUNUX09OTFkpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydGll
cyhvYmplY3RDbGFzcywgTl9QUk9QRVJUSUVTLCBzT2JqUHJvcGVydGllcyk7Cit9CisKKy8vIFBy
aXZhdGUgZ2V0dGVycworaW50IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzQ29kZShj
b25zdCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIHJl
c3BvbnNlLT5wcml2LT5zdGF0dXNDb2RlOworfQorCitHSW5wdXRTdHJlYW0qIFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlR2V0U3RyZWFtKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKiByZXNw
b25zZSkKK3sKKyAgICByZXR1cm4gcmVzcG9uc2UtPnByaXYtPnN0cmVhbS5nZXQoKTsKK30KKwor
Y29uc3QgQ1N0cmluZyBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0YXR1c01lc3NhZ2UoY29u
c3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3BvbnNlKQoreworICAgIHJldHVybiByZXNw
b25zZS0+cHJpdi0+c3RhdHVzTWVzc2FnZTsKK30KKworY29uc3QgQ1N0cmluZyBXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
KiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gcmVzcG9uc2UtPnByaXYtPmNvbnRlbnRUeXBlOwor
fQorCit1aW50NjRfdCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0cmVhbUxlbmd0aChjb25z
dCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIHJlc3Bv
bnNlLT5wcml2LT5zdHJlYW1MZW5ndGg7Cit9CisKKy8qKgorICogd2Via2l0X3VyaV9zY2hlbWVf
cmVzcG9uc2VfbmV3OgorICogQHN0cmVhbTogYSAjR0lucHV0U3RyZWFtIHRvIHJlYWQgdGhlIGNv
bnRlbnRzIG9mIHRoZSByZXF1ZXN0CisgKiBAc3RyZWFtX2xlbmd0aDogdGhlIGxlbmd0aCBvZiB0
aGUgc3RyZWFtIG9yIC0xIGlmIG5vdCBrbm93bgorICoKKyAqIENyZWF0ZSBhIG5ldyAjV2ViS2l0
VVJJU2NoZW1lUmVzcG9uc2UKKyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IHRoZSBu
ZXdseSBjcmVhdGVkICNXZWJLaXRVUklTY2hlbWVSZXNwb25zZS4KKyAqCisgKiBTaW5jZTogMi4z
NgorICovCitXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9u
c2VfbmV3KEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIGdpbnQ2NCBzdHJlYW1MZW5ndGgpCit7
CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoR19JU19JTlBVVF9TVFJFQU0oaW5wdXRTdHJlYW0p
LCBudWxscHRyKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzdHJlYW1MZW5ndGggPT0gLTEg
fHwgc3RyZWFtTGVuZ3RoID49IDAsIG51bGxwdHIpOworCisgICAgV2ViS2l0VVJJU2NoZW1lUmVz
cG9uc2UqIHJlc3BvbnNlID0gV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0UoZ19vYmplY3RfbmV3
KFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UsICJzdHJlYW0iLCBpbnB1dFN0cmVhbSwg
InN0cmVhbS1sZW5ndGgiLCBzdHJlYW1MZW5ndGgsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gcmVz
cG9uc2U7Cit9CisKKy8qKgorICogd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRl
bnRfdHlwZToKKyAqIEByZXNwb25zZTogYSAjV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAqIEBj
b250ZW50X3R5cGU6IHRoZSBjb250ZW50IHR5cGUgb2YgdGhlIHN0cmVhbQorICoKKyAqIFNldHMg
dGhlIGNvbnRlbnQgdHlwZSBmb3IgdGhlIEByZXNwb25zZQorICoKKyAqIFNpbmNlOiAyLjM2Cisg
Ki8KK3ZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZShXZWJL
aXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UsIGNvbnN0IGdjaGFyKiBjb250ZW50VHlwZSkK
K3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFKHJl
c3BvbnNlKSk7CisKKyAgICByZXNwb25zZS0+cHJpdi0+Y29udGVudFR5cGUgPSBjb250ZW50VHlw
ZTsKK30KKworLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzOgor
ICogQHJlc3BvbnNlOiBhICNXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICogQHN0YXR1c19jb2Rl
OiB0aGUgSFRUUCBzdGF0dXMgY29kZSB0byBiZSByZXR1cm5lZAorICogQHJlYXNvbl9waHJhc2U6
IChhbGxvdy1ub25lKTogYSByZWFzb24gcGhyYXNlCisgKgorICogU2V0cyB0aGUgc3RhdHVzIGNv
ZGUgYW5kIHJlYXNvbiBwaHJhc2UgZm9yIHRoZSBAcmVzcG9uc2UuCisgKiBJZiBAc3RhdHVzX2Nv
ZGUgaXMgYSBrbm93biB2YWx1ZSBhbmQgQHJlYXNvbl9waHJhc2UgaXMgJU5VTEwsIHRoZSBAcmVh
c29uX3BocmFzZSB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5LgorICoKKyAqIFNpbmNlOiAyLjM2
CisgKi8KK3ZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cyhXZWJLaXRV
UklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UsIGd1aW50IHN0YXR1c0NvZGUsIGNvbnN0IGdjaGFy
KiBzdGF0dXNNZXNzYWdlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9T
Q0hFTUVfUkVTUE9OU0UocmVzcG9uc2UpKTsKKworICAgIHJlc3BvbnNlLT5wcml2LT5zdGF0dXND
b2RlID0gc3RhdGljX2Nhc3Q8Z2ludD4oc3RhdHVzQ29kZSk7CisgICAgaWYgKHN0YXR1c01lc3Nh
Z2UpCisgICAgICAgIHJlc3BvbnNlLT5wcml2LT5zdGF0dXNNZXNzYWdlID0gc3RhdHVzTWVzc2Fn
ZTsKKyAgICBlbHNlCisgICAgICAgIHJlc3BvbnNlLT5wcml2LT5zdGF0dXNNZXNzYWdlID0gc291
cF9zdGF0dXNfZ2V0X3BocmFzZShzdGF0dXNDb2RlKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2VQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjU0ZDBiMDJmZjc0NzkzY2MxZTczYTNhM2M3YTRmZGUx
NjcyNjUyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZS5oCkBAIC0wLDAgKzEsMjkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgWml4aW5nIExpdQorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIldlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgorCitpbnQgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRTdGF0dXNDb2RlKGNvbnN0IFdl
YktpdFVSSVNjaGVtZVJlc3BvbnNlKik7CitHSW5wdXRTdHJlYW0qIFdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlR2V0U3RyZWFtKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKik7Citjb25zdCBD
U3RyaW5nIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzTWVzc2FnZShjb25zdCBXZWJL
aXRVUklTY2hlbWVSZXNwb25zZSopOworY29uc3QgQ1N0cmluZyBXZWJLaXRVUklTY2hlbWVSZXNw
b25zZUdldENvbnRlbnRUeXBlKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKik7Cit1aW50
NjRfdCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0cmVhbUxlbmd0aChjb25zdCBXZWJLaXRV
UklTY2hlbWVSZXNwb25zZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKaW5kZXggYTRhYWZkNzNmYjJhYTdkODNiNWEzZjM2
OWEwMmU2MWU4NjBkZDI0ZS4uMjVkZjdkMDc4NWNmOGY2ZDk1OGVlZDg4MDZhZGMyMzcwYzMzODNl
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRv
Y2xlYW51cHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1
dG9jbGVhbnVwcy5oCkBAIC02Miw2ICs2Miw3IEBAIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9G
VU5DIChXZWJLaXRTZXR0aW5ncywgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NM
RUFOVVBfRlVOQyAoV2ViS2l0VVJJUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9B
VVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJUmVzcG9uc2UsIGdfb2JqZWN0X3VucmVmKQog
R19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QsIGdf
b2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9G
VU5DIChXZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLCBnX29iamVjdF91bnJlZikKIEdfREVG
SU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIsIGdfb2Jq
ZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKaW5kZXgg
ZDJiMDZhMTRkYzVhMjA3ZTg3NTY0YTBlYmMzNWJjYzEzOWIxZWM0ZS4uMmI4OGFhNmE4OTc4NDdi
YTE0ZjZlODkyMjQ2MzA3Njg1ZjNkZTk5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKQEAgLTI3LDYgKzI3
LDcgQEAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0
RGVmaW5lcy5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5o
PgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaD4KIAogR19CRUdJ
Tl9ERUNMUwogCkBAIC03MSwxMiArNzIsMTkgQEAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9n
ZXRfcGF0aCAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOwogV0VCS0lUX0FQ
SSBXZWJLaXRXZWJWaWV3ICoKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3
IChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKIAorV0VCS0lUX0FQSSBjb25zdCBn
Y2hhciAqCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZCAoV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CisKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3Vy
aV9zY2hlbWVfcmVxdWVzdF9maW5pc2ggICAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJl
cXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0lucHV0U3Ry
ZWFtICAgICAgICAgICAqc3RyZWFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdpbnQ2NCAgICAgICAgICAgICAgICAgIHN0cmVhbV9sZW5ndGgsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAqY29u
dGVudF90eXBlKTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2ZpbmlzaF93aXRoX3Jlc3BvbnNlIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICAqcmVxdWVzdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFVS
SVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSk7CisKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3Vy
aV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3IgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJl
cXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAg
ICAgICAgICAgICAgICAqZXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjNzBj
ZTY3M2VhMjQ0ZGUwNzAwZjBmNjA0MWVlNmVhYjYwYTc3ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgK
QEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBaaXhpbmcgTGl1Cisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNp
ZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01Q
SUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRl
ZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRVUklTY2hlbWVSZXNwb25zZV9o
CisjZGVmaW5lIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlX2gKKworI2luY2x1ZGUgPGdsaWItb2Jq
ZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRGb3J3YXJkRGVjbGFyYXRpb25zLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2Rl
ZmluZSBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFICAgICAgICAgICAgKHdlYmtpdF91
cmlfc2NoZW1lX3Jlc3BvbnNlX2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9VUklfU0NIRU1F
X1JFU1BPTlNFKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9i
aiksIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UsIFdlYktpdFVSSVNjaGVtZVJlc3Bv
bnNlKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0Uob2JqKSAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfVVJJX1NDSEVN
RV9SRVNQT05TRSkpCisjZGVmaW5lIFdFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFX0NMQVNTKGts
YXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1VS
SV9TQ0hFTUVfUkVTUE9OU0UsIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MpKQorI2RlZmlu
ZSBXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVD
S19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFKSkK
KyNkZWZpbmUgV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfR0VUX0NMQVNTKG9iaikgIChHX1RZ
UEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQ
T05TRSwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRVUklTY2hlbWVSZXNwb25zZSAgICAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2U7Cit0
eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcyAgIFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2VQcml2YXRlIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZTsKKworc3RydWN0IF9XZWJL
aXRVUklTY2hlbWVSZXNwb25zZSB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICBXZWJLaXRV
UklTY2hlbWVSZXNwb25zZVByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdFVSSVNj
aGVtZVJlc3BvbnNlQ2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAg
ICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9y
ZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsK
KyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkg
R1R5cGUKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2dldF90eXBlICAgICAgICAgICAodm9p
ZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgKgord2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2VfbmV3ICAgICAgICAgICAgICAgIChHSW5wdXRTdHJlYW0gICAgICAgICAg
ICAqaW5wdXRfc3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnaW50NjQgICAgICAgICAgICAgICAgICAgc3RyZWFtX2xlbmd0aCk7CisKK1dFQktJ
VF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cyAgICAgICAg
IChXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICAgICBzdGF0
dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgZ2NoYXIgICAgICAgICAgICAgKnJlYXNvbl9waHJhc2UpOworCitXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9jb250ZW50X3R5cGUgICAoV2ViS2l0
VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAqY29udGVudF90eXBl
KTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0IGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4
dAppbmRleCAxYmFiYjkzOWZjZWMxNmY5NDkzNGFmMzg4ZTQxNmU5MDNiZTFlZTg3Li43N2M0NTRh
NWE0MjE5MzEzMGZjOTIxMjczNDY5MDFiYjZkZjM2OGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1z
ZWN0aW9ucy50eHQKQEAgLTEyNzcsNyArMTI3Nyw5IEBAIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZ2V0X3NjaGVtZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpCiB3ZWJraXRf
dXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9wYXRoCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dl
dF93ZWJfdmlldword2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QKIHdl
YmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2ZpbmlzaF93aXRoX3Jlc3BvbnNlCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9l
cnJvcgogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KQEAgLTEyOTQsNiArMTI5NiwyNyBAQCBXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRf
dHlwZQogPC9TRUNUSU9OPgogCis8U0VDVElPTj4KKzxGSUxFPldlYktpdFVSSVNjaGVtZVJlc3Bv
bnNlPC9GSUxFPgorV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UKK3dlYmtpdF91cmlfc2NoZW1lX3Jl
c3BvbnNlX25ldword2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZQor
d2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cworCis8U1VCU0VDVElPTiBTdGFu
ZGFyZD4KK1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MKK1dFQktJVF9UWVBFX1VSSV9TQ0hF
TUVfUkVTUE9OU0UKK1dFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfSVNfVVJJX1ND
SEVNRV9SRVNQT05TRQorV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1MKK1dFQktJVF9J
U19VUklfU0NIRU1FX1JFU1BPTlNFX0NMQVNTCitXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9H
RVRfQ0xBU1MKKworPFNVQlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdFVSSVNjaGVtZVJlc3BvbnNl
UHJpdmF0ZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUKKzwvU0VDVElPTj4K
KwogPFNFQ1RJT04+CiA8RklMRT5XZWJLaXRWZXJzaW9uPC9GSUxFPgogd2Via2l0X2dldF9tYWpv
cl92ZXJzaW9uCkBAIC0xOTg1LDQgKzIwMDgsMyBAQCB3ZWJraXRfbWVtb3J5X3ByZXNzdXJlX3Nl
dHRpbmdzX2dldF90eXBlCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KIFdFQktJVF9UWVBFX01FTU9S
WV9QUkVTU1VSRV9TRVRUSU5HUwogPC9TRUNUSU9OPgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAudHlwZXMgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAudHlwZXMKaW5kZXgg
NDkzN2FiYjU2NDg3M2NlMDZlYjY0MzE1OTFkZTMxZGNiMWQwYzU1MS4uZWY2ZThhZDY1OTU2NTlj
MGQ1MGY1YzYyZDM1MDVhMjE2YjcwYWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLnR5cGVzCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC50eXBlcwpAQCAtMTksNiAr
MTksNyBAQCB3ZWJraXRfcGx1Z2luX2dldF90eXBlCiB3ZWJraXRfbWltZV9pbmZvX2dldF90eXBl
CiB3ZWJraXRfd2ViX2luc3BlY3Rvcl9nZXRfdHlwZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9nZXRfdHlwZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUKIHdlYmtpdF9j
b250ZXh0X21lbnVfZ2V0X3R5cGUKIHdlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9nZXRfdHlwZQog
d2Via2l0X3dlYl9leHRlbnNpb25fZ2V0X3R5cGUKQEAgLTQyLDQgKzQzLDQgQEAgd2Via2l0X29w
dGlvbl9tZW51X2l0ZW1fZ2V0X3R5cGUKIHdlYmtpdF9kZXZpY2VfaW5mb19wZXJtaXNzaW9uX3Jl
cXVlc3RfZ2V0X3R5cGUKIHdlYmtpdF9nZW9sb2NhdGlvbl9tYW5hZ2VyX2dldF90eXBlCiB3ZWJr
aXRfZ2VvbG9jYXRpb25fcG9zaXRpb25fZ2V0X3R5cGUKLXdlYmtpdF9wb2ludGVyX2xvY2tfcGVy
bWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQord2Vi
a2l0X3BvaW50ZXJfbG9ja19wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dt
bCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Mu
c2dtbAppbmRleCA0MTFlZTY0ZDgzMzMzZjA1MjMwNmM1Yjk5ZDA3M2JiNDI3OTc4YTY1Li5lMTJj
N2RiNWM3OTZmYzU4Y2E4NjJkMDYyYmFjNzFjODA4ZWE2MGJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21s
CkBAIC00NSw2ICs0NSw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBsdWdp
bi54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0V2ViSW5zcGVjdG9yLnht
bCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lnht
bCIvPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS54
bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0VmVyc2lvbi54bWwiLz4KICAg
ICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0Q29udGV4dE1lbnUueG1sIi8+CiAgICAgPHhp
OmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdENvbnRleHRNZW51SXRlbS54bWwiLz4KQEAgLTE3MCw1
ICsxNzEsMTAgQEAKICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LTIuMzAueG1s
Ij48eGk6ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CiAgIDwvaW5kZXg+CiAKKyAgPGluZGV4IGlk
PSJhcGktaW5kZXgtMi0zNiIgcm9sZT0iMi4zNiI+CisgICAgPHRpdGxlPkluZGV4IG9mIG5ldyBz
eW1ib2xzIGluIDIuMzY8L3RpdGxlPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hcGktaW5k
ZXgtMi4zNi54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KKyAgPC9pbmRleD4KKwog
ICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYW5ub3RhdGlvbi1nbG9zc2FyeS54bWwiPjx4aTpmYWxs
YmFjayAvPjwveGk6aW5jbHVkZT4KIDwvYm9vaz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay93ZWJraXQyLmgKaW5kZXggYjdkMjc0MWM0YjJjMWFkNGUzNGExZmFiNDhmZWM2MWFmMWM2
MTAyZC4uNWNkOTUyNDI1MmE5N2Q0ZWE2NGRmZWIyMmU1YTQ3YjU1ZjM2Yzg4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKQEAgLTc4LDYgKzc4LDcgQEAKICNp
bmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dl
YktpdFVSSVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklTY2hlbWVSZXF1
ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oPgogI2lu
Y2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9X
ZWJLaXRVc2VyQ29udGVudC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VXNlckNvbnRlbnRG
aWx0ZXJTdG9yZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXRBdXRvY2xlYW51cHMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
V2ViS2l0QXV0b2NsZWFudXBzLmgKaW5kZXggNzdhYjc3YmM5ODRlNzBkM2ZhY2UwMDMzZjEyNDJk
MjZjNDAyZDBiNi4uNWUyMGY0MzVlMjMxZGU0Zjk1ZjJlN2ExZTRmOTk4OTg3YTY4Y2FkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRBdXRvY2xlYW51
cHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEF1dG9jbGVh
bnVwcy5oCkBAIC01Niw2ICs1Niw3IEBAIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChX
ZWJLaXRTZXR0aW5ncywgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBf
RlVOQyAoV2ViS2l0VVJJUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRS
X0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJUmVzcG9uc2UsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJ
TkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QsIGdfb2JqZWN0
X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChX
ZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FV
VE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIsIGdfb2JqZWN0X3Vu
cmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKaW5kZXggOGViZWRh
NGU3N2YxYmJkMThlMWNiZGFkYzNmN2YyNDZlMDk5MTdiMS4uZTg4Y2E3OWU1NzVlNDliZjY3NjE3
MWMzYzlkYzRjNzQzY2Q1YjA4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKQEAgLTI2LDYgKzI2LDcgQEAK
IAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMu
aD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaD4KIAogR19CRUdJTl9E
RUNMUwogCkBAIC03MiwxMiArNzMsMTkgQEAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRf
cGF0aCAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOwogV0VCS0lUX0FQSSBX
ZWJLaXRXZWJWaWV3ICoKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3IChX
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKIAorV0VCS0lUX0FQSSBjb25zdCBnY2hh
ciAqCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZCAoV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CisKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3VyaV9z
Y2hlbWVfcmVxdWVzdF9maW5pc2ggICAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVl
c3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0lucHV0U3RyZWFt
ICAgICAgICAgICAqc3RyZWFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdpbnQ2NCAgICAgICAgICAgICAgICAgIHN0cmVhbV9sZW5ndGgsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAqY29udGVu
dF90eXBlKTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2Zp
bmlzaF93aXRoX3Jlc3BvbnNlIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICAqcmVxdWVzdCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlICpyZXNwb25zZSk7CisKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3VyaV9z
Y2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3IgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVl
c3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAg
ICAgICAgICAgICAqZXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyMjBiMWY0
Njg4NjcxNjM5Zjc2YWY4MWM3Mjc1ZmZlNzkxY2M1ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgKQEAg
LTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBaaXhpbmcgTGl1CisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAh
ZGVmaW5lZChfX1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFU
SU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3Rs
eS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRVUklTY2hlbWVSZXNwb25zZV9oCisjZGVmaW5l
IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlX2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Cisj
aW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5l
IFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UgICAgICAgICAgICAod2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1VSSV9TQ0hFTUVfUkVT
UE9OU0Uob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwg
V0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2Up
KQorI2RlZmluZSBXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRShvYmopICAgICAgICAgKEdf
VFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JF
U1BPTlNFKSkKKyNkZWZpbmUgV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1Moa2xhc3Mp
ICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVJJX1ND
SEVNRV9SRVNQT05TRSwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcykpCisjZGVmaW5lIFdF
QktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NM
QVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UpKQorI2Rl
ZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9J
TlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNF
LCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktp
dFVSSVNjaGVtZVJlc3BvbnNlICAgICAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZTsKK3R5cGVk
ZWYgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzICAgV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZVBy
aXZhdGUgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlOworCitzdHJ1Y3QgX1dlYktpdFVS
SVNjaGVtZVJlc3BvbnNlIHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2VDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKKworICAgIHZv
aWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2Vy
dmVkMSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOworICAg
IHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlw
ZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUgICAgICAgICAgICh2b2lkKTsK
KworV0VCS0lUX0FQSSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqCit3ZWJraXRfdXJpX3NjaGVt
ZV9yZXNwb25zZV9uZXcgICAgICAgICAgICAgICAgKEdJbnB1dFN0cmVhbSAgICAgICAgICAgICpp
bnB1dF9zdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdpbnQ2NCAgICAgICAgICAgICAgICAgICBzdHJlYW1fbGVuZ3RoKTsKKworV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzICAgICAgICAgKFdl
YktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgICAgIHN0YXR1c19j
b2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBnY2hhciAgICAgICAgICAgICAqcmVhc29uX3BocmFzZSk7CisKK1dFQktJVF9BUEkgdm9pZAor
d2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZSAgIChXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZSAqcmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICpjb250ZW50X3R5cGUpOwor
CitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dAppbmRleCBiOGIwOGQyZjkx
ZjI1NjRjZWY3ZGEwYjhlY2VkYzhhMTEyZDViZTkwLi4wYTljZjI0YzczOGQyY2MwNTc1ZjAwZDcz
ZGRjZTdjMGI0NmJiZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CkBAIC0xMjE0LDcgKzEyMTQsOSBA
QCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9zY2hlbWUKIHdlYmtpdF91cmlfc2NoZW1l
X3JlcXVlc3RfZ2V0X3VyaQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfcGF0aAogd2Vi
a2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcKK3dlYmtpdF91cmlfc2NoZW1lX3Jl
cXVlc3RfZ2V0X2h0dHBfbWV0aG9kCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaAor
d2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZQogd2Via2l0X3Vy
aV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3IKIAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CkBA
IC0xMjMxLDYgKzEyMzMsMjcgQEAgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUKIHdlYmtp
dF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3R5cGUKIDwvU0VDVElPTj4KIAorPFNFQ1RJT04+Cis8
RklMRT5XZWJLaXRVUklTY2hlbWVSZXNwb25zZTwvRklMRT4KK1dlYktpdFVSSVNjaGVtZVJlc3Bv
bnNlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9uZXcKK3dlYmtpdF91cmlfc2NoZW1lX3Jl
c3BvbnNlX3NldF9jb250ZW50X3R5cGUKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9z
dGF0dXMKKworPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CitXZWJLaXRVUklTY2hlbWVSZXNwb25zZUNs
YXNzCitXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfVVJJX1NDSEVNRV9S
RVNQT05TRQorV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0UKK1dFQktJVF9VUklfU0NIRU1F
X1JFU1BPTlNFX0NMQVNTCitXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRV9DTEFTUworV0VC
S0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfR0VUX0NMQVNTCisKKzxTVUJTRUNUSU9OIFByaXZhdGU+
CitXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3Bv
bnNlX2dldF90eXBlCis8L1NFQ1RJT04+CisKIDxTRUNUSU9OPgogPEZJTEU+V2ViS2l0VmVyc2lv
bjwvRklMRT4KIHdlYmtpdF9nZXRfbWFqb3JfdmVyc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS1kb2NzLnNnbWwgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLWRvY3Muc2dtbAppbmRleCA4ZTI1N2YwMmYxMWZl
YmVjZDJhNTY3M2I4ZTg3MDZkNWVjNmM2ODM5Li4yYmNjMGNiZGE4ODVkZjliZjc0OTUzNGUzZGQx
ZWViNjk5YmQxMWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3Bl
L2RvY3Mvd3BlLWRvY3Muc2dtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3Bl
L2RvY3Mvd3BlLWRvY3Muc2dtbApAQCAtNDEsNiArNDEsNyBAQAogICAgIDx4aTppbmNsdWRlIGhy
ZWY9InhtbC9XZWJLaXRDb29raWVNYW5hZ2VyLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9
InhtbC9XZWJLaXRQbHVnaW4ueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktp
dFVSSVNjaGVtZVJlcXVlc3QueG1sIi8+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktp
dFVSSVNjaGVtZVJlc3BvbnNlLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJL
aXRDb250ZXh0TWVudS54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0Q29u
dGV4dE1lbnVJdGVtLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRGb3Jt
U3VibWlzc2lvblJlcXVlc3QueG1sIi8+CkBAIC0xMDgsNSArMTA5LDEwIEBACiAgICAgPHhpOmlu
Y2x1ZGUgaHJlZj0ieG1sL2FwaS1pbmRleC0yLjMwLnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTpp
bmNsdWRlPgogICA8L2luZGV4PgogCisgIDxpbmRleCBpZD0iYXBpLWluZGV4LTItMzYiIHJvbGU9
IjIuMzYiPgorICAgIDx0aXRsZT5JbmRleCBvZiBuZXcgc3ltYm9scyBpbiAyLjM2PC90aXRsZT4K
KyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LTIuMzYueG1sIj48eGk6ZmFsbGJh
Y2sgLz48L3hpOmluY2x1ZGU+CisgIDwvaW5kZXg+CisKICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1s
L2Fubm90YXRpb24tZ2xvc3NhcnkueG1sIj48eGk6ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CiA8
L2Jvb2s+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL3dlYmtp
dC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS93ZWJraXQuaAppbmRleCA1Yzkz
ZDc2MGY3MzRhMTJmNjE0ODk5NTQ1MTM1ZmRmNzcwMTY0NTc1Li5jMjIyMWVmYzAwNjE4YzJlYzRk
MjBhODhjNTk4NDA3NjdiZDUyZmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL3dlYmtpdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
d2Via2l0LmgKQEAgLTczLDYgKzczLDcgQEAKICNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJUmVxdWVz
dC5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXRVUklSZXNwb25zZS5oPgogI2luY2x1ZGUgPHdwZS9X
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlLmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVV0aWxpdGllcy5oPgogI2luY2x1ZGUg
PHdwZS9XZWJLaXRVc2VyQ29udGVudC5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXRVc2VyQ29udGVu
dEZpbHRlclN0b3JlLmg+CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggZTAwMjNhMjQ4NTA4OWRjYTM3OTE2NzgxYzg2MTI2Yjk3MjI0NmE1ZS4uOWFi
OGQ0YTU1MGIxZTI2ZGU4ZjNkZTY3NjZiNGVmZjlhNjlkNzg1MiAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTEw
LTIwICBaaXhpbmcgTGl1ICA8bGl1c2h1eXUwMTFAZ21haWwuY29tPgorCisgICAgICAgIFtHVEtd
W1dQRV0gU3VwcG9ydCBzZXR0aW5nIHN0YXR1cyBjb2RlIGFuZCBnZXR0aW5nIEhUVFAgbWV0aG9k
IGluIGN1c3RvbSBVUkkgc2NoZW1lIGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9U
ZXN0V2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgICh0ZXN0V2ViQ29udGV4dFVSSVNjaGVt
ZSk6IEFkZGVkIHRlc3RzIHRvIHRlc3QgbmV3IHB1YmxpYyBBUElzIGZvciBXZWJLaXRHdGsKKwog
MjAyMS0xMC0xOCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODQzOTkuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNw
cAppbmRleCBiOTM2YzhlMDc3NWExN2FjYWJlMjEyOGFhNzE5MzJlNWY0ZDkwZjQzLi45MDhhNDkz
ZjE0ZjA2OTA1NWM1MjYxODc2YzQ2MzI2YmUyNWE1ODE0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4
dC5jcHAKQEAgLTk1LDE2ICs5NSwxOCBAQCBwdWJsaWM6CiAgICAgICAgIHsKICAgICAgICAgfQog
Ci0gICAgICAgIFVSSVNjaGVtZUhhbmRsZXIoY29uc3QgY2hhciogcmVwbHksIGludCByZXBseUxl
bmd0aCwgY29uc3QgY2hhciogbWltZVR5cGUpCisgICAgICAgIFVSSVNjaGVtZUhhbmRsZXIoY29u
c3QgY2hhciogcmVwbHksIGludCByZXBseUxlbmd0aCwgY29uc3QgY2hhciogbWltZVR5cGUsIGlu
dCBzdGF0dXNDb2RlID0gMjAwKQogICAgICAgICAgICAgOiByZXBseShyZXBseSkKICAgICAgICAg
ICAgICwgcmVwbHlMZW5ndGgocmVwbHlMZW5ndGgpCiAgICAgICAgICAgICAsIG1pbWVUeXBlKG1p
bWVUeXBlKQorICAgICAgICAgICAgLCBzdGF0dXNDb2RlKHN0YXR1c0NvZGUpCiAgICAgICAgIHsK
ICAgICAgICAgfQogCiAgICAgICAgIENTdHJpbmcgcmVwbHk7CiAgICAgICAgIGludCByZXBseUxl
bmd0aDsKICAgICAgICAgQ1N0cmluZyBtaW1lVHlwZTsKKyAgICAgICAgaW50IHN0YXR1c0NvZGU7
CiAgICAgfTsKIAogICAgIHN0YXRpYyB2b2lkIHVyaVNjaGVtZVJlcXVlc3RDYWxsYmFjayhXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCBncG9pbnRlciB1c2VyRGF0YSkKQEAgLTEyMCw2
ICsxMjIsMTMgQEAgcHVibGljOgogICAgICAgICBnX2Fzc2VydF9ub25udWxsKHNjaGVtZSk7CiAg
ICAgICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+bV9oYW5kbGVyc01hcC5jb250YWlucyhTdHJpbmc6
OmZyb21VVEY4KHNjaGVtZSkpKTsKIAorICAgICAgICBjb25zdCBjaGFyKiBtZXRob2QgPSB3ZWJr
aXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZChyZXF1ZXN0KTsKKyAgICAgICAg
Z19hc3NlcnRfbm9ubnVsbChtZXRob2QpOworICAgICAgICBpZiAoIWdfc3RyY21wMChzY2hlbWUs
ICJwb3N0IikpCisgICAgICAgICAgICBnX2Fzc2VydF9jbXBzdHIobWV0aG9kLCA9PSwgIlBPU1Qi
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZ19hc3NlcnRfY21wc3RyKG1ldGhvZCwgPT0s
ICJHRVQiKTsKKwogICAgICAgICBjb25zdCBVUklTY2hlbWVIYW5kbGVyJiBoYW5kbGVyID0gdGVz
dC0+bV9oYW5kbGVyc01hcC5nZXQoU3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpKTsKIAogICAgICAg
ICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4gaW5wdXRTdHJlYW0gPSBhZG9wdEdSZWYoZ19tZW1vcnlf
aW5wdXRfc3RyZWFtX25ldygpKTsKQEAgLTE1NCwxMiArMTYzLDE1IEBAIHB1YmxpYzoKICAgICAg
ICAgZWxzZSBpZiAoIWhhbmRsZXIucmVwbHkuaXNOdWxsKCkpCiAgICAgICAgICAgICBnX21lbW9y
eV9pbnB1dF9zdHJlYW1fYWRkX2RhdGEoR19NRU1PUllfSU5QVVRfU1RSRUFNKGlucHV0U3RyZWFt
LmdldCgpKSwgaGFuZGxlci5yZXBseS5kYXRhKCksIGhhbmRsZXIucmVwbHkubGVuZ3RoKCksIDAp
OwogCi0gICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoKHJlcXVlc3QsIGlu
cHV0U3RyZWFtLmdldCgpLCBoYW5kbGVyLnJlcGx5TGVuZ3RoLCBoYW5kbGVyLm1pbWVUeXBlLmRh
dGEoKSk7CisgICAgICAgIGF1dG8gcmVzcG9uc2UgPSBhZG9wdEdSZWYod2Via2l0X3VyaV9zY2hl
bWVfcmVzcG9uc2VfbmV3KGlucHV0U3RyZWFtLmdldCgpLCBoYW5kbGVyLnJlcGx5TGVuZ3RoKSk7
CisgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMocmVzcG9uc2Uu
Z2V0KCksIGhhbmRsZXIuc3RhdHVzQ29kZSwgbnVsbHB0cik7CisgICAgICAgIHdlYmtpdF91cmlf
c2NoZW1lX3Jlc3BvbnNlX3NldF9jb250ZW50X3R5cGUocmVzcG9uc2UuZ2V0KCksIGhhbmRsZXIu
bWltZVR5cGUuZGF0YSgpKTsKKyAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5p
c2hfd2l0aF9yZXNwb25zZShyZXF1ZXN0LCByZXNwb25zZS5nZXQoKSk7CiAgICAgfQogCi0gICAg
dm9pZCByZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIoY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBj
aGFyKiByZXBseSwgaW50IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1lVHlwZSkKKyAgICB2
b2lkIHJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcihjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNo
YXIqIHJlcGx5LCBpbnQgcmVwbHlMZW5ndGgsIGNvbnN0IGNoYXIqIG1pbWVUeXBlLCBpbnQgc3Rh
dHVzQ29kZSA9IDIwMCkKICAgICB7Ci0gICAgICAgIG1faGFuZGxlcnNNYXAuc2V0KFN0cmluZzo6
ZnJvbVVURjgoc2NoZW1lKSwgVVJJU2NoZW1lSGFuZGxlcihyZXBseSwgcmVwbHlMZW5ndGgsIG1p
bWVUeXBlKSk7CisgICAgICAgIG1faGFuZGxlcnNNYXAuc2V0KFN0cmluZzo6ZnJvbVVURjgoc2No
ZW1lKSwgVVJJU2NoZW1lSGFuZGxlcihyZXBseSwgcmVwbHlMZW5ndGgsIG1pbWVUeXBlLCBzdGF0
dXNDb2RlKSk7CiAgICAgICAgIHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1l
KG1fd2ViQ29udGV4dC5nZXQoKSwgc2NoZW1lLCB1cmlTY2hlbWVSZXF1ZXN0Q2FsbGJhY2ssIHRo
aXMsIDApOwogICAgIH0KIApAQCAtMjk3LDYgKzMwOSwzMSBAQCBzdGF0aWMgdm9pZCB0ZXN0V2Vi
Q29udGV4dFVSSVNjaGVtZShVUklTY2hlbWVUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAg
IGdfYXNzZXJ0X3RydWUodGVzdC0+bV9sb2FkRmFpbGVkKTsKICAgICBnX2Fzc2VydF9lcnJvcih0
ZXN0LT5tX2Vycm9yLmdldCgpLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NMT1NFRCk7CiAKKyAg
ICB0ZXN0LT5yZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIoIm5vdGZvdW5kIiwga0JhckhUTUwsIHN0
cmxlbihrQmFySFRNTCksICJ0ZXh0L2h0bWwiLCA0MDQpOworICAgIHRlc3QtPm1fbG9hZEV2ZW50
cy5jbGVhcigpOworICAgIHRlc3QtPmxvYWRVUkkoIm5vdGZvdW5kOmJsYW5rIik7CisgICAgdGVz
dC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnRfZmFsc2UodGVzdC0+bV9s
b2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rlc3Q6OlByb3Zpc2lvbmFsTG9hZEZhaWxl
ZCkpOworCisgICAgdGVzdC0+cmVnaXN0ZXJVUklTY2hlbWVIYW5kbGVyKCJub2NvbnRlbnQiLCBu
dWxscHRyLCAwLCAiYXBwbGljYXRpb24vanNvbiIsIDIwNCk7CisgICAgdGVzdC0+bV9sb2FkRXZl
bnRzLmNsZWFyKCk7CisgICAgdGVzdC0+bG9hZFVSSSgibm9jb250ZW50OmJsYW5rIik7CisgICAg
dGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnRfZmFsc2UodGVzdC0+
bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rlc3Q6OlByb3Zpc2lvbmFsTG9hZEZh
aWxlZCkpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHRlc3QtPm1fbG9hZEV2ZW50cy5jb250YWlucyhM
b2FkVHJhY2tpbmdUZXN0OjpMb2FkRmFpbGVkKSk7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciog
Zm9ybUhUTUwgPSAiPGh0bWw+PGJvZHk+PGZvcm0gaWQ9XCJ0ZXN0LWZvcm1cIiBtZXRob2Q9XCJQ
T1NUXCIgYWN0aW9uPVwicG9zdDpkYXRhXCI+PC9mb3JtPjwvYm9keT48L2h0bWw+IjsKKyAgICB0
ZXN0LT5yZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIoInBvc3QiLCBudWxscHRyLCAwLCAiYXBwbGlj
YXRpb24vanNvbiIsIDIwNCk7CisgICAgdGVzdC0+bV9sb2FkRXZlbnRzLmNsZWFyKCk7CisgICAg
dGVzdC0+bG9hZEh0bWwoZm9ybUhUTUwsICJwb3N0OmZvcm0iKTsKKyAgICB0ZXN0LT53YWl0VW50
aWxMb2FkRmluaXNoZWQoKTsKKyAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gcG9zdEVycm9yOwor
ICAgIHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZCgiZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3QtZm9ybScpLnN1Ym1pdCgpIiwgJnBvc3RFcnJvci5vdXRQdHIoKSk7
CisgICAgZ19hc3NlcnRfbm9fZXJyb3IocG9zdEVycm9yLmdldCgpKTsKKyAgICB0ZXN0LT53YWl0
VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBnX2Fzc2VydF9mYWxzZSh0ZXN0LT5tX2xvYWRFdmVu
dHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVzdDo6UHJvdmlzaW9uYWxMb2FkRmFpbGVkKSk7Cisg
ICAgZ19hc3NlcnRfZmFsc2UodGVzdC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2lu
Z1Rlc3Q6OkxvYWRGYWlsZWQpKTsKKwogICAgIC8vIFRvcnR1cmUgdGVzdCB0aW1lOiBtYWtlIHN1
cmUgaXQgc3RpbGwgd29ya3MgaWYgd2UgaXNzdWUgYSBidW5jaCBvZiBkaWZmZXJlbnQgcmVxdWVz
dHMgYWxsIGF0CiAgICAgLy8gb25jZS4gRWFjaCByZXF1ZXN0IHNob3VsZCBmaW5pc2ggYW5kIHJl
dHVybiBleGFjdGx5IHRoZSBzYW1lIGRhdGEuCiAgICAgaW50IG51bUl0ZXJhdGlvbnMgPSAyNTsK
</data>
<flag name="commit-queue"
          id="467194"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442655</attachid>
            <date>2021-10-27 17:12:26 -0700</date>
            <delta_ts>2021-10-29 18:56:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231880-20211027181226.patch</filename>
            <type>text/plain</type>
            <size>46233</size>
            <attacher>liushuyu011</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQzMjkzMmY3ZDIxMWRkMzA5
M2QwYzQ4ZjBkZTg1MjIwYmVmYWMyN2QuLjQzZTVmNmM4YjlkOWVmYjhkNzkyZDA2OTE2OTUyYjI3
OTJiNTgwNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMTAtMjAgIFppeGluZyBM
aXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdXBwb3J0
IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4gY3VzdG9tIFVS
SSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlc0dUSy50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
LmNwcAorICAgICAgICAqIFNvdXJjZXNXUEUudHh0OiBBZGRlZCBXZWJLaXRVUklTY2hlbWVSZXNw
b25zZS5jcHAKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdC5jcHA6CisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21l
dGhvZCk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rpb24KKyAgICAgICAgKHdlYmtpdF91cmlfcmVxdWVz
dF9maW5pc2hfd2l0aF9yZXNwb25zZSk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rpb24KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUuaDogIEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25z
ZS5jcHA6IEFkZGVkLgorICAgICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfY2xhc3Nf
aW5pdCk6IEFkZGVkIGluaXQgZnVuY3Rpb24gZm9yIHRoZSBuZXcgdHlwZQorICAgICAgICAod2Vi
a2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfbmV3KTogQWRkZWQgbmV3IEFQSSBmdW5jdGlvbgorICAg
ICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cyk6IEFkZGVkIG5ldyBB
UEkgZnVuY3Rpb24KKyAgICAgICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9jb250
ZW50X3R5cGUpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0
ZS5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oOiBS
ZWdpc3RlciBjbGVhbi11cCBmdW5jdGlvbiBmb3IgV2Via2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmg6IEFkZGVk
IGZ1bmN0aW9uIHByb3RvdHlwZSBmb3IgCisgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZ2V0X2h0dHBfbWV0aG9kCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2UuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9j
cy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQ6IEFkZGVkIG5ldyBzeW1ib2xzIGFuZCBuZXcg
dHlwZXMKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmg6IEluY2x1ZGUgYSBu
ZXcgaGVhZGVyOiBXZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oOiBBZGRlZCBmdW5jdGlvbiBwcm90b3R5
cGUgZm9yIAorICAgICAgICB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhv
ZAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmg6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL3dlYmtpdC5oOiBJbmNsdWRlIGEg
bmV3IGhlYWRlcjogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaAorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6IEFkZGVkIG5ldyBzeW1ib2xzIGFu
ZCBuZXcgdHlwZXMKKwogMjAyMS0xMC0xOCAgSm9obiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5j
b20+CiAKICAgICAgICAgW1dlYkF1dGhuXSBPYnRhaW4gY29uc2VudCB0byBjcmVhdGUgbmV3IGNy
ZWRlbnRpYWwgd2hlbiBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yIGluIGV4Y2x1ZGVkQ3JlZGVudGlh
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDg4YzU2MGNjOWY2MmNlNWM1ZTljZGVmOWQ0
NzBkZTQ3ZmFkNDVhZTQuLjE0MTcwNWEyMDRlMDI4YzE4YzQ0MmEwZDk0Mjk0MzFhZTg4ODFmYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTQ2LDYgKzE0Niw3IEBAIHNldChXZWJLaXQy
R1RLX0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVUklSZXF1ZXN0LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVSSVJlc3BvbnNlLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VVJJVXRpbGl0aWVzLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUuaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1X
UEUuY21ha2UKaW5kZXggZjRjZDViZWY0MDJiMGM2M2UxZmJiN2EwNzEzMjkwMGNlNmY3MzhiYi4u
MGZiM2UzZTc4MDZjOThiMThlYjM0NGEwMzVhMzhjNTkwZTU4NzEyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
V1BFLmNtYWtlCkBAIC0xNzYsNiArMTc2LDcgQEAgc2V0KFdQRV9BUElfSU5TVEFMTEVEX0hFQURF
UlMKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVJlcXVlc3Qu
aAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJUmVzcG9uc2Uu
aAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hl
bWVSZXNwb25zZS5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRV
UklVdGlsaXRpZXMuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
VXNlckNvbnRlbnQuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNHVEsudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAppbmRleCA1Yzk1NGVlZjlh
ZTFiMmY5NGVmMDA4YjJhMzhhZjg4OTRiMGM5YWM1Li5mMjEyNDZmMDBjMThmMjM4MWZjZWU3MzE3
Zjk2NDlmMWI2NjFlMzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKQEAgLTE3Myw2ICsxNzMsNyBAQCBV
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2VjdXJpdHlPcmlnaW4uY3BwIEBuby11bmlmeQogVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAgQG5vLXVuaWZ5CitVSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFVSSVV0aWxpdGllcy5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0VXNlckNvbnRlbnQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVz
ZXJDb250ZW50RmlsdGVyU3RvcmUuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKaW5kZXgg
OGExYzMwZjMyZjNiOTM1MGEzMDZiZWY1MzBlY2IzMzQwYzFmMjljNy4uOTQ0MTlkZDg2ZjA3OWM1
YzUzZTY4Y2U4ZTc5YjkxNTUwNWE4N2FiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzV1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CkBAIC0xNjQsNiAr
MTY0LDcgQEAgVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNlY3VyaXR5T3JpZ2luLmNwcCBAbm8t
dW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAgQG5vLXVuaWZ5CiBV
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwIEBuby11bmlmeQorVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRVUklVdGlsaXRpZXMuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVzZXJDb250ZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdC5jcHAKaW5kZXggNmEwZDU5YzEwMjg5ZTFiODBjYTJhMTU1ZTQ2ZTdkZDk4OWY1ZTlmMS4u
MjRiNWZhMzQwNmNiZjNmMDJkNTI0NGVhZGU4OTQ1YzUzNGNkM2JiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdC5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJBUElEYXRhLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2
YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCkBAIC02NCwxMiArNjUsMTEgQEAgc3RydWN0
IF9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZSB7CiAgICAgQ1N0cmluZyB1cmlTY2hlbWU7
CiAgICAgQ1N0cmluZyB1cmlQYXRoOwogCi0gICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IHN0cmVh
bTsKLSAgICB1aW50NjRfdCBzdHJlYW1MZW5ndGg7CisgICAgR1JlZlB0cjxXZWJLaXRVUklTY2hl
bWVSZXNwb25zZT4gcmVzcG9uc2U7CiAgICAgR1JlZlB0cjxHQ2FuY2VsbGFibGU+IGNhbmNlbGxh
YmxlOwogICAgIGNoYXIgcmVhZEJ1ZmZlcltnUmVhZEJ1ZmZlclNpemVdOwogICAgIHVpbnQ2NF90
IGJ5dGVzUmVhZDsKLSAgICBDU3RyaW5nIGNvbnRlbnRUeXBlOworICAgIGNvbnN0IGNoYXIqIGh0
dHBNZXRob2Q7CiB9OwogCiBXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dCwgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdCwgR19UWVBFX09CSkVDVCkKQEAgLTE2MSw2ICsx
NjEsMjYgQEAgV2ViS2l0V2ViVmlldyogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2Vi
X3ZpZXcoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmUKICAgICByZXR1cm4gd2Via2l0V2ViQ29u
dGV4dEdldFdlYlZpZXdGb3JQYWdlKHJlcXVlc3QtPnByaXYtPndlYkNvbnRleHQsIHJlcXVlc3Qt
PnByaXYtPmluaXRpYXRpbmdQYWdlLmdldCgpKTsKIH0KIAorLyoqCisgKiB3ZWJraXRfdXJpX3Nj
aGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZDoKKyAqIEByZXF1ZXN0OiBhICNXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0CisgKgorICogR2V0IHRoZSBIVFRQIG1ldGhvZCBvZiB0aGUgQHJlcXVlc3QK
KyAqCisgKiBSZXR1cm5zOiB0aGUgSFRUUCBtZXRob2Qgb2YgdGhlIEByZXF1ZXN0CisgKiAKKyAq
IFNpbmNlOiAyLjM2CisgKi8KK2NvbnN0IGdjaGFyKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2dldF9odHRwX21ldGhvZChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQoreworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NIRU1FX1JFUVVFU1QocmVxdWVz
dCksIG51bGxwdHIpOworCisgICAgaWYgKCFyZXF1ZXN0LT5wcml2LT5odHRwTWV0aG9kKQorICAg
ICAgICByZXF1ZXN0LT5wcml2LT5odHRwTWV0aG9kID0gZ19pbnRlcm5fc3RyaW5nKHJlcXVlc3Qt
PnByaXYtPnRhc2stPnJlcXVlc3QoKS5odHRwTWV0aG9kKCkudXRmOCgpLmRhdGEoKSk7CisKKyAg
ICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+aHR0cE1ldGhvZDsKK30KKwogc3RhdGljIHZvaWQgd2Vi
a2l0VVJJU2NoZW1lUmVxdWVzdFJlYWRDYWxsYmFjayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFt
LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogc2NoZW1lUmVx
dWVzdCkKIHsKICAgICBHUmVmUHRyPFdlYktpdFVSSVNjaGVtZVJlcXVlc3Q+IHJlcXVlc3QgPSBh
ZG9wdEdSZWYoc2NoZW1lUmVxdWVzdCk7CkBAIC0xNzQsMjAgKzE5NCwyOSBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRT
dHJlYW0sIEdBc3luYwogICAgIFdlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlKiBwcml2ID0g
cmVxdWVzdC0+cHJpdjsKICAgICAvLyBOZWVkIHRvIGNoZWNrIHRoZSBzdHJlYW0gYmVmb3JlIHBy
b2NlZWRpbmcgYXMgaXQgY2FuIGJlIGNhbmNlbGxlZCBpZiBmaW5pc2hfZXJyb3IKICAgICAvLyB3
YXMgcHJldmlvdXNseSBjYWxsLCB3aGljaCB3b24ndCBiZSBkZXRlY3RlZCBieSBnX2lucHV0X3N0
cmVhbV9yZWFkX2ZpbmlzaCgpLgotICAgIGlmICghcHJpdi0+c3RyZWFtKQorICAgIGlmICghcHJp
di0+cmVzcG9uc2UpCiAgICAgICAgIHJldHVybjsKIAorICAgIFdlYktpdFVSSVNjaGVtZVJlc3Bv
bnNlKiByZXNwID0gcHJpdi0+cmVzcG9uc2UuZ2V0KCk7CiAgICAgaWYgKCFwcml2LT5ieXRlc1Jl
YWQpIHsKLSAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1
ZXN0KCkudXJsKCksIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUocHJpdi0+Y29udGVudFR5
cGUuZGF0YSgpKSwgcHJpdi0+c3RyZWFtTGVuZ3RoLCBlbXB0eVN0cmluZygpKTsKLSAgICAgICAg
cmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUo
cHJpdi0+Y29udGVudFR5cGUuZGF0YSgpKSk7Ci0gICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0
dXNDb2RlKDIwMCk7Ci0gICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KCJPSyJfcyk7
CisgICAgICAgIENTdHJpbmcgY29udGVudFR5cGUgPSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdl
dENvbnRlbnRUeXBlKHJlc3ApOworICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKHBy
aXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShj
b250ZW50VHlwZS5kYXRhKCkpLCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0cmVhbUxlbmd0
aChyZXNwKSwgZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIHJlc3BvbnNlLnNldFRleHRFbmNvZGlu
Z05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlLmRhdGEoKSkpOwor
ICAgICAgICBDU3RyaW5nIHN0YXR1c01lc3NhZ2UgPSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdl
dFN0YXR1c01lc3NhZ2UocmVzcCk7CisgICAgICAgIGlmIChzdGF0dXNNZXNzYWdlLmlzTnVsbCgp
KSB7CisgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOworICAgICAg
ICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKFdlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlR2V0U3RhdHVzQ29kZShyZXNwKSk7CisgICAgICAgICAgICByZXNwb25zZS5zZXRI
VFRQU3RhdHVzVGV4dChzdGF0dXNNZXNzYWdlLmRhdGEoKSk7CisgICAgICAgIH0KICAgICAgICAg
aWYgKHJlc3BvbnNlLm1pbWVUeXBlKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmVzcG9uc2Uu
c2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKHJlc3BvbnNlLnVy
bCgpLnBhdGgoKS50b1N0cmluZygpKSk7CiAgICAgICAgIHByaXYtPnRhc2stPmRpZFJlY2VpdmVS
ZXNwb25zZShyZXNwb25zZSk7CiAgICAgfQogCiAgICAgaWYgKCFieXRlc1JlYWQpIHsKKyAgICAg
ICAgcHJpdi0+cmVzcG9uc2UgPSBudWxscHRyOwogICAgICAgICBwcml2LT50YXNrLT5kaWRDb21w
bGV0ZSh7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjEzLDEzICsyNDIsMzEgQEAg
dm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaChXZWJLaXRVUklTY2hlbWVSZXF1
ZXN0KiByZXF1ZXN0LCBHSW5wdXRTdHIKICAgICBnX3JldHVybl9pZl9mYWlsKEdfSVNfSU5QVVRf
U1RSRUFNKGlucHV0U3RyZWFtKSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzdHJlYW1MZW5ndGgg
PT0gLTEgfHwgc3RyZWFtTGVuZ3RoID49IDApOwogCi0gICAgcmVxdWVzdC0+cHJpdi0+c3RyZWFt
ID0gaW5wdXRTdHJlYW07Ci0gICAgLy8gV2UgdXNlIC0xIGluIHRoZSBBUEkgZm9yIGNvbnNpc3Rl
bmN5IHdpdGggc291cCB3aGVuIHRoZSBjb250ZW50IGxlbmd0aCBpcyBub3Qga25vd24sIGJ1dCAw
IGludGVybmFsbHkuCi0gICAgcmVxdWVzdC0+cHJpdi0+c3RyZWFtTGVuZ3RoID0gc3RyZWFtTGVu
Z3RoID09IC0xID8gMCA6IHN0cmVhbUxlbmd0aDsKKyAgICBHUmVmUHRyPFdlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0R1JlZih3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25z
ZV9uZXcoaW5wdXRTdHJlYW0sIHN0cmVhbUxlbmd0aCkpOworICAgIGlmIChjb250ZW50VHlwZSkK
KyAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZShyZXNw
b25zZS5nZXQoKSwgY29udGVudFR5cGUpOworCisgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9maW5pc2hfd2l0aF9yZXNwb25zZShyZXF1ZXN0LCByZXNwb25zZS5nZXQoKSk7Cit9CisKKy8q
KgorICogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZToKKyAq
IEByZXF1ZXN0OiBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0CisgKiBAcmVzcG9uc2U6IGEgI1dl
YktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKgorICogRmluaXNoIGEgI1dlYktpdFVSSVNjaGVtZVJl
cXVlc3QgYnkgcmV0dXJuaW5nIGEgI1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKgorICogU2lu
Y2U6IDIuMzYKKyAqLwordm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93aXRo
X3Jlc3BvbnNlKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIFdlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlKiByZXNwb25zZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19V
UklfU0NIRU1FX1JFUVVFU1QocmVxdWVzdCkpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lU
X0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0UocmVzcG9uc2UpKTsKKwogICAgIHJlcXVlc3QtPnByaXYt
PmNhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpOwotICAgIHJlcXVl
c3QtPnByaXYtPmJ5dGVzUmVhZCA9IDA7Ci0gICAgcmVxdWVzdC0+cHJpdi0+Y29udGVudFR5cGUg
PSBjb250ZW50VHlwZTsKLSAgICBnX2lucHV0X3N0cmVhbV9yZWFkX2FzeW5jKGlucHV0U3RyZWFt
LCByZXF1ZXN0LT5wcml2LT5yZWFkQnVmZmVyLCBnUmVhZEJ1ZmZlclNpemUsIFJ1bkxvb3BTb3Vy
Y2VQcmlvcml0eTo6QXN5bmNJT05ldHdvcmssIHJlcXVlc3QtPnByaXYtPmNhbmNlbGxhYmxlLmdl
dCgpLAorICAgIHJlcXVlc3QtPnByaXYtPnJlc3BvbnNlID0gcmVzcG9uc2U7CisKKyAgICBnX2lu
cHV0X3N0cmVhbV9yZWFkX2FzeW5jKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RyZWFtKHJl
c3BvbnNlKSwgcmVxdWVzdC0+cHJpdi0+cmVhZEJ1ZmZlciwgZ1JlYWRCdWZmZXJTaXplLCBSdW5M
b29wU291cmNlUHJpb3JpdHk6OkFzeW5jSU9OZXR3b3JrLCByZXF1ZXN0LT5wcml2LT5jYW5jZWxs
YWJsZS5nZXQoKSwKICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxHQXN5bmNSZWFkeUNhbGxiYWNr
Pih3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJlcXVl
c3QpKTsKIH0KIApAQCAtMjM4LDcgKzI4NSw3IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdF9maW5pc2hfZXJyb3IoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAg
ICAgZ19yZXR1cm5faWZfZmFpbChlcnJvcik7CiAKICAgICBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7Ci0gICAgcHJpdi0+c3RyZWFtID0gbnVsbHB0
cjsKKyAgICBwcml2LT5yZXNwb25zZSA9IG51bGxwdHI7CiAgICAgUmVzb3VyY2VFcnJvciByZXNv
dXJjZUVycm9yKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pLCB0b1dlYkNvcmVFcnJv
cihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOChlcnJvci0+bWVzc2FnZSkpOwogICAgIHByaXYtPnRhc2stPmRpZENvbXBsZXRlKHJlc291
cmNlRXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwN2Q1YTU3
MmU1M2NlZGNjMWU2YWEwMGIzNTY5YzdiNmNkMmZlMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5jcHAK
QEAgLTAsMCArMSwyMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgWml4aW5nIExpdQor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2
YXRlLmgiCisKKyNpbmNsdWRlICJBUElEYXRhLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5o
IgorI2luY2x1ZGUgIldlYlVSTFNjaGVtZVRhc2suaCIKKyNpbmNsdWRlIDxnbGliL2dpMThuLWxp
Yi5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9X
VEZHVHlwZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworZW51bSB7CisgICAg
UFJPUF8wLAorICAgIFBST1BfU1RSRUFNLAorICAgIFBST1BfU1RSRUFNX0xFTkdUSCwKKyAgICBO
X1BST1BFUlRJRVMsCit9OworCitzdGF0aWMgR1BhcmFtU3BlYyogc09ialByb3BlcnRpZXNbTl9Q
Uk9QRVJUSUVTXSA9IHsgbnVsbHB0ciwgfTsKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCisvKioKKyAqIFNFQ1RJT046IFdlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlCisgKiBAU2hvcnRfZGVzY3JpcHRpb246IFJlcHJlc2VudHMgYSBVUkkgc2NoZW1l
IHJlc3BvbnNlCisgKiBAVGl0bGU6IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKgorICogSWYg
eW91IHJlZ2lzdGVyIGEgcGFydGljdWxhciBVUkkgc2NoZW1lIGluIGEgI1dlYktpdFdlYkNvbnRl
eHQsCisgKiB1c2luZyB3ZWJraXRfd2ViX2NvbnRleHRfcmVnaXN0ZXJfdXJpX3NjaGVtZSgpLCB5
b3UgaGF2ZSB0byBwcm92aWRlCisgKiBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Q2FsbGJhY2su
IEFmdGVyIHRoYXQsIHdoZW4gYSBVUkkgcmVzcG9uc2UKKyAqIGlzIG1hZGUgd2l0aCB0aGF0IHBh
cnRpY3VsYXIgc2NoZW1lLCB5b3VyIGNhbGxiYWNrIHdpbGwgYmUKKyAqIGNhbGxlZC4gVGhlcmUg
eW91IHdpbGwgYmUgYWJsZSB0byBwcm92aWRlIG1vcmUgcmVzcG9uc2UgcGFyYW1ldGVycworICog
d2hlbiB0aGUgbWV0aG9kcyBhbmQgcHJvcGVydGllcyBvZiBhICNXZWJLaXRVUklTY2hlbWVSZXF1
ZXN0IGlzIG5vdAorICogZW5vdWdoLgorICogCisgKiBXaGVuIHlvdSBmaW5pc2hlZCBzZXR0aW5n
IHVwIHlvdXIgI1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLCBjYWxsCisgKiB3ZWJraXRfdXJpX3Jl
cXVlc3RfZmluaXNoX3dpdGhfcmVzcG9uc2UoKSB3aXRoIGl0IHRvIHJldHVybiB0aGUgcmVzcG9u
c2UuCisgKgorICovCisKK3N0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlIHsK
KyAgICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4gc3RyZWFtOworICAgIHVpbnQ2NF90IHN0cmVhbUxl
bmd0aDsKKworICAgIGludCBzdGF0dXNDb2RlID0gLTE7CisgICAgQ1N0cmluZyBzdGF0dXNNZXNz
YWdlOworICAgIENTdHJpbmcgY29udGVudFR5cGU7Cit9OworCitXRUJLSVRfREVGSU5FX1RZUEUo
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UsIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlLCBHX1RZ
UEVfT0JKRUNUKQorCitzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXNwb25zZUdldFByb3Bl
cnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1T
cGVjKiBwYXJhbVNwZWMpCit7CisgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3BvbnNl
ID0gV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0Uob2JqZWN0KTsKKworICAgIHN3aXRjaCAocHJv
cElkKSB7CisgICAgY2FzZSBQUk9QX1NUUkVBTToKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0
KHZhbHVlLCByZXNwb25zZS0+cHJpdi0+c3RyZWFtLmdldCgpKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBQUk9QX1NUUkVBTV9MRU5HVEg6CisgICAgICAgIGdfdmFsdWVfc2V0X2ludDY0KHZh
bHVlLCByZXNwb25zZS0+cHJpdi0+c3RyZWFtTGVuZ3RoKTsKKyAgICAgICAgYnJlYWs7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVj
dCwgcHJvcElkLCBwYXJhbVNwZWMpOworICAgIH0KK30KKworc3RhdGljIHZvaWQgd2Via2l0VVJJ
U2NoZW1lUmVzcG9uc2VTZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwg
Y29uc3QgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcGFyYW1TcGVjKQoreworICAgIFdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlKiByZXNwb25zZSA9IFdFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNF
KG9iamVjdCk7CisgICAgZ2ludDY0IHN0cmVhbUxlbmd0aDsKKworICAgIHN3aXRjaCAocHJvcElk
KSB7CisgICAgY2FzZSBQUk9QX1NUUkVBTToKKyAgICAgICAgcmVzcG9uc2UtPnByaXYtPnN0cmVh
bSA9IEdfSU5QVVRfU1RSRUFNKGdfdmFsdWVfZ2V0X29iamVjdCh2YWx1ZSkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFBST1BfU1RSRUFNX0xFTkdUSDoKKyAgICAgICAgc3RyZWFtTGVuZ3Ro
ID0gZ192YWx1ZV9nZXRfaW50NjQodmFsdWUpOworICAgICAgICAvLyBXZSB1c2UgLTEgaW4gdGhl
IEFQSSBmb3IgY29uc2lzdGVuY3kgd2l0aCBzb3VwIHdoZW4gdGhlIGNvbnRlbnQgbGVuZ3RoIGlz
IG5vdCBrbm93biwgYnV0IDAgaW50ZXJuYWxseS4KKyAgICAgICAgcmVzcG9uc2UtPnByaXYtPnN0
cmVhbUxlbmd0aCA9IHN0cmVhbUxlbmd0aCA9PSAtMSA/IDAgOiBzdHJlYW1MZW5ndGg7CisgICAg
ICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9Q
Uk9QRVJUWV9JRChvYmplY3QsIHByb3BJZCwgcGFyYW1TcGVjKTsKKyAgICB9Cit9CisKK3N0YXRp
YyB2b2lkIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2NsYXNzX2luaXQoV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2VDbGFzcyoga2xhc3MpCit7CisgICAgR09iamVjdENsYXNzKiBvYmplY3RDbGFz
cyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKyAgICBvYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5
ID0gd2Via2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRQcm9wZXJ0eTsKKyAgICBvYmplY3RDbGFzcy0+
c2V0X3Byb3BlcnR5ID0gd2Via2l0VVJJU2NoZW1lUmVzcG9uc2VTZXRQcm9wZXJ0eTsKKworICAg
IC8qKgorICAgICAqIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlOnN0cmVhbToKKyAgICAgKgorICAg
ICAqIFRoZSBpbnB1dCBzdHJlYW0gdG8gcmVhZCBmcm9tLgorICAgICAqLworICAgIHNPYmpQcm9w
ZXJ0aWVzW1BST1BfU1RSRUFNXSA9IAorICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAorICAg
ICAgICAgICAgInN0cmVhbSIsCisgICAgICAgICAgICBfKCJJbnB1dCBzdHJlYW0iKSwKKyAgICAg
ICAgICAgIF8oIlRoZSBpbnB1dCBzdHJlYW0gdG8gcmVhZCBmcm9tLiIpLAorICAgICAgICAgICAg
R19UWVBFX0lOUFVUX1NUUkVBTSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdz
PihXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1RfT05MWSkpOworCisg
ICAgLyoqCisgICAgICogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2U6c3RyZWFtX2xlbmd0aDoKKyAg
ICAgKgorICAgICAqIFRoZSBpbnB1dCBzdHJlYW0gbGVuZ3RoIGluIGJ5dGVzLiAtMSBmb3IgdW5r
bm93biBsZW5ndGguCisgICAgICovCisgICAgc09ialByb3BlcnRpZXNbUFJPUF9TVFJFQU1fTEVO
R1RIXSA9IAorICAgICAgICBnX3BhcmFtX3NwZWNfaW50NjQoCisgICAgICAgICAgICAic3RyZWFt
LWxlbmd0aCIsCisgICAgICAgICAgICBfKCJJbnB1dCBzdHJlYW0gbGVuZ3RoIiksCisgICAgICAg
ICAgICBfKCJUaGUgaW5wdXQgc3RyZWFtIGxlbmd0aCBpbiBieXRlcy4gLTEgZm9yIHVua25vd24g
bGVuZ3RoLiIpLAorICAgICAgICAgICAgLTEsIElOVDY0X01BWCwgLTEsCisgICAgICAgICAgICBz
dGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1f
Q09OU1RSVUNUX09OTFkpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydGll
cyhvYmplY3RDbGFzcywgTl9QUk9QRVJUSUVTLCBzT2JqUHJvcGVydGllcyk7Cit9CisKKy8vIFBy
aXZhdGUgZ2V0dGVycworaW50IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzQ29kZShj
b25zdCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIHJl
c3BvbnNlLT5wcml2LT5zdGF0dXNDb2RlOworfQorCitHSW5wdXRTdHJlYW0qIFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlR2V0U3RyZWFtKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKiByZXNw
b25zZSkKK3sKKyAgICByZXR1cm4gcmVzcG9uc2UtPnByaXYtPnN0cmVhbS5nZXQoKTsKK30KKwor
Y29uc3QgQ1N0cmluZyBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0YXR1c01lc3NhZ2UoY29u
c3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3BvbnNlKQoreworICAgIHJldHVybiByZXNw
b25zZS0+cHJpdi0+c3RhdHVzTWVzc2FnZTsKK30KKworY29uc3QgQ1N0cmluZyBXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
KiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gcmVzcG9uc2UtPnByaXYtPmNvbnRlbnRUeXBlOwor
fQorCit1aW50NjRfdCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0cmVhbUxlbmd0aChjb25z
dCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIHJlc3Bv
bnNlLT5wcml2LT5zdHJlYW1MZW5ndGg7Cit9CisKKy8qKgorICogd2Via2l0X3VyaV9zY2hlbWVf
cmVzcG9uc2VfbmV3OgorICogQGlucHV0X3N0cmVhbTogYSAjR0lucHV0U3RyZWFtIHRvIHJlYWQg
dGhlIGNvbnRlbnRzIG9mIHRoZSByZXF1ZXN0CisgKiBAc3RyZWFtX2xlbmd0aDogdGhlIGxlbmd0
aCBvZiB0aGUgc3RyZWFtIG9yIC0xIGlmIG5vdCBrbm93bgorICoKKyAqIENyZWF0ZSBhIG5ldyAj
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6
IHRoZSBuZXdseSBjcmVhdGVkICNXZWJLaXRVUklTY2hlbWVSZXNwb25zZS4KKyAqCisgKiBTaW5j
ZTogMi4zNgorICovCitXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogd2Via2l0X3VyaV9zY2hlbWVf
cmVzcG9uc2VfbmV3KEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIGdpbnQ2NCBzdHJlYW1MZW5n
dGgpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoR19JU19JTlBVVF9TVFJFQU0oaW5wdXRT
dHJlYW0pLCBudWxscHRyKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzdHJlYW1MZW5ndGgg
PT0gLTEgfHwgc3RyZWFtTGVuZ3RoID49IDAsIG51bGxwdHIpOworCisgICAgV2ViS2l0VVJJU2No
ZW1lUmVzcG9uc2UqIHJlc3BvbnNlID0gV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0UoZ19vYmpl
Y3RfbmV3KFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UsICJzdHJlYW0iLCBpbnB1dFN0
cmVhbSwgInN0cmVhbS1sZW5ndGgiLCBzdHJlYW1MZW5ndGgsIG51bGxwdHIpKTsKKyAgICByZXR1
cm4gcmVzcG9uc2U7Cit9CisKKy8qKgorICogd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0
X2NvbnRlbnRfdHlwZToKKyAqIEByZXNwb25zZTogYSAjV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UK
KyAqIEBjb250ZW50X3R5cGU6IHRoZSBjb250ZW50IHR5cGUgb2YgdGhlIHN0cmVhbQorICoKKyAq
IFNldHMgdGhlIGNvbnRlbnQgdHlwZSBmb3IgdGhlIEByZXNwb25zZQorICoKKyAqIFNpbmNlOiAy
LjM2CisgKi8KK3ZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlw
ZShXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UsIGNvbnN0IGdjaGFyKiBjb250ZW50
VHlwZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BP
TlNFKHJlc3BvbnNlKSk7CisKKyAgICByZXNwb25zZS0+cHJpdi0+Y29udGVudFR5cGUgPSBjb250
ZW50VHlwZTsKK30KKworLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3Rh
dHVzOgorICogQHJlc3BvbnNlOiBhICNXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICogQHN0YXR1
c19jb2RlOiB0aGUgSFRUUCBzdGF0dXMgY29kZSB0byBiZSByZXR1cm5lZAorICogQHJlYXNvbl9w
aHJhc2U6IChhbGxvdy1ub25lKTogYSByZWFzb24gcGhyYXNlCisgKgorICogU2V0cyB0aGUgc3Rh
dHVzIGNvZGUgYW5kIHJlYXNvbiBwaHJhc2UgZm9yIHRoZSBAcmVzcG9uc2UuCisgKiBJZiBAc3Rh
dHVzX2NvZGUgaXMgYSBrbm93biB2YWx1ZSBhbmQgQHJlYXNvbl9waHJhc2UgaXMgJU5VTEwsIHRo
ZSBAcmVhc29uX3BocmFzZSB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5LgorICoKKyAqIFNpbmNl
OiAyLjM2CisgKi8KK3ZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cyhX
ZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UsIGd1aW50IHN0YXR1c0NvZGUsIGNvbnN0
IGdjaGFyKiBzdGF0dXNNZXNzYWdlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lT
X1VSSV9TQ0hFTUVfUkVTUE9OU0UocmVzcG9uc2UpKTsKKworICAgIHJlc3BvbnNlLT5wcml2LT5z
dGF0dXNDb2RlID0gc3RhdGljX2Nhc3Q8Z2ludD4oc3RhdHVzQ29kZSk7CisgICAgaWYgKHN0YXR1
c01lc3NhZ2UpCisgICAgICAgIHJlc3BvbnNlLT5wcml2LT5zdGF0dXNNZXNzYWdlID0gc3RhdHVz
TWVzc2FnZTsKKyAgICBlbHNlCisgICAgICAgIHJlc3BvbnNlLT5wcml2LT5zdGF0dXNNZXNzYWdl
ID0gc291cF9zdGF0dXNfZ2V0X3BocmFzZShzdGF0dXNDb2RlKTsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2VQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjU0ZDBiMDJmZjc0NzkzY2MxZTczYTNhM2M3
YTRmZGUxNjcyNjUyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZS5oCkBAIC0wLDAgKzEsMjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgWml4aW5nIExpdQorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgorCitpbnQgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRTdGF0dXNDb2RlKGNv
bnN0IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKik7CitHSW5wdXRTdHJlYW0qIFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlR2V0U3RyZWFtKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKik7Citj
b25zdCBDU3RyaW5nIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzTWVzc2FnZShjb25z
dCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSopOworY29uc3QgQ1N0cmluZyBXZWJLaXRVUklTY2hl
bWVSZXNwb25zZUdldENvbnRlbnRUeXBlKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKik7
Cit1aW50NjRfdCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0cmVhbUxlbmd0aChjb25zdCBX
ZWJLaXRVUklTY2hlbWVSZXNwb25zZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKaW5kZXggYTRhYWZkNzNmYjJhYTdkODNi
NWEzZjM2OWEwMmU2MWU4NjBkZDI0ZS4uMjVkZjdkMDc4NWNmOGY2ZDk1OGVlZDg4MDZhZGMyMzcw
YzMzODNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRBdXRvY2xlYW51cHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEF1dG9jbGVhbnVwcy5oCkBAIC02Miw2ICs2Miw3IEBAIEdfREVGSU5FX0FVVE9QVFJfQ0xF
QU5VUF9GVU5DIChXZWJLaXRTZXR0aW5ncywgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRP
UFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCiBHX0RF
RklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJUmVzcG9uc2UsIGdfb2JqZWN0X3Vu
cmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xF
QU5VUF9GVU5DIChXZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLCBnX29iamVjdF91bnJlZikK
IEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIs
IGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgK
aW5kZXggZDJiMDZhMTRkYzVhMjA3ZTg3NTY0YTBlYmMzNWJjYzEzOWIxZWM0ZS4uMmI4OGFhNmE4
OTc4NDdiYTE0ZjZlODkyMjQ2MzA3Njg1ZjNkZTk5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIv
V2ViS2l0RGVmaW5lcy5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2FyZERlY2xhcmF0
aW9ucy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaD4KIAog
R19CRUdJTl9ERUNMUwogCkBAIC03MSwxMiArNzIsMTkgQEAgd2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdF9nZXRfcGF0aCAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOwogV0VC
S0lUX0FQSSBXZWJLaXRXZWJWaWV3ICoKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dl
Yl92aWV3IChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKIAorV0VCS0lUX0FQSSBj
b25zdCBnY2hhciAqCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZCAo
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CisKIFdFQktJVF9BUEkgdm9pZAogd2Vi
a2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2ggICAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QgKnJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0lu
cHV0U3RyZWFtICAgICAgICAgICAqc3RyZWFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdpbnQ2NCAgICAgICAgICAgICAgICAgIHN0cmVhbV9sZW5ndGgsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAg
ICAqY29udGVudF90eXBlKTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9y
ZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICAqcmVx
dWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSk7CisKIFdFQktJVF9BUEkgdm9pZAogd2Vi
a2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3IgKFdlYktpdFVSSVNjaGVtZVJlcXVl
c3QgKnJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vy
cm9yICAgICAgICAgICAgICAgICAqZXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRjNzBjZTY3M2VhMjQ0ZGUwNzAwZjBmNjA0MWVlNmVhYjYwYTc3ZGUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlc3Bv
bnNlLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBaaXhpbmcg
TGl1CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lU
Ml9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBp
bmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRVUklTY2hlbWVSZXNw
b25zZV9oCisjZGVmaW5lIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlX2gKKworI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVk
ZSA8d2Via2l0Mi9XZWJLaXRGb3J3YXJkRGVjbGFyYXRpb25zLmg+CisKK0dfQkVHSU5fREVDTFMK
KworI2RlZmluZSBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFICAgICAgICAgICAgKHdl
YmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9VUklf
U0NIRU1FX1JFU1BPTlNFKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NB
U1QoKG9iaiksIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UsIFdlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0Uob2JqKSAg
ICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfVVJJ
X1NDSEVNRV9SRVNQT05TRSkpCisjZGVmaW5lIFdFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFX0NM
QVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9U
WVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UsIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MpKQor
I2RlZmluZSBXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRV9DTEFTUyhrbGFzcykgKEdfVFlQ
RV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BP
TlNFKSkKKyNkZWZpbmUgV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfR0VUX0NMQVNTKG9iaikg
IChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfVVJJX1NDSEVN
RV9SRVNQT05TRSwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcykpCisKK3R5cGVkZWYgc3Ry
dWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZSAgICAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2U7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcyAgIFdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2VQcml2YXRlIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZTsKKworc3RydWN0
IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZSB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICBX
ZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktp
dFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7
CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2
b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJ
VF9BUEkgR1R5cGUKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2dldF90eXBlICAgICAgICAg
ICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgKgord2Via2l0
X3VyaV9zY2hlbWVfcmVzcG9uc2VfbmV3ICAgICAgICAgICAgICAgIChHSW5wdXRTdHJlYW0gICAg
ICAgICAgICAqaW5wdXRfc3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnaW50NjQgICAgICAgICAgICAgICAgICAgc3RyZWFtX2xlbmd0aCk7CisK
K1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cyAg
ICAgICAgIChXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9uc2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICAg
ICBzdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgKnJlYXNvbl9waHJhc2UpOworCitXRUJLSVRf
QVBJIHZvaWQKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9jb250ZW50X3R5cGUgICAo
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAqY29udGVu
dF90eXBlKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0IGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rp
b25zLnR4dAppbmRleCAxYmFiYjkzOWZjZWMxNmY5NDkzNGFmMzg4ZTQxNmU5MDNiZTFlZTg3Li43
N2M0NTRhNWE0MjE5MzEzMGZjOTIxMjczNDY5MDFiYjZkZjM2OGM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LTQuMC1zZWN0aW9ucy50eHQKQEAgLTEyNzcsNyArMTI3Nyw5IEBAIHdlYmtpdF91cmlfc2NoZW1l
X3JlcXVlc3RfZ2V0X3NjaGVtZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpCiB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9wYXRoCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X2dldF93ZWJfdmlldword2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRo
b2QKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoCit3ZWJraXRfdXJpX3NjaGVtZV9y
ZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2Zp
bmlzaF9lcnJvcgogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KQEAgLTEyOTQsNiArMTI5NiwyNyBA
QCBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCis8U0VDVElPTj4KKzxGSUxFPldlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlPC9GSUxFPgorV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UKK3dlYmtpdF91cmlfc2No
ZW1lX3Jlc3BvbnNlX25ldword2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRf
dHlwZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cworCis8U1VCU0VDVElP
TiBTdGFuZGFyZD4KK1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MKK1dFQktJVF9UWVBFX1VS
SV9TQ0hFTUVfUkVTUE9OU0UKK1dFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfSVNf
VVJJX1NDSEVNRV9SRVNQT05TRQorV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1MKK1dF
QktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFX0NMQVNTCitXRUJLSVRfVVJJX1NDSEVNRV9SRVNQ
T05TRV9HRVRfQ0xBU1MKKworPFNVQlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlUHJpdmF0ZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUKKzwvU0VD
VElPTj4KKwogPFNFQ1RJT04+CiA8RklMRT5XZWJLaXRWZXJzaW9uPC9GSUxFPgogd2Via2l0X2dl
dF9tYWpvcl92ZXJzaW9uCkBAIC0xOTg1LDQgKzIwMDgsMyBAQCB3ZWJraXRfbWVtb3J5X3ByZXNz
dXJlX3NldHRpbmdzX2dldF90eXBlCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KIFdFQktJVF9UWVBF
X01FTU9SWV9QUkVTU1VSRV9TRVRUSU5HUwogPC9TRUNUSU9OPgotCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAudHlwZXMgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAudHlwZXMK
aW5kZXggNDkzN2FiYjU2NDg3M2NlMDZlYjY0MzE1OTFkZTMxZGNiMWQwYzU1MS4uZWY2ZThhZDY1
OTU2NTljMGQ1MGY1YzYyZDM1MDVhMjE2YjcwYWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLnR5cGVzCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC50eXBlcwpAQCAt
MTksNiArMTksNyBAQCB3ZWJraXRfcGx1Z2luX2dldF90eXBlCiB3ZWJraXRfbWltZV9pbmZvX2dl
dF90eXBlCiB3ZWJraXRfd2ViX2luc3BlY3Rvcl9nZXRfdHlwZQogd2Via2l0X3VyaV9zY2hlbWVf
cmVxdWVzdF9nZXRfdHlwZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUKIHdl
YmtpdF9jb250ZXh0X21lbnVfZ2V0X3R5cGUKIHdlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9nZXRf
dHlwZQogd2Via2l0X3dlYl9leHRlbnNpb25fZ2V0X3R5cGUKQEAgLTQyLDQgKzQzLDQgQEAgd2Vi
a2l0X29wdGlvbl9tZW51X2l0ZW1fZ2V0X3R5cGUKIHdlYmtpdF9kZXZpY2VfaW5mb19wZXJtaXNz
aW9uX3JlcXVlc3RfZ2V0X3R5cGUKIHdlYmtpdF9nZW9sb2NhdGlvbl9tYW5hZ2VyX2dldF90eXBl
CiB3ZWJraXRfZ2VvbG9jYXRpb25fcG9zaXRpb25fZ2V0X3R5cGUKLXdlYmtpdF9wb2ludGVyX2xv
Y2tfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQord2Via2l0X3BvaW50ZXJfbG9ja19wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRv
Y3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LWRvY3Muc2dtbAppbmRleCA0MTFlZTY0ZDgzMzMzZjA1MjMwNmM1Yjk5ZDA3M2JiNDI3OTc4YTY1
Li5lMTJjN2RiNWM3OTZmYzU4Y2E4NjJkMDYyYmFjNzFjODA4ZWE2MGJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9j
cy5zZ21sCkBAIC00NSw2ICs0NSw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktp
dFBsdWdpbi54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0V2ViSW5zcGVj
dG9yLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVUklTY2hlbWVSZXF1
ZXN0LnhtbCIvPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVUklTY2hlbWVSZXNw
b25zZS54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0VmVyc2lvbi54bWwi
Lz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0Q29udGV4dE1lbnUueG1sIi8+CiAg
ICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdENvbnRleHRNZW51SXRlbS54bWwiLz4KQEAg
LTE3MCw1ICsxNzEsMTAgQEAKICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LTIu
MzAueG1sIj48eGk6ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CiAgIDwvaW5kZXg+CiAKKyAgPGlu
ZGV4IGlkPSJhcGktaW5kZXgtMi0zNiIgcm9sZT0iMi4zNiI+CisgICAgPHRpdGxlPkluZGV4IG9m
IG5ldyBzeW1ib2xzIGluIDIuMzY8L3RpdGxlPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9h
cGktaW5kZXgtMi4zNi54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KKyAgPC9pbmRl
eD4KKwogICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYW5ub3RhdGlvbi1nbG9zc2FyeS54bWwiPjx4
aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KIDwvYm9vaz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay93ZWJraXQyLmgKaW5kZXggYjdkMjc0MWM0YjJjMWFkNGUzNGExZmFiNDhmZWM2
MWFmMWM2MTAyZC4uNWNkOTUyNDI1MmE5N2Q0ZWE2NGRmZWIyMmU1YTQ3YjU1ZjM2Yzg4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKQEAgLTc4LDYgKzc4LDcg
QEAKICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdFVSSVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklTY2hl
bWVSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5o
PgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRVc2VyQ29udGVudC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VXNlckNv
bnRlbnRGaWx0ZXJTdG9yZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRBdXRvY2xlYW51cHMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvV2ViS2l0QXV0b2NsZWFudXBzLmgKaW5kZXggNzdhYjc3YmM5ODRlNzBkM2ZhY2UwMDMz
ZjEyNDJkMjZjNDAyZDBiNi4uNWUyMGY0MzVlMjMxZGU0Zjk1ZjJlN2ExZTRmOTk4OTg3YTY4Y2Fk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRBdXRv
Y2xlYW51cHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEF1
dG9jbGVhbnVwcy5oCkBAIC01Niw2ICs1Niw3IEBAIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9G
VU5DIChXZWJLaXRTZXR0aW5ncywgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NM
RUFOVVBfRlVOQyAoV2ViS2l0VVJJUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9B
VVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJUmVzcG9uc2UsIGdfb2JqZWN0X3VucmVmKQog
R19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QsIGdf
b2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9G
VU5DIChXZWJLaXRVc2VyQ29udGVudEZpbHRlclN0b3JlLCBnX29iamVjdF91bnJlZikKIEdfREVG
SU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIsIGdfb2Jq
ZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKaW5kZXgg
OGViZWRhNGU3N2YxYmJkMThlMWNiZGFkYzNmN2YyNDZlMDk5MTdiMS4uZTg4Y2E3OWU1NzVlNDli
ZjY3NjE3MWMzYzlkYzRjNzQzY2Q1YjA4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKQEAgLTI2LDYgKzI2
LDcgQEAKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdERl
ZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaD4KIAogR19C
RUdJTl9ERUNMUwogCkBAIC03MiwxMiArNzMsMTkgQEAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9nZXRfcGF0aCAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOwogV0VCS0lU
X0FQSSBXZWJLaXRXZWJWaWV3ICoKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92
aWV3IChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKIAorV0VCS0lUX0FQSSBjb25z
dCBnY2hhciAqCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZCAoV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CisKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2ggICAgICAgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3Qg
KnJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0lucHV0
U3RyZWFtICAgICAgICAgICAqc3RyZWFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdpbnQ2NCAgICAgICAgICAgICAgICAgIHN0cmVhbV9sZW5ndGgsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAq
Y29udGVudF90eXBlKTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICAqcmVxdWVz
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSk7CisKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3IgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3Qg
KnJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9y
ICAgICAgICAgICAgICAgICAqZXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMy
MjBiMWY0Njg4NjcxNjM5Zjc2YWY4MWM3Mjc1ZmZlNzkxY2M1ZjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNl
LmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBaaXhpbmcgTGl1
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZiAhZGVmaW5lZChfX1dFQktJVF9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NP
TVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0Lmg+IGNhbiBiZSBpbmNsdWRlZCBk
aXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRVUklTY2hlbWVSZXNwb25zZV9oCisj
ZGVmaW5lIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlX2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0
Lmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisj
ZGVmaW5lIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UgICAgICAgICAgICAod2Via2l0
X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1VSSV9TQ0hF
TUVfUkVTUE9OU0Uob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgo
b2JqKSwgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSwgV2ViS2l0VVJJU2NoZW1lUmVz
cG9uc2UpKQorI2RlZmluZSBXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRShvYmopICAgICAg
ICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9VUklfU0NI
RU1FX1JFU1BPTlNFKSkKKyNkZWZpbmUgV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1Mo
a2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVf
VVJJX1NDSEVNRV9SRVNQT05TRSwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcykpCisjZGVm
aW5lIFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NI
RUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0Up
KQorI2RlZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9HRVRfQ0xBU1Mob2JqKSAgKEdf
VFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JF
U1BPTlNFLCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlICAgICAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZTsK
K3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzICAgV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRVUklTY2hlbWVSZXNw
b25zZVByaXZhdGUgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlOworCitzdHJ1Y3QgX1dl
YktpdFVSSVNjaGVtZVJlc3BvbnNlIHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIFdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2VDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKKwor
ICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0
X3Jlc2VydmVkMSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQp
OworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQ
SSBHVHlwZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfZ2V0X3R5cGUgICAgICAgICAgICh2
b2lkKTsKKworV0VCS0lUX0FQSSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqCit3ZWJraXRfdXJp
X3NjaGVtZV9yZXNwb25zZV9uZXcgICAgICAgICAgICAgICAgKEdJbnB1dFN0cmVhbSAgICAgICAg
ICAgICppbnB1dF9zdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdpbnQ2NCAgICAgICAgICAgICAgICAgICBzdHJlYW1fbGVuZ3RoKTsKKworV0VC
S0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzICAgICAg
ICAgKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgICAgIHN0
YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBnY2hhciAgICAgICAgICAgICAqcmVhc29uX3BocmFzZSk7CisKK1dFQktJVF9BUEkg
dm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZSAgIChXZWJL
aXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICpjb250ZW50X3R5
cGUpOworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dAppbmRleCBiOGIw
OGQyZjkxZjI1NjRjZWY3ZGEwYjhlY2VkYzhhMTEyZDViZTkwLi4wYTljZjI0YzczOGQyY2MwNTc1
ZjAwZDczZGRjZTdjMGI0NmJiZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CkBAIC0xMjE0LDcgKzEy
MTQsOSBAQCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9zY2hlbWUKIHdlYmtpdF91cmlf
c2NoZW1lX3JlcXVlc3RfZ2V0X3VyaQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfcGF0
aAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcKK3dlYmtpdF91cmlfc2No
ZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2Zp
bmlzaAord2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZQogd2Vi
a2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3IKIAogPFNVQlNFQ1RJT04gU3RhbmRh
cmQ+CkBAIC0xMjMxLDYgKzEyMzMsMjcgQEAgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUK
IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3R5cGUKIDwvU0VDVElPTj4KIAorPFNFQ1RJ
T04+Cis8RklMRT5XZWJLaXRVUklTY2hlbWVSZXNwb25zZTwvRklMRT4KK1dlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9uZXcKK3dlYmtpdF91cmlfc2No
ZW1lX3Jlc3BvbnNlX3NldF9jb250ZW50X3R5cGUKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNl
X3NldF9zdGF0dXMKKworPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CitXZWJLaXRVUklTY2hlbWVSZXNw
b25zZUNsYXNzCitXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfVVJJX1ND
SEVNRV9SRVNQT05TRQorV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0UKK1dFQktJVF9VUklf
U0NIRU1FX1JFU1BPTlNFX0NMQVNTCitXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRV9DTEFT
UworV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfR0VUX0NMQVNTCisKKzxTVUJTRUNUSU9OIFBy
aXZhdGU+CitXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUKK3dlYmtpdF91cmlfc2NoZW1l
X3Jlc3BvbnNlX2dldF90eXBlCis8L1NFQ1RJT04+CisKIDxTRUNUSU9OPgogPEZJTEU+V2ViS2l0
VmVyc2lvbjwvRklMRT4KIHdlYmtpdF9nZXRfbWFqb3JfdmVyc2lvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS1kb2NzLnNnbWwgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLWRvY3Muc2dtbAppbmRleCA4ZTI1N2Yw
MmYxMWZlYmVjZDJhNTY3M2I4ZTg3MDZkNWVjNmM2ODM5Li4yYmNjMGNiZGE4ODVkZjliZjc0OTUz
NGUzZGQxZWViNjk5YmQxMWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL2RvY3Mvd3BlLWRvY3Muc2dtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL2RvY3Mvd3BlLWRvY3Muc2dtbApAQCAtNDEsNiArNDEsNyBAQAogICAgIDx4aTppbmNs
dWRlIGhyZWY9InhtbC9XZWJLaXRDb29raWVNYW5hZ2VyLnhtbCIvPgogICAgIDx4aTppbmNsdWRl
IGhyZWY9InhtbC9XZWJLaXRQbHVnaW4ueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1s
L1dlYktpdFVSSVNjaGVtZVJlcXVlc3QueG1sIi8+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1s
L1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9Inht
bC9XZWJLaXRDb250ZXh0TWVudS54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2Vi
S2l0Q29udGV4dE1lbnVJdGVtLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJL
aXRGb3JtU3VibWlzc2lvblJlcXVlc3QueG1sIi8+CkBAIC0xMDgsNSArMTA5LDEwIEBACiAgICAg
PHhpOmluY2x1ZGUgaHJlZj0ieG1sL2FwaS1pbmRleC0yLjMwLnhtbCI+PHhpOmZhbGxiYWNrIC8+
PC94aTppbmNsdWRlPgogICA8L2luZGV4PgogCisgIDxpbmRleCBpZD0iYXBpLWluZGV4LTItMzYi
IHJvbGU9IjIuMzYiPgorICAgIDx0aXRsZT5JbmRleCBvZiBuZXcgc3ltYm9scyBpbiAyLjM2PC90
aXRsZT4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LTIuMzYueG1sIj48eGk6
ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CisgIDwvaW5kZXg+CisKICAgPHhpOmluY2x1ZGUgaHJl
Zj0ieG1sL2Fubm90YXRpb24tZ2xvc3NhcnkueG1sIj48eGk6ZmFsbGJhY2sgLz48L3hpOmluY2x1
ZGU+CiA8L2Jvb2s+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3Bl
L3dlYmtpdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS93ZWJraXQuaAppbmRl
eCA1YzkzZDc2MGY3MzRhMTJmNjE0ODk5NTQ1MTM1ZmRmNzcwMTY0NTc1Li5jMjIyMWVmYzAwNjE4
YzJlYzRkMjBhODhjNTk4NDA3NjdiZDUyZmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL3dlYmtpdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvd2Via2l0LmgKQEAgLTczLDYgKzczLDcgQEAKICNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJ
UmVxdWVzdC5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXRVUklSZXNwb25zZS5oPgogI2luY2x1ZGUg
PHdwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVNj
aGVtZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVV0aWxpdGllcy5oPgogI2lu
Y2x1ZGUgPHdwZS9XZWJLaXRVc2VyQ29udGVudC5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXRVc2Vy
Q29udGVudEZpbHRlclN0b3JlLmg+CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggZTAwMjNhMjQ4NTA4OWRjYTM3OTE2NzgxYzg2MTI2Yjk3MjI0NmE1
ZS4uOWFiOGQ0YTU1MGIxZTI2ZGU4ZjNkZTY3NjZiNGVmZjlhNjlkNzg1MiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIxLTEwLTIwICBaaXhpbmcgTGl1ICA8bGl1c2h1eXUwMTFAZ21haWwuY29tPgorCisgICAgICAg
IFtHVEtdW1dQRV0gU3VwcG9ydCBzZXR0aW5nIHN0YXR1cyBjb2RlIGFuZCBnZXR0aW5nIEhUVFAg
bWV0aG9kIGluIGN1c3RvbSBVUkkgc2NoZW1lIGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4ODAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgICh0ZXN0V2ViQ29udGV4dFVS
SVNjaGVtZSk6IEFkZGVkIHRlc3RzIHRvIHRlc3QgbmV3IHB1YmxpYyBBUElzIGZvciBXZWJLaXRH
dGsKKwogMjAyMS0xMC0xOCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODQzOTkuCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250
ZXh0LmNwcAppbmRleCBiOTM2YzhlMDc3NWExN2FjYWJlMjEyOGFhNzE5MzJlNWY0ZDkwZjQzLi45
MDhhNDkzZjE0ZjA2OTA1NWM1MjYxODc2YzQ2MzI2YmUyNWE1ODE0IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2Vi
Q29udGV4dC5jcHAKQEAgLTk1LDE2ICs5NSwxOCBAQCBwdWJsaWM6CiAgICAgICAgIHsKICAgICAg
ICAgfQogCi0gICAgICAgIFVSSVNjaGVtZUhhbmRsZXIoY29uc3QgY2hhciogcmVwbHksIGludCBy
ZXBseUxlbmd0aCwgY29uc3QgY2hhciogbWltZVR5cGUpCisgICAgICAgIFVSSVNjaGVtZUhhbmRs
ZXIoY29uc3QgY2hhciogcmVwbHksIGludCByZXBseUxlbmd0aCwgY29uc3QgY2hhciogbWltZVR5
cGUsIGludCBzdGF0dXNDb2RlID0gMjAwKQogICAgICAgICAgICAgOiByZXBseShyZXBseSkKICAg
ICAgICAgICAgICwgcmVwbHlMZW5ndGgocmVwbHlMZW5ndGgpCiAgICAgICAgICAgICAsIG1pbWVU
eXBlKG1pbWVUeXBlKQorICAgICAgICAgICAgLCBzdGF0dXNDb2RlKHN0YXR1c0NvZGUpCiAgICAg
ICAgIHsKICAgICAgICAgfQogCiAgICAgICAgIENTdHJpbmcgcmVwbHk7CiAgICAgICAgIGludCBy
ZXBseUxlbmd0aDsKICAgICAgICAgQ1N0cmluZyBtaW1lVHlwZTsKKyAgICAgICAgaW50IHN0YXR1
c0NvZGU7CiAgICAgfTsKIAogICAgIHN0YXRpYyB2b2lkIHVyaVNjaGVtZVJlcXVlc3RDYWxsYmFj
ayhXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCBncG9pbnRlciB1c2VyRGF0YSkKQEAg
LTEyMCw2ICsxMjIsMTMgQEAgcHVibGljOgogICAgICAgICBnX2Fzc2VydF9ub25udWxsKHNjaGVt
ZSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+bV9oYW5kbGVyc01hcC5jb250YWlucyhT
dHJpbmc6OmZyb21VVEY4KHNjaGVtZSkpKTsKIAorICAgICAgICBjb25zdCBjaGFyKiBtZXRob2Qg
PSB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZChyZXF1ZXN0KTsKKyAg
ICAgICAgZ19hc3NlcnRfbm9ubnVsbChtZXRob2QpOworICAgICAgICBpZiAoIWdfc3RyY21wMChz
Y2hlbWUsICJwb3N0IikpCisgICAgICAgICAgICBnX2Fzc2VydF9jbXBzdHIobWV0aG9kLCA9PSwg
IlBPU1QiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZ19hc3NlcnRfY21wc3RyKG1ldGhv
ZCwgPT0sICJHRVQiKTsKKwogICAgICAgICBjb25zdCBVUklTY2hlbWVIYW5kbGVyJiBoYW5kbGVy
ID0gdGVzdC0+bV9oYW5kbGVyc01hcC5nZXQoU3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpKTsKIAog
ICAgICAgICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4gaW5wdXRTdHJlYW0gPSBhZG9wdEdSZWYoZ19t
ZW1vcnlfaW5wdXRfc3RyZWFtX25ldygpKTsKQEAgLTE1NCwxMiArMTYzLDE1IEBAIHB1YmxpYzoK
ICAgICAgICAgZWxzZSBpZiAoIWhhbmRsZXIucmVwbHkuaXNOdWxsKCkpCiAgICAgICAgICAgICBn
X21lbW9yeV9pbnB1dF9zdHJlYW1fYWRkX2RhdGEoR19NRU1PUllfSU5QVVRfU1RSRUFNKGlucHV0
U3RyZWFtLmdldCgpKSwgaGFuZGxlci5yZXBseS5kYXRhKCksIGhhbmRsZXIucmVwbHkubGVuZ3Ro
KCksIDApOwogCi0gICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoKHJlcXVl
c3QsIGlucHV0U3RyZWFtLmdldCgpLCBoYW5kbGVyLnJlcGx5TGVuZ3RoLCBoYW5kbGVyLm1pbWVU
eXBlLmRhdGEoKSk7CisgICAgICAgIGF1dG8gcmVzcG9uc2UgPSBhZG9wdEdSZWYod2Via2l0X3Vy
aV9zY2hlbWVfcmVzcG9uc2VfbmV3KGlucHV0U3RyZWFtLmdldCgpLCBoYW5kbGVyLnJlcGx5TGVu
Z3RoKSk7CisgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMocmVz
cG9uc2UuZ2V0KCksIGhhbmRsZXIuc3RhdHVzQ29kZSwgbnVsbHB0cik7CisgICAgICAgIHdlYmtp
dF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9jb250ZW50X3R5cGUocmVzcG9uc2UuZ2V0KCksIGhh
bmRsZXIubWltZVR5cGUuZGF0YSgpKTsKKyAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9maW5pc2hfd2l0aF9yZXNwb25zZShyZXF1ZXN0LCByZXNwb25zZS5nZXQoKSk7CiAgICAgfQog
Ci0gICAgdm9pZCByZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIoY29uc3QgY2hhciogc2NoZW1lLCBj
b25zdCBjaGFyKiByZXBseSwgaW50IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1lVHlwZSkK
KyAgICB2b2lkIHJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcihjb25zdCBjaGFyKiBzY2hlbWUsIGNv
bnN0IGNoYXIqIHJlcGx5LCBpbnQgcmVwbHlMZW5ndGgsIGNvbnN0IGNoYXIqIG1pbWVUeXBlLCBp
bnQgc3RhdHVzQ29kZSA9IDIwMCkKICAgICB7Ci0gICAgICAgIG1faGFuZGxlcnNNYXAuc2V0KFN0
cmluZzo6ZnJvbVVURjgoc2NoZW1lKSwgVVJJU2NoZW1lSGFuZGxlcihyZXBseSwgcmVwbHlMZW5n
dGgsIG1pbWVUeXBlKSk7CisgICAgICAgIG1faGFuZGxlcnNNYXAuc2V0KFN0cmluZzo6ZnJvbVVU
Rjgoc2NoZW1lKSwgVVJJU2NoZW1lSGFuZGxlcihyZXBseSwgcmVwbHlMZW5ndGgsIG1pbWVUeXBl
LCBzdGF0dXNDb2RlKSk7CiAgICAgICAgIHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlf
c2NoZW1lKG1fd2ViQ29udGV4dC5nZXQoKSwgc2NoZW1lLCB1cmlTY2hlbWVSZXF1ZXN0Q2FsbGJh
Y2ssIHRoaXMsIDApOwogICAgIH0KIApAQCAtMjk3LDYgKzMwOSwzMSBAQCBzdGF0aWMgdm9pZCB0
ZXN0V2ViQ29udGV4dFVSSVNjaGVtZShVUklTY2hlbWVUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVy
KQogICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+bV9sb2FkRmFpbGVkKTsKICAgICBnX2Fzc2VydF9l
cnJvcih0ZXN0LT5tX2Vycm9yLmdldCgpLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NMT1NFRCk7
CiAKKyAgICB0ZXN0LT5yZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIoIm5vdGZvdW5kIiwga0JhckhU
TUwsIHN0cmxlbihrQmFySFRNTCksICJ0ZXh0L2h0bWwiLCA0MDQpOworICAgIHRlc3QtPm1fbG9h
ZEV2ZW50cy5jbGVhcigpOworICAgIHRlc3QtPmxvYWRVUkkoIm5vdGZvdW5kOmJsYW5rIik7Cisg
ICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnRfZmFsc2UodGVz
dC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rlc3Q6OlByb3Zpc2lvbmFsTG9h
ZEZhaWxlZCkpOworCisgICAgdGVzdC0+cmVnaXN0ZXJVUklTY2hlbWVIYW5kbGVyKCJub2NvbnRl
bnQiLCBudWxscHRyLCAwLCAiYXBwbGljYXRpb24vanNvbiIsIDIwNCk7CisgICAgdGVzdC0+bV9s
b2FkRXZlbnRzLmNsZWFyKCk7CisgICAgdGVzdC0+bG9hZFVSSSgibm9jb250ZW50OmJsYW5rIik7
CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnRfZmFsc2Uo
dGVzdC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rlc3Q6OlByb3Zpc2lvbmFs
TG9hZEZhaWxlZCkpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHRlc3QtPm1fbG9hZEV2ZW50cy5jb250
YWlucyhMb2FkVHJhY2tpbmdUZXN0OjpMb2FkRmFpbGVkKSk7CisKKyAgICBzdGF0aWMgY29uc3Qg
Y2hhciogZm9ybUhUTUwgPSAiPGh0bWw+PGJvZHk+PGZvcm0gaWQ9XCJ0ZXN0LWZvcm1cIiBtZXRo
b2Q9XCJQT1NUXCIgYWN0aW9uPVwicG9zdDpkYXRhXCI+PC9mb3JtPjwvYm9keT48L2h0bWw+IjsK
KyAgICB0ZXN0LT5yZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIoInBvc3QiLCBudWxscHRyLCAwLCAi
YXBwbGljYXRpb24vanNvbiIsIDIwNCk7CisgICAgdGVzdC0+bV9sb2FkRXZlbnRzLmNsZWFyKCk7
CisgICAgdGVzdC0+bG9hZEh0bWwoZm9ybUhUTUwsICJwb3N0OmZvcm0iKTsKKyAgICB0ZXN0LT53
YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gcG9zdEVy
cm9yOworICAgIHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZCgiZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtZm9ybScpLnN1Ym1pdCgpIiwgJnBvc3RFcnJvci5vdXRQ
dHIoKSk7CisgICAgZ19hc3NlcnRfbm9fZXJyb3IocG9zdEVycm9yLmdldCgpKTsKKyAgICB0ZXN0
LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBnX2Fzc2VydF9mYWxzZSh0ZXN0LT5tX2xv
YWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVzdDo6UHJvdmlzaW9uYWxMb2FkRmFpbGVk
KSk7CisgICAgZ19hc3NlcnRfZmFsc2UodGVzdC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRU
cmFja2luZ1Rlc3Q6OkxvYWRGYWlsZWQpKTsKKwogICAgIC8vIFRvcnR1cmUgdGVzdCB0aW1lOiBt
YWtlIHN1cmUgaXQgc3RpbGwgd29ya3MgaWYgd2UgaXNzdWUgYSBidW5jaCBvZiBkaWZmZXJlbnQg
cmVxdWVzdHMgYWxsIGF0CiAgICAgLy8gb25jZS4gRWFjaCByZXF1ZXN0IHNob3VsZCBmaW5pc2gg
YW5kIHJldHVybiBleGFjdGx5IHRoZSBzYW1lIGRhdGEuCiAgICAgaW50IG51bUl0ZXJhdGlvbnMg
PSAyNTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442893</attachid>
            <date>2021-10-29 18:56:32 -0700</date>
            <delta_ts>2021-11-02 01:47:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231880-20211029195631.patch</filename>
            <type>text/plain</type>
            <size>45500</size>
            <attacher>liushuyu011</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRhZTY2ZGEwZGUzNTBmODU5
OTFjODYwZDA4ZDQ2OWFiNmIyZTI2YmYuLjQxZjExNzBlN2VjOTY5YzU1YTM1MTkwNTU4YzQ1OGUy
OTc3ODdmZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMTAtMjggIFppeGluZyBM
aXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdXBwb3J0
IHNldHRpbmcgc3RhdHVzIGNvZGUgYW5kIGdldHRpbmcgSFRUUCBtZXRob2QgaW4gY3VzdG9tIFVS
SSBzY2hlbWUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTg4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlc0dUSy50eHQ6IEFkZGVkIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
LmNwcAorICAgICAgICAqIFNvdXJjZXNXUEUudHh0OiBBZGRlZCBXZWJLaXRVUklTY2hlbWVSZXNw
b25zZS5jcHAKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVx
dWVzdC5jcHA6CisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21l
dGhvZCk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rpb24KKyAgICAgICAgKHdlYmtpdF91cmlfcmVxdWVz
dF9maW5pc2hfd2l0aF9yZXNwb25zZSk6IEFkZGVkIG5ldyBBUEkgZnVuY3Rpb24KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUuaDogIEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25z
ZS5jcHA6IEFkZGVkLgorICAgICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfY2xhc3Nf
aW5pdCk6IEFkZGVkIGluaXQgZnVuY3Rpb24gZm9yIHRoZSBuZXcgdHlwZQorICAgICAgICAod2Vi
a2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfbmV3KTogQWRkZWQgbmV3IEFQSSBmdW5jdGlvbgorICAg
ICAgICAod2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cyk6IEFkZGVkIG5ldyBB
UEkgZnVuY3Rpb24KKyAgICAgICAgKHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9jb250
ZW50X3R5cGUpOiBBZGRlZCBuZXcgQVBJIGZ1bmN0aW9uCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0
ZS5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oOiBS
ZWdpc3RlciBjbGVhbi11cCBmdW5jdGlvbiBmb3IgV2Via2l0VVJJU2NoZW1lUmVzcG9uc2UKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmg6IEFkZGVk
IGZ1bmN0aW9uIHByb3RvdHlwZSBmb3IgCisgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZ2V0X2h0dHBfbWV0aG9kCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2UuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9j
cy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQ6IEFkZGVkIG5ldyBzeW1ib2xzIGFuZCBuZXcg
dHlwZXMKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmg6IEluY2x1ZGUgYSBu
ZXcgaGVhZGVyOiBXZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oOiBBZGRlZCBmdW5jdGlvbiBwcm90b3R5
cGUgZm9yIAorICAgICAgICB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9odHRwX21ldGhv
ZAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmg6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL3dlYmtpdC5oOiBJbmNsdWRlIGEg
bmV3IGhlYWRlcjogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaAorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6IEFkZGVkIG5ldyBzeW1ib2xzIGFu
ZCBuZXcgdHlwZXMKKwogMjAyMS0xMC0yOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjg0OTE3Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggODhjNTYwY2M5ZjYyY2U1YzVlOWNkZWY5ZDQ3MGRl
NDdmYWQ0NWFlNC4uMTQxNzA1YTIwNGUwMjhjMThjNDQyYTBkOTQyOTQzMWFlODg4MWZhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xNDYsNiArMTQ2LDcgQEAgc2V0KFdlYktpdDJHVEtf
SU5TVEFMTEVEX0hFQURFUlMKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVSSVJlcXVlc3QuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VVJJUmVzcG9uc2UuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVUklVdGlsaXRpZXMuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnQuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZS5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5j
bWFrZQppbmRleCA4Nzc2NWY5NDE4ZTA3ZWM4NTY4OTVhMmYxNzcxYWY2ODM4ZjM4MTFhLi44N2Zh
NmUxYmQ5ZTVmOGRiZGVmODU0MDIxZjdkODU3OTU5MTYyOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUu
Y21ha2UKQEAgLTE3Niw2ICsxNzYsNyBAQCBzZXQoV1BFX0FQSV9JTlNUQUxMRURfSEVBREVSUwog
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJUmVxdWVzdC5oCiAg
ICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklSZXNwb25zZS5oCiAg
ICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0
LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVV0
aWxpdGllcy5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVc2Vy
Q29udGVudC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVc2Vy
Q29udGVudEZpbHRlclN0b3JlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dU
Sy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CmluZGV4IDVjOTU0ZWVmOWFlMWIy
Zjk0ZWYwMDhiMmEzOGFmODg5NGIwYzlhYzUuLmYyMTI0NmYwMGMxOGYyMzgxZmNlZTczMTdmOTY0
OWYxYjY2MWUzNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKKysr
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dApAQCAtMTczLDYgKzE3Myw3IEBAIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZWN1cml0eU9yaWdpbi5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFVJQ2xpZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBAbm8tdW5pZnkKK1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRVUklTY2hlbWVSZXNwb25zZS5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0VVJJVXRpbGl0aWVzLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRV
c2VyQ29udGVudC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VXNlckNv
bnRlbnRGaWx0ZXJTdG9yZS5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNXUEUudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAppbmRleCA4YTFj
MzBmMzJmM2I5MzUwYTMwNmJlZjUzMGVjYjMzNDBjMWYyOWM3Li45NDQxOWRkODZmMDc5YzVjNTNl
NjhjZThlNzliOTE1NTA1YTg3YWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNX
UEUudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKQEAgLTE2NCw2ICsxNjQs
NyBAQCBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2VjdXJpdHlPcmlnaW4uY3BwIEBuby11bmlm
eQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAgQG5vLXVuaWZ5CitVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVSSVV0aWxpdGllcy5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0VXNlckNvbnRlbnQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFVzZXJDb250ZW50RmlsdGVyU3RvcmUuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0
LmNwcAppbmRleCA2YTBkNTljMTAyODllMWI4MGNhMmExNTVlNDZlN2RkOTg5ZjVlOWYxLi4zNDVk
NDQ2ZjFkMzhlMzZkODg1YWRkZDI5NjVmYzdhNzZmZjM3ZGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0
LmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkFQSURhdGEuaCIKICNpbmNsdWRlICJX
ZWJLaXRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUu
aCIKKyNpbmNsdWRlICJXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGUuaCIKICNpbmNsdWRl
ICJXZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXcuaCIK
ICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKQEAgLTY0LDEyICs2NSwxMSBAQCBzdHJ1Y3QgX1dl
YktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlIHsKICAgICBDU3RyaW5nIHVyaVNjaGVtZTsKICAg
ICBDU3RyaW5nIHVyaVBhdGg7CiAKLSAgICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4gc3RyZWFtOwot
ICAgIHVpbnQ2NF90IHN0cmVhbUxlbmd0aDsKKyAgICBHUmVmUHRyPFdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlPiByZXNwb25zZTsKICAgICBHUmVmUHRyPEdDYW5jZWxsYWJsZT4gY2FuY2VsbGFibGU7
CiAgICAgY2hhciByZWFkQnVmZmVyW2dSZWFkQnVmZmVyU2l6ZV07CiAgICAgdWludDY0X3QgYnl0
ZXNSZWFkOwotICAgIENTdHJpbmcgY29udGVudFR5cGU7CisgICAgY29uc3QgY2hhciogaHR0cE1l
dGhvZDsKIH07CiAKIFdFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRVUklTY2hlbWVSZXF1ZXN0LCB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0LCBHX1RZUEVfT0JKRUNUKQpAQCAtMTYxLDYgKzE2MSwy
NiBAQCBXZWJLaXRXZWJWaWV3KiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmll
dyhXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZQogICAgIHJldHVybiB3ZWJraXRXZWJDb250ZXh0
R2V0V2ViVmlld0ZvclBhZ2UocmVxdWVzdC0+cHJpdi0+d2ViQ29udGV4dCwgcmVxdWVzdC0+cHJp
di0+aW5pdGlhdGluZ1BhZ2UuZ2V0KCkpOwogfQogCisvKioKKyAqIHdlYmtpdF91cmlfc2NoZW1l
X3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kOgorICogQHJlcXVlc3Q6IGEgI1dlYktpdFVSSVNjaGVt
ZVJlcXVlc3QKKyAqCisgKiBHZXQgdGhlIEhUVFAgbWV0aG9kIG9mIHRoZSBAcmVxdWVzdAorICoK
KyAqIFJldHVybnM6IHRoZSBIVFRQIG1ldGhvZCBvZiB0aGUgQHJlcXVlc3QKKyAqIAorICogU2lu
Y2U6IDIuMzYKKyAqLworY29uc3QgZ2NoYXIqIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0
X2h0dHBfbWV0aG9kKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVRVUVTVChyZXF1ZXN0KSwg
bnVsbHB0cik7CisKKyAgICBpZiAoIXJlcXVlc3QtPnByaXYtPmh0dHBNZXRob2QpCisgICAgICAg
IHJlcXVlc3QtPnByaXYtPmh0dHBNZXRob2QgPSBnX2ludGVybl9zdHJpbmcocmVxdWVzdC0+cHJp
di0+dGFzay0+cmVxdWVzdCgpLmh0dHBNZXRob2QoKS51dGY4KCkuZGF0YSgpKTsKKworICAgIHJl
dHVybiByZXF1ZXN0LT5wcml2LT5odHRwTWV0aG9kOworfQorCiBzdGF0aWMgdm9pZCB3ZWJraXRV
UklTY2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdB
c3luY1Jlc3VsdCogcmVzdWx0LCBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiBzY2hlbWVSZXF1ZXN0
KQogewogICAgIEdSZWZQdHI8V2ViS2l0VVJJU2NoZW1lUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0
R1JlZihzY2hlbWVSZXF1ZXN0KTsKQEAgLTE3NCwyMCArMTk0LDI5IEBAIHN0YXRpYyB2b2lkIHdl
YmtpdFVSSVNjaGVtZVJlcXVlc3RSZWFkQ2FsbGJhY2soR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVh
bSwgR0FzeW5jCiAgICAgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1
ZXN0LT5wcml2OwogICAgIC8vIE5lZWQgdG8gY2hlY2sgdGhlIHN0cmVhbSBiZWZvcmUgcHJvY2Vl
ZGluZyBhcyBpdCBjYW4gYmUgY2FuY2VsbGVkIGlmIGZpbmlzaF9lcnJvcgogICAgIC8vIHdhcyBw
cmV2aW91c2x5IGNhbGwsIHdoaWNoIHdvbid0IGJlIGRldGVjdGVkIGJ5IGdfaW5wdXRfc3RyZWFt
X3JlYWRfZmluaXNoKCkuCi0gICAgaWYgKCFwcml2LT5zdHJlYW0pCisgICAgaWYgKCFwcml2LT5y
ZXNwb25zZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2Uq
IHJlc3AgPSBwcml2LT5yZXNwb25zZS5nZXQoKTsKICAgICBpZiAoIXByaXYtPmJ5dGVzUmVhZCkg
ewotICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKHByaXYtPnRhc2stPnJlcXVlc3Qo
KS51cmwoKSwgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShwcml2LT5jb250ZW50VHlwZS5k
YXRhKCkpLCBwcml2LT5zdHJlYW1MZW5ndGgsIGVtcHR5U3RyaW5nKCkpOwotICAgICAgICByZXNw
b25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShwcml2
LT5jb250ZW50VHlwZS5kYXRhKCkpKTsKLSAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0Nv
ZGUoMjAwKTsKLSAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKKyAg
ICAgICAgQ1N0cmluZyBjb250ZW50VHlwZSA9IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0Q29u
dGVudFR5cGUocmVzcCk7CisgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UocHJpdi0+
dGFzay0+cmVxdWVzdCgpLnVybCgpLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRl
bnRUeXBlLmRhdGEoKSksIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RyZWFtTGVuZ3RoKHJl
c3ApLCBlbXB0eVN0cmluZygpKTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFt
ZShleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUoY29udGVudFR5cGUuZGF0YSgpKSk7CisgICAg
ICAgIGNvbnN0IENTdHJpbmcmIHN0YXR1c01lc3NhZ2UgPSBXZWJLaXRVUklTY2hlbWVSZXNwb25z
ZUdldFN0YXR1c01lc3NhZ2UocmVzcCk7CisgICAgICAgIGlmIChzdGF0dXNNZXNzYWdlLmlzTnVs
bCgpKSB7CisgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOworICAg
ICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlR2V0U3RhdHVzQ29kZShyZXNwKSk7CisgICAgICAgICAgICByZXNwb25zZS5z
ZXRIVFRQU3RhdHVzVGV4dChzdGF0dXNNZXNzYWdlLmRhdGEoKSk7CisgICAgICAgIH0KICAgICAg
ICAgaWYgKHJlc3BvbnNlLm1pbWVUeXBlKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmVzcG9u
c2Uuc2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKHJlc3BvbnNl
LnVybCgpLnBhdGgoKS50b1N0cmluZygpKSk7CiAgICAgICAgIHByaXYtPnRhc2stPmRpZFJlY2Vp
dmVSZXNwb25zZShyZXNwb25zZSk7CiAgICAgfQogCiAgICAgaWYgKCFieXRlc1JlYWQpIHsKKyAg
ICAgICAgcHJpdi0+cmVzcG9uc2UgPSBudWxscHRyOwogICAgICAgICBwcml2LT50YXNrLT5kaWRD
b21wbGV0ZSh7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjEzLDEzICsyNDIsMzEg
QEAgdm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaChXZWJLaXRVUklTY2hlbWVS
ZXF1ZXN0KiByZXF1ZXN0LCBHSW5wdXRTdHIKICAgICBnX3JldHVybl9pZl9mYWlsKEdfSVNfSU5Q
VVRfU1RSRUFNKGlucHV0U3RyZWFtKSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzdHJlYW1MZW5n
dGggPT0gLTEgfHwgc3RyZWFtTGVuZ3RoID49IDApOwogCi0gICAgcmVxdWVzdC0+cHJpdi0+c3Ry
ZWFtID0gaW5wdXRTdHJlYW07Ci0gICAgLy8gV2UgdXNlIC0xIGluIHRoZSBBUEkgZm9yIGNvbnNp
c3RlbmN5IHdpdGggc291cCB3aGVuIHRoZSBjb250ZW50IGxlbmd0aCBpcyBub3Qga25vd24sIGJ1
dCAwIGludGVybmFsbHkuCi0gICAgcmVxdWVzdC0+cHJpdi0+c3RyZWFtTGVuZ3RoID0gc3RyZWFt
TGVuZ3RoID09IC0xID8gMCA6IHN0cmVhbUxlbmd0aDsKKyAgICBHUmVmUHRyPFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0R1JlZih3ZWJraXRfdXJpX3NjaGVtZV9yZXNw
b25zZV9uZXcoaW5wdXRTdHJlYW0sIHN0cmVhbUxlbmd0aCkpOworICAgIGlmIChjb250ZW50VHlw
ZSkKKyAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZShy
ZXNwb25zZS5nZXQoKSwgY29udGVudFR5cGUpOworCisgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZShyZXF1ZXN0LCByZXNwb25zZS5nZXQoKSk7Cit9CisK
Ky8qKgorICogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZToK
KyAqIEByZXF1ZXN0OiBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0CisgKiBAcmVzcG9uc2U6IGEg
I1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKgorICogRmluaXNoIGEgI1dlYktpdFVSSVNjaGVt
ZVJlcXVlc3QgYnkgcmV0dXJuaW5nIGEgI1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKgorICog
U2luY2U6IDIuMzYKKyAqLwordm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF93
aXRoX3Jlc3BvbnNlKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlKiByZXNwb25zZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9J
U19VUklfU0NIRU1FX1JFUVVFU1QocmVxdWVzdCkpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VC
S0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0UocmVzcG9uc2UpKTsKKwogICAgIHJlcXVlc3QtPnBy
aXYtPmNhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpOwotICAgIHJl
cXVlc3QtPnByaXYtPmJ5dGVzUmVhZCA9IDA7Ci0gICAgcmVxdWVzdC0+cHJpdi0+Y29udGVudFR5
cGUgPSBjb250ZW50VHlwZTsKLSAgICBnX2lucHV0X3N0cmVhbV9yZWFkX2FzeW5jKGlucHV0U3Ry
ZWFtLCByZXF1ZXN0LT5wcml2LT5yZWFkQnVmZmVyLCBnUmVhZEJ1ZmZlclNpemUsIFJ1bkxvb3BT
b3VyY2VQcmlvcml0eTo6QXN5bmNJT05ldHdvcmssIHJlcXVlc3QtPnByaXYtPmNhbmNlbGxhYmxl
LmdldCgpLAorICAgIHJlcXVlc3QtPnByaXYtPnJlc3BvbnNlID0gcmVzcG9uc2U7CisKKyAgICBn
X2lucHV0X3N0cmVhbV9yZWFkX2FzeW5jKFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RyZWFt
KHJlc3BvbnNlKSwgcmVxdWVzdC0+cHJpdi0+cmVhZEJ1ZmZlciwgZ1JlYWRCdWZmZXJTaXplLCBS
dW5Mb29wU291cmNlUHJpb3JpdHk6OkFzeW5jSU9OZXR3b3JrLCByZXF1ZXN0LT5wcml2LT5jYW5j
ZWxsYWJsZS5nZXQoKSwKICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxHQXN5bmNSZWFkeUNhbGxi
YWNrPih3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKSwgZ19vYmplY3RfcmVmKHJl
cXVlc3QpKTsKIH0KIApAQCAtMjM4LDcgKzI4NSw3IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVf
cmVxdWVzdF9maW5pc2hfZXJyb3IoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0Vy
CiAgICAgZ19yZXR1cm5faWZfZmFpbChlcnJvcik7CiAKICAgICBXZWJLaXRVUklTY2hlbWVSZXF1
ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7Ci0gICAgcHJpdi0+c3RyZWFtID0gbnVs
bHB0cjsKKyAgICBwcml2LT5yZXNwb25zZSA9IG51bGxwdHI7CiAgICAgUmVzb3VyY2VFcnJvciBy
ZXNvdXJjZUVycm9yKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pLCB0b1dlYkNvcmVF
cnJvcihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpm
cm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOwogICAgIHByaXYtPnRhc2stPmRpZENvbXBsZXRlKHJl
c291cmNlRXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzNDhl
NGNjYjhiNGQ0NmZlYzU1NzkxZTIyMjk5MzZhOTg3ZDAyZGEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5j
cHAKQEAgLTAsMCArMSwyMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgWml4aW5nIExp
dQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQ
cml2YXRlLmgiCisKKyNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCisjaW5jbHVkZSA8Z2xpYi9n
aTE4bi1saWIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvV1RGR1R5cGUuaD4KKworZW51bSB7CisgICAgUFJPUF8wLAorICAgIFBST1BfU1RSRUFN
LAorICAgIFBST1BfU1RSRUFNX0xFTkdUSCwKKyAgICBOX1BST1BFUlRJRVMsCit9OworCitzdGF0
aWMgR1BhcmFtU3BlYyogc09ialByb3BlcnRpZXNbTl9QUk9QRVJUSUVTXSA9IHsgbnVsbHB0ciwg
fTsKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CisvKioKKyAqIFNFQ1RJT046IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKiBAU2hvcnRfZGVz
Y3JpcHRpb246IFJlcHJlc2VudHMgYSBVUkkgc2NoZW1lIHJlc3BvbnNlCisgKiBAVGl0bGU6IFdl
YktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKgorICogSWYgeW91IHJlZ2lzdGVyIGEgcGFydGljdWxh
ciBVUkkgc2NoZW1lIGluIGEgI1dlYktpdFdlYkNvbnRleHQsCisgKiB1c2luZyB3ZWJraXRfd2Vi
X2NvbnRleHRfcmVnaXN0ZXJfdXJpX3NjaGVtZSgpLCB5b3UgaGF2ZSB0byBwcm92aWRlCisgKiBh
ICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Q2FsbGJhY2suIEFmdGVyIHRoYXQsIHdoZW4gYSBVUkkg
cmVzcG9uc2UKKyAqIGlzIG1hZGUgd2l0aCB0aGF0IHBhcnRpY3VsYXIgc2NoZW1lLCB5b3VyIGNh
bGxiYWNrIHdpbGwgYmUKKyAqIGNhbGxlZC4gVGhlcmUgeW91IHdpbGwgYmUgYWJsZSB0byBwcm92
aWRlIG1vcmUgcmVzcG9uc2UgcGFyYW1ldGVycworICogd2hlbiB0aGUgbWV0aG9kcyBhbmQgcHJv
cGVydGllcyBvZiBhICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0IGlzIG5vdAorICogZW5vdWdoLgor
ICogCisgKiBXaGVuIHlvdSBmaW5pc2hlZCBzZXR0aW5nIHVwIHlvdXIgI1dlYktpdFVSSVNjaGVt
ZVJlc3BvbnNlLCBjYWxsCisgKiB3ZWJraXRfdXJpX3JlcXVlc3RfZmluaXNoX3dpdGhfcmVzcG9u
c2UoKSB3aXRoIGl0IHRvIHJldHVybiB0aGUgcmVzcG9uc2UuCisgKgorICovCisKK3N0cnVjdCBf
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlIHsKKyAgICBHUmVmUHRyPEdJbnB1dFN0cmVh
bT4gc3RyZWFtOworICAgIHVpbnQ2NF90IHN0cmVhbUxlbmd0aDsKKworICAgIGludCBzdGF0dXND
b2RlIHsgLTEgfTsKKyAgICBDU3RyaW5nIHN0YXR1c01lc3NhZ2U7CisgICAgQ1N0cmluZyBjb250
ZW50VHlwZTsKK307CisKK1dFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRVUklTY2hlbWVSZXNwb25z
ZSwgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2UsIEdfVFlQRV9PQkpFQ1QpCisKK3N0YXRpYyB2
b2lkIHdlYmtpdFVSSVNjaGVtZVJlc3BvbnNlU2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBn
dWludCBwcm9wSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBhcmFtU3BlYykK
K3sKKyAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UgPSBXRUJLSVRfVVJJX1ND
SEVNRV9SRVNQT05TRShvYmplY3QpOworCisgICAgc3dpdGNoIChwcm9wSWQpIHsKKyAgICBjYXNl
IFBST1BfU1RSRUFNOgorICAgICAgICByZXNwb25zZS0+cHJpdi0+c3RyZWFtID0gR19JTlBVVF9T
VFJFQU0oZ192YWx1ZV9nZXRfb2JqZWN0KHZhbHVlKSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUFJPUF9TVFJFQU1fTEVOR1RIOiB7CisgICAgICAgIGdpbnQ2NCBzdHJlYW1MZW5ndGggPSBn
X3ZhbHVlX2dldF9pbnQ2NCh2YWx1ZSk7CisgICAgICAgIC8vIFdlIHVzZSAtMSBpbiB0aGUgQVBJ
IGZvciBjb25zaXN0ZW5jeSB3aXRoIHNvdXAgd2hlbiB0aGUgY29udGVudCBsZW5ndGggaXMgbm90
IGtub3duLCBidXQgMCBpbnRlcm5hbGx5LgorICAgICAgICByZXNwb25zZS0+cHJpdi0+c3RyZWFt
TGVuZ3RoID0gc3RyZWFtTGVuZ3RoID09IC0xID8gMCA6IHN0cmVhbUxlbmd0aDsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJ
RF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJZCwgcGFyYW1TcGVjKTsKKyAgICB9Cit9CisKK3N0
YXRpYyB2b2lkIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2NsYXNzX2luaXQoV2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2VDbGFzcyoga2xhc3MpCit7CisgICAgR09iamVjdENsYXNzKiBvYmplY3RD
bGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKyAgICBvYmplY3RDbGFzcy0+c2V0X3Byb3Bl
cnR5ID0gd2Via2l0VVJJU2NoZW1lUmVzcG9uc2VTZXRQcm9wZXJ0eTsKKworICAgIC8qKgorICAg
ICAqIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlOnN0cmVhbToKKyAgICAgKgorICAgICAqIFRoZSBp
bnB1dCBzdHJlYW0gdG8gcmVhZCBmcm9tLgorICAgICAqCisgICAgICogU2luY2U6IDIuMzYKKyAg
ICAgKi8KKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX1NUUkVBTV0gPSAKKyAgICAgICAgZ19wYXJh
bV9zcGVjX29iamVjdCgKKyAgICAgICAgICAgICJzdHJlYW0iLAorICAgICAgICAgICAgXygiSW5w
dXQgc3RyZWFtIiksCisgICAgICAgICAgICBfKCJUaGUgaW5wdXQgc3RyZWFtIHRvIHJlYWQgZnJv
bS4iKSwKKyAgICAgICAgICAgIEdfVFlQRV9JTlBVVF9TVFJFQU0sCisgICAgICAgICAgICBzdGF0
aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lUX1BBUkFNX1dSSVRBQkxFIHwgR19QQVJBTV9DT05T
VFJVQ1RfT05MWSkpOworCisgICAgLyoqCisgICAgICogV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2U6
c3RyZWFtX2xlbmd0aDoKKyAgICAgKgorICAgICAqIFRoZSBpbnB1dCBzdHJlYW0gbGVuZ3RoIGlu
IGJ5dGVzLiAtMSBmb3IgdW5rbm93biBsZW5ndGguCisgICAgICoKKyAgICAgKiBTaW5jZTogMi4z
NgorICAgICAqLworICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfU1RSRUFNX0xFTkdUSF0gPSAKKyAg
ICAgICAgZ19wYXJhbV9zcGVjX2ludDY0KAorICAgICAgICAgICAgInN0cmVhbS1sZW5ndGgiLAor
ICAgICAgICAgICAgXygiSW5wdXQgc3RyZWFtIGxlbmd0aCIpLAorICAgICAgICAgICAgXygiVGhl
IGlucHV0IHN0cmVhbSBsZW5ndGggaW4gYnl0ZXMuIC0xIGZvciB1bmtub3duIGxlbmd0aC4iKSwK
KyAgICAgICAgICAgIC0xLCBJTlQ2NF9NQVgsIC0xLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
R1BhcmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9XUklUQUJMRSB8IEdfUEFSQU1fQ09OU1RSVUNUX09O
TFkpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydGllcyhvYmplY3RDbGFz
cywgTl9QUk9QRVJUSUVTLCBzT2JqUHJvcGVydGllcyk7Cit9CisKKy8vIFByaXZhdGUgZ2V0dGVy
cworaW50IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzQ29kZShjb25zdCBXZWJLaXRV
UklTY2hlbWVSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIHJlc3BvbnNlLT5wcml2
LT5zdGF0dXNDb2RlOworfQorCitHSW5wdXRTdHJlYW0qIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
R2V0U3RyZWFtKGNvbnN0IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKiByZXNwb25zZSkKK3sKKyAg
ICByZXR1cm4gcmVzcG9uc2UtPnByaXYtPnN0cmVhbS5nZXQoKTsKK30KKworY29uc3QgQ1N0cmlu
ZyYgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRTdGF0dXNNZXNzYWdlKGNvbnN0IFdlYktpdFVS
SVNjaGVtZVJlc3BvbnNlKiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gcmVzcG9uc2UtPnByaXYt
PnN0YXR1c01lc3NhZ2U7Cit9CisKK2NvbnN0IENTdHJpbmcmIFdlYktpdFVSSVNjaGVtZVJlc3Bv
bnNlR2V0Q29udGVudFR5cGUoY29uc3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3BvbnNl
KQoreworICAgIHJldHVybiByZXNwb25zZS0+cHJpdi0+Y29udGVudFR5cGU7Cit9CisKK3VpbnQ2
NF90IFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RyZWFtTGVuZ3RoKGNvbnN0IFdlYktpdFVS
SVNjaGVtZVJlc3BvbnNlKiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gcmVzcG9uc2UtPnByaXYt
PnN0cmVhbUxlbmd0aDsKK30KKworLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9u
ZXc6CisgKiBAaW5wdXRfc3RyZWFtOiBhICNHSW5wdXRTdHJlYW0gdG8gcmVhZCB0aGUgY29udGVu
dHMgb2YgdGhlIHJlcXVlc3QKKyAqIEBzdHJlYW1fbGVuZ3RoOiB0aGUgbGVuZ3RoIG9mIHRoZSBz
dHJlYW0gb3IgLTEgaWYgbm90IGtub3duCisgKgorICogQ3JlYXRlIGEgbmV3ICNXZWJLaXRVUklT
Y2hlbWVSZXNwb25zZQorICoKKyAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogdGhlIG5ld2x5
IGNyZWF0ZWQgI1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLgorICoKKyAqIFNpbmNlOiAyLjM2Cisg
Ki8KK1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9u
ZXcoR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgZ2ludDY0IHN0cmVhbUxlbmd0aCkKK3sKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChHX0lTX0lOUFVUX1NUUkVBTShpbnB1dFN0cmVhbSksIG51
bGxwdHIpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHN0cmVhbUxlbmd0aCA9PSAtMSB8fCBz
dHJlYW1MZW5ndGggPj0gMCwgbnVsbHB0cik7CisKKyAgICByZXR1cm4gV0VCS0lUX1VSSV9TQ0hF
TUVfUkVTUE9OU0UoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0Us
ICJzdHJlYW0iLCBpbnB1dFN0cmVhbSwgInN0cmVhbS1sZW5ndGgiLCBzdHJlYW1MZW5ndGgsIG51
bGxwdHIpKTsKK30KKworLyoqCisgKiB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfY29u
dGVudF90eXBlOgorICogQHJlc3BvbnNlOiBhICNXZWJLaXRVUklTY2hlbWVSZXNwb25zZQorICog
QGNvbnRlbnRfdHlwZTogdGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgc3RyZWFtCisgKgorICogU2V0
cyB0aGUgY29udGVudCB0eXBlIGZvciB0aGUgQHJlc3BvbnNlCisgKgorICogU2luY2U6IDIuMzYK
KyAqLwordm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfY29udGVudF90eXBlKFdl
YktpdFVSSVNjaGVtZVJlc3BvbnNlKiByZXNwb25zZSwgY29uc3QgZ2NoYXIqIGNvbnRlbnRUeXBl
KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0Uo
cmVzcG9uc2UpKTsKKworICAgIHJlc3BvbnNlLT5wcml2LT5jb250ZW50VHlwZSA9IGNvbnRlbnRU
eXBlOworfQorCisvKioKKyAqIHdlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXM6
CisgKiBAcmVzcG9uc2U6IGEgI1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlCisgKiBAc3RhdHVzX2Nv
ZGU6IHRoZSBIVFRQIHN0YXR1cyBjb2RlIHRvIGJlIHJldHVybmVkCisgKiBAcmVhc29uX3BocmFz
ZTogKGFsbG93LW5vbmUpOiBhIHJlYXNvbiBwaHJhc2UKKyAqCisgKiBTZXRzIHRoZSBzdGF0dXMg
Y29kZSBhbmQgcmVhc29uIHBocmFzZSBmb3IgdGhlIEByZXNwb25zZS4KKyAqIElmIEBzdGF0dXNf
Y29kZSBpcyBhIGtub3duIHZhbHVlIGFuZCBAcmVhc29uX3BocmFzZSBpcyAlTlVMTCwgdGhlIEBy
ZWFzb25fcGhyYXNlIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkuCisgKgorICogU2luY2U6IDIu
MzYKKyAqLwordm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfc3RhdHVzKFdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlKiByZXNwb25zZSwgZ3VpbnQgc3RhdHVzQ29kZSwgY29uc3QgZ2No
YXIqIHN0YXR1c01lc3NhZ2UpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfVVJJ
X1NDSEVNRV9SRVNQT05TRShyZXNwb25zZSkpOworCisgICAgcmVzcG9uc2UtPnByaXYtPnN0YXR1
c0NvZGUgPSBzdGF0aWNfY2FzdDxnaW50PihzdGF0dXNDb2RlKTsKKyAgICBpZiAoc3RhdHVzTWVz
c2FnZSkKKyAgICAgICAgcmVzcG9uc2UtPnByaXYtPnN0YXR1c01lc3NhZ2UgPSBzdGF0dXNNZXNz
YWdlOworICAgIGVsc2UKKyAgICAgICAgcmVzcG9uc2UtPnByaXYtPnN0YXR1c01lc3NhZ2UgPSBz
b3VwX3N0YXR1c19nZXRfcGhyYXNlKHN0YXR1c0NvZGUpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXNw
b25zZVByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjBkNmYwYTc2ZDMzZTg0MzJlMTA4YjdkYjEzOThl
ZTNlZGJiZDczCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlLmgKQEAgLTAsMCArMSwyOSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBaaXhpbmcgTGl1CisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CisKK2ludCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0YXR1c0NvZGUoY29uc3Qg
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqKTsKK0dJbnB1dFN0cmVhbSogV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2VHZXRTdHJlYW0oY29uc3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqKTsKK2NvbnN0
IENTdHJpbmcmIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzTWVzc2FnZShjb25zdCBX
ZWJLaXRVUklTY2hlbWVSZXNwb25zZSopOworY29uc3QgQ1N0cmluZyYgV2ViS2l0VVJJU2NoZW1l
UmVzcG9uc2VHZXRDb250ZW50VHlwZShjb25zdCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZSopOwor
dWludDY0X3QgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRTdHJlYW1MZW5ndGgoY29uc3QgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2UqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oCmluZGV4IGE0YWFmZDczZmIyYWE3ZDgzYjVh
M2YzNjlhMDJlNjFlODYwZGQyNGUuLjI1ZGY3ZDA3ODVjZjhmNmQ5NThlZWQ4ODA2YWRjMjM3MGMz
MzgzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
QXV0b2NsZWFudXBzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRBdXRvY2xlYW51cHMuaApAQCAtNjIsNiArNjIsNyBAQCBHX0RFRklORV9BVVRPUFRSX0NMRUFO
VVBfRlVOQyAoV2ViS2l0U2V0dGluZ3MsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BU
Ul9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJ
TkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVJlc3BvbnNlLCBnX29iamVjdF91bnJl
ZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRV
UklTY2hlbWVSZXNwb25zZSwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFO
VVBfRlVOQyAoV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZSwgZ19vYmplY3RfdW5yZWYpCiBH
X0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLCBn
X29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCmlu
ZGV4IGQyYjA2YTE0ZGM1YTIwN2U4NzU2NGEwZWJjMzViY2MxMzliMWVjNGUuLjJiODhhYTZhODk3
ODQ3YmExNGY2ZTg5MjI0NjMwNzY4NWYzZGU5OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dl
YktpdERlZmluZXMuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZvcndhcmREZWNsYXJhdGlv
bnMuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmg+CiAKIEdf
QkVHSU5fREVDTFMKIApAQCAtNzEsMTIgKzcyLDE5IEBAIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZ2V0X3BhdGggICAgIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKIFdFQktJ
VF9BUEkgV2ViS2l0V2ViVmlldyAqCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJf
dmlldyAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CiAKK1dFQktJVF9BUEkgY29u
c3QgZ2NoYXIgKgord2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QgKFdl
YktpdFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOworCiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtp
dF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoICAgICAgIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
ICpyZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJbnB1
dFN0cmVhbSAgICAgICAgICAgKnN0cmVhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnaW50NjQgICAgICAgICAgICAgICAgICBzdHJlYW1fbGVuZ3RoLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAg
KmNvbnRlbnRfdHlwZSk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZSAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAgKnJlcXVl
c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJL
aXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9uc2UpOworCiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtp
dF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vycm9yIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
ICpyZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJv
ciAgICAgICAgICAgICAgICAgKmVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
YzcwY2U2NzNlYTI0NGRlMDcwMGYwZjYwNDFlZTZlYWI2MGE3N2RlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXNwb25z
ZS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgWml4aW5nIExp
dQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJf
Q09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5j
bHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2VfaAorI2RlZmluZSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZV9oCisKKyNpbmNsdWRlIDxnbGli
LW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUg
PHdlYmtpdDIvV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oPgorCitHX0JFR0lOX0RFQ0xTCisK
KyNkZWZpbmUgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRSAgICAgICAgICAgICh3ZWJr
aXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfVVJJX1ND
SEVNRV9SRVNQT05TRShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNU
KChvYmopLCBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVS
ZXNwb25zZSkpCisjZGVmaW5lIFdFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFKG9iaikgICAg
ICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1VSSV9T
Q0hFTUVfUkVTUE9OU0UpKQorI2RlZmluZSBXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRV9DTEFT
UyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQ
RV9VUklfU0NIRU1FX1JFU1BPTlNFLCBXZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzKSkKKyNk
ZWZpbmUgV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1Moa2xhc3MpIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05T
RSkpCisjZGVmaW5lIFdFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFX0dFVF9DTEFTUyhvYmopICAo
R19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVf
UkVTUE9OU0UsIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVj
dCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgICAgICAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MgICBXZWJLaXRV
UklTY2hlbWVSZXNwb25zZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVSSVNjaGVtZVJl
c3BvbnNlUHJpdmF0ZSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZVByaXZhdGU7CisKK3N0cnVjdCBf
V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgV2Vi
S2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRV
UklTY2hlbWVSZXNwb25zZUNsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwor
CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9p
ZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRf
QVBJIEdUeXBlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9nZXRfdHlwZSAgICAgICAgICAg
KHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlICoKK3dlYmtpdF91
cmlfc2NoZW1lX3Jlc3BvbnNlX25ldyAgICAgICAgICAgICAgICAoR0lucHV0U3RyZWFtICAgICAg
ICAgICAgKmlucHV0X3N0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2ludDY0ICAgICAgICAgICAgICAgICAgIHN0cmVhbV9sZW5ndGgpOworCitX
RUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMgICAg
ICAgICAoV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgICAg
c3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICpyZWFzb25fcGhyYXNlKTsKKworV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9zZXRfY29udGVudF90eXBlICAgKFdl
YktpdFVSSVNjaGVtZVJlc3BvbnNlICpyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgKmNvbnRlbnRf
dHlwZSk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9u
cy50eHQKaW5kZXggMWJhYmI5MzlmY2VjMTZmOTQ5MzRhZjM4OGU0MTZlOTAzYmUxZWU4Ny4uNzdj
NDU0YTVhNDIxOTMxMzBmYzkyMTI3MzQ2OTAxYmI2ZGYzNjhjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00
LjAtc2VjdGlvbnMudHh0CkBAIC0xMjc3LDcgKzEyNzcsOSBAQCB3ZWJraXRfdXJpX3NjaGVtZV9y
ZXF1ZXN0X2dldF9zY2hlbWUKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3VyaQogd2Vi
a2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfcGF0aAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9nZXRfd2ViX3ZpZXcKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9k
CiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaAord2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdF9maW5pc2hfd2l0aF9yZXNwb25zZQogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5p
c2hfZXJyb3IKIAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CkBAIC0xMjk0LDYgKzEyOTYsMjcgQEAg
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
Z2V0X3R5cGUKIDwvU0VDVElPTj4KIAorPFNFQ1RJT04+Cis8RklMRT5XZWJLaXRVUklTY2hlbWVS
ZXNwb25zZTwvRklMRT4KK1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlCit3ZWJraXRfdXJpX3NjaGVt
ZV9yZXNwb25zZV9uZXcKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9jb250ZW50X3R5
cGUKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9zdGF0dXMKKworPFNVQlNFQ1RJT04g
U3RhbmRhcmQ+CitXZWJLaXRVUklTY2hlbWVSZXNwb25zZUNsYXNzCitXRUJLSVRfVFlQRV9VUklf
U0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfVVJJX1NDSEVNRV9SRVNQT05TRQorV0VCS0lUX0lTX1VS
SV9TQ0hFTUVfUkVTUE9OU0UKK1dFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFX0NMQVNTCitXRUJL
SVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRV9DTEFTUworV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9O
U0VfR0VUX0NMQVNTCisKKzxTVUJTRUNUSU9OIFByaXZhdGU+CitXZWJLaXRVUklTY2hlbWVSZXNw
b25zZVByaXZhdGUKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2dldF90eXBlCis8L1NFQ1RJ
T04+CisKIDxTRUNUSU9OPgogPEZJTEU+V2ViS2l0VmVyc2lvbjwvRklMRT4KIHdlYmtpdF9nZXRf
bWFqb3JfdmVyc2lvbgpAQCAtMTk4NSw0ICsyMDA4LDMgQEAgd2Via2l0X21lbW9yeV9wcmVzc3Vy
ZV9zZXR0aW5nc19nZXRfdHlwZQogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CiBXRUJLSVRfVFlQRV9N
RU1PUllfUFJFU1NVUkVfU0VUVElOR1MKIDwvU0VDVElPTj4KLQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLnR5cGVzIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLnR5cGVzCmlu
ZGV4IDQ5MzdhYmI1NjQ4NzNjZTA2ZWI2NDMxNTkxZGUzMWRjYjFkMGM1NTEuLmVmNmU4YWQ2NTk1
NjU5YzBkNTBmNWM2MmQzNTA1YTIxNmI3MGFmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC50eXBlcworKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAudHlwZXMKQEAgLTE5
LDYgKzE5LDcgQEAgd2Via2l0X3BsdWdpbl9nZXRfdHlwZQogd2Via2l0X21pbWVfaW5mb19nZXRf
dHlwZQogd2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0X3R5cGUKIHdlYmtpdF91cmlfc2NoZW1lX3Jl
cXVlc3RfZ2V0X3R5cGUKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2dldF90eXBlCiB3ZWJr
aXRfY29udGV4dF9tZW51X2dldF90eXBlCiB3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fZ2V0X3R5
cGUKIHdlYmtpdF93ZWJfZXh0ZW5zaW9uX2dldF90eXBlCkBAIC00Miw0ICs0Myw0IEBAIHdlYmtp
dF9vcHRpb25fbWVudV9pdGVtX2dldF90eXBlCiB3ZWJraXRfZGV2aWNlX2luZm9fcGVybWlzc2lv
bl9yZXF1ZXN0X2dldF90eXBlCiB3ZWJraXRfZ2VvbG9jYXRpb25fbWFuYWdlcl9nZXRfdHlwZQog
d2Via2l0X2dlb2xvY2F0aW9uX3Bvc2l0aW9uX2dldF90eXBlCi13ZWJraXRfcG9pbnRlcl9sb2Nr
X3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
K3dlYmtpdF9wb2ludGVyX2xvY2tfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2Nz
LnNnbWwgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1k
b2NzLnNnbWwKaW5kZXggNDExZWU2NGQ4MzMzM2YwNTIzMDZjNWI5OWQwNzNiYjQyNzk3OGE2NS4u
ZTEyYzdkYjVjNzk2ZmM1OGNhODYyZDA2MmJhYzcxYzgwOGVhNjBiZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Mu
c2dtbApAQCAtNDUsNiArNDUsNyBAQAogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRQ
bHVnaW4ueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFdlYkluc3BlY3Rv
ci54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dC54bWwiLz4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2UueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFZlcnNpb24ueG1sIi8+
CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdENvbnRleHRNZW51LnhtbCIvPgogICAg
IDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRDb250ZXh0TWVudUl0ZW0ueG1sIi8+CkBAIC0x
NzAsNSArMTcxLDEwIEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2FwaS1pbmRleC0yLjMw
LnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRlPgogICA8L2luZGV4PgogCisgIDxpbmRl
eCBpZD0iYXBpLWluZGV4LTItMzYiIHJvbGU9IjIuMzYiPgorICAgIDx0aXRsZT5JbmRleCBvZiBu
ZXcgc3ltYm9scyBpbiAyLjM2PC90aXRsZT4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBp
LWluZGV4LTIuMzYueG1sIj48eGk6ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CisgIDwvaW5kZXg+
CisKICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2Fubm90YXRpb24tZ2xvc3NhcnkueG1sIj48eGk6
ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CiA8L2Jvb2s+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvd2Via2l0Mi5oCmluZGV4IGI3ZDI3NDFjNGIyYzFhZDRlMzRhMWZhYjQ4ZmVjNjFh
ZjFjNjEwMmQuLjVjZDk1MjQyNTJhOTdkNGVhNjRkZmViMjJlNWE0N2I1NWYzNmM4ODcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCkBAIC03OCw2ICs3OCw3IEBA
CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0
Mi9XZWJLaXRVUklSZXNwb25zZS5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaD4K
ICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVV0aWxpdGllcy5oPgogI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0VXNlckNvbnRlbnQuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVzZXJDb250
ZW50RmlsdGVyU3RvcmUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvV2ViS2l0QXV0b2NsZWFudXBzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdEF1dG9jbGVhbnVwcy5oCmluZGV4IDc3YWI3N2JjOTg0ZTcwZDNmYWNlMDAzM2Yx
MjQyZDI2YzQwMmQwYjYuLjVlMjBmNDM1ZTIzMWRlNGY5NWYyZTdhMWU0Zjk5ODk4N2E2OGNhZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0QXV0b2Ns
ZWFudXBzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRBdXRv
Y2xlYW51cHMuaApAQCAtNTYsNiArNTYsNyBAQCBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVO
QyAoV2ViS2l0U2V0dGluZ3MsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVB
TlVQX0ZVTkMgKFdlYktpdFVSSVJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVU
T1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVJlc3BvbnNlLCBnX29iamVjdF91bnJlZikKIEdf
REVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0LCBnX29i
amVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVUklTY2hl
bWVSZXNwb25zZSwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVO
QyAoV2ViS2l0VXNlckNvbnRlbnRGaWx0ZXJTdG9yZSwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklO
RV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLCBnX29iamVj
dF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCmluZGV4IDhl
YmVkYTRlNzdmMWJiZDE4ZTFjYmRhZGMzZjdmMjQ2ZTA5OTE3YjEuLmU4OGNhNzllNTc1ZTQ5YmY2
NzYxNzFjM2M5ZGM0Yzc0M2NkNWIwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCkBAIC0yNiw2ICsyNiw3
IEBACiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZp
bmVzLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVNjaGVtZVJlc3BvbnNlLmg+CiAKIEdfQkVH
SU5fREVDTFMKIApAQCAtNzIsMTIgKzczLDE5IEBAIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
Z2V0X3BhdGggICAgIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0KTsKIFdFQktJVF9B
UEkgV2ViS2l0V2ViVmlldyAqCiB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmll
dyAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCk7CiAKK1dFQktJVF9BUEkgY29uc3Qg
Z2NoYXIgKgord2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfaHR0cF9tZXRob2QgKFdlYktp
dFVSSVNjaGVtZVJlcXVlc3QgKnJlcXVlc3QpOworCiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF91
cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoICAgICAgIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpy
ZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJbnB1dFN0
cmVhbSAgICAgICAgICAgKnN0cmVhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnaW50NjQgICAgICAgICAgICAgICAgICBzdHJlYW1fbGVuZ3RoLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgKmNv
bnRlbnRfdHlwZSk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9maW5pc2hfd2l0aF9yZXNwb25zZSAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAgKnJlcXVlc3Qs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRV
UklTY2hlbWVSZXNwb25zZSAqcmVzcG9uc2UpOworCiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF91
cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vycm9yIChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpy
ZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAg
ICAgICAgICAgICAgICAgKmVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93cGUvV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMjIw
YjFmNDY4ODY3MTYzOWY3NmFmODFjNzI3NWZmZTc5MWNjNWYzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRVUklTY2hlbWVSZXNwb25zZS5o
CkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgWml4aW5nIExpdQor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisj
aWYgIWRlZmluZWQoX19XRUJLSVRfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01Q
SUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdC5oPiBjYW4gYmUgaW5jbHVkZWQgZGly
ZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VfaAorI2Rl
ZmluZSBXZWJLaXRVUklTY2hlbWVSZXNwb25zZV9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5o
PgorI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2Rl
ZmluZSBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFICAgICAgICAgICAgKHdlYmtpdF91
cmlfc2NoZW1lX3Jlc3BvbnNlX2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9VUklfU0NIRU1F
X1JFU1BPTlNFKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9i
aiksIFdFQktJVF9UWVBFX1VSSV9TQ0hFTUVfUkVTUE9OU0UsIFdlYktpdFVSSVNjaGVtZVJlc3Bv
bnNlKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0Uob2JqKSAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfVVJJX1NDSEVN
RV9SRVNQT05TRSkpCisjZGVmaW5lIFdFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFX0NMQVNTKGts
YXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1VS
SV9TQ0hFTUVfUkVTUE9OU0UsIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlQ2xhc3MpKQorI2RlZmlu
ZSBXRUJLSVRfSVNfVVJJX1NDSEVNRV9SRVNQT05TRV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVD
S19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9VUklfU0NIRU1FX1JFU1BPTlNFKSkK
KyNkZWZpbmUgV0VCS0lUX1VSSV9TQ0hFTUVfUkVTUE9OU0VfR0VUX0NMQVNTKG9iaikgIChHX1RZ
UEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQ
T05TRSwgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRVUklTY2hlbWVSZXNwb25zZSAgICAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2U7Cit0
eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VDbGFzcyAgIFdlYktpdFVSSVNj
aGVtZVJlc3BvbnNlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2VQcml2YXRlIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlUHJpdmF0ZTsKKworc3RydWN0IF9XZWJL
aXRVUklTY2hlbWVSZXNwb25zZSB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICBXZWJLaXRV
UklTY2hlbWVSZXNwb25zZVByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdFVSSVNj
aGVtZVJlc3BvbnNlQ2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAg
ICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9y
ZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsK
KyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkg
R1R5cGUKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX2dldF90eXBlICAgICAgICAgICAodm9p
ZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UgKgord2Via2l0X3VyaV9z
Y2hlbWVfcmVzcG9uc2VfbmV3ICAgICAgICAgICAgICAgIChHSW5wdXRTdHJlYW0gICAgICAgICAg
ICAqaW5wdXRfc3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnaW50NjQgICAgICAgICAgICAgICAgICAgc3RyZWFtX2xlbmd0aCk7CisKK1dFQktJ
VF9BUEkgdm9pZAord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0YXR1cyAgICAgICAg
IChXZWJLaXRVUklTY2hlbWVSZXNwb25zZSAqcmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICAgICBzdGF0
dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgZ2NoYXIgICAgICAgICAgICAgKnJlYXNvbl9waHJhc2UpOworCitXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF91cmlfc2NoZW1lX3Jlc3BvbnNlX3NldF9jb250ZW50X3R5cGUgICAoV2ViS2l0
VVJJU2NoZW1lUmVzcG9uc2UgKnJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAqY29udGVudF90eXBl
KTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKaW5kZXggYjhiMDhk
MmY5MWYyNTY0Y2VmN2RhMGI4ZWNlZGM4YTExMmQ1YmU5MC4uMGE5Y2YyNGM3MzhkMmNjMDU3NWYw
MGQ3M2RkY2U3YzBiNDZiYmRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dApAQCAtMTIxNCw3ICsxMjE0
LDkgQEAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfc2NoZW1lCiB3ZWJraXRfdXJpX3Nj
aGVtZV9yZXF1ZXN0X2dldF91cmkKIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3BhdGgK
IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3Cit3ZWJraXRfdXJpX3NjaGVt
ZV9yZXF1ZXN0X2dldF9odHRwX21ldGhvZAogd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5p
c2gKK3dlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX3dpdGhfcmVzcG9uc2UKIHdlYmtp
dF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vycm9yCiAKIDxTVUJTRUNUSU9OIFN0YW5kYXJk
PgpAQCAtMTIzMSw2ICsxMjMzLDI3IEBAIFdlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlCiB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF90eXBlCiA8L1NFQ1RJT04+CiAKKzxTRUNUSU9O
PgorPEZJTEU+V2ViS2l0VVJJU2NoZW1lUmVzcG9uc2U8L0ZJTEU+CitXZWJLaXRVUklTY2hlbWVS
ZXNwb25zZQord2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2VfbmV3Cit3ZWJraXRfdXJpX3NjaGVt
ZV9yZXNwb25zZV9zZXRfY29udGVudF90eXBlCit3ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9z
ZXRfc3RhdHVzCisKKzxTVUJTRUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0VVJJU2NoZW1lUmVzcG9u
c2VDbGFzcworV0VCS0lUX1RZUEVfVVJJX1NDSEVNRV9SRVNQT05TRQorV0VCS0lUX1VSSV9TQ0hF
TUVfUkVTUE9OU0UKK1dFQktJVF9JU19VUklfU0NIRU1FX1JFU1BPTlNFCitXRUJLSVRfVVJJX1ND
SEVNRV9SRVNQT05TRV9DTEFTUworV0VCS0lUX0lTX1VSSV9TQ0hFTUVfUkVTUE9OU0VfQ0xBU1MK
K1dFQktJVF9VUklfU0NIRU1FX1JFU1BPTlNFX0dFVF9DTEFTUworCis8U1VCU0VDVElPTiBQcml2
YXRlPgorV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VQcml2YXRlCit3ZWJraXRfdXJpX3NjaGVtZV9y
ZXNwb25zZV9nZXRfdHlwZQorPC9TRUNUSU9OPgorCiA8U0VDVElPTj4KIDxGSUxFPldlYktpdFZl
cnNpb248L0ZJTEU+CiB3ZWJraXRfZ2V0X21ham9yX3ZlcnNpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS1kb2NzLnNnbWwKaW5kZXggOGUyNTdmMDJm
MTFmZWJlY2QyYTU2NzNiOGU4NzA2ZDVlYzZjNjgzOS4uMmJjYzBjYmRhODg1ZGY5YmY3NDk1MzRl
M2RkMWVlYjY5OWJkMTFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9kb2NzL3dwZS1kb2NzLnNnbWwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9kb2NzL3dwZS1kb2NzLnNnbWwKQEAgLTQxLDYgKzQxLDcgQEAKICAgICA8eGk6aW5jbHVk
ZSBocmVmPSJ4bWwvV2ViS2l0Q29va2llTWFuYWdlci54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBo
cmVmPSJ4bWwvV2ViS2l0UGx1Z2luLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9X
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0LnhtbCIvPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9X
ZWJLaXRVUklTY2hlbWVSZXNwb25zZS54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwv
V2ViS2l0Q29udGV4dE1lbnUueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktp
dENvbnRleHRNZW51SXRlbS54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0
Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LnhtbCIvPgpAQCAtMTA4LDUgKzEwOSwxMCBAQAogICAgIDx4
aTppbmNsdWRlIGhyZWY9InhtbC9hcGktaW5kZXgtMi4zMC54bWwiPjx4aTpmYWxsYmFjayAvPjwv
eGk6aW5jbHVkZT4KICAgPC9pbmRleD4KIAorICA8aW5kZXggaWQ9ImFwaS1pbmRleC0yLTM2IiBy
b2xlPSIyLjM2Ij4KKyAgICA8dGl0bGU+SW5kZXggb2YgbmV3IHN5bWJvbHMgaW4gMi4zNjwvdGl0
bGU+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2FwaS1pbmRleC0yLjM2LnhtbCI+PHhpOmZh
bGxiYWNrIC8+PC94aTppbmNsdWRlPgorICA8L2luZGV4PgorCiAgIDx4aTppbmNsdWRlIGhyZWY9
InhtbC9hbm5vdGF0aW9uLWdsb3NzYXJ5LnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRl
PgogPC9ib29rPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS93
ZWJraXQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvd2Via2l0LmgKaW5kZXgg
NWM5M2Q3NjBmNzM0YTEyZjYxNDg5OTU0NTEzNWZkZjc3MDE2NDU3NS4uYzIyMjFlZmMwMDYxOGMy
ZWM0ZDIwYTg4YzU5ODQwNzY3YmQ1MmZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS93ZWJraXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL3dlYmtpdC5oCkBAIC03Myw2ICs3Myw3IEBACiAjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVJl
cXVlc3QuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0VVJJUmVzcG9uc2UuaD4KICNpbmNsdWRlIDx3
cGUvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRVUklTY2hl
bWVSZXNwb25zZS5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXRVUklVdGlsaXRpZXMuaD4KICNpbmNs
dWRlIDx3cGUvV2ViS2l0VXNlckNvbnRlbnQuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0VXNlckNv
bnRlbnRGaWx0ZXJTdG9yZS5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGUyZTY2ZDJkZGRhYjhhOWZiYjU0NmQyNjM4ODBjYjE0YmFkNjMzYjYu
LjExMTU0MGQ5MDY3ZjIxZjFiNmRkM2JiOTI2MGRiMDk1NzZhMjQwZTcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
MS0xMC0yOSAgWml4aW5nIExpdSAgPGxpdXNodXl1MDExQGdtYWlsLmNvbT4KKworICAgICAgICBb
R1RLXVtXUEVdIFN1cHBvcnQgc2V0dGluZyBzdGF0dXMgY29kZSBhbmQgZ2V0dGluZyBIVFRQIG1l
dGhvZCBpbiBjdXN0b20gVVJJIHNjaGVtZSBoYW5kbGVycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwOgorICAgICAgICAodGVzdFdlYkNvbnRleHRVUklT
Y2hlbWUpOiBBZGRlZCB0ZXN0cyB0byB0ZXN0IG5ldyBwdWJsaWMgQVBJcyBmb3IgV2ViS2l0R3Rr
CisKIDIwMjEtMTAtMjkgIFN0ZXBoYW4gU3phYm8gIDxzdGVwaGFuLnN6YWJvQHNvbnkuY29tPgog
CiAgICAgICAgIFtQbGF5U3RhdGlvbl0gQnVpbGQgZml4IGFmdGVyIHIyODUwMjAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29u
dGV4dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktp
dFdlYkNvbnRleHQuY3BwCmluZGV4IGI5MzZjOGUwNzc1YTE3YWNhYmUyMTI4YWE3MTkzMmU1ZjRk
OTBmNDMuLjkwOGE0OTNmMTRmMDY5MDU1YzUyNjE4NzZjNDYzMjZiZTI1YTU4MTQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29u
dGV4dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RX
ZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtOTUsMTYgKzk1LDE4IEBAIHB1YmxpYzoKICAgICAgICAg
ewogICAgICAgICB9CiAKLSAgICAgICAgVVJJU2NoZW1lSGFuZGxlcihjb25zdCBjaGFyKiByZXBs
eSwgaW50IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1lVHlwZSkKKyAgICAgICAgVVJJU2No
ZW1lSGFuZGxlcihjb25zdCBjaGFyKiByZXBseSwgaW50IHJlcGx5TGVuZ3RoLCBjb25zdCBjaGFy
KiBtaW1lVHlwZSwgaW50IHN0YXR1c0NvZGUgPSAyMDApCiAgICAgICAgICAgICA6IHJlcGx5KHJl
cGx5KQogICAgICAgICAgICAgLCByZXBseUxlbmd0aChyZXBseUxlbmd0aCkKICAgICAgICAgICAg
ICwgbWltZVR5cGUobWltZVR5cGUpCisgICAgICAgICAgICAsIHN0YXR1c0NvZGUoc3RhdHVzQ29k
ZSkKICAgICAgICAgewogICAgICAgICB9CiAKICAgICAgICAgQ1N0cmluZyByZXBseTsKICAgICAg
ICAgaW50IHJlcGx5TGVuZ3RoOwogICAgICAgICBDU3RyaW5nIG1pbWVUeXBlOworICAgICAgICBp
bnQgc3RhdHVzQ29kZTsKICAgICB9OwogCiAgICAgc3RhdGljIHZvaWQgdXJpU2NoZW1lUmVxdWVz
dENhbGxiYWNrKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIGdwb2ludGVyIHVzZXJE
YXRhKQpAQCAtMTIwLDYgKzEyMiwxMyBAQCBwdWJsaWM6CiAgICAgICAgIGdfYXNzZXJ0X25vbm51
bGwoc2NoZW1lKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2hhbmRsZXJzTWFwLmNv
bnRhaW5zKFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKSkpOwogCisgICAgICAgIGNvbnN0IGNoYXIq
IG1ldGhvZCA9IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X2h0dHBfbWV0aG9kKHJlcXVl
c3QpOworICAgICAgICBnX2Fzc2VydF9ub25udWxsKG1ldGhvZCk7CisgICAgICAgIGlmICghZ19z
dHJjbXAwKHNjaGVtZSwgInBvc3QiKSkKKyAgICAgICAgICAgIGdfYXNzZXJ0X2NtcHN0cihtZXRo
b2QsID09LCAiUE9TVCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBnX2Fzc2VydF9jbXBz
dHIobWV0aG9kLCA9PSwgIkdFVCIpOworCiAgICAgICAgIGNvbnN0IFVSSVNjaGVtZUhhbmRsZXIm
IGhhbmRsZXIgPSB0ZXN0LT5tX2hhbmRsZXJzTWFwLmdldChTdHJpbmc6OmZyb21VVEY4KHNjaGVt
ZSkpOwogCiAgICAgICAgIEdSZWZQdHI8R0lucHV0U3RyZWFtPiBpbnB1dFN0cmVhbSA9IGFkb3B0
R1JlZihnX21lbW9yeV9pbnB1dF9zdHJlYW1fbmV3KCkpOwpAQCAtMTU0LDEyICsxNjMsMTUgQEAg
cHVibGljOgogICAgICAgICBlbHNlIGlmICghaGFuZGxlci5yZXBseS5pc051bGwoKSkKICAgICAg
ICAgICAgIGdfbWVtb3J5X2lucHV0X3N0cmVhbV9hZGRfZGF0YShHX01FTU9SWV9JTlBVVF9TVFJF
QU0oaW5wdXRTdHJlYW0uZ2V0KCkpLCBoYW5kbGVyLnJlcGx5LmRhdGEoKSwgaGFuZGxlci5yZXBs
eS5sZW5ndGgoKSwgMCk7CiAKLSAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5p
c2gocmVxdWVzdCwgaW5wdXRTdHJlYW0uZ2V0KCksIGhhbmRsZXIucmVwbHlMZW5ndGgsIGhhbmRs
ZXIubWltZVR5cGUuZGF0YSgpKTsKKyAgICAgICAgYXV0byByZXNwb25zZSA9IGFkb3B0R1JlZih3
ZWJraXRfdXJpX3NjaGVtZV9yZXNwb25zZV9uZXcoaW5wdXRTdHJlYW0uZ2V0KCksIGhhbmRsZXIu
cmVwbHlMZW5ndGgpKTsKKyAgICAgICAgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X3N0
YXR1cyhyZXNwb25zZS5nZXQoKSwgaGFuZGxlci5zdGF0dXNDb2RlLCBudWxscHRyKTsKKyAgICAg
ICAgd2Via2l0X3VyaV9zY2hlbWVfcmVzcG9uc2Vfc2V0X2NvbnRlbnRfdHlwZShyZXNwb25zZS5n
ZXQoKSwgaGFuZGxlci5taW1lVHlwZS5kYXRhKCkpOworICAgICAgICB3ZWJraXRfdXJpX3NjaGVt
ZV9yZXF1ZXN0X2ZpbmlzaF93aXRoX3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlLmdldCgpKTsK
ICAgICB9CiAKLSAgICB2b2lkIHJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcihjb25zdCBjaGFyKiBz
Y2hlbWUsIGNvbnN0IGNoYXIqIHJlcGx5LCBpbnQgcmVwbHlMZW5ndGgsIGNvbnN0IGNoYXIqIG1p
bWVUeXBlKQorICAgIHZvaWQgcmVnaXN0ZXJVUklTY2hlbWVIYW5kbGVyKGNvbnN0IGNoYXIqIHNj
aGVtZSwgY29uc3QgY2hhciogcmVwbHksIGludCByZXBseUxlbmd0aCwgY29uc3QgY2hhciogbWlt
ZVR5cGUsIGludCBzdGF0dXNDb2RlID0gMjAwKQogICAgIHsKLSAgICAgICAgbV9oYW5kbGVyc01h
cC5zZXQoU3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpLCBVUklTY2hlbWVIYW5kbGVyKHJlcGx5LCBy
ZXBseUxlbmd0aCwgbWltZVR5cGUpKTsKKyAgICAgICAgbV9oYW5kbGVyc01hcC5zZXQoU3RyaW5n
Ojpmcm9tVVRGOChzY2hlbWUpLCBVUklTY2hlbWVIYW5kbGVyKHJlcGx5LCByZXBseUxlbmd0aCwg
bWltZVR5cGUsIHN0YXR1c0NvZGUpKTsKICAgICAgICAgd2Via2l0X3dlYl9jb250ZXh0X3JlZ2lz
dGVyX3VyaV9zY2hlbWUobV93ZWJDb250ZXh0LmdldCgpLCBzY2hlbWUsIHVyaVNjaGVtZVJlcXVl
c3RDYWxsYmFjaywgdGhpcywgMCk7CiAgICAgfQogCkBAIC0yOTcsNiArMzA5LDMxIEBAIHN0YXRp
YyB2b2lkIHRlc3RXZWJDb250ZXh0VVJJU2NoZW1lKFVSSVNjaGVtZVRlc3QqIHRlc3QsIGdjb25z
dHBvaW50ZXIpCiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2xvYWRGYWlsZWQpOwogICAgIGdf
YXNzZXJ0X2Vycm9yKHRlc3QtPm1fZXJyb3IuZ2V0KCksIEdfSU9fRVJST1IsIEdfSU9fRVJST1Jf
Q0xPU0VEKTsKIAorICAgIHRlc3QtPnJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcigibm90Zm91bmQi
LCBrQmFySFRNTCwgc3RybGVuKGtCYXJIVE1MKSwgInRleHQvaHRtbCIsIDQwNCk7CisgICAgdGVz
dC0+bV9sb2FkRXZlbnRzLmNsZWFyKCk7CisgICAgdGVzdC0+bG9hZFVSSSgibm90Zm91bmQ6Ymxh
bmsiKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBnX2Fzc2VydF9m
YWxzZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVzdDo6UHJvdmlz
aW9uYWxMb2FkRmFpbGVkKSk7CisKKyAgICB0ZXN0LT5yZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIo
Im5vY29udGVudCIsIG51bGxwdHIsIDAsICJhcHBsaWNhdGlvbi9qc29uIiwgMjA0KTsKKyAgICB0
ZXN0LT5tX2xvYWRFdmVudHMuY2xlYXIoKTsKKyAgICB0ZXN0LT5sb2FkVVJJKCJub2NvbnRlbnQ6
YmxhbmsiKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBnX2Fzc2Vy
dF9mYWxzZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVzdDo6UHJv
dmlzaW9uYWxMb2FkRmFpbGVkKSk7CisgICAgZ19hc3NlcnRfZmFsc2UodGVzdC0+bV9sb2FkRXZl
bnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rlc3Q6OkxvYWRGYWlsZWQpKTsKKworICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBmb3JtSFRNTCA9ICI8aHRtbD48Ym9keT48Zm9ybSBpZD1cInRlc3QtZm9y
bVwiIG1ldGhvZD1cIlBPU1RcIiBhY3Rpb249XCJwb3N0OmRhdGFcIj48L2Zvcm0+PC9ib2R5Pjwv
aHRtbD4iOworICAgIHRlc3QtPnJlZ2lzdGVyVVJJU2NoZW1lSGFuZGxlcigicG9zdCIsIG51bGxw
dHIsIDAsICJhcHBsaWNhdGlvbi9qc29uIiwgMjA0KTsKKyAgICB0ZXN0LT5tX2xvYWRFdmVudHMu
Y2xlYXIoKTsKKyAgICB0ZXN0LT5sb2FkSHRtbChmb3JtSFRNTCwgInBvc3Q6Zm9ybSIpOworICAg
IHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9y
PiBwb3N0RXJyb3I7CisgICAgdGVzdC0+cnVuSmF2YVNjcmlwdEFuZFdhaXRVbnRpbEZpbmlzaGVk
KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1mb3JtJykuc3VibWl0KCkiLCAmcG9zdEVy
cm9yLm91dFB0cigpKTsKKyAgICBnX2Fzc2VydF9ub19lcnJvcihwb3N0RXJyb3IuZ2V0KCkpOwor
ICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHRl
c3QtPm1fbG9hZEV2ZW50cy5jb250YWlucyhMb2FkVHJhY2tpbmdUZXN0OjpQcm92aXNpb25hbExv
YWRGYWlsZWQpKTsKKyAgICBnX2Fzc2VydF9mYWxzZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFp
bnMoTG9hZFRyYWNraW5nVGVzdDo6TG9hZEZhaWxlZCkpOworCiAgICAgLy8gVG9ydHVyZSB0ZXN0
IHRpbWU6IG1ha2Ugc3VyZSBpdCBzdGlsbCB3b3JrcyBpZiB3ZSBpc3N1ZSBhIGJ1bmNoIG9mIGRp
ZmZlcmVudCByZXF1ZXN0cyBhbGwgYXQKICAgICAvLyBvbmNlLiBFYWNoIHJlcXVlc3Qgc2hvdWxk
IGZpbmlzaCBhbmQgcmV0dXJuIGV4YWN0bHkgdGhlIHNhbWUgZGF0YS4KICAgICBpbnQgbnVtSXRl
cmF0aW9ucyA9IDI1Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>