<?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>201174</bug_id>
          
          <creation_ts>2019-08-27 00:50:26 -0700</creation_ts>
          <short_desc>Skip fetch event dispatching if no fetch event handler is added at script evaluation time</short_desc>
          <delta_ts>2019-08-29 12:25:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1565280</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-27 00:50:26 -0700</bug_when>
    <thetext>Skip fetch event dispatching if no fetch event handler is added at script evaluation time 
https://w3c.github.io/ServiceWorker/#handle-fetch step 16</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565288</commentid>
    <comment_count>1</comment_count>
      <attachid>377326</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-27 01:23:44 -0700</bug_when>
    <thetext>Created attachment 377326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565770</commentid>
    <comment_count>2</comment_count>
      <attachid>377326</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-28 10:16:40 -0700</bug_when>
    <thetext>Comment on attachment 377326
Patch

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

&gt; Source/WebCore/workers/service/server/SWServerWorker.h:115
&gt; +    bool shouldSkipFetchEvent() const { return m_shouldSkipHandleFetch &amp;&amp; *m_shouldSkipHandleFetch; }

return m_shouldSkipHandleFetch.valueOr(false); would look nicer IMO.

&gt; Source/WebCore/workers/service/server/SWServerWorker.h:135
&gt; +    Optional&lt;bool&gt; m_shouldSkipHandleFetch;

Do we really need an Optional&lt;&gt; ? Why cannot it be a bool that is default-initialized to false? Nobody seems to rely on it being nullopt at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566199</commentid>
    <comment_count>3</comment_count>
      <attachid>377326</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-29 06:19:05 -0700</bug_when>
    <thetext>Comment on attachment 377326
Patch

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

&gt;&gt; Source/WebCore/workers/service/server/SWServerWorker.h:135
&gt;&gt; +    Optional&lt;bool&gt; m_shouldSkipHandleFetch;
&gt; 
&gt; Do we really need an Optional&lt;&gt; ? Why cannot it be a bool that is default-initialized to false? Nobody seems to rely on it being nullopt at the moment.

Will change it to a bool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566203</commentid>
    <comment_count>4</comment_count>
      <attachid>377575</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-29 06:44:16 -0700</bug_when>
    <thetext>Created attachment 377575
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566234</commentid>
    <comment_count>5</comment_count>
      <attachid>377588</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-29 08:24:14 -0700</bug_when>
    <thetext>Created attachment 377588
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566323</commentid>
    <comment_count>6</comment_count>
      <attachid>377588</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-29 12:24:52 -0700</bug_when>
    <thetext>Comment on attachment 377588
Patch for landing

Clearing flags on attachment: 377588

Committed r249287: &lt;https://trac.webkit.org/changeset/249287&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566324</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-29 12:24:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566325</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-29 12:25:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/54848514&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377326</attachid>
            <date>2019-08-27 01:23:44 -0700</date>
            <delta_ts>2019-08-29 06:44:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201174-20190827102342.patch</filename>
            <type>text/plain</type>
            <size>43208</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2I3ZmRmZjdjYmM3NTlm
YjRiNjYxMDY2YmJiYTkzOTg3YmM0YzY4YS4uOWRlZGZiZjY3YjJiZTkxNmY4ODk5MzMxNmYzN2Fh
ZTE4MGY5OWFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE5LTA4LTI3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTa2lwIGZldGNoIGV2ZW50
IGRpc3BhdGNoaW5nIGlmIG5vIGZldGNoIGV2ZW50IGhhbmRsZXIgaXMgYWRkZWQgYXQgc2NyaXB0
IGV2YWx1YXRpb24gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAxMTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQXQgZW5kIG9mIHdvcmtlciBzY3JpcHQgZXZhbHVhdGlvbiwgc3RvcmUgd2hldGhl
ciBhIGZldGNoIGV2ZW50IGhhbmRsZXIgaXMgcmVnaXN0ZXJlZC4KKyAgICAgICAgU2VuZCBpdCBi
YWNrIHRvIHRoZSBTV1NlcnZlciB0aGF0IHdpbGwgc3RvcmUgaXQgaW4gdGhlIGNvcnJlc3BvbmRp
bmcgU1dTZXJ2ZXJXb3JrZXIuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNvZnQgdXBkYXRl
IGRpcmVjdGx5IGZyb20gdGhlIHJlZ2lzdHJhdGlvbi4KKyAgICAgICAgVGhpcyB3aWxsIHRyaWdn
ZXIgYSBzb2Z0LXVwZGF0ZSBmcm9tIHRoZSB3b3JrZXIgY29udGV4dCBpdHNlbGYuCisgICAgICAg
IEluIHRoZW9yeSwgdGhpcyBzaG91bGQgYmUgc3RhcnRlZCBieSB0aGUgam9iIHF1ZXVlIGJ1dCB3
ZSBkbyBub3QgaGF2ZSBhIHdheSB5ZXQgdG8gaW1wbGVtZW50IHRoaXMgYXMgcGVyIHNwZWMuCisK
KyAgICAgICAgVGVzdDogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NraXBGZXRjaEV2ZW50Lmh0
dHBzLmh0bWwKKworICAgICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6
OndvcmtlclRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6ZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KToKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OnJlZ2lzdGVyU2VydmljZVdvcmtlclRo
cmVhZEZvckluc3RhbGwpOgorICAgICAgICAoV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6c3Rh
cnRlZFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6
c29mdFVwZGF0ZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0
TWFuYWdlci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6cG9z
dEZldGNoVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpzb2Z0
VXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OmZpbmlzaGVk
RXZhbHVhdGluZ1NjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFk
OjpzdGFydCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5oOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6ZG9lc0hh
bmRsZUZldGNoIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJh
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxk
U29mdFVwZGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlv
bjo6c29mdFVwZGF0ZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
clJlZ2lzdHJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246
OmlzU3RhbGUgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbjo6Z2VuZXJhdGVDb25uZWN0aW9uSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b246OnNjcmlwdENvbnRleHRTdGFydGVkKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2
ZXJXb3JrZXI6OnNjcmlwdENvbnRleHRTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2Vy
dmVyV29ya2VyOjpzZXRTdGF0ZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlcldvcmtlci5oOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OnNob3Vs
ZFNraXBGZXRjaEV2ZW50IGNvbnN0KToKKwogMjAxOS0wOC0yNiAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y29tcHV0
ZVJlYWxCb2R5U2l6ZSBpcyBub3QgdGhyZWFkLXNhZmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTg0ODY0Y2ZmMjRj
ODQzMjViNmM0MmRjNDMzYTU3ZmU0YmQ5MDY2NS4uY2IzZTk2MGQ5ZGQyNzM1ZWQzZGI3NDQzOTkx
MTZmZjUzY2M1MmI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxOS0wOC0yNyAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgU2tpcCBmZXRjaCBldmVu
dCBkaXNwYXRjaGluZyBpZiBubyBmZXRjaCBldmVudCBoYW5kbGVyIGlzIGFkZGVkIGF0IHNjcmlw
dCBldmFsdWF0aW9uIHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMTE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFN0b3JlIHdoZXRoZXIgYSBmZXRjaCBldmVudCBoYW5kbGVyIGlzIHNldCBhdCBz
Y3JpcHQgZXZhbHVhdGlvbiB0aW1lLgorICAgICAgICBJZiBub3QsIHdlIHNraXAgdGhlIGZldGNo
IGV2ZW50IGVudGlyZWx5IHNvIHRoYXQgdGhlIG5ldHdvcmsgbG9hZCBjYW4gc3RhcnQgc29vbmVy
LgorICAgICAgICBJZiBmZXRjaCBldmVudCBpcyBza2lwcGVkLCB3ZSB0cmlnZ2VyIHNvZnQgdXBk
YXRlLCBhcyBkZWZpbmVkIGluCisgICAgICAgIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNl
V29ya2VyLyNoYW5kbGUtZmV0Y2ggc3RlcCAxNi4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6c29mdFVw
ZGF0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2Vydmlj
ZVdvcmtlclN0YXJ0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6c2VydmljZVdvcmtlckZhaWxlZFRvU3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c29mdFVwZGF0ZSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluOgorCiAyMDE5LTA4LTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgYSBXZWJzaXRlRGF0YVN0b3JlIGRlbGVnYXRlIHRvIGhhbmRsZSBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSB0aGF0IGRvIG5vdCBjb21lIGZyb20gcGFnZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oCmluZGV4IGYxYzk2MjRi
MThhYzE4OTMyOTg4NDYzMzk2MTYzNTJjYWMwYzdkZDcuLjdlNjczMDFmNDRjMDlhYzE0ODUzNjM3
NzE4M2VhODQxZTA4ZGMxZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVk
aWNhdGVkV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0
ZWRXb3JrZXJUaHJlYWQuaApAQCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
RGVkaWNhdGVkV29ya2VyVGhyZWFkKCk7CiAKICAgICBXb3JrZXJPYmplY3RQcm94eSYgd29ya2Vy
T2JqZWN0UHJveHkoKSBjb25zdCB7IHJldHVybiBtX3dvcmtlck9iamVjdFByb3h5OyB9CisgICAg
dm9pZCBzdGFydCgpIHsgV29ya2VyVGhyZWFkOjpzdGFydChudWxscHRyKTsgfQogCiBwcm90ZWN0
ZWQ6CiAgICAgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShj
b25zdCBVUkwmLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09u
bGluZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBz
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9y
aWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUEFMOjpTZXNzaW9u
SUQpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcAppbmRleCA0ZTlmNTE5YWVmZWRkMjVmODgzZjYzYWNhMGE0Nzg5ZmYwMjdlNGI5
Li4xZTRkN2RiZDcxNTNjZmEzY2FmNjYwZmMwOTgwNWU1NjM3ZDExNDYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtOTEsNyArOTEs
NyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNv
bnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdAogICAgIGF1dG8gdGhyZWFkID0gRGVkaWNhdGVk
V29ya2VyVGhyZWFkOjpjcmVhdGUoc2NyaXB0VVJMLCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdl
bnQsIGlzT25saW5lLCBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMsICp0aGlzLCBzdGFydE1vZGUs
IGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBkb2N1bWVudC50b3BPcmlnaW4oKSwgdGltZU9yaWdp
biwgcHJveHksIHNvY2tldFByb3ZpZGVyLCBydW50aW1lRmxhZ3MsIHNlc3Npb25JRCk7CiAKICAg
ICB3b3JrZXJUaHJlYWRDcmVhdGVkKHRocmVhZC5nZXQoKSk7Ci0gICAgdGhyZWFkLT5zdGFydChu
dWxscHRyKTsKKyAgICB0aHJlYWQtPnN0YXJ0KCk7CiAKICAgICBtX2luc3BlY3RvclByb3h5LT53
b3JrZXJTdGFydGVkKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5nZXQoKSwgdGhyZWFkLnB0cigp
LCBzY3JpcHRVUkwpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmlu
ZGV4IDNjMzg1OGJkYTliNDRiNTdmYWRiMzllZmEyZTBhMGYzYTMwNDExOGMuLjY4OWQzOWNhZWFi
ZmY2MDY2OGU0ZDIzNDlkMTBlNWQ2YzlhNTExMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5jcHAKQEAgLTE5Myw2ICsxOTMsOCBAQCB2b2lkIFdvcmtlclRocmVhZDo6d29y
a2VyVGhyZWFkKCkKICAgICBTdHJpbmcgZXhjZXB0aW9uTWVzc2FnZTsKICAgICBzY3JpcHRDb250
cm9sbGVyLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPm1fc291cmNl
Q29kZSwgVVJMKG1fc3RhcnR1cERhdGEtPm1fc2NyaXB0VVJMKSksICZleGNlcHRpb25NZXNzYWdl
KTsKIAorICAgIGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpOworCiAgICAgY2FsbE9uTWFpblRo
cmVhZChbZXZhbHVhdGVDYWxsYmFjayA9IFdURk1vdmUobV9ldmFsdWF0ZUNhbGxiYWNrKSwgbWVz
c2FnZSA9IGV4Y2VwdGlvbk1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldIHsKICAgICAgICAgaWYgKGV2
YWx1YXRlQ2FsbGJhY2spCiAgICAgICAgICAgICBldmFsdWF0ZUNhbGxiYWNrKG1lc3NhZ2UpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKaW5kZXggMDk1NWRmZWVmMThiZjJlYzM0
MWM4MGVmZjQ0NWQ1NjYxYzRjYmMwMy4uMzM1NjQzYjk4NDdhNjAxYWRiNjVmNGRhMmY1NDhmZjli
NzcxMWZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCkBAIC02NSw3ICs2
NSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSGFzaFNldDxXb3JrZXJUaHJlYWQqPiYgd29ya2Vy
VGhyZWFkcyhjb25zdCBMb2NrSG9sZGVyJik7CiAgICAgc3RhdGljIExvY2smIHdvcmtlclRocmVh
ZHNNdXRleCgpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChXVEY6OkZ1bmN0aW9u
PHZvaWQoY29uc3QgU3RyaW5nJik+JiYgZXZhbHVhdGVDYWxsYmFjayk7CiAgICAgdm9pZCBzdG9w
KFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHRlcm1pbmF0ZWRDYWxsYmFjayk7CiAKICAgICBUaHJl
YWQqIHRocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkLmdldCgpOyB9CkBAIC0xMDQsMTAg
KzEwMywxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkq
IGlkYkNvbm5lY3Rpb25Qcm94eSgpOwogICAgIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRl
cigpOwogCisgICAgdm9pZCBzdGFydChGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIGV2
YWx1YXRlQ2FsbGJhY2spOworCiBwcml2YXRlOgogICAgIHZvaWQgd29ya2VyVGhyZWFkKCk7CiAg
ICAgdmlydHVhbCBib29sIGlzU2VydmljZVdvcmtlclRocmVhZCgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCkgeyB9
CisKICAgICBSZWZQdHI8VGhyZWFkPiBtX3RocmVhZDsKICAgICBTdHJpbmcgbV9pZGVudGlmaWVy
OwogICAgIFdvcmtlclJ1bkxvb3AgbV9ydW5Mb29wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcAppbmRl
eCBjYjVjMjIxZmM5NDg4ZDdjMDA3Mjk4M2ExNTc4OTVkY2E4YzZjZWM2Li43NzRmMzg1ZjE4YWJi
YTgxMjg4Yjc5MTRhYzljOTFlYjI1MTQ0ZjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcApAQCAt
NTksMTYgKzU5LDIwIEBAIHZvaWQgU1dDb250ZXh0TWFuYWdlcjo6cmVnaXN0ZXJTZXJ2aWNlV29y
a2VyVGhyZWFkRm9ySW5zdGFsbChSZWY8U2VydmljZVdvcmtlclRoCiAgICAgYXV0byByZXN1bHQg
PSBtX3dvcmtlck1hcC5hZGQoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdURk1vdmUoc2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5KSk7CiAgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdC5p
c05ld0VudHJ5KTsKICAgICAKLSAgICB0aHJlYWRQcm94eS0+dGhyZWFkKCkuc3RhcnQoW2pvYkRh
dGFJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcl0oY29uc3QgU3RyaW5nJiBleGNl
cHRpb25NZXNzYWdlKSB7Ci0gICAgICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnN0
YXJ0ZWRTZXJ2aWNlV29ya2VyKGpvYkRhdGFJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgZXhjZXB0aW9uTWVzc2FnZSk7CisgICAgdGhyZWFkUHJveHktPnRocmVhZCgpLnN0YXJ0
KFtqb2JEYXRhSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXJdKGNvbnN0IFN0cmlu
ZyYgZXhjZXB0aW9uTWVzc2FnZSwgYm9vbCBkb2VzSGFuZGxlRmV0Y2gpIHsKKyAgICAgICAgU1dD
b250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc3RhcnRlZFNlcnZpY2VXb3JrZXIoam9iRGF0YUlk
ZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBleGNlcHRpb25NZXNzYWdlLCBkb2Vz
SGFuZGxlRmV0Y2gpOwogICAgIH0pOwogfQogCi12b2lkIFNXQ29udGV4dE1hbmFnZXI6OnN0YXJ0
ZWRTZXJ2aWNlV29ya2VyKE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4g
am9iRGF0YUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpCit2b2lkIFNXQ29udGV4
dE1hbmFnZXI6OnN0YXJ0ZWRTZXJ2aWNlV29ya2VyKE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JE
YXRhSWRlbnRpZmllcj4gam9iRGF0YUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2Us
IGJvb2wgZG9lc0hhbmRsZUZldGNoKQogewotICAgIGNvbm5lY3Rpb24oKS0+c2VydmljZVdvcmtl
clN0YXJ0ZWRXaXRoTWVzc2FnZShqb2JEYXRhSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIGV4Y2VwdGlvbk1lc3NhZ2UpOwogICAgIGlmIChtX3NlcnZpY2VXb3JrZXJDcmVhdGlv
bkNhbGxiYWNrKQogICAgICAgICBtX3NlcnZpY2VXb3JrZXJDcmVhdGlvbkNhbGxiYWNrKHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgIGlmICghZXhjZXB0aW9uTWVzc2Fn
ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgY29ubmVjdGlvbigpLT5zZXJ2aWNlV29ya2VyRmFpbGVk
VG9TdGFydChqb2JEYXRhSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGV4Y2Vw
dGlvbk1lc3NhZ2UpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNvbm5lY3Rpb24oKS0+
c2VydmljZVdvcmtlclN0YXJ0ZWQoam9iRGF0YUlkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBkb2VzSGFuZGxlRmV0Y2gpOwogfQogCiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkq
IFNXQ29udGV4dE1hbmFnZXI6OnNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBpZGVudGlmaWVyKSBjb25zdApAQCAtMTA0LDYgKzEwOCwxNSBAQCB2b2lkIFNX
Q29udGV4dE1hbmFnZXI6OmZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIpCiAgICAgc2VydmljZVdvcmtlci0+dGhyZWFkKCkuZmlyZUFjdGl2YXRlRXZl
bnQoKTsKIH0KIAordm9pZCBTV0NvbnRleHRNYW5hZ2VyOjpzb2Z0VXBkYXRlKFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byogc2VydmljZVdvcmtlciA9IG1f
d29ya2VyTWFwLmdldChpZGVudGlmaWVyKTsKKyAgICBpZiAoIXNlcnZpY2VXb3JrZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIHNlcnZpY2VXb3JrZXItPnRocmVhZCgpLnNvZnRVcGRhdGUoKTsK
K30KKwogdm9pZCBTV0NvbnRleHRNYW5hZ2VyOjp0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtl
cklkZW50aWZpZXIgaWRlbnRpZmllciwgU2Vjb25kcyB0aW1lb3V0LCBGdW5jdGlvbjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byBzZXJ2aWNlV29ya2VyID0gbV93b3Jr
ZXJNYXAudGFrZShpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAppbmRleCA3ODdhZDk0ZDgy
NTQwNTYyOWY1MTY4Zjk5YTE1YTBjYzM1ZTRlMGZhLi5mZTBjMDg0OTJjMzUyMTdhMjM2ZTIzMmMw
NmJjNWFiNjM2Nzg4NmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCkBAIC01MCw3ICs1MCw4IEBAIHB1
YmxpYzoKICAgICAgICAgdmlydHVhbCB+Q29ubmVjdGlvbigpIHsgfQogCiAgICAgICAgIHZpcnR1
YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cyYmLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2UsIGNvbnN0IFN0cmlu
ZyYgc291cmNlT3JpZ2luKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXJ2aWNlV29ya2Vy
U3RhcnRlZFdpdGhNZXNzYWdlKE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmll
cj4sIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3Nh
Z2UpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNlcnZpY2VXb3JrZXJTdGFydGVkKE9wdGlv
bmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4sIFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBib29sIGRvZXNIYW5kbGVGZXRjaCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2Vy
dmljZVdvcmtlckZhaWxlZFRvU3RhcnQoT3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVu
dGlmaWVyPiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkg
PSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoSW5zdGFsbChPcHRpb25hbDxTZXJ2
aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9v
bCB3YXNTdWNjZXNzZnVsKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hBY3Rp
dmF0aW9uKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBzZXRTZXJ2aWNlV29ya2VySGFzUGVuZGluZ0V2ZW50cyhTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgYm9vbCkgPSAwOwpAQCAtNzQsNiArNzUsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBkZXN0aW5hdGlvbiwgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgU2VydmljZVdvcmtlck9y
Q2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmlyZUlu
c3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzb2Z0VXBkYXRlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRlcm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgU2Vjb25kcyB0aW1lb3V0LCBGdW5jdGlvbjx2b2lkKCk+JiYpOwogCiAgICAgdm9pZCBm
b3JFYWNoU2VydmljZVdvcmtlclRocmVhZChjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoU2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5Jik+Jik7CkBAIC04OCw3ICs5MCw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgU1dDb250ZXh0TWFuYWdlcigpID0gZGVmYXVsdDsKIAotICAgIHZvaWQgc3RhcnRl
ZFNlcnZpY2VXb3JrZXIoT3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiwg
U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uTWVzc2FnZSk7
CisgICAgdm9pZCBzdGFydGVkU2VydmljZVdvcmtlcihPcHRpb25hbDxTZXJ2aWNlV29ya2VySm9i
RGF0YUlkZW50aWZpZXI+LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBl
eGNlcHRpb25NZXNzYWdlLCBib29sIGRvZXNIYW5kbGVGZXRjaCk7CiAgICAgTk9fUkVUVVJOX0RV
RV9UT19DUkFTSCB2b2lkIHNlcnZpY2VXb3JrZXJGYWlsZWRUb1Rlcm1pbmF0ZShTZXJ2aWNlV29y
a2VySWRlbnRpZmllcik7CiAKICAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBS
ZWZQdHI8U2VydmljZVdvcmtlclRocmVhZFByb3h5Pj4gbV93b3JrZXJNYXA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWQuY3BwCmluZGV4IDA4NjYwNjcwYTM4ZmNiY2JiMjcyODAyNzcyMGE3MWNkNjlh
ODQyMjYuLjljM2YwNDRjNDIwMjg3ZjBmNmRiZjM1MDQ0NTJhM2ZjMTQ5ODBlMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0xODQsNiArMTg0LDI5IEBAIHZvaWQgU2VydmljZVdv
cmtlclRocmVhZDo6ZmlyZUFjdGl2YXRlRXZlbnQoKQogICAgIHJ1bkxvb3AoKS5wb3N0VGFzayhX
VEZNb3ZlKHRhc2spKTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpzb2Z0VXBkYXRl
KCkKK3sKKyAgICBydW5Mb29wKCkucG9zdFRhc2soW10oYXV0byYgY29udGV4dCkgbXV0YWJsZSB7
CisgICAgICAgIGF1dG8mIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCk7CisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS5yZWdpc3RyYXRpb24oKS5zY2hlZHVsZVNvZnRVcGRhdGUoKTsKKyAgICB9KTsKK30K
Kwordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKQor
eworICAgIG1fZG9lc0hhbmRsZUZldGNoID0gd29ya2VyR2xvYmFsU2NvcGUoKS0+aGFzRXZlbnRM
aXN0ZW5lcnMoZXZlbnROYW1lcygpLmZldGNoRXZlbnQpOworfQorCit2b2lkIFNlcnZpY2VXb3Jr
ZXJUaHJlYWQ6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiwgYm9vbCk+JiYgY2Fs
bGJhY2spCit7CisgICAgV29ya2VyVGhyZWFkOjpzdGFydChbY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIgPSB0aGlzLT5pZGVudGlmaWVyKCldKGF1
dG8mIGVycm9yTWVzc2FnZSkgbXV0YWJsZSB7CisgICAgICAgIGJvb2wgZG9lc0hhbmRsZUZldGNo
ID0gdHJ1ZTsKKyAgICAgICAgaWYgKGF1dG8qIHRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdl
cjo6c2luZ2xldG9uKCkud29ya2VyQnlJRChzZXJ2aWNlV29ya2VySWRlbnRpZmllcikpCisgICAg
ICAgICAgICBkb2VzSGFuZGxlRmV0Y2ggPSB0aHJlYWRQcm94eS0+dGhyZWFkKCkuZG9lc0hhbmRs
ZUZldGNoKCk7CisgICAgICAgIGNhbGxiYWNrKGVycm9yTWVzc2FnZSwgZG9lc0hhbmRsZUZldGNo
KTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCmluZGV4IDUxY2YxMjFh
MDFkZTZiMjUxMDNlZTNjMDQ1MGIwNjlhY2ZlOWRlMWEuLmJhYjNhZjM3YjE4YjY3YjhiMWNlZmFh
MWNkZmUwNzI5NmQ5MTkyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKQEAgLTU1LDE1ICs1
NSwxOCBAQCBwdWJsaWM6CiAKICAgICBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJv
eHkoKSBjb25zdCB7IHJldHVybiBtX3dvcmtlck9iamVjdFByb3h5OyB9CiAKKyAgICB2b2lkIHN0
YXJ0KEZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiwgYm9vbCk+JiYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcG9zdEZldGNoVGFzayhSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+
JiYsIE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiYmLCBSZXNvdXJjZVJl
cXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzJiYsIFNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsKIAogICAg
IHZvaWQgZmlyZUluc3RhbGxFdmVudCgpOwogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoKTsK
KyAgICB2b2lkIHNvZnRVcGRhdGUoKTsKIAogICAgIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YSYgY29udGV4dERhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KIAogICAgIFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2RhdGEuc2Vy
dmljZVdvcmtlcklkZW50aWZpZXI7IH0KKyAgICBib29sIGRvZXNIYW5kbGVGZXRjaCgpIGNvbnN0
IHsgcmV0dXJuIG1fZG9lc0hhbmRsZUZldGNoOyB9CiAKIHByb3RlY3RlZDoKICAgICBSZWY8V29y
a2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIFJlZjxT
ZWN1cml0eU9yaWdpbj4mJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5X
b3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdp
biwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBQQUw6OlNlc3Npb25JRCkgZmluYWw7CkBAIC03
Myw5ICs3NiwxMSBAQCBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJU
aHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgUEFMOjpTZXNzaW9uSUQsIFN0
cmluZyYmIHVzZXJBZ2VudCwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJEZWJ1Z2dlclByb3h5
JiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciopOwogCiAg
ICAgYm9vbCBpc1NlcnZpY2VXb3JrZXJUaHJlYWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CisgICAgdm9pZCBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKSBmaW5hbDsKIAogICAgIFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSBtX2RhdGE7CiAgICAgV29ya2VyT2JqZWN0UHJveHkmIG1f
d29ya2VyT2JqZWN0UHJveHk7CisgICAgYm9vbCBtX2RvZXNIYW5kbGVGZXRjaCB7IGZhbHNlIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggNTU5OWM2YjQyMmU5N2NmMmVkYjE3
YTU0YmM5NDcyMDA2ZTYyZTI3Yy4uMGM1N2EzNTdlZmUzZWNiNGY0MTk3Y2M5MWYwODcwMjIwYjY2
NzAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXIuaApAQCAtMTMwLDcgKzEzMCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHN0YXJ0U3VzcGVuc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZW5kU3VzcGVuc2lvbigpOwogCi0gICAgU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24qIGdldFJlZ2lzdHJhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgU1dTZXJ2ZXJSZWdpc3RyYXRpb24qIGdldFJlZ2lzdHJh
dGlvbihjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5Jik7CiAgICAgdm9pZCBhZGRS
ZWdpc3RyYXRpb24oc3RkOjp1bmlxdWVfcHRyPFNXU2VydmVyUmVnaXN0cmF0aW9uPiYmKTsKICAg
ICB2b2lkIHJlbW92ZVJlZ2lzdHJhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EYXRhPiBnZXRSZWdpc3RyYXRpb25zKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3Jp
Z2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcAppbmRleCBkY2Fm
NWE4YTcxMGY3OTQ0NjQ3ZGUzY2Q1ZTk4MDYzOTlhOGZkNTBhLi40YWMyNDRhZWU2NWZkY2FmMmFh
ZTMxMmY2OTc3Yzg2YjdkNjhiNDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKQEAgLTM1MCw3ICsz
NTAsNyBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OnJ1blVwZGF0ZUpvYihjb25zdCBTZXJ2aWNl
V29ya2VySm9iRGF0YSYgam9iKQogICAgIC8vIC0gbmV3ZXN0V29ya2VyIGlzIG5vdCBudWxsLCBh
bmQgcmVnaXN0cmF0aW9uJ3MgbGFzdCB1cGRhdGUgY2hlY2sgdGltZSBpcyBub3QgbnVsbCBhbmQg
dGhlIHRpbWUgZGlmZmVyZW5jZSBpbiBzZWNvbmRzIGNhbGN1bGF0ZWQgYnkgdGhlCiAgICAgLy8g
ICBjdXJyZW50IHRpbWUgbWludXMgcmVnaXN0cmF0aW9uJ3MgbGFzdCB1cGRhdGUgY2hlY2sgdGlt
ZSBpcyBncmVhdGVyIHRoYW4gODY0MDAuCiAgICAgaWYgKHJlZ2lzdHJhdGlvbi0+dXBkYXRlVmlh
Q2FjaGUoKSAhPSBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGU6OkFsbAotICAgICAgICB8fCAo
bmV3ZXN0V29ya2VyICYmIHJlZ2lzdHJhdGlvbi0+bGFzdFVwZGF0ZVRpbWUoKSAmJiAoV2FsbFRp
bWU6Om5vdygpIC0gcmVnaXN0cmF0aW9uLT5sYXN0VXBkYXRlVGltZSgpKSA+IDg2NDAwX3MpKSB7
CisgICAgICAgIHx8IChuZXdlc3RXb3JrZXIgJiYgcmVnaXN0cmF0aW9uLT5pc1N0YWxlKCkpKSB7
CiAgICAgICAgIGNhY2hlUG9saWN5ID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6Tm9DYWNoZTsKICAg
ICB9CiAgICAgbV9zZXJ2ZXIuc3RhcnRTY3JpcHRGZXRjaChqb2IsIGNhY2hlUG9saWN5KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJS
ZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKaW5kZXggNGQxYzU1NGY0NjAyYTk1NWUyZWIxMzQxM2Y3
MjNjZDBiNTIzYmNmNS4uYmZiZjA2NTFkOGUwZDE1MGRiZWFkODUzODk2MWY5MzMxNTk1OTE4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
clJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTM2Miw2ICszNjIsMjggQEAgdm9pZCBT
V1NlcnZlclJlZ2lzdHJhdGlvbjo6c2V0SXNVbmluc3RhbGxpbmcoYm9vbCB2YWx1ZSkKICAgICB9
CiB9CiAKK2Jvb2wgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNob3VsZFNvZnRVcGRhdGUoY29uc3Qg
RmV0Y2hPcHRpb25zJiBvcHRpb25zKSBjb25zdAoreworICAgIGlmIChvcHRpb25zLm1vZGUgPT0g
RmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICByZXR1cm4gV2ViQ29yZTo6aXNOb25TdWJyZXNvdXJjZVJlcXVlc3Qob3B0aW9ucy5kZXN0aW5h
dGlvbikgJiYgaXNTdGFsZSgpOworfQorCisvLyBodHRwczovL3czYy5naXRodWIuaW8vU2Vydmlj
ZVdvcmtlci8jc29mdC11cGRhdGUKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNvZnRVcGRh
dGUoKQoreworICAgIGF1dG8qIHdvcmtlciA9IGdldE5ld2VzdFdvcmtlcigpOworICAgIGlmICgh
d29ya2VyKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHNjaGVk
dWxlIGFuIHVwZGF0ZSBqb2IuCisgICAgbV9zZXJ2ZXIucnVuU2VydmljZVdvcmtlcklmTmVjZXNz
YXJ5KHdvcmtlci0+aWRlbnRpZmllcigpLCBbc2VydmljZVdvcmtlcklkZW50aWZpZXIgPSB3b3Jr
ZXItPmlkZW50aWZpZXIoKV0oYXV0byogY29udGV4dENvbm5lY3Rpb24pIHsKKyAgICAgICAgaWYg
KGNvbnRleHRDb25uZWN0aW9uKQorICAgICAgICAgICAgY29udGV4dENvbm5lY3Rpb24tPnNvZnRV
cGRhdGUoc2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0
cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
UmVnaXN0cmF0aW9uLmgKaW5kZXggYTY5ZjI2MjZiYTYyNzA3ZjhiZTY4MTAxZWU5MjE2NWFjMWIw
ZGQ2ZS4uMDM3ZThmZDdjODUwZDliZWE1NzFhYThjZTllMDQ0YzcxNzIxNzRkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJSZWdpc3RyYXRpb24uaApAQCAtNjIsNiArNjIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNl
dExhc3RVcGRhdGVUaW1lKFdhbGxUaW1lKTsKICAgICBXYWxsVGltZSBsYXN0VXBkYXRlVGltZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbGFzdFVwZGF0ZVRpbWU7IH0KKyAgICBib29sIGlzU3RhbGUoKSBj
b25zdCB7IHJldHVybiBtX2xhc3RVcGRhdGVUaW1lICYmIChXYWxsVGltZTo6bm93KCkgLSBtX2xh
c3RVcGRhdGVUaW1lKSA+IDg2NDAwX3M7IH0KIAogICAgIHZvaWQgc2V0VXBkYXRlVmlhQ2FjaGUo
U2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlKTsKICAgICBTZXJ2aWNlV29ya2VyVXBkYXRlVmlh
Q2FjaGUgdXBkYXRlVmlhQ2FjaGUoKSBjb25zdCB7IHJldHVybiBtX3VwZGF0ZVZpYUNhY2hlOyB9
CkBAIC05Niw2ICs5Nyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZm9yRWFjaENvbm5lY3Rpb24o
Y29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKFNXU2VydmVyOjpDb25uZWN0aW9uJik+Jik7CiAKKyAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZFNvZnRVcGRhdGUoY29uc3QgRmV0Y2hPcHRpb25z
JikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzb2Z0VXBkYXRlKCk7CisKIHByaXZh
dGU6CiAgICAgdm9pZCBhY3RpdmF0ZSgpOwogICAgIHZvaWQgaGFuZGxlQ2xpZW50VW5sb2FkKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggMjNiNGY4MTVh
NTExMWEzYTc4ZTM0MjQ2YWFjYzQ5OTQ1YzRhNTU0MS4uY2EyYjk2NGI3YTk2MTY1NTZlMGM3N2U3
NDE0ZGE0YjY2YzVmZjJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
LmNwcApAQCAtNzEsMTAgKzcxLDEwIEBAIHZvaWQgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
OjpzY3JpcHRDb250ZXh0RmFpbGVkVG9TdGFydChjb25zdCBPcHRpb25hbDxTZXJ2CiAgICAgICAg
IHdvcmtlci0+c2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoam9iRGF0YUlkZW50aWZpZXIsIG1l
c3NhZ2UpOwogfQogCi12b2lkIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6c2NyaXB0Q29u
dGV4dFN0YXJ0ZWQoY29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVy
PiYgam9iRGF0YUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKQordm9pZCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnNjcmlwdENv
bnRleHRTdGFydGVkKGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmll
cj4mIGpvYkRhdGFJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgYm9vbCBkb2VzSGFuZGxlRmV0Y2gpCiB7CiAgICAgaWYgKGF1dG8qIHdv
cmtlciA9IFNXU2VydmVyV29ya2VyOjpleGlzdGluZ1dvcmtlckZvcklkZW50aWZpZXIoc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIpKQotICAgICAgICB3b3JrZXItPnNjcmlwdENvbnRleHRTdGFydGVk
KGpvYkRhdGFJZGVudGlmaWVyKTsKKyAgICAgICAgd29ya2VyLT5zY3JpcHRDb250ZXh0U3RhcnRl
ZChqb2JEYXRhSWRlbnRpZmllciwgZG9lc0hhbmRsZUZldGNoKTsKIH0KICAgICAKIHZvaWQgU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpkaWRGaW5pc2hJbnN0YWxsKGNvbnN0IE9wdGlvbmFs
PFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4mIGpvYkRhdGFJZGVudGlmaWVyLCBTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCB3YXNTdWNj
ZXNzZnVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggYjU5YzQ0
ZDY2MTE5MTg0NjlkYzA1ZTdlZWJmNWNhMGQxNDM2NWQzMi4uM2MxMjBlODlmYmExMDVmYTA5YWVl
MDllMjQyNzFjZTI4ZjA3NjRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaW5zdGFsbFNl
cnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFBBTDo6
U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNvZnRVcGRhdGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdv
cmtlcklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmluZENsaWVudEJ5SWRlbnRp
ZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgT3B0aW9uYWw8
U2VydmljZVdvcmtlckNsaWVudERhdGE+JiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKSA9IDA7CkBA
IC02NSw3ICs2Niw3IEBAIHB1YmxpYzoKIAogICAgIC8vIE1lc3NhZ2VzIGJhY2sgZnJvbSB0aGUg
U1cgaG9zdCBwcm9jZXNzCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JpcHRDb250ZXh0RmFp
bGVkVG9TdGFydChjb25zdCBPcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+
JiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JpcHRDb250ZXh0U3RhcnRlZChjb25zdCBPcHRpb25hbDxT
ZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+JiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NyaXB0Q29udGV4dFN0YXJ0ZWQoY29uc3QgT3B0
aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYsIFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBib29sIGRvZXNIYW5kbGVGZXRjaCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
aWRGaW5pc2hJbnN0YWxsKGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRp
Zmllcj4mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEZpbmlzaEFjdGl2YXRpb24oU2VydmljZVdvcmtlcklk
ZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VydmljZVdvcmtlckhhc1Bl
bmRpbmdFdmVudHMoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgaGFzUGVuZGluZ0V2ZW50
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJXb3JrZXIuY3BwCmluZGV4IGJiOGNiMjQyNDY3NjIwZjk3M2U3OTAzMDJiYTA4ZWQx
ZTJhZDg1NWIuLmVlM2I5OWYxMzM3NDE1MWY3ZjQxNzM1YjlmOTg5OGZiMjE2M2I1Y2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3Jr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJXb3JrZXIuY3BwCkBAIC0xMDgsOCArMTA4LDkgQEAgdm9pZCBTV1NlcnZlcldvcmtlcjo6c2Ny
aXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoY29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkQK
ICAgICAgICAgbV9zZXJ2ZXItPnNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KGpvYkRhdGFJZGVu
dGlmaWVyLCAqdGhpcywgbWVzc2FnZSk7CiB9CiAKLXZvaWQgU1dTZXJ2ZXJXb3JrZXI6OnNjcmlw
dENvbnRleHRTdGFydGVkKGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRp
Zmllcj4mIGpvYkRhdGFJZGVudGlmaWVyKQordm9pZCBTV1NlcnZlcldvcmtlcjo6c2NyaXB0Q29u
dGV4dFN0YXJ0ZWQoY29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVy
PiYgam9iRGF0YUlkZW50aWZpZXIsIGJvb2wgZG9lc0hhbmRsZUZldGNoKQogeworICAgIG1fc2hv
dWxkU2tpcEhhbmRsZUZldGNoID0gIWRvZXNIYW5kbGVGZXRjaDsKICAgICBBU1NFUlQobV9zZXJ2
ZXIpOwogICAgIGlmIChtX3NlcnZlcikKICAgICAgICAgbV9zZXJ2ZXItPnNjcmlwdENvbnRleHRT
dGFydGVkKGpvYkRhdGFJZGVudGlmaWVyLCAqdGhpcyk7CkBAIC0yNDAsNiArMjQxLDkgQEAgdm9p
ZCBTV1NlcnZlcldvcmtlcjo6c2V0U3RhdGUoU3RhdGUgc3RhdGUpCiB7CiAgICAgQVNTRVJUKHN0
YXRlICE9IFN0YXRlOjpSdW5uaW5nIHx8IG1fc2VydmVyLT5nZXRSZWdpc3RyYXRpb24obV9yZWdp
c3RyYXRpb25LZXkpKTsKICAgICBtX3N0YXRlID0gc3RhdGU7CisKKyAgICBpZiAoc3RhdGUgPT0g
U3RhdGU6OlJ1bm5pbmcpCisgICAgICAgIG1fc2hvdWxkU2tpcEhhbmRsZUZldGNoID0geyB9Owog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKaW5kZXggMjMxN2RkYzJhM2Mx
OTA5MGJjODYzZjQzN2Q3YzBmNjE2NzE1NTJhMy4uYzk1ZjQxNmU3NTljZTYzNzE0OTJiMWRkMjk5
ZmU1ZGZiZWU0YzRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlcldvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaApAQCAtODgsNyArODgsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRIYXNQZW5kaW5nRXZlbnRzKGJvb2wpOwogCiAgICAgdm9pZCBzY3JpcHRDb250
ZXh0RmFpbGVkVG9TdGFydChjb25zdCBPcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50
aWZpZXI+JiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAgICB2b2lkIHNjcmlwdENvbnRleHRT
dGFydGVkKGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4mKTsK
KyAgICB2b2lkIHNjcmlwdENvbnRleHRTdGFydGVkKGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3Jr
ZXJKb2JEYXRhSWRlbnRpZmllcj4mLCBib29sIGRvZXNIYW5kbGVGZXRjaCk7CiAgICAgdm9pZCBk
aWRGaW5pc2hJbnN0YWxsKGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRp
Zmllcj4mLCBib29sIHdhc1N1Y2Nlc3NmdWwpOwogICAgIHZvaWQgZGlkRmluaXNoQWN0aXZhdGlv
bigpOwogICAgIHZvaWQgY29udGV4dFRlcm1pbmF0ZWQoKTsKQEAgLTExMiw2ICsxMTIsOCBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKiBj
b250ZXh0Q29ubmVjdGlvbigpOwogICAgIFN0cmluZyB1c2VyQWdlbnQoKSBjb25zdDsKIAorICAg
IGJvb2wgc2hvdWxkU2tpcEZldGNoRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFNraXBI
YW5kbGVGZXRjaCAmJiAqbV9zaG91bGRTa2lwSGFuZGxlRmV0Y2g7IH0KKwogcHJpdmF0ZToKICAg
ICBTV1NlcnZlcldvcmtlcihTV1NlcnZlciYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiwgY29uc3Qg
VVJMJiwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyYsIFN0cmluZyYmIHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlLCBTZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YTo6SW1wb3J0ZWRTY3JpcHQ+JiYpOwogCkBAIC0xMzAsNiArMTMyLDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1faXNTa2lwV2FpdGluZ0ZsYWdTZXQgeyBmYWxzZSB9OwogICAgIFZlY3RvcjxGdW5j
dGlvbjx2b2lkKGJvb2wpPj4gbV93aGVuQWN0aXZhdGVkSGFuZGxlcnM7CiAgICAgSGFzaE1hcDxV
UkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IG1fc2NyaXB0UmVz
b3VyY2VNYXA7CisgICAgT3B0aW9uYWw8Ym9vbD4gbV9zaG91bGRTa2lwSGFuZGxlRmV0Y2g7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24uY3BwCmluZGV4IDkxZmRjNzE1OTcxZDdiMTljYmI4YjQyYzY0N2RiMzBjM2FmZTI5Y2Qu
LjZiY2I5OWExMDBmODZiNjk5Yzc3MTVkNWI1ZjQ0ZjhlYWY2ODVmYmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBXZWJT
V1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2goU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIgc2VydmkKICAgICAgICAgaWYgKCF3b3JrZXItPmNvbnRleHRDb25uZWN0aW9uKCkp
CiAgICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5jcmVhdGVTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uKHdvcmtlci0+cmVnaXN0cmFibGVEb21haW4oKSwgc2VydmVyKCkuc2Vzc2lvbklEKCkp
OwogCi0gICAgICAgIHNlcnZlcigpLnJ1blNlcnZpY2VXb3JrZXJJZk5lY2Vzc2FyeShzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIHRoaXMsIGZl
dGNoSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHJlcXVlc3QgPSBXVEZNb3Zl
KHJlcXVlc3QpLCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwgZm9ybURhdGEgPSBXVEZNb3Zl
KGZvcm1EYXRhKSwgcmVmZXJyZXIgPSBXVEZNb3ZlKHJlZmVycmVyKV0oYXV0byogY29udGV4dENv
bm5lY3Rpb24pIHsKKyAgICAgICAgc2VydmVyKCkucnVuU2VydmljZVdvcmtlcklmTmVjZXNzYXJ5
KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwg
dGhpcywgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgcmVxdWVzdCA9
IFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBmb3JtRGF0YSA9
IFdURk1vdmUoZm9ybURhdGEpLCByZWZlcnJlciA9IFdURk1vdmUocmVmZXJyZXIpLCBzaG91bGRT
a2lwRmV0Y2hFdmVudCA9IHdvcmtlci0+c2hvdWxkU2tpcEZldGNoRXZlbnQoKV0oYXV0byogY29u
dGV4dENvbm5lY3Rpb24pIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogCkBAIC0xOTcsNiArMTk3LDE0IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpzdGFydEZldGNoKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNl
cnZpCiAgICAgICAgIH0pOwogICAgIH07CiAKKyAgICBpZiAod29ya2VyLT5zaG91bGRTa2lwRmV0
Y2hFdmVudCgpKSB7CisgICAgICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkTm90SGFuZGxlIHsgfSwgZmV0Y2hJZGVudGlm
aWVyKTsKKyAgICAgICAgYXV0byogcmVnaXN0cmF0aW9uID0gc2VydmVyKCkuZ2V0UmVnaXN0cmF0
aW9uKHdvcmtlci0+cmVnaXN0cmF0aW9uS2V5KCkpOworICAgICAgICBpZiAocmVnaXN0cmF0aW9u
ICYmIHJlZ2lzdHJhdGlvbi0+c2hvdWxkU29mdFVwZGF0ZShvcHRpb25zKSkKKyAgICAgICAgICAg
IHJlZ2lzdHJhdGlvbi0+c29mdFVwZGF0ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAg
ICAgaWYgKHdvcmtlci0+c3RhdGUoKSA9PSBTZXJ2aWNlV29ya2VyU3RhdGU6OkFjdGl2YXRpbmcp
IHsKICAgICAgICAgd29ya2VyLT53aGVuQWN0aXZhdGVkKFdURk1vdmUocnVuU2VydmVyV29ya2Vy
QW5kU3RhcnRGZXRjaCkpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IGU3ODI4MjEzMjFmZDBkNmI4
ZjE0NjRjYzYyMGE0MGZhOTIwYjdlYzQuLmJmZTQwM2RmNWViYTI4OTQ2OTc1N2MzMDQ4MTgxNGRl
NmI1YTczMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uY3BwCkBAIC04MCw2ICs4MCwxMSBAQCB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbjo6ZmlyZUFjdGl2YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgcwog
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpGaXJlQWN0
aXZhdGVFdmVudChzZXJ2aWNlV29ya2VySWRlbnRpZmllcikpOwogfQogCit2b2lkIFdlYlNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6c29mdFVwZGF0ZShTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U29mdFVwZGF0ZShzZXJ2aWNlV29ya2VySWRlbnRpZmll
cikpOworfQorCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRl
V29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQog
ewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpUZXJt
aW5hdGVXb3JrZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAppbmRleCBkYzk1ZWZhOGM0ZWZlM2M3
ZmM1NWJlOTE1NDFhMjE2ODAzZWYyZGM4Li45MGEwN2VhMjRiYmFkMzM3NTY3YTRiZWEzNzIyNWYz
ODIyMTFhYTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5oCkBAIC04Niw2ICs4Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbnN0YWxsU2Vy
dmljZVdvcmtlckNvbnRleHQoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRh
JiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KSBmaW5hbDsKICAgICB2
b2lkIGZpcmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZp
bmFsOwogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgc29mdFVwZGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdv
cmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBm
aW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVy
LCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mLCBib29s
IGhhc1NlY3VyaXR5RXJyb3IpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggNjhmOTVlYTc4
MDJkNjdiMjQzYTExZTYzYWNlMzcxZTBkZjU4YzZiOS4uOTk0OWUzZDQzNWYyNDdiNTBiZmQ0NDRk
NTA2ZGUyYTk1MjdkYzUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yNiw3ICsyNiw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiB7CiAgICAgIyBXaGVuIHBv
c3NpYmxlLCB0aGVzZSBtZXNzYWdlcyBjYW4gYmUgaW1wbGVtZW50ZWQgZGlyZWN0bHkgYnkgV2Vi
Q29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uCiAKICAgICBTY3JpcHRDb250ZXh0RmFp
bGVkVG9TdGFydChPcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZp
ZXI+IGpvYkRhdGFJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU3RyaW5nIG1lc3NhZ2UpOwotICAgIFNjcmlwdENvbnRl
eHRTdGFydGVkKE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmll
cj4gam9iRGF0YUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBTY3JpcHRDb250ZXh0U3RhcnRlZChPcHRpb25h
bDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlm
aWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgYm9vbCBkb2VzSGFuZGxlRmV0Y2gpOwogICAgIERpZEZpbmlzaEluc3RhbGwoT3B0aW9u
YWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiBqb2JEYXRhSWRlbnRp
ZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCk7CiAgICAgRGlkRmluaXNoQWN0aXZhdGlvbihXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKTsKICAgICBTZXRTZXJ2aWNl
V29ya2VySGFzUGVuZGluZ0V2ZW50cyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBp
ZGVudGlmaWVyLCBib29sIGhhc1BlbmRpbmdFdmVudHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uY3BwCmluZGV4IDE4OGFkYjA5NTkyZjkyMmExMDFmMmYzNzNlOTAzOTk2N2IxOWEy
ZGMuLjkyM2RiODAyOGRhN2IzZGZiMmE5OTRlZDVhOTE2MTE3ZmM1MjQ4YTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTE3NSwxMiArMTc1LDE0IEBAIHZvaWQgV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnJlbW92ZUZyYW1lTG9hZGVyQ2xpZW50KFNlcnZp
Y2VXb3JrZXJGcmFtZUxvCiAgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdCk7CiB9CiAK
LXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnNlcnZpY2VXb3JrZXJTdGFydGVk
V2l0aE1lc3NhZ2UoT3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiBqb2JE
YXRhSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uTWVzc2FnZSkKK3ZvaWQgV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OnNlcnZpY2VXb3JrZXJTdGFydGVkKE9wdGlvbmFsPFNlcnZpY2VX
b3JrZXJKb2JEYXRhSWRlbnRpZmllcj4gam9iRGF0YUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIGRvZXNIYW5kbGVGZXRjaCkK
IHsKLSAgICBpZiAoZXhjZXB0aW9uTWVzc2FnZS5pc0VtcHR5KCkpCi0gICAgICAgIG1fY29ubmVj
dGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbjo6U2NyaXB0Q29udGV4dFN0YXJ0ZWQoam9iRGF0YUlkZW50aWZpZXIsIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKSwgMCk7Ci0gICAgZWxzZQotICAgICAgICBtX2Nvbm5lY3Rpb25U
b05ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb246OlNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KGpvYkRhdGFJZGVudGlmaWVyLCBzZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgZXhjZXB0aW9uTWVzc2FnZSksIDApOworICAgIG1fY29ubmVj
dGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbjo6U2NyaXB0Q29udGV4dFN0YXJ0ZWQgeyBqb2JEYXRhSWRlbnRpZmllciwgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGRvZXNIYW5kbGVGZXRjaCB9LCAwKTsKK30KKwordm9pZCBX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2VydmljZVdvcmtlckZhaWxlZFRvU3RhcnQo
T3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiBqb2JEYXRhSWRlbnRpZmll
ciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgZXhjZXB0aW9uTWVzc2FnZSkKK3sKKyAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQ
cm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OlNj
cmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0IHsgam9iRGF0YUlkZW50aWZpZXIsIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBleGNlcHRpb25NZXNzYWdlIH0sIDApOwogfQogCiBzdGF0aWMgaW5saW5l
IGJvb2wgaXNWYWxpZEZldGNoKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3Qg
RmV0Y2hPcHRpb25zJiBvcHRpb25zLCBjb25zdCBVUkwmIHNlcnZpY2VXb3JrZXJVUkwsIGNvbnN0
IFN0cmluZyYgcmVmZXJyZXIpCkBAIC0yNjEsNiArMjYzLDExIEBAIHZvaWQgV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OmZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIGlkCiAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuZmlyZUFjdGl2YXRlRXZl
bnQoaWRlbnRpZmllcik7CiB9CiAKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246
OnNvZnRVcGRhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5zb2Z0VXBkYXRlKGlkZW50aWZp
ZXIpOworfQorCiB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp0ZXJtaW5hdGVX
b3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBTV0NvbnRl
eHRNYW5hZ2VyOjpzaW5nbGV0b24oKS50ZXJtaW5hdGVXb3JrZXIoaWRlbnRpZmllciwgYXN5bmNX
b3JrZXJUZXJtaW5hdGlvblRpbWVvdXQsIG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmgKaW5kZXggZmJiNjMwZTRlMTliMzU5ZGMxNzBjY2VhMDE4YTQ5ODMyMTY2ZGFmZS4u
N2JjMTFkMDM2MTlmOTliMzVjZjY1NmVlODEwM2VkZWZmYjg0NDY4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC03Niw3ICs3Niw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBp
c1Rocm90dGxlYWJsZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gSVBDIG1lc3NhZ2VzLgotICAg
IHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRXaXRoTWVzc2FnZShPcHRpb25hbDxXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKSBmaW5hbDsKKyAgICB2b2lk
IHNlcnZpY2VXb3JrZXJTdGFydGVkKE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JE
YXRhSWRlbnRpZmllcj4sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIGRv
ZXNIYW5kbGVGZXRjaCkgZmluYWw7CisgICAgdm9pZCBzZXJ2aWNlV29ya2VyRmFpbGVkVG9TdGFy
dChPcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+LCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25NZXNz
YWdlKSBmaW5hbDsKICAgICB2b2lkIGluc3RhbGxTZXJ2aWNlV29ya2VyKGNvbnN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiB1c2Vy
QWdlbnQpOwogICAgIHZvaWQgc3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0
Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6RmV0Y2hP
cHRpb25zJiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiwgU3RyaW5nJiYgcmVmZXJyZXIpOwog
ICAgIHZvaWQgY2FuY2VsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRp
Zmllcik7CkBAIC04NCw2ICs4NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlv
bklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsKICAgICB2b2lkIGZpcmVJ
bnN0YWxsRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQg
ZmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAg
IHZvaWQgc29mdFVwZGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAg
dm9pZCB0ZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwog
ICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpTeW5jVGVybWlu
YXRlV29ya2VyOjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlm
aWVyQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBPcHRpb25hbDxXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZTE1
YjAyZjYxZDI2NDZmYzFjYjFlYzcwZjkwNmZhM2M2N2NkZDhkMi4uZGY3ZWFiYjE5ZTIwNWY1Y2M1
YTU0YWJjNWQwNzVhNzRmNjEyYjY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTMwLDYgKzMwLDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24gewogICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwg
c3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEgc291cmNlRGF0YSkKICAgICBGaXJlSW5zdGFsbEV2
ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgRmly
ZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmll
cikKKyAgICBTb2Z0VXBkYXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIpCiAgICAgVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIpCiAgICAgU3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIEZpbmRD
bGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgY2xpZW50SWRSZXF1ZXN0SWRlbnRp
ZmllciwgT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+IGRhdGEsIGJv
b2wgaGFzU2VjdXJpdHlFcnJvcikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhODA4ZTQ5OTBlNmM3MTA1MzEyOGEzYmZjZGE2
ZGZhNWEwYzMxZTI1Li40YjlmNzliYjhkMTgyYWZkNzFlMDY0NTVlMDE3OTQzZWRhNmY3ZDI0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDgtMjcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIFNraXAgZmV0Y2ggZXZlbnQgZGlzcGF0Y2hpbmcgaWYgbm8g
ZmV0Y2ggZXZlbnQgaGFuZGxlciBpcyBhZGRlZCBhdCBzY3JpcHQgZXZhbHVhdGlvbiB0aW1lCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDExNzQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9za2lwRmV0Y2hFdmVudC13b3JrZXIuanM6IEFkZGVkLgorICAgICAg
ICAoYXN5bmMuZG9UZXN0KToKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2tp
cEZldGNoRXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvc2tpcEZldGNoRXZlbnQuaHR0cHMuaHRtbDogQWRkZWQuCisKIDIw
MTktMDgtMjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBhIFdlYnNpdGVEYXRhU3RvcmUgZGVsZWdhdGUgdG8gaGFuZGxlIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlIHRoYXQgZG8gbm90IGNvbWUgZnJvbSBwYWdlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NraXBGZXRjaEV2ZW50LXdvcmtlci5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9za2lwRmV0Y2hFdmVudC13b3JrZXIu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGNmOTdmZTIzZjhjY2EwNjIxMjIzMmVlZjk5ZWVhNjc1NzcxNTYyMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9z
a2lwRmV0Y2hFdmVudC13b3JrZXIuanMKQEAgLTAsMCArMSwxOCBAQAorYXN5bmMgZnVuY3Rpb24g
ZG9UZXN0KGV2ZW50KQoreworICAgIGlmIChldmVudC5kYXRhID09PSAiU0VULUZFVENIIikgewor
ICAgICAgICBzZWxmLnJlY2VpdmVkRmV0Y2ggPSAwOworICAgICAgICBzZWxmLmFkZEV2ZW50TGlz
dGVuZXIoImZldGNoIiwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBzZWxmLnJlY2VpdmVkRmV0
Y2grKzsKKyAgICAgICAgfSk7CisgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgiT0si
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoZXZlbnQuZGF0YSA9PT0gIkdFVC1G
RVRDSCIpIHsKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKHNlbGYucmVjZWl2ZWRG
ZXRjaCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZXZlbnQuc291cmNlLnBvc3RNZXNz
YWdlKCJLTyIpOworfQorCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBkb1Rlc3Qp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NraXBG
ZXRjaEV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9za2lwRmV0Y2hFdmVudC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGY3NjRjMDIyNTMzMjRjNDRkZDBkN2MzZGFhMWRlZTE1MGVkMDUzNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9za2lwRmV0Y2hFdmVudC5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKKworUEFTUyBTZXR1cCB3b3JrZXIg
CitQQVNTIFNldHVwIGZldGNoIGV2ZW50IGFmdGVyIHNjcmlwdCBpcyBydW4gCitQQVNTIEZldGNo
IGV2ZW50IHNob3VsZCBiZSBza2lwcGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2tpcEZldGNoRXZlbnQuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9za2lwRmV0Y2hFdmVudC5odHRwcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM5NTIxNjU3Yzc5MmNiNGY5YTc0MWE2Mjc5MjBjNGY5YzJkYTdjM2IKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2tpcEZl
dGNoRXZlbnQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDU3IEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Rlc3QtaGVscGVy
cy5zdWIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgordmFyIHNjb3Bl
ID0gInRlc3QiOwordmFyIGFjdGl2ZVdvcmtlcjsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0
KSA9PiB7CisgICAgdmFyIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLnJlZ2lzdGVyKCJza2lwRmV0Y2hFdmVudC13b3JrZXIuanMiLCB7IHNjb3BlIDogc2NvcGUg
fSk7CisgICAgYWN0aXZlV29ya2VyID0gcmVnaXN0cmF0aW9uLmFjdGl2ZTsKKyAgICBpZiAoYWN0
aXZlV29ya2VyKQorICAgICAgICByZXR1cm47CisgICAgYWN0aXZlV29ya2VyID0gcmVnaXN0cmF0
aW9uLmluc3RhbGxpbmc7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAg
ICAgICBhY3RpdmVXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFuZ2UnLCAoKSA9PiB7
CisgICAgICAgICAgICBpZiAoYWN0aXZlV29ya2VyLnN0YXRlID09PSAiYWN0aXZhdGVkIikKKyAg
ICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0pOworICAgIH0pOworfSwgIlNldHVw
IHdvcmtlciIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICB2YXIgcHJv
bWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgbmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4g
eworICAgICAgICAgICAgcmVzb2x2ZShldmVudC5kYXRhKTsKKyAgICAgICAgfSk7CisgICAgfSk7
CisKKyAgICBhY3RpdmVXb3JrZXIucG9zdE1lc3NhZ2UoIlNFVC1GRVRDSCIpOworICAgIHZhciBy
ZXN1bHQgPSBhd2FpdCBwcm9taXNlOworCisgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsICJPSyIp
OworfSwgIlNldHVwIGZldGNoIGV2ZW50IGFmdGVyIHNjcmlwdCBpcyBydW4iKTsKKworcHJvbWlz
ZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFk
ZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIHJlc29s
dmUoZXZlbnQuZGF0YSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgY29uc3QgaWZyYW1l
ID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOworCisgICAgYXNzZXJ0X3RydWUoISFpZnJhbWUu
Y29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyKTsKKworICAg
IGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSgiR0VULUZFVENIIik7CisgICAgdmFyIHJlc3VsdCA9
IGF3YWl0IHByb21pc2U7CisKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdCwgMCk7Cit9LCAiRmV0
Y2ggZXZlbnQgc2hvdWxkIGJlIHNraXBwZWQiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377575</attachid>
            <date>2019-08-29 06:44:16 -0700</date>
            <delta_ts>2019-08-29 08:24:10 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-201174-20190829154414.patch</filename>
            <type>text/plain</type>
            <size>43149</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRlZjRjNjk3Y2VlMmQz
MjBmZjE5NDZmZDEwNWI1ZTlmNjUyOGUxZC4uMzQ0MGM4N2EwNTA2NGE1ZWZhMzVmZjgwNTY5ODg5
MzU3MDlmNmU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE5LTA4LTI5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTa2lwIGZldGNoIGV2ZW50
IGRpc3BhdGNoaW5nIGlmIG5vIGZldGNoIGV2ZW50IGhhbmRsZXIgaXMgYWRkZWQgYXQgc2NyaXB0
IGV2YWx1YXRpb24gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAxMTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAg
ICAgICAgQXQgZW5kIG9mIHdvcmtlciBzY3JpcHQgZXZhbHVhdGlvbiwgc3RvcmUgd2hldGhlciBh
IGZldGNoIGV2ZW50IGhhbmRsZXIgaXMgcmVnaXN0ZXJlZC4KKyAgICAgICAgU2VuZCBpdCBiYWNr
IHRvIHRoZSBTV1NlcnZlciB0aGF0IHdpbGwgc3RvcmUgaXQgaW4gdGhlIGNvcnJlc3BvbmRpbmcg
U1dTZXJ2ZXJXb3JrZXIuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNvZnQgdXBkYXRlIGRp
cmVjdGx5IGZyb20gdGhlIHJlZ2lzdHJhdGlvbi4KKyAgICAgICAgVGhpcyB3aWxsIHRyaWdnZXIg
YSBzb2Z0LXVwZGF0ZSBmcm9tIHRoZSB3b3JrZXIgY29udGV4dCBpdHNlbGYuCisgICAgICAgIElu
IHRoZW9yeSwgdGhpcyBzaG91bGQgYmUgc3RhcnRlZCBieSB0aGUgam9iIHF1ZXVlIGJ1dCB3ZSBk
byBub3QgaGF2ZSBhIHdheSB5ZXQgdG8gaW1wbGVtZW50IHRoaXMgYXMgcGVyIHNwZWMuCisKKyAg
ICAgICAgVGVzdDogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NraXBGZXRjaEV2ZW50Lmh0dHBz
Lmh0bWwKKworICAgICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmg6CisgICAg
ICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6Ondv
cmtlclRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlclRocmVhZDo6ZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OnJlZ2lzdGVyU2VydmljZVdvcmtlclRocmVh
ZEZvckluc3RhbGwpOgorICAgICAgICAoV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6c3RhcnRl
ZFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6c29m
dFVwZGF0ZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFu
YWdlci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6cG9zdEZl
dGNoVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpzb2Z0VXBk
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OmZpbmlzaGVkRXZh
bHVhdGluZ1NjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpz
dGFydCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZC5oOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6ZG9lc0hhbmRs
ZUZldGNoIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkU29m
dFVwZGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6
c29mdFVwZGF0ZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJl
Z2lzdHJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246Omlz
U3RhbGUgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbjo6Z2VuZXJhdGVDb25uZWN0aW9uSWRlbnRpZmllcik6CisgICAgICAgIChX
ZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246
OnNjcmlwdENvbnRleHRTdGFydGVkKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJX
b3JrZXI6OnNjcmlwdENvbnRleHRTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
V29ya2VyOjpzZXRTdGF0ZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlcldvcmtlci5oOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OnNob3VsZFNr
aXBGZXRjaEV2ZW50IGNvbnN0KToKKwogMjAxOS0wOC0yOSAgWmFuIERvYmVyc2VrICA8emRvYmVy
c2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW05pY29zaWFdIE5pY29zaWE6OkFuaW1hdGlvbiBp
cyBtaXNzaW5nIHRoZSBjb3B5IGFzc2lnbm1lbnQgb3BlcmF0b3IKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTQxNWY0
ZWE2ZDhmZTNkY2I2OTI5ZGE2YzliY2U4ODRmZDY1OGM0NS4uNjc3NDJkNWE1YTU4YWU0MWYwN2Ji
ZTI3ODZhZDhhNDBlZjdlNzI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxOS0wOC0y
OSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgU2tpcCBmZXRj
aCBldmVudCBkaXNwYXRjaGluZyBpZiBubyBmZXRjaCBldmVudCBoYW5kbGVyIGlzIGFkZGVkIGF0
IHNjcmlwdCBldmFsdWF0aW9uIHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMTE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6
LgorCisgICAgICAgIFN0b3JlIHdoZXRoZXIgYSBmZXRjaCBldmVudCBoYW5kbGVyIGlzIHNldCBh
dCBzY3JpcHQgZXZhbHVhdGlvbiB0aW1lLgorICAgICAgICBJZiBub3QsIHdlIHNraXAgdGhlIGZl
dGNoIGV2ZW50IGVudGlyZWx5IHNvIHRoYXQgdGhlIG5ldHdvcmsgbG9hZCBjYW4gc3RhcnQgc29v
bmVyLgorICAgICAgICBJZiBmZXRjaCBldmVudCBpcyBza2lwcGVkLCB3ZSB0cmlnZ2VyIHNvZnQg
dXBkYXRlLCBhcyBkZWZpbmVkIGluCisgICAgICAgIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2
aWNlV29ya2VyLyNoYW5kbGUtZmV0Y2ggc3RlcCAxNi4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6c29m
dFVwZGF0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2Vy
dmljZVdvcmtlclN0YXJ0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6c2VydmljZVdvcmtlckZhaWxlZFRvU3RhcnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c29mdFVwZGF0ZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1l
c3NhZ2VzLmluOgorCiAyMDE5LTA4LTI5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBNYWtlIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIGtleWVkIGJ5
IHRoZWlyIFdlYlByb2Nlc3MgaWRlbnRpZmllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
RGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKaW5kZXggZjFjOTYyNGIxOGFjMTg5MzI5ODg0NjMzOTYx
NjM1MmNhYzBjN2RkNy4uN2U2NzMwMWY0NGMwOWFjMTQ4NTM2Mzc3MTgzZWE4NDFlMDhkYzFlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oCkBA
IC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5EZWRpY2F0ZWRXb3JrZXJUaHJl
YWQoKTsKIAogICAgIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSgpIGNvbnN0
IHsgcmV0dXJuIG1fd29ya2VyT2JqZWN0UHJveHk7IH0KKyAgICB2b2lkIHN0YXJ0KCkgeyBXb3Jr
ZXJUaHJlYWQ6OnN0YXJ0KG51bGxwdHIpOyB9CiAKIHByb3RlY3RlZDoKICAgICBSZWY8V29ya2Vy
R2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIFJlZjxTZWN1
cml0eU9yaWdpbj4mJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBDb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwg
TW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBQQUw6OlNlc3Npb25JRCkgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDRl
OWY1MTlhZWZlZGQyNWY4ODNmNjNhY2EwYTQ3ODlmZjAyN2U0YjkuLjFlNGQ3ZGJkNzE1M2NmYTNj
YWY2NjBmYzA5ODA1ZTU2MzdkMTE0NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgV29ya2VyTWVz
c2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkws
IGNvbnN0IFN0CiAgICAgYXV0byB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0
ZShzY3JpcHRVUkwsIG5hbWUsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwgaXNPbmxpbmUsIHNvdXJj
ZUNvZGUsICp0aGlzLCAqdGhpcywgKnRoaXMsIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQ
b2xpY3ksIGRvY3VtZW50LnRvcE9yaWdpbigpLCB0aW1lT3JpZ2luLCBwcm94eSwgc29ja2V0UHJv
dmlkZXIsIHJ1bnRpbWVGbGFncywgc2Vzc2lvbklEKTsKIAogICAgIHdvcmtlclRocmVhZENyZWF0
ZWQodGhyZWFkLmdldCgpKTsKLSAgICB0aHJlYWQtPnN0YXJ0KG51bGxwdHIpOworICAgIHRocmVh
ZC0+c3RhcnQoKTsKIAogICAgIG1faW5zcGVjdG9yUHJveHktPndvcmtlclN0YXJ0ZWQobV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmdldCgpLCB0aHJlYWQucHRyKCksIHNjcmlwdFVSTCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKaW5kZXggM2MzODU4YmRhOWI0NGI1
N2ZhZGIzOWVmYTJlMGEwZjNhMzA0MTE4Yy4uNjg5ZDM5Y2FlYWJmZjYwNjY4ZTRkMjM0OWQxMGU1
ZDZjOWE1MTEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAt
MTkzLDYgKzE5Myw4IEBAIHZvaWQgV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWQoKQogICAgIFN0
cmluZyBleGNlcHRpb25NZXNzYWdlOwogICAgIHNjcmlwdENvbnRyb2xsZXItPmV2YWx1YXRlKFNj
cmlwdFNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+bV9zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVw
RGF0YS0+bV9zY3JpcHRVUkwpKSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOwogCisgICAgZmluaXNoZWRF
dmFsdWF0aW5nU2NyaXB0KCk7CisKICAgICBjYWxsT25NYWluVGhyZWFkKFtldmFsdWF0ZUNhbGxi
YWNrID0gV1RGTW92ZShtX2V2YWx1YXRlQ2FsbGJhY2spLCBtZXNzYWdlID0gZXhjZXB0aW9uTWVz
c2FnZS5pc29sYXRlZENvcHkoKV0gewogICAgICAgICBpZiAoZXZhbHVhdGVDYWxsYmFjaykKICAg
ICAgICAgICAgIGV2YWx1YXRlQ2FsbGJhY2sobWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUaHJlYWQuaAppbmRleCAwOTU1ZGZlZWYxOGJmMmVjMzQxYzgwZWZmNDQ1ZDU2NjFjNGNi
YzAzLi4zMzU2NDNiOTg0N2E2MDFhZGI2NWY0ZGEyZjU0OGZmOWI3NzExZmRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTY1LDcgKzY1LDYgQEAgcHVibGljOgogICAg
IHN0YXRpYyBIYXNoU2V0PFdvcmtlclRocmVhZCo+JiB3b3JrZXJUaHJlYWRzKGNvbnN0IExvY2tI
b2xkZXImKTsKICAgICBzdGF0aWMgTG9jayYgd29ya2VyVGhyZWFkc011dGV4KCk7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0KFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcm
KT4mJiBldmFsdWF0ZUNhbGxiYWNrKTsKICAgICB2b2lkIHN0b3AoV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgdGVybWluYXRlZENhbGxiYWNrKTsKIAogICAgIFRocmVhZCogdGhyZWFkKCkgY29uc3Qg
eyByZXR1cm4gbV90aHJlYWQuZ2V0KCk7IH0KQEAgLTEwNCwxMCArMTAzLDE0IEBAIHByb3RlY3Rl
ZDoKICAgICBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5
KCk7CiAgICAgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKCk7CiAKKyAgICB2b2lkIHN0
YXJ0KEZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJik+JiYgZXZhbHVhdGVDYWxsYmFjayk7CisK
IHByaXZhdGU6CiAgICAgdm9pZCB3b3JrZXJUaHJlYWQoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNT
ZXJ2aWNlV29ya2VyVGhyZWFkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1
YWwgdm9pZCBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKSB7IH0KKwogICAgIFJlZlB0cjxUaHJl
YWQ+IG1fdGhyZWFkOwogICAgIFN0cmluZyBtX2lkZW50aWZpZXI7CiAgICAgV29ya2VyUnVuTG9v
cCBtX3J1bkxvb3A7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwCmluZGV4IGNiNWMyMjFmYzk0ODhkN2Mw
MDcyOTgzYTE1Nzg5NWRjYThjNmNlYzYuLjc3NGYzODVmMThhYmJhODEyODhiNzkxNGFjOWM5MWVi
MjUxNDRmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwCkBAIC01OSwxNiArNTksMjAgQEAgdm9p
ZCBTV0NvbnRleHRNYW5hZ2VyOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJUaHJlYWRGb3JJbnN0YWxs
KFJlZjxTZXJ2aWNlV29ya2VyVGgKICAgICBhdXRvIHJlc3VsdCA9IG1fd29ya2VyTWFwLmFkZChz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV1RGTW92ZShzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkp
KTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwogICAgIAot
ICAgIHRocmVhZFByb3h5LT50aHJlYWQoKS5zdGFydChbam9iRGF0YUlkZW50aWZpZXIsIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyXShjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpIHsKLSAg
ICAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc3RhcnRlZFNlcnZpY2VXb3JrZXIo
am9iRGF0YUlkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBleGNlcHRpb25NZXNz
YWdlKTsKKyAgICB0aHJlYWRQcm94eS0+dGhyZWFkKCkuc3RhcnQoW2pvYkRhdGFJZGVudGlmaWVy
LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcl0oY29uc3QgU3RyaW5nJiBleGNlcHRpb25NZXNzYWdl
LCBib29sIGRvZXNIYW5kbGVGZXRjaCkgeworICAgICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5n
bGV0b24oKS5zdGFydGVkU2VydmljZVdvcmtlcihqb2JEYXRhSWRlbnRpZmllciwgc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGV4Y2VwdGlvbk1lc3NhZ2UsIGRvZXNIYW5kbGVGZXRjaCk7CiAgICAg
fSk7CiB9CiAKLXZvaWQgU1dDb250ZXh0TWFuYWdlcjo6c3RhcnRlZFNlcnZpY2VXb3JrZXIoT3B0
aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiBqb2JEYXRhSWRlbnRpZmllciwg
U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgZXhjZXB0aW9uTWVzc2FnZSkKK3ZvaWQgU1dDb250ZXh0TWFuYWdlcjo6c3RhcnRlZFNl
cnZpY2VXb3JrZXIoT3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiBqb2JE
YXRhSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uTWVzc2FnZSwgYm9vbCBkb2VzSGFuZGxlRmV0
Y2gpCiB7Ci0gICAgY29ubmVjdGlvbigpLT5zZXJ2aWNlV29ya2VyU3RhcnRlZFdpdGhNZXNzYWdl
KGpvYkRhdGFJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZXhjZXB0aW9uTWVz
c2FnZSk7CiAgICAgaWYgKG1fc2VydmljZVdvcmtlckNyZWF0aW9uQ2FsbGJhY2spCiAgICAgICAg
IG1fc2VydmljZVdvcmtlckNyZWF0aW9uQ2FsbGJhY2soc2VydmljZVdvcmtlcklkZW50aWZpZXIu
dG9VSW50NjQoKSk7CisgICAgaWYgKCFleGNlcHRpb25NZXNzYWdlLmlzRW1wdHkoKSkgeworICAg
ICAgICBjb25uZWN0aW9uKCktPnNlcnZpY2VXb3JrZXJGYWlsZWRUb1N0YXJ0KGpvYkRhdGFJZGVu
dGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZXhjZXB0aW9uTWVzc2FnZSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgY29ubmVjdGlvbigpLT5zZXJ2aWNlV29ya2VyU3RhcnRl
ZChqb2JEYXRhSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGRvZXNIYW5kbGVG
ZXRjaCk7CiB9CiAKIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSogU1dDb250ZXh0TWFuYWdlcjo6
c2VydmljZVdvcmtlclRocmVhZFByb3h5KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIpIGNvbnN0CkBAIC0xMDQsNiArMTA4LDE1IEBAIHZvaWQgU1dDb250ZXh0TWFuYWdlcjo6Zmly
ZUFjdGl2YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBz
ZXJ2aWNlV29ya2VyLT50aHJlYWQoKS5maXJlQWN0aXZhdGVFdmVudCgpOwogfQogCit2b2lkIFNX
Q29udGV4dE1hbmFnZXI6OnNvZnRVcGRhdGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBhdXRvKiBzZXJ2aWNlV29ya2VyID0gbV93b3JrZXJNYXAuZ2V0KGlkZW50
aWZpZXIpOworICAgIGlmICghc2VydmljZVdvcmtlcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
c2VydmljZVdvcmtlci0+dGhyZWFkKCkuc29mdFVwZGF0ZSgpOworfQorCiB2b2lkIFNXQ29udGV4
dE1hbmFnZXI6OnRlcm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlm
aWVyLCBTZWNvbmRzIHRpbWVvdXQsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBhdXRvIHNlcnZpY2VXb3JrZXIgPSBtX3dvcmtlck1hcC50YWtlKGlkZW50aWZp
ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U1dDb250ZXh0TWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU1dDb250ZXh0TWFuYWdlci5oCmluZGV4IDc4N2FkOTRkODI1NDA1NjI5ZjUxNjhmOTlhMTVh
MGNjMzVlNGUwZmEuLmZlMGMwODQ5MmMzNTIxN2EyMzZlMjMyYzA2YmM1YWI2MzY3ODg2YTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4
dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
V0NvbnRleHRNYW5hZ2VyLmgKQEAgLTUwLDcgKzUwLDggQEAgcHVibGljOgogICAgICAgICB2aXJ0
dWFsIH5Db25uZWN0aW9uKCkgeyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
JiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pID0g
MDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHNlcnZpY2VXb3JrZXJTdGFydGVkV2l0aE1lc3NhZ2Uo
T3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiwgU2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uTWVzc2FnZSkgPSAwOworICAgICAgICB2
aXJ0dWFsIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWQoT3B0aW9uYWw8U2VydmljZVdvcmtlckpv
YkRhdGFJZGVudGlmaWVyPiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgZG9lc0hhbmRs
ZUZldGNoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXJ2aWNlV29ya2VyRmFpbGVkVG9T
dGFydChPcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+LCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRGaW5pc2hJbnN0YWxsKE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRl
bnRpZmllcj4sIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpID0g
MDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaEFjdGl2YXRpb24oU2VydmljZVdvcmtl
cklkZW50aWZpZXIpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFNlcnZpY2VXb3JrZXJI
YXNQZW5kaW5nRXZlbnRzKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sKSA9IDA7CkBAIC03
NCw2ICs3NSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJiYgc291cmNl
RGF0YSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZpcmVBY3RpdmF0ZUV2
ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNv
ZnRVcGRhdGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgdGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZWNvbmRzIHRpbWVv
dXQsIEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKICAgICB2b2lkIGZvckVhY2hTZXJ2aWNlV29ya2Vy
VGhyZWFkKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkm
KT4mKTsKQEAgLTg4LDcgKzkwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTV0NvbnRleHRN
YW5hZ2VyKCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCBzdGFydGVkU2VydmljZVdvcmtlcihPcHRp
b25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+LCBTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKTsKKyAgICB2b2lkIHN0YXJ0ZWRT
ZXJ2aWNlV29ya2VyKE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4sIFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UsIGJv
b2wgZG9lc0hhbmRsZUZldGNoKTsKICAgICBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIHZvaWQgc2Vy
dmljZVdvcmtlckZhaWxlZFRvVGVybWluYXRlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIAog
ICAgIEhhc2hNYXA8U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJlZlB0cjxTZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHk+PiBtX3dvcmtlck1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKaW5k
ZXggMDg2NjA2NzBhMzhmY2JjYmIyNzI4MDI3NzIwYTcxY2Q2OWE4NDIyNi4uOWMzZjA0NGM0MjAy
ODdmMGY2ZGJmMzUwNDQ1MmEzZmMxNDk4MGUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5j
cHAKQEAgLTE4NCw2ICsxODQsMjkgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpmaXJlQWN0
aXZhdGVFdmVudCgpCiAgICAgcnVuTG9vcCgpLnBvc3RUYXNrKFdURk1vdmUodGFzaykpOwogfQog
Cit2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnNvZnRVcGRhdGUoKQoreworICAgIHJ1bkxvb3Ao
KS5wb3N0VGFzayhbXShhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byYgc2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Pihjb250ZXh0KTsKKyAgICAgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLnJlZ2lzdHJhdGlv
bigpLnNjaGVkdWxlU29mdFVwZGF0ZSgpOworICAgIH0pOworfQorCit2b2lkIFNlcnZpY2VXb3Jr
ZXJUaHJlYWQ6OmZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpCit7CisgICAgbV9kb2VzSGFuZGxl
RmV0Y2ggPSB3b3JrZXJHbG9iYWxTY29wZSgpLT5oYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVz
KCkuZmV0Y2hFdmVudCk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6c3RhcnQoRnVu
Y3Rpb248dm9pZChjb25zdCBTdHJpbmcmLCBib29sKT4mJiBjYWxsYmFjaykKK3sKKyAgICBXb3Jr
ZXJUaHJlYWQ6OnN0YXJ0KFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciA9IHRoaXMtPmlkZW50aWZpZXIoKV0oYXV0byYgZXJyb3JNZXNzYWdlKSBt
dXRhYmxlIHsKKyAgICAgICAgYm9vbCBkb2VzSGFuZGxlRmV0Y2ggPSB0cnVlOworICAgICAgICBp
ZiAoYXV0byogdGhyZWFkUHJveHkgPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS53b3Jr
ZXJCeUlEKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSkKKyAgICAgICAgICAgIGRvZXNIYW5kbGVG
ZXRjaCA9IHRocmVhZFByb3h5LT50aHJlYWQoKS5kb2VzSGFuZGxlRmV0Y2goKTsKKyAgICAgICAg
Y2FsbGJhY2soZXJyb3JNZXNzYWdlLCBkb2VzSGFuZGxlRmV0Y2gpOworICAgIH0pOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKaW5kZXggNTFjZjEyMWEwMWRlNmIyNTEwM2VlM2MwNDUw
YjA2OWFjZmU5ZGUxYS4uYmFiM2FmMzdiMThiNjdiOGIxY2VmYWExY2RmZTA3Mjk2ZDkxOTJjMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApAQCAtNTUsMTUgKzU1LDE4IEBAIHB1YmxpYzoKIAog
ICAgIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSgpIGNvbnN0IHsgcmV0dXJu
IG1fd29ya2VyT2JqZWN0UHJveHk7IH0KIAorICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChj
b25zdCBTdHJpbmcmLCBib29sKT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0RmV0
Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgT3B0aW9uYWw8U2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXI+JiYsIFJlc291cmNlUmVxdWVzdCYmLCBTdHJpbmcmJiBy
ZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXIoTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgU2VydmljZVdv
cmtlck9yQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOwogCiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2
ZW50KCk7CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudCgpOworICAgIHZvaWQgc29mdFVwZGF0
ZSgpOwogCiAgICAgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBjb250ZXh0RGF0YSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQogCiAgICAgU2VydmljZVdvcmtlcklkZW50aWZpZXIg
aWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5zZXJ2aWNlV29ya2VySWRlbnRpZmll
cjsgfQorICAgIGJvb2wgZG9lc0hhbmRsZUZldGNoKCkgY29uc3QgeyByZXR1cm4gbV9kb2VzSGFu
ZGxlRmV0Y2g7IH0KIAogcHJvdGVjdGVkOgogICAgIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3Jl
YXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5
UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRp
bWVPcmlnaW4sIFBBTDo6U2Vzc2lvbklEKSBmaW5hbDsKQEAgLTczLDkgKzc2LDExIEBAIHByaXZh
dGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgU2VydmljZVdvcmtlclRocmVhZChjb25zdCBTZXJ2aWNl
V29ya2VyQ29udGV4dERhdGEmLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgdXNlckFnZW50LCBX
b3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlckRlYnVnZ2VyUHJveHkmLCBJREJDbGllbnQ6OklEQkNv
bm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKik7CiAKICAgICBib29sIGlzU2VydmljZVdv
cmtlclRocmVhZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIGZpbmlz
aGVkRXZhbHVhdGluZ1NjcmlwdCgpIGZpbmFsOwogCiAgICAgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhIG1fZGF0YTsKICAgICBXb3JrZXJPYmplY3RQcm94eSYgbV93b3JrZXJPYmplY3RQcm94eTsK
KyAgICBib29sIG1fZG9lc0hhbmRsZUZldGNoIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXIuaAppbmRleCA1NTk5YzZiNDIyZTk3Y2YyZWRiMTdhNTRiYzk0NzIwMDZlNjJlMjdj
Li4wYzU3YTM1N2VmZTNlY2I0ZjQxOTdjYzkxZjA4NzAyMjBiNjY3MDBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC0xMzAsNyAr
MTMwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnRTdXNwZW5zaW9u
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBl
bmRTdXNwZW5zaW9uKCk7CiAKLSAgICBTV1NlcnZlclJlZ2lzdHJhdGlvbiogZ2V0UmVnaXN0cmF0
aW9uKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogZ2V0UmVnaXN0cmF0aW9uKGNvbnN0IFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25LZXkmKTsKICAgICB2b2lkIGFkZFJlZ2lzdHJhdGlvbihzdGQ6OnVu
aXF1ZV9wdHI8U1dTZXJ2ZXJSZWdpc3RyYXRpb24+JiYpOwogICAgIHZvaWQgcmVtb3ZlUmVnaXN0
cmF0aW9uKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBWZWN0b3I8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+IGdldFJlZ2lzdHJh
dGlvbnMoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xp
ZW50VVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCmluZGV4IGRjYWY1YThhNzEwZjc5NDQ2NDdkZTNj
ZDVlOTgwNjM5OWE4ZmQ1MGEuLjRhYzI0NGFlZTY1ZmRjYWYyYWFlMzEyZjY5NzdjODZiN2Q2OGI0
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJKb2JRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcApAQCAtMzUwLDcgKzM1MCw3IEBAIHZvaWQgU1dTZXJ2
ZXJKb2JRdWV1ZTo6cnVuVXBkYXRlSm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2Ip
CiAgICAgLy8gLSBuZXdlc3RXb3JrZXIgaXMgbm90IG51bGwsIGFuZCByZWdpc3RyYXRpb24ncyBs
YXN0IHVwZGF0ZSBjaGVjayB0aW1lIGlzIG5vdCBudWxsIGFuZCB0aGUgdGltZSBkaWZmZXJlbmNl
IGluIHNlY29uZHMgY2FsY3VsYXRlZCBieSB0aGUKICAgICAvLyAgIGN1cnJlbnQgdGltZSBtaW51
cyByZWdpc3RyYXRpb24ncyBsYXN0IHVwZGF0ZSBjaGVjayB0aW1lIGlzIGdyZWF0ZXIgdGhhbiA4
NjQwMC4KICAgICBpZiAocmVnaXN0cmF0aW9uLT51cGRhdGVWaWFDYWNoZSgpICE9IFNlcnZpY2VX
b3JrZXJVcGRhdGVWaWFDYWNoZTo6QWxsCi0gICAgICAgIHx8IChuZXdlc3RXb3JrZXIgJiYgcmVn
aXN0cmF0aW9uLT5sYXN0VXBkYXRlVGltZSgpICYmIChXYWxsVGltZTo6bm93KCkgLSByZWdpc3Ry
YXRpb24tPmxhc3RVcGRhdGVUaW1lKCkpID4gODY0MDBfcykpIHsKKyAgICAgICAgfHwgKG5ld2Vz
dFdvcmtlciAmJiByZWdpc3RyYXRpb24tPmlzU3RhbGUoKSkpIHsKICAgICAgICAgY2FjaGVQb2xp
Y3kgPSBGZXRjaE9wdGlvbnM6OkNhY2hlOjpOb0NhY2hlOwogICAgIH0KICAgICBtX3NlcnZlci5z
dGFydFNjcmlwdEZldGNoKGpvYiwgY2FjaGVQb2xpY3kpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9u
LmNwcAppbmRleCA0ZDFjNTU0ZjQ2MDJhOTU1ZTJlYjEzNDEzZjcyM2NkMGI1MjNiY2Y1Li5iZmJm
MDY1MWQ4ZTBkMTUwZGJlYWQ4NTM4OTYxZjkzMzE1OTU5MThlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0
cmF0aW9uLmNwcApAQCAtMzYyLDYgKzM2MiwyOCBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9u
OjpzZXRJc1VuaW5zdGFsbGluZyhib29sIHZhbHVlKQogICAgIH0KIH0KIAorYm9vbCBTV1NlcnZl
clJlZ2lzdHJhdGlvbjo6c2hvdWxkU29mdFVwZGF0ZShjb25zdCBGZXRjaE9wdGlvbnMmIG9wdGlv
bnMpIGNvbnN0Cit7CisgICAgaWYgKG9wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6
Ok5hdmlnYXRlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBXZWJDb3JlOjpp
c05vblN1YnJlc291cmNlUmVxdWVzdChvcHRpb25zLmRlc3RpbmF0aW9uKSAmJiBpc1N0YWxlKCk7
Cit9CisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNzb2Z0LXVwZGF0
ZQordm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6c29mdFVwZGF0ZSgpCit7CisgICAgYXV0byog
d29ya2VyID0gZ2V0TmV3ZXN0V29ya2VyKCk7CisgICAgaWYgKCF3b3JrZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc2NoZWR1bGUgYW4gdXBkYXRlIGpvYi4K
KyAgICBtX3NlcnZlci5ydW5TZXJ2aWNlV29ya2VySWZOZWNlc3Nhcnkod29ya2VyLT5pZGVudGlm
aWVyKCksIFtzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IHdvcmtlci0+aWRlbnRpZmllcigpXShh
dXRvKiBjb250ZXh0Q29ubmVjdGlvbikgeworICAgICAgICBpZiAoY29udGV4dENvbm5lY3Rpb24p
CisgICAgICAgICAgICBjb250ZXh0Q29ubmVjdGlvbi0+c29mdFVwZGF0ZShzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcik7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRl
eCBhNjlmMjYyNmJhNjI3MDdmOGJlNjgxMDFlZTkyMTY1YWMxYjBkZDZlLi4wMzdlOGZkN2M4NTBk
OWJlYTU3MWFhOGNlOWUwNDRjNzE3MjE3NGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCkBA
IC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TGFzdFVwZGF0ZVRpbWUoV2Fs
bFRpbWUpOwogICAgIFdhbGxUaW1lIGxhc3RVcGRhdGVUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9s
YXN0VXBkYXRlVGltZTsgfQorICAgIGJvb2wgaXNTdGFsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFz
dFVwZGF0ZVRpbWUgJiYgKFdhbGxUaW1lOjpub3coKSAtIG1fbGFzdFVwZGF0ZVRpbWUpID4gODY0
MDBfczsgfQogCiAgICAgdm9pZCBzZXRVcGRhdGVWaWFDYWNoZShTZXJ2aWNlV29ya2VyVXBkYXRl
VmlhQ2FjaGUpOwogICAgIFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZSB1cGRhdGVWaWFDYWNo
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXBkYXRlVmlhQ2FjaGU7IH0KQEAgLTk2LDYgKzk3LDkgQEAg
cHVibGljOgogCiAgICAgdm9pZCBmb3JFYWNoQ29ubmVjdGlvbihjb25zdCBXVEY6OkZ1bmN0aW9u
PHZvaWQoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mKT4mKTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgc2hvdWxkU29mdFVwZGF0ZShjb25zdCBGZXRjaE9wdGlvbnMmKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNvZnRVcGRhdGUoKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGFjdGl2
YXRlKCk7CiAgICAgdm9pZCBoYW5kbGVDbGllbnRVbmxvYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmNwcAppbmRleCAyM2I0ZjgxNWE1MTExYTNhNzhlMzQyNDZhYWNj
NDk5NDVjNGE1NTQxLi5jYTJiOTY0YjdhOTYxNjU1NmUwYzc3ZTc0MTRkYTRiNjZjNWZmMmNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBAIC03MSwxMCArNzEs
MTAgQEAgdm9pZCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnNjcmlwdENvbnRleHRGYWls
ZWRUb1N0YXJ0KGNvbnN0IE9wdGlvbmFsPFNlcnYKICAgICAgICAgd29ya2VyLT5zY3JpcHRDb250
ZXh0RmFpbGVkVG9TdGFydChqb2JEYXRhSWRlbnRpZmllciwgbWVzc2FnZSk7CiB9CiAKLXZvaWQg
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpzY3JpcHRDb250ZXh0U3RhcnRlZChjb25zdCBP
cHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+JiBqb2JEYXRhSWRlbnRpZmll
ciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCit2b2lk
IFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6c2NyaXB0Q29udGV4dFN0YXJ0ZWQoY29uc3Qg
T3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYgam9iRGF0YUlkZW50aWZp
ZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29s
IGRvZXNIYW5kbGVGZXRjaCkKIHsKICAgICBpZiAoYXV0byogd29ya2VyID0gU1dTZXJ2ZXJXb3Jr
ZXI6OmV4aXN0aW5nV29ya2VyRm9ySWRlbnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRpZmllcikp
Ci0gICAgICAgIHdvcmtlci0+c2NyaXB0Q29udGV4dFN0YXJ0ZWQoam9iRGF0YUlkZW50aWZpZXIp
OworICAgICAgICB3b3JrZXItPnNjcmlwdENvbnRleHRTdGFydGVkKGpvYkRhdGFJZGVudGlmaWVy
LCBkb2VzSGFuZGxlRmV0Y2gpOwogfQogICAgIAogdm9pZCBTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb246OmRpZEZpbmlzaEluc3RhbGwoY29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRh
dGFJZGVudGlmaWVyPiYgam9iRGF0YUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAppbmRleCBiNTljNDRkNjYxMTkxODQ2OWRjMDVlN2Vl
YmY1Y2EwZDE0MzY1ZDMyLi4zYzEyMGU4OWZiYTEwNWZhMDlhZWUwOWUyNDI3MWNlMjhmMDc2NGFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTU2LDYgKzU2LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBpbnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQo
Y29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZpcmVJbnN0YWxsRXZlbnQo
U2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmlyZUFjdGl2
YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c29mdFVwZGF0ZShTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCB0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2
NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBPcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YT4mLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpID0gMDsKQEAgLTY1LDcgKzY2LDcgQEAgcHVi
bGljOgogCiAgICAgLy8gTWVzc2FnZXMgYmFjayBmcm9tIHRoZSBTVyBob3N0IHByb2Nlc3MKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KGNvbnN0IE9w
dGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4mLCBTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNjcmlwdENvbnRleHRTdGFydGVkKGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRh
SWRlbnRpZmllcj4mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzY3JpcHRDb250ZXh0U3RhcnRlZChjb25zdCBPcHRpb25hbDxTZXJ2aWNlV29ya2Vy
Sm9iRGF0YUlkZW50aWZpZXI+JiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgZG9lc0hh
bmRsZUZldGNoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEZpbmlzaEluc3RhbGwoY29u
c3QgT3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYsIFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZGlkRmluaXNoQWN0aXZhdGlvbihTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRTZXJ2aWNlV29ya2VySGFzUGVuZGluZ0V2ZW50cyhTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgYm9vbCBoYXNQZW5kaW5nRXZlbnRzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAK
aW5kZXggYmI4Y2IyNDI0Njc2MjBmOTczZTc5MDMwMmJhMDhlZDFlMmFkODU1Yi4uZWUzYjk5ZjEz
Mzc0MTUxZjdmNDE3MzViOWY5ODk4ZmIyMTYzYjVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKQEAgLTEw
OCw4ICsxMDgsOSBAQCB2b2lkIFNXU2VydmVyV29ya2VyOjpzY3JpcHRDb250ZXh0RmFpbGVkVG9T
dGFydChjb25zdCBPcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRAogICAgICAgICBtX3NlcnZlci0+
c2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoam9iRGF0YUlkZW50aWZpZXIsICp0aGlzLCBtZXNz
YWdlKTsKIH0KIAotdm9pZCBTV1NlcnZlcldvcmtlcjo6c2NyaXB0Q29udGV4dFN0YXJ0ZWQoY29u
c3QgT3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYgam9iRGF0YUlkZW50
aWZpZXIpCit2b2lkIFNXU2VydmVyV29ya2VyOjpzY3JpcHRDb250ZXh0U3RhcnRlZChjb25zdCBP
cHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+JiBqb2JEYXRhSWRlbnRpZmll
ciwgYm9vbCBkb2VzSGFuZGxlRmV0Y2gpCiB7CisgICAgbV9zaG91bGRTa2lwSGFuZGxlRmV0Y2gg
PSAhZG9lc0hhbmRsZUZldGNoOwogICAgIEFTU0VSVChtX3NlcnZlcik7CiAgICAgaWYgKG1fc2Vy
dmVyKQogICAgICAgICBtX3NlcnZlci0+c2NyaXB0Q29udGV4dFN0YXJ0ZWQoam9iRGF0YUlkZW50
aWZpZXIsICp0aGlzKTsKQEAgLTI0MCw2ICsyNDEsOSBAQCB2b2lkIFNXU2VydmVyV29ya2VyOjpz
ZXRTdGF0ZShTdGF0ZSBzdGF0ZSkKIHsKICAgICBBU1NFUlQoc3RhdGUgIT0gU3RhdGU6OlJ1bm5p
bmcgfHwgbV9zZXJ2ZXItPmdldFJlZ2lzdHJhdGlvbihtX3JlZ2lzdHJhdGlvbktleSkpOwogICAg
IG1fc3RhdGUgPSBzdGF0ZTsKKworICAgIGlmIChzdGF0ZSA9PSBTdGF0ZTo6UnVubmluZykKKyAg
ICAgICAgbV9zaG91bGRTa2lwSGFuZGxlRmV0Y2ggPSB7IH07CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJXb3JrZXIuaAppbmRleCAyMzE3ZGRjMmEzYzE5MDkwYmM4NjNmNDM3ZDdjMGY2
MTY3MTU1MmEzLi5jOTVmNDE2ZTc1OWNlNjM3MTQ5MmIxZGQyOTlmZTVkZmJlZTRjNGVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29y
a2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
cldvcmtlci5oCkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhhc1BlbmRp
bmdFdmVudHMoYm9vbCk7CiAKICAgICB2b2lkIHNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KGNv
bnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4mLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpOwotICAgIHZvaWQgc2NyaXB0Q29udGV4dFN0YXJ0ZWQoY29uc3QgT3B0aW9u
YWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYpOworICAgIHZvaWQgc2NyaXB0Q29u
dGV4dFN0YXJ0ZWQoY29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVy
PiYsIGJvb2wgZG9lc0hhbmRsZUZldGNoKTsKICAgICB2b2lkIGRpZEZpbmlzaEluc3RhbGwoY29u
c3QgT3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYsIGJvb2wgd2FzU3Vj
Y2Vzc2Z1bCk7CiAgICAgdm9pZCBkaWRGaW5pc2hBY3RpdmF0aW9uKCk7CiAgICAgdm9pZCBjb250
ZXh0VGVybWluYXRlZCgpOwpAQCAtMTEyLDYgKzExMiw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24qIGNvbnRleHRDb25uZWN0aW9uKCk7
CiAgICAgU3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0OwogCisgICAgYm9vbCBzaG91bGRTa2lwRmV0
Y2hFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkU2tpcEhhbmRsZUZldGNoICYmICptX3No
b3VsZFNraXBIYW5kbGVGZXRjaDsgfQorCiBwcml2YXRlOgogICAgIFNXU2VydmVyV29ya2VyKFNX
U2VydmVyJiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcm
IHNjcmlwdCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgU3Ry
aW5nJiYgcmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4m
Jik7CiAKQEAgLTEzMCw2ICsxMzIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1NraXBXYWl0
aW5nRmxhZ1NldCB7IGZhbHNlIH07CiAgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoYm9vbCk+PiBt
X3doZW5BY3RpdmF0ZWRIYW5kbGVyczsKICAgICBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNv
bnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4gbV9zY3JpcHRSZXNvdXJjZU1hcDsKKyAgICBPcHRp
b25hbDxib29sPiBtX3Nob3VsZFNraXBIYW5kbGVGZXRjaDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggOTFm
ZGM3MTU5NzFkN2IxOWNiYjhiNDJjNjQ3ZGIzMGMzYWZlMjljZC4uNmJjYjk5YTEwMGY4NmI2OTlj
NzcxNWQ1YjVmNDRmOGVhZjY4NWZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5jcHAKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
c3RhcnRGZXRjaChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aQogICAg
ICAgICBpZiAoIXdvcmtlci0+Y29udGV4dENvbm5lY3Rpb24oKSkKICAgICAgICAgICAgIG1fbmV0
d29ya1Byb2Nlc3MtPmNyZWF0ZVNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24od29ya2VyLT5yZWdp
c3RyYWJsZURvbWFpbigpLCBzZXJ2ZXIoKS5zZXNzaW9uSUQoKSk7CiAKLSAgICAgICAgc2VydmVy
KCkucnVuU2VydmljZVdvcmtlcklmTmVjZXNzYXJ5KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBb
d2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgdGhpcywgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMg
PSBXVEZNb3ZlKG9wdGlvbnMpLCBmb3JtRGF0YSA9IFdURk1vdmUoZm9ybURhdGEpLCByZWZlcnJl
ciA9IFdURk1vdmUocmVmZXJyZXIpXShhdXRvKiBjb250ZXh0Q29ubmVjdGlvbikgeworICAgICAg
ICBzZXJ2ZXIoKS5ydW5TZXJ2aWNlV29ya2VySWZOZWNlc3Nhcnkoc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB0aGlzLCBmZXRjaElkZW50aWZp
ZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KSwg
b3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyksIGZvcm1EYXRhID0gV1RGTW92ZShmb3JtRGF0YSks
IHJlZmVycmVyID0gV1RGTW92ZShyZWZlcnJlciksIHNob3VsZFNraXBGZXRjaEV2ZW50ID0gd29y
a2VyLT5zaG91bGRTa2lwRmV0Y2hFdmVudCgpXShhdXRvKiBjb250ZXh0Q29ubmVjdGlvbikgewog
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKQEAg
LTE5Nyw2ICsxOTcsMTQgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2go
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgc2VydmkKICAgICAgICAgfSk7CiAg
ICAgfTsKIAorICAgIGlmICh3b3JrZXItPnNob3VsZFNraXBGZXRjaEV2ZW50KCkpIHsKKyAgICAg
ICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVu
dEZldGNoOjpEaWROb3RIYW5kbGUgeyB9LCBmZXRjaElkZW50aWZpZXIpOworICAgICAgICBhdXRv
KiByZWdpc3RyYXRpb24gPSBzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb24od29ya2VyLT5yZWdpc3Ry
YXRpb25LZXkoKSk7CisgICAgICAgIGlmIChyZWdpc3RyYXRpb24gJiYgcmVnaXN0cmF0aW9uLT5z
aG91bGRTb2Z0VXBkYXRlKG9wdGlvbnMpKQorICAgICAgICAgICAgcmVnaXN0cmF0aW9uLT5zb2Z0
VXBkYXRlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAod29ya2VyLT5zdGF0
ZSgpID09IFNlcnZpY2VXb3JrZXJTdGF0ZTo6QWN0aXZhdGluZykgewogICAgICAgICB3b3JrZXIt
PndoZW5BY3RpdmF0ZWQoV1RGTW92ZShydW5TZXJ2ZXJXb3JrZXJBbmRTdGFydEZldGNoKSk7CiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5jcHAKaW5kZXggZTc4MjgyMTMyMWZkMGQ2YjhmMTQ2NGNjNjIwYTQwZmE5MjBi
N2VjNC4uYmZlNDAzZGY1ZWJhMjg5NDY5NzU3YzMwNDgxODE0ZGU2YjVhNzMzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTgw
LDYgKzgwLDExIEBAIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpmaXJlQWN0
aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzCiAgICAgc2VuZChNZXNzYWdlczo6
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkZpcmVBY3RpdmF0ZUV2ZW50KHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKSk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjpzb2Z0VXBkYXRlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjpTb2Z0VXBkYXRlKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSk7Cit9CisKIHZvaWQgV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtl
cklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCiB7CiAgICAgc2VuZChNZXNzYWdl
czo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlRlcm1pbmF0ZVdvcmtlcihzZXJ2aWNl
V29ya2VySWRlbnRpZmllcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5oCmluZGV4IGRjOTVlZmE4YzRlZmUzYzdmYzU1YmU5MTU0MWEyMTY4MDNl
ZjJkYzguLjkwYTA3ZWEyNGJiYWQzMzc1NjdhNGJlYTM3MjI1ZjM4MjIxMWFhNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTg2LDYg
Kzg2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluc3RhbGxTZXJ2aWNlV29ya2VyQ29udGV4dChj
b25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6OlNlc3Npb25JRCwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpIGZpbmFsOwogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVu
dChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBmaXJl
QWN0aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7Cisg
ICAgdm9pZCBzb2Z0VXBkYXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5h
bDsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllcikgZmluYWw7CiAgICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZp
ZXJDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYsIGJvb2wgaGFzU2VjdXJpdHlFcnJvcikg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCA2OGY5NWVhNzgwMmQ2N2IyNDNhMTFlNjNhY2Uz
NzFlMGRmNThjNmI5Li45OTQ5ZTNkNDM1ZjI0N2I1MGJmZDQ0NGQ1MDZkZTJhOTUyN2RjNTJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI2LDcgKzI2LDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uIHsKICAgICAjIFdoZW4gcG9zc2libGUsIHRoZXNlIG1lc3Nh
Z2VzIGNhbiBiZSBpbXBsZW1lbnRlZCBkaXJlY3RseSBieSBXZWJDb3JlOjpTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24KIAogICAgIFNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KE9wdGlvbmFs
PFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4gam9iRGF0YUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBTdHJpbmcgbWVzc2FnZSk7Ci0gICAgU2NyaXB0Q29udGV4dFN0YXJ0ZWQoT3B0aW9uYWw8
V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiBqb2JEYXRhSWRlbnRpZmll
ciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIpOworICAgIFNjcmlwdENvbnRleHRTdGFydGVkKE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJKb2JEYXRhSWRlbnRpZmllcj4gam9iRGF0YUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIGRvZXNIYW5k
bGVGZXRjaCk7CiAgICAgRGlkRmluaXNoSW5zdGFsbChPcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCB3YXNTdWNj
ZXNzZnVsKTsKICAgICBEaWRGaW5pc2hBY3RpdmF0aW9uKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpOwogICAgIFNldFNlcnZpY2VXb3JrZXJIYXNQZW5kaW5nRXZl
bnRzKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgaGFz
UGVuZGluZ0V2ZW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXgg
MTg4YWRiMDk1OTJmOTIyYTEwMWYyZjM3M2U5MDM5OTY3YjE5YTJkYy4uOTIzZGI4MDI4ZGE3YjNk
ZmIyYTk5NGVkNWE5MTYxMTdmYzUyNDhhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmNwcApAQCAtMTc1LDEyICsxNzUsMTQgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6cmVtb3ZlRnJhbWVMb2FkZXJDbGllbnQoU2VydmljZVdvcmtlckZyYW1lTG8KICAg
ICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0KTsKIH0KIAotdm9pZCBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6c2VydmljZVdvcmtlclN0YXJ0ZWRXaXRoTWVzc2FnZShPcHRpb25h
bDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyLCBTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBleGNlcHRpb25NZXNzYWdlKQordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6
c2VydmljZVdvcmtlclN0YXJ0ZWQoT3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlm
aWVyPiBqb2JEYXRhSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGJvb2wgZG9lc0hhbmRsZUZldGNoKQogewotICAgIGlmIChleGNlcHRp
b25NZXNzYWdlLmlzRW1wdHkoKSkKLSAgICAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpTY3JpcHRD
b250ZXh0U3RhcnRlZChqb2JEYXRhSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIp
LCAwKTsKLSAgICBlbHNlCi0gICAgICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6U2NyaXB0Q29udGV4
dEZhaWxlZFRvU3RhcnQoam9iRGF0YUlkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBleGNlcHRpb25NZXNzYWdlKSwgMCk7CisgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpTY3JpcHRD
b250ZXh0U3RhcnRlZCB7IGpvYkRhdGFJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgZG9lc0hhbmRsZUZldGNoIH0sIDApOworfQorCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uOjpzZXJ2aWNlV29ya2VyRmFpbGVkVG9TdGFydChPcHRpb25hbDxTZXJ2aWNlV29y
a2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25N
ZXNzYWdlKQoreworICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6U2NyaXB0Q29udGV4dEZhaWxlZFRv
U3RhcnQgeyBqb2JEYXRhSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGV4Y2Vw
dGlvbk1lc3NhZ2UgfSwgMCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkRmV0Y2go
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBGZXRjaE9wdGlvbnMmIG9wdGlv
bnMsIGNvbnN0IFVSTCYgc2VydmljZVdvcmtlclVSTCwgY29uc3QgU3RyaW5nJiByZWZlcnJlcikK
QEAgLTI2MSw2ICsyNjMsMTEgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6
ZmlyZUFjdGl2YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWQKICAgICBTV0NvbnRl
eHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5maXJlQWN0aXZhdGVFdmVudChpZGVudGlmaWVyKTsKIH0K
IAordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c29mdFVwZGF0ZShXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFNXQ29udGV4dE1h
bmFnZXI6OnNpbmdsZXRvbigpLnNvZnRVcGRhdGUoaWRlbnRpZmllcik7Cit9CisKIHZvaWQgV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnRlcm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRv
bigpLnRlcm1pbmF0ZVdvcmtlcihpZGVudGlmaWVyLCBhc3luY1dvcmtlclRlcm1pbmF0aW9uVGlt
ZW91dCwgbnVsbHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAppbmRleCBmYmI2
MzBlNGUxOWIzNTlkYzE3MGNjZWEwMThhNDk4MzIxNjZkYWZlLi43YmMxMWQwMzYxOWY5OWIzNWNm
NjU2ZWU4MTAzZWRlZmZiODQ0Njg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgK
QEAgLTc2LDcgKzc2LDggQEAgcHJpdmF0ZToKICAgICBib29sIGlzVGhyb3R0bGVhYmxlKCkgY29u
c3QgZmluYWw7CiAKICAgICAvLyBJUEMgbWVzc2FnZXMuCi0gICAgdm9pZCBzZXJ2aWNlV29ya2Vy
U3RhcnRlZFdpdGhNZXNzYWdlKE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRh
SWRlbnRpZmllcj4sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGV4Y2VwdGlvbk1lc3NhZ2UpIGZpbmFsOworICAgIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0
ZWQoT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgZG9lc0hhbmRsZUZldGNoKSBmaW5h
bDsKKyAgICB2b2lkIHNlcnZpY2VXb3JrZXJGYWlsZWRUb1N0YXJ0KE9wdGlvbmFsPFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpIGZpbmFsOwogICAgIHZv
aWQgaW5zdGFsbFNlcnZpY2VXb3JrZXIoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRl
eHREYXRhJiwgUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCk7CiAgICAgdm9pZCBz
dGFydEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSYmLCBTdHJpbmcmJiByZWZlcnJlcik7CiAgICAgdm9pZCBjYW5jZWxGZXRj
aChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKQEAgLTg0LDYgKzg1
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xp
ZW50RGF0YSYmIHNvdXJjZURhdGEpOwogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgdm9pZCBzb2Z0VXBkYXRlKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtl
cihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBzeW5jVGVybWlu
YXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBNZXNzYWdlczo6V2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN5bmNUZXJtaW5hdGVXb3JrZXI6OkRlbGF5ZWRS
ZXBseSYmKTsKICAgICB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0
X3QgcmVxdWVzdElkZW50aWZpZXIsIE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGll
bnREYXRhPiYmLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBlMTViMDJmNjFkMjY0NmZjMWNiMWVj
NzBmOTA2ZmEzYzY3Y2RkOGQyLi5kZjdlYWJiMTllMjA1ZjVjYzVhNTRhYmM1ZDA3NWE3NGY2MTJi
NjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bgpAQCAtMzAsNiArMzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbiB7CiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVz
c2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xp
ZW50RGF0YSBzb3VyY2VEYXRhKQogICAgIEZpcmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBGaXJlQWN0aXZhdGVFdmVudChXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIFNvZnRVcGRhdGUo
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBUZXJtaW5h
dGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKICAg
ICBTeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgRmluZENsaWVudEJ5SWRlbnRpZmllckNv
bXBsZXRlZCh1aW50NjRfdCBjbGllbnRJZFJlcXVlc3RJZGVudGlmaWVyLCBPcHRpb25hbDxXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gZGF0YSwgYm9vbCBoYXNTZWN1cml0eUVycm9y
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDRlYTUwNDY1MzFhMGMyNzdkNTI1YzljZDIzMjkzNjY5MTI2ZDMxN2UuLmM0MGEx
NGUwODcwM2MyNzFkNGVlZDU5MWE3YWZlMGZiZjZiNTY3MDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAxOS0wOC0yOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgU2tpcCBmZXRjaCBldmVudCBkaXNwYXRjaGluZyBpZiBubyBmZXRjaCBldmVudCBoYW5kbGVy
IGlzIGFkZGVkIGF0IHNjcmlwdCBldmFsdWF0aW9uIHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTE3NAorCisgICAgICAgIFJldmlld2VkIGJ5
IENocmlzIER1bWV6LgorCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NraXBG
ZXRjaEV2ZW50LXdvcmtlci5qczogQWRkZWQuCisgICAgICAgIChhc3luYy5kb1Rlc3QpOgorICAg
ICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9za2lwRmV0Y2hFdmVudC5odHRwcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9za2lw
RmV0Y2hFdmVudC5odHRwcy5odG1sOiBBZGRlZC4KKwogMjAxOS0wOC0yOCAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIHRhYkluZGV4IElETCBhdHRyaWJ1
dGUgcmVmbGVjdCBpdHMgY29udGVudCBhdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9za2lwRmV0Y2hFdmVudC13b3JrZXIuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2tpcEZldGNoRXZlbnQtd29ya2VyLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBjZjk3ZmUyM2Y4Y2NhMDYyMTIyMzJlZWY5OWVlYTY3NTc3MTU2MjEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2tp
cEZldGNoRXZlbnQtd29ya2VyLmpzCkBAIC0wLDAgKzEsMTggQEAKK2FzeW5jIGZ1bmN0aW9uIGRv
VGVzdChldmVudCkKK3sKKyAgICBpZiAoZXZlbnQuZGF0YSA9PT0gIlNFVC1GRVRDSCIpIHsKKyAg
ICAgICAgc2VsZi5yZWNlaXZlZEZldGNoID0gMDsKKyAgICAgICAgc2VsZi5hZGRFdmVudExpc3Rl
bmVyKCJmZXRjaCIsIChldmVudCkgPT4geworICAgICAgICAgICAgc2VsZi5yZWNlaXZlZEZldGNo
Kys7CisgICAgICAgIH0pOworICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIk9LIik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJHRVQtRkVU
Q0giKSB7CisgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShzZWxmLnJlY2VpdmVkRmV0
Y2gpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2Fn
ZSgiS08iKTsKK30KKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZG9UZXN0KTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9za2lwRmV0
Y2hFdmVudC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvc2tpcEZldGNoRXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRm
NzY0YzAyMjUzMzI0YzQ0ZGQwZDdjM2RhYTFkZWUxNTBlZDA1MzcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2tpcEZldGNoRXZlbnQuaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCisKK1BBU1MgU2V0dXAgd29ya2VyIAor
UEFTUyBTZXR1cCBmZXRjaCBldmVudCBhZnRlciBzY3JpcHQgaXMgcnVuIAorUEFTUyBGZXRjaCBl
dmVudCBzaG91bGQgYmUgc2tpcHBlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL3NraXBGZXRjaEV2ZW50Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2tpcEZldGNoRXZlbnQuaHR0cHMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zOTUyMTY1N2M3OTJjYjRmOWE3NDFhNjI3OTIwYzRmOWMyZGE3YzNiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NraXBGZXRj
aEV2ZW50Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy90ZXN0LWhlbHBlcnMu
c3ViLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3ZhciBzY29wZSA9
ICJ0ZXN0IjsKK3ZhciBhY3RpdmVXb3JrZXI7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkg
PT4geworICAgIHZhciByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5yZWdpc3Rlcigic2tpcEZldGNoRXZlbnQtd29ya2VyLmpzIiwgeyBzY29wZSA6IHNjb3BlIH0p
OworICAgIGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5hY3RpdmU7CisgICAgaWYgKGFjdGl2
ZVdvcmtlcikKKyAgICAgICAgcmV0dXJuOworICAgIGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nOworICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAg
ICAgYWN0aXZlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywgKCkgPT4gewor
ICAgICAgICAgICAgaWYgKGFjdGl2ZVdvcmtlci5zdGF0ZSA9PT0gImFjdGl2YXRlZCIpCisgICAg
ICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30sICJTZXR1cCB3
b3JrZXIiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgdmFyIHByb21p
c2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQpID0+IHsK
KyAgICAgICAgICAgIHJlc29sdmUoZXZlbnQuZGF0YSk7CisgICAgICAgIH0pOworICAgIH0pOwor
CisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJTRVQtRkVUQ0giKTsKKyAgICB2YXIgcmVz
dWx0ID0gYXdhaXQgcHJvbWlzZTsKKworICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LCAiT0siKTsK
K30sICJTZXR1cCBmZXRjaCBldmVudCBhZnRlciBzY3JpcHQgaXMgcnVuIik7CisKK3Byb21pc2Vf
dGVzdChhc3luYyAodGVzdCkgPT4geworICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoKHJl
c29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRF
dmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICByZXNvbHZl
KGV2ZW50LmRhdGEpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGNvbnN0IGlmcmFtZSA9
IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlKTsKKworICAgIGFzc2VydF90cnVlKCEhaWZyYW1lLmNv
bnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcik7CisKKyAgICBh
Y3RpdmVXb3JrZXIucG9zdE1lc3NhZ2UoIkdFVC1GRVRDSCIpOworICAgIHZhciByZXN1bHQgPSBh
d2FpdCBwcm9taXNlOworCisgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsIDApOworfSwgIkZldGNo
IGV2ZW50IHNob3VsZCBiZSBza2lwcGVkIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377588</attachid>
            <date>2019-08-29 08:24:14 -0700</date>
            <delta_ts>2019-08-29 12:24:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-201174-20190829172412.patch</filename>
            <type>text/plain</type>
            <size>43105</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGIxODEyY2VkMjI4MDI2
NGI2NTEwOWNjODY0ZDM2NjAyZjI3MzRjNS4uNTJhMTNjODU1NDlhZWY5N2ExMmRhYmQ1MzQ0MjM5
MWZmYjY4MDdkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE5LTA4LTI5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTa2lwIGZldGNoIGV2ZW50
IGRpc3BhdGNoaW5nIGlmIG5vIGZldGNoIGV2ZW50IGhhbmRsZXIgaXMgYWRkZWQgYXQgc2NyaXB0
IGV2YWx1YXRpb24gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAxMTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAg
ICAgICAgQXQgZW5kIG9mIHdvcmtlciBzY3JpcHQgZXZhbHVhdGlvbiwgc3RvcmUgd2hldGhlciBh
IGZldGNoIGV2ZW50IGhhbmRsZXIgaXMgcmVnaXN0ZXJlZC4KKyAgICAgICAgU2VuZCBpdCBiYWNr
IHRvIHRoZSBTV1NlcnZlciB0aGF0IHdpbGwgc3RvcmUgaXQgaW4gdGhlIGNvcnJlc3BvbmRpbmcg
U1dTZXJ2ZXJXb3JrZXIuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNvZnQgdXBkYXRlIGRp
cmVjdGx5IGZyb20gdGhlIHJlZ2lzdHJhdGlvbi4KKyAgICAgICAgVGhpcyB3aWxsIHRyaWdnZXIg
YSBzb2Z0LXVwZGF0ZSBmcm9tIHRoZSB3b3JrZXIgY29udGV4dCBpdHNlbGYuCisgICAgICAgIElu
IHRoZW9yeSwgdGhpcyBzaG91bGQgYmUgc3RhcnRlZCBieSB0aGUgam9iIHF1ZXVlIGJ1dCB3ZSBk
byBub3QgaGF2ZSBhIHdheSB5ZXQgdG8gaW1wbGVtZW50IHRoaXMgYXMgcGVyIHNwZWMuCisKKyAg
ICAgICAgVGVzdDogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NraXBGZXRjaEV2ZW50Lmh0dHBz
Lmh0bWwKKworICAgICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmg6CisgICAg
ICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6Ondv
cmtlclRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlclRocmVhZDo6ZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OnJlZ2lzdGVyU2VydmljZVdvcmtlclRocmVh
ZEZvckluc3RhbGwpOgorICAgICAgICAoV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6c3RhcnRl
ZFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6c29m
dFVwZGF0ZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFu
YWdlci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6cG9zdEZl
dGNoVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpzb2Z0VXBk
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OmZpbmlzaGVkRXZh
bHVhdGluZ1NjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpz
dGFydCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZC5oOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6ZG9lc0hhbmRs
ZUZldGNoIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkU29m
dFVwZGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6
c29mdFVwZGF0ZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJl
Z2lzdHJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246Omlz
U3RhbGUgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbjo6Z2VuZXJhdGVDb25uZWN0aW9uSWRlbnRpZmllcik6CisgICAgICAgIChX
ZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246
OnNjcmlwdENvbnRleHRTdGFydGVkKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJX
b3JrZXI6OnNjcmlwdENvbnRleHRTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
V29ya2VyOjpzZXRTdGF0ZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlcldvcmtlci5oOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OnNob3VsZFNr
aXBGZXRjaEV2ZW50IGNvbnN0KToKKwogMjAxOS0wOC0yOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgZG9jdW1lbnQuZm9udHMucmVhZHkgaXMgcmVzb2x2ZWQg
dG9vIHF1aWNrbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggN2Y1Zjk1MGVmOWZjODkzM2M1MGE2ZTE4ZDBlMTMzOTgy
NTM3NzhlOC4uZWExNzQ0M2M4OTM2ZDQ4OTRjM2MwOWI5NWUxNThhNDliZTYxNmM0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyOCBAQAorMjAxOS0wOC0yOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CisKKyAgICAgICAgU2tpcCBmZXRjaCBldmVudCBkaXNwYXRjaGluZyBpZiBubyBm
ZXRjaCBldmVudCBoYW5kbGVyIGlzIGFkZGVkIGF0IHNjcmlwdCBldmFsdWF0aW9uIHRpbWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTE3NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFN0b3JlIHdoZXRoZXIg
YSBmZXRjaCBldmVudCBoYW5kbGVyIGlzIHNldCBhdCBzY3JpcHQgZXZhbHVhdGlvbiB0aW1lLgor
ICAgICAgICBJZiBub3QsIHdlIHNraXAgdGhlIGZldGNoIGV2ZW50IGVudGlyZWx5IHNvIHRoYXQg
dGhlIG5ldHdvcmsgbG9hZCBjYW4gc3RhcnQgc29vbmVyLgorICAgICAgICBJZiBmZXRjaCBldmVu
dCBpcyBza2lwcGVkLCB3ZSB0cmlnZ2VyIHNvZnQgdXBkYXRlLCBhcyBkZWZpbmVkIGluCisgICAg
ICAgIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNoYW5kbGUtZmV0Y2ggc3Rl
cCAxNi4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpzdGFydEZldGNoKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6c29mdFVwZGF0ZSk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2VydmljZVdvcmtlclN0YXJ0ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2VydmljZVdvcmtlckZh
aWxlZFRvU3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6c29mdFVwZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorCiAyMDE5LTA4LTI4ICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbG9hZGlu
ZyBhIHdlYiB2aWV3IHdpdGggYSBmaXhlZC13aWR0aCB2aWV3cG9ydCBhbmQgdmFyaWFibGUgY29u
dGVudCB3aWR0aCByZXN0b3JlcyB0aGUgcHJldmlvdXMgcGFnZSBzY2FsZSwgc2hvdWxkbid0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaAppbmRleCBm
MWM5NjI0YjE4YWMxODkzMjk4ODQ2MzM5NjE2MzUyY2FjMGM3ZGQ3Li43ZTY3MzAxZjQ0YzA5YWMx
NDg1MzYzNzcxODNlYTg0MWUwOGRjMWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
RGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgfkRlZGljYXRlZFdvcmtlclRocmVhZCgpOwogCiAgICAgV29ya2VyT2JqZWN0UHJveHkm
IHdvcmtlck9iamVjdFByb3h5KCkgY29uc3QgeyByZXR1cm4gbV93b3JrZXJPYmplY3RQcm94eTsg
fQorICAgIHZvaWQgc3RhcnQoKSB7IFdvcmtlclRocmVhZDo6c3RhcnQobnVsbHB0cik7IH0KIAog
cHJvdGVjdGVkOgogICAgIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFs
U2NvcGUoY29uc3QgVVJMJiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJv
b2wgaXNPbmxpbmUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYs
IGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFBBTDo6
U2Vzc2lvbklEKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggNGU5ZjUxOWFlZmVkZDI1Zjg4M2Y2M2FjYTBhNDc4OWZm
MDI3ZTRiOS4uMWU0ZDdkYmQ3MTUzY2ZhM2NhZjY2MGZjMDk4MDVlNTYzN2QxMTQ2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTkx
LDcgKzkxLDcgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxT
Y29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3QKICAgICBhdXRvIHRocmVhZCA9IERl
ZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHNjcmlwdFVSTCwgbmFtZSwgaWRlbnRpZmllciwg
dXNlckFnZW50LCBpc09ubGluZSwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCAqdGhpcywgc3Rh
cnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgZG9jdW1lbnQudG9wT3JpZ2luKCksIHRp
bWVPcmlnaW4sIHByb3h5LCBzb2NrZXRQcm92aWRlciwgcnVudGltZUZsYWdzLCBzZXNzaW9uSUQp
OwogCiAgICAgd29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQuZ2V0KCkpOwotICAgIHRocmVhZC0+
c3RhcnQobnVsbHB0cik7CisgICAgdGhyZWFkLT5zdGFydCgpOwogCiAgICAgbV9pbnNwZWN0b3JQ
cm94eS0+d29ya2VyU3RhcnRlZChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuZ2V0KCksIHRocmVh
ZC5wdHIoKSwgc2NyaXB0VVJMKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcAppbmRleCAzYzM4NThiZGE5YjQ0YjU3ZmFkYjM5ZWZhMmUwYTBmM2EzMDQxMThjLi42ODlk
MzljYWVhYmZmNjA2NjhlNGQyMzQ5ZDEwZTVkNmM5YTUxMTIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0xOTMsNiArMTkzLDggQEAgdm9pZCBXb3JrZXJUaHJl
YWQ6OndvcmtlclRocmVhZCgpCiAgICAgU3RyaW5nIGV4Y2VwdGlvbk1lc3NhZ2U7CiAgICAgc2Ny
aXB0Q29udHJvbGxlci0+ZXZhbHVhdGUoU2NyaXB0U291cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5t
X3NvdXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5tX3NjcmlwdFVSTCkpLCAmZXhjZXB0aW9u
TWVzc2FnZSk7CiAKKyAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKKwogICAgIGNhbGxP
bk1haW5UaHJlYWQoW2V2YWx1YXRlQ2FsbGJhY2sgPSBXVEZNb3ZlKG1fZXZhbHVhdGVDYWxsYmFj
ayksIG1lc3NhZ2UgPSBleGNlcHRpb25NZXNzYWdlLmlzb2xhdGVkQ29weSgpXSB7CiAgICAgICAg
IGlmIChldmFsdWF0ZUNhbGxiYWNrKQogICAgICAgICAgICAgZXZhbHVhdGVDYWxsYmFjayhtZXNz
YWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCmluZGV4IDA5NTVkZmVlZjE4
YmYyZWMzNDFjODBlZmY0NDVkNTY2MWM0Y2JjMDMuLjMzNTY0M2I5ODQ3YTYwMWFkYjY1ZjRkYTJm
NTQ4ZmY5Yjc3MTFmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaApAQCAt
NjUsNyArNjUsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEhhc2hTZXQ8V29ya2VyVGhyZWFkKj4m
IHdvcmtlclRocmVhZHMoY29uc3QgTG9ja0hvbGRlciYpOwogICAgIHN0YXRpYyBMb2NrJiB3b3Jr
ZXJUaHJlYWRzTXV0ZXgoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoV1RGOjpG
dW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIGV2YWx1YXRlQ2FsbGJhY2spOwogICAgIHZv
aWQgc3RvcChXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiB0ZXJtaW5hdGVkQ2FsbGJhY2spOwogCiAg
ICAgVGhyZWFkKiB0aHJlYWQoKSBjb25zdCB7IHJldHVybiBtX3RocmVhZC5nZXQoKTsgfQpAQCAt
MTA0LDEwICsxMDMsMTQgQEAgcHJvdGVjdGVkOgogICAgIElEQkNsaWVudDo6SURCQ29ubmVjdGlv
blByb3h5KiBpZGJDb25uZWN0aW9uUHJveHkoKTsKICAgICBTb2NrZXRQcm92aWRlciogc29ja2V0
UHJvdmlkZXIoKTsKIAorICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcm
KT4mJiBldmFsdWF0ZUNhbGxiYWNrKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHdvcmtlclRocmVh
ZCgpOwogICAgIHZpcnR1YWwgYm9vbCBpc1NlcnZpY2VXb3JrZXJUaHJlYWQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCB2b2lkIGZpbmlzaGVkRXZhbHVhdGluZ1Njcmlw
dCgpIHsgfQorCiAgICAgUmVmUHRyPFRocmVhZD4gbV90aHJlYWQ7CiAgICAgU3RyaW5nIG1faWRl
bnRpZmllcjsKICAgICBXb3JrZXJSdW5Mb29wIG1fcnVuTG9vcDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5j
cHAKaW5kZXggY2I1YzIyMWZjOTQ4OGQ3YzAwNzI5ODNhMTU3ODk1ZGNhOGM2Y2VjNi4uNzc0ZjM4
NWYxOGFiYmE4MTI4OGI3OTE0YWM5YzkxZWIyNTE0NGYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5j
cHAKQEAgLTU5LDE2ICs1OSwyMCBAQCB2b2lkIFNXQ29udGV4dE1hbmFnZXI6OnJlZ2lzdGVyU2Vy
dmljZVdvcmtlclRocmVhZEZvckluc3RhbGwoUmVmPFNlcnZpY2VXb3JrZXJUaAogICAgIGF1dG8g
cmVzdWx0ID0gbV93b3JrZXJNYXAuYWRkKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXVEZNb3Zl
KHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkpOwogICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCBy
ZXN1bHQuaXNOZXdFbnRyeSk7CiAgICAgCi0gICAgdGhyZWFkUHJveHktPnRocmVhZCgpLnN0YXJ0
KFtqb2JEYXRhSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXJdKGNvbnN0IFN0cmlu
ZyYgZXhjZXB0aW9uTWVzc2FnZSkgewotICAgICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0
b24oKS5zdGFydGVkU2VydmljZVdvcmtlcihqb2JEYXRhSWRlbnRpZmllciwgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIGV4Y2VwdGlvbk1lc3NhZ2UpOworICAgIHRocmVhZFByb3h5LT50aHJlYWQo
KS5zdGFydChbam9iRGF0YUlkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyXShjb25z
dCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UsIGJvb2wgZG9lc0hhbmRsZUZldGNoKSB7CisgICAg
ICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnN0YXJ0ZWRTZXJ2aWNlV29ya2VyKGpv
YkRhdGFJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZXhjZXB0aW9uTWVzc2Fn
ZSwgZG9lc0hhbmRsZUZldGNoKTsKICAgICB9KTsKIH0KIAotdm9pZCBTV0NvbnRleHRNYW5hZ2Vy
OjpzdGFydGVkU2VydmljZVdvcmtlcihPcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50
aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKQordm9pZCBT
V0NvbnRleHRNYW5hZ2VyOjpzdGFydGVkU2VydmljZVdvcmtlcihPcHRpb25hbDxTZXJ2aWNlV29y
a2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25N
ZXNzYWdlLCBib29sIGRvZXNIYW5kbGVGZXRjaCkKIHsKLSAgICBjb25uZWN0aW9uKCktPnNlcnZp
Y2VXb3JrZXJTdGFydGVkV2l0aE1lc3NhZ2Uoam9iRGF0YUlkZW50aWZpZXIsIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBleGNlcHRpb25NZXNzYWdlKTsKICAgICBpZiAobV9zZXJ2aWNlV29ya2Vy
Q3JlYXRpb25DYWxsYmFjaykKICAgICAgICAgbV9zZXJ2aWNlV29ya2VyQ3JlYXRpb25DYWxsYmFj
ayhzZXJ2aWNlV29ya2VySWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICBpZiAoIWV4Y2VwdGlv
bk1lc3NhZ2UuaXNFbXB0eSgpKSB7CisgICAgICAgIGNvbm5lY3Rpb24oKS0+c2VydmljZVdvcmtl
ckZhaWxlZFRvU3RhcnQoam9iRGF0YUlkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBleGNlcHRpb25NZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjb25uZWN0
aW9uKCktPnNlcnZpY2VXb3JrZXJTdGFydGVkKGpvYkRhdGFJZGVudGlmaWVyLCBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgZG9lc0hhbmRsZUZldGNoKTsKIH0KIAogU2VydmljZVdvcmtlclRocmVh
ZFByb3h5KiBTV0NvbnRleHRNYW5hZ2VyOjpzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikgY29uc3QKQEAgLTEwNCw2ICsxMDgsMTUgQEAg
dm9pZCBTV0NvbnRleHRNYW5hZ2VyOjpmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBpZGVudGlmaWVyKQogICAgIHNlcnZpY2VXb3JrZXItPnRocmVhZCgpLmZpcmVBY3Rp
dmF0ZUV2ZW50KCk7CiB9CiAKK3ZvaWQgU1dDb250ZXh0TWFuYWdlcjo6c29mdFVwZGF0ZShTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8qIHNlcnZpY2VXb3Jr
ZXIgPSBtX3dvcmtlck1hcC5nZXQoaWRlbnRpZmllcik7CisgICAgaWYgKCFzZXJ2aWNlV29ya2Vy
KQorICAgICAgICByZXR1cm47CisKKyAgICBzZXJ2aWNlV29ya2VyLT50aHJlYWQoKS5zb2Z0VXBk
YXRlKCk7Cit9CisKIHZvaWQgU1dDb250ZXh0TWFuYWdlcjo6dGVybWluYXRlV29ya2VyKFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNlY29uZHMgdGltZW91dCwgRnVuY3Rpb248
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gc2VydmljZVdvcmtlciA9
IG1fd29ya2VyTWFwLnRha2UoaWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKaW5kZXggNzg3
YWQ5NGQ4MjU0MDU2MjlmNTE2OGY5OWExNWEwY2MzNWU0ZTBmYS4uZmUwYzA4NDkyYzM1MjE3YTIz
NmUyMzJjMDZiYzVhYjYzNjc4ODZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaApAQCAtNTAsNyArNTAs
OCBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkNvbm5lY3Rpb24oKSB7IH0KIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgTWVzc2Fn
ZVdpdGhNZXNzYWdlUG9ydHMmJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlLCBjb25z
dCBTdHJpbmcmIHNvdXJjZU9yaWdpbikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2Vydmlj
ZVdvcmtlclN0YXJ0ZWRXaXRoTWVzc2FnZShPcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlk
ZW50aWZpZXI+LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRp
b25NZXNzYWdlKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXJ2aWNlV29ya2VyU3RhcnRl
ZChPcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+LCBTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgYm9vbCBkb2VzSGFuZGxlRmV0Y2gpID0gMDsKKyAgICAgICAgdmlydHVhbCB2
b2lkIHNlcnZpY2VXb3JrZXJGYWlsZWRUb1N0YXJ0KE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JE
YXRhSWRlbnRpZmllcj4sIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaEluc3RhbGwoT3B0aW9u
YWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiwgU2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoQWN0aXZhdGlvbihTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgc2V0U2VydmljZVdvcmtlckhhc1BlbmRpbmdFdmVudHMoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIGJvb2wpID0gMDsKQEAgLTc0LDYgKzc1LDcgQEAgcHVibGljOgogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgZGVzdGluYXRpb24sIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFNlcnZpY2VX
b3JrZXJPckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGZpcmVJbnN0YWxsRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc29mdFVwZGF0ZShTZXJ2aWNlV29ya2VySWRlbnRpZmll
cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtl
cklkZW50aWZpZXIsIFNlY29uZHMgdGltZW91dCwgRnVuY3Rpb248dm9pZCgpPiYmKTsKIAogICAg
IHZvaWQgZm9yRWFjaFNlcnZpY2VXb3JrZXJUaHJlYWQoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lk
KFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSYpPiYpOwpAQCAtODgsNyArOTAsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIFNXQ29udGV4dE1hbmFnZXIoKSA9IGRlZmF1bHQ7CiAKLSAgICB2b2lk
IHN0YXJ0ZWRTZXJ2aWNlV29ya2VyKE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRp
Zmllcj4sIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1l
c3NhZ2UpOworICAgIHZvaWQgc3RhcnRlZFNlcnZpY2VXb3JrZXIoT3B0aW9uYWw8U2VydmljZVdv
cmtlckpvYkRhdGFJZGVudGlmaWVyPiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgZXhjZXB0aW9uTWVzc2FnZSwgYm9vbCBkb2VzSGFuZGxlRmV0Y2gpOwogICAgIE5PX1JF
VFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBzZXJ2aWNlV29ya2VyRmFpbGVkVG9UZXJtaW5hdGUoU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpOwogCiAgICAgSGFzaE1hcDxTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgUmVmUHRyPFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eT4+IG1fd29ya2VyTWFwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCAwODY2MDY3MGEzOGZjYmNiYjI3MjgwMjc3MjBh
NzFjZDY5YTg0MjI2Li45YzNmMDQ0YzQyMDI4N2YwZjZkYmYzNTA0NDUyYTNmYzE0OTgwZTBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtMTg0LDYgKzE4NCwyOSBAQCB2b2lkIFNl
cnZpY2VXb3JrZXJUaHJlYWQ6OmZpcmVBY3RpdmF0ZUV2ZW50KCkKICAgICBydW5Mb29wKCkucG9z
dFRhc2soV1RGTW92ZSh0YXNrKSk7CiB9CiAKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6c29m
dFVwZGF0ZSgpCit7CisgICAgcnVuTG9vcCgpLnBvc3RUYXNrKFtdKGF1dG8mIGNvbnRleHQpIG11
dGFibGUgeworICAgICAgICBhdXRvJiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2Fz
dDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpOworICAgICAgICBzZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUucmVnaXN0cmF0aW9uKCkuc2NoZWR1bGVTb2Z0VXBkYXRlKCk7CisgICAg
fSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6ZmluaXNoZWRFdmFsdWF0aW5nU2Ny
aXB0KCkKK3sKKyAgICBtX2RvZXNIYW5kbGVGZXRjaCA9IHdvcmtlckdsb2JhbFNjb3BlKCktPmhh
c0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5mZXRjaEV2ZW50KTsKK30KKwordm9pZCBTZXJ2
aWNlV29ya2VyVGhyZWFkOjpzdGFydChGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYsIGJvb2wp
PiYmIGNhbGxiYWNrKQoreworICAgIFdvcmtlclRocmVhZDo6c3RhcnQoW2NhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyID0gdGhpcy0+aWRlbnRpZmll
cigpXShhdXRvJiBlcnJvck1lc3NhZ2UpIG11dGFibGUgeworICAgICAgICBib29sIGRvZXNIYW5k
bGVGZXRjaCA9IHRydWU7CisgICAgICAgIGlmIChhdXRvKiB0aHJlYWRQcm94eSA9IFNXQ29udGV4
dE1hbmFnZXI6OnNpbmdsZXRvbigpLndvcmtlckJ5SUQoc2VydmljZVdvcmtlcklkZW50aWZpZXIp
KQorICAgICAgICAgICAgZG9lc0hhbmRsZUZldGNoID0gdGhyZWFkUHJveHktPnRocmVhZCgpLmRv
ZXNIYW5kbGVGZXRjaCgpOworICAgICAgICBjYWxsYmFjayhlcnJvck1lc3NhZ2UsIGRvZXNIYW5k
bGVGZXRjaCk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAppbmRleCA1
MWNmMTIxYTAxZGU2YjI1MTAzZWUzYzA0NTBiMDY5YWNmZTlkZTFhLi5iYWIzYWYzN2IxOGI2N2I4
YjFjZWZhYTFjZGZlMDcyOTZkOTE5MmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCkBAIC01
NSwxNSArNTUsMTggQEAgcHVibGljOgogCiAgICAgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9i
amVjdFByb3h5KCkgY29uc3QgeyByZXR1cm4gbV93b3JrZXJPYmplY3RQcm94eTsgfQogCisgICAg
dm9pZCBzdGFydChGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYsIGJvb2wpPiYmKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RGZXRjaFRhc2soUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6
Q2xpZW50PiYmLCBPcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4mJiwgUmVz
b3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihNZXNzYWdlV2l0
aE1lc3NhZ2VQb3J0cyYmLCBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJiYgc291cmNlRGF0YSk7
CiAKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQoKTsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2
ZW50KCk7CisgICAgdm9pZCBzb2Z0VXBkYXRlKCk7CiAKICAgICBjb25zdCBTZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEmIGNvbnRleHREYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9CiAKICAg
ICBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9k
YXRhLnNlcnZpY2VXb3JrZXJJZGVudGlmaWVyOyB9CisgICAgYm9vbCBkb2VzSGFuZGxlRmV0Y2go
KSBjb25zdCB7IHJldHVybiBtX2RvZXNIYW5kbGVGZXRjaDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAg
UmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwm
LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29u
c3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0
b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUEFMOjpTZXNzaW9uSUQpIGZpbmFs
OwpAQCAtNzMsOSArNzYsMTEgQEAgcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBTZXJ2aWNl
V29ya2VyVGhyZWFkKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFBBTDo6U2Vzc2lv
bklELCBTdHJpbmcmJiB1c2VyQWdlbnQsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyRGVidWdn
ZXJQcm94eSYsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIq
KTsKIAogICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyVGhyZWFkKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gdHJ1ZTsgfQorICAgIHZvaWQgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCkgZmluYWw7CiAK
ICAgICBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgbV9kYXRhOwogICAgIFdvcmtlck9iamVjdFBy
b3h5JiBtX3dvcmtlck9iamVjdFByb3h5OworICAgIGJvb2wgbV9kb2VzSGFuZGxlRmV0Y2ggeyBm
YWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCmluZGV4IDU1OTljNmI0MjJlOTdj
ZjJlZGIxN2E1NGJjOTQ3MjAwNmU2MmUyN2MuLjBjNTdhMzU3ZWZlM2VjYjRmNDE5N2NjOTFmMDg3
MDIyMGI2NjcwMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyLmgKQEAgLTEzMCw3ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzdGFydFN1c3BlbnNpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuZFN1c3BlbnNpb24oKTsKIAotICAgIFNXU2VydmVy
UmVnaXN0cmF0aW9uKiBnZXRSZWdpc3RyYXRpb24oY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbktleSYpOworICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyUmVnaXN0cmF0aW9uKiBnZXRS
ZWdpc3RyYXRpb24oY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYpOwogICAgIHZv
aWQgYWRkUmVnaXN0cmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjxTV1NlcnZlclJlZ2lzdHJhdGlvbj4m
Jik7CiAgICAgdm9pZCByZW1vdmVSZWdpc3RyYXRpb24oY29uc3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGF0YT4gZ2V0UmVnaXN0cmF0aW9ucyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKaW5k
ZXggZGNhZjVhOGE3MTBmNzk0NDY0N2RlM2NkNWU5ODA2Mzk5YThmZDUwYS4uNGFjMjQ0YWVlNjVm
ZGNhZjJhYWUzMTJmNjk3N2M4NmI3ZDY4YjQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCkBAIC0z
NTAsNyArMzUwLDcgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpydW5VcGRhdGVKb2IoY29uc3Qg
U2VydmljZVdvcmtlckpvYkRhdGEmIGpvYikKICAgICAvLyAtIG5ld2VzdFdvcmtlciBpcyBub3Qg
bnVsbCwgYW5kIHJlZ2lzdHJhdGlvbidzIGxhc3QgdXBkYXRlIGNoZWNrIHRpbWUgaXMgbm90IG51
bGwgYW5kIHRoZSB0aW1lIGRpZmZlcmVuY2UgaW4gc2Vjb25kcyBjYWxjdWxhdGVkIGJ5IHRoZQog
ICAgIC8vICAgY3VycmVudCB0aW1lIG1pbnVzIHJlZ2lzdHJhdGlvbidzIGxhc3QgdXBkYXRlIGNo
ZWNrIHRpbWUgaXMgZ3JlYXRlciB0aGFuIDg2NDAwLgogICAgIGlmIChyZWdpc3RyYXRpb24tPnVw
ZGF0ZVZpYUNhY2hlKCkgIT0gU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlOjpBbGwKLSAgICAg
ICAgfHwgKG5ld2VzdFdvcmtlciAmJiByZWdpc3RyYXRpb24tPmxhc3RVcGRhdGVUaW1lKCkgJiYg
KFdhbGxUaW1lOjpub3coKSAtIHJlZ2lzdHJhdGlvbi0+bGFzdFVwZGF0ZVRpbWUoKSkgPiA4NjQw
MF9zKSkgeworICAgICAgICB8fCAobmV3ZXN0V29ya2VyICYmIHJlZ2lzdHJhdGlvbi0+aXNTdGFs
ZSgpKSkgewogICAgICAgICBjYWNoZVBvbGljeSA9IEZldGNoT3B0aW9uczo6Q2FjaGU6Ok5vQ2Fj
aGU7CiAgICAgfQogICAgIG1fc2VydmVyLnN0YXJ0U2NyaXB0RmV0Y2goam9iLCBjYWNoZVBvbGlj
eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IDRkMWM1NTRmNDYwMmE5NTVlMmVi
MTM0MTNmNzIzY2QwYjUyM2JjZjUuLmJmYmYwNjUxZDhlMGQxNTBkYmVhZDg1Mzg5NjFmOTMzMTU5
NTkxOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC0zNjIsNiArMzYyLDI4IEBA
IHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNldElzVW5pbnN0YWxsaW5nKGJvb2wgdmFsdWUp
CiAgICAgfQogfQogCitib29sIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzaG91bGRTb2Z0VXBkYXRl
KGNvbnN0IEZldGNoT3B0aW9ucyYgb3B0aW9ucykgY29uc3QKK3sKKyAgICBpZiAob3B0aW9ucy5t
b2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUpCisgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgcmV0dXJuIFdlYkNvcmU6OmlzTm9uU3VicmVzb3VyY2VSZXF1ZXN0KG9wdGlvbnMu
ZGVzdGluYXRpb24pICYmIGlzU3RhbGUoKTsKK30KKworLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlv
L1NlcnZpY2VXb3JrZXIvI3NvZnQtdXBkYXRlCit2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpz
b2Z0VXBkYXRlKCkKK3sKKyAgICBhdXRvKiB3b3JrZXIgPSBnZXROZXdlc3RXb3JrZXIoKTsKKyAg
ICBpZiAoIXdvcmtlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBzY2hlZHVsZSBhbiB1cGRhdGUgam9iLgorICAgIG1fc2VydmVyLnJ1blNlcnZpY2VXb3JrZXJJ
Zk5lY2Vzc2FyeSh3b3JrZXItPmlkZW50aWZpZXIoKSwgW3NlcnZpY2VXb3JrZXJJZGVudGlmaWVy
ID0gd29ya2VyLT5pZGVudGlmaWVyKCldKGF1dG8qIGNvbnRleHRDb25uZWN0aW9uKSB7CisgICAg
ICAgIGlmIChjb250ZXh0Q29ubmVjdGlvbikKKyAgICAgICAgICAgIGNvbnRleHRDb25uZWN0aW9u
LT5zb2Z0VXBkYXRlKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICB9KTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
clJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlclJlZ2lzdHJhdGlvbi5oCmluZGV4IGE2OWYyNjI2YmE2MjcwN2Y4YmU2ODEwMWVlOTIx
NjVhYzFiMGRkNmUuLjAzN2U4ZmQ3Yzg1MGQ5YmVhNTcxYWE4Y2U5ZTA0NGM3MTcyMTc0ZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJS
ZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKQEAgLTYyLDYgKzYyLDcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBzZXRMYXN0VXBkYXRlVGltZShXYWxsVGltZSk7CiAgICAgV2FsbFRpbWUgbGFzdFVwZGF0
ZVRpbWUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RVcGRhdGVUaW1lOyB9CisgICAgYm9vbCBpc1N0
YWxlKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0VXBkYXRlVGltZSAmJiAoV2FsbFRpbWU6Om5vdygp
IC0gbV9sYXN0VXBkYXRlVGltZSkgPiA4NjQwMF9zOyB9CiAKICAgICB2b2lkIHNldFVwZGF0ZVZp
YUNhY2hlKFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZSk7CiAgICAgU2VydmljZVdvcmtlclVw
ZGF0ZVZpYUNhY2hlIHVwZGF0ZVZpYUNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV91cGRhdGVWaWFD
YWNoZTsgfQpAQCAtOTYsNiArOTcsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZvckVhY2hDb25u
ZWN0aW9uKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChTV1NlcnZlcjo6Q29ubmVjdGlvbiYpPiYp
OwogCisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRTb2Z0VXBkYXRlKGNvbnN0IEZldGNo
T3B0aW9ucyYpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc29mdFVwZGF0ZSgpOwor
CiBwcml2YXRlOgogICAgIHZvaWQgYWN0aXZhdGUoKTsKICAgICB2b2lkIGhhbmRsZUNsaWVudFVu
bG9hZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IDIz
YjRmODE1YTUxMTFhM2E3OGUzNDI0NmFhY2M0OTk0NWM0YTU1NDEuLmNhMmI5NjRiN2E5NjE2NTU2
ZTBjNzdlNzQxNGRhNGI2NmM1ZmYyY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5jcHAKQEAgLTcxLDEwICs3MSwxMCBAQCB2b2lkIFNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbjo6c2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoY29uc3QgT3B0aW9uYWw8U2Vydgog
ICAgICAgICB3b3JrZXItPnNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KGpvYkRhdGFJZGVudGlm
aWVyLCBtZXNzYWdlKTsKIH0KIAotdm9pZCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnNj
cmlwdENvbnRleHRTdGFydGVkKGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRl
bnRpZmllcj4mIGpvYkRhdGFJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2
aWNlV29ya2VySWRlbnRpZmllcikKK3ZvaWQgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpz
Y3JpcHRDb250ZXh0U3RhcnRlZChjb25zdCBPcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlk
ZW50aWZpZXI+JiBqb2JEYXRhSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgZG9lc0hhbmRsZUZldGNoKQogewogICAgIGlmIChh
dXRvKiB3b3JrZXIgPSBTV1NlcnZlcldvcmtlcjo6ZXhpc3RpbmdXb3JrZXJGb3JJZGVudGlmaWVy
KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSkKLSAgICAgICAgd29ya2VyLT5zY3JpcHRDb250ZXh0
U3RhcnRlZChqb2JEYXRhSWRlbnRpZmllcik7CisgICAgICAgIHdvcmtlci0+c2NyaXB0Q29udGV4
dFN0YXJ0ZWQoam9iRGF0YUlkZW50aWZpZXIsIGRvZXNIYW5kbGVGZXRjaCk7CiB9CiAgICAgCiB2
b2lkIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6ZGlkRmluaXNoSW5zdGFsbChjb25zdCBP
cHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+JiBqb2JEYXRhSWRlbnRpZmll
ciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wg
d2FzU3VjY2Vzc2Z1bCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmluZGV4
IGI1OWM0NGQ2NjExOTE4NDY5ZGMwNWU3ZWViZjVjYTBkMTQzNjVkMzIuLjNjMTIwZTg5ZmJhMTA1
ZmEwOWFlZTA5ZTI0MjcxY2UyOGYwNzY0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uaApAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGlu
c3RhbGxTZXJ2aWNlV29ya2VyQ29udGV4dChjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEm
LCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZmlyZUluc3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmll
cikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzb2Z0VXBkYXRlKFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZpbmRDbGllbnRC
eUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IE9w
dGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYsIGJvb2wgaGFzU2VjdXJpdHlFcnJvcikg
PSAwOwpAQCAtNjUsNyArNjYsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBNZXNzYWdlcyBiYWNrIGZy
b20gdGhlIFNXIGhvc3QgcHJvY2VzcwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NyaXB0Q29u
dGV4dEZhaWxlZFRvU3RhcnQoY29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVu
dGlmaWVyPiYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NyaXB0Q29udGV4dFN0YXJ0ZWQoY29uc3QgT3B0
aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYsIFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcmlwdENvbnRleHRTdGFydGVkKGNv
bnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4mLCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgYm9vbCBkb2VzSGFuZGxlRmV0Y2gpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGlkRmluaXNoSW5zdGFsbChjb25zdCBPcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0
YUlkZW50aWZpZXI+JiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1
bCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRGaW5pc2hBY3RpdmF0aW9uKFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlcnZpY2VXb3Jr
ZXJIYXNQZW5kaW5nRXZlbnRzKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIGhhc1BlbmRp
bmdFdmVudHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlcldvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAppbmRleCBiYjhjYjI0MjQ2NzYyMGY5NzNlNzkwMzAy
YmEwOGVkMWUyYWQ4NTViLi44MmUyOTI4YzhhZjgzZTY4YjA4ZWZiYjhkMzdkNzJjMjNmMTQ5NzIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyV29ya2VyLmNwcApAQCAtMTA4LDggKzEwOCw5IEBAIHZvaWQgU1dTZXJ2ZXJXb3Jr
ZXI6OnNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3Jr
ZXJKb2JECiAgICAgICAgIG1fc2VydmVyLT5zY3JpcHRDb250ZXh0RmFpbGVkVG9TdGFydChqb2JE
YXRhSWRlbnRpZmllciwgKnRoaXMsIG1lc3NhZ2UpOwogfQogCi12b2lkIFNXU2VydmVyV29ya2Vy
OjpzY3JpcHRDb250ZXh0U3RhcnRlZChjb25zdCBPcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0
YUlkZW50aWZpZXI+JiBqb2JEYXRhSWRlbnRpZmllcikKK3ZvaWQgU1dTZXJ2ZXJXb3JrZXI6OnNj
cmlwdENvbnRleHRTdGFydGVkKGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRl
bnRpZmllcj4mIGpvYkRhdGFJZGVudGlmaWVyLCBib29sIGRvZXNIYW5kbGVGZXRjaCkKIHsKKyAg
ICBtX3Nob3VsZFNraXBIYW5kbGVGZXRjaCA9ICFkb2VzSGFuZGxlRmV0Y2g7CiAgICAgQVNTRVJU
KG1fc2VydmVyKTsKICAgICBpZiAobV9zZXJ2ZXIpCiAgICAgICAgIG1fc2VydmVyLT5zY3JpcHRD
b250ZXh0U3RhcnRlZChqb2JEYXRhSWRlbnRpZmllciwgKnRoaXMpOwpAQCAtMjQwLDYgKzI0MSw5
IEBAIHZvaWQgU1dTZXJ2ZXJXb3JrZXI6OnNldFN0YXRlKFN0YXRlIHN0YXRlKQogewogICAgIEFT
U0VSVChzdGF0ZSAhPSBTdGF0ZTo6UnVubmluZyB8fCBtX3NlcnZlci0+Z2V0UmVnaXN0cmF0aW9u
KG1fcmVnaXN0cmF0aW9uS2V5KSk7CiAgICAgbV9zdGF0ZSA9IHN0YXRlOworCisgICAgaWYgKHN0
YXRlID09IFN0YXRlOjpSdW5uaW5nKQorICAgICAgICBtX3Nob3VsZFNraXBIYW5kbGVGZXRjaCA9
IGZhbHNlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKaW5kZXggMjMx
N2RkYzJhM2MxOTA5MGJjODYzZjQzN2Q3YzBmNjE2NzE1NTJhMy4uYjZhMGU2MjFlYzkxZmY3NWE3
Y2NlOTQwYzE2ZThmNTllYTIyMTQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaApAQCAtODgsNyArODgsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRIYXNQZW5kaW5nRXZlbnRzKGJvb2wpOwogCiAgICAgdm9pZCBz
Y3JpcHRDb250ZXh0RmFpbGVkVG9TdGFydChjb25zdCBPcHRpb25hbDxTZXJ2aWNlV29ya2VySm9i
RGF0YUlkZW50aWZpZXI+JiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAgICB2b2lkIHNjcmlw
dENvbnRleHRTdGFydGVkKGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRp
Zmllcj4mKTsKKyAgICB2b2lkIHNjcmlwdENvbnRleHRTdGFydGVkKGNvbnN0IE9wdGlvbmFsPFNl
cnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4mLCBib29sIGRvZXNIYW5kbGVGZXRjaCk7CiAg
ICAgdm9pZCBkaWRGaW5pc2hJbnN0YWxsKGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JE
YXRhSWRlbnRpZmllcj4mLCBib29sIHdhc1N1Y2Nlc3NmdWwpOwogICAgIHZvaWQgZGlkRmluaXNo
QWN0aXZhdGlvbigpOwogICAgIHZvaWQgY29udGV4dFRlcm1pbmF0ZWQoKTsKQEAgLTExMiw2ICsx
MTIsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uKiBjb250ZXh0Q29ubmVjdGlvbigpOwogICAgIFN0cmluZyB1c2VyQWdlbnQoKSBjb25z
dDsKIAorICAgIGJvb2wgc2hvdWxkU2tpcEZldGNoRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX3No
b3VsZFNraXBIYW5kbGVGZXRjaDsgfQorCiBwcml2YXRlOgogICAgIFNXU2VydmVyV29ya2VyKFNX
U2VydmVyJiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcm
IHNjcmlwdCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgU3Ry
aW5nJiYgcmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4m
Jik7CiAKQEAgLTEzMCw2ICsxMzIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1NraXBXYWl0
aW5nRmxhZ1NldCB7IGZhbHNlIH07CiAgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoYm9vbCk+PiBt
X3doZW5BY3RpdmF0ZWRIYW5kbGVyczsKICAgICBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNv
bnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4gbV9zY3JpcHRSZXNvdXJjZU1hcDsKKyAgICBib29s
IG1fc2hvdWxkU2tpcEhhbmRsZUZldGNoOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCA5MWZkYzcxNTk3MWQ3
YjE5Y2JiOGI0MmM2NDdkYjMwYzNhZmUyOWNkLi42YmNiOTlhMTAwZjg2YjY5OWM3NzE1ZDViNWY0
NGY4ZWFmNjg1ZmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApA
QCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNo
KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpCiAgICAgICAgIGlmICgh
d29ya2VyLT5jb250ZXh0Q29ubmVjdGlvbigpKQogICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+Y3JlYXRlU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbih3b3JrZXItPnJlZ2lzdHJhYmxlRG9t
YWluKCksIHNlcnZlcigpLnNlc3Npb25JRCgpKTsKIAotICAgICAgICBzZXJ2ZXIoKS5ydW5TZXJ2
aWNlV29ya2VySWZOZWNlc3Nhcnkoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFt3ZWFrVGhpcyA9
IFdURk1vdmUod2Vha1RoaXMpLCB0aGlzLCBmZXRjaElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucyA9IFdURk1vdmUo
b3B0aW9ucyksIGZvcm1EYXRhID0gV1RGTW92ZShmb3JtRGF0YSksIHJlZmVycmVyID0gV1RGTW92
ZShyZWZlcnJlcildKGF1dG8qIGNvbnRleHRDb25uZWN0aW9uKSB7CisgICAgICAgIHNlcnZlcigp
LnJ1blNlcnZpY2VXb3JrZXJJZk5lY2Vzc2FyeShzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgW3dl
YWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIHRoaXMsIGZldGNoSWRlbnRpZmllciwgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zID0g
V1RGTW92ZShvcHRpb25zKSwgZm9ybURhdGEgPSBXVEZNb3ZlKGZvcm1EYXRhKSwgcmVmZXJyZXIg
PSBXVEZNb3ZlKHJlZmVycmVyKSwgc2hvdWxkU2tpcEZldGNoRXZlbnQgPSB3b3JrZXItPnNob3Vs
ZFNraXBGZXRjaEV2ZW50KCldKGF1dG8qIGNvbnRleHRDb25uZWN0aW9uKSB7CiAgICAgICAgICAg
ICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTk3LDYgKzE5
NywxNCBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aQogICAgICAgICB9KTsKICAgICB9OwogCisg
ICAgaWYgKHdvcmtlci0+c2hvdWxkU2tpcEZldGNoRXZlbnQoKSkgeworICAgICAgICBtX2NvbnRl
bnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRp
ZE5vdEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmllcik7CisgICAgICAgIGF1dG8qIHJlZ2lzdHJh
dGlvbiA9IHNlcnZlcigpLmdldFJlZ2lzdHJhdGlvbih3b3JrZXItPnJlZ2lzdHJhdGlvbktleSgp
KTsKKyAgICAgICAgaWYgKHJlZ2lzdHJhdGlvbiAmJiByZWdpc3RyYXRpb24tPnNob3VsZFNvZnRV
cGRhdGUob3B0aW9ucykpCisgICAgICAgICAgICByZWdpc3RyYXRpb24tPnNvZnRVcGRhdGUoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmICh3b3JrZXItPnN0YXRlKCkgPT0gU2Vy
dmljZVdvcmtlclN0YXRlOjpBY3RpdmF0aW5nKSB7CiAgICAgICAgIHdvcmtlci0+d2hlbkFjdGl2
YXRlZChXVEZNb3ZlKHJ1blNlcnZlcldvcmtlckFuZFN0YXJ0RmV0Y2gpKTsKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
LmNwcAppbmRleCBlNzgyODIxMzIxZmQwZDZiOGYxNDY0Y2M2MjBhNDBmYTkyMGI3ZWM0Li5iZmU0
MDNkZjVlYmEyODk0Njk3NTdjMzA0ODE4MTRkZTZiNWE3MzMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtODAsNiArODAsMTEg
QEAgdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmZpcmVBY3RpdmF0ZUV2ZW50
KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHMKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6RmlyZUFjdGl2YXRlRXZlbnQoc2VydmljZVdvcmtlcklkZW50
aWZpZXIpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnNvZnRV
cGRhdGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCit7
CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlNvZnRV
cGRhdGUoc2VydmljZVdvcmtlcklkZW50aWZpZXIpKTsKK30KKwogdm9pZCBXZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb246OnRlcm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6VGVybWluYXRlV29ya2VyKHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmgKaW5kZXggZGM5NWVmYThjNGVmZTNjN2ZjNTViZTkxNTQxYTIxNjgwM2VmMmRjOC4uOTBh
MDdlYTI0YmJhZDMzNzU2N2E0YmVhMzcyMjVmMzgyMjExYWE1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtODYsNiArODYsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgaW5zdGFsbFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0IFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCkgZmluYWw7CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2
ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIHNv
ZnRVcGRhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZv
aWQgdGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5h
bDsKICAgICB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRl
ZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNsaWVudERhdGE+JiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCmluZGV4IDY4Zjk1ZWE3ODAyZDY3YjI0M2ExMWU2M2FjZTM3MWUwZGY1OGM2
YjkuLjk5NDllM2Q0MzVmMjQ3YjUwYmZkNDQ0ZDUwNmRlMmE5NTI3ZGM1MmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNz
YWdlcy5pbgpAQCAtMjYsNyArMjYsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24gewogICAgICMgV2hlbiBwb3NzaWJsZSwgdGhlc2UgbWVzc2FnZXMgY2FuIGJl
IGltcGxlbWVudGVkIGRpcmVjdGx5IGJ5IFdlYkNvcmU6OlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbgogCiAgICAgU2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoT3B0aW9uYWw8V2ViQ29yZTo6
U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiBqb2JEYXRhSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFN0cmlu
ZyBtZXNzYWdlKTsKLSAgICBTY3JpcHRDb250ZXh0U3RhcnRlZChPcHRpb25hbDxXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAg
U2NyaXB0Q29udGV4dFN0YXJ0ZWQoT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRh
dGFJZGVudGlmaWVyPiBqb2JEYXRhSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgZG9lc0hhbmRsZUZldGNoKTsK
ICAgICBEaWRGaW5pc2hJbnN0YWxsKE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JE
YXRhSWRlbnRpZmllcj4gam9iRGF0YUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpOwog
ICAgIERpZEZpbmlzaEFjdGl2YXRpb24oV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
aWRlbnRpZmllcik7CiAgICAgU2V0U2VydmljZVdvcmtlckhhc1BlbmRpbmdFdmVudHMoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBoYXNQZW5kaW5nRXZl
bnRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCAxODhhZGIwOTU5
MmY5MjJhMTAxZjJmMzczZTkwMzk5NjdiMTlhMmRjLi45MjNkYjgwMjhkYTdiM2RmYjJhOTk0ZWQ1
YTkxNjExN2ZjNTI0OGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBA
IC0xNzUsMTIgKzE3NSwxNCBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpy
ZW1vdmVGcmFtZUxvYWRlckNsaWVudChTZXJ2aWNlV29ya2VyRnJhbWVMbwogICAgIEFTU0VSVF9V
TlVTRUQocmVzdWx0LCByZXN1bHQpOwogfQogCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpzZXJ2aWNlV29ya2VyU3RhcnRlZFdpdGhNZXNzYWdlKE9wdGlvbmFsPFNlcnZpY2VX
b3JrZXJKb2JEYXRhSWRlbnRpZmllcj4gam9iRGF0YUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlv
bk1lc3NhZ2UpCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzZXJ2aWNlV29y
a2VyU3RhcnRlZChPcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRh
dGFJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgYm9vbCBkb2VzSGFuZGxlRmV0Y2gpCiB7Ci0gICAgaWYgKGV4Y2VwdGlvbk1lc3NhZ2Uu
aXNFbXB0eSgpKQotICAgICAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OlNjcmlwdENvbnRleHRTdGFy
dGVkKGpvYkRhdGFJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciksIDApOwotICAg
IGVsc2UKLSAgICAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpTY3JpcHRDb250ZXh0RmFpbGVkVG9T
dGFydChqb2JEYXRhSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGV4Y2VwdGlv
bk1lc3NhZ2UpLCAwKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OlNjcmlwdENvbnRleHRTdGFy
dGVkIHsgam9iRGF0YUlkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBkb2VzSGFu
ZGxlRmV0Y2ggfSwgMCk7Cit9CisKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246
OnNlcnZpY2VXb3JrZXJGYWlsZWRUb1N0YXJ0KE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRh
SWRlbnRpZmllcj4gam9iRGF0YUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpCit7
CisgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpTY3JpcHRDb250ZXh0RmFpbGVkVG9TdGFydCB7IGpv
YkRhdGFJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZXhjZXB0aW9uTWVzc2Fn
ZSB9LCAwKTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRGZXRjaChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEZldGNoT3B0aW9ucyYgb3B0aW9ucywgY29uc3Qg
VVJMJiBzZXJ2aWNlV29ya2VyVVJMLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQpAQCAtMjYxLDYg
KzI2MywxMSBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpmaXJlQWN0aXZh
dGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZAogICAgIFNXQ29udGV4dE1hbmFnZXI6
OnNpbmdsZXRvbigpLmZpcmVBY3RpdmF0ZUV2ZW50KGlkZW50aWZpZXIpOwogfQogCit2b2lkIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzb2Z0VXBkYXRlKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgU1dDb250ZXh0TWFuYWdlcjo6c2lu
Z2xldG9uKCkuc29mdFVwZGF0ZShpZGVudGlmaWVyKTsKK30KKwogdm9pZCBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIpCiB7CiAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkudGVybWlu
YXRlV29ya2VyKGlkZW50aWZpZXIsIGFzeW5jV29ya2VyVGVybWluYXRpb25UaW1lb3V0LCBudWxs
cHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4IGZiYjYzMGU0ZTE5YjM1
OWRjMTcwY2NlYTAxOGE0OTgzMjE2NmRhZmUuLjdiYzExZDAzNjE5Zjk5YjM1Y2Y2NTZlZTgxMDNl
ZGVmZmI4NDQ2ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApAQCAtNzYsNyAr
NzYsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNUaHJvdHRsZWFibGUoKSBjb25zdCBmaW5hbDsK
IAogICAgIC8vIElQQyBtZXNzYWdlcy4KLSAgICB2b2lkIHNlcnZpY2VXb3JrZXJTdGFydGVkV2l0
aE1lc3NhZ2UoT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVy
PiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZXhjZXB0
aW9uTWVzc2FnZSkgZmluYWw7CisgICAgdm9pZCBzZXJ2aWNlV29ya2VyU3RhcnRlZChPcHRpb25h
bDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+LCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCBkb2VzSGFuZGxlRmV0Y2gpIGZpbmFsOworICAgIHZv
aWQgc2VydmljZVdvcmtlckZhaWxlZFRvU3RhcnQoT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdv
cmtlckpvYkRhdGFJZGVudGlmaWVyPiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uTWVzc2FnZSkgZmluYWw7CiAgICAgdm9pZCBpbnN0YWxs
U2VydmljZVdvcmtlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQ
QUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgdXNlckFnZW50KTsKICAgICB2b2lkIHN0YXJ0RmV0Y2go
V2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIFdlYkNvcmU6OkZldGNoT3B0aW9ucyYmLCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlJiYsIFN0cmluZyYmIHJlZmVycmVyKTsKICAgICB2b2lkIGNhbmNlbEZldGNoKFdlYkNvcmU6
OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOwpAQCAtODQsNiArODUsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdl
V2l0aE1lc3NhZ2VQb3J0cyYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJiYg
c291cmNlRGF0YSk7CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICB2b2lkIHNvZnRVcGRhdGUoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgdGVybWluYXRlV29ya2VyKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIo
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlcjo6RGVsYXllZFJlcGx5JiYpOwog
ICAgIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciwgT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYs
IGJvb2wgaGFzU2VjdXJpdHlFcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGUxNWIwMmY2MWQyNjQ2ZmMxY2IxZWM3MGY5MDZmYTNj
NjdjZGQ4ZDIuLmRmN2VhYmIxOWUyMDVmNWNjNWE1NGFiYzVkMDc1YTc0ZjYxMmI2N2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zMCw2
ICszMCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIHsKICAg
ICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cyBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhIHNv
dXJjZURhdGEpCiAgICAgRmlyZUluc3RhbGxFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBpZGVudGlmaWVyKQogICAgIEZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgU29mdFVwZGF0ZShXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIFRlcm1pbmF0ZVdvcmtlcihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIFN5bmNUZXJt
aW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikg
LT4gKCkgU3luY2hyb25vdXMKICAgICBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVp
bnQ2NF90IGNsaWVudElkUmVxdWVzdElkZW50aWZpZXIsIE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhPiBkYXRhLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NTBmMmFjMDkwOWZlZGIwZjc0ZGMxOWYxZGU1OTllMDlhMjRmOWJjNC4uMWI0YTk3ZWNhYmFkOGYw
OWIwNGFjNDhhYjA5MjcyNGIyMGExNWMxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA4
LTI5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTa2lwIGZl
dGNoIGV2ZW50IGRpc3BhdGNoaW5nIGlmIG5vIGZldGNoIGV2ZW50IGhhbmRsZXIgaXMgYWRkZWQg
YXQgc2NyaXB0IGV2YWx1YXRpb24gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVt
ZXouCisKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2tpcEZldGNoRXZlbnQt
d29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzeW5jLmRvVGVzdCk6CisgICAgICAgICogaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL3NraXBGZXRjaEV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NraXBGZXRjaEV2ZW50
Lmh0dHBzLmh0bWw6IEFkZGVkLgorCiAyMDE5LTA4LTI5ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxp
YS5jb20+CiAKICAgICAgICAgQWRkcmVzcyBzb21lIE1hdGhNTCBGSVhNRXMgCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2tpcEZldGNoRXZlbnQtd29y
a2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NraXBGZXRjaEV2
ZW50LXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2Y5N2ZlMjNmOGNjYTA2MjEyMjMyZWVmOTllZWE2
NzU3NzE1NjIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3NraXBGZXRjaEV2ZW50LXdvcmtlci5qcwpAQCAtMCwwICsxLDE4IEBACithc3lu
YyBmdW5jdGlvbiBkb1Rlc3QoZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJTRVQt
RkVUQ0giKSB7CisgICAgICAgIHNlbGYucmVjZWl2ZWRGZXRjaCA9IDA7CisgICAgICAgIHNlbGYu
YWRkRXZlbnRMaXN0ZW5lcigiZmV0Y2giLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIHNlbGYu
cmVjZWl2ZWRGZXRjaCsrOworICAgICAgICB9KTsKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RN
ZXNzYWdlKCJPSyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChldmVudC5kYXRh
ID09PSAiR0VULUZFVENIIikgeworICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2Uoc2Vs
Zi5yZWNlaXZlZEZldGNoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBldmVudC5zb3Vy
Y2UucG9zdE1lc3NhZ2UoIktPIik7Cit9CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIGRvVGVzdCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvc2tpcEZldGNoRXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL3NraXBGZXRjaEV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40Zjc2NGMwMjI1MzMyNGM0NGRkMGQ3YzNkYWExZGVlMTUwZWQwNTM3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NraXBG
ZXRjaEV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworCitQQVNTIFNl
dHVwIHdvcmtlciAKK1BBU1MgU2V0dXAgZmV0Y2ggZXZlbnQgYWZ0ZXIgc2NyaXB0IGlzIHJ1biAK
K1BBU1MgRmV0Y2ggZXZlbnQgc2hvdWxkIGJlIHNraXBwZWQgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9za2lwRmV0Y2hFdmVudC5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NraXBGZXRjaEV2ZW50Lmh0
dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk1MjE2NTdjNzkyY2I0ZjlhNzQxYTYyNzkyMGM0ZjljMmRh
N2MzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9za2lwRmV0Y2hFdmVudC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
dGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
Cit2YXIgc2NvcGUgPSAidGVzdCI7Cit2YXIgYWN0aXZlV29ya2VyOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgKHRlc3QpID0+IHsKKyAgICB2YXIgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInNraXBGZXRjaEV2ZW50LXdvcmtlci5qcyIsIHsgc2Nv
cGUgOiBzY29wZSB9KTsKKyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uYWN0aXZlOwor
ICAgIGlmIChhY3RpdmVXb3JrZXIpCisgICAgICAgIHJldHVybjsKKyAgICBhY3RpdmVXb3JrZXIg
PSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB7CisgICAgICAgIGFjdGl2ZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5n
ZScsICgpID0+IHsKKyAgICAgICAgICAgIGlmIChhY3RpdmVXb3JrZXIuc3RhdGUgPT09ICJhY3Rp
dmF0ZWQiKQorICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfSk7CisgICAgfSk7
Cit9LCAiU2V0dXAgd29ya2VyIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewor
ICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAg
ICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
KGV2ZW50KSA9PiB7CisgICAgICAgICAgICByZXNvbHZlKGV2ZW50LmRhdGEpOworICAgICAgICB9
KTsKKyAgICB9KTsKKworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSgiU0VULUZFVENIIik7
CisgICAgdmFyIHJlc3VsdCA9IGF3YWl0IHByb21pc2U7CisKKyAgICBhc3NlcnRfZXF1YWxzKHJl
c3VsdCwgIk9LIik7Cit9LCAiU2V0dXAgZmV0Y2ggZXZlbnQgYWZ0ZXIgc2NyaXB0IGlzIHJ1biIp
OworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICB2YXIgcHJvbWlzZSA9IG5l
dyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4geworICAgICAg
ICAgICAgcmVzb2x2ZShldmVudC5kYXRhKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBj
b25zdCBpZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShzY29wZSk7CisKKyAgICBhc3NlcnRfdHJ1
ZSghIWlmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xs
ZXIpOworCisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJHRVQtRkVUQ0giKTsKKyAgICB2
YXIgcmVzdWx0ID0gYXdhaXQgcHJvbWlzZTsKKworICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LCAw
KTsKK30sICJGZXRjaCBldmVudCBzaG91bGQgYmUgc2tpcHBlZCIpOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>