<?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>221199</bug_id>
          
          <creation_ts>2021-02-01 05:02:51 -0800</creation_ts>
          <short_desc>[GLib] Permission request API for MediaKeySystem access support</short_desc>
          <delta_ts>2021-02-09 05:13:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>221187</dependson>
    
    <dependson>221588</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>annulen</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</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>1724196</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-01 05:02:51 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724198</commentid>
    <comment_count>1</comment_count>
      <attachid>418860</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-01 05:08:09 -0800</bug_when>
    <thetext>Created attachment 418860
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724199</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-02-01 05:08:54 -0800</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>1726572</commentid>
    <comment_count>3</comment_count>
      <attachid>419567</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-08 02:19:35 -0800</bug_when>
    <thetext>Created attachment 419567
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726582</commentid>
    <comment_count>4</comment_count>
      <attachid>419567</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-02-08 02:50:05 -0800</bug_when>
    <thetext>Comment on attachment 419567
Patch

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

Please fix my comments before landing.

&gt; Source/WebKit/UIProcess/API/glib/WebKitMediaKeySystemPermissionRequest.cpp:105
&gt; +WebKitMediaKeySystemPermissionRequest* webkitMediaKeySystemPermissionRequestCreate(MediaKeySystemPermissionRequest* request)

This is receiving the newly created request, so it could be Ref&lt;MediaKeySystemPermissionRequest&gt;&amp;&amp; instead of a pointer

&gt; Source/WebKit/UIProcess/API/glib/WebKitMediaKeySystemPermissionRequest.cpp:107
&gt; +    WebKitMediaKeySystemPermissionRequest* permissionRequest = WEBKIT_MEDIA_KEY_SYSTEM_PERMISSION_REQUEST(g_object_new(WEBKIT_TYPE_MEDIA_KEY_SYSTEM_PERMISSION_REQUEST, NULL));

NULL -&gt; nullptr

&gt; Source/WebKit/UIProcess/API/glib/WebKitMediaKeySystemPermissionRequest.cpp:108
&gt; +    permissionRequest-&gt;priv-&gt;request = request;

And here we would WTFMove(request)

&gt; Source/WebKit/UIProcess/API/glib/WebKitMediaKeySystemPermissionRequest.cpp:116
&gt; + *
&gt; + * Returns: The name of the key system for which access permission is being requested.

Add a body description, the Returns: can be simpler to not duplicate

* Get the key system for which access permission is being requested.
*
* Returns: the key system name for @request

Or something similar.

&gt; Source/WebKit/UIProcess/API/glib/WebKitMediaKeySystemPermissionRequest.cpp:123
&gt; +    return request-&gt;priv-&gt;request-&gt;keySystem().utf8().data();

This is a temporary, we need to cache its value in a CString in the priv struct to be able to return a const char*

&gt; Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp:287
&gt; +    void decidePolicyForMediaKeySystemPermissionRequest(WebPageProxy&amp;, API::SecurityOrigin&amp; topLevelDocumentOrigin, const WTF::String&amp; keySystem, CompletionHandler&lt;void(bool)&gt;&amp;&amp; completionHandler) final

topLevelDocumentOrigin can be omitted as it&apos;s unused, no?

&gt; Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp:289
&gt; +        auto permissionRequest = adoptGRef(webkitMediaKeySystemPermissionRequestCreate(MediaKeySystemPermissionRequest::create(keySystem, std::exchange(completionHandler, nullptr)).ptr()));

why exchange and not WTFMove()?

&gt; Source/WebKit/UIProcess/API/gtk/WebKitMediaKeySystemPermissionRequest.h:62
&gt; +WEBKIT_API const gchar*

gchar* -&gt; gchar *

&gt; Source/WebKit/UIProcess/API/wpe/WebKitMediaKeySystemPermissionRequest.h:62
&gt; +WEBKIT_API const gchar*

Ditto.

&gt; Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:67
&gt; +#if ENABLE(ENCRYPTED_MEDIA)
&gt; +    auto* settings = webkit_web_view_get_settings(m_webView);
&gt; +    webkit_settings_set_enable_encrypted_media(settings, TRUE);
&gt; +#endif

Let&apos;s enable this only for the test that needs it. It could just one line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726586</commentid>
    <comment_count>5</comment_count>
      <attachid>419567</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-08 03:08:41 -0800</bug_when>
    <thetext>Comment on attachment 419567
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/glib/WebKitMediaKeySystemPermissionRequest.cpp:108
&gt;&gt; +    permissionRequest-&gt;priv-&gt;request = request;
&gt; 
&gt; And here we would WTFMove(request)

error: reference to type &apos;Ref&lt;WebKitMediaKeySystemPermissionRequest&gt;&apos; (aka &apos;Ref&lt;_WebKitMediaKeySystemPermissionRequest&gt;&apos;) could not bind to an rvalue of type &apos;typename remove_reference&lt;_WebKitMediaKeySystemPermissionRequest *&amp;&gt;::type&apos; (aka &apos;_WebKitMediaKeySystemPermissionRequest *&apos;)
    return WTFMove(permissionRequest);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
DerivedSources/ForwardingHeaders/wtf/StdLibExtras.h:532:24: note: expanded from macro &apos;WTFMove&apos;
#define WTFMove(value) std::move&lt;WTF::CheckMoveParameter&gt;(value)
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

&gt;&gt; Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:67
&gt;&gt; +#endif
&gt; 
&gt; Let&apos;s enable this only for the test that needs it. It could just one line.

Then I need to write a WebViewTest sub-class, only to add that one line? Why is it an issue to do this here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726587</commentid>
    <comment_count>6</comment_count>
      <attachid>419567</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-02-08 03:14:10 -0800</bug_when>
    <thetext>Comment on attachment 419567
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/API/glib/WebKitMediaKeySystemPermissionRequest.cpp:108
&gt;&gt;&gt; +    permissionRequest-&gt;priv-&gt;request = request;
&gt;&gt; 
&gt;&gt; And here we would WTFMove(request)
&gt; 
&gt; error: reference to type &apos;Ref&lt;WebKitMediaKeySystemPermissionRequest&gt;&apos; (aka &apos;Ref&lt;_WebKitMediaKeySystemPermissionRequest&gt;&apos;) could not bind to an rvalue of type &apos;typename remove_reference&lt;_WebKitMediaKeySystemPermissionRequest *&amp;&gt;::type&apos; (aka &apos;_WebKitMediaKeySystemPermissionRequest *&apos;)
&gt;     return WTFMove(permissionRequest);
&gt;            ^~~~~~~~~~~~~~~~~~~~~~~~~~
&gt; DerivedSources/ForwardingHeaders/wtf/StdLibExtras.h:532:24: note: expanded from macro &apos;WTFMove&apos;
&gt; #define WTFMove(value) std::move&lt;WTF::CheckMoveParameter&gt;(value)
&gt;                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&gt; 1 error generated.

WTFMove(request) not WTFMove(permissionRequest) in the return

&gt;&gt;&gt; Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:67
&gt;&gt;&gt; +#endif
&gt;&gt; 
&gt;&gt; Let&apos;s enable this only for the test that needs it. It could just one line.
&gt; 
&gt; Then I need to write a WebViewTest sub-class, only to add that one line? Why is it an issue to do this here?

No, just do 

webkit_settings_set_enable_encrypted_media(webkit_web_view_get_settings(test-&gt;m_webView), TRUE);

before test-&gt;showInWindow(); in the test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726589</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-08 03:35:19 -0800</bug_when>
    <thetext>Committed r272485: &lt;https://trac.webkit.org/changeset/272485&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726909</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-02-08 18:14:27 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 221588</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727007</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-09 05:13:11 -0800</bug_when>
    <thetext>Committed r272574: &lt;https://trac.webkit.org/changeset/272574&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418860</attachid>
            <date>2021-02-01 05:08:09 -0800</date>
            <delta_ts>2021-02-08 02:19:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221199-20210201050808.patch</filename>
            <type>text/plain</type>
            <size>34741</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJjYWQ3OGYxZTZlZjQ4OTlk
NmZlMzA0N2U5MzkzMmRjZWI5M2IxZTIuLjlkMTdlMDRhNTFjYzgyNzEwZWRmZDAxOTE0YzVjNGNl
NWNjOTliYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDItMDEgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHTGliXSBQZXJtaXNz
aW9uIHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTk5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIGEgbmV3IFBl
cm1pc3Npb24gUmVxdWVzdCBvYmplY3QgdG8gdGhlIHB1YmxpYyBXUEUgYW5kIEdUSyBBUElzLCBh
bGxvd2luZyB0aGUKKyAgICAgICAgYXBwbGljYXRpb24gdG8gZGVmZXIgdGhlIGRlY2lzaW9uIG9m
IHVzaW5nIGEgZ2l2ZW4gRU1FIE1lZGlhS2V5U3lzdGVtIHRvIHRoZSB1c2VyJ3MKKyAgICAgICAg
YXBwcm92YWwuCisKKyAgICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3QuCisKKyAgICAgICAg
KiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFrZToKKyAgICAg
ICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzV1BFLnR4dDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dC5jcHA6IEFkZGVkLgorICAgICAgICAod2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdEFsbG93KToKKyAgICAgICAgKHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3REZW55KToKKyAgICAgICAgKHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2lu
aXQpOgorICAgICAgICAod2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdERpc3Bv
c2UpOgorICAgICAgICAod2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0
X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdENyZWF0ZSk6CisgICAgICAgICh3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9u
X2dldF9uYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0OgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWw6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaDogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS1kb2NzLnNnbWw6CisKIDIwMjEtMDIt
MDEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtTT1VQXSBBZGQgc3VwcG9ydCBmb3IgZGF0YSBVUkxzIGluIHRoZSBuZXR3b3JrIHByb2Nlc3MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDMyMGIxMTZiMWQ4YTMzYTdkNTQ3YzdjZjYxOTA3
NTY3NjE0NzM3NzIuLjlhOGUwZmE4OTc4ZjZiMmFlODg3ODUzNjM0YTljY2Q2N2Q3NTE4NzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTE5LDYgKzExOSw3IEBAIHNldChXZWJLaXQyR1RL
X0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRIaXRUZXN0UmVzdWx0LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuaAogICAg
ICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5o
CisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdE1pbWVJbmZvLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdE5hdmlnYXRpb25BY3Rpb24uaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtl
CmluZGV4IGM0NDFlNmFhYmY0MmM5ZDVhZWNjY2Q5NjFkYjQwMTA3YzQ4N2JkNDAuLmY0NWM1MzFh
MDliY2I1OGRhYWY5ZmY1YTk4NGZjMWM2MTExYzU5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFr
ZQpAQCAtMTMyLDYgKzEzMiw3IEBAIHNldChXUEVfQVBJX0lOU1RBTExFRF9IRUFERVJTCiAgICAg
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQu
aAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0SW5zdGFsbE1pc3Np
bmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0LmgKKyAgICAke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qu
aAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0TWltZUluZm8uaAog
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0TmF2aWdhdGlvbkFjdGlv
bi5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXROYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb24uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKaW5kZXggNWQ1YjAzYjJlNWVlNGRhNGNj
MmI0YzJkZTA0YjgwZDlkZTBjZWFiYi4uNTZiZGZmYTZmYTVlNDExMWI1MGUwNDgzMDFiZGUzMTEx
YzY5NGFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CkBAIC0xNDYsNiArMTQ2LDcgQEAgVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwIEBuby11bmlmeQogVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lv
blJlcXVlc3QuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEphdmFzY3Jp
cHRSZXN1bHQuY3BwIEBuby11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdE1pbWVJbmZvLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRO
YXZpZ2F0aW9uQWN0aW9uLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRO
YXZpZ2F0aW9uQ2xpZW50LmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U291cmNlc1dQRS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4IGM2NzY3
MDc0Y2RiODRiYWNkMWM5MWRjOTUxMjhjZDY1NjZkYTJjZTEuLmMyZTE3NDU4NDkwNzUzNzE4NjQ3
ZTRjMGUwMjYzOWU4NjdhOWFiZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQ
RS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dApAQCAtMTM3LDYgKzEzNyw3
IEBAIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgQG5v
LXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmNwcCBA
bm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1
Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRKYXZhc2NyaXB0UmVzdWx0LmNwcCBAbm8tdW5pZnkKK1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRNaW1lSW5mby5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0TmF2aWdhdGlvbkFjdGlvbi5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVudC5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyYWIwZmEz
Y2Y3MjFiMDhhYWU3NDZkZDllZDYyYTZmZWZhMmVlYjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0UGVybWlzc2lvblJlcXVlc3Qu
aCIKKyNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OworCisvKioKKyAqIFNFQ1RJT046IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3QKKyAqIEBTaG9ydF9kZXNjcmlwdGlvbjogQSBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHVz
aW5nIGFuIEVNRSBDb250ZW50IERlY3J5cHRpb24gTW9kdWxlCisgKiBAVGl0bGU6IFdlYktpdE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QKKyAqIEBTZWVfYWxzbzogI1dlYktpdFBlcm1p
c3Npb25SZXF1ZXN0LCAjV2ViS2l0V2ViVmlldworICoKKyAqIFdlYktpdE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QgcmVwcmVzZW50cyBhIHJlcXVlc3QgZm9yIHBlcm1pc3Npb24gdG8g
ZGVjaWRlIHdoZXRoZXIKKyAqIFdlYktpdCBzaG91bGQgdXNlIHRoZSBnaXZlbiBDRE0gdG8gYWNj
ZXNzIHByb3RlY3RlZCBtZWRpYSB3aGVuIHJlcXVlc3RlZCB0aHJvdWdoIHRoZQorICogTWVkaWFL
ZXlTeXN0ZW0gQVBJLgorICoKKyAqIFdoZW4gYSBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0IGlzIG5vdCBoYW5kbGVkIGJ5IHRoZSB1c2VyLAorICogaXQgaXMgZGVuaWVkIGJ5
IGRlZmF1bHQuCisgKgorICogV2hlbiBoYW5kbGluZyB0aGlzIHBlcm1pc3Npb24gcmVxdWVzdCB0
aGUgYXBwbGljYXRpb24gbWF5IHBlcmZvcm0gYWRkaXRpb25hbCBpbnN0YWxsYXRpb24gb2YgdGhl
CisgKiByZXF1ZXN0ZWQgQ0RNLCB1bmxlc3MgaXQgaXMgYWxyZWFkeSBwcmVzZW50IG9uIHRoZSBo
b3N0IHN5c3RlbS4KKyAqLworCitzdGF0aWMgdm9pZCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0
X2ludGVyZmFjZV9pbml0KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0SWZhY2UqKTsKKworc3RydWN0
IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSB7CisgICAgUmVm
UHRyPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q+IHJlcXVlc3Q7CisgICAgYm9vbCBt
YWRlRGVjaXNpb247Cit9OworCitXRUJLSVRfREVGSU5FX1RZUEVfV0lUSF9DT0RFKAorICAgIFdl
YktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QsIHdlYmtpdF9tZWRpYV9rZXlfc3lz
dGVtX3Blcm1pc3Npb25fcmVxdWVzdCwgR19UWVBFX09CSkVDVCwKKyAgICBHX0lNUExFTUVOVF9J
TlRFUkZBQ0UoV0VCS0lUX1RZUEVfUEVSTUlTU0lPTl9SRVFVRVNULCB3ZWJraXRfcGVybWlzc2lv
bl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KSkKKworc3RhdGljIHZvaWQgd2Via2l0TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1
ZXN0KQoreworICAgIEFTU0VSVChXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9O
X1JFUVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9O
X1JFUVVFU1QocmVxdWVzdCktPnByaXY7CisKKyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBhdCBh
IHRpbWUuCisgICAgaWYgKHByaXYtPm1hZGVEZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgcHJpdi0+cmVxdWVzdC0+Y29tcGxldGUodHJ1ZSk7CisgICAgcHJpdi0+bWFkZURlY2lzaW9u
ID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdERlbnkoV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgQVNT
RVJUKFdFQktJVF9JU19NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0
KSk7CisKKyAgICBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSog
cHJpdiA9IFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0
KS0+cHJpdjsKKworICAgIC8vIE9ubHkgb25lIGRlY2lzaW9uIGF0IGEgdGltZS4KKyAgICBpZiAo
cHJpdi0+bWFkZURlY2lzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBwcml2LT5yZXF1ZXN0
LT5jb21wbGV0ZShmYWxzZSk7CisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKK30KKwor
c3RhdGljIHZvaWQgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZhY2VfaW5pdChXZWJL
aXRQZXJtaXNzaW9uUmVxdWVzdElmYWNlKiBpZmFjZSkKK3sKKyAgICBpZmFjZS0+YWxsb3cgPSB3
ZWJraXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0QWxsb3c7CisgICAgaWZhY2UtPmRl
bnkgPSB3ZWJraXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0RGVueTsKK30KKworc3Rh
dGljIHZvaWQgd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdERpc3Bvc2UoR09i
amVjdCogb2JqZWN0KQoreworICAgIC8vIERlZmF1bHQgYmVoYXZpb3VyIHdoZW4gbm8gZGVjaXNp
b24gaGFzIGJlZW4gbWFkZSBpcyBkZW55aW5nIHRoZSByZXF1ZXN0LgorICAgIHdlYmtpdE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3REZW55KFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1Qo
b2JqZWN0KSk7CisgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVy
bWlzc2lvbl9yZXF1ZXN0X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKK30KKworc3Rh
dGljIHZvaWQgd2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2NsYXNz
X2luaXQoV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzKiBrbGFzcykK
K3sKKyAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Moa2xhc3Mp
OworICAgIG9iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdERpc3Bvc2U7Cit9CisKK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3QqIHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCA9IFdFQktJVF9NRURJ
QV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVf
TUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QsIE5VTEwpKTsKKyAgICBwZXJtaXNz
aW9uUmVxdWVzdC0+cHJpdi0+cmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgcmV0dXJuIHBlcm1pc3Np
b25SZXF1ZXN0OworfQorCisvKioKKyAqIHdlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Np
b25fZ2V0X25hbWU6CisgKiBAcmVxdWVzdDogYSAjV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdAorICoKKyAqIFJldHVybnM6IFRoZSBuYW1lIG9mIHRoZSBrZXkgc3lzdGVtIGZv
ciB3aGljaCBhY2Nlc3MgcGVybWlzc2lvbiBpcyBiZWluZyByZXF1ZXN0ZWQuCisgKgorICogU2lu
Y2U6IDIuMzQKKyAqLworY29uc3QgZ2NoYXIqCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJt
aXNzaW9uX2dldF9uYW1lKFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QqIHJl
cXVlc3QpCit7CisgICAgcmV0dXJuIHJlcXVlc3QtPnByaXYtPnJlcXVlc3QtPmtleVN5c3RlbSgp
LnV0ZjgoKS5kYXRhKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTM2ZTRlYmNlMWFlZThjYTgzYjBm
M2NiOTkxM2I3M2IwNTYwNDk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZh
dGUuaApAQCAtMCwwICsxLDI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBT
LkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdC5oIgorI2luY2x1ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qu
aCIKKworV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCogd2Via2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCAyY2ViMmI0ZjQ5ZjQwOWJiZTZlNjgxMDExNWUz
NmQwYzg0ZjgzYjVkLi5mYzY5ZDY0ODEwNGFmMzFiZWIwYzBmMDU1YTg3MmM2MTk3MGI3NTBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGll
bnQuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0RGV2aWNlSW5mb1Blcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdEZpbGVDaG9vc2VyUmVxdWVz
dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0TmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCIK
ICNpbmNsdWRlICJXZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIK
ICNpbmNsdWRlICJXZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgpA
QCAtMjgzLDYgKzI4NCwxMiBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXZWJWaWV3TWFrZVBl
cm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChnZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CiAgICAgfQogCisgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYs
IEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdURjo6
U3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIGZpbmFsCisgICAgeworICAgICAgICBhdXRvIHBlcm1pc3Npb25SZXF1ZXN0
ID0gYWRvcHRHUmVmKHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVhdGUo
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKGtleVN5c3RlbSwgc3RkOjpl
eGNoYW5nZShjb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0cikpLnB0cigpKSk7CisgICAgICAgIHdl
YmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVSTUlT
U0lPTl9SRVFVRVNUKHBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CisgICAgfQorCiAgICAgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkm
LCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAogICAg
IHsKICAgICAgICAgR1JlZlB0cjxXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdD4gdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBhZG9wdEdSZWYod2Via2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RDcmVhdGUocGVybWlzc2lvblJlcXVlc3QsIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaAppbmRleCA1ODhmNGMxNmYzMzUy
M2U5MWNiZTM4ZmNjMGY2YTlhNThkMGM3Y2E2Li43ZTUyYmZhOGI3YzRmODdhODBkZmYxYjIzNzEz
YmJmNTFiZmI4MDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEF1dG9jbGVhbnVwcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgR19ERUZJTkVfQVVUT1BU
Ul9DTEVBTlVQX0ZVTkMgKFdlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QsIGdfb2Jq
ZWN0X3VucmUKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRIaXRUZXN0UmVz
dWx0LCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJL
aXRJbnB1dE1ldGhvZENvbnRleHQsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9D
TEVBTlVQX0ZVTkMgKFdlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJl
cXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdl
YktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQogR19E
RUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lv
biwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0
Tm90aWZpY2F0aW9uLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9G
VU5DIChXZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQxZjE0OTMzNmY0NTQ4MzY5MGI2NWQ4M2I4ZDYyMWViOWY0YWYzZDkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYg
IWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJr
aXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJL
aXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgor
I2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNk
ZWZpbmUgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QgICAg
ICAgICAgICAod2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90
eXBlKCkpCisjZGVmaW5lIFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVT
VChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJL
SVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCkpCisjZGVmaW5lIFdFQktJVF9NRURJQV9LRVlfU1lT
VEVNX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFT
U19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05f
UkVRVUVTVCwgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzKSkKKyNk
ZWZpbmUgV0VCS0lUX0lTX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKG9iaikg
ICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX01F
RElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX0lTX01F
RElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NI
RUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVS
TUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlT
U0lPTl9SRVFVRVNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygo
b2JqKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNULCBX
ZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorCit0eXBlZGVmIHN0
cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCAgICAgICAgV2ViS2l0
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgICBXZWJLaXRNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdCB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8K
KyAgICBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSAqcHJpdjsK
K307CisKK3N0cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNz
IHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93ZWJraXRf
cmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7
CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfbWVk
aWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJL
SVRfQVBJIGNvbnN0IGdjaGFyKgord2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9n
ZXRfbmFtZSAoV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCk7
CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQK
aW5kZXggZjZmNWI4YzUxZTZjOThiY2JiNmU1ODk0YTBiNjg3OGUyMWNjODc1Yi4uZjFjZmE0NGM3
Mjc4MzRiZDEwYmE3N2U3OTMzZTkwZjg5OWY4MGE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2Vj
dGlvbnMudHh0CkBAIC04MDQsNiArODA0LDI1IEBAIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZQogd2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90
eXBlCiA8L1NFQ1RJT04+CiAKKzxTRUNUSU9OPgorPEZJTEU+V2ViS2l0TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdDwvRklMRT4KK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3QKK3dlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fZ2V0X25hbWUKKworPFNV
QlNFQ1RJT04gU3RhbmRhcmQ+CitXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
Q2xhc3MKK1dFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUCitX
RUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJVF9JU19NRURJ
QV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX01FRElBX0tFWV9TWVNURU1f
UEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJN
SVNTSU9OX1JFUVVFU1RfQ0xBU1MKK1dFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05f
UkVRVUVTVF9HRVRfQ0xBU1MKKworPFNVQlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRlCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9w
ZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKKzwvU0VDVElPTj4KKwogPFNFQ1RJT04+CiA8RklM
RT5XZWJLaXROb3RpZmljYXRpb248L0ZJTEU+CiBXZWJLaXROb3RpZmljYXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Mu
c2dtbCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRv
Y3Muc2dtbAppbmRleCBkOGFjODIzMzMyZjI5NDYyOWY4NzUyMzBkNjJkNjcyYmRkMjlkZjM5Li40
MTFlZTY0ZDgzMzMzZjA1MjMwNmM1Yjk5ZDA3M2JiNDI3OTc4YTY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5z
Z21sCkBAIC0yNCw2ICsyNCw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBl
cm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9
InhtbC9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0Lnht
bCIvPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXROYXZp
Z2F0aW9uQWN0aW9uLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwv
V2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAppbmRleCBjMzU4MTE4MzYwYTM4YzdiNDYyMjI3YWE0
YWI4Mzg4YmQ3OTQyYzNlLi5lY2JlNDMzZWQ4ODgzNTNiMWU2MDEzOTQzYjQ0NjM4MzVjMzU4MmQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaApAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uaD4KICNp
bmNsdWRlIDx3ZWJraXQyL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5oPgogI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0
Q29sb3JDaG9vc2VyUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29udGV4dE1l
bnUuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdENvbnRleHRNZW51QWN0aW9ucy5oPgogI2lu
Y2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmg+CkBAIC00NSw3ICs0Niw2IEBA
CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRFbnVtVHlwZXMuaD4KICNpbmNsdWRlIDx3ZWJraXQy
L1dlYktpdEVycm9yLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGYXZpY29uRGF0YWJhc2Uu
aD4KLSNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdENvbG9yQ2hvb3NlclJlcXVlc3QuaD4KICNpbmNs
dWRlIDx3ZWJraXQyL1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0RmluZENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZvcm1T
dWJtaXNzaW9uUmVxdWVzdC5oPgpAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgPHdlYmtpdDIv
V2ViS2l0SW5wdXRNZXRob2RDb250ZXh0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRJbnN0
YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJL
aXRNaW1lSW5mby5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0TmF2aWdhdGlvbkFjdGlvbi5o
PgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlj
ODk4YWYxNjQ3MGRjYTE4ODUyNjk2ODI2OGFmOWZkYmMzNWIxM2YKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRl
ZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQy
Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV2ViS2l0TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2lu
Y2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBX
RUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCAgICAgICAgICAg
ICh3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKG9iaikg
ICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBF
X01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0KSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVS
TUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1Qo
KGtsYXNzKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNU
LCBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorI2RlZmluZSBX
RUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfTUVESUFfS0VZ
X1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfSVNfTUVESUFfS0VZ
X1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xB
U1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9O
X1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JF
UVVFU1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAg
V0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0ICAgICAgICBXZWJLaXRNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzcyAgIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0IHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIFdl
YktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRlICpwcml2OworfTsKKwor
c3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgeworICAg
IEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZl
ZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9tZWRpYV9rZXlf
c3lzdGVtX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkg
Y29uc3QgZ2NoYXIqCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX2dldF9uYW1l
IChXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0KTsKKworR19F
TkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKaW5kZXggMGVlMjUwZTU2MzM4Y2Rh
NzMzMmQ3MDUwODU4MmE1OWE3YWQyMWM4MC4uODI1ZDUxMDBiNmE2OWFjZjVhN2EyMDk1MzgzNzZk
MmM4NTJkYmFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9k
b2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dApAQCAtODA4LDYgKzgwOCwyNSBAQCBXZWJL
aXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUKIHdlYmtpdF91c2VyX21lZGlhX3Bl
cm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCis8U0VDVElPTj4KKzxGSUxF
PldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q8L0ZJTEU+CitXZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Cit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJt
aXNzaW9uX2dldF9uYW1lCisKKzxTVUJTRUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzCitXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVN
X1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9S
RVFVRVNUCitXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dF
QktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUworV0VCS0lUX0lT
X01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfTUVESUFf
S0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTCisKKzxTVUJTRUNUSU9OIFBy
aXZhdGU+CitXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZQord2Vi
a2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCis8L1NFQ1RJ
T04+CisKIDxTRUNUSU9OPgogPEZJTEU+V2ViS2l0Tm90aWZpY2F0aW9uPC9GSUxFPgogV2ViS2l0
Tm90aWZpY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3Bl
L2RvY3Mvd3BlLWRvY3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9j
cy93cGUtZG9jcy5zZ21sCmluZGV4IDA5YWY0ZmM5YmI0ZDVmYjU1OTZhMTc2NTgxNzMyYmMwZGMy
ZTMzMWIuLjhlMjU3ZjAyZjExZmViZWNkMmE1NjczYjhlODcwNmQ1ZWM2YzY4MzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCkBA
IC0yNSw2ICsyNSw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBlcm1pc3Np
b25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9X
ZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgor
ICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXROYXZpZ2F0aW9u
QWN0aW9uLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0
UG9saWN5RGVjaXNpb24ueG1sIi8+CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggNmQ5MGQ0MzMwYzUxM2FjNWFmNmEwZDRhYWVhOTE0YzJkMDFhMWRl
MS4uZGYyZmRkM2I2MDI1ZGNmZDlmYzc0ZDgzOGJhNmExYTUwNDNlZTYzZSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisy
MDIxLTAyLTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAg
ICAgICBbR0xpYl0gUGVybWlzc2lvbiByZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNj
ZXNzIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyMTE5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIGJhc2ljIHN1cHBvcnQgZm9yIE1lZGlhS2V5U3lzdGVtIHBlcm1pc3Npb24gcmVx
dWVzdCB0byB0aGUgR1RLIE1pbmlCcm93c2VyLCBhbmQgYSBHTGliCisgICAgICAgIEFQSSB1bml0
LXRlc3QgYXMgd2VsbC4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmM6
CisgICAgICAgIChwZXJtaXNzaW9uUmVxdWVzdERpYWxvZ1Jlc3BvbnNlKToKKyAgICAgICAgKGRl
Y2lkZVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKGJyb3dzZXJfdGFiX2NsYXNzX2luaXQp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQu
Y3BwOgorICAgICAgICAodGVzdFdlYlZpZXdNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
cyk6CisgICAgICAgIChiZWZvcmVBbGwpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9X
ZWJLaXRHTGliL1dlYlZpZXdUZXN0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdUZXN0Ojppbml0aWFs
aXplV2ViVmlldyk6CisKIDIwMjEtMDItMDEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KIAogICAgICAgICBbSlNDXSBBZGQgQCBpbiBFcnJvci5zdGFjayBpZiBVUkwgZXhpc3Rz
CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jIGIvVG9vbHMv
TWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYwppbmRleCAzZTUzOGE5ZDhhNWY0OGRjMDhiMzMw
ZWQ0NTE3YzIyNzUzNjhkYTlmLi45OTM1ODc5MzYzM2VhMzhkNTRlZTcyOWQxZGY4OGFkYTllMmQ0
NWZmIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jCisrKyBi
L1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmMKQEAgLTYwLDYgKzYwLDcgQEAgc3Ry
dWN0IF9Ccm93c2VyVGFiIHsKIH07CiAKIHN0YXRpYyBHSGFzaFRhYmxlICp1c2VyTWVkaWFQZXJt
aXNzaW9uR3JhbnRlZE9yaWdpbnM7CitzdGF0aWMgR0hhc2hUYWJsZSAqbWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnM7CiBzdHJ1Y3QgX0Jyb3dzZXJUYWJDbGFzcyB7CiAgICAg
R3RrQm94Q2xhc3MgcGFyZW50OwogfTsKQEAgLTI2NCwxMiArMjY1LDE2IEBAIHN0YXRpYyB2b2lk
IHBlcm1pc3Npb25SZXF1ZXN0RGlhbG9nUmVzcG9uc2UoR3RrV2lkZ2V0ICpkaWFsb2csIGdpbnQg
cmVzcG9uc2UsIFBlCiAgICAgY2FzZSBHVEtfUkVTUE9OU0VfWUVTOgogICAgICAgICBpZiAoV0VC
S0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3REYXRhLT5yZXF1ZXN0
KSkKICAgICAgICAgICAgIGdfaGFzaF90YWJsZV9hZGQodXNlck1lZGlhUGVybWlzc2lvbkdyYW50
ZWRPcmlnaW5zLCBnX3N0cmR1cChyZXF1ZXN0RGF0YS0+b3JpZ2luKSk7CisgICAgICAgIGlmIChX
RUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdERhdGEt
PnJlcXVlc3QpKQorICAgICAgICAgICAgZ19oYXNoX3RhYmxlX2FkZChtZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25HcmFudGVkT3JpZ2lucywgZ19zdHJkdXAocmVxdWVzdERhdGEtPm9yaWdpbikpOwog
CiAgICAgICAgIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfYWxsb3cocmVxdWVzdERhdGEtPnJl
cXVlc3QpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAoV0VCS0lU
X0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3REYXRhLT5yZXF1ZXN0KSkK
ICAgICAgICAgICAgIGdfaGFzaF90YWJsZV9yZW1vdmUodXNlck1lZGlhUGVybWlzc2lvbkdyYW50
ZWRPcmlnaW5zLCByZXF1ZXN0RGF0YS0+b3JpZ2luKTsKKyAgICAgICAgaWYgKFdFQktJVF9JU19N
RURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0RGF0YS0+cmVxdWVzdCkp
CisgICAgICAgICAgICBnX2hhc2hfdGFibGVfcmVtb3ZlKG1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkdyYW50ZWRPcmlnaW5zLCByZXF1ZXN0RGF0YS0+b3JpZ2luKTsKIAogICAgICAgICB3ZWJraXRf
cGVybWlzc2lvbl9yZXF1ZXN0X2RlbnkocmVxdWVzdERhdGEtPnJlcXVlc3QpOwogICAgICAgICBi
cmVhazsKQEAgLTM0MCw2ICszNDUsMTYgQEAgc3RhdGljIGdib29sZWFuIGRlY2lkZVBlcm1pc3Np
b25SZXF1ZXN0KFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIFdlYktpdFBlcm1pc3Npb24KICAgICAg
ICAgY29uc3QgZ2NoYXIgKmN1cnJlbnREb21haW4gPSB3ZWJraXRfd2Vic2l0ZV9kYXRhX2FjY2Vz
c19wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X2N1cnJlbnRfZG9tYWluKHdlYnNpdGVEYXRhQWNjZXNz
UmVxdWVzdCk7CiAgICAgICAgIHRleHQgPSBnX3N0cmR1cF9wcmludGYoIkRvIHlvdSB3YW50IHRv
IGFsbG93IFwiJXNcIiB0byB1c2UgY29va2llcyB3aGlsZSBicm93c2luZyBcIiVzXCI/IFRoaXMg
d2lsbCBhbGxvdyBcIiVzXCIgdG8gdHJhY2sgeW91ciBhY3Rpdml0eSIsCiAgICAgICAgICAgICBy
ZXF1ZXN0aW5nRG9tYWluLCBjdXJyZW50RG9tYWluLCByZXF1ZXN0aW5nRG9tYWluKTsKKyAgICB9
IGVsc2UgaWYgKFdFQktJVF9JU19NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChy
ZXF1ZXN0KSkgeworICAgICAgICBjaGFyICpvcmlnaW4gPSBnZXRXZWJWaWV3T3JpZ2luKHdlYlZp
ZXcpOworICAgICAgICBpZiAoZ19oYXNoX3RhYmxlX2NvbnRhaW5zKG1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkdyYW50ZWRPcmlnaW5zLCBvcmlnaW4pKSB7CisgICAgICAgICAgICB3ZWJraXRfcGVy
bWlzc2lvbl9yZXF1ZXN0X2FsbG93KHJlcXVlc3QpOworICAgICAgICAgICAgZ19mcmVlKG9yaWdp
bik7CisgICAgICAgICAgICByZXR1cm4gVFJVRTsKKyAgICAgICAgfQorICAgICAgICBnX2ZyZWUo
b3JpZ2luKTsKKyAgICAgICAgdGl0bGUgPSAiRFJNIHN5c3RlbSBhY2Nlc3MgcmVxdWVzdCI7Cisg
ICAgICAgIHRleHQgPSBnX3N0cmR1cF9wcmludGYoIkFsbG93IHRvIHVzZSBhIENETSBwcm92aWRp
bmcgYWNjZXNzIHRvICVzPyIsIHdlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fZ2V0
X25hbWUoV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3Qp
KSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZ19wcmludCgiJXMgcmVxdWVzdCBub3QgaGFuZGxl
ZFxuIiwgR19PQkpFQ1RfVFlQRV9OQU1FKHJlcXVlc3QpKTsKICAgICAgICAgcmV0dXJuIEZBTFNF
OwpAQCAtNjU1LDYgKzY3MCw5IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJfdGFiX2NsYXNzX2luaXQo
QnJvd3NlclRhYkNsYXNzICprbGFzcykKICAgICBpZiAoIXVzZXJNZWRpYVBlcm1pc3Npb25HcmFu
dGVkT3JpZ2lucykKICAgICAgICAgdXNlck1lZGlhUGVybWlzc2lvbkdyYW50ZWRPcmlnaW5zID0g
Z19oYXNoX3RhYmxlX25ld19mdWxsKGdfc3RyX2hhc2gsIGdfc3RyX2VxdWFsLCBnX2ZyZWUsIE5V
TEwpOwogCisgICAgaWYgKCFtZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkT3JpZ2lucykK
KyAgICAgICAgbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnMgPSBnX2hhc2hf
dGFibGVfbmV3X2Z1bGwoZ19zdHJfaGFzaCwgZ19zdHJfZXF1YWwsIGdfZnJlZSwgTlVMTCk7CisK
ICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAogICAgICAgICBnb2JqZWN0Q2xh
c3MsCiAgICAgICAgIFBST1BfVklFVywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKaW5kZXggMGY5Y2EyYTM4M2QyNzlmM2Q1
MzMyYWU5M2IwNDBlZTRjMTdlZjMxYS4uYzdmYTZkZTBmNWRmNmRjZTlmM2Q2NjE0ZjU0ZTE1NDk5
NTc0OTJhNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RVSUNsaWVudC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RVSUNsaWVudC5jcHAKQEAgLTg5Niw2ICs4OTYsNDIgQEAgc3RhdGljIHZvaWQgdGVz
dFdlYlZpZXdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRlc3QqIHRlc3Qs
IGdjb25zdHAKICAgICBUZXN0OjphZGRMb2dGYXRhbEZsYWcoR19MT0dfTEVWRUxfV0FSTklORyk7
CiB9CiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorc3RhdGljIHZvaWQgdGVzdFdlYlZp
ZXdNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRlc3QqIHRlc3QsIGdj
b25zdHBvaW50ZXIpCit7CisgICAgdGVzdC0+c2hvd0luV2luZG93KCk7CisgICAgc3RhdGljIGNv
bnN0IGNoYXIqIG1lZGlhS2V5U3lzdGVtUmVxdWVzdEhUTUwgPSAiPGh0bWw+IgorICAgICAgICAi
ICA8c2NyaXB0PiIKKyAgICAgICAgIiAgZnVuY3Rpb24gcnVuVGVzdCgpIgorICAgICAgICAiICB7
IgorICAgICAgICAiICAgIGNvbnN0IG9wdGlvbnMgPSBbIgorICAgICAgICAiICAgICB7IGluaXRE
YXRhVHlwZXM6IFtcImNlbmNcIl0sIgorICAgICAgICAiICAgICAgIHZpZGVvQ2FwYWJpbGl0aWVz
OiBbe2NvbnRlbnRUeXBlIDogJ3ZpZGVvL21wNCd9XSB9IgorICAgICAgICAiICAgIF07IgorICAg
ICAgICAiICAgIG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoJ29yZy53My5j
bGVhcmtleScsIG9wdGlvbnMpLnRoZW4oKGFjY2VzcykgPT4geyIKKyAgICAgICAgIiAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBlcm1pc3Npb24ucG9zdE1lc3NhZ2UoJ09LJyk7
IgorICAgICAgICAiICAgIH0pLmNhdGNoKChlKSA9PiB7IgorICAgICAgICAiICAgICAgd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGVybWlzc2lvbi5wb3N0TWVzc2FnZShlLm5hbWUpOyIK
KyAgICAgICAgIiAgICB9KTsiCisgICAgICAgICIgIH0iCisgICAgICAgICIgIDwvc2NyaXB0PiIK
KyAgICAgICAgIiAgPGJvZHkgb25sb2FkPSdydW5UZXN0KCk7Jz48L2JvZHk+IgorICAgICAgICAi
PC9odG1sPiI7CisKKyAgICAvLyBUZXN0IGRlbnlpbmcgYSBwZXJtaXNzaW9uIHJlcXVlc3QuCisg
ICAgdGVzdC0+bV9hbGxvd1Blcm1pc3Npb25SZXF1ZXN0cyA9IGZhbHNlOworICAgIHRlc3QtPmxv
YWRIdG1sKG1lZGlhS2V5U3lzdGVtUmVxdWVzdEhUTUwsICJodHRwczovL2Zvby5jb20vYmFyIik7
CisgICAgY29uc3QgZ2NoYXIqIHJlc3VsdCA9IHRlc3QtPndhaXRVbnRpbFBlcm1pc3Npb25SZXN1
bHRNZXNzYWdlUmVjZWl2ZWQoKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIocmVzdWx0LCA9PSwgIk5v
dFN1cHBvcnRlZEVycm9yIik7CisKKyAgICAvLyBUZXN0IGFsbG93aW5nIGEgcGVybWlzc2lvbiBy
ZXF1ZXN0LgorICAgIHRlc3QtPm1fYWxsb3dQZXJtaXNzaW9uUmVxdWVzdHMgPSB0cnVlOworICAg
IHRlc3QtPmxvYWRIdG1sKG1lZGlhS2V5U3lzdGVtUmVxdWVzdEhUTUwsICJodHRwczovL2Zvby5j
b20vYmFyIik7CisgICAgcmVzdWx0ID0gdGVzdC0+d2FpdFVudGlsUGVybWlzc2lvblJlc3VsdE1l
c3NhZ2VSZWNlaXZlZCgpOworICAgIGdfYXNzZXJ0X2NtcHN0cihyZXN1bHQsID09LCAiT0siKTsK
K30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHN0YXRpYyB2b2lkIHRlc3RX
ZWJWaWV3VXNlck1lZGlhRW51bWVyYXRlRGV2aWNlc1Blcm1pc3Npb25DaGVjayhVSUNsaWVudFRl
c3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7CkBAIC0xMjk5LDYgKzEzMzUsOSBAQCB2b2lkIGJl
Zm9yZUFsbCgpCiAgICAgVUlDbGllbnRUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAibW91c2Ut
dGFyZ2V0IiwgdGVzdFdlYlZpZXdNb3VzZVRhcmdldCk7CiAjZW5kaWYKICAgICBVSUNsaWVudFRl
c3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJnZW9sb2NhdGlvbi1wZXJtaXNzaW9uLXJlcXVlc3Rz
IiwgdGVzdFdlYlZpZXdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyk7CisjaWYgRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKKyAgICBVSUNsaWVudFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIs
ICJtZWRpYUtleVN5c3RlbS1wZXJtaXNzaW9uLXJlcXVlc3RzIiwgdGVzdFdlYlZpZXdNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0cyk7CisjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogICAgIFVJQ2xpZW50VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgInVzZXJtZWRpYS1l
bnVtZXJhdGVkZXZpY2VzLXBlcm1pc3Npb24tY2hlY2siLCB0ZXN0V2ViVmlld1VzZXJNZWRpYUVu
dW1lcmF0ZURldmljZXNQZXJtaXNzaW9uQ2hlY2spOwogICAgIFVJQ2xpZW50VGVzdDo6YWRkKCJX
ZWJLaXRXZWJWaWV3IiwgInVzZXJtZWRpYS1wZXJtaXNzaW9uLXJlcXVlc3RzIiwgdGVzdFdlYlZp
ZXdVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuY3BwCmluZGV4IDdhMTNlYjhmODQwMmRm
MDUxN2FmMDY4ZDkxZDJhZmNkMDlkZTk2NDYuLjZjN2U5Yjk0NmI2NDdjZGI3MjRhNWUyNjYwOWU3
NzM5MWQ4ZDMyN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRH
TGliL1dlYlZpZXdUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0
R0xpYi9XZWJWaWV3VGVzdC5jcHAKQEAgLTYwLDYgKzYwLDEyIEBAIHZvaWQgV2ViVmlld1Rlc3Q6
OmluaXRpYWxpemVXZWJWaWV3KCkKICAgICAgICAgInVzZXItY29udGVudC1tYW5hZ2VyIiwgbV91
c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksCiAgICAgICAgICJpcy1lcGhlbWVyYWwiLCBzaG91bGRD
cmVhdGVFcGhlbWVyYWxXZWJWaWV3LAogICAgICAgICBudWxscHRyKSk7CisKKyNpZiBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQorICAgIGF1dG8qIHNldHRpbmdzID0gd2Via2l0X3dlYl92aWV3X2dl
dF9zZXR0aW5ncyhtX3dlYlZpZXcpOworICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX2Vu
Y3J5cHRlZF9tZWRpYShzZXR0aW5ncywgVFJVRSk7CisjZW5kaWYKKwogICAgIHBsYXRmb3JtSW5p
dGlhbGl6ZVdlYlZpZXcoKTsKICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlz
aGVzKEdfT0JKRUNUKG1fd2ViVmlldykpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419567</attachid>
            <date>2021-02-08 02:19:35 -0800</date>
            <delta_ts>2021-02-08 02:50:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221199-20210208021933.patch</filename>
            <type>text/plain</type>
            <size>34747</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0OWM4ZjI0Y2E3MGQwZTcy
N2I4YmM0MDRkYWQ1MzNjNmMzZjE3NTguLjEyZmQ4YzhjMGE5ZGUxNTBjNGY1MTFiODc3MGU3MWU2
ZjRiYzhmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDItMDggIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHTGliXSBQZXJtaXNz
aW9uIHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTk5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIGEgbmV3IFBl
cm1pc3Npb24gUmVxdWVzdCBvYmplY3QgdG8gdGhlIHB1YmxpYyBXUEUgYW5kIEdUSyBBUElzLCBh
bGxvd2luZyB0aGUKKyAgICAgICAgYXBwbGljYXRpb24gdG8gZGVmZXIgdGhlIGRlY2lzaW9uIG9m
IHVzaW5nIGEgZ2l2ZW4gRU1FIE1lZGlhS2V5U3lzdGVtIHRvIHRoZSB1c2VyJ3MKKyAgICAgICAg
YXBwcm92YWwuCisKKyAgICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3QuCisKKyAgICAgICAg
KiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFrZToKKyAgICAg
ICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzV1BFLnR4dDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dC5jcHA6IEFkZGVkLgorICAgICAgICAod2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdEFsbG93KToKKyAgICAgICAgKHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3REZW55KToKKyAgICAgICAgKHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2lu
aXQpOgorICAgICAgICAod2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdERpc3Bv
c2UpOgorICAgICAgICAod2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0
X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdENyZWF0ZSk6CisgICAgICAgICh3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9u
X2dldF9uYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0OgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWw6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaDogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS1kb2NzLnNnbWw6CisKIDIwMjEtMDIt
MDggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHVuaWZpZWQgYnVpbGQgZml4IGFmdGVyIHIyNzI0ODAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RL
LmNtYWtlCmluZGV4IDMyMGIxMTZiMWQ4YTMzYTdkNTQ3YzdjZjYxOTA3NTY3NjE0NzM3NzIuLjlh
OGUwZmE4OTc4ZjZiMmFlODg3ODUzNjM0YTljY2Q2N2Q3NTE4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdU
Sy5jbWFrZQpAQCAtMTE5LDYgKzExOSw3IEBAIHNldChXZWJLaXQyR1RLX0lOU1RBTExFRF9IRUFE
RVJTCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRUZXN0UmVz
dWx0LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluc3RhbGxN
aXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuaAogICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5oCisgICAgJHtXRUJLSVRf
RElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1pbWVJbmZv
LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmlnYXRpb25B
Y3Rpb24uaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdh
dGlvblBvbGljeURlY2lzaW9uLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1X
UEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4IGM0NDFlNmFh
YmY0MmM5ZDVhZWNjY2Q5NjFkYjQwMTA3YzQ4N2JkNDAuLmY0NWM1MzFhMDliY2I1OGRhYWY5ZmY1
YTk4NGZjMWM2MTExYzU5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUu
Y21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMTMyLDYgKzEz
Miw3IEBAIHNldChXUEVfQVBJX0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVRfRElSfS9V
SVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaAogICAgICR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQ
ZXJtaXNzaW9uUmVxdWVzdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXRKYXZhc2NyaXB0UmVzdWx0LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaAogICAgICR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0TWltZUluZm8uaAogICAgICR7V0VCS0lUX0RJ
Un0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0TmF2aWdhdGlvbkFjdGlvbi5oCiAgICAgJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24u
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlc0dUSy50eHQKaW5kZXggMzc5NTBjM2U3ZjgwZGEzZTBiYTY0OWQyODg0ZWJhNTUy
ZjU3ODk3Ny4uMTg4YWU3Mzc4OGM3NGI1MTcyNTBiYzQwYmUxNmYyZTgxZjRiMzg0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNHVEsudHh0CkBAIC0xNDYsNiArMTQ2LDcgQEAgVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuY3BwIEBu
by11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuY3BwIEBu
by11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1pbWVJbmZv
LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQWN0aW9u
LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50
LmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4IGI0ZTVjODI2NzQ5MmE3OTZkYzkw
Mzc1OTM4MzRhYTE4NzVlN2VlZDcuLjlkZGRkYjc0ZjE4OTk5NDY5NzM2YjVhYWVkZDUzYzcxN2M3
Njg4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKKysrIGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dApAQCAtMTM3LDYgKzEzNyw3IEBAIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25S
ZXF1ZXN0LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRKYXZhc2NyaXB0
UmVzdWx0LmNwcCBAbm8tdW5pZnkKK1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRNaW1lSW5mby5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2
aWdhdGlvbkFjdGlvbi5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2
aWdhdGlvbkNsaWVudC5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjZjRhNDE5YjUzOTUyMzk5Mjg2YTA0
ODZkN2E0ODJmZjA3ZmQ5ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmNwcApA
QCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dC5oIgorI2luY2x1ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2
YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0UGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlIDx3
dGYvZ2xpYi9XVEZHVHlwZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCisvKioKKyAq
IFNFQ1RJT046IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QKKyAqIEBTaG9y
dF9kZXNjcmlwdGlvbjogQSBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHVzaW5nIGFuIEVNRSBDb250
ZW50IERlY3J5cHRpb24gTW9kdWxlCisgKiBAVGl0bGU6IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3QKKyAqIEBTZWVfYWxzbzogI1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0LCAj
V2ViS2l0V2ViVmlldworICoKKyAqIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3QgcmVwcmVzZW50cyBhIHJlcXVlc3QgZm9yIHBlcm1pc3Npb24gdG8gZGVjaWRlIHdoZXRoZXIK
KyAqIFdlYktpdCBzaG91bGQgdXNlIHRoZSBnaXZlbiBDRE0gdG8gYWNjZXNzIHByb3RlY3RlZCBt
ZWRpYSB3aGVuIHJlcXVlc3RlZCB0aHJvdWdoIHRoZQorICogTWVkaWFLZXlTeXN0ZW0gQVBJLgor
ICoKKyAqIFdoZW4gYSBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0IGlzIG5v
dCBoYW5kbGVkIGJ5IHRoZSB1c2VyLAorICogaXQgaXMgZGVuaWVkIGJ5IGRlZmF1bHQuCisgKgor
ICogV2hlbiBoYW5kbGluZyB0aGlzIHBlcm1pc3Npb24gcmVxdWVzdCB0aGUgYXBwbGljYXRpb24g
bWF5IHBlcmZvcm0gYWRkaXRpb25hbCBpbnN0YWxsYXRpb24gb2YgdGhlCisgKiByZXF1ZXN0ZWQg
Q0RNLCB1bmxlc3MgaXQgaXMgYWxyZWFkeSBwcmVzZW50IG9uIHRoZSBob3N0IHN5c3RlbS4KKyAq
LworCitzdGF0aWMgdm9pZCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0
KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0SWZhY2UqKTsKKworc3RydWN0IF9XZWJLaXRNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSB7CisgICAgUmVmUHRyPE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3Q+IHJlcXVlc3Q7CisgICAgYm9vbCBtYWRlRGVjaXNpb247Cit9
OworCitXRUJLSVRfREVGSU5FX1RZUEVfV0lUSF9DT0RFKAorICAgIFdlYktpdE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3QsIHdlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25f
cmVxdWVzdCwgR19UWVBFX09CSkVDVCwKKyAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lU
X1RZUEVfUEVSTUlTU0lPTl9SRVFVRVNULCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVy
ZmFjZV9pbml0KSkKKworc3RhdGljIHZvaWQgd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdEFsbG93KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIEFT
U0VSVChXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVz
dCkpOworCisgICAgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUq
IHByaXYgPSBXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVz
dCktPnByaXY7CisKKyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBhdCBhIHRpbWUuCisgICAgaWYg
KHByaXYtPm1hZGVEZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpdi0+cmVxdWVz
dC0+Y29tcGxldGUodHJ1ZSk7CisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKK30KKwor
c3RhdGljIHZvaWQgd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdERlbnkoV2Vi
S2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgQVNTRVJUKFdFQktJVF9JU19N
RURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSk7CisKKyAgICBXZWJL
aXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9N
RURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KS0+cHJpdjsKKworICAg
IC8vIE9ubHkgb25lIGRlY2lzaW9uIGF0IGEgdGltZS4KKyAgICBpZiAocHJpdi0+bWFkZURlY2lz
aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBwcml2LT5yZXF1ZXN0LT5jb21wbGV0ZShmYWxz
ZSk7CisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgd2Vi
a2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZhY2VfaW5pdChXZWJLaXRQZXJtaXNzaW9uUmVx
dWVzdElmYWNlKiBpZmFjZSkKK3sKKyAgICBpZmFjZS0+YWxsb3cgPSB3ZWJraXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0QWxsb3c7CisgICAgaWZhY2UtPmRlbnkgPSB3ZWJraXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0RGVueTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdERpc3Bvc2UoR09iamVjdCogb2JqZWN0KQor
eworICAgIC8vIERlZmF1bHQgYmVoYXZpb3VyIHdoZW4gbm8gZGVjaXNpb24gaGFzIGJlZW4gbWFk
ZSBpcyBkZW55aW5nIHRoZSByZXF1ZXN0LgorICAgIHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3REZW55KFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqZWN0KSk7CisgICAg
R19PQkpFQ1RfQ0xBU1Mod2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0
X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0
X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2NsYXNzX2luaXQoV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzKiBrbGFzcykKK3sKKyAgICBHT2JqZWN0
Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Moa2xhc3MpOworICAgIG9iamVjdENs
YXNzLT5kaXNwb3NlID0gd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdERpc3Bv
c2U7Cit9CisKK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QqIHdlYmtpdE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCA9IFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BF
Uk1JU1NJT05fUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RF
TV9QRVJNSVNTSU9OX1JFUVVFU1QsIE5VTEwpKTsKKyAgICBwZXJtaXNzaW9uUmVxdWVzdC0+cHJp
di0+cmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgcmV0dXJuIHBlcm1pc3Npb25SZXF1ZXN0OworfQor
CisvKioKKyAqIHdlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fZ2V0X25hbWU6Cisg
KiBAcmVxdWVzdDogYSAjV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdAorICoK
KyAqIFJldHVybnM6IFRoZSBuYW1lIG9mIHRoZSBrZXkgc3lzdGVtIGZvciB3aGljaCBhY2Nlc3Mg
cGVybWlzc2lvbiBpcyBiZWluZyByZXF1ZXN0ZWQuCisgKgorICogU2luY2U6IDIuMzIKKyAqLwor
Y29uc3QgZ2NoYXIqCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX2dldF9uYW1l
KFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAg
cmV0dXJuIHJlcXVlc3QtPnByaXYtPnJlcXVlc3QtPmtleVN5c3RlbSgpLnV0ZjgoKS5kYXRhKCk7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43ZTM2ZTRlYmNlMWFlZThjYTgzYjBmM2NiOTkxM2I3M2IwNTYw
NDk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaApAQCAtMCwwICsx
LDI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1
ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCIKKworV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCogd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdENyZWF0ZShXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJ
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xp
ZW50LmNwcAppbmRleCAyY2ViMmI0ZjQ5ZjQwOWJiZTZlNjgxMDExNWUzNmQwYzg0ZjgzYjVkLi5m
YzY5ZDY0ODEwNGFmMzFiZWIwYzBmMDU1YTg3MmM2MTk3MGI3NTBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCkBAIC0yNSw2
ICsyNSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0UHJp
dmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdEZpbGVDaG9vc2VyUmVxdWVzdFByaXZhdGUuaCIKICNp
bmNsdWRlICJXZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgiCiAj
aW5jbHVkZSAiV2ViS2l0TmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJL
aXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJL
aXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgpAQCAtMjgzLDYgKzI4NCwx
MiBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0
KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChnZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmdldCgpKSk7CiAgICAgfQogCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdURjo6U3RyaW5nJiBrZXlTeXN0
ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZp
bmFsCisgICAgeworICAgICAgICBhdXRvIHBlcm1pc3Npb25SZXF1ZXN0ID0gYWRvcHRHUmVmKHdl
YmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKGtleVN5c3RlbSwgc3RkOjpleGNoYW5nZShjb21wbGV0
aW9uSGFuZGxlciwgbnVsbHB0cikpLnB0cigpKSk7CisgICAgICAgIHdlYmtpdFdlYlZpZXdNYWtl
UGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNUKHBl
cm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CisgICAgfQorCiAgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5
JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2Vj
dXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAogICAgIHsKICAgICAgICAgR1Jl
ZlB0cjxXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdD4gdXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3QgPSBhZG9wdEdSZWYod2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDcmVh
dGUocGVybWlzc2lvblJlcXVlc3QsIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRBdXRvY2xlYW51cHMuaAppbmRleCA1ODhmNGMxNmYzMzUyM2U5MWNiZTM4ZmNjMGY2
YTlhNThkMGM3Y2E2Li43ZTUyYmZhOGI3YzRmODdhODBkZmYxYjIzNzEzYmJmNTFiZmI4MDRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVh
bnVwcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2Ns
ZWFudXBzLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMg
KFdlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmUKIEdfREVG
SU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRIaXRUZXN0UmVzdWx0LCBnX29iamVjdF91
bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRJbnB1dE1ldGhvZENv
bnRleHQsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdl
YktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0
X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9D
TEVBTlVQX0ZVTkMgKFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgZ19vYmplY3RfdW5y
ZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0Tm90aWZpY2F0aW9uLCBn
X29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXROb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxZjE0OTMzNmY0NTQ4
MzY5MGI2NWQ4M2I4ZDYyMWViOWY0YWYzZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3QuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBT
LkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lU
Ml9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBp
bmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZ
UEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QgICAgICAgICAgICAod2Via2l0
X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlKCkpCisjZGVmaW5l
IFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChvYmopICAgICAgICAg
ICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9NRURJQV9L
RVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdCkpCisjZGVmaW5lIFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05f
UkVRVUVTVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyks
ICBXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lT
X01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKG9iaikgICAgICAgICAoR19UWVBF
X0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1f
UEVSTUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX0lTX01FRElBX0tFWV9TWVNURU1f
UEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUo
KGtsYXNzKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNU
KSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUX0dF
VF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9U
WVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCAgICAgICAgV2ViS2l0TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0Q2xhc3MgICBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdFByaXZhdGUgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZh
dGU7CisKK3N0cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCB7Cisg
ICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBf
V2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzIHsKKyAgICBHT2JqZWN0
Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9p
ZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93
ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAo
dm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9w
ZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIGNvbnN0IGdj
aGFyKgord2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9nZXRfbmFtZSAoV2ViS2l0
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCk7CisKK0dfRU5EX0RFQ0xT
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKaW5kZXggZjZmNWI4YzUx
ZTZjOThiY2JiNmU1ODk0YTBiNjg3OGUyMWNjODc1Yi4uZjFjZmE0NGM3Mjc4MzRiZDEwYmE3N2U3
OTMzZTkwZjg5OWY4MGE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CkBAIC04
MDQsNiArODA0LDI1IEBAIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZQog
d2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCiA8L1NFQ1RJT04+
CiAKKzxTRUNUSU9OPgorPEZJTEU+V2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dDwvRklMRT4KK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QKK3dlYmtpdF9t
ZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fZ2V0X25hbWUKKworPFNVQlNFQ1RJT04gU3RhbmRh
cmQ+CitXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MKK1dFQktJVF9U
WVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRfTUVESUFfS0VZ
X1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJVF9JU19NRURJQV9LRVlfU1lTVEVNX1BF
Uk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFV
RVNUX0NMQVNTCitXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1Rf
Q0xBU1MKK1dFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVF9HRVRfQ0xB
U1MKKworPFNVQlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RQcml2YXRlCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVl
c3RfZ2V0X3R5cGUKKzwvU0VDVElPTj4KKwogPFNFQ1RJT04+CiA8RklMRT5XZWJLaXROb3RpZmlj
YXRpb248L0ZJTEU+CiBXZWJLaXROb3RpZmljYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbAppbmRleCBk
OGFjODIzMzMyZjI5NDYyOWY4NzUyMzBkNjJkNjcyYmRkMjlkZjM5Li40MTFlZTY0ZDgzMzMzZjA1
MjMwNmM1Yjk5ZDA3M2JiNDI3OTc4YTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCkBAIC0yNCw2ICsy
NCw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0
LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRJbnN0
YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgorICAgIDx4aTpp
bmNsdWRlIGhyZWY9InhtbC9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lnht
bCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uLnht
bCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0RGV2aWNlSW5m
b1Blcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L3dlYmtpdDIuaAppbmRleCBjMzU4MTE4MzYwYTM4YzdiNDYyMjI3YWE0YWI4Mzg4YmQ3OTQyYzNl
Li5lY2JlNDMzZWQ4ODgzNTNiMWU2MDEzOTQzYjQ0NjM4MzVjMzU4MmQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgPHdlYmtpdDIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uaD4KICNpbmNsdWRlIDx3ZWJraXQy
L1dlYktpdEJhY2tGb3J3YXJkTGlzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0QmFja0Zv
cndhcmRMaXN0SXRlbS5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29sb3JDaG9vc2VyUmVx
dWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29udGV4dE1lbnUuaD4KICNpbmNsdWRl
IDx3ZWJraXQyL1dlYktpdENvbnRleHRNZW51QWN0aW9ucy5oPgogI2luY2x1ZGUgPHdlYmtpdDIv
V2ViS2l0Q29udGV4dE1lbnVJdGVtLmg+CkBAIC00NSw3ICs0Niw2IEBACiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRFbnVtVHlwZXMuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEVycm9yLmg+
CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGYXZpY29uRGF0YWJhc2UuaD4KLSNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdENvbG9yQ2hvb3NlclJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dl
YktpdEZpbGVDaG9vc2VyUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RmluZENv
bnRyb2xsZXIuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVz
dC5oPgpAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0SW5wdXRNZXRo
b2RDb250ZXh0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlh
UGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRKYXZh
c2NyaXB0UmVzdWx0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRNaW1lSW5mby5oPgog
I2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0TmF2aWdhdGlvbkFjdGlvbi5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljODk4YWYxNjQ3MGRjYTE4
ODUyNjk2ODI2OGFmOWZkYmMzNWIxM2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qu
aApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwu
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9D
T01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNs
dWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdwZS9XZWJL
aXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9NRURJ
QV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCAgICAgICAgICAgICh3ZWJraXRfbWVkaWFf
a2V5X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lU
X01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKG9iaikgICAgICAgICAgICAoR19U
WVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNU
RU1fUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0KSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNU
X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJ
VF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfTUVESUFf
S0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tf
SU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNT
SU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNT
SU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3Mp
LCAgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2Rl
ZmluZSBXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNT
KG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfTUVE
SUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0ICAgICAgICBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RDbGFzcyAgIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
UHJpdmF0ZSBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKKwor
c3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0IHsKKyAgICBHT2Jq
ZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIFdlYktpdE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBw
YXJlbnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAg
ICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9y
ZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsK
K307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Np
b25fcmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIqCit3
ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX2dldF9uYW1lIChXZWJLaXRNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0KTsKKworR19FTkRfREVDTFMKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3Bl
LTEuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mv
d3BlLTEuMC1zZWN0aW9ucy50eHQKaW5kZXggMGVlMjUwZTU2MzM4Y2RhNzMzMmQ3MDUwODU4MmE1
OWE3YWQyMWM4MC4uODI1ZDUxMDBiNmE2OWFjZjVhN2EyMDk1MzgzNzZkMmM4NTJkYmFjOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2Vj
dGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUt
MS4wLXNlY3Rpb25zLnR4dApAQCAtODA4LDYgKzgwOCwyNSBAQCBXZWJLaXRVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGUKIHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVz
dF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCis8U0VDVElPTj4KKzxGSUxFPldlYktpdE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q8L0ZJTEU+CitXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0Cit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX2dldF9uYW1l
CisKKzxTVUJTRUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdENsYXNzCitXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVR
VUVTVAorV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRf
SVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJVF9NRURJQV9LRVlf
U1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUworV0VCS0lUX0lTX01FRElBX0tFWV9TWVNU
RU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJN
SVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTCisKKzxTVUJTRUNUSU9OIFByaXZhdGU+CitXZWJLaXRN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZQord2Via2l0X21lZGlhX2tleV9z
eXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCis8L1NFQ1RJT04+CisKIDxTRUNUSU9O
PgogPEZJTEU+V2ViS2l0Tm90aWZpY2F0aW9uPC9GSUxFPgogV2ViS2l0Tm90aWZpY2F0aW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLWRvY3Mu
c2dtbCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21s
CmluZGV4IDA5YWY0ZmM5YmI0ZDVmYjU1OTZhMTc2NTgxNzMyYmMwZGMyZTMzMWIuLjhlMjU3ZjAy
ZjExZmViZWNkMmE1NjczYjhlODcwNmQ1ZWM2YzY4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCkBAIC0yNSw2ICsyNSw3IEBA
CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0LnhtbCIv
PgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRJbnN0YWxsTWlz
c2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgorICAgIDx4aTppbmNsdWRl
IGhyZWY9InhtbC9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgog
ICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uLnhtbCIvPgog
ICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0UG9saWN5RGVjaXNpb24u
eG1sIi8+CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggYWI1ZDM4ZTg5NGZhOGE5YzNmMjYzMzBiMDdhNWRmYmNhNzA5YjIxMi4uMzYwZTdmNTcyZTJi
ZDMzMzViMGFhOWVhMmFhYTlmNmRhMGRjZGVhNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTAyLTA4ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR0xpYl0gUGVy
bWlzc2lvbiByZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHN1cHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTE5OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGJhc2lj
IHN1cHBvcnQgZm9yIE1lZGlhS2V5U3lzdGVtIHBlcm1pc3Npb24gcmVxdWVzdCB0byB0aGUgR1RL
IE1pbmlCcm93c2VyLCBhbmQgYSBHTGliCisgICAgICAgIEFQSSB1bml0LXRlc3QgYXMgd2VsbC4K
KworICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmM6CisgICAgICAgIChwZXJt
aXNzaW9uUmVxdWVzdERpYWxvZ1Jlc3BvbnNlKToKKyAgICAgICAgKGRlY2lkZVBlcm1pc3Npb25S
ZXF1ZXN0KToKKyAgICAgICAgKGJyb3dzZXJfdGFiX2NsYXNzX2luaXQpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwOgorICAgICAgICAo
dGVzdFdlYlZpZXdNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0cyk6CisgICAgICAgIChi
ZWZvcmVBbGwpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZp
ZXdUZXN0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdUZXN0Ojppbml0aWFsaXplV2ViVmlldyk6CisK
IDIwMjEtMDItMDggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFBlcm1pc3Npb24gcmVxdWVzdCBBUEkgZm9yIE1lZGlhS2V5U3lzdGVtIGFjY2VzcyBz
dXBwb3J0CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jIGIv
VG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYwppbmRleCAzZTUzOGE5ZDhhNWY0OGRj
MDhiMzMwZWQ0NTE3YzIyNzUzNjhkYTlmLi45OTM1ODc5MzYzM2VhMzhkNTRlZTcyOWQxZGY4OGFk
YTllMmQ0NWZmIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5j
CisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmMKQEAgLTYwLDYgKzYwLDcg
QEAgc3RydWN0IF9Ccm93c2VyVGFiIHsKIH07CiAKIHN0YXRpYyBHSGFzaFRhYmxlICp1c2VyTWVk
aWFQZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnM7CitzdGF0aWMgR0hhc2hUYWJsZSAqbWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnM7CiBzdHJ1Y3QgX0Jyb3dzZXJUYWJDbGFzcyB7
CiAgICAgR3RrQm94Q2xhc3MgcGFyZW50OwogfTsKQEAgLTI2NCwxMiArMjY1LDE2IEBAIHN0YXRp
YyB2b2lkIHBlcm1pc3Npb25SZXF1ZXN0RGlhbG9nUmVzcG9uc2UoR3RrV2lkZ2V0ICpkaWFsb2cs
IGdpbnQgcmVzcG9uc2UsIFBlCiAgICAgY2FzZSBHVEtfUkVTUE9OU0VfWUVTOgogICAgICAgICBp
ZiAoV0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3REYXRhLT5y
ZXF1ZXN0KSkKICAgICAgICAgICAgIGdfaGFzaF90YWJsZV9hZGQodXNlck1lZGlhUGVybWlzc2lv
bkdyYW50ZWRPcmlnaW5zLCBnX3N0cmR1cChyZXF1ZXN0RGF0YS0+b3JpZ2luKSk7CisgICAgICAg
IGlmIChXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVz
dERhdGEtPnJlcXVlc3QpKQorICAgICAgICAgICAgZ19oYXNoX3RhYmxlX2FkZChtZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25HcmFudGVkT3JpZ2lucywgZ19zdHJkdXAocmVxdWVzdERhdGEtPm9yaWdp
bikpOwogCiAgICAgICAgIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfYWxsb3cocmVxdWVzdERh
dGEtPnJlcXVlc3QpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAo
V0VCS0lUX0lTX1VTRVJfTUVESUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3REYXRhLT5yZXF1
ZXN0KSkKICAgICAgICAgICAgIGdfaGFzaF90YWJsZV9yZW1vdmUodXNlck1lZGlhUGVybWlzc2lv
bkdyYW50ZWRPcmlnaW5zLCByZXF1ZXN0RGF0YS0+b3JpZ2luKTsKKyAgICAgICAgaWYgKFdFQktJ
VF9JU19NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0RGF0YS0+cmVx
dWVzdCkpCisgICAgICAgICAgICBnX2hhc2hfdGFibGVfcmVtb3ZlKG1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkdyYW50ZWRPcmlnaW5zLCByZXF1ZXN0RGF0YS0+b3JpZ2luKTsKIAogICAgICAgICB3
ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2RlbnkocmVxdWVzdERhdGEtPnJlcXVlc3QpOwogICAg
ICAgICBicmVhazsKQEAgLTM0MCw2ICszNDUsMTYgQEAgc3RhdGljIGdib29sZWFuIGRlY2lkZVBl
cm1pc3Npb25SZXF1ZXN0KFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIFdlYktpdFBlcm1pc3Npb24K
ICAgICAgICAgY29uc3QgZ2NoYXIgKmN1cnJlbnREb21haW4gPSB3ZWJraXRfd2Vic2l0ZV9kYXRh
X2FjY2Vzc19wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X2N1cnJlbnRfZG9tYWluKHdlYnNpdGVEYXRh
QWNjZXNzUmVxdWVzdCk7CiAgICAgICAgIHRleHQgPSBnX3N0cmR1cF9wcmludGYoIkRvIHlvdSB3
YW50IHRvIGFsbG93IFwiJXNcIiB0byB1c2UgY29va2llcyB3aGlsZSBicm93c2luZyBcIiVzXCI/
IFRoaXMgd2lsbCBhbGxvdyBcIiVzXCIgdG8gdHJhY2sgeW91ciBhY3Rpdml0eSIsCiAgICAgICAg
ICAgICByZXF1ZXN0aW5nRG9tYWluLCBjdXJyZW50RG9tYWluLCByZXF1ZXN0aW5nRG9tYWluKTsK
KyAgICB9IGVsc2UgaWYgKFdFQktJVF9JU19NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVR
VUVTVChyZXF1ZXN0KSkgeworICAgICAgICBjaGFyICpvcmlnaW4gPSBnZXRXZWJWaWV3T3JpZ2lu
KHdlYlZpZXcpOworICAgICAgICBpZiAoZ19oYXNoX3RhYmxlX2NvbnRhaW5zKG1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkdyYW50ZWRPcmlnaW5zLCBvcmlnaW4pKSB7CisgICAgICAgICAgICB3ZWJr
aXRfcGVybWlzc2lvbl9yZXF1ZXN0X2FsbG93KHJlcXVlc3QpOworICAgICAgICAgICAgZ19mcmVl
KG9yaWdpbik7CisgICAgICAgICAgICByZXR1cm4gVFJVRTsKKyAgICAgICAgfQorICAgICAgICBn
X2ZyZWUob3JpZ2luKTsKKyAgICAgICAgdGl0bGUgPSAiRFJNIHN5c3RlbSBhY2Nlc3MgcmVxdWVz
dCI7CisgICAgICAgIHRleHQgPSBnX3N0cmR1cF9wcmludGYoIkFsbG93IHRvIHVzZSBhIENETSBw
cm92aWRpbmcgYWNjZXNzIHRvICVzPyIsIHdlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Np
b25fZ2V0X25hbWUoV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKHJl
cXVlc3QpKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZ19wcmludCgiJXMgcmVxdWVzdCBub3Qg
aGFuZGxlZFxuIiwgR19PQkpFQ1RfVFlQRV9OQU1FKHJlcXVlc3QpKTsKICAgICAgICAgcmV0dXJu
IEZBTFNFOwpAQCAtNjU1LDYgKzY3MCw5IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJfdGFiX2NsYXNz
X2luaXQoQnJvd3NlclRhYkNsYXNzICprbGFzcykKICAgICBpZiAoIXVzZXJNZWRpYVBlcm1pc3Np
b25HcmFudGVkT3JpZ2lucykKICAgICAgICAgdXNlck1lZGlhUGVybWlzc2lvbkdyYW50ZWRPcmln
aW5zID0gZ19oYXNoX3RhYmxlX25ld19mdWxsKGdfc3RyX2hhc2gsIGdfc3RyX2VxdWFsLCBnX2Zy
ZWUsIE5VTEwpOwogCisgICAgaWYgKCFtZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkT3Jp
Z2lucykKKyAgICAgICAgbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnMgPSBn
X2hhc2hfdGFibGVfbmV3X2Z1bGwoZ19zdHJfaGFzaCwgZ19zdHJfZXF1YWwsIGdfZnJlZSwgTlVM
TCk7CisKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAogICAgICAgICBnb2Jq
ZWN0Q2xhc3MsCiAgICAgICAgIFBST1BfVklFVywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKaW5kZXggMGY5Y2EyYTM4M2Qy
NzlmM2Q1MzMyYWU5M2IwNDBlZTRjMTdlZjMxYS4uYzdmYTZkZTBmNWRmNmRjZTlmM2Q2NjE0ZjU0
ZTE1NDk5NTc0OTJhNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKQEAgLTg5Niw2ICs4OTYsNDIgQEAgc3RhdGljIHZv
aWQgdGVzdFdlYlZpZXdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRlc3Qq
IHRlc3QsIGdjb25zdHAKICAgICBUZXN0OjphZGRMb2dGYXRhbEZsYWcoR19MT0dfTEVWRUxfV0FS
TklORyk7CiB9CiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorc3RhdGljIHZvaWQgdGVz
dFdlYlZpZXdNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRlc3QqIHRl
c3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgdGVzdC0+c2hvd0luV2luZG93KCk7CisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIG1lZGlhS2V5U3lzdGVtUmVxdWVzdEhUTUwgPSAiPGh0bWw+IgorICAg
ICAgICAiICA8c2NyaXB0PiIKKyAgICAgICAgIiAgZnVuY3Rpb24gcnVuVGVzdCgpIgorICAgICAg
ICAiICB7IgorICAgICAgICAiICAgIGNvbnN0IG9wdGlvbnMgPSBbIgorICAgICAgICAiICAgICB7
IGluaXREYXRhVHlwZXM6IFtcImNlbmNcIl0sIgorICAgICAgICAiICAgICAgIHZpZGVvQ2FwYWJp
bGl0aWVzOiBbe2NvbnRlbnRUeXBlIDogJ3ZpZGVvL21wNCd9XSB9IgorICAgICAgICAiICAgIF07
IgorICAgICAgICAiICAgIG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoJ29y
Zy53My5jbGVhcmtleScsIG9wdGlvbnMpLnRoZW4oKGFjY2VzcykgPT4geyIKKyAgICAgICAgIiAg
ICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBlcm1pc3Npb24ucG9zdE1lc3NhZ2Uo
J09LJyk7IgorICAgICAgICAiICAgIH0pLmNhdGNoKChlKSA9PiB7IgorICAgICAgICAiICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGVybWlzc2lvbi5wb3N0TWVzc2FnZShlLm5h
bWUpOyIKKyAgICAgICAgIiAgICB9KTsiCisgICAgICAgICIgIH0iCisgICAgICAgICIgIDwvc2Ny
aXB0PiIKKyAgICAgICAgIiAgPGJvZHkgb25sb2FkPSdydW5UZXN0KCk7Jz48L2JvZHk+IgorICAg
ICAgICAiPC9odG1sPiI7CisKKyAgICAvLyBUZXN0IGRlbnlpbmcgYSBwZXJtaXNzaW9uIHJlcXVl
c3QuCisgICAgdGVzdC0+bV9hbGxvd1Blcm1pc3Npb25SZXF1ZXN0cyA9IGZhbHNlOworICAgIHRl
c3QtPmxvYWRIdG1sKG1lZGlhS2V5U3lzdGVtUmVxdWVzdEhUTUwsICJodHRwczovL2Zvby5jb20v
YmFyIik7CisgICAgY29uc3QgZ2NoYXIqIHJlc3VsdCA9IHRlc3QtPndhaXRVbnRpbFBlcm1pc3Np
b25SZXN1bHRNZXNzYWdlUmVjZWl2ZWQoKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIocmVzdWx0LCA9
PSwgIk5vdFN1cHBvcnRlZEVycm9yIik7CisKKyAgICAvLyBUZXN0IGFsbG93aW5nIGEgcGVybWlz
c2lvbiByZXF1ZXN0LgorICAgIHRlc3QtPm1fYWxsb3dQZXJtaXNzaW9uUmVxdWVzdHMgPSB0cnVl
OworICAgIHRlc3QtPmxvYWRIdG1sKG1lZGlhS2V5U3lzdGVtUmVxdWVzdEhUTUwsICJodHRwczov
L2Zvby5jb20vYmFyIik7CisgICAgcmVzdWx0ID0gdGVzdC0+d2FpdFVudGlsUGVybWlzc2lvblJl
c3VsdE1lc3NhZ2VSZWNlaXZlZCgpOworICAgIGdfYXNzZXJ0X2NtcHN0cihyZXN1bHQsID09LCAi
T0siKTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHN0YXRpYyB2b2lk
IHRlc3RXZWJWaWV3VXNlck1lZGlhRW51bWVyYXRlRGV2aWNlc1Blcm1pc3Npb25DaGVjayhVSUNs
aWVudFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7CkBAIC0xMjk5LDYgKzEzMzUsOSBAQCB2
b2lkIGJlZm9yZUFsbCgpCiAgICAgVUlDbGllbnRUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAi
bW91c2UtdGFyZ2V0IiwgdGVzdFdlYlZpZXdNb3VzZVRhcmdldCk7CiAjZW5kaWYKICAgICBVSUNs
aWVudFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJnZW9sb2NhdGlvbi1wZXJtaXNzaW9uLXJl
cXVlc3RzIiwgdGVzdFdlYlZpZXdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyk7CisjaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBVSUNsaWVudFRlc3Q6OmFkZCgiV2ViS2l0V2Vi
VmlldyIsICJtZWRpYUtleVN5c3RlbS1wZXJtaXNzaW9uLXJlcXVlc3RzIiwgdGVzdFdlYlZpZXdN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0cyk7CisjZW5kaWYKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIFVJQ2xpZW50VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgInVzZXJt
ZWRpYS1lbnVtZXJhdGVkZXZpY2VzLXBlcm1pc3Npb24tY2hlY2siLCB0ZXN0V2ViVmlld1VzZXJN
ZWRpYUVudW1lcmF0ZURldmljZXNQZXJtaXNzaW9uQ2hlY2spOwogICAgIFVJQ2xpZW50VGVzdDo6
YWRkKCJXZWJLaXRXZWJWaWV3IiwgInVzZXJtZWRpYS1wZXJtaXNzaW9uLXJlcXVlc3RzIiwgdGVz
dFdlYlZpZXdVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuY3BwCmluZGV4IDdhMTNlYjhm
ODQwMmRmMDUxN2FmMDY4ZDkxZDJhZmNkMDlkZTk2NDYuLjZjN2U5Yjk0NmI2NDdjZGI3MjRhNWUy
NjYwOWU3NzM5MWQ4ZDMyN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9X
ZWJLaXRHTGliL1dlYlZpZXdUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIv
V2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5jcHAKQEAgLTYwLDYgKzYwLDEyIEBAIHZvaWQgV2ViVmll
d1Rlc3Q6OmluaXRpYWxpemVXZWJWaWV3KCkKICAgICAgICAgInVzZXItY29udGVudC1tYW5hZ2Vy
IiwgbV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksCiAgICAgICAgICJpcy1lcGhlbWVyYWwiLCBz
aG91bGRDcmVhdGVFcGhlbWVyYWxXZWJWaWV3LAogICAgICAgICBudWxscHRyKSk7CisKKyNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIGF1dG8qIHNldHRpbmdzID0gd2Via2l0X3dlYl92
aWV3X2dldF9zZXR0aW5ncyhtX3dlYlZpZXcpOworICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5h
YmxlX2VuY3J5cHRlZF9tZWRpYShzZXR0aW5ncywgVFJVRSk7CisjZW5kaWYKKwogICAgIHBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlZpZXcoKTsKICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVz
dEZpbmlzaGVzKEdfT0JKRUNUKG1fd2ViVmlldykpOwogCg==
</data>
<flag name="review"
          id="437832"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
    <flag name="commit-queue"
          id="437834"
          type_id="3"
          status="-"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>