<?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>235107</bug_id>
          
          <creation_ts>2022-01-12 03:47:19 -0800</creation_ts>
          <short_desc>Improve computation of service worker FetchEvent.resultingClientId</short_desc>
          <delta_ts>2022-02-03 22:09:16 -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>Service Workers</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=236123</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>235070</dependson>
          <blocked>235310</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pangle</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1830069</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-12 03:47:19 -0800</bug_when>
    <thetext>Improve computation of service worker FetchEvent.resultingClientId</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830071</commentid>
    <comment_count>1</comment_count>
      <attachid>448925</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-12 03:50:31 -0800</bug_when>
    <thetext>Created attachment 448925
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831624</commentid>
    <comment_count>2</comment_count>
      <attachid>449365</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-18 00:03:53 -0800</bug_when>
    <thetext>Created attachment 449365
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831630</commentid>
    <comment_count>3</comment_count>
      <attachid>449365</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-18 00:35:50 -0800</bug_when>
    <thetext>Comment on attachment 449365
Patch

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

&gt; LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https-expected.txt:-5
&gt; -PASS get(resultingClientId) for document sandboxed by CSP header

Regression fixed in https://bugs.webkit.org/show_bug.cgi?id=235310</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831674</commentid>
    <comment_count>4</comment_count>
      <attachid>449390</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-18 07:55:26 -0800</bug_when>
    <thetext>Created attachment 449390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831823</commentid>
    <comment_count>5</comment_count>
      <attachid>449390</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-18 14:17:39 -0800</bug_when>
    <thetext>Comment on attachment 449390
Patch

The code should use ScriptExecutionContextIdentifier, not const std::optional&lt;ScriptExecutionIdentifier&gt;&amp;. These identifiers are not particularly huge structures and don’t need to be passed by reference. And also, there is already a null value for identifiers, so we don’t need to wrap them in std::optional just to have a null meaning nothing is specified. We can create the null value with the default constructor, and detect whether it’s null using the operator bool.

I’m not sure how we decided in which cases to have a default value and in which cases callers have to explicitly pass { }. Since specifying a pre-determined identifier is fairly unusual, we should consider adding a default everywhere, and these calls to HTMLDocument::create would not have to change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831960</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-19 00:57:35 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #5)
&gt; Comment on attachment 449390 [details]
&gt; Patch
&gt; 
&gt; The code should use ScriptExecutionContextIdentifier, not const
&gt; std::optional&lt;ScriptExecutionIdentifier&gt;&amp;. These identifiers are not
&gt; particularly huge structures and don’t need to be passed by reference. And
&gt; also, there is already a null value for identifiers, so we don’t need to
&gt; wrap them in std::optional just to have a null meaning nothing is specified.
&gt; We can create the null value with the default constructor, and detect
&gt; whether it’s null using the operator bool.

OK, will change.

&gt; I’m not sure how we decided in which cases to have a default value and in
&gt; which cases callers have to explicitly pass { }. Since specifying a
&gt; pre-determined identifier is fairly unusual, we should consider adding a
&gt; default everywhere, and these calls to HTMLDocument::create would not have
&gt; to change.

I had the HTMLDocument constructor parameter optional initially.
I discovered I had to pass it to TextDocument as well. At that point, I moved it to a mandatory parameter so that  I was sure to make am explicit decision for this parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831977</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-19 03:48:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/87763610&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831988</commentid>
    <comment_count>8</comment_count>
      <attachid>449475</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-19 04:58:34 -0800</bug_when>
    <thetext>Created attachment 449475
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832043</commentid>
    <comment_count>9</comment_count>
      <attachid>449475</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-19 08:48:52 -0800</bug_when>
    <thetext>Comment on attachment 449475
Patch for landing

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

&gt; LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https-expected.txt:5
&gt; +FAIL get(resultingClientId) for document sandboxed by CSP header assert_equals: promiseValue expected &quot;undefinedValue&quot; but got &quot;client&quot;

Do you know why this is now failing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832046</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-19 08:53:18 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; Comment on attachment 449475 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=449475&amp;action=review
&gt; 
&gt; &gt; LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https-expected.txt:5
&gt; &gt; +FAIL get(resultingClientId) for document sandboxed by CSP header assert_equals: promiseValue expected &quot;undefinedValue&quot; but got &quot;client&quot;
&gt; 
&gt; Do you know why this is now failing?

Yes, we are starting to always reuse IDs while we were never doing it previously.
The test will pass after https://bugs.webkit.org/show_bug.cgi?id=235310.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832054</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-19 09:13:47 -0800</bug_when>
    <thetext>Committed r288201 (246173@main): &lt;https://commits.webkit.org/246173@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449475.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448925</attachid>
            <date>2022-01-12 03:50:31 -0800</date>
            <delta_ts>2022-01-18 00:03:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235107-20220112125029.patch</filename>
            <type>text/plain</type>
            <size>36674</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDcxZTlkOTNmMWRkMjFh
NjhiYjQ2YjBjNTk2N2EzNTUwMjM0Njg0Ni4uMzI4MDEyYzMzZTE5ZTQyYzA5MTY3MTA4Mzc3YWZj
MjRjOTkwMjM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIyLTAxLTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGNvbXB1dGF0
aW9uIG9mIHNlcnZpY2Ugd29ya2VyIEZldGNoRXZlbnQucmVzdWx0aW5nQ2xpZW50SWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTEwNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gcmVnaXN0ZXJp
bmcgYSBzZXJ2aWNlIHdvcmtlciBjbGllbnQsIGFkZCBhIHBhcmFtZXRlciB0byB0ZWxsIHdoZXRo
ZXIgaXQgcmVwbGFjZXMgYW4gZXhpc3RpbmcgY2xpZW50LgorICAgICAgICBVc2UgdGhpcyBuZXcg
YWJpbGl0eSBpbiBEb2N1bWVudExvYWRlciB0byB0cmFuc2ZlciB0aGUgdGVtcG9yYXJ5IGNsaWVu
dCB2aXNpYmxlIElEIHRvIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQuCisgICAgICAgIFVwZGF0ZSBE
b2N1bWVudExvYWRlciBpbXBsZW1lbnRhdGlvbiB0byBzZXQgdGhlIGFjdGl2ZSB3b3JrZXIgb25s
eSBpZiBpdHMgb3JpZ2luIGlzIG5vdCB1bmlxdWUsIHdoaWNoIGRvZXMgaGFwcGVuIGluIGNhc2Ug
b2Ygc2FuZGJveGluZy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
ZXRTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24pOgor
ICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRlcjo6Y29tbWl0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExv
YWRlcjo6dW5yZWdpc3RlclRlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1dDbGllbnRDb25uZWN0aW9uOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKToKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlv
bi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnJldHJpZXZlQ2xpZW50VmlzaWJsZUlkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNXU2VydmVyOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KToK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTV1NlcnZlcldvcmtlcjo6ZmluZENsaWVudEJ5SWRlbnRpZmllciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6ZmluZENsaWVudEJ5VmlzaWJsZUlkZW50aWZp
ZXIpOgorCiAyMDIyLTAxLTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBNYWtlIFNlcnZpY2VXb3JrZXJDbGllbnQuaWQgYSBVVUlEIGluc3RlYWQgb2YgYSBz
dHJpbmcgZGVyaXZlZCBmcm9tIGEgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggZmZmN2UzNzE3YjE1ODAwMjgwNjY3Yzc4OGU5ZGFlOTQwNTg5Njg0MC4uMTI4MDNl
YjRjNjkyZjFlNGM3OTdhM2QzNmQ2MDg5NjA5MjZhMWU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MSBAQAorMjAyMi0wMS0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wcm92ZSBjb21wdXRhdGlvbiBvZiBzZXJ2aWNlIHdvcmtlciBGZXRjaEV2ZW50LnJl
c3VsdGluZ0NsaWVudElkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzUxMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBQaXBlIGRvd24gdGhlIG5ldyByZXBsYWNlZENvbnRleHRJZGVudGlmaWVyIHBhcmFt
ZXRlci4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Ojpjb250cm9sQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNl
V29ya2VyQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmg6CisKIDIwMjItMDEtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIE1ha2UgU2VydmljZVdvcmtlckNsaWVudC5pZCBhIFVVSUQgaW5zdGVh
ZCBvZiBhIHN0cmluZyBkZXJpdmVkIGZyb20gYSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMmM3ZTJkMWEzODY0MzZlZWE5NTg0YjU3
MGZhNjY1YmE5NmZhMzM2Mi4uOTAzOWMxNDY4Yzk5MDZlOTljYWJlMDAzMTIzZjM4YTJjYThkYzI5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NzM0LDcgKzg3MzQsNyBAQCB2b2lkIERv
Y3VtZW50OjpkaWRMb2dNZXNzYWdlKGNvbnN0IFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIFdURkxv
Z0xldmVsIGxldmVsLCBWZQogfQogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotdm9pZCBE
b2N1bWVudDo6c2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24oU1dDbGllbnRDb25uZWN0aW9uKiBz
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbikKK3ZvaWQgRG9jdW1lbnQ6OnNldFNlcnZpY2VXb3JrZXJD
b25uZWN0aW9uKFNXQ2xpZW50Q29ubmVjdGlvbiogc2VydmljZVdvcmtlckNvbm5lY3Rpb24sIHN0
ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHJlcGxhY2VkQ29u
dGV4dElkZW50aWZpZXIpCiB7CiAgICAgaWYgKG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24gPT0g
c2VydmljZVdvcmtlckNvbm5lY3Rpb24gfHwgbV9oYXNQcmVwYXJlZEZvckRlc3RydWN0aW9uIHx8
IG1faXNTdXNwZW5kZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTg3NDgsNyArODc0OCw3IEBAIHZv
aWQgRG9jdW1lbnQ6OnNldFNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKFNXQ2xpZW50Q29ubmVjdGlv
biogc2VydmljZVdvcmtlckNvbm5lCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gY29udHJv
bGxpbmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciA9IGFjdGl2ZVNlcnZpY2VX
b3JrZXIoKSA/IHN0ZDo6bWFrZV9vcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllcj4oYWN0aXZlU2VydmljZVdvcmtlcigpLT5yZWdpc3RyYXRpb25JZGVudGlmaWVyKCkp
IDogc3RkOjpudWxsb3B0OwotICAgIG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24tPnJlZ2lzdGVy
U2VydmljZVdvcmtlckNsaWVudCh0b3BPcmlnaW4oKSwgU2VydmljZVdvcmtlckNsaWVudERhdGE6
OmZyb20oKnRoaXMpLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyLCB1c2VyQWdlbnQodXJsKCkpKTsKKyAgICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT5y
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQodG9wT3JpZ2luKCksIFNlcnZpY2VXb3JrZXJDbGll
bnREYXRhOjpmcm9tKCp0aGlzKSwgY29udHJvbGxpbmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciwgdXNlckFnZW50KHVybCgpKSwgcmVwbGFjZWRDb250ZXh0SWRlbnRpZmllcik7
CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAyYzhkZjMxNjgwNmQ2NTM2Zjll
MGNjNTJiNzRhODUxN2UwOTdiZTc2Li5iY2JjZGY5ZjViZGI1ZDA4YTAxYzFiMjMyZTc3NzgzMGE5
YmEyYzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTU2Miw3ICsxNTYyLDcgQEAgcHVibGlj
OgogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgdm9pZCBzZXRTZXJ2
aWNlV29ya2VyQ29ubmVjdGlvbihTV0NsaWVudENvbm5lY3Rpb24qKTsKKyAgICB2b2lkIHNldFNl
cnZpY2VXb3JrZXJDb25uZWN0aW9uKFNXQ2xpZW50Q29ubmVjdGlvbiosIHN0ZDo6b3B0aW9uYWw8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+ID0geyB9KTsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5k
ZXggMzJjODhiNWQzNmRiMDczODliN2ZjNjAzODRhZTJjNjcxYzgxODA5MS4uNTgyMzViNTFiNDY4
Zjg2MmU0N2VlN2NhNDU3NzkxYTY2NDVmYTZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwCkBAIC0xMjMwLDE5ICsxMjMwLDI2IEBAIHZvaWQgRG9jdW1lbnRMb2Fk
ZXI6OmNvbW1pdERhdGEoY29uc3QgU2hhcmVkQnVmZmVyJiBkYXRhKQogI2VuZGlmCiAjaWYgRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQogICAgICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5zZXJ2aWNlV29ya2VyRW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICBp
ZiAobV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSAmJiBtX3NlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25EYXRhLT5hY3RpdmVXb3JrZXIpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5z
ZXRBY3RpdmVTZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXI6OmdldE9yQ3JlYXRlKGRvY3VtZW50
LCBXVEZNb3ZlKG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEtPmFjdGl2ZVdvcmtlci52
YWx1ZSgpKSkpOwotICAgICAgICAgICAgICAgIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRh
dGEgPSB7IH07Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGF1dG8qIHBhcmVudCA9IGRvY3VtZW50
LnBhcmVudERvY3VtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoc2hvdWxkVXNlQWN0aXZl
U2VydmljZVdvcmtlckZyb21QYXJlbnQoZG9jdW1lbnQsICpwYXJlbnQpKQotICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5zZXRBY3RpdmVTZXJ2aWNlV29ya2VyKHBhcmVudC0+YWN0aXZlU2Vy
dmljZVdvcmtlcigpKTsKKyAgICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXI+IHJlcGxhY2VkQ29udGV4dElkZW50aWZpZXI7CisgICAgICAgICAg
ICAvLyBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY29udHJvbC1hbmQtdXNl
LXdpbmRvdy1jbGllbnQKKyAgICAgICAgICAgIGlmICghZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4o
KS5pc1VuaXF1ZSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fc2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGEgJiYgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS0+YWN0aXZlV29y
a2VyKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJD
bGllbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkQ29udGV4dElkZW50aWZp
ZXIgPSBtX3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQ7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZW1wb3JhcnlJZGVudGlmaWVyVG9Mb2FkZXJNYXAoKS5yZW1vdmUoKm1fdGVtcG9yYXJ5
U2VydmljZVdvcmtlckNsaWVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3RlbXBvcmFy
eVNlcnZpY2VXb3JrZXJDbGllbnQgPSB7IH07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuc2V0QWN0aXZlU2VydmljZVdvcmtlcihTZXJ2aWNlV29y
a2VyOjpnZXRPckNyZWF0ZShkb2N1bWVudCwgV1RGTW92ZShtX3NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EYXRhLT5hY3RpdmVXb3JrZXIudmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAg
bV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSA9IHsgfTsKKyAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKGF1dG8qIHBhcmVudCA9IGRvY3VtZW50LnBhcmVudERvY3VtZW50KCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKHNob3VsZFVzZUFjdGl2ZVNlcnZpY2VXb3JrZXJGcm9tUGFy
ZW50KGRvY3VtZW50LCAqcGFyZW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LnNldEFjdGl2ZVNlcnZpY2VXb3JrZXIocGFyZW50LT5hY3RpdmVTZXJ2aWNlV29ya2VyKCkpOwor
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKG1fZnJh
bWUtPmRvY3VtZW50KCktPmFjdGl2ZVNlcnZpY2VXb3JrZXIoKSB8fCBkb2N1bWVudC51cmwoKS5w
cm90b2NvbElzSW5IVFRQRmFtaWx5KCkgfHwgKGRvY3VtZW50LnBhZ2UoKSAmJiBkb2N1bWVudC5w
YWdlKCktPmlzU2VydmljZVdvcmtlclBhZ2UoKSkpCi0gICAgICAgICAgICAgICAgZG9jdW1lbnQu
c2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24oJlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xl
dG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKSk7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuc2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24oJlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2lu
Z2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKSwgcmVwbGFjZWRDb250ZXh0SWRlbnRp
Zmllcik7CiAKLSAgICAgICAgICAgIC8vIFdlIGN1cnJlbnRseSB1bnJlZ2lzdGVyIHRoZSB0ZW1w
b3Jhcnkgc2VydmljZSB3b3JrZXIgY2xpZW50IHNpbmNlIHdlIG5vdyByZWdpc3RlcmVkIHRoZSBy
ZWFsIGRvY3VtZW50LgotICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBtYWtlIHRoZSBy
ZWFsIGRvY3VtZW50IHVzZSB0aGUgdGVtcG9yYXJ5IGNsaWVudCBpZGVudGlmaWVyLgogICAgICAg
ICAgICAgdW5yZWdpc3RlclRlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQoKTsKICAgICAgICAg
fQogI2VuZGlmCkBAIC0yMDc0LDYgKzIwODEsOCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjp1bnJl
Z2lzdGVyVGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCgpCiAKICAgICBhdXRvJiBzZXJ2aWNl
V29ya2VyQ29ubmVjdGlvbiA9IFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2Vy
dmljZVdvcmtlckNvbm5lY3Rpb24oKTsKICAgICBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi51bnJl
Z2lzdGVyU2VydmljZVdvcmtlckNsaWVudCgqbV90ZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50
KTsKKyAgICB0ZW1wb3JhcnlJZGVudGlmaWVyVG9Mb2FkZXJNYXAoKS5yZW1vdmUoKm1fdGVtcG9y
YXJ5U2VydmljZVdvcmtlckNsaWVudCk7CisgICAgbV90ZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xp
ZW50ID0geyB9OwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggMjY5NDBiNTA0NWYxZjk2ZGE3
MzRmYjU3NDA5NThlNWZhMTI2Mjk3Zi4uMzVhN2Q2OGYwZjdlMWIzMmIzZjRiZDRmZTgyYTdlMTc2
ZDU2YmY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NX
Q2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTI2MSw3ICsyNjEsNyBAQCB2b2lkIFNXQ2xpZW50Q29u
bmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50cygpCiB7CiAgICAgZm9yIChhdXRv
KiBkb2N1bWVudCA6IERvY3VtZW50OjphbGxEb2N1bWVudHMoKSkgewogICAgICAgICBhdXRvIGNv
bnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgPSBkb2N1bWVudC0+
YWN0aXZlU2VydmljZVdvcmtlcigpID8gc3RkOjptYWtlX29wdGlvbmFsPFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyPihkb2N1bWVudC0+YWN0aXZlU2VydmljZVdvcmtlcigpLT5y
ZWdpc3RyYXRpb25JZGVudGlmaWVyKCkpIDogc3RkOjpudWxsb3B0OwotICAgICAgICByZWdpc3Rl
clNlcnZpY2VXb3JrZXJDbGllbnQoZG9jdW1lbnQtPnRvcE9yaWdpbigpLCBTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YTo6ZnJvbSgqZG9jdW1lbnQpLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBkb2N1bWVudC0+dXNlckFnZW50KGRvY3VtZW50LT51cmwoKSkp
OworICAgICAgICByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoZG9jdW1lbnQtPnRvcE9yaWdp
bigpLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZnJvbSgqZG9jdW1lbnQpLCBjb250cm9sbGlu
Z1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBkb2N1bWVudC0+dXNlckFnZW50
KGRvY3VtZW50LT51cmwoKSksIHsgfSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggMjVjNWE1Y2Q4
MzAzM2I2OWY2MTEyMjc0ZDZkMGI1OTNmZTcxN2YzZi4uYjIwYjc4YjRjM2I0NWMzYWQ3NjQ3YWNm
NDk0Y2IzYWRjNDNkY2UxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TV0NsaWVudENvbm5lY3Rpb24uaApAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBtYXlIYXZlU2VydmljZVdvcmtl
clJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJikgY29uc3QgPSAw
OwogCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBT
ZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYs
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+
JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0
ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNv
bnN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
c3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4pID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hGZXRj
aGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVu
dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNX
Q2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggZTBjYTg3MzYyYjE0YmY3YzJiNjQ4MTI3MWJmN2Y5
MTAwMzkwZDkyMy4uNmIxM2QxMDJlMTI5YTZhNjM1MDY2MTdjZGYwZWNkMzM5ZThkMWI2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29u
bmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNX
Q2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTE3OSwxMSArMTc5LDExIEBAIGJvb2wgV29ya2VyU1dD
bGllbnRDb25uZWN0aW9uOjptYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4o
Y29uc3QgU2VjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgV29ya2VyU1dDbGllbnRDb25u
ZWN0aW9uOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VjdXJpdHlPcmlnaW4m
IHRvcE9yaWdpbiwgY29uc3QgU2VydmljZVdvcmtlckNsaWVudERhdGEmIGRhdGEsIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiBpZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKK3ZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0
aW9uOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRv
cE9yaWdpbiwgY29uc3QgU2VydmljZVdvcmtlckNsaWVudERhdGEmIGRhdGEsIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcj4gcmVwbGFjZWRDb250ZXh0SWRlbnRpZmllcikKIHsKLSAgICBjYWxs
T25NYWluVGhyZWFkKFt0b3BPcmlnaW4gPSB0b3BPcmlnaW4uaXNvbGF0ZWRDb3B5KCksIGRhdGEg
PSBjcm9zc1RocmVhZENvcHkoZGF0YSksIGlkZW50aWZpZXIsIHVzZXJBZ2VudCA9IGNyb3NzVGhy
ZWFkQ29weSh1c2VyQWdlbnQpXSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbdG9wT3JpZ2luID0g
dG9wT3JpZ2luLmlzb2xhdGVkQ29weSgpLCBkYXRhID0gY3Jvc3NUaHJlYWRDb3B5KGRhdGEpLCBp
ZGVudGlmaWVyLCB1c2VyQWdlbnQgPSBjcm9zc1RocmVhZENvcHkodXNlckFnZW50KSwgcmVwbGFj
ZWRDb250ZXh0SWRlbnRpZmllcl0gewogICAgICAgICBhdXRvJiBjb25uZWN0aW9uID0gU2Vydmlj
ZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigpOwot
ICAgICAgICBjb25uZWN0aW9uLnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCh0b3BPcmlnaW4s
IGRhdGEsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCk7CisgICAgICAgIGNvbm5lY3Rpb24ucmVnaXN0
ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHRvcE9yaWdpbiwgZGF0YSwgaWRlbnRpZmllciwgdXNlckFn
ZW50LCByZXBsYWNlZENvbnRleHRJZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVj
dGlvbi5oCmluZGV4IGQwMGQxMTE1YzZmYmU2NzA4YzU1Mjg0ZTQ2YzI3MWVhMmY4YmIzNjUuLmFl
NjZjZmU3M2Q2ODRkM2U2NmU4Zjk3OWRkYTVkZjYwNDc1Y2E0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9u
LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBNZXNzYWdlV2l0
aE1lc3NhZ2VQb3J0cyYmLCBjb25zdCBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJiBz
b3VyY2UpIGZpbmFsOwogICAgIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1heUhhdmVTZXJ2aWNl
V29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKSBjb25z
dCBmaW5hbDsKLSAgICB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZWN1
cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYsIGNv
bnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+Jiwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpIGZpbmFsOworICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNl
V29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllcj4mLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjpvcHRp
b25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4pIGZpbmFsOwogICAgIHZvaWQg
dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25z
dCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKSBmaW5hbDsKICAgICB2b2lkIHNjaGVkdWxlSm9i
SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggMzQ3
YjY5MDVmMDA2NDEwOTA1OTJiNjM3YmU5MTgyYzM0NzgxNDQxZS4uMTc4ZGZlYTkyYWQ5NTQ0OWU2
MjBmZTUyNjk1YzdmNjhiZmRkMDU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3Rm
L1Njb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1VVSUQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIApAQCAtOTMzLDcgKzkzNCwyMSBAQCB2b2lkIFNXU2VydmVyOjp1cGRhdGVBcHBJ
bml0aWF0ZWRWYWx1ZUZvcldvcmtlcnMoY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaQog
ICAgIH0KIH0KIAotU3RyaW5nIFNXU2VydmVyOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQo
Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRh
dGEsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXI+JiBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTdHJp
bmcmJiB1c2VyQWdlbnQpCitTdHJpbmcgU1dTZXJ2ZXI6OnJldHJpZXZlQ2xpZW50VmlzaWJsZUlk
KHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHJlcGxhY2Vk
Q29udGV4dElkZW50aWZpZXIpCit7CisgICAgaWYgKCFyZXBsYWNlZENvbnRleHRJZGVudGlmaWVy
KQorICAgICAgICByZXR1cm4gY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpOworCisgICAgYXV0
byBjbGllbnRJdGVyYXRvciA9IG1fY2xpZW50c0J5SWQuZmluZCgqcmVwbGFjZWRDb250ZXh0SWRl
bnRpZmllcik7CisgICAgaWYgKGNsaWVudEl0ZXJhdG9yID09IG1fY2xpZW50c0J5SWQuZW5kKCkp
CisgICAgICAgIHJldHVybiBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCk7CisKKyAgICBhdXRv
IHZpc2libGVJZCA9IHN0ZDo6ZXhjaGFuZ2UoY2xpZW50SXRlcmF0b3ItPnZhbHVlLnZpc2libGVJ
ZCwgeyB9KTsKKyAgICBtX3Zpc2libGVDbGllbnRJZFRvSW50ZXJuYWxDbGllbnRJZE1hcC5yZW1v
dmUodmlzaWJsZUlkKTsKKyAgICByZXR1cm4gdmlzaWJsZUlkOworfQorCitTdHJpbmcgU1dTZXJ2
ZXI6OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChDbGllbnRPcmlnaW4mJiBjbGllbnRPcmln
aW4sIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSwgY29uc3Qgc3RkOjpvcHRpb25hbDxT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mIGNvbnRyb2xsaW5nU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFN0cmluZyYmIHVzZXJBZ2VudCwgc3RkOjpvcHRp
b25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gcmVwbGFjZWRDb250ZXh0SWRl
bnRpZmllcikKIHsKICAgICBhdXRvIGNsaWVudElkZW50aWZpZXIgPSBkYXRhLmlkZW50aWZpZXI7
CiAKQEAgLTk0Myw5ICs5NTgsMTEgQEAgU3RyaW5nIFNXU2VydmVyOjpyZWdpc3RlclNlcnZpY2VX
b3JrZXJDbGllbnQoQ2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBTZXJ2aWMKICAgICAgICAg
ICAgIHVwZGF0ZUFwcEluaXRpYXRlZFZhbHVlRm9yV29ya2VycyhjbGllbnRPcmlnaW4sIGRhdGEu
bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwogICAgIH0KIAotICAgIGF1dG8gdmlzaWJs
ZUlkID0gY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpOworICAgIFN0cmluZyB2aXNpYmxlSWQg
PSByZXRyaWV2ZUNsaWVudFZpc2libGVJZChyZXBsYWNlZENvbnRleHRJZGVudGlmaWVyKTsKKyAg
ICBBU1NFUlQoIW1fdmlzaWJsZUNsaWVudElkVG9JbnRlcm5hbENsaWVudElkTWFwLmNvbnRhaW5z
KHZpc2libGVJZCkpOworICAgIG1fdmlzaWJsZUNsaWVudElkVG9JbnRlcm5hbENsaWVudElkTWFw
LmFkZCh2aXNpYmxlSWQsIGNsaWVudElkZW50aWZpZXIpOworCiAgICAgZGF0YS52aXNpYmxlSWQg
PSB2aXNpYmxlSWQ7Ci0gICAgbV92aXNpYmxlQ2xpZW50SWRUb0ludGVybmFsQ2xpZW50SWRNYXAu
YWRkKGRhdGEudmlzaWJsZUlkLCBjbGllbnRJZGVudGlmaWVyKTsKIAogICAgIEFTU0VSVCghbV9j
bGllbnRzQnlJZC5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7CiAgICAgbV9jbGllbnRzQnlJ
ZC5hZGQoY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhKSk7CkBAIC05ODcsMTAgKzEwMDQs
OCBAQCB2b2lkIFNXU2VydmVyOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBD
bGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgUwogICAgIGF1dG8gYXBwSW5pdGlhdGVkVmFsdWVC
ZWZvcmUgPSBjbGllbnRJc0FwcEluaXRpYXRlZEZvclJlZ2lzdHJhYmxlRG9tYWluKGNsaWVudE9y
aWdpbi5jbGllbnRSZWdpc3RyYWJsZURvbWFpbigpKTsKIAogICAgIGF1dG8gY2xpZW50RGF0YSA9
IG1fY2xpZW50c0J5SWQudGFrZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAoIWNsaWVudERh
dGEudmlzaWJsZUlkLmlzTnVsbCgpKSB7Ci0gICAgICAgIEFTU0VSVChtX3Zpc2libGVDbGllbnRJ
ZFRvSW50ZXJuYWxDbGllbnRJZE1hcC5jb250YWlucyhjbGllbnREYXRhLnZpc2libGVJZCkpOwor
ICAgIGlmICghY2xpZW50RGF0YS52aXNpYmxlSWQuaXNOdWxsKCkpCiAgICAgICAgIG1fdmlzaWJs
ZUNsaWVudElkVG9JbnRlcm5hbENsaWVudElkTWFwLnJlbW92ZShjbGllbnREYXRhLnZpc2libGVJ
ZCk7Ci0gICAgfQogCiAgICAgYXV0byBjbGllbnRzQnlSZWdpc3RyYWJsZURvbWFpbkl0ZXJhdG9y
ID0gbV9jbGllbnRzQnlSZWdpc3RyYWJsZURvbWFpbi5maW5kKGNsaWVudFJlZ2lzdHJhYmxlRG9t
YWluKTsKICAgICBBU1NFUlQoY2xpZW50c0J5UmVnaXN0cmFibGVEb21haW5JdGVyYXRvciAhPSBt
X2NsaWVudHNCeVJlZ2lzdHJhYmxlRG9tYWluLmVuZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCBmZWJhOWRlYzE1MzljZjYw
MTVlOTA2MThmNmE2Nzc4YmQzMDlkMWE5Li4xOGY1ZDdkOWI0ZDFjZDg0ZDIzZTk2YWJiYzdmODcy
MDJhODkyMGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlci5oCkBAIC0xODIsNyArMTgyLDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIEhhc2hTZXQ8U1dTZXJ2ZXIqPiYgYWxsU2VydmVycygpOwogCi0gICAgV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChDbGllbnRPcmln
aW4mJiwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mLCBTdHJpbmcmJiB1c2VyQWdlbnQpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoQ2xp
ZW50T3JpZ2luJiYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYsIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiwgU3RyaW5nJiYgdXNlckFn
ZW50LCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPik7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25z
dCBDbGllbnRPcmlnaW4mLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CiAKICAg
ICB1c2luZyBSdW5TZXJ2aWNlV29ya2VyQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbiopPjsKQEAgLTI1NSw2ICsyNTUsNyBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCB1cGRhdGVBcHBJbml0aWF0ZWRWYWx1ZUZvcldvcmtlcnMoY29uc3QgQ2xpZW50T3Jp
Z2luJiwgTGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwogICAgIHZvaWQgd2hlbkltcG9y
dElzQ29tcGxldGVkSWZOZWVkZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICBT
dHJpbmcgcmV0cmlldmVDbGllbnRWaXNpYmxlSWQoc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllcj4pOwogCiAgICAgSGFzaE1hcDxTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVjdGlvbj4+IG1fY29ubmVjdGlvbnM7CiAg
ICAgSGFzaE1hcDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5LCBXZWFrUHRyPFNXU2VydmVy
UmVnaXN0cmF0aW9uPj4gbV9zY29wZVRvUmVnaXN0cmF0aW9uTWFwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcApp
bmRleCBjZGJmZTQ0YmVlYzBjOTA4YmFjMTIyNGQwZWE0YjZmMTJmZWRmMWJkLi42YTdhN2U5MjJi
ZWJmMTlkMGZkZDk0NzU3OTE2MmVhYTQxNjdlMjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcApAQCAtMjI1
LDYgKzIyNSw4IEBAIHZvaWQgU1dTZXJ2ZXJXb3JrZXI6OmNvbnRleHRUZXJtaW5hdGVkKCkKIAog
c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gU1dTZXJ2ZXJXb3JrZXI6OmZp
bmRDbGllbnRCeUlkZW50aWZpZXIoY29uc3QgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXImIGNsaWVudElkKSBjb25zdAogeworICAgIGZwcmludGYoc3RkZXJyLCAiU1dTZXJ2ZXJXb3Jr
ZXI6OmZpbmRDbGllbnRCeUlkZW50aWZpZXIgZm9yICVzXG4iLCAgY2xpZW50SWQudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKKwogICAgIEFTU0VSVChtX3NlcnZlcik7CiAgICAgaWYgKCFtX3Nl
cnZlcikKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTIzMyw2ICsyMzUsNyBAQCBzdGQ6Om9wdGlv
bmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBTV1NlcnZlcldvcmtlcjo6ZmluZENsaWVudEJ5
SWRlbnRpZmllcihjbwogCiB2b2lkIFNXU2VydmVyV29ya2VyOjpmaW5kQ2xpZW50QnlWaXNpYmxl
SWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGNsaWVudElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4m
Jik+JiYgY2FsbGJhY2spCiB7CisgICAgZnByaW50ZihzdGRlcnIsICJTV1NlcnZlcldvcmtlcjo6
ZmluZENsaWVudEJ5VmlzaWJsZUlkZW50aWZpZXIgZm9yICVzXG4iLCAgY2xpZW50SWRlbnRpZmll
ci51dGY4KCkuZGF0YSgpKTsKICAgICBpZiAoIW1fc2VydmVyKSB7CiAgICAgICAgIGNhbGxiYWNr
KHsgfSk7CiAgICAgICAgIHJldHVybjsKQEAgLTI0MCw2ICsyNDMsNyBAQCB2b2lkIFNXU2VydmVy
V29ya2VyOjpmaW5kQ2xpZW50QnlWaXNpYmxlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGNsaWVu
dElkZW50aWZpZQogCiAgICAgYXV0byBpbnRlcm5hbElkZW50aWZpZXIgPSBtX3NlcnZlci0+Y2xp
ZW50SWRGcm9tVmlzaWJsZUNsaWVudElkKGNsaWVudElkZW50aWZpZXIpOwogICAgIGlmICghaW50
ZXJuYWxJZGVudGlmaWVyKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiU1dTZXJ2ZXJXb3Jr
ZXI6OmZpbmRDbGllbnRCeVZpc2libGVJZGVudGlmaWVyIG5vIGludGVybmFsIGlkZW50aWZpZXIg
Zm9yICVzXG4iLCAgY2xpZW50SWRlbnRpZmllci51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgY2Fs
bGJhY2soeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggYTIzZDNhOWYzNzlhYTEwYTQwMTk4NjAwZDg1NjI2ZWZm
ZGQ5YWI5Mi4uY2RlNmMwYjE4ZTQ4YWMwZWIyMjMyZmQwYzU0NzAyZDc5Yjc4NzM5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBT
dHJpbmcgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250cm9sQ2xpZW50KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaQogICAgIH0pOwogCiAgICAgU2VydmljZVdvcmtlckNsaWVu
dERhdGEgZGF0YSB7IGNsaWVudElkZW50aWZpZXIsIHsgfSwgU2VydmljZVdvcmtlckNsaWVudFR5
cGU6OldpbmRvdywgU2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlwZTo6Tm9uZSwgcmVxdWVzdC51
cmwoKSwgcmVxdWVzdC5pc0FwcEluaXRpYXRlZCgpID8gV2ViQ29yZTo6TGFzdE5hdmlnYXRpb25X
YXNBcHBJbml0aWF0ZWQ6OlllcyA6IFdlYkNvcmU6Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlh
dGVkOjpObyB9OwotICAgIHJldHVybiByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoU2VjdXJp
dHlPcmlnaW5EYXRhIHsgcmVnaXN0cmF0aW9uLmtleSgpLnRvcE9yaWdpbigpIH0sIFdURk1vdmUo
ZGF0YSksIHJlZ2lzdHJhdGlvbi5pZGVudGlmaWVyKCksIHJlcXVlc3QuaHR0cFVzZXJBZ2VudCgp
KTsKKyAgICByZXR1cm4gcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFNlY3VyaXR5T3JpZ2lu
RGF0YSB7IHJlZ2lzdHJhdGlvbi5rZXkoKS50b3BPcmlnaW4oKSB9LCBXVEZNb3ZlKGRhdGEpLCBy
ZWdpc3RyYXRpb24uaWRlbnRpZmllcigpLCByZXF1ZXN0Lmh0dHBVc2VyQWdlbnQoKSwgeyB9KTsK
IH0KIAogc3RkOjp1bmlxdWVfcHRyPFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s+IFdlYlNXU2VydmVy
Q29ubmVjdGlvbjo6Y3JlYXRlRmV0Y2hUYXNrKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYgbG9hZGVy
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCkBAIC0zNjUsNyArMzY1LDcgQEAgdm9p
ZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFJlZ2lzdHJhdGlvbnMoY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiB0b3BPcmlnaW4KICAgICBjYWxsYmFjayhzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRp
b25zKHRvcE9yaWdpbiwgY2xpZW50VVJMKSk7CiB9CiAKLVN0cmluZyBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChTZWN1cml0eU9yaWdpbkRhdGEmJiB0
b3BPcmlnaW4sIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSwgY29uc3Qgc3RkOjpvcHRp
b25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mIGNvbnRyb2xsaW5nU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFN0cmluZyYmIHVzZXJBZ2VudCkKK1N0
cmluZyBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChT
ZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYg
ZGF0YSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
Zmllcj4mIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFN0
cmluZyYmIHVzZXJBZ2VudCwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcj4gcmVwbGFjZWRDb250ZXh0SWRlbnRpZmllcikKIHsKICAgICBhdXRvIGNvbnRleHRP
cmlnaW4gPSBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21VUkwoZGF0YS51cmwpOwogICAgIGJvb2wg
aXNOZXdPcmlnaW4gPSBXVEY6OmFsbE9mKG1fY2xpZW50T3JpZ2lucy52YWx1ZXMoKSwgWyZjb250
ZXh0T3JpZ2luXShhdXRvJiBvcmlnaW4pIHsKQEAgLTM3NSw3ICszNzUsNyBAQCBTdHJpbmcgV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoU2VjdXJpdHlP
cmlnaW5EYXRhJiYgdAogCiAgICAgYXV0byBjbGllbnRPcmlnaW4gPSBDbGllbnRPcmlnaW4geyBX
VEZNb3ZlKHRvcE9yaWdpbiksIFdURk1vdmUoY29udGV4dE9yaWdpbikgfTsKICAgICBtX2NsaWVu
dE9yaWdpbnMuYWRkKGRhdGEuaWRlbnRpZmllciwgY2xpZW50T3JpZ2luKTsKLSAgICBhdXRvIHZp
c2libGVJZGVudGlmaWVyID0gc2VydmVyKCkucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFdU
Rk1vdmUoY2xpZW50T3JpZ2luKSwgV1RGTW92ZShkYXRhKSwgY29udHJvbGxpbmdTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV1RGTW92ZSh1c2VyQWdlbnQpKTsKKyAgICBhdXRv
IHZpc2libGVJZGVudGlmaWVyID0gc2VydmVyKCkucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50
KFdURk1vdmUoY2xpZW50T3JpZ2luKSwgV1RGTW92ZShkYXRhKSwgY29udHJvbGxpbmdTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV1RGTW92ZSh1c2VyQWdlbnQpLCByZXBsYWNl
ZENvbnRleHRJZGVudGlmaWVyKTsKIAogICAgIGlmICghbV9pc1Rocm90dGxlYWJsZSkKICAgICAg
ICAgdXBkYXRlVGhyb3R0bGVTdGF0ZSgpOwpAQCAtMzg0LDYgKzM4NCw5IEBAIFN0cmluZyBXZWJT
V1NlcnZlckNvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChTZWN1cml0eU9y
aWdpbkRhdGEmJiB0CiAgICAgICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBzdGF0aWNfY2FzdDxXZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mPigqY29udGV4dENvbm5lY3Rpb24pOwogICAgICAg
ICBtX25ldHdvcmtQcm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpSZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRQcm9j
ZXNzIHsgaWRlbnRpZmllcigpLCBjb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCkgfSwg
MCk7CiAgICAgfQorICAgIGlmIChyZXBsYWNlZENvbnRleHRJZGVudGlmaWVyKQorICAgICAgICB1
bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCgqcmVwbGFjZWRDb250ZXh0SWRlbnRpZmllcik7
CisKICAgICByZXR1cm4gdmlzaWJsZUlkZW50aWZpZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uaAppbmRleCAxYTczNTBiMTQwMzQ0YjRjMDUzOGMyMTBjZTM5ODBmZDM2
ODBhMmRjLi4zZWJiZjJiODQwMDFlMDE2ZGJhYmMwNGUzMjY2NDQ0NDFkZDI2NDNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC0xMDYsNyArMTA2LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIG1hdGNoUmVnaXN0cmF0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
YXRhPiYmKT4mJik7CiAgICAgdm9pZCBnZXRSZWdpc3RyYXRpb25zKGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGE+Jik+JiYpOwogCi0gICAgU3RyaW5nIHJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnREYXRhJiYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiwgU3RyaW5nJiYgdXNlckFnZW50KTsK
KyAgICBTdHJpbmcgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEm
JiwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllcj4mLCBTdHJpbmcmJiB1c2VyQWdlbnQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHJlcGxhY2VkQ29udGV4dElkZW50aWZp
ZXIpOwogICAgIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXImKTsKICAgICB2b2lkIHRlcm1pbmF0
ZVdvcmtlckZyb21DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCB3aGVuU2VydmljZVdvcmtlcklzVGVy
bWluYXRlZEZvclRlc3RpbmcoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBhZTJiMjdmNGVkNjU3ODhjNTg4ZTYxYjU5NzU4
Y2U4Mjg3ZTJjY2NmLi5hZDc1YjQ0MmI4ZjQ3YTgyZjI1OThkYWVjZDEyNjVkNWU1YTFjOTNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
QEAgLTM4LDcgKzM4LDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIE5vdFJl
ZkNvdW50ZWQgewogICAgIE1hdGNoUmVnaXN0cmF0aW9uKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBVUkwgY2xpZW50VVJMKSAtPiAoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4gcmVnaXN0cmF0aW9uKSBBc3lu
YwogICAgIFdoZW5SZWdpc3RyYXRpb25SZWFkeShzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIHRvcE9yaWdpbiwgVVJMIGNsaWVudFVSTCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+IHJlZ2lzdHJhdGlvbikgQXN5bmMKICAg
ICBHZXRSZWdpc3RyYXRpb25zKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9w
T3JpZ2luLCBVUkwgY2xpZW50VVJMKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EYXRhPiByZWdpc3RyYXRpb25zKSBBc3luYwotICAgIFJlZ2lzdGVyU2Vydmlj
ZVdvcmtlckNsaWVudChzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdp
biwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGRhdGEsIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+IGNvbnRy
b2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFN0cmluZyB1c2VyQWdl
bnQpCisgICAgUmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHN0cnVjdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNs
aWVudERhdGEgZGF0YSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllcj4gY29udHJvbGxpbmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllciwgU3RyaW5nIHVzZXJBZ2VudCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gcmVwbGFjZWRDb250ZXh0SWRlbnRpZmllcikKICAg
ICBVbnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyKQogCiAgICAgVGVybWluYXRlV29ya2VyRnJvbUNs
aWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciB3b3JrZXJJZGVudGlmaWVyKSAt
PiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggMTgyNjA1YjhlMGUzMmVmMDVhMzkx
ZmNjMDkzYjA0NDVmN2QwNjZhMS4uM2QzOTE0ZjMyMjBlZjMzYzU3M2I4Y2YzNzExMDg0NzczZGFk
YjE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC0xMTAsOSArMTEwLDkgQEAgdm9pZCBXZWJT
V0NsaWVudENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIGQKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246
OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyIHsgZGVzdGluYXRpb25JZGVudGlmaWVyLCBXVEZN
b3ZlKG1lc3NhZ2UpLCBzb3VyY2VJZGVudGlmaWVyIH0pOwogfQogCi12b2lkIFdlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiBk
YXRhLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyPiYgY29udHJvbGxpbmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BP
cmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiBkYXRhLCBjb25z
dCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyPiYgY29udHJvbGxpbmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXI+IHJlcGxhY2VkQ29udGV4dElkZW50aWZpZXIpCiB7Ci0gICAgc2VuZChNZXNz
YWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpSZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQg
eyB0b3BPcmlnaW4uZGF0YSgpLCBkYXRhLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyLCB1c2VyQWdlbnQgfSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpSZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQgeyB0b3BPcmlnaW4u
ZGF0YSgpLCBkYXRhLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyLCB1c2VyQWdlbnQsIHJlcGxhY2VkQ29udGV4dElkZW50aWZpZXIgfSk7CiB9CiAKIHZvaWQg
V2ViU1dDbGllbnRDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0
aW9uLmgKaW5kZXggZTJhMWQzNmZjOGJiOWFhMTY0NmFhNWY3ZDI0NTQwMmFjMGMyNjhhMy4uNzg5
ZjBhNjkwODliNDk2NGZiNjNmNDA0YmM2YTBjYjM4OTY5ZjA3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgK
QEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlSm9iSW5TZXJ2ZXIo
Y29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKSBmaW5hbDsKICAgICB2b2lkIGZp
bmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckZl
dGNoUmVzdWx0JikgZmluYWw7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJPckNsaWVudElkZW50aWZpZXImIHNvdXJjZSkgZmluYWw7Ci0gICAgdm9pZCByZWdpc3Rl
clNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcE9y
aWdpbiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmLCBjb25zdCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50KSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyU2Vydmlj
ZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBj
b25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYsIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXI+KSBmaW5hbDsKICAgICB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5h
bDsKICAgICB2b2lkIHNjaGVkdWxlVW5yZWdpc3RlckpvYkluU2VydmVyKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JD
bGllbnRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlv
bk9yPGJvb2w+JiYpPiYmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5k
ZXggNGNmZjVkN2MyNmVjMzc3Y2NjYjgxY2I0ZDQwNmNiM2Q2ZTJhN2YxZC4uMGIxZjFmMGEyYzkx
YzM0ODY3MjE2M2MzMzc1MGQ1ZmI1NDZiNGYzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDEtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmUgY29tcHV0YXRpb24gb2Ygc2VydmljZSB3b3Jr
ZXIgRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MTA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0NsaWVudElkLmh0dHBzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVu
dHMtbWF0Y2hhbGwtY2xpZW50LXR5cGVzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dpbmRvd2Ns
aWVudC1uYXZpZ2F0ZS5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjItMDEtMTIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgU2VydmljZVdvcmtlckNs
aWVudC5pZCBhIFVVSUQgaW5zdGVhZCBvZiBhIHN0cmluZyBkZXJpdmVkIGZyb20gYSBTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
Y2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvY2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQuaHR0cHMtZXhwZWN0ZWQu
dHh0CmluZGV4IGQyZGZiODM0Yjk0ZWEwMjZmODlhNzBlMGNlODJiMmVlYmIxZDc2MzEuLmEyNjZj
YWVmODQ5NzU2ZDE5NWRkMzg3NzIyZTQ4ODVhNDMzMzM4NDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0NsaWVudElkLmh0dHBzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACiAKIFBBU1MgZ2xvYmFsIHNldHVwCi1G
QUlMIGdldChyZXN1bHRpbmdDbGllbnRJZCkgZm9yIHNhbWUtb3JpZ2luIGRvY3VtZW50IGFzc2Vy
dF9lcXVhbHM6IHByb21pc2VWYWx1ZSBleHBlY3RlZCAiY2xpZW50IiBidXQgZ290ICJ1bmRlZmlu
ZWRWYWx1ZSIKK1BBU1MgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBmb3Igc2FtZS1vcmlnaW4gZG9j
dW1lbnQKIFBBU1MgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBvbiBjcm9zcy1vcmlnaW4gcmVkaXJl
Y3QKIFBBU1MgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBmb3IgZG9jdW1lbnQgc2FuZGJveGVkIGJ5
IENTUCBoZWFkZXIKLUZBSUwgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBmb3IgZG9jdW1lbnQgc2Fu
ZGJveGVkIGJ5IENTUCBoZWFkZXIgd2l0aCBhbGxvdy1zYW1lLW9yaWdpbiBhc3NlcnRfZXF1YWxz
OiBwcm9taXNlVmFsdWUgZXhwZWN0ZWQgImNsaWVudCIgYnV0IGdvdCAidW5kZWZpbmVkVmFsdWUi
CitQQVNTIGdldChyZXN1bHRpbmdDbGllbnRJZCkgZm9yIGRvY3VtZW50IHNhbmRib3hlZCBieSBD
U1AgaGVhZGVyIHdpdGggYWxsb3ctc2FtZS1vcmlnaW4KIFBBU1MgZ2xvYmFsIGNsZWFudXAKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGZkZjZiZDJhNjYyNDFhNDQyMjVhNDFjZDAyMDkzNzA5Njc3NWE4Y2YuLjgyOTE4YjQ1MTk0
MjA2ODUxODIyN2Q3NmE1NmRiNDY0OTY5ODc5MGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsaWVudHMtZ2V0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9jbGllbnRzLWdldC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiAKIEZBSUwg
VGVzdCBDbGllbnRzLmdldCgpIGFzc2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5
IDEgdG8gYmUgZmFsc2UgYnV0IGdvdCB0cnVlIChleHBlY3RlZCBhcnJheSBbInZpc2libGUiLCBm
YWxzZSwgImh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1mcmFtZS5odG1sIzIiLCAid2luZG93IiwgIm5lc3Rl
ZCJdIGdvdCBbInZpc2libGUiLCB0cnVlLCAiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LWZyYW1lLmh0bWwj
MiIsICJ3aW5kb3ciLCAibmVzdGVkIl0pCi1GQUlMIFRlc3Qgc3VjY2Vzc2Z1bCBDbGllbnRzLmdl
dChGZXRjaEV2ZW50LnJlc3VsdGluZ0NsaWVudElkKSBhc3NlcnRfZmFsc2U6IENsaWVudHMuZ2V0
KEZldGNoRXZlbnQucmVzdWx0aW5nQ2xpZW50SWQpIHJlc29sdmVkIHdpdGggYSBDbGllbnQgZXhw
ZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgVGVzdCBzdWNjZXNzZnVsIENsaWVudHMuZ2V0KEZl
dGNoRXZlbnQucmVzdWx0aW5nQ2xpZW50SWQpCiBQQVNTIFRlc3QgdW5zdWNjZXNzZnVsIENsaWVu
dHMuZ2V0KEZldGNoRXZlbnQucmVzdWx0aW5nQ2xpZW50SWQpCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtY2xpZW50LXR5cGVzLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtY2xpZW50LXR5cGVzLmh0
dHBzLWV4cGVjdGVkLnR4dAppbmRleCBjZDIzZDZiNWFiNDUwOGU1Yjc0MDc0MDAwMjdlNjIwNTJj
YTAwZWE0Li42YjBmMTE0NjdmNGY0OGI1YWU5MjdjOWY3ZWI1ZmZmZWFhYzcxMGFlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWNsaWVudC10eXBlcy5odHRw
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1j
bGllbnQtdHlwZXMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCiBQQVNTIFZl
cmlmeSBtYXRjaEFsbCgpIHdpdGggd2luZG93IGNsaWVudCB0eXBlCi1GQUlMIFZlcmlmeSBtYXRj
aEFsbCgpIHdpdGgge3dpbmRvdywgc2hhcmVkd29ya2VyLCB3b3JrZXJ9IGNsaWVudCB0eXBlcyBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndy5wb3J0Lm9ubWVzc2Fn
ZSA9IF8gPT4gcmVzb2x2ZSh3KScpIgorRkFJTCBWZXJpZnkgbWF0Y2hBbGwoKSB3aXRoIHt3aW5k
b3csIHNoYXJlZHdvcmtlciwgd29ya2VyfSBjbGllbnQgdHlwZXMgYXNzZXJ0X2VxdWFsczogcmVz
dWx0IGNvdW50IGV4cGVjdGVkIDEgYnV0IGdvdCAwCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3dpbmRvd2NsaWVudC1uYXZpZ2F0ZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci93aW5kb3djbGllbnQtbmF2aWdhdGUuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4
IGVkMGRhYzQwMDdmM2MwZmJiZmQ4YmI1ZWMxM2I3MGMxYjUzYjdkNTIuLjE5MjU0NmVkODcwMDJj
MzEyNjYxZmM0OTQ2YWEwNTA2MDdlMzNhOTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3dpbmRvd2NsaWVudC1uYXZpZ2F0ZS5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvd2luZG93Y2xpZW50LW5hdmlnYXRlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtOSw2
ICs5LDcgQEAgUEFTUyBpbnZhbGlkIHVybCAoaHR0cDovL1tleGFtcGxlLmNvbV0pCiBQQVNTIGlu
dmFsaWQgdXJsICh2aWV3LXNvdXJjZTovL2V4YW1wbGUuY29tKQogUEFTUyBpbnZhbGlkIHVybCAo
ZmlsZTovLy8pCiBQQVNTIGludmFsaWQgdXJsIChhYm91dDpibGFuaykKK1BBU1MgbmF2aWdhdGUg
b24gYSB0b3AtbGV2ZWwgd2luZG93IGNsaWVudAogRkFJTCBub3JtYWwgd29ya2VyIHNpZGUgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiTm90U3Vw
cG9ydGVkRXJyb3I6IHdpbmRvd0NsaWVudC5uYXZpZ2F0ZSgpIGlzIG5vdCB5ZXQgc3VwcG9ydGVk
IgogRkFJTCBibGFuayB1cmwgd29ya2VyIHNpZGUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IHdpbmRvd0NsaWVu
dC5uYXZpZ2F0ZSgpIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIgogRkFJTCBpbiBzY29wZSBidXQgbm90
IGNvbnRyb2xsZWQgdGVzdCBvbiBpbnN0YWxsaW5nIHdvcmtlciB3b3JrZXIgc2lkZSBwcm9taXNl
X3JlamVjdHNfanM6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2Jq
ZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogd2luZG93Q2xpZW50Lm5hdmlnYXRlKCkgaXMgbm90IHll
dCBzdXBwb3J0ZWQiICgiTm90U3VwcG9ydGVkRXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBm
dW5jdGlvbiAiZnVuY3Rpb24gVHlwZUVycm9yKCkgewpAQCAtMzMsNCArMzQsNSBAQCBGQUlMIGlu
dmFsaWQgdXJsIChmaWxlOi8vLykgd29ya2VyIHNpZGUgcHJvbWlzZV9yZWplY3RzX2pzOiBmdW5j
dGlvbiAiZnVuY3Rpb24gKAogRkFJTCBpbnZhbGlkIHVybCAoYWJvdXQ6YmxhbmspIHdvcmtlciBz
aWRlIHByb21pc2VfcmVqZWN0c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9
IiB0aHJldyBvYmplY3QgIk5vdFN1cHBvcnRlZEVycm9yOiB3aW5kb3dDbGllbnQubmF2aWdhdGUo
KSBpcyBub3QgeWV0IHN1cHBvcnRlZCIgKCJOb3RTdXBwb3J0ZWRFcnJvciIpIGV4cGVjdGVkIGlu
c3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBUeXBlRXJyb3IoKSB7CiAgICAgW25hdGl2ZSBj
b2RlXQogfSIgKCJUeXBlRXJyb3IiKQorRkFJTCBuYXZpZ2F0ZSBvbiBhIHRvcC1sZXZlbCB3aW5k
b3cgY2xpZW50IHdvcmtlciBzaWRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0b3AtbGV2ZWwi
IGJ1dCBnb3QgImF1eGlsaWFyeSIKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449365</attachid>
            <date>2022-01-18 00:03:53 -0800</date>
            <delta_ts>2022-01-18 07:55:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235107-20220118090351.patch</filename>
            <type>text/plain</type>
            <size>45363</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWIzOGVkYjNjNGZjMjA1
Y2ZmMTZlNDY5NWU2ODI0OTQ0YWRmYzk4Zi4uZTVhYmVhNTc2OGVjZmQ3NjNjNmRmOGY3NWQxNzdk
OGNjZDVmMWVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIyLTAxLTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGNvbXB1dGF0
aW9uIG9mIHNlcnZpY2Ugd29ya2VyIEZldGNoRXZlbnQucmVzdWx0aW5nQ2xpZW50SWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTEwNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGFyZSBub3cgcGFz
c2luZyB0aGUgcmVzZXJ2ZWQgY2xpZW50IElEIGdlbmVyYXRlZCBieSBEb2N1bWVudExvYWRlciB0
byB0aGUgZ2VuZXJhdGVkIGRvY3VtZW50LgorICAgICAgICBQcmV2aW91c2x5LCB3ZSB3b3VsZCBy
ZWdpc3RlciBhIHRlbXBvcmFyeSBJRCB0aGF0IHdlIHdvdWxkIGRyb3AgbGF0ZXIgb24gd2hlbiBj
cmVhdGluZyBhIG5ldyBkb2N1bWVudC4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8gYmUgY2xvc2Vy
IHRvIHNwZWMsIHRob3VnaCB3ZSBuZWVkIHRvIGhhbmRsZSB0aGUgY2FzZSBvZiBhIGRvY3VtZW50
IHdob3NlIG9yaWdpbiBnZXRzIHVuaXF1ZQorICAgICAgICBkdWUgdG8gQ1NQIG9yIHNhbmRib3hp
bmcgbWFraW5nIGEgZG9jdW1lbnQgb3JpZ2luIHVuaXF1ZS4KKyAgICAgICAgV2UgYXJlIGFsc28g
cmVtb3ZpbmcgdGFyZ2V0Q2xpZW50SWQsIHdoaWNoIHdhcyByZW5hbWVkIGluIHRoZSBzcGVjIHRv
IHJlcGxhY2VzQ2xpZW50SWQgYnV0IGlzIGFsc28gbm90IGltcGxlbWVudGVkIGluIGFueSBicm93
c2VyIHlldC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50
YXRpb24uaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAg
ICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAgICAqIGh0bWwvRlRQRGly
ZWN0b3J5RG9jdW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmNwcDoKKyAg
ICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5oOgorICAgICAgICAqIGh0bWwvSW1hZ2VEb2N1bWVu
dC5jcHA6CisgICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50LmNwcDoKKyAgICAgICAgKiBodG1s
L01vZGVsRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvUGx1Z2luRG9jdW1lbnQuY3BwOgor
ICAgICAgICAqIGh0bWwvVGV4dERvY3VtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL1RleHREb2N1
bWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwOgorICAgICAg
ICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcDoKKyAgICAgICAg
KiBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvU2lua0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5jcHA6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2UvRmV0Y2hFdmVudC5pZGw6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlci5jcHA6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKwogMjAyMi0wMS0x
NyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZXNldCBzaG91bGQgaG9wIHRvIHRoZSBtYWluIHRo
cmVhZCBiZWZvcmUgY2FsbGluZyBpdHMgb2JzZXJ2ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkyZDY3MDRiOGUw
M2JiNTIwNGM1MmIyOWRlMmI3YzcxZGU5MGMwMTkuLjhmM2E2Nzk4MDI1N2IxMTg3YmFiMGYyNDkz
OGI0NTM3NzYyNTY2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDEtMTcgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmUgY29tcHV0
YXRpb24gb2Ygc2VydmljZSB3b3JrZXIgRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MTA3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorCiAyMDIyLTAxLTE3ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBCYXNlQXVkaW9TaGFyZWRVbml0Ojpk
ZXZpY2VzQ2hhbmdlZCBpcyBmYWlsaW5nIGNhcHR1cmUgdG9vIG11Y2ggaW4gR1BVUHJvY2Vzcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggYTI4NTc1MmNjNjhm
NjhjOGMzZDdiYzY2NDY1N2JhY2IwNTUyZWZmNC4uNGZiYTNkNTc5YjU0ODMzNmIwZWFlZjc2M2Vl
ODU0YjY2ZTExYzA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3Bw
CkBAIC0xMjQsNyArMTI0LDcgQEAgUmVmPENTU1N0eWxlU2hlZXQ+IERPTUltcGxlbWVudGF0aW9u
OjpjcmVhdGVDU1NTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFMKIAogUmVmPEhUTUxE
b2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZUhUTUxEb2N1bWVudChjb25zdCBTdHJp
bmcmIHRpdGxlKQogewotICAgIGF1dG8gZG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShu
dWxscHRyLCBtX2RvY3VtZW50LnNldHRpbmdzKCksIFVSTCgpKTsKKyAgICBhdXRvIGRvY3VtZW50
ID0gSFRNTERvY3VtZW50OjpjcmVhdGUobnVsbHB0ciwgbV9kb2N1bWVudC5zZXR0aW5ncygpLCBV
UkwoKSwgeyB9KTsKICAgICBkb2N1bWVudC0+b3BlbigpOwogICAgIGRvY3VtZW50LT53cml0ZShu
dWxscHRyLCB7ICI8IWRvY3R5cGUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PC9ib2R5
PjwvaHRtbD4iX3MgfSk7CiAgICAgaWYgKCF0aXRsZS5pc051bGwoKSkgewpAQCAtMTM4LDcgKzEz
OCw3IEBAIFJlZjxIVE1MRG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVIVE1MRG9j
dW1lbnQoY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICByZXR1cm4gZG9jdW1lbnQ7CiB9CiAKLVJl
ZjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmlu
ZyYgY29udGVudFR5cGUsIEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBj
b25zdCBVUkwmIHVybCkKK1JlZjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURv
Y3VtZW50KGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0
dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVybCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mIGRvY3VtZW50SWRlbnRpZmllcikKIHsKICAg
ICAvLyBGSVhNRTogSW5lbGVnYW50IHRvIGhhdmUgdGhpcyBoZXJlIGp1c3QgYmVjYXVzZSB0aGlz
IGlzIHRoZSBob21lIG9mIERPTSBBUElzIGZvciBjcmVhdGluZyBkb2N1bWVudHMuCiAgICAgLy8g
VGhpcyBpcyBpbnRlcm5hbCwgbm90IGEgRE9NIEFQSS4gTWF5YmUgd2Ugc2hvdWxkIHB1dCBpdCBp
biBhIG5ldyBjbGFzcyBjYWxsZWQgRG9jdW1lbnRGYWN0b3J5LApAQCAtMTQ2LDExICsxNDYsMTEg
QEAgUmVmPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZSwgRnJhbWUKIAogICAgIC8vIFBsdWctaW5zIGNhbm5vdCB0YWtl
IG92ZXIgZm9yIEhUTUwsIFhIVE1MLCBwbGFpbiB0ZXh0LCBvciBub24tUERGIGltYWdlcy4KICAg
ICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoY29udGVudFR5cGUsICJ0ZXh0L2h0
bWwiKSkKLSAgICAgICAgcmV0dXJuIEhUTUxEb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCBzZXR0aW5n
cywgdXJsKTsKKyAgICAgICAgcmV0dXJuIEhUTUxEb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCBzZXR0
aW5ncywgdXJsLCBkb2N1bWVudElkZW50aWZpZXIpOwogICAgIGlmIChlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShjb250ZW50VHlwZSwgImFwcGxpY2F0aW9uL3hodG1sK3htbCIpKQogICAg
ICAgICByZXR1cm4gWE1MRG9jdW1lbnQ6OmNyZWF0ZVhIVE1MKGZyYW1lLCBzZXR0aW5ncywgdXJs
KTsKICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoY29udGVudFR5cGUsICJ0
ZXh0L3BsYWluIikpCi0gICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwg
c2V0dGluZ3MsIHVybCk7CisgICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQ6OmNyZWF0ZShmcmFt
ZSwgc2V0dGluZ3MsIHVybCwgZG9jdW1lbnRJZGVudGlmaWVyKTsKICAgICBib29sIGlzSW1hZ2Ug
PSBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEltYWdlTUlNRVR5cGUoY29udGVudFR5cGUp
OwogICAgIGlmIChmcmFtZSAmJiBpc0ltYWdlICYmICFNSU1FVHlwZVJlZ2lzdHJ5Ojppc1BERk9y
UG9zdFNjcmlwdE1JTUVUeXBlKGNvbnRlbnRUeXBlKSkKICAgICAgICAgcmV0dXJuIEltYWdlRG9j
dW1lbnQ6OmNyZWF0ZSgqZnJhbWUsIHVybCk7CkBAIC0xOTMsNyArMTkzLDcgQEAgUmVmPERvY3Vt
ZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBjb250
ZW50VHlwZSwgRnJhbWUKICAgICBpZiAoZnJhbWUgJiYgaXNJbWFnZSkKICAgICAgICAgcmV0dXJu
IEltYWdlRG9jdW1lbnQ6OmNyZWF0ZSgqZnJhbWUsIHVybCk7CiAgICAgaWYgKE1JTUVUeXBlUmVn
aXN0cnk6OmlzVGV4dE1JTUVUeXBlKGNvbnRlbnRUeXBlKSkKLSAgICAgICAgcmV0dXJuIFRleHRE
b2N1bWVudDo6Y3JlYXRlKGZyYW1lLCBzZXR0aW5ncywgdXJsKTsKKyAgICAgICAgcmV0dXJuIFRl
eHREb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCBzZXR0aW5ncywgdXJsLCBkb2N1bWVudElkZW50aWZp
ZXIpOwogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShjb250ZW50VHlwZSwg
ImltYWdlL3N2Zyt4bWwiKSkKICAgICAgICAgcmV0dXJuIFNWR0RvY3VtZW50OjpjcmVhdGUoZnJh
bWUsIHNldHRpbmdzLCB1cmwpOwogICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1hNTE1JTUVU
eXBlKGNvbnRlbnRUeXBlKSkgewpAQCAtMjAxLDcgKzIwMSw4IEBAIFJlZjxEb2N1bWVudD4gRE9N
SW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUs
IEZyYW1lCiAgICAgICAgIGRvY3VtZW50LT5vdmVycmlkZU1JTUVUeXBlKGNvbnRlbnRUeXBlKTsK
ICAgICAgICAgcmV0dXJuIGRvY3VtZW50OwogICAgIH0KLSAgICByZXR1cm4gSFRNTERvY3VtZW50
OjpjcmVhdGUoZnJhbWUsIHNldHRpbmdzLCB1cmwpOworCisgICAgcmV0dXJuIEhUTUxEb2N1bWVu
dDo6Y3JlYXRlKGZyYW1lLCBzZXR0aW5ncywgdXJsLCBkb2N1bWVudElkZW50aWZpZXIpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oCmluZGV4IDVkNjEyZDFhMWUx
MjYzN2VjZjY1N2JiODhiMzk4YjZjNTRmNDViNzYuLjk4NzhmZmFhNjkxNjVmNTMzYTRmMDAyNzAy
MTdiOTQ1NDcyNzA5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1l
bnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oCkBA
IC0yNCw2ICsyNCw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgi
CisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJYTUxEb2N1bWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Myw3ICs0NCw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBoYXNGZWF0dXJlKCkgeyByZXR1cm4gdHJ1ZTsgfQog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8Q1NTU3R5bGVTaGVldD4gY3JlYXRlQ1NTU3R5
bGVTaGVldChjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIG1lZGlhKTsKIAotICAg
IHN0YXRpYyBSZWY8RG9jdW1lbnQ+IGNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgY29udGVu
dFR5cGUsIEZyYW1lKiwgY29uc3QgU2V0dGluZ3MmLCBjb25zdCBVUkwmKTsKKyAgICBzdGF0aWMg
UmVmPERvY3VtZW50PiBjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBG
cmFtZSosIGNvbnN0IFNldHRpbmdzJiwgY29uc3QgVVJMJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mID0geyB9KTsKIAogcHJpdmF0ZToKICAg
ICBEb2N1bWVudCYgbV9kb2N1bWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDc4Y2Fh
YWU3ZDljNzIzNjIwNzY4YTQ0N2ZlYzI4ZThiODVjMTdiNzAuLjA3OTg5NDJjOGRmNmNjYjBiOWYx
OGJiY2JiMDBhYjZjZTAxODQwMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjA1LDkg
KzYwNSwxMCBAQCBzdGF0aWMgUmVmPENhY2hlZFJlc291cmNlTG9hZGVyPiBjcmVhdGVDYWNoZWRS
ZXNvdXJjZUxvYWRlcihGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlTG9h
ZGVyOjpjcmVhdGUobnVsbHB0cik7CiB9CiAKLURvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJh
bWUsIGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncywgY29uc3QgVVJMJiB1cmwsIERvY3VtZW50Q2xh
c3NlcyBkb2N1bWVudENsYXNzZXMsIHVuc2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdzKQorRG9jdW1l
bnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25z
dCBVUkwmIHVybCwgRG9jdW1lbnRDbGFzc2VzIGRvY3VtZW50Q2xhc3NlcywgdW5zaWduZWQgY29u
c3RydWN0aW9uRmxhZ3MsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXI+JiBpZGVudGlmaWVyKQogICAgIDogQ29udGFpbmVyTm9kZSgqdGhpcywgQ3Jl
YXRlRG9jdW1lbnQpCiAgICAgLCBUcmVlU2NvcGUoKnRoaXMpCisgICAgLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KGlkZW50aWZpZXIpCiAgICAgLCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoZnJh
bWUpCiAgICAgLCBtX3NldHRpbmdzKHNldHRpbmdzKQogICAgICwgbV9xdWlya3MobWFrZVVuaXF1
ZVJlZjxRdWlya3M+KCp0aGlzKSkKQEAgLTc1MDYsNyArNzUwNyw3IEBAIERvY3VtZW50JiBEb2N1
bWVudDo6ZW5zdXJlVGVtcGxhdGVEb2N1bWVudCgpCiAgICAgICAgIHJldHVybiBjb25zdF9jYXN0
PERvY3VtZW50Jj4oKmRvY3VtZW50KTsKIAogICAgIGlmIChpc0hUTUxEb2N1bWVudCgpKQotICAg
ICAgICBtX3RlbXBsYXRlRG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShudWxscHRyLCBt
X3NldHRpbmdzLCBhYm91dEJsYW5rVVJMKCkpOworICAgICAgICBtX3RlbXBsYXRlRG9jdW1lbnQg
PSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShudWxscHRyLCBtX3NldHRpbmdzLCBhYm91dEJsYW5rVVJM
KCksIHsgfSk7CiAgICAgZWxzZQogICAgICAgICBtX3RlbXBsYXRlRG9jdW1lbnQgPSBjcmVhdGUo
bV9zZXR0aW5ncywgYWJvdXRCbGFua1VSTCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAw
Nzc5MDRjOGE4MDEzN2ZjYzA1ZjYwMjUxYzE4YzhhYjMxNmFhMjExLi41ODJhMzkxZDUwMmMyNGI2
ZDI0MWQ5NWFmNjIwYmQzZDk2NTE0ZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTY3NSw3
ICsxNjc1LDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDb25zdHJ1Y3Rpb25G
bGFncyB7IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9IDEgPDwgMSB9
OwotICAgIFdFQkNPUkVfRVhQT1JUIERvY3VtZW50KEZyYW1lKiwgY29uc3QgU2V0dGluZ3MmLCBj
b25zdCBVUkwmLCBEb2N1bWVudENsYXNzZXMgPSB7IH0sIHVuc2lnbmVkIGNvbnN0cnVjdGlvbkZs
YWdzID0gMCk7CisgICAgV0VCQ09SRV9FWFBPUlQgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBTZXR0
aW5ncyYsIGNvbnN0IFVSTCYsIERvY3VtZW50Q2xhc3NlcyA9IHsgfSwgdW5zaWduZWQgY29uc3Ry
dWN0aW9uRmxhZ3MgPSAwLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyPiYgPSB7IH0pOwogCiAgICAgdm9pZCBjbGVhclhNTFZlcnNpb24oKSB7IG1f
eG1sVmVyc2lvbiA9IFN0cmluZygpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcAppbmRleCAyOWRjZWVmNTMzM2Y2OWRmMmU1ZjMwZWRlZmRkNjEz
NTc3ZmU2NGUxLi41MjI4NjhmODEwYzg2MzgxMTY2MDgzMDkzOTVkNzA1NzhmYzFhMzZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCkBAIC0xMTEs
MTAgKzExMSwxMSBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gbV9jYWxs
U3RhY2s7CiB9OwogCi1TY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkKLSAgICA6IG1faWRlbnRpZmllcihTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cjo6Z2VuZXJhdGUoKSkKK1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoY29uc3Qgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cj4mIGNvbnRleHRJZGVudGlmaWVyKQorICAgIDogbV9pZGVudGlmaWVyKGNvbnRleHRJZGVudGlm
aWVyLnZhbHVlX29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyOjpnZW5lcmF0ZSgp
KSkKIHsKICAgICBMb2NrZXIgbG9ja2VyIHsgYWxsU2NyaXB0RXhlY3V0aW9uQ29udGV4dHNNYXBM
b2NrIH07CisgICAgQVNTRVJUKCFhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcCgpLmNvbnRh
aW5zKG1faWRlbnRpZmllcikpOwogICAgIGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwKCku
YWRkKG1faWRlbnRpZmllciwgdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDM1MzNjMjBlMmVlNTc5NjBiNTRiZmUxNTM2ZGUzZmIy
ZjhjY2ExODYuLjc0NWQ5OTBkOWY5M2MyOWE0ZGIxYTFjNDI0ZWJhNzliZGNmOGU4YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtODksNyArODks
NyBAQCBjbGFzcyBJREJDb25uZWN0aW9uUHJveHk7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgOiBwdWJsaWMgU2VjdXJpdHlDb250ZXh0LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dD4gewogcHVibGljOgotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKKyAgICBleHBsaWNpdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnN0IHN0ZDo6b3B0
aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiA9IHsgfSk7CiAgICAgdmly
dHVhbCB+U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogCiAgICAgdmlydHVhbCBib29sIGlzRG9j
dW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZU
UERpcmVjdG9yeURvY3VtZW50LmNwcAppbmRleCA3NTIzMDE3YmE3Mjk0MDU2M2I3NWY0NjZhNjhl
ZDFjY2IzZGVlOGJhLi44NDRjZjYwNTIxZmI2NDE1NGM1Y2Y5NWUwYzU1NDk4MzdjNGZiZTJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcApAQCAtNDE4
LDcgKzQxOCw3IEBAIHZvaWQgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmZpbmlzaCgpCiB9
CiAKIEZUUERpcmVjdG9yeURvY3VtZW50OjpGVFBEaXJlY3RvcnlEb2N1bWVudChGcmFtZSogZnJh
bWUsIGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncywgY29uc3QgVVJMJiB1cmwpCi0gICAgOiBIVE1M
RG9jdW1lbnQoZnJhbWUsIHNldHRpbmdzLCB1cmwpCisgICAgOiBIVE1MRG9jdW1lbnQoZnJhbWUs
IHNldHRpbmdzLCB1cmwsIHsgfSkKIHsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTG9nRlRQLnN0
YXRlID0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50
LmNwcAppbmRleCBlZWRjNzc4ODU4NTEzMDYxYzkyYzA3MzZlM2IwNTVjNWVkYTgxMzQ4Li45Y2I4
NTY5YTViYTcyYjY1MmMzOGM2YzAzNzI0NjNjY2QyMDQwYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRG9jdW1lbnQuY3BwCkBAIC04OSwxMSArODksMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKIAogUmVmPEhUTUxEb2N1bWVudD4gSFRNTERvY3VtZW50OjpjcmVhdGVTeW50aGVzaXpl
ZERvY3VtZW50KEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSFRNTERvY3VtZW50KCZmcmFtZSwgZnJhbWUuc2V0dGluZ3MoKSwgdXJsLCB7
IERvY3VtZW50Q2xhc3M6OkhUTUwgfSwgU3ludGhlc2l6ZWQpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBIVE1MRG9jdW1lbnQoJmZyYW1lLCBmcmFtZS5zZXR0aW5ncygpLCB1cmwsIHsgfSwg
eyBEb2N1bWVudENsYXNzOjpIVE1MIH0sIFN5bnRoZXNpemVkKSk7CiB9CiAKLUhUTUxEb2N1bWVu
dDo6SFRNTERvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBj
b25zdCBVUkwmIHVybCwgRG9jdW1lbnRDbGFzc2VzIGRvY3VtZW50Q2xhc3NlcywgdW5zaWduZWQg
Y29uc3RydWN0aW9uRmxhZ3MpCi0gICAgOiBEb2N1bWVudChmcmFtZSwgc2V0dGluZ3MsIHVybCwg
ZG9jdW1lbnRDbGFzc2VzIHwgRG9jdW1lbnRDbGFzc2VzKERvY3VtZW50Q2xhc3M6OkhUTUwpLCBj
b25zdHJ1Y3Rpb25GbGFncykKK0hUTUxEb2N1bWVudDo6SFRNTERvY3VtZW50KEZyYW1lKiBmcmFt
ZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVybCwgY29uc3Qgc3RkOjpv
cHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mIGRvY3VtZW50SWRlbnRp
ZmllciwgRG9jdW1lbnRDbGFzc2VzIGRvY3VtZW50Q2xhc3NlcywgdW5zaWduZWQgY29uc3RydWN0
aW9uRmxhZ3MpCisgICAgOiBEb2N1bWVudChmcmFtZSwgc2V0dGluZ3MsIHVybCwgZG9jdW1lbnRD
bGFzc2VzIHwgRG9jdW1lbnRDbGFzc2VzKERvY3VtZW50Q2xhc3M6OkhUTUwpLCBjb25zdHJ1Y3Rp
b25GbGFncywgZG9jdW1lbnRJZGVudGlmaWVyKQogewogICAgIGNsZWFyWE1MVmVyc2lvbigpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgKaW5kZXggZTU3ZmE2NDU5MDQ2NGZmYTA5NzA5
NTMzNzdkMTAxYjBmMTVlMmVjNy4uYzhlOGFmYWE2NzFiZGJlYzEzMmUzZTQzODBlNjZhZGRlZTNj
YzgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oCkBAIC0yOSw3ICsyOSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEhUTUxEb2N1bWVudCA6IHB1YmxpYyBEb2N1bWVudCB7
CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChIVE1MRG9jdW1lbnQpOwogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8SFRNTERvY3VtZW50PiBjcmVhdGUoRnJhbWUqLCBjb25zdCBTZXR0aW5ncyYs
IGNvbnN0IFVSTCYpOworICAgIHN0YXRpYyBSZWY8SFRNTERvY3VtZW50PiBjcmVhdGUoRnJhbWUq
LCBjb25zdCBTZXR0aW5ncyYsIGNvbnN0IFVSTCYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiA9IHsgfSk7CiAgICAgc3RhdGljIFJlZjxIVE1M
RG9jdW1lbnQ+IGNyZWF0ZVN5bnRoZXNpemVkRG9jdW1lbnQoRnJhbWUmLCBjb25zdCBVUkwmKTsK
ICAgICB2aXJ0dWFsIH5IVE1MRG9jdW1lbnQoKTsKIApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIGJvb2wgaXNDYXNlU2Vuc2l0aXZlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKTsKIAogcHJvdGVjdGVkOgotICAgIEhUTUxEb2N1bWVudChGcmFtZSosIGNvbnN0IFNl
dHRpbmdzJiwgY29uc3QgVVJMJiwgRG9jdW1lbnRDbGFzc2VzID0geyB9LCB1bnNpZ25lZCBjb25z
dHJ1Y3Rpb25GbGFncyA9IDApOworICAgIEhUTUxEb2N1bWVudChGcmFtZSosIGNvbnN0IFNldHRp
bmdzJiwgY29uc3QgVVJMJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcj4mLCBEb2N1bWVudENsYXNzZXMgPSB7IH0sIHVuc2lnbmVkIGNvbnN0cnVj
dGlvbkZsYWdzID0gMCk7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc0ZyYW1lU2V0KCkgY29uc3Qg
ZmluYWw7CkBAIC02NSw5ICs2NSw5IEBAIHByaXZhdGU6CiAgICAgVHJlZVNjb3BlT3JkZXJlZE1h
cCBtX3dpbmRvd05hbWVkSXRlbTsKIH07CiAKLWlubGluZSBSZWY8SFRNTERvY3VtZW50PiBIVE1M
RG9jdW1lbnQ6OmNyZWF0ZShGcmFtZSogZnJhbWUsIGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncywg
Y29uc3QgVVJMJiB1cmwpCitpbmxpbmUgUmVmPEhUTUxEb2N1bWVudD4gSFRNTERvY3VtZW50Ojpj
cmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
PiYgaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MRG9jdW1lbnQo
ZnJhbWUsIHNldHRpbmdzLCB1cmwsIHsgRG9jdW1lbnRDbGFzczo6SFRNTCB9KSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSFRNTERvY3VtZW50KGZyYW1lLCBzZXR0aW5ncywgdXJsLCBpZGVu
dGlmaWVyLCB7IERvY3VtZW50Q2xhc3M6OkhUTUwgfSwgMCkpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAppbmRleCA0MzcwZDY4
MTg3MmQ5NWMxMGMwZjRlOTU5ZTE0NzQzOWFkNTc0NDBhLi40ZDEwZmIwNTc3MjQ2Mjg1NzY4ODUw
M2Q2NjQ3Njk3ZjBjYjA0YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdl
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAK
QEAgLTE5OCw3ICsxOTgsNyBAQCB2b2lkIEltYWdlRG9jdW1lbnRQYXJzZXI6OmZpbmlzaCgpCiB9
CiAKIEltYWdlRG9jdW1lbnQ6OkltYWdlRG9jdW1lbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwm
IHVybCkKLSAgICA6IEhUTUxEb2N1bWVudCgmZnJhbWUsIGZyYW1lLnNldHRpbmdzKCksIHVybCwg
eyBEb2N1bWVudENsYXNzOjpJbWFnZSB9KQorICAgIDogSFRNTERvY3VtZW50KCZmcmFtZSwgZnJh
bWUuc2V0dGluZ3MoKSwgdXJsLCB7IH0sIHsgRG9jdW1lbnRDbGFzczo6SW1hZ2UgfSkKICAgICAs
IG1faW1hZ2VFbGVtZW50KG51bGxwdHIpCiAgICAgLCBtX2ltYWdlU2l6ZUlzS25vd24oZmFsc2Up
CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50
LmNwcAppbmRleCA2YTI1MDFmN2ZkOWM1NzkzMTlhZmMyZjExNWNkM2U4OGQyOGYzZjRlLi5jMjUz
MWM3NDEwY2JiZTM3OTAzNGQ4ZDZhNGI3NmNmMTc5NDY3NDkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TWVkaWFEb2N1bWVudC5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIE1lZGlhRG9jdW1lbnRQ
YXJzZXI6OmFwcGVuZEJ5dGVzKERvY3VtZW50V3JpdGVyJiwgY29uc3QgdWludDhfdCosIHNpemVf
dCkKIH0KICAgICAKIE1lZGlhRG9jdW1lbnQ6Ok1lZGlhRG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBj
b25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJsKQotICAgIDogSFRNTERvY3Vt
ZW50KGZyYW1lLCBzZXR0aW5ncywgdXJsLCB7IERvY3VtZW50Q2xhc3M6Ok1lZGlhIH0pCisgICAg
OiBIVE1MRG9jdW1lbnQoZnJhbWUsIHNldHRpbmdzLCB1cmwsIHsgfSwgeyBEb2N1bWVudENsYXNz
OjpNZWRpYSB9KQogewogICAgIHNldENvbXBhdGliaWxpdHlNb2RlKERvY3VtZW50Q29tcGF0aWJp
bGl0eU1vZGU6OlF1aXJrc01vZGUpOwogICAgIGxvY2tDb21wYXRpYmlsaXR5TW9kZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb2RlbERvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTW9kZWxEb2N1bWVudC5jcHAKaW5kZXggNmU1MGI5ZDQyODNiNjc2NjJlYmQ0
N2Y0NzdiYWY4ODEzZmU3YmRmZC4uODRiNTFhMjg5ZTQyY2YzYWRjZmViMGZiZjZiYjk1YjFlNTVj
ODNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb2RlbERvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vZGVsRG9jdW1lbnQuY3BwCkBAIC0xMzgsNyArMTM4
LDcgQEAgdm9pZCBNb2RlbERvY3VtZW50UGFyc2VyOjpmaW5pc2goKQogfQogCiBNb2RlbERvY3Vt
ZW50OjpNb2RlbERvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdz
LCBjb25zdCBVUkwmIHVybCkKLSAgICA6IEhUTUxEb2N1bWVudChmcmFtZSwgc2V0dGluZ3MsIHVy
bCwgeyBEb2N1bWVudENsYXNzOjpNb2RlbCB9KQorICAgIDogSFRNTERvY3VtZW50KGZyYW1lLCBz
ZXR0aW5ncywgdXJsLCB7IH0sIHsgRG9jdW1lbnRDbGFzczo6TW9kZWwgfSkKIHsKICAgICBpZiAo
ZnJhbWUpCiAgICAgICAgIG1fb3V0Z29pbmdSZWZlcnJlciA9IGZyYW1lLT5sb2FkZXIoKS5vdXRn
b2luZ1JlZmVycmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4
IDc3NzFhNDY3MzgwMDJjNzdmYWM4MzExNGFlMWM1NDUyNzJlMWI0NjIuLjY4NGNmMWNhYzE0NGZj
NjBjNTM1Mjk0NTY2YTBiYmJmZjJkMjViOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9j
dW1lbnQuY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6
YXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBjb25zdCB1aW50OF90Kiwgc2l6ZV90KQogfQog
CiBQbHVnaW5Eb2N1bWVudDo6UGx1Z2luRG9jdW1lbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwm
IHVybCkKLSAgICA6IEhUTUxEb2N1bWVudCgmZnJhbWUsIGZyYW1lLnNldHRpbmdzKCksIHVybCwg
eyBEb2N1bWVudENsYXNzOjpQbHVnaW4gfSkKKyAgICA6IEhUTUxEb2N1bWVudCgmZnJhbWUsIGZy
YW1lLnNldHRpbmdzKCksIHVybCwgeyB9LCB7IERvY3VtZW50Q2xhc3M6OlBsdWdpbiB9KQogewog
ICAgIHNldENvbXBhdGliaWxpdHlNb2RlKERvY3VtZW50Q29tcGF0aWJpbGl0eU1vZGU6OlF1aXJr
c01vZGUpOwogICAgIGxvY2tDb21wYXRpYmlsaXR5TW9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RG9jdW1lbnQuY3BwCmluZGV4IDMzZjI0NzhiMzc3M2U0OTVlMjI2NThmZmYyMWU1Mzk4MTYyY2Fh
NTQuLmJmN2IzNjhkMTUxNzJjZjRhYWZiNzZkY2E1ZGM1NjNlOWQ3MGI4MTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dERvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHREb2N1bWVudC5jcHAKQEAgLTMyLDggKzMyLDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoVGV4dERvY3VtZW50KTsKIAotVGV4
dERvY3VtZW50OjpUZXh0RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0
dGluZ3MsIGNvbnN0IFVSTCYgdXJsKQotICAgIDogSFRNTERvY3VtZW50KGZyYW1lLCBzZXR0aW5n
cywgdXJsLCB7IERvY3VtZW50Q2xhc3M6OlRleHQgfSkKK1RleHREb2N1bWVudDo6VGV4dERvY3Vt
ZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVy
bCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4m
IGlkZW50aWZpZXIpCisgICAgOiBIVE1MRG9jdW1lbnQoZnJhbWUsIHNldHRpbmdzLCB1cmwsIGlk
ZW50aWZpZXIsIHsgRG9jdW1lbnRDbGFzczo6VGV4dCB9KQogewogICAgIHNldENvbXBhdGliaWxp
dHlNb2RlKERvY3VtZW50Q29tcGF0aWJpbGl0eU1vZGU6OlF1aXJrc01vZGUpOwogICAgIGxvY2tD
b21wYXRpYmlsaXR5TW9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dERvY3VtZW50LmgKaW5kZXggZDQ4
MTY1MTJhYmE3MTg0YzllYThjNjZhZmRkNTA4MjcyOWE1YjIzNi4uNWUzYjdkMWI5MjY0N2UwYmNj
MWJlZDJmODI3YWEzYTE2YWExY2U0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHREb2N1bWVudC5oCkBA
IC0zMSwxMyArMzEsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVGV4dERvY3VtZW50
IGZpbmFsIDogcHVibGljIEhUTUxEb2N1bWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChUZXh0RG9jdW1lbnQpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VGV4dERvY3VtZW50PiBj
cmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYg
dXJsKQorICAgIHN0YXRpYyBSZWY8VGV4dERvY3VtZW50PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBj
b25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBzdGQ6Om9wdGlv
bmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYgaWRlbnRpZmllcikKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHREb2N1bWVudChmcmFtZSwgc2V0dGlu
Z3MsIHVybCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0RG9jdW1lbnQoZnJh
bWUsIHNldHRpbmdzLCB1cmwsIGlkZW50aWZpZXIpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAg
VGV4dERvY3VtZW50KEZyYW1lKiwgY29uc3QgU2V0dGluZ3MmLCBjb25zdCBVUkwmKTsKKyAgICBU
ZXh0RG9jdW1lbnQoRnJhbWUqLCBjb25zdCBTZXR0aW5ncyYsIGNvbnN0IFVSTCYsIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+Jik7CiAgICAgCiAg
ICAgUmVmPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBvdmVycmlkZTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwCmluZGV4IGY2ZGEyMzg1
ZDdkMDc2ZjA2NjQ2ODYxMmFlYzFlN2IyNjEyOWUzMzMuLjZiYTdjNWYxYjgxYmM4MTI4ODI1Yjli
ODdjZDJhNTVlNjBmNjAxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9E
T01QYXRjaFN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01QYXRj
aFN1cHBvcnQuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgRE9NUGF0Y2hTdXBwb3J0OjpwYXRj
aERvY3VtZW50KGNvbnN0IFN0cmluZyYgbWFya3VwKQogewogICAgIFJlZlB0cjxEb2N1bWVudD4g
bmV3RG9jdW1lbnQ7CiAgICAgaWYgKG1fZG9jdW1lbnQuaXNIVE1MRG9jdW1lbnQoKSkKLSAgICAg
ICAgbmV3RG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShudWxscHRyLCBtX2RvY3VtZW50
LnNldHRpbmdzKCksIFVSTCgpKTsKKyAgICAgICAgbmV3RG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6
OmNyZWF0ZShudWxscHRyLCBtX2RvY3VtZW50LnNldHRpbmdzKCksIFVSTCgpLCB7IH0pOwogICAg
IGVsc2UgaWYgKG1fZG9jdW1lbnQuaXNYSFRNTERvY3VtZW50KCkpCiAgICAgICAgIG5ld0RvY3Vt
ZW50ID0gWE1MRG9jdW1lbnQ6OmNyZWF0ZVhIVE1MKG51bGxwdHIsIG1fZG9jdW1lbnQuc2V0dGlu
Z3MoKSwgVVJMKCkpOwogICAgIGVsc2UgaWYgKG1fZG9jdW1lbnQuaXNTVkdEb2N1bWVudCgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggZWY3NjNiNzkxMjkz
NDk4ODVlNmZlNGZhZTkzMWQ2YzJhODY4MTFhNi4uODY4YzY5NmE1Mjk1OGFlZGU0MDllNWFhYjlh
MTQ0OTdlYWY3OTc3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
CkBAIC0xNTAsMTUgKzE1MCwxNSBAQCBzdGF0aWMgdm9pZCBzZXRBbGxEZWZlcnNMb2FkaW5nKGNv
bnN0IFJlc291cmNlTG9hZGVyTWFwJiBsb2FkZXJzLCBib29sIGRlZmVycykKICAgICAgICAgbG9h
ZGVyLT5zZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7CiB9CiAKLXN0YXRpYyBIYXNoTWFwPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBEb2N1bWVudExvYWRlcio+JiB0ZW1wb3JhcnlJ
ZGVudGlmaWVyVG9Mb2FkZXJNYXAoKQorc3RhdGljIEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKj4mIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyVG9Mb2FkZXJNYXAoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNo
TWFwPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBEb2N1bWVudExvYWRlcio+PiBt
YXA7CiAgICAgcmV0dXJuIG1hcC5nZXQoKTsKIH0KIAotRG9jdW1lbnRMb2FkZXIqIERvY3VtZW50
TG9hZGVyOjpmcm9tVGVtcG9yYXJ5RG9jdW1lbnRJZGVudGlmaWVyKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIpCitEb2N1bWVudExvYWRlciogRG9jdW1lbnRMb2Fk
ZXI6OmZyb21TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyKQogewotICAgIHJldHVybiB0ZW1wb3JhcnlJZGVu
dGlmaWVyVG9Mb2FkZXJNYXAoKS5nZXQoaWRlbnRpZmllcik7CisgICAgcmV0dXJuIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyVG9Mb2FkZXJNYXAoKS5nZXQoaWRlbnRpZmllcik7CiB9
CiAKIERFRklORV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoRG9jdW1lbnRMb2FkZXIp
OwpAQCAtMjAwLDkgKzIwMCw5IEBAIERvY3VtZW50TG9hZGVyOjp+RG9jdW1lbnRMb2FkZXIoKQog
ICAgIGNsZWFyTWFpblJlc291cmNlKCk7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0g
ICAgaWYgKG1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCkgewotICAgICAgICBBU1NFUlQo
dGVtcG9yYXJ5SWRlbnRpZmllclRvTG9hZGVyTWFwKCkuY29udGFpbnMoKm1fdGVtcG9yYXJ5U2Vy
dmljZVdvcmtlckNsaWVudCkpOwotICAgICAgICB0ZW1wb3JhcnlJZGVudGlmaWVyVG9Mb2FkZXJN
YXAoKS5yZW1vdmUoKm1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCk7CisgICAgaWYgKG1f
cmVzdWx0aW5nQ2xpZW50SWQpIHsKKyAgICAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyVG9Mb2FkZXJNYXAoKS5jb250YWlucygqbV9yZXN1bHRpbmdDbGllbnRJZCkp
OworICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclRvTG9hZGVyTWFwKCku
cmVtb3ZlKCptX3Jlc3VsdGluZ0NsaWVudElkKTsKICAgICB9CiAjZW5kaWYKIH0KQEAgLTU1NSw2
ICs1NTUsMTEgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6c2V0Q29udHJvbGxpbmdTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uKFNlcnZpY2VXb3JrZXJSZWdpc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAorc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gRG9jdW1l
bnRMb2FkZXI6OnJlc3VsdGluZ0NsaWVudElkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXN1
bHRpbmdDbGllbnRJZDsKK30KKwogdm9pZCBEb2N1bWVudExvYWRlcjo6bWF0Y2hSZWdpc3RyYXRp
b24oY29uc3QgVVJMJiB1cmwsIFNXQ2xpZW50Q29ubmVjdGlvbjo6UmVnaXN0cmF0aW9uQ2FsbGJh
Y2smJiBjYWxsYmFjaykKIHsKICAgICBhdXRvIHNob3VsZFRyeUxvYWRpbmdUaHJvdWdoU2Vydmlj
ZVdvcmtlciA9ICFmcmFtZUxvYWRlcigpLT5pc1JlbG9hZGluZ0Zyb21PcmlnaW4oKSAmJiBtX2Zy
YW1lLT5wYWdlKCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5z
ZXJ2aWNlV29ya2VyRW5hYmxlZCgpICYmIHVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCk7CkBA
IC01ODksOCArNTk0LDkgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVkaXJlY3RSZWNlaXZlZChD
YWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIFJlc291cmNlUmVxdWVzdCYKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCiAgICAgaWYgKG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEpIHsK
ICAgICAgICAgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSA9IHsgfTsKLSAgICAgICAg
dW5yZWdpc3RlclRlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQoKTsKKyAgICAgICAgdW5yZWdp
c3RlclJlc2VydmVkU2VydmljZVdvcmtlckNsaWVudCgpOwogICAgIH0KKwogICAgIHdpbGxTZW5k
UmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpLCByZWRpcmVjdFJlc3BvbnNlLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgcHJvdGVjdGVkVGhpcyA9IFJlZiB7
ICp0aGlzIH0sIHRoaXNdIChhdXRvJiYgcmVxdWVzdCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VS
VCghbV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpOwogICAgICAgICBpZiAocmVxdWVzdC5pc051
bGwoKSB8fCAhbV9tYWluRG9jdW1lbnRFcnJvci5pc051bGwoKSB8fCAhbV9mcmFtZSkgewpAQCAt
MTIwMiw3ICsxMjA4LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y29tbWl0RGF0YShjb25zdCBT
aGFyZWRCdWZmZXImIGRhdGEpCiB7CiAgICAgaWYgKCFtX2dvdEZpcnN0Qnl0ZSkgewogICAgICAg
ICBtX2dvdEZpcnN0Qnl0ZSA9IHRydWU7Ci0gICAgICAgIGJvb2wgaGFzQmVndW4gPSBtX3dyaXRl
ci5iZWdpbihkb2N1bWVudFVSTCgpLCBmYWxzZSk7CisgICAgICAgIGJvb2wgaGFzQmVndW4gPSBt
X3dyaXRlci5iZWdpbihkb2N1bWVudFVSTCgpLCBmYWxzZSwgbnVsbHB0ciwgbV9yZXN1bHRpbmdD
bGllbnRJZCk7CiAgICAgICAgIGlmICghaGFzQmVndW4pCiAgICAgICAgICAgICByZXR1cm47CiAK
QEAgLTEyMzAsMjAgKzEyMzYsMjUgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y29tbWl0RGF0YShj
b25zdCBTaGFyZWRCdWZmZXImIGRhdGEpCiAjZW5kaWYKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCiAgICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LnNlcnZpY2VXb3JrZXJFbmFibGVkKCkpIHsKLSAgICAgICAgICAgIGlmIChtX3NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25EYXRhICYmIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEtPmFj
dGl2ZVdvcmtlcikgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LnNldEFjdGl2ZVNlcnZpY2VX
b3JrZXIoU2VydmljZVdvcmtlcjo6Z2V0T3JDcmVhdGUoZG9jdW1lbnQsIFdURk1vdmUobV9zZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS0+YWN0aXZlV29ya2VyLnZhbHVlKCkpKSk7Ci0gICAg
ICAgICAgICAgICAgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSA9IHsgfTsKLSAgICAg
ICAgICAgIH0gZWxzZSBpZiAoYXV0byogcGFyZW50ID0gZG9jdW1lbnQucGFyZW50RG9jdW1lbnQo
KSkgewotICAgICAgICAgICAgICAgIGlmIChzaG91bGRVc2VBY3RpdmVTZXJ2aWNlV29ya2VyRnJv
bVBhcmVudChkb2N1bWVudCwgKnBhcmVudCkpCi0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LnNldEFjdGl2ZVNlcnZpY2VXb3JrZXIocGFyZW50LT5hY3RpdmVTZXJ2aWNlV29ya2VyKCkpOwor
ICAgICAgICAgICAgaWYgKCFkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmlzVW5pcXVlKCkpIHsK
KyAgICAgICAgICAgICAgICBpZiAobV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSAmJiBt
X3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLT5hY3RpdmVXb3JrZXIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuc2V0QWN0aXZlU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2Vy
OjpnZXRPckNyZWF0ZShkb2N1bWVudCwgV1RGTW92ZShtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EYXRhLT5hY3RpdmVXb3JrZXIudmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9z
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSA9IHsgfTsKKyAgICAgICAgICAgICAgICB9IGVs
c2UgaWYgKGF1dG8qIHBhcmVudCA9IGRvY3VtZW50LnBhcmVudERvY3VtZW50KCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKHNob3VsZFVzZUFjdGl2ZVNlcnZpY2VXb3JrZXJGcm9tUGFyZW50
KGRvY3VtZW50LCAqcGFyZW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnNl
dEFjdGl2ZVNlcnZpY2VXb3JrZXIocGFyZW50LT5hY3RpdmVTZXJ2aWNlV29ya2VyKCkpOworICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKG1fZnJhbWUt
PmRvY3VtZW50KCktPmFjdGl2ZVNlcnZpY2VXb3JrZXIoKSB8fCBkb2N1bWVudC51cmwoKS5wcm90
b2NvbElzSW5IVFRQRmFtaWx5KCkgfHwgKGRvY3VtZW50LnBhZ2UoKSAmJiBkb2N1bWVudC5wYWdl
KCktPmlzU2VydmljZVdvcmtlclBhZ2UoKSkpCiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuc2V0
U2VydmljZVdvcmtlckNvbm5lY3Rpb24oJlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9u
KCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKSk7CiAKLSAgICAgICAgICAgIC8vIFdlIGN1cnJl
bnRseSB1bnJlZ2lzdGVyIHRoZSB0ZW1wb3Jhcnkgc2VydmljZSB3b3JrZXIgY2xpZW50IHNpbmNl
IHdlIG5vdyByZWdpc3RlcmVkIHRoZSByZWFsIGRvY3VtZW50LgotICAgICAgICAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBtYWtlIHRoZSByZWFsIGRvY3VtZW50IHVzZSB0aGUgdGVtcG9yYXJ5IGNs
aWVudCBpZGVudGlmaWVyLgotICAgICAgICAgICAgdW5yZWdpc3RlclRlbXBvcmFyeVNlcnZpY2VX
b3JrZXJDbGllbnQoKTsKKyAgICAgICAgICAgIGlmIChtX3Jlc3VsdGluZ0NsaWVudElkKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCptX3Jlc3VsdGluZ0NsaWVudElkICE9IGRvY3VtZW50LmlkZW50
aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgdW5yZWdpc3RlclJlc2VydmVkU2VydmljZVdv
cmtlckNsaWVudCgpOworICAgICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyVG9Mb2FkZXJNYXAoKS5yZW1vdmUoKm1fcmVzdWx0aW5nQ2xpZW50SWQpOworICAgICAg
ICAgICAgICAgIG1fcmVzdWx0aW5nQ2xpZW50SWQgPSB7IH07CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICNlbmRpZgogICAgICAgICAvLyBDYWxsIHJlY2VpdmVkRmlyc3REYXRhKCkgZXhhY3Rs
eSBvbmNlIHBlciBsb2FkLiBXZSBzaG91bGQgb25seSByZWFjaCB0aGlzIHBvaW50IG11bHRpcGxl
IHRpbWVzCkBAIC0yMDY2LDE0ICsyMDc3LDE0IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnN0YXJ0
TG9hZGluZ01haW5SZXNvdXJjZSgpCiAgICAgfSk7CiB9CiAKLXZvaWQgRG9jdW1lbnRMb2FkZXI6
OnVucmVnaXN0ZXJUZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50KCkKK3ZvaWQgRG9jdW1lbnRM
b2FkZXI6OnVucmVnaXN0ZXJSZXNlcnZlZFNlcnZpY2VXb3JrZXJDbGllbnQoKQogewogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBpZiAoIW1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNs
aWVudCB8fCAhUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXJ2aWNl
V29ya2VyRW5hYmxlZCgpKQorICAgIGlmICghbV9yZXN1bHRpbmdDbGllbnRJZCB8fCAhUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXJ2aWNlV29ya2VyRW5hYmxlZCgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvJiBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiA9
IFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rp
b24oKTsKLSAgICBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi51bnJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudCgqbV90ZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50KTsKKyAgICBzZXJ2aWNlV29y
a2VyQ29ubmVjdGlvbi51bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCgqbV9yZXN1bHRpbmdD
bGllbnRJZCk7CiAjZW5kaWYKIH0KIApAQCAtMjA5MiwxNSArMjEwMywxNiBAQCB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpsb2FkTWFpblJlc291cmNlKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiAg
ICAgICAgIENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjaywK
ICAgICAgICAgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNMb2FkaW5nLAogICAgICAg
ICBDYWNoaW5nUG9saWN5OjpBbGxvd0NhY2hpbmcpOworCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQotICAgIGlmICghbV90ZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50KSB7Ci0gICAgICAg
IC8vIFRoZSBtYWluIG5hdmlnYXRpb24gbG9hZCB3aWxsIHRyaWdnZXIgdGhlIHJlZ2lzdHJhdGlv
biBvZiB0aGUgdGVtcCBjbGllbnQuCi0gICAgICAgIG1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNs
aWVudCA9IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAg
ICAgICBBU1NFUlQoIXRlbXBvcmFyeUlkZW50aWZpZXJUb0xvYWRlck1hcCgpLmNvbnRhaW5zKCpt
X3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQpKTsKLSAgICAgICAgdGVtcG9yYXJ5SWRlbnRp
ZmllclRvTG9hZGVyTWFwKCkuYWRkKCptX3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQsIHRo
aXMpOwotICAgIH0KLSAgICBtYWluUmVzb3VyY2VMb2FkT3B0aW9ucy5jbGllbnRJZGVudGlmaWVy
ID0gbV90ZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50OworICAgIC8vIFRoZSBtYWluIG5hdmln
YXRpb24gbG9hZCB3aWxsIHRyaWdnZXIgdGhlIHJlZ2lzdHJhdGlvbiBvZiB0aGUgY2xpZW50Lgor
ICAgIGlmIChtX3Jlc3VsdGluZ0NsaWVudElkKQorICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllclRvTG9hZGVyTWFwKCkucmVtb3ZlKCptX3Jlc3VsdGluZ0NsaWVudElkKTsK
KyAgICBtX3Jlc3VsdGluZ0NsaWVudElkID0gU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXI6OmdlbmVyYXRlKCk7CisgICAgQVNTRVJUKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllclRvTG9hZGVyTWFwKCkuY29udGFpbnMoKm1fcmVzdWx0aW5nQ2xpZW50SWQpKTsKKyAgICBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclRvTG9hZGVyTWFwKCkuYWRkKCptX3Jlc3Vs
dGluZ0NsaWVudElkLCB0aGlzKTsKICNlbmRpZgorCiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
IG1haW5SZXNvdXJjZVJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSwgbWFpblJlc291cmNlTG9hZE9w
dGlvbnMpOwogICAgIGlmICghbV9mcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBtX2ZyYW1lLT5kb2N1
bWVudCgpKSB7CiAgICAgICAgIC8vIElmIHdlIGFyZSBsb2FkaW5nIHRoZSBtYWluIHJlc291cmNl
IG9mIGEgc3ViZnJhbWUsIHVzZSB0aGUgY2FjaGUgcGFydGl0aW9uIG9mIHRoZSBtYWluIGRvY3Vt
ZW50LgpAQCAtMjIxMiw3ICsyMjI0LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y2xlYXJNYWlu
UmVzb3VyY2UoKQogICAgIG1fbWFpblJlc291cmNlID0gbnVsbHB0cjsKICAgICBtX2lzQ29udGlu
dWluZ0xvYWRBZnRlclByb3Zpc2lvbmFsTG9hZFN0YXJ0ZWQgPSBmYWxzZTsKIAotICAgIHVucmVn
aXN0ZXJUZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50KCk7CisgICAgdW5yZWdpc3RlclJlc2Vy
dmVkU2VydmljZVdvcmtlckNsaWVudCgpOwogfQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpzdWJy
ZXNvdXJjZUxvYWRlckZpbmlzaGVkTG9hZGluZ09uZVBhcnQoUmVzb3VyY2VMb2FkZXImIGxvYWRl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKaW5kZXggMjhlMjhhNjg4YWU2
YjU3ZTBmMGQxNGM0ZTdhMGMyNTU4Y2I2N2U0MS4uYzAwMTFmYWUyNjYyODljMTUzOGU3OTkzNGNi
M2M0OGZkY2U4NTI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKQEAg
LTE3MSw3ICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERv
Y3VtZW50TG9hZGVyKHJlcXVlc3QsIGRhdGEpKTsKICAgICB9CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgRG9jdW1lbnRMb2FkZXIqIGZyb21UZW1wb3JhcnlEb2N1bWVudElkZW50aWZpZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBEb2N1bWVudExvYWRlciogZnJvbVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgfkRvY3VtZW50TG9hZGVyKCk7CiAKQEAgLTQzOSw2ICs0MzksNyBAQCBwdWJsaWM6
CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBz
ZXRDb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGEmJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gcmVzdWx0aW5nQ2xpZW50SWQoKSBjb25zdDsKICNl
bmRpZgogCiAgICAgYm9vbCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQ7IH0KQEAgLTQ2OCw3ICs0Njks
NyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICB2b2lkIG1hdGNo
UmVnaXN0cmF0aW9uKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRp
b25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mJik+JiYpOwogI2VuZGlmCi0gICAg
dm9pZCB1bnJlZ2lzdGVyVGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCgpOworICAgIHZvaWQg
dW5yZWdpc3RlclJlc2VydmVkU2VydmljZVdvcmtlckNsaWVudCgpOwogCiAgICAgc3RkOjpvcHRp
b25hbDxDcm9zc09yaWdpbk9wZW5lclBvbGljeUVuZm9yY2VtZW50UmVzdWx0PiBkb0Nyb3NzT3Jp
Z2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKIApA
QCAtNjg4LDcgKzY4OSw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4gbV9zZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YTsKLSAgICBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyPiBtX3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQ7Cisg
ICAgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gbV9yZXN1
bHRpbmdDbGllbnRJZDsKICNlbmRpZgogCiAjaWYgQVNTRVJUX0VOQUJMRUQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IDRmZjkzODE4MGZkZDI4ZmM3MTVkMDg4
ODE2MDhmYzYyODk0OTJlOWEuLmM4NWY4Y2VkNzljM2UzODZhOGE3NGViNzcyYmEyNDgzNzc5OWMy
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApAQCAtMTEyLDcg
KzExMiw3IEBAIGJvb2wgRG9jdW1lbnRXcml0ZXI6OmJlZ2luKCkKICAgICByZXR1cm4gYmVnaW4o
VVJMKCkpOwogfQogCi1SZWY8RG9jdW1lbnQ+IERvY3VtZW50V3JpdGVyOjpjcmVhdGVEb2N1bWVu
dChjb25zdCBVUkwmIHVybCkKK1JlZjxEb2N1bWVudD4gRG9jdW1lbnRXcml0ZXI6OmNyZWF0ZURv
Y3VtZW50KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyPiYgZG9jdW1lbnRJZGVudGlmaWVyKQogewogICAgIGlmICghbV9m
cmFtZS0+bG9hZGVyKCkuc3RhdGVNYWNoaW5lKCkuaXNEaXNwbGF5aW5nSW5pdGlhbEVtcHR5RG9j
dW1lbnQoKSAmJiBtX2ZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5zaG91bGRBbHdheXNVc2VQbHVn
aW5Eb2N1bWVudChtX21pbWVUeXBlKSkKICAgICAgICAgcmV0dXJuIFBsdWdpbkRvY3VtZW50Ojpj
cmVhdGUoKm1fZnJhbWUsIHVybCk7CkBAIC0xMjIsMTAgKzEyMiwxMCBAQCBSZWY8RG9jdW1lbnQ+
IERvY3VtZW50V3JpdGVyOjpjcmVhdGVEb2N1bWVudChjb25zdCBVUkwmIHVybCkKICNlbmRpZgog
ICAgIGlmICghbV9mcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuaGFzSFRNTFZpZXcoKSkKICAgICAg
ICAgcmV0dXJuIERvY3VtZW50OjpjcmVhdGVOb25SZW5kZXJlZFBsYWNlaG9sZGVyKCptX2ZyYW1l
LCB1cmwpOwotICAgIHJldHVybiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQobV9t
aW1lVHlwZSwgbV9mcmFtZS5nZXQoKSwgbV9mcmFtZS0+c2V0dGluZ3MoKSwgdXJsKTsKKyAgICBy
ZXR1cm4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KG1fbWltZVR5cGUsIG1fZnJh
bWUuZ2V0KCksIG1fZnJhbWUtPnNldHRpbmdzKCksIHVybCwgZG9jdW1lbnRJZGVudGlmaWVyKTsK
IH0KIAotYm9vbCBEb2N1bWVudFdyaXRlcjo6YmVnaW4oY29uc3QgVVJMJiB1cmxSZWZlcmVuY2Us
IGJvb2wgZGlzcGF0Y2gsIERvY3VtZW50KiBvd25lckRvY3VtZW50KQorYm9vbCBEb2N1bWVudFdy
aXRlcjo6YmVnaW4oY29uc3QgVVJMJiB1cmxSZWZlcmVuY2UsIGJvb2wgZGlzcGF0Y2gsIERvY3Vt
ZW50KiBvd25lckRvY3VtZW50LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyPiYgZG9jdW1lbnRJZGVudGlmaWVyKQogewogICAgIC8vIFdlIGdyYWIg
YSBsb2NhbCBjb3B5IG9mIHRoZSBVUkwgYmVjYXVzZSBpdCdzIGVhc3kgZm9yIGNhbGxlcnMgdG8g
c3VwcGx5CiAgICAgLy8gYSBVUkwgdGhhdCB3aWxsIGJlIGRlYWxsb2NhdGVkIGR1cmluZyB0aGUg
ZXhlY3V0aW9uIG9mIHRoaXMgZnVuY3Rpb24uCkBAIC0xMzQsNyArMTM0LDcgQEAgYm9vbCBEb2N1
bWVudFdyaXRlcjo6YmVnaW4oY29uc3QgVVJMJiB1cmxSZWZlcmVuY2UsIGJvb2wgZGlzcGF0Y2gs
IERvY3VtZW50KiBvd24KIAogICAgIC8vIENyZWF0ZSBhIG5ldyBkb2N1bWVudCBiZWZvcmUgY2xl
YXJpbmcgdGhlIGZyYW1lLCBiZWNhdXNlIGl0IG1heSBuZWVkIHRvCiAgICAgLy8gaW5oZXJpdCBh
biBhbGlhc2VkIHNlY3VyaXR5IGNvbnRleHQuCi0gICAgUmVmPERvY3VtZW50PiBkb2N1bWVudCA9
IGNyZWF0ZURvY3VtZW50KHVybCk7CisgICAgUmVmPERvY3VtZW50PiBkb2N1bWVudCA9IGNyZWF0
ZURvY3VtZW50KHVybCwgZG9jdW1lbnRJZGVudGlmaWVyKTsKICAgICAKICAgICAvLyBJZiB0aGUg
bmV3IGRvY3VtZW50IGlzIGZvciBhIFBsdWdpbiBidXQgd2UncmUgc3VwcG9zZWQgdG8gYmUgc2Fu
ZGJveGVkIGZyb20gUGx1Z2lucywKICAgICAvLyB0aGVuIHJlcGxhY2UgdGhlIGRvY3VtZW50IHdp
dGggb25lIHdob3NlIHBhcnNlciB3aWxsIGlnbm9yZSB0aGUgaW5jb21pbmcgZGF0YSAoYnVnIDM5
MzIzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuaAppbmRleCBjMGEzNGE2Yjdl
OWNmZTk2NDMwNDVhOTVlNzkzMjI1MjM2M2IyNjhiLi4xNmI3MWU5NTE1YjdhMDhmM2IzZDgzMTdl
NmNkZGYzNjM0ZjY4MWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRXcml0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuaApA
QCAtMjgsNiArMjgsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDcsNyArNDgsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZXBsYWNlRG9jdW1lbnRXaXRoUmVzdWx0T2ZFeGVjdXRpbmdKYXZhc2NyaXB0VVJM
KGNvbnN0IFN0cmluZyYsIERvY3VtZW50KiBvd25lckRvY3VtZW50KTsKIAogICAgIGJvb2wgYmVn
aW4oKTsKLSAgICBib29sIGJlZ2luKGNvbnN0IFVSTCYsIGJvb2wgZGlzcGF0Y2hXaW5kb3dPYmpl
Y3RBdmFpbGFibGUgPSB0cnVlLCBEb2N1bWVudCogb3duZXJEb2N1bWVudCA9IG51bGxwdHIpOwor
ICAgIGJvb2wgYmVnaW4oY29uc3QgVVJMJiwgYm9vbCBkaXNwYXRjaFdpbmRvd09iamVjdEF2YWls
YWJsZSA9IHRydWUsIERvY3VtZW50KiBvd25lckRvY3VtZW50ID0gbnVsbHB0ciwgY29uc3Qgc3Rk
OjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mID0geyB9KTsKICAg
ICB2b2lkIGFkZERhdGEoY29uc3QgU2hhcmVkQnVmZmVyJik7CiAgICAgdm9pZCBpbnNlcnREYXRh
U3luY2hyb25vdXNseShjb25zdCBTdHJpbmcmKTsgLy8gRm9yIGFuIGludGVybmFsIHVzZSBvbmx5
IHRvIHByZXZlbnQgdGhlIHBhcnNlciBmcm9tIHlpZWxkaW5nLgogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZW5kKCk7CkBAIC02Nyw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERvY3Vt
ZW50V2FzTG9hZGVkQXNQYXJ0T2ZOYXZpZ2F0aW9uKCk7CiAKIHByaXZhdGU6Ci0gICAgUmVmPERv
Y3VtZW50PiBjcmVhdGVEb2N1bWVudChjb25zdCBVUkwmKTsKKyAgICBSZWY8RG9jdW1lbnQ+IGNy
ZWF0ZURvY3VtZW50KGNvbnN0IFVSTCYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXI+Jik7CiAgICAgdm9pZCBjbGVhcigpOwogCiAgICAgV2Vha1B0
cjxGcmFtZT4gbV9mcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaW5r
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5jcHAKaW5k
ZXggYTY4NzExZjZjMjE5ZjdhNDhhYjNhNmUxNmY1NWViMGU2NDA1ZmMyNy4uYTM3ZDNjNmNkMzQ3
MDA5ZDAyNmNiNGEyYjk0MmYyZWIyNzgzMWEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1NpbmtEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1NpbmtE
b2N1bWVudC5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKIH07CiAKIFNpbmtEb2N1bWVu
dDo6U2lua0RvY3VtZW50KEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCi0gICAgOiBIVE1M
RG9jdW1lbnQoJmZyYW1lLCBmcmFtZS5zZXR0aW5ncygpLCB1cmwpCisgICAgOiBIVE1MRG9jdW1l
bnQoJmZyYW1lLCBmcmFtZS5zZXR0aW5ncygpLCB1cmwsIHsgfSkKIHsKICAgICBzZXRDb21wYXRp
YmlsaXR5TW9kZShEb2N1bWVudENvbXBhdGliaWxpdHlNb2RlOjpRdWlya3NNb2RlKTsKICAgICBs
b2NrQ29tcGF0aWJpbGl0eU1vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9GZXRjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9GZXRjaEV2ZW50LmNwcAppbmRleCA1NWQzMzA3YTQ0MDlkN2M2YWJmODg1ODc4ODQ5YmI1Zjlj
YzE3OTRhLi5lN2FlMWE4YzY4YjAwMTcxM2QxNzc1YTI0MmU5NGJjNjE2MGZmZDVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwCkBAIC02Miw3ICs2
Miw2IEBAIEZldGNoRXZlbnQ6OkZldGNoRXZlbnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgZ2xvYmFs
T2JqZWN0LCBjb25zdCBBdG9tU3RyaW5nJiB0eXBlCiAgICAgLCBtX3JlcXVlc3QoaW5pdGlhbGl6
ZXIucmVxdWVzdC5yZWxlYXNlTm9uTnVsbCgpKQogICAgICwgbV9jbGllbnRJZChXVEZNb3ZlKGlu
aXRpYWxpemVyLmNsaWVudElkKSkKICAgICAsIG1fcmVzdWx0aW5nQ2xpZW50SWQoV1RGTW92ZShp
bml0aWFsaXplci5yZXN1bHRpbmdDbGllbnRJZCkpCi0gICAgLCBtX3RhcmdldENsaWVudElkKFdU
Rk1vdmUoaW5pdGlhbGl6ZXIudGFyZ2V0Q2xpZW50SWQpKQogICAgICwgbV9oYW5kbGVkKHJldHJp
ZXZlSGFuZGxlZFByb21pc2UoZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGluaXRpYWxpemVyLmhhbmRs
ZWQpKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9G
ZXRjaEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5o
CmluZGV4IGM1M2ZkNTZhOWZlODI5M2Y3ODcxOTE4NjZiZTY0ZDk1YTZiMGUwNzEuLjVmNTk2ZjJi
NDQ1NTBmNDFiYzM1NjBkYWNmM2UzYTNiYTdlNTlkMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaApAQCAtNTAsNyArNTAsNiBAQCBwdWJsaWM6CiAgICAg
ICAgIFJlZlB0cjxGZXRjaFJlcXVlc3Q+IHJlcXVlc3Q7CiAgICAgICAgIFN0cmluZyBjbGllbnRJ
ZDsKICAgICAgICAgU3RyaW5nIHJlc3VsdGluZ0NsaWVudElkOwotICAgICAgICBTdHJpbmcgdGFy
Z2V0Q2xpZW50SWQ7CiAgICAgICAgIFJlZlB0cjxET01Qcm9taXNlPiBoYW5kbGVkOwogICAgIH07
CiAKQEAgLTcyLDcgKzcxLDYgQEAgcHVibGljOgogICAgIEZldGNoUmVxdWVzdCYgcmVxdWVzdCgp
IHsgcmV0dXJuIG1fcmVxdWVzdC5nZXQoKTsgfQogICAgIGNvbnN0IFN0cmluZyYgY2xpZW50SWQo
KSBjb25zdCB7IHJldHVybiBtX2NsaWVudElkOyB9CiAgICAgY29uc3QgU3RyaW5nJiByZXN1bHRp
bmdDbGllbnRJZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0aW5nQ2xpZW50SWQ7IH0KLSAgICBj
b25zdCBTdHJpbmcmIHRhcmdldENsaWVudElkKCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRDbGll
bnRJZDsgfQogICAgIERPTVByb21pc2UmIGhhbmRsZWQoKSBjb25zdCB7IHJldHVybiBtX2hhbmRs
ZWQuZ2V0KCk7IH0KIAogICAgIGJvb2wgcmVzcG9uZFdpdGhFbnRlcmVkKCkgY29uc3QgeyByZXR1
cm4gbV9yZXNwb25kV2l0aEVudGVyZWQ7IH0KQEAgLTk0LDcgKzkyLDYgQEAgcHJpdmF0ZToKICAg
ICBSZWY8RmV0Y2hSZXF1ZXN0PiBtX3JlcXVlc3Q7CiAgICAgU3RyaW5nIG1fY2xpZW50SWQ7CiAg
ICAgU3RyaW5nIG1fcmVzdWx0aW5nQ2xpZW50SWQ7Ci0gICAgU3RyaW5nIG1fdGFyZ2V0Q2xpZW50
SWQ7CiAKICAgICBib29sIG1fcmVzcG9uZFdpdGhFbnRlcmVkIHsgZmFsc2UgfTsKICAgICBib29s
IG1fd2FpdFRvUmVzcG9uZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvRmV0Y2hFdmVudC5pZGwKaW5kZXggNWFhY2M1ZGU1ZGEzNmZlNTI5NTNiYzgxYTQzZTE2
ZTBjOGIyNmMxMC4uYTdiOGVkMjUxNjgyNTIxYmYyNTYzNGI5NmU1NjY1YmRhNWViODdhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbApAQCAtMzYs
NyArMzYsNiBAQAogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBFbmFibGVk
QnlTZXR0aW5nPVNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWRdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBQcm9taXNlPGFueT4gcHJlbG9hZFJlc3BvbnNlOwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgY2xpZW50SWQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyByZXN1bHRpbmdDbGllbnRJZDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHRhcmdldENsaWVudElkOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlPHVuZGVmaW5l
ZD4gaGFuZGxlZDsKIAogICAgIHVuZGVmaW5lZCByZXNwb25kV2l0aChQcm9taXNlPEZldGNoUmVz
cG9uc2U+IHIpOwpAQCAtNDYsNiArNDUsNSBAQCBkaWN0aW9uYXJ5IEZldGNoRXZlbnRJbml0IDog
RXh0ZW5kYWJsZUV2ZW50SW5pdCB7CiAgICAgcmVxdWlyZWQgRmV0Y2hSZXF1ZXN0IHJlcXVlc3Q7
CiAgICAgRE9NU3RyaW5nIGNsaWVudElkID0gIiI7CiAgICAgRE9NU3RyaW5nIHJlc3VsdGluZ0Ns
aWVudElkID0gIiI7Ci0gICAgRE9NU3RyaW5nIHRhcmdldENsaWVudElkID0gIiI7CiAgICAgUHJv
bWlzZTx1bmRlZmluZWQ+IGhhbmRsZWQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRleCA3OWJkZjQ2ODljZjc1MDg1NmY5
OTUzNjdkYjExMzg0ZWMxYzE4M2NkLi44Njk3ZTk5N2JjYzQ1NzRlNzRiMDY0YzkwMjZkMTRkZTBi
N2QxNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmNwcApAQCAtOTQyLDcgKzk0MiwxMyBAQCB2b2lkIFNXU2VydmVyOjpyZWdpc3Rl
clNlcnZpY2VXb3JrZXJDbGllbnQoQ2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBTZXJ2aWNl
VwogICAgICAgICAgICAgdXBkYXRlQXBwSW5pdGlhdGVkVmFsdWVGb3JXb3JrZXJzKGNsaWVudE9y
aWdpbiwgZGF0YS5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCk7CiAgICAgfQogCi0gICAg
bV92aXNpYmxlQ2xpZW50SWRUb0ludGVybmFsQ2xpZW50SWRNYXAuYWRkKGRhdGEuaWRlbnRpZmll
ci5vYmplY3QoKS50b1N0cmluZygpLCBjbGllbnRJZGVudGlmaWVyKTsKKyAgICBhdXRvIGFkZFJl
c3VsdCA9IG1fdmlzaWJsZUNsaWVudElkVG9JbnRlcm5hbENsaWVudElkTWFwLmFkZChkYXRhLmlk
ZW50aWZpZXIub2JqZWN0KCkudG9TdHJpbmcoKSwgY2xpZW50SWRlbnRpZmllcik7CisgICAgaWYg
KCFhZGRSZXN1bHQuaXNOZXdFbnRyeSkgeworICAgICAgICBBU1NFUlQobV92aXNpYmxlQ2xpZW50
SWRUb0ludGVybmFsQ2xpZW50SWRNYXAuZ2V0KGRhdGEuaWRlbnRpZmllci5vYmplY3QoKS50b1N0
cmluZygpKSA9PSBjbGllbnRJZGVudGlmaWVyKTsKKyAgICAgICAgQVNTRVJUKG1fY2xpZW50c0J5
SWQuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOworICAgICAgICBtX2NsaWVudHNCeUlkLnNl
dChjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGEpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KIAogICAgIEFTU0VSVCghbV9jbGllbnRzQnlJZC5jb250YWlucyhjbGllbnRJZGVudGlmaWVy
KSk7CiAgICAgbV9jbGllbnRzQnlJZC5hZGQoY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRh
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBlYjM1MjA3ZTdhOTJi
ZjliNjgyZmMxMTBkNDk0NjlmNGNmMzZhZDBmLi44OTVkYzlkMDg1NTBhZDYwOGU1OTc5YzcwOGQ1
YTlhYTBhNTQ0YjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTE4
MSw3ICsxODEsNyBAQCBFeGNlcHRpb25PcjxEb2N1bWVudCo+IFhNTEh0dHBSZXF1ZXN0OjpyZXNw
b25zZVhNTCgpCiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSBudWxscHRyOwogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKGlzSFRNTCkKLSAgICAgICAgICAgICAgICBt
X3Jlc3BvbnNlRG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShudWxscHRyLCBjb250ZXh0
LnNldHRpbmdzKCksIG1fcmVzcG9uc2UudXJsKCkpOworICAgICAgICAgICAgICAgIG1fcmVzcG9u
c2VEb2N1bWVudCA9IEhUTUxEb2N1bWVudDo6Y3JlYXRlKG51bGxwdHIsIGNvbnRleHQuc2V0dGlu
Z3MoKSwgbV9yZXNwb25zZS51cmwoKSwgeyB9KTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSBYTUxEb2N1bWVudDo6Y3JlYXRlKG51bGxwdHIs
IGNvbnRleHQuc2V0dGluZ3MoKSwgbV9yZXNwb25zZS51cmwoKSk7CiAgICAgICAgICAgICBtX3Jl
c3BvbnNlRG9jdW1lbnQtPm92ZXJyaWRlTGFzdE1vZGlmaWVkKG1fcmVzcG9uc2UubGFzdE1vZGlm
aWVkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
TG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
TG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDZmNjc3ZWVmNGU2ODU5Y2U1ZDQwODBlMWVjOTVlN2I3
Yjk1MTQ3MDcuLmIwMzI0MTk0MTlmMDAzMzljYWY4MzU2NWU5MTlkOGNhZWQ5NDI1ZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJh
dGVneS5jcHAKQEAgLTQ0MSw2ICs0NDEsMTEgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2No
ZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwKICAg
ICAgICAgZm9yIChhdXRvKiBmcmFtZSA9IHJlc291cmNlTG9hZGVyLmZyYW1lKCktPnRyZWUoKS5w
YXJlbnQoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS5wYXJlbnQoKSkKICAgICAgICAg
ICAgIGZyYW1lQW5jZXN0b3JPcmlnaW5zLmFwcGVuZCgmZnJhbWUtPmRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCkpOwogICAgICAgICBsb2FkUGFyYW1ldGVycy5mcmFtZUFuY2VzdG9yT3JpZ2lu
cyA9IFdURk1vdmUoZnJhbWVBbmNlc3Rvck9yaWdpbnMpOworCisjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQorICAgICAgICBpZiAoYXV0byogZG9jdW1lbnRMb2FkZXIgPSByZXNvdXJjZUxvYWRl
ci5kb2N1bWVudExvYWRlcigpKQorICAgICAgICAgICAgbG9hZFBhcmFtZXRlcnMub3B0aW9ucy5j
bGllbnRJZGVudGlmaWVyID0gc3RhdGljX2Nhc3Q8V2ViRG9jdW1lbnRMb2FkZXImPigqZG9jdW1l
bnRMb2FkZXIpLnJlc3VsdGluZ0NsaWVudElkKCk7CisjZW5kaWYKICAgICB9CiAKICAgICBBU1NF
UlQoKGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCAmJiBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlE
KSB8fCBsb2FkUGFyYW1ldGVycy5jbGllbnRDcmVkZW50aWFsUG9saWN5ID09IENsaWVudENyZWRl
bnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uY3BwCmluZGV4IDE4MjYwNWI4ZTBlMzJlZjA1YTM5MWZjYzA5M2IwNDQ1ZjdkMDY2YTEuLjA5
ZjY2NWVlYzllZWEzZTE0OWUwNjE3YjFhM2Q2YjYwOGVlYzQ1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmNwcApAQCAtMTc4LDcgKzE3OCw3IEBAIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjp3aGVu
UmVnaXN0cmF0aW9uUmVhZHkoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPCiAKIHZvaWQg
V2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXREb2N1bWVudElzQ29udHJvbGxlZChTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EYXRhJiYgZGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBhdXRvKiBkb2N1bWVudExvYWRlciA9IERvY3VtZW50
TG9hZGVyOjpmcm9tVGVtcG9yYXJ5RG9jdW1lbnRJZGVudGlmaWVyKGRvY3VtZW50SWRlbnRpZmll
cik7CisgICAgYXV0byogZG9jdW1lbnRMb2FkZXIgPSBEb2N1bWVudExvYWRlcjo6ZnJvbVNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKGRvY3VtZW50SWRlbnRpZmllcik7CiAgICAgYm9v
bCByZXN1bHQgPSBkb2N1bWVudExvYWRlciA/IGRvY3VtZW50TG9hZGVyLT5zZXRDb250cm9sbGlu
Z1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oV1RGTW92ZShkYXRhKSkgOiBmYWxzZTsKICAgICBj
b21wbGV0aW9uSGFuZGxlcihyZXN1bHQpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
aW5kZXggZTJkNGI4YzIwZWViNTA4YTE4ZmQ2MTllYTYxYTM4MGFiMDM0YTZkNS4uMDJhYTYyOWJm
M2Q2OGZlYmRmN2FiZDdiM2FhNTAzNTMzZGRmNmRjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDEtMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmUgY29tcHV0YXRpb24gb2Ygc2VydmljZSB3
b3JrZXIgRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MTA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0NsaWVudElkLmh0dHBz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2hp
c3RvcmljYWwuaHR0cHMuYW55LnNlcnZpY2V3b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIyLTAx
LTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFNl
cnZpY2VXb3JrZXJDbGllbnQuaWQgYSBVVUlEIGluc3RlYWQgb2YgYSBzdHJpbmcgZGVyaXZlZCBm
cm9tIGEgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0NsaWVudElkLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0NsaWVudElkLmh0
dHBzLWV4cGVjdGVkLnR4dAppbmRleCBkMmRmYjgzNGI5NGVhMDI2Zjg5YTcwZTBjZTgyYjJlZWJi
MWQ3NjMxLi44MmI3N2Q3ZjFmYjA3MDFkZjBhYjMxNDBkMTMwMjBlNjQ0ZDc5NmE1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC5odHRw
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQtcmVzdWx0
aW5nQ2xpZW50SWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOCBAQAogCiBQQVNTIGds
b2JhbCBzZXR1cAotRkFJTCBnZXQocmVzdWx0aW5nQ2xpZW50SWQpIGZvciBzYW1lLW9yaWdpbiBk
b2N1bWVudCBhc3NlcnRfZXF1YWxzOiBwcm9taXNlVmFsdWUgZXhwZWN0ZWQgImNsaWVudCIgYnV0
IGdvdCAidW5kZWZpbmVkVmFsdWUiCitQQVNTIGdldChyZXN1bHRpbmdDbGllbnRJZCkgZm9yIHNh
bWUtb3JpZ2luIGRvY3VtZW50CiBQQVNTIGdldChyZXN1bHRpbmdDbGllbnRJZCkgb24gY3Jvc3Mt
b3JpZ2luIHJlZGlyZWN0Ci1QQVNTIGdldChyZXN1bHRpbmdDbGllbnRJZCkgZm9yIGRvY3VtZW50
IHNhbmRib3hlZCBieSBDU1AgaGVhZGVyCi1GQUlMIGdldChyZXN1bHRpbmdDbGllbnRJZCkgZm9y
IGRvY3VtZW50IHNhbmRib3hlZCBieSBDU1AgaGVhZGVyIHdpdGggYWxsb3ctc2FtZS1vcmlnaW4g
YXNzZXJ0X2VxdWFsczogcHJvbWlzZVZhbHVlIGV4cGVjdGVkICJjbGllbnQiIGJ1dCBnb3QgInVu
ZGVmaW5lZFZhbHVlIgorRkFJTCBnZXQocmVzdWx0aW5nQ2xpZW50SWQpIGZvciBkb2N1bWVudCBz
YW5kYm94ZWQgYnkgQ1NQIGhlYWRlciBhc3NlcnRfZXF1YWxzOiBwcm9taXNlVmFsdWUgZXhwZWN0
ZWQgInVuZGVmaW5lZFZhbHVlIiBidXQgZ290ICJjbGllbnQiCitQQVNTIGdldChyZXN1bHRpbmdD
bGllbnRJZCkgZm9yIGRvY3VtZW50IHNhbmRib3hlZCBieSBDU1AgaGVhZGVyIHdpdGggYWxsb3ct
c2FtZS1vcmlnaW4KIFBBU1MgZ2xvYmFsIGNsZWFudXAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvY2xpZW50cy1nZXQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGZkZjZiZDJhNjYyNDFhNDQy
MjVhNDFjZDAyMDkzNzA5Njc3NWE4Y2YuLjgyOTE4YjQ1MTk0MjA2ODUxODIyN2Q3NmE1NmRiNDY0
OTY5ODc5MGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0dHBz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC5odHRwcy1l
eHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiAKIEZBSUwgVGVzdCBDbGllbnRzLmdldCgpIGFz
c2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5IDEgdG8gYmUgZmFsc2UgYnV0IGdv
dCB0cnVlIChleHBlY3RlZCBhcnJheSBbInZpc2libGUiLCBmYWxzZSwgImh0dHBzOi8vbG9jYWxo
b3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRz
LWdldC1mcmFtZS5odG1sIzIiLCAid2luZG93IiwgIm5lc3RlZCJdIGdvdCBbInZpc2libGUiLCB0
cnVlLCAiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LWZyYW1lLmh0bWwjMiIsICJ3aW5kb3ciLCAibmVzdGVk
Il0pCi1GQUlMIFRlc3Qgc3VjY2Vzc2Z1bCBDbGllbnRzLmdldChGZXRjaEV2ZW50LnJlc3VsdGlu
Z0NsaWVudElkKSBhc3NlcnRfZmFsc2U6IENsaWVudHMuZ2V0KEZldGNoRXZlbnQucmVzdWx0aW5n
Q2xpZW50SWQpIHJlc29sdmVkIHdpdGggYSBDbGllbnQgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUK
K1BBU1MgVGVzdCBzdWNjZXNzZnVsIENsaWVudHMuZ2V0KEZldGNoRXZlbnQucmVzdWx0aW5nQ2xp
ZW50SWQpCiBQQVNTIFRlc3QgdW5zdWNjZXNzZnVsIENsaWVudHMuZ2V0KEZldGNoRXZlbnQucmVz
dWx0aW5nQ2xpZW50SWQpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2hpc3Rvcmlj
YWwuaHR0cHMuYW55LnNlcnZpY2V3b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvaGlzdG9yaWNhbC5odHRwcy5hbnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXgg
ZDg5OTM5ODdiZWNlODBkZmYyZDEzMmExZDgyZTYxYTFmZWI5ODc5MS4uYWU4ZGVmY2YwOWJlY2Q0
MjdjY2U0NWRjMWQyZjhjNTMxMGNlMzVhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aGlzdG9yaWNhbC5odHRwcy5hbnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvaGlzdG9yaWNhbC5odHRwcy5hbnkuc2VydmljZXdvcmtlci1leHBlY3Rl
ZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgdGFyZ2V0Q2xpZW50SWQgc2hvdWxkIG5vdCBi
ZSBvbiBGZXRjaEV2ZW50IGFzc2VydF9mYWxzZTogZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BB
U1MgdGFyZ2V0Q2xpZW50SWQgc2hvdWxkIG5vdCBiZSBvbiBGZXRjaEV2ZW50CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449390</attachid>
            <date>2022-01-18 07:55:26 -0800</date>
            <delta_ts>2022-01-19 04:58:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235107-20220118165524.patch</filename>
            <type>text/plain</type>
            <size>45406</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWIzOGVkYjNjNGZjMjA1
Y2ZmMTZlNDY5NWU2ODI0OTQ0YWRmYzk4Zi4uZTVhYmVhNTc2OGVjZmQ3NjNjNmRmOGY3NWQxNzdk
OGNjZDVmMWVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIyLTAxLTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGNvbXB1dGF0
aW9uIG9mIHNlcnZpY2Ugd29ya2VyIEZldGNoRXZlbnQucmVzdWx0aW5nQ2xpZW50SWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTEwNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGFyZSBub3cgcGFz
c2luZyB0aGUgcmVzZXJ2ZWQgY2xpZW50IElEIGdlbmVyYXRlZCBieSBEb2N1bWVudExvYWRlciB0
byB0aGUgZ2VuZXJhdGVkIGRvY3VtZW50LgorICAgICAgICBQcmV2aW91c2x5LCB3ZSB3b3VsZCBy
ZWdpc3RlciBhIHRlbXBvcmFyeSBJRCB0aGF0IHdlIHdvdWxkIGRyb3AgbGF0ZXIgb24gd2hlbiBj
cmVhdGluZyBhIG5ldyBkb2N1bWVudC4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8gYmUgY2xvc2Vy
IHRvIHNwZWMsIHRob3VnaCB3ZSBuZWVkIHRvIGhhbmRsZSB0aGUgY2FzZSBvZiBhIGRvY3VtZW50
IHdob3NlIG9yaWdpbiBnZXRzIHVuaXF1ZQorICAgICAgICBkdWUgdG8gQ1NQIG9yIHNhbmRib3hp
bmcgbWFraW5nIGEgZG9jdW1lbnQgb3JpZ2luIHVuaXF1ZS4KKyAgICAgICAgV2UgYXJlIGFsc28g
cmVtb3ZpbmcgdGFyZ2V0Q2xpZW50SWQsIHdoaWNoIHdhcyByZW5hbWVkIGluIHRoZSBzcGVjIHRv
IHJlcGxhY2VzQ2xpZW50SWQgYnV0IGlzIGFsc28gbm90IGltcGxlbWVudGVkIGluIGFueSBicm93
c2VyIHlldC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50
YXRpb24uaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAg
ICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAgICAqIGh0bWwvRlRQRGly
ZWN0b3J5RG9jdW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmNwcDoKKyAg
ICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5oOgorICAgICAgICAqIGh0bWwvSW1hZ2VEb2N1bWVu
dC5jcHA6CisgICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50LmNwcDoKKyAgICAgICAgKiBodG1s
L01vZGVsRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvUGx1Z2luRG9jdW1lbnQuY3BwOgor
ICAgICAgICAqIGh0bWwvVGV4dERvY3VtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL1RleHREb2N1
bWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwOgorICAgICAg
ICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcDoKKyAgICAgICAg
KiBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvU2lua0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5jcHA6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2UvRmV0Y2hFdmVudC5pZGw6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlci5jcHA6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKwogMjAyMi0wMS0x
NyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZXNldCBzaG91bGQgaG9wIHRvIHRoZSBtYWluIHRo
cmVhZCBiZWZvcmUgY2FsbGluZyBpdHMgb2JzZXJ2ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkyZDY3MDRiOGUw
M2JiNTIwNGM1MmIyOWRlMmI3YzcxZGU5MGMwMTkuLjhmM2E2Nzk4MDI1N2IxMTg3YmFiMGYyNDkz
OGI0NTM3NzYyNTY2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDEtMTcgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmUgY29tcHV0
YXRpb24gb2Ygc2VydmljZSB3b3JrZXIgRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MTA3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorCiAyMDIyLTAxLTE3ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBCYXNlQXVkaW9TaGFyZWRVbml0Ojpk
ZXZpY2VzQ2hhbmdlZCBpcyBmYWlsaW5nIGNhcHR1cmUgdG9vIG11Y2ggaW4gR1BVUHJvY2Vzcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggYTI4NTc1MmNjNjhm
NjhjOGMzZDdiYzY2NDY1N2JhY2IwNTUyZWZmNC4uNGZiYTNkNTc5YjU0ODMzNmIwZWFlZjc2M2Vl
ODU0YjY2ZTExYzA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3Bw
CkBAIC0xMjQsNyArMTI0LDcgQEAgUmVmPENTU1N0eWxlU2hlZXQ+IERPTUltcGxlbWVudGF0aW9u
OjpjcmVhdGVDU1NTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFMKIAogUmVmPEhUTUxE
b2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZUhUTUxEb2N1bWVudChjb25zdCBTdHJp
bmcmIHRpdGxlKQogewotICAgIGF1dG8gZG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShu
dWxscHRyLCBtX2RvY3VtZW50LnNldHRpbmdzKCksIFVSTCgpKTsKKyAgICBhdXRvIGRvY3VtZW50
ID0gSFRNTERvY3VtZW50OjpjcmVhdGUobnVsbHB0ciwgbV9kb2N1bWVudC5zZXR0aW5ncygpLCBV
UkwoKSwgeyB9KTsKICAgICBkb2N1bWVudC0+b3BlbigpOwogICAgIGRvY3VtZW50LT53cml0ZShu
dWxscHRyLCB7ICI8IWRvY3R5cGUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PC9ib2R5
PjwvaHRtbD4iX3MgfSk7CiAgICAgaWYgKCF0aXRsZS5pc051bGwoKSkgewpAQCAtMTM4LDcgKzEz
OCw3IEBAIFJlZjxIVE1MRG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVIVE1MRG9j
dW1lbnQoY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICByZXR1cm4gZG9jdW1lbnQ7CiB9CiAKLVJl
ZjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmlu
ZyYgY29udGVudFR5cGUsIEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBj
b25zdCBVUkwmIHVybCkKK1JlZjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURv
Y3VtZW50KGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0
dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVybCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mIGRvY3VtZW50SWRlbnRpZmllcikKIHsKICAg
ICAvLyBGSVhNRTogSW5lbGVnYW50IHRvIGhhdmUgdGhpcyBoZXJlIGp1c3QgYmVjYXVzZSB0aGlz
IGlzIHRoZSBob21lIG9mIERPTSBBUElzIGZvciBjcmVhdGluZyBkb2N1bWVudHMuCiAgICAgLy8g
VGhpcyBpcyBpbnRlcm5hbCwgbm90IGEgRE9NIEFQSS4gTWF5YmUgd2Ugc2hvdWxkIHB1dCBpdCBp
biBhIG5ldyBjbGFzcyBjYWxsZWQgRG9jdW1lbnRGYWN0b3J5LApAQCAtMTQ2LDExICsxNDYsMTEg
QEAgUmVmPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZSwgRnJhbWUKIAogICAgIC8vIFBsdWctaW5zIGNhbm5vdCB0YWtl
IG92ZXIgZm9yIEhUTUwsIFhIVE1MLCBwbGFpbiB0ZXh0LCBvciBub24tUERGIGltYWdlcy4KICAg
ICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoY29udGVudFR5cGUsICJ0ZXh0L2h0
bWwiKSkKLSAgICAgICAgcmV0dXJuIEhUTUxEb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCBzZXR0aW5n
cywgdXJsKTsKKyAgICAgICAgcmV0dXJuIEhUTUxEb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCBzZXR0
aW5ncywgdXJsLCBkb2N1bWVudElkZW50aWZpZXIpOwogICAgIGlmIChlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShjb250ZW50VHlwZSwgImFwcGxpY2F0aW9uL3hodG1sK3htbCIpKQogICAg
ICAgICByZXR1cm4gWE1MRG9jdW1lbnQ6OmNyZWF0ZVhIVE1MKGZyYW1lLCBzZXR0aW5ncywgdXJs
KTsKICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoY29udGVudFR5cGUsICJ0
ZXh0L3BsYWluIikpCi0gICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwg
c2V0dGluZ3MsIHVybCk7CisgICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQ6OmNyZWF0ZShmcmFt
ZSwgc2V0dGluZ3MsIHVybCwgZG9jdW1lbnRJZGVudGlmaWVyKTsKICAgICBib29sIGlzSW1hZ2Ug
PSBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEltYWdlTUlNRVR5cGUoY29udGVudFR5cGUp
OwogICAgIGlmIChmcmFtZSAmJiBpc0ltYWdlICYmICFNSU1FVHlwZVJlZ2lzdHJ5Ojppc1BERk9y
UG9zdFNjcmlwdE1JTUVUeXBlKGNvbnRlbnRUeXBlKSkKICAgICAgICAgcmV0dXJuIEltYWdlRG9j
dW1lbnQ6OmNyZWF0ZSgqZnJhbWUsIHVybCk7CkBAIC0xOTMsNyArMTkzLDcgQEAgUmVmPERvY3Vt
ZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBjb250
ZW50VHlwZSwgRnJhbWUKICAgICBpZiAoZnJhbWUgJiYgaXNJbWFnZSkKICAgICAgICAgcmV0dXJu
IEltYWdlRG9jdW1lbnQ6OmNyZWF0ZSgqZnJhbWUsIHVybCk7CiAgICAgaWYgKE1JTUVUeXBlUmVn
aXN0cnk6OmlzVGV4dE1JTUVUeXBlKGNvbnRlbnRUeXBlKSkKLSAgICAgICAgcmV0dXJuIFRleHRE
b2N1bWVudDo6Y3JlYXRlKGZyYW1lLCBzZXR0aW5ncywgdXJsKTsKKyAgICAgICAgcmV0dXJuIFRl
eHREb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCBzZXR0aW5ncywgdXJsLCBkb2N1bWVudElkZW50aWZp
ZXIpOwogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShjb250ZW50VHlwZSwg
ImltYWdlL3N2Zyt4bWwiKSkKICAgICAgICAgcmV0dXJuIFNWR0RvY3VtZW50OjpjcmVhdGUoZnJh
bWUsIHNldHRpbmdzLCB1cmwpOwogICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1hNTE1JTUVU
eXBlKGNvbnRlbnRUeXBlKSkgewpAQCAtMjAxLDcgKzIwMSw4IEBAIFJlZjxEb2N1bWVudD4gRE9N
SW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUs
IEZyYW1lCiAgICAgICAgIGRvY3VtZW50LT5vdmVycmlkZU1JTUVUeXBlKGNvbnRlbnRUeXBlKTsK
ICAgICAgICAgcmV0dXJuIGRvY3VtZW50OwogICAgIH0KLSAgICByZXR1cm4gSFRNTERvY3VtZW50
OjpjcmVhdGUoZnJhbWUsIHNldHRpbmdzLCB1cmwpOworCisgICAgcmV0dXJuIEhUTUxEb2N1bWVu
dDo6Y3JlYXRlKGZyYW1lLCBzZXR0aW5ncywgdXJsLCBkb2N1bWVudElkZW50aWZpZXIpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oCmluZGV4IDVkNjEyZDFhMWUx
MjYzN2VjZjY1N2JiODhiMzk4YjZjNTRmNDViNzYuLjk4NzhmZmFhNjkxNjVmNTMzYTRmMDAyNzAy
MTdiOTQ1NDcyNzA5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1l
bnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oCkBA
IC0yNCw2ICsyNCw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgi
CisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJYTUxEb2N1bWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Myw3ICs0NCw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBoYXNGZWF0dXJlKCkgeyByZXR1cm4gdHJ1ZTsgfQog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8Q1NTU3R5bGVTaGVldD4gY3JlYXRlQ1NTU3R5
bGVTaGVldChjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIG1lZGlhKTsKIAotICAg
IHN0YXRpYyBSZWY8RG9jdW1lbnQ+IGNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgY29udGVu
dFR5cGUsIEZyYW1lKiwgY29uc3QgU2V0dGluZ3MmLCBjb25zdCBVUkwmKTsKKyAgICBzdGF0aWMg
UmVmPERvY3VtZW50PiBjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBG
cmFtZSosIGNvbnN0IFNldHRpbmdzJiwgY29uc3QgVVJMJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mID0geyB9KTsKIAogcHJpdmF0ZToKICAg
ICBEb2N1bWVudCYgbV9kb2N1bWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDc4Y2Fh
YWU3ZDljNzIzNjIwNzY4YTQ0N2ZlYzI4ZThiODVjMTdiNzAuLjA3OTg5NDJjOGRmNmNjYjBiOWYx
OGJiY2JiMDBhYjZjZTAxODQwMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjA1LDkg
KzYwNSwxMCBAQCBzdGF0aWMgUmVmPENhY2hlZFJlc291cmNlTG9hZGVyPiBjcmVhdGVDYWNoZWRS
ZXNvdXJjZUxvYWRlcihGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIENhY2hlZFJlc291cmNlTG9h
ZGVyOjpjcmVhdGUobnVsbHB0cik7CiB9CiAKLURvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJh
bWUsIGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncywgY29uc3QgVVJMJiB1cmwsIERvY3VtZW50Q2xh
c3NlcyBkb2N1bWVudENsYXNzZXMsIHVuc2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdzKQorRG9jdW1l
bnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25z
dCBVUkwmIHVybCwgRG9jdW1lbnRDbGFzc2VzIGRvY3VtZW50Q2xhc3NlcywgdW5zaWduZWQgY29u
c3RydWN0aW9uRmxhZ3MsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXI+JiBpZGVudGlmaWVyKQogICAgIDogQ29udGFpbmVyTm9kZSgqdGhpcywgQ3Jl
YXRlRG9jdW1lbnQpCiAgICAgLCBUcmVlU2NvcGUoKnRoaXMpCisgICAgLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KGlkZW50aWZpZXIpCiAgICAgLCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoZnJh
bWUpCiAgICAgLCBtX3NldHRpbmdzKHNldHRpbmdzKQogICAgICwgbV9xdWlya3MobWFrZVVuaXF1
ZVJlZjxRdWlya3M+KCp0aGlzKSkKQEAgLTc1MDYsNyArNzUwNyw3IEBAIERvY3VtZW50JiBEb2N1
bWVudDo6ZW5zdXJlVGVtcGxhdGVEb2N1bWVudCgpCiAgICAgICAgIHJldHVybiBjb25zdF9jYXN0
PERvY3VtZW50Jj4oKmRvY3VtZW50KTsKIAogICAgIGlmIChpc0hUTUxEb2N1bWVudCgpKQotICAg
ICAgICBtX3RlbXBsYXRlRG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShudWxscHRyLCBt
X3NldHRpbmdzLCBhYm91dEJsYW5rVVJMKCkpOworICAgICAgICBtX3RlbXBsYXRlRG9jdW1lbnQg
PSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShudWxscHRyLCBtX3NldHRpbmdzLCBhYm91dEJsYW5rVVJM
KCksIHsgfSk7CiAgICAgZWxzZQogICAgICAgICBtX3RlbXBsYXRlRG9jdW1lbnQgPSBjcmVhdGUo
bV9zZXR0aW5ncywgYWJvdXRCbGFua1VSTCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAw
Nzc5MDRjOGE4MDEzN2ZjYzA1ZjYwMjUxYzE4YzhhYjMxNmFhMjExLi41ODJhMzkxZDUwMmMyNGI2
ZDI0MWQ5NWFmNjIwYmQzZDk2NTE0ZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTY3NSw3
ICsxNjc1LDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDb25zdHJ1Y3Rpb25G
bGFncyB7IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9IDEgPDwgMSB9
OwotICAgIFdFQkNPUkVfRVhQT1JUIERvY3VtZW50KEZyYW1lKiwgY29uc3QgU2V0dGluZ3MmLCBj
b25zdCBVUkwmLCBEb2N1bWVudENsYXNzZXMgPSB7IH0sIHVuc2lnbmVkIGNvbnN0cnVjdGlvbkZs
YWdzID0gMCk7CisgICAgV0VCQ09SRV9FWFBPUlQgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBTZXR0
aW5ncyYsIGNvbnN0IFVSTCYsIERvY3VtZW50Q2xhc3NlcyA9IHsgfSwgdW5zaWduZWQgY29uc3Ry
dWN0aW9uRmxhZ3MgPSAwLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyPiYgPSB7IH0pOwogCiAgICAgdm9pZCBjbGVhclhNTFZlcnNpb24oKSB7IG1f
eG1sVmVyc2lvbiA9IFN0cmluZygpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcAppbmRleCAyOWRjZWVmNTMzM2Y2OWRmMmU1ZjMwZWRlZmRkNjEz
NTc3ZmU2NGUxLi41MjI4NjhmODEwYzg2MzgxMTY2MDgzMDkzOTVkNzA1NzhmYzFhMzZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCkBAIC0xMTEs
MTAgKzExMSwxMSBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gbV9jYWxs
U3RhY2s7CiB9OwogCi1TY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkKLSAgICA6IG1faWRlbnRpZmllcihTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cjo6Z2VuZXJhdGUoKSkKK1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoY29uc3Qgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cj4mIGNvbnRleHRJZGVudGlmaWVyKQorICAgIDogbV9pZGVudGlmaWVyKGNvbnRleHRJZGVudGlm
aWVyLnZhbHVlX29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyOjpnZW5lcmF0ZSgp
KSkKIHsKICAgICBMb2NrZXIgbG9ja2VyIHsgYWxsU2NyaXB0RXhlY3V0aW9uQ29udGV4dHNNYXBM
b2NrIH07CisgICAgQVNTRVJUKCFhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcCgpLmNvbnRh
aW5zKG1faWRlbnRpZmllcikpOwogICAgIGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwKCku
YWRkKG1faWRlbnRpZmllciwgdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDM1MzNjMjBlMmVlNTc5NjBiNTRiZmUxNTM2ZGUzZmIy
ZjhjY2ExODYuLjc0NWQ5OTBkOWY5M2MyOWE0ZGIxYTFjNDI0ZWJhNzliZGNmOGU4YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtODksNyArODks
NyBAQCBjbGFzcyBJREJDb25uZWN0aW9uUHJveHk7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgOiBwdWJsaWMgU2VjdXJpdHlDb250ZXh0LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dD4gewogcHVibGljOgotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKKyAgICBleHBsaWNpdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnN0IHN0ZDo6b3B0
aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiA9IHsgfSk7CiAgICAgdmly
dHVhbCB+U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogCiAgICAgdmlydHVhbCBib29sIGlzRG9j
dW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZU
UERpcmVjdG9yeURvY3VtZW50LmNwcAppbmRleCA3NTIzMDE3YmE3Mjk0MDU2M2I3NWY0NjZhNjhl
ZDFjY2IzZGVlOGJhLi44NDRjZjYwNTIxZmI2NDE1NGM1Y2Y5NWUwYzU1NDk4MzdjNGZiZTJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcApAQCAtNDE4
LDcgKzQxOCw3IEBAIHZvaWQgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmZpbmlzaCgpCiB9
CiAKIEZUUERpcmVjdG9yeURvY3VtZW50OjpGVFBEaXJlY3RvcnlEb2N1bWVudChGcmFtZSogZnJh
bWUsIGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncywgY29uc3QgVVJMJiB1cmwpCi0gICAgOiBIVE1M
RG9jdW1lbnQoZnJhbWUsIHNldHRpbmdzLCB1cmwpCisgICAgOiBIVE1MRG9jdW1lbnQoZnJhbWUs
IHNldHRpbmdzLCB1cmwsIHsgfSkKIHsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTG9nRlRQLnN0
YXRlID0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50
LmNwcAppbmRleCBlZWRjNzc4ODU4NTEzMDYxYzkyYzA3MzZlM2IwNTVjNWVkYTgxMzQ4Li45Y2I4
NTY5YTViYTcyYjY1MmMzOGM2YzAzNzI0NjNjY2QyMDQwYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRG9jdW1lbnQuY3BwCkBAIC04OSwxMSArODksMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKIAogUmVmPEhUTUxEb2N1bWVudD4gSFRNTERvY3VtZW50OjpjcmVhdGVTeW50aGVzaXpl
ZERvY3VtZW50KEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSFRNTERvY3VtZW50KCZmcmFtZSwgZnJhbWUuc2V0dGluZ3MoKSwgdXJsLCB7
IERvY3VtZW50Q2xhc3M6OkhUTUwgfSwgU3ludGhlc2l6ZWQpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBIVE1MRG9jdW1lbnQoJmZyYW1lLCBmcmFtZS5zZXR0aW5ncygpLCB1cmwsIHsgfSwg
eyBEb2N1bWVudENsYXNzOjpIVE1MIH0sIFN5bnRoZXNpemVkKSk7CiB9CiAKLUhUTUxEb2N1bWVu
dDo6SFRNTERvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBj
b25zdCBVUkwmIHVybCwgRG9jdW1lbnRDbGFzc2VzIGRvY3VtZW50Q2xhc3NlcywgdW5zaWduZWQg
Y29uc3RydWN0aW9uRmxhZ3MpCi0gICAgOiBEb2N1bWVudChmcmFtZSwgc2V0dGluZ3MsIHVybCwg
ZG9jdW1lbnRDbGFzc2VzIHwgRG9jdW1lbnRDbGFzc2VzKERvY3VtZW50Q2xhc3M6OkhUTUwpLCBj
b25zdHJ1Y3Rpb25GbGFncykKK0hUTUxEb2N1bWVudDo6SFRNTERvY3VtZW50KEZyYW1lKiBmcmFt
ZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVybCwgY29uc3Qgc3RkOjpv
cHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mIGRvY3VtZW50SWRlbnRp
ZmllciwgRG9jdW1lbnRDbGFzc2VzIGRvY3VtZW50Q2xhc3NlcywgdW5zaWduZWQgY29uc3RydWN0
aW9uRmxhZ3MpCisgICAgOiBEb2N1bWVudChmcmFtZSwgc2V0dGluZ3MsIHVybCwgZG9jdW1lbnRD
bGFzc2VzIHwgRG9jdW1lbnRDbGFzc2VzKERvY3VtZW50Q2xhc3M6OkhUTUwpLCBjb25zdHJ1Y3Rp
b25GbGFncywgZG9jdW1lbnRJZGVudGlmaWVyKQogewogICAgIGNsZWFyWE1MVmVyc2lvbigpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgKaW5kZXggZTU3ZmE2NDU5MDQ2NGZmYTA5NzA5
NTMzNzdkMTAxYjBmMTVlMmVjNy4uYzhlOGFmYWE2NzFiZGJlYzEzMmUzZTQzODBlNjZhZGRlZTNj
YzgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oCkBAIC0yOSw3ICsyOSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEhUTUxEb2N1bWVudCA6IHB1YmxpYyBEb2N1bWVudCB7
CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChIVE1MRG9jdW1lbnQpOwogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8SFRNTERvY3VtZW50PiBjcmVhdGUoRnJhbWUqLCBjb25zdCBTZXR0aW5ncyYs
IGNvbnN0IFVSTCYpOworICAgIHN0YXRpYyBSZWY8SFRNTERvY3VtZW50PiBjcmVhdGUoRnJhbWUq
LCBjb25zdCBTZXR0aW5ncyYsIGNvbnN0IFVSTCYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiA9IHsgfSk7CiAgICAgc3RhdGljIFJlZjxIVE1M
RG9jdW1lbnQ+IGNyZWF0ZVN5bnRoZXNpemVkRG9jdW1lbnQoRnJhbWUmLCBjb25zdCBVUkwmKTsK
ICAgICB2aXJ0dWFsIH5IVE1MRG9jdW1lbnQoKTsKIApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIGJvb2wgaXNDYXNlU2Vuc2l0aXZlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKTsKIAogcHJvdGVjdGVkOgotICAgIEhUTUxEb2N1bWVudChGcmFtZSosIGNvbnN0IFNl
dHRpbmdzJiwgY29uc3QgVVJMJiwgRG9jdW1lbnRDbGFzc2VzID0geyB9LCB1bnNpZ25lZCBjb25z
dHJ1Y3Rpb25GbGFncyA9IDApOworICAgIEhUTUxEb2N1bWVudChGcmFtZSosIGNvbnN0IFNldHRp
bmdzJiwgY29uc3QgVVJMJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcj4mLCBEb2N1bWVudENsYXNzZXMgPSB7IH0sIHVuc2lnbmVkIGNvbnN0cnVj
dGlvbkZsYWdzID0gMCk7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc0ZyYW1lU2V0KCkgY29uc3Qg
ZmluYWw7CkBAIC02NSw5ICs2NSw5IEBAIHByaXZhdGU6CiAgICAgVHJlZVNjb3BlT3JkZXJlZE1h
cCBtX3dpbmRvd05hbWVkSXRlbTsKIH07CiAKLWlubGluZSBSZWY8SFRNTERvY3VtZW50PiBIVE1M
RG9jdW1lbnQ6OmNyZWF0ZShGcmFtZSogZnJhbWUsIGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncywg
Y29uc3QgVVJMJiB1cmwpCitpbmxpbmUgUmVmPEhUTUxEb2N1bWVudD4gSFRNTERvY3VtZW50Ojpj
cmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
PiYgaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MRG9jdW1lbnQo
ZnJhbWUsIHNldHRpbmdzLCB1cmwsIHsgRG9jdW1lbnRDbGFzczo6SFRNTCB9KSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSFRNTERvY3VtZW50KGZyYW1lLCBzZXR0aW5ncywgdXJsLCBpZGVu
dGlmaWVyLCB7IERvY3VtZW50Q2xhc3M6OkhUTUwgfSwgMCkpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAppbmRleCA0MzcwZDY4
MTg3MmQ5NWMxMGMwZjRlOTU5ZTE0NzQzOWFkNTc0NDBhLi40ZDEwZmIwNTc3MjQ2Mjg1NzY4ODUw
M2Q2NjQ3Njk3ZjBjYjA0YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdl
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAK
QEAgLTE5OCw3ICsxOTgsNyBAQCB2b2lkIEltYWdlRG9jdW1lbnRQYXJzZXI6OmZpbmlzaCgpCiB9
CiAKIEltYWdlRG9jdW1lbnQ6OkltYWdlRG9jdW1lbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwm
IHVybCkKLSAgICA6IEhUTUxEb2N1bWVudCgmZnJhbWUsIGZyYW1lLnNldHRpbmdzKCksIHVybCwg
eyBEb2N1bWVudENsYXNzOjpJbWFnZSB9KQorICAgIDogSFRNTERvY3VtZW50KCZmcmFtZSwgZnJh
bWUuc2V0dGluZ3MoKSwgdXJsLCB7IH0sIHsgRG9jdW1lbnRDbGFzczo6SW1hZ2UgfSkKICAgICAs
IG1faW1hZ2VFbGVtZW50KG51bGxwdHIpCiAgICAgLCBtX2ltYWdlU2l6ZUlzS25vd24oZmFsc2Up
CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50
LmNwcAppbmRleCA2YTI1MDFmN2ZkOWM1NzkzMTlhZmMyZjExNWNkM2U4OGQyOGYzZjRlLi5jMjUz
MWM3NDEwY2JiZTM3OTAzNGQ4ZDZhNGI3NmNmMTc5NDY3NDkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TWVkaWFEb2N1bWVudC5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIE1lZGlhRG9jdW1lbnRQ
YXJzZXI6OmFwcGVuZEJ5dGVzKERvY3VtZW50V3JpdGVyJiwgY29uc3QgdWludDhfdCosIHNpemVf
dCkKIH0KICAgICAKIE1lZGlhRG9jdW1lbnQ6Ok1lZGlhRG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBj
b25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJsKQotICAgIDogSFRNTERvY3Vt
ZW50KGZyYW1lLCBzZXR0aW5ncywgdXJsLCB7IERvY3VtZW50Q2xhc3M6Ok1lZGlhIH0pCisgICAg
OiBIVE1MRG9jdW1lbnQoZnJhbWUsIHNldHRpbmdzLCB1cmwsIHsgfSwgeyBEb2N1bWVudENsYXNz
OjpNZWRpYSB9KQogewogICAgIHNldENvbXBhdGliaWxpdHlNb2RlKERvY3VtZW50Q29tcGF0aWJp
bGl0eU1vZGU6OlF1aXJrc01vZGUpOwogICAgIGxvY2tDb21wYXRpYmlsaXR5TW9kZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb2RlbERvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTW9kZWxEb2N1bWVudC5jcHAKaW5kZXggNmU1MGI5ZDQyODNiNjc2NjJlYmQ0
N2Y0NzdiYWY4ODEzZmU3YmRmZC4uODRiNTFhMjg5ZTQyY2YzYWRjZmViMGZiZjZiYjk1YjFlNTVj
ODNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb2RlbERvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vZGVsRG9jdW1lbnQuY3BwCkBAIC0xMzgsNyArMTM4
LDcgQEAgdm9pZCBNb2RlbERvY3VtZW50UGFyc2VyOjpmaW5pc2goKQogfQogCiBNb2RlbERvY3Vt
ZW50OjpNb2RlbERvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdz
LCBjb25zdCBVUkwmIHVybCkKLSAgICA6IEhUTUxEb2N1bWVudChmcmFtZSwgc2V0dGluZ3MsIHVy
bCwgeyBEb2N1bWVudENsYXNzOjpNb2RlbCB9KQorICAgIDogSFRNTERvY3VtZW50KGZyYW1lLCBz
ZXR0aW5ncywgdXJsLCB7IH0sIHsgRG9jdW1lbnRDbGFzczo6TW9kZWwgfSkKIHsKICAgICBpZiAo
ZnJhbWUpCiAgICAgICAgIG1fb3V0Z29pbmdSZWZlcnJlciA9IGZyYW1lLT5sb2FkZXIoKS5vdXRn
b2luZ1JlZmVycmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4
IDc3NzFhNDY3MzgwMDJjNzdmYWM4MzExNGFlMWM1NDUyNzJlMWI0NjIuLjY4NGNmMWNhYzE0NGZj
NjBjNTM1Mjk0NTY2YTBiYmJmZjJkMjViOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9j
dW1lbnQuY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6
YXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBjb25zdCB1aW50OF90Kiwgc2l6ZV90KQogfQog
CiBQbHVnaW5Eb2N1bWVudDo6UGx1Z2luRG9jdW1lbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwm
IHVybCkKLSAgICA6IEhUTUxEb2N1bWVudCgmZnJhbWUsIGZyYW1lLnNldHRpbmdzKCksIHVybCwg
eyBEb2N1bWVudENsYXNzOjpQbHVnaW4gfSkKKyAgICA6IEhUTUxEb2N1bWVudCgmZnJhbWUsIGZy
YW1lLnNldHRpbmdzKCksIHVybCwgeyB9LCB7IERvY3VtZW50Q2xhc3M6OlBsdWdpbiB9KQogewog
ICAgIHNldENvbXBhdGliaWxpdHlNb2RlKERvY3VtZW50Q29tcGF0aWJpbGl0eU1vZGU6OlF1aXJr
c01vZGUpOwogICAgIGxvY2tDb21wYXRpYmlsaXR5TW9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RG9jdW1lbnQuY3BwCmluZGV4IDMzZjI0NzhiMzc3M2U0OTVlMjI2NThmZmYyMWU1Mzk4MTYyY2Fh
NTQuLmJmN2IzNjhkMTUxNzJjZjRhYWZiNzZkY2E1ZGM1NjNlOWQ3MGI4MTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dERvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHREb2N1bWVudC5jcHAKQEAgLTMyLDggKzMyLDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoVGV4dERvY3VtZW50KTsKIAotVGV4
dERvY3VtZW50OjpUZXh0RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0
dGluZ3MsIGNvbnN0IFVSTCYgdXJsKQotICAgIDogSFRNTERvY3VtZW50KGZyYW1lLCBzZXR0aW5n
cywgdXJsLCB7IERvY3VtZW50Q2xhc3M6OlRleHQgfSkKK1RleHREb2N1bWVudDo6VGV4dERvY3Vt
ZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVy
bCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4m
IGlkZW50aWZpZXIpCisgICAgOiBIVE1MRG9jdW1lbnQoZnJhbWUsIHNldHRpbmdzLCB1cmwsIGlk
ZW50aWZpZXIsIHsgRG9jdW1lbnRDbGFzczo6VGV4dCB9KQogewogICAgIHNldENvbXBhdGliaWxp
dHlNb2RlKERvY3VtZW50Q29tcGF0aWJpbGl0eU1vZGU6OlF1aXJrc01vZGUpOwogICAgIGxvY2tD
b21wYXRpYmlsaXR5TW9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dERvY3VtZW50LmgKaW5kZXggZDQ4
MTY1MTJhYmE3MTg0YzllYThjNjZhZmRkNTA4MjcyOWE1YjIzNi4uNWUzYjdkMWI5MjY0N2UwYmNj
MWJlZDJmODI3YWEzYTE2YWExY2U0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHREb2N1bWVudC5oCkBA
IC0zMSwxMyArMzEsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVGV4dERvY3VtZW50
IGZpbmFsIDogcHVibGljIEhUTUxEb2N1bWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChUZXh0RG9jdW1lbnQpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VGV4dERvY3VtZW50PiBj
cmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYg
dXJsKQorICAgIHN0YXRpYyBSZWY8VGV4dERvY3VtZW50PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBj
b25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBzdGQ6Om9wdGlv
bmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYgaWRlbnRpZmllcikKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHREb2N1bWVudChmcmFtZSwgc2V0dGlu
Z3MsIHVybCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0RG9jdW1lbnQoZnJh
bWUsIHNldHRpbmdzLCB1cmwsIGlkZW50aWZpZXIpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAg
VGV4dERvY3VtZW50KEZyYW1lKiwgY29uc3QgU2V0dGluZ3MmLCBjb25zdCBVUkwmKTsKKyAgICBU
ZXh0RG9jdW1lbnQoRnJhbWUqLCBjb25zdCBTZXR0aW5ncyYsIGNvbnN0IFVSTCYsIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+Jik7CiAgICAgCiAg
ICAgUmVmPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBvdmVycmlkZTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwCmluZGV4IGY2ZGEyMzg1
ZDdkMDc2ZjA2NjQ2ODYxMmFlYzFlN2IyNjEyOWUzMzMuLjZiYTdjNWYxYjgxYmM4MTI4ODI1Yjli
ODdjZDJhNTVlNjBmNjAxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9E
T01QYXRjaFN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01QYXRj
aFN1cHBvcnQuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgRE9NUGF0Y2hTdXBwb3J0OjpwYXRj
aERvY3VtZW50KGNvbnN0IFN0cmluZyYgbWFya3VwKQogewogICAgIFJlZlB0cjxEb2N1bWVudD4g
bmV3RG9jdW1lbnQ7CiAgICAgaWYgKG1fZG9jdW1lbnQuaXNIVE1MRG9jdW1lbnQoKSkKLSAgICAg
ICAgbmV3RG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShudWxscHRyLCBtX2RvY3VtZW50
LnNldHRpbmdzKCksIFVSTCgpKTsKKyAgICAgICAgbmV3RG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6
OmNyZWF0ZShudWxscHRyLCBtX2RvY3VtZW50LnNldHRpbmdzKCksIFVSTCgpLCB7IH0pOwogICAg
IGVsc2UgaWYgKG1fZG9jdW1lbnQuaXNYSFRNTERvY3VtZW50KCkpCiAgICAgICAgIG5ld0RvY3Vt
ZW50ID0gWE1MRG9jdW1lbnQ6OmNyZWF0ZVhIVE1MKG51bGxwdHIsIG1fZG9jdW1lbnQuc2V0dGlu
Z3MoKSwgVVJMKCkpOwogICAgIGVsc2UgaWYgKG1fZG9jdW1lbnQuaXNTVkdEb2N1bWVudCgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggZWY3NjNiNzkxMjkz
NDk4ODVlNmZlNGZhZTkzMWQ2YzJhODY4MTFhNi4uODY4YzY5NmE1Mjk1OGFlZGU0MDllNWFhYjlh
MTQ0OTdlYWY3OTc3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
CkBAIC0xNTAsMTUgKzE1MCwxNSBAQCBzdGF0aWMgdm9pZCBzZXRBbGxEZWZlcnNMb2FkaW5nKGNv
bnN0IFJlc291cmNlTG9hZGVyTWFwJiBsb2FkZXJzLCBib29sIGRlZmVycykKICAgICAgICAgbG9h
ZGVyLT5zZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7CiB9CiAKLXN0YXRpYyBIYXNoTWFwPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBEb2N1bWVudExvYWRlcio+JiB0ZW1wb3JhcnlJ
ZGVudGlmaWVyVG9Mb2FkZXJNYXAoKQorc3RhdGljIEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKj4mIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyVG9Mb2FkZXJNYXAoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNo
TWFwPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBEb2N1bWVudExvYWRlcio+PiBt
YXA7CiAgICAgcmV0dXJuIG1hcC5nZXQoKTsKIH0KIAotRG9jdW1lbnRMb2FkZXIqIERvY3VtZW50
TG9hZGVyOjpmcm9tVGVtcG9yYXJ5RG9jdW1lbnRJZGVudGlmaWVyKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIpCitEb2N1bWVudExvYWRlciogRG9jdW1lbnRMb2Fk
ZXI6OmZyb21TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyKQogewotICAgIHJldHVybiB0ZW1wb3JhcnlJZGVu
dGlmaWVyVG9Mb2FkZXJNYXAoKS5nZXQoaWRlbnRpZmllcik7CisgICAgcmV0dXJuIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyVG9Mb2FkZXJNYXAoKS5nZXQoaWRlbnRpZmllcik7CiB9
CiAKIERFRklORV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoRG9jdW1lbnRMb2FkZXIp
OwpAQCAtMjAwLDkgKzIwMCw5IEBAIERvY3VtZW50TG9hZGVyOjp+RG9jdW1lbnRMb2FkZXIoKQog
ICAgIGNsZWFyTWFpblJlc291cmNlKCk7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0g
ICAgaWYgKG1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCkgewotICAgICAgICBBU1NFUlQo
dGVtcG9yYXJ5SWRlbnRpZmllclRvTG9hZGVyTWFwKCkuY29udGFpbnMoKm1fdGVtcG9yYXJ5U2Vy
dmljZVdvcmtlckNsaWVudCkpOwotICAgICAgICB0ZW1wb3JhcnlJZGVudGlmaWVyVG9Mb2FkZXJN
YXAoKS5yZW1vdmUoKm1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCk7CisgICAgaWYgKG1f
cmVzdWx0aW5nQ2xpZW50SWQpIHsKKyAgICAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyVG9Mb2FkZXJNYXAoKS5jb250YWlucygqbV9yZXN1bHRpbmdDbGllbnRJZCkp
OworICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclRvTG9hZGVyTWFwKCku
cmVtb3ZlKCptX3Jlc3VsdGluZ0NsaWVudElkKTsKICAgICB9CiAjZW5kaWYKIH0KQEAgLTU1NSw2
ICs1NTUsMTEgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6c2V0Q29udHJvbGxpbmdTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uKFNlcnZpY2VXb3JrZXJSZWdpc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAorc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gRG9jdW1l
bnRMb2FkZXI6OnJlc3VsdGluZ0NsaWVudElkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXN1
bHRpbmdDbGllbnRJZDsKK30KKwogdm9pZCBEb2N1bWVudExvYWRlcjo6bWF0Y2hSZWdpc3RyYXRp
b24oY29uc3QgVVJMJiB1cmwsIFNXQ2xpZW50Q29ubmVjdGlvbjo6UmVnaXN0cmF0aW9uQ2FsbGJh
Y2smJiBjYWxsYmFjaykKIHsKICAgICBhdXRvIHNob3VsZFRyeUxvYWRpbmdUaHJvdWdoU2Vydmlj
ZVdvcmtlciA9ICFmcmFtZUxvYWRlcigpLT5pc1JlbG9hZGluZ0Zyb21PcmlnaW4oKSAmJiBtX2Zy
YW1lLT5wYWdlKCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5z
ZXJ2aWNlV29ya2VyRW5hYmxlZCgpICYmIHVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCk7CkBA
IC01ODksOCArNTk0LDkgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVkaXJlY3RSZWNlaXZlZChD
YWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIFJlc291cmNlUmVxdWVzdCYKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCiAgICAgaWYgKG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEpIHsK
ICAgICAgICAgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSA9IHsgfTsKLSAgICAgICAg
dW5yZWdpc3RlclRlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQoKTsKKyAgICAgICAgdW5yZWdp
c3RlclJlc2VydmVkU2VydmljZVdvcmtlckNsaWVudCgpOwogICAgIH0KKwogICAgIHdpbGxTZW5k
UmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpLCByZWRpcmVjdFJlc3BvbnNlLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgcHJvdGVjdGVkVGhpcyA9IFJlZiB7
ICp0aGlzIH0sIHRoaXNdIChhdXRvJiYgcmVxdWVzdCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VS
VCghbV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpOwogICAgICAgICBpZiAocmVxdWVzdC5pc051
bGwoKSB8fCAhbV9tYWluRG9jdW1lbnRFcnJvci5pc051bGwoKSB8fCAhbV9mcmFtZSkgewpAQCAt
MTIwMiw3ICsxMjA4LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y29tbWl0RGF0YShjb25zdCBT
aGFyZWRCdWZmZXImIGRhdGEpCiB7CiAgICAgaWYgKCFtX2dvdEZpcnN0Qnl0ZSkgewogICAgICAg
ICBtX2dvdEZpcnN0Qnl0ZSA9IHRydWU7Ci0gICAgICAgIGJvb2wgaGFzQmVndW4gPSBtX3dyaXRl
ci5iZWdpbihkb2N1bWVudFVSTCgpLCBmYWxzZSk7CisgICAgICAgIGJvb2wgaGFzQmVndW4gPSBt
X3dyaXRlci5iZWdpbihkb2N1bWVudFVSTCgpLCBmYWxzZSwgbnVsbHB0ciwgbV9yZXN1bHRpbmdD
bGllbnRJZCk7CiAgICAgICAgIGlmICghaGFzQmVndW4pCiAgICAgICAgICAgICByZXR1cm47CiAK
QEAgLTEyMzAsMjAgKzEyMzYsMjUgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y29tbWl0RGF0YShj
b25zdCBTaGFyZWRCdWZmZXImIGRhdGEpCiAjZW5kaWYKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCiAgICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LnNlcnZpY2VXb3JrZXJFbmFibGVkKCkpIHsKLSAgICAgICAgICAgIGlmIChtX3NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25EYXRhICYmIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEtPmFj
dGl2ZVdvcmtlcikgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LnNldEFjdGl2ZVNlcnZpY2VX
b3JrZXIoU2VydmljZVdvcmtlcjo6Z2V0T3JDcmVhdGUoZG9jdW1lbnQsIFdURk1vdmUobV9zZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS0+YWN0aXZlV29ya2VyLnZhbHVlKCkpKSk7Ci0gICAg
ICAgICAgICAgICAgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSA9IHsgfTsKLSAgICAg
ICAgICAgIH0gZWxzZSBpZiAoYXV0byogcGFyZW50ID0gZG9jdW1lbnQucGFyZW50RG9jdW1lbnQo
KSkgewotICAgICAgICAgICAgICAgIGlmIChzaG91bGRVc2VBY3RpdmVTZXJ2aWNlV29ya2VyRnJv
bVBhcmVudChkb2N1bWVudCwgKnBhcmVudCkpCi0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LnNldEFjdGl2ZVNlcnZpY2VXb3JrZXIocGFyZW50LT5hY3RpdmVTZXJ2aWNlV29ya2VyKCkpOwor
ICAgICAgICAgICAgaWYgKCFkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmlzVW5pcXVlKCkpIHsK
KyAgICAgICAgICAgICAgICBpZiAobV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSAmJiBt
X3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLT5hY3RpdmVXb3JrZXIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuc2V0QWN0aXZlU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2Vy
OjpnZXRPckNyZWF0ZShkb2N1bWVudCwgV1RGTW92ZShtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EYXRhLT5hY3RpdmVXb3JrZXIudmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9z
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSA9IHsgfTsKKyAgICAgICAgICAgICAgICB9IGVs
c2UgaWYgKGF1dG8qIHBhcmVudCA9IGRvY3VtZW50LnBhcmVudERvY3VtZW50KCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKHNob3VsZFVzZUFjdGl2ZVNlcnZpY2VXb3JrZXJGcm9tUGFyZW50
KGRvY3VtZW50LCAqcGFyZW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnNl
dEFjdGl2ZVNlcnZpY2VXb3JrZXIocGFyZW50LT5hY3RpdmVTZXJ2aWNlV29ya2VyKCkpOworICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKG1fZnJhbWUt
PmRvY3VtZW50KCktPmFjdGl2ZVNlcnZpY2VXb3JrZXIoKSB8fCBkb2N1bWVudC51cmwoKS5wcm90
b2NvbElzSW5IVFRQRmFtaWx5KCkgfHwgKGRvY3VtZW50LnBhZ2UoKSAmJiBkb2N1bWVudC5wYWdl
KCktPmlzU2VydmljZVdvcmtlclBhZ2UoKSkpCiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuc2V0
U2VydmljZVdvcmtlckNvbm5lY3Rpb24oJlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9u
KCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKSk7CiAKLSAgICAgICAgICAgIC8vIFdlIGN1cnJl
bnRseSB1bnJlZ2lzdGVyIHRoZSB0ZW1wb3Jhcnkgc2VydmljZSB3b3JrZXIgY2xpZW50IHNpbmNl
IHdlIG5vdyByZWdpc3RlcmVkIHRoZSByZWFsIGRvY3VtZW50LgotICAgICAgICAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBtYWtlIHRoZSByZWFsIGRvY3VtZW50IHVzZSB0aGUgdGVtcG9yYXJ5IGNs
aWVudCBpZGVudGlmaWVyLgotICAgICAgICAgICAgdW5yZWdpc3RlclRlbXBvcmFyeVNlcnZpY2VX
b3JrZXJDbGllbnQoKTsKKyAgICAgICAgICAgIGlmIChtX3Jlc3VsdGluZ0NsaWVudElkKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCptX3Jlc3VsdGluZ0NsaWVudElkICE9IGRvY3VtZW50LmlkZW50
aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgdW5yZWdpc3RlclJlc2VydmVkU2VydmljZVdv
cmtlckNsaWVudCgpOworICAgICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyVG9Mb2FkZXJNYXAoKS5yZW1vdmUoKm1fcmVzdWx0aW5nQ2xpZW50SWQpOworICAgICAg
ICAgICAgICAgIG1fcmVzdWx0aW5nQ2xpZW50SWQgPSB7IH07CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICNlbmRpZgogICAgICAgICAvLyBDYWxsIHJlY2VpdmVkRmlyc3REYXRhKCkgZXhhY3Rs
eSBvbmNlIHBlciBsb2FkLiBXZSBzaG91bGQgb25seSByZWFjaCB0aGlzIHBvaW50IG11bHRpcGxl
IHRpbWVzCkBAIC0yMDY2LDE0ICsyMDc3LDE0IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnN0YXJ0
TG9hZGluZ01haW5SZXNvdXJjZSgpCiAgICAgfSk7CiB9CiAKLXZvaWQgRG9jdW1lbnRMb2FkZXI6
OnVucmVnaXN0ZXJUZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50KCkKK3ZvaWQgRG9jdW1lbnRM
b2FkZXI6OnVucmVnaXN0ZXJSZXNlcnZlZFNlcnZpY2VXb3JrZXJDbGllbnQoKQogewogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBpZiAoIW1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNs
aWVudCB8fCAhUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXJ2aWNl
V29ya2VyRW5hYmxlZCgpKQorICAgIGlmICghbV9yZXN1bHRpbmdDbGllbnRJZCB8fCAhUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXJ2aWNlV29ya2VyRW5hYmxlZCgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvJiBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiA9
IFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rp
b24oKTsKLSAgICBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi51bnJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudCgqbV90ZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50KTsKKyAgICBzZXJ2aWNlV29y
a2VyQ29ubmVjdGlvbi51bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCgqbV9yZXN1bHRpbmdD
bGllbnRJZCk7CiAjZW5kaWYKIH0KIApAQCAtMjA5MiwxNSArMjEwMywxNiBAQCB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpsb2FkTWFpblJlc291cmNlKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiAg
ICAgICAgIENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjaywK
ICAgICAgICAgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNMb2FkaW5nLAogICAgICAg
ICBDYWNoaW5nUG9saWN5OjpBbGxvd0NhY2hpbmcpOworCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQotICAgIGlmICghbV90ZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50KSB7Ci0gICAgICAg
IC8vIFRoZSBtYWluIG5hdmlnYXRpb24gbG9hZCB3aWxsIHRyaWdnZXIgdGhlIHJlZ2lzdHJhdGlv
biBvZiB0aGUgdGVtcCBjbGllbnQuCi0gICAgICAgIG1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNs
aWVudCA9IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAg
ICAgICBBU1NFUlQoIXRlbXBvcmFyeUlkZW50aWZpZXJUb0xvYWRlck1hcCgpLmNvbnRhaW5zKCpt
X3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQpKTsKLSAgICAgICAgdGVtcG9yYXJ5SWRlbnRp
ZmllclRvTG9hZGVyTWFwKCkuYWRkKCptX3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQsIHRo
aXMpOwotICAgIH0KLSAgICBtYWluUmVzb3VyY2VMb2FkT3B0aW9ucy5jbGllbnRJZGVudGlmaWVy
ID0gbV90ZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50OworICAgIC8vIFRoZSBtYWluIG5hdmln
YXRpb24gbG9hZCB3aWxsIHRyaWdnZXIgdGhlIHJlZ2lzdHJhdGlvbiBvZiB0aGUgY2xpZW50Lgor
ICAgIGlmIChtX3Jlc3VsdGluZ0NsaWVudElkKQorICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllclRvTG9hZGVyTWFwKCkucmVtb3ZlKCptX3Jlc3VsdGluZ0NsaWVudElkKTsK
KyAgICBtX3Jlc3VsdGluZ0NsaWVudElkID0gU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXI6OmdlbmVyYXRlKCk7CisgICAgQVNTRVJUKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllclRvTG9hZGVyTWFwKCkuY29udGFpbnMoKm1fcmVzdWx0aW5nQ2xpZW50SWQpKTsKKyAgICBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclRvTG9hZGVyTWFwKCkuYWRkKCptX3Jlc3Vs
dGluZ0NsaWVudElkLCB0aGlzKTsKICNlbmRpZgorCiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
IG1haW5SZXNvdXJjZVJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSwgbWFpblJlc291cmNlTG9hZE9w
dGlvbnMpOwogICAgIGlmICghbV9mcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBtX2ZyYW1lLT5kb2N1
bWVudCgpKSB7CiAgICAgICAgIC8vIElmIHdlIGFyZSBsb2FkaW5nIHRoZSBtYWluIHJlc291cmNl
IG9mIGEgc3ViZnJhbWUsIHVzZSB0aGUgY2FjaGUgcGFydGl0aW9uIG9mIHRoZSBtYWluIGRvY3Vt
ZW50LgpAQCAtMjIxMiw3ICsyMjI0LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y2xlYXJNYWlu
UmVzb3VyY2UoKQogICAgIG1fbWFpblJlc291cmNlID0gbnVsbHB0cjsKICAgICBtX2lzQ29udGlu
dWluZ0xvYWRBZnRlclByb3Zpc2lvbmFsTG9hZFN0YXJ0ZWQgPSBmYWxzZTsKIAotICAgIHVucmVn
aXN0ZXJUZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50KCk7CisgICAgdW5yZWdpc3RlclJlc2Vy
dmVkU2VydmljZVdvcmtlckNsaWVudCgpOwogfQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpzdWJy
ZXNvdXJjZUxvYWRlckZpbmlzaGVkTG9hZGluZ09uZVBhcnQoUmVzb3VyY2VMb2FkZXImIGxvYWRl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKaW5kZXggMjhlMjhhNjg4YWU2
YjU3ZTBmMGQxNGM0ZTdhMGMyNTU4Y2I2N2U0MS4uYjFhMmM1OTg4ODE3YTIxM2RmYTlmZTBjZDk3
NGFlNjliZmQwYTU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKQEAg
LTE3MSw3ICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERv
Y3VtZW50TG9hZGVyKHJlcXVlc3QsIGRhdGEpKTsKICAgICB9CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgRG9jdW1lbnRMb2FkZXIqIGZyb21UZW1wb3JhcnlEb2N1bWVudElkZW50aWZpZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBEb2N1bWVudExvYWRlciogZnJvbVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgfkRvY3VtZW50TG9hZGVyKCk7CiAKQEAgLTQzOSw2ICs0MzksNyBAQCBwdWJsaWM6
CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBz
ZXRDb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGEmJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gcmVzdWx0aW5nQ2xpZW50SWQoKSBjb25zdDsKICNl
bmRpZgogCiAgICAgYm9vbCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQ7IH0KQEAgLTQ2OCw3ICs0Njks
NyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICB2b2lkIG1hdGNo
UmVnaXN0cmF0aW9uKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRp
b25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mJik+JiYpOwogI2VuZGlmCi0gICAg
dm9pZCB1bnJlZ2lzdGVyVGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCgpOworICAgIHZvaWQg
dW5yZWdpc3RlclJlc2VydmVkU2VydmljZVdvcmtlckNsaWVudCgpOwogCiAgICAgc3RkOjpvcHRp
b25hbDxDcm9zc09yaWdpbk9wZW5lclBvbGljeUVuZm9yY2VtZW50UmVzdWx0PiBkb0Nyb3NzT3Jp
Z2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKIApA
QCAtNjg4LDggKzY4OSw4IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4gbV9zZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YTsKLSAgICBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyPiBtX3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQ7CiAj
ZW5kaWYKKyAgICBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
PiBtX3Jlc3VsdGluZ0NsaWVudElkOwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICBib29sIG1f
aGFzRXZlckJlZW5BdHRhY2hlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50V3JpdGVyLmNwcAppbmRleCA0ZmY5MzgxODBmZGQyOGZjNzE1ZDA4ODgxNjA4ZmM2Mjg5NDky
ZTlhLi5jODVmOGNlZDc5YzNlMzg2YThhNzRlYjc3MmJhMjQ4Mzc3OTljMmIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCBib29s
IERvY3VtZW50V3JpdGVyOjpiZWdpbigpCiAgICAgcmV0dXJuIGJlZ2luKFVSTCgpKTsKIH0KIAot
UmVmPERvY3VtZW50PiBEb2N1bWVudFdyaXRlcjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgVVJMJiB1
cmwpCitSZWY8RG9jdW1lbnQ+IERvY3VtZW50V3JpdGVyOjpjcmVhdGVEb2N1bWVudChjb25zdCBV
UkwmIHVybCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
Zmllcj4mIGRvY3VtZW50SWRlbnRpZmllcikKIHsKICAgICBpZiAoIW1fZnJhbWUtPmxvYWRlcigp
LnN0YXRlTWFjaGluZSgpLmlzRGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50KCkgJiYgbV9m
cmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuc2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQobV9t
aW1lVHlwZSkpCiAgICAgICAgIHJldHVybiBQbHVnaW5Eb2N1bWVudDo6Y3JlYXRlKCptX2ZyYW1l
LCB1cmwpOwpAQCAtMTIyLDEwICsxMjIsMTAgQEAgUmVmPERvY3VtZW50PiBEb2N1bWVudFdyaXRl
cjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgVVJMJiB1cmwpCiAjZW5kaWYKICAgICBpZiAoIW1fZnJh
bWUtPmxvYWRlcigpLmNsaWVudCgpLmhhc0hUTUxWaWV3KCkpCiAgICAgICAgIHJldHVybiBEb2N1
bWVudDo6Y3JlYXRlTm9uUmVuZGVyZWRQbGFjZWhvbGRlcigqbV9mcmFtZSwgdXJsKTsKLSAgICBy
ZXR1cm4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KG1fbWltZVR5cGUsIG1fZnJh
bWUuZ2V0KCksIG1fZnJhbWUtPnNldHRpbmdzKCksIHVybCk7CisgICAgcmV0dXJuIERPTUltcGxl
bWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChtX21pbWVUeXBlLCBtX2ZyYW1lLmdldCgpLCBtX2Zy
YW1lLT5zZXR0aW5ncygpLCB1cmwsIGRvY3VtZW50SWRlbnRpZmllcik7CiB9CiAKLWJvb2wgRG9j
dW1lbnRXcml0ZXI6OmJlZ2luKGNvbnN0IFVSTCYgdXJsUmVmZXJlbmNlLCBib29sIGRpc3BhdGNo
LCBEb2N1bWVudCogb3duZXJEb2N1bWVudCkKK2Jvb2wgRG9jdW1lbnRXcml0ZXI6OmJlZ2luKGNv
bnN0IFVSTCYgdXJsUmVmZXJlbmNlLCBib29sIGRpc3BhdGNoLCBEb2N1bWVudCogb3duZXJEb2N1
bWVudCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cj4mIGRvY3VtZW50SWRlbnRpZmllcikKIHsKICAgICAvLyBXZSBncmFiIGEgbG9jYWwgY29weSBv
ZiB0aGUgVVJMIGJlY2F1c2UgaXQncyBlYXN5IGZvciBjYWxsZXJzIHRvIHN1cHBseQogICAgIC8v
IGEgVVJMIHRoYXQgd2lsbCBiZSBkZWFsbG9jYXRlZCBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBvZiB0
aGlzIGZ1bmN0aW9uLgpAQCAtMTM0LDcgKzEzNCw3IEBAIGJvb2wgRG9jdW1lbnRXcml0ZXI6OmJl
Z2luKGNvbnN0IFVSTCYgdXJsUmVmZXJlbmNlLCBib29sIGRpc3BhdGNoLCBEb2N1bWVudCogb3du
CiAKICAgICAvLyBDcmVhdGUgYSBuZXcgZG9jdW1lbnQgYmVmb3JlIGNsZWFyaW5nIHRoZSBmcmFt
ZSwgYmVjYXVzZSBpdCBtYXkgbmVlZCB0bwogICAgIC8vIGluaGVyaXQgYW4gYWxpYXNlZCBzZWN1
cml0eSBjb250ZXh0LgotICAgIFJlZjxEb2N1bWVudD4gZG9jdW1lbnQgPSBjcmVhdGVEb2N1bWVu
dCh1cmwpOworICAgIFJlZjxEb2N1bWVudD4gZG9jdW1lbnQgPSBjcmVhdGVEb2N1bWVudCh1cmws
IGRvY3VtZW50SWRlbnRpZmllcik7CiAgICAgCiAgICAgLy8gSWYgdGhlIG5ldyBkb2N1bWVudCBp
cyBmb3IgYSBQbHVnaW4gYnV0IHdlJ3JlIHN1cHBvc2VkIHRvIGJlIHNhbmRib3hlZCBmcm9tIFBs
dWdpbnMsCiAgICAgLy8gdGhlbiByZXBsYWNlIHRoZSBkb2N1bWVudCB3aXRoIG9uZSB3aG9zZSBw
YXJzZXIgd2lsbCBpZ25vcmUgdGhlIGluY29taW5nIGRhdGEgKGJ1ZyAzOTMyMykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmgKaW5kZXggYzBhMzRhNmI3ZTljZmU5NjQzMDQ1YTk1
ZTc5MzIyNTIzNjNiMjY4Yi4uMTZiNzFlOTUxNWI3YTA4ZjNiM2Q4MzE3ZTZjZGRmMzYzNGY2ODFj
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmgKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKQEAgLTQ3LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVwbGFj
ZURvY3VtZW50V2l0aFJlc3VsdE9mRXhlY3V0aW5nSmF2YXNjcmlwdFVSTChjb25zdCBTdHJpbmcm
LCBEb2N1bWVudCogb3duZXJEb2N1bWVudCk7CiAKICAgICBib29sIGJlZ2luKCk7Ci0gICAgYm9v
bCBiZWdpbihjb25zdCBVUkwmLCBib29sIGRpc3BhdGNoV2luZG93T2JqZWN0QXZhaWxhYmxlID0g
dHJ1ZSwgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQgPSBudWxscHRyKTsKKyAgICBib29sIGJlZ2lu
KGNvbnN0IFVSTCYsIGJvb2wgZGlzcGF0Y2hXaW5kb3dPYmplY3RBdmFpbGFibGUgPSB0cnVlLCBE
b2N1bWVudCogb3duZXJEb2N1bWVudCA9IG51bGxwdHIsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiA9IHsgfSk7CiAgICAgdm9pZCBhZGREYXRh
KGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogICAgIHZvaWQgaW5zZXJ0RGF0YVN5bmNocm9ub3VzbHko
Y29uc3QgU3RyaW5nJik7IC8vIEZvciBhbiBpbnRlcm5hbCB1c2Ugb25seSB0byBwcmV2ZW50IHRo
ZSBwYXJzZXIgZnJvbSB5aWVsZGluZy4KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuZCgpOwpA
QCAtNjcsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREb2N1bWVudFdhc0xvYWRlZEFz
UGFydE9mTmF2aWdhdGlvbigpOwogCiBwcml2YXRlOgotICAgIFJlZjxEb2N1bWVudD4gY3JlYXRl
RG9jdW1lbnQoY29uc3QgVVJMJik7CisgICAgUmVmPERvY3VtZW50PiBjcmVhdGVEb2N1bWVudChj
b25zdCBVUkwmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyPiYpOwogICAgIHZvaWQgY2xlYXIoKTsKIAogICAgIFdlYWtQdHI8RnJhbWU+IG1fZnJh
bWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2lua0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuY3BwCmluZGV4IGE2ODcxMWY2YzIx
OWY3YTQ4YWIzYTZlMTZmNTVlYjBlNjQwNWZjMjcuLmEzN2QzYzZjZDM0NzAwOWQwMjZjYjRhMmI5
NDJmMmViMjc4MzFhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaW5rRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuY3BwCkBA
IC01NCw3ICs1NCw3IEBAIHByaXZhdGU6CiB9OwogCiBTaW5rRG9jdW1lbnQ6OlNpbmtEb2N1bWVu
dChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQotICAgIDogSFRNTERvY3VtZW50KCZmcmFt
ZSwgZnJhbWUuc2V0dGluZ3MoKSwgdXJsKQorICAgIDogSFRNTERvY3VtZW50KCZmcmFtZSwgZnJh
bWUuc2V0dGluZ3MoKSwgdXJsLCB7IH0pCiB7CiAgICAgc2V0Q29tcGF0aWJpbGl0eU1vZGUoRG9j
dW1lbnRDb21wYXRpYmlsaXR5TW9kZTo6UXVpcmtzTW9kZSk7CiAgICAgbG9ja0NvbXBhdGliaWxp
dHlNb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0
Y2hFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5j
cHAKaW5kZXggNTVkMzMwN2E0NDA5ZDdjNmFiZjg4NTg3ODg0OWJiNWY5Y2MxNzk0YS4uZTdhZTFh
OGM2OGIwMDE3MTNkMTc3NWEyNDJlOTRiYzYxNjBmZmQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmNwcApAQCAtNjIsNyArNjIsNiBAQCBGZXRjaEV2
ZW50OjpGZXRjaEV2ZW50KEpTQzo6SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgY29uc3Qg
QXRvbVN0cmluZyYgdHlwZQogICAgICwgbV9yZXF1ZXN0KGluaXRpYWxpemVyLnJlcXVlc3QucmVs
ZWFzZU5vbk51bGwoKSkKICAgICAsIG1fY2xpZW50SWQoV1RGTW92ZShpbml0aWFsaXplci5jbGll
bnRJZCkpCiAgICAgLCBtX3Jlc3VsdGluZ0NsaWVudElkKFdURk1vdmUoaW5pdGlhbGl6ZXIucmVz
dWx0aW5nQ2xpZW50SWQpKQotICAgICwgbV90YXJnZXRDbGllbnRJZChXVEZNb3ZlKGluaXRpYWxp
emVyLnRhcmdldENsaWVudElkKSkKICAgICAsIG1faGFuZGxlZChyZXRyaWV2ZUhhbmRsZWRQcm9t
aXNlKGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbml0aWFsaXplci5oYW5kbGVkKSkpCiB7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaAppbmRleCBjNTNmZDU2
YTlmZTgyOTNmNzg3MTkxODY2YmU2NGQ5NWE2YjBlMDcxLi41ZjU5NmYyYjQ0NTUwZjQxYmMzNTYw
ZGFjZjNlM2EzYmE3ZTU5ZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvRmV0Y2hFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9G
ZXRjaEV2ZW50LmgKQEAgLTUwLDcgKzUwLDYgQEAgcHVibGljOgogICAgICAgICBSZWZQdHI8RmV0
Y2hSZXF1ZXN0PiByZXF1ZXN0OwogICAgICAgICBTdHJpbmcgY2xpZW50SWQ7CiAgICAgICAgIFN0
cmluZyByZXN1bHRpbmdDbGllbnRJZDsKLSAgICAgICAgU3RyaW5nIHRhcmdldENsaWVudElkOwog
ICAgICAgICBSZWZQdHI8RE9NUHJvbWlzZT4gaGFuZGxlZDsKICAgICB9OwogCkBAIC03Miw3ICs3
MSw2IEBAIHB1YmxpYzoKICAgICBGZXRjaFJlcXVlc3QmIHJlcXVlc3QoKSB7IHJldHVybiBtX3Jl
cXVlc3QuZ2V0KCk7IH0KICAgICBjb25zdCBTdHJpbmcmIGNsaWVudElkKCkgY29uc3QgeyByZXR1
cm4gbV9jbGllbnRJZDsgfQogICAgIGNvbnN0IFN0cmluZyYgcmVzdWx0aW5nQ2xpZW50SWQoKSBj
b25zdCB7IHJldHVybiBtX3Jlc3VsdGluZ0NsaWVudElkOyB9Ci0gICAgY29uc3QgU3RyaW5nJiB0
YXJnZXRDbGllbnRJZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0Q2xpZW50SWQ7IH0KICAgICBE
T01Qcm9taXNlJiBoYW5kbGVkKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGVkLmdldCgpOyB9CiAK
ICAgICBib29sIHJlc3BvbmRXaXRoRW50ZXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uZFdp
dGhFbnRlcmVkOyB9CkBAIC05NCw3ICs5Miw2IEBAIHByaXZhdGU6CiAgICAgUmVmPEZldGNoUmVx
dWVzdD4gbV9yZXF1ZXN0OwogICAgIFN0cmluZyBtX2NsaWVudElkOwogICAgIFN0cmluZyBtX3Jl
c3VsdGluZ0NsaWVudElkOwotICAgIFN0cmluZyBtX3RhcmdldENsaWVudElkOwogCiAgICAgYm9v
bCBtX3Jlc3BvbmRXaXRoRW50ZXJlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3dhaXRUb1Jlc3Bv
bmQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L0ZldGNoRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZl
bnQuaWRsCmluZGV4IDVhYWNjNWRlNWRhMzZmZTUyOTUzYmM4MWE0M2UxNmUwYzhiMjZjMTAuLmE3
YjhlZDI1MTY4MjUyMWJmMjU2MzRiOTZlNTY2NWJkYTVlYjg3YTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5pZGwKQEAgLTM2LDcgKzM2LDYgQEAKICAg
ICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgRW5hYmxlZEJ5U2V0dGluZz1TZXJ2
aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkXSByZWFkb25seSBhdHRyaWJ1dGUgUHJv
bWlzZTxhbnk+IHByZWxvYWRSZXNwb25zZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGNsaWVudElkOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVzdWx0aW5n
Q2xpZW50SWQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0YXJnZXRDbGllbnRJ
ZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgUHJvbWlzZTx1bmRlZmluZWQ+IGhhbmRsZWQ7CiAK
ICAgICB1bmRlZmluZWQgcmVzcG9uZFdpdGgoUHJvbWlzZTxGZXRjaFJlc3BvbnNlPiByKTsKQEAg
LTQ2LDYgKzQ1LDUgQEAgZGljdGlvbmFyeSBGZXRjaEV2ZW50SW5pdCA6IEV4dGVuZGFibGVFdmVu
dEluaXQgewogICAgIHJlcXVpcmVkIEZldGNoUmVxdWVzdCByZXF1ZXN0OwogICAgIERPTVN0cmlu
ZyBjbGllbnRJZCA9ICIiOwogICAgIERPTVN0cmluZyByZXN1bHRpbmdDbGllbnRJZCA9ICIiOwot
ICAgIERPTVN0cmluZyB0YXJnZXRDbGllbnRJZCA9ICIiOwogICAgIFByb21pc2U8dW5kZWZpbmVk
PiBoYW5kbGVkOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5jcHAKaW5kZXggNzliZGY0Njg5Y2Y3NTA4NTZmOTk1MzY3ZGIxMTM4NGVj
MWMxODNjZC4uODY5N2U5OTdiY2M0NTc0ZTc0YjA2NGM5MDI2ZDE0ZGUwYjdkMTVmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAK
QEAgLTk0Miw3ICs5NDIsMTMgQEAgdm9pZCBTV1NlcnZlcjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2Vy
Q2xpZW50KENsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgU2VydmljZVcKICAgICAgICAgICAg
IHVwZGF0ZUFwcEluaXRpYXRlZFZhbHVlRm9yV29ya2VycyhjbGllbnRPcmlnaW4sIGRhdGEubGFz
dE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwogICAgIH0KIAotICAgIG1fdmlzaWJsZUNsaWVu
dElkVG9JbnRlcm5hbENsaWVudElkTWFwLmFkZChkYXRhLmlkZW50aWZpZXIub2JqZWN0KCkudG9T
dHJpbmcoKSwgY2xpZW50SWRlbnRpZmllcik7CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX3Zpc2li
bGVDbGllbnRJZFRvSW50ZXJuYWxDbGllbnRJZE1hcC5hZGQoZGF0YS5pZGVudGlmaWVyLm9iamVj
dCgpLnRvU3RyaW5nKCksIGNsaWVudElkZW50aWZpZXIpOworICAgIGlmICghYWRkUmVzdWx0Lmlz
TmV3RW50cnkpIHsKKyAgICAgICAgQVNTRVJUKG1fdmlzaWJsZUNsaWVudElkVG9JbnRlcm5hbENs
aWVudElkTWFwLmdldChkYXRhLmlkZW50aWZpZXIub2JqZWN0KCkudG9TdHJpbmcoKSkgPT0gY2xp
ZW50SWRlbnRpZmllcik7CisgICAgICAgIEFTU0VSVChtX2NsaWVudHNCeUlkLmNvbnRhaW5zKGNs
aWVudElkZW50aWZpZXIpKTsKKyAgICAgICAgbV9jbGllbnRzQnlJZC5zZXQoY2xpZW50SWRlbnRp
ZmllciwgV1RGTW92ZShkYXRhKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBBU1NF
UlQoIW1fY2xpZW50c0J5SWQuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOwogICAgIG1fY2xp
ZW50c0J5SWQuYWRkKGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggZWIzNTIwN2U3YTkyYmY5YjY4MmZjMTEwZDQ5
NDY5ZjRjZjM2YWQwZi4uODk1ZGM5ZDA4NTUwYWQ2MDhlNTk3OWM3MDhkNWE5YWEwYTU0NGI3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0xODEsNyArMTgxLDcgQEAg
RXhjZXB0aW9uT3I8RG9jdW1lbnQqPiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwoKQogICAg
ICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50ID0gbnVsbHB0cjsKICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIGlmIChpc0hUTUwpCi0gICAgICAgICAgICAgICAgbV9yZXNwb25zZURvY3Vt
ZW50ID0gSFRNTERvY3VtZW50OjpjcmVhdGUobnVsbHB0ciwgY29udGV4dC5zZXR0aW5ncygpLCBt
X3Jlc3BvbnNlLnVybCgpKTsKKyAgICAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSBI
VE1MRG9jdW1lbnQ6OmNyZWF0ZShudWxscHRyLCBjb250ZXh0LnNldHRpbmdzKCksIG1fcmVzcG9u
c2UudXJsKCksIHsgfSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9yZXNw
b25zZURvY3VtZW50ID0gWE1MRG9jdW1lbnQ6OmNyZWF0ZShudWxscHRyLCBjb250ZXh0LnNldHRp
bmdzKCksIG1fcmVzcG9uc2UudXJsKCkpOwogICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50
LT5vdmVycmlkZUxhc3RNb2RpZmllZChtX3Jlc3BvbnNlLmxhc3RNb2RpZmllZCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmNwcAppbmRleCA2ZjY3N2VlZjRlNjg1OWNlNWQ0MDgwZTFlYzk1ZTdiN2I5NTE0NzA3Li5iMDMy
NDE5NDE5ZjAwMzM5Y2FmODM1NjVlOTE5ZDhjYWVkOTQyNWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC00
NDEsNiArNDQxLDExIEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21O
ZXR3b3JrUHJvY2VzcyhSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMCiAgICAgICAgIGZvciAoYXV0
byogZnJhbWUgPSByZXNvdXJjZUxvYWRlci5mcmFtZSgpLT50cmVlKCkucGFyZW50KCk7IGZyYW1l
OyBmcmFtZSA9IGZyYW1lLT50cmVlKCkucGFyZW50KCkpCiAgICAgICAgICAgICBmcmFtZUFuY2Vz
dG9yT3JpZ2lucy5hcHBlbmQoJmZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKTsK
ICAgICAgICAgbG9hZFBhcmFtZXRlcnMuZnJhbWVBbmNlc3Rvck9yaWdpbnMgPSBXVEZNb3ZlKGZy
YW1lQW5jZXN0b3JPcmlnaW5zKTsKKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKyAgICAg
ICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gcmVzb3VyY2VMb2FkZXIuZG9jdW1lbnRMb2Fk
ZXIoKSkKKyAgICAgICAgICAgIGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMuY2xpZW50SWRlbnRpZmll
ciA9IHN0YXRpY19jYXN0PFdlYkRvY3VtZW50TG9hZGVyJj4oKmRvY3VtZW50TG9hZGVyKS5yZXN1
bHRpbmdDbGllbnRJZCgpOworI2VuZGlmCiAgICAgfQogCiAgICAgQVNTRVJUKChsb2FkUGFyYW1l
dGVycy53ZWJQYWdlSUQgJiYgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCkgfHwgbG9hZFBhcmFt
ZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9PSBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpD
YW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCAx
ODI2MDViOGUwZTMyZWYwNWEzOTFmY2MwOTNiMDQ0NWY3ZDA2NmExLi4wOWY2NjVlZWM5ZWVhM2Ux
NDllMDYxN2IxYTNkNmI2MDhlZWM0NWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTE3OCw3
ICsxNzgsNyBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6d2hlblJlZ2lzdHJhdGlvblJl
YWR5KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTwogCiB2b2lkIFdlYlNXQ2xpZW50Q29u
bmVjdGlvbjo6c2V0RG9jdW1lbnRJc0NvbnRyb2xsZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YSYmIGRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7Ci0gICAgYXV0byogZG9jdW1lbnRMb2FkZXIgPSBEb2N1bWVudExvYWRlcjo6ZnJvbVRl
bXBvcmFyeURvY3VtZW50SWRlbnRpZmllcihkb2N1bWVudElkZW50aWZpZXIpOworICAgIGF1dG8q
IGRvY3VtZW50TG9hZGVyID0gRG9jdW1lbnRMb2FkZXI6OmZyb21TY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcihkb2N1bWVudElkZW50aWZpZXIpOwogICAgIGJvb2wgcmVzdWx0ID0gZG9j
dW1lbnRMb2FkZXIgPyBkb2N1bWVudExvYWRlci0+c2V0Q29udHJvbGxpbmdTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uKFdURk1vdmUoZGF0YSkpIDogZmFsc2U7CiAgICAgY29tcGxldGlvbkhhbmRs
ZXIocmVzdWx0KTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGUyZDRiOGMy
MGVlYjUwOGExOGZkNjE5ZWE2MWEzODBhYjAzNGE2ZDUuLjAyYWE2MjliZjNkNjhmZWJkZjdhYmQ3
YjNhYTUwMzUzM2RkZjZkY2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDIyLTAxLTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBJbXByb3ZlIGNvbXB1dGF0aW9uIG9mIHNlcnZpY2Ugd29ya2VyIEZldGNoRXZl
bnQucmVzdWx0aW5nQ2xpZW50SWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNTEwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9jbGllbnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC5odHRwcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9jbGllbnRzLWdldC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9oaXN0b3JpY2FsLmh0dHBz
LmFueS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wMS0xNiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBTZXJ2aWNlV29ya2VyQ2xp
ZW50LmlkIGEgVVVJRCBpbnN0ZWFkIG9mIGEgc3RyaW5nIGRlcml2ZWQgZnJvbSBhIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9j
bGllbnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9jbGllbnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggZDJkZmI4MzRiOTRlYTAyNmY4OWE3MGUwY2U4MmIyZWViYjFkNzYzMS4uODJiNzdk
N2YxZmIwNzAxZGYwYWIzMTQwZDEzMDIwZTY0NGQ3OTZhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvY2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQuaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0NsaWVudElkLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIAogUEFTUyBnbG9iYWwgc2V0dXAKLUZB
SUwgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBmb3Igc2FtZS1vcmlnaW4gZG9jdW1lbnQgYXNzZXJ0
X2VxdWFsczogcHJvbWlzZVZhbHVlIGV4cGVjdGVkICJjbGllbnQiIGJ1dCBnb3QgInVuZGVmaW5l
ZFZhbHVlIgorUEFTUyBnZXQocmVzdWx0aW5nQ2xpZW50SWQpIGZvciBzYW1lLW9yaWdpbiBkb2N1
bWVudAogUEFTUyBnZXQocmVzdWx0aW5nQ2xpZW50SWQpIG9uIGNyb3NzLW9yaWdpbiByZWRpcmVj
dAotUEFTUyBnZXQocmVzdWx0aW5nQ2xpZW50SWQpIGZvciBkb2N1bWVudCBzYW5kYm94ZWQgYnkg
Q1NQIGhlYWRlcgotRkFJTCBnZXQocmVzdWx0aW5nQ2xpZW50SWQpIGZvciBkb2N1bWVudCBzYW5k
Ym94ZWQgYnkgQ1NQIGhlYWRlciB3aXRoIGFsbG93LXNhbWUtb3JpZ2luIGFzc2VydF9lcXVhbHM6
IHByb21pc2VWYWx1ZSBleHBlY3RlZCAiY2xpZW50IiBidXQgZ290ICJ1bmRlZmluZWRWYWx1ZSIK
K0ZBSUwgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBmb3IgZG9jdW1lbnQgc2FuZGJveGVkIGJ5IENT
UCBoZWFkZXIgYXNzZXJ0X2VxdWFsczogcHJvbWlzZVZhbHVlIGV4cGVjdGVkICJ1bmRlZmluZWRW
YWx1ZSIgYnV0IGdvdCAiY2xpZW50IgorUEFTUyBnZXQocmVzdWx0aW5nQ2xpZW50SWQpIGZvciBk
b2N1bWVudCBzYW5kYm94ZWQgYnkgQ1NQIGhlYWRlciB3aXRoIGFsbG93LXNhbWUtb3JpZ2luCiBQ
QVNTIGdsb2JhbCBjbGVhbnVwCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVu
dHMtZ2V0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0
Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmZGY2YmQyYTY2MjQxYTQ0MjI1YTQxY2QwMjA5Mzcw
OTY3NzVhOGNmLi44MjkxOGI0NTE5NDIwNjg1MTgyMjdkNzZhNTZkYjQ2NDk2OTg3OTBjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC5odHRwcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC0xLDUgKzEsNSBAQAogCiBGQUlMIFRlc3QgQ2xpZW50cy5nZXQoKSBhc3NlcnRfYXJyYXlfZXF1
YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAxIHRvIGJlIGZhbHNlIGJ1dCBnb3QgdHJ1ZSAoZXhwZWN0
ZWQgYXJyYXkgWyJ2aXNpYmxlIiwgZmFsc2UsICJodHRwczovL2xvY2FsaG9zdDo5NDQzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtZnJhbWUuaHRt
bCMyIiwgIndpbmRvdyIsICJuZXN0ZWQiXSBnb3QgWyJ2aXNpYmxlIiwgdHJ1ZSwgImh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9j
bGllbnRzLWdldC1mcmFtZS5odG1sIzIiLCAid2luZG93IiwgIm5lc3RlZCJdKQotRkFJTCBUZXN0
IHN1Y2Nlc3NmdWwgQ2xpZW50cy5nZXQoRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZCkgYXNz
ZXJ0X2ZhbHNlOiBDbGllbnRzLmdldChGZXRjaEV2ZW50LnJlc3VsdGluZ0NsaWVudElkKSByZXNv
bHZlZCB3aXRoIGEgQ2xpZW50IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIFRlc3Qgc3Vj
Y2Vzc2Z1bCBDbGllbnRzLmdldChGZXRjaEV2ZW50LnJlc3VsdGluZ0NsaWVudElkKQogUEFTUyBU
ZXN0IHVuc3VjY2Vzc2Z1bCBDbGllbnRzLmdldChGZXRjaEV2ZW50LnJlc3VsdGluZ0NsaWVudElk
KQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9oaXN0b3JpY2FsLmh0dHBzLmFueS5z
ZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2hpc3RvcmljYWwu
aHR0cHMuYW55LnNlcnZpY2V3b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGQ4OTkzOTg3YmVjZTgw
ZGZmMmQxMzJhMWQ4MmU2MWExZmViOTg3OTEuLmFlOGRlZmNmMDliZWNkNDI3Y2NlNDVkYzFkMmY4
YzUzMTBjZTM1YWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2hpc3RvcmljYWwuaHR0
cHMuYW55LnNlcnZpY2V3b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2hpc3RvcmljYWwuaHR0cHMuYW55LnNlcnZpY2V3b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDMg
KzEsMyBAQAogCi1GQUlMIHRhcmdldENsaWVudElkIHNob3VsZCBub3QgYmUgb24gRmV0Y2hFdmVu
dCBhc3NlcnRfZmFsc2U6IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIHRhcmdldENsaWVu
dElkIHNob3VsZCBub3QgYmUgb24gRmV0Y2hFdmVudAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449475</attachid>
            <date>2022-01-19 04:58:34 -0800</date>
            <delta_ts>2022-01-19 09:13:51 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-235107-20220119135831.patch</filename>
            <type>text/plain</type>
            <size>46088</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTNhMTNiMDEzYzFjMTUw
MDViNDllZDFmODZmNjk4M2YyYTA3ZjYzNS4uOTE2M2Q1ZDJmYzEyNTFkYmNiYjU4YjY5MmFjNTNl
NDdlYmMwMzRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIyLTAxLTE5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGNvbXB1dGF0
aW9uIG9mIHNlcnZpY2Ugd29ya2VyIEZldGNoRXZlbnQucmVzdWx0aW5nQ2xpZW50SWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTEwNworCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFdlIGFyZSBub3cgcGFzc2lu
ZyB0aGUgcmVzZXJ2ZWQgY2xpZW50IElEIGdlbmVyYXRlZCBieSBEb2N1bWVudExvYWRlciB0byB0
aGUgZ2VuZXJhdGVkIGRvY3VtZW50LgorICAgICAgICBQcmV2aW91c2x5LCB3ZSB3b3VsZCByZWdp
c3RlciBhIHRlbXBvcmFyeSBJRCB0aGF0IHdlIHdvdWxkIGRyb3AgbGF0ZXIgb24gd2hlbiBjcmVh
dGluZyBhIG5ldyBkb2N1bWVudC4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8gYmUgY2xvc2VyIHRv
IHNwZWMsIHRob3VnaCB3ZSBuZWVkIHRvIGhhbmRsZSB0aGUgY2FzZSBvZiBhIGRvY3VtZW50IHdo
b3NlIG9yaWdpbiBnZXRzIHVuaXF1ZQorICAgICAgICBkdWUgdG8gQ1NQIG9yIHNhbmRib3hpbmcg
bWFraW5nIGEgZG9jdW1lbnQgb3JpZ2luIHVuaXF1ZS4KKyAgICAgICAgV2UgYXJlIGFsc28gcmVt
b3ZpbmcgdGFyZ2V0Q2xpZW50SWQsIHdoaWNoIHdhcyByZW5hbWVkIGluIHRoZSBzcGVjIHRvIHJl
cGxhY2VzQ2xpZW50SWQgYnV0IGlzIGFsc28gbm90IGltcGxlbWVudGVkIGluIGFueSBicm93c2Vy
IHlldC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
ZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRp
b24uaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAg
KiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAgICAqIGh0bWwvRlRQRGlyZWN0
b3J5RG9jdW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmNwcDoKKyAgICAg
ICAgKiBodG1sL0hUTUxEb2N1bWVudC5oOgorICAgICAgICAqIGh0bWwvSW1hZ2VEb2N1bWVudC5j
cHA6CisgICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL01v
ZGVsRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvUGx1Z2luRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGh0bWwvVGV4dERvY3VtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL1RleHREb2N1bWVu
dC5oOgorICAgICAgICAqIGluc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwOgorICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9h
ZGVyLmg6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcDoKKyAgICAgICAgKiBs
b2FkZXIvRG9jdW1lbnRXcml0ZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvU2lua0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5jcHA6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
RmV0Y2hFdmVudC5pZGw6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
ci5jcHA6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKwogMjAyMi0wMS0xOSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBEbyBu
b3QgY2hhbmdlIHByZWZlcnJlZCBBdWRpb1Nlc3Npb24gYnVmZmVyIHNpemUgd2hlbiBWUElPIGlz
IHJ1bm5pbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggNDI2ODgwN2QwNTU4ZDMyYzY3ZTZiYzU0OTY4YjZmYzBmNGY2
MDIyMy4uZTEzNDUxMGI0MmRiYjE5YzMwNjhiNWU2NzgyZWFiNjZlN2U4YmFiYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAyMi0wMS0xOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wcm92ZSBjb21wdXRhdGlvbiBvZiBzZXJ2aWNlIHdvcmtlciBG
ZXRjaEV2ZW50LnJlc3VsdGluZ0NsaWVudElkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUxMDcKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5j
cHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5j
cHA6CisKIDIwMjItMDEtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtDb2NvYV0gRG8gbm90IGNoYW5nZSBwcmVmZXJyZWQgQXVkaW9TZXNzaW9uIGJ1ZmZl
ciBzaXplIHdoZW4gVlBJTyBpcyBydW5uaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9V
VUlELmggYi9Tb3VyY2UvV1RGL3d0Zi9VVUlELmgKaW5kZXggM2FjNzI2ODEyMmFhNWM0YjgxMDMy
ZGE0ZDQ4NzNlNjdjNTQ1ZjBhOS4uOGQ2NDUxNzFiNmM2MzE0YTg4NmIzZTExNDA0ZWUwOWEwNTFj
YzYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVVVJRC5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1VVSUQuaApAQCAtODUsNiArODUsOCBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklW
QVRFIHVuc2lnbmVkIGhhc2goKSBjb25zdDsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5n
IHRvU3RyaW5nKCkgY29uc3Q7CiAKKyAgICBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4g
ISFtX2RhdGE7IH0KKwogcHJpdmF0ZToKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgVVVJRCgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRleCBhMjg1NzUyY2M2
OGY2OGM4YzNkN2JjNjY0NjU3YmFjYjA1NTJlZmY0Li5kOGIxYWQyOTRmZDE3NTQ2ODJlOGU0MmZj
YjU2MWZjZTU5ZmNhNDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVt
ZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5j
cHAKQEAgLTEyNCw3ICsxMjQsNyBAQCBSZWY8Q1NTU3R5bGVTaGVldD4gRE9NSW1wbGVtZW50YXRp
b246OmNyZWF0ZUNTU1N0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiwgY29uc3QgUwogCiBSZWY8SFRN
TERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlSFRNTERvY3VtZW50KGNvbnN0IFN0
cmluZyYgdGl0bGUpCiB7Ci0gICAgYXV0byBkb2N1bWVudCA9IEhUTUxEb2N1bWVudDo6Y3JlYXRl
KG51bGxwdHIsIG1fZG9jdW1lbnQuc2V0dGluZ3MoKSwgVVJMKCkpOworICAgIGF1dG8gZG9jdW1l
bnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShudWxscHRyLCBtX2RvY3VtZW50LnNldHRpbmdzKCks
IFVSTCgpLCB7IH0pOwogICAgIGRvY3VtZW50LT5vcGVuKCk7CiAgICAgZG9jdW1lbnQtPndyaXRl
KG51bGxwdHIsIHsgIjwhZG9jdHlwZSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT48L2Jv
ZHk+PC9odG1sPiJfcyB9KTsKICAgICBpZiAoIXRpdGxlLmlzTnVsbCgpKSB7CkBAIC0xMzgsNyAr
MTM4LDcgQEAgUmVmPEhUTUxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZUhUTUxE
b2N1bWVudChjb25zdCBTdHJpbmcmIHRpdGxlKQogICAgIHJldHVybiBkb2N1bWVudDsKIH0KIAot
UmVmPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSwgRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3Ms
IGNvbnN0IFVSTCYgdXJsKQorUmVmPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRl
RG9jdW1lbnQoY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgRnJhbWUqIGZyYW1lLCBjb25zdCBT
ZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJsLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIpCiB7CiAgICAgLy8gRklYTUU6IEluZWxlZ2Fu
dCB0byBoYXZlIHRoaXMgaGVyZSBqdXN0IGJlY2F1c2UgdGhpcyBpcyB0aGUgaG9tZSBvZiBET00g
QVBJcyBmb3IgY3JlYXRpbmcgZG9jdW1lbnRzLgogICAgIC8vIFRoaXMgaXMgaW50ZXJuYWwsIG5v
dCBhIERPTSBBUEkuIE1heWJlIHdlIHNob3VsZCBwdXQgaXQgaW4gYSBuZXcgY2xhc3MgY2FsbGVk
IERvY3VtZW50RmFjdG9yeSwKQEAgLTE0NiwxMSArMTQ2LDExIEBAIFJlZjxEb2N1bWVudD4gRE9N
SW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUs
IEZyYW1lCiAKICAgICAvLyBQbHVnLWlucyBjYW5ub3QgdGFrZSBvdmVyIGZvciBIVE1MLCBYSFRN
TCwgcGxhaW4gdGV4dCwgb3Igbm9uLVBERiBpbWFnZXMuCiAgICAgaWYgKGVxdWFsTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKGNvbnRlbnRUeXBlLCAidGV4dC9odG1sIikpCi0gICAgICAgIHJldHVy
biBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgc2V0dGluZ3MsIHVybCk7CisgICAgICAgIHJl
dHVybiBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgc2V0dGluZ3MsIHVybCwgZG9jdW1lbnRJ
ZGVudGlmaWVyKTsKICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoY29udGVu
dFR5cGUsICJhcHBsaWNhdGlvbi94aHRtbCt4bWwiKSkKICAgICAgICAgcmV0dXJuIFhNTERvY3Vt
ZW50OjpjcmVhdGVYSFRNTChmcmFtZSwgc2V0dGluZ3MsIHVybCk7CiAgICAgaWYgKGVxdWFsTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnRlbnRUeXBlLCAidGV4dC9wbGFpbiIpKQotICAgICAg
ICByZXR1cm4gVGV4dERvY3VtZW50OjpjcmVhdGUoZnJhbWUsIHNldHRpbmdzLCB1cmwpOworICAg
ICAgICByZXR1cm4gVGV4dERvY3VtZW50OjpjcmVhdGUoZnJhbWUsIHNldHRpbmdzLCB1cmwsIGRv
Y3VtZW50SWRlbnRpZmllcik7CiAgICAgYm9vbCBpc0ltYWdlID0gTUlNRVR5cGVSZWdpc3RyeTo6
aXNTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlKGNvbnRlbnRUeXBlKTsKICAgICBpZiAoZnJhbWUgJiYg
aXNJbWFnZSAmJiAhTUlNRVR5cGVSZWdpc3RyeTo6aXNQREZPclBvc3RTY3JpcHRNSU1FVHlwZShj
b250ZW50VHlwZSkpCiAgICAgICAgIHJldHVybiBJbWFnZURvY3VtZW50OjpjcmVhdGUoKmZyYW1l
LCB1cmwpOwpAQCAtMTkzLDcgKzE5Myw3IEBAIFJlZjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRp
b246OmNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIEZyYW1lCiAgICAg
aWYgKGZyYW1lICYmIGlzSW1hZ2UpCiAgICAgICAgIHJldHVybiBJbWFnZURvY3VtZW50OjpjcmVh
dGUoKmZyYW1lLCB1cmwpOwogICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1RleHRNSU1FVHlw
ZShjb250ZW50VHlwZSkpCi0gICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQ6OmNyZWF0ZShmcmFt
ZSwgc2V0dGluZ3MsIHVybCk7CisgICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQ6OmNyZWF0ZShm
cmFtZSwgc2V0dGluZ3MsIHVybCwgZG9jdW1lbnRJZGVudGlmaWVyKTsKICAgICBpZiAoZXF1YWxM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoY29udGVudFR5cGUsICJpbWFnZS9zdmcreG1sIikpCiAg
ICAgICAgIHJldHVybiBTVkdEb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCBzZXR0aW5ncywgdXJsKTsK
ICAgICBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNYTUxNSU1FVHlwZShjb250ZW50VHlwZSkpIHsK
QEAgLTIwMSw3ICsyMDEsOCBAQCBSZWY8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVh
dGVEb2N1bWVudChjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBGcmFtZQogICAgICAgICBkb2N1
bWVudC0+b3ZlcnJpZGVNSU1FVHlwZShjb250ZW50VHlwZSk7CiAgICAgICAgIHJldHVybiBkb2N1
bWVudDsKICAgICB9Ci0gICAgcmV0dXJuIEhUTUxEb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCBzZXR0
aW5ncywgdXJsKTsKKworICAgIHJldHVybiBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgc2V0
dGluZ3MsIHVybCwgZG9jdW1lbnRJZGVudGlmaWVyKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NSW1wbGVtZW50YXRpb24uaAppbmRleCA1ZDYxMmQxYTFlMTI2MzdlY2Y2NTdiYjg4YjM5OGI2
YzU0ZjQ1Yjc2Li5lODllMmZlNjM1ZjlhNzNmYjFhMmIwZjY0MWMwOTk0ODNkNTczMDY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaApAQCAtMjQsNiArMjQsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiWE1MRG9jdW1lbnQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDMsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGJvb2wgaGFzRmVhdHVyZSgpIHsgcmV0dXJuIHRydWU7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUmVmPENTU1N0eWxlU2hlZXQ+IGNyZWF0ZUNTU1N0eWxlU2hlZXQoY29uc3QgU3RyaW5n
JiB0aXRsZSwgY29uc3QgU3RyaW5nJiBtZWRpYSk7CiAKLSAgICBzdGF0aWMgUmVmPERvY3VtZW50
PiBjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBGcmFtZSosIGNvbnN0
IFNldHRpbmdzJiwgY29uc3QgVVJMJik7CisgICAgc3RhdGljIFJlZjxEb2N1bWVudD4gY3JlYXRl
RG9jdW1lbnQoY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgRnJhbWUqLCBjb25zdCBTZXR0aW5n
cyYsIGNvbnN0IFVSTCYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyID0geyB9KTsK
IAogcHJpdmF0ZToKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCmluZGV4IGRmY2E3YWU1ZTZlYjM3ZTJhNjEzODhlMWZhMTM2YTBjMmNiZTBlNjAuLmY1ZGMy
NTcyMDhmMDhiY2YxNmMwYzM4YWJhNTI0N2IxY2VkMDY3YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcApAQCAtNjA1LDkgKzYwNSwxMCBAQCBzdGF0aWMgUmVmPENhY2hlZFJlc291cmNlTG9hZGVy
PiBjcmVhdGVDYWNoZWRSZXNvdXJjZUxvYWRlcihGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIENh
Y2hlZFJlc291cmNlTG9hZGVyOjpjcmVhdGUobnVsbHB0cik7CiB9CiAKLURvY3VtZW50OjpEb2N1
bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncywgY29uc3QgVVJMJiB1
cmwsIERvY3VtZW50Q2xhc3NlcyBkb2N1bWVudENsYXNzZXMsIHVuc2lnbmVkIGNvbnN0cnVjdGlv
bkZsYWdzKQorRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3Mm
IHNldHRpbmdzLCBjb25zdCBVUkwmIHVybCwgRG9jdW1lbnRDbGFzc2VzIGRvY3VtZW50Q2xhc3Nl
cywgdW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3MsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCiAgICAgOiBDb250YWluZXJOb2RlKCp0aGlzLCBDcmVhdGVEb2N1
bWVudCkKICAgICAsIFRyZWVTY29wZSgqdGhpcykKKyAgICAsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoaWRlbnRpZmllcikKICAgICAsIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcihmcmFtZSkKICAg
ICAsIG1fc2V0dGluZ3Moc2V0dGluZ3MpCiAgICAgLCBtX3F1aXJrcyhtYWtlVW5pcXVlUmVmPFF1
aXJrcz4oKnRoaXMpKQpAQCAtNzUxMiw3ICs3NTEzLDcgQEAgRG9jdW1lbnQmIERvY3VtZW50Ojpl
bnN1cmVUZW1wbGF0ZURvY3VtZW50KCkKICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8RG9jdW1l
bnQmPigqZG9jdW1lbnQpOwogCiAgICAgaWYgKGlzSFRNTERvY3VtZW50KCkpCi0gICAgICAgIG1f
dGVtcGxhdGVEb2N1bWVudCA9IEhUTUxEb2N1bWVudDo6Y3JlYXRlKG51bGxwdHIsIG1fc2V0dGlu
Z3MsIGFib3V0QmxhbmtVUkwoKSk7CisgICAgICAgIG1fdGVtcGxhdGVEb2N1bWVudCA9IEhUTUxE
b2N1bWVudDo6Y3JlYXRlKG51bGxwdHIsIG1fc2V0dGluZ3MsIGFib3V0QmxhbmtVUkwoKSwgeyB9
KTsKICAgICBlbHNlCiAgICAgICAgIG1fdGVtcGxhdGVEb2N1bWVudCA9IGNyZWF0ZShtX3NldHRp
bmdzLCBhYm91dEJsYW5rVVJMKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDg4YmFjNzA2
YTA5MjY3YmEwZjAxMDc0ODkxYWRhYTdkOGI5MzU1NDMuLmVjMDBhNWRjZDIxYzQ1NjNkYzJmMGEy
NGFlN2QzYzEwNjFiODQ2ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNjc2LDcgKzE2NzYs
NyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBlbnVtIENvbnN0cnVjdGlvbkZsYWdzIHsg
U3ludGhlc2l6ZWQgPSAxLCBOb25SZW5kZXJlZFBsYWNlaG9sZGVyID0gMSA8PCAxIH07Ci0gICAg
V0VCQ09SRV9FWFBPUlQgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBTZXR0aW5ncyYsIGNvbnN0IFVS
TCYsIERvY3VtZW50Q2xhc3NlcyA9IHsgfSwgdW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3MgPSAw
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudChGcmFtZSosIGNvbnN0IFNldHRpbmdzJiwg
Y29uc3QgVVJMJiwgRG9jdW1lbnRDbGFzc2VzID0geyB9LCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25G
bGFncyA9IDAsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyID0geyB9KTsKIAogICAg
IHZvaWQgY2xlYXJYTUxWZXJzaW9uKCkgeyBtX3htbFZlcnNpb24gPSBTdHJpbmcoKTsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggMjlk
Y2VlZjUzMzNmNjlkZjJlNWYzMGVkZWZkZDYxMzU3N2ZlNjRlMS4uNWZmZjg1NzRhYWZhMWFjODUy
YWQ2ZmMyNDQyNTMzZDY0OWMxMGQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcApAQCAtMTExLDEwICsxMTEsMTEgQEAgcHVibGljOgogICAgIFJl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+IG1fY2FsbFN0YWNrOwogfTsKIAotU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpCi0gICAgOiBtX2lkZW50aWZpZXIoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCitTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKQorICAgIDogbV9pZGVudGlmaWVyKGNvbnRleHRJ
ZGVudGlmaWVyID8gY29udGV4dElkZW50aWZpZXIgOiBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcjo6Z2VuZXJhdGUoKSkKIHsKICAgICBMb2NrZXIgbG9ja2VyIHsgYWxsU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dHNNYXBMb2NrIH07CisgICAgQVNTRVJUKCFhbGxTY3JpcHRFeGVjdXRpb25D
b250ZXh0c01hcCgpLmNvbnRhaW5zKG1faWRlbnRpZmllcikpOwogICAgIGFsbFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRzTWFwKCkuYWRkKG1faWRlbnRpZmllciwgdGhpcyk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDM1MzNjMjBlMmVlNTc5
NjBiNTRiZmUxNTM2ZGUzZmIyZjhjY2ExODYuLjNmNTk0MDg4YWUxODk4ZmI5NGU5ZThmNWM3Yjg0
NWQzNTU3NWQ4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaApAQCAtODksNyArODksNyBAQCBjbGFzcyBJREJDb25uZWN0aW9uUHJveHk7CiAKIGNsYXNz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgOiBwdWJsaWMgU2VjdXJpdHlDb250ZXh0LCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gewogcHVibGljOgotICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBleHBsaWNpdCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyID0geyB9KTsKICAgICB2aXJ0dWFs
IH5TY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNEb2N1bWVu
dCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGly
ZWN0b3J5RG9jdW1lbnQuY3BwCmluZGV4IDc1MjMwMTdiYTcyOTQwNTYzYjc1ZjQ2NmE2OGVkMWNj
YjNkZWU4YmEuLjg0NGNmNjA1MjFmYjY0MTU0YzVjZjk1ZTBjNTU0OTgzN2M0ZmJlMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCkBAIC00MTgsNyAr
NDE4LDcgQEAgdm9pZCBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6ZmluaXNoKCkKIH0KIAog
RlRQRGlyZWN0b3J5RG9jdW1lbnQ6OkZUUERpcmVjdG9yeURvY3VtZW50KEZyYW1lKiBmcmFtZSwg
Y29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVybCkKLSAgICA6IEhUTUxEb2N1
bWVudChmcmFtZSwgc2V0dGluZ3MsIHVybCkKKyAgICA6IEhUTUxEb2N1bWVudChmcmFtZSwgc2V0
dGluZ3MsIHVybCwgeyB9KQogewogI2lmICFMT0dfRElTQUJMRUQKICAgICBMb2dGVFAuc3RhdGUg
PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3Bw
CmluZGV4IGVlZGM3Nzg4NTg1MTMwNjFjOTJjMDczNmUzYjA1NWM1ZWRhODEzNDguLjEyOTQzZjg3
OTBmNDc1YTRjNDk3ZTlhYmU2MDBjNDhmODk5YTZkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
b2N1bWVudC5jcHAKQEAgLTg5LDExICs4OSwxMSBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVz
OwogCiBSZWY8SFRNTERvY3VtZW50PiBIVE1MRG9jdW1lbnQ6OmNyZWF0ZVN5bnRoZXNpemVkRG9j
dW1lbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBIVE1MRG9jdW1lbnQoJmZyYW1lLCBmcmFtZS5zZXR0aW5ncygpLCB1cmwsIHsgRG9j
dW1lbnRDbGFzczo6SFRNTCB9LCBTeW50aGVzaXplZCkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEhUTUxEb2N1bWVudCgmZnJhbWUsIGZyYW1lLnNldHRpbmdzKCksIHVybCwgeyB9LCB7IERv
Y3VtZW50Q2xhc3M6OkhUTUwgfSwgU3ludGhlc2l6ZWQpKTsKIH0KIAotSFRNTERvY3VtZW50OjpI
VE1MRG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0
IFVSTCYgdXJsLCBEb2N1bWVudENsYXNzZXMgZG9jdW1lbnRDbGFzc2VzLCB1bnNpZ25lZCBjb25z
dHJ1Y3Rpb25GbGFncykKLSAgICA6IERvY3VtZW50KGZyYW1lLCBzZXR0aW5ncywgdXJsLCBkb2N1
bWVudENsYXNzZXMgfCBEb2N1bWVudENsYXNzZXMoRG9jdW1lbnRDbGFzczo6SFRNTCksIGNvbnN0
cnVjdGlvbkZsYWdzKQorSFRNTERvY3VtZW50OjpIVE1MRG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBj
b25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJsLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIsIERvY3VtZW50Q2xhc3NlcyBkb2N1
bWVudENsYXNzZXMsIHVuc2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdzKQorICAgIDogRG9jdW1lbnQo
ZnJhbWUsIHNldHRpbmdzLCB1cmwsIGRvY3VtZW50Q2xhc3NlcyB8IERvY3VtZW50Q2xhc3NlcyhE
b2N1bWVudENsYXNzOjpIVE1MKSwgY29uc3RydWN0aW9uRmxhZ3MsIGRvY3VtZW50SWRlbnRpZmll
cikKIHsKICAgICBjbGVhclhNTFZlcnNpb24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVu
dC5oCmluZGV4IGU1N2ZhNjQ1OTA0NjRmZmEwOTcwOTUzMzc3ZDEwMWIwZjE1ZTJlYzcuLmFjMGZj
OTYyOGYwNzU4YWVkMjk3YmVjZDUyNWQ4YWM2YzlkNGI1MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RG9jdW1lbnQuaApAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBI
VE1MRG9jdW1lbnQgOiBwdWJsaWMgRG9jdW1lbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoSFRNTERvY3VtZW50KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEhUTUxEb2N1bWVudD4g
Y3JlYXRlKEZyYW1lKiwgY29uc3QgU2V0dGluZ3MmLCBjb25zdCBVUkwmKTsKKyAgICBzdGF0aWMg
UmVmPEhUTUxEb2N1bWVudD4gY3JlYXRlKEZyYW1lKiwgY29uc3QgU2V0dGluZ3MmLCBjb25zdCBV
UkwmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciA9IHsgfSk7CiAgICAgc3RhdGlj
IFJlZjxIVE1MRG9jdW1lbnQ+IGNyZWF0ZVN5bnRoZXNpemVkRG9jdW1lbnQoRnJhbWUmLCBjb25z
dCBVUkwmKTsKICAgICB2aXJ0dWFsIH5IVE1MRG9jdW1lbnQoKTsKIApAQCAtNTQsNyArNTQsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNDYXNlU2Vuc2l0aXZlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmKTsKIAogcHJvdGVjdGVkOgotICAgIEhUTUxEb2N1bWVudChGcmFtZSos
IGNvbnN0IFNldHRpbmdzJiwgY29uc3QgVVJMJiwgRG9jdW1lbnRDbGFzc2VzID0geyB9LCB1bnNp
Z25lZCBjb25zdHJ1Y3Rpb25GbGFncyA9IDApOworICAgIEhUTUxEb2N1bWVudChGcmFtZSosIGNv
bnN0IFNldHRpbmdzJiwgY29uc3QgVVJMJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIsIERvY3VtZW50Q2xhc3NlcyA9IHsgfSwgdW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3MgPSAw
KTsKIAogcHJpdmF0ZToKICAgICBib29sIGlzRnJhbWVTZXQoKSBjb25zdCBmaW5hbDsKQEAgLTY1
LDkgKzY1LDkgQEAgcHJpdmF0ZToKICAgICBUcmVlU2NvcGVPcmRlcmVkTWFwIG1fd2luZG93TmFt
ZWRJdGVtOwogfTsKIAotaW5saW5lIFJlZjxIVE1MRG9jdW1lbnQ+IEhUTUxEb2N1bWVudDo6Y3Jl
YXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVy
bCkKK2lubGluZSBSZWY8SFRNTERvY3VtZW50PiBIVE1MRG9jdW1lbnQ6OmNyZWF0ZShGcmFtZSog
ZnJhbWUsIGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncywgY29uc3QgVVJMJiB1cmwsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSFRNTERvY3VtZW50KGZyYW1lLCBzZXR0aW5ncywgdXJsLCB7IERvY3VtZW50Q2xh
c3M6OkhUTUwgfSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxEb2N1bWVudChmcmFt
ZSwgc2V0dGluZ3MsIHVybCwgaWRlbnRpZmllciwgeyBEb2N1bWVudENsYXNzOjpIVE1MIH0sIDAp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1
bWVudC5jcHAKaW5kZXggNDM3MGQ2ODE4NzJkOTVjMTBjMGY0ZTk1OWUxNDc0MzlhZDU3NDQwYS4u
NGQxMGZiMDU3NzI0NjI4NTc2ODg1MDNkNjY0NzY5N2YwY2IwNGJhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ltYWdlRG9jdW1lbnQuY3BwCkBAIC0xOTgsNyArMTk4LDcgQEAgdm9pZCBJbWFnZURvY3Vt
ZW50UGFyc2VyOjpmaW5pc2goKQogfQogCiBJbWFnZURvY3VtZW50OjpJbWFnZURvY3VtZW50KEZy
YW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCi0gICAgOiBIVE1MRG9jdW1lbnQoJmZyYW1lLCBm
cmFtZS5zZXR0aW5ncygpLCB1cmwsIHsgRG9jdW1lbnRDbGFzczo6SW1hZ2UgfSkKKyAgICA6IEhU
TUxEb2N1bWVudCgmZnJhbWUsIGZyYW1lLnNldHRpbmdzKCksIHVybCwgeyB9LCB7IERvY3VtZW50
Q2xhc3M6OkltYWdlIH0pCiAgICAgLCBtX2ltYWdlRWxlbWVudChudWxscHRyKQogICAgICwgbV9p
bWFnZVNpemVJc0tub3duKGZhbHNlKQogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKaW5kZXggNmEyNTAxZjdmZDljNTc5MzE5YWZjMmYx
MTVjZDNlODhkMjhmM2Y0ZS4uYzI1MzFjNzQxMGNiYmUzNzkwMzRkOGQ2YTRiNzZjZjE3OTQ2NzQ5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCkBAIC0xNDAsNyArMTQwLDcg
QEAgdm9pZCBNZWRpYURvY3VtZW50UGFyc2VyOjphcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciYs
IGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpCiB9CiAgICAgCiBNZWRpYURvY3VtZW50OjpNZWRpYURv
Y3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwm
IHVybCkKLSAgICA6IEhUTUxEb2N1bWVudChmcmFtZSwgc2V0dGluZ3MsIHVybCwgeyBEb2N1bWVu
dENsYXNzOjpNZWRpYSB9KQorICAgIDogSFRNTERvY3VtZW50KGZyYW1lLCBzZXR0aW5ncywgdXJs
LCB7IH0sIHsgRG9jdW1lbnRDbGFzczo6TWVkaWEgfSkKIHsKICAgICBzZXRDb21wYXRpYmlsaXR5
TW9kZShEb2N1bWVudENvbXBhdGliaWxpdHlNb2RlOjpRdWlya3NNb2RlKTsKICAgICBsb2NrQ29t
cGF0aWJpbGl0eU1vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9kZWxE
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vZGVsRG9jdW1lbnQuY3BwCmluZGV4
IDZlNTBiOWQ0MjgzYjY3NjYyZWJkNDdmNDc3YmFmODgxM2ZlN2JkZmQuLjg0YjUxYTI4OWU0MmNm
M2FkY2ZlYjBmYmY2YmI5NWIxZTU1YzgzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTW9kZWxEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb2RlbERvY3Vt
ZW50LmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgTW9kZWxEb2N1bWVudFBhcnNlcjo6Zmlu
aXNoKCkKIH0KIAogTW9kZWxEb2N1bWVudDo6TW9kZWxEb2N1bWVudChGcmFtZSogZnJhbWUsIGNv
bnN0IFNldHRpbmdzJiBzZXR0aW5ncywgY29uc3QgVVJMJiB1cmwpCi0gICAgOiBIVE1MRG9jdW1l
bnQoZnJhbWUsIHNldHRpbmdzLCB1cmwsIHsgRG9jdW1lbnRDbGFzczo6TW9kZWwgfSkKKyAgICA6
IEhUTUxEb2N1bWVudChmcmFtZSwgc2V0dGluZ3MsIHVybCwgeyB9LCB7IERvY3VtZW50Q2xhc3M6
Ok1vZGVsIH0pCiB7CiAgICAgaWYgKGZyYW1lKQogICAgICAgICBtX291dGdvaW5nUmVmZXJyZXIg
PSBmcmFtZS0+bG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bs
dWdpbkRvY3VtZW50LmNwcAppbmRleCA3NzcxYTQ2NzM4MDAyYzc3ZmFjODMxMTRhZTFjNTQ1Mjcy
ZTFiNDYyLi42ODRjZjFjYWMxNDRmYzYwYzUzNTI5NDU2NmEwYmJiZmYyZDI1YjhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQg
UGx1Z2luRG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5dGVzKERvY3VtZW50V3JpdGVyJiwgY29uc3Qg
dWludDhfdCosIHNpemVfdCkKIH0KIAogUGx1Z2luRG9jdW1lbnQ6OlBsdWdpbkRvY3VtZW50KEZy
YW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCi0gICAgOiBIVE1MRG9jdW1lbnQoJmZyYW1lLCBm
cmFtZS5zZXR0aW5ncygpLCB1cmwsIHsgRG9jdW1lbnRDbGFzczo6UGx1Z2luIH0pCisgICAgOiBI
VE1MRG9jdW1lbnQoJmZyYW1lLCBmcmFtZS5zZXR0aW5ncygpLCB1cmwsIHsgfSwgeyBEb2N1bWVu
dENsYXNzOjpQbHVnaW4gfSkKIHsKICAgICBzZXRDb21wYXRpYmlsaXR5TW9kZShEb2N1bWVudENv
bXBhdGliaWxpdHlNb2RlOjpRdWlya3NNb2RlKTsKICAgICBsb2NrQ29tcGF0aWJpbGl0eU1vZGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dERvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dERvY3VtZW50LmNwcAppbmRleCAzM2YyNDc4YjM3NzNlNDk1
ZTIyNjU4ZmZmMjFlNTM5ODE2MmNhYTU0Li4zMzJlOThhMGU4YjU5OTJiZDhlNmQ5ZGM3ZDE1ZTkx
YWVlNTk3NDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHREb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RG9jdW1lbnQuY3BwCkBAIC0zMiw4ICsz
Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KFRleHREb2N1bWVudCk7CiAKLVRleHREb2N1bWVudDo6VGV4dERvY3VtZW50KEZyYW1lKiBmcmFt
ZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVybCkKLSAgICA6IEhUTUxE
b2N1bWVudChmcmFtZSwgc2V0dGluZ3MsIHVybCwgeyBEb2N1bWVudENsYXNzOjpUZXh0IH0pCitU
ZXh0RG9jdW1lbnQ6OlRleHREb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFNldHRpbmdzJiBz
ZXR0aW5ncywgY29uc3QgVVJMJiB1cmwsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
IGlkZW50aWZpZXIpCisgICAgOiBIVE1MRG9jdW1lbnQoZnJhbWUsIHNldHRpbmdzLCB1cmwsIGlk
ZW50aWZpZXIsIHsgRG9jdW1lbnRDbGFzczo6VGV4dCB9KQogewogICAgIHNldENvbXBhdGliaWxp
dHlNb2RlKERvY3VtZW50Q29tcGF0aWJpbGl0eU1vZGU6OlF1aXJrc01vZGUpOwogICAgIGxvY2tD
b21wYXRpYmlsaXR5TW9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dERvY3VtZW50LmgKaW5kZXggZDQ4
MTY1MTJhYmE3MTg0YzllYThjNjZhZmRkNTA4MjcyOWE1YjIzNi4uOTE3MDQ0ZWEzNjBhZTIyNzFm
MTJiMzU0YzBhODZiN2E4ODRlMjRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHREb2N1bWVudC5oCkBA
IC0zMSwxMyArMzEsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVGV4dERvY3VtZW50
IGZpbmFsIDogcHVibGljIEhUTUxEb2N1bWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChUZXh0RG9jdW1lbnQpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VGV4dERvY3VtZW50PiBj
cmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYg
dXJsKQorICAgIHN0YXRpYyBSZWY8VGV4dERvY3VtZW50PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBj
b25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJsLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgVGV4dERvY3VtZW50KGZyYW1lLCBzZXR0aW5ncywgdXJsKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFRleHREb2N1bWVudChmcmFtZSwgc2V0dGluZ3MsIHVybCwgaWRl
bnRpZmllcikpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBUZXh0RG9jdW1lbnQoRnJhbWUqLCBj
b25zdCBTZXR0aW5ncyYsIGNvbnN0IFVSTCYpOworICAgIFRleHREb2N1bWVudChGcmFtZSosIGNv
bnN0IFNldHRpbmdzJiwgY29uc3QgVVJMJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIpOwogICAgIAogICAgIFJlZjxEb2N1bWVudFBhcnNlcj4gY3JlYXRlUGFyc2VyKCkgb3ZlcnJp
ZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNoU3Vw
cG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcApp
bmRleCBmNmRhMjM4NWQ3ZDA3NmYwNjY0Njg2MTJhZWMxZTdiMjYxMjllMzMzLi42YmE3YzVmMWI4
MWJjODEyODgyNWI5Yjg3Y2QyYTU1ZTYwZjYwMTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIERPTVBhdGNo
U3VwcG9ydDo6cGF0Y2hEb2N1bWVudChjb25zdCBTdHJpbmcmIG1hcmt1cCkKIHsKICAgICBSZWZQ
dHI8RG9jdW1lbnQ+IG5ld0RvY3VtZW50OwogICAgIGlmIChtX2RvY3VtZW50LmlzSFRNTERvY3Vt
ZW50KCkpCi0gICAgICAgIG5ld0RvY3VtZW50ID0gSFRNTERvY3VtZW50OjpjcmVhdGUobnVsbHB0
ciwgbV9kb2N1bWVudC5zZXR0aW5ncygpLCBVUkwoKSk7CisgICAgICAgIG5ld0RvY3VtZW50ID0g
SFRNTERvY3VtZW50OjpjcmVhdGUobnVsbHB0ciwgbV9kb2N1bWVudC5zZXR0aW5ncygpLCBVUkwo
KSwgeyB9KTsKICAgICBlbHNlIGlmIChtX2RvY3VtZW50LmlzWEhUTUxEb2N1bWVudCgpKQogICAg
ICAgICBuZXdEb2N1bWVudCA9IFhNTERvY3VtZW50OjpjcmVhdGVYSFRNTChudWxscHRyLCBtX2Rv
Y3VtZW50LnNldHRpbmdzKCksIFVSTCgpKTsKICAgICBlbHNlIGlmIChtX2RvY3VtZW50LmlzU1ZH
RG9jdW1lbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4
IGVmNzYzYjc5MTI5MzQ5ODg1ZTZmZTRmYWU5MzFkNmMyYTg2ODExYTYuLjI2NzAzNzFhYjMxZjIw
NjYzZGNjNzlhNGYwN2FhNjhhNjg1ZmQ4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcApAQCAtMTUwLDE1ICsxNTAsMTUgQEAgc3RhdGljIHZvaWQgc2V0QWxsRGVm
ZXJzTG9hZGluZyhjb25zdCBSZXNvdXJjZUxvYWRlck1hcCYgbG9hZGVycywgYm9vbCBkZWZlcnMp
CiAgICAgICAgIGxvYWRlci0+c2V0RGVmZXJzTG9hZGluZyhkZWZlcnMpOwogfQogCi1zdGF0aWMg
SGFzaE1hcDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIq
PiYgdGVtcG9yYXJ5SWRlbnRpZmllclRvTG9hZGVyTWFwKCkKK3N0YXRpYyBIYXNoTWFwPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBEb2N1bWVudExvYWRlcio+JiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllclRvTG9hZGVyTWFwKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8SGFzaE1hcDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgRG9jdW1l
bnRMb2FkZXIqPj4gbWFwOwogICAgIHJldHVybiBtYXAuZ2V0KCk7CiB9CiAKLURvY3VtZW50TG9h
ZGVyKiBEb2N1bWVudExvYWRlcjo6ZnJvbVRlbXBvcmFyeURvY3VtZW50SWRlbnRpZmllcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyKQorRG9jdW1lbnRMb2FkZXIq
IERvY3VtZW50TG9hZGVyOjpmcm9tU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4g
dGVtcG9yYXJ5SWRlbnRpZmllclRvTG9hZGVyTWFwKCkuZ2V0KGlkZW50aWZpZXIpOworICAgIHJl
dHVybiBzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclRvTG9hZGVyTWFwKCkuZ2V0KGlk
ZW50aWZpZXIpOwogfQogCiBERUZJTkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKERv
Y3VtZW50TG9hZGVyKTsKQEAgLTIwMCw5ICsyMDAsOSBAQCBEb2N1bWVudExvYWRlcjo6fkRvY3Vt
ZW50TG9hZGVyKCkKICAgICBjbGVhck1haW5SZXNvdXJjZSgpOwogCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQotICAgIGlmIChtX3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQpIHsKLSAg
ICAgICAgQVNTRVJUKHRlbXBvcmFyeUlkZW50aWZpZXJUb0xvYWRlck1hcCgpLmNvbnRhaW5zKCpt
X3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQpKTsKLSAgICAgICAgdGVtcG9yYXJ5SWRlbnRp
ZmllclRvTG9hZGVyTWFwKCkucmVtb3ZlKCptX3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQp
OworICAgIGlmIChtX3Jlc3VsdGluZ0NsaWVudElkKSB7CisgICAgICAgIEFTU0VSVChzY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllclRvTG9hZGVyTWFwKCkuY29udGFpbnMobV9yZXN1bHRp
bmdDbGllbnRJZCkpOworICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclRv
TG9hZGVyTWFwKCkucmVtb3ZlKG1fcmVzdWx0aW5nQ2xpZW50SWQpOwogICAgIH0KICNlbmRpZgog
fQpAQCAtNTU1LDYgKzU1NSwxMSBAQCBib29sIERvY3VtZW50TG9hZGVyOjpzZXRDb250cm9sbGlu
Z1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlclJlZ2lzdAogICAgIHJldHVy
biB0cnVlOwogfQogCitTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBEb2N1bWVudExv
YWRlcjo6cmVzdWx0aW5nQ2xpZW50SWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3Jlc3VsdGlu
Z0NsaWVudElkOworfQorCiB2b2lkIERvY3VtZW50TG9hZGVyOjptYXRjaFJlZ2lzdHJhdGlvbihj
b25zdCBVUkwmIHVybCwgU1dDbGllbnRDb25uZWN0aW9uOjpSZWdpc3RyYXRpb25DYWxsYmFjayYm
IGNhbGxiYWNrKQogewogICAgIGF1dG8gc2hvdWxkVHJ5TG9hZGluZ1Rocm91Z2hTZXJ2aWNlV29y
a2VyID0gIWZyYW1lTG9hZGVyKCktPmlzUmVsb2FkaW5nRnJvbU9yaWdpbigpICYmIG1fZnJhbWUt
PnBhZ2UoKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNlcnZp
Y2VXb3JrZXJFbmFibGVkKCkgJiYgdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKTsKQEAgLTU4
OSw4ICs1OTQsOSBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZWRpcmVjdFJlY2VpdmVkKENhY2hl
ZFJlc291cmNlJiByZXNvdXJjZSwgUmVzb3VyY2VSZXF1ZXN0JgogI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKICAgICBpZiAobV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSkgewogICAg
ICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhID0geyB9OwotICAgICAgICB1bnJl
Z2lzdGVyVGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCgpOworICAgICAgICB1bnJlZ2lzdGVy
UmVzZXJ2ZWRTZXJ2aWNlV29ya2VyQ2xpZW50KCk7CiAgICAgfQorCiAgICAgd2lsbFNlbmRSZXF1
ZXN0KFdURk1vdmUocmVxdWVzdCksIHJlZGlyZWN0UmVzcG9uc2UsIFtjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfSwgdGhpc10gKGF1dG8mJiByZXF1ZXN0KSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKCFt
X3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSk7CiAgICAgICAgIGlmIChyZXF1ZXN0LmlzTnVsbCgp
IHx8ICFtX21haW5Eb2N1bWVudEVycm9yLmlzTnVsbCgpIHx8ICFtX2ZyYW1lKSB7CkBAIC0xMjAy
LDcgKzEyMDgsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpjb21taXREYXRhKGNvbnN0IFNoYXJl
ZEJ1ZmZlciYgZGF0YSkKIHsKICAgICBpZiAoIW1fZ290Rmlyc3RCeXRlKSB7CiAgICAgICAgIG1f
Z290Rmlyc3RCeXRlID0gdHJ1ZTsKLSAgICAgICAgYm9vbCBoYXNCZWd1biA9IG1fd3JpdGVyLmJl
Z2luKGRvY3VtZW50VVJMKCksIGZhbHNlKTsKKyAgICAgICAgYm9vbCBoYXNCZWd1biA9IG1fd3Jp
dGVyLmJlZ2luKGRvY3VtZW50VVJMKCksIGZhbHNlLCBudWxscHRyLCBtX3Jlc3VsdGluZ0NsaWVu
dElkKTsKICAgICAgICAgaWYgKCFoYXNCZWd1bikKICAgICAgICAgICAgIHJldHVybjsKIApAQCAt
MTIzMCwyMCArMTIzNiwyNSBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpjb21taXREYXRhKGNvbnN0
IFNoYXJlZEJ1ZmZlciYgZGF0YSkKICNlbmRpZgogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
ICAgICAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2Vy
dmljZVdvcmtlckVuYWJsZWQoKSkgewotICAgICAgICAgICAgaWYgKG1fc2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRhdGEgJiYgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS0+YWN0aXZl
V29ya2VyKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuc2V0QWN0aXZlU2VydmljZVdvcmtl
cihTZXJ2aWNlV29ya2VyOjpnZXRPckNyZWF0ZShkb2N1bWVudCwgV1RGTW92ZShtX3NlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhLT5hY3RpdmVXb3JrZXIudmFsdWUoKSkpKTsKLSAgICAgICAg
ICAgICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhID0geyB9OwotICAgICAgICAg
ICAgfSBlbHNlIGlmIChhdXRvKiBwYXJlbnQgPSBkb2N1bWVudC5wYXJlbnREb2N1bWVudCgpKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKHNob3VsZFVzZUFjdGl2ZVNlcnZpY2VXb3JrZXJGcm9tUGFy
ZW50KGRvY3VtZW50LCAqcGFyZW50KSkKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuc2V0
QWN0aXZlU2VydmljZVdvcmtlcihwYXJlbnQtPmFjdGl2ZVNlcnZpY2VXb3JrZXIoKSk7CisgICAg
ICAgICAgICBpZiAoIWRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuaXNVbmlxdWUoKSkgeworICAg
ICAgICAgICAgICAgIGlmIChtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhICYmIG1fc2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEtPmFjdGl2ZVdvcmtlcikgeworICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5zZXRBY3RpdmVTZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXI6Omdl
dE9yQ3JlYXRlKGRvY3VtZW50LCBXVEZNb3ZlKG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRh
dGEtPmFjdGl2ZVdvcmtlci52YWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBtX3NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhID0geyB9OworICAgICAgICAgICAgICAgIH0gZWxzZSBp
ZiAoYXV0byogcGFyZW50ID0gZG9jdW1lbnQucGFyZW50RG9jdW1lbnQoKSkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoc2hvdWxkVXNlQWN0aXZlU2VydmljZVdvcmtlckZyb21QYXJlbnQoZG9j
dW1lbnQsICpwYXJlbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuc2V0QWN0
aXZlU2VydmljZVdvcmtlcihwYXJlbnQtPmFjdGl2ZVNlcnZpY2VXb3JrZXIoKSk7CisgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAobV9mcmFtZS0+ZG9j
dW1lbnQoKS0+YWN0aXZlU2VydmljZVdvcmtlcigpIHx8IGRvY3VtZW50LnVybCgpLnByb3RvY29s
SXNJbkhUVFBGYW1pbHkoKSB8fCAoZG9jdW1lbnQucGFnZSgpICYmIGRvY3VtZW50LnBhZ2UoKS0+
aXNTZXJ2aWNlV29ya2VyUGFnZSgpKSkKICAgICAgICAgICAgICAgICBkb2N1bWVudC5zZXRTZXJ2
aWNlV29ya2VyQ29ubmVjdGlvbigmU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5z
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigpKTsKIAotICAgICAgICAgICAgLy8gV2UgY3VycmVudGx5
IHVucmVnaXN0ZXIgdGhlIHRlbXBvcmFyeSBzZXJ2aWNlIHdvcmtlciBjbGllbnQgc2luY2Ugd2Ug
bm93IHJlZ2lzdGVyZWQgdGhlIHJlYWwgZG9jdW1lbnQuCi0gICAgICAgICAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIG1ha2UgdGhlIHJlYWwgZG9jdW1lbnQgdXNlIHRoZSB0ZW1wb3JhcnkgY2xpZW50
IGlkZW50aWZpZXIuCi0gICAgICAgICAgICB1bnJlZ2lzdGVyVGVtcG9yYXJ5U2VydmljZVdvcmtl
ckNsaWVudCgpOworICAgICAgICAgICAgaWYgKG1fcmVzdWx0aW5nQ2xpZW50SWQpIHsKKyAgICAg
ICAgICAgICAgICBpZiAobV9yZXN1bHRpbmdDbGllbnRJZCAhPSBkb2N1bWVudC5pZGVudGlmaWVy
KCkpCisgICAgICAgICAgICAgICAgICAgIHVucmVnaXN0ZXJSZXNlcnZlZFNlcnZpY2VXb3JrZXJD
bGllbnQoKTsKKyAgICAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
clRvTG9hZGVyTWFwKCkucmVtb3ZlKG1fcmVzdWx0aW5nQ2xpZW50SWQpOworICAgICAgICAgICAg
ICAgIG1fcmVzdWx0aW5nQ2xpZW50SWQgPSB7IH07CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICNlbmRpZgogICAgICAgICAvLyBDYWxsIHJlY2VpdmVkRmlyc3REYXRhKCkgZXhhY3RseSBvbmNl
IHBlciBsb2FkLiBXZSBzaG91bGQgb25seSByZWFjaCB0aGlzIHBvaW50IG11bHRpcGxlIHRpbWVz
CkBAIC0yMDY2LDE0ICsyMDc3LDE0IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnN0YXJ0TG9hZGlu
Z01haW5SZXNvdXJjZSgpCiAgICAgfSk7CiB9CiAKLXZvaWQgRG9jdW1lbnRMb2FkZXI6OnVucmVn
aXN0ZXJUZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50KCkKK3ZvaWQgRG9jdW1lbnRMb2FkZXI6
OnVucmVnaXN0ZXJSZXNlcnZlZFNlcnZpY2VXb3JrZXJDbGllbnQoKQogewogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKLSAgICBpZiAoIW1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCB8
fCAhUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXJ2aWNlV29ya2Vy
RW5hYmxlZCgpKQorICAgIGlmICghbV9yZXN1bHRpbmdDbGllbnRJZCB8fCAhUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXJ2aWNlV29ya2VyRW5hYmxlZCgpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBhdXRvJiBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiA9IFNlcnZp
Y2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKTsK
LSAgICBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi51bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVu
dCgqbV90ZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50KTsKKyAgICBzZXJ2aWNlV29ya2VyQ29u
bmVjdGlvbi51bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChtX3Jlc3VsdGluZ0NsaWVudElk
KTsKICNlbmRpZgogfQogCkBAIC0yMDkyLDE1ICsyMTAzLDE2IEBAIHZvaWQgRG9jdW1lbnRMb2Fk
ZXI6OmxvYWRNYWluUmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKICAgICAgICAg
Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrLAogICAgICAg
ICBEZWZlcnNMb2FkaW5nUG9saWN5OjpBbGxvd0RlZmVyc0xvYWRpbmcsCiAgICAgICAgIENhY2hp
bmdQb2xpY3k6OkFsbG93Q2FjaGluZyk7CisKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0g
ICAgaWYgKCFtX3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQpIHsKLSAgICAgICAgLy8gVGhl
IG1haW4gbmF2aWdhdGlvbiBsb2FkIHdpbGwgdHJpZ2dlciB0aGUgcmVnaXN0cmF0aW9uIG9mIHRo
ZSB0ZW1wIGNsaWVudC4KLSAgICAgICAgbV90ZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50ID0g
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgICAgIEFT
U0VSVCghdGVtcG9yYXJ5SWRlbnRpZmllclRvTG9hZGVyTWFwKCkuY29udGFpbnMoKm1fdGVtcG9y
YXJ5U2VydmljZVdvcmtlckNsaWVudCkpOwotICAgICAgICB0ZW1wb3JhcnlJZGVudGlmaWVyVG9M
b2FkZXJNYXAoKS5hZGQoKm1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCwgdGhpcyk7Ci0g
ICAgfQotICAgIG1haW5SZXNvdXJjZUxvYWRPcHRpb25zLmNsaWVudElkZW50aWZpZXIgPSBtX3Rl
bXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQ7CisgICAgLy8gVGhlIG1haW4gbmF2aWdhdGlvbiBs
b2FkIHdpbGwgdHJpZ2dlciB0aGUgcmVnaXN0cmF0aW9uIG9mIHRoZSBjbGllbnQuCisgICAgaWYg
KG1fcmVzdWx0aW5nQ2xpZW50SWQpCisgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyVG9Mb2FkZXJNYXAoKS5yZW1vdmUobV9yZXN1bHRpbmdDbGllbnRJZCk7CisgICAgbV9y
ZXN1bHRpbmdDbGllbnRJZCA9IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyOjpnZW5l
cmF0ZSgpOworICAgIEFTU0VSVCghc2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXJUb0xv
YWRlck1hcCgpLmNvbnRhaW5zKG1fcmVzdWx0aW5nQ2xpZW50SWQpKTsKKyAgICBzY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllclRvTG9hZGVyTWFwKCkuYWRkKG1fcmVzdWx0aW5nQ2xpZW50
SWQsIHRoaXMpOwogI2VuZGlmCisKICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgbWFpblJlc291
cmNlUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpLCBtYWluUmVzb3VyY2VMb2FkT3B0aW9ucyk7CiAg
ICAgaWYgKCFtX2ZyYW1lLT5pc01haW5GcmFtZSgpICYmIG1fZnJhbWUtPmRvY3VtZW50KCkpIHsK
ICAgICAgICAgLy8gSWYgd2UgYXJlIGxvYWRpbmcgdGhlIG1haW4gcmVzb3VyY2Ugb2YgYSBzdWJm
cmFtZSwgdXNlIHRoZSBjYWNoZSBwYXJ0aXRpb24gb2YgdGhlIG1haW4gZG9jdW1lbnQuCkBAIC0y
MjEyLDcgKzIyMjQsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpjbGVhck1haW5SZXNvdXJjZSgp
CiAgICAgbV9tYWluUmVzb3VyY2UgPSBudWxscHRyOwogICAgIG1faXNDb250aW51aW5nTG9hZEFm
dGVyUHJvdmlzaW9uYWxMb2FkU3RhcnRlZCA9IGZhbHNlOwogCi0gICAgdW5yZWdpc3RlclRlbXBv
cmFyeVNlcnZpY2VXb3JrZXJDbGllbnQoKTsKKyAgICB1bnJlZ2lzdGVyUmVzZXJ2ZWRTZXJ2aWNl
V29ya2VyQ2xpZW50KCk7CiB9CiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnN1YnJlc291cmNlTG9h
ZGVyRmluaXNoZWRMb2FkaW5nT25lUGFydChSZXNvdXJjZUxvYWRlciYgbG9hZGVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCAyOGUyOGE2ODhhZTZiNTdlMGYwZDE0
YzRlN2EwYzI1NThjYjY3ZTQxLi5jMmJlYTZmNmE2OWI4MzY0NzJjMGFmZjdhMGQ3MDcwMzk2YmE2
YzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtMTcxLDcgKzE3
MSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRG9jdW1lbnRMb2Fk
ZXIocmVxdWVzdCwgZGF0YSkpOwogICAgIH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBE
b2N1bWVudExvYWRlciogZnJvbVRlbXBvcmFyeURvY3VtZW50SWRlbnRpZmllcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIERvY3Vt
ZW50TG9hZGVyKiBmcm9tU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+
RG9jdW1lbnRMb2FkZXIoKTsKIApAQCAtNDM5LDYgKzQzOSw3IEBAIHB1YmxpYzoKIAogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldENvbnRyb2xs
aW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YSYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciByZXN1bHRpbmdDbGllbnRJZCgpIGNvbnN0OwogI2VuZGlmCiAKICAgICBib29sIGxhc3ROYXZp
Z2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TmF2aWdhdGlvbldh
c0FwcEluaXRpYXRlZDsgfQpAQCAtNDY4LDcgKzQ2OSw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQogICAgIHZvaWQgbWF0Y2hSZWdpc3RyYXRpb24oY29uc3QgVVJMJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EYXRhPiYmKT4mJik7CiAjZW5kaWYKLSAgICB2b2lkIHVucmVnaXN0ZXJUZW1wb3JhcnlT
ZXJ2aWNlV29ya2VyQ2xpZW50KCk7CisgICAgdm9pZCB1bnJlZ2lzdGVyUmVzZXJ2ZWRTZXJ2aWNl
V29ya2VyQ2xpZW50KCk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPENyb3NzT3JpZ2luT3BlbmVyUG9s
aWN5RW5mb3JjZW1lbnRSZXN1bHQ+IGRvQ3Jvc3NPcmlnaW5PcGVuZXJIYW5kbGluZ09mUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogCkBAIC02ODgsOCArNjg5LDggQEAgcHJpdmF0
ZToKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRh
OwotICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IG1f
dGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudDsKICNlbmRpZgorICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIG1fcmVzdWx0aW5nQ2xpZW50SWQ7CiAKICNpZiBBU1NFUlRfRU5B
QkxFRAogICAgIGJvb2wgbV9oYXNFdmVyQmVlbkF0dGFjaGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IDRmZjkzODE4MGZkZDI4ZmM3MTVk
MDg4ODE2MDhmYzYyODk0OTJlOWEuLmZlMWM3MWNiNmY5N2EyMWRlZDdhNmRmZTM5YzE3M2I5Zjc3
Mjk0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApAQCAtMTEy
LDcgKzExMiw3IEBAIGJvb2wgRG9jdW1lbnRXcml0ZXI6OmJlZ2luKCkKICAgICByZXR1cm4gYmVn
aW4oVVJMKCkpOwogfQogCi1SZWY8RG9jdW1lbnQ+IERvY3VtZW50V3JpdGVyOjpjcmVhdGVEb2N1
bWVudChjb25zdCBVUkwmIHVybCkKK1JlZjxEb2N1bWVudD4gRG9jdW1lbnRXcml0ZXI6OmNyZWF0
ZURvY3VtZW50KGNvbnN0IFVSTCYgdXJsLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciBkb2N1bWVudElkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFtX2ZyYW1lLT5sb2FkZXIoKS5zdGF0
ZU1hY2hpbmUoKS5pc0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpICYmIG1fZnJhbWUt
PmxvYWRlcigpLmNsaWVudCgpLnNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3VtZW50KG1fbWltZVR5
cGUpKQogICAgICAgICByZXR1cm4gUGx1Z2luRG9jdW1lbnQ6OmNyZWF0ZSgqbV9mcmFtZSwgdXJs
KTsKQEAgLTEyMiwxMCArMTIyLDEwIEBAIFJlZjxEb2N1bWVudD4gRG9jdW1lbnRXcml0ZXI6OmNy
ZWF0ZURvY3VtZW50KGNvbnN0IFVSTCYgdXJsKQogI2VuZGlmCiAgICAgaWYgKCFtX2ZyYW1lLT5s
b2FkZXIoKS5jbGllbnQoKS5oYXNIVE1MVmlldygpKQogICAgICAgICByZXR1cm4gRG9jdW1lbnQ6
OmNyZWF0ZU5vblJlbmRlcmVkUGxhY2Vob2xkZXIoKm1fZnJhbWUsIHVybCk7Ci0gICAgcmV0dXJu
IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChtX21pbWVUeXBlLCBtX2ZyYW1lLmdl
dCgpLCBtX2ZyYW1lLT5zZXR0aW5ncygpLCB1cmwpOworICAgIHJldHVybiBET01JbXBsZW1lbnRh
dGlvbjo6Y3JlYXRlRG9jdW1lbnQobV9taW1lVHlwZSwgbV9mcmFtZS5nZXQoKSwgbV9mcmFtZS0+
c2V0dGluZ3MoKSwgdXJsLCBkb2N1bWVudElkZW50aWZpZXIpOwogfQogCi1ib29sIERvY3VtZW50
V3JpdGVyOjpiZWdpbihjb25zdCBVUkwmIHVybFJlZmVyZW5jZSwgYm9vbCBkaXNwYXRjaCwgRG9j
dW1lbnQqIG93bmVyRG9jdW1lbnQpCitib29sIERvY3VtZW50V3JpdGVyOjpiZWdpbihjb25zdCBV
UkwmIHVybFJlZmVyZW5jZSwgYm9vbCBkaXNwYXRjaCwgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllcikKIHsK
ICAgICAvLyBXZSBncmFiIGEgbG9jYWwgY29weSBvZiB0aGUgVVJMIGJlY2F1c2UgaXQncyBlYXN5
IGZvciBjYWxsZXJzIHRvIHN1cHBseQogICAgIC8vIGEgVVJMIHRoYXQgd2lsbCBiZSBkZWFsbG9j
YXRlZCBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIGZ1bmN0aW9uLgpAQCAtMTM0LDcgKzEz
NCw3IEBAIGJvb2wgRG9jdW1lbnRXcml0ZXI6OmJlZ2luKGNvbnN0IFVSTCYgdXJsUmVmZXJlbmNl
LCBib29sIGRpc3BhdGNoLCBEb2N1bWVudCogb3duCiAKICAgICAvLyBDcmVhdGUgYSBuZXcgZG9j
dW1lbnQgYmVmb3JlIGNsZWFyaW5nIHRoZSBmcmFtZSwgYmVjYXVzZSBpdCBtYXkgbmVlZCB0bwog
ICAgIC8vIGluaGVyaXQgYW4gYWxpYXNlZCBzZWN1cml0eSBjb250ZXh0LgotICAgIFJlZjxEb2N1
bWVudD4gZG9jdW1lbnQgPSBjcmVhdGVEb2N1bWVudCh1cmwpOworICAgIFJlZjxEb2N1bWVudD4g
ZG9jdW1lbnQgPSBjcmVhdGVEb2N1bWVudCh1cmwsIGRvY3VtZW50SWRlbnRpZmllcik7CiAgICAg
CiAgICAgLy8gSWYgdGhlIG5ldyBkb2N1bWVudCBpcyBmb3IgYSBQbHVnaW4gYnV0IHdlJ3JlIHN1
cHBvc2VkIHRvIGJlIHNhbmRib3hlZCBmcm9tIFBsdWdpbnMsCiAgICAgLy8gdGhlbiByZXBsYWNl
IHRoZSBkb2N1bWVudCB3aXRoIG9uZSB3aG9zZSBwYXJzZXIgd2lsbCBpZ25vcmUgdGhlIGluY29t
aW5nIGRhdGEgKGJ1ZyAzOTMyMykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudFdyaXRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmgK
aW5kZXggYzBhMzRhNmI3ZTljZmU5NjQzMDQ1YTk1ZTc5MzIyNTIzNjNiMjY4Yi4uYTk4Y2VhNGM1
M2JjNTYwNjQ0OTBjMWRhYzNjZTNhMzgzY2M2ZDU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50V3JpdGVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ3LDcgKzQ4
LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVwbGFjZURvY3VtZW50V2l0aFJlc3VsdE9mRXhlY3V0
aW5nSmF2YXNjcmlwdFVSTChjb25zdCBTdHJpbmcmLCBEb2N1bWVudCogb3duZXJEb2N1bWVudCk7
CiAKICAgICBib29sIGJlZ2luKCk7Ci0gICAgYm9vbCBiZWdpbihjb25zdCBVUkwmLCBib29sIGRp
c3BhdGNoV2luZG93T2JqZWN0QXZhaWxhYmxlID0gdHJ1ZSwgRG9jdW1lbnQqIG93bmVyRG9jdW1l
bnQgPSBudWxscHRyKTsKKyAgICBib29sIGJlZ2luKGNvbnN0IFVSTCYsIGJvb2wgZGlzcGF0Y2hX
aW5kb3dPYmplY3RBdmFpbGFibGUgPSB0cnVlLCBEb2N1bWVudCogb3duZXJEb2N1bWVudCA9IG51
bGxwdHIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyID0geyB9KTsKICAgICB2b2lk
IGFkZERhdGEoY29uc3QgU2hhcmVkQnVmZmVyJik7CiAgICAgdm9pZCBpbnNlcnREYXRhU3luY2hy
b25vdXNseShjb25zdCBTdHJpbmcmKTsgLy8gRm9yIGFuIGludGVybmFsIHVzZSBvbmx5IHRvIHBy
ZXZlbnQgdGhlIHBhcnNlciBmcm9tIHlpZWxkaW5nLgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZW5kKCk7CkBAIC02Nyw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERvY3VtZW50V2Fz
TG9hZGVkQXNQYXJ0T2ZOYXZpZ2F0aW9uKCk7CiAKIHByaXZhdGU6Ci0gICAgUmVmPERvY3VtZW50
PiBjcmVhdGVEb2N1bWVudChjb25zdCBVUkwmKTsKKyAgICBSZWY8RG9jdW1lbnQ+IGNyZWF0ZURv
Y3VtZW50KGNvbnN0IFVSTCYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKTsKICAg
ICB2b2lkIGNsZWFyKCk7CiAKICAgICBXZWFrUHRyPEZyYW1lPiBtX2ZyYW1lOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU2lua0RvY3VtZW50LmNwcAppbmRleCBhNjg3MTFmNmMyMTlmN2E0OGFiM2E2ZTE2
ZjU1ZWIwZTY0MDVmYzI3Li5hMzdkM2M2Y2QzNDcwMDlkMDI2Y2I0YTJiOTQyZjJlYjI3ODMxYTI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2lua0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2lua0RvY3VtZW50LmNwcApAQCAtNTQsNyArNTQsNyBA
QCBwcml2YXRlOgogfTsKIAogU2lua0RvY3VtZW50OjpTaW5rRG9jdW1lbnQoRnJhbWUmIGZyYW1l
LCBjb25zdCBVUkwmIHVybCkKLSAgICA6IEhUTUxEb2N1bWVudCgmZnJhbWUsIGZyYW1lLnNldHRp
bmdzKCksIHVybCkKKyAgICA6IEhUTUxEb2N1bWVudCgmZnJhbWUsIGZyYW1lLnNldHRpbmdzKCks
IHVybCwgeyB9KQogewogICAgIHNldENvbXBhdGliaWxpdHlNb2RlKERvY3VtZW50Q29tcGF0aWJp
bGl0eU1vZGU6OlF1aXJrc01vZGUpOwogICAgIGxvY2tDb21wYXRpYmlsaXR5TW9kZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyLmgKaW5kZXggMDk0NjJhY2VhZTk3MDhiZWM0ODk3YjMzMDQ5MGE5ZTcwOTcy
N2RlZC4uNDYxNTBkYmRjMmEzZmZkNmM4NzAyZDcyNTk3ZWY4YTc1YTQ3NTEwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllci5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0g
ICAgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuICEhbV9wcm9jZXNzSWRlbnRpZmllcjsg
fQorICAgIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiAhIW1fb2JqZWN0OyB9CiAKICAg
ICBjb25zdCBVVUlEJiBvYmplY3QoKSBjb25zdCB7IHJldHVybiBtX29iamVjdDsgfQogICAgIFBy
b2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm9j
ZXNzSWRlbnRpZmllcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL0ZldGNoRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNo
RXZlbnQuY3BwCmluZGV4IDU1ZDMzMDdhNDQwOWQ3YzZhYmY4ODU4Nzg4NDliYjVmOWNjMTc5NGEu
LmU3YWUxYThjNjhiMDAxNzEzZDE3NzVhMjQyZTk0YmM2MTYwZmZkNWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5jcHAKQEAgLTYyLDcgKzYyLDYgQEAg
RmV0Y2hFdmVudDo6RmV0Y2hFdmVudChKU0M6OkpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qs
IGNvbnN0IEF0b21TdHJpbmcmIHR5cGUKICAgICAsIG1fcmVxdWVzdChpbml0aWFsaXplci5yZXF1
ZXN0LnJlbGVhc2VOb25OdWxsKCkpCiAgICAgLCBtX2NsaWVudElkKFdURk1vdmUoaW5pdGlhbGl6
ZXIuY2xpZW50SWQpKQogICAgICwgbV9yZXN1bHRpbmdDbGllbnRJZChXVEZNb3ZlKGluaXRpYWxp
emVyLnJlc3VsdGluZ0NsaWVudElkKSkKLSAgICAsIG1fdGFyZ2V0Q2xpZW50SWQoV1RGTW92ZShp
bml0aWFsaXplci50YXJnZXRDbGllbnRJZCkpCiAgICAgLCBtX2hhbmRsZWQocmV0cmlldmVIYW5k
bGVkUHJvbWlzZShnbG9iYWxPYmplY3QsIFdURk1vdmUoaW5pdGlhbGl6ZXIuaGFuZGxlZCkpKQog
ewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmgKaW5kZXgg
YzUzZmQ1NmE5ZmU4MjkzZjc4NzE5MTg2NmJlNjRkOTVhNmIwZTA3MS4uNWY1OTZmMmI0NDU1MGY0
MWJjMzU2MGRhY2YzZTNhM2JhN2U1OWQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvRmV0Y2hFdmVudC5oCkBAIC01MCw3ICs1MCw2IEBAIHB1YmxpYzoKICAgICAgICAgUmVm
UHRyPEZldGNoUmVxdWVzdD4gcmVxdWVzdDsKICAgICAgICAgU3RyaW5nIGNsaWVudElkOwogICAg
ICAgICBTdHJpbmcgcmVzdWx0aW5nQ2xpZW50SWQ7Ci0gICAgICAgIFN0cmluZyB0YXJnZXRDbGll
bnRJZDsKICAgICAgICAgUmVmUHRyPERPTVByb21pc2U+IGhhbmRsZWQ7CiAgICAgfTsKIApAQCAt
NzIsNyArNzEsNiBAQCBwdWJsaWM6CiAgICAgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0KCkgeyByZXR1
cm4gbV9yZXF1ZXN0LmdldCgpOyB9CiAgICAgY29uc3QgU3RyaW5nJiBjbGllbnRJZCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2xpZW50SWQ7IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc3VsdGluZ0NsaWVu
dElkKCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHRpbmdDbGllbnRJZDsgfQotICAgIGNvbnN0IFN0
cmluZyYgdGFyZ2V0Q2xpZW50SWQoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldENsaWVudElkOyB9
CiAgICAgRE9NUHJvbWlzZSYgaGFuZGxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlZC5nZXQo
KTsgfQogCiAgICAgYm9vbCByZXNwb25kV2l0aEVudGVyZWQoKSBjb25zdCB7IHJldHVybiBtX3Jl
c3BvbmRXaXRoRW50ZXJlZDsgfQpAQCAtOTQsNyArOTIsNiBAQCBwcml2YXRlOgogICAgIFJlZjxG
ZXRjaFJlcXVlc3Q+IG1fcmVxdWVzdDsKICAgICBTdHJpbmcgbV9jbGllbnRJZDsKICAgICBTdHJp
bmcgbV9yZXN1bHRpbmdDbGllbnRJZDsKLSAgICBTdHJpbmcgbV90YXJnZXRDbGllbnRJZDsKIAog
ICAgIGJvb2wgbV9yZXNwb25kV2l0aEVudGVyZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV93YWl0
VG9SZXNwb25kIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9GZXRjaEV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9G
ZXRjaEV2ZW50LmlkbAppbmRleCA1YWFjYzVkZTVkYTM2ZmU1Mjk1M2JjODFhNDNlMTZlMGM4YjI2
YzEwLi5hN2I4ZWQyNTE2ODI1MjFiZjI1NjM0Yjk2ZTU2NjViZGE1ZWI4N2E2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaWRsCkBAIC0zNiw3ICszNiw2
IEBACiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIEVuYWJsZWRCeVNldHRp
bmc9U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZF0gcmVhZG9ubHkgYXR0cmli
dXRlIFByb21pc2U8YW55PiBwcmVsb2FkUmVzcG9uc2U7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBjbGllbnRJZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJl
c3VsdGluZ0NsaWVudElkOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdGFyZ2V0
Q2xpZW50SWQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFByb21pc2U8dW5kZWZpbmVkPiBoYW5k
bGVkOwogCiAgICAgdW5kZWZpbmVkIHJlc3BvbmRXaXRoKFByb21pc2U8RmV0Y2hSZXNwb25zZT4g
cik7CkBAIC00Niw2ICs0NSw1IEBAIGRpY3Rpb25hcnkgRmV0Y2hFdmVudEluaXQgOiBFeHRlbmRh
YmxlRXZlbnRJbml0IHsKICAgICByZXF1aXJlZCBGZXRjaFJlcXVlc3QgcmVxdWVzdDsKICAgICBE
T01TdHJpbmcgY2xpZW50SWQgPSAiIjsKICAgICBET01TdHJpbmcgcmVzdWx0aW5nQ2xpZW50SWQg
PSAiIjsKLSAgICBET01TdHJpbmcgdGFyZ2V0Q2xpZW50SWQgPSAiIjsKICAgICBQcm9taXNlPHVu
ZGVmaW5lZD4gaGFuZGxlZDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IDc5YmRmNDY4OWNmNzUwODU2Zjk5NTM2N2Ri
MTEzODRlYzFjMTgzY2QuLjg2OTdlOTk3YmNjNDU3NGU3NGIwNjRjOTAyNmQxNGRlMGI3ZDE1ZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXIuY3BwCkBAIC05NDIsNyArOTQyLDEzIEBAIHZvaWQgU1dTZXJ2ZXI6OnJlZ2lzdGVyU2Vydmlj
ZVdvcmtlckNsaWVudChDbGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIFNlcnZpY2VXCiAgICAg
ICAgICAgICB1cGRhdGVBcHBJbml0aWF0ZWRWYWx1ZUZvcldvcmtlcnMoY2xpZW50T3JpZ2luLCBk
YXRhLmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKTsKICAgICB9CiAKLSAgICBtX3Zpc2li
bGVDbGllbnRJZFRvSW50ZXJuYWxDbGllbnRJZE1hcC5hZGQoZGF0YS5pZGVudGlmaWVyLm9iamVj
dCgpLnRvU3RyaW5nKCksIGNsaWVudElkZW50aWZpZXIpOworICAgIGF1dG8gYWRkUmVzdWx0ID0g
bV92aXNpYmxlQ2xpZW50SWRUb0ludGVybmFsQ2xpZW50SWRNYXAuYWRkKGRhdGEuaWRlbnRpZmll
ci5vYmplY3QoKS50b1N0cmluZygpLCBjbGllbnRJZGVudGlmaWVyKTsKKyAgICBpZiAoIWFkZFJl
c3VsdC5pc05ld0VudHJ5KSB7CisgICAgICAgIEFTU0VSVChtX3Zpc2libGVDbGllbnRJZFRvSW50
ZXJuYWxDbGllbnRJZE1hcC5nZXQoZGF0YS5pZGVudGlmaWVyLm9iamVjdCgpLnRvU3RyaW5nKCkp
ID09IGNsaWVudElkZW50aWZpZXIpOworICAgICAgICBBU1NFUlQobV9jbGllbnRzQnlJZC5jb250
YWlucyhjbGllbnRJZGVudGlmaWVyKSk7CisgICAgICAgIG1fY2xpZW50c0J5SWQuc2V0KGNsaWVu
dElkZW50aWZpZXIsIFdURk1vdmUoZGF0YSkpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAg
ICAgQVNTRVJUKCFtX2NsaWVudHNCeUlkLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKICAg
ICBtX2NsaWVudHNCeUlkLmFkZChjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGEpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IGViMzUyMDdlN2E5MmJmOWI2ODJm
YzExMGQ0OTQ2OWY0Y2YzNmFkMGYuLjg5NWRjOWQwODU1MGFkNjA4ZTU5NzljNzA4ZDVhOWFhMGE1
NDRiNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMTgxLDcgKzE4
MSw3IEBAIEV4Y2VwdGlvbk9yPERvY3VtZW50Kj4gWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlWE1M
KCkKICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudCA9IG51bGxwdHI7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBpZiAoaXNIVE1MKQotICAgICAgICAgICAgICAgIG1fcmVzcG9u
c2VEb2N1bWVudCA9IEhUTUxEb2N1bWVudDo6Y3JlYXRlKG51bGxwdHIsIGNvbnRleHQuc2V0dGlu
Z3MoKSwgbV9yZXNwb25zZS51cmwoKSk7CisgICAgICAgICAgICAgICAgbV9yZXNwb25zZURvY3Vt
ZW50ID0gSFRNTERvY3VtZW50OjpjcmVhdGUobnVsbHB0ciwgY29udGV4dC5zZXR0aW5ncygpLCBt
X3Jlc3BvbnNlLnVybCgpLCB7IH0pOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IG1fcmVzcG9uc2VEb2N1bWVudCA9IFhNTERvY3VtZW50OjpjcmVhdGUobnVsbHB0ciwgY29udGV4
dC5zZXR0aW5ncygpLCBtX3Jlc3BvbnNlLnVybCgpKTsKICAgICAgICAgICAgIG1fcmVzcG9uc2VE
b2N1bWVudC0+b3ZlcnJpZGVMYXN0TW9kaWZpZWQobV9yZXNwb25zZS5sYXN0TW9kaWZpZWQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHAKaW5kZXggNmY2NzdlZWY0ZTY4NTljZTVkNDA4MGUxZWM5NWU3YjdiOTUxNDcw
Ny4uMWJkNmYzNDdlZWY1NGIwMGVlYmFhNDUzZmU3NzhlNzRmODc3ZGQzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNw
cApAQCAtNDQxLDYgKzQ0MSwxMyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxv
YWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTAogICAgICAgICBm
b3IgKGF1dG8qIGZyYW1lID0gcmVzb3VyY2VMb2FkZXIuZnJhbWUoKS0+dHJlZSgpLnBhcmVudCgp
OyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnBhcmVudCgpKQogICAgICAgICAgICAgZnJh
bWVBbmNlc3Rvck9yaWdpbnMuYXBwZW5kKCZmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmln
aW4oKSk7CiAgICAgICAgIGxvYWRQYXJhbWV0ZXJzLmZyYW1lQW5jZXN0b3JPcmlnaW5zID0gV1RG
TW92ZShmcmFtZUFuY2VzdG9yT3JpZ2lucyk7CisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9IHJlc291cmNlTG9hZGVyLmRvY3Vt
ZW50TG9hZGVyKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHJlc3VsdGluZ0NsaWVudElkID0g
c3RhdGljX2Nhc3Q8V2ViRG9jdW1lbnRMb2FkZXImPigqZG9jdW1lbnRMb2FkZXIpLnJlc3VsdGlu
Z0NsaWVudElkKCkpCisgICAgICAgICAgICAgICAgbG9hZFBhcmFtZXRlcnMub3B0aW9ucy5jbGll
bnRJZGVudGlmaWVyID0gcmVzdWx0aW5nQ2xpZW50SWQ7CisgICAgICAgIH0KKyNlbmRpZgogICAg
IH0KIAogICAgIEFTU0VSVCgobG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEICYmIGxvYWRQYXJhbWV0
ZXJzLndlYkZyYW1lSUQpIHx8IGxvYWRQYXJhbWV0ZXJzLmNsaWVudENyZWRlbnRpYWxQb2xpY3kg
PT0gQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggMTgyNjA1YjhlMGUzMmVmMDVhMzkxZmNjMDkzYjA0
NDVmN2QwNjZhMS4uMDlmNjY1ZWVjOWVlYTNlMTQ5ZTA2MTdiMWEzZDZiNjA4ZWVjNDVjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24uY3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgdm9pZCBXZWJTV0NsaWVudENv
bm5lY3Rpb246OndoZW5SZWdpc3RyYXRpb25SZWFkeShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IHRvcE8KIAogdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnNldERvY3VtZW50SXNDb250cm9s
bGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllciwg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJiBkYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGF1dG8qIGRvY3VtZW50TG9h
ZGVyID0gRG9jdW1lbnRMb2FkZXI6OmZyb21UZW1wb3JhcnlEb2N1bWVudElkZW50aWZpZXIoZG9j
dW1lbnRJZGVudGlmaWVyKTsKKyAgICBhdXRvKiBkb2N1bWVudExvYWRlciA9IERvY3VtZW50TG9h
ZGVyOjpmcm9tU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIoZG9jdW1lbnRJZGVudGlm
aWVyKTsKICAgICBib29sIHJlc3VsdCA9IGRvY3VtZW50TG9hZGVyID8gZG9jdW1lbnRMb2FkZXIt
PnNldENvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihXVEZNb3ZlKGRhdGEpKSA6
IGZhbHNlOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdCk7CiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCA4YzkyY2VjMzBhNzAwNGEwNGE5ZWI2ODVjN2YxN2JkYjQxOTAz
YWM5Li5kY2NjMjE3YzdmODIyZDZmODc4Y2UyNWNlZDhjMzlmZjRkODA4ZTRkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMi0wMS0xOSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wcm92ZSBjb21wdXRhdGlv
biBvZiBzZXJ2aWNlIHdvcmtlciBGZXRjaEV2ZW50LnJlc3VsdGluZ0NsaWVudElkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUxMDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xp
ZW50SWQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvaGlzdG9yaWNhbC5odHRwcy5hbnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQ6
CisKIDIwMjItMDEtMTggIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW2Nzcy1mbGV4Ym94XSBBZGQgc3VwcG9ydCBmb3IgaW50cmluc2ljIHNpemVz
IHRvIHRoZSBmbGV4IHNob3J0aGFuZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xp
ZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvY2xpZW50cy1nZXQtcmVzdWx0aW5nQ2xpZW50SWQuaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IGQyZGZiODM0Yjk0ZWEwMjZmODlhNzBlMGNlODJiMmVlYmIxZDc2MzEuLjgyYjc3ZDdm
MWZiMDcwMWRmMGFiMzE0MGQxMzAyMGU2NDRkNzk2YTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2NsaWVudHMtZ2V0LXJlc3VsdGluZ0NsaWVudElkLmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1yZXN1bHRpbmdDbGllbnRJZC5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACiAKIFBBU1MgZ2xvYmFsIHNldHVwCi1GQUlM
IGdldChyZXN1bHRpbmdDbGllbnRJZCkgZm9yIHNhbWUtb3JpZ2luIGRvY3VtZW50IGFzc2VydF9l
cXVhbHM6IHByb21pc2VWYWx1ZSBleHBlY3RlZCAiY2xpZW50IiBidXQgZ290ICJ1bmRlZmluZWRW
YWx1ZSIKK1BBU1MgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBmb3Igc2FtZS1vcmlnaW4gZG9jdW1l
bnQKIFBBU1MgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBvbiBjcm9zcy1vcmlnaW4gcmVkaXJlY3QK
LVBBU1MgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBmb3IgZG9jdW1lbnQgc2FuZGJveGVkIGJ5IENT
UCBoZWFkZXIKLUZBSUwgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBmb3IgZG9jdW1lbnQgc2FuZGJv
eGVkIGJ5IENTUCBoZWFkZXIgd2l0aCBhbGxvdy1zYW1lLW9yaWdpbiBhc3NlcnRfZXF1YWxzOiBw
cm9taXNlVmFsdWUgZXhwZWN0ZWQgImNsaWVudCIgYnV0IGdvdCAidW5kZWZpbmVkVmFsdWUiCitG
QUlMIGdldChyZXN1bHRpbmdDbGllbnRJZCkgZm9yIGRvY3VtZW50IHNhbmRib3hlZCBieSBDU1Ag
aGVhZGVyIGFzc2VydF9lcXVhbHM6IHByb21pc2VWYWx1ZSBleHBlY3RlZCAidW5kZWZpbmVkVmFs
dWUiIGJ1dCBnb3QgImNsaWVudCIKK1BBU1MgZ2V0KHJlc3VsdGluZ0NsaWVudElkKSBmb3IgZG9j
dW1lbnQgc2FuZGJveGVkIGJ5IENTUCBoZWFkZXIgd2l0aCBhbGxvdy1zYW1lLW9yaWdpbgogUEFT
UyBnbG9iYWwgY2xlYW51cAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRz
LWdldC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggZmRmNmJkMmE2NjI0MWE0NDIyNWE0MWNkMDIwOTM3MDk2
Nzc1YThjZi4uODI5MThiNDUxOTQyMDY4NTE4MjI3ZDc2YTU2ZGI0NjQ5Njk4NzkwYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MSw1ICsxLDUgQEAKIAogRkFJTCBUZXN0IENsaWVudHMuZ2V0KCkgYXNzZXJ0X2FycmF5X2VxdWFs
czogZXhwZWN0ZWQgcHJvcGVydHkgMSB0byBiZSBmYWxzZSBidXQgZ290IHRydWUgKGV4cGVjdGVk
IGFycmF5IFsidmlzaWJsZSIsIGZhbHNlLCAiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LWZyYW1lLmh0bWwj
MiIsICJ3aW5kb3ciLCAibmVzdGVkIl0gZ290IFsidmlzaWJsZSIsIHRydWUsICJodHRwczovL2xv
Y2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xp
ZW50cy1nZXQtZnJhbWUuaHRtbCMyIiwgIndpbmRvdyIsICJuZXN0ZWQiXSkKLUZBSUwgVGVzdCBz
dWNjZXNzZnVsIENsaWVudHMuZ2V0KEZldGNoRXZlbnQucmVzdWx0aW5nQ2xpZW50SWQpIGFzc2Vy
dF9mYWxzZTogQ2xpZW50cy5nZXQoRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZCkgcmVzb2x2
ZWQgd2l0aCBhIENsaWVudCBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBUZXN0IHN1Y2Nl
c3NmdWwgQ2xpZW50cy5nZXQoRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZCkKIFBBU1MgVGVz
dCB1bnN1Y2Nlc3NmdWwgQ2xpZW50cy5nZXQoRmV0Y2hFdmVudC5yZXN1bHRpbmdDbGllbnRJZCkK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaGlzdG9yaWNhbC5odHRwcy5hbnkuc2Vy
dmljZXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9oaXN0b3JpY2FsLmh0
dHBzLmFueS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBkODk5Mzk4N2JlY2U4MGRm
ZjJkMTMyYTFkODJlNjFhMWZlYjk4NzkxLi5hZThkZWZjZjA5YmVjZDQyN2NjZTQ1ZGMxZDJmOGM1
MzEwY2UzNWFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9oaXN0b3JpY2FsLmh0dHBz
LmFueS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9o
aXN0b3JpY2FsLmh0dHBzLmFueS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwzICsx
LDMgQEAKIAotRkFJTCB0YXJnZXRDbGllbnRJZCBzaG91bGQgbm90IGJlIG9uIEZldGNoRXZlbnQg
YXNzZXJ0X2ZhbHNlOiBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyB0YXJnZXRDbGllbnRJ
ZCBzaG91bGQgbm90IGJlIG9uIEZldGNoRXZlbnQKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>