<?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>179436</bug_id>
          
          <creation_ts>2017-11-08 12:13:18 -0800</creation_ts>
          <short_desc>[Service Workers] Implement &quot;Try Activate&quot; / &quot;Activate&quot; algorithms</short_desc>
          <delta_ts>2017-11-15 09:38:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>
          <dependson>179401</dependson>
          <blocked>179441</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1369518</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-08 12:13:18 -0800</bug_when>
    <thetext>Add &apos;activate&apos; event support in service workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369538</commentid>
    <comment_count>1</comment_count>
      <attachid>326352</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-08 13:10:48 -0800</bug_when>
    <thetext>Created attachment 326352
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370087</commentid>
    <comment_count>2</comment_count>
      <attachid>326500</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-09 15:53:52 -0800</bug_when>
    <thetext>Created attachment 326500
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370386</commentid>
    <comment_count>3</comment_count>
      <attachid>326597</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-10 09:49:32 -0800</bug_when>
    <thetext>Created attachment 326597
WIP Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370396</commentid>
    <comment_count>4</comment_count>
      <attachid>326599</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-10 10:06:51 -0800</bug_when>
    <thetext>Created attachment 326599
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370410</commentid>
    <comment_count>5</comment_count>
      <attachid>326603</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-10 10:43:31 -0800</bug_when>
    <thetext>Created attachment 326603
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370420</commentid>
    <comment_count>6</comment_count>
      <attachid>326606</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-10 11:05:33 -0800</bug_when>
    <thetext>Created attachment 326606
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370447</commentid>
    <comment_count>7</comment_count>
      <attachid>326606</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-10 12:31:02 -0800</bug_when>
    <thetext>Comment on attachment 326606
Patch

Clearing flags on attachment: 326606

Committed r224702: &lt;https://trac.webkit.org/changeset/224702&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370448</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-10 12:31:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371935</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 09:38:51 -0800</bug_when>
    <thetext>&lt;rdar://problem/35562145&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326352</attachid>
            <date>2017-11-08 13:10:48 -0800</date>
            <delta_ts>2017-11-09 15:53:52 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>179436_sw_activate_wip.patch</filename>
            <type>text/plain</type>
            <size>27077</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29u
dGV4dE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U1dDb250ZXh0TWFuYWdlci5jcHAKaW5kZXggNDliNmViM2NhYmEuLmE4ODk2MDdjZDZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
V0NvbnRleHRNYW5hZ2VyLmNwcApAQCAtODMsNiArODMsMTUgQEAgdm9pZCBTV0NvbnRleHRNYW5h
Z2VyOjpmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
CiAgICAgc2VydmljZVdvcmtlci0+dGhyZWFkKCkuZmlyZUluc3RhbGxFdmVudCgpOwogfQogCit2
b2lkIFNXQ29udGV4dE1hbmFnZXI6OmZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byogc2VydmljZVdvcmtlciA9IG1fd29ya2Vy
TWFwLmdldChpZGVudGlmaWVyKTsKKyAgICBpZiAoIXNlcnZpY2VXb3JrZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIHNlcnZpY2VXb3JrZXItPnRocmVhZCgpLmZpcmVBY3RpdmF0ZUV2ZW50KCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgK
aW5kZXggNWQ4NDc3MzM4YjUuLmM1MDdiNmU2NjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCkBAIC00
OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBk
ZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2Fn
ZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9y
aWdpbikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRXaXRo
TWVzc2FnZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25N
ZXNzYWdlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hJbnN0YWxsKFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpID0gMDsKKyAgICAgICAgdmly
dHVhbCB2b2lkIGRpZEZpbmlzaEFjdGl2YXRpb24oU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0g
MDsKICAgICB9OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb25uZWN0aW9uKHN0ZDo6
dW5pcXVlX3B0cjxDb25uZWN0aW9uPiYmKTsKQEAgLTU3LDYgKzU4LDcgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSogc2VydmljZVdvcmtlclRo
cmVhZFByb3h5KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBjb25zdDsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdv
cmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYg
bWVzc2FnZSwgY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIHNvdXJjZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGZpcmVJbnN0YWxsRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIp
OwogCiBwcml2YXRlOgogICAgIFNXQ29udGV4dE1hbmFnZXIoKSA9IGRlZmF1bHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDRiZWJiMmUwZmI0Li4zNGEzMzIyZDIxZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTE0MCw2ICsxNDAsMjMgQEAgdm9pZCBTZXJ2aWNl
V29ya2VyVGhyZWFkOjpmaXJlSW5zdGFsbEV2ZW50KCkKICAgICBydW5Mb29wKCkucG9zdFRhc2so
V1RGTW92ZSh0YXNrKSk7CiB9CiAKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6ZmlyZUFjdGl2
YXRlRXZlbnQoKQoreworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgdGFzayhbc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgPSB0aGlzLT5pZGVudGlmaWVyKCldIChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byYgc2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0
KTsKKyAgICAgICAgYXV0byBhY3RpdmF0ZUV2ZW50ID0gRXh0ZW5kYWJsZUV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmFjdGl2YXRlRXZlbnQsIHsgfSwgRXh0ZW5kYWJsZUV2ZW50OjpJc1RydXN0
ZWQ6Olllcyk7CisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5kaXNwYXRjaEV2ZW50
KGFjdGl2YXRlRXZlbnQpOworCisgICAgICAgIGFjdGl2YXRlRXZlbnQtPndoZW5BbGxFeHRlbmRM
aWZldGltZVByb21pc2VzQXJlU2V0dGxlZChbc2VydmljZVdvcmtlcklkZW50aWZpZXJdKEhhc2hT
ZXQ8UmVmPERPTVByb21pc2U+PiYmKSB7CisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtz
ZXJ2aWNlV29ya2VySWRlbnRpZmllcl0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYg
KGF1dG8qIGNvbm5lY3Rpb24gPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0
aW9uKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmRpZEZpbmlzaEFjdGl2YXRp
b24oc2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0p
OworICAgIH0pOworICAgIHJ1bkxvb3AoKS5wb3N0VGFzayhXVEZNb3ZlKHRhc2spKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZC5oCmluZGV4IDA2Mjc2ZmM1YmZiLi5kNDhhNzE5NGJhYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0RmV0Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6
OkNsaWVudD4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoUmVm
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hh
bm5lbEFycmF5PiYmLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgc291cmNl
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogICAgIHZvaWQgZmlyZUlu
c3RhbGxFdmVudCgpOworICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoKTsKIAogICAgIHVpbnQ2
NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllcjsgfQogICAgIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YSYgY29udGV4dERhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggMWY2OTIw
N2Y3NjkuLjViODkzNGNmOTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApAQCAtMTE3LDYgKzExNywxMSBAQCB2b2lkIFNXU2Vy
dmVyOjpDb25uZWN0aW9uOjpkaWRGaW5pc2hJbnN0YWxsKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25LZXkmCiAgICAgbV9zZXJ2ZXIuZGlkRmluaXNoSW5zdGFsbCgqdGhpcywga2V5LCBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgd2FzU3VjY2Vzc2Z1bCk7CiB9CiAKK3ZvaWQgU1dTZXJ2
ZXI6OkNvbm5lY3Rpb246OmRpZEZpbmlzaEFjdGl2YXRpb24oY29uc3QgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbktleSYga2V5LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcikKK3sKKyAgICBtX3NlcnZlci5kaWRGaW5pc2hBY3RpdmF0aW9uKCp0aGlzLCBr
ZXksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTV1NlcnZlcjo6Q29ubmVj
dGlvbjo6YWRkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKGNvbnN0IFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25LZXkmIGtleSwgdWludDY0X3QgY2xpZW50UmVnaXN0cmF0aW9uSWRl
bnRpZmllcikKIHsKICAgICBtX3NlcnZlci5hZGRDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uKCp0aGlzLCBrZXksIGNsaWVudFJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwpAQCAtMjM3LDYg
KzI0MiwxNCBAQCB2b2lkIFNXU2VydmVyOjpkaWRGaW5pc2hJbnN0YWxsKENvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpcwogICAgICAgICBqb2JRdWV1ZS0+ZGlk
RmluaXNoSW5zdGFsbChjb25uZWN0aW9uLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgd2FzU3Vj
Y2Vzc2Z1bCk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXI6OmRpZEZpbmlzaEFjdGl2YXRpb24oQ29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYgcmVn
aXN0cmF0aW9uS2V5LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllcikKK3sKKyAgICBBU1NFUlQobV9jb25uZWN0aW9ucy5jb250YWlucyhjb25uZWN0aW9uLmlk
ZW50aWZpZXIoKSkpOworCisgICAgaWYgKGF1dG8qIGpvYlF1ZXVlID0gbV9qb2JRdWV1ZXMuZ2V0
KHJlZ2lzdHJhdGlvbktleSkpCisgICAgICAgIGpvYlF1ZXVlLT5kaWRGaW5pc2hBY3RpdmF0aW9u
KGNvbm5lY3Rpb24sIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTV1NlcnZl
cjo6YWRkQ2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiBrZXksIHVpbnQ2NF90IHJl
Z2lzdHJhdGlvbklkZW50aWZpZXIpCiB7CiAgICAgYXV0byogcmVnaXN0cmF0aW9uID0gbV9yZWdp
c3RyYXRpb25zLmdldChrZXkpOwpAQCAtMjc2LDYgKzI4OSwxMSBAQCB2b2lkIFNXU2VydmVyOjpm
aXJlSW5zdGFsbEV2ZW50KENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyCiAgICAgY29ubmVjdGlvbi5maXJlSW5zdGFsbEV2ZW50KHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKTsKIH0KIAordm9pZCBTV1NlcnZlcjo6ZmlyZUFjdGl2YXRlRXZlbnQoQ29ubmVjdGlv
biYgY29ubmVjdGlvbiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50
aWZpZXIpCit7CisgICAgY29ubmVjdGlvbi5maXJlQWN0aXZhdGVFdmVudChzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcik7Cit9CisKIHZvaWQgU1dTZXJ2ZXI6OnRhc2tUaHJlYWRFbnRyeVBvaW50KCkK
IHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCBlZjZhMDJjMDdmMS4uZWIwMTcy
OGU1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyLmgKQEAgLTYyLDYgKzYyLDcgQEAgcHVibGljOgogICAgICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25LZXkmLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlKTsKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JpcHRDb250ZXh0U3RhcnRlZChj
b25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgU2VydmljZVdvcmtlcklkZW50aWZp
ZXIpOwogICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEZpbmlzaEluc3RhbGwoY29uc3Qg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBi
b29sIHdhc1N1Y2Nlc3NmdWwpOworICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEZpbmlz
aEFjdGl2YXRpb24oY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKTsKICAgICAgICAgY29uc3QgU1dTZXJ2ZXJSZWdpc3RyYXRpb24qIGRv
UmVnaXN0cmF0aW9uTWF0Y2hpbmcoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4s
IGNvbnN0IFVSTCYgY2xpZW50VVJMKSBjb25zdCB7IHJldHVybiBtX3NlcnZlci5kb1JlZ2lzdHJh
dGlvbk1hdGNoaW5nKHRvcE9yaWdpbiwgY2xpZW50VVJMKTsgfQogCiAgICAgICAgIC8vIE1lc3Nh
Z2VzIHRvIHRoZSBjbGllbnQgV2ViUHJvY2VzcwpAQCAtODksNiArOTAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIC8vIE1lc3NhZ2VzIHRvIHRoZSBTVyBob3N0IFdlYlByb2Nlc3MKICAgICAgICAgdmly
dHVhbCB2b2lkIGluc3RhbGxTZXJ2aWNlV29ya2VyQ29udGV4dChjb25zdCBTZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlSW5zdGFsbEV2ZW50
KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBmaXJl
QWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwogCiAgICAgICAgIFNX
U2VydmVyJiBtX3NlcnZlcjsKICAgICB9OwpAQCAtMTEzLDYgKzExNSw3IEBAIHB1YmxpYzoKIAog
ICAgIFJlZjxTV1NlcnZlcldvcmtlcj4gdXBkYXRlV29ya2VyKENvbm5lY3Rpb24mLCBjb25zdCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBz
Y3JpcHQsIFdvcmtlclR5cGUpOwogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudChDb25uZWN0aW9u
JiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQo
Q29ubmVjdGlvbiYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICBTV1NlcnZlcldvcmtl
ciogd29ya2VyQnlJRChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKSBjb25zdCB7
IHJldHVybiBtX3dvcmtlcnNCeUlELmdldChpZGVudGlmaWVyKTsgfQogICAgIAogICAgIENvbm5l
Y3Rpb24qIGdldENvbm5lY3Rpb24odWludDY0X3QgaWRlbnRpZmllcikgeyByZXR1cm4gbV9jb25u
ZWN0aW9ucy5nZXQoaWRlbnRpZmllcik7IH0KQEAgLTEyOCw2ICsxMzEsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoQ29ubmVjdGlvbiYsIGNvbnN0IFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlKTsKICAgICB2b2lkIHNjcmlwdENvbnRleHRTdGFydGVkKENvbm5l
Y3Rpb24mLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgU2VydmljZVdvcmtl
cklkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkRmluaXNoSW5zdGFsbChDb25uZWN0aW9uJiwgY29u
c3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBib29sIHdhc1N1Y2Nlc3NmdWwpOworICAgIHZvaWQgZGlkRmluaXNoQWN0aXZhdGlvbihDb25u
ZWN0aW9uJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgYWRkQ2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbihDb25uZWN0aW9uJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIHVp
bnQ2NF90IHJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlQ2xpZW50U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbihDb25uZWN0aW9uJiwgY29uc3QgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbktleSYsIHVpbnQ2NF90IHJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1
ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJK
b2JRdWV1ZS5jcHAKaW5kZXggYTJmOTU1NjE4ZWMuLmRiNjQwZjc0MWYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JR
dWV1ZS5jcHAKQEAgLTEzMywxMiArMTMzLDEyIEBAIHZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6aW5z
dGFsbChTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBTV1NlcnZlcjo6Q29uCiB9
CiAKIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNpbnN0YWxsCi12b2lk
IFNXU2VydmVySm9iUXVldWU6OmRpZEZpbmlzaEluc3RhbGwoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24m
LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwp
Cit2b2lkIFNXU2VydmVySm9iUXVldWU6OmRpZEZpbmlzaEluc3RhbGwoU1dTZXJ2ZXI6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJv
b2wgd2FzU3VjY2Vzc2Z1bCkKIHsKICAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBtX3NlcnZlci5n
ZXRSZWdpc3RyYXRpb24obV9yZWdpc3RyYXRpb25LZXkpOwogICAgIEFTU0VSVChyZWdpc3RyYXRp
b24pOwogCi0gICAgYXV0byYgam9iID0gZmlyc3RKb2IoKTsKKyAgICBhdXRvIGpvYiA9IGZpcnN0
Sm9iKCk7CiAKICAgICBpZiAoIXdhc1N1Y2Nlc3NmdWwpIHsKICAgICAgICAgYXV0byogd29ya2Vy
ID0gbV9zZXJ2ZXIud29ya2VyQnlJRChpZGVudGlmaWVyKTsKQEAgLTE2MSw2ICsxNjEsNjYgQEAg
dm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRGaW5pc2hJbnN0YWxsKFNXU2VydmVyOjpDb25uZWN0
aW9uJiwgU2VydmljZVdvcmtlcklkZW4KICAgICByZWdpc3RyYXRpb24tPmZpcmVQb3N0SW5zdGFs
bEV2ZW50cyhqb2IpOwogCiAgICAgZmluaXNoQ3VycmVudEpvYigpOworCisgICAgLy8gRklYTUU6
IFdhaXQgZm9yIGFsbCB0aGUgdGFza3MgcXVldWVkIGJ5IFVwZGF0ZSBXb3JrZXIgU3RhdGUgaW52
b2tlZCBpbiB0aGlzIGFsZ29yaXRobSBoYXZlIGV4ZWN1dGVkLgorICAgIHRyeUFjdGl2YXRlKGNv
bm5lY3Rpb24sIGpvYiwgKnJlZ2lzdHJhdGlvbik7Cit9CisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1
Yi5pby9TZXJ2aWNlV29ya2VyLyN0cnktYWN0aXZhdGUtYWxnb3JpdGhtCit2b2lkIFNXU2VydmVy
Sm9iUXVldWU6OnRyeUFjdGl2YXRlKFNXU2VydmVyOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBj
b25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVn
aXN0cmF0aW9uKQoreworICAgIC8vIElmIHJlZ2lzdHJhdGlvbuKAmXMgd2FpdGluZyB3b3JrZXIg
aXMgbnVsbCwgcmV0dXJuLgorICAgIGlmICghcmVnaXN0cmF0aW9uLndhaXRpbmdXb3JrZXIoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIC8vIElmIHJlZ2lzdHJhdGlvbuKAmXMgYWN0aXZlIHdvcmtl
ciBpcyBub3QgbnVsbCBhbmQgcmVnaXN0cmF0aW9u4oCZcyBhY3RpdmUgd29ya2VyJ3Mgc3RhdGUg
aXMgYWN0aXZhdGluZywgcmV0dXJuLgorICAgIGlmIChyZWdpc3RyYXRpb24uYWN0aXZlV29ya2Vy
KCkgJiYgcmVnaXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigpLT5zdGF0ZSgpID09IFNlcnZpY2VXb3Jr
ZXJTdGF0ZTo6QWN0aXZhdGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSW52b2tlIEFj
dGl2YXRlIHdpdGggcmVnaXN0cmF0aW9uIGlmIGVpdGhlciBvZiB0aGUgZm9sbG93aW5nIGlzIHRy
dWU6CisgICAgLy8gLSByZWdpc3RyYXRpb27igJlzIGFjdGl2ZSB3b3JrZXIgaXMgbnVsbC4KKyAg
ICAvLyAtIEZJWE1FOiBUaGUgcmVzdWx0IG9mIHJ1bm5pbmcgU2VydmljZSBXb3JrZXIgSGFzIE5v
IFBlbmRpbmcgRXZlbnRzIHdpdGggcmVnaXN0cmF0aW9u4oCZcyBhY3RpdmUgd29ya2VyIGlzIHRy
dWUsCisgICAgLy8gICBhbmQgbm8gc2VydmljZSB3b3JrZXIgY2xpZW50IGlzIHVzaW5nIHJlZ2lz
dHJhdGlvbiBvciByZWdpc3RyYXRpb27igJlzIHdhaXRpbmcgd29ya2VyJ3Mgc2tpcCB3YWl0aW5n
CisgICAgLy8gICBmbGFnIGlzIHNldC4KKyAgICBpZiAoIXJlZ2lzdHJhdGlvbi5hY3RpdmVXb3Jr
ZXIoKSkKKyAgICAgICAgYWN0aXZhdGUoY29ubmVjdGlvbiwgam9iLCByZWdpc3RyYXRpb24pOwor
fQorCisvLyBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jYWN0aXZhdGUKK3Zv
aWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6YWN0aXZhdGUoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2IsIFNXU2VydmVyUmVnaXN0cmF0
aW9uJiByZWdpc3RyYXRpb24pCit7CisgICAgLy8gSWYgcmVnaXN0cmF0aW9u4oCZcyB3YWl0aW5n
IHdvcmtlciBpcyBudWxsLCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoIXJlZ2lzdHJhdGlv
bi53YWl0aW5nV29ya2VyKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIElmIHJlZ2lzdHJh
dGlvbuKAmXMgYWN0aXZlIHdvcmtlciBpcyBub3QgbnVsbCwgdGhlbjoKKyAgICBpZiAocmVnaXN0
cmF0aW9uLmFjdGl2ZVdvcmtlcigpKSB7CisgICAgICAgIC8vIFRlcm1pbmF0ZSByZWdpc3RyYXRp
b27igJlzIGFjdGl2ZSB3b3JrZXIuCisgICAgICAgIC8vIHJlZ2lzdHJhdGlvbi5hY3RpdmVXb3Jr
ZXIoKS0+dGVybWluYXRlKCk7CisgICAgICAgIC8vIFJ1biB0aGUgVXBkYXRlIFdvcmtlciBTdGF0
ZSBhbGdvcml0aG0gcGFzc2luZyByZWdpc3RyYXRpb27igJlzIGFjdGl2ZSB3b3JrZXIgYW5kIHJl
ZHVuZGFudCBhcyB0aGUgYXJndW1lbnRzLgorICAgICAgICByZWdpc3RyYXRpb24udXBkYXRlV29y
a2VyU3RhdGUoam9iLCAqcmVnaXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigpLCBTZXJ2aWNlV29ya2Vy
U3RhdGU6OlJlZHVuZGFudCk7CisgICAgfQorICAgIC8vIFJ1biB0aGUgVXBkYXRlIFJlZ2lzdHJh
dGlvbiBTdGF0ZSBhbGdvcml0aG0gcGFzc2luZyByZWdpc3RyYXRpb24sICJhY3RpdmUiIGFuZCBy
ZWdpc3RyYXRpb27igJlzIHdhaXRpbmcgd29ya2VyIGFzIHRoZSBhcmd1bWVudHMuCisgICAgcmVn
aXN0cmF0aW9uLnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKGpvYiwgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvblN0YXRlOjpBY3RpdmUsIHJlZ2lzdHJhdGlvbi53YWl0aW5nV29ya2VyKCkpOworICAg
IC8vIFJ1biB0aGUgVXBkYXRlIFJlZ2lzdHJhdGlvbiBTdGF0ZSBhbGdvcml0aG0gcGFzc2luZyBy
ZWdpc3RyYXRpb24sICJ3YWl0aW5nIiBhbmQgbnVsbCBhcyB0aGUgYXJndW1lbnRzLgorICAgIHJl
Z2lzdHJhdGlvbi51cGRhdGVSZWdpc3RyYXRpb25TdGF0ZShqb2IsIFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25TdGF0ZTo6V2FpdGluZywgbnVsbHB0cik7CisgICAgLy8gUnVuIHRoZSBVcGRhdGUg
V29ya2VyIFN0YXRlIGFsZ29yaXRobSBwYXNzaW5nIHJlZ2lzdHJhdGlvbuKAmXMgYWN0aXZlIHdv
cmtlciBhbmQgYWN0aXZhdGluZyBhcyB0aGUgYXJndW1lbnRzLgorICAgIHJlZ2lzdHJhdGlvbi51
cGRhdGVXb3JrZXJTdGF0ZShqb2IsICpyZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCksIFNlcnZp
Y2VXb3JrZXJTdGF0ZTo6QWN0aXZhdGluZyk7CisgICAgLy8gRklYTUU6IEZvciBlYWNoIHNlcnZp
Y2Ugd29ya2VyIGNsaWVudCBjbGllbnQgd2hvc2UgY3JlYXRpb24gVVJMIG1hdGNoZXMgcmVnaXN0
cmF0aW9u4oCZcyBzY29wZSB1cmwuLi4KKyAgICAvLyBGSVhNRTogRm9yIGVhY2ggc2VydmljZSB3
b3JrZXIgY2xpZW50IGNsaWVudCB3aG8gaXMgdXNpbmcgcmVnaXN0cmF0aW9uLi4uCisgICAgLy8g
RklYTUU6IEludm9rZSBSdW4gU2VydmljZSBXb3JrZXIgYWxnb3JpdGhtIHdpdGggYWN0aXZlV29y
a2VyIGFzIHRoZSBhcmd1bWVudC4KKworICAgIC8vIFF1ZXVlIGEgdGFzayB0byBmaXJlIHRoZSBh
Y3RpdmF0ZSBldmVudC4KKyAgICBtX3NlcnZlci5maXJlQWN0aXZhdGVFdmVudChjb25uZWN0aW9u
LCByZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCktPmlkZW50aWZpZXIoKSk7Cit9CisKKy8vIGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNhY3RpdmF0ZSAocG9zdCBhY3RpdmF0
ZSBldmVudCBzdGVwcykuCit2b2lkIFNXU2VydmVySm9iUXVldWU6OmRpZEZpbmlzaEFjdGl2YXRp
b24oU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAg
ICBhdXRvKiByZWdpc3RyYXRpb24gPSBtX3NlcnZlci5nZXRSZWdpc3RyYXRpb24obV9yZWdpc3Ry
YXRpb25LZXkpOworICAgIEFTU0VSVChyZWdpc3RyYXRpb24pOworCisgICAgLy8gUnVuIHRoZSBV
cGRhdGUgV29ya2VyIFN0YXRlIGFsZ29yaXRobSBwYXNzaW5nIHJlZ2lzdHJhdGlvbuKAmXMgYWN0
aXZlIHdvcmtlciBhbmQgYWN0aXZhdGVkIGFzIHRoZSBhcmd1bWVudHMuCisgICAgcmVnaXN0cmF0
aW9uLT51cGRhdGVXb3JrZXJTdGF0ZSh7IH0sICpyZWdpc3RyYXRpb24tPmFjdGl2ZVdvcmtlcigp
LCBTZXJ2aWNlV29ya2VyU3RhdGU6OkFjdGl2YXRlZCk7CiB9CiAKIC8vIGh0dHBzOi8vdzNjLmdp
dGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNydW4tam9iCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5oCmluZGV4IDUyMTU1
YjgzOTkyLi44YmI2MGJmZGY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmgKQEAgLTUxLDYgKzUxLDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoU1dTZXJ2ZXI6OkNv
bm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KTsKICAgICB2b2lkIHNjcmlwdENvbnRleHRTdGFydGVkKFNXU2VydmVyOjpDb25uZWN0aW9uJiwg
U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkRmluaXNoSW5zdGFsbChTV1Nl
cnZlcjo6Q29ubmVjdGlvbiYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nl
c3NmdWwpOworICAgIHZvaWQgZGlkRmluaXNoQWN0aXZhdGlvbihTV1NlcnZlcjo6Q29ubmVjdGlv
biYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGpvYlRp
bWVyRmlyZWQoKTsKQEAgLTY1LDYgKzY2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHRyeUNsZWFy
UmVnaXN0cmF0aW9uKFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CiAgICAgdm9pZCBjbGVhclJlZ2lz
dHJhdGlvbihTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwogICAgIHZvaWQgaW5zdGFsbChTV1NlcnZl
clJlZ2lzdHJhdGlvbiYsIFNXU2VydmVyOjpDb25uZWN0aW9uJiwgU2VydmljZVdvcmtlcklkZW50
aWZpZXIpOworICAgIHZvaWQgdHJ5QWN0aXZhdGUoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBjb25z
dCBTZXJ2aWNlV29ya2VySm9iRGF0YSYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CisgICAgdm9p
ZCBhY3RpdmF0ZShTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhJiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mKTsKIAogICAgIERlcXVlPFNlcnZpY2VXb3JrZXJK
b2JEYXRhPiBtX2pvYlF1ZXVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IDEw
MGIyMTU4MTY0Li4zNWEwZDkyNTQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAg
LTExNCw3ICsxMTQsNyBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpmb3JFYWNoQ29ubmVj
dGlvbihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iLCBjbwogewogICAgIC8vIE5vIG1h
dHRlciB3aGF0LCB3ZSBzZW5kIHRoZSBldmVudCB0byB0aGUgY29ubmVjdGlvbiB0aGF0IHNjaGVk
dWxlZCB0aGUgam9iLiBUaGUgY2xpZW50IHJlZ2lzdHJhdGlvbgogICAgIC8vIG1heSBub3QgaGF2
ZSBnb3R0ZW4gYSBjaGFuY2UgdG8gcmVnaXN0ZXIgaXRzZWxmIHlldC4KLSAgICBpZiAoIW1fY2xp
ZW50UmVnaXN0cmF0aW9uc0J5Q29ubmVjdGlvbi5jb250YWlucyhqb2IuY29ubmVjdGlvbklkZW50
aWZpZXIoKSkpIHsKKyAgICBpZiAoam9iLmNvbm5lY3Rpb25JZGVudGlmaWVyKCkgJiYgIW1fY2xp
ZW50UmVnaXN0cmF0aW9uc0J5Q29ubmVjdGlvbi5jb250YWlucyhqb2IuY29ubmVjdGlvbklkZW50
aWZpZXIoKSkpIHsKICAgICAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3NlcnZlci5nZXRD
b25uZWN0aW9uKGpvYi5jb25uZWN0aW9uSWRlbnRpZmllcigpKSkKICAgICAgICAgICAgIGFwcGx5
KCpjb25uZWN0aW9uKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKaW5kZXggMmIzN2Jh
NGFkM2EuLmVjMzc1ODQ5ZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCkBAIC01Niw2ICs1
NiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMYXN0VXBkYXRlVGltZShkb3VibGUgdGltZSkg
eyBtX2xhc3RVcGRhdGVUaW1lID0gdGltZTsgfQogICAgIFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFD
YWNoZSB1cGRhdGVWaWFDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXBkYXRlVmlhQ2FjaGU7IH0K
IAorICAgIFNXU2VydmVyV29ya2VyKiBpbnN0YWxsaW5nV29ya2VyKCkgeyByZXR1cm4gbV9pbnN0
YWxsaW5nV29ya2VyLmdldCgpOyB9CisgICAgU1dTZXJ2ZXJXb3JrZXIqIHdhaXRpbmdXb3JrZXIo
KSB7IHJldHVybiBtX3dhaXRpbmdXb3JrZXIuZ2V0KCk7IH0KKyAgICBTV1NlcnZlcldvcmtlciog
YWN0aXZlV29ya2VyKCkgeyByZXR1cm4gbV9hY3RpdmVXb3JrZXIuZ2V0KCk7IH0KKwogICAgIHZv
aWQgdXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmLCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUsIFNXU2VydmVyV29ya2VyKik7CiAgICAgdm9p
ZCB1cGRhdGVXb3JrZXJTdGF0ZShjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYsIFNXU2VydmVy
V29ya2VyJiwgU2VydmljZVdvcmtlclN0YXRlKTsKICAgICB2b2lkIGZpcmVVcGRhdGVGb3VuZEV2
ZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24uY3BwCmluZGV4IDg1NmRmMGUwN2U1Li41YjE2OWIxNWIwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTEyOSw2ICsxMjksMTEgQEAgdm9p
ZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmZpcmVJbnN0YWxsRXZlbnQoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgc2VydmljZVdvcmsKICAgICBzZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkZpcmVJbnN0YWxsRXZlbnQoaWRlbnRpZmll
cigpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikpOwogfQogCit2b2lkIFdlYlNXU2VydmVyQ29u
bmVjdGlvbjo6ZmlyZUFjdGl2YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIpCit7CisgICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoTWVzc2FnZXM6
OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpGaXJlQWN0aXZhdGVFdmVudChpZGVudGlm
aWVyKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSk7Cit9CisKIHZvaWQgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpzdGFydEZldGNoKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3RkOjpvcHRp
b25hbDxTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4gc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgRmV0Y2hPcHRpb25zJiBvcHRpb25z
KQogewogICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6U3RhcnRGZXRjaChpZGVudGlmaWVyKCksIGZldGNoSWRlbnRpZmllciwg
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCA5Nzc5NzI4Yjg4MS4uNWI4M2QxNjAxNDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTc5LDYgKzc5LDcgQEAgcHJp
dmF0ZToKICAgICAvLyBNZXNzYWdlcyB0byB0aGUgU1cgY29udGV4dCBXZWJQcm9jZXNzCiAgICAg
dm9pZCBpbnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQoY29uc3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckNvbnRleHREYXRhJikgZmluYWw7CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGZpcmVBY3RpdmF0
ZUV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKIAogICAgIElQ
Qzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBmaW5hbCB7IHJldHVybiBt
X2NvbnRlbnRDb25uZWN0aW9uLnB0cigpOyB9CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRl
c3RpbmF0aW9uSUQoKSBmaW5hbCB7IHJldHVybiBpZGVudGlmaWVyKCk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAKaW5kZXggN2U5NjJlZWY4
ZTEuLjExOGRkZDdmZDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1N0b3JhZ2VQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0
b3JhZ2VQcm9jZXNzLmNwcApAQCAtNDU5LDYgKzQ1OSwxMiBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNz
OjpkaWRGaW5pc2hTZXJ2aWNlV29ya2VySW5zdGFsbCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbgogICAgICAgICBjb25uZWN0aW9uLT5kaWRGaW5pc2hJbnN0YWxsKHJlZ2lzdHJhdGlvbktl
eSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHdhc1N1Y2Nlc3NmdWwpOwogfQogCit2b2lkIFN0
b3JhZ2VQcm9jZXNzOjpkaWRGaW5pc2hTZXJ2aWNlV29ya2VyQWN0aXZhdGlvbih1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bktleSYgcmVnaXN0cmF0aW9uS2V5LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29y
a2VySWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJD
b25uZWN0aW9ucy5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQorICAgICAgICBjb25u
ZWN0aW9uLT5kaWRGaW5pc2hBY3RpdmF0aW9uKHJlZ2lzdHJhdGlvbktleSwgc2VydmljZVdvcmtl
cklkZW50aWZpZXIpOworfQorCiB2b2lkIFN0b3JhZ2VQcm9jZXNzOjpyZWdpc3RlclNXU2VydmVy
Q29ubmVjdGlvbihXZWJTV1NlcnZlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAgICAgQVNT
RVJUKCFtX3N3U2VydmVyQ29ubmVjdGlvbnMuY29udGFpbnMoY29ubmVjdGlvbi5pZGVudGlmaWVy
KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVBy
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaApp
bmRleCAzZDBhNDMxOTA2OS4uNDgyOGVkZDQ5YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmgKQEAgLTEyOSw2ICsxMjksNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlkTm90SGFuZGxlRmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcik7CiAKICAgICB2b2lkIGRpZEZpbmlzaFNl
cnZpY2VXb3JrZXJJbnN0YWxsKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCk7CisgICAgdm9pZCBkaWRG
aW5pc2hTZXJ2aWNlV29ya2VyQWN0aXZhdGlvbih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
bWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogI2VuZGlmCiAjaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0
b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
dG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA5NmQ5NzdhYWRkNS4uZThmMTk4NDM1Yjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3Mu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJv
Y2Vzcy5tZXNzYWdlcy5pbgpAQCAtNDEsNiArNDEsNyBAQCBtZXNzYWdlcyAtPiBTdG9yYWdlUHJv
Y2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2VydmljZVdvcmtlckNvbnRleHRGYWlsZWRUb1N0
YXJ0KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uS2V5IHJlZ2lzdHJhdGlvbktleSwgV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFN0cmluZyBtZXNzYWdlKQog
ICAgIFNlcnZpY2VXb3JrZXJDb250ZXh0U3RhcnRlZCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSByZWdpc3Ry
YXRpb25LZXksIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyKQogICAgIERpZEZpbmlzaFNlcnZpY2VXb3JrZXJJbnN0YWxsKHVpbnQ2NF90IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uS2V5IHJlZ2lzdHJhdGlvbktleSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCk7CisgICAgRGlkRmlu
aXNoU2VydmljZVdvcmtlckFjdGl2YXRpb24odWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgcmVnaXN0cmF0aW9u
S2V5LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRp
Zmllcik7CiAKICAgICBEaWROb3RIYW5kbGVGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKQogICAgIERpZEZhaWxGZXRjaCh1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlm
aWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IGRiMzE5N2M4Yjcz
Li5iYWEwYTRjM2E2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAt
MTU1LDYgKzE1NSwxMiBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpmaXJl
SW5zdGFsbEV2ZW50KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZAogICAgIFNXQ29udGV4dE1h
bmFnZXI6OnNpbmdsZXRvbigpLmZpcmVJbnN0YWxsRXZlbnQoaWRlbnRpZmllcik7CiB9CiAKK3Zv
aWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmZpcmVBY3RpdmF0ZUV2ZW50KHVpbnQ2
NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIFVOVVNFRF9QQVJBTShzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
cik7CisgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuZmlyZUFjdGl2YXRlRXZlbnQo
aWRlbnRpZmllcik7Cit9CisKIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnBv
c3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCiB7CiAgICAgbV9jb25uZWN0aW9uVG9TdG9yYWdl
UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OlBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyQ2xpZW50KGRlc3RpbmF0aW9uSWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNl
IHsgbWVzc2FnZS0+ZGF0YSgpIH0sIHNvdXJjZUlkZW50aWZpZXIsIHNvdXJjZU9yaWdpbiksIDAp
OwpAQCAtMTY5LDYgKzE3NSwxNSBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
OjpkaWRGaW5pc2hJbnN0YWxsKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcgogICAgIG1fY29u
bmVjdGlvblRvU3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpE
aWRGaW5pc2hTZXJ2aWNlV29ya2VySW5zdGFsbCh0aHJlYWRQcm94eS0+dGhyZWFkKCkuc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIoKSwgZGF0YS5yZWdpc3RyYXRpb25LZXksIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCB3YXNTdWNjZXNzZnVsKSwgMCk7CiB9CiAKK3ZvaWQgV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OmRpZEZpbmlzaEFjdGl2YXRpb24oU2VydmljZVdvcmtlcklkZW50
aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCit7CisgICAgYXV0byogdGhyZWFkUHJveHkg
PSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHko
c2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIEFTU0VSVCh0aHJlYWRQcm94eSk7CisKKyAg
ICBhdXRvJiBkYXRhID0gdGhyZWFkUHJveHktPnRocmVhZCgpLmNvbnRleHREYXRhKCk7CisgICAg
bV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nl
c3M6OkRpZEZpbmlzaFNlcnZpY2VXb3JrZXJBY3RpdmF0aW9uKHRocmVhZFByb3h5LT50aHJlYWQo
KS5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpLCBkYXRhLnJlZ2lzdHJhdGlvbktleSwgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpLCAwKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmgKaW5kZXggMDMxYWIyZjExYmMuLjYwN2UwMGVmOGE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmgKQEAgLTUzLDYgKzUzLDcgQEAgcHJpdmF0ZToKICAgICAvLyBXZWJD
b3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25uZWN0aW9uLgogICAgIHZvaWQgcG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
b3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikgZmluYWw7CiAgICAg
dm9pZCBkaWRGaW5pc2hJbnN0YWxsKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBi
b29sIHdhc1N1Y2Nlc3NmdWwpIGZpbmFsOworICAgIHZvaWQgZGlkRmluaXNoQWN0aXZhdGlvbihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CiAKICAgICAvLyBJUEMgbWVz
c2FnZXMuCiAgICAgdm9pZCBzZXJ2aWNlV29ya2VyU3RhcnRlZFdpdGhNZXNzYWdlKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2Up
IGZpbmFsOwpAQCAtNjAsNiArNjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRGZXRjaCh1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlm
aWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OkZldGNoT3B0aW9ucyYmKTsKICAgICB2
b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmIG1lc3NhZ2UsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyJiBzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CiAg
ICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgdm9pZCBmaXJlQWN0
aXZhdGVFdmVudCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9j
b25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzczsKICAgICB1aW50NjRfdCBtX3BhZ2VJRCB7IDAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXgg
MmI1MTUyNjU3NDEuLjVkMjU1NWFkY2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjcsNiArMjcsNyBAQCBtZXNzYWdlcyAtPiBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiB7CiAgICAgU3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3Jl
OjpGZXRjaE9wdGlvbnMgb3B0aW9ucykKICAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRl
bnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTdHJpbmcgc291cmNl
T3JpZ2luKQogICAgIEZpcmVJbnN0YWxsRXZlbnQodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCisg
ICAgRmlyZUFjdGl2YXRlRXZlbnQodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB9CiAKICNlbmRp
Zgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326500</attachid>
            <date>2017-11-09 15:53:52 -0800</date>
            <delta_ts>2017-11-10 09:49:32 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>179436_sw_activate_wip.patch</filename>
            <type>text/plain</type>
            <size>26502</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29u
dGV4dE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U1dDb250ZXh0TWFuYWdlci5jcHAKaW5kZXggNDliNmViM2NhYmEuLmE4ODk2MDdjZDZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
V0NvbnRleHRNYW5hZ2VyLmNwcApAQCAtODMsNiArODMsMTUgQEAgdm9pZCBTV0NvbnRleHRNYW5h
Z2VyOjpmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
CiAgICAgc2VydmljZVdvcmtlci0+dGhyZWFkKCkuZmlyZUluc3RhbGxFdmVudCgpOwogfQogCit2
b2lkIFNXQ29udGV4dE1hbmFnZXI6OmZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byogc2VydmljZVdvcmtlciA9IG1fd29ya2Vy
TWFwLmdldChpZGVudGlmaWVyKTsKKyAgICBpZiAoIXNlcnZpY2VXb3JrZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIHNlcnZpY2VXb3JrZXItPnRocmVhZCgpLmZpcmVBY3RpdmF0ZUV2ZW50KCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgK
aW5kZXggNWQ4NDc3MzM4YjUuLmM1MDdiNmU2NjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCkBAIC00
OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBk
ZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2Fn
ZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9y
aWdpbikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRXaXRo
TWVzc2FnZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25N
ZXNzYWdlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hJbnN0YWxsKFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpID0gMDsKKyAgICAgICAgdmly
dHVhbCB2b2lkIGRpZEZpbmlzaEFjdGl2YXRpb24oU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0g
MDsKICAgICB9OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb25uZWN0aW9uKHN0ZDo6
dW5pcXVlX3B0cjxDb25uZWN0aW9uPiYmKTsKQEAgLTU3LDYgKzU4LDcgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSogc2VydmljZVdvcmtlclRo
cmVhZFByb3h5KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBjb25zdDsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdv
cmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYg
bWVzc2FnZSwgY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIHNvdXJjZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGZpcmVJbnN0YWxsRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIp
OwogCiBwcml2YXRlOgogICAgIFNXQ29udGV4dE1hbmFnZXIoKSA9IGRlZmF1bHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDRiZWJiMmUwZmI0Li4zNGEzMzIyZDIxZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTE0MCw2ICsxNDAsMjMgQEAgdm9pZCBTZXJ2aWNl
V29ya2VyVGhyZWFkOjpmaXJlSW5zdGFsbEV2ZW50KCkKICAgICBydW5Mb29wKCkucG9zdFRhc2so
V1RGTW92ZSh0YXNrKSk7CiB9CiAKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6ZmlyZUFjdGl2
YXRlRXZlbnQoKQoreworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgdGFzayhbc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgPSB0aGlzLT5pZGVudGlmaWVyKCldIChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byYgc2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0
KTsKKyAgICAgICAgYXV0byBhY3RpdmF0ZUV2ZW50ID0gRXh0ZW5kYWJsZUV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmFjdGl2YXRlRXZlbnQsIHsgfSwgRXh0ZW5kYWJsZUV2ZW50OjpJc1RydXN0
ZWQ6Olllcyk7CisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5kaXNwYXRjaEV2ZW50
KGFjdGl2YXRlRXZlbnQpOworCisgICAgICAgIGFjdGl2YXRlRXZlbnQtPndoZW5BbGxFeHRlbmRM
aWZldGltZVByb21pc2VzQXJlU2V0dGxlZChbc2VydmljZVdvcmtlcklkZW50aWZpZXJdKEhhc2hT
ZXQ8UmVmPERPTVByb21pc2U+PiYmKSB7CisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtz
ZXJ2aWNlV29ya2VySWRlbnRpZmllcl0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYg
KGF1dG8qIGNvbm5lY3Rpb24gPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0
aW9uKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmRpZEZpbmlzaEFjdGl2YXRp
b24oc2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0p
OworICAgIH0pOworICAgIHJ1bkxvb3AoKS5wb3N0VGFzayhXVEZNb3ZlKHRhc2spKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZC5oCmluZGV4IDA2Mjc2ZmM1YmZiLi5kNDhhNzE5NGJhYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0RmV0Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6
OkNsaWVudD4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoUmVm
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hh
bm5lbEFycmF5PiYmLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgc291cmNl
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogICAgIHZvaWQgZmlyZUlu
c3RhbGxFdmVudCgpOworICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoKTsKIAogICAgIHVpbnQ2
NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllcjsgfQogICAgIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YSYgY29udGV4dERhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggNzJjOTAz
ZDk0ODAuLmVkNzUzZmQ4MjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApAQCAtMTE3LDYgKzExNywxMSBAQCB2b2lkIFNXU2Vy
dmVyOjpDb25uZWN0aW9uOjpkaWRGaW5pc2hJbnN0YWxsKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25LZXkmCiAgICAgbV9zZXJ2ZXIuZGlkRmluaXNoSW5zdGFsbCgqdGhpcywga2V5LCBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgd2FzU3VjY2Vzc2Z1bCk7CiB9CiAKK3ZvaWQgU1dTZXJ2
ZXI6OkNvbm5lY3Rpb246OmRpZEZpbmlzaEFjdGl2YXRpb24oY29uc3QgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbktleSYga2V5LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcikKK3sKKyAgICBtX3NlcnZlci5kaWRGaW5pc2hBY3RpdmF0aW9uKCp0aGlzLCBr
ZXksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTV1NlcnZlcjo6Q29ubmVj
dGlvbjo6ZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbktleSYga2V5KQogewogICAgIG1fc2VydmVyLmRpZFJlc29sdmVSZWdpc3RyYXRp
b25Qcm9taXNlKCp0aGlzLCBrZXkpOwpAQCAtMjQyLDYgKzI0NywxNCBAQCB2b2lkIFNXU2VydmVy
OjpkaWRGaW5pc2hJbnN0YWxsKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFNlcnZpY2VX
b3JrZXJSZWdpcwogICAgICAgICBqb2JRdWV1ZS0+ZGlkRmluaXNoSW5zdGFsbChjb25uZWN0aW9u
LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgd2FzU3VjY2Vzc2Z1bCk7CiB9CiAKK3ZvaWQgU1dT
ZXJ2ZXI6OmRpZEZpbmlzaEFjdGl2YXRpb24oQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3Qg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYgcmVnaXN0cmF0aW9uS2V5LCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9j
b25uZWN0aW9ucy5jb250YWlucyhjb25uZWN0aW9uLmlkZW50aWZpZXIoKSkpOworCisgICAgaWYg
KGF1dG8qIGpvYlF1ZXVlID0gbV9qb2JRdWV1ZXMuZ2V0KHJlZ2lzdHJhdGlvbktleSkpCisgICAg
ICAgIGpvYlF1ZXVlLT5kaWRGaW5pc2hBY3RpdmF0aW9uKGNvbm5lY3Rpb24sIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTV1NlcnZlcjo6ZGlkUmVzb2x2ZVJlZ2lzdHJhdGlv
blByb21pc2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSYgcmVnaXN0cmF0aW9uS2V5KQogewogICAgIEFTU0VSVChtX2Nvbm5lY3Rpb25z
LmNvbnRhaW5zKGNvbm5lY3Rpb24uaWRlbnRpZmllcigpKSk7CkBAIC0yODksNiArMzAyLDExIEBA
IHZvaWQgU1dTZXJ2ZXI6OmZpcmVJbnN0YWxsRXZlbnQoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
U2VydmljZVdvcmtlcklkZW50aWZpZXIKICAgICBjb25uZWN0aW9uLmZpcmVJbnN0YWxsRXZlbnQo
c2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogfQogCit2b2lkIFNXU2VydmVyOjpmaXJlQWN0aXZh
dGVFdmVudChDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBjb25uZWN0aW9uLmZpcmVBY3RpdmF0ZUV2
ZW50KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTV1NlcnZlcjo6dGFza1Ro
cmVhZEVudHJ5UG9pbnQoKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCmluZGV4IDU4
MGNjMjY5ZmFjLi44ZDAwMmFmZThkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtNjIsNiArNjIsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoY29uc3Qg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcmlw
dENvbnRleHRTdGFydGVkKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBTZXJ2
aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRmlu
aXNoSW5zdGFsbChjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgU2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCk7CisgICAgICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGlkRmluaXNoQWN0aXZhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uS2V5JiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0IFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25LZXkmKTsKICAgICAgICAgY29uc3QgU1dTZXJ2ZXJSZWdpc3RyYXRpb24qIGRv
UmVnaXN0cmF0aW9uTWF0Y2hpbmcoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4s
IGNvbnN0IFVSTCYgY2xpZW50VVJMKSBjb25zdCB7IHJldHVybiBtX3NlcnZlci5kb1JlZ2lzdHJh
dGlvbk1hdGNoaW5nKHRvcE9yaWdpbiwgY2xpZW50VVJMKTsgfQogCkBAIC04OSw2ICs5MCw3IEBA
IHB1YmxpYzoKICAgICAgICAgLy8gTWVzc2FnZXMgdG8gdGhlIFNXIGhvc3QgV2ViUHJvY2Vzcwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgaW5zdGFsbFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0IFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVJ
bnN0YWxsRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKKyAgICAgICAgdmlydHVh
bCB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAK
ICAgICAgICAgU1dTZXJ2ZXImIG1fc2VydmVyOwogICAgIH07CkBAIC0xMTMsNiArMTE1LDcgQEAg
cHVibGljOgogCiAgICAgUmVmPFNXU2VydmVyV29ya2VyPiB1cGRhdGVXb3JrZXIoQ29ubmVjdGlv
biYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBjb25zdCBVUkwmLCBjb25z
dCBTdHJpbmcmIHNjcmlwdCwgV29ya2VyVHlwZSk7CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50
KENvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgdm9pZCBmaXJlQWN0
aXZhdGVFdmVudChDb25uZWN0aW9uJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIFNX
U2VydmVyV29ya2VyKiB3b3JrZXJCeUlEKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIpIGNvbnN0IHsgcmV0dXJuIG1fd29ya2Vyc0J5SUQuZ2V0KGlkZW50aWZpZXIpOyB9CiAgICAg
CiAgICAgQ29ubmVjdGlvbiogZ2V0Q29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVyKSB7IHJl
dHVybiBtX2Nvbm5lY3Rpb25zLmdldChpZGVudGlmaWVyKTsgfQpAQCAtMTI4LDYgKzEzMSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzY3JpcHRDb250ZXh0RmFpbGVkVG9TdGFydChDb25uZWN0aW9u
JiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZvaWQgc2NyaXB0Q29udGV4dFN0
YXJ0ZWQoQ29ubmVjdGlvbiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRGaW5pc2hJbnN0YWxsKENvbm5l
Y3Rpb24mLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgU2VydmljZVdvcmtl
cklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCk7CisgICAgdm9pZCBkaWRGaW5pc2hBY3Rp
dmF0aW9uKENvbm5lY3Rpb24mLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5Jiwg
U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlv
blByb21pc2UoQ29ubmVjdGlvbiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkm
KTsKIAogICAgIHZvaWQgYWRkQ2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihDb25uZWN0
aW9uJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIHVpbnQ2NF90IHJlZ2lz
dHJhdGlvbklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKaW5kZXggYjM4YmFjYTkwODAu
LmJjNDBiNDRjOWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKQEAgLTE0Miw3ICsxNDIsNyBAQCB2
b2lkIFNXU2VydmVySm9iUXVldWU6OmRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKFNXU2Vy
dmVyOjpDb25uZWN0aW9uJiBjb25uZQogfQogCiAvLyBodHRwczovL3czYy5naXRodWIuaW8vU2Vy
dmljZVdvcmtlci8jaW5zdGFsbAotdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRGaW5pc2hJbnN0
YWxsKFNXU2VydmVyOjpDb25uZWN0aW9uJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRp
ZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKQordm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRGaW5p
c2hJbnN0YWxsKFNXU2VydmVyOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpCiB7CiAgICAgYXV0byog
cmVnaXN0cmF0aW9uID0gbV9zZXJ2ZXIuZ2V0UmVnaXN0cmF0aW9uKG1fcmVnaXN0cmF0aW9uS2V5
KTsKICAgICBBU1NFUlQocmVnaXN0cmF0aW9uKTsKQEAgLTE4MCwxNSArMTgwLDY2IEBAIHZvaWQg
U1dTZXJ2ZXJKb2JRdWV1ZTo6ZGlkRmluaXNoSW5zdGFsbChTV1NlcnZlcjo6Q29ubmVjdGlvbiYs
IFNlcnZpY2VXb3JrZXJJZGVuCiAKICAgICBmaW5pc2hDdXJyZW50Sm9iKCk7CiAKLSAgICAvLyBG
SVhNRTogSW52b2tlIFRyeSBBY3RpdmF0ZSB3aXRoIHJlZ2lzdHJhdGlvbgotICAgIC8vIEZJWE1F
OiBEbyB3ZSBuZWVkICJXYWl0IGZvciBhbGwgdGhlIHRhc2tzIHF1ZXVlZCBieSBVcGRhdGUgV29y
a2VyIFN0YXRlIGludm9rZWQgaW4gdGhpcyBhbGdvcml0aG0gaGF2ZSBleGVjdXRlZCIgZmlyc3Q/
Ci0gICAgYXV0byogd2FpdGluZyA9IHJlZ2lzdHJhdGlvbi0+d2FpdGluZ1dvcmtlcigpOwotICAg
IEFTU0VSVCh3YWl0aW5nKTsKKyAgICAvLyBGSVhNRTogV2FpdCBmb3IgYWxsIHRoZSB0YXNrcyBx
dWV1ZWQgYnkgVXBkYXRlIFdvcmtlciBTdGF0ZSBpbnZva2VkIGluIHRoaXMgYWxnb3JpdGhtIGhh
dmUgZXhlY3V0ZWQuCisgICAgdHJ5QWN0aXZhdGUoY29ubmVjdGlvbiwgam9iLCAqcmVnaXN0cmF0
aW9uKTsKK30KKworLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI3RyeS1h
Y3RpdmF0ZS1hbGdvcml0aG0KK3ZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6dHJ5QWN0aXZhdGUoU1dT
ZXJ2ZXI6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRh
JiBqb2IsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24pCit7CisgICAgLy8gSWYg
cmVnaXN0cmF0aW9u4oCZcyB3YWl0aW5nIHdvcmtlciBpcyBudWxsLCByZXR1cm4uCisgICAgaWYg
KCFyZWdpc3RyYXRpb24ud2FpdGluZ1dvcmtlcigpKQorICAgICAgICByZXR1cm47CisgICAgLy8g
SWYgcmVnaXN0cmF0aW9u4oCZcyBhY3RpdmUgd29ya2VyIGlzIG5vdCBudWxsIGFuZCByZWdpc3Ry
YXRpb27igJlzIGFjdGl2ZSB3b3JrZXIncyBzdGF0ZSBpcyBhY3RpdmF0aW5nLCByZXR1cm4uCisg
ICAgaWYgKHJlZ2lzdHJhdGlvbi5hY3RpdmVXb3JrZXIoKSAmJiByZWdpc3RyYXRpb24uYWN0aXZl
V29ya2VyKCktPnN0YXRlKCkgPT0gU2VydmljZVdvcmtlclN0YXRlOjpBY3RpdmF0aW5nKQorICAg
ICAgICByZXR1cm47CisKKyAgICAvLyBJbnZva2UgQWN0aXZhdGUgd2l0aCByZWdpc3RyYXRpb24g
aWYgZWl0aGVyIG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZToKKyAgICAvLyAtIHJlZ2lzdHJhdGlv
buKAmXMgYWN0aXZlIHdvcmtlciBpcyBudWxsLgorICAgIC8vIC0gRklYTUU6IFRoZSByZXN1bHQg
b2YgcnVubmluZyBTZXJ2aWNlIFdvcmtlciBIYXMgTm8gUGVuZGluZyBFdmVudHMgd2l0aCByZWdp
c3RyYXRpb27igJlzIGFjdGl2ZSB3b3JrZXIgaXMgdHJ1ZSwKKyAgICAvLyAgIGFuZCBubyBzZXJ2
aWNlIHdvcmtlciBjbGllbnQgaXMgdXNpbmcgcmVnaXN0cmF0aW9uIG9yIHJlZ2lzdHJhdGlvbuKA
mXMgd2FpdGluZyB3b3JrZXIncyBza2lwIHdhaXRpbmcKKyAgICAvLyAgIGZsYWcgaXMgc2V0Lgor
ICAgIGlmICghcmVnaXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigpKQorICAgICAgICBhY3RpdmF0ZShj
b25uZWN0aW9uLCBqb2IsIHJlZ2lzdHJhdGlvbik7Cit9CisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1
Yi5pby9TZXJ2aWNlV29ya2VyLyNhY3RpdmF0ZQordm9pZCBTV1NlcnZlckpvYlF1ZXVlOjphY3Rp
dmF0ZShTV1NlcnZlcjo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgU2VydmljZVdvcmtl
ckpvYkRhdGEmIGpvYiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbikKK3sKKyAg
ICAvLyBJZiByZWdpc3RyYXRpb27igJlzIHdhaXRpbmcgd29ya2VyIGlzIG51bGwsIGFib3J0IHRo
ZXNlIHN0ZXBzLgorICAgIGlmICghcmVnaXN0cmF0aW9uLndhaXRpbmdXb3JrZXIoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gSWYgcmVnaXN0cmF0aW9u4oCZcyBhY3RpdmUgd29ya2VyIGlz
IG5vdCBudWxsLCB0aGVuOgorICAgIGlmIChyZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCkpIHsK
KyAgICAgICAgLy8gVGVybWluYXRlIHJlZ2lzdHJhdGlvbuKAmXMgYWN0aXZlIHdvcmtlci4KKyAg
ICAgICAgLy8gcmVnaXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigpLT50ZXJtaW5hdGUoKTsKKyAgICAg
ICAgLy8gUnVuIHRoZSBVcGRhdGUgV29ya2VyIFN0YXRlIGFsZ29yaXRobSBwYXNzaW5nIHJlZ2lz
dHJhdGlvbuKAmXMgYWN0aXZlIHdvcmtlciBhbmQgcmVkdW5kYW50IGFzIHRoZSBhcmd1bWVudHMu
CisgICAgICAgIHJlZ2lzdHJhdGlvbi51cGRhdGVXb3JrZXJTdGF0ZShqb2IsICpyZWdpc3RyYXRp
b24uYWN0aXZlV29ya2VyKCksIFNlcnZpY2VXb3JrZXJTdGF0ZTo6UmVkdW5kYW50KTsKKyAgICB9
CisgICAgLy8gUnVuIHRoZSBVcGRhdGUgUmVnaXN0cmF0aW9uIFN0YXRlIGFsZ29yaXRobSBwYXNz
aW5nIHJlZ2lzdHJhdGlvbiwgImFjdGl2ZSIgYW5kIHJlZ2lzdHJhdGlvbuKAmXMgd2FpdGluZyB3
b3JrZXIgYXMgdGhlIGFyZ3VtZW50cy4KKyAgICByZWdpc3RyYXRpb24udXBkYXRlUmVnaXN0cmF0
aW9uU3RhdGUoam9iLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6OkFjdGl2ZSwgcmVn
aXN0cmF0aW9uLndhaXRpbmdXb3JrZXIoKSk7CisgICAgLy8gUnVuIHRoZSBVcGRhdGUgUmVnaXN0
cmF0aW9uIFN0YXRlIGFsZ29yaXRobSBwYXNzaW5nIHJlZ2lzdHJhdGlvbiwgIndhaXRpbmciIGFu
ZCBudWxsIGFzIHRoZSBhcmd1bWVudHMuCisgICAgcmVnaXN0cmF0aW9uLnVwZGF0ZVJlZ2lzdHJh
dGlvblN0YXRlKGpvYiwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpXYWl0aW5nLCBu
dWxscHRyKTsKKyAgICAvLyBSdW4gdGhlIFVwZGF0ZSBXb3JrZXIgU3RhdGUgYWxnb3JpdGhtIHBh
c3NpbmcgcmVnaXN0cmF0aW9u4oCZcyBhY3RpdmUgd29ya2VyIGFuZCBhY3RpdmF0aW5nIGFzIHRo
ZSBhcmd1bWVudHMuCisgICAgcmVnaXN0cmF0aW9uLnVwZGF0ZVdvcmtlclN0YXRlKGpvYiwgKnJl
Z2lzdHJhdGlvbi5hY3RpdmVXb3JrZXIoKSwgU2VydmljZVdvcmtlclN0YXRlOjpBY3RpdmF0aW5n
KTsKKyAgICAvLyBGSVhNRTogRm9yIGVhY2ggc2VydmljZSB3b3JrZXIgY2xpZW50IGNsaWVudCB3
aG9zZSBjcmVhdGlvbiBVUkwgbWF0Y2hlcyByZWdpc3RyYXRpb27igJlzIHNjb3BlIHVybC4uLgor
ICAgIC8vIEZJWE1FOiBGb3IgZWFjaCBzZXJ2aWNlIHdvcmtlciBjbGllbnQgY2xpZW50IHdobyBp
cyB1c2luZyByZWdpc3RyYXRpb24uLi4KKyAgICAvLyBGSVhNRTogSW52b2tlIFJ1biBTZXJ2aWNl
IFdvcmtlciBhbGdvcml0aG0gd2l0aCBhY3RpdmVXb3JrZXIgYXMgdGhlIGFyZ3VtZW50LgorCisg
ICAgLy8gUXVldWUgYSB0YXNrIHRvIGZpcmUgdGhlIGFjdGl2YXRlIGV2ZW50LgorICAgIG1fc2Vy
dmVyLmZpcmVBY3RpdmF0ZUV2ZW50KGNvbm5lY3Rpb24sIHJlZ2lzdHJhdGlvbi5hY3RpdmVXb3Jr
ZXIoKS0+aWRlbnRpZmllcigpKTsKK30KKworLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZp
Y2VXb3JrZXIvI2FjdGl2YXRlIChwb3N0IGFjdGl2YXRlIGV2ZW50IHN0ZXBzKS4KK3ZvaWQgU1dT
ZXJ2ZXJKb2JRdWV1ZTo6ZGlkRmluaXNoQWN0aXZhdGlvbihTV1NlcnZlcjo6Q29ubmVjdGlvbiYs
IFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQoreworICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IG1f
c2VydmVyLmdldFJlZ2lzdHJhdGlvbihtX3JlZ2lzdHJhdGlvbktleSk7CisgICAgQVNTRVJUKHJl
Z2lzdHJhdGlvbik7CiAKLSAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRl
KGpvYiwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpBY3RpdmUsIHdhaXRpbmcpOwot
ICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoam9iLCBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uU3RhdGU6OldhaXRpbmcsIG51bGxwdHIpOwotICAgIHJlZ2lzdHJhdGlv
bi0+dXBkYXRlV29ya2VyU3RhdGUoam9iLCAqd2FpdGluZywgU2VydmljZVdvcmtlclN0YXRlOjpB
Y3RpdmF0aW5nKTsKLSAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVdvcmtlclN0YXRlKGpvYiwgKndh
aXRpbmcsIFNlcnZpY2VXb3JrZXJTdGF0ZTo6QWN0aXZhdGVkKTsKKyAgICAvLyBSdW4gdGhlIFVw
ZGF0ZSBXb3JrZXIgU3RhdGUgYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9u4oCZcyBhY3Rp
dmUgd29ya2VyIGFuZCBhY3RpdmF0ZWQgYXMgdGhlIGFyZ3VtZW50cy4KKyAgICByZWdpc3RyYXRp
b24tPnVwZGF0ZVdvcmtlclN0YXRlKHsgfSwgKnJlZ2lzdHJhdGlvbi0+YWN0aXZlV29ya2VyKCks
IFNlcnZpY2VXb3JrZXJTdGF0ZTo6QWN0aXZhdGVkKTsKKz4+Pj4+Pj4gMTc5NDM2X3N3X2FjdGl2
YXRlCiB9CiAKIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNydW4tam9i
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVySm9iUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJKb2JRdWV1ZS5oCmluZGV4IDU4NDM3ODlhMWU1Li40NTRiN2U3ODQ1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpv
YlF1ZXVlLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2NyaXB0Q29udGV4
dEZhaWxlZFRvU3RhcnQoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKICAgICB2b2lkIHNjcmlwdENvbnRleHRTdGFy
dGVkKFNXU2VydmVyOjpDb25uZWN0aW9uJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAg
IHZvaWQgZGlkRmluaXNoSW5zdGFsbChTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpOworICAgIHZvaWQgZGlkRmluaXNoQWN0
aXZhdGlvbihTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsK
ICAgICB2b2lkIGRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKFNXU2VydmVyOjpDb25uZWN0
aW9uJik7CiAKIHByaXZhdGU6CkBAIC02Niw2ICs2Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0
cnlDbGVhclJlZ2lzdHJhdGlvbihTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwogICAgIHZvaWQgY2xl
YXJSZWdpc3RyYXRpb24oU1dTZXJ2ZXJSZWdpc3RyYXRpb24mKTsKICAgICB2b2lkIGluc3RhbGwo
U1dTZXJ2ZXJSZWdpc3RyYXRpb24mLCBTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKTsKKyAgICB2b2lkIHRyeUFjdGl2YXRlKFNXU2VydmVyOjpDb25uZWN0aW9u
JiwgY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwor
ICAgIHZvaWQgYWN0aXZhdGUoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBjb25zdCBTZXJ2aWNlV29y
a2VySm9iRGF0YSYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CiAKICAgICBEZXF1ZTxTZXJ2aWNl
V29ya2VySm9iRGF0YT4gbV9qb2JRdWV1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcApp
bmRleCA4ZDg0ZGNiOTM5MC4uMmU0ZWZjMTcyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
Y3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6Zm9yRWFj
aENvbm5lY3Rpb24oY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYiwgY28KIHsKICAgICAv
LyBObyBtYXR0ZXIgd2hhdCwgd2Ugc2VuZCB0aGUgZXZlbnQgdG8gdGhlIGNvbm5lY3Rpb24gdGhh
dCBzY2hlZHVsZWQgdGhlIGpvYi4gVGhlIGNsaWVudCByZWdpc3RyYXRpb24KICAgICAvLyBtYXkg
bm90IGhhdmUgZ290dGVuIGEgY2hhbmNlIHRvIHJlZ2lzdGVyIGl0c2VsZiB5ZXQuCi0gICAgaWYg
KCFtX2NsaWVudFJlZ2lzdHJhdGlvbnNCeUNvbm5lY3Rpb24uY29udGFpbnMoam9iLmNvbm5lY3Rp
b25JZGVudGlmaWVyKCkpKSB7CisgICAgaWYgKGpvYi5jb25uZWN0aW9uSWRlbnRpZmllcigpICYm
ICFtX2NsaWVudFJlZ2lzdHJhdGlvbnNCeUNvbm5lY3Rpb24uY29udGFpbnMoam9iLmNvbm5lY3Rp
b25JZGVudGlmaWVyKCkpKSB7CiAgICAgICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zZXJ2
ZXIuZ2V0Q29ubmVjdGlvbihqb2IuY29ubmVjdGlvbklkZW50aWZpZXIoKSkpCiAgICAgICAgICAg
ICBhcHBseSgqY29ubmVjdGlvbik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmNwcAppbmRleCBkYjdhMGFmMWNkNi4uNTMyNGFkZjhiNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xMjQsNiArMTI0LDExIEBAIHZvaWQgV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIHNlcnZpY2VXb3JrCiAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoTWVzc2FnZXM6OldlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpGaXJlSW5zdGFsbEV2ZW50KGlkZW50aWZpZXIoKSwg
c2VydmljZVdvcmtlcklkZW50aWZpZXIpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rp
b246OmZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKQoreworICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKE1lc3NhZ2VzOjpXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6RmlyZUFjdGl2YXRlRXZlbnQoaWRlbnRpZmllcigp
LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikpOworfQorCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVj
dGlvbjo6c3RhcnRGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8
U2VydmljZVdvcmtlcklkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEZldGNoT3B0aW9ucyYgb3B0aW9ucykKIHsK
ICAgICBzZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb246OlN0YXJ0RmV0Y2goaWRlbnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggMzhlZGI0Y2FjNmUuLjQ0MjQ4MDY4Zjg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC03OCw2ICs3OCw3IEBAIHByaXZhdGU6
CiAgICAgLy8gTWVzc2FnZXMgdG8gdGhlIFNXIGNvbnRleHQgV2ViUHJvY2VzcwogICAgIHZvaWQg
aW5zdGFsbFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YSYpIGZpbmFsOwogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVu
dChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CiAKICAgICBJUEM6OkNv
bm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgZmluYWwgeyByZXR1cm4gbV9jb250
ZW50Q29ubmVjdGlvbi5wdHIoKTsgfQogICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5h
dGlvbklEKCkgZmluYWwgeyByZXR1cm4gaWRlbnRpZmllcigpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwCmluZGV4IDdlOTYyZWVmOGUxLi4x
MThkZGQ3ZmQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9y
YWdlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdl
UHJvY2Vzcy5jcHAKQEAgLTQ1OSw2ICs0NTksMTIgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGlk
RmluaXNoU2VydmljZVdvcmtlckluc3RhbGwodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW4K
ICAgICAgICAgY29ubmVjdGlvbi0+ZGlkRmluaXNoSW5zdGFsbChyZWdpc3RyYXRpb25LZXksIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCB3YXNTdWNjZXNzZnVsKTsKIH0KIAordm9pZCBTdG9yYWdl
UHJvY2Vzczo6ZGlkRmluaXNoU2VydmljZVdvcmtlckFjdGl2YXRpb24odWludDY0X3Qgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkm
IHJlZ2lzdHJhdGlvbktleSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3U2VydmVyQ29ubmVj
dGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAgY29ubmVjdGlv
bi0+ZGlkRmluaXNoQWN0aXZhdGlvbihyZWdpc3RyYXRpb25LZXksIHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKTsKK30KKwogdm9pZCBTdG9yYWdlUHJvY2Vzczo6cmVnaXN0ZXJTV1NlcnZlckNvbm5l
Y3Rpb24oV2ViU1dTZXJ2ZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogICAgIEFTU0VSVCgh
bV9zd1NlcnZlckNvbm5lY3Rpb25zLmNvbnRhaW5zKGNvbm5lY3Rpb24uaWRlbnRpZmllcigpKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmgKaW5kZXgg
M2QwYTQzMTkwNjkuLjQ4MjhlZGQ0OWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TdG9yYWdlUHJvY2Vzcy5oCkBAIC0xMjksNiArMTI5LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRpZE5vdEhhbmRsZUZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpOwogCiAgICAgdm9pZCBkaWRGaW5pc2hTZXJ2aWNl
V29ya2VySW5zdGFsbCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpOworICAgIHZvaWQgZGlkRmluaXNo
U2VydmljZVdvcmtlckFjdGl2YXRpb24odWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
ciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3Nh
Z2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKICNlbmRpZgogI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdl
UHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFn
ZVByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOTZkOTc3YWFkZDUuLmU4ZjE5ODQzNWI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3Mu
bWVzc2FnZXMuaW4KQEAgLTQxLDYgKzQxLDcgQEAgbWVzc2FnZXMgLT4gU3RvcmFnZVByb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgewogICAgIFNlcnZpY2VXb3JrZXJDb250ZXh0RmFpbGVkVG9TdGFydCh1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbktleSByZWdpc3RyYXRpb25LZXksIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTdHJpbmcgbWVzc2FnZSkKICAgICBT
ZXJ2aWNlV29ya2VyQ29udGV4dFN0YXJ0ZWQodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgcmVnaXN0cmF0aW9u
S2V5LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllcikKICAgICBEaWRGaW5pc2hTZXJ2aWNlV29ya2VySW5zdGFsbCh1aW50NjRfdCBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktl
eSByZWdpc3RyYXRpb25LZXksIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpOworICAgIERpZEZpbmlzaFNl
cnZpY2VXb3JrZXJBY3RpdmF0aW9uKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IHJlZ2lzdHJhdGlvbktleSwg
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIp
OwogCiAgICAgRGlkTm90SGFuZGxlRmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikKICAgICBEaWRGYWlsRmV0Y2godWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCBkYjMxOTdjOGI3My4uYmFh
MGE0YzNhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTE1NSw2
ICsxNTUsMTIgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZmlyZUluc3Rh
bGxFdmVudCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWQKICAgICBTV0NvbnRleHRNYW5hZ2Vy
OjpzaW5nbGV0b24oKS5maXJlSW5zdGFsbEV2ZW50KGlkZW50aWZpZXIpOwogfQogCit2b2lkIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpmaXJlQWN0aXZhdGVFdmVudCh1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwor
ICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmZpcmVBY3RpdmF0ZUV2ZW50KGlkZW50
aWZpZXIpOworfQorCiB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
ZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYm
IG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlT3JpZ2luKQogewogICAgIG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpQb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckNsaWVudChkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSB7IG1l
c3NhZ2UtPmRhdGEoKSB9LCBzb3VyY2VJZGVudGlmaWVyLCBzb3VyY2VPcmlnaW4pLCAwKTsKQEAg
LTE2OSw2ICsxNzUsMTUgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZGlk
RmluaXNoSW5zdGFsbChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXIKICAgICBtX2Nvbm5lY3Rp
b25Ub1N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6RGlkRmlu
aXNoU2VydmljZVdvcmtlckluc3RhbGwodGhyZWFkUHJveHktPnRocmVhZCgpLnNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKCksIGRhdGEucmVnaXN0cmF0aW9uS2V5LCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgd2FzU3VjY2Vzc2Z1bCksIDApOwogfQogCit2b2lkIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjpkaWRGaW5pc2hBY3RpdmF0aW9uKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQoreworICAgIGF1dG8qIHRocmVhZFByb3h5ID0gU1dD
b250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBBU1NFUlQodGhyZWFkUHJveHkpOworCisgICAgYXV0
byYgZGF0YSA9IHRocmVhZFByb3h5LT50aHJlYWQoKS5jb250ZXh0RGF0YSgpOworICAgIG1fY29u
bmVjdGlvblRvU3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpE
aWRGaW5pc2hTZXJ2aWNlV29ya2VyQWN0aXZhdGlvbih0aHJlYWRQcm94eS0+dGhyZWFkKCkuc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwgZGF0YS5yZWdpc3RyYXRpb25LZXksIHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKSwgMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5oCmluZGV4IDAzMWFiMmYxMWJjLi42MDdlMDBlZjhhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5oCkBAIC01Myw2ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6
U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbi4KICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0
VmFsdWU+JiYgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNl
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pIGZpbmFsOwogICAgIHZvaWQg
ZGlkRmluaXNoSW5zdGFsbChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCB3
YXNTdWNjZXNzZnVsKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmlzaEFjdGl2YXRpb24oV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOwogCiAgICAgLy8gSVBDIG1lc3NhZ2Vz
LgogICAgIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRXaXRoTWVzc2FnZShXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKSBmaW5h
bDsKQEAgLTYwLDYgKzYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0RmV0Y2godWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4sIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJik7CiAgICAgdm9pZCBw
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiBtZXNzYWdlLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
ciYgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogICAgIHZv
aWQgZmlyZUluc3RhbGxFdmVudCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIHZvaWQgZmlyZUFjdGl2YXRl
RXZlbnQodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKTsKIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvblRvU3RvcmFnZVByb2Nlc3M7CiAgICAgdWludDY0X3QgbV9wYWdlSUQgeyAwIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDJiNTE1
MjY1NzQxLi41ZDI1NTVhZGNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI3LDYgKzI3LDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24gewogICAgIFN0YXJ0RmV0Y2godWludDY0X3Qgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4gc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0
Y2hPcHRpb25zIG9wdGlvbnMpCiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZp
ZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgU3RyaW5nIHNvdXJjZU9yaWdp
bikKICAgICBGaXJlSW5zdGFsbEV2ZW50KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIEZp
cmVBY3RpdmF0ZUV2ZW50KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogfQogCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326597</attachid>
            <date>2017-11-10 09:49:32 -0800</date>
            <delta_ts>2017-11-10 10:06:51 -0800</delta_ts>
            <desc>WIP Patch for EWS</desc>
            <filename>179436_sw_activate_wip.patch</filename>
            <type>text/plain</type>
            <size>25557</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29u
dGV4dE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U1dDb250ZXh0TWFuYWdlci5jcHAKaW5kZXggNDliNmViM2NhYmEuLmE4ODk2MDdjZDZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
V0NvbnRleHRNYW5hZ2VyLmNwcApAQCAtODMsNiArODMsMTUgQEAgdm9pZCBTV0NvbnRleHRNYW5h
Z2VyOjpmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
CiAgICAgc2VydmljZVdvcmtlci0+dGhyZWFkKCkuZmlyZUluc3RhbGxFdmVudCgpOwogfQogCit2
b2lkIFNXQ29udGV4dE1hbmFnZXI6OmZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byogc2VydmljZVdvcmtlciA9IG1fd29ya2Vy
TWFwLmdldChpZGVudGlmaWVyKTsKKyAgICBpZiAoIXNlcnZpY2VXb3JrZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIHNlcnZpY2VXb3JrZXItPnRocmVhZCgpLmZpcmVBY3RpdmF0ZUV2ZW50KCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgK
aW5kZXggNWQ4NDc3MzM4YjUuLmM1MDdiNmU2NjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCkBAIC00
OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBk
ZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2Fn
ZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9y
aWdpbikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRXaXRo
TWVzc2FnZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25N
ZXNzYWdlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hJbnN0YWxsKFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpID0gMDsKKyAgICAgICAgdmly
dHVhbCB2b2lkIGRpZEZpbmlzaEFjdGl2YXRpb24oU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0g
MDsKICAgICB9OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb25uZWN0aW9uKHN0ZDo6
dW5pcXVlX3B0cjxDb25uZWN0aW9uPiYmKTsKQEAgLTU3LDYgKzU4LDcgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSogc2VydmljZVdvcmtlclRo
cmVhZFByb3h5KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBjb25zdDsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdv
cmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYg
bWVzc2FnZSwgY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIHNvdXJjZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGZpcmVJbnN0YWxsRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIp
OwogCiBwcml2YXRlOgogICAgIFNXQ29udGV4dE1hbmFnZXIoKSA9IGRlZmF1bHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDRiZWJiMmUwZmI0Li4zNGEzMzIyZDIxZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTE0MCw2ICsxNDAsMjMgQEAgdm9pZCBTZXJ2aWNl
V29ya2VyVGhyZWFkOjpmaXJlSW5zdGFsbEV2ZW50KCkKICAgICBydW5Mb29wKCkucG9zdFRhc2so
V1RGTW92ZSh0YXNrKSk7CiB9CiAKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6ZmlyZUFjdGl2
YXRlRXZlbnQoKQoreworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgdGFzayhbc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgPSB0aGlzLT5pZGVudGlmaWVyKCldIChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byYgc2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0
KTsKKyAgICAgICAgYXV0byBhY3RpdmF0ZUV2ZW50ID0gRXh0ZW5kYWJsZUV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmFjdGl2YXRlRXZlbnQsIHsgfSwgRXh0ZW5kYWJsZUV2ZW50OjpJc1RydXN0
ZWQ6Olllcyk7CisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5kaXNwYXRjaEV2ZW50
KGFjdGl2YXRlRXZlbnQpOworCisgICAgICAgIGFjdGl2YXRlRXZlbnQtPndoZW5BbGxFeHRlbmRM
aWZldGltZVByb21pc2VzQXJlU2V0dGxlZChbc2VydmljZVdvcmtlcklkZW50aWZpZXJdKEhhc2hT
ZXQ8UmVmPERPTVByb21pc2U+PiYmKSB7CisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtz
ZXJ2aWNlV29ya2VySWRlbnRpZmllcl0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYg
KGF1dG8qIGNvbm5lY3Rpb24gPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0
aW9uKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmRpZEZpbmlzaEFjdGl2YXRp
b24oc2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0p
OworICAgIH0pOworICAgIHJ1bkxvb3AoKS5wb3N0VGFzayhXVEZNb3ZlKHRhc2spKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZC5oCmluZGV4IDA2Mjc2ZmM1YmZiLi5kNDhhNzE5NGJhYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0RmV0Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6
OkNsaWVudD4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoUmVm
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hh
bm5lbEFycmF5PiYmLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgc291cmNl
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogICAgIHZvaWQgZmlyZUlu
c3RhbGxFdmVudCgpOworICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoKTsKIAogICAgIHVpbnQ2
NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllcjsgfQogICAgIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YSYgY29udGV4dERhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggYjQyNmNk
MDFhNmEuLmMzYzg5MDAxNWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApAQCAtMTE3LDYgKzExNywxMSBAQCB2b2lkIFNXU2Vy
dmVyOjpDb25uZWN0aW9uOjpkaWRGaW5pc2hJbnN0YWxsKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25LZXkmCiAgICAgbV9zZXJ2ZXIuZGlkRmluaXNoSW5zdGFsbCgqdGhpcywga2V5LCBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgd2FzU3VjY2Vzc2Z1bCk7CiB9CiAKK3ZvaWQgU1dTZXJ2
ZXI6OkNvbm5lY3Rpb246OmRpZEZpbmlzaEFjdGl2YXRpb24oY29uc3QgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbktleSYga2V5LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcikKK3sKKyAgICBtX3NlcnZlci5kaWRGaW5pc2hBY3RpdmF0aW9uKCp0aGlzLCBr
ZXksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTV1NlcnZlcjo6Q29ubmVj
dGlvbjo6ZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbktleSYga2V5KQogewogICAgIG1fc2VydmVyLmRpZFJlc29sdmVSZWdpc3RyYXRp
b25Qcm9taXNlKCp0aGlzLCBrZXkpOwpAQCAtMjQyLDYgKzI0NywxNCBAQCB2b2lkIFNXU2VydmVy
OjpkaWRGaW5pc2hJbnN0YWxsKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFNlcnZpY2VX
b3JrZXJSZWdpcwogICAgICAgICBqb2JRdWV1ZS0+ZGlkRmluaXNoSW5zdGFsbChjb25uZWN0aW9u
LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgd2FzU3VjY2Vzc2Z1bCk7CiB9CiAKK3ZvaWQgU1dT
ZXJ2ZXI6OmRpZEZpbmlzaEFjdGl2YXRpb24oQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3Qg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYgcmVnaXN0cmF0aW9uS2V5LCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9j
b25uZWN0aW9ucy5jb250YWlucyhjb25uZWN0aW9uLmlkZW50aWZpZXIoKSkpOworCisgICAgaWYg
KGF1dG8qIGpvYlF1ZXVlID0gbV9qb2JRdWV1ZXMuZ2V0KHJlZ2lzdHJhdGlvbktleSkpCisgICAg
ICAgIGpvYlF1ZXVlLT5kaWRGaW5pc2hBY3RpdmF0aW9uKGNvbm5lY3Rpb24sIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTV1NlcnZlcjo6ZGlkUmVzb2x2ZVJlZ2lzdHJhdGlv
blByb21pc2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSYgcmVnaXN0cmF0aW9uS2V5KQogewogICAgIEFTU0VSVChtX2Nvbm5lY3Rpb25z
LmNvbnRhaW5zKGNvbm5lY3Rpb24uaWRlbnRpZmllcigpKSk7CkBAIC0yOTUsNiArMzA4LDExIEBA
IHZvaWQgU1dTZXJ2ZXI6OmZpcmVJbnN0YWxsRXZlbnQoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
U2VydmljZVdvcmtlcklkZW50aWZpZXIKICAgICBjb25uZWN0aW9uLmZpcmVJbnN0YWxsRXZlbnQo
c2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogfQogCit2b2lkIFNXU2VydmVyOjpmaXJlQWN0aXZh
dGVFdmVudChDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBjb25uZWN0aW9uLmZpcmVBY3RpdmF0ZUV2
ZW50KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTV1NlcnZlcjo6dGFza1Ro
cmVhZEVudHJ5UG9pbnQoKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCmluZGV4IDZk
N2UzYmQ5OWM0Li4wYWUwMzEyZDE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtNjIsNiArNjIsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoY29uc3Qg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcmlw
dENvbnRleHRTdGFydGVkKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBTZXJ2
aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRmlu
aXNoSW5zdGFsbChjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgU2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCk7CisgICAgICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGlkRmluaXNoQWN0aXZhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uS2V5JiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0IFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25LZXkmKTsKICAgICAgICAgY29uc3QgU1dTZXJ2ZXJSZWdpc3RyYXRpb24qIGRv
UmVnaXN0cmF0aW9uTWF0Y2hpbmcoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4s
IGNvbnN0IFVSTCYgY2xpZW50VVJMKSBjb25zdCB7IHJldHVybiBtX3NlcnZlci5kb1JlZ2lzdHJh
dGlvbk1hdGNoaW5nKHRvcE9yaWdpbiwgY2xpZW50VVJMKTsgfQogCkBAIC04OSw2ICs5MCw3IEBA
IHB1YmxpYzoKICAgICAgICAgLy8gTWVzc2FnZXMgdG8gdGhlIFNXIGhvc3QgV2ViUHJvY2Vzcwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgaW5zdGFsbFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0IFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVJ
bnN0YWxsRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKKyAgICAgICAgdmlydHVh
bCB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAK
ICAgICAgICAgU1dTZXJ2ZXImIG1fc2VydmVyOwogICAgIH07CkBAIC0xMTMsNiArMTE1LDcgQEAg
cHVibGljOgogCiAgICAgUmVmPFNXU2VydmVyV29ya2VyPiB1cGRhdGVXb3JrZXIoQ29ubmVjdGlv
biYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBjb25zdCBVUkwmLCBjb25z
dCBTdHJpbmcmIHNjcmlwdCwgV29ya2VyVHlwZSk7CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50
KENvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgdm9pZCBmaXJlQWN0
aXZhdGVFdmVudChDb25uZWN0aW9uJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIFNX
U2VydmVyV29ya2VyKiB3b3JrZXJCeUlEKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIpIGNvbnN0IHsgcmV0dXJuIG1fd29ya2Vyc0J5SUQuZ2V0KGlkZW50aWZpZXIpOyB9CiAgICAg
CiAgICAgQ29ubmVjdGlvbiogZ2V0Q29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVyKSB7IHJl
dHVybiBtX2Nvbm5lY3Rpb25zLmdldChpZGVudGlmaWVyKTsgfQpAQCAtMTI4LDYgKzEzMSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzY3JpcHRDb250ZXh0RmFpbGVkVG9TdGFydChDb25uZWN0aW9u
JiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZvaWQgc2NyaXB0Q29udGV4dFN0
YXJ0ZWQoQ29ubmVjdGlvbiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRGaW5pc2hJbnN0YWxsKENvbm5l
Y3Rpb24mLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgU2VydmljZVdvcmtl
cklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCk7CisgICAgdm9pZCBkaWRGaW5pc2hBY3Rp
dmF0aW9uKENvbm5lY3Rpb24mLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5Jiwg
U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlv
blByb21pc2UoQ29ubmVjdGlvbiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkm
KTsKIAogICAgIHZvaWQgYWRkQ2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihDb25uZWN0
aW9uJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCmluZGV4IDgwN2M1Mzc3
ZTlkLi5kZjAxNTc5M2NiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCkBAIC0xMzgsNyArMTM4LDcg
QEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShT
V1NlcnZlcjo6Q29ubmVjdGlvbiYgY29ubmUKIH0KIAogLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlv
L1NlcnZpY2VXb3JrZXIvI2luc3RhbGwKLXZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6ZGlkRmluaXNo
SW5zdGFsbChTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCkKK3ZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6ZGlk
RmluaXNoSW5zdGFsbChTV1NlcnZlcjo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU2VydmljZVdv
cmtlcklkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKQogewogICAgIGF1
dG8qIHJlZ2lzdHJhdGlvbiA9IG1fc2VydmVyLmdldFJlZ2lzdHJhdGlvbihtX3JlZ2lzdHJhdGlv
bktleSk7CiAgICAgQVNTRVJUKHJlZ2lzdHJhdGlvbik7CkBAIC0xNzQsMTUgKzE3NCw2OSBAQCB2
b2lkIFNXU2VydmVySm9iUXVldWU6OmRpZEZpbmlzaEluc3RhbGwoU1dTZXJ2ZXI6OkNvbm5lY3Rp
b24mLCBTZXJ2aWNlV29ya2VySWRlbgogCiAgICAgZmluaXNoQ3VycmVudEpvYigpOwogCi0gICAg
Ly8gRklYTUU6IEludm9rZSBUcnkgQWN0aXZhdGUgd2l0aCByZWdpc3RyYXRpb24KLSAgICAvLyBG
SVhNRTogRG8gd2UgbmVlZCAiV2FpdCBmb3IgYWxsIHRoZSB0YXNrcyBxdWV1ZWQgYnkgVXBkYXRl
IFdvcmtlciBTdGF0ZSBpbnZva2VkIGluIHRoaXMgYWxnb3JpdGhtIGhhdmUgZXhlY3V0ZWQiIGZp
cnN0PwotICAgIGF1dG8qIHdhaXRpbmcgPSByZWdpc3RyYXRpb24tPndhaXRpbmdXb3JrZXIoKTsK
LSAgICBBU1NFUlQod2FpdGluZyk7CisgICAgLy8gRklYTUU6IFdhaXQgZm9yIGFsbCB0aGUgdGFz
a3MgcXVldWVkIGJ5IFVwZGF0ZSBXb3JrZXIgU3RhdGUgaW52b2tlZCBpbiB0aGlzIGFsZ29yaXRo
bSBoYXZlIGV4ZWN1dGVkLgorICAgIHRyeUFjdGl2YXRlKGNvbm5lY3Rpb24sICpyZWdpc3RyYXRp
b24pOworfQorCisvLyBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jdHJ5LWFj
dGl2YXRlLWFsZ29yaXRobQordm9pZCBTV1NlcnZlckpvYlF1ZXVlOjp0cnlBY3RpdmF0ZShTV1Nl
cnZlcjo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lz
dHJhdGlvbikKK3sKKyAgICAvLyBJZiByZWdpc3RyYXRpb27igJlzIHdhaXRpbmcgd29ya2VyIGlz
IG51bGwsIHJldHVybi4KKyAgICBpZiAoIXJlZ2lzdHJhdGlvbi53YWl0aW5nV29ya2VyKCkpCisg
ICAgICAgIHJldHVybjsKKyAgICAvLyBJZiByZWdpc3RyYXRpb27igJlzIGFjdGl2ZSB3b3JrZXIg
aXMgbm90IG51bGwgYW5kIHJlZ2lzdHJhdGlvbuKAmXMgYWN0aXZlIHdvcmtlcidzIHN0YXRlIGlz
IGFjdGl2YXRpbmcsIHJldHVybi4KKyAgICBpZiAocmVnaXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigp
ICYmIHJlZ2lzdHJhdGlvbi5hY3RpdmVXb3JrZXIoKS0+c3RhdGUoKSA9PSBTZXJ2aWNlV29ya2Vy
U3RhdGU6OkFjdGl2YXRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEludm9rZSBBY3Rp
dmF0ZSB3aXRoIHJlZ2lzdHJhdGlvbiBpZiBlaXRoZXIgb2YgdGhlIGZvbGxvd2luZyBpcyB0cnVl
OgorICAgIC8vIC0gcmVnaXN0cmF0aW9u4oCZcyBhY3RpdmUgd29ya2VyIGlzIG51bGwuCisgICAg
Ly8gLSBGSVhNRTogVGhlIHJlc3VsdCBvZiBydW5uaW5nIFNlcnZpY2UgV29ya2VyIEhhcyBObyBQ
ZW5kaW5nIEV2ZW50cyB3aXRoIHJlZ2lzdHJhdGlvbuKAmXMgYWN0aXZlIHdvcmtlciBpcyB0cnVl
LAorICAgIC8vICAgYW5kIG5vIHNlcnZpY2Ugd29ya2VyIGNsaWVudCBpcyB1c2luZyByZWdpc3Ry
YXRpb24gb3IgcmVnaXN0cmF0aW9u4oCZcyB3YWl0aW5nIHdvcmtlcidzIHNraXAgd2FpdGluZwor
ICAgIC8vICAgZmxhZyBpcyBzZXQuCisgICAgaWYgKCFyZWdpc3RyYXRpb24uYWN0aXZlV29ya2Vy
KCkpCisgICAgICAgIGFjdGl2YXRlKGNvbm5lY3Rpb24sIHJlZ2lzdHJhdGlvbik7Cit9CisKKy8v
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNhY3RpdmF0ZQordm9pZCBTV1Nl
cnZlckpvYlF1ZXVlOjphY3RpdmF0ZShTV1NlcnZlcjo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
U1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbikKK3sKKyAgICAvLyBJZiByZWdpc3Ry
YXRpb27igJlzIHdhaXRpbmcgd29ya2VyIGlzIG51bGwsIGFib3J0IHRoZXNlIHN0ZXBzLgorICAg
IGlmICghcmVnaXN0cmF0aW9uLndhaXRpbmdXb3JrZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gSWYgcmVnaXN0cmF0aW9u4oCZcyBhY3RpdmUgd29ya2VyIGlzIG5vdCBudWxsLCB0aGVu
OgorICAgIGlmIChyZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCkpIHsKKyAgICAgICAgLy8gVGVy
bWluYXRlIHJlZ2lzdHJhdGlvbuKAmXMgYWN0aXZlIHdvcmtlci4KKyAgICAgICAgLy8gcmVnaXN0
cmF0aW9uLmFjdGl2ZVdvcmtlcigpLT50ZXJtaW5hdGUoKTsKKyAgICAgICAgLy8gUnVuIHRoZSBV
cGRhdGUgV29ya2VyIFN0YXRlIGFsZ29yaXRobSBwYXNzaW5nIHJlZ2lzdHJhdGlvbuKAmXMgYWN0
aXZlIHdvcmtlciBhbmQgcmVkdW5kYW50IGFzIHRoZSBhcmd1bWVudHMuCisgICAgICAgIHJlZ2lz
dHJhdGlvbi51cGRhdGVXb3JrZXJTdGF0ZSgqcmVnaXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigpLCBT
ZXJ2aWNlV29ya2VyU3RhdGU6OlJlZHVuZGFudCk7CisgICAgfQorICAgIC8vIFJ1biB0aGUgVXBk
YXRlIFJlZ2lzdHJhdGlvbiBTdGF0ZSBhbGdvcml0aG0gcGFzc2luZyByZWdpc3RyYXRpb24sICJh
Y3RpdmUiIGFuZCByZWdpc3RyYXRpb27igJlzIHdhaXRpbmcgd29ya2VyIGFzIHRoZSBhcmd1bWVu
dHMuCisgICAgcmVnaXN0cmF0aW9uLnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25TdGF0ZTo6QWN0aXZlLCByZWdpc3RyYXRpb24ud2FpdGluZ1dvcmtlcigp
KTsKKyAgICAvLyBSdW4gdGhlIFVwZGF0ZSBSZWdpc3RyYXRpb24gU3RhdGUgYWxnb3JpdGhtIHBh
c3NpbmcgcmVnaXN0cmF0aW9uLCAid2FpdGluZyIgYW5kIG51bGwgYXMgdGhlIGFyZ3VtZW50cy4K
KyAgICByZWdpc3RyYXRpb24udXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvblN0YXRlOjpXYWl0aW5nLCBudWxscHRyKTsKKyAgICAvLyBSdW4gdGhlIFVwZGF0
ZSBXb3JrZXIgU3RhdGUgYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9u4oCZcyBhY3RpdmUg
d29ya2VyIGFuZCBhY3RpdmF0aW5nIGFzIHRoZSBhcmd1bWVudHMuCisgICAgcmVnaXN0cmF0aW9u
LnVwZGF0ZVdvcmtlclN0YXRlKCpyZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCksIFNlcnZpY2VX
b3JrZXJTdGF0ZTo6QWN0aXZhdGluZyk7CisgICAgLy8gRklYTUU6IEZvciBlYWNoIHNlcnZpY2Ug
d29ya2VyIGNsaWVudCBjbGllbnQgd2hvc2UgY3JlYXRpb24gVVJMIG1hdGNoZXMgcmVnaXN0cmF0
aW9u4oCZcyBzY29wZSB1cmwuLi4KKyAgICAvLyBGSVhNRTogRm9yIGVhY2ggc2VydmljZSB3b3Jr
ZXIgY2xpZW50IGNsaWVudCB3aG8gaXMgdXNpbmcgcmVnaXN0cmF0aW9uLi4uCisgICAgLy8gRklY
TUU6IEludm9rZSBSdW4gU2VydmljZSBXb3JrZXIgYWxnb3JpdGhtIHdpdGggYWN0aXZlV29ya2Vy
IGFzIHRoZSBhcmd1bWVudC4KKworICAgIC8vIFF1ZXVlIGEgdGFzayB0byBmaXJlIHRoZSBhY3Rp
dmF0ZSBldmVudC4KKyAgICBtX3NlcnZlci5maXJlQWN0aXZhdGVFdmVudChjb25uZWN0aW9uLCBy
ZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCktPmlkZW50aWZpZXIoKSk7Cit9CisKKy8vIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNhY3RpdmF0ZSAocG9zdCBhY3RpdmF0ZSBl
dmVudCBzdGVwcykuCit2b2lkIFNXU2VydmVySm9iUXVldWU6OmRpZEZpbmlzaEFjdGl2YXRpb24o
U1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29y
a2VySWRlbnRpZmllcikKK3sKKyAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBtX3NlcnZlci5nZXRS
ZWdpc3RyYXRpb24obV9yZWdpc3RyYXRpb25LZXkpOworICAgIGlmICghcmVnaXN0cmF0aW9uKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbi0+YWN0aXZlV29ya2VyKCkg
fHwgcmVnaXN0cmF0aW9uLT5hY3RpdmVXb3JrZXIoKS0+aWRlbnRpZmllcigpICE9IHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CiAKLSAgICByZWdpc3RyYXRpb24tPnVw
ZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6QWN0
aXZlLCB3YWl0aW5nKTsKLSAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRl
KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6V2FpdGluZywgbnVsbHB0cik7Ci0gICAg
cmVnaXN0cmF0aW9uLT51cGRhdGVXb3JrZXJTdGF0ZSgqd2FpdGluZywgU2VydmljZVdvcmtlclN0
YXRlOjpBY3RpdmF0aW5nKTsKLSAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVdvcmtlclN0YXRlKCp3
YWl0aW5nLCBTZXJ2aWNlV29ya2VyU3RhdGU6OkFjdGl2YXRlZCk7CisgICAgLy8gUnVuIHRoZSBV
cGRhdGUgV29ya2VyIFN0YXRlIGFsZ29yaXRobSBwYXNzaW5nIHJlZ2lzdHJhdGlvbuKAmXMgYWN0
aXZlIHdvcmtlciBhbmQgYWN0aXZhdGVkIGFzIHRoZSBhcmd1bWVudHMuCisgICAgcmVnaXN0cmF0
aW9uLT51cGRhdGVXb3JrZXJTdGF0ZSgqcmVnaXN0cmF0aW9uLT5hY3RpdmVXb3JrZXIoKSwgU2Vy
dmljZVdvcmtlclN0YXRlOjpBY3RpdmF0ZWQpOwogfQogCiAvLyBodHRwczovL3czYy5naXRodWIu
aW8vU2VydmljZVdvcmtlci8jcnVuLWpvYgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuaAppbmRleCA1ODQzNzg5YTFl
NS4uNzlmZTExNDdjOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5oCkBAIC01MSw2ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KFNXU2VydmVyOjpDb25uZWN0
aW9uJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAg
ICAgdm9pZCBzY3JpcHRDb250ZXh0U3RhcnRlZChTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZEZpbmlzaEluc3RhbGwoU1dTZXJ2ZXI6
OkNvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVs
KTsKKyAgICB2b2lkIGRpZEZpbmlzaEFjdGl2YXRpb24oU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRSZXNvbHZlUmVnaXN0cmF0aW9u
UHJvbWlzZShTV1NlcnZlcjo6Q29ubmVjdGlvbiYpOwogCiBwcml2YXRlOgpAQCAtNjYsNiArNjcs
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgdHJ5Q2xlYXJSZWdpc3RyYXRpb24oU1dTZXJ2ZXJSZWdp
c3RyYXRpb24mKTsKICAgICB2b2lkIGNsZWFyUmVnaXN0cmF0aW9uKFNXU2VydmVyUmVnaXN0cmF0
aW9uJik7CiAgICAgdm9pZCBpbnN0YWxsKFNXU2VydmVyUmVnaXN0cmF0aW9uJiwgU1dTZXJ2ZXI6
OkNvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgdm9pZCB0cnlBY3Rp
dmF0ZShTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CisgICAg
dm9pZCBhY3RpdmF0ZShTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIFNXU2VydmVyUmVnaXN0cmF0aW9u
Jik7CiAKICAgICBEZXF1ZTxTZXJ2aWNlV29ya2VySm9iRGF0YT4gbV9qb2JRdWV1ZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCAwNjI0YjUzOTgyOS4uNmJj
NTg5YTk1NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0x
MjQsNiArMTI0LDExIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpmaXJlSW5zdGFsbEV2
ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrCiAgICAgc2VuZFRvQ29udGV4
dFByb2Nlc3MoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpGaXJlSW5z
dGFsbEV2ZW50KGlkZW50aWZpZXIoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIpKTsKIH0KIAor
dm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQoreworICAgIHNlbmRUb0NvbnRl
eHRQcm9jZXNzKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6RmlyZUFj
dGl2YXRlRXZlbnQoaWRlbnRpZmllcigpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikpOworfQor
CiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCh1aW50NjRfdCBmZXRjaElk
ZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlcklkZW50aWZpZXI+IHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEZl
dGNoT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBzZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdl
czo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2goaWRlbnRpZmllcigp
LCBmZXRjaElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRp
b25zKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggMTM2MWMyYzE2
OWIuLjdmMWNkNTFlY2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBA
IC03OCw2ICs3OCw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZXMgdG8gdGhlIFNXIGNvbnRl
eHQgV2ViUHJvY2VzcwogICAgIHZvaWQgaW5zdGFsbFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYpIGZpbmFsOwogICAgIHZvaWQgZmly
ZUluc3RhbGxFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7Cisg
ICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
cikgZmluYWw7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9u
KCkgZmluYWwgeyByZXR1cm4gbV9jb250ZW50Q29ubmVjdGlvbi5wdHIoKTsgfQogICAgIHVpbnQ2
NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgZmluYWwgeyByZXR1cm4gaWRlbnRpZmll
cigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3Mu
Y3BwCmluZGV4IDdlOTYyZWVmOGUxLi4xMThkZGQ3ZmQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAKQEAgLTQ1OSw2ICs0NTksMTIgQEAg
dm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGlkRmluaXNoU2VydmljZVdvcmtlckluc3RhbGwodWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW4KICAgICAgICAgY29ubmVjdGlvbi0+ZGlkRmluaXNoSW5z
dGFsbChyZWdpc3RyYXRpb25LZXksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCB3YXNTdWNjZXNz
ZnVsKTsKIH0KIAordm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGlkRmluaXNoU2VydmljZVdvcmtlckFj
dGl2YXRpb24odWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8qIGNvbm5l
Y3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyKSkKKyAgICAgICAgY29ubmVjdGlvbi0+ZGlkRmluaXNoQWN0aXZhdGlvbihyZWdpc3RyYXRp
b25LZXksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTdG9yYWdlUHJvY2Vz
czo6cmVnaXN0ZXJTV1NlcnZlckNvbm5lY3Rpb24oV2ViU1dTZXJ2ZXJDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKQogewogICAgIEFTU0VSVCghbV9zd1NlcnZlckNvbm5lY3Rpb25zLmNvbnRhaW5zKGNv
bm5lY3Rpb24uaWRlbnRpZmllcigpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1N0b3JhZ2VQcm9jZXNzLmgKaW5kZXggM2QwYTQzMTkwNjkuLjQ4MjhlZGQ0OWIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oCkBAIC0xMjksNiAr
MTI5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZE5vdEhhbmRsZUZldGNoKHVpbnQ2NF90IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpOwogCiAg
ICAgdm9pZCBkaWRGaW5pc2hTZXJ2aWNlV29ya2VySW5zdGFsbCh1aW50NjRfdCBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bktleSYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3Nm
dWwpOworICAgIHZvaWQgZGlkRmluaXNoU2VydmljZVdvcmtlckFjdGl2YXRpb24odWludDY0X3Qg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25LZXkmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAg
dm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKICNlbmRp
ZgogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOTZkOTc3
YWFkZDUuLmU4ZjE5ODQzNWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTQxLDYgKzQxLDcgQEAgbWVz
c2FnZXMgLT4gU3RvcmFnZVByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNlcnZpY2VXb3Jr
ZXJDb250ZXh0RmFpbGVkVG9TdGFydCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSByZWdpc3RyYXRpb25LZXks
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBTdHJpbmcgbWVzc2FnZSkKICAgICBTZXJ2aWNlV29ya2VyQ29udGV4dFN0YXJ0ZWQodWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25LZXkgcmVnaXN0cmF0aW9uS2V5LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKICAgICBEaWRGaW5pc2hTZXJ2aWNlV29ya2Vy
SW5zdGFsbCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSByZWdpc3RyYXRpb25LZXksIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nl
c3NmdWwpOworICAgIERpZEZpbmlzaFNlcnZpY2VXb3JrZXJBY3RpdmF0aW9uKHVpbnQ2NF90IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uS2V5IHJlZ2lzdHJhdGlvbktleSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
c2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCiAgICAgRGlkTm90SGFuZGxlRmV0Y2godWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikK
ICAgICBEaWRGYWlsRmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IGZldGNoSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNw
cAppbmRleCBkYjMxOTdjOGI3My4uYmFhMGE0YzNhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHAKQEAgLTE1NSw2ICsxNTUsMTIgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6ZmlyZUluc3RhbGxFdmVudCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWQKICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5maXJlSW5zdGFsbEV2ZW50KGlk
ZW50aWZpZXIpOwogfQogCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpmaXJl
QWN0aXZhdGVFdmVudCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigp
LmZpcmVBY3RpdmF0ZUV2ZW50KGlkZW50aWZpZXIpOworfQorCiB2b2lkIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQogewogICAgIG1f
Y29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNz
OjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChkZXN0aW5hdGlvbklkZW50aWZpZXIs
IElQQzo6RGF0YVJlZmVyZW5jZSB7IG1lc3NhZ2UtPmRhdGEoKSB9LCBzb3VyY2VJZGVudGlmaWVy
LCBzb3VyY2VPcmlnaW4pLCAwKTsKQEAgLTE2OSw2ICsxNzUsMTUgQEAgdm9pZCBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZGlkRmluaXNoSW5zdGFsbChTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXIKICAgICBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpTdG9yYWdlUHJvY2Vzczo6RGlkRmluaXNoU2VydmljZVdvcmtlckluc3RhbGwodGhyZWFkUHJv
eHktPnRocmVhZCgpLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGRhdGEucmVnaXN0cmF0
aW9uS2V5LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgd2FzU3VjY2Vzc2Z1bCksIDApOwogfQog
Cit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpkaWRGaW5pc2hBY3RpdmF0aW9u
KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQoreworICAg
IGF1dG8qIHRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBBU1NFUlQo
dGhyZWFkUHJveHkpOworCisgICAgYXV0byYgZGF0YSA9IHRocmVhZFByb3h5LT50aHJlYWQoKS5j
b250ZXh0RGF0YSgpOworICAgIG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpEaWRGaW5pc2hTZXJ2aWNlV29ya2VyQWN0aXZhdGlvbih0
aHJlYWRQcm94eS0+dGhyZWFkKCkuc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwgZGF0YS5y
ZWdpc3RyYXRpb25LZXksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSwgMCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4IDAzMWFiMmYxMWJjLi42MDdlMDBlZjhh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC01Myw2ICs1Myw3IEBAIHBy
aXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbi4KICAg
ICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxX
ZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VP
cmlnaW4pIGZpbmFsOwogICAgIHZvaWQgZGlkRmluaXNoSW5zdGFsbChXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKSBmaW5hbDsKKyAgICB2b2lkIGRp
ZEZpbmlzaEFjdGl2YXRpb24oV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFs
OwogCiAgICAgLy8gSVBDIG1lc3NhZ2VzLgogICAgIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRX
aXRoTWVzc2FnZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBleGNlcHRpb25NZXNzYWdlKSBmaW5hbDsKQEAgLTYwLDYgKzYxLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHN0YXJ0RmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllcj4sIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpGZXRj
aE9wdGlvbnMmJik7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmll
ciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBjb25zdCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VPcmlnaW4pOwogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudCh1aW50NjRfdCBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIp
OworICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIAogICAgIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3M7CiAgICAgdWludDY0
X3QgbV9wYWdlSUQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCmluZGV4IDJiNTE1MjY1NzQxLi41ZDI1NTVhZGNjOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI3LDYgKzI3LDcg
QEAgbWVzc2FnZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gewogICAgIFN0YXJ0
RmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNo
SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
cj4gc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMpCiAgICAgUG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRp
ZmllciwgU3RyaW5nIHNvdXJjZU9yaWdpbikKICAgICBGaXJlSW5zdGFsbEV2ZW50KHVpbnQ2NF90
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBpZGVudGlmaWVyKQorICAgIEZpcmVBY3RpdmF0ZUV2ZW50KHVpbnQ2NF90IHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVu
dGlmaWVyKQogfQogCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326599</attachid>
            <date>2017-11-10 10:06:51 -0800</date>
            <delta_ts>2017-11-10 10:43:31 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>179436_sw_activate_wip.patch</filename>
            <type>text/plain</type>
            <size>27922</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2lj
LWFjdGl2YXRlLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL2Jhc2ljLWFjdGl2YXRlLWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWE3YzFiZDQ3Y2YKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1hY3RpdmF0
ZS1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTOiBzZXJ2aWNlIHdvcmtl
ciByZWNlaXZlZCBhY3RpdmF0ZSBldmVudCBhbmQgcmVzb2x2ZWQgdGhlIGV4dGVuZCBsaWZldGlt
ZSBwcm9taXNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL2Jhc2ljLWFjdGl2YXRlLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9iYXNpYy1hY3RpdmF0ZS1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42YTc5MTUwMmMzZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLWFjdGl2YXRlLWV2
ZW50Lmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvc3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0PgorbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgaWYgKGV2ZW50LmRhdGEpCisgICAgICAgIGxvZygiUEFT
Uzogc2VydmljZSB3b3JrZXIgcmVjZWl2ZWQgYWN0aXZhdGUgZXZlbnQgYW5kIHJlc29sdmVkIHRo
ZSBleHRlbmQgbGlmZXRpbWUgcHJvbWlzZSIpOworICAgIGVsc2UKKyAgICAgICAgbG9nKCJGQUlM
OiBzZXJ2aWNlIHdvcmtlciBkaWQgbm90IHJlY2VpdmUgYWN0aXZhdGUgZXZlbnQgb3IgZGlkIG5v
dCByZXNvbHZlIHRoZSBleHRlbmQgbGlmZXRpbWUgcHJvbWlzZSIpOworCisgICAgZmluaXNoU1dU
ZXN0KCk7Cit9KTsKKworbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNl
cy9iYXNpYy1hY3RpdmF0ZS1ldmVudC13b3JrZXIuanMiLCB7IH0pLnRoZW4oZnVuY3Rpb24ocmVn
aXN0cmF0aW9uKSB7CisgICAgIHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZywg
ImFjdGl2YXRlZCIpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICByZWdpc3RyYXRpb24uYWN0
aXZlLnBvc3RNZXNzYWdlKCJDaGVja1Jlc29sdmVkRXh0ZW5kTGlmZXRpbWVQcm9taXNlIik7Cisg
ICAgIH0pOworfSwgZnVuY3Rpb24oKSB7CisgICAgbG9nKCJGQUlMOiBGYWlsZWQgdG8gcmVnaXN0
ZXIgdGhlIHNlcnZpY2Ugd29ya2VyIik7CisgICAgZmluaXNoU1dUZXN0KCk7Cit9KTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLWFjdGl2YXRlLWV2ZW50LXdvcmtlci5q
cyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNp
Yy1hY3RpdmF0ZS1ldmVudC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjQxMDBmMWU3Zjk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLWFjdGl2YXRlLWV2ZW50LXdv
cmtlci5qcwpAQCAtMCwwICsxLDE3IEBACitsZXQgcmVzb2x2ZWRFeHRlbmRMaWZldGltZVByb21p
c2UgPSBmYWxzZTsKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCJpbnN0YWxsIiwgKGV2ZW50KSA9
PiB7CisgICAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCJhY3RpdmF0ZSIsIChldmVudCkgPT4gewor
ICAgICAgICBldmVudC53YWl0VW50aWwobmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4g
eworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgICAgcmVzb2x2
ZWRFeHRlbmRMaWZldGltZVByb21pc2UgPSB0cnVlOworICAgICAgICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgICAgIH0sIDUwKTsKKyAgICAgICAgfSkpOworICAgIH0pOworfSk7CisKK3Nl
bGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4geworICAgIGV2ZW50LnNv
dXJjZS5wb3N0TWVzc2FnZShyZXNvbHZlZEV4dGVuZExpZmV0aW1lUHJvbWlzZSk7Cit9KTsKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250
ZXh0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
V0NvbnRleHRNYW5hZ2VyLmNwcAppbmRleCA0OWI2ZWIzY2FiYS4uYTg4OTYwN2NkNmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NX
Q29udGV4dE1hbmFnZXIuY3BwCkBAIC04Myw2ICs4MywxNSBAQCB2b2lkIFNXQ29udGV4dE1hbmFn
ZXI6OmZpcmVJbnN0YWxsRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikK
ICAgICBzZXJ2aWNlV29ya2VyLT50aHJlYWQoKS5maXJlSW5zdGFsbEV2ZW50KCk7CiB9CiAKK3Zv
aWQgU1dDb250ZXh0TWFuYWdlcjo6ZmlyZUFjdGl2YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50
aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvKiBzZXJ2aWNlV29ya2VyID0gbV93b3JrZXJN
YXAuZ2V0KGlkZW50aWZpZXIpOworICAgIGlmICghc2VydmljZVdvcmtlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgc2VydmljZVdvcmtlci0+dGhyZWFkKCkuZmlyZUFjdGl2YXRlRXZlbnQoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaApp
bmRleCA1ZDg0NzczMzhiNS4uYzUwN2I2ZTY2NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKQEAgLTQ4
LDYgKzQ4LDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGRl
c3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdl
LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3Jp
Z2luKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXJ2aWNlV29ya2VyU3RhcnRlZFdpdGhN
ZXNzYWdlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1l
c3NhZ2UpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaEluc3RhbGwoU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCkgPSAwOworICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoQWN0aXZhdGlvbihTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAw
OwogICAgIH07CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvbm5lY3Rpb24oc3RkOjp1
bmlxdWVfcHRyPENvbm5lY3Rpb24+JiYpOwpAQCAtNTcsNiArNTgsNyBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgU2VydmljZVdvcmtlclRocmVhZFByb3h5KiBzZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkoU2VydmljZVdvcmtlcklkZW50aWZpZXIpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBt
ZXNzYWdlLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgc291cmNlSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZmlyZUluc3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7
CiAKIHByaXZhdGU6CiAgICAgU1dDb250ZXh0TWFuYWdlcigpID0gZGVmYXVsdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5jcHAKaW5kZXggNGJlYmIyZTBmYjQuLjM0YTMzMjJkMjFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtMTQwLDYgKzE0MCwyMyBAQCB2b2lkIFNlcnZpY2VX
b3JrZXJUaHJlYWQ6OmZpcmVJbnN0YWxsRXZlbnQoKQogICAgIHJ1bkxvb3AoKS5wb3N0VGFzayhX
VEZNb3ZlKHRhc2spKTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpmaXJlQWN0aXZh
dGVFdmVudCgpCit7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB0YXNrKFtzZXJ2
aWNlV29ya2VySWRlbnRpZmllciA9IHRoaXMtPmlkZW50aWZpZXIoKV0gKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgICAgICBhdXRvJiBzZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQp
OworICAgICAgICBhdXRvIGFjdGl2YXRlRXZlbnQgPSBFeHRlbmRhYmxlRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuYWN0aXZhdGVFdmVudCwgeyB9LCBFeHRlbmRhYmxlRXZlbnQ6OklzVHJ1c3Rl
ZDo6WWVzKTsKKyAgICAgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmRpc3BhdGNoRXZlbnQo
YWN0aXZhdGVFdmVudCk7CisKKyAgICAgICAgYWN0aXZhdGVFdmVudC0+d2hlbkFsbEV4dGVuZExp
ZmV0aW1lUHJvbWlzZXNBcmVTZXR0bGVkKFtzZXJ2aWNlV29ya2VySWRlbnRpZmllcl0oSGFzaFNl
dDxSZWY8RE9NUHJvbWlzZT4+JiYpIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Nl
cnZpY2VXb3JrZXJJZGVudGlmaWVyXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAo
YXV0byogY29ubmVjdGlvbiA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rp
b24oKSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkRmluaXNoQWN0aXZhdGlv
bihzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7
CisgICAgfSk7CisgICAgcnVuTG9vcCgpLnBvc3RUYXNrKFdURk1vdmUodGFzaykpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKaW5kZXggMDYyNzZmYzViZmIuLmQ0OGE3MTk0YmFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZC5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RGZXRjaFRhc2soUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6
Q2xpZW50PiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShSZWY8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFu
bmVsQXJyYXk+JiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBzb3VyY2VJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CiAgICAgdm9pZCBmaXJlSW5z
dGFsbEV2ZW50KCk7CisgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudCgpOwogCiAgICAgdWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyOyB9CiAgICAgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRh
JiBjb250ZXh0RGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRleCBiNDI2Y2Qw
MWE2YS4uYzNjODkwMDE1YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0xMTcsNiArMTE3LDExIEBAIHZvaWQgU1dTZXJ2
ZXI6OkNvbm5lY3Rpb246OmRpZEZpbmlzaEluc3RhbGwoY29uc3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSYKICAgICBtX3NlcnZlci5kaWRGaW5pc2hJbnN0YWxsKCp0aGlzLCBrZXksIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCB3YXNTdWNjZXNzZnVsKTsKIH0KIAordm9pZCBTV1NlcnZl
cjo6Q29ubmVjdGlvbjo6ZGlkRmluaXNoQWN0aXZhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uS2V5JiBrZXksIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyKQoreworICAgIG1fc2VydmVyLmRpZEZpbmlzaEFjdGl2YXRpb24oKnRoaXMsIGtl
eSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIpOworfQorCiB2b2lkIFNXU2VydmVyOjpDb25uZWN0
aW9uOjpkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShjb25zdCBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uS2V5JiBrZXkpCiB7CiAgICAgbV9zZXJ2ZXIuZGlkUmVzb2x2ZVJlZ2lzdHJhdGlv
blByb21pc2UoKnRoaXMsIGtleSk7CkBAIC0yNDIsNiArMjQ3LDE0IEBAIHZvaWQgU1dTZXJ2ZXI6
OmRpZEZpbmlzaEluc3RhbGwoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgU2VydmljZVdv
cmtlclJlZ2lzCiAgICAgICAgIGpvYlF1ZXVlLT5kaWRGaW5pc2hJbnN0YWxsKGNvbm5lY3Rpb24s
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCB3YXNTdWNjZXNzZnVsKTsKIH0KIAordm9pZCBTV1Nl
cnZlcjo6ZGlkRmluaXNoQWN0aXZhdGlvbihDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdpc3RyYXRpb25LZXksIFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQoreworICAgIEFTU0VSVChtX2Nv
bm5lY3Rpb25zLmNvbnRhaW5zKGNvbm5lY3Rpb24uaWRlbnRpZmllcigpKSk7CisKKyAgICBpZiAo
YXV0byogam9iUXVldWUgPSBtX2pvYlF1ZXVlcy5nZXQocmVnaXN0cmF0aW9uS2V5KSkKKyAgICAg
ICAgam9iUXVldWUtPmRpZEZpbmlzaEFjdGl2YXRpb24oY29ubmVjdGlvbiwgc2VydmljZVdvcmtl
cklkZW50aWZpZXIpOworfQorCiB2b2lkIFNXU2VydmVyOjpkaWRSZXNvbHZlUmVnaXN0cmF0aW9u
UHJvbWlzZShDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uS2V5JiByZWdpc3RyYXRpb25LZXkpCiB7CiAgICAgQVNTRVJUKG1fY29ubmVjdGlvbnMu
Y29udGFpbnMoY29ubmVjdGlvbi5pZGVudGlmaWVyKCkpKTsKQEAgLTI5NSw2ICszMDgsMTEgQEAg
dm9pZCBTV1NlcnZlcjo6ZmlyZUluc3RhbGxFdmVudChDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcgogICAgIGNvbm5lY3Rpb24uZmlyZUluc3RhbGxFdmVudChz
ZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXI6OmZpcmVBY3RpdmF0
ZUV2ZW50KENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKQoreworICAgIGNvbm5lY3Rpb24uZmlyZUFjdGl2YXRlRXZl
bnQoc2VydmljZVdvcmtlcklkZW50aWZpZXIpOworfQorCiB2b2lkIFNXU2VydmVyOjp0YXNrVGhy
ZWFkRW50cnlQb2ludCgpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggNmQ3
ZTNiZDk5YzQuLjBhZTAzMTJkMTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKICAgICAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JpcHRDb250ZXh0RmFpbGVkVG9TdGFydChjb25zdCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NyaXB0
Q29udGV4dFN0YXJ0ZWQoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRGaW5p
c2hJbnN0YWxsKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKTsKKyAgICAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkaWRGaW5pc2hBY3RpdmF0aW9uKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25LZXkmLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbktleSYpOwogICAgICAgICBjb25zdCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogZG9S
ZWdpc3RyYXRpb25NYXRjaGluZyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwg
Y29uc3QgVVJMJiBjbGllbnRVUkwpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmVyLmRvUmVnaXN0cmF0
aW9uTWF0Y2hpbmcodG9wT3JpZ2luLCBjbGllbnRVUkwpOyB9CiAKQEAgLTg5LDYgKzkwLDcgQEAg
cHVibGljOgogICAgICAgICAvLyBNZXNzYWdlcyB0byB0aGUgU1cgaG9zdCBXZWJQcm9jZXNzCiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBpbnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQoY29uc3QgU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZUlu
c3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOworICAgICAgICB2aXJ0dWFs
IHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKIAog
ICAgICAgICBTV1NlcnZlciYgbV9zZXJ2ZXI7CiAgICAgfTsKQEAgLTExMyw2ICsxMTUsNyBAQCBw
dWJsaWM6CiAKICAgICBSZWY8U1dTZXJ2ZXJXb3JrZXI+IHVwZGF0ZVdvcmtlcihDb25uZWN0aW9u
JiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYgc2NyaXB0LCBXb3JrZXJUeXBlKTsKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQo
Q29ubmVjdGlvbiYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZpcmVBY3Rp
dmF0ZUV2ZW50KENvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgU1dT
ZXJ2ZXJXb3JrZXIqIHdvcmtlckJ5SUQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmll
cikgY29uc3QgeyByZXR1cm4gbV93b3JrZXJzQnlJRC5nZXQoaWRlbnRpZmllcik7IH0KICAgICAK
ICAgICBDb25uZWN0aW9uKiBnZXRDb25uZWN0aW9uKHVpbnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0
dXJuIG1fY29ubmVjdGlvbnMuZ2V0KGlkZW50aWZpZXIpOyB9CkBAIC0xMjgsNiArMTMxLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KENvbm5lY3Rpb24m
LCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgU2VydmljZVdvcmtlcklkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgdm9pZCBzY3JpcHRDb250ZXh0U3Rh
cnRlZChDb25uZWN0aW9uJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZEZpbmlzaEluc3RhbGwoQ29ubmVj
dGlvbiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKTsKKyAgICB2b2lkIGRpZEZpbmlzaEFjdGl2
YXRpb24oQ29ubmVjdGlvbiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRSZXNvbHZlUmVnaXN0cmF0aW9u
UHJvbWlzZShDb25uZWN0aW9uJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYp
OwogCiAgICAgdm9pZCBhZGRDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKENvbm5lY3Rp
b24mLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKaW5kZXggODA3YzUzNzdl
OWQuLjEzNWQ5NmRmOWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKQEAgLTEzOCw3ICsxMzgsNyBA
QCB2b2lkIFNXU2VydmVySm9iUXVldWU6OmRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKFNX
U2VydmVyOjpDb25uZWN0aW9uJiBjb25uZQogfQogCiAvLyBodHRwczovL3czYy5naXRodWIuaW8v
U2VydmljZVdvcmtlci8jaW5zdGFsbAotdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRGaW5pc2hJ
bnN0YWxsKFNXU2VydmVyOjpDb25uZWN0aW9uJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRl
bnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKQordm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRG
aW5pc2hJbnN0YWxsKFNXU2VydmVyOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpCiB7CiAgICAgYXV0
byogcmVnaXN0cmF0aW9uID0gbV9zZXJ2ZXIuZ2V0UmVnaXN0cmF0aW9uKG1fcmVnaXN0cmF0aW9u
S2V5KTsKICAgICBBU1NFUlQocmVnaXN0cmF0aW9uKTsKQEAgLTE3NCwxNSArMTc0LDY5IEBAIHZv
aWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6ZGlkRmluaXNoSW5zdGFsbChTV1NlcnZlcjo6Q29ubmVjdGlv
biYsIFNlcnZpY2VXb3JrZXJJZGVuCiAKICAgICBmaW5pc2hDdXJyZW50Sm9iKCk7CiAKLSAgICAv
LyBGSVhNRTogSW52b2tlIFRyeSBBY3RpdmF0ZSB3aXRoIHJlZ2lzdHJhdGlvbgotICAgIC8vIEZJ
WE1FOiBEbyB3ZSBuZWVkICJXYWl0IGZvciBhbGwgdGhlIHRhc2tzIHF1ZXVlZCBieSBVcGRhdGUg
V29ya2VyIFN0YXRlIGludm9rZWQgaW4gdGhpcyBhbGdvcml0aG0gaGF2ZSBleGVjdXRlZCIgZmly
c3Q/Ci0gICAgYXV0byogd2FpdGluZyA9IHJlZ2lzdHJhdGlvbi0+d2FpdGluZ1dvcmtlcigpOwot
ICAgIEFTU0VSVCh3YWl0aW5nKTsKKyAgICAvLyBGSVhNRTogV2FpdCBmb3IgYWxsIHRoZSB0YXNr
cyBxdWV1ZWQgYnkgVXBkYXRlIFdvcmtlciBTdGF0ZSBpbnZva2VkIGluIHRoaXMgYWxnb3JpdGht
IGhhdmUgZXhlY3V0ZWQuCisgICAgdHJ5QWN0aXZhdGUoY29ubmVjdGlvbiwgKnJlZ2lzdHJhdGlv
bik7Cit9CisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyN0cnktYWN0
aXZhdGUtYWxnb3JpdGhtCit2b2lkIFNXU2VydmVySm9iUXVldWU6OnRyeUFjdGl2YXRlKFNXU2Vy
dmVyOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0
cmF0aW9uKQoreworICAgIC8vIElmIHJlZ2lzdHJhdGlvbidzIHdhaXRpbmcgd29ya2VyIGlzIG51
bGwsIHJldHVybi4KKyAgICBpZiAoIXJlZ2lzdHJhdGlvbi53YWl0aW5nV29ya2VyKCkpCisgICAg
ICAgIHJldHVybjsKKyAgICAvLyBJZiByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2VyIGlzIG5v
dCBudWxsIGFuZCByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2VyJ3Mgc3RhdGUgaXMgYWN0aXZh
dGluZywgcmV0dXJuLgorICAgIGlmIChyZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCkgJiYgcmVn
aXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigpLT5zdGF0ZSgpID09IFNlcnZpY2VXb3JrZXJTdGF0ZTo6
QWN0aXZhdGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSW52b2tlIEFjdGl2YXRlIHdp
dGggcmVnaXN0cmF0aW9uIGlmIGVpdGhlciBvZiB0aGUgZm9sbG93aW5nIGlzIHRydWU6CisgICAg
Ly8gLSByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2VyIGlzIG51bGwuCisgICAgLy8gLSBGSVhN
RTogVGhlIHJlc3VsdCBvZiBydW5uaW5nIFNlcnZpY2UgV29ya2VyIEhhcyBObyBQZW5kaW5nIEV2
ZW50cyB3aXRoIHJlZ2lzdHJhdGlvbidzIGFjdGl2ZSB3b3JrZXIgaXMgdHJ1ZSwKKyAgICAvLyAg
IGFuZCBubyBzZXJ2aWNlIHdvcmtlciBjbGllbnQgaXMgdXNpbmcgcmVnaXN0cmF0aW9uIG9yIHJl
Z2lzdHJhdGlvbidzIHdhaXRpbmcgd29ya2VyJ3Mgc2tpcCB3YWl0aW5nCisgICAgLy8gICBmbGFn
IGlzIHNldC4KKyAgICBpZiAoIXJlZ2lzdHJhdGlvbi5hY3RpdmVXb3JrZXIoKSkKKyAgICAgICAg
YWN0aXZhdGUoY29ubmVjdGlvbiwgcmVnaXN0cmF0aW9uKTsKK30KKworLy8gaHR0cHM6Ly93M2Mu
Z2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2FjdGl2YXRlCit2b2lkIFNXU2VydmVySm9iUXVldWU6
OmFjdGl2YXRlKFNXU2VydmVyOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTV1NlcnZlclJlZ2lz
dHJhdGlvbiYgcmVnaXN0cmF0aW9uKQoreworICAgIC8vIElmIHJlZ2lzdHJhdGlvbidzIHdhaXRp
bmcgd29ya2VyIGlzIG51bGwsIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmICghcmVnaXN0cmF0
aW9uLndhaXRpbmdXb3JrZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYgcmVnaXN0
cmF0aW9uJ3MgYWN0aXZlIHdvcmtlciBpcyBub3QgbnVsbCwgdGhlbjoKKyAgICBpZiAocmVnaXN0
cmF0aW9uLmFjdGl2ZVdvcmtlcigpKSB7CisgICAgICAgIC8vIFRlcm1pbmF0ZSByZWdpc3RyYXRp
b24ncyBhY3RpdmUgd29ya2VyLgorICAgICAgICAvLyByZWdpc3RyYXRpb24uYWN0aXZlV29ya2Vy
KCktPnRlcm1pbmF0ZSgpOworICAgICAgICAvLyBSdW4gdGhlIFVwZGF0ZSBXb3JrZXIgU3RhdGUg
YWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtlciBhbmQgcmVkdW5k
YW50IGFzIHRoZSBhcmd1bWVudHMuCisgICAgICAgIHJlZ2lzdHJhdGlvbi51cGRhdGVXb3JrZXJT
dGF0ZSgqcmVnaXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigpLCBTZXJ2aWNlV29ya2VyU3RhdGU6OlJl
ZHVuZGFudCk7CisgICAgfQorICAgIC8vIFJ1biB0aGUgVXBkYXRlIFJlZ2lzdHJhdGlvbiBTdGF0
ZSBhbGdvcml0aG0gcGFzc2luZyByZWdpc3RyYXRpb24sICJhY3RpdmUiIGFuZCByZWdpc3RyYXRp
b24ncyB3YWl0aW5nIHdvcmtlciBhcyB0aGUgYXJndW1lbnRzLgorICAgIHJlZ2lzdHJhdGlvbi51
cGRhdGVSZWdpc3RyYXRpb25TdGF0ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6OkFj
dGl2ZSwgcmVnaXN0cmF0aW9uLndhaXRpbmdXb3JrZXIoKSk7CisgICAgLy8gUnVuIHRoZSBVcGRh
dGUgUmVnaXN0cmF0aW9uIFN0YXRlIGFsZ29yaXRobSBwYXNzaW5nIHJlZ2lzdHJhdGlvbiwgIndh
aXRpbmciIGFuZCBudWxsIGFzIHRoZSBhcmd1bWVudHMuCisgICAgcmVnaXN0cmF0aW9uLnVwZGF0
ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6V2FpdGlu
ZywgbnVsbHB0cik7CisgICAgLy8gUnVuIHRoZSBVcGRhdGUgV29ya2VyIFN0YXRlIGFsZ29yaXRo
bSBwYXNzaW5nIHJlZ2lzdHJhdGlvbidzIGFjdGl2ZSB3b3JrZXIgYW5kIGFjdGl2YXRpbmcgYXMg
dGhlIGFyZ3VtZW50cy4KKyAgICByZWdpc3RyYXRpb24udXBkYXRlV29ya2VyU3RhdGUoKnJlZ2lz
dHJhdGlvbi5hY3RpdmVXb3JrZXIoKSwgU2VydmljZVdvcmtlclN0YXRlOjpBY3RpdmF0aW5nKTsK
KyAgICAvLyBGSVhNRTogRm9yIGVhY2ggc2VydmljZSB3b3JrZXIgY2xpZW50IGNsaWVudCB3aG9z
ZSBjcmVhdGlvbiBVUkwgbWF0Y2hlcyByZWdpc3RyYXRpb24ncyBzY29wZSB1cmwuLi4KKyAgICAv
LyBGSVhNRTogRm9yIGVhY2ggc2VydmljZSB3b3JrZXIgY2xpZW50IGNsaWVudCB3aG8gaXMgdXNp
bmcgcmVnaXN0cmF0aW9uLi4uCisgICAgLy8gRklYTUU6IEludm9rZSBSdW4gU2VydmljZSBXb3Jr
ZXIgYWxnb3JpdGhtIHdpdGggYWN0aXZlV29ya2VyIGFzIHRoZSBhcmd1bWVudC4KKworICAgIC8v
IFF1ZXVlIGEgdGFzayB0byBmaXJlIHRoZSBhY3RpdmF0ZSBldmVudC4KKyAgICBtX3NlcnZlci5m
aXJlQWN0aXZhdGVFdmVudChjb25uZWN0aW9uLCByZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCkt
PmlkZW50aWZpZXIoKSk7Cit9CisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29y
a2VyLyNhY3RpdmF0ZSAocG9zdCBhY3RpdmF0ZSBldmVudCBzdGVwcykuCit2b2lkIFNXU2VydmVy
Sm9iUXVldWU6OmRpZEZpbmlzaEFjdGl2YXRpb24oU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBhdXRv
KiByZWdpc3RyYXRpb24gPSBtX3NlcnZlci5nZXRSZWdpc3RyYXRpb24obV9yZWdpc3RyYXRpb25L
ZXkpOworICAgIGlmICghcmVnaXN0cmF0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IXJlZ2lzdHJhdGlvbi0+YWN0aXZlV29ya2VyKCkgfHwgcmVnaXN0cmF0aW9uLT5hY3RpdmVXb3Jr
ZXIoKS0+aWRlbnRpZmllcigpICE9IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQorICAgICAgICBy
ZXR1cm47CiAKLSAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6QWN0aXZlLCB3YWl0aW5nKTsKLSAgICByZWdpc3Ry
YXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25T
dGF0ZTo6V2FpdGluZywgbnVsbHB0cik7Ci0gICAgcmVnaXN0cmF0aW9uLT51cGRhdGVXb3JrZXJT
dGF0ZSgqd2FpdGluZywgU2VydmljZVdvcmtlclN0YXRlOjpBY3RpdmF0aW5nKTsKLSAgICByZWdp
c3RyYXRpb24tPnVwZGF0ZVdvcmtlclN0YXRlKCp3YWl0aW5nLCBTZXJ2aWNlV29ya2VyU3RhdGU6
OkFjdGl2YXRlZCk7CisgICAgLy8gUnVuIHRoZSBVcGRhdGUgV29ya2VyIFN0YXRlIGFsZ29yaXRo
bSBwYXNzaW5nIHJlZ2lzdHJhdGlvbidzIGFjdGl2ZSB3b3JrZXIgYW5kIGFjdGl2YXRlZCBhcyB0
aGUgYXJndW1lbnRzLgorICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlV29ya2VyU3RhdGUoKnJlZ2lz
dHJhdGlvbi0+YWN0aXZlV29ya2VyKCksIFNlcnZpY2VXb3JrZXJTdGF0ZTo6QWN0aXZhdGVkKTsK
IH0KIAogLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI3J1bi1qb2IKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJK
b2JRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
ckpvYlF1ZXVlLmgKaW5kZXggNTg0Mzc4OWExZTUuLjc5ZmUxMTQ3YzlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVl
dWUuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JpcHRDb250ZXh0RmFp
bGVkVG9TdGFydChTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZvaWQgc2NyaXB0Q29udGV4dFN0YXJ0ZWQo
U1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9p
ZCBkaWRGaW5pc2hJbnN0YWxsKFNXU2VydmVyOjpDb25uZWN0aW9uJiwgU2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCk7CisgICAgdm9pZCBkaWRGaW5pc2hBY3RpdmF0
aW9uKFNXU2VydmVyOjpDb25uZWN0aW9uJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAg
IHZvaWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24m
KTsKIAogcHJpdmF0ZToKQEAgLTY2LDYgKzY3LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHRyeUNs
ZWFyUmVnaXN0cmF0aW9uKFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CiAgICAgdm9pZCBjbGVhclJl
Z2lzdHJhdGlvbihTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwogICAgIHZvaWQgaW5zdGFsbChTV1Nl
cnZlclJlZ2lzdHJhdGlvbiYsIFNXU2VydmVyOjpDb25uZWN0aW9uJiwgU2VydmljZVdvcmtlcklk
ZW50aWZpZXIpOworICAgIHZvaWQgdHJ5QWN0aXZhdGUoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBT
V1NlcnZlclJlZ2lzdHJhdGlvbiYpOworICAgIHZvaWQgYWN0aXZhdGUoU1dTZXJ2ZXI6OkNvbm5l
Y3Rpb24mLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwogCiAgICAgRGVxdWU8U2VydmljZVdvcmtl
ckpvYkRhdGE+IG1fam9iUXVldWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5jcHAKaW5kZXggMDYyNGI1Mzk4MjkuLjZiYzU4OWE5NTcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMTI0LDYgKzEyNCwxMSBAQCB2b2lkIFdlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6ZmlyZUluc3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
ZXJ2aWNlV29yawogICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKE1lc3NhZ2VzOjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6RmlyZUluc3RhbGxFdmVudChpZGVudGlmaWVyKCksIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKSk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpm
aXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRl
bnRpZmllcikKK3sKKyAgICBzZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6V2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb246OkZpcmVBY3RpdmF0ZUV2ZW50KGlkZW50aWZpZXIoKSwgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpKTsKK30KKwogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246
OnN0YXJ0RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBGZXRjaE9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAg
c2VuZFRvQ29udGV4dFByb2Nlc3MoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjpTdGFydEZldGNoKGlkZW50aWZpZXIoKSwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5oCmluZGV4IDEzNjFjMmMxNjliLi43ZjFjZDUxZWNmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtNzgsNiArNzgsNyBAQCBwcml2YXRlOgogICAg
IC8vIE1lc3NhZ2VzIHRvIHRoZSBTVyBjb250ZXh0IFdlYlByb2Nlc3MKICAgICB2b2lkIGluc3Rh
bGxTZXJ2aWNlV29ya2VyQ29udGV4dChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGEmKSBmaW5hbDsKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOwogCiAgICAgSVBDOjpDb25uZWN0
aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGZpbmFsIHsgcmV0dXJuIG1fY29udGVudENv
bm5lY3Rpb24ucHRyKCk7IH0KICAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25J
RCgpIGZpbmFsIHsgcmV0dXJuIGlkZW50aWZpZXIoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcAppbmRleCA3ZTk2MmVlZjhlMS4uMTE4ZGRk
N2ZkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nl
c3MuY3BwCkBAIC00NTksNiArNDU5LDEyIEBAIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZEZpbmlz
aFNlcnZpY2VXb3JrZXJJbnN0YWxsKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVuCiAgICAg
ICAgIGNvbm5lY3Rpb24tPmRpZEZpbmlzaEluc3RhbGwocmVnaXN0cmF0aW9uS2V5LCBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgd2FzU3VjY2Vzc2Z1bCk7CiB9CiAKK3ZvaWQgU3RvcmFnZVByb2Nl
c3M6OmRpZEZpbmlzaFNlcnZpY2VXb3JrZXJBY3RpdmF0aW9uKHVpbnQ2NF90IHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdp
c3RyYXRpb25LZXksIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKQoreworICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rpb25z
LmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCisgICAgICAgIGNvbm5lY3Rpb24tPmRp
ZEZpbmlzaEFjdGl2YXRpb24ocmVnaXN0cmF0aW9uS2V5LCBzZXJ2aWNlV29ya2VySWRlbnRpZmll
cik7Cit9CisKIHZvaWQgU3RvcmFnZVByb2Nlc3M6OnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9u
KFdlYlNXU2VydmVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsKICAgICBBU1NFUlQoIW1fc3dT
ZXJ2ZXJDb25uZWN0aW9ucy5jb250YWlucyhjb25uZWN0aW9uLmlkZW50aWZpZXIoKSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oIGIv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oCmluZGV4IDNkMGE0
MzE5MDY5Li40ODI4ZWRkNDliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TdG9yYWdlUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U3RvcmFnZVByb2Nlc3MuaApAQCAtMTI5LDYgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWROb3RIYW5kbGVGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWlu
dDY0X3QgZmV0Y2hJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgZGlkRmluaXNoU2VydmljZVdvcmtl
ckluc3RhbGwodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKTsKKyAgICB2b2lkIGRpZEZpbmlzaFNlcnZp
Y2VXb3JrZXJBY3RpdmF0aW9uKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGRl
c3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZU9yaWdpbik7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nl
c3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9j
ZXNzLm1lc3NhZ2VzLmluCmluZGV4IDk2ZDk3N2FhZGQ1Li5lOGYxOTg0MzViOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3Nh
Z2VzLmluCkBAIC00MSw2ICs0MSw3IEBAIG1lc3NhZ2VzIC0+IFN0b3JhZ2VQcm9jZXNzIExlZ2Fj
eVJlY2VpdmVyIHsKICAgICBTZXJ2aWNlV29ya2VyQ29udGV4dEZhaWxlZFRvU3RhcnQodWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25LZXkgcmVnaXN0cmF0aW9uS2V5LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU3RyaW5nIG1lc3NhZ2UpCiAgICAgU2Vydmlj
ZVdvcmtlckNvbnRleHRTdGFydGVkKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IHJlZ2lzdHJhdGlvbktleSwg
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIp
CiAgICAgRGlkRmluaXNoU2VydmljZVdvcmtlckluc3RhbGwodWludDY0X3Qgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgcmVn
aXN0cmF0aW9uS2V5LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKTsKKyAgICBEaWRGaW5pc2hTZXJ2aWNl
V29ya2VyQWN0aXZhdGlvbih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSByZWdpc3RyYXRpb25LZXksIFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIAog
ICAgIERpZE5vdEhhbmRsZUZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCiAgICAgRGlkRmFpbEZldGNoKHVpbnQ2NF90IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggZGIzMTk3YzhiNzMuLmJhYTBhNGMz
YTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0xNTUsNiArMTU1
LDEyIEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmZpcmVJbnN0YWxsRXZl
bnQodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkCiAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2lu
Z2xldG9uKCkuZmlyZUluc3RhbGxFdmVudChpZGVudGlmaWVyKTsKIH0KIAordm9pZCBXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZmlyZUFjdGl2YXRlRXZlbnQodWludDY0X3Qgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgVU5VU0VEX1BBUkFNKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICBT
V0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5maXJlQWN0aXZhdGVFdmVudChpZGVudGlmaWVy
KTsKK30KKwogdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIm
IGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNz
YWdlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZU9yaWdpbikKIHsKICAgICBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJD
bGllbnQoZGVzdGluYXRpb25JZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgeyBtZXNzYWdl
LT5kYXRhKCkgfSwgc291cmNlSWRlbnRpZmllciwgc291cmNlT3JpZ2luKSwgMCk7CkBAIC0xNjks
NiArMTc1LDE1IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmRpZEZpbmlz
aEluc3RhbGwoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VyCiAgICAgbV9jb25uZWN0aW9uVG9T
dG9yYWdlUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkRpZEZpbmlzaFNl
cnZpY2VXb3JrZXJJbnN0YWxsKHRocmVhZFByb3h5LT50aHJlYWQoKS5zZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllcigpLCBkYXRhLnJlZ2lzdHJhdGlvbktleSwgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIHdhc1N1Y2Nlc3NmdWwpLCAwKTsKIH0KIAordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6ZGlkRmluaXNoQWN0aXZhdGlvbihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2
aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBhdXRvKiB0aHJlYWRQcm94eSA9IFNXQ29udGV4
dE1hbmFnZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShzZXJ2aWNlV29y
a2VySWRlbnRpZmllcik7CisgICAgQVNTRVJUKHRocmVhZFByb3h5KTsKKworICAgIGF1dG8mIGRh
dGEgPSB0aHJlYWRQcm94eS0+dGhyZWFkKCkuY29udGV4dERhdGEoKTsKKyAgICBtX2Nvbm5lY3Rp
b25Ub1N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6RGlkRmlu
aXNoU2VydmljZVdvcmtlckFjdGl2YXRpb24odGhyZWFkUHJveHktPnRocmVhZCgpLnNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKCksIGRhdGEucmVnaXN0cmF0aW9uS2V5LCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciksIDApOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApp
bmRleCAwMzFhYjJmMTFiYy4uNjA3ZTAwZWY4YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uaApAQCAtNTMsNiArNTMsNyBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OlNXQ29u
dGV4dE1hbmFnZXI6OkNvbm5lY3Rpb24uCiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYg
ZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiYmIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKSBmaW5hbDsKICAgICB2b2lkIGRpZEZp
bmlzaEluc3RhbGwoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgd2FzU3Vj
Y2Vzc2Z1bCkgZmluYWw7CisgICAgdm9pZCBkaWRGaW5pc2hBY3RpdmF0aW9uKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKIAogICAgIC8vIElQQyBtZXNzYWdlcy4KICAg
ICB2b2lkIHNlcnZpY2VXb3JrZXJTdGFydGVkV2l0aE1lc3NhZ2UoV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uTWVzc2FnZSkgZmluYWw7CkBA
IC02MCw2ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+LCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYpOwogICAgIHZvaWQgcG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
bWVzc2FnZSwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIHNv
dXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKICAgICB2b2lkIGZp
cmVJbnN0YWxsRXZlbnQodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50
KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllcik7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25U
b1N0b3JhZ2VQcm9jZXNzOwogICAgIHVpbnQ2NF90IG1fcGFnZUlEIHsgMCB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCAyYjUxNTI2NTc0
MS4uNWQyNTU1YWRjYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCkBAIC0yNyw2ICsyNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uIHsKICAgICBTdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0
aW9ucyBvcHRpb25zKQogICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUo
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBJ
UEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFN0cmluZyBzb3VyY2VPcmlnaW4pCiAg
ICAgRmlyZUluc3RhbGxFdmVudCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBGaXJlQWN0
aXZhdGVFdmVudCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIH0KIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326603</attachid>
            <date>2017-11-10 10:43:31 -0800</date>
            <delta_ts>2017-11-10 11:05:32 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>179436_sw_activate_wip.patch</filename>
            <type>text/plain</type>
            <size>27879</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2lj
LWFjdGl2YXRlLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL2Jhc2ljLWFjdGl2YXRlLWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWE3YzFiZDQ3Y2YKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1hY3RpdmF0
ZS1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTOiBzZXJ2aWNlIHdvcmtl
ciByZWNlaXZlZCBhY3RpdmF0ZSBldmVudCBhbmQgcmVzb2x2ZWQgdGhlIGV4dGVuZCBsaWZldGlt
ZSBwcm9taXNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL2Jhc2ljLWFjdGl2YXRlLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9iYXNpYy1hY3RpdmF0ZS1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42YTc5MTUwMmMzZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLWFjdGl2YXRlLWV2
ZW50Lmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvc3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0PgorbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgaWYgKGV2ZW50LmRhdGEpCisgICAgICAgIGxvZygiUEFT
Uzogc2VydmljZSB3b3JrZXIgcmVjZWl2ZWQgYWN0aXZhdGUgZXZlbnQgYW5kIHJlc29sdmVkIHRo
ZSBleHRlbmQgbGlmZXRpbWUgcHJvbWlzZSIpOworICAgIGVsc2UKKyAgICAgICAgbG9nKCJGQUlM
OiBzZXJ2aWNlIHdvcmtlciBkaWQgbm90IHJlY2VpdmUgYWN0aXZhdGUgZXZlbnQgb3IgZGlkIG5v
dCByZXNvbHZlIHRoZSBleHRlbmQgbGlmZXRpbWUgcHJvbWlzZSIpOworCisgICAgZmluaXNoU1dU
ZXN0KCk7Cit9KTsKKworbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNl
cy9iYXNpYy1hY3RpdmF0ZS1ldmVudC13b3JrZXIuanMiLCB7IH0pLnRoZW4oZnVuY3Rpb24ocmVn
aXN0cmF0aW9uKSB7CisgICAgIHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZywg
ImFjdGl2YXRlZCIpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICByZWdpc3RyYXRpb24uYWN0
aXZlLnBvc3RNZXNzYWdlKCJDaGVja1Jlc29sdmVkRXh0ZW5kTGlmZXRpbWVQcm9taXNlIik7Cisg
ICAgIH0pOworfSwgZnVuY3Rpb24oKSB7CisgICAgbG9nKCJGQUlMOiBGYWlsZWQgdG8gcmVnaXN0
ZXIgdGhlIHNlcnZpY2Ugd29ya2VyIik7CisgICAgZmluaXNoU1dUZXN0KCk7Cit9KTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLWFjdGl2YXRlLWV2ZW50LXdvcmtlci5q
cyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNp
Yy1hY3RpdmF0ZS1ldmVudC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjQxMDBmMWU3Zjk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLWFjdGl2YXRlLWV2ZW50LXdv
cmtlci5qcwpAQCAtMCwwICsxLDE3IEBACitsZXQgcmVzb2x2ZWRFeHRlbmRMaWZldGltZVByb21p
c2UgPSBmYWxzZTsKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCJpbnN0YWxsIiwgKGV2ZW50KSA9
PiB7CisgICAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCJhY3RpdmF0ZSIsIChldmVudCkgPT4gewor
ICAgICAgICBldmVudC53YWl0VW50aWwobmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4g
eworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgICAgcmVzb2x2
ZWRFeHRlbmRMaWZldGltZVByb21pc2UgPSB0cnVlOworICAgICAgICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgICAgIH0sIDUwKTsKKyAgICAgICAgfSkpOworICAgIH0pOworfSk7CisKK3Nl
bGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4geworICAgIGV2ZW50LnNv
dXJjZS5wb3N0TWVzc2FnZShyZXNvbHZlZEV4dGVuZExpZmV0aW1lUHJvbWlzZSk7Cit9KTsKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250
ZXh0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
V0NvbnRleHRNYW5hZ2VyLmNwcAppbmRleCA0OWI2ZWIzY2FiYS4uYTg4OTYwN2NkNmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NX
Q29udGV4dE1hbmFnZXIuY3BwCkBAIC04Myw2ICs4MywxNSBAQCB2b2lkIFNXQ29udGV4dE1hbmFn
ZXI6OmZpcmVJbnN0YWxsRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikK
ICAgICBzZXJ2aWNlV29ya2VyLT50aHJlYWQoKS5maXJlSW5zdGFsbEV2ZW50KCk7CiB9CiAKK3Zv
aWQgU1dDb250ZXh0TWFuYWdlcjo6ZmlyZUFjdGl2YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50
aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvKiBzZXJ2aWNlV29ya2VyID0gbV93b3JrZXJN
YXAuZ2V0KGlkZW50aWZpZXIpOworICAgIGlmICghc2VydmljZVdvcmtlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgc2VydmljZVdvcmtlci0+dGhyZWFkKCkuZmlyZUFjdGl2YXRlRXZlbnQoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaApp
bmRleCA1ZDg0NzczMzhiNS4uYzUwN2I2ZTY2NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKQEAgLTQ4
LDYgKzQ4LDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGRl
c3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdl
LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3Jp
Z2luKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXJ2aWNlV29ya2VyU3RhcnRlZFdpdGhN
ZXNzYWdlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1l
c3NhZ2UpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaEluc3RhbGwoU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCkgPSAwOworICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoQWN0aXZhdGlvbihTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAw
OwogICAgIH07CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvbm5lY3Rpb24oc3RkOjp1
bmlxdWVfcHRyPENvbm5lY3Rpb24+JiYpOwpAQCAtNTcsNiArNTgsNyBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgU2VydmljZVdvcmtlclRocmVhZFByb3h5KiBzZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkoU2VydmljZVdvcmtlcklkZW50aWZpZXIpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBt
ZXNzYWdlLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgc291cmNlSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZmlyZUluc3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7
CiAKIHByaXZhdGU6CiAgICAgU1dDb250ZXh0TWFuYWdlcigpID0gZGVmYXVsdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5jcHAKaW5kZXggNGJlYmIyZTBmYjQuLjM0YTMzMjJkMjFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtMTQwLDYgKzE0MCwyMyBAQCB2b2lkIFNlcnZpY2VX
b3JrZXJUaHJlYWQ6OmZpcmVJbnN0YWxsRXZlbnQoKQogICAgIHJ1bkxvb3AoKS5wb3N0VGFzayhX
VEZNb3ZlKHRhc2spKTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpmaXJlQWN0aXZh
dGVFdmVudCgpCit7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB0YXNrKFtzZXJ2
aWNlV29ya2VySWRlbnRpZmllciA9IHRoaXMtPmlkZW50aWZpZXIoKV0gKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgICAgICBhdXRvJiBzZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQp
OworICAgICAgICBhdXRvIGFjdGl2YXRlRXZlbnQgPSBFeHRlbmRhYmxlRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuYWN0aXZhdGVFdmVudCwgeyB9LCBFeHRlbmRhYmxlRXZlbnQ6OklzVHJ1c3Rl
ZDo6WWVzKTsKKyAgICAgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmRpc3BhdGNoRXZlbnQo
YWN0aXZhdGVFdmVudCk7CisKKyAgICAgICAgYWN0aXZhdGVFdmVudC0+d2hlbkFsbEV4dGVuZExp
ZmV0aW1lUHJvbWlzZXNBcmVTZXR0bGVkKFtzZXJ2aWNlV29ya2VySWRlbnRpZmllcl0oSGFzaFNl
dDxSZWY8RE9NUHJvbWlzZT4+JiYpIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Nl
cnZpY2VXb3JrZXJJZGVudGlmaWVyXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAo
YXV0byogY29ubmVjdGlvbiA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rp
b24oKSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkRmluaXNoQWN0aXZhdGlv
bihzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7
CisgICAgfSk7CisgICAgcnVuTG9vcCgpLnBvc3RUYXNrKFdURk1vdmUodGFzaykpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKaW5kZXggMDYyNzZmYzViZmIuLmQ0OGE3MTk0YmFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZC5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RGZXRjaFRhc2soUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6
Q2xpZW50PiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShSZWY8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFu
bmVsQXJyYXk+JiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBzb3VyY2VJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CiAgICAgdm9pZCBmaXJlSW5z
dGFsbEV2ZW50KCk7CisgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudCgpOwogCiAgICAgdWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyOyB9CiAgICAgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRh
JiBjb250ZXh0RGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRleCBiNDI2Y2Qw
MWE2YS4uYzNjODkwMDE1YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0xMTcsNiArMTE3LDExIEBAIHZvaWQgU1dTZXJ2
ZXI6OkNvbm5lY3Rpb246OmRpZEZpbmlzaEluc3RhbGwoY29uc3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSYKICAgICBtX3NlcnZlci5kaWRGaW5pc2hJbnN0YWxsKCp0aGlzLCBrZXksIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCB3YXNTdWNjZXNzZnVsKTsKIH0KIAordm9pZCBTV1NlcnZl
cjo6Q29ubmVjdGlvbjo6ZGlkRmluaXNoQWN0aXZhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uS2V5JiBrZXksIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyKQoreworICAgIG1fc2VydmVyLmRpZEZpbmlzaEFjdGl2YXRpb24oKnRoaXMsIGtl
eSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIpOworfQorCiB2b2lkIFNXU2VydmVyOjpDb25uZWN0
aW9uOjpkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShjb25zdCBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uS2V5JiBrZXkpCiB7CiAgICAgbV9zZXJ2ZXIuZGlkUmVzb2x2ZVJlZ2lzdHJhdGlv
blByb21pc2UoKnRoaXMsIGtleSk7CkBAIC0yNDIsNiArMjQ3LDE0IEBAIHZvaWQgU1dTZXJ2ZXI6
OmRpZEZpbmlzaEluc3RhbGwoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgU2VydmljZVdv
cmtlclJlZ2lzCiAgICAgICAgIGpvYlF1ZXVlLT5kaWRGaW5pc2hJbnN0YWxsKGNvbm5lY3Rpb24s
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCB3YXNTdWNjZXNzZnVsKTsKIH0KIAordm9pZCBTV1Nl
cnZlcjo6ZGlkRmluaXNoQWN0aXZhdGlvbihDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdpc3RyYXRpb25LZXksIFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQoreworICAgIEFTU0VSVChtX2Nv
bm5lY3Rpb25zLmNvbnRhaW5zKGNvbm5lY3Rpb24uaWRlbnRpZmllcigpKSk7CisKKyAgICBpZiAo
YXV0byogam9iUXVldWUgPSBtX2pvYlF1ZXVlcy5nZXQocmVnaXN0cmF0aW9uS2V5KSkKKyAgICAg
ICAgam9iUXVldWUtPmRpZEZpbmlzaEFjdGl2YXRpb24oY29ubmVjdGlvbiwgc2VydmljZVdvcmtl
cklkZW50aWZpZXIpOworfQorCiB2b2lkIFNXU2VydmVyOjpkaWRSZXNvbHZlUmVnaXN0cmF0aW9u
UHJvbWlzZShDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uS2V5JiByZWdpc3RyYXRpb25LZXkpCiB7CiAgICAgQVNTRVJUKG1fY29ubmVjdGlvbnMu
Y29udGFpbnMoY29ubmVjdGlvbi5pZGVudGlmaWVyKCkpKTsKQEAgLTI5NSw2ICszMDgsMTEgQEAg
dm9pZCBTV1NlcnZlcjo6ZmlyZUluc3RhbGxFdmVudChDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcgogICAgIGNvbm5lY3Rpb24uZmlyZUluc3RhbGxFdmVudChz
ZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXI6OmZpcmVBY3RpdmF0
ZUV2ZW50KENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKQoreworICAgIGNvbm5lY3Rpb24uZmlyZUFjdGl2YXRlRXZl
bnQoc2VydmljZVdvcmtlcklkZW50aWZpZXIpOworfQorCiB2b2lkIFNXU2VydmVyOjp0YXNrVGhy
ZWFkRW50cnlQb2ludCgpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggNmQ3
ZTNiZDk5YzQuLjBhZTAzMTJkMTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKICAgICAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JpcHRDb250ZXh0RmFpbGVkVG9TdGFydChjb25zdCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NyaXB0
Q29udGV4dFN0YXJ0ZWQoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRGaW5p
c2hJbnN0YWxsKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKTsKKyAgICAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkaWRGaW5pc2hBY3RpdmF0aW9uKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25LZXkmLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbktleSYpOwogICAgICAgICBjb25zdCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogZG9S
ZWdpc3RyYXRpb25NYXRjaGluZyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwg
Y29uc3QgVVJMJiBjbGllbnRVUkwpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmVyLmRvUmVnaXN0cmF0
aW9uTWF0Y2hpbmcodG9wT3JpZ2luLCBjbGllbnRVUkwpOyB9CiAKQEAgLTg5LDYgKzkwLDcgQEAg
cHVibGljOgogICAgICAgICAvLyBNZXNzYWdlcyB0byB0aGUgU1cgaG9zdCBXZWJQcm9jZXNzCiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBpbnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQoY29uc3QgU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZUlu
c3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOworICAgICAgICB2aXJ0dWFs
IHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKIAog
ICAgICAgICBTV1NlcnZlciYgbV9zZXJ2ZXI7CiAgICAgfTsKQEAgLTExMyw2ICsxMTUsNyBAQCBw
dWJsaWM6CiAKICAgICBSZWY8U1dTZXJ2ZXJXb3JrZXI+IHVwZGF0ZVdvcmtlcihDb25uZWN0aW9u
JiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYgc2NyaXB0LCBXb3JrZXJUeXBlKTsKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQo
Q29ubmVjdGlvbiYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZpcmVBY3Rp
dmF0ZUV2ZW50KENvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgU1dT
ZXJ2ZXJXb3JrZXIqIHdvcmtlckJ5SUQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmll
cikgY29uc3QgeyByZXR1cm4gbV93b3JrZXJzQnlJRC5nZXQoaWRlbnRpZmllcik7IH0KICAgICAK
ICAgICBDb25uZWN0aW9uKiBnZXRDb25uZWN0aW9uKHVpbnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0
dXJuIG1fY29ubmVjdGlvbnMuZ2V0KGlkZW50aWZpZXIpOyB9CkBAIC0xMjgsNiArMTMxLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KENvbm5lY3Rpb24m
LCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgU2VydmljZVdvcmtlcklkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgdm9pZCBzY3JpcHRDb250ZXh0U3Rh
cnRlZChDb25uZWN0aW9uJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZEZpbmlzaEluc3RhbGwoQ29ubmVj
dGlvbiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKTsKKyAgICB2b2lkIGRpZEZpbmlzaEFjdGl2
YXRpb24oQ29ubmVjdGlvbiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRSZXNvbHZlUmVnaXN0cmF0aW9u
UHJvbWlzZShDb25uZWN0aW9uJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYp
OwogCiAgICAgdm9pZCBhZGRDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKENvbm5lY3Rp
b24mLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKaW5kZXggODA3YzUzNzdl
OWQuLmE1NWQ2MWJiODYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKQEAgLTEzOCw3ICsxMzgsNyBA
QCB2b2lkIFNXU2VydmVySm9iUXVldWU6OmRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKFNX
U2VydmVyOjpDb25uZWN0aW9uJiBjb25uZQogfQogCiAvLyBodHRwczovL3czYy5naXRodWIuaW8v
U2VydmljZVdvcmtlci8jaW5zdGFsbAotdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRGaW5pc2hJ
bnN0YWxsKFNXU2VydmVyOjpDb25uZWN0aW9uJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRl
bnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKQordm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRG
aW5pc2hJbnN0YWxsKFNXU2VydmVyOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpCiB7CiAgICAgYXV0
byogcmVnaXN0cmF0aW9uID0gbV9zZXJ2ZXIuZ2V0UmVnaXN0cmF0aW9uKG1fcmVnaXN0cmF0aW9u
S2V5KTsKICAgICBBU1NFUlQocmVnaXN0cmF0aW9uKTsKQEAgLTE3NCwxNSArMTc0LDY4IEBAIHZv
aWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6ZGlkRmluaXNoSW5zdGFsbChTV1NlcnZlcjo6Q29ubmVjdGlv
biYsIFNlcnZpY2VXb3JrZXJJZGVuCiAKICAgICBmaW5pc2hDdXJyZW50Sm9iKCk7CiAKLSAgICAv
LyBGSVhNRTogSW52b2tlIFRyeSBBY3RpdmF0ZSB3aXRoIHJlZ2lzdHJhdGlvbgotICAgIC8vIEZJ
WE1FOiBEbyB3ZSBuZWVkICJXYWl0IGZvciBhbGwgdGhlIHRhc2tzIHF1ZXVlZCBieSBVcGRhdGUg
V29ya2VyIFN0YXRlIGludm9rZWQgaW4gdGhpcyBhbGdvcml0aG0gaGF2ZSBleGVjdXRlZCIgZmly
c3Q/Ci0gICAgYXV0byogd2FpdGluZyA9IHJlZ2lzdHJhdGlvbi0+d2FpdGluZ1dvcmtlcigpOwot
ICAgIEFTU0VSVCh3YWl0aW5nKTsKKyAgICAvLyBGSVhNRTogV2FpdCBmb3IgYWxsIHRoZSB0YXNr
cyBxdWV1ZWQgYnkgVXBkYXRlIFdvcmtlciBTdGF0ZSBpbnZva2VkIGluIHRoaXMgYWxnb3JpdGht
IGhhdmUgZXhlY3V0ZWQuCisgICAgdHJ5QWN0aXZhdGUoY29ubmVjdGlvbiwgKnJlZ2lzdHJhdGlv
bik7Cit9CisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyN0cnktYWN0
aXZhdGUtYWxnb3JpdGhtCit2b2lkIFNXU2VydmVySm9iUXVldWU6OnRyeUFjdGl2YXRlKFNXU2Vy
dmVyOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0
cmF0aW9uKQoreworICAgIC8vIElmIHJlZ2lzdHJhdGlvbidzIHdhaXRpbmcgd29ya2VyIGlzIG51
bGwsIHJldHVybi4KKyAgICBpZiAoIXJlZ2lzdHJhdGlvbi53YWl0aW5nV29ya2VyKCkpCisgICAg
ICAgIHJldHVybjsKKyAgICAvLyBJZiByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2VyIGlzIG5v
dCBudWxsIGFuZCByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2VyJ3Mgc3RhdGUgaXMgYWN0aXZh
dGluZywgcmV0dXJuLgorICAgIGlmIChyZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCkgJiYgcmVn
aXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigpLT5zdGF0ZSgpID09IFNlcnZpY2VXb3JrZXJTdGF0ZTo6
QWN0aXZhdGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IEludm9rZSBBY3Rp
dmF0ZSB3aXRoIHJlZ2lzdHJhdGlvbiBpZiBlaXRoZXIgb2YgdGhlIGZvbGxvd2luZyBpcyB0cnVl
OgorICAgIC8vIC0gcmVnaXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtlciBpcyBudWxsLgorICAgIC8v
IC0gVGhlIHJlc3VsdCBvZiBydW5uaW5nIFNlcnZpY2UgV29ya2VyIEhhcyBObyBQZW5kaW5nIEV2
ZW50cyB3aXRoIHJlZ2lzdHJhdGlvbidzIGFjdGl2ZSB3b3JrZXIgaXMgdHJ1ZSwKKyAgICAvLyAg
IGFuZCBubyBzZXJ2aWNlIHdvcmtlciBjbGllbnQgaXMgdXNpbmcgcmVnaXN0cmF0aW9uIG9yIHJl
Z2lzdHJhdGlvbidzIHdhaXRpbmcgd29ya2VyJ3Mgc2tpcCB3YWl0aW5nCisgICAgLy8gICBmbGFn
IGlzIHNldC4KKyAgICBhY3RpdmF0ZShjb25uZWN0aW9uLCByZWdpc3RyYXRpb24pOworfQorCisv
LyBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jYWN0aXZhdGUKK3ZvaWQgU1dT
ZXJ2ZXJKb2JRdWV1ZTo6YWN0aXZhdGUoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24pCit7CisgICAgLy8gSWYgcmVnaXN0
cmF0aW9uJ3Mgd2FpdGluZyB3b3JrZXIgaXMgbnVsbCwgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAg
aWYgKCFyZWdpc3RyYXRpb24ud2FpdGluZ1dvcmtlcigpKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvLyBJZiByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2VyIGlzIG5vdCBudWxsLCB0aGVuOgor
ICAgIGlmIChyZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCkpIHsKKyAgICAgICAgLy8gVGVybWlu
YXRlIHJlZ2lzdHJhdGlvbidzIGFjdGl2ZSB3b3JrZXIuCisgICAgICAgIC8vIHJlZ2lzdHJhdGlv
bi5hY3RpdmVXb3JrZXIoKS0+dGVybWluYXRlKCk7CisgICAgICAgIC8vIFJ1biB0aGUgVXBkYXRl
IFdvcmtlciBTdGF0ZSBhbGdvcml0aG0gcGFzc2luZyByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29y
a2VyIGFuZCByZWR1bmRhbnQgYXMgdGhlIGFyZ3VtZW50cy4KKyAgICAgICAgcmVnaXN0cmF0aW9u
LnVwZGF0ZVdvcmtlclN0YXRlKCpyZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCksIFNlcnZpY2VX
b3JrZXJTdGF0ZTo6UmVkdW5kYW50KTsKKyAgICB9CisgICAgLy8gUnVuIHRoZSBVcGRhdGUgUmVn
aXN0cmF0aW9uIFN0YXRlIGFsZ29yaXRobSBwYXNzaW5nIHJlZ2lzdHJhdGlvbiwgImFjdGl2ZSIg
YW5kIHJlZ2lzdHJhdGlvbidzIHdhaXRpbmcgd29ya2VyIGFzIHRoZSBhcmd1bWVudHMuCisgICAg
cmVnaXN0cmF0aW9uLnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25TdGF0ZTo6QWN0aXZlLCByZWdpc3RyYXRpb24ud2FpdGluZ1dvcmtlcigpKTsKKyAgICAv
LyBSdW4gdGhlIFVwZGF0ZSBSZWdpc3RyYXRpb24gU3RhdGUgYWxnb3JpdGhtIHBhc3NpbmcgcmVn
aXN0cmF0aW9uLCAid2FpdGluZyIgYW5kIG51bGwgYXMgdGhlIGFyZ3VtZW50cy4KKyAgICByZWdp
c3RyYXRpb24udXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
blN0YXRlOjpXYWl0aW5nLCBudWxscHRyKTsKKyAgICAvLyBSdW4gdGhlIFVwZGF0ZSBXb3JrZXIg
U3RhdGUgYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtlciBhbmQg
YWN0aXZhdGluZyBhcyB0aGUgYXJndW1lbnRzLgorICAgIHJlZ2lzdHJhdGlvbi51cGRhdGVXb3Jr
ZXJTdGF0ZSgqcmVnaXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigpLCBTZXJ2aWNlV29ya2VyU3RhdGU6
OkFjdGl2YXRpbmcpOworICAgIC8vIEZJWE1FOiBGb3IgZWFjaCBzZXJ2aWNlIHdvcmtlciBjbGll
bnQgY2xpZW50IHdob3NlIGNyZWF0aW9uIFVSTCBtYXRjaGVzIHJlZ2lzdHJhdGlvbidzIHNjb3Bl
IHVybC4uLgorICAgIC8vIEZJWE1FOiBGb3IgZWFjaCBzZXJ2aWNlIHdvcmtlciBjbGllbnQgY2xp
ZW50IHdobyBpcyB1c2luZyByZWdpc3RyYXRpb24uLi4KKyAgICAvLyBGSVhNRTogSW52b2tlIFJ1
biBTZXJ2aWNlIFdvcmtlciBhbGdvcml0aG0gd2l0aCBhY3RpdmVXb3JrZXIgYXMgdGhlIGFyZ3Vt
ZW50LgorCisgICAgLy8gUXVldWUgYSB0YXNrIHRvIGZpcmUgdGhlIGFjdGl2YXRlIGV2ZW50Lgor
ICAgIG1fc2VydmVyLmZpcmVBY3RpdmF0ZUV2ZW50KGNvbm5lY3Rpb24sIHJlZ2lzdHJhdGlvbi5h
Y3RpdmVXb3JrZXIoKS0+aWRlbnRpZmllcigpKTsKK30KKworLy8gaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL1NlcnZpY2VXb3JrZXIvI2FjdGl2YXRlIChwb3N0IGFjdGl2YXRlIGV2ZW50IHN0ZXBzKS4K
K3ZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6ZGlkRmluaXNoQWN0aXZhdGlvbihTV1NlcnZlcjo6Q29u
bmVjdGlvbiYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KQoreworICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IG1fc2VydmVyLmdldFJlZ2lzdHJhdGlvbiht
X3JlZ2lzdHJhdGlvbktleSk7CisgICAgaWYgKCFyZWdpc3RyYXRpb24pCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmICghcmVnaXN0cmF0aW9uLT5hY3RpdmVXb3JrZXIoKSB8fCByZWdpc3RyYXRp
b24tPmFjdGl2ZVdvcmtlcigpLT5pZGVudGlmaWVyKCkgIT0gc2VydmljZVdvcmtlcklkZW50aWZp
ZXIpCisgICAgICAgIHJldHVybjsKIAotICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlUmVnaXN0cmF0
aW9uU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpBY3RpdmUsIHdhaXRpbmcp
OwotICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvblN0YXRlOjpXYWl0aW5nLCBudWxscHRyKTsKLSAgICByZWdpc3RyYXRpb24t
PnVwZGF0ZVdvcmtlclN0YXRlKCp3YWl0aW5nLCBTZXJ2aWNlV29ya2VyU3RhdGU6OkFjdGl2YXRp
bmcpOwotICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlV29ya2VyU3RhdGUoKndhaXRpbmcsIFNlcnZp
Y2VXb3JrZXJTdGF0ZTo6QWN0aXZhdGVkKTsKKyAgICAvLyBSdW4gdGhlIFVwZGF0ZSBXb3JrZXIg
U3RhdGUgYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtlciBhbmQg
YWN0aXZhdGVkIGFzIHRoZSBhcmd1bWVudHMuCisgICAgcmVnaXN0cmF0aW9uLT51cGRhdGVXb3Jr
ZXJTdGF0ZSgqcmVnaXN0cmF0aW9uLT5hY3RpdmVXb3JrZXIoKSwgU2VydmljZVdvcmtlclN0YXRl
OjpBY3RpdmF0ZWQpOwogfQogCiAvLyBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtl
ci8jcnVuLWpvYgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlckpvYlF1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVySm9iUXVldWUuaAppbmRleCA1ODQzNzg5YTFlNS4uNzlmZTExNDdjOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJKb2JRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJKb2JRdWV1ZS5oCkBAIC01MSw2ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNj
cmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KFNXU2VydmVyOjpDb25uZWN0aW9uJiwgU2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgdm9pZCBzY3JpcHRD
b250ZXh0U3RhcnRlZChTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKTsKICAgICB2b2lkIGRpZEZpbmlzaEluc3RhbGwoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKTsKKyAgICB2b2lkIGRp
ZEZpbmlzaEFjdGl2YXRpb24oU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRl
bnRpZmllcik7CiAgICAgdm9pZCBkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShTV1NlcnZl
cjo6Q29ubmVjdGlvbiYpOwogCiBwcml2YXRlOgpAQCAtNjYsNiArNjcsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgdHJ5Q2xlYXJSZWdpc3RyYXRpb24oU1dTZXJ2ZXJSZWdpc3RyYXRpb24mKTsKICAg
ICB2b2lkIGNsZWFyUmVnaXN0cmF0aW9uKFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CiAgICAgdm9p
ZCBpbnN0YWxsKFNXU2VydmVyUmVnaXN0cmF0aW9uJiwgU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgdm9pZCB0cnlBY3RpdmF0ZShTV1NlcnZlcjo6
Q29ubmVjdGlvbiYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CisgICAgdm9pZCBhY3RpdmF0ZShT
V1NlcnZlcjo6Q29ubmVjdGlvbiYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CiAKICAgICBEZXF1
ZTxTZXJ2aWNlV29ya2VySm9iRGF0YT4gbV9qb2JRdWV1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCAwNjI0YjUzOTgyOS4uNmJjNTg5YTk1NzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xMjQsNiArMTI0LDExIEBA
IHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrCiAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoTWVzc2Fn
ZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpGaXJlSW5zdGFsbEV2ZW50KGlkZW50
aWZpZXIoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZl
ckNvbm5lY3Rpb246OmZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKQoreworICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKE1lc3Nh
Z2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6RmlyZUFjdGl2YXRlRXZlbnQoaWRl
bnRpZmllcigpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikpOworfQorCiB2b2lkIFdlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6
b3B0aW9uYWw8U2VydmljZVdvcmtlcklkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEZldGNoT3B0aW9ucyYgb3B0
aW9ucykKIHsKICAgICBzZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6V2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2goaWRlbnRpZmllcigpLCBmZXRjaElkZW50aWZp
ZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggMTM2MWMyYzE2OWIuLjdmMWNkNTFlY2Yx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC03OCw2ICs3OCw3IEBA
IHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZXMgdG8gdGhlIFNXIGNvbnRleHQgV2ViUHJvY2Vzcwog
ICAgIHZvaWQgaW5zdGFsbFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0IFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YSYpIGZpbmFsOwogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCBmaXJlQWN0
aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CiAKICAg
ICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgZmluYWwgeyByZXR1
cm4gbV9jb250ZW50Q29ubmVjdGlvbi5wdHIoKTsgfQogICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEKCkgZmluYWwgeyByZXR1cm4gaWRlbnRpZmllcigpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwCmluZGV4IDdlOTYy
ZWVmOGUxLi4xMThkZGQ3ZmQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TdG9yYWdlUHJvY2Vzcy5jcHAKQEAgLTQ1OSw2ICs0NTksMTIgQEAgdm9pZCBTdG9yYWdlUHJv
Y2Vzczo6ZGlkRmluaXNoU2VydmljZVdvcmtlckluc3RhbGwodWludDY0X3Qgc2VydmVyQ29ubmVj
dGlvbklkZW4KICAgICAgICAgY29ubmVjdGlvbi0+ZGlkRmluaXNoSW5zdGFsbChyZWdpc3RyYXRp
b25LZXksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCB3YXNTdWNjZXNzZnVsKTsKIH0KIAordm9p
ZCBTdG9yYWdlUHJvY2Vzczo6ZGlkRmluaXNoU2VydmljZVdvcmtlckFjdGl2YXRpb24odWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3U2Vy
dmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAg
Y29ubmVjdGlvbi0+ZGlkRmluaXNoQWN0aXZhdGlvbihyZWdpc3RyYXRpb25LZXksIHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTdG9yYWdlUHJvY2Vzczo6cmVnaXN0ZXJTV1Nl
cnZlckNvbm5lY3Rpb24oV2ViU1dTZXJ2ZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogICAg
IEFTU0VSVCghbV9zd1NlcnZlckNvbm5lY3Rpb25zLmNvbnRhaW5zKGNvbm5lY3Rpb24uaWRlbnRp
ZmllcigpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3Jh
Z2VQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNz
LmgKaW5kZXggM2QwYTQzMTkwNjkuLjQ4MjhlZGQ0OWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oCkBAIC0xMjksNiArMTI5LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZE5vdEhhbmRsZUZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpOwogCiAgICAgdm9pZCBkaWRGaW5p
c2hTZXJ2aWNlV29ya2VySW5zdGFsbCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpOworICAgIHZvaWQg
ZGlkRmluaXNoU2VydmljZVdvcmtlckFjdGl2YXRpb24odWludDY0X3Qgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkm
LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBwb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKICNlbmRpZgogI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TdG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOTZkOTc3YWFkZDUuLmU4ZjE5ODQz
NWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9j
ZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFn
ZVByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTQxLDYgKzQxLDcgQEAgbWVzc2FnZXMgLT4gU3RvcmFn
ZVByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNlcnZpY2VXb3JrZXJDb250ZXh0RmFpbGVk
VG9TdGFydCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSByZWdpc3RyYXRpb25LZXksIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTdHJpbmcgbWVzc2Fn
ZSkKICAgICBTZXJ2aWNlV29ya2VyQ29udGV4dFN0YXJ0ZWQodWludDY0X3Qgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgcmVn
aXN0cmF0aW9uS2V5LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29y
a2VySWRlbnRpZmllcikKICAgICBEaWRGaW5pc2hTZXJ2aWNlV29ya2VySW5zdGFsbCh1aW50NjRf
dCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSByZWdpc3RyYXRpb25LZXksIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpOworICAgIERp
ZEZpbmlzaFNlcnZpY2VXb3JrZXJBY3RpdmF0aW9uKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IHJlZ2lzdHJh
dGlvbktleSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIpOwogCiAgICAgRGlkTm90SGFuZGxlRmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikKICAgICBEaWRGYWlsRmV0
Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRl
bnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCBkYjMxOTdj
OGI3My4uYmFhMGE0YzNhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAK
QEAgLTE1NSw2ICsxNTUsMTIgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6
ZmlyZUluc3RhbGxFdmVudCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWQKICAgICBTV0NvbnRl
eHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5maXJlSW5zdGFsbEV2ZW50KGlkZW50aWZpZXIpOwogfQog
Cit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpmaXJlQWN0aXZhdGVFdmVudCh1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIpOworICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmZpcmVBY3RpdmF0ZUV2
ZW50KGlkZW50aWZpZXIpOworfQorCiB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
Ojpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQogewogICAgIG1fY29ubmVjdGlvblRvU3Rv
cmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpQb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckNsaWVudChkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVy
ZW5jZSB7IG1lc3NhZ2UtPmRhdGEoKSB9LCBzb3VyY2VJZGVudGlmaWVyLCBzb3VyY2VPcmlnaW4p
LCAwKTsKQEAgLTE2OSw2ICsxNzUsMTUgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6ZGlkRmluaXNoSW5zdGFsbChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXIKICAgICBt
X2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vz
czo6RGlkRmluaXNoU2VydmljZVdvcmtlckluc3RhbGwodGhyZWFkUHJveHktPnRocmVhZCgpLnNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGRhdGEucmVnaXN0cmF0aW9uS2V5LCBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgd2FzU3VjY2Vzc2Z1bCksIDApOwogfQogCit2b2lkIFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpkaWRGaW5pc2hBY3RpdmF0aW9uKFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQoreworICAgIGF1dG8qIHRocmVhZFBy
b3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFBy
b3h5KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBBU1NFUlQodGhyZWFkUHJveHkpOwor
CisgICAgYXV0byYgZGF0YSA9IHRocmVhZFByb3h5LT50aHJlYWQoKS5jb250ZXh0RGF0YSgpOwor
ICAgIG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQ
cm9jZXNzOjpEaWRGaW5pc2hTZXJ2aWNlV29ya2VyQWN0aXZhdGlvbih0aHJlYWRQcm94eS0+dGhy
ZWFkKCkuc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwgZGF0YS5yZWdpc3RyYXRpb25LZXks
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSwgMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5oCmluZGV4IDAzMWFiMmYxMWJjLi42MDdlMDBlZjhhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC01Myw2ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgLy8g
V2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbi4KICAgICB2b2lkIHBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZXJpYWxp
emVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pIGZpbmFsOwog
ICAgIHZvaWQgZGlkRmluaXNoSW5zdGFsbChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgYm9vbCB3YXNTdWNjZXNzZnVsKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmlzaEFjdGl2YXRp
b24oV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOwogCiAgICAgLy8gSVBD
IG1lc3NhZ2VzLgogICAgIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRXaXRoTWVzc2FnZShXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25NZXNz
YWdlKSBmaW5hbDsKQEAgLTYwLDYgKzYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0RmV0
Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRl
bnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4s
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJik7CiAg
ICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllciYgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4p
OwogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIHZvaWQgZmly
ZUFjdGl2YXRlRXZlbnQodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+
IG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3M7CiAgICAgdWludDY0X3QgbV9wYWdlSUQgeyAw
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmlu
ZGV4IDJiNTE1MjY1NzQxLi41ZDI1NTVhZGNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI3LDYgKzI3LDcgQEAgbWVzc2FnZXMgLT4g
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gewogICAgIFN0YXJ0RmV0Y2godWludDY0X3Qg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4gc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2Vi
Q29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMpCiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlv
bklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgU3RyaW5nIHNv
dXJjZU9yaWdpbikKICAgICBGaXJlSW5zdGFsbEV2ZW50KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVy
KQorICAgIEZpcmVBY3RpdmF0ZUV2ZW50KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogfQogCiAj
ZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326606</attachid>
            <date>2017-11-10 11:05:33 -0800</date>
            <delta_ts>2017-11-10 12:31:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179436-20171110110533.patch</filename>
            <type>text/plain</type>
            <size>33222</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0Njg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDk4NjgxYzQ5ZTJmNTA5
OWFiZTkxNDAzYzE4ZDk5ZjI1NjZlNjA3OC4uNzg5NDUyNWMxNmRlYjk3OTk3ZDJhYWE4NDU3ZGYx
YzQ5ODJkMmVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDE3LTExLTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgW1NlcnZpY2UgV29ya2Vyc10g
SW1wbGVtZW50ICJUcnkgQWN0aXZhdGUiIC8gIkFjdGl2YXRlIiBhbGdvcml0aG1zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk0MzYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgcHJvcGVy
ICJUcnkgQWN0aXZhdGUiIC8gIkFjdGl2YXRlIiBhbGdvcml0aG1zIGFzIHBlcjoKKyAgICAgICAg
LSBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jdHJ5LWFjdGl2YXRlLWFsZ29y
aXRobQorICAgICAgICAtIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNhY3Rp
dmF0aW9uLWFsZ29yaXRobQorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL2Jhc2ljLWFjdGl2YXRlLWV2ZW50Lmh0bWwKKworICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dDb250
ZXh0TWFuYWdlcjo6ZmlyZUFjdGl2YXRlRXZlbnQpOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJUaHJlYWQ6OmZpcmVBY3RpdmF0ZUV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6
Q29ubmVjdGlvbjo6ZGlkRmluaXNoQWN0aXZhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTV1Nl
cnZlcjo6ZGlkRmluaXNoQWN0aXZhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6
ZmlyZUFjdGl2YXRlRXZlbnQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVl
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJKb2JRdWV1ZTo6ZGlkRmluaXNoSW5z
dGFsbCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlckpvYlF1ZXVlOjp0cnlBY3RpdmF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlckpvYlF1ZXVlOjphY3RpdmF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTV1NlcnZlckpvYlF1ZXVlOjpkaWRGaW5pc2hBY3RpdmF0aW9uKToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuaDoKKworMjAxNy0x
MS0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIFNpbXBsaWZ5
IFNXU2VydmVyUmVnaXN0cmF0aW9uOjpmb3JFYWNoQ29ubmVjdGlvbigpCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk1MjMKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBi
MjJmZjUxOWVmMDFhYTRkM2FlYjk3N2ZmZjhjNmU4ZDM0NDE2ZDVkLi42ZDJkMzI3NmQwMjliZjE0
ZDA2OWNiZGQ4ZjY4OTZhMDFmMzFlMjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3
LTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1NlcnZp
Y2UgV29ya2Vyc10gSW1wbGVtZW50ICJUcnkgQWN0aXZhdGUiIC8gIkFjdGl2YXRlIiBhbGdvcml0
aG1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk0
MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnQgcHJvcGVyICJUcnkgQWN0aXZhdGUiIC8gIkFjdGl2YXRlIiBhbGdvcml0aG1zIGFzIHBl
cjoKKyAgICAgICAgLSBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jdHJ5LWFj
dGl2YXRlLWFsZ29yaXRobQorICAgICAgICAtIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNl
V29ya2VyLyNhY3RpdmF0aW9uLWFsZ29yaXRobQorCisgICAgICAgICogU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmZpcmVBY3RpdmF0ZUV2ZW50KToKKyAgICAgICAgKiBT
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oOgorICAg
ICAgICAqIFN0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U3RvcmFnZVByb2Nlc3M6OmRpZEZpbmlzaFNlcnZpY2VXb3JrZXJBY3RpdmF0aW9uKToKKyAg
ICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oOgorICAgICAgICAqIFN0b3Jh
Z2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpmaXJlQWN0aXZhdGVFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpkaWRGaW5p
c2hBY3RpdmF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisKIDIwMTctMTEtMTAgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQ
RV0gU3dpdGNoIHRvIHVzZSBBUEk6Ok5hdmlnYXRpb25DbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5j
cHAKaW5kZXggNDliNmViM2NhYmE5MGEwODNhMTQxNjY5Yzg1MDYwYzBjZmMyMzJlMS4uYTg4OTYw
N2NkNmIwMjNhM2M1MjJlYWM3MDdlMGY2YzJlZjJjNWNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5j
cHAKQEAgLTgzLDYgKzgzLDE1IEBAIHZvaWQgU1dDb250ZXh0TWFuYWdlcjo6ZmlyZUluc3RhbGxF
dmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIHNlcnZpY2VXb3Jr
ZXItPnRocmVhZCgpLmZpcmVJbnN0YWxsRXZlbnQoKTsKIH0KIAordm9pZCBTV0NvbnRleHRNYW5h
Z2VyOjpmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIGF1dG8qIHNlcnZpY2VXb3JrZXIgPSBtX3dvcmtlck1hcC5nZXQoaWRlbnRpZmll
cik7CisgICAgaWYgKCFzZXJ2aWNlV29ya2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBzZXJ2
aWNlV29ya2VyLT50aHJlYWQoKS5maXJlQWN0aXZhdGVFdmVudCgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCmluZGV4IDVkODQ3NzMzOGI1
YmZjNDdlZDM0MmQxMGI4MjJiNTdkNmYxODY1ZDQuLmM1MDdiNmU2NjY4NmY4YzA3ZTNhNTc1Y2U4
ZTY3ODhjOTZhMjE0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHVi
bGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGll
bnQoY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRp
ZmllciwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBzb3VyY2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKSA9IDA7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBzZXJ2aWNlV29ya2VyU3RhcnRlZFdpdGhNZXNzYWdlKFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpID0gMDsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaEluc3RhbGwoU2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoQWN0aXZhdGlvbihTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwogICAgIH07CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvbm5lY3Rpb24oc3RkOjp1bmlxdWVfcHRyPENvbm5l
Y3Rpb24+JiYpOwpAQCAtNTcsNiArNTgsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
U2VydmljZVdvcmtlclRocmVhZFByb3h5KiBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciBk
ZXN0aW5hdGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBjb25zdCBT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VPcmlnaW4pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmlyZUluc3RhbGxF
dmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBm
aXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAKIHByaXZhdGU6CiAg
ICAgU1dDb250ZXh0TWFuYWdlcigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5j
cHAKaW5kZXggNGJlYmIyZTBmYjRiMTA2N2RkY2Q3YzZiMTNkODY3ZDU0YTA1ZmQ1MS4uMzRhMzMy
MmQyMWY3NjAwZWQwOTFhMTMwOGM4NjZiZmRlNzIwM2FhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZC5jcHAKQEAgLTE0MCw2ICsxNDAsMjMgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpm
aXJlSW5zdGFsbEV2ZW50KCkKICAgICBydW5Mb29wKCkucG9zdFRhc2soV1RGTW92ZSh0YXNrKSk7
CiB9CiAKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6ZmlyZUFjdGl2YXRlRXZlbnQoKQorewor
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgdGFzayhbc2VydmljZVdvcmtlcklkZW50
aWZpZXIgPSB0aGlzLT5pZGVudGlmaWVyKCldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byYgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlID0g
ZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KTsKKyAgICAgICAgYXV0
byBhY3RpdmF0ZUV2ZW50ID0gRXh0ZW5kYWJsZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmFj
dGl2YXRlRXZlbnQsIHsgfSwgRXh0ZW5kYWJsZUV2ZW50OjpJc1RydXN0ZWQ6Olllcyk7CisgICAg
ICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5kaXNwYXRjaEV2ZW50KGFjdGl2YXRlRXZlbnQp
OworCisgICAgICAgIGFjdGl2YXRlRXZlbnQtPndoZW5BbGxFeHRlbmRMaWZldGltZVByb21pc2Vz
QXJlU2V0dGxlZChbc2VydmljZVdvcmtlcklkZW50aWZpZXJdKEhhc2hTZXQ8UmVmPERPTVByb21p
c2U+PiYmKSB7CisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtzZXJ2aWNlV29ya2VySWRl
bnRpZmllcl0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGNvbm5lY3Rp
b24gPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCkpCisgICAgICAg
ICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmRpZEZpbmlzaEFjdGl2YXRpb24oc2VydmljZVdvcmtl
cklkZW50aWZpZXIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOworICAg
IHJ1bkxvb3AoKS5wb3N0VGFzayhXVEZNb3ZlKHRhc2spKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5oCmluZGV4IDA2Mjc2ZmM1YmZiMDNiZDQ1NDFjNjVkMTZkNTI1YTBjYTgyMTVjZGYu
LmQ0OGE3MTk0YmFiMDkwMTI1ZTEyMzgyY2JmMzQwYzgwZjk1Nzk1ZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcG9zdEZldGNoVGFzayhSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIFJl
c291cmNlUmVxdWVzdCYmLCBGZXRjaE9wdGlvbnMmJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFJlZjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4mJiwg
Y29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIHNvdXJjZUlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQoKTsK
KyAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KCk7CiAKICAgICB1aW50NjRfdCBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXI7IH0KICAgICBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGNvbnRleHREYXRh
KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IGI0MjZjZDAxYTZhMzBmYmQyZmRh
OTcxNjUzOTA4MTdkYmYzMTY3MzAuLmNjNDIyZDI5YmQ1ZTA1ZTdkMzYxMzRjM2YwNDViNmE4MGM2
Y2U4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXIuY3BwCkBAIC0xMTcsNiArMTE3LDExIEBAIHZvaWQgU1dTZXJ2ZXI6OkNvbm5lY3Rp
b246OmRpZEZpbmlzaEluc3RhbGwoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYK
ICAgICBtX3NlcnZlci5kaWRGaW5pc2hJbnN0YWxsKCp0aGlzLCBrZXksIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCB3YXNTdWNjZXNzZnVsKTsKIH0KIAordm9pZCBTV1NlcnZlcjo6Q29ubmVjdGlv
bjo6ZGlkRmluaXNoQWN0aXZhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5
JiBrZXksIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQor
eworICAgIG1fc2VydmVyLmRpZEZpbmlzaEFjdGl2YXRpb24oKnRoaXMsIGtleSwgc2VydmljZVdv
cmtlcklkZW50aWZpZXIpOworfQorCiB2b2lkIFNXU2VydmVyOjpDb25uZWN0aW9uOjpkaWRSZXNv
bHZlUmVnaXN0cmF0aW9uUHJvbWlzZShjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5
JiBrZXkpCiB7CiAgICAgbV9zZXJ2ZXIuZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoKnRo
aXMsIGtleSk7CkBAIC0yNDIsNiArMjQ3LDE0IEBAIHZvaWQgU1dTZXJ2ZXI6OmRpZEZpbmlzaElu
c3RhbGwoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzCiAg
ICAgICAgIGpvYlF1ZXVlLT5kaWRGaW5pc2hJbnN0YWxsKGNvbm5lY3Rpb24sIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCB3YXNTdWNjZXNzZnVsKTsKIH0KIAordm9pZCBTV1NlcnZlcjo6ZGlkRmlu
aXNoQWN0aXZhdGlvbihDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uS2V5JiByZWdpc3RyYXRpb25LZXksIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQoreworICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlv
biwgbV9jb25uZWN0aW9ucy5jb250YWlucyhjb25uZWN0aW9uLmlkZW50aWZpZXIoKSkpOworCisg
ICAgaWYgKGF1dG8qIHJlZ2lzdHJhdGlvbiA9IGdldFJlZ2lzdHJhdGlvbihyZWdpc3RyYXRpb25L
ZXkpKQorICAgICAgICBTV1NlcnZlckpvYlF1ZXVlOjpkaWRGaW5pc2hBY3RpdmF0aW9uKCpyZWdp
c3RyYXRpb24sIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTV1NlcnZlcjo6
ZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29u
c3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYgcmVnaXN0cmF0aW9uS2V5KQogewogICAg
IEFTU0VSVChtX2Nvbm5lY3Rpb25zLmNvbnRhaW5zKGNvbm5lY3Rpb24uaWRlbnRpZmllcigpKSk7
CkBAIC0yOTUsNiArMzA4LDExIEBAIHZvaWQgU1dTZXJ2ZXI6OmZpcmVJbnN0YWxsRXZlbnQoQ29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIKICAgICBjb25uZWN0
aW9uLmZpcmVJbnN0YWxsRXZlbnQoc2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogfQogCit2b2lk
IFNXU2VydmVyOjpmaXJlQWN0aXZhdGVFdmVudChDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBjb25u
ZWN0aW9uLmZpcmVBY3RpdmF0ZUV2ZW50KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKK30KKwog
dm9pZCBTV1NlcnZlcjo6dGFza1RocmVhZEVudHJ5UG9pbnQoKQogewogICAgIEFTU0VSVCghaXNN
YWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlci5oCmluZGV4IDZkN2UzYmQ5OWM0YjZlNjEyMDg5NTQ5NzkyMTgzYWNmY2NhOWRh
MzIuLjBhZTAzMTJkMTdhZTI4YmM3NzUwZDA1M2MwZTBhZTFjYzM3MjY2NDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKQEAgLTYyLDYg
KzYyLDcgQEAgcHVibGljOgogICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcmlwdENvbnRl
eHRGYWlsZWRUb1N0YXJ0KGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBTZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKICAgICAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzY3JpcHRDb250ZXh0U3RhcnRlZChjb25zdCBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uS2V5JiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGRpZEZpbmlzaEluc3RhbGwoY29uc3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwp
OworICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEZpbmlzaEFjdGl2YXRpb24oY29uc3Qg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsK
ICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlz
ZShjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5Jik7CiAgICAgICAgIGNvbnN0IFNX
U2VydmVyUmVnaXN0cmF0aW9uKiBkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCkgY29uc3QgeyByZXR1
cm4gbV9zZXJ2ZXIuZG9SZWdpc3RyYXRpb25NYXRjaGluZyh0b3BPcmlnaW4sIGNsaWVudFVSTCk7
IH0KIApAQCAtODksNiArOTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIE1lc3NhZ2VzIHRvIHRo
ZSBTVyBob3N0IFdlYlByb2Nlc3MKICAgICAgICAgdmlydHVhbCB2b2lkIGluc3RhbGxTZXJ2aWNl
V29ya2VyQ29udGV4dChjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmKSA9IDA7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29y
a2VySWRlbnRpZmllcikgPSAwOwogCiAgICAgICAgIFNXU2VydmVyJiBtX3NlcnZlcjsKICAgICB9
OwpAQCAtMTEzLDYgKzExNSw3IEBAIHB1YmxpYzoKIAogICAgIFJlZjxTV1NlcnZlcldvcmtlcj4g
dXBkYXRlV29ya2VyKENvbm5lY3Rpb24mLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIFdvcmtlclR5cGUpOwogICAg
IHZvaWQgZmlyZUluc3RhbGxFdmVudChDb25uZWN0aW9uJiwgU2VydmljZVdvcmtlcklkZW50aWZp
ZXIpOworICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoQ29ubmVjdGlvbiYsIFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKTsKICAgICBTV1NlcnZlcldvcmtlciogd29ya2VyQnlJRChTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBpZGVudGlmaWVyKSBjb25zdCB7IHJldHVybiBtX3dvcmtlcnNCeUlELmdl
dChpZGVudGlmaWVyKTsgfQogICAgIAogICAgIENvbm5lY3Rpb24qIGdldENvbm5lY3Rpb24odWlu
dDY0X3QgaWRlbnRpZmllcikgeyByZXR1cm4gbV9jb25uZWN0aW9ucy5nZXQoaWRlbnRpZmllcik7
IH0KQEAgLTEyOCw2ICsxMzEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2NyaXB0Q29udGV4dEZh
aWxlZFRvU3RhcnQoQ29ubmVjdGlvbiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25L
ZXkmLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKICAg
ICB2b2lkIHNjcmlwdENvbnRleHRTdGFydGVkKENvbm5lY3Rpb24mLCBjb25zdCBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uS2V5JiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQg
ZGlkRmluaXNoSW5zdGFsbChDb25uZWN0aW9uJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbktleSYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwpOwor
ICAgIHZvaWQgZGlkRmluaXNoQWN0aXZhdGlvbihDb25uZWN0aW9uJiwgY29uc3QgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbktleSYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lk
IGRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKENvbm5lY3Rpb24mLCBjb25zdCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uS2V5Jik7CiAKICAgICB2b2lkIGFkZENsaWVudFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24oQ29ubmVjdGlvbiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25LZXkmLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1
ZXVlLmNwcAppbmRleCA4MDdjNTM3N2U5ZDUyMDMyNDEwMDhiNDNlMTkzOGNkZDM5NTNhM2RhLi4z
YzI4MDZkMDRlMjBhYzZkZWNjZWI0NDg5NzQ2YTA0Y2Y3MDlhOTk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1
ZS5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OmRpZFJlc29s
dmVSZWdpc3RyYXRpb25Qcm9taXNlKFNXU2VydmVyOjpDb25uZWN0aW9uJiBjb25uZQogfQogCiAv
LyBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jaW5zdGFsbAotdm9pZCBTV1Nl
cnZlckpvYlF1ZXVlOjpkaWRGaW5pc2hJbnN0YWxsKFNXU2VydmVyOjpDb25uZWN0aW9uJiwgU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKQordm9p
ZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRGaW5pc2hJbnN0YWxsKFNXU2VydmVyOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIHdh
c1N1Y2Nlc3NmdWwpCiB7CiAgICAgYXV0byogcmVnaXN0cmF0aW9uID0gbV9zZXJ2ZXIuZ2V0UmVn
aXN0cmF0aW9uKG1fcmVnaXN0cmF0aW9uS2V5KTsKICAgICBBU1NFUlQocmVnaXN0cmF0aW9uKTsK
QEAgLTE3NCwxNSArMTc0LDY0IEBAIHZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6ZGlkRmluaXNoSW5z
dGFsbChTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIFNlcnZpY2VXb3JrZXJJZGVuCiAKICAgICBmaW5p
c2hDdXJyZW50Sm9iKCk7CiAKLSAgICAvLyBGSVhNRTogSW52b2tlIFRyeSBBY3RpdmF0ZSB3aXRo
IHJlZ2lzdHJhdGlvbgotICAgIC8vIEZJWE1FOiBEbyB3ZSBuZWVkICJXYWl0IGZvciBhbGwgdGhl
IHRhc2tzIHF1ZXVlZCBieSBVcGRhdGUgV29ya2VyIFN0YXRlIGludm9rZWQgaW4gdGhpcyBhbGdv
cml0aG0gaGF2ZSBleGVjdXRlZCIgZmlyc3Q/Ci0gICAgYXV0byogd2FpdGluZyA9IHJlZ2lzdHJh
dGlvbi0+d2FpdGluZ1dvcmtlcigpOwotICAgIEFTU0VSVCh3YWl0aW5nKTsKKyAgICAvLyBGSVhN
RTogV2FpdCBmb3IgYWxsIHRoZSB0YXNrcyBxdWV1ZWQgYnkgVXBkYXRlIFdvcmtlciBTdGF0ZSBp
bnZva2VkIGluIHRoaXMgYWxnb3JpdGhtIGhhdmUgZXhlY3V0ZWQuCisgICAgdHJ5QWN0aXZhdGUo
bV9zZXJ2ZXIsIGNvbm5lY3Rpb24sICpyZWdpc3RyYXRpb24pOworfQorCisvLyBodHRwczovL3cz
Yy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jdHJ5LWFjdGl2YXRlLWFsZ29yaXRobQordm9pZCBT
V1NlcnZlckpvYlF1ZXVlOjp0cnlBY3RpdmF0ZShTV1NlcnZlciYgc2VydmVyLCBTV1NlcnZlcjo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlv
bikKK3sKKyAgICAvLyBJZiByZWdpc3RyYXRpb24ncyB3YWl0aW5nIHdvcmtlciBpcyBudWxsLCBy
ZXR1cm4uCisgICAgaWYgKCFyZWdpc3RyYXRpb24ud2FpdGluZ1dvcmtlcigpKQorICAgICAgICBy
ZXR1cm47CisgICAgLy8gSWYgcmVnaXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtlciBpcyBub3QgbnVs
bCBhbmQgcmVnaXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtlcidzIHN0YXRlIGlzIGFjdGl2YXRpbmcs
IHJldHVybi4KKyAgICBpZiAocmVnaXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigpICYmIHJlZ2lzdHJh
dGlvbi5hY3RpdmVXb3JrZXIoKS0+c3RhdGUoKSA9PSBTZXJ2aWNlV29ya2VyU3RhdGU6OkFjdGl2
YXRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBJbnZva2UgQWN0aXZhdGUg
d2l0aCByZWdpc3RyYXRpb24gaWYgZWl0aGVyIG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZToKKyAg
ICAvLyAtIHJlZ2lzdHJhdGlvbidzIGFjdGl2ZSB3b3JrZXIgaXMgbnVsbC4KKyAgICAvLyAtIFRo
ZSByZXN1bHQgb2YgcnVubmluZyBTZXJ2aWNlIFdvcmtlciBIYXMgTm8gUGVuZGluZyBFdmVudHMg
d2l0aCByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2VyIGlzIHRydWUsCisgICAgLy8gICBhbmQg
bm8gc2VydmljZSB3b3JrZXIgY2xpZW50IGlzIHVzaW5nIHJlZ2lzdHJhdGlvbiBvciByZWdpc3Ry
YXRpb24ncyB3YWl0aW5nIHdvcmtlcidzIHNraXAgd2FpdGluZworICAgIC8vICAgZmxhZyBpcyBz
ZXQuCisgICAgYWN0aXZhdGUoc2VydmVyLCBjb25uZWN0aW9uLCByZWdpc3RyYXRpb24pOworfQor
CisvLyBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jYWN0aXZhdGUKK3ZvaWQg
U1dTZXJ2ZXJKb2JRdWV1ZTo6YWN0aXZhdGUoU1dTZXJ2ZXImIHNlcnZlciwgU1dTZXJ2ZXI6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24p
Cit7CisgICAgLy8gSWYgcmVnaXN0cmF0aW9uJ3Mgd2FpdGluZyB3b3JrZXIgaXMgbnVsbCwgYWJv
cnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKCFyZWdpc3RyYXRpb24ud2FpdGluZ1dvcmtlcigpKQor
ICAgICAgICByZXR1cm47CisKKyAgICAvLyBJZiByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2Vy
IGlzIG5vdCBudWxsLCB0aGVuOgorICAgIGlmIChyZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCkp
IHsKKyAgICAgICAgLy8gVGVybWluYXRlIHJlZ2lzdHJhdGlvbidzIGFjdGl2ZSB3b3JrZXIuCisg
ICAgICAgIC8vIHJlZ2lzdHJhdGlvbi5hY3RpdmVXb3JrZXIoKS0+dGVybWluYXRlKCk7CisgICAg
ICAgIC8vIFJ1biB0aGUgVXBkYXRlIFdvcmtlciBTdGF0ZSBhbGdvcml0aG0gcGFzc2luZyByZWdp
c3RyYXRpb24ncyBhY3RpdmUgd29ya2VyIGFuZCByZWR1bmRhbnQgYXMgdGhlIGFyZ3VtZW50cy4K
KyAgICAgICAgcmVnaXN0cmF0aW9uLnVwZGF0ZVdvcmtlclN0YXRlKCpyZWdpc3RyYXRpb24uYWN0
aXZlV29ya2VyKCksIFNlcnZpY2VXb3JrZXJTdGF0ZTo6UmVkdW5kYW50KTsKKyAgICB9CisgICAg
Ly8gUnVuIHRoZSBVcGRhdGUgUmVnaXN0cmF0aW9uIFN0YXRlIGFsZ29yaXRobSBwYXNzaW5nIHJl
Z2lzdHJhdGlvbiwgImFjdGl2ZSIgYW5kIHJlZ2lzdHJhdGlvbidzIHdhaXRpbmcgd29ya2VyIGFz
IHRoZSBhcmd1bWVudHMuCisgICAgcmVnaXN0cmF0aW9uLnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRl
KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6QWN0aXZlLCByZWdpc3RyYXRpb24ud2Fp
dGluZ1dvcmtlcigpKTsKKyAgICAvLyBSdW4gdGhlIFVwZGF0ZSBSZWdpc3RyYXRpb24gU3RhdGUg
YWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9uLCAid2FpdGluZyIgYW5kIG51bGwgYXMgdGhl
IGFyZ3VtZW50cy4KKyAgICByZWdpc3RyYXRpb24udXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpXYWl0aW5nLCBudWxscHRyKTsKKyAgICAvLyBS
dW4gdGhlIFVwZGF0ZSBXb3JrZXIgU3RhdGUgYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9u
J3MgYWN0aXZlIHdvcmtlciBhbmQgYWN0aXZhdGluZyBhcyB0aGUgYXJndW1lbnRzLgorICAgIHJl
Z2lzdHJhdGlvbi51cGRhdGVXb3JrZXJTdGF0ZSgqcmVnaXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigp
LCBTZXJ2aWNlV29ya2VyU3RhdGU6OkFjdGl2YXRpbmcpOworICAgIC8vIEZJWE1FOiBGb3IgZWFj
aCBzZXJ2aWNlIHdvcmtlciBjbGllbnQgY2xpZW50IHdob3NlIGNyZWF0aW9uIFVSTCBtYXRjaGVz
IHJlZ2lzdHJhdGlvbidzIHNjb3BlIHVybC4uLgorICAgIC8vIEZJWE1FOiBGb3IgZWFjaCBzZXJ2
aWNlIHdvcmtlciBjbGllbnQgY2xpZW50IHdobyBpcyB1c2luZyByZWdpc3RyYXRpb24uLi4KKyAg
ICAvLyBGSVhNRTogSW52b2tlIFJ1biBTZXJ2aWNlIFdvcmtlciBhbGdvcml0aG0gd2l0aCBhY3Rp
dmVXb3JrZXIgYXMgdGhlIGFyZ3VtZW50LgorCisgICAgLy8gUXVldWUgYSB0YXNrIHRvIGZpcmUg
dGhlIGFjdGl2YXRlIGV2ZW50LgorICAgIHNlcnZlci5maXJlQWN0aXZhdGVFdmVudChjb25uZWN0
aW9uLCByZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCktPmlkZW50aWZpZXIoKSk7Cit9CisKKy8v
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNhY3RpdmF0ZSAocG9zdCBhY3Rp
dmF0ZSBldmVudCBzdGVwcykuCit2b2lkIFNXU2VydmVySm9iUXVldWU6OmRpZEZpbmlzaEFjdGl2
YXRpb24oU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwgU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCit7CisgICAgaWYgKCFyZWdpc3RyYXRp
b24uYWN0aXZlV29ya2VyKCkgfHwgcmVnaXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigpLT5pZGVudGlm
aWVyKCkgIT0gc2VydmljZVdvcmtlcklkZW50aWZpZXIpCisgICAgICAgIHJldHVybjsKIAotICAg
IHJlZ2lzdHJhdGlvbi0+dXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvblN0YXRlOjpBY3RpdmUsIHdhaXRpbmcpOwotICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRl
UmVnaXN0cmF0aW9uU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpXYWl0aW5n
LCBudWxscHRyKTsKLSAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVdvcmtlclN0YXRlKCp3YWl0aW5n
LCBTZXJ2aWNlV29ya2VyU3RhdGU6OkFjdGl2YXRpbmcpOwotICAgIHJlZ2lzdHJhdGlvbi0+dXBk
YXRlV29ya2VyU3RhdGUoKndhaXRpbmcsIFNlcnZpY2VXb3JrZXJTdGF0ZTo6QWN0aXZhdGVkKTsK
KyAgICAvLyBSdW4gdGhlIFVwZGF0ZSBXb3JrZXIgU3RhdGUgYWxnb3JpdGhtIHBhc3NpbmcgcmVn
aXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtlciBhbmQgYWN0aXZhdGVkIGFzIHRoZSBhcmd1bWVudHMu
CisgICAgcmVnaXN0cmF0aW9uLnVwZGF0ZVdvcmtlclN0YXRlKCpyZWdpc3RyYXRpb24uYWN0aXZl
V29ya2VyKCksIFNlcnZpY2VXb3JrZXJTdGF0ZTo6QWN0aXZhdGVkKTsKIH0KIAogLy8gaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI3J1bi1qb2IKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmgKaW5k
ZXggNTg0Mzc4OWExZTUxZTAwZjM3NjBlZjUyZmQzNDYxYTkxOWY2N2YwZi4uMmY3N2IwOTdmMjE2
NmUxYjY4MmEyOWIxYzc3ZTIxNGVkN2FlNWU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmgKQEAgLTUxLDYg
KzUxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoU1dT
ZXJ2ZXI6OkNvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKTsKICAgICB2b2lkIHNjcmlwdENvbnRleHRTdGFydGVkKFNXU2VydmVyOjpDb25u
ZWN0aW9uJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkRmluaXNoSW5z
dGFsbChTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29s
IHdhc1N1Y2Nlc3NmdWwpOworICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaEFjdGl2YXRpb24oU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBk
aWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShTV1NlcnZlcjo6Q29ubmVjdGlvbiYpOwogCiBw
cml2YXRlOgpAQCAtNjYsNiArNjcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgdHJ5Q2xlYXJSZWdp
c3RyYXRpb24oU1dTZXJ2ZXJSZWdpc3RyYXRpb24mKTsKICAgICB2b2lkIGNsZWFyUmVnaXN0cmF0
aW9uKFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CiAgICAgdm9pZCBpbnN0YWxsKFNXU2VydmVyUmVn
aXN0cmF0aW9uJiwgU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmll
cik7CisgICAgc3RhdGljIHZvaWQgdHJ5QWN0aXZhdGUoU1dTZXJ2ZXImLCBTV1NlcnZlcjo6Q29u
bmVjdGlvbiYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgYWN0aXZh
dGUoU1dTZXJ2ZXImLCBTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIFNXU2VydmVyUmVnaXN0cmF0aW9u
Jik7CiAKICAgICBEZXF1ZTxTZXJ2aWNlV29ya2VySm9iRGF0YT4gbV9qb2JRdWV1ZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCAwNjI0YjUzOTgyOTk3MTQx
ZWQ0OGUzMTVjY2E3ODQwYzllN2E1YjM0Li42YmM1ODlhOTU3Mjg1MDEzYWI0ODg0MGMyZjQwYjA0
NjAxOTE5OWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAt
MTI0LDYgKzEyNCwxMSBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZmlyZUluc3RhbGxF
dmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29yawogICAgIHNlbmRUb0NvbnRl
eHRQcm9jZXNzKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6RmlyZUlu
c3RhbGxFdmVudChpZGVudGlmaWVyKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSk7CiB9CiAK
K3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBzZW5kVG9Db250
ZXh0UHJvY2VzcyhNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkZpcmVB
Y3RpdmF0ZUV2ZW50KGlkZW50aWZpZXIoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIpKTsKK30K
Kwogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2godWludDY0X3QgZmV0Y2hJ
ZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBG
ZXRjaE9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoTWVzc2Fn
ZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpTdGFydEZldGNoKGlkZW50aWZpZXIo
KSwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgcmVxdWVzdCwgb3B0
aW9ucykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IDEzNjFjMmMx
NjliNzczNGEwYTIyODQ0MjhlOTY5Mzg4ZjgzMjdkYjguLjdmMWNkNTFlY2YxM2RhZTY0ZjJkMDVi
MjZjZWRiNmQzNTY4NDljNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgK
QEAgLTc4LDYgKzc4LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlcyB0byB0aGUgU1cgY29u
dGV4dCBXZWJQcm9jZXNzCiAgICAgdm9pZCBpbnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQoY29u
c3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhJikgZmluYWw7CiAgICAgdm9pZCBm
aXJlSW5zdGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsK
KyAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKSBmaW5hbDsKIAogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKSBmaW5hbCB7IHJldHVybiBtX2NvbnRlbnRDb25uZWN0aW9uLnB0cigpOyB9CiAgICAgdWlu
dDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBmaW5hbCB7IHJldHVybiBpZGVudGlm
aWVyKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFn
ZVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vz
cy5jcHAKaW5kZXggN2U5NjJlZWY4ZTE3N2QxOWZmMTJiNGVlYmUxNjcxMDQxMjcwMWFkYi4uMTE4
ZGRkN2ZkNjUyMDQ3MjhkYzBjOWVmMGQ2ZTliNTMyNTgxNjFjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAKQEAgLTQ1OSw2ICs0NTksMTIg
QEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGlkRmluaXNoU2VydmljZVdvcmtlckluc3RhbGwodWlu
dDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW4KICAgICAgICAgY29ubmVjdGlvbi0+ZGlkRmluaXNo
SW5zdGFsbChyZWdpc3RyYXRpb25LZXksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCB3YXNTdWNj
ZXNzZnVsKTsKIH0KIAordm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGlkRmluaXNoU2VydmljZVdvcmtl
ckFjdGl2YXRpb24odWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgU2VydmljZVdvcmtl
cklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8qIGNv
bm5lY3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyKSkKKyAgICAgICAgY29ubmVjdGlvbi0+ZGlkRmluaXNoQWN0aXZhdGlvbihyZWdpc3Ry
YXRpb25LZXksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTdG9yYWdlUHJv
Y2Vzczo6cmVnaXN0ZXJTV1NlcnZlckNvbm5lY3Rpb24oV2ViU1dTZXJ2ZXJDb25uZWN0aW9uJiBj
b25uZWN0aW9uKQogewogICAgIEFTU0VSVCghbV9zd1NlcnZlckNvbm5lY3Rpb25zLmNvbnRhaW5z
KGNvbm5lY3Rpb24uaWRlbnRpZmllcigpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1N0b3JhZ2VQcm9jZXNzLmgKaW5kZXggM2QwYTQzMTkwNjkzNGViOGM0ODNkZWU4MTBhYTFl
OWRlMzc3NDQ4NC4uNDgyOGVkZDQ5YjAyZDI2YTQwNDRlNTJiMzMxMzJiMzFhZWRkZmM1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaApAQCAtMTI5
LDYgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWROb3RIYW5kbGVGZXRjaCh1aW50NjRf
dCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKTsK
IAogICAgIHZvaWQgZGlkRmluaXNoU2VydmljZVdvcmtlckluc3RhbGwodWludDY0X3Qgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25LZXkmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCB3YXNTdWNj
ZXNzZnVsKTsKKyAgICB2b2lkIGRpZEZpbmlzaFNlcnZpY2VXb3JrZXJBY3RpdmF0aW9uKHVpbnQ2
NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uS2V5JiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwog
ICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDk2
ZDk3N2FhZGQ1MDFlMGQ0NzFjMzc2MDI0YjY1NTVkZGE1ZmQzNmIuLmU4ZjE5ODQzNWI5NjI3MDk5
MzdhMGYzNTFkZDUyNWRlYTdlNDA5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNDEsNiArNDEsNyBA
QCBtZXNzYWdlcyAtPiBTdG9yYWdlUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2Vydmlj
ZVdvcmtlckNvbnRleHRGYWlsZWRUb1N0YXJ0KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IHJlZ2lzdHJhdGlv
bktleSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIFN0cmluZyBtZXNzYWdlKQogICAgIFNlcnZpY2VXb3JrZXJDb250ZXh0U3RhcnRlZCh1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbktleSByZWdpc3RyYXRpb25LZXksIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQogICAgIERpZEZpbmlzaFNlcnZpY2VX
b3JrZXJJbnN0YWxsKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IHJlZ2lzdHJhdGlvbktleSwgV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgd2Fz
U3VjY2Vzc2Z1bCk7CisgICAgRGlkRmluaXNoU2VydmljZVdvcmtlckFjdGl2YXRpb24odWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25LZXkgcmVnaXN0cmF0aW9uS2V5LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAKICAgICBEaWROb3RIYW5kbGVGZXRjaCh1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlm
aWVyKQogICAgIERpZEZhaWxGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uY3BwCmluZGV4IGRiMzE5N2M4YjczMGU0OTU3YjdhY2Y3Yzk1YWUzNjBjMWMwYzFmMTcuLmJh
YTBhNGMzYTYxMzdkOWJhYWYyYzM5ZTg2Y2Q3ZjViY2U2NTAzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTE1NSw2ICsxNTUsMTIgQEAgdm9pZCBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZmlyZUluc3RhbGxFdmVudCh1aW50NjRfdCBzZXJ2ZXJDb25u
ZWN0aW9uSWQKICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5maXJlSW5zdGFsbEV2
ZW50KGlkZW50aWZpZXIpOwogfQogCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
OjpmaXJlQWN0aXZhdGVFdmVudCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0o
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmds
ZXRvbigpLmZpcmVBY3RpdmF0ZUV2ZW50KGlkZW50aWZpZXIpOworfQorCiB2b2lkIFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChj
b25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVy
LCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQogewog
ICAgIG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQ
cm9jZXNzOjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChkZXN0aW5hdGlvbklkZW50
aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSB7IG1lc3NhZ2UtPmRhdGEoKSB9LCBzb3VyY2VJZGVu
dGlmaWVyLCBzb3VyY2VPcmlnaW4pLCAwKTsKQEAgLTE2OSw2ICsxNzUsMTUgQEAgdm9pZCBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZGlkRmluaXNoSW5zdGFsbChTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBzZXIKICAgICBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6RGlkRmluaXNoU2VydmljZVdvcmtlckluc3RhbGwodGhy
ZWFkUHJveHktPnRocmVhZCgpLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGRhdGEucmVn
aXN0cmF0aW9uS2V5LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgd2FzU3VjY2Vzc2Z1bCksIDAp
OwogfQogCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpkaWRGaW5pc2hBY3Rp
dmF0aW9uKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQor
eworICAgIGF1dG8qIHRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCku
c2VydmljZVdvcmtlclRocmVhZFByb3h5KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBB
U1NFUlQodGhyZWFkUHJveHkpOworCisgICAgYXV0byYgZGF0YSA9IHRocmVhZFByb3h5LT50aHJl
YWQoKS5jb250ZXh0RGF0YSgpOworICAgIG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpEaWRGaW5pc2hTZXJ2aWNlV29ya2VyQWN0aXZh
dGlvbih0aHJlYWRQcm94eS0+dGhyZWFkKCkuc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwg
ZGF0YS5yZWdpc3RyYXRpb25LZXksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSwgMCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4IDAzMWFiMmYxMWJjNDI2NWQ1
ZGZiMjRiMjk5YzI2MmRkOTZmNGNjYzQuLjYwN2UwMGVmOGE0NjYwOTZmOTcwOTc2MTg1ODczY2Qz
OTg1ODAyODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApAQCAtNTMsNiArNTMs
NyBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OkNvbm5lY3Rp
b24uCiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVy
LCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
c291cmNlT3JpZ2luKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaEluc3RhbGwoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCkgZmluYWw7CisgICAg
dm9pZCBkaWRGaW5pc2hBY3RpdmF0aW9uKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KSBmaW5hbDsKIAogICAgIC8vIElQQyBtZXNzYWdlcy4KICAgICB2b2lkIHNlcnZpY2VXb3JrZXJT
dGFydGVkV2l0aE1lc3NhZ2UoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgZXhjZXB0aW9uTWVzc2FnZSkgZmluYWw7CkBAIC02MCw2ICs2MSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXI+LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29y
ZTo6RmV0Y2hPcHRpb25zJiYpOwogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklk
ZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgY29uc3QgV2ViQ29y
ZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlT3JpZ2luKTsKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQodWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KHVpbnQ2NF90IHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAKICAg
ICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzOwogICAg
IHVpbnQ2NF90IG1fcGFnZUlEIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCAyYjUxNTI2NTc0MTRkYzMwNDQ2ZGYxMGYyZjJhOWUw
ODdhMzM2N2ZkLi41ZDI1NTVhZGNjOTIyMDA2Yjk4ZTRjZGI3MDc0MDYzYzQ0NDRlNjQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjcs
NiArMjcsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiB7CiAg
ICAgU3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3QgZmV0Y2hJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucykKICAgICBQ
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1l
c3NhZ2UsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3Vy
Y2VJZGVudGlmaWVyLCBTdHJpbmcgc291cmNlT3JpZ2luKQogICAgIEZpcmVJbnN0YWxsRXZlbnQo
dWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgRmlyZUFjdGl2YXRlRXZlbnQodWludDY0X3Qg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIpCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNlZTcwYjA1OGMwNzYzMzdkMjM3
MmFjYjQ2NmJiMDZiNGM4ZTdmNTQuLjdkZjhmOWYxYTVjMDZiZGM4MDJmODYyNGM2N2RkMTJlMWFk
OTYyOTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0xMS0xMCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtTZXJ2aWNlIFdvcmtlcnNdIEltcGxlbWVudCAi
VHJ5IEFjdGl2YXRlIiAvICJBY3RpdmF0ZSIgYWxnb3JpdGhtcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NDM2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgor
CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtYWN0aXZhdGUtZXZl
bnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9iYXNpYy1hY3RpdmF0ZS1ldmVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtYWN0aXZhdGUtZXZlbnQtd29ya2Vy
LmpzOiBBZGRlZC4KKwogMjAxNy0xMS0xMCAgTXMyZ2VyICA8TXMyZ2VyQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgUmVtb3ZlIGNoZWNrLWNvbWJpbmluZy1oZWFkZXJzLmh0bWwuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1hY3RpdmF0ZS1l
dmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9iYXNpYy1hY3RpdmF0ZS1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWE3YzFiZDQ3
Y2ZiMWFlMGUzNzUxMGYyNGFkNjIwN2ExNmFiODkwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLWFjdGl2YXRlLWV2ZW50LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHJlY2VpdmVk
IGFjdGl2YXRlIGV2ZW50IGFuZCByZXNvbHZlZCB0aGUgZXh0ZW5kIGxpZmV0aW1lIHByb21pc2UK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFz
aWMtYWN0aXZhdGUtZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL2Jhc2ljLWFjdGl2YXRlLWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE3OTE1MDJjM2Rj
ZDhjODVlOTZlZjBlZWE5YTQ2OTFhOTg5ZTM5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLWFjdGl2YXRlLWV2ZW50Lmh0bWwK
QEAgLTAsMCArMSwyNiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9u
KGV2ZW50KSB7CisgICAgaWYgKGV2ZW50LmRhdGEpCisgICAgICAgIGxvZygiUEFTUzogc2Vydmlj
ZSB3b3JrZXIgcmVjZWl2ZWQgYWN0aXZhdGUgZXZlbnQgYW5kIHJlc29sdmVkIHRoZSBleHRlbmQg
bGlmZXRpbWUgcHJvbWlzZSIpOworICAgIGVsc2UKKyAgICAgICAgbG9nKCJGQUlMOiBzZXJ2aWNl
IHdvcmtlciBkaWQgbm90IHJlY2VpdmUgYWN0aXZhdGUgZXZlbnQgb3IgZGlkIG5vdCByZXNvbHZl
IHRoZSBleHRlbmQgbGlmZXRpbWUgcHJvbWlzZSIpOworCisgICAgZmluaXNoU1dUZXN0KCk7Cit9
KTsKKworbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9iYXNpYy1h
Y3RpdmF0ZS1ldmVudC13b3JrZXIuanMiLCB7IH0pLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9u
KSB7CisgICAgIHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgImFjdGl2YXRl
ZCIpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICByZWdpc3RyYXRpb24uYWN0aXZlLnBvc3RN
ZXNzYWdlKCJDaGVja1Jlc29sdmVkRXh0ZW5kTGlmZXRpbWVQcm9taXNlIik7CisgICAgIH0pOwor
fSwgZnVuY3Rpb24oKSB7CisgICAgbG9nKCJGQUlMOiBGYWlsZWQgdG8gcmVnaXN0ZXIgdGhlIHNl
cnZpY2Ugd29ya2VyIik7CisgICAgZmluaXNoU1dUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLWFjdGl2YXRlLWV2ZW50LXdvcmtlci5qcyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1hY3RpdmF0
ZS1ldmVudC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDEwMGYxZTdmOTdkNTE0NGZhNjE2YjE3Njlk
OTBiMzVlYmZmNDMyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1hY3RpdmF0ZS1ldmVudC13b3JrZXIuanMK
QEAgLTAsMCArMSwxNyBAQAorbGV0IHJlc29sdmVkRXh0ZW5kTGlmZXRpbWVQcm9taXNlID0gZmFs
c2U7CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigiaW5zdGFsbCIsIChldmVudCkgPT4geworICAg
IHNlbGYuYWRkRXZlbnRMaXN0ZW5lcigiYWN0aXZhdGUiLCAoZXZlbnQpID0+IHsKKyAgICAgICAg
ZXZlbnQud2FpdFVudGlsKG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAg
ICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgIHJlc29sdmVkRXh0ZW5k
TGlmZXRpbWVQcm9taXNlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAg
ICAgICAgICB9LCA1MCk7CisgICAgICAgIH0pKTsKKyAgICB9KTsKK30pOworCitzZWxmLmFkZEV2
ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQpID0+IHsKKyAgICBldmVudC5zb3VyY2UucG9z
dE1lc3NhZ2UocmVzb2x2ZWRFeHRlbmRMaWZldGltZVByb21pc2UpOworfSk7CisK
</data>

          </attachment>
      

    </bug>

</bugzilla>