<?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>179523</bug_id>
          
          <creation_ts>2017-11-09 22:33:17 -0800</creation_ts>
          <short_desc>Simplify SWServerRegistration::forEachConnection()</short_desc>
          <delta_ts>2017-11-15 09:39:38 -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>
          
          <blocked>179428</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <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>1370234</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-09 22:33:17 -0800</bug_when>
    <thetext>Simplify SWServerRegistration::forEachConnection(). We should not need the hack to always IPC the job&apos;s connection now that we do an IPC handshake with the WebContent process after resolving the registration promise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370235</commentid>
    <comment_count>1</comment_count>
      <attachid>326557</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-09 22:34:05 -0800</bug_when>
    <thetext>Created attachment 326557
WIP Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370242</commentid>
    <comment_count>2</comment_count>
      <attachid>326559</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-09 23:01:42 -0800</bug_when>
    <thetext>Created attachment 326559
WIP Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370312</commentid>
    <comment_count>3</comment_count>
      <attachid>326582</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-10 07:54:06 -0800</bug_when>
    <thetext>Created attachment 326582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370366</commentid>
    <comment_count>4</comment_count>
      <attachid>326582</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-10 09:23:14 -0800</bug_when>
    <thetext>Comment on attachment 326582
Patch

Clearing flags on attachment: 326582

Committed r224686: &lt;https://trac.webkit.org/changeset/224686&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370367</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-10 09:23:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371945</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 09:39:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/35562168&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326557</attachid>
            <date>2017-11-09 22:34:05 -0800</date>
            <delta_ts>2017-11-09 23:01:42 -0800</delta_ts>
            <desc>WIP Patch for EWS</desc>
            <filename>179523_forEachConnection_wip.patch</filename>
            <type>text/plain</type>
            <size>14477</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ29udGFpbmVyLmNwcAppbmRleCBmYjQ2Y2JkNWFmMi4uODJkMTliMWU3NjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRhaW5lci5jcHAKQEAgLTMwNyw5ICszMDcsMTEgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFp
bmVyOjpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlckpvYiYgam9iLAog
CiAgICAgICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiQ29udGFpbmVyICVwIHJlc29sdmVkIGpvYiB3
aXRoIHJlZ2lzdHJhdGlvbiAlcCIsIHRoaXMsIHJlZ2lzdHJhdGlvbi5nZXQoKSk7CiAKKyAgICAg
ICAgV1RGTG9nQWx3YXlzKCJSZXNvbHZpbmcgcmVnaXN0cmF0aW9uIHByb21pc2UuLi4iKTsKICAg
ICAgICAgam9iLT5wcm9taXNlKCkucmVzb2x2ZTxJRExJbnRlcmZhY2U8U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbj4+KCpyZWdpc3RyYXRpb24pOwogCiAgICAgICAgIE1pY3JvdGFza1F1ZXVlOjpt
YWluVGhyZWFkUXVldWUoKS5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxWb2lkTWljcm90YXNrPihb
cHJvbWlzZVJlc29sdmVkSGFuZGxlciA9IFdURk1vdmUocHJvbWlzZVJlc29sdmVkSGFuZGxlcild
IHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiUmVnaXN0cmF0aW9uIHByb21pc2UgcmVzb2x2
ZWQuIik7CiAgICAgICAgICAgICBwcm9taXNlUmVzb2x2ZWRIYW5kbGVyKCk7CiAgICAgICAgIH0p
KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcAppbmRleCA2NzQ0NTdkZTE1MS4uZmNk
NjkxMDY2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAgU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb24KICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIC8vIEZJ
WE1FOiBSZWNvbmNpbGUgd29ya2VyIHN0YXRlIHByb3Blcmx5IChzZWUgYmVsb3cpCisgICAgV1RG
TG9nQWx3YXlzKCJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKCkgaW5zdGFsbGluZ1dvcmtlcj8g
JWQsIHdhaXRpbmdXb3JrZXI/ICVkLCBhY3RpdmVXb3JrZXI/ICVkIiwgISFtX3JlZ2lzdHJhdGlv
bkRhdGEuaW5zdGFsbGluZ1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCAhIW1fcmVnaXN0cmF0aW9u
RGF0YS53YWl0aW5nU2VydmljZVdvcmtlcklkZW50aWZpZXIsICEhbV9yZWdpc3RyYXRpb25EYXRh
LmFjdGl2ZVNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICBpZiAobV9yZWdpc3RyYXRpb25E
YXRhLmluc3RhbGxpbmdTZXJ2aWNlV29ya2VySWRlbnRpZmllcikKICAgICAgICAgbV9pbnN0YWxs
aW5nV29ya2VyID0gU2VydmljZVdvcmtlcjo6Y3JlYXRlKGNvbnRleHQsICptX3JlZ2lzdHJhdGlv
bkRhdGEuaW5zdGFsbGluZ1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX3JlZ2lzdHJhdGlvbkRh
dGEuc2NyaXB0VVJMLCBTZXJ2aWNlV29ya2VyOjpTdGF0ZTo6SW5zdGFsbGluZyk7CiAgICAgaWYg
KG1fcmVnaXN0cmF0aW9uRGF0YS53YWl0aW5nU2VydmljZVdvcmtlcklkZW50aWZpZXIpCkBAIC0x
NjcsNiArMTY4LDggQEAgdm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp1cGRhdGVTdGF0
ZUZyb21TZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblMKICAgICBpZiAoIWNvbnRleHQp
CiAgICAgICAgIHJldHVybjsKIAorICAgIFdURkxvZ0Fsd2F5cygiU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbjo6dXBkYXRlU3RhdGVGcm9tU2VydmVyKCV1LCAlZCkiLCBzdGF0ZSwgISFzZXJ2aWNl
V29ya2VySWRlbnRpZmllcik7CisKICAgICBSZWZQdHI8U2VydmljZVdvcmtlcj4gd29ya2VyOwog
ICAgIGlmIChzZXJ2aWNlV29ya2VySWRlbnRpZmllcikgewogICAgICAgICBhdXRvKiBuZXdlc3RX
b3JrZXIgPSBnZXROZXdlc3RXb3JrZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCmluZGV4IGIzOGJh
Y2E5MDgwLi44MDdjNTM3N2U5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCkBAIC02Miw3ICs2Miw3
IEBAIHZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6c2NyaXB0RmV0Y2hGaW5pc2hlZChTV1NlcnZlcjo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uCiAKICAgICBpZiAoIXJlc3VsdC5zY3JpcHRFcnJv
ci5pc051bGwoKSkgewogICAgICAgICAvLyBJbnZva2UgUmVqZWN0IEpvYiBQcm9taXNlIHdpdGgg
am9iIGFuZCBUeXBlRXJyb3IuCi0gICAgICAgIG1fc2VydmVyLnJlamVjdEpvYihmaXJzdEpvYigp
LCBFeGNlcHRpb25EYXRhIHsgVHlwZUVycm9yLCBtYWtlU3RyaW5nKCJTY3JpcHQgVVJMICIsIGpv
Yi5zY3JpcHRVUkwuc3RyaW5nKCksICIgZmV0Y2ggcmVzdWx0ZWQgaW4gZXJyb3I6ICIsIHJlc3Vs
dC5zY3JpcHRFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKSB9KTsKKyAgICAgICAgbV9zZXJ2
ZXIucmVqZWN0Sm9iKGpvYiwgRXhjZXB0aW9uRGF0YSB7IFR5cGVFcnJvciwgbWFrZVN0cmluZygi
U2NyaXB0IFVSTCAiLCBqb2Iuc2NyaXB0VVJMLnN0cmluZygpLCAiIGZldGNoIHJlc3VsdGVkIGlu
IGVycm9yOiAiLCByZXN1bHQuc2NyaXB0RXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSkgfSk7
CiAKICAgICAgICAgLy8gSWYgbmV3ZXN0V29ya2VyIGlzIG51bGwsIGludm9rZSBDbGVhciBSZWdp
c3RyYXRpb24gYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9uIGFzIGl0cyBhcmd1bWVudC4K
ICAgICAgICAgaWYgKCFuZXdlc3RXb3JrZXIpCkBAIC0xMTUsMTMgKzExNSwxMSBAQCB2b2lkIFNX
U2VydmVySm9iUXVldWU6Omluc3RhbGwoU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlv
biwgU1dTZXJ2ZXI6OkNvbgogICAgIGF1dG8qIHdvcmtlciA9IG1fc2VydmVyLndvcmtlckJ5SUQo
aW5zdGFsbGluZ1dvcmtlcik7CiAgICAgUkVMRUFTRV9BU1NFUlQod29ya2VyKTsKIAotICAgIGF1
dG8mIGpvYiA9IGZpcnN0Sm9iKCk7Ci0KLSAgICByZWdpc3RyYXRpb24udXBkYXRlUmVnaXN0cmF0
aW9uU3RhdGUoam9iLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6Okluc3RhbGxpbmcs
IHdvcmtlcik7Ci0gICAgcmVnaXN0cmF0aW9uLnVwZGF0ZVdvcmtlclN0YXRlKGpvYiwgKndvcmtl
ciwgU2VydmljZVdvcmtlclN0YXRlOjpJbnN0YWxsaW5nKTsKKyAgICByZWdpc3RyYXRpb24udXBk
YXRlUmVnaXN0cmF0aW9uU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpJbnN0
YWxsaW5nLCB3b3JrZXIpOworICAgIHJlZ2lzdHJhdGlvbi51cGRhdGVXb3JrZXJTdGF0ZSgqd29y
a2VyLCBTZXJ2aWNlV29ya2VyU3RhdGU6Okluc3RhbGxpbmcpOwogCiAgICAgLy8gSW52b2tlIFJl
c29sdmUgSm9iIFByb21pc2Ugd2l0aCBqb2IgYW5kIHJlZ2lzdHJhdGlvbi4KLSAgICBtX3NlcnZl
ci5yZXNvbHZlUmVnaXN0cmF0aW9uSm9iKGpvYiwgcmVnaXN0cmF0aW9uLmRhdGEoKSwgU2hvdWxk
Tm90aWZ5V2hlblJlc29sdmVkOjpZZXMpOworICAgIG1fc2VydmVyLnJlc29sdmVSZWdpc3RyYXRp
b25Kb2IoZmlyc3RKb2IoKSwgcmVnaXN0cmF0aW9uLmRhdGEoKSwgU2hvdWxkTm90aWZ5V2hlblJl
c29sdmVkOjpZZXMpOwogfQogCiAvLyBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtl
ci8jaW5zdGFsbCAoYWZ0ZXIgcmVzb2x2aW5nIHByb21pc2UpLgpAQCAtMTMwLDEyICsxMjgsMTAg
QEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShT
V1NlcnZlcjo6Q29ubmVjdGlvbiYgY29ubmUKICAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBtX3Nl
cnZlci5nZXRSZWdpc3RyYXRpb24obV9yZWdpc3RyYXRpb25LZXkpOwogICAgIEFTU0VSVChyZWdp
c3RyYXRpb24pOwogCi0gICAgYXV0byYgam9iID0gZmlyc3RKb2IoKTsKLQogICAgIC8vIFF1ZXVl
IGEgdGFzayB0byBmaXJlIGFuIGV2ZW50IG5hbWVkIHVwZGF0ZWZvdW5kIGF0IGFsbCB0aGUgU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbiBvYmplY3RzCiAgICAgLy8gZm9yIGFsbCB0aGUgc2Vydmlj
ZSB3b3JrZXIgY2xpZW50cyB3aG9zZSBjcmVhdGlvbiBVUkwgbWF0Y2hlcyByZWdpc3RyYXRpb24n
cyBzY29wZSB1cmwgYW5kCiAgICAgLy8gYWxsIHRoZSBzZXJ2aWNlIHdvcmtlcnMgd2hvc2UgY29u
dGFpbmluZyBzZXJ2aWNlIHdvcmtlciByZWdpc3RyYXRpb24gaXMgcmVnaXN0cmF0aW9uLgotICAg
IHJlZ2lzdHJhdGlvbi0+ZmlyZVVwZGF0ZUZvdW5kRXZlbnQoam9iKTsKKyAgICByZWdpc3RyYXRp
b24tPmZpcmVVcGRhdGVGb3VuZEV2ZW50KCk7CiAKICAgICAvLyBRdWV1ZSBhIHRhc2sgdG8gZmly
ZSB0aGUgSW5zdGFsbEV2ZW50LgogICAgIG1fc2VydmVyLmZpcmVJbnN0YWxsRXZlbnQoY29ubmVj
dGlvbiwgcmVnaXN0cmF0aW9uLT5pbnN0YWxsaW5nV29ya2VyKCktPmlkZW50aWZpZXIoKSk7CkBA
IC0xNDcsMTYgKzE0MywxNCBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OmRpZEZpbmlzaEluc3Rh
bGwoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbgogICAgIGF1dG8qIHJl
Z2lzdHJhdGlvbiA9IG1fc2VydmVyLmdldFJlZ2lzdHJhdGlvbihtX3JlZ2lzdHJhdGlvbktleSk7
CiAgICAgQVNTRVJUKHJlZ2lzdHJhdGlvbik7CiAKLSAgICBhdXRvIGpvYiA9IGZpcnN0Sm9iKCk7
Ci0KICAgICBpZiAoIXdhc1N1Y2Nlc3NmdWwpIHsKICAgICAgICAgYXV0byogd29ya2VyID0gbV9z
ZXJ2ZXIud29ya2VyQnlJRChpZGVudGlmaWVyKTsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQod29y
a2VyKTsKIAogICAgICAgICAvLyBSdW4gdGhlIFVwZGF0ZSBXb3JrZXIgU3RhdGUgYWxnb3JpdGht
IHBhc3NpbmcgcmVnaXN0cmF0aW9uJ3MgaW5zdGFsbGluZyB3b3JrZXIgYW5kIHJlZHVuZGFudCBh
cyB0aGUgYXJndW1lbnRzLgotICAgICAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVdvcmtlclN0YXRl
KGpvYiwgKndvcmtlciwgU2VydmljZVdvcmtlclN0YXRlOjpSZWR1bmRhbnQpOworICAgICAgICBy
ZWdpc3RyYXRpb24tPnVwZGF0ZVdvcmtlclN0YXRlKCp3b3JrZXIsIFNlcnZpY2VXb3JrZXJTdGF0
ZTo6UmVkdW5kYW50KTsKICAgICAgICAgLy8gUnVuIHRoZSBVcGRhdGUgUmVnaXN0cmF0aW9uIFN0
YXRlIGFsZ29yaXRobSBwYXNzaW5nIHJlZ2lzdHJhdGlvbiwgImluc3RhbGxpbmciIGFuZCBudWxs
IGFzIHRoZSBhcmd1bWVudHMuCi0gICAgICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlUmVnaXN0cmF0
aW9uU3RhdGUoam9iLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6Okluc3RhbGxpbmcs
IG51bGxwdHIpOworICAgICAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRl
KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6SW5zdGFsbGluZywgbnVsbHB0cik7CiAK
ICAgICAgICAgLy8gSWYgbmV3ZXN0V29ya2VyIGlzIG51bGwsIGludm9rZSBDbGVhciBSZWdpc3Ry
YXRpb24gYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9uIGFzIGl0cyBhcmd1bWVudC4KICAg
ICAgICAgaWYgKCFyZWdpc3RyYXRpb24tPmdldE5ld2VzdFdvcmtlcigpKQpAQCAtMTY4LDE1ICsx
NjIsMTUgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRGaW5pc2hJbnN0YWxsKFNXU2VydmVy
OjpDb25uZWN0aW9uJiwgU2VydmljZVdvcmtlcklkZW4KIAogICAgIGlmIChhdXRvKiB3YWl0aW5n
V29ya2VyID0gcmVnaXN0cmF0aW9uLT53YWl0aW5nV29ya2VyKCkpIHsKICAgICAgICAgd2FpdGlu
Z1dvcmtlci0+dGVybWluYXRlKCk7Ci0gICAgICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlV29ya2Vy
U3RhdGUoam9iLCAqd2FpdGluZ1dvcmtlciwgU2VydmljZVdvcmtlclN0YXRlOjpSZWR1bmRhbnQp
OworICAgICAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVdvcmtlclN0YXRlKCp3YWl0aW5nV29ya2Vy
LCBTZXJ2aWNlV29ya2VyU3RhdGU6OlJlZHVuZGFudCk7CiAgICAgfQogCiAgICAgYXV0byogaW5z
dGFsbGluZyA9IHJlZ2lzdHJhdGlvbi0+aW5zdGFsbGluZ1dvcmtlcigpOwogICAgIEFTU0VSVChp
bnN0YWxsaW5nKTsKIAotICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUo
am9iLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6OldhaXRpbmcsIGluc3RhbGxpbmcp
OwotICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoam9iLCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6Okluc3RhbGxpbmcsIG51bGxwdHIpOwotICAgIHJlZ2lz
dHJhdGlvbi0+dXBkYXRlV29ya2VyU3RhdGUoam9iLCAqaW5zdGFsbGluZywgU2VydmljZVdvcmtl
clN0YXRlOjpJbnN0YWxsZWQpOworICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlUmVnaXN0cmF0aW9u
U3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpXYWl0aW5nLCBpbnN0YWxsaW5n
KTsKKyAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25TdGF0ZTo6SW5zdGFsbGluZywgbnVsbHB0cik7CisgICAgcmVnaXN0cmF0
aW9uLT51cGRhdGVXb3JrZXJTdGF0ZSgqaW5zdGFsbGluZywgU2VydmljZVdvcmtlclN0YXRlOjpJ
bnN0YWxsZWQpOwogCiAgICAgZmluaXNoQ3VycmVudEpvYigpOwogCkBAIC0xODUsMTAgKzE3OSwx
MCBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OmRpZEZpbmlzaEluc3RhbGwoU1dTZXJ2ZXI6OkNv
bm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbgogICAgIGF1dG8qIHdhaXRpbmcgPSByZWdpc3Ry
YXRpb24tPndhaXRpbmdXb3JrZXIoKTsKICAgICBBU1NFUlQod2FpdGluZyk7CiAKLSAgICByZWdp
c3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKGpvYiwgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvblN0YXRlOjpBY3RpdmUsIHdhaXRpbmcpOwotICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRl
UmVnaXN0cmF0aW9uU3RhdGUoam9iLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6Oldh
aXRpbmcsIG51bGxwdHIpOwotICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlV29ya2VyU3RhdGUoam9i
LCAqd2FpdGluZywgU2VydmljZVdvcmtlclN0YXRlOjpBY3RpdmF0aW5nKTsKLSAgICByZWdpc3Ry
YXRpb24tPnVwZGF0ZVdvcmtlclN0YXRlKGpvYiwgKndhaXRpbmcsIFNlcnZpY2VXb3JrZXJTdGF0
ZTo6QWN0aXZhdGVkKTsKKyAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRl
KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6QWN0aXZlLCB3YWl0aW5nKTsKKyAgICBy
ZWdpc3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25TdGF0ZTo6V2FpdGluZywgbnVsbHB0cik7CisgICAgcmVnaXN0cmF0aW9uLT51cGRhdGVX
b3JrZXJTdGF0ZSgqd2FpdGluZywgU2VydmljZVdvcmtlclN0YXRlOjpBY3RpdmF0aW5nKTsKKyAg
ICByZWdpc3RyYXRpb24tPnVwZGF0ZVdvcmtlclN0YXRlKCp3YWl0aW5nLCBTZXJ2aWNlV29ya2Vy
U3RhdGU6OkFjdGl2YXRlZCk7CiB9CiAKIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNl
V29ya2VyLyNydW4tam9iCkBAIC0yMzgsNyArMjMyLDcgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVl
OjpydW5SZWdpc3RlckpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iKQogICAgICAg
ICByZWdpc3RyYXRpb24tPnNldElzVW5pbnN0YWxsaW5nKGZhbHNlKTsKICAgICAgICAgYXV0byog
bmV3ZXN0V29ya2VyID0gcmVnaXN0cmF0aW9uLT5nZXROZXdlc3RXb3JrZXIoKTsKICAgICAgICAg
aWYgKG5ld2VzdFdvcmtlciAmJiBlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKGpvYi5z
Y3JpcHRVUkwsIG5ld2VzdFdvcmtlci0+c2NyaXB0VVJMKCkpICYmIGpvYi5yZWdpc3RyYXRpb25P
cHRpb25zLnVwZGF0ZVZpYUNhY2hlID09IHJlZ2lzdHJhdGlvbi0+dXBkYXRlVmlhQ2FjaGUoKSkg
ewotICAgICAgICAgICAgbV9zZXJ2ZXIucmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYihmaXJzdEpvYigp
LCByZWdpc3RyYXRpb24tPmRhdGEoKSwgU2hvdWxkTm90aWZ5V2hlblJlc29sdmVkOjpObyk7Cisg
ICAgICAgICAgICBtX3NlcnZlci5yZXNvbHZlUmVnaXN0cmF0aW9uSm9iKGpvYiwgcmVnaXN0cmF0
aW9uLT5kYXRhKCksIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZDo6Tm8pOwogICAgICAgICAgICAg
ZmluaXNoQ3VycmVudEpvYigpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0y
NjMsNyArMjU3LDcgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpydW5VbnJlZ2lzdGVySm9iKGNv
bnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2IpCiAgICAgLy8gSWYgcmVnaXN0cmF0aW9uIGlz
IG51bGwsIHRoZW46CiAgICAgaWYgKCFyZWdpc3RyYXRpb24gfHwgcmVnaXN0cmF0aW9uLT5pc1Vu
aW5zdGFsbGluZygpKSB7CiAgICAgICAgIC8vIEludm9rZSBSZXNvbHZlIEpvYiBQcm9taXNlIHdp
dGggam9iIGFuZCBmYWxzZS4KLSAgICAgICAgbV9zZXJ2ZXIucmVzb2x2ZVVucmVnaXN0cmF0aW9u
Sm9iKGZpcnN0Sm9iKCksIG1fcmVnaXN0cmF0aW9uS2V5LCBmYWxzZSk7CisgICAgICAgIG1fc2Vy
dmVyLnJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYihqb2IsIG1fcmVnaXN0cmF0aW9uS2V5LCBmYWxz
ZSk7CiAgICAgICAgIGZpbmlzaEN1cnJlbnRKb2IoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
QEAgLTI3Miw3ICsyNjYsNyBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OnJ1blVucmVnaXN0ZXJK
b2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYikKICAgICByZWdpc3RyYXRpb24tPnNl
dElzVW5pbnN0YWxsaW5nKHRydWUpOwogCiAgICAgLy8gSW52b2tlIFJlc29sdmUgSm9iIFByb21p
c2Ugd2l0aCBqb2IgYW5kIHRydWUuCi0gICAgbV9zZXJ2ZXIucmVzb2x2ZVVucmVnaXN0cmF0aW9u
Sm9iKGZpcnN0Sm9iKCksIG1fcmVnaXN0cmF0aW9uS2V5LCB0cnVlKTsKKyAgICBtX3NlcnZlci5y
ZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2Ioam9iLCBtX3JlZ2lzdHJhdGlvbktleSwgdHJ1ZSk7CiAK
ICAgICAvLyBJbnZva2UgVHJ5IENsZWFyIFJlZ2lzdHJhdGlvbiB3aXRoIHJlZ2lzdHJhdGlvbi4K
ICAgICB0cnlDbGVhclJlZ2lzdHJhdGlvbigqcmVnaXN0cmF0aW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lz
dHJhdGlvbi5jcHAKaW5kZXggYjQ3ZWE1M2Y1YWUuLjA1ZDM4MjgwYzFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
UmVnaXN0cmF0aW9uLmNwcApAQCAtNjYsMTAgKzY2LDEyIEBAIFNXU2VydmVyV29ya2VyKiBTV1Nl
cnZlclJlZ2lzdHJhdGlvbjo6Z2V0TmV3ZXN0V29ya2VyKCkKICAgICByZXR1cm4gbV9hY3RpdmVX
b3JrZXIuZ2V0KCk7CiB9CiAKLXZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnVwZGF0ZVJlZ2lz
dHJhdGlvblN0YXRlKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2IsIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25TdGF0ZSBzdGF0ZSwgU1dTZXJ2ZXJXb3JrZXIqIHdvcmtlcikKK3ZvaWQg
U1dTZXJ2ZXJSZWdpc3RyYXRpb246OnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25TdGF0ZSBzdGF0ZSwgU1dTZXJ2ZXJXb3JrZXIqIHdvcmtlcikKIHsKICAg
ICBMT0coU2VydmljZVdvcmtlciwgIiglcCkgVXBkYXRpbmcgcmVnaXN0cmF0aW9uIHN0YXRlIHRv
ICVpIHdpdGggd29ya2VyICVwIiwgdGhpcywgKGludClzdGF0ZSwgd29ya2VyKTsKICAgICAKKyAg
ICBXVEZMb2dBbHdheXMoIiVwIC0gU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnVwZGF0ZVJlZ2lzdHJh
dGlvblN0YXRlKCV1LCAlcCkgY29ubmVjdGlvbkNvdW50OiAldSIsIHRoaXMsIHN0YXRlLCB3b3Jr
ZXIsIG1fY2xpZW50UmVnaXN0cmF0aW9uc0J5Q29ubmVjdGlvbi5zaXplKCkpOworCiAgICAgc3dp
dGNoIChzdGF0ZSkgewogICAgIGNhc2UgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpJ
bnN0YWxsaW5nOgogICAgICAgICBtX2luc3RhbGxpbmdXb3JrZXIgPSB3b3JrZXI7CkBAIC04Niwz
OCArODgsMzEgQEAgdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6dXBkYXRlUmVnaXN0cmF0aW9u
U3RhdGUoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGoKICAgICBpZiAod29ya2VyKQogICAg
ICAgICBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IHdvcmtlci0+aWRlbnRpZmllcigpOwogCi0g
ICAgZm9yRWFjaENvbm5lY3Rpb24oam9iLCBbJl0oYXV0byYgY29ubmVjdGlvbikgeworICAgIGZv
ckVhY2hDb25uZWN0aW9uKFsmXShhdXRvJiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rp
b24udXBkYXRlUmVnaXN0cmF0aW9uU3RhdGVJbkNsaWVudChpZGVudGlmaWVyKCksIHN0YXRlLCBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgfSk7CiB9CiAKLXZvaWQgU1dTZXJ2ZXJSZWdp
c3RyYXRpb246OnVwZGF0ZVdvcmtlclN0YXRlKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBq
b2IsIFNXU2VydmVyV29ya2VyJiB3b3JrZXIsIFNlcnZpY2VXb3JrZXJTdGF0ZSBzdGF0ZSkKK3Zv
aWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnVwZGF0ZVdvcmtlclN0YXRlKFNXU2VydmVyV29ya2Vy
JiB3b3JrZXIsIFNlcnZpY2VXb3JrZXJTdGF0ZSBzdGF0ZSkKIHsKICAgICBMT0coU2VydmljZVdv
cmtlciwgIlVwZGF0aW5nIHdvcmtlciAlcCBzdGF0ZSB0byAlaSAoJXApIiwgJndvcmtlciwgKGlu
dClzdGF0ZSwgdGhpcyk7CiAKICAgICB3b3JrZXIuc2V0U3RhdGUoc3RhdGUpOwogCi0gICAgZm9y
RWFjaENvbm5lY3Rpb24oam9iLCBbJl0oYXV0byYgY29ubmVjdGlvbikgeworICAgIGZvckVhY2hD
b25uZWN0aW9uKFsmXShhdXRvJiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24udXBk
YXRlV29ya2VyU3RhdGVJbkNsaWVudCh3b3JrZXIuaWRlbnRpZmllcigpLCBzdGF0ZSk7CiAgICAg
fSk7CiB9CiAKLXZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmZpcmVVcGRhdGVGb3VuZEV2ZW50
KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2IpCit2b2lkIFNXU2VydmVyUmVnaXN0cmF0
aW9uOjpmaXJlVXBkYXRlRm91bmRFdmVudCgpCiB7Ci0gICAgZm9yRWFjaENvbm5lY3Rpb24oam9i
LCBbJl0oYXV0byYgY29ubmVjdGlvbikgeworICAgIGZvckVhY2hDb25uZWN0aW9uKFsmXShhdXRv
JiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24uZmlyZVVwZGF0ZUZvdW5kRXZlbnQo
aWRlbnRpZmllcigpKTsKICAgICB9KTsKIH0KIAotdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6
Zm9yRWFjaENvbm5lY3Rpb24oY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYiwgY29uc3Qg
V1RGOjpGdW5jdGlvbjx2b2lkKFNXU2VydmVyOjpDb25uZWN0aW9uJik+JiBhcHBseSkKK3ZvaWQg
U1dTZXJ2ZXJSZWdpc3RyYXRpb246OmZvckVhY2hDb25uZWN0aW9uKGNvbnN0IFdURjo6RnVuY3Rp
b248dm9pZChTV1NlcnZlcjo6Q29ubmVjdGlvbiYpPiYgYXBwbHkpCiB7Ci0gICAgLy8gTm8gbWF0
dGVyIHdoYXQsIHdlIHNlbmQgdGhlIGV2ZW50IHRvIHRoZSBjb25uZWN0aW9uIHRoYXQgc2NoZWR1
bGVkIHRoZSBqb2IuIFRoZSBjbGllbnQgcmVnaXN0cmF0aW9uCi0gICAgLy8gbWF5IG5vdCBoYXZl
IGdvdHRlbiBhIGNoYW5jZSB0byByZWdpc3RlciBpdHNlbGYgeWV0LgotICAgIGlmICghbV9jb25u
ZWN0aW9uc1dpdGhDbGllbnRSZWdpc3RyYXRpb25zLmNvbnRhaW5zKGpvYi5jb25uZWN0aW9uSWRl
bnRpZmllcigpKSkgewotICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc2VydmVyLmdl
dENvbm5lY3Rpb24oam9iLmNvbm5lY3Rpb25JZGVudGlmaWVyKCkpKQotICAgICAgICAgICAgYXBw
bHkoKmNvbm5lY3Rpb24pOwotICAgIH0KLQogICAgIGZvciAodWludDY0X3QgY29ubmVjdGlvbklk
ZW50aWZpZXJXaXRoQ2xpZW50cyA6IG1fY29ubmVjdGlvbnNXaXRoQ2xpZW50UmVnaXN0cmF0aW9u
cy52YWx1ZXMoKSkgewogICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc2VydmVyLmdl
dENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXJXaXRoQ2xpZW50cykpCiAgICAgICAgICAg
ICBhcHBseSgqY29ubmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKaW5kZXggMjk2Mzgz
OWFmOTIuLmE1NGNmYTVlNDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCkBAIC01OCw5ICs1
OCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExhc3RVcGRhdGVUaW1lKGRvdWJsZSB0aW1lKSB7
IG1fbGFzdFVwZGF0ZVRpbWUgPSB0aW1lOyB9CiAgICAgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNh
Y2hlIHVwZGF0ZVZpYUNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV91cGRhdGVWaWFDYWNoZTsgfQog
Ci0gICAgdm9pZCB1cGRhdGVSZWdpc3RyYXRpb25TdGF0ZShjb25zdCBTZXJ2aWNlV29ya2VySm9i
RGF0YSYsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSwgU1dTZXJ2ZXJXb3JrZXIqKTsK
LSAgICB2b2lkIHVwZGF0ZVdvcmtlclN0YXRlKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiwg
U1dTZXJ2ZXJXb3JrZXImLCBTZXJ2aWNlV29ya2VyU3RhdGUpOwotICAgIHZvaWQgZmlyZVVwZGF0
ZUZvdW5kRXZlbnQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKTsKKyAgICB2b2lkIHVwZGF0
ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSwgU1dTZXJ2
ZXJXb3JrZXIqKTsKKyAgICB2b2lkIHVwZGF0ZVdvcmtlclN0YXRlKFNXU2VydmVyV29ya2VyJiwg
U2VydmljZVdvcmtlclN0YXRlKTsKKyAgICB2b2lkIGZpcmVVcGRhdGVGb3VuZEV2ZW50KCk7CiAK
ICAgICB2b2lkIGFkZENsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24odWludDY0X3QgY29u
bmVjdGlvbklkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlQ2xpZW50U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbih1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcik7CkBAIC03MCw3ICs3MCw3
IEBAIHB1YmxpYzoKICAgICBTV1NlcnZlcldvcmtlciogYWN0aXZlV29ya2VyKCkgY29uc3QgeyBy
ZXR1cm4gbV9hY3RpdmVXb3JrZXIuZ2V0KCk7IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGZvckVh
Y2hDb25uZWN0aW9uKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiwgY29uc3QgV1RGOjpGdW5j
dGlvbjx2b2lkKFNXU2VydmVyOjpDb25uZWN0aW9uJik+Jik7CisgICAgdm9pZCBmb3JFYWNoQ29u
bmVjdGlvbihjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mKT4m
KTsKIAogICAgIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKICAgICBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IG1fcmVnaXN0cmF0aW9uS2V5Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326559</attachid>
            <date>2017-11-09 23:01:42 -0800</date>
            <delta_ts>2017-11-10 07:54:05 -0800</delta_ts>
            <desc>WIP Patch for EWS</desc>
            <filename>179523_forEachConnection_wip.patch</filename>
            <type>text/plain</type>
            <size>14480</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ29udGFpbmVyLmNwcAppbmRleCBmYjQ2Y2JkNWFmMi4uODJkMTliMWU3NjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRhaW5lci5jcHAKQEAgLTMwNyw5ICszMDcsMTEgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFp
bmVyOjpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlckpvYiYgam9iLAog
CiAgICAgICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiQ29udGFpbmVyICVwIHJlc29sdmVkIGpvYiB3
aXRoIHJlZ2lzdHJhdGlvbiAlcCIsIHRoaXMsIHJlZ2lzdHJhdGlvbi5nZXQoKSk7CiAKKyAgICAg
ICAgV1RGTG9nQWx3YXlzKCJSZXNvbHZpbmcgcmVnaXN0cmF0aW9uIHByb21pc2UuLi4iKTsKICAg
ICAgICAgam9iLT5wcm9taXNlKCkucmVzb2x2ZTxJRExJbnRlcmZhY2U8U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbj4+KCpyZWdpc3RyYXRpb24pOwogCiAgICAgICAgIE1pY3JvdGFza1F1ZXVlOjpt
YWluVGhyZWFkUXVldWUoKS5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxWb2lkTWljcm90YXNrPihb
cHJvbWlzZVJlc29sdmVkSGFuZGxlciA9IFdURk1vdmUocHJvbWlzZVJlc29sdmVkSGFuZGxlcild
IHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiUmVnaXN0cmF0aW9uIHByb21pc2UgcmVzb2x2
ZWQuIik7CiAgICAgICAgICAgICBwcm9taXNlUmVzb2x2ZWRIYW5kbGVyKCk7CiAgICAgICAgIH0p
KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcAppbmRleCA2NzQ0NTdkZTE1MS4uZmNk
NjkxMDY2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAgU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb24KICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIC8vIEZJ
WE1FOiBSZWNvbmNpbGUgd29ya2VyIHN0YXRlIHByb3Blcmx5IChzZWUgYmVsb3cpCisgICAgV1RG
TG9nQWx3YXlzKCJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKCkgaW5zdGFsbGluZ1dvcmtlcj8g
JWQsIHdhaXRpbmdXb3JrZXI/ICVkLCBhY3RpdmVXb3JrZXI/ICVkIiwgISFtX3JlZ2lzdHJhdGlv
bkRhdGEuaW5zdGFsbGluZ1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCAhIW1fcmVnaXN0cmF0aW9u
RGF0YS53YWl0aW5nU2VydmljZVdvcmtlcklkZW50aWZpZXIsICEhbV9yZWdpc3RyYXRpb25EYXRh
LmFjdGl2ZVNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICBpZiAobV9yZWdpc3RyYXRpb25E
YXRhLmluc3RhbGxpbmdTZXJ2aWNlV29ya2VySWRlbnRpZmllcikKICAgICAgICAgbV9pbnN0YWxs
aW5nV29ya2VyID0gU2VydmljZVdvcmtlcjo6Y3JlYXRlKGNvbnRleHQsICptX3JlZ2lzdHJhdGlv
bkRhdGEuaW5zdGFsbGluZ1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX3JlZ2lzdHJhdGlvbkRh
dGEuc2NyaXB0VVJMLCBTZXJ2aWNlV29ya2VyOjpTdGF0ZTo6SW5zdGFsbGluZyk7CiAgICAgaWYg
KG1fcmVnaXN0cmF0aW9uRGF0YS53YWl0aW5nU2VydmljZVdvcmtlcklkZW50aWZpZXIpCkBAIC0x
NjcsNiArMTY4LDggQEAgdm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp1cGRhdGVTdGF0
ZUZyb21TZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblMKICAgICBpZiAoIWNvbnRleHQp
CiAgICAgICAgIHJldHVybjsKIAorICAgIFdURkxvZ0Fsd2F5cygiU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbjo6dXBkYXRlU3RhdGVGcm9tU2VydmVyKCV1LCAlZCkiLCBzdGF0ZSwgISFzZXJ2aWNl
V29ya2VySWRlbnRpZmllcik7CisKICAgICBSZWZQdHI8U2VydmljZVdvcmtlcj4gd29ya2VyOwog
ICAgIGlmIChzZXJ2aWNlV29ya2VySWRlbnRpZmllcikgewogICAgICAgICBhdXRvKiBuZXdlc3RX
b3JrZXIgPSBnZXROZXdlc3RXb3JrZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCmluZGV4IGIzOGJh
Y2E5MDgwLi44MDdjNTM3N2U5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCkBAIC02Miw3ICs2Miw3
IEBAIHZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6c2NyaXB0RmV0Y2hGaW5pc2hlZChTV1NlcnZlcjo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uCiAKICAgICBpZiAoIXJlc3VsdC5zY3JpcHRFcnJv
ci5pc051bGwoKSkgewogICAgICAgICAvLyBJbnZva2UgUmVqZWN0IEpvYiBQcm9taXNlIHdpdGgg
am9iIGFuZCBUeXBlRXJyb3IuCi0gICAgICAgIG1fc2VydmVyLnJlamVjdEpvYihmaXJzdEpvYigp
LCBFeGNlcHRpb25EYXRhIHsgVHlwZUVycm9yLCBtYWtlU3RyaW5nKCJTY3JpcHQgVVJMICIsIGpv
Yi5zY3JpcHRVUkwuc3RyaW5nKCksICIgZmV0Y2ggcmVzdWx0ZWQgaW4gZXJyb3I6ICIsIHJlc3Vs
dC5zY3JpcHRFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKSB9KTsKKyAgICAgICAgbV9zZXJ2
ZXIucmVqZWN0Sm9iKGpvYiwgRXhjZXB0aW9uRGF0YSB7IFR5cGVFcnJvciwgbWFrZVN0cmluZygi
U2NyaXB0IFVSTCAiLCBqb2Iuc2NyaXB0VVJMLnN0cmluZygpLCAiIGZldGNoIHJlc3VsdGVkIGlu
IGVycm9yOiAiLCByZXN1bHQuc2NyaXB0RXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSkgfSk7
CiAKICAgICAgICAgLy8gSWYgbmV3ZXN0V29ya2VyIGlzIG51bGwsIGludm9rZSBDbGVhciBSZWdp
c3RyYXRpb24gYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9uIGFzIGl0cyBhcmd1bWVudC4K
ICAgICAgICAgaWYgKCFuZXdlc3RXb3JrZXIpCkBAIC0xMTUsMTMgKzExNSwxMSBAQCB2b2lkIFNX
U2VydmVySm9iUXVldWU6Omluc3RhbGwoU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlv
biwgU1dTZXJ2ZXI6OkNvbgogICAgIGF1dG8qIHdvcmtlciA9IG1fc2VydmVyLndvcmtlckJ5SUQo
aW5zdGFsbGluZ1dvcmtlcik7CiAgICAgUkVMRUFTRV9BU1NFUlQod29ya2VyKTsKIAotICAgIGF1
dG8mIGpvYiA9IGZpcnN0Sm9iKCk7Ci0KLSAgICByZWdpc3RyYXRpb24udXBkYXRlUmVnaXN0cmF0
aW9uU3RhdGUoam9iLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6Okluc3RhbGxpbmcs
IHdvcmtlcik7Ci0gICAgcmVnaXN0cmF0aW9uLnVwZGF0ZVdvcmtlclN0YXRlKGpvYiwgKndvcmtl
ciwgU2VydmljZVdvcmtlclN0YXRlOjpJbnN0YWxsaW5nKTsKKyAgICByZWdpc3RyYXRpb24udXBk
YXRlUmVnaXN0cmF0aW9uU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpJbnN0
YWxsaW5nLCB3b3JrZXIpOworICAgIHJlZ2lzdHJhdGlvbi51cGRhdGVXb3JrZXJTdGF0ZSgqd29y
a2VyLCBTZXJ2aWNlV29ya2VyU3RhdGU6Okluc3RhbGxpbmcpOwogCiAgICAgLy8gSW52b2tlIFJl
c29sdmUgSm9iIFByb21pc2Ugd2l0aCBqb2IgYW5kIHJlZ2lzdHJhdGlvbi4KLSAgICBtX3NlcnZl
ci5yZXNvbHZlUmVnaXN0cmF0aW9uSm9iKGpvYiwgcmVnaXN0cmF0aW9uLmRhdGEoKSwgU2hvdWxk
Tm90aWZ5V2hlblJlc29sdmVkOjpZZXMpOworICAgIG1fc2VydmVyLnJlc29sdmVSZWdpc3RyYXRp
b25Kb2IoZmlyc3RKb2IoKSwgcmVnaXN0cmF0aW9uLmRhdGEoKSwgU2hvdWxkTm90aWZ5V2hlblJl
c29sdmVkOjpZZXMpOwogfQogCiAvLyBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtl
ci8jaW5zdGFsbCAoYWZ0ZXIgcmVzb2x2aW5nIHByb21pc2UpLgpAQCAtMTMwLDEyICsxMjgsMTAg
QEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShT
V1NlcnZlcjo6Q29ubmVjdGlvbiYgY29ubmUKICAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBtX3Nl
cnZlci5nZXRSZWdpc3RyYXRpb24obV9yZWdpc3RyYXRpb25LZXkpOwogICAgIEFTU0VSVChyZWdp
c3RyYXRpb24pOwogCi0gICAgYXV0byYgam9iID0gZmlyc3RKb2IoKTsKLQogICAgIC8vIFF1ZXVl
IGEgdGFzayB0byBmaXJlIGFuIGV2ZW50IG5hbWVkIHVwZGF0ZWZvdW5kIGF0IGFsbCB0aGUgU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbiBvYmplY3RzCiAgICAgLy8gZm9yIGFsbCB0aGUgc2Vydmlj
ZSB3b3JrZXIgY2xpZW50cyB3aG9zZSBjcmVhdGlvbiBVUkwgbWF0Y2hlcyByZWdpc3RyYXRpb24n
cyBzY29wZSB1cmwgYW5kCiAgICAgLy8gYWxsIHRoZSBzZXJ2aWNlIHdvcmtlcnMgd2hvc2UgY29u
dGFpbmluZyBzZXJ2aWNlIHdvcmtlciByZWdpc3RyYXRpb24gaXMgcmVnaXN0cmF0aW9uLgotICAg
IHJlZ2lzdHJhdGlvbi0+ZmlyZVVwZGF0ZUZvdW5kRXZlbnQoam9iKTsKKyAgICByZWdpc3RyYXRp
b24tPmZpcmVVcGRhdGVGb3VuZEV2ZW50KCk7CiAKICAgICAvLyBRdWV1ZSBhIHRhc2sgdG8gZmly
ZSB0aGUgSW5zdGFsbEV2ZW50LgogICAgIG1fc2VydmVyLmZpcmVJbnN0YWxsRXZlbnQoY29ubmVj
dGlvbiwgcmVnaXN0cmF0aW9uLT5pbnN0YWxsaW5nV29ya2VyKCktPmlkZW50aWZpZXIoKSk7CkBA
IC0xNDcsMTYgKzE0MywxNCBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OmRpZEZpbmlzaEluc3Rh
bGwoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbgogICAgIGF1dG8qIHJl
Z2lzdHJhdGlvbiA9IG1fc2VydmVyLmdldFJlZ2lzdHJhdGlvbihtX3JlZ2lzdHJhdGlvbktleSk7
CiAgICAgQVNTRVJUKHJlZ2lzdHJhdGlvbik7CiAKLSAgICBhdXRvIGpvYiA9IGZpcnN0Sm9iKCk7
Ci0KICAgICBpZiAoIXdhc1N1Y2Nlc3NmdWwpIHsKICAgICAgICAgYXV0byogd29ya2VyID0gbV9z
ZXJ2ZXIud29ya2VyQnlJRChpZGVudGlmaWVyKTsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQod29y
a2VyKTsKIAogICAgICAgICAvLyBSdW4gdGhlIFVwZGF0ZSBXb3JrZXIgU3RhdGUgYWxnb3JpdGht
IHBhc3NpbmcgcmVnaXN0cmF0aW9uJ3MgaW5zdGFsbGluZyB3b3JrZXIgYW5kIHJlZHVuZGFudCBh
cyB0aGUgYXJndW1lbnRzLgotICAgICAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVdvcmtlclN0YXRl
KGpvYiwgKndvcmtlciwgU2VydmljZVdvcmtlclN0YXRlOjpSZWR1bmRhbnQpOworICAgICAgICBy
ZWdpc3RyYXRpb24tPnVwZGF0ZVdvcmtlclN0YXRlKCp3b3JrZXIsIFNlcnZpY2VXb3JrZXJTdGF0
ZTo6UmVkdW5kYW50KTsKICAgICAgICAgLy8gUnVuIHRoZSBVcGRhdGUgUmVnaXN0cmF0aW9uIFN0
YXRlIGFsZ29yaXRobSBwYXNzaW5nIHJlZ2lzdHJhdGlvbiwgImluc3RhbGxpbmciIGFuZCBudWxs
IGFzIHRoZSBhcmd1bWVudHMuCi0gICAgICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlUmVnaXN0cmF0
aW9uU3RhdGUoam9iLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6Okluc3RhbGxpbmcs
IG51bGxwdHIpOworICAgICAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRl
KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6SW5zdGFsbGluZywgbnVsbHB0cik7CiAK
ICAgICAgICAgLy8gSWYgbmV3ZXN0V29ya2VyIGlzIG51bGwsIGludm9rZSBDbGVhciBSZWdpc3Ry
YXRpb24gYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9uIGFzIGl0cyBhcmd1bWVudC4KICAg
ICAgICAgaWYgKCFyZWdpc3RyYXRpb24tPmdldE5ld2VzdFdvcmtlcigpKQpAQCAtMTY4LDE1ICsx
NjIsMTUgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRGaW5pc2hJbnN0YWxsKFNXU2VydmVy
OjpDb25uZWN0aW9uJiwgU2VydmljZVdvcmtlcklkZW4KIAogICAgIGlmIChhdXRvKiB3YWl0aW5n
V29ya2VyID0gcmVnaXN0cmF0aW9uLT53YWl0aW5nV29ya2VyKCkpIHsKICAgICAgICAgd2FpdGlu
Z1dvcmtlci0+dGVybWluYXRlKCk7Ci0gICAgICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlV29ya2Vy
U3RhdGUoam9iLCAqd2FpdGluZ1dvcmtlciwgU2VydmljZVdvcmtlclN0YXRlOjpSZWR1bmRhbnQp
OworICAgICAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVdvcmtlclN0YXRlKCp3YWl0aW5nV29ya2Vy
LCBTZXJ2aWNlV29ya2VyU3RhdGU6OlJlZHVuZGFudCk7CiAgICAgfQogCiAgICAgYXV0byogaW5z
dGFsbGluZyA9IHJlZ2lzdHJhdGlvbi0+aW5zdGFsbGluZ1dvcmtlcigpOwogICAgIEFTU0VSVChp
bnN0YWxsaW5nKTsKIAotICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUo
am9iLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6OldhaXRpbmcsIGluc3RhbGxpbmcp
OwotICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoam9iLCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6Okluc3RhbGxpbmcsIG51bGxwdHIpOwotICAgIHJlZ2lz
dHJhdGlvbi0+dXBkYXRlV29ya2VyU3RhdGUoam9iLCAqaW5zdGFsbGluZywgU2VydmljZVdvcmtl
clN0YXRlOjpJbnN0YWxsZWQpOworICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlUmVnaXN0cmF0aW9u
U3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpXYWl0aW5nLCBpbnN0YWxsaW5n
KTsKKyAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25TdGF0ZTo6SW5zdGFsbGluZywgbnVsbHB0cik7CisgICAgcmVnaXN0cmF0
aW9uLT51cGRhdGVXb3JrZXJTdGF0ZSgqaW5zdGFsbGluZywgU2VydmljZVdvcmtlclN0YXRlOjpJ
bnN0YWxsZWQpOwogCiAgICAgZmluaXNoQ3VycmVudEpvYigpOwogCkBAIC0xODUsMTAgKzE3OSwx
MCBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OmRpZEZpbmlzaEluc3RhbGwoU1dTZXJ2ZXI6OkNv
bm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbgogICAgIGF1dG8qIHdhaXRpbmcgPSByZWdpc3Ry
YXRpb24tPndhaXRpbmdXb3JrZXIoKTsKICAgICBBU1NFUlQod2FpdGluZyk7CiAKLSAgICByZWdp
c3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKGpvYiwgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvblN0YXRlOjpBY3RpdmUsIHdhaXRpbmcpOwotICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRl
UmVnaXN0cmF0aW9uU3RhdGUoam9iLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6Oldh
aXRpbmcsIG51bGxwdHIpOwotICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlV29ya2VyU3RhdGUoam9i
LCAqd2FpdGluZywgU2VydmljZVdvcmtlclN0YXRlOjpBY3RpdmF0aW5nKTsKLSAgICByZWdpc3Ry
YXRpb24tPnVwZGF0ZVdvcmtlclN0YXRlKGpvYiwgKndhaXRpbmcsIFNlcnZpY2VXb3JrZXJTdGF0
ZTo6QWN0aXZhdGVkKTsKKyAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRl
KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6QWN0aXZlLCB3YWl0aW5nKTsKKyAgICBy
ZWdpc3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25TdGF0ZTo6V2FpdGluZywgbnVsbHB0cik7CisgICAgcmVnaXN0cmF0aW9uLT51cGRhdGVX
b3JrZXJTdGF0ZSgqd2FpdGluZywgU2VydmljZVdvcmtlclN0YXRlOjpBY3RpdmF0aW5nKTsKKyAg
ICByZWdpc3RyYXRpb24tPnVwZGF0ZVdvcmtlclN0YXRlKCp3YWl0aW5nLCBTZXJ2aWNlV29ya2Vy
U3RhdGU6OkFjdGl2YXRlZCk7CiB9CiAKIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNl
V29ya2VyLyNydW4tam9iCkBAIC0yMzgsNyArMjMyLDcgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVl
OjpydW5SZWdpc3RlckpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iKQogICAgICAg
ICByZWdpc3RyYXRpb24tPnNldElzVW5pbnN0YWxsaW5nKGZhbHNlKTsKICAgICAgICAgYXV0byog
bmV3ZXN0V29ya2VyID0gcmVnaXN0cmF0aW9uLT5nZXROZXdlc3RXb3JrZXIoKTsKICAgICAgICAg
aWYgKG5ld2VzdFdvcmtlciAmJiBlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKGpvYi5z
Y3JpcHRVUkwsIG5ld2VzdFdvcmtlci0+c2NyaXB0VVJMKCkpICYmIGpvYi5yZWdpc3RyYXRpb25P
cHRpb25zLnVwZGF0ZVZpYUNhY2hlID09IHJlZ2lzdHJhdGlvbi0+dXBkYXRlVmlhQ2FjaGUoKSkg
ewotICAgICAgICAgICAgbV9zZXJ2ZXIucmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYihmaXJzdEpvYigp
LCByZWdpc3RyYXRpb24tPmRhdGEoKSwgU2hvdWxkTm90aWZ5V2hlblJlc29sdmVkOjpObyk7Cisg
ICAgICAgICAgICBtX3NlcnZlci5yZXNvbHZlUmVnaXN0cmF0aW9uSm9iKGpvYiwgcmVnaXN0cmF0
aW9uLT5kYXRhKCksIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZDo6Tm8pOwogICAgICAgICAgICAg
ZmluaXNoQ3VycmVudEpvYigpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0y
NjMsNyArMjU3LDcgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpydW5VbnJlZ2lzdGVySm9iKGNv
bnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2IpCiAgICAgLy8gSWYgcmVnaXN0cmF0aW9uIGlz
IG51bGwsIHRoZW46CiAgICAgaWYgKCFyZWdpc3RyYXRpb24gfHwgcmVnaXN0cmF0aW9uLT5pc1Vu
aW5zdGFsbGluZygpKSB7CiAgICAgICAgIC8vIEludm9rZSBSZXNvbHZlIEpvYiBQcm9taXNlIHdp
dGggam9iIGFuZCBmYWxzZS4KLSAgICAgICAgbV9zZXJ2ZXIucmVzb2x2ZVVucmVnaXN0cmF0aW9u
Sm9iKGZpcnN0Sm9iKCksIG1fcmVnaXN0cmF0aW9uS2V5LCBmYWxzZSk7CisgICAgICAgIG1fc2Vy
dmVyLnJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYihqb2IsIG1fcmVnaXN0cmF0aW9uS2V5LCBmYWxz
ZSk7CiAgICAgICAgIGZpbmlzaEN1cnJlbnRKb2IoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
QEAgLTI3Miw3ICsyNjYsNyBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OnJ1blVucmVnaXN0ZXJK
b2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYikKICAgICByZWdpc3RyYXRpb24tPnNl
dElzVW5pbnN0YWxsaW5nKHRydWUpOwogCiAgICAgLy8gSW52b2tlIFJlc29sdmUgSm9iIFByb21p
c2Ugd2l0aCBqb2IgYW5kIHRydWUuCi0gICAgbV9zZXJ2ZXIucmVzb2x2ZVVucmVnaXN0cmF0aW9u
Sm9iKGZpcnN0Sm9iKCksIG1fcmVnaXN0cmF0aW9uS2V5LCB0cnVlKTsKKyAgICBtX3NlcnZlci5y
ZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2Ioam9iLCBtX3JlZ2lzdHJhdGlvbktleSwgdHJ1ZSk7CiAK
ICAgICAvLyBJbnZva2UgVHJ5IENsZWFyIFJlZ2lzdHJhdGlvbiB3aXRoIHJlZ2lzdHJhdGlvbi4K
ICAgICB0cnlDbGVhclJlZ2lzdHJhdGlvbigqcmVnaXN0cmF0aW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lz
dHJhdGlvbi5jcHAKaW5kZXggYjQ3ZWE1M2Y1YWUuLjZkYzU0YjM4YjI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
UmVnaXN0cmF0aW9uLmNwcApAQCAtNjYsMTAgKzY2LDEyIEBAIFNXU2VydmVyV29ya2VyKiBTV1Nl
cnZlclJlZ2lzdHJhdGlvbjo6Z2V0TmV3ZXN0V29ya2VyKCkKICAgICByZXR1cm4gbV9hY3RpdmVX
b3JrZXIuZ2V0KCk7CiB9CiAKLXZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnVwZGF0ZVJlZ2lz
dHJhdGlvblN0YXRlKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2IsIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25TdGF0ZSBzdGF0ZSwgU1dTZXJ2ZXJXb3JrZXIqIHdvcmtlcikKK3ZvaWQg
U1dTZXJ2ZXJSZWdpc3RyYXRpb246OnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25TdGF0ZSBzdGF0ZSwgU1dTZXJ2ZXJXb3JrZXIqIHdvcmtlcikKIHsKICAg
ICBMT0coU2VydmljZVdvcmtlciwgIiglcCkgVXBkYXRpbmcgcmVnaXN0cmF0aW9uIHN0YXRlIHRv
ICVpIHdpdGggd29ya2VyICVwIiwgdGhpcywgKGludClzdGF0ZSwgd29ya2VyKTsKICAgICAKKyAg
ICBXVEZMb2dBbHdheXMoIiVwIC0gU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnVwZGF0ZVJlZ2lzdHJh
dGlvblN0YXRlKCV1LCAlcCkgY29ubmVjdGlvbkNvdW50OiAldSIsIHRoaXMsIHN0YXRlLCB3b3Jr
ZXIsIG1fY29ubmVjdGlvbnNXaXRoQ2xpZW50UmVnaXN0cmF0aW9ucy5zaXplKCkpOworCiAgICAg
c3dpdGNoIChzdGF0ZSkgewogICAgIGNhc2UgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRl
OjpJbnN0YWxsaW5nOgogICAgICAgICBtX2luc3RhbGxpbmdXb3JrZXIgPSB3b3JrZXI7CkBAIC04
NiwzOCArODgsMzEgQEAgdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6dXBkYXRlUmVnaXN0cmF0
aW9uU3RhdGUoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGoKICAgICBpZiAod29ya2VyKQog
ICAgICAgICBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IHdvcmtlci0+aWRlbnRpZmllcigpOwog
Ci0gICAgZm9yRWFjaENvbm5lY3Rpb24oam9iLCBbJl0oYXV0byYgY29ubmVjdGlvbikgeworICAg
IGZvckVhY2hDb25uZWN0aW9uKFsmXShhdXRvJiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5l
Y3Rpb24udXBkYXRlUmVnaXN0cmF0aW9uU3RhdGVJbkNsaWVudChpZGVudGlmaWVyKCksIHN0YXRl
LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgfSk7CiB9CiAKLXZvaWQgU1dTZXJ2ZXJS
ZWdpc3RyYXRpb246OnVwZGF0ZVdvcmtlclN0YXRlKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRh
JiBqb2IsIFNXU2VydmVyV29ya2VyJiB3b3JrZXIsIFNlcnZpY2VXb3JrZXJTdGF0ZSBzdGF0ZSkK
K3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnVwZGF0ZVdvcmtlclN0YXRlKFNXU2VydmVyV29y
a2VyJiB3b3JrZXIsIFNlcnZpY2VXb3JrZXJTdGF0ZSBzdGF0ZSkKIHsKICAgICBMT0coU2Vydmlj
ZVdvcmtlciwgIlVwZGF0aW5nIHdvcmtlciAlcCBzdGF0ZSB0byAlaSAoJXApIiwgJndvcmtlciwg
KGludClzdGF0ZSwgdGhpcyk7CiAKICAgICB3b3JrZXIuc2V0U3RhdGUoc3RhdGUpOwogCi0gICAg
Zm9yRWFjaENvbm5lY3Rpb24oam9iLCBbJl0oYXV0byYgY29ubmVjdGlvbikgeworICAgIGZvckVh
Y2hDb25uZWN0aW9uKFsmXShhdXRvJiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24u
dXBkYXRlV29ya2VyU3RhdGVJbkNsaWVudCh3b3JrZXIuaWRlbnRpZmllcigpLCBzdGF0ZSk7CiAg
ICAgfSk7CiB9CiAKLXZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmZpcmVVcGRhdGVGb3VuZEV2
ZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2IpCit2b2lkIFNXU2VydmVyUmVnaXN0
cmF0aW9uOjpmaXJlVXBkYXRlRm91bmRFdmVudCgpCiB7Ci0gICAgZm9yRWFjaENvbm5lY3Rpb24o
am9iLCBbJl0oYXV0byYgY29ubmVjdGlvbikgeworICAgIGZvckVhY2hDb25uZWN0aW9uKFsmXShh
dXRvJiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24uZmlyZVVwZGF0ZUZvdW5kRXZl
bnQoaWRlbnRpZmllcigpKTsKICAgICB9KTsKIH0KIAotdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlv
bjo6Zm9yRWFjaENvbm5lY3Rpb24oY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYiwgY29u
c3QgV1RGOjpGdW5jdGlvbjx2b2lkKFNXU2VydmVyOjpDb25uZWN0aW9uJik+JiBhcHBseSkKK3Zv
aWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmZvckVhY2hDb25uZWN0aW9uKGNvbnN0IFdURjo6RnVu
Y3Rpb248dm9pZChTV1NlcnZlcjo6Q29ubmVjdGlvbiYpPiYgYXBwbHkpCiB7Ci0gICAgLy8gTm8g
bWF0dGVyIHdoYXQsIHdlIHNlbmQgdGhlIGV2ZW50IHRvIHRoZSBjb25uZWN0aW9uIHRoYXQgc2No
ZWR1bGVkIHRoZSBqb2IuIFRoZSBjbGllbnQgcmVnaXN0cmF0aW9uCi0gICAgLy8gbWF5IG5vdCBo
YXZlIGdvdHRlbiBhIGNoYW5jZSB0byByZWdpc3RlciBpdHNlbGYgeWV0LgotICAgIGlmICghbV9j
b25uZWN0aW9uc1dpdGhDbGllbnRSZWdpc3RyYXRpb25zLmNvbnRhaW5zKGpvYi5jb25uZWN0aW9u
SWRlbnRpZmllcigpKSkgewotICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc2VydmVy
LmdldENvbm5lY3Rpb24oam9iLmNvbm5lY3Rpb25JZGVudGlmaWVyKCkpKQotICAgICAgICAgICAg
YXBwbHkoKmNvbm5lY3Rpb24pOwotICAgIH0KLQogICAgIGZvciAodWludDY0X3QgY29ubmVjdGlv
bklkZW50aWZpZXJXaXRoQ2xpZW50cyA6IG1fY29ubmVjdGlvbnNXaXRoQ2xpZW50UmVnaXN0cmF0
aW9ucy52YWx1ZXMoKSkgewogICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc2VydmVy
LmdldENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXJXaXRoQ2xpZW50cykpCiAgICAgICAg
ICAgICBhcHBseSgqY29ubmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKaW5kZXggMjk2
MzgzOWFmOTIuLmE1NGNmYTVlNDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCkBAIC01OCw5
ICs1OCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExhc3RVcGRhdGVUaW1lKGRvdWJsZSB0aW1l
KSB7IG1fbGFzdFVwZGF0ZVRpbWUgPSB0aW1lOyB9CiAgICAgU2VydmljZVdvcmtlclVwZGF0ZVZp
YUNhY2hlIHVwZGF0ZVZpYUNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV91cGRhdGVWaWFDYWNoZTsg
fQogCi0gICAgdm9pZCB1cGRhdGVSZWdpc3RyYXRpb25TdGF0ZShjb25zdCBTZXJ2aWNlV29ya2Vy
Sm9iRGF0YSYsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSwgU1dTZXJ2ZXJXb3JrZXIq
KTsKLSAgICB2b2lkIHVwZGF0ZVdvcmtlclN0YXRlKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRh
JiwgU1dTZXJ2ZXJXb3JrZXImLCBTZXJ2aWNlV29ya2VyU3RhdGUpOwotICAgIHZvaWQgZmlyZVVw
ZGF0ZUZvdW5kRXZlbnQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKTsKKyAgICB2b2lkIHVw
ZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSwgU1dT
ZXJ2ZXJXb3JrZXIqKTsKKyAgICB2b2lkIHVwZGF0ZVdvcmtlclN0YXRlKFNXU2VydmVyV29ya2Vy
JiwgU2VydmljZVdvcmtlclN0YXRlKTsKKyAgICB2b2lkIGZpcmVVcGRhdGVGb3VuZEV2ZW50KCk7
CiAKICAgICB2b2lkIGFkZENsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24odWludDY0X3Qg
Y29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlQ2xpZW50U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbih1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcik7CkBAIC03MCw3ICs3
MCw3IEBAIHB1YmxpYzoKICAgICBTV1NlcnZlcldvcmtlciogYWN0aXZlV29ya2VyKCkgY29uc3Qg
eyByZXR1cm4gbV9hY3RpdmVXb3JrZXIuZ2V0KCk7IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGZv
ckVhY2hDb25uZWN0aW9uKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiwgY29uc3QgV1RGOjpG
dW5jdGlvbjx2b2lkKFNXU2VydmVyOjpDb25uZWN0aW9uJik+Jik7CisgICAgdm9pZCBmb3JFYWNo
Q29ubmVjdGlvbihjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24m
KT4mKTsKIAogICAgIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKICAgICBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IG1fcmVnaXN0cmF0aW9uS2V5
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326582</attachid>
            <date>2017-11-10 07:54:06 -0800</date>
            <delta_ts>2017-11-10 09:23:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179523-20171110075405.patch</filename>
            <type>text/plain</type>
            <size>13990</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NjgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWZjYTFjYzQ1NmRmOGNl
NTM3OTE4YmI3YWUyNWRkZjYzNDhmZWMxMi4uNjA0NDczZjliODU1MjMxMjBjM2NhNmE3ZGI1ZmI1
OTY4NDBmZjZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTExLTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgU1dTZXJ2ZXJS
ZWdpc3RyYXRpb246OmZvckVhY2hDb25uZWN0aW9uKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTUyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsaWZ5IFNXU2VydmVyUmVnaXN0cmF0aW9uOjpm
b3JFYWNoQ29ubmVjdGlvbigpIGJ5IGRyb3BwaW5nIHRoZSBoYWNrCisgICAgICAgIGludHJvZHVj
ZWQgaW4gcjIyNDU5MCB0byB3b3JrIGFyb3VuZCB0aGUgZmFjdCB0aGF0IHdlIGhhZCBhIHJhY2UK
KyAgICAgICAgYmV0d2VlbiBTdG9yYWdlICYgV2ViUHJvY2VzcyBwcm9jZXNzZXMgZHVyaW5nIHJl
Z2lzdHJhdGlvbi4gQWZ0ZXIKKyAgICAgICAgcjIyNDY1Miwgd2UgZG8gYW4gSVBDIGhhbmRzaGFr
ZSBiZXR3ZWVuIHRob3NlIDIgcHJvY2Vzc2VzIGFmdGVyCisgICAgICAgIHJlc29sdmluZyB0aGUg
cmVnaXN0cmF0aW9uIHByb21pc2Ugc28gd2Uga25vdyBmb3Igc3VyZSB0aGUKKyAgICAgICAgU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbiBvYmplY3QgaGFzIHJlZ2lzdGVyZWQgaXRzZWxmIHdpdGgg
dGhlCisgICAgICAgIFN0b3JhZ2UgcHJvY2VzcyBiZWZvcmUgd2Uga2VlcCBnb2luZyB3aXRoIHRo
ZSBpbnN0YWxsIHN0ZXBzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gZXhwZWN0ZWQgV2Vi
LWZhY2luZyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVySm9iUXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJKb2JR
dWV1ZTo6c2NyaXB0RmV0Y2hGaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlckpv
YlF1ZXVlOjppbnN0YWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVySm9iUXVldWU6OmRp
ZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
Sm9iUXVldWU6OmRpZEZpbmlzaEluc3RhbGwpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJK
b2JRdWV1ZTo6cnVuUmVnaXN0ZXJKb2IpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJKb2JR
dWV1ZTo6cnVuVW5yZWdpc3RlckpvYik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJl
Z2lzdHJhdGlvbjo6dXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1dTZXJ2ZXJSZWdpc3RyYXRpb246OnVwZGF0ZVdvcmtlclN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNXU2VydmVyUmVnaXN0cmF0aW9uOjpmaXJlVXBkYXRlRm91bmRFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6Zm9yRWFjaENvbm5lY3Rpb24pOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKwog
MjAxNy0xMS0xMCAgTWlndWVsIEdvbWV6ICA8bWFnb21lekBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHVEtdW1dQRV0gQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXROZWVkc0Rpc3BsYXlJblJl
Y3QoKSBjb252ZXJ0cyBGbG9hdFJlY3QgdG8gSW50UmVjdCBlcnJvbmVvdXNseQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JR
dWV1ZS5jcHAKaW5kZXggYjM4YmFjYTkwODA1YzRiMjNmOWQxYmNiNWM4Mzg2MDdjZjBlZDlkMC4u
ODA3YzUzNzdlOWQ1MjAzMjQxMDA4YjQzZTE5MzhjZGQzOTUzYTNkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVl
dWUuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6c2NyaXB0RmV0
Y2hGaW5pc2hlZChTV1NlcnZlcjo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uCiAKICAgICBp
ZiAoIXJlc3VsdC5zY3JpcHRFcnJvci5pc051bGwoKSkgewogICAgICAgICAvLyBJbnZva2UgUmVq
ZWN0IEpvYiBQcm9taXNlIHdpdGggam9iIGFuZCBUeXBlRXJyb3IuCi0gICAgICAgIG1fc2VydmVy
LnJlamVjdEpvYihmaXJzdEpvYigpLCBFeGNlcHRpb25EYXRhIHsgVHlwZUVycm9yLCBtYWtlU3Ry
aW5nKCJTY3JpcHQgVVJMICIsIGpvYi5zY3JpcHRVUkwuc3RyaW5nKCksICIgZmV0Y2ggcmVzdWx0
ZWQgaW4gZXJyb3I6ICIsIHJlc3VsdC5zY3JpcHRFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigp
KSB9KTsKKyAgICAgICAgbV9zZXJ2ZXIucmVqZWN0Sm9iKGpvYiwgRXhjZXB0aW9uRGF0YSB7IFR5
cGVFcnJvciwgbWFrZVN0cmluZygiU2NyaXB0IFVSTCAiLCBqb2Iuc2NyaXB0VVJMLnN0cmluZygp
LCAiIGZldGNoIHJlc3VsdGVkIGluIGVycm9yOiAiLCByZXN1bHQuc2NyaXB0RXJyb3IubG9jYWxp
emVkRGVzY3JpcHRpb24oKSkgfSk7CiAKICAgICAgICAgLy8gSWYgbmV3ZXN0V29ya2VyIGlzIG51
bGwsIGludm9rZSBDbGVhciBSZWdpc3RyYXRpb24gYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0
aW9uIGFzIGl0cyBhcmd1bWVudC4KICAgICAgICAgaWYgKCFuZXdlc3RXb3JrZXIpCkBAIC0xMTUs
MTMgKzExNSwxMSBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6Omluc3RhbGwoU1dTZXJ2ZXJSZWdp
c3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwgU1dTZXJ2ZXI6OkNvbgogICAgIGF1dG8qIHdvcmtlciA9
IG1fc2VydmVyLndvcmtlckJ5SUQoaW5zdGFsbGluZ1dvcmtlcik7CiAgICAgUkVMRUFTRV9BU1NF
UlQod29ya2VyKTsKIAotICAgIGF1dG8mIGpvYiA9IGZpcnN0Sm9iKCk7Ci0KLSAgICByZWdpc3Ry
YXRpb24udXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoam9iLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uU3RhdGU6Okluc3RhbGxpbmcsIHdvcmtlcik7Ci0gICAgcmVnaXN0cmF0aW9uLnVwZGF0ZVdv
cmtlclN0YXRlKGpvYiwgKndvcmtlciwgU2VydmljZVdvcmtlclN0YXRlOjpJbnN0YWxsaW5nKTsK
KyAgICByZWdpc3RyYXRpb24udXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvblN0YXRlOjpJbnN0YWxsaW5nLCB3b3JrZXIpOworICAgIHJlZ2lzdHJhdGlvbi51
cGRhdGVXb3JrZXJTdGF0ZSgqd29ya2VyLCBTZXJ2aWNlV29ya2VyU3RhdGU6Okluc3RhbGxpbmcp
OwogCiAgICAgLy8gSW52b2tlIFJlc29sdmUgSm9iIFByb21pc2Ugd2l0aCBqb2IgYW5kIHJlZ2lz
dHJhdGlvbi4KLSAgICBtX3NlcnZlci5yZXNvbHZlUmVnaXN0cmF0aW9uSm9iKGpvYiwgcmVnaXN0
cmF0aW9uLmRhdGEoKSwgU2hvdWxkTm90aWZ5V2hlblJlc29sdmVkOjpZZXMpOworICAgIG1fc2Vy
dmVyLnJlc29sdmVSZWdpc3RyYXRpb25Kb2IoZmlyc3RKb2IoKSwgcmVnaXN0cmF0aW9uLmRhdGEo
KSwgU2hvdWxkTm90aWZ5V2hlblJlc29sdmVkOjpZZXMpOwogfQogCiAvLyBodHRwczovL3czYy5n
aXRodWIuaW8vU2VydmljZVdvcmtlci8jaW5zdGFsbCAoYWZ0ZXIgcmVzb2x2aW5nIHByb21pc2Up
LgpAQCAtMTMwLDEyICsxMjgsMTAgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRSZXNvbHZl
UmVnaXN0cmF0aW9uUHJvbWlzZShTV1NlcnZlcjo6Q29ubmVjdGlvbiYgY29ubmUKICAgICBhdXRv
KiByZWdpc3RyYXRpb24gPSBtX3NlcnZlci5nZXRSZWdpc3RyYXRpb24obV9yZWdpc3RyYXRpb25L
ZXkpOwogICAgIEFTU0VSVChyZWdpc3RyYXRpb24pOwogCi0gICAgYXV0byYgam9iID0gZmlyc3RK
b2IoKTsKLQogICAgIC8vIFF1ZXVlIGEgdGFzayB0byBmaXJlIGFuIGV2ZW50IG5hbWVkIHVwZGF0
ZWZvdW5kIGF0IGFsbCB0aGUgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBvYmplY3RzCiAgICAg
Ly8gZm9yIGFsbCB0aGUgc2VydmljZSB3b3JrZXIgY2xpZW50cyB3aG9zZSBjcmVhdGlvbiBVUkwg
bWF0Y2hlcyByZWdpc3RyYXRpb24ncyBzY29wZSB1cmwgYW5kCiAgICAgLy8gYWxsIHRoZSBzZXJ2
aWNlIHdvcmtlcnMgd2hvc2UgY29udGFpbmluZyBzZXJ2aWNlIHdvcmtlciByZWdpc3RyYXRpb24g
aXMgcmVnaXN0cmF0aW9uLgotICAgIHJlZ2lzdHJhdGlvbi0+ZmlyZVVwZGF0ZUZvdW5kRXZlbnQo
am9iKTsKKyAgICByZWdpc3RyYXRpb24tPmZpcmVVcGRhdGVGb3VuZEV2ZW50KCk7CiAKICAgICAv
LyBRdWV1ZSBhIHRhc2sgdG8gZmlyZSB0aGUgSW5zdGFsbEV2ZW50LgogICAgIG1fc2VydmVyLmZp
cmVJbnN0YWxsRXZlbnQoY29ubmVjdGlvbiwgcmVnaXN0cmF0aW9uLT5pbnN0YWxsaW5nV29ya2Vy
KCktPmlkZW50aWZpZXIoKSk7CkBAIC0xNDcsMTYgKzE0MywxNCBAQCB2b2lkIFNXU2VydmVySm9i
UXVldWU6OmRpZEZpbmlzaEluc3RhbGwoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBTZXJ2aWNlV29y
a2VySWRlbgogICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IG1fc2VydmVyLmdldFJlZ2lzdHJhdGlv
bihtX3JlZ2lzdHJhdGlvbktleSk7CiAgICAgQVNTRVJUKHJlZ2lzdHJhdGlvbik7CiAKLSAgICBh
dXRvIGpvYiA9IGZpcnN0Sm9iKCk7Ci0KICAgICBpZiAoIXdhc1N1Y2Nlc3NmdWwpIHsKICAgICAg
ICAgYXV0byogd29ya2VyID0gbV9zZXJ2ZXIud29ya2VyQnlJRChpZGVudGlmaWVyKTsKICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQod29ya2VyKTsKIAogICAgICAgICAvLyBSdW4gdGhlIFVwZGF0ZSBX
b3JrZXIgU3RhdGUgYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9uJ3MgaW5zdGFsbGluZyB3
b3JrZXIgYW5kIHJlZHVuZGFudCBhcyB0aGUgYXJndW1lbnRzLgotICAgICAgICByZWdpc3RyYXRp
b24tPnVwZGF0ZVdvcmtlclN0YXRlKGpvYiwgKndvcmtlciwgU2VydmljZVdvcmtlclN0YXRlOjpS
ZWR1bmRhbnQpOworICAgICAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVdvcmtlclN0YXRlKCp3b3Jr
ZXIsIFNlcnZpY2VXb3JrZXJTdGF0ZTo6UmVkdW5kYW50KTsKICAgICAgICAgLy8gUnVuIHRoZSBV
cGRhdGUgUmVnaXN0cmF0aW9uIFN0YXRlIGFsZ29yaXRobSBwYXNzaW5nIHJlZ2lzdHJhdGlvbiwg
Imluc3RhbGxpbmciIGFuZCBudWxsIGFzIHRoZSBhcmd1bWVudHMuCi0gICAgICAgIHJlZ2lzdHJh
dGlvbi0+dXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoam9iLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uU3RhdGU6Okluc3RhbGxpbmcsIG51bGxwdHIpOworICAgICAgICByZWdpc3RyYXRpb24tPnVw
ZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6SW5z
dGFsbGluZywgbnVsbHB0cik7CiAKICAgICAgICAgLy8gSWYgbmV3ZXN0V29ya2VyIGlzIG51bGws
IGludm9rZSBDbGVhciBSZWdpc3RyYXRpb24gYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9u
IGFzIGl0cyBhcmd1bWVudC4KICAgICAgICAgaWYgKCFyZWdpc3RyYXRpb24tPmdldE5ld2VzdFdv
cmtlcigpKQpAQCAtMTY4LDE1ICsxNjIsMTUgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRG
aW5pc2hJbnN0YWxsKFNXU2VydmVyOjpDb25uZWN0aW9uJiwgU2VydmljZVdvcmtlcklkZW4KIAog
ICAgIGlmIChhdXRvKiB3YWl0aW5nV29ya2VyID0gcmVnaXN0cmF0aW9uLT53YWl0aW5nV29ya2Vy
KCkpIHsKICAgICAgICAgd2FpdGluZ1dvcmtlci0+dGVybWluYXRlKCk7Ci0gICAgICAgIHJlZ2lz
dHJhdGlvbi0+dXBkYXRlV29ya2VyU3RhdGUoam9iLCAqd2FpdGluZ1dvcmtlciwgU2VydmljZVdv
cmtlclN0YXRlOjpSZWR1bmRhbnQpOworICAgICAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVdvcmtl
clN0YXRlKCp3YWl0aW5nV29ya2VyLCBTZXJ2aWNlV29ya2VyU3RhdGU6OlJlZHVuZGFudCk7CiAg
ICAgfQogCiAgICAgYXV0byogaW5zdGFsbGluZyA9IHJlZ2lzdHJhdGlvbi0+aW5zdGFsbGluZ1dv
cmtlcigpOwogICAgIEFTU0VSVChpbnN0YWxsaW5nKTsKIAotICAgIHJlZ2lzdHJhdGlvbi0+dXBk
YXRlUmVnaXN0cmF0aW9uU3RhdGUoam9iLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6
OldhaXRpbmcsIGluc3RhbGxpbmcpOwotICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlUmVnaXN0cmF0
aW9uU3RhdGUoam9iLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6Okluc3RhbGxpbmcs
IG51bGxwdHIpOwotICAgIHJlZ2lzdHJhdGlvbi0+dXBkYXRlV29ya2VyU3RhdGUoam9iLCAqaW5z
dGFsbGluZywgU2VydmljZVdvcmtlclN0YXRlOjpJbnN0YWxsZWQpOworICAgIHJlZ2lzdHJhdGlv
bi0+dXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRl
OjpXYWl0aW5nLCBpbnN0YWxsaW5nKTsKKyAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJh
dGlvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6SW5zdGFsbGluZywgbnVs
bHB0cik7CisgICAgcmVnaXN0cmF0aW9uLT51cGRhdGVXb3JrZXJTdGF0ZSgqaW5zdGFsbGluZywg
U2VydmljZVdvcmtlclN0YXRlOjpJbnN0YWxsZWQpOwogCiAgICAgZmluaXNoQ3VycmVudEpvYigp
OwogCkBAIC0xODUsMTAgKzE3OSwxMCBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OmRpZEZpbmlz
aEluc3RhbGwoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbgogICAgIGF1
dG8qIHdhaXRpbmcgPSByZWdpc3RyYXRpb24tPndhaXRpbmdXb3JrZXIoKTsKICAgICBBU1NFUlQo
d2FpdGluZyk7CiAKLSAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKGpv
YiwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpBY3RpdmUsIHdhaXRpbmcpOwotICAg
IHJlZ2lzdHJhdGlvbi0+dXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoam9iLCBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uU3RhdGU6OldhaXRpbmcsIG51bGxwdHIpOwotICAgIHJlZ2lzdHJhdGlvbi0+
dXBkYXRlV29ya2VyU3RhdGUoam9iLCAqd2FpdGluZywgU2VydmljZVdvcmtlclN0YXRlOjpBY3Rp
dmF0aW5nKTsKLSAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVdvcmtlclN0YXRlKGpvYiwgKndhaXRp
bmcsIFNlcnZpY2VXb3JrZXJTdGF0ZTo6QWN0aXZhdGVkKTsKKyAgICByZWdpc3RyYXRpb24tPnVw
ZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6QWN0
aXZlLCB3YWl0aW5nKTsKKyAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRl
KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6V2FpdGluZywgbnVsbHB0cik7CisgICAg
cmVnaXN0cmF0aW9uLT51cGRhdGVXb3JrZXJTdGF0ZSgqd2FpdGluZywgU2VydmljZVdvcmtlclN0
YXRlOjpBY3RpdmF0aW5nKTsKKyAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVdvcmtlclN0YXRlKCp3
YWl0aW5nLCBTZXJ2aWNlV29ya2VyU3RhdGU6OkFjdGl2YXRlZCk7CiB9CiAKIC8vIGh0dHBzOi8v
dzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNydW4tam9iCkBAIC0yMzgsNyArMjMyLDcgQEAg
dm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpydW5SZWdpc3RlckpvYihjb25zdCBTZXJ2aWNlV29ya2Vy
Sm9iRGF0YSYgam9iKQogICAgICAgICByZWdpc3RyYXRpb24tPnNldElzVW5pbnN0YWxsaW5nKGZh
bHNlKTsKICAgICAgICAgYXV0byogbmV3ZXN0V29ya2VyID0gcmVnaXN0cmF0aW9uLT5nZXROZXdl
c3RXb3JrZXIoKTsKICAgICAgICAgaWYgKG5ld2VzdFdvcmtlciAmJiBlcXVhbElnbm9yaW5nRnJh
Z21lbnRJZGVudGlmaWVyKGpvYi5zY3JpcHRVUkwsIG5ld2VzdFdvcmtlci0+c2NyaXB0VVJMKCkp
ICYmIGpvYi5yZWdpc3RyYXRpb25PcHRpb25zLnVwZGF0ZVZpYUNhY2hlID09IHJlZ2lzdHJhdGlv
bi0+dXBkYXRlVmlhQ2FjaGUoKSkgewotICAgICAgICAgICAgbV9zZXJ2ZXIucmVzb2x2ZVJlZ2lz
dHJhdGlvbkpvYihmaXJzdEpvYigpLCByZWdpc3RyYXRpb24tPmRhdGEoKSwgU2hvdWxkTm90aWZ5
V2hlblJlc29sdmVkOjpObyk7CisgICAgICAgICAgICBtX3NlcnZlci5yZXNvbHZlUmVnaXN0cmF0
aW9uSm9iKGpvYiwgcmVnaXN0cmF0aW9uLT5kYXRhKCksIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZl
ZDo6Tm8pOwogICAgICAgICAgICAgZmluaXNoQ3VycmVudEpvYigpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CkBAIC0yNjMsNyArMjU3LDcgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVl
OjpydW5VbnJlZ2lzdGVySm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2IpCiAgICAg
Ly8gSWYgcmVnaXN0cmF0aW9uIGlzIG51bGwsIHRoZW46CiAgICAgaWYgKCFyZWdpc3RyYXRpb24g
fHwgcmVnaXN0cmF0aW9uLT5pc1VuaW5zdGFsbGluZygpKSB7CiAgICAgICAgIC8vIEludm9rZSBS
ZXNvbHZlIEpvYiBQcm9taXNlIHdpdGggam9iIGFuZCBmYWxzZS4KLSAgICAgICAgbV9zZXJ2ZXIu
cmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iKGZpcnN0Sm9iKCksIG1fcmVnaXN0cmF0aW9uS2V5LCBm
YWxzZSk7CisgICAgICAgIG1fc2VydmVyLnJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYihqb2IsIG1f
cmVnaXN0cmF0aW9uS2V5LCBmYWxzZSk7CiAgICAgICAgIGZpbmlzaEN1cnJlbnRKb2IoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI3Miw3ICsyNjYsNyBAQCB2b2lkIFNXU2VydmVySm9i
UXVldWU6OnJ1blVucmVnaXN0ZXJKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYikK
ICAgICByZWdpc3RyYXRpb24tPnNldElzVW5pbnN0YWxsaW5nKHRydWUpOwogCiAgICAgLy8gSW52
b2tlIFJlc29sdmUgSm9iIFByb21pc2Ugd2l0aCBqb2IgYW5kIHRydWUuCi0gICAgbV9zZXJ2ZXIu
cmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iKGZpcnN0Sm9iKCksIG1fcmVnaXN0cmF0aW9uS2V5LCB0
cnVlKTsKKyAgICBtX3NlcnZlci5yZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2Ioam9iLCBtX3JlZ2lz
dHJhdGlvbktleSwgdHJ1ZSk7CiAKICAgICAvLyBJbnZva2UgVHJ5IENsZWFyIFJlZ2lzdHJhdGlv
biB3aXRoIHJlZ2lzdHJhdGlvbi4KICAgICB0cnlDbGVhclJlZ2lzdHJhdGlvbigqcmVnaXN0cmF0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKaW5kZXggYjQ3ZWE1M2Y1YWU5OGFjZTcw
N2I4YzBiNGVjYWMzMmNiNThiNTZkZi4uZjczYmVmZWNiNDM2MjJhMGI3ZDA5MjQ1MGVkZWY5NjJl
ODQ2YWY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTY2LDcgKzY2LDcgQEAg
U1dTZXJ2ZXJXb3JrZXIqIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpnZXROZXdlc3RXb3JrZXIoKQog
ICAgIHJldHVybiBtX2FjdGl2ZVdvcmtlci5nZXQoKTsKIH0KIAotdm9pZCBTV1NlcnZlclJlZ2lz
dHJhdGlvbjo6dXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoY29uc3QgU2VydmljZVdvcmtlckpvYkRh
dGEmIGpvYiwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlIHN0YXRlLCBTV1NlcnZlcldv
cmtlciogd29ya2VyKQordm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6dXBkYXRlUmVnaXN0cmF0
aW9uU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlIHN0YXRlLCBTV1NlcnZlcldv
cmtlciogd29ya2VyKQogewogICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiKCVwKSBVcGRhdGluZyBy
ZWdpc3RyYXRpb24gc3RhdGUgdG8gJWkgd2l0aCB3b3JrZXIgJXAiLCB0aGlzLCAoaW50KXN0YXRl
LCB3b3JrZXIpOwogICAgIApAQCAtODYsMzggKzg2LDMxIEBAIHZvaWQgU1dTZXJ2ZXJSZWdpc3Ry
YXRpb246OnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRh
JiBqCiAgICAgaWYgKHdvcmtlcikKICAgICAgICAgc2VydmljZVdvcmtlcklkZW50aWZpZXIgPSB3
b3JrZXItPmlkZW50aWZpZXIoKTsKIAotICAgIGZvckVhY2hDb25uZWN0aW9uKGpvYiwgWyZdKGF1
dG8mIGNvbm5lY3Rpb24pIHsKKyAgICBmb3JFYWNoQ29ubmVjdGlvbihbJl0oYXV0byYgY29ubmVj
dGlvbikgewogICAgICAgICBjb25uZWN0aW9uLnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlSW5DbGll
bnQoaWRlbnRpZmllcigpLCBzdGF0ZSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIH0p
OwogfQogCi12b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjp1cGRhdGVXb3JrZXJTdGF0ZShjb25z
dCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iLCBTV1NlcnZlcldvcmtlciYgd29ya2VyLCBTZXJ2
aWNlV29ya2VyU3RhdGUgc3RhdGUpCit2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjp1cGRhdGVX
b3JrZXJTdGF0ZShTV1NlcnZlcldvcmtlciYgd29ya2VyLCBTZXJ2aWNlV29ya2VyU3RhdGUgc3Rh
dGUpCiB7CiAgICAgTE9HKFNlcnZpY2VXb3JrZXIsICJVcGRhdGluZyB3b3JrZXIgJXAgc3RhdGUg
dG8gJWkgKCVwKSIsICZ3b3JrZXIsIChpbnQpc3RhdGUsIHRoaXMpOwogCiAgICAgd29ya2VyLnNl
dFN0YXRlKHN0YXRlKTsKIAotICAgIGZvckVhY2hDb25uZWN0aW9uKGpvYiwgWyZdKGF1dG8mIGNv
bm5lY3Rpb24pIHsKKyAgICBmb3JFYWNoQ29ubmVjdGlvbihbJl0oYXV0byYgY29ubmVjdGlvbikg
ewogICAgICAgICBjb25uZWN0aW9uLnVwZGF0ZVdvcmtlclN0YXRlSW5DbGllbnQod29ya2VyLmlk
ZW50aWZpZXIoKSwgc3RhdGUpOwogICAgIH0pOwogfQogCi12b2lkIFNXU2VydmVyUmVnaXN0cmF0
aW9uOjpmaXJlVXBkYXRlRm91bmRFdmVudChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9i
KQordm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6ZmlyZVVwZGF0ZUZvdW5kRXZlbnQoKQogewot
ICAgIGZvckVhY2hDb25uZWN0aW9uKGpvYiwgWyZdKGF1dG8mIGNvbm5lY3Rpb24pIHsKKyAgICBm
b3JFYWNoQ29ubmVjdGlvbihbJl0oYXV0byYgY29ubmVjdGlvbikgewogICAgICAgICBjb25uZWN0
aW9uLmZpcmVVcGRhdGVGb3VuZEV2ZW50KGlkZW50aWZpZXIoKSk7CiAgICAgfSk7CiB9CiAKLXZv
aWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmZvckVhY2hDb25uZWN0aW9uKGNvbnN0IFNlcnZpY2VX
b3JrZXJKb2JEYXRhJiBqb2IsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChTV1NlcnZlcjo6Q29u
bmVjdGlvbiYpPiYgYXBwbHkpCit2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpmb3JFYWNoQ29u
bmVjdGlvbihjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mKT4m
IGFwcGx5KQogewotICAgIC8vIE5vIG1hdHRlciB3aGF0LCB3ZSBzZW5kIHRoZSBldmVudCB0byB0
aGUgY29ubmVjdGlvbiB0aGF0IHNjaGVkdWxlZCB0aGUgam9iLiBUaGUgY2xpZW50IHJlZ2lzdHJh
dGlvbgotICAgIC8vIG1heSBub3QgaGF2ZSBnb3R0ZW4gYSBjaGFuY2UgdG8gcmVnaXN0ZXIgaXRz
ZWxmIHlldC4KLSAgICBpZiAoIW1fY29ubmVjdGlvbnNXaXRoQ2xpZW50UmVnaXN0cmF0aW9ucy5j
b250YWlucyhqb2IuY29ubmVjdGlvbklkZW50aWZpZXIoKSkpIHsKLSAgICAgICAgaWYgKGF1dG8q
IGNvbm5lY3Rpb24gPSBtX3NlcnZlci5nZXRDb25uZWN0aW9uKGpvYi5jb25uZWN0aW9uSWRlbnRp
ZmllcigpKSkKLSAgICAgICAgICAgIGFwcGx5KCpjb25uZWN0aW9uKTsKLSAgICB9Ci0KICAgICBm
b3IgKHVpbnQ2NF90IGNvbm5lY3Rpb25JZGVudGlmaWVyV2l0aENsaWVudHMgOiBtX2Nvbm5lY3Rp
b25zV2l0aENsaWVudFJlZ2lzdHJhdGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAgaWYgKGF1dG8q
IGNvbm5lY3Rpb24gPSBtX3NlcnZlci5nZXRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVy
V2l0aENsaWVudHMpKQogICAgICAgICAgICAgYXBwbHkoKmNvbm5lY3Rpb24pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJl
Z2lzdHJhdGlvbi5oCmluZGV4IDI5NjM4MzlhZjkyMzgxOGFjOWIxYmM2ZmI3ZGEyZGJhOGE0NjFi
YjMuLmE1NGNmYTVlNDJmODY0OTJhZjkzMmU4YTMxNjNjMTdiYjFlMzIxZTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
UmVnaXN0cmF0aW9uLmgKQEAgLTU4LDkgKzU4LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGFz
dFVwZGF0ZVRpbWUoZG91YmxlIHRpbWUpIHsgbV9sYXN0VXBkYXRlVGltZSA9IHRpbWU7IH0KICAg
ICBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGUoKSBjb25zdCB7IHJl
dHVybiBtX3VwZGF0ZVZpYUNhY2hlOyB9CiAKLSAgICB2b2lkIHVwZGF0ZVJlZ2lzdHJhdGlvblN0
YXRlKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
blN0YXRlLCBTV1NlcnZlcldvcmtlciopOwotICAgIHZvaWQgdXBkYXRlV29ya2VyU3RhdGUoY29u
c3QgU2VydmljZVdvcmtlckpvYkRhdGEmLCBTV1NlcnZlcldvcmtlciYsIFNlcnZpY2VXb3JrZXJT
dGF0ZSk7Ci0gICAgdm9pZCBmaXJlVXBkYXRlRm91bmRFdmVudChjb25zdCBTZXJ2aWNlV29ya2Vy
Sm9iRGF0YSYpOworICAgIHZvaWQgdXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvblN0YXRlLCBTV1NlcnZlcldvcmtlciopOworICAgIHZvaWQgdXBkYXRlV29y
a2VyU3RhdGUoU1dTZXJ2ZXJXb3JrZXImLCBTZXJ2aWNlV29ya2VyU3RhdGUpOworICAgIHZvaWQg
ZmlyZVVwZGF0ZUZvdW5kRXZlbnQoKTsKIAogICAgIHZvaWQgYWRkQ2xpZW50U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbih1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcik7CiAgICAgdm9pZCBy
ZW1vdmVDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKHVpbnQ2NF90IGNvbm5lY3Rpb25J
ZGVudGlmaWVyKTsKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIFNXU2VydmVyV29ya2Vy
KiBhY3RpdmVXb3JrZXIoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZVdvcmtlci5nZXQoKTsgfQog
CiBwcml2YXRlOgotICAgIHZvaWQgZm9yRWFjaENvbm5lY3Rpb24oY29uc3QgU2VydmljZVdvcmtl
ckpvYkRhdGEmLCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24m
KT4mKTsKKyAgICB2b2lkIGZvckVhY2hDb25uZWN0aW9uKGNvbnN0IFdURjo6RnVuY3Rpb248dm9p
ZChTV1NlcnZlcjo6Q29ubmVjdGlvbiYpPiYpOwogCiAgICAgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25LZXkgbV9yZWdpc3RyYXRpb25LZXk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>