<?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>222592</bug_id>
          
          <creation_ts>2021-03-02 04:22:44 -0800</creation_ts>
          <short_desc>IPC stream feature should use client/server naming instead of sender/receiver</short_desc>
          <delta_ts>2021-03-04 01:10:21 -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>WebKit2</component>
          <version>Other</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>222546</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1734808</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-02 04:22:44 -0800</bug_when>
    <thetext>IPC stream feature should use client/server naming instead of sender/receiver

Originally the feature was implemented with names using &quot;sender&quot; and &quot;receiver&quot;.
However, at the landing time the naming was changed to use &quot;client&quot; and &quot;server&quot; to follow the existing IPC::Connection.
However, not all the names were changed consistently.

Change all the names to use &quot;client&quot; instead of &quot;sender&quot; and &quot;server&quot; instead of &quot;receiver&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734810</commentid>
    <comment_count>1</comment_count>
      <attachid>421920</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-02 04:26:07 -0800</bug_when>
    <thetext>Created attachment 421920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734822</commentid>
    <comment_count>2</comment_count>
      <attachid>421928</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-02 06:18:52 -0800</bug_when>
    <thetext>Created attachment 421928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735702</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-03-04 00:36:47 -0800</bug_when>
    <thetext>rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735722</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-04 01:09:45 -0800</bug_when>
    <thetext>Committed r273878: &lt;https://commits.webkit.org/r273878&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421928.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735724</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-04 01:10:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/75025379&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421920</attachid>
            <date>2021-03-02 04:26:07 -0800</date>
            <delta_ts>2021-03-02 06:18:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222592-20210302142605.patch</filename>
            <type>text/plain</type>
            <size>24494</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVhNmE2NDRmY2E5ZmIzYmE1
YWIwZTYxNzVjNTQxNTQ4M2NkMzQ1YWUuLjI2MGNjNWEzYTFjMGMzYjhlOTc2ZTQwMzhlZTdiN2Nm
NjdjOTBmMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjEtMDMtMDIgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJUEMgc3RyZWFtIGZlYXR1
cmUgc2hvdWxkIHVzZSBjbGllbnQvc2VydmVyIG5hbWluZyBpbnN0ZWFkIG9mIHNlbmRlci9yZWNl
aXZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIy
NTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXR0
ZW1wdCB0byBzaW1wbGlmeSBhbHJlYWR5IGNvbXBsaWNhdGVkIGltcGxlbWVudGF0aW9uIG9mIHRo
ZSBzdHJlYW0KKyAgICAgICAgaW1wbGVtZW50YXRpb24uIFVzZXMgb2YgInNlbmRlciIgYW5kICJy
ZWNlaXZlciIgd2VyZSBhIGxlZnRvdmVyIGZyb20KKyAgICAgICAgZWFybHkgcGhhc2Ugb2YgdGhl
IGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIFJlbmFtZSBhbGwgcmVtYWluaW5nIGluc3RhbmNl
cyBvZiAic2VuZGVyIiB3aXRoICJjbGllbnQiLgorICAgICAgICBSZW5hbWUgYWxsIHJlbWFpbmlu
ZyBpbnN0YW5jZXMgb2YgInJlY2VpdmVyIiB3aXRoICJzZXJ2ZXIiLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgYSByZWZhY3Rvci4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9TdHJlYW1DbGll
bnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6U3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6
U3RyZWFtQ2xpZW50Q29ubmVjdGlvbik6CisgICAgICAgIChJUEM6OlN0cmVhbUNsaWVudENvbm5l
Y3Rpb246OnNldFdha2VVcFNlbWFwaG9yZSk6CisgICAgICAgIChJUEM6OlN0cmVhbUNsaWVudENv
bm5lY3Rpb246Ondha2VVcFNlcnZlcik6CisgICAgICAgICogUGxhdGZvcm0vSVBDL1N0cmVhbUNs
aWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6U3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6
c2VuZCk6CisgICAgICAgIChJUEM6OlN0cmVhbUNsaWVudENvbm5lY3Rpb246OnRyeVNlbmREZXN0
aW5hdGlvbklESWZOZWVkZWQpOgorICAgICAgICAoSVBDOjpTdHJlYW1DbGllbnRDb25uZWN0aW9u
Ojp0cnlBY3F1aXJlKToKKyAgICAgICAgKElQQzo6U3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6cmVs
ZWFzZSk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25CdWZmZXIuY3Bw
OgorICAgICAgICAoSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpTdHJlYW1Db25uZWN0aW9u
QnVmZmVyKToKKyAgICAgICAgKElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6b3BlcmF0b3I9
KToKKyAgICAgICAgKElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oOgorICAgICAg
ICAoSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpjbGllbnRPZmZzZXQpOgorICAgICAgICAo
SVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpzZXJ2ZXJPZmZzZXQpOgorICAgICAgICAoSVBD
OjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpjbGllbnRXYWl0U2VtYXBob3JlKToKKyAgICAgICAg
KElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6bWF4aW11bVNpemUpOgorICAgICAgICAqIFBs
YXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6U3Ry
ZWFtU2VydmVyQ29ubmVjdGlvbkJhc2U6OnRyeUFxdWlyZSk6CisgICAgICAgIChJUEM6OlN0cmVh
bVNlcnZlckNvbm5lY3Rpb25CYXNlOjpyZWxlYXNlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMv
U3RyZWFtU2VydmVyQ29ubmVjdGlvbi5oOgorICAgICAgICAoSVBDOjpTdHJlYW1TZXJ2ZXJDb25u
ZWN0aW9uQmFzZTo6c2hhcmVkQ2xpZW50T2Zmc2V0KToKKyAgICAgICAgKElQQzo6U3RyZWFtU2Vy
dmVyQ29ubmVjdGlvbkJhc2U6OnNoYXJlZFNlcnZlck9mZnNldCk6CisKIDIwMjEtMDMtMDEgIEZ1
amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW0dUS10g
V2ViIGluc3BlY3RvciByZWxhdGVkIHRlc3RzIHZlcnkgc2xvdyBvciB0aW1lb3V0IGluIGRlYnVn
IG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVu
dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ2xpZW50
Q29ubmVjdGlvbi5jcHAKaW5kZXggYjRmNWNkZjAwOGU1YTdmMmQyZjEwMmEyMzVjM2MyMjUxNzMz
NzZlYS4uN2RhNzE1NTNlOWMxMzA3ODc5YzdlODkxMmMzZjRlODNjMDYxODkyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5j
cHAKQEAgLTMzLDkgKzMzLDkgQEAgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6U3RyZWFtQ2xpZW50
Q29ubmVjdGlvbihDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBzaXplX3Qgc2kKICAgICAsIG1fYnVm
ZmVyKHNpemUpCiB7CiAgICAgLy8gUmVhZCBzdGFydHMgZnJvbSAwIHdpdGggbGltaXQgb2YgMCBh
bmQgcmVhZGVyIHNsZWVwaW5nLgotICAgIHNoYXJlZFNlbmRlck9mZnNldCgpLnN0b3JlKFN0cmVh
bUNvbm5lY3Rpb25CdWZmZXI6OnNlbmRlck9mZnNldFJlY2VpdmVySXNTbGVlcGluZ1RhZywgc3Rk
OjptZW1vcnlfb3JkZXJfcmVsYXhlZCk7CisgICAgc2hhcmVkQ2xpZW50T2Zmc2V0KCkuc3RvcmUo
U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6Y2xpZW50T2Zmc2V0U2VydmVySXNTbGVlcGluZ1RhZywg
c3RkOjptZW1vcnlfb3JkZXJfcmVsYXhlZCk7CiAgICAgLy8gV3JpdGUgc3RhcnRzIGZyb20gMCB3
aXRoIGEgbGltaXQgb2YgdGhlIHdob2xlIGJ1ZmZlci4KLSAgICBzaGFyZWRSZWNlaXZlck9mZnNl
dCgpLnN0b3JlKDAsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGF4ZWQpOworICAgIHNoYXJlZFNlcnZl
ck9mZnNldCgpLnN0b3JlKDAsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGF4ZWQpOwogfQogCiB2b2lk
IFN0cmVhbUNsaWVudENvbm5lY3Rpb246OnNldFdha2VVcFNlbWFwaG9yZShJUEM6OlNlbWFwaG9y
ZSYmIHNlbWFwaG9yZSkKQEAgLTQzLDEwICs0MywxMCBAQCB2b2lkIFN0cmVhbUNsaWVudENvbm5l
Y3Rpb246OnNldFdha2VVcFNlbWFwaG9yZShJUEM6OlNlbWFwaG9yZSYmIHNlbWFwaG9yZSkKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBtX3dha2VVcFNlbWFwaG9yZSA9IFdURk1vdmUoc2VtYXBo
b3JlKTsKICNlbmRpZgotICAgIHdha2VVcFJlY2VpdmVyKCk7CisgICAgd2FrZVVwU2VydmVyKCk7
CiB9CiAKLXZvaWQgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6d2FrZVVwUmVjZWl2ZXIoKQordm9p
ZCBTdHJlYW1DbGllbnRDb25uZWN0aW9uOjp3YWtlVXBTZXJ2ZXIoKQogewogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIGlmIChtX3dha2VVcFNlbWFwaG9yZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENvbm5lY3Rpb24uaAppbmRleCAwMjgzZjI2Njlk
MDE1NjhjYjc2Yzg5MWU1MjA1NzZhYzBjZWI1OGJhLi5jNWFiNmEzYTMxZDk2NDU0OGQ4YzFiYTVi
ODIyZGJiZGM1MGU3MTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9T
dHJlYW1DbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
U3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC0zNiwxMyArMzYsMTMgQEAKICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CiBuYW1lc3BhY2UgSVBDIHsKIAotLy8gQSBtZXNzYWdlIHN0cmVhbSBp
cyBhIGhhbGYtZHVwbGV4IHR3by13YXkgc3RyZWFtIG9mIG1lc3NhZ2VzIHRvIGEgYmV0d2VlbiBh
IHNlbmRlciBhbmQgdGhlCi0vLyBkZXN0aW5hdGlvbiByZWNlaXZlci4KKy8vIEEgbWVzc2FnZSBz
dHJlYW0gaXMgYSBoYWxmLWR1cGxleCB0d28td2F5IHN0cmVhbSBvZiBtZXNzYWdlcyB0byBhIGJl
dHdlZW4gdGhlIGNsaWVudCBhbmQgdGhlCisvLyBzZXJ2ZXIuCiAvLwogLy8gU3RyZWFtQ2xpZW50
Q29ubmVjdGlvbiBjYW4gc2VuZCBtZXNzYWdlcyBhbmQgcmVjZWl2ZSBzeW5jaHJvbm91cyByZXBs
aWVzCiAvLyB0aHJvdWdoIHRoaXMgbWVzc2FnZSBzdHJlYW0gb3IgdGhyb3VnaCBJUEM6OkNvbm5l
Y3Rpb24uCiAvLwotLy8gVGhlIGRlc3RpbmF0aW9uIHJlY2VpdmVyIHdpbGwgcmVjZWl2ZSBtZXNz
YWdlcyBpbiBvcmRlciBfZm9yIHRoZSBkZXN0aW5hdGlvbiBtZXNzYWdlc18uCisvLyBUaGUgc2Vy
dmVyIHdpbGwgcmVjZWl2ZSBtZXNzYWdlcyBpbiBvcmRlciBfZm9yIHRoZSBkZXN0aW5hdGlvbiBt
ZXNzYWdlc18uCiAvLyBUaGUgd2hvbGUgSVBDOjpDb25uZWN0aW9uIG1lc3NhZ2Ugb3JkZXIgaXMg
bm90IHByZXNlcnZlZC4KIC8vCiAvLyBUaGUgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbiB0cnVzdHMg
dGhlIFN0cmVhbVNlcnZlckNvbm5lY3Rpb24uCkBAIC03MSwxMiArNzEsMTIgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNlbmRQcm9jZXNzT3V0T2ZTdHJlYW1NZXNzYWdlKFNwYW4mJik7CiAKICAgICBP
cHRpb25hbDxTcGFuPiB0cnlBY3F1aXJlKFRpbWVvdXQpOwotICAgIGVudW0gY2xhc3MgV2FrZVVw
UmVjZWl2ZXIgOiBib29sIHsKKyAgICBlbnVtIGNsYXNzIFdha2VVcFNlcnZlciA6IGJvb2wgewog
ICAgICAgICBObywKICAgICAgICAgWWVzCiAgICAgfTsKLSAgICBXYWtlVXBSZWNlaXZlciByZWxl
YXNlKHNpemVfdCB3cml0ZVNpemUpOwotICAgIHZvaWQgd2FrZVVwUmVjZWl2ZXIoKTsKKyAgICBX
YWtlVXBTZXJ2ZXIgcmVsZWFzZShzaXplX3Qgd3JpdGVTaXplKTsKKyAgICB2b2lkIHdha2VVcFNl
cnZlcigpOwogCiAgICAgU3BhbiBhbGlnbmVkU3BhbihzaXplX3Qgb2Zmc2V0LCBzaXplX3QgbGlt
aXQpOwogICAgIHNpemVfdCBzaXplKHNpemVfdCBvZmZzZXQsIHNpemVfdCBsaW1pdCk7CkBAIC04
NCwxNSArODQsMTUgQEAgcHJpdmF0ZToKIAogICAgIHNpemVfdCB3cmFwT2Zmc2V0KHNpemVfdCBv
ZmZzZXQpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLndyYXBPZmZzZXQob2Zmc2V0KTsgfQogICAg
IHNpemVfdCBhbGlnbk9mZnNldChzaXplX3Qgb2Zmc2V0KSBjb25zdCB7IHJldHVybiBtX2J1ZmZl
ci5hbGlnbk9mZnNldDxtZXNzYWdlQWxpZ25tZW50PihvZmZzZXQsIG1pbmltdW1NZXNzYWdlU2l6
ZSk7IH0KLSAgICBBdG9taWM8c2l6ZV90PiYgc2hhcmVkU2VuZGVyT2Zmc2V0KCkgeyByZXR1cm4g
bV9idWZmZXIuc2VuZGVyT2Zmc2V0KCk7IH0KLSAgICBBdG9taWM8c2l6ZV90PiYgc2hhcmVkUmVj
ZWl2ZXJPZmZzZXQoKSB7IHJldHVybiBtX2J1ZmZlci5yZWNlaXZlck9mZnNldCgpOyB9CisgICAg
QXRvbWljPHNpemVfdD4mIHNoYXJlZENsaWVudE9mZnNldCgpIHsgcmV0dXJuIG1fYnVmZmVyLmNs
aWVudE9mZnNldCgpOyB9CisgICAgQXRvbWljPHNpemVfdD4mIHNoYXJlZFNlcnZlck9mZnNldCgp
IHsgcmV0dXJuIG1fYnVmZmVyLnNlcnZlck9mZnNldCgpOyB9CiAgICAgdWludDhfdCogZGF0YSgp
IGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLmRhdGEoKTsgfQogICAgIHNpemVfdCBkYXRhU2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLmRhdGFTaXplKCk7IH0KIAogICAgIENvbm5lY3Rpb24m
IG1fY29ubmVjdGlvbjsKICAgICB1aW50NjRfdCBtX2N1cnJlbnREZXN0aW5hdGlvbklEIHsgMCB9
OwogCi0gICAgc2l6ZV90IG1fc2VuZGVyT2Zmc2V0IHsgMCB9OworICAgIHNpemVfdCBtX2NsaWVu
dE9mZnNldCB7IDAgfTsKICAgICBTdHJlYW1Db25uZWN0aW9uQnVmZmVyIG1fYnVmZmVyOwogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIE9wdGlvbmFsPFNlbWFwaG9yZT4gbV93YWtlVXBTZW1hcGhv
cmU7CkBAIC0xMTIsOCArMTEyLDggQEAgYm9vbCBTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpzZW5k
KFQmJiBtZXNzYWdlLCBPYmplY3RJZGVudGlmaWVyPFU+IGRlc3RpbmF0aW9uSUQKICAgICAgICAg
U3RyZWFtQ29ubmVjdGlvbkVuY29kZXIgbWVzc2FnZUVuY29kZXIgeyBUOjpuYW1lKCksIHNwYW4t
PmRhdGEsIHNwYW4tPnNpemUgfTsKICAgICAgICAgaWYgKG1lc3NhZ2VFbmNvZGVyIDw8IG1lc3Nh
Z2UuYXJndW1lbnRzKCkpIHsKICAgICAgICAgICAgIGF1dG8gd2FrZXVwUmVzdWx0ID0gcmVsZWFz
ZShtZXNzYWdlRW5jb2Rlci5zaXplKCkpOwotICAgICAgICAgICAgaWYgKHdha2V1cFJlc3VsdCA9
PSBTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpXYWtlVXBSZWNlaXZlcjo6WWVzKQotICAgICAgICAg
ICAgICAgIHdha2VVcFJlY2VpdmVyKCk7CisgICAgICAgICAgICBpZiAod2FrZXVwUmVzdWx0ID09
IFN0cmVhbUNsaWVudENvbm5lY3Rpb246Oldha2VVcFNlcnZlcjo6WWVzKQorICAgICAgICAgICAg
ICAgIHdha2VVcFNlcnZlcigpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
ICAgICB9CkBAIC0xNTMsOCArMTUzLDggQEAgaW5saW5lIGJvb2wgU3RyZWFtQ2xpZW50Q29ubmVj
dGlvbjo6dHJ5U2VuZERlc3RpbmF0aW9uSURJZk5lZWRlZCh1aW50NjRfdCBkZXN0aW4KICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBhdXRvIHdha2V1cFJlc3VsdCA9IHJlbGVhc2Uo
ZW5jb2Rlci5zaXplKCkpOwotICAgIGlmICh3YWtldXBSZXN1bHQgPT0gU3RyZWFtQ2xpZW50Q29u
bmVjdGlvbjo6V2FrZVVwUmVjZWl2ZXI6OlllcykKLSAgICAgICAgd2FrZVVwUmVjZWl2ZXIoKTsK
KyAgICBpZiAod2FrZXVwUmVzdWx0ID09IFN0cmVhbUNsaWVudENvbm5lY3Rpb246Oldha2VVcFNl
cnZlcjo6WWVzKQorICAgICAgICB3YWtlVXBTZXJ2ZXIoKTsKICAgICBtX2N1cnJlbnREZXN0aW5h
dGlvbklEID0gZGVzdGluYXRpb25JRDsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE2OSwxOCAr
MTY5LDE4IEBAIGlubGluZSB2b2lkIFN0cmVhbUNsaWVudENvbm5lY3Rpb246OnNlbmRQcm9jZXNz
T3V0T2ZTdHJlYW1NZXNzYWdlKFNwYW4mJiBzcGFuKQogaW5saW5lIE9wdGlvbmFsPFN0cmVhbUNs
aWVudENvbm5lY3Rpb246OlNwYW4+IFN0cmVhbUNsaWVudENvbm5lY3Rpb246OnRyeUFjcXVpcmUo
VGltZW91dCB0aW1lb3V0KQogewogICAgIGZvciAoOzspIHsKLSAgICAgICAgc2l6ZV90IHNlbmRl
ckxpbWl0ID0gY2xhbXBlZExpbWl0KHNoYXJlZFJlY2VpdmVyT2Zmc2V0KCkubG9hZChzdGQ6Om1l
bW9yeV9vcmRlcl9hY3F1aXJlKSk7Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gYWxpZ25lZFNwYW4o
bV9zZW5kZXJPZmZzZXQsIHNlbmRlckxpbWl0KTsKKyAgICAgICAgc2l6ZV90IGNsaWVudExpbWl0
ID0gY2xhbXBlZExpbWl0KHNoYXJlZFNlcnZlck9mZnNldCgpLmxvYWQoc3RkOjptZW1vcnlfb3Jk
ZXJfYWNxdWlyZSkpOworICAgICAgICBhdXRvIHJlc3VsdCA9IGFsaWduZWRTcGFuKG1fY2xpZW50
T2Zmc2V0LCBjbGllbnRMaW1pdCk7CiAgICAgICAgIGlmIChyZXN1bHQuc2l6ZSA8IG1pbmltdW1N
ZXNzYWdlU2l6ZSkgewogICAgICAgICAgICAgaWYgKHRpbWVvdXQuZGlkVGltZU91dCgpKQogICAg
ICAgICAgICAgICAgIGJyZWFrOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgICAgICAgICAgc2l6
ZV90IG9sZFNlbmRlckxpbWl0ID0gc2hhcmVkUmVjZWl2ZXJPZmZzZXQoKS5jb21wYXJlRXhjaGFu
Z2VTdHJvbmcoc2VuZGVyTGltaXQsIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OnJlY2VpdmVyT2Zm
c2V0U2VuZGVySXNXYWl0aW5nVGFnLCBzdGQ6Om1lbW9yeV9vcmRlcl9hY3FfcmVsLCBzdGQ6Om1l
bW9yeV9vcmRlcl9hY3FfcmVsKTsKLSAgICAgICAgICAgIGlmIChzZW5kZXJMaW1pdCA9PSBvbGRT
ZW5kZXJMaW1pdCkKLSAgICAgICAgICAgICAgICBtX2J1ZmZlci5zZW5kZXJXYWl0U2VtYXBob3Jl
KCkud2FpdEZvcih0aW1lb3V0KTsKKyAgICAgICAgICAgIHNpemVfdCBvbGRDbGllbnRMaW1pdCA9
IHNoYXJlZFNlcnZlck9mZnNldCgpLmNvbXBhcmVFeGNoYW5nZVN0cm9uZyhjbGllbnRMaW1pdCwg
U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6c2VydmVyT2Zmc2V0Q2xpZW50SXNXYWl0aW5nVGFnLCBz
dGQ6Om1lbW9yeV9vcmRlcl9hY3FfcmVsLCBzdGQ6Om1lbW9yeV9vcmRlcl9hY3FfcmVsKTsKKyAg
ICAgICAgICAgIGlmIChjbGllbnRMaW1pdCA9PSBvbGRDbGllbnRMaW1pdCkKKyAgICAgICAgICAg
ICAgICBtX2J1ZmZlci5jbGllbnRXYWl0U2VtYXBob3JlKCkud2FpdEZvcih0aW1lb3V0KTsKICAg
ICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIHNlbmRlckxpbWl0ID0gY2xhbXBlZExp
bWl0KG9sZFNlbmRlckxpbWl0KTsKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBhbGlnbmVkU3Bh
bihtX3NlbmRlck9mZnNldCwgc2VuZGVyTGltaXQpOworICAgICAgICAgICAgICAgIGNsaWVudExp
bWl0ID0gY2xhbXBlZExpbWl0KG9sZENsaWVudExpbWl0KTsKKyAgICAgICAgICAgICAgICByZXN1
bHQgPSBhbGlnbmVkU3BhbihtX2NsaWVudE9mZnNldCwgY2xpZW50TGltaXQpOwogICAgICAgICAg
ICAgfQogI2Vsc2UKICAgICAgICAgICAgIFRocmVhZDo6eWllbGQoKTsKQEAgLTE5MSwyMyArMTkx
LDIzIEBAIGlubGluZSBPcHRpb25hbDxTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpTcGFuPiBTdHJl
YW1DbGllbnRDb25uZWN0aW9uOjp0cnlBY3F1aXJlCiAgICAgICAgIC8vIFRoZSBhbGlnbmVkU3Bh
biB1c2VzIHRoZSBtaW5pbXVtTWVzc2FnZVNpemUgdG8gY2FsY3VsYXRlIHRoZSBuZXh0IGJlZ2lu
bmluZyBwb3NpdGlvbiBpbiB0aGUgYnVmZmVyLAogICAgICAgICAvLyBhbmQgbm90IHRoZSBzaXpl
LiBUaGUgc2l6ZSBtaWdodCBiZSBtb3JlIG9yIGxlc3Mgd2hhdCBpcyBuZWVkZWQsIGRlcGVuZGlu
ZyBvbiB3aGVyZSB0aGUgcmVhZGVyIGlzLgogICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBjYXBh
Y2l0eSBmb3IgbWluaW11bSBtZXNzYWdlIHNpemUsIHdhaXQgdW50aWwgbW9yZSBpcyBhdmFpbGFi
bGUuCi0gICAgICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIHNlbmRlck9mZnNldCA8IHJlY2VpdmVy
T2Zmc2V0IHdlIGNhbiBhcnJpdmUgdG8gYSBzaXR1YXRpb24gd2hlcmUKKyAgICAgICAgLy8gSW4g
dGhlIGNhc2Ugd2hlcmUgY2xpZW50T2Zmc2V0IDwgc2VydmVyT2Zmc2V0IHdlIGNhbiBhcnJpdmUg
dG8gYSBzaXR1YXRpb24gd2hlcmUKICAgICAgICAgLy8gMCA8IHJlc3VsdC5zaXplIDwgbWluaW11
bU1lc3NhZ2VTaXplLgogICAgIH0KICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCi1pbmxp
bmUgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6V2FrZVVwUmVjZWl2ZXIgU3RyZWFtQ2xpZW50Q29u
bmVjdGlvbjo6cmVsZWFzZShzaXplX3Qgc2l6ZSkKK2lubGluZSBTdHJlYW1DbGllbnRDb25uZWN0
aW9uOjpXYWtlVXBTZXJ2ZXIgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6cmVsZWFzZShzaXplX3Qg
c2l6ZSkKIHsKICAgICBzaXplID0gc3RkOjptYXgoc2l6ZSwgbWluaW11bU1lc3NhZ2VTaXplKTsK
LSAgICBtX3NlbmRlck9mZnNldCA9IHdyYXBPZmZzZXQoYWxpZ25PZmZzZXQobV9zZW5kZXJPZmZz
ZXQpICsgc2l6ZSk7Ci0gICAgQVNTRVJUKG1fc2VuZGVyT2Zmc2V0IDwgZGF0YVNpemUoKSk7Ci0g
ICAgLy8gSWYgdGhlIHJlY2VpdmVyIHdyb3RlIG92ZXIgdGhlIHNlbmRlck9mZnNldCB3aXRoIHNl
bmRlck9mZnNldFJlY2VpdmVySXNTbGVlcGluZ1RhZywgd2Uga25vdyBpdCBpcyBzbGVlcGluZy4K
LSAgICBzaXplX3QgcmVjZWl2ZXJMaW1pdCA9IHNoYXJlZFNlbmRlck9mZnNldCgpLmV4Y2hhbmdl
KG1fc2VuZGVyT2Zmc2V0LCBzdGQ6Om1lbW9yeV9vcmRlcl9hY3FfcmVsKTsKLSAgICBpZiAocmVj
ZWl2ZXJMaW1pdCA9PSBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpzZW5kZXJPZmZzZXRSZWNlaXZl
cklzU2xlZXBpbmdUYWcpCi0gICAgICAgIHJldHVybiBXYWtlVXBSZWNlaXZlcjo6WWVzOwotICAg
IEFTU0VSVCghKHJlY2VpdmVyTGltaXQgJiBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpzZW5kZXJP
ZmZzZXRSZWNlaXZlcklzU2xlZXBpbmdUYWcpKTsKLSAgICByZXR1cm4gV2FrZVVwUmVjZWl2ZXI6
Ok5vOworICAgIG1fY2xpZW50T2Zmc2V0ID0gd3JhcE9mZnNldChhbGlnbk9mZnNldChtX2NsaWVu
dE9mZnNldCkgKyBzaXplKTsKKyAgICBBU1NFUlQobV9jbGllbnRPZmZzZXQgPCBkYXRhU2l6ZSgp
KTsKKyAgICAvLyBJZiB0aGUgc2VydmVyIHdyb3RlIG92ZXIgdGhlIGNsaWVudE9mZnNldCB3aXRo
IGNsaWVudE9mZnNldFNlcnZlcklzU2xlZXBpbmdUYWcsIHdlIGtub3cgaXQgaXMgc2xlZXBpbmcu
CisgICAgc2l6ZV90IHNlcnZlckxpbWl0ID0gc2hhcmVkQ2xpZW50T2Zmc2V0KCkuZXhjaGFuZ2Uo
bV9jbGllbnRPZmZzZXQsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9yZWwpOworICAgIGlmIChzZXJ2
ZXJMaW1pdCA9PSBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpjbGllbnRPZmZzZXRTZXJ2ZXJJc1Ns
ZWVwaW5nVGFnKQorICAgICAgICByZXR1cm4gV2FrZVVwU2VydmVyOjpZZXM7CisgICAgQVNTRVJU
KCEoc2VydmVyTGltaXQgJiBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpjbGllbnRPZmZzZXRTZXJ2
ZXJJc1NsZWVwaW5nVGFnKSk7CisgICAgcmV0dXJuIFdha2VVcFNlcnZlcjo6Tm87CiB9CiAKIGlu
bGluZSBTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpTcGFuIFN0cmVhbUNsaWVudENvbm5lY3Rpb246
OmFsaWduZWRTcGFuKHNpemVfdCBvZmZzZXQsIHNpemVfdCBsaW1pdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25CdWZmZXIuY3BwIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAKaW5kZXgg
OWM1ZjdmMzFlNTMzZGQzYmRiZThmNDViNjZiZWM4Y2Y3NTg3MzdhNy4uYzIxYmRjNjhmOGZkNzVh
ZmNlYTg5ZTFkNmIwNjlkNWM3OGY0YWEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAKQEAgLTQ1LDEwICs0NSwxMCBA
QCBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyKHNpemVfdCBt
ZW1vcnlTaXplKQogICAgIEFTU0VSVChtX2RhdGFTaXplIDw9IG1heGltdW1TaXplKCkpOwogfQog
Ci1TdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyKFJlZjxXZWJL
aXQ6OlNoYXJlZE1lbW9yeT4mJiBtZW1vcnksIHNpemVfdCBtZW1vcnlTaXplLCBTZW1hcGhvcmUm
JiBzZW5kZXJXYWl0U2VtYXBob3JlKQorU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6U3RyZWFtQ29u
bmVjdGlvbkJ1ZmZlcihSZWY8V2ViS2l0OjpTaGFyZWRNZW1vcnk+JiYgbWVtb3J5LCBzaXplX3Qg
bWVtb3J5U2l6ZSwgU2VtYXBob3JlJiYgY2xpZW50V2FpdFNlbWFwaG9yZSkKICAgICA6IG1fZGF0
YVNpemUobWVtb3J5U2l6ZSAtIGhlYWRlclNpemUoKSkKICAgICAsIG1fc2hhcmVkTWVtb3J5KFdU
Rk1vdmUobWVtb3J5KSkKLSAgICAsIG1fc2VuZGVyV2FpdFNlbWFwaG9yZShXVEZNb3ZlKHNlbmRl
cldhaXRTZW1hcGhvcmUpKQorICAgICwgbV9jbGllbnRXYWl0U2VtYXBob3JlKFdURk1vdmUoY2xp
ZW50V2FpdFNlbWFwaG9yZSkpCiB7CiAgICAgQVNTRVJUKG1fZGF0YVNpemUgPD0gbWF4aW11bVNp
emUoKSk7CiB9CkBAIC02Miw3ICs2Miw3IEBAIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXImIFN0cmVh
bUNvbm5lY3Rpb25CdWZmZXI6Om9wZXJhdG9yPShTdHJlYW1Db25uZWN0aW9uQnVmZmVyCiAgICAg
aWYgKHRoaXMgIT0gJm90aGVyKSB7CiAgICAgICAgIG1fZGF0YVNpemUgPSBvdGhlci5tX2RhdGFT
aXplOwogICAgICAgICBtX3NoYXJlZE1lbW9yeSA9IFdURk1vdmUob3RoZXIubV9zaGFyZWRNZW1v
cnkpOwotICAgICAgICBtX3NlbmRlcldhaXRTZW1hcGhvcmUgPSBXVEZNb3ZlKG90aGVyLm1fc2Vu
ZGVyV2FpdFNlbWFwaG9yZSk7CisgICAgICAgIG1fY2xpZW50V2FpdFNlbWFwaG9yZSA9IFdURk1v
dmUob3RoZXIubV9jbGllbnRXYWl0U2VtYXBob3JlKTsKICAgICB9CiAgICAgcmV0dXJuICp0aGlz
OwogfQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgICAgICBDUkFTSCgpOwogICAgIFdlYktpdDo6
U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgaXBjSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCBtX3No
YXJlZE1lbW9yeS0+c2l6ZSgpIH07CiAgICAgZW5jb2RlciA8PCBpcGNIYW5kbGU7Ci0gICAgZW5j
b2RlciA8PCBtX3NlbmRlcldhaXRTZW1hcGhvcmU7CisgICAgZW5jb2RlciA8PCBtX2NsaWVudFdh
aXRTZW1hcGhvcmU7CiB9CiAKIE9wdGlvbmFsPFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI+IFN0cmVh
bUNvbm5lY3Rpb25CdWZmZXI6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oCmluZGV4IDM5
NDYwMGNiYjAxOTgxNmIxYTY5ZDc1NjBlOTYwZjNhODM2YTcyN2QuLmZjOGRjN2QxMDU4ZTA1MTM1
MzYxM2U2NzcyZWQwMjM0MDE3NmZmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25CdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9TdHJlYW1Db25uZWN0aW9uQnVmZmVyLmgKQEAgLTMzLDM2ICszMywzMCBAQAogCiBu
YW1lc3BhY2UgSVBDIHsKIAotLy8gU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciBpcyBhIHNoYXJlZCAi
YmktcGFydGl0ZSIgY2lyY3VsYXIgYnVmZmVyIHN1cHBvcnRpbmcKLS8vIHZhcmlhYmxlIGxlbmd0
aCBtZXNzYWdlcywgc3BlY2lmaWMgZGF0YSBhbGlnbm1lbnQgd2l0aCBtYW5kYXRlZCBtaW5pbXVt
IHNpemUuCi0vLyBTdHJlYW1DbGllbnRDb25uZWN0aW9uIGFuZCBTdHJlYW1TZXJ2ZXJDb25uZWN0
aW9uIHVzZSBTdHJlYW1Db25uZWN0aW9uQnVmZmVyIHRvIGNvbW11bmljYXRlLgorLy8gU3RyZWFt
Q29ubmVjdGlvbkJ1ZmZlciBpcyBhIHNoYXJlZCAiYmktcGFydGl0ZSIgY2lyY3VsYXIgYnVmZmVy
IHN1cHBvcnRpbmcgdmFyaWFibGUgbGVuZ3RoIG1lc3NhZ2VzLCBzcGVjaWZpYyBkYXRhCisvLyBh
bGlnbm1lbnQgd2l0aCBtYW5kYXRlZCBtaW5pbXVtIHNpemUuIFN0cmVhbUNsaWVudENvbm5lY3Rp
b24gYW5kIFN0cmVhbVNlcnZlckNvbm5lY3Rpb24gdXNlIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIg
dG8KKy8vIGNvbW11bmljYXRlLgogLy8KLS8vIFRoZSAiYmktcGFydGl0ZSIgaXMgaGVyZSB0byBt
ZWFuIHRoYXQgd3JpdGVzIGFuZCByZWFkcyB0byB0aGUgYnVmZmVyIG11c3QgYmUKLS8vIGNvbnRp
bnVvdXMuCisvLyBUaGUgImJpLXBhcnRpdGUiIGlzIGhlcmUgdG8gbWVhbiB0aGF0IHdyaXRlcyBh
bmQgcmVhZHMgdG8gdGhlIGJ1ZmZlciBtdXN0IGJlIGNvbnRpbnVvdXMuCiAvLwotLy8gVGhlIGNs
aWVudCAoc2VuZGVyIG9yIHJlY2VpdmVyKSAiYWNxdWlyZXMiIHNvbWUgYW1vdW50IG9mIGJ1ZmZl
ciBkYXRhLiBUaGUgZGF0YSBwb2ludGVyCi0vLyBsb2NhdGlvbiBkZXBlbmRzIG9uIHRoZSBhbW91
bnQgb2YgZGF0YSBiZWluZyBhY3F1aXJlZC4gVGhlIGJ1ZmZlciByZXR1cm5zIGFsbCB0aGUgYXZh
aWxhYmxlCi0vLyBjYXBhY2l0eSAtLSB0aGlzIG1heSBiZSBsZXNzIHRoYW4gYWNxdWlyZWQuCisv
LyBUaGUgY2FsbGVyIChjbGllbnQgb3Igc2VydmVyKSAiYWNxdWlyZXMiIHNvbWUgYW1vdW50IG9m
IGJ1ZmZlciBkYXRhLiBUaGUgZGF0YSBwb2ludGVyIGxvY2F0aW9uIGRlcGVuZHMgb24gdGhlIGFt
b3VudAorLy8gb2YgZGF0YSBiZWluZyBhY3F1aXJlZC4gVGhlIGJ1ZmZlciByZXR1cm5zIGFsbCB0
aGUgYXZhaWxhYmxlIGNhcGFjaXR5IC0tIHRoaXMgbWF5IGJlIGxlc3MgdGhhbiBhY3F1aXJlZC4K
IC8vCi0vLyBUaGUgY2xpZW50ICJyZWxlYXNlcyIgdGhlIHNvbWUgYW1vdW50IG9mIGRhdGEsIGF0
IGxlYXN0IHRoZSBhbW91bnQgYWNxdWlyZWQgYnV0IHBvdGVudGlhbGx5Ci0vLyBtb3JlLgorLy8g
VGhlIGNhbGxlciAicmVsZWFzZXMiIHRoZSBzb21lIGFtb3VudCBvZiBkYXRhLCBhdCBsZWFzdCB0
aGUgYW1vdW50IGFjcXVpcmVkIGJ1dCBwb3RlbnRpYWxseSBtb3JlLgogLy8KLS8vIEJvdGggc2Vu
ZGVyIGFuZCByZWNlaXZlciBtdXN0IHJlbGVhc2UgdGhlIHNhbWUgYW1vdW50IG9mIGRhdGEgYXQg
dGhlIHNhbWUgc3RlcCBvZiB0aGUgYWNxdWlyZS9yZWxlYXNlIHNlcXVlbmNlLgotLy8gU3VwcG9z
ZSBzZW5kZXIgcmVsZWFzZXMgZmlyc3QgOCBhbmQgdGhlbiAxNjYgYnl0ZXMuIFVwb24gdGhlIGZp
cnN0IGFjcXVpcmUsIHJlY2VpdmVyCi0vLyBtdXN0IGFsc28gcmVsZWFzZSA4IGJ5dGVzIGFuZCB0
aGVuIHVwb24gdGhlIHNlY29uZCBhY3F1aXJlIDE2NiBieXRlcy4KLS8vIER1ZSB0byBob3cgYWxp
Z25tZW50IGFuZCBtaW5pbXVtIGxlbmd0aCBhZmZlY3QgdGhlIHBvc2l0aW9uIGF0IHdoaWNoIHRo
ZSBtZW1vcnkgY2FuCi0vLyBiZSByZWZlcnJlZCB0bywgdGhlIHJlY2VpdmVyIGNhbm5vdCAicmVh
ZCB0d28gdGltZXMgc2ltdWx0YW5lb3VzbHkiIGFuZCByZWxlYXNlIDE3NCBieXRlcy4KKy8vIEJv
dGggdGhlIGNsaWVudCBhbmQgdGhlIHNlcnZlciBtdXN0IHJlbGVhc2UgdGhlIHNhbWUgYW1vdW50
IG9mIGRhdGEgYXQgdGhlIHNhbWUgc3RlcCBvZiB0aGUgYWNxdWlyZS9yZWxlYXNlIHNlcXVlbmNl
LgorLy8gU3VwcG9zZSB0aGUgY2xpZW50IHJlbGVhc2VzIGZpcnN0IDggYW5kIHRoZW4gMTY2IGJ5
dGVzLiBVcG9uIHRoZSBmaXJzdCBhY3F1aXJlLCB0aGUgc2VydmVyIG11c3QgYWxzbyByZWxlYXNl
IDggYnl0ZXMKKy8vIGFuZCB0aGVuIHVwb24gdGhlIHNlY29uZCBhY3F1aXJlIDE2NiBieXRlcy4g
RHVlIHRvIGhvdyBhbGlnbm1lbnQgYW5kIG1pbmltdW0gbGVuZ3RoIGFmZmVjdCB0aGUgcG9zaXRp
b24gYXQgd2hpY2ggdGhlCisvLyBtZW1vcnkgY2FuIGJlIHJlZmVycmVkIHRvLCB0aGUgc2VydmVy
IGNhbm5vdCAicmVhZCB0d28gdGltZXMgc2ltdWx0YW5lb3VzbHkiIGFuZCByZWxlYXNlIDE3NCBi
eXRlcy4KIC8vCiAvLyBUaGUgY2lyY3VsYXIgYnVmZmVyIGhhcyBmb2xsb3dpbmcgaW1wbGVtZW50
YXRpb246Ci0vLyAqIFNlbmRlciBvd25zIHRoZSBkYXRhIGJldHdlZW4gW3NlbmRlck9mZnNldCwg
cmVjZWl2ZXJPZmZzZXRbLiBXaGVuIHNlbmRlck9mZnNldCA9PQotLy8gcmVjZWl2ZXJPZmZzZXQs
IHNlbmRlciBvd25zIGFsbCB0aGUgZGF0YS4KLS8vICogUmVjZWl2ZXIgb3ducyB0aGUgZGF0YSBi
ZXR3ZWVuIFtyZWNlaXZlck9mZnNldCwgc2VuZGVyT2Zmc2V0Wy4KLS8vICogVGhlIGJ1ZmZlciBj
YW4gaG9sZCBtYXhpbXVtIG9mIHNpemUgLSAxIHZhbHVlcy4gVGhlIGxhc3QgdmFsdWUgaXMgcmVz
ZXJ2ZWQgZm9yCi0vLyBpbmRpY2F0aW5nIHRoYXQgdGhlIGJ1ZmZlciBpcyBmdWxsLiBGSVhNRTog
TWF5YmUgd291bGQgYmUgc2ltcGxlciBpbXBsZW1lbnRhdGlvbiBpZgotLy8gaXQgd291bGQgdXNl
IHRoZSAid3JhcCIgZmxhZyBpbnN0ZWFkIG9mIHRoZSBob2xlIGFzIHRoZSBpbmRpY2F0b3IuIFRo
aXMgd291bGQgbW92ZQotLy8gdGhlIGFsaWduZWRTcGFuIGltcGxlbWVudGF0aW9uIHRvIHRoZSBT
dHJlYW1Db25uZWN0aW9uQnVmZmVyLgotLy8gKiBBbGwgYXRvbWljIHZhcmlhYmxlIGxvYWRzIGFy
ZSB1bnRydXN0ZWQsIHNvIHRoZXkncmUgY2xhbXBlZC4gVmlvbGF0aW9ucyBhcmUgbm90IHJlcG9y
dGVkLAotLy8gdGhvdWdoLgorLy8gKiBUaGUgY2xpZW50IG93bnMgdGhlIGRhdGEgYmV0d2VlbiBb
Y2xpZW50T2Zmc2V0LCBzZXJ2ZXJPZmZzZXRbLiBXaGVuIGNsaWVudE9mZnNldCA9PSBzZXJ2ZXJP
ZmZzZXQsIHRoZSBjbGllbnQgb3ducworLy8gICBhbGwgdGhlIGRhdGEuCisvLyAqIFRoZSBzZXJ2
ZXIgb3ducyB0aGUgZGF0YSBiZXR3ZWVuIFtzZXJ2ZXJPZmZzZXQsIGNsaWVudE9mZnNldFsuCisv
LyAqIFRoZSBidWZmZXIgY2FuIGhvbGQgbWF4aW11bSBvZiBzaXplIC0gMSB2YWx1ZXMuIFRoZSBs
YXN0IHZhbHVlIGlzIHJlc2VydmVkIGZvciBpbmRpY2F0aW5nIHRoYXQgdGhlIGJ1ZmZlciBpcyBm
dWxsLgorLy8gICBGSVhNRTogTWF5YmUgd291bGQgYmUgc2ltcGxlciBpbXBsZW1lbnRhdGlvbiBp
ZiBpdCB3b3VsZCB1c2UgdGhlICJ3cmFwIiBmbGFnIGluc3RlYWQgb2YgdGhlIGhvbGUgYXMgdGhl
IGluZGljYXRvci4KKy8vICAgVGhpcyB3b3VsZCBtb3ZlIHRoZSBhbGlnbmVkU3BhbiBpbXBsZW1l
bnRhdGlvbiB0byB0aGUgU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci4KKy8vICogQWxsIGF0b21pYyB2
YXJpYWJsZSBsb2FkcyBhcmUgdW50cnVzdGVkLCBzbyB0aGV5J3JlIGNsYW1wZWQuIFZpb2xhdGlv
bnMgYXJlIG5vdCByZXBvcnRlZCwgdGhvdWdoLgogLy8gU2VlIFNoYXJlZERpc3BsYXlMaXN0SGFu
ZGxlLgogY2xhc3MgU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciB7CiBwdWJsaWM6CkBAIC04OCwzNyAr
ODIsMzcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gb2Zmc2V0OwogICAgIH0KIAotICAgIEF0
b21pYzxzaXplX3Q+JiBzZW5kZXJPZmZzZXQoKSB7IHJldHVybiBoZWFkZXIoKS5zZW5kZXJPZmZz
ZXQ7IH0KLSAgICBBdG9taWM8c2l6ZV90PiYgcmVjZWl2ZXJPZmZzZXQoKSB7IHJldHVybiBoZWFk
ZXIoKS5yZWNlaXZlck9mZnNldDsgfQorICAgIEF0b21pYzxzaXplX3Q+JiBjbGllbnRPZmZzZXQo
KSB7IHJldHVybiBoZWFkZXIoKS5jbGllbnRPZmZzZXQ7IH0KKyAgICBBdG9taWM8c2l6ZV90PiYg
c2VydmVyT2Zmc2V0KCkgeyByZXR1cm4gaGVhZGVyKCkuc2VydmVyT2Zmc2V0OyB9CiAgICAgdWlu
dDhfdCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihtX3NoYXJl
ZE1lbW9yeS0+ZGF0YSgpKSArIGhlYWRlclNpemUoKTsgfQogICAgIHNpemVfdCBkYXRhU2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YVNpemU7IH0KLSAgICBTZW1hcGhvcmUmIHNlbmRlcldhaXRT
ZW1hcGhvcmUoKSB7IHJldHVybiBtX3NlbmRlcldhaXRTZW1hcGhvcmU7IH0KKyAgICBTZW1hcGhv
cmUmIGNsaWVudFdhaXRTZW1hcGhvcmUoKSB7IHJldHVybiBtX2NsaWVudFdhaXRTZW1hcGhvcmU7
IH0KIAotICAgIC8vIFRhZyB2YWx1ZSBzdG9yZWQgaW4gSGVhZGVyOjpzZW5kZXJPZmZzZXQgd2hl
biByZWNlaXZlciBpcyBzbGVlcGluZywgZS5nLiBub3QgcnVubmluZy4KLSAgICBzdGF0aWMgY29u
c3RleHByIHNpemVfdCBzZW5kZXJPZmZzZXRSZWNlaXZlcklzU2xlZXBpbmdUYWcgPSAxIDw8IDMx
OwotICAgIC8vIFRhZyB2YWx1ZSBzdG9yZWQgaW4gSGVhZGVyOjpyZWNlaXZlck9mZnNldCB3aGVu
IHNlbmRlciBpcyB3YWl0aW5nLCBlLmcuIHdhaXRpbmcgb24KKyAgICAvLyBUYWcgdmFsdWUgc3Rv
cmVkIGluIEhlYWRlcjo6Y2xpZW50T2Zmc2V0IHdoZW4gdGhlIHNlcnZlciBpcyBzbGVlcGluZywg
ZS5nLiBub3QgcnVubmluZy4KKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBjbGllbnRPZmZz
ZXRTZXJ2ZXJJc1NsZWVwaW5nVGFnID0gMSA8PCAzMTsKKyAgICAvLyBUYWcgdmFsdWUgc3RvcmVk
IGluIEhlYWRlcjo6c2VydmVyT2Zmc2V0IHdoZW4gdGhlIGNsaWVudCBpcyB3YWl0aW5nLCBlLmcu
IHdhaXRpbmcgb24KICAgICAvLyBhIHNlbWFwaG9yZS4KLSAgICBzdGF0aWMgY29uc3RleHByIHNp
emVfdCByZWNlaXZlck9mZnNldFNlbmRlcklzV2FpdGluZ1RhZyA9IDEgPDwgMzE7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBzaXplX3Qgc2VydmVyT2Zmc2V0Q2xpZW50SXNXYWl0aW5nVGFnID0gMSA8
PCAzMTsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1heGltdW1TaXplKCkgeyByZXR1
cm4gc3RkOjptaW4oc2VuZGVyT2Zmc2V0UmVjZWl2ZXJJc1NsZWVwaW5nVGFnLCBzZW5kZXJPZmZz
ZXRSZWNlaXZlcklzU2xlZXBpbmdUYWcpIC0gMTsgfQorICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6
ZV90IG1heGltdW1TaXplKCkgeyByZXR1cm4gc3RkOjptaW4oY2xpZW50T2Zmc2V0U2VydmVySXNT
bGVlcGluZ1RhZywgY2xpZW50T2Zmc2V0U2VydmVySXNTbGVlcGluZ1RhZykgLSAxOyB9CiAgICAg
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBPcHRpb25hbDxTdHJlYW1D
b25uZWN0aW9uQnVmZmVyPiBkZWNvZGUoRGVjb2RlciYpOwogCiBwcml2YXRlOgotICAgIFN0cmVh
bUNvbm5lY3Rpb25CdWZmZXIoUmVmPFdlYktpdDo6U2hhcmVkTWVtb3J5PiYmLCBzaXplX3QgbWVt
b3J5U2l6ZSwgU2VtYXBob3JlJiYgc2VuZGVyV2FpdFNlbWFwaG9yZSk7CisgICAgU3RyZWFtQ29u
bmVjdGlvbkJ1ZmZlcihSZWY8V2ViS2l0OjpTaGFyZWRNZW1vcnk+JiYsIHNpemVfdCBtZW1vcnlT
aXplLCBTZW1hcGhvcmUmJiBjbGllbnRXYWl0U2VtYXBob3JlKTsKIAogICAgIHN0cnVjdCBIZWFk
ZXIgewotICAgICAgICBBdG9taWM8c2l6ZV90PiByZWNlaXZlck9mZnNldDsKKyAgICAgICAgQXRv
bWljPHNpemVfdD4gc2VydmVyT2Zmc2V0OwogICAgICAgICAvLyBQYWRkaW5nIHNvIHRoYXQgdGhl
IHZhcmlhYmxlcyBtb3N0bHkgYWNjZXNzZWQgYnkgZGlmZmVyZW50IHByb2Nlc3NlcyBkbyBub3Qg
c2hhcmUgYSBjYWNoZSBsaW5lLgogICAgICAgICAvLyBUaGlzIGlzIGFuIGF0dGVtcHQgdG8gYXZv
aWQgY2FjaGUtbGluZSBpbmR1Y2VkIHJlZHVjdGlvbiBvZiBwYXJhbGxlbCBhY2Nlc3MuCi0gICAg
ICAgIGFsaWduYXMoc2l6ZW9mKHVpbnQ2NF90WzJdKSkgQXRvbWljPHNpemVfdD4gc2VuZGVyT2Zm
c2V0OworICAgICAgICBhbGlnbmFzKHNpemVvZih1aW50NjRfdFsyXSkpIEF0b21pYzxzaXplX3Q+
IGNsaWVudE9mZnNldDsKICAgICB9OwogICAgIEhlYWRlciYgaGVhZGVyKCkgY29uc3QgeyByZXR1
cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8SGVhZGVyKj4obV9zaGFyZWRNZW1vcnktPmRhdGEoKSk7IH0K
ICAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBoZWFkZXJTaXplKCkgeyByZXR1cm4gcm91bmRV
cFRvTXVsdGlwbGVPZjxhbGlnbm9mKHN0ZDo6bWF4X2FsaWduX3QpPihzaXplb2YoSGVhZGVyKSk7
IH0KIAogICAgIHNpemVfdCBtX2RhdGFTaXplIHsgMCB9OwogICAgIFJlZjxXZWJLaXQ6OlNoYXJl
ZE1lbW9yeT4gbV9zaGFyZWRNZW1vcnk7Ci0gICAgU2VtYXBob3JlIG1fc2VuZGVyV2FpdFNlbWFw
aG9yZTsKKyAgICBTZW1hcGhvcmUgbV9jbGllbnRXYWl0U2VtYXBob3JlOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9u
LmNwcAppbmRleCAxNGQ0ODRiNzhmYmY5ZGY2ZGY4YTlmZGI3ZThjYTg5YWQ1N2U1M2JhLi44MGIw
MzlhN2Y5ODUzOTcyMDY4ZjNlZWU4NDkyNDQzZDdjODAzYTNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtNjEs
MTUgKzYxLDE1IEBAIHZvaWQgU3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2U6OmVucXVldWVNZXNz
YWdlKENvbm5lY3Rpb24mLCBzdGQ6OnVuaXF1ZV9wdHI8RGVjCiAKIE9wdGlvbmFsPFN0cmVhbVNl
cnZlckNvbm5lY3Rpb25CYXNlOjpTcGFuPiBTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZTo6dHJ5
QXF1aXJlKCkKIHsKLSAgICBzaXplX3QgcmVjZWl2ZXJMaW1pdCA9IHNoYXJlZFNlbmRlck9mZnNl
dCgpLmxvYWQoc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZSk7Ci0gICAgaWYgKHJlY2VpdmVyTGlt
aXQgPT0gU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6c2VuZGVyT2Zmc2V0UmVjZWl2ZXJJc1NsZWVw
aW5nVGFnKQorICAgIHNpemVfdCBzZXJ2ZXJMaW1pdCA9IHNoYXJlZENsaWVudE9mZnNldCgpLmxv
YWQoc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZSk7CisgICAgaWYgKHNlcnZlckxpbWl0ID09IFN0
cmVhbUNvbm5lY3Rpb25CdWZmZXI6OmNsaWVudE9mZnNldFNlcnZlcklzU2xlZXBpbmdUYWcpCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgYXV0byByZXN1bHQgPSBhbGlnbmVkU3Bh
bihtX3JlY2VpdmVyT2Zmc2V0LCByZWNlaXZlckxpbWl0KTsKKyAgICBhdXRvIHJlc3VsdCA9IGFs
aWduZWRTcGFuKG1fc2VydmVyT2Zmc2V0LCBzZXJ2ZXJMaW1pdCk7CiAgICAgaWYgKHJlc3VsdC5z
aXplIDwgbWluaW11bU1lc3NhZ2VTaXplKSB7Ci0gICAgICAgIHJlY2VpdmVyTGltaXQgPSBzaGFy
ZWRTZW5kZXJPZmZzZXQoKS5jb21wYXJlRXhjaGFuZ2VTdHJvbmcocmVjZWl2ZXJMaW1pdCwgU3Ry
ZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6c2VuZGVyT2Zmc2V0UmVjZWl2ZXJJc1NsZWVwaW5nVGFnLCBz
dGQ6Om1lbW9yeV9vcmRlcl9hY3FfcmVsLCBzdGQ6Om1lbW9yeV9vcmRlcl9hY3FfcmVsKTsKLSAg
ICAgICAgQVNTRVJUKCEocmVjZWl2ZXJMaW1pdCAmIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OnNl
bmRlck9mZnNldFJlY2VpdmVySXNTbGVlcGluZ1RhZykpOwotICAgICAgICByZWNlaXZlckxpbWl0
ID0gY2xhbXBlZExpbWl0KHJlY2VpdmVyTGltaXQpOwotICAgICAgICByZXN1bHQgPSBhbGlnbmVk
U3BhbihtX3JlY2VpdmVyT2Zmc2V0LCByZWNlaXZlckxpbWl0KTsKKyAgICAgICAgc2VydmVyTGlt
aXQgPSBzaGFyZWRDbGllbnRPZmZzZXQoKS5jb21wYXJlRXhjaGFuZ2VTdHJvbmcoc2VydmVyTGlt
aXQsIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OmNsaWVudE9mZnNldFNlcnZlcklzU2xlZXBpbmdU
YWcsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9yZWwsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9yZWwp
OworICAgICAgICBBU1NFUlQoIShzZXJ2ZXJMaW1pdCAmIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6
OmNsaWVudE9mZnNldFNlcnZlcklzU2xlZXBpbmdUYWcpKTsKKyAgICAgICAgc2VydmVyTGltaXQg
PSBjbGFtcGVkTGltaXQoc2VydmVyTGltaXQpOworICAgICAgICByZXN1bHQgPSBhbGlnbmVkU3Bh
bihtX3NlcnZlck9mZnNldCwgc2VydmVyTGltaXQpOwogICAgIH0KIAogICAgIGlmIChyZXN1bHQu
c2l6ZSA+PSBtaW5pbXVtTWVzc2FnZVNpemUpCkBAIC04MSwyMSArODEsMjEgQEAgdm9pZCBTdHJl
YW1TZXJ2ZXJDb25uZWN0aW9uQmFzZTo6cmVsZWFzZShzaXplX3QgcmVhZFNpemUpCiB7CiAgICAg
QVNTRVJUKHJlYWRTaXplKTsKICAgICByZWFkU2l6ZSA9IHN0ZDo6bWF4KHJlYWRTaXplLCBtaW5p
bXVtTWVzc2FnZVNpemUpOwotICAgIHNpemVfdCByZWNlaXZlck9mZnNldCA9IHdyYXBPZmZzZXQo
YWxpZ25PZmZzZXQobV9yZWNlaXZlck9mZnNldCkgKyByZWFkU2l6ZSk7CisgICAgc2l6ZV90IHNl
cnZlck9mZnNldCA9IHdyYXBPZmZzZXQoYWxpZ25PZmZzZXQobV9zZXJ2ZXJPZmZzZXQpICsgcmVh
ZFNpemUpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgc2l6ZV90IG9sZFJlY2VpdmVyT2Zm
c2V0ID0gc2hhcmVkUmVjZWl2ZXJPZmZzZXQoKS5leGNoYW5nZShyZWNlaXZlck9mZnNldCwgc3Rk
OjptZW1vcnlfb3JkZXJfYWNxX3JlbCk7Ci0gICAgLy8gSWYgdGhlIHNlbmRlciB3cm90ZSBvdmVy
IHJlY2VpdmVyT2Zmc2V0LCBpdCBtZWFucyB0aGUgc2VuZGVyIGlzIHdhaXRpbmcuCi0gICAgaWYg
KG9sZFJlY2VpdmVyT2Zmc2V0ID09IFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OnJlY2VpdmVyT2Zm
c2V0U2VuZGVySXNXYWl0aW5nVGFnKQotICAgICAgICBtX2J1ZmZlci5zZW5kZXJXYWl0U2VtYXBo
b3JlKCkuc2lnbmFsKCk7CisgICAgc2l6ZV90IG9sZFNlcnZlck9mZnNldCA9IHNoYXJlZFNlcnZl
ck9mZnNldCgpLmV4Y2hhbmdlKHNlcnZlck9mZnNldCwgc3RkOjptZW1vcnlfb3JkZXJfYWNxX3Jl
bCk7CisgICAgLy8gSWYgdGhlIGNsaWVudCB3cm90ZSBvdmVyIHNlcnZlck9mZnNldCwgaXQgbWVh
bnMgdGhlIGNsaWVudCBpcyB3YWl0aW5nLgorICAgIGlmIChvbGRTZXJ2ZXJPZmZzZXQgPT0gU3Ry
ZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6c2VydmVyT2Zmc2V0Q2xpZW50SXNXYWl0aW5nVGFnKQorICAg
ICAgICBtX2J1ZmZlci5jbGllbnRXYWl0U2VtYXBob3JlKCkuc2lnbmFsKCk7CiAgICAgZWxzZQot
ICAgICAgICBBU1NFUlQoIShvbGRSZWNlaXZlck9mZnNldCAmIFN0cmVhbUNvbm5lY3Rpb25CdWZm
ZXI6OnJlY2VpdmVyT2Zmc2V0U2VuZGVySXNXYWl0aW5nVGFnKSk7CisgICAgICAgIEFTU0VSVCgh
KG9sZFNlcnZlck9mZnNldCAmIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OnNlcnZlck9mZnNldENs
aWVudElzV2FpdGluZ1RhZykpOwogI2Vsc2UKLSAgICBzaGFyZWRSZWNlaXZlck9mZnNldCgpLnN0
b3JlKHJlY2VpdmVyT2Zmc2V0LCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxlYXNlKTsKKyAgICBzaGFy
ZWRTZXJ2ZXJPZmZzZXQoKS5zdG9yZShzZXJ2ZXJPZmZzZXQsIHN0ZDo6bWVtb3J5X29yZGVyX3Jl
bGVhc2UpOwogICAgIC8vIElQQzo6U2VtYXBob3JlIG5vdCBpbXBsZW1lbnRlZCBmb3IgdGhlIHBs
YXRmb3JtLiBDbGllbnQgd2lsbCBwb2xsIGFuZCB5aWVsZC4KICNlbmRpZgogCi0gICAgbV9yZWNl
aXZlck9mZnNldCA9IHJlY2VpdmVyT2Zmc2V0OworICAgIG1fc2VydmVyT2Zmc2V0ID0gc2VydmVy
T2Zmc2V0OwogfQogCiBTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZTo6U3BhbiBTdHJlYW1TZXJ2
ZXJDb25uZWN0aW9uQmFzZTo6YWxpZ25lZFNwYW4oc2l6ZV90IG9mZnNldCwgc2l6ZV90IGxpbWl0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVj
dGlvbi5oCmluZGV4IDk1ODFjNjkwMWQ1MTI1YTA2NGJhNGUzYTcwNjhlNDJhMTlkZjkxYmYuLmJi
NDBiZTUxNDZiZTZkOWI3M2EzNjMyZWM3ZmQ2YTUwOWViZjFiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTc3LDE1
ICs3NywxNSBAQCBwcm90ZWN0ZWQ6CiAgICAgc2l6ZV90IGNsYW1wZWRMaW1pdChzaXplX3QgdW50
cnVzdGVkTGltaXQpIGNvbnN0OwogICAgIHNpemVfdCB3cmFwT2Zmc2V0KHNpemVfdCBvZmZzZXQp
IGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLndyYXBPZmZzZXQob2Zmc2V0KTsgfQogICAgIHNpemVf
dCBhbGlnbk9mZnNldChzaXplX3Qgb2Zmc2V0KSBjb25zdCB7IHJldHVybiBtX2J1ZmZlci5hbGln
bk9mZnNldDxtZXNzYWdlQWxpZ25tZW50PihvZmZzZXQsIG1pbmltdW1NZXNzYWdlU2l6ZSk7IH0K
LSAgICBBdG9taWM8c2l6ZV90PiYgc2hhcmVkU2VuZGVyT2Zmc2V0KCkgeyByZXR1cm4gbV9idWZm
ZXIuc2VuZGVyT2Zmc2V0KCk7IH0KLSAgICBBdG9taWM8c2l6ZV90PiYgc2hhcmVkUmVjZWl2ZXJP
ZmZzZXQoKSB7IHJldHVybiBtX2J1ZmZlci5yZWNlaXZlck9mZnNldCgpOyB9CisgICAgQXRvbWlj
PHNpemVfdD4mIHNoYXJlZENsaWVudE9mZnNldCgpIHsgcmV0dXJuIG1fYnVmZmVyLmNsaWVudE9m
ZnNldCgpOyB9CisgICAgQXRvbWljPHNpemVfdD4mIHNoYXJlZFNlcnZlck9mZnNldCgpIHsgcmV0
dXJuIG1fYnVmZmVyLnNlcnZlck9mZnNldCgpOyB9CiAgICAgdWludDhfdCogZGF0YSgpIGNvbnN0
IHsgcmV0dXJuIG1fYnVmZmVyLmRhdGEoKTsgfQogICAgIHNpemVfdCBkYXRhU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYnVmZmVyLmRhdGFTaXplKCk7IH0KIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rp
b24+IG1fY29ubmVjdGlvbjsKICAgICBTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlJiBtX3dvcmtR
dWV1ZTsKIAotICAgIHNpemVfdCBtX3JlY2VpdmVyT2Zmc2V0IHsgMCB9OworICAgIHNpemVfdCBt
X3NlcnZlck9mZnNldCB7IDAgfTsKICAgICBTdHJlYW1Db25uZWN0aW9uQnVmZmVyIG1fYnVmZmVy
OwogCiAgICAgTG9jayBtX291dE9mU3RyZWFtTWVzc2FnZXNMb2NrOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421928</attachid>
            <date>2021-03-02 06:18:52 -0800</date>
            <delta_ts>2021-03-04 01:09:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222592-20210302161850.patch</filename>
            <type>text/plain</type>
            <size>25295</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVhNmE2NDRmY2E5ZmIzYmE1
YWIwZTYxNzVjNTQxNTQ4M2NkMzQ1YWUuLjI2MGNjNWEzYTFjMGMzYjhlOTc2ZTQwMzhlZTdiN2Nm
NjdjOTBmMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjEtMDMtMDIgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJUEMgc3RyZWFtIGZlYXR1
cmUgc2hvdWxkIHVzZSBjbGllbnQvc2VydmVyIG5hbWluZyBpbnN0ZWFkIG9mIHNlbmRlci9yZWNl
aXZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIy
NTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXR0
ZW1wdCB0byBzaW1wbGlmeSBhbHJlYWR5IGNvbXBsaWNhdGVkIGltcGxlbWVudGF0aW9uIG9mIHRo
ZSBzdHJlYW0KKyAgICAgICAgaW1wbGVtZW50YXRpb24uIFVzZXMgb2YgInNlbmRlciIgYW5kICJy
ZWNlaXZlciIgd2VyZSBhIGxlZnRvdmVyIGZyb20KKyAgICAgICAgZWFybHkgcGhhc2Ugb2YgdGhl
IGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIFJlbmFtZSBhbGwgcmVtYWluaW5nIGluc3RhbmNl
cyBvZiAic2VuZGVyIiB3aXRoICJjbGllbnQiLgorICAgICAgICBSZW5hbWUgYWxsIHJlbWFpbmlu
ZyBpbnN0YW5jZXMgb2YgInJlY2VpdmVyIiB3aXRoICJzZXJ2ZXIiLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgYSByZWZhY3Rvci4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9TdHJlYW1DbGll
bnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6U3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6
U3RyZWFtQ2xpZW50Q29ubmVjdGlvbik6CisgICAgICAgIChJUEM6OlN0cmVhbUNsaWVudENvbm5l
Y3Rpb246OnNldFdha2VVcFNlbWFwaG9yZSk6CisgICAgICAgIChJUEM6OlN0cmVhbUNsaWVudENv
bm5lY3Rpb246Ondha2VVcFNlcnZlcik6CisgICAgICAgICogUGxhdGZvcm0vSVBDL1N0cmVhbUNs
aWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6U3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6
c2VuZCk6CisgICAgICAgIChJUEM6OlN0cmVhbUNsaWVudENvbm5lY3Rpb246OnRyeVNlbmREZXN0
aW5hdGlvbklESWZOZWVkZWQpOgorICAgICAgICAoSVBDOjpTdHJlYW1DbGllbnRDb25uZWN0aW9u
Ojp0cnlBY3F1aXJlKToKKyAgICAgICAgKElQQzo6U3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6cmVs
ZWFzZSk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25CdWZmZXIuY3Bw
OgorICAgICAgICAoSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpTdHJlYW1Db25uZWN0aW9u
QnVmZmVyKToKKyAgICAgICAgKElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6b3BlcmF0b3I9
KToKKyAgICAgICAgKElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oOgorICAgICAg
ICAoSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpjbGllbnRPZmZzZXQpOgorICAgICAgICAo
SVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpzZXJ2ZXJPZmZzZXQpOgorICAgICAgICAoSVBD
OjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpjbGllbnRXYWl0U2VtYXBob3JlKToKKyAgICAgICAg
KElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6bWF4aW11bVNpemUpOgorICAgICAgICAqIFBs
YXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6U3Ry
ZWFtU2VydmVyQ29ubmVjdGlvbkJhc2U6OnRyeUFxdWlyZSk6CisgICAgICAgIChJUEM6OlN0cmVh
bVNlcnZlckNvbm5lY3Rpb25CYXNlOjpyZWxlYXNlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMv
U3RyZWFtU2VydmVyQ29ubmVjdGlvbi5oOgorICAgICAgICAoSVBDOjpTdHJlYW1TZXJ2ZXJDb25u
ZWN0aW9uQmFzZTo6c2hhcmVkQ2xpZW50T2Zmc2V0KToKKyAgICAgICAgKElQQzo6U3RyZWFtU2Vy
dmVyQ29ubmVjdGlvbkJhc2U6OnNoYXJlZFNlcnZlck9mZnNldCk6CisKIDIwMjEtMDMtMDEgIEZ1
amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW0dUS10g
V2ViIGluc3BlY3RvciByZWxhdGVkIHRlc3RzIHZlcnkgc2xvdyBvciB0aW1lb3V0IGluIGRlYnVn
IG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVu
dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ2xpZW50
Q29ubmVjdGlvbi5jcHAKaW5kZXggYjRmNWNkZjAwOGU1YTdmMmQyZjEwMmEyMzVjM2MyMjUxNzMz
NzZlYS4uN2RhNzE1NTNlOWMxMzA3ODc5YzdlODkxMmMzZjRlODNjMDYxODkyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5j
cHAKQEAgLTMzLDkgKzMzLDkgQEAgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6U3RyZWFtQ2xpZW50
Q29ubmVjdGlvbihDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBzaXplX3Qgc2kKICAgICAsIG1fYnVm
ZmVyKHNpemUpCiB7CiAgICAgLy8gUmVhZCBzdGFydHMgZnJvbSAwIHdpdGggbGltaXQgb2YgMCBh
bmQgcmVhZGVyIHNsZWVwaW5nLgotICAgIHNoYXJlZFNlbmRlck9mZnNldCgpLnN0b3JlKFN0cmVh
bUNvbm5lY3Rpb25CdWZmZXI6OnNlbmRlck9mZnNldFJlY2VpdmVySXNTbGVlcGluZ1RhZywgc3Rk
OjptZW1vcnlfb3JkZXJfcmVsYXhlZCk7CisgICAgc2hhcmVkQ2xpZW50T2Zmc2V0KCkuc3RvcmUo
U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6Y2xpZW50T2Zmc2V0U2VydmVySXNTbGVlcGluZ1RhZywg
c3RkOjptZW1vcnlfb3JkZXJfcmVsYXhlZCk7CiAgICAgLy8gV3JpdGUgc3RhcnRzIGZyb20gMCB3
aXRoIGEgbGltaXQgb2YgdGhlIHdob2xlIGJ1ZmZlci4KLSAgICBzaGFyZWRSZWNlaXZlck9mZnNl
dCgpLnN0b3JlKDAsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGF4ZWQpOworICAgIHNoYXJlZFNlcnZl
ck9mZnNldCgpLnN0b3JlKDAsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGF4ZWQpOwogfQogCiB2b2lk
IFN0cmVhbUNsaWVudENvbm5lY3Rpb246OnNldFdha2VVcFNlbWFwaG9yZShJUEM6OlNlbWFwaG9y
ZSYmIHNlbWFwaG9yZSkKQEAgLTQzLDEwICs0MywxMCBAQCB2b2lkIFN0cmVhbUNsaWVudENvbm5l
Y3Rpb246OnNldFdha2VVcFNlbWFwaG9yZShJUEM6OlNlbWFwaG9yZSYmIHNlbWFwaG9yZSkKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBtX3dha2VVcFNlbWFwaG9yZSA9IFdURk1vdmUoc2VtYXBo
b3JlKTsKICNlbmRpZgotICAgIHdha2VVcFJlY2VpdmVyKCk7CisgICAgd2FrZVVwU2VydmVyKCk7
CiB9CiAKLXZvaWQgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6d2FrZVVwUmVjZWl2ZXIoKQordm9p
ZCBTdHJlYW1DbGllbnRDb25uZWN0aW9uOjp3YWtlVXBTZXJ2ZXIoKQogewogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIGlmIChtX3dha2VVcFNlbWFwaG9yZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENvbm5lY3Rpb24uaAppbmRleCAwMjgzZjI2Njlk
MDE1NjhjYjc2Yzg5MWU1MjA1NzZhYzBjZWI1OGJhLi5jNWFiNmEzYTMxZDk2NDU0OGQ4YzFiYTVi
ODIyZGJiZGM1MGU3MTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9T
dHJlYW1DbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
U3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC0zNiwxMyArMzYsMTMgQEAKICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CiBuYW1lc3BhY2UgSVBDIHsKIAotLy8gQSBtZXNzYWdlIHN0cmVhbSBp
cyBhIGhhbGYtZHVwbGV4IHR3by13YXkgc3RyZWFtIG9mIG1lc3NhZ2VzIHRvIGEgYmV0d2VlbiBh
IHNlbmRlciBhbmQgdGhlCi0vLyBkZXN0aW5hdGlvbiByZWNlaXZlci4KKy8vIEEgbWVzc2FnZSBz
dHJlYW0gaXMgYSBoYWxmLWR1cGxleCB0d28td2F5IHN0cmVhbSBvZiBtZXNzYWdlcyB0byBhIGJl
dHdlZW4gdGhlIGNsaWVudCBhbmQgdGhlCisvLyBzZXJ2ZXIuCiAvLwogLy8gU3RyZWFtQ2xpZW50
Q29ubmVjdGlvbiBjYW4gc2VuZCBtZXNzYWdlcyBhbmQgcmVjZWl2ZSBzeW5jaHJvbm91cyByZXBs
aWVzCiAvLyB0aHJvdWdoIHRoaXMgbWVzc2FnZSBzdHJlYW0gb3IgdGhyb3VnaCBJUEM6OkNvbm5l
Y3Rpb24uCiAvLwotLy8gVGhlIGRlc3RpbmF0aW9uIHJlY2VpdmVyIHdpbGwgcmVjZWl2ZSBtZXNz
YWdlcyBpbiBvcmRlciBfZm9yIHRoZSBkZXN0aW5hdGlvbiBtZXNzYWdlc18uCisvLyBUaGUgc2Vy
dmVyIHdpbGwgcmVjZWl2ZSBtZXNzYWdlcyBpbiBvcmRlciBfZm9yIHRoZSBkZXN0aW5hdGlvbiBt
ZXNzYWdlc18uCiAvLyBUaGUgd2hvbGUgSVBDOjpDb25uZWN0aW9uIG1lc3NhZ2Ugb3JkZXIgaXMg
bm90IHByZXNlcnZlZC4KIC8vCiAvLyBUaGUgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbiB0cnVzdHMg
dGhlIFN0cmVhbVNlcnZlckNvbm5lY3Rpb24uCkBAIC03MSwxMiArNzEsMTIgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNlbmRQcm9jZXNzT3V0T2ZTdHJlYW1NZXNzYWdlKFNwYW4mJik7CiAKICAgICBP
cHRpb25hbDxTcGFuPiB0cnlBY3F1aXJlKFRpbWVvdXQpOwotICAgIGVudW0gY2xhc3MgV2FrZVVw
UmVjZWl2ZXIgOiBib29sIHsKKyAgICBlbnVtIGNsYXNzIFdha2VVcFNlcnZlciA6IGJvb2wgewog
ICAgICAgICBObywKICAgICAgICAgWWVzCiAgICAgfTsKLSAgICBXYWtlVXBSZWNlaXZlciByZWxl
YXNlKHNpemVfdCB3cml0ZVNpemUpOwotICAgIHZvaWQgd2FrZVVwUmVjZWl2ZXIoKTsKKyAgICBX
YWtlVXBTZXJ2ZXIgcmVsZWFzZShzaXplX3Qgd3JpdGVTaXplKTsKKyAgICB2b2lkIHdha2VVcFNl
cnZlcigpOwogCiAgICAgU3BhbiBhbGlnbmVkU3BhbihzaXplX3Qgb2Zmc2V0LCBzaXplX3QgbGlt
aXQpOwogICAgIHNpemVfdCBzaXplKHNpemVfdCBvZmZzZXQsIHNpemVfdCBsaW1pdCk7CkBAIC04
NCwxNSArODQsMTUgQEAgcHJpdmF0ZToKIAogICAgIHNpemVfdCB3cmFwT2Zmc2V0KHNpemVfdCBv
ZmZzZXQpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLndyYXBPZmZzZXQob2Zmc2V0KTsgfQogICAg
IHNpemVfdCBhbGlnbk9mZnNldChzaXplX3Qgb2Zmc2V0KSBjb25zdCB7IHJldHVybiBtX2J1ZmZl
ci5hbGlnbk9mZnNldDxtZXNzYWdlQWxpZ25tZW50PihvZmZzZXQsIG1pbmltdW1NZXNzYWdlU2l6
ZSk7IH0KLSAgICBBdG9taWM8c2l6ZV90PiYgc2hhcmVkU2VuZGVyT2Zmc2V0KCkgeyByZXR1cm4g
bV9idWZmZXIuc2VuZGVyT2Zmc2V0KCk7IH0KLSAgICBBdG9taWM8c2l6ZV90PiYgc2hhcmVkUmVj
ZWl2ZXJPZmZzZXQoKSB7IHJldHVybiBtX2J1ZmZlci5yZWNlaXZlck9mZnNldCgpOyB9CisgICAg
QXRvbWljPHNpemVfdD4mIHNoYXJlZENsaWVudE9mZnNldCgpIHsgcmV0dXJuIG1fYnVmZmVyLmNs
aWVudE9mZnNldCgpOyB9CisgICAgQXRvbWljPHNpemVfdD4mIHNoYXJlZFNlcnZlck9mZnNldCgp
IHsgcmV0dXJuIG1fYnVmZmVyLnNlcnZlck9mZnNldCgpOyB9CiAgICAgdWludDhfdCogZGF0YSgp
IGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLmRhdGEoKTsgfQogICAgIHNpemVfdCBkYXRhU2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLmRhdGFTaXplKCk7IH0KIAogICAgIENvbm5lY3Rpb24m
IG1fY29ubmVjdGlvbjsKICAgICB1aW50NjRfdCBtX2N1cnJlbnREZXN0aW5hdGlvbklEIHsgMCB9
OwogCi0gICAgc2l6ZV90IG1fc2VuZGVyT2Zmc2V0IHsgMCB9OworICAgIHNpemVfdCBtX2NsaWVu
dE9mZnNldCB7IDAgfTsKICAgICBTdHJlYW1Db25uZWN0aW9uQnVmZmVyIG1fYnVmZmVyOwogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIE9wdGlvbmFsPFNlbWFwaG9yZT4gbV93YWtlVXBTZW1hcGhv
cmU7CkBAIC0xMTIsOCArMTEyLDggQEAgYm9vbCBTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpzZW5k
KFQmJiBtZXNzYWdlLCBPYmplY3RJZGVudGlmaWVyPFU+IGRlc3RpbmF0aW9uSUQKICAgICAgICAg
U3RyZWFtQ29ubmVjdGlvbkVuY29kZXIgbWVzc2FnZUVuY29kZXIgeyBUOjpuYW1lKCksIHNwYW4t
PmRhdGEsIHNwYW4tPnNpemUgfTsKICAgICAgICAgaWYgKG1lc3NhZ2VFbmNvZGVyIDw8IG1lc3Nh
Z2UuYXJndW1lbnRzKCkpIHsKICAgICAgICAgICAgIGF1dG8gd2FrZXVwUmVzdWx0ID0gcmVsZWFz
ZShtZXNzYWdlRW5jb2Rlci5zaXplKCkpOwotICAgICAgICAgICAgaWYgKHdha2V1cFJlc3VsdCA9
PSBTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpXYWtlVXBSZWNlaXZlcjo6WWVzKQotICAgICAgICAg
ICAgICAgIHdha2VVcFJlY2VpdmVyKCk7CisgICAgICAgICAgICBpZiAod2FrZXVwUmVzdWx0ID09
IFN0cmVhbUNsaWVudENvbm5lY3Rpb246Oldha2VVcFNlcnZlcjo6WWVzKQorICAgICAgICAgICAg
ICAgIHdha2VVcFNlcnZlcigpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
ICAgICB9CkBAIC0xNTMsOCArMTUzLDggQEAgaW5saW5lIGJvb2wgU3RyZWFtQ2xpZW50Q29ubmVj
dGlvbjo6dHJ5U2VuZERlc3RpbmF0aW9uSURJZk5lZWRlZCh1aW50NjRfdCBkZXN0aW4KICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBhdXRvIHdha2V1cFJlc3VsdCA9IHJlbGVhc2Uo
ZW5jb2Rlci5zaXplKCkpOwotICAgIGlmICh3YWtldXBSZXN1bHQgPT0gU3RyZWFtQ2xpZW50Q29u
bmVjdGlvbjo6V2FrZVVwUmVjZWl2ZXI6OlllcykKLSAgICAgICAgd2FrZVVwUmVjZWl2ZXIoKTsK
KyAgICBpZiAod2FrZXVwUmVzdWx0ID09IFN0cmVhbUNsaWVudENvbm5lY3Rpb246Oldha2VVcFNl
cnZlcjo6WWVzKQorICAgICAgICB3YWtlVXBTZXJ2ZXIoKTsKICAgICBtX2N1cnJlbnREZXN0aW5h
dGlvbklEID0gZGVzdGluYXRpb25JRDsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE2OSwxOCAr
MTY5LDE4IEBAIGlubGluZSB2b2lkIFN0cmVhbUNsaWVudENvbm5lY3Rpb246OnNlbmRQcm9jZXNz
T3V0T2ZTdHJlYW1NZXNzYWdlKFNwYW4mJiBzcGFuKQogaW5saW5lIE9wdGlvbmFsPFN0cmVhbUNs
aWVudENvbm5lY3Rpb246OlNwYW4+IFN0cmVhbUNsaWVudENvbm5lY3Rpb246OnRyeUFjcXVpcmUo
VGltZW91dCB0aW1lb3V0KQogewogICAgIGZvciAoOzspIHsKLSAgICAgICAgc2l6ZV90IHNlbmRl
ckxpbWl0ID0gY2xhbXBlZExpbWl0KHNoYXJlZFJlY2VpdmVyT2Zmc2V0KCkubG9hZChzdGQ6Om1l
bW9yeV9vcmRlcl9hY3F1aXJlKSk7Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gYWxpZ25lZFNwYW4o
bV9zZW5kZXJPZmZzZXQsIHNlbmRlckxpbWl0KTsKKyAgICAgICAgc2l6ZV90IGNsaWVudExpbWl0
ID0gY2xhbXBlZExpbWl0KHNoYXJlZFNlcnZlck9mZnNldCgpLmxvYWQoc3RkOjptZW1vcnlfb3Jk
ZXJfYWNxdWlyZSkpOworICAgICAgICBhdXRvIHJlc3VsdCA9IGFsaWduZWRTcGFuKG1fY2xpZW50
T2Zmc2V0LCBjbGllbnRMaW1pdCk7CiAgICAgICAgIGlmIChyZXN1bHQuc2l6ZSA8IG1pbmltdW1N
ZXNzYWdlU2l6ZSkgewogICAgICAgICAgICAgaWYgKHRpbWVvdXQuZGlkVGltZU91dCgpKQogICAg
ICAgICAgICAgICAgIGJyZWFrOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgICAgICAgICAgc2l6
ZV90IG9sZFNlbmRlckxpbWl0ID0gc2hhcmVkUmVjZWl2ZXJPZmZzZXQoKS5jb21wYXJlRXhjaGFu
Z2VTdHJvbmcoc2VuZGVyTGltaXQsIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OnJlY2VpdmVyT2Zm
c2V0U2VuZGVySXNXYWl0aW5nVGFnLCBzdGQ6Om1lbW9yeV9vcmRlcl9hY3FfcmVsLCBzdGQ6Om1l
bW9yeV9vcmRlcl9hY3FfcmVsKTsKLSAgICAgICAgICAgIGlmIChzZW5kZXJMaW1pdCA9PSBvbGRT
ZW5kZXJMaW1pdCkKLSAgICAgICAgICAgICAgICBtX2J1ZmZlci5zZW5kZXJXYWl0U2VtYXBob3Jl
KCkud2FpdEZvcih0aW1lb3V0KTsKKyAgICAgICAgICAgIHNpemVfdCBvbGRDbGllbnRMaW1pdCA9
IHNoYXJlZFNlcnZlck9mZnNldCgpLmNvbXBhcmVFeGNoYW5nZVN0cm9uZyhjbGllbnRMaW1pdCwg
U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6c2VydmVyT2Zmc2V0Q2xpZW50SXNXYWl0aW5nVGFnLCBz
dGQ6Om1lbW9yeV9vcmRlcl9hY3FfcmVsLCBzdGQ6Om1lbW9yeV9vcmRlcl9hY3FfcmVsKTsKKyAg
ICAgICAgICAgIGlmIChjbGllbnRMaW1pdCA9PSBvbGRDbGllbnRMaW1pdCkKKyAgICAgICAgICAg
ICAgICBtX2J1ZmZlci5jbGllbnRXYWl0U2VtYXBob3JlKCkud2FpdEZvcih0aW1lb3V0KTsKICAg
ICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIHNlbmRlckxpbWl0ID0gY2xhbXBlZExp
bWl0KG9sZFNlbmRlckxpbWl0KTsKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBhbGlnbmVkU3Bh
bihtX3NlbmRlck9mZnNldCwgc2VuZGVyTGltaXQpOworICAgICAgICAgICAgICAgIGNsaWVudExp
bWl0ID0gY2xhbXBlZExpbWl0KG9sZENsaWVudExpbWl0KTsKKyAgICAgICAgICAgICAgICByZXN1
bHQgPSBhbGlnbmVkU3BhbihtX2NsaWVudE9mZnNldCwgY2xpZW50TGltaXQpOwogICAgICAgICAg
ICAgfQogI2Vsc2UKICAgICAgICAgICAgIFRocmVhZDo6eWllbGQoKTsKQEAgLTE5MSwyMyArMTkx
LDIzIEBAIGlubGluZSBPcHRpb25hbDxTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpTcGFuPiBTdHJl
YW1DbGllbnRDb25uZWN0aW9uOjp0cnlBY3F1aXJlCiAgICAgICAgIC8vIFRoZSBhbGlnbmVkU3Bh
biB1c2VzIHRoZSBtaW5pbXVtTWVzc2FnZVNpemUgdG8gY2FsY3VsYXRlIHRoZSBuZXh0IGJlZ2lu
bmluZyBwb3NpdGlvbiBpbiB0aGUgYnVmZmVyLAogICAgICAgICAvLyBhbmQgbm90IHRoZSBzaXpl
LiBUaGUgc2l6ZSBtaWdodCBiZSBtb3JlIG9yIGxlc3Mgd2hhdCBpcyBuZWVkZWQsIGRlcGVuZGlu
ZyBvbiB3aGVyZSB0aGUgcmVhZGVyIGlzLgogICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBjYXBh
Y2l0eSBmb3IgbWluaW11bSBtZXNzYWdlIHNpemUsIHdhaXQgdW50aWwgbW9yZSBpcyBhdmFpbGFi
bGUuCi0gICAgICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIHNlbmRlck9mZnNldCA8IHJlY2VpdmVy
T2Zmc2V0IHdlIGNhbiBhcnJpdmUgdG8gYSBzaXR1YXRpb24gd2hlcmUKKyAgICAgICAgLy8gSW4g
dGhlIGNhc2Ugd2hlcmUgY2xpZW50T2Zmc2V0IDwgc2VydmVyT2Zmc2V0IHdlIGNhbiBhcnJpdmUg
dG8gYSBzaXR1YXRpb24gd2hlcmUKICAgICAgICAgLy8gMCA8IHJlc3VsdC5zaXplIDwgbWluaW11
bU1lc3NhZ2VTaXplLgogICAgIH0KICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCi1pbmxp
bmUgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6V2FrZVVwUmVjZWl2ZXIgU3RyZWFtQ2xpZW50Q29u
bmVjdGlvbjo6cmVsZWFzZShzaXplX3Qgc2l6ZSkKK2lubGluZSBTdHJlYW1DbGllbnRDb25uZWN0
aW9uOjpXYWtlVXBTZXJ2ZXIgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6cmVsZWFzZShzaXplX3Qg
c2l6ZSkKIHsKICAgICBzaXplID0gc3RkOjptYXgoc2l6ZSwgbWluaW11bU1lc3NhZ2VTaXplKTsK
LSAgICBtX3NlbmRlck9mZnNldCA9IHdyYXBPZmZzZXQoYWxpZ25PZmZzZXQobV9zZW5kZXJPZmZz
ZXQpICsgc2l6ZSk7Ci0gICAgQVNTRVJUKG1fc2VuZGVyT2Zmc2V0IDwgZGF0YVNpemUoKSk7Ci0g
ICAgLy8gSWYgdGhlIHJlY2VpdmVyIHdyb3RlIG92ZXIgdGhlIHNlbmRlck9mZnNldCB3aXRoIHNl
bmRlck9mZnNldFJlY2VpdmVySXNTbGVlcGluZ1RhZywgd2Uga25vdyBpdCBpcyBzbGVlcGluZy4K
LSAgICBzaXplX3QgcmVjZWl2ZXJMaW1pdCA9IHNoYXJlZFNlbmRlck9mZnNldCgpLmV4Y2hhbmdl
KG1fc2VuZGVyT2Zmc2V0LCBzdGQ6Om1lbW9yeV9vcmRlcl9hY3FfcmVsKTsKLSAgICBpZiAocmVj
ZWl2ZXJMaW1pdCA9PSBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpzZW5kZXJPZmZzZXRSZWNlaXZl
cklzU2xlZXBpbmdUYWcpCi0gICAgICAgIHJldHVybiBXYWtlVXBSZWNlaXZlcjo6WWVzOwotICAg
IEFTU0VSVCghKHJlY2VpdmVyTGltaXQgJiBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpzZW5kZXJP
ZmZzZXRSZWNlaXZlcklzU2xlZXBpbmdUYWcpKTsKLSAgICByZXR1cm4gV2FrZVVwUmVjZWl2ZXI6
Ok5vOworICAgIG1fY2xpZW50T2Zmc2V0ID0gd3JhcE9mZnNldChhbGlnbk9mZnNldChtX2NsaWVu
dE9mZnNldCkgKyBzaXplKTsKKyAgICBBU1NFUlQobV9jbGllbnRPZmZzZXQgPCBkYXRhU2l6ZSgp
KTsKKyAgICAvLyBJZiB0aGUgc2VydmVyIHdyb3RlIG92ZXIgdGhlIGNsaWVudE9mZnNldCB3aXRo
IGNsaWVudE9mZnNldFNlcnZlcklzU2xlZXBpbmdUYWcsIHdlIGtub3cgaXQgaXMgc2xlZXBpbmcu
CisgICAgc2l6ZV90IHNlcnZlckxpbWl0ID0gc2hhcmVkQ2xpZW50T2Zmc2V0KCkuZXhjaGFuZ2Uo
bV9jbGllbnRPZmZzZXQsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9yZWwpOworICAgIGlmIChzZXJ2
ZXJMaW1pdCA9PSBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpjbGllbnRPZmZzZXRTZXJ2ZXJJc1Ns
ZWVwaW5nVGFnKQorICAgICAgICByZXR1cm4gV2FrZVVwU2VydmVyOjpZZXM7CisgICAgQVNTRVJU
KCEoc2VydmVyTGltaXQgJiBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpjbGllbnRPZmZzZXRTZXJ2
ZXJJc1NsZWVwaW5nVGFnKSk7CisgICAgcmV0dXJuIFdha2VVcFNlcnZlcjo6Tm87CiB9CiAKIGlu
bGluZSBTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpTcGFuIFN0cmVhbUNsaWVudENvbm5lY3Rpb246
OmFsaWduZWRTcGFuKHNpemVfdCBvZmZzZXQsIHNpemVfdCBsaW1pdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25CdWZmZXIuY3BwIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAKaW5kZXgg
OWM1ZjdmMzFlNTMzZGQzYmRiZThmNDViNjZiZWM4Y2Y3NTg3MzdhNy4uYzIxYmRjNjhmOGZkNzVh
ZmNlYTg5ZTFkNmIwNjlkNWM3OGY0YWEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAKQEAgLTQ1LDEwICs0NSwxMCBA
QCBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyKHNpemVfdCBt
ZW1vcnlTaXplKQogICAgIEFTU0VSVChtX2RhdGFTaXplIDw9IG1heGltdW1TaXplKCkpOwogfQog
Ci1TdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyKFJlZjxXZWJL
aXQ6OlNoYXJlZE1lbW9yeT4mJiBtZW1vcnksIHNpemVfdCBtZW1vcnlTaXplLCBTZW1hcGhvcmUm
JiBzZW5kZXJXYWl0U2VtYXBob3JlKQorU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6U3RyZWFtQ29u
bmVjdGlvbkJ1ZmZlcihSZWY8V2ViS2l0OjpTaGFyZWRNZW1vcnk+JiYgbWVtb3J5LCBzaXplX3Qg
bWVtb3J5U2l6ZSwgU2VtYXBob3JlJiYgY2xpZW50V2FpdFNlbWFwaG9yZSkKICAgICA6IG1fZGF0
YVNpemUobWVtb3J5U2l6ZSAtIGhlYWRlclNpemUoKSkKICAgICAsIG1fc2hhcmVkTWVtb3J5KFdU
Rk1vdmUobWVtb3J5KSkKLSAgICAsIG1fc2VuZGVyV2FpdFNlbWFwaG9yZShXVEZNb3ZlKHNlbmRl
cldhaXRTZW1hcGhvcmUpKQorICAgICwgbV9jbGllbnRXYWl0U2VtYXBob3JlKFdURk1vdmUoY2xp
ZW50V2FpdFNlbWFwaG9yZSkpCiB7CiAgICAgQVNTRVJUKG1fZGF0YVNpemUgPD0gbWF4aW11bVNp
emUoKSk7CiB9CkBAIC02Miw3ICs2Miw3IEBAIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXImIFN0cmVh
bUNvbm5lY3Rpb25CdWZmZXI6Om9wZXJhdG9yPShTdHJlYW1Db25uZWN0aW9uQnVmZmVyCiAgICAg
aWYgKHRoaXMgIT0gJm90aGVyKSB7CiAgICAgICAgIG1fZGF0YVNpemUgPSBvdGhlci5tX2RhdGFT
aXplOwogICAgICAgICBtX3NoYXJlZE1lbW9yeSA9IFdURk1vdmUob3RoZXIubV9zaGFyZWRNZW1v
cnkpOwotICAgICAgICBtX3NlbmRlcldhaXRTZW1hcGhvcmUgPSBXVEZNb3ZlKG90aGVyLm1fc2Vu
ZGVyV2FpdFNlbWFwaG9yZSk7CisgICAgICAgIG1fY2xpZW50V2FpdFNlbWFwaG9yZSA9IFdURk1v
dmUob3RoZXIubV9jbGllbnRXYWl0U2VtYXBob3JlKTsKICAgICB9CiAgICAgcmV0dXJuICp0aGlz
OwogfQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgICAgICBDUkFTSCgpOwogICAgIFdlYktpdDo6
U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgaXBjSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCBtX3No
YXJlZE1lbW9yeS0+c2l6ZSgpIH07CiAgICAgZW5jb2RlciA8PCBpcGNIYW5kbGU7Ci0gICAgZW5j
b2RlciA8PCBtX3NlbmRlcldhaXRTZW1hcGhvcmU7CisgICAgZW5jb2RlciA8PCBtX2NsaWVudFdh
aXRTZW1hcGhvcmU7CiB9CiAKIE9wdGlvbmFsPFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI+IFN0cmVh
bUNvbm5lY3Rpb25CdWZmZXI6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oCmluZGV4IDM5
NDYwMGNiYjAxOTgxNmIxYTY5ZDc1NjBlOTYwZjNhODM2YTcyN2QuLmZjOGRjN2QxMDU4ZTA1MTM1
MzYxM2U2NzcyZWQwMjM0MDE3NmZmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25CdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9TdHJlYW1Db25uZWN0aW9uQnVmZmVyLmgKQEAgLTMzLDM2ICszMywzMCBAQAogCiBu
YW1lc3BhY2UgSVBDIHsKIAotLy8gU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciBpcyBhIHNoYXJlZCAi
YmktcGFydGl0ZSIgY2lyY3VsYXIgYnVmZmVyIHN1cHBvcnRpbmcKLS8vIHZhcmlhYmxlIGxlbmd0
aCBtZXNzYWdlcywgc3BlY2lmaWMgZGF0YSBhbGlnbm1lbnQgd2l0aCBtYW5kYXRlZCBtaW5pbXVt
IHNpemUuCi0vLyBTdHJlYW1DbGllbnRDb25uZWN0aW9uIGFuZCBTdHJlYW1TZXJ2ZXJDb25uZWN0
aW9uIHVzZSBTdHJlYW1Db25uZWN0aW9uQnVmZmVyIHRvIGNvbW11bmljYXRlLgorLy8gU3RyZWFt
Q29ubmVjdGlvbkJ1ZmZlciBpcyBhIHNoYXJlZCAiYmktcGFydGl0ZSIgY2lyY3VsYXIgYnVmZmVy
IHN1cHBvcnRpbmcgdmFyaWFibGUgbGVuZ3RoIG1lc3NhZ2VzLCBzcGVjaWZpYyBkYXRhCisvLyBh
bGlnbm1lbnQgd2l0aCBtYW5kYXRlZCBtaW5pbXVtIHNpemUuIFN0cmVhbUNsaWVudENvbm5lY3Rp
b24gYW5kIFN0cmVhbVNlcnZlckNvbm5lY3Rpb24gdXNlIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIg
dG8KKy8vIGNvbW11bmljYXRlLgogLy8KLS8vIFRoZSAiYmktcGFydGl0ZSIgaXMgaGVyZSB0byBt
ZWFuIHRoYXQgd3JpdGVzIGFuZCByZWFkcyB0byB0aGUgYnVmZmVyIG11c3QgYmUKLS8vIGNvbnRp
bnVvdXMuCisvLyBUaGUgImJpLXBhcnRpdGUiIGlzIGhlcmUgdG8gbWVhbiB0aGF0IHdyaXRlcyBh
bmQgcmVhZHMgdG8gdGhlIGJ1ZmZlciBtdXN0IGJlIGNvbnRpbnVvdXMuCiAvLwotLy8gVGhlIGNs
aWVudCAoc2VuZGVyIG9yIHJlY2VpdmVyKSAiYWNxdWlyZXMiIHNvbWUgYW1vdW50IG9mIGJ1ZmZl
ciBkYXRhLiBUaGUgZGF0YSBwb2ludGVyCi0vLyBsb2NhdGlvbiBkZXBlbmRzIG9uIHRoZSBhbW91
bnQgb2YgZGF0YSBiZWluZyBhY3F1aXJlZC4gVGhlIGJ1ZmZlciByZXR1cm5zIGFsbCB0aGUgYXZh
aWxhYmxlCi0vLyBjYXBhY2l0eSAtLSB0aGlzIG1heSBiZSBsZXNzIHRoYW4gYWNxdWlyZWQuCisv
LyBUaGUgY2FsbGVyIChjbGllbnQgb3Igc2VydmVyKSAiYWNxdWlyZXMiIHNvbWUgYW1vdW50IG9m
IGJ1ZmZlciBkYXRhLiBUaGUgZGF0YSBwb2ludGVyIGxvY2F0aW9uIGRlcGVuZHMgb24gdGhlIGFt
b3VudAorLy8gb2YgZGF0YSBiZWluZyBhY3F1aXJlZC4gVGhlIGJ1ZmZlciByZXR1cm5zIGFsbCB0
aGUgYXZhaWxhYmxlIGNhcGFjaXR5IC0tIHRoaXMgbWF5IGJlIGxlc3MgdGhhbiBhY3F1aXJlZC4K
IC8vCi0vLyBUaGUgY2xpZW50ICJyZWxlYXNlcyIgdGhlIHNvbWUgYW1vdW50IG9mIGRhdGEsIGF0
IGxlYXN0IHRoZSBhbW91bnQgYWNxdWlyZWQgYnV0IHBvdGVudGlhbGx5Ci0vLyBtb3JlLgorLy8g
VGhlIGNhbGxlciAicmVsZWFzZXMiIHRoZSBzb21lIGFtb3VudCBvZiBkYXRhLCBhdCBsZWFzdCB0
aGUgYW1vdW50IGFjcXVpcmVkIGJ1dCBwb3RlbnRpYWxseSBtb3JlLgogLy8KLS8vIEJvdGggc2Vu
ZGVyIGFuZCByZWNlaXZlciBtdXN0IHJlbGVhc2UgdGhlIHNhbWUgYW1vdW50IG9mIGRhdGEgYXQg
dGhlIHNhbWUgc3RlcCBvZiB0aGUgYWNxdWlyZS9yZWxlYXNlIHNlcXVlbmNlLgotLy8gU3VwcG9z
ZSBzZW5kZXIgcmVsZWFzZXMgZmlyc3QgOCBhbmQgdGhlbiAxNjYgYnl0ZXMuIFVwb24gdGhlIGZp
cnN0IGFjcXVpcmUsIHJlY2VpdmVyCi0vLyBtdXN0IGFsc28gcmVsZWFzZSA4IGJ5dGVzIGFuZCB0
aGVuIHVwb24gdGhlIHNlY29uZCBhY3F1aXJlIDE2NiBieXRlcy4KLS8vIER1ZSB0byBob3cgYWxp
Z25tZW50IGFuZCBtaW5pbXVtIGxlbmd0aCBhZmZlY3QgdGhlIHBvc2l0aW9uIGF0IHdoaWNoIHRo
ZSBtZW1vcnkgY2FuCi0vLyBiZSByZWZlcnJlZCB0bywgdGhlIHJlY2VpdmVyIGNhbm5vdCAicmVh
ZCB0d28gdGltZXMgc2ltdWx0YW5lb3VzbHkiIGFuZCByZWxlYXNlIDE3NCBieXRlcy4KKy8vIEJv
dGggdGhlIGNsaWVudCBhbmQgdGhlIHNlcnZlciBtdXN0IHJlbGVhc2UgdGhlIHNhbWUgYW1vdW50
IG9mIGRhdGEgYXQgdGhlIHNhbWUgc3RlcCBvZiB0aGUgYWNxdWlyZS9yZWxlYXNlIHNlcXVlbmNl
LgorLy8gU3VwcG9zZSB0aGUgY2xpZW50IHJlbGVhc2VzIGZpcnN0IDggYW5kIHRoZW4gMTY2IGJ5
dGVzLiBVcG9uIHRoZSBmaXJzdCBhY3F1aXJlLCB0aGUgc2VydmVyIG11c3QgYWxzbyByZWxlYXNl
IDggYnl0ZXMKKy8vIGFuZCB0aGVuIHVwb24gdGhlIHNlY29uZCBhY3F1aXJlIDE2NiBieXRlcy4g
RHVlIHRvIGhvdyBhbGlnbm1lbnQgYW5kIG1pbmltdW0gbGVuZ3RoIGFmZmVjdCB0aGUgcG9zaXRp
b24gYXQgd2hpY2ggdGhlCisvLyBtZW1vcnkgY2FuIGJlIHJlZmVycmVkIHRvLCB0aGUgc2VydmVy
IGNhbm5vdCAicmVhZCB0d28gdGltZXMgc2ltdWx0YW5lb3VzbHkiIGFuZCByZWxlYXNlIDE3NCBi
eXRlcy4KIC8vCiAvLyBUaGUgY2lyY3VsYXIgYnVmZmVyIGhhcyBmb2xsb3dpbmcgaW1wbGVtZW50
YXRpb246Ci0vLyAqIFNlbmRlciBvd25zIHRoZSBkYXRhIGJldHdlZW4gW3NlbmRlck9mZnNldCwg
cmVjZWl2ZXJPZmZzZXRbLiBXaGVuIHNlbmRlck9mZnNldCA9PQotLy8gcmVjZWl2ZXJPZmZzZXQs
IHNlbmRlciBvd25zIGFsbCB0aGUgZGF0YS4KLS8vICogUmVjZWl2ZXIgb3ducyB0aGUgZGF0YSBi
ZXR3ZWVuIFtyZWNlaXZlck9mZnNldCwgc2VuZGVyT2Zmc2V0Wy4KLS8vICogVGhlIGJ1ZmZlciBj
YW4gaG9sZCBtYXhpbXVtIG9mIHNpemUgLSAxIHZhbHVlcy4gVGhlIGxhc3QgdmFsdWUgaXMgcmVz
ZXJ2ZWQgZm9yCi0vLyBpbmRpY2F0aW5nIHRoYXQgdGhlIGJ1ZmZlciBpcyBmdWxsLiBGSVhNRTog
TWF5YmUgd291bGQgYmUgc2ltcGxlciBpbXBsZW1lbnRhdGlvbiBpZgotLy8gaXQgd291bGQgdXNl
IHRoZSAid3JhcCIgZmxhZyBpbnN0ZWFkIG9mIHRoZSBob2xlIGFzIHRoZSBpbmRpY2F0b3IuIFRo
aXMgd291bGQgbW92ZQotLy8gdGhlIGFsaWduZWRTcGFuIGltcGxlbWVudGF0aW9uIHRvIHRoZSBT
dHJlYW1Db25uZWN0aW9uQnVmZmVyLgotLy8gKiBBbGwgYXRvbWljIHZhcmlhYmxlIGxvYWRzIGFy
ZSB1bnRydXN0ZWQsIHNvIHRoZXkncmUgY2xhbXBlZC4gVmlvbGF0aW9ucyBhcmUgbm90IHJlcG9y
dGVkLAotLy8gdGhvdWdoLgorLy8gKiBUaGUgY2xpZW50IG93bnMgdGhlIGRhdGEgYmV0d2VlbiBb
Y2xpZW50T2Zmc2V0LCBzZXJ2ZXJPZmZzZXRbLiBXaGVuIGNsaWVudE9mZnNldCA9PSBzZXJ2ZXJP
ZmZzZXQsIHRoZSBjbGllbnQgb3ducworLy8gICBhbGwgdGhlIGRhdGEuCisvLyAqIFRoZSBzZXJ2
ZXIgb3ducyB0aGUgZGF0YSBiZXR3ZWVuIFtzZXJ2ZXJPZmZzZXQsIGNsaWVudE9mZnNldFsuCisv
LyAqIFRoZSBidWZmZXIgY2FuIGhvbGQgbWF4aW11bSBvZiBzaXplIC0gMSB2YWx1ZXMuIFRoZSBs
YXN0IHZhbHVlIGlzIHJlc2VydmVkIGZvciBpbmRpY2F0aW5nIHRoYXQgdGhlIGJ1ZmZlciBpcyBm
dWxsLgorLy8gICBGSVhNRTogTWF5YmUgd291bGQgYmUgc2ltcGxlciBpbXBsZW1lbnRhdGlvbiBp
ZiBpdCB3b3VsZCB1c2UgdGhlICJ3cmFwIiBmbGFnIGluc3RlYWQgb2YgdGhlIGhvbGUgYXMgdGhl
IGluZGljYXRvci4KKy8vICAgVGhpcyB3b3VsZCBtb3ZlIHRoZSBhbGlnbmVkU3BhbiBpbXBsZW1l
bnRhdGlvbiB0byB0aGUgU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci4KKy8vICogQWxsIGF0b21pYyB2
YXJpYWJsZSBsb2FkcyBhcmUgdW50cnVzdGVkLCBzbyB0aGV5J3JlIGNsYW1wZWQuIFZpb2xhdGlv
bnMgYXJlIG5vdCByZXBvcnRlZCwgdGhvdWdoLgogLy8gU2VlIFNoYXJlZERpc3BsYXlMaXN0SGFu
ZGxlLgogY2xhc3MgU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciB7CiBwdWJsaWM6CkBAIC04OCwzNyAr
ODIsMzcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gb2Zmc2V0OwogICAgIH0KIAotICAgIEF0
b21pYzxzaXplX3Q+JiBzZW5kZXJPZmZzZXQoKSB7IHJldHVybiBoZWFkZXIoKS5zZW5kZXJPZmZz
ZXQ7IH0KLSAgICBBdG9taWM8c2l6ZV90PiYgcmVjZWl2ZXJPZmZzZXQoKSB7IHJldHVybiBoZWFk
ZXIoKS5yZWNlaXZlck9mZnNldDsgfQorICAgIEF0b21pYzxzaXplX3Q+JiBjbGllbnRPZmZzZXQo
KSB7IHJldHVybiBoZWFkZXIoKS5jbGllbnRPZmZzZXQ7IH0KKyAgICBBdG9taWM8c2l6ZV90PiYg
c2VydmVyT2Zmc2V0KCkgeyByZXR1cm4gaGVhZGVyKCkuc2VydmVyT2Zmc2V0OyB9CiAgICAgdWlu
dDhfdCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihtX3NoYXJl
ZE1lbW9yeS0+ZGF0YSgpKSArIGhlYWRlclNpemUoKTsgfQogICAgIHNpemVfdCBkYXRhU2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YVNpemU7IH0KLSAgICBTZW1hcGhvcmUmIHNlbmRlcldhaXRT
ZW1hcGhvcmUoKSB7IHJldHVybiBtX3NlbmRlcldhaXRTZW1hcGhvcmU7IH0KKyAgICBTZW1hcGhv
cmUmIGNsaWVudFdhaXRTZW1hcGhvcmUoKSB7IHJldHVybiBtX2NsaWVudFdhaXRTZW1hcGhvcmU7
IH0KIAotICAgIC8vIFRhZyB2YWx1ZSBzdG9yZWQgaW4gSGVhZGVyOjpzZW5kZXJPZmZzZXQgd2hl
biByZWNlaXZlciBpcyBzbGVlcGluZywgZS5nLiBub3QgcnVubmluZy4KLSAgICBzdGF0aWMgY29u
c3RleHByIHNpemVfdCBzZW5kZXJPZmZzZXRSZWNlaXZlcklzU2xlZXBpbmdUYWcgPSAxIDw8IDMx
OwotICAgIC8vIFRhZyB2YWx1ZSBzdG9yZWQgaW4gSGVhZGVyOjpyZWNlaXZlck9mZnNldCB3aGVu
IHNlbmRlciBpcyB3YWl0aW5nLCBlLmcuIHdhaXRpbmcgb24KKyAgICAvLyBUYWcgdmFsdWUgc3Rv
cmVkIGluIEhlYWRlcjo6Y2xpZW50T2Zmc2V0IHdoZW4gdGhlIHNlcnZlciBpcyBzbGVlcGluZywg
ZS5nLiBub3QgcnVubmluZy4KKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBjbGllbnRPZmZz
ZXRTZXJ2ZXJJc1NsZWVwaW5nVGFnID0gMSA8PCAzMTsKKyAgICAvLyBUYWcgdmFsdWUgc3RvcmVk
IGluIEhlYWRlcjo6c2VydmVyT2Zmc2V0IHdoZW4gdGhlIGNsaWVudCBpcyB3YWl0aW5nLCBlLmcu
IHdhaXRpbmcgb24KICAgICAvLyBhIHNlbWFwaG9yZS4KLSAgICBzdGF0aWMgY29uc3RleHByIHNp
emVfdCByZWNlaXZlck9mZnNldFNlbmRlcklzV2FpdGluZ1RhZyA9IDEgPDwgMzE7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBzaXplX3Qgc2VydmVyT2Zmc2V0Q2xpZW50SXNXYWl0aW5nVGFnID0gMSA8
PCAzMTsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1heGltdW1TaXplKCkgeyByZXR1
cm4gc3RkOjptaW4oc2VuZGVyT2Zmc2V0UmVjZWl2ZXJJc1NsZWVwaW5nVGFnLCBzZW5kZXJPZmZz
ZXRSZWNlaXZlcklzU2xlZXBpbmdUYWcpIC0gMTsgfQorICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6
ZV90IG1heGltdW1TaXplKCkgeyByZXR1cm4gc3RkOjptaW4oY2xpZW50T2Zmc2V0U2VydmVySXNT
bGVlcGluZ1RhZywgY2xpZW50T2Zmc2V0U2VydmVySXNTbGVlcGluZ1RhZykgLSAxOyB9CiAgICAg
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBPcHRpb25hbDxTdHJlYW1D
b25uZWN0aW9uQnVmZmVyPiBkZWNvZGUoRGVjb2RlciYpOwogCiBwcml2YXRlOgotICAgIFN0cmVh
bUNvbm5lY3Rpb25CdWZmZXIoUmVmPFdlYktpdDo6U2hhcmVkTWVtb3J5PiYmLCBzaXplX3QgbWVt
b3J5U2l6ZSwgU2VtYXBob3JlJiYgc2VuZGVyV2FpdFNlbWFwaG9yZSk7CisgICAgU3RyZWFtQ29u
bmVjdGlvbkJ1ZmZlcihSZWY8V2ViS2l0OjpTaGFyZWRNZW1vcnk+JiYsIHNpemVfdCBtZW1vcnlT
aXplLCBTZW1hcGhvcmUmJiBjbGllbnRXYWl0U2VtYXBob3JlKTsKIAogICAgIHN0cnVjdCBIZWFk
ZXIgewotICAgICAgICBBdG9taWM8c2l6ZV90PiByZWNlaXZlck9mZnNldDsKKyAgICAgICAgQXRv
bWljPHNpemVfdD4gc2VydmVyT2Zmc2V0OwogICAgICAgICAvLyBQYWRkaW5nIHNvIHRoYXQgdGhl
IHZhcmlhYmxlcyBtb3N0bHkgYWNjZXNzZWQgYnkgZGlmZmVyZW50IHByb2Nlc3NlcyBkbyBub3Qg
c2hhcmUgYSBjYWNoZSBsaW5lLgogICAgICAgICAvLyBUaGlzIGlzIGFuIGF0dGVtcHQgdG8gYXZv
aWQgY2FjaGUtbGluZSBpbmR1Y2VkIHJlZHVjdGlvbiBvZiBwYXJhbGxlbCBhY2Nlc3MuCi0gICAg
ICAgIGFsaWduYXMoc2l6ZW9mKHVpbnQ2NF90WzJdKSkgQXRvbWljPHNpemVfdD4gc2VuZGVyT2Zm
c2V0OworICAgICAgICBhbGlnbmFzKHNpemVvZih1aW50NjRfdFsyXSkpIEF0b21pYzxzaXplX3Q+
IGNsaWVudE9mZnNldDsKICAgICB9OwogICAgIEhlYWRlciYgaGVhZGVyKCkgY29uc3QgeyByZXR1
cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8SGVhZGVyKj4obV9zaGFyZWRNZW1vcnktPmRhdGEoKSk7IH0K
ICAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBoZWFkZXJTaXplKCkgeyByZXR1cm4gcm91bmRV
cFRvTXVsdGlwbGVPZjxhbGlnbm9mKHN0ZDo6bWF4X2FsaWduX3QpPihzaXplb2YoSGVhZGVyKSk7
IH0KIAogICAgIHNpemVfdCBtX2RhdGFTaXplIHsgMCB9OwogICAgIFJlZjxXZWJLaXQ6OlNoYXJl
ZE1lbW9yeT4gbV9zaGFyZWRNZW1vcnk7Ci0gICAgU2VtYXBob3JlIG1fc2VuZGVyV2FpdFNlbWFw
aG9yZTsKKyAgICBTZW1hcGhvcmUgbV9jbGllbnRXYWl0U2VtYXBob3JlOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9u
LmNwcAppbmRleCAxNGQ0ODRiNzhmYmY5ZGY2ZGY4YTlmZGI3ZThjYTg5YWQ1N2U1M2JhLi44MGIw
MzlhN2Y5ODUzOTcyMDY4ZjNlZWU4NDkyNDQzZDdjODAzYTNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtNjEs
MTUgKzYxLDE1IEBAIHZvaWQgU3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2U6OmVucXVldWVNZXNz
YWdlKENvbm5lY3Rpb24mLCBzdGQ6OnVuaXF1ZV9wdHI8RGVjCiAKIE9wdGlvbmFsPFN0cmVhbVNl
cnZlckNvbm5lY3Rpb25CYXNlOjpTcGFuPiBTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZTo6dHJ5
QXF1aXJlKCkKIHsKLSAgICBzaXplX3QgcmVjZWl2ZXJMaW1pdCA9IHNoYXJlZFNlbmRlck9mZnNl
dCgpLmxvYWQoc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZSk7Ci0gICAgaWYgKHJlY2VpdmVyTGlt
aXQgPT0gU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6c2VuZGVyT2Zmc2V0UmVjZWl2ZXJJc1NsZWVw
aW5nVGFnKQorICAgIHNpemVfdCBzZXJ2ZXJMaW1pdCA9IHNoYXJlZENsaWVudE9mZnNldCgpLmxv
YWQoc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZSk7CisgICAgaWYgKHNlcnZlckxpbWl0ID09IFN0
cmVhbUNvbm5lY3Rpb25CdWZmZXI6OmNsaWVudE9mZnNldFNlcnZlcklzU2xlZXBpbmdUYWcpCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgYXV0byByZXN1bHQgPSBhbGlnbmVkU3Bh
bihtX3JlY2VpdmVyT2Zmc2V0LCByZWNlaXZlckxpbWl0KTsKKyAgICBhdXRvIHJlc3VsdCA9IGFs
aWduZWRTcGFuKG1fc2VydmVyT2Zmc2V0LCBzZXJ2ZXJMaW1pdCk7CiAgICAgaWYgKHJlc3VsdC5z
aXplIDwgbWluaW11bU1lc3NhZ2VTaXplKSB7Ci0gICAgICAgIHJlY2VpdmVyTGltaXQgPSBzaGFy
ZWRTZW5kZXJPZmZzZXQoKS5jb21wYXJlRXhjaGFuZ2VTdHJvbmcocmVjZWl2ZXJMaW1pdCwgU3Ry
ZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6c2VuZGVyT2Zmc2V0UmVjZWl2ZXJJc1NsZWVwaW5nVGFnLCBz
dGQ6Om1lbW9yeV9vcmRlcl9hY3FfcmVsLCBzdGQ6Om1lbW9yeV9vcmRlcl9hY3FfcmVsKTsKLSAg
ICAgICAgQVNTRVJUKCEocmVjZWl2ZXJMaW1pdCAmIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OnNl
bmRlck9mZnNldFJlY2VpdmVySXNTbGVlcGluZ1RhZykpOwotICAgICAgICByZWNlaXZlckxpbWl0
ID0gY2xhbXBlZExpbWl0KHJlY2VpdmVyTGltaXQpOwotICAgICAgICByZXN1bHQgPSBhbGlnbmVk
U3BhbihtX3JlY2VpdmVyT2Zmc2V0LCByZWNlaXZlckxpbWl0KTsKKyAgICAgICAgc2VydmVyTGlt
aXQgPSBzaGFyZWRDbGllbnRPZmZzZXQoKS5jb21wYXJlRXhjaGFuZ2VTdHJvbmcoc2VydmVyTGlt
aXQsIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OmNsaWVudE9mZnNldFNlcnZlcklzU2xlZXBpbmdU
YWcsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9yZWwsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9yZWwp
OworICAgICAgICBBU1NFUlQoIShzZXJ2ZXJMaW1pdCAmIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6
OmNsaWVudE9mZnNldFNlcnZlcklzU2xlZXBpbmdUYWcpKTsKKyAgICAgICAgc2VydmVyTGltaXQg
PSBjbGFtcGVkTGltaXQoc2VydmVyTGltaXQpOworICAgICAgICByZXN1bHQgPSBhbGlnbmVkU3Bh
bihtX3NlcnZlck9mZnNldCwgc2VydmVyTGltaXQpOwogICAgIH0KIAogICAgIGlmIChyZXN1bHQu
c2l6ZSA+PSBtaW5pbXVtTWVzc2FnZVNpemUpCkBAIC04MSwyMSArODEsMjEgQEAgdm9pZCBTdHJl
YW1TZXJ2ZXJDb25uZWN0aW9uQmFzZTo6cmVsZWFzZShzaXplX3QgcmVhZFNpemUpCiB7CiAgICAg
QVNTRVJUKHJlYWRTaXplKTsKICAgICByZWFkU2l6ZSA9IHN0ZDo6bWF4KHJlYWRTaXplLCBtaW5p
bXVtTWVzc2FnZVNpemUpOwotICAgIHNpemVfdCByZWNlaXZlck9mZnNldCA9IHdyYXBPZmZzZXQo
YWxpZ25PZmZzZXQobV9yZWNlaXZlck9mZnNldCkgKyByZWFkU2l6ZSk7CisgICAgc2l6ZV90IHNl
cnZlck9mZnNldCA9IHdyYXBPZmZzZXQoYWxpZ25PZmZzZXQobV9zZXJ2ZXJPZmZzZXQpICsgcmVh
ZFNpemUpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgc2l6ZV90IG9sZFJlY2VpdmVyT2Zm
c2V0ID0gc2hhcmVkUmVjZWl2ZXJPZmZzZXQoKS5leGNoYW5nZShyZWNlaXZlck9mZnNldCwgc3Rk
OjptZW1vcnlfb3JkZXJfYWNxX3JlbCk7Ci0gICAgLy8gSWYgdGhlIHNlbmRlciB3cm90ZSBvdmVy
IHJlY2VpdmVyT2Zmc2V0LCBpdCBtZWFucyB0aGUgc2VuZGVyIGlzIHdhaXRpbmcuCi0gICAgaWYg
KG9sZFJlY2VpdmVyT2Zmc2V0ID09IFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OnJlY2VpdmVyT2Zm
c2V0U2VuZGVySXNXYWl0aW5nVGFnKQotICAgICAgICBtX2J1ZmZlci5zZW5kZXJXYWl0U2VtYXBo
b3JlKCkuc2lnbmFsKCk7CisgICAgc2l6ZV90IG9sZFNlcnZlck9mZnNldCA9IHNoYXJlZFNlcnZl
ck9mZnNldCgpLmV4Y2hhbmdlKHNlcnZlck9mZnNldCwgc3RkOjptZW1vcnlfb3JkZXJfYWNxX3Jl
bCk7CisgICAgLy8gSWYgdGhlIGNsaWVudCB3cm90ZSBvdmVyIHNlcnZlck9mZnNldCwgaXQgbWVh
bnMgdGhlIGNsaWVudCBpcyB3YWl0aW5nLgorICAgIGlmIChvbGRTZXJ2ZXJPZmZzZXQgPT0gU3Ry
ZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6c2VydmVyT2Zmc2V0Q2xpZW50SXNXYWl0aW5nVGFnKQorICAg
ICAgICBtX2J1ZmZlci5jbGllbnRXYWl0U2VtYXBob3JlKCkuc2lnbmFsKCk7CiAgICAgZWxzZQot
ICAgICAgICBBU1NFUlQoIShvbGRSZWNlaXZlck9mZnNldCAmIFN0cmVhbUNvbm5lY3Rpb25CdWZm
ZXI6OnJlY2VpdmVyT2Zmc2V0U2VuZGVySXNXYWl0aW5nVGFnKSk7CisgICAgICAgIEFTU0VSVCgh
KG9sZFNlcnZlck9mZnNldCAmIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OnNlcnZlck9mZnNldENs
aWVudElzV2FpdGluZ1RhZykpOwogI2Vsc2UKLSAgICBzaGFyZWRSZWNlaXZlck9mZnNldCgpLnN0
b3JlKHJlY2VpdmVyT2Zmc2V0LCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxlYXNlKTsKKyAgICBzaGFy
ZWRTZXJ2ZXJPZmZzZXQoKS5zdG9yZShzZXJ2ZXJPZmZzZXQsIHN0ZDo6bWVtb3J5X29yZGVyX3Jl
bGVhc2UpOwogICAgIC8vIElQQzo6U2VtYXBob3JlIG5vdCBpbXBsZW1lbnRlZCBmb3IgdGhlIHBs
YXRmb3JtLiBDbGllbnQgd2lsbCBwb2xsIGFuZCB5aWVsZC4KICNlbmRpZgogCi0gICAgbV9yZWNl
aXZlck9mZnNldCA9IHJlY2VpdmVyT2Zmc2V0OworICAgIG1fc2VydmVyT2Zmc2V0ID0gc2VydmVy
T2Zmc2V0OwogfQogCiBTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZTo6U3BhbiBTdHJlYW1TZXJ2
ZXJDb25uZWN0aW9uQmFzZTo6YWxpZ25lZFNwYW4oc2l6ZV90IG9mZnNldCwgc2l6ZV90IGxpbWl0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVj
dGlvbi5oCmluZGV4IDk1ODFjNjkwMWQ1MTI1YTA2NGJhNGUzYTcwNjhlNDJhMTlkZjkxYmYuLmJl
Y2QzOGRkOTMxM2I2MzIzZjBhYTRmMjdmZDJjYmUyYmZmOTk3YjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTc3LDE1
ICs3NywxNSBAQCBwcm90ZWN0ZWQ6CiAgICAgc2l6ZV90IGNsYW1wZWRMaW1pdChzaXplX3QgdW50
cnVzdGVkTGltaXQpIGNvbnN0OwogICAgIHNpemVfdCB3cmFwT2Zmc2V0KHNpemVfdCBvZmZzZXQp
IGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLndyYXBPZmZzZXQob2Zmc2V0KTsgfQogICAgIHNpemVf
dCBhbGlnbk9mZnNldChzaXplX3Qgb2Zmc2V0KSBjb25zdCB7IHJldHVybiBtX2J1ZmZlci5hbGln
bk9mZnNldDxtZXNzYWdlQWxpZ25tZW50PihvZmZzZXQsIG1pbmltdW1NZXNzYWdlU2l6ZSk7IH0K
LSAgICBBdG9taWM8c2l6ZV90PiYgc2hhcmVkU2VuZGVyT2Zmc2V0KCkgeyByZXR1cm4gbV9idWZm
ZXIuc2VuZGVyT2Zmc2V0KCk7IH0KLSAgICBBdG9taWM8c2l6ZV90PiYgc2hhcmVkUmVjZWl2ZXJP
ZmZzZXQoKSB7IHJldHVybiBtX2J1ZmZlci5yZWNlaXZlck9mZnNldCgpOyB9CisgICAgQXRvbWlj
PHNpemVfdD4mIHNoYXJlZENsaWVudE9mZnNldCgpIHsgcmV0dXJuIG1fYnVmZmVyLmNsaWVudE9m
ZnNldCgpOyB9CisgICAgQXRvbWljPHNpemVfdD4mIHNoYXJlZFNlcnZlck9mZnNldCgpIHsgcmV0
dXJuIG1fYnVmZmVyLnNlcnZlck9mZnNldCgpOyB9CiAgICAgdWludDhfdCogZGF0YSgpIGNvbnN0
IHsgcmV0dXJuIG1fYnVmZmVyLmRhdGEoKTsgfQogICAgIHNpemVfdCBkYXRhU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYnVmZmVyLmRhdGFTaXplKCk7IH0KIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rp
b24+IG1fY29ubmVjdGlvbjsKICAgICBTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlJiBtX3dvcmtR
dWV1ZTsKIAotICAgIHNpemVfdCBtX3JlY2VpdmVyT2Zmc2V0IHsgMCB9OworICAgIHNpemVfdCBt
X3NlcnZlck9mZnNldCB7IDAgfTsKICAgICBTdHJlYW1Db25uZWN0aW9uQnVmZmVyIG1fYnVmZmVy
OwogCiAgICAgTG9jayBtX291dE9mU3RyZWFtTWVzc2FnZXNMb2NrOwpAQCAtMTAzLDEwICsxMDMs
MTEgQEAgdm9pZCBTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZTo6c2VuZFN5bmNSZXBseSh1aW50
NjRfdCBzeW5jUmVxdWVzdElELCBBcmd1bWVudHMKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRTeW5j
UmVwbHkoV1RGTW92ZShlbmNvZGVyKSk7CiB9CiAKLS8vIFN0cmVhbVNlcnZlckNvbm5lY3Rpb24g
cmVwcmVzZW50cyB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIHN0cmVhbSBzZW5kZXIgYW5kIHJlY2Vp
dmVyLCBhcyB1c2VkIGJ5IHRoZSByZWNlaXZlci4KKy8vIFN0cmVhbVNlcnZlckNvbm5lY3Rpb24g
cmVwcmVzZW50cyB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIHN0cmVhbSBjbGllbnQgYW5kIHNlcnZl
ciwgYXMgdXNlZCBieSB0aGUgc2VydmVyLgorLy8KIC8vIFN0cmVhbVNlcnZlckNvbm5lY3Rpb246
Ci0vLyAgKiBIb2xkcyB0aGUgbWVzc2FnZXMgdG93YXJkcyB0aGUgcmVjZWl2ZXIuCi0vLyAgKiBT
ZW5kcyB0aGUgcmVwbGllcyBiYWNrIHRvIHRoZSBzZW5kZXIgdmlhIHRoZSBzdHJlYW0gb3Igbm9y
bWFsIENvbm5lY3Rpb24gZmFsbGJhY2suCisvLyAgKiBIb2xkcyB0aGUgbWVzc2FnZXMgdG93YXJk
cyB0aGUgc2VydmVyLgorLy8gICogU2VuZHMgdGhlIHJlcGxpZXMgYmFjayB0byB0aGUgY2xpZW50
IHZpYSB0aGUgc3RyZWFtIG9yIG5vcm1hbCBDb25uZWN0aW9uIGZhbGxiYWNrLgogLy8KIC8vIFJl
Y2VpdmVyIHRlbXBsYXRlIGNvbnRyYWN0OgogLy8gICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNz
YWdlKFN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgRGVjb2RlciYpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>