<?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>233969</bug_id>
          
          <creation_ts>2021-12-07 20:03:41 -0800</creation_ts>
          <short_desc>[JSC] Chained IC</short_desc>
          <delta_ts>2021-12-14 20:04:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1821348</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-07 20:03:41 -0800</bug_when>
    <thetext>[JSC] Chained IC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821349</commentid>
    <comment_count>1</comment_count>
      <attachid>446282</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-07 20:04:02 -0800</bug_when>
    <thetext>Created attachment 446282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824228</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-14 20:04:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/86503190&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446282</attachid>
            <date>2021-12-07 20:04:02 -0800</date>
            <delta_ts>2021-12-07 20:38:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233969-20211207200401.patch</filename>
            <type>text/plain</type>
            <size>33985</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZjI3YWU1NmM5MTA5MzUwMzlmMDZhM2ExZThjODMwZmY0NTdlMzczLi5kN2VmM2RkNzM4ODM3Y2Zj
NDQzYjcxZjVkNTFlNjJhMGZjYWJkN2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAyMS0xMi0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIENoYWluZWQgSUMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzk2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgor
ICAgICAgICAoSlNDOjpQb2x5bW9ycGhpY0FjY2Vzczo6YWRkQ2FzZXMpOgorICAgICAgICAoSlND
OjpQb2x5bW9ycGhpY0FjY2Vzczo6YWRkQ2FzZSk6CisgICAgICAgIChKU0M6OlBvbHltb3JwaGlj
QWNjZXNzOjp2aXNpdFdlYWsgY29uc3QpOgorICAgICAgICAoSlNDOjpQb2x5bW9ycGhpY0FjY2Vz
czo6cmVnZW5lcmF0ZSk6CisgICAgICAgIChKU0M6OlBvbHltb3JwaGljQWNjZXNzOjphYm91dFRv
RGllKToKKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oOgorICAgICAgICAo
SlNDOjpQb2x5bW9ycGhpY0FjY2Vzczo6Y29udGFpbnNQQyBjb25zdCk6CisgICAgICAgICogYnl0
ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHVi
SW5mbzo6YWRkQWNjZXNzQ2FzZSk6CisgICAgICAgICogaml0L0dDQXdhcmVKSVRTdHViUm91dGlu
ZS5jcHA6CisgICAgICAgIChKU0M6OkdDQXdhcmVKSVRTdHViUm91dGluZTo6bWFrZUNhbkNoYWlu
QWNjZXNzQ2FzZXMpOgorICAgICAgICAoSlNDOjpjcmVhdGVJQ0pJVFN0dWJSb3V0aW5lKToKKyAg
ICAgICAgKiBqaXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmg6CisgICAgICAgIChKU0M6OkdDQXdh
cmVKSVRTdHViUm91dGluZTo6Y2FuQ2hhaW5BY2Nlc3NDYXNlcyBjb25zdCk6CisKIDIwMjEtMTIt
MDcgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtK
U0NdIEFkZCBMTEludCBJQyBmb3IgdHJ5X2dldF9ieV9pZCBvZiBvd24gY2FjaGVhYmxlIHZhbHVl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CmluZGV4IGIxZmZjY2Q1MDFlNzM3OThkZWMzMGM5MDVkZDAzZTM5NjhiZTU2NTkuLmMzN2Q3OTNm
N2MwYzMxMTI3MWIxNWM2OWFkNGVhYzFiYjFlNThiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjEtMTItMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBb
SlNDXSBDaGFpbmVkIElDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzM5NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHd0Zi9QcmludFN0cmVhbS5oOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFs
KToKKwogMjAyMS0xMi0wNyAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAg
ICAgICBGZXRjaCBhbmQgcmVtb3ZlIGZpbGUgc3lzdGVtIGRhdGEgdmlhIFdLV2Vic2l0ZURhdGFT
dG9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3Jw
aGljQWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhp
Y0FjY2Vzcy5jcHAKaW5kZXggOTQzNzY4ZWVkOWE0MDc4MjAyY2JiMTRhM2I5Yzc0NWE2MTJiZTlm
OC4uMDliNmNlODE4NjFjOTNmYWRlYWFiNmI2MTUxNTVhOGIyZGU5ZWY3NiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCkBA
IC0yNzQsNyArMjc0LDcgQEAgUG9seW1vcnBoaWNBY2Nlc3M6On5Qb2x5bW9ycGhpY0FjY2Vzcygp
IHsgfQogCiBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0IFBvbHltb3JwaGljQWNjZXNzOjphZGRDYXNl
cygKICAgICBjb25zdCBHQ1NhZmVDb25jdXJyZW50SlNMb2NrZXImIGxvY2tlciwgVk0mIHZtLCBD
b2RlQmxvY2sqIGNvZGVCbG9jaywgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvLAotICAgIFZl
Y3RvcjxSZWZQdHI8QWNjZXNzQ2FzZT4sIDI+IG9yaWdpbmFsQ2FzZXNUb0FkZCkKKyAgICBWZWN0
b3I8UmVmPEFjY2Vzc0Nhc2U+LCAyPiYmIG9yaWdpbmFsQ2FzZXNUb0FkZCkKIHsKICAgICBTdXBl
clNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC0yOTAsMTQg
KzI5MCwxMyBAQCBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0IFBvbHltb3JwaGljQWNjZXNzOjphZGRD
YXNlcygKICAgICAvLyAgIGFkZCBtb3JlIHRoaW5ncyBhZnRlciBmYWlsdXJlLgogICAgIAogICAg
IC8vIEZpcnN0IGVuc3VyZSB0aGF0IHRoZSBvcmlnaW5hbENhc2VzVG9BZGQgZG9lc24ndCBjb250
YWluIGR1cGxpY2F0ZXMuCi0gICAgVmVjdG9yPFJlZlB0cjxBY2Nlc3NDYXNlPj4gY2FzZXNUb0Fk
ZDsKKyAgICBWZWN0b3I8UmVmPEFjY2Vzc0Nhc2U+PiBjYXNlc1RvQWRkOwogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBvcmlnaW5hbENhc2VzVG9BZGQuc2l6ZSgpOyArK2kpIHsKLSAgICAg
ICAgUmVmUHRyPEFjY2Vzc0Nhc2U+IG15Q2FzZSA9IFdURk1vdmUob3JpZ2luYWxDYXNlc1RvQWRk
W2ldKTsKLQorICAgICAgICBhdXRvJiBteUNhc2UgPSBvcmlnaW5hbENhc2VzVG9BZGRbaV0uZ2V0
KCk7CiAgICAgICAgIC8vIEFkZCBpdCBvbmx5IGlmIGl0IGlzIG5vdCByZXBsYWNlZCBieSB0aGUg
c3Vic2VxdWVudCBjYXNlcyBpbiB0aGUgbGlzdC4KICAgICAgICAgYm9vbCBmb3VuZCA9IGZhbHNl
OwogICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSBpICsgMTsgaiA8IG9yaWdpbmFsQ2FzZXNUb0Fk
ZC5zaXplKCk7ICsraikgewotICAgICAgICAgICAgaWYgKG9yaWdpbmFsQ2FzZXNUb0FkZFtqXS0+
Y2FuUmVwbGFjZSgqbXlDYXNlKSkgeworICAgICAgICAgICAgaWYgKG9yaWdpbmFsQ2FzZXNUb0Fk
ZFtqXS0+Y2FuUmVwbGFjZShteUNhc2UpKSB7CiAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVl
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMzA2LDcgKzMwNSw3
IEBAIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgUG9seW1vcnBoaWNBY2Nlc3M6OmFkZENhc2VzKAog
ICAgICAgICBpZiAoZm91bmQpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCi0gICAg
ICAgIGNhc2VzVG9BZGQuYXBwZW5kKFdURk1vdmUobXlDYXNlKSk7CisgICAgICAgIGNhc2VzVG9B
ZGQuYXBwZW5kKFdURk1vdmUob3JpZ2luYWxDYXNlc1RvQWRkW2ldKSk7CiAgICAgfQogCiAgICAg
ZGF0YUxvZ0xuSWYoUG9seW1vcnBoaWNBY2Nlc3NJbnRlcm5hbDo6dmVyYm9zZSwgImNhc2VzVG9B
ZGQ6ICIsIGxpc3REdW1wKGNhc2VzVG9BZGQpKTsKQEAgLTM1Niw3ICszNTUsNyBAQCBBY2Nlc3NH
ZW5lcmF0aW9uUmVzdWx0IFBvbHltb3JwaGljQWNjZXNzOjphZGRDYXNlcygKICAgICAvLyBOb3cg
YWRkIHRoaW5ncyB0byB0aGUgbmV3IGxpc3QuIE5vdGUgdGhhdCBhdCB0aGlzIHBvaW50LCB3ZSB3
aWxsIHN0aWxsIGhhdmUgb2xkIGNhc2VzIHRoYXQKICAgICAvLyBtYXkgYmUgcmVwbGFjZWQgYnkg
dGhlIG5ldyBvbmVzLiBUaGF0J3MgZmluZS4gV2Ugd2lsbCBzb3J0IHRoYXQgb3V0IHdoZW4gd2Ug
cmVnZW5lcmF0ZS4KICAgICBmb3IgKGF1dG8mIGNhc2VUb0FkZCA6IGNhc2VzVG9BZGQpIHsKLSAg
ICAgICAgY29tbWl0KGxvY2tlciwgdm0sIG1fd2F0Y2hwb2ludHMsIGNvZGVCbG9jaywgc3R1Yklu
Zm8sICpjYXNlVG9BZGQpOworICAgICAgICBjb21taXQobG9ja2VyLCB2bSwgbV93YXRjaHBvaW50
cywgY29kZUJsb2NrLCBzdHViSW5mbywgY2FzZVRvQWRkLmdldCgpKTsKICAgICAgICAgbV9saXN0
LmFwcGVuZChXVEZNb3ZlKGNhc2VUb0FkZCkpOwogICAgIH0KICAgICAKQEAgLTM2Niw5ICszNjUs
OSBAQCBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0IFBvbHltb3JwaGljQWNjZXNzOjphZGRDYXNlcygK
IH0KIAogQWNjZXNzR2VuZXJhdGlvblJlc3VsdCBQb2x5bW9ycGhpY0FjY2Vzczo6YWRkQ2FzZSgK
LSAgICBjb25zdCBHQ1NhZmVDb25jdXJyZW50SlNMb2NrZXImIGxvY2tlciwgVk0mIHZtLCBDb2Rl
QmxvY2sqIGNvZGVCbG9jaywgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvLCBSZWY8QWNjZXNz
Q2FzZT4gbmV3QWNjZXNzKQorICAgIGNvbnN0IEdDU2FmZUNvbmN1cnJlbnRKU0xvY2tlciYgbG9j
a2VyLCBWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1
YkluZm8sIFJlZjxBY2Nlc3NDYXNlPiYmIG5ld0FjY2VzcykKIHsKLSAgICBWZWN0b3I8UmVmUHRy
PEFjY2Vzc0Nhc2U+LCAyPiBuZXdBY2Nlc3NlczsKKyAgICBWZWN0b3I8UmVmPEFjY2Vzc0Nhc2U+
LCAyPiBuZXdBY2Nlc3NlczsKICAgICBuZXdBY2Nlc3Nlcy5hcHBlbmQoV1RGTW92ZShuZXdBY2Nl
c3MpKTsKICAgICByZXR1cm4gYWRkQ2FzZXMobG9ja2VyLCB2bSwgY29kZUJsb2NrLCBzdHViSW5m
bywgV1RGTW92ZShuZXdBY2Nlc3NlcykpOwogfQpAQCAtMzg1LDYgKzM4NCwxMyBAQCBib29sIFBv
bHltb3JwaGljQWNjZXNzOjp2aXNpdFdlYWsoVk0mIHZtKSBjb25zdAogICAgICAgICAgICAgaWYg
KCF2bS5oZWFwLmlzTWFya2VkKHN0cnVjdHVyZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICB9CisgICAgICAgIGZvciAoYXV0byYgc3R1YiA6IG1fc3Vic2VxdWVudFN0
dWJSb3V0aW5lcykgeworICAgICAgICAgICAgZm9yIChTdHJ1Y3R1cmVJRCB3ZWFrUmVmZXJlbmNl
IDogc3R1Yi0+d2Vha1N0cnVjdHVyZXMoKSkgeworICAgICAgICAgICAgICAgIFN0cnVjdHVyZSog
c3RydWN0dXJlID0gd2Vha1JlZmVyZW5jZS5kZWNvZGUoKTsKKyAgICAgICAgICAgICAgICBpZiAo
IXZtLmhlYXAuaXNNYXJrZWQoc3RydWN0dXJlKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiB0cnVl
OwogfQpAQCAtNDUxLDYgKzQ1NywyMjkgQEAgQWNjZXNzR2VuZXJhdGlvblJlc3VsdCBQb2x5bW9y
cGhpY0FjY2Vzczo6cmVnZW5lcmF0ZShjb25zdCBHQ1NhZmVDb25jdXJyZW50SlNMb2MKICAgICBz
dGF0ZS51LnRoaXNHUFIgPSBzdHViSW5mby5yZWdzLnRoaXNHUFI7CiAgICAgc3RhdGUudmFsdWVS
ZWdzID0gc3R1YkluZm8udmFsdWVSZWdzKCk7CiAKKyAgICBib29sIGdlbmVyYXRlZEZpbmFsQ29k
ZSA9IGZhbHNlOworCisgICAgaWYgKG1fc3R1YlJvdXRpbmUgJiYgbV9zdHViUm91dGluZS0+Y2Fu
Q2hhaW5BY2Nlc3NDYXNlcygpKSB7CisgICAgICAgIEFTU0VSVChzdHViSW5mby5oYXNDb25zdGFu
dElkZW50aWZpZXIpOworCisgICAgICAgIHVuc2lnbmVkIG5vbkdlbmVyYXRlZEluZGV4ID0gMDsK
KyAgICAgICAgYm9vbCB3aWxsQ2hhaW4gPSB0cnVlOworICAgICAgICBMaXN0VHlwZSBjYXNlczsK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgbV9saXN0LnNpemUoKTsg
KytpbmRleCkgeworICAgICAgICAgICAgUmVmUHRyPEFjY2Vzc0Nhc2U+IHNvbWVDYXNlID0gbV9s
aXN0W2luZGV4XTsKKyAgICAgICAgICAgIGJvb2wgaXNHZW5lcmF0ZWQgPSBzb21lQ2FzZS0+c3Rh
dGUoKSA9PSBBY2Nlc3NDYXNlOjpHZW5lcmF0ZWQ7CisgICAgICAgICAgICBpZiAoaXNHZW5lcmF0
ZWQpIHsKKyAgICAgICAgICAgICAgICBjYXNlcy5hcHBlbmQoV1RGTW92ZShzb21lQ2FzZSkpOwor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KCFub25HZW5lcmF0ZWRJbmRleCkKKyAgICAgICAgICAgICAgICBub25HZW5lcmF0ZWRJbmRleCA9
IGluZGV4OworICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXNvbWVD
YXNlLT5jb3VsZFN0aWxsU3VjY2VlZCgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IGluZGV4OyArK2opIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKG1fbGlzdFtqXS0+Y2FuUmVwbGFjZSgqc29tZUNhc2UpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBjYXNlcy5hcHBlbmQoV1RGTW92ZShzb21lQ2FzZSkpOworICAgICAgICAgICAg
fSgpOworICAgICAgICB9CisgICAgICAgIGlmIChjYXNlcy5pc0VtcHR5KCkpCisgICAgICAgICAg
ICB3aWxsQ2hhaW4gPSBmYWxzZTsKKyAgICAgICAgZm9yIChhdXRvJiBhY2Nlc3NDYXNlIDogY2Fz
ZXMpIHsKKyAgICAgICAgICAgIGlmIChhY2Nlc3NDYXNlLT5uZWVkc1NjcmF0Y2hGUFIoKSkgewor
ICAgICAgICAgICAgICAgIHdpbGxDaGFpbiA9IGZhbHNlOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFhY2Nlc3NDYXNlLT5ndWFyZGVkQnlT
dHJ1Y3R1cmVDaGVjayhzdHViSW5mbykpIHsKKyAgICAgICAgICAgICAgICB3aWxsQ2hhaW4gPSBm
YWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmIChhY2Nlc3NDYXNlLT51c2VzUG9seVByb3RvKCkpIHsKKyAgICAgICAgICAgICAgICB3aWxs
Q2hhaW4gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICBpZiAod2lsbENoYWluKSB7CisgICAgICAgICAgICAvLyBBZGQgbW9y
ZSB3YXRjaHBvaW50cyBmb3IgdGhlIGNoYWluZWQgY2FzZXMuCisgICAgICAgICAgICBzdGF0ZS53
YXRjaHBvaW50cyA9IFdURk1vdmUobV93YXRjaHBvaW50cyk7CisgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGluZGV4ID0gbm9uR2VuZXJhdGVkSW5kZXg7IGluZGV4IDwgY2FzZXMuc2l6ZSgpOyAr
K2luZGV4KQorICAgICAgICAgICAgICAgIGNvbW1pdChsb2NrZXIsIHZtLCBzdGF0ZS53YXRjaHBv
aW50cywgY29kZUJsb2NrLCBzdHViSW5mbywgKmNhc2VzW2luZGV4XSk7CisKKyAgICAgICAgICAg
IGF1dG8gYWxsb2NhdG9yID0gc3RhdGUubWFrZURlZmF1bHRTY3JhdGNoQWxsb2NhdG9yKCk7Cisg
ICAgICAgICAgICBzdGF0ZS5hbGxvY2F0b3IgPSAmYWxsb2NhdG9yOworICAgICAgICAgICAgc3Rh
dGUuc2NyYXRjaEdQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKKworICAgICAg
ICAgICAgZGF0YUxvZ0xuSWYoUG9seW1vcnBoaWNBY2Nlc3NJbnRlcm5hbDo6dmVyYm9zZSwgIk9w
dGltaXplZCBjaGFpbmVkIGNhc2VzOiAiLCBsaXN0RHVtcChjYXNlcykpOworCisgICAgICAgICAg
ICBib29sIGRvZXNDYWxscyA9IGZhbHNlOworICAgICAgICAgICAgYm9vbCBkb2VzSlNHZXR0ZXJT
ZXR0ZXJDYWxscyA9IGZhbHNlOworICAgICAgICAgICAgYm9vbCBjYW5CZVNoYXJlZCA9IE9wdGlv
bnM6OnVzZURhdGFJQ1NoYXJpbmcoKTsKKyAgICAgICAgICAgIGJvb2wgY2FuQ2hhaW5BY2Nlc3ND
YXNlcyA9IHRydWU7CisgICAgICAgICAgICBWZWN0b3I8SlNDZWxsKj4gY2VsbHNUb01hcms7Cisg
ICAgICAgICAgICBGaXhlZFZlY3RvcjxSZWZQdHI8QWNjZXNzQ2FzZT4+IGtleXMoY2FzZXMuc2l6
ZSgpKTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKKyAgICAgICAgICAgIGZvciAo
YXV0byYgZW50cnkgOiBjYXNlcykgeworICAgICAgICAgICAgICAgIGRvZXNDYWxscyB8PSBlbnRy
eS0+ZG9lc0NhbGxzKHZtLCAmY2VsbHNUb01hcmspOworICAgICAgICAgICAgICAgIHN3aXRjaCAo
ZW50cnktPnR5cGUoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgQWNjZXNzQ2FzZTo6R2V0dGVy
OgorICAgICAgICAgICAgICAgIGNhc2UgQWNjZXNzQ2FzZTo6U2V0dGVyOgorICAgICAgICAgICAg
ICAgICAgICAvLyBHZXR0ZXIgLyBTZXR0ZXIgcmVsaWVzIG9uIHN0YWNrLXBvaW50ZXIgYWRqdXN0
bWVudCwgd2hpY2ggaXMgdGllZCB0byB0aGUgbGlua2VkIENvZGVCbG9jaywgd2hpY2ggbWFrZXMg
dGhpcyBjb2RlIHVuc2hhcmVhYmxlLgorICAgICAgICAgICAgICAgICAgICBjYW5CZVNoYXJlZCA9
IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBkb2VzSlNHZXR0ZXJTZXR0ZXJDYWxscyA9IHRy
dWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQWNj
ZXNzQ2FzZTo6Q3VzdG9tVmFsdWVHZXR0ZXI6CisgICAgICAgICAgICAgICAgY2FzZSBBY2Nlc3ND
YXNlOjpDdXN0b21BY2Nlc3NvckdldHRlcjoKKyAgICAgICAgICAgICAgICBjYXNlIEFjY2Vzc0Nh
c2U6OkN1c3RvbVZhbHVlU2V0dGVyOgorICAgICAgICAgICAgICAgIGNhc2UgQWNjZXNzQ2FzZTo6
Q3VzdG9tQWNjZXNzb3JTZXR0ZXI6CisgICAgICAgICAgICAgICAgICAgIC8vIEN1c3RvbSBnZXR0
ZXIgLyBzZXR0ZXIgZW1pdHMgSlNHbG9iYWxPYmplY3QgcG9pbnRlciwgd2hpY2ggaXMgdGllZCB0
byB0aGUgbGlua2VkIENvZGVCbG9jay4KKyAgICAgICAgICAgICAgICAgICAgY2FuQmVTaGFyZWQg
PSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGtleXNbaW5kZXhdID0gZW50cnk7CisgICAgICAgICAgICAgICAgKytpbmRl
eDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YXRlLm1fZG9lc0NhbGxzID0gZG9lc0Nh
bGxzOworICAgICAgICAgICAgc3RhdGUubV9kb2VzSlNHZXR0ZXJTZXR0ZXJDYWxscyA9IGRvZXNK
U0dldHRlclNldHRlckNhbGxzOworCisgICAgICAgICAgICBhdXRvIGZpbmlzaENvZGVHZW5lcmF0
aW9uID0gWyZdKFJlZjxQb2x5bW9ycGhpY0FjY2Vzc0pJVFN0dWJSb3V0aW5lPiYmIHN0dWIpIHsK
KyAgICAgICAgICAgICAgICBtX3N1YnNlcXVlbnRTdHViUm91dGluZXMuYXBwZW5kKG1fc3R1YlJv
dXRpbmUpOworICAgICAgICAgICAgICAgIG1fc3R1YlJvdXRpbmUgPSBXVEZNb3ZlKHN0dWIpOwor
ICAgICAgICAgICAgICAgIG1fd2F0Y2hwb2ludHMgPSBXVEZNb3ZlKHN0YXRlLndhdGNocG9pbnRz
KTsKKyAgICAgICAgICAgICAgICBkYXRhTG9nTG5JZihQb2x5bW9ycGhpY0FjY2Vzc0ludGVybmFs
Ojp2ZXJib3NlLCAiUmV0dXJuaW5nOiAiLCBtX3N0dWJSb3V0aW5lLT5jb2RlKCkpOworCisgICAg
ICAgICAgICAgICAgbV9saXN0ID0gV1RGTW92ZShjYXNlcyk7CisgICAgICAgICAgICAgICAgbV9s
aXN0LnNocmlua1RvRml0KCk7CisKKyAgICAgICAgICAgICAgICBBY2Nlc3NHZW5lcmF0aW9uUmVz
dWx0OjpLaW5kIHJlc3VsdEtpbmQ7CisgICAgICAgICAgICAgICAgaWYgKG1fbGlzdC5zaXplKCkg
Pj0gT3B0aW9uczo6bWF4QWNjZXNzVmFyaWFudExpc3RTaXplKCkgfHwgZ2VuZXJhdGVkRmluYWxD
b2RlKQorICAgICAgICAgICAgICAgICAgICByZXN1bHRLaW5kID0gQWNjZXNzR2VuZXJhdGlvblJl
c3VsdDo6R2VuZXJhdGVkRmluYWxDb2RlOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0S2luZCA9IEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQ6OkdlbmVyYXRl
ZE5ld0NvZGU7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gQWNjZXNzR2VuZXJhdGlvblJlc3Vs
dChyZXN1bHRLaW5kLCBtX3N0dWJSb3V0aW5lLT5jb2RlKCkuY29kZSgpKTsKKyAgICAgICAgICAg
IH07CisKKyAgICAgICAgICAgIENDYWxsSGVscGVycyBqaXQoY29kZUJsb2NrKTsKKyAgICAgICAg
ICAgIHN0YXRlLmppdCA9ICZqaXQ7CisKKyAgICAgICAgICAgIGlmICghY2FuQmVTaGFyZWQgJiYg
QVNTRVJUX0VOQUJMRUQpIHsKKyAgICAgICAgICAgICAgICBqaXQuYWRkUHRyKENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbTMyKGNvZGVCbG9jay0+c3RhY2tQb2ludGVyT2Zmc2V0KCkgKiBzaXplb2Yo
UmVnaXN0ZXIpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGppdC5zY3JhdGNoUmVnaXN0
ZXIoKSk7CisgICAgICAgICAgICAgICAgYXV0byBvayA9IGppdC5icmFuY2hQdHIoQ0NhbGxIZWxw
ZXJzOjpFcXVhbCwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgaml0LnNjcmF0
Y2hSZWdpc3RlcigpKTsKKyAgICAgICAgICAgICAgICBqaXQuYnJlYWtwb2ludCgpOworICAgICAg
ICAgICAgICAgIG9rLmxpbmsoJmppdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNp
emVfdCBzdGFja1BvaW50ZXJDaGVja2luZ1NpemUgPSBqaXQubV9hc3NlbWJsZXIuYnVmZmVyKCku
Y29kZVNpemUoKTsKKyAgICAgICAgICAgIHN0YXRlLnByZXNlcnZlZFJldXNlZFJlZ2lzdGVyU3Rh
dGUgPQorICAgICAgICAgICAgICAgIGFsbG9jYXRvci5wcmVzZXJ2ZVJldXNlZFJlZ2lzdGVyc0J5
UHVzaGluZyhqaXQsIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvcjo6RXh0cmFTdGFja1NwYWNlOjpO
b0V4dHJhU3BhY2UpOworICAgICAgICAgICAgLy8gSWYgd2UgbmVlZCBwcm9sb2d1ZSBmb3IgcmVn
aXN0ZXIgc2F2ZSAvIHJlc3RvcmUsIHRoZW4gd2UgZGlzYWJsZSBjaGFpbmVkIGFjY2VzcyBjYXNl
cy4KKyAgICAgICAgICAgIGlmIChzdGFja1BvaW50ZXJDaGVja2luZ1NpemUgIT0gaml0Lm1fYXNz
ZW1ibGVyLmJ1ZmZlcigpLmNvZGVTaXplKCkpCisgICAgICAgICAgICAgICAgY2FuQ2hhaW5BY2Nl
c3NDYXNlcyA9IGZhbHNlOworCisgICAgICAgICAgICBBU1NFUlQoIWNhc2VzLmlzRW1wdHkoKSk7
CisgICAgICAgICAgICBBU1NFUlQoYWxsR3VhcmRlZEJ5U3RydWN0dXJlQ2hlY2spOworCisgICAg
ICAgICAgICBqaXQubG9hZDMyKAorICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVz
cyhzdGF0ZS5iYXNlR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLAorICAgICAgICAg
ICAgICAgIHN0YXRlLnNjcmF0Y2hHUFIpOworCisgICAgICAgICAgICBWZWN0b3I8aW50NjRfdD4g
Y2FzZVZhbHVlcyhjYXNlcy5zaXplKCkgLSBub25HZW5lcmF0ZWRJbmRleCk7CisgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY2FzZXMuc2l6ZSgpIC0gbm9uR2VuZXJhdGVkSW5k
ZXg7ICsraSkKKyAgICAgICAgICAgICAgICBjYXNlVmFsdWVzW2ldID0gYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGNhc2VzW2kgKyBub25HZW5lcmF0ZWRJbmRleF0tPnN0cnVjdHVyZSgpLT5pZCgpKTsK
KworICAgICAgICAgICAgQmluYXJ5U3dpdGNoIGJpbmFyeVN3aXRjaChzdGF0ZS5zY3JhdGNoR1BS
LCBjYXNlVmFsdWVzLCBCaW5hcnlTd2l0Y2g6OkludDMyKTsKKyAgICAgICAgICAgIHdoaWxlIChi
aW5hcnlTd2l0Y2guYWR2YW5jZShqaXQpKQorICAgICAgICAgICAgICAgIGNhc2VzW2JpbmFyeVN3
aXRjaC5jYXNlSW5kZXgoKSArIG5vbkdlbmVyYXRlZEluZGV4XS0+Z2VuZXJhdGUoc3RhdGUpOwor
ICAgICAgICAgICAgc3RhdGUuZmFpbEFuZFJlcGF0Y2guYXBwZW5kKGJpbmFyeVN3aXRjaC5mYWxs
VGhyb3VnaCgpKTsKKworICAgICAgICAgICAgaWYgKCFzdGF0ZS5mYWlsQW5kSWdub3JlLmVtcHR5
KCkpIHsKKyAgICAgICAgICAgICAgICBjYW5DaGFpbkFjY2Vzc0Nhc2VzID0gZmFsc2U7CisgICAg
ICAgICAgICAgICAgc3RhdGUuZmFpbEFuZElnbm9yZS5saW5rKCZqaXQpOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBpbmxpbmUgY2FjaGUg
b3B0aW1pemF0aW9uIGNvZGUga25vd3MgdGhhdCB3ZSBhcmUgdGFraW5nIHNsb3cgcGF0aCBiZWNh
dXNlCisgICAgICAgICAgICAgICAgLy8gb2Ygc29tZXRoaW5nIHRoYXQgaXNuJ3QgcGF0Y2hhYmxl
LiBUaGUgc2xvdyBwYXRoIHdpbGwgZGVjcmVtZW50ICJjb3VudGRvd24iIGFuZCB3aWxsIG9ubHkK
KyAgICAgICAgICAgICAgICAvLyBwYXRjaCB0aGluZ3MgaWYgdGhlIGNvdW50ZG93biByZWFjaGVz
IHplcm8uIFdlIGluY3JlbWVudCB0aGUgc2xvdyBwYXRoIGNvdW50IGhlcmUgdG8gZW5zdXJlCisg
ICAgICAgICAgICAgICAgLy8gdGhhdCB0aGUgc2xvdyBwYXRoIGRvZXMgbm90IHRyeSB0byBwYXRj
aC4KKyAgICAgICAgICAgICAgICBpZiAoY29kZUJsb2NrLT51c2VEYXRhSUMoKSkgeworI2lmIENQ
VShYODYpIHx8IENQVShYODZfNjQpCisgICAgICAgICAgICAgICAgICAgIGppdC5hZGQ4KENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm8u
bV9zdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mQ291bnRkb3duKCkpKTsK
KyNlbHNlCisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkOChDQ2FsbEhlbHBlcnM6OkFkZHJl
c3Moc3R1YkluZm8ubV9zdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mQ291
bnRkb3duKCkpLCBzdGF0ZS5zY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LmFk
ZDMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCBzdGF0ZS5zY3JhdGNoR1BSKTsKKyAg
ICAgICAgICAgICAgICAgICAgaml0LnN0b3JlOChzdGF0ZS5zY3JhdGNoR1BSLCBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3Moc3R1YkluZm8ubV9zdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9m
ZnNldE9mQ291bnRkb3duKCkpKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisj
aWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKKyAgICAgICAgICAgICAgICAgICAgaml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZzdHViSW5mby5jb3VudGRvd24pLCBzdGF0ZS5z
Y3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LmFkZDgoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoMSksIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdGF0ZS5zY3JhdGNoR1BSKSk7
CisjZWxzZQorICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDgoJnN0dWJJbmZvLmNvdW50ZG93
biwgc3RhdGUuc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgICAgIGppdC5hZGQzMihDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgc3RhdGUuc2NyYXRjaEdQUik7CisgICAgICAgICAg
ICAgICAgICAgIGppdC5zdG9yZTgoc3RhdGUuc2NyYXRjaEdQUiwgJnN0dWJJbmZvLmNvdW50ZG93
bik7CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZmFpbHVyZSA9IHN0YXRlLmZhaWxBbmRSZXBhdGNo
OzsKKyAgICAgICAgICAgIEFTU0VSVCghYWxsb2NhdG9yLmRpZFJldXNlUmVnaXN0ZXJzKCkpOwor
ICAgICAgICAgICAgZmFpbHVyZS5hcHBlbmQoaml0Lmp1bXAoKSk7CisKKyAgICAgICAgICAgIEFT
U0VSVCghKHN0YXRlLm5lZWRzVG9SZXN0b3JlUmVnaXN0ZXJzSWZFeGNlcHRpb24oKSAmJiBkb2Vz
SlNHZXR0ZXJTZXR0ZXJDYWxscykpOworCisgICAgICAgICAgICAvLyBGSVhNRTogTmVlZCB0byBm
aXggY2FuQ2hhaW5BY2Nlc3NDYXNlcy4KKyAgICAgICAgICAgIEZpeGVkVmVjdG9yPFN0cnVjdHVy
ZUlEPiB3ZWFrU3RydWN0dXJlcyhXVEZNb3ZlKHN0YXRlLndlYWtTdHJ1Y3R1cmVzKSk7CisgICAg
ICAgICAgICBpZiAoY29kZUJsb2NrLT51c2VEYXRhSUMoKSAmJiBjYW5CZVNoYXJlZCkgeworICAg
ICAgICAgICAgICAgIFNoYXJlZEpJVFN0dWJTZXQ6OlNlYXJjaGVyIHNlYXJjaGVyIHsKKyAgICAg
ICAgICAgICAgICAgICAgc3R1YkluZm8uYmFzZUdQUiwKKyAgICAgICAgICAgICAgICAgICAgc3R1
YkluZm8udmFsdWVHUFIsCisgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvLnJlZ3MudGhpc0dQ
UiwKKyAgICAgICAgICAgICAgICAgICAgc3R1YkluZm8ubV9zdHViSW5mb0dQUiwKKyAgICAgICAg
ICAgICAgICAgICAgc3R1YkluZm8ubV9hcnJheVByb2ZpbGVHUFIsCisgICAgICAgICAgICAgICAg
ICAgIHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMsCisgICAgICAgICAgICAgICAgICAgIGtleXMsCisg
ICAgICAgICAgICAgICAgICAgIHdlYWtTdHJ1Y3R1cmVzLAorICAgICAgICAgICAgICAgIH07Cisg
ICAgICAgICAgICAgICAgUmVmUHRyPFBvbHltb3JwaGljQWNjZXNzSklUU3R1YlJvdXRpbmU+IHN0
dWIgPSB2bS5tX3NoYXJlZEpJVFN0dWJzLT5maW5kKHNlYXJjaGVyKTsKKyAgICAgICAgICAgICAg
ICBpZiAoc3R1YikgeworICAgICAgICAgICAgICAgICAgICBkYXRhTG9nTG5JZihQb2x5bW9ycGhp
Y0FjY2Vzc0ludGVybmFsOjp2ZXJib3NlLCAiRm91bmQgZXhpc3RpbmcgY29kZSBzdHViICIsIHN0
dWItPmNvZGUoKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmaW5pc2hDb2RlR2VuZXJh
dGlvbihzdHViLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKGppdCwgY29kZUJsb2Nr
LCBMaW5rQnVmZmVyOjpQcm9maWxlOjpJbmxpbmVDYWNoZSwgSklUQ29tcGlsYXRpb25DYW5GYWls
KTsKKyAgICAgICAgICAgIGlmIChsaW5rQnVmZmVyLmRpZEZhaWxUb0FsbG9jYXRlKCkpIHsKKyAg
ICAgICAgICAgICAgICBkYXRhTG9nTG5JZihQb2x5bW9ycGhpY0FjY2Vzc0ludGVybmFsOjp2ZXJi
b3NlLCAiRGlkIGZhaWwgdG8gYWxsb2NhdGUuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFj
Y2Vzc0dlbmVyYXRpb25SZXN1bHQ6OkdhdmVVcDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4gc3VjY2Vzc0xhYmVsID0gc3R1
YkluZm8uZG9uZUxvY2F0aW9uOworCisgICAgICAgICAgICBpZiAoY29kZUJsb2NrLT51c2VEYXRh
SUMoKSkKKyAgICAgICAgICAgICAgICBBU1NFUlQoc3RhdGUuc3VjY2Vzcy5lbXB0eSgpKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsoc3RhdGUuc3Vj
Y2Vzcywgc3VjY2Vzc0xhYmVsKTsKKyAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhmYWlsdXJl
LCBDb2RlTG9jYXRpb25MYWJlbCB7IG1fc3R1YlJvdXRpbmUtPmNvZGUoKS5jb2RlKCkgfSk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGRhdGFMb2dMbklmKFBvbHltb3JwaGljQWNjZXNzSW50
ZXJuYWw6OnZlcmJvc2UsIEZ1bGxDb2RlT3JpZ2luKGNvZGVCbG9jaywgc3R1YkluZm8uY29kZU9y
aWdpbiksICI6IEdlbmVyYXRpbmcgcG9seW1vcnBoaWMgYWNjZXNzIHN0dWIgZm9yICIsIGxpc3RE
dW1wKGNhc2VzKSk7CisKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRTdHVi
Um91dGluZVB0clRhZz4gY29kZSA9IEZJTkFMSVpFX0NPREVfRk9SKAorICAgICAgICAgICAgICAg
IGNvZGVCbG9jaywgbGlua0J1ZmZlciwgSklUU3R1YlJvdXRpbmVQdHJUYWcsCisgICAgICAgICAg
ICAgICAgIiVzIiwgdG9DU3RyaW5nKCJBY2Nlc3Mgc3R1YiBmb3IgIiwgKmNvZGVCbG9jaywgIiAi
LCBzdHViSW5mby5jb2RlT3JpZ2luLCAiIHdpdGggcmV0dXJuIHBvaW50ICIsIHN1Y2Nlc3NMYWJl
bCwgIjogIiwgbGlzdER1bXAoY2FzZXMpKS5kYXRhKCkpOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBhdXRvIHN0dWIgPSBjcmVhdGVJQ0pJVFN0dWJSb3V0aW5lKGNvZGUsIFdURk1vdmUoa2V5
cyksIFdURk1vdmUod2Vha1N0cnVjdHVyZXMpLCB2bSwgY29kZUJsb2NrLCBkb2VzQ2FsbHMsIGNh
bkNoYWluQWNjZXNzQ2FzZXMsIGNlbGxzVG9NYXJrLCBXVEZNb3ZlKHN0YXRlLm1fY2FsbExpbmtJ
bmZvcyksIG51bGxwdHIsIHsgfSk7CisKKyAgICAgICAgICAgIGlmIChjb2RlQmxvY2stPnVzZURh
dGFJQygpKSB7CisgICAgICAgICAgICAgICAgaWYgKGNhbkJlU2hhcmVkKQorICAgICAgICAgICAg
ICAgICAgICB2bS5tX3NoYXJlZEpJVFN0dWJzLT5hZGQoU2hhcmVkSklUU3R1YlNldDo6SGFzaDo6
S2V5KHN0dWJJbmZvLmJhc2VHUFIsIHN0dWJJbmZvLnZhbHVlR1BSLCBzdHViSW5mby5yZWdzLnRo
aXNHUFIsIHN0dWJJbmZvLm1fc3R1YkluZm9HUFIsIHN0dWJJbmZvLm1fYXJyYXlQcm9maWxlR1BS
LCBzdHViSW5mby51c2VkUmVnaXN0ZXJzLCBzdHViLnB0cigpKSk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIHJldHVybiBmaW5pc2hDb2RlR2VuZXJhdGlvbihXVEZNb3ZlKHN0dWIpKTsK
KyAgICAgICAgfQorICAgIH0KKwogICAgIC8vIFJlZ2VuZXJhdGluZyBpcyBvdXIgb3Bwb3J0dW5p
dHkgdG8gZmlndXJlIG91dCB3aGF0IG91ciBsaXN0IG9mIGNhc2VzIHNob3VsZCBsb29rIGxpa2Uu
IFdlCiAgICAgLy8gZG8gdGhpcyBoZXJlLiBUaGUgbmV3bHkgcHJvZHVjZWQgJ2Nhc2VzJyBsaXN0
IG1heSBiZSBzbWFsbGVyIHRoYW4gbV9saXN0LiBXZSBkb24ndCBlZGl0CiAgICAgLy8gbV9saXN0
IGluLXBsYWNlIGJlY2F1c2Ugd2UgbWF5IHN0aWxsIGZhaWwsIGluIHdoaWNoIGNhc2Ugd2Ugd2Fu
dCB0aGUgUG9seW1vcnBoaWNBY2Nlc3Mgb2JqZWN0CkBAIC01MTAsOCArNzM5LDYgQEAgQWNjZXNz
R2VuZXJhdGlvblJlc3VsdCBQb2x5bW9ycGhpY0FjY2Vzczo6cmVnZW5lcmF0ZShjb25zdCBHQ1Nh
ZmVDb25jdXJyZW50SlNMb2MKICAgICAgICAgfQogICAgIH0KIAotICAgIGJvb2wgZ2VuZXJhdGVk
RmluYWxDb2RlID0gZmFsc2U7Ci0KICAgICAvLyBJZiB0aGUgcmVzdWx0aW5nIHNldCBvZiBjYXNl
cyBpcyBzbyBiaWcgdGhhdCB3ZSB3b3VsZCBzdG9wIGNhY2hpbmcgYW5kIHRoaXMgaXMgSW5zdGFu
Y2VPZiwKICAgICAvLyB0aGVuIHdlIHdhbnQgdG8gZ2VuZXJhdGUgdGhlIGdlbmVyaWMgSW5zdGFu
Y2VPZiBhbmQgdGhlbiBzdG9wLgogICAgIGlmIChjYXNlcy5zaXplKCkgPj0gT3B0aW9uczo6bWF4
QWNjZXNzVmFyaWFudExpc3RTaXplKCkKQEAgLTU2Miw2ICs3ODksNyBAQCBBY2Nlc3NHZW5lcmF0
aW9uUmVzdWx0IFBvbHltb3JwaGljQWNjZXNzOjpyZWdlbmVyYXRlKGNvbnN0IEdDU2FmZUNvbmN1
cnJlbnRKU0xvYwogICAgIGJvb2wgbmVlZHNJbnQzMlByb3BlcnR5Q2hlY2sgPSBmYWxzZTsKICAg
ICBib29sIG5lZWRzU3RyaW5nUHJvcGVydHlDaGVjayA9IGZhbHNlOwogICAgIGJvb2wgbmVlZHNT
eW1ib2xQcm9wZXJ0eUNoZWNrID0gZmFsc2U7CisgICAgYm9vbCBjYW5DaGFpbkFjY2Vzc0Nhc2Vz
ID0gdHJ1ZTsKICAgICBmb3IgKGF1dG8mIG5ld0Nhc2UgOiBjYXNlcykgewogICAgICAgICBpZiAo
IXN0dWJJbmZvLmhhc0NvbnN0YW50SWRlbnRpZmllcikgewogICAgICAgICAgICAgaWYgKG5ld0Nh
c2UtPnJlcXVpcmVzSWRlbnRpZmllck5hbWVNYXRjaCgpKSB7CkBAIC01NzcsMTAgKzgwNSwxNSBA
QCBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0IFBvbHltb3JwaGljQWNjZXNzOjpyZWdlbmVyYXRlKGNv
bnN0IEdDU2FmZUNvbmN1cnJlbnRKU0xvYwogICAgICAgICBpZiAobmV3Q2FzZS0+dXNlc1BvbHlQ
cm90bygpKQogICAgICAgICAgICAgY2FuQmVTaGFyZWQgPSBmYWxzZTsKICAgICB9Ci0gICAgaWYg
KG5lZWRzU3ltYm9sUHJvcGVydHlDaGVjayB8fCBuZWVkc1N0cmluZ1Byb3BlcnR5Q2hlY2sgfHwg
bmVlZHNJbnQzMlByb3BlcnR5Q2hlY2spCisgICAgaWYgKG5lZWRzU3ltYm9sUHJvcGVydHlDaGVj
ayB8fCBuZWVkc1N0cmluZ1Byb3BlcnR5Q2hlY2sgfHwgbmVlZHNJbnQzMlByb3BlcnR5Q2hlY2sp
IHsKICAgICAgICAgY2FuQmVTaGFyZWQgPSBmYWxzZTsKKyAgICAgICAgY2FuQ2hhaW5BY2Nlc3ND
YXNlcyA9IGZhbHNlOworICAgIH0KKyAgICBpZiAoIWFsbEd1YXJkZWRCeVN0cnVjdHVyZUNoZWNr
KQorICAgICAgICBjYW5DaGFpbkFjY2Vzc0Nhc2VzID0gZmFsc2U7CiAKLSAgICBhdXRvIGZpbmlz
aENvZGVHZW5lcmF0aW9uID0gWyZdKFJlZlB0cjxQb2x5bW9ycGhpY0FjY2Vzc0pJVFN0dWJSb3V0
aW5lPiYmIHN0dWIpIHsKKyAgICBhdXRvIGZpbmlzaENvZGVHZW5lcmF0aW9uID0gWyZdKFJlZjxQ
b2x5bW9ycGhpY0FjY2Vzc0pJVFN0dWJSb3V0aW5lPiYmIHN0dWIpIHsKKyAgICAgICAgbV9zdWJz
ZXF1ZW50U3R1YlJvdXRpbmVzLmNsZWFyKCk7CiAgICAgICAgIG1fc3R1YlJvdXRpbmUgPSBXVEZN
b3ZlKHN0dWIpOwogICAgICAgICBtX3dhdGNocG9pbnRzID0gV1RGTW92ZShzdGF0ZS53YXRjaHBv
aW50cyk7CiAgICAgICAgIGRhdGFMb2dMbklmKFBvbHltb3JwaGljQWNjZXNzSW50ZXJuYWw6OnZl
cmJvc2UsICJSZXR1cm5pbmc6ICIsIG1fc3R1YlJvdXRpbmUtPmNvZGUoKSk7CkBAIC02MDcsOSAr
ODQwLDEzIEBAIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgUG9seW1vcnBoaWNBY2Nlc3M6OnJlZ2Vu
ZXJhdGUoY29uc3QgR0NTYWZlQ29uY3VycmVudEpTTG9jCiAgICAgICAgIG9rLmxpbmsoJmppdCk7
CiAgICAgfQogCisgICAgc2l6ZV90IHN0YWNrUG9pbnRlckNoZWNraW5nU2l6ZSA9IGppdC5tX2Fz
c2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpOwogICAgIHN0YXRlLnByZXNlcnZlZFJldXNlZFJl
Z2lzdGVyU3RhdGUgPQogICAgICAgICBhbGxvY2F0b3IucHJlc2VydmVSZXVzZWRSZWdpc3RlcnNC
eVB1c2hpbmcoaml0LCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3I6OkV4dHJhU3RhY2tTcGFjZTo6
Tm9FeHRyYVNwYWNlKTsKLSAgICAKKyAgICAvLyBJZiB3ZSBuZWVkIHByb2xvZ3VlIGZvciByZWdp
c3RlciBzYXZlIC8gcmVzdG9yZSwgdGhlbiB3ZSBkaXNhYmxlIGNoYWluZWQgYWNjZXNzIGNhc2Vz
LgorICAgIGlmIChzdGFja1BvaW50ZXJDaGVja2luZ1NpemUgIT0gaml0Lm1fYXNzZW1ibGVyLmJ1
ZmZlcigpLmNvZGVTaXplKCkpCisgICAgICAgIGNhbkNoYWluQWNjZXNzQ2FzZXMgPSBmYWxzZTsK
KwogICAgIGlmIChjYXNlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gVGhpcyBpcyBzdXBlciB1
bmxpa2VseSwgYnV0IHdlIG1ha2UgaXQgbGVnYWwgYW55d2F5LgogICAgICAgICBzdGF0ZS5mYWls
QW5kUmVwYXRjaC5hcHBlbmQoaml0Lmp1bXAoKSk7CkBAIC03MTEsNyArOTQ4LDYgQEAgQWNjZXNz
R2VuZXJhdGlvblJlc3VsdCBQb2x5bW9ycGhpY0FjY2Vzczo6cmVnZW5lcmF0ZShjb25zdCBHQ1Nh
ZmVDb25jdXJyZW50SlNMb2MKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRlLmZhaWxBbmRSZXBh
dGNoLmFwcGVuZChmYWxsVGhyb3VnaCk7Ci0KICAgICB9IGVsc2UgewogICAgICAgICBqaXQubG9h
ZDMyKAogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0YXRlLmJhc2VHUFIsIEpT
Q2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksCkBAIC03MjgsNiArOTY0LDcgQEAgQWNjZXNzR2Vu
ZXJhdGlvblJlc3VsdCBQb2x5bW9ycGhpY0FjY2Vzczo6cmVnZW5lcmF0ZShjb25zdCBHQ1NhZmVD
b25jdXJyZW50SlNMb2MKICAgICB9CiAKICAgICBpZiAoIXN0YXRlLmZhaWxBbmRJZ25vcmUuZW1w
dHkoKSkgeworICAgICAgICBjYW5DaGFpbkFjY2Vzc0Nhc2VzID0gZmFsc2U7CiAgICAgICAgIHN0
YXRlLmZhaWxBbmRJZ25vcmUubGluaygmaml0KTsKICAgICAgICAgCiAgICAgICAgIC8vIE1ha2Ug
c3VyZSB0aGF0IHRoZSBpbmxpbmUgY2FjaGUgb3B0aW1pemF0aW9uIGNvZGUga25vd3MgdGhhdCB3
ZSBhcmUgdGFraW5nIHNsb3cgcGF0aCBiZWNhdXNlCkBAIC03NjAsMTEgKzk5NywyMSBAQCBBY2Nl
c3NHZW5lcmF0aW9uUmVzdWx0IFBvbHltb3JwaGljQWNjZXNzOjpyZWdlbmVyYXRlKGNvbnN0IEdD
U2FmZUNvbmN1cnJlbnRKU0xvYwogICAgICAgICBzdGF0ZS5yZXN0b3JlU2NyYXRjaCgpOwogICAg
IH0gZWxzZQogICAgICAgICBmYWlsdXJlID0gc3RhdGUuZmFpbEFuZFJlcGF0Y2g7Ci0gICAgZmFp
bHVyZS5hcHBlbmQoaml0Lmp1bXAoKSk7CisKKyAgICBpZiAoY29kZUJsb2NrLT51c2VEYXRhSUMo
KSkgeworICAgICAgICBmYWlsdXJlLmxpbmsoJmppdCk7CisgICAgICAgIC8vIEluIEFSTTY0LCB3
ZSBkbyBub3QgcHVzaCBhbnl0aGluZyBvbiBzdGFjayBzcGVjaWFsbHkuCisgICAgICAgIC8vIFNv
IHdlIGNhbiBqdXN0IGp1bXAgdG8gdGhlIHNsb3ctcGF0aCBldmVuIHRob3VnaCB0aGlzIHRodW5r
IGlzIGNhbGxlZCAobm90IGp1bXBlZCkuCisgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdGFp
bCBjYWxsIHRvIHRoZSB0aHVuayB3aGljaCBjYWxscyB0aGUgc2xvdyBwYXRoIGZ1bmN0aW9uLgor
ICAgICAgICAvLyBBbmQgd2Ugc2hvdWxkIGVsaW1pbmF0ZSBJQyBzbG93LXBhdGggZ2VuZXJhdGlv
biBpbiBCYXNlbGluZUpJVC4KKyAgICAgICAgaml0LmZhckp1bXAoQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKHN0dWJJbmZvLm1fc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZlNs
b3dQYXRoU3RhcnRMb2NhdGlvbigpKSwgSklUU3R1YlJvdXRpbmVQdHJUYWcpOworICAgIH0gZWxz
ZQorICAgICAgICBmYWlsdXJlLmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgIENvZGVCbG9jayog
Y29kZUJsb2NrVGhhdE93bnNFeGNlcHRpb25IYW5kbGVycyA9IG51bGxwdHI7CiAgICAgRGlzcG9z
YWJsZUNhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleEZvckV4Y2VwdGlvbkhhbmRsaW5nOwogICAg
IGlmIChzdGF0ZS5uZWVkc1RvUmVzdG9yZVJlZ2lzdGVyc0lmRXhjZXB0aW9uKCkgJiYgZG9lc0pT
R2V0dGVyU2V0dGVyQ2FsbHMpIHsKKyAgICAgICAgY2FuQ2hhaW5BY2Nlc3NDYXNlcyA9IGZhbHNl
OwogICAgICAgICAvLyBFbWl0IHRoZSBleGNlcHRpb24gaGFuZGxlci4KICAgICAgICAgLy8gTm90
ZSB0aGF0IHRoaXMgY29kZSBpcyBvbmx5IHJlYWNoYWJsZSB3aGVuIGRvaW5nIGdlbmVyaWNVbndp
bmQgZnJvbSBhIHB1cmUgSlMgZ2V0dGVyL3NldHRlciAuCiAgICAgICAgIC8vIE5vdGUgYWxzbyB0
aGF0IHRoaXMgaXMgbm90IHJlYWNoYWJsZSBmcm9tIGN1c3RvbSBnZXR0ZXIvc2V0dGVyLiBDdXN0
b20gZ2V0dGVyL3NldHRlcnMgd2lsbCBoYXZlIApAQCAtODA0LDE2ICsxMDUxLDcgQEAgQWNjZXNz
R2VuZXJhdGlvblJlc3VsdCBQb2x5bW9ycGhpY0FjY2Vzczo6cmVnZW5lcmF0ZShjb25zdCBHQ1Nh
ZmVDb25jdXJyZW50SlNMb2MKICAgICAgICAgY2FsbFNpdGVJbmRleEZvckV4Y2VwdGlvbkhhbmRs
aW5nID0gc3RhdGUuY2FsbFNpdGVJbmRleEZvckV4Y2VwdGlvbkhhbmRsaW5nKCk7CiAgICAgfQog
Ci0gICAgaWYgKGNvZGVCbG9jay0+dXNlRGF0YUlDKCkpIHsKLSAgICAgICAgZmFpbHVyZS5saW5r
KCZqaXQpOwotICAgICAgICAvLyBJbiBBUk02NCwgd2UgZG8gbm90IHB1c2ggYW55dGhpbmcgb24g
c3RhY2sgc3BlY2lhbGx5LgotICAgICAgICAvLyBTbyB3ZSBjYW4ganVzdCBqdW1wIHRvIHRoZSBz
bG93LXBhdGggZXZlbiB0aG91Z2ggdGhpcyB0aHVuayBpcyBjYWxsZWQgKG5vdCBqdW1wZWQpLgot
ICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRhaWwgY2FsbCB0byB0aGUgdGh1bmsgd2hpY2gg
Y2FsbHMgdGhlIHNsb3cgcGF0aCBmdW5jdGlvbi4KLSAgICAgICAgLy8gQW5kIHdlIHNob3VsZCBl
bGltaW5hdGUgSUMgc2xvdy1wYXRoIGdlbmVyYXRpb24gaW4gQmFzZWxpbmVKSVQuCi0gICAgICAg
IGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mby5tX3N0dWJJbmZvR1BS
LCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZTbG93UGF0aFN0YXJ0TG9jYXRpb24oKSksIEpJ
VFN0dWJSb3V0aW5lUHRyVGFnKTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8UG9seW1vcnBoaWNBY2Nl
c3NKSVRTdHViUm91dGluZT4gc3R1YjsKKyAgICAvLyBGSVhNRTogTmVlZCB0byBmaXggY2FuQ2hh
aW5BY2Nlc3NDYXNlcy4KICAgICBGaXhlZFZlY3RvcjxTdHJ1Y3R1cmVJRD4gd2Vha1N0cnVjdHVy
ZXMoV1RGTW92ZShzdGF0ZS53ZWFrU3RydWN0dXJlcykpOwogICAgIGlmIChjb2RlQmxvY2stPnVz
ZURhdGFJQygpICYmIGNhbkJlU2hhcmVkKSB7CiAgICAgICAgIFNoYXJlZEpJVFN0dWJTZXQ6OlNl
YXJjaGVyIHNlYXJjaGVyIHsKQEAgLTgyNiwxMCArMTA2NCwxMCBAQCBBY2Nlc3NHZW5lcmF0aW9u
UmVzdWx0IFBvbHltb3JwaGljQWNjZXNzOjpyZWdlbmVyYXRlKGNvbnN0IEdDU2FmZUNvbmN1cnJl
bnRKU0xvYwogICAgICAgICAgICAga2V5cywKICAgICAgICAgICAgIHdlYWtTdHJ1Y3R1cmVzLAog
ICAgICAgICB9OwotICAgICAgICBzdHViID0gdm0ubV9zaGFyZWRKSVRTdHVicy0+ZmluZChzZWFy
Y2hlcik7CisgICAgICAgIFJlZlB0cjxQb2x5bW9ycGhpY0FjY2Vzc0pJVFN0dWJSb3V0aW5lPiBz
dHViID0gdm0ubV9zaGFyZWRKSVRTdHVicy0+ZmluZChzZWFyY2hlcik7CiAgICAgICAgIGlmIChz
dHViKSB7CiAgICAgICAgICAgICBkYXRhTG9nTG5JZihQb2x5bW9ycGhpY0FjY2Vzc0ludGVybmFs
Ojp2ZXJib3NlLCAiRm91bmQgZXhpc3RpbmcgY29kZSBzdHViICIsIHN0dWItPmNvZGUoKSk7Ci0g
ICAgICAgICAgICByZXR1cm4gZmluaXNoQ29kZUdlbmVyYXRpb24oV1RGTW92ZShzdHViKSk7Cisg
ICAgICAgICAgICByZXR1cm4gZmluaXNoQ29kZUdlbmVyYXRpb24oc3R1Yi5yZWxlYXNlTm9uTnVs
bCgpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtODU0LDExICsxMDkyLDExIEBAIEFjY2Vzc0dl
bmVyYXRpb25SZXN1bHQgUG9seW1vcnBoaWNBY2Nlc3M6OnJlZ2VuZXJhdGUoY29uc3QgR0NTYWZl
Q29uY3VycmVudEpTTG9jCiAgICAgICAgIGNvZGVCbG9jaywgbGlua0J1ZmZlciwgSklUU3R1YlJv
dXRpbmVQdHJUYWcsCiAgICAgICAgICIlcyIsIHRvQ1N0cmluZygiQWNjZXNzIHN0dWIgZm9yICIs
ICpjb2RlQmxvY2ssICIgIiwgc3R1YkluZm8uY29kZU9yaWdpbiwgIiB3aXRoIHJldHVybiBwb2lu
dCAiLCBzdWNjZXNzTGFiZWwsICI6ICIsIGxpc3REdW1wKGNhc2VzKSkuZGF0YSgpKTsKICAgICAK
LSAgICBzdHViID0gY3JlYXRlSUNKSVRTdHViUm91dGluZShjb2RlLCBXVEZNb3ZlKGtleXMpLCBX
VEZNb3ZlKHdlYWtTdHJ1Y3R1cmVzKSwgdm0sIGNvZGVCbG9jaywgZG9lc0NhbGxzLCBjZWxsc1Rv
TWFyaywgV1RGTW92ZShzdGF0ZS5tX2NhbGxMaW5rSW5mb3MpLCBjb2RlQmxvY2tUaGF0T3duc0V4
Y2VwdGlvbkhhbmRsZXJzLCBjYWxsU2l0ZUluZGV4Rm9yRXhjZXB0aW9uSGFuZGxpbmcpOworICAg
IGF1dG8gc3R1YiA9IGNyZWF0ZUlDSklUU3R1YlJvdXRpbmUoY29kZSwgV1RGTW92ZShrZXlzKSwg
V1RGTW92ZSh3ZWFrU3RydWN0dXJlcyksIHZtLCBjb2RlQmxvY2ssIGRvZXNDYWxscywgY2FuQ2hh
aW5BY2Nlc3NDYXNlcywgY2VsbHNUb01hcmssIFdURk1vdmUoc3RhdGUubV9jYWxsTGlua0luZm9z
KSwgY29kZUJsb2NrVGhhdE93bnNFeGNlcHRpb25IYW5kbGVycywgY2FsbFNpdGVJbmRleEZvckV4
Y2VwdGlvbkhhbmRsaW5nKTsKIAogICAgIGlmIChjb2RlQmxvY2stPnVzZURhdGFJQygpKSB7CiAg
ICAgICAgIGlmIChjYW5CZVNoYXJlZCkKLSAgICAgICAgICAgIHZtLm1fc2hhcmVkSklUU3R1YnMt
PmFkZChTaGFyZWRKSVRTdHViU2V0OjpIYXNoOjpLZXkoc3R1YkluZm8uYmFzZUdQUiwgc3R1Yklu
Zm8udmFsdWVHUFIsIHN0dWJJbmZvLnJlZ3MudGhpc0dQUiwgc3R1YkluZm8ubV9zdHViSW5mb0dQ
Uiwgc3R1YkluZm8ubV9hcnJheVByb2ZpbGVHUFIsIHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMsIHN0
dWIuZ2V0KCkpKTsKKyAgICAgICAgICAgIHZtLm1fc2hhcmVkSklUU3R1YnMtPmFkZChTaGFyZWRK
SVRTdHViU2V0OjpIYXNoOjpLZXkoc3R1YkluZm8uYmFzZUdQUiwgc3R1YkluZm8udmFsdWVHUFIs
IHN0dWJJbmZvLnJlZ3MudGhpc0dQUiwgc3R1YkluZm8ubV9zdHViSW5mb0dQUiwgc3R1YkluZm8u
bV9hcnJheVByb2ZpbGVHUFIsIHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMsIHN0dWIucHRyKCkpKTsK
ICAgICB9CiAKICAgICByZXR1cm4gZmluaXNoQ29kZUdlbmVyYXRpb24oV1RGTW92ZShzdHViKSk7
CkBAIC04NjgsNiArMTEwNiw4IEBAIHZvaWQgUG9seW1vcnBoaWNBY2Nlc3M6OmFib3V0VG9EaWUo
KQogewogICAgIGlmIChtX3N0dWJSb3V0aW5lKQogICAgICAgICBtX3N0dWJSb3V0aW5lLT5hYm91
dFRvRGllKCk7CisgICAgZm9yIChhdXRvJiBzdHViIDogbV9zdWJzZXF1ZW50U3R1YlJvdXRpbmVz
KQorICAgICAgICBzdHViLT5hYm91dFRvRGllKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNj
ZXNzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3Mu
aAppbmRleCBkMDQyZDFhNGZlMjlkMDNhMDAzYzgwYzUxZjcxNmQ5NjNlOGY5NjkzLi4wNDA2N2Fj
YThiNTA1NmZhNGVhMWM5MmRlMGYzNGRhMGE3OGUwN2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaApAQCAtMTQwLDEwICsxNDAs
MTAgQEAgY2xhc3MgUG9seW1vcnBoaWNBY2Nlc3MgewogICAgIC8vIFdoZW4gdGhpcyBmYWlscyAo
cmV0dXJucyBHYXZlVXApLCB0aGlzIHdpbGwgbGVhdmUgdGhlIG9sZCBzdHViIGludGFjdCBidXQg
eW91IHNob3VsZCBub3QgdHJ5CiAgICAgLy8gdG8gY2FsbCB0aGlzIG1ldGhvZCBhZ2FpbiBmb3Ig
dGhhdCBQb2x5bW9ycGhpY0FjY2VzcyBpbnN0YW5jZS4KICAgICBBY2Nlc3NHZW5lcmF0aW9uUmVz
dWx0IGFkZENhc2VzKAotICAgICAgICBjb25zdCBHQ1NhZmVDb25jdXJyZW50SlNMb2NrZXImLCBW
TSYsIENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJbmZvJiwgVmVjdG9yPFJlZlB0cjxBY2Nlc3ND
YXNlPiwgMj4pOworICAgICAgICBjb25zdCBHQ1NhZmVDb25jdXJyZW50SlNMb2NrZXImLCBWTSYs
IENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJbmZvJiwgVmVjdG9yPFJlZjxBY2Nlc3NDYXNlPiwg
Mj4mJik7CiAKICAgICBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0IGFkZENhc2UoCi0gICAgICAgIGNv
bnN0IEdDU2FmZUNvbmN1cnJlbnRKU0xvY2tlciYsIFZNJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJl
U3R1YkluZm8mLCBSZWY8QWNjZXNzQ2FzZT4pOworICAgICAgICBjb25zdCBHQ1NhZmVDb25jdXJy
ZW50SlNMb2NrZXImLCBWTSYsIENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJbmZvJiwgUmVmPEFj
Y2Vzc0Nhc2U+JiYpOwogICAgIAogICAgIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgcmVnZW5lcmF0
ZShjb25zdCBHQ1NhZmVDb25jdXJyZW50SlNMb2NrZXImLCBWTSYsIEpTR2xvYmFsT2JqZWN0Kiwg
Q29kZUJsb2NrKiwgRUNNQU1vZGUsIFN0cnVjdHVyZVN0dWJJbmZvJik7CiAgICAgCkBAIC0xNzAs
NyArMTcwLDEzIEBAIGNsYXNzIFBvbHltb3JwaGljQWNjZXNzIHsKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgICAgICB1aW50cHRyX3QgcGNBc0ludCA9IGJpdHdpc2VfY2FzdDx1aW50
cHRyX3Q+KHBjKTsKLSAgICAgICAgcmV0dXJuIG1fc3R1YlJvdXRpbmUtPnN0YXJ0QWRkcmVzcygp
IDw9IHBjQXNJbnQgJiYgcGNBc0ludCA8PSBtX3N0dWJSb3V0aW5lLT5lbmRBZGRyZXNzKCk7Cisg
ICAgICAgIGlmIChtX3N0dWJSb3V0aW5lLT5zdGFydEFkZHJlc3MoKSA8PSBwY0FzSW50ICYmIHBj
QXNJbnQgPD0gbV9zdHViUm91dGluZS0+ZW5kQWRkcmVzcygpKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIGZvciAoYXV0byYgc3R1YiA6IG1fc3Vic2VxdWVudFN0dWJSb3V0aW5l
cykgeworICAgICAgICAgICAgaWYgKHN0dWItPnN0YXJ0QWRkcmVzcygpIDw9IHBjQXNJbnQgJiYg
cGNBc0ludCA8PSBzdHViLT5lbmRBZGRyZXNzKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogcHJpdmF0ZToK
QEAgLTE4Niw2ICsxOTIsNyBAQCBjbGFzcyBQb2x5bW9ycGhpY0FjY2VzcyB7CiAKICAgICBMaXN0
VHlwZSBtX2xpc3Q7CiAgICAgUmVmUHRyPFBvbHltb3JwaGljQWNjZXNzSklUU3R1YlJvdXRpbmU+
IG1fc3R1YlJvdXRpbmU7CisgICAgVmVjdG9yPFJlZlB0cjxQb2x5bW9ycGhpY0FjY2Vzc0pJVFN0
dWJSb3V0aW5lPj4gbV9zdWJzZXF1ZW50U3R1YlJvdXRpbmVzOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1YkluZm8+IG1fd2F0Y2hwb2ludHM7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZv
LmNwcAppbmRleCA3MmYwMjkxMTFmNjU3YTFhMTRlNTE4MGFiOTAwNGE5MGJjNjZkZGQwLi5mOTRh
NTQwYTI0ZDczMjM0ZGJkZDE1ZjQwY2I3Mjg1NGE5MGVkZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAKQEAgLTEyNSwy
MSArMTI1LDIxIEBAIHZvaWQgU3RydWN0dXJlU3R1YkluZm86OmFib3V0VG9EaWUoKQogQWNjZXNz
R2VuZXJhdGlvblJlc3VsdCBTdHJ1Y3R1cmVTdHViSW5mbzo6YWRkQWNjZXNzQ2FzZSgKICAgICBj
b25zdCBHQ1NhZmVDb25jdXJyZW50SlNMb2NrZXImIGxvY2tlciwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEVDTUFNb2RlIGVjbWFNb2RlLCBDYWNo
ZWFibGVJZGVudGlmaWVyIGlkZW50LCBSZWZQdHI8QWNjZXNzQ2FzZT4gYWNjZXNzQ2FzZSkKIHsK
LSAgICBjaGVja0NvbnNpc3RlbmN5KCk7Ci0KICAgICBWTSYgdm0gPSBjb2RlQmxvY2stPnZtKCk7
CiAgICAgQVNTRVJUKHZtLmhlYXAuaXNEZWZlcnJlZCgpKTsKLSAgICBBY2Nlc3NHZW5lcmF0aW9u
UmVzdWx0IHJlc3VsdCA9IChbJl0gKCkgLT4gQWNjZXNzR2VuZXJhdGlvblJlc3VsdCB7Ci0gICAg
ICAgIGlmIChTdHJ1Y3R1cmVTdHViSW5mb0ludGVybmFsOjp2ZXJib3NlKQotICAgICAgICAgICAg
ZGF0YUxvZygiQWRkaW5nIGFjY2VzcyBjYXNlOiAiLCBhY2Nlc3NDYXNlLCAiXG4iKTsKLSAgICAg
ICAgCi0gICAgICAgIGlmICghYWNjZXNzQ2FzZSkKLSAgICAgICAgICAgIHJldHVybiBBY2Nlc3NH
ZW5lcmF0aW9uUmVzdWx0OjpHYXZlVXA7Ci0gICAgICAgIAorCisgICAgY2hlY2tDb25zaXN0ZW5j
eSgpOworCisgICAgZGF0YUxvZ0xuSWYoU3RydWN0dXJlU3R1YkluZm9JbnRlcm5hbDo6dmVyYm9z
ZSwgIkFkZGluZyBhY2Nlc3MgY2FzZTogIiwgYWNjZXNzQ2FzZSk7CisKKyAgICBpZiAoIWFjY2Vz
c0Nhc2UpCisgICAgICAgIHJldHVybiBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0OjpHYXZlVXA7CisK
KyAgICBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0IHJlc3VsdCA9IChbJl0gKFJlZjxBY2Nlc3NDYXNl
PiYmIGFjY2Vzc0Nhc2UpIC0+IEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgewogICAgICAgICBBY2Nl
c3NHZW5lcmF0aW9uUmVzdWx0IHJlc3VsdDsKICAgICAgICAgCiAgICAgICAgIGlmIChtX2NhY2hl
VHlwZSA9PSBDYWNoZVR5cGU6OlN0dWIpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHUuc3R1Yi0+
YWRkQ2FzZShsb2NrZXIsIHZtLCBjb2RlQmxvY2ssICp0aGlzLCBhY2Nlc3NDYXNlLnJlbGVhc2VO
b25OdWxsKCkpOworICAgICAgICAgICAgcmVzdWx0ID0gdS5zdHViLT5hZGRDYXNlKGxvY2tlciwg
dm0sIGNvZGVCbG9jaywgKnRoaXMsIFdURk1vdmUoYWNjZXNzQ2FzZSkpOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICBpZiAoU3RydWN0dXJlU3R1YkluZm9JbnRlcm5hbDo6dmVyYm9zZSkKICAg
ICAgICAgICAgICAgICBkYXRhTG9nKCJIYWQgc3R1YiwgcmVzdWx0OiAiLCByZXN1bHQsICJcbiIp
OwpAQCAtMTU0LDExICsxNTQsMTEgQEAgQWNjZXNzR2VuZXJhdGlvblJlc3VsdCBTdHJ1Y3R1cmVT
dHViSW5mbzo6YWRkQWNjZXNzQ2FzZSgKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxQb2x5bW9ycGhpY0FjY2Vzcz4gYWNjZXNzID0gbWFrZVVuaXF1ZTxQb2x5
bW9ycGhpY0FjY2Vzcz4oKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgVmVjdG9yPFJlZlB0
cjxBY2Nlc3NDYXNlPiwgMj4gYWNjZXNzQ2FzZXM7CisgICAgICAgICAgICBWZWN0b3I8UmVmPEFj
Y2Vzc0Nhc2U+LCAyPiBhY2Nlc3NDYXNlczsKICAgICAgICAgICAgIAogICAgICAgICAgICAgYXV0
byBwcmV2aW91c0Nhc2UgPSBBY2Nlc3NDYXNlOjpmcm9tU3RydWN0dXJlU3R1YkluZm8odm0sIGNv
ZGVCbG9jaywgaWRlbnQsICp0aGlzKTsKICAgICAgICAgICAgIGlmIChwcmV2aW91c0Nhc2UpCi0g
ICAgICAgICAgICAgICAgYWNjZXNzQ2FzZXMuYXBwZW5kKFdURk1vdmUocHJldmlvdXNDYXNlKSk7
CisgICAgICAgICAgICAgICAgYWNjZXNzQ2FzZXMuYXBwZW5kKHByZXZpb3VzQ2FzZS5yZWxlYXNl
Tm9uTnVsbCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgYWNjZXNzQ2FzZXMuYXBwZW5k
KFdURk1vdmUoYWNjZXNzQ2FzZSkpOwogICAgICAgICAgICAgCkBAIC0yMjYsNyArMjI2LDcgQEAg
QWNjZXNzR2VuZXJhdGlvblJlc3VsdCBTdHJ1Y3R1cmVTdHViSW5mbzo6YWRkQWNjZXNzQ2FzZSgK
ICAgICAgICAgLy8gZ2F0aGVyIGVub3VnaCBjYXNlcy4KICAgICAgICAgYnVmZmVyaW5nQ291bnRk
b3duID0gT3B0aW9uczo6cmVwYXRjaEJ1ZmZlcmluZ0NvdW50ZG93bigpOwogICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgIH0pKCk7CisgICAgfSkoYWNjZXNzQ2FzZS5yZWxlYXNlTm9uTnVsbCgp
KTsKICAgICB2bS53cml0ZUJhcnJpZXIoY29kZUJsb2NrKTsKICAgICByZXR1cm4gcmVzdWx0Owog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJv
dXRpbmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRp
bmUuY3BwCmluZGV4IGYwMzMyMWM1NGQ5NjYwM2U1ZmNmMjk3NGUxM2UwOTkwMGVjZWJjMzMuLjdm
MTdmMDNkZWE4NzNiYmVhOWM4MDdlNmU4NWVkOWM3NDdkMDk0OWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0dDQXdhcmVKSVRTdHViUm91dGluZS5jcHAKQEAgLTUyLDYg
KzUyLDExIEBAIHZvaWQgR0NBd2FyZUpJVFN0dWJSb3V0aW5lOjptYWtlR0NBd2FyZShWTSYgdm0p
CiAgICAgbV9pc0dDQXdhcmUgPSB0cnVlOwogfQogCit2b2lkIEdDQXdhcmVKSVRTdHViUm91dGlu
ZTo6bWFrZUNhbkNoYWluQWNjZXNzQ2FzZXMoKQoreworICAgIG1fY2FuQ2hhaW5BY2Nlc3NDYXNl
cyA9IHRydWU7Cit9CisKIHZvaWQgR0NBd2FyZUpJVFN0dWJSb3V0aW5lOjpvYnNlcnZlWmVyb1Jl
ZkNvdW50KCkKIHsKICAgICBpZiAobV9pc0pldHRpc29uZWQgfHwgIW1faXNHQ0F3YXJlKSB7CkBA
IC0xODgsNiArMTkzLDcgQEAgUmVmPFBvbHltb3JwaGljQWNjZXNzSklUU3R1YlJvdXRpbmU+IGNy
ZWF0ZUlDSklUU3R1YlJvdXRpbmUoCiAgICAgVk0mIHZtLAogICAgIGNvbnN0IEpTQ2VsbCogb3du
ZXIsCiAgICAgYm9vbCBtYWtlc0NhbGxzLAorICAgIGJvb2wgY2FuQ2hhaW5BY2Nlc3NDYXNlcywK
ICAgICBjb25zdCBWZWN0b3I8SlNDZWxsKj4mIGNlbGxzLAogICAgIEJhZzxDYWxsTGlua0luZm8+
JiYgY2FsbExpbmtJbmZvcywKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9ja0ZvckV4Y2VwdGlvbkhh
bmRsZXJzLApAQCAtMTk2LDI0ICsyMDIsMzMgQEAgUmVmPFBvbHltb3JwaGljQWNjZXNzSklUU3R1
YlJvdXRpbmU+IGNyZWF0ZUlDSklUU3R1YlJvdXRpbmUoCiAgICAgaWYgKCFtYWtlc0NhbGxzKSB7
CiAgICAgICAgIC8vIEFsbG9jYXRpbmcgQ2FsbExpbmtJbmZvcyBtZWFucyB3ZSBzaG91bGQgaGF2
ZSBjYWxscy4KICAgICAgICAgQVNTRVJUKGNhbGxMaW5rSW5mb3MuaXNFbXB0eSgpKTsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUG9seW1vcnBoaWNBY2Nlc3NKSVRTdHViUm91dGluZShj
b2RlLCB2bSwgV1RGTW92ZShjYXNlcyksIFdURk1vdmUod2Vha1N0cnVjdHVyZXMpKSk7CisgICAg
ICAgIGF1dG8gc3R1YiA9IGFkb3B0UmVmKCpuZXcgUG9seW1vcnBoaWNBY2Nlc3NKSVRTdHViUm91
dGluZShjb2RlLCB2bSwgV1RGTW92ZShjYXNlcyksIFdURk1vdmUod2Vha1N0cnVjdHVyZXMpKSk7
CisgICAgICAgIGlmIChjYW5DaGFpbkFjY2Vzc0Nhc2VzKQorICAgICAgICAgICAgc3R1Yi0+bWFr
ZUNhbkNoYWluQWNjZXNzQ2FzZXMoKTsKKyAgICAgICAgcmV0dXJuIHN0dWI7CiAgICAgfQogICAg
IAogICAgIGlmIChjb2RlQmxvY2tGb3JFeGNlcHRpb25IYW5kbGVycykgewogICAgICAgICBSRUxF
QVNFX0FTU0VSVChKSVRDb2RlOjppc09wdGltaXppbmdKSVQoY29kZUJsb2NrRm9yRXhjZXB0aW9u
SGFuZGxlcnMtPmppdFR5cGUoKSkpOwogICAgICAgICBhdXRvIHN0dWIgPSBhZG9wdFJlZigqbmV3
IEdDQXdhcmVKSVRTdHViUm91dGluZVdpdGhFeGNlcHRpb25IYW5kbGVyKGNvZGUsIHZtLCBXVEZN
b3ZlKGNhc2VzKSwgV1RGTW92ZSh3ZWFrU3RydWN0dXJlcyksIG93bmVyLCBjZWxscywgV1RGTW92
ZShjYWxsTGlua0luZm9zKSwgY29kZUJsb2NrRm9yRXhjZXB0aW9uSGFuZGxlcnMsIGV4Y2VwdGlv
bkhhbmRsZXJDYWxsU2l0ZUluZGV4KSk7CiAgICAgICAgIHN0dWItPm1ha2VHQ0F3YXJlKHZtKTsK
KyAgICAgICAgaWYgKGNhbkNoYWluQWNjZXNzQ2FzZXMpCisgICAgICAgICAgICBzdHViLT5tYWtl
Q2FuQ2hhaW5BY2Nlc3NDYXNlcygpOwogICAgICAgICByZXR1cm4gc3R1YjsKICAgICB9CiAKICAg
ICBpZiAoY2VsbHMuaXNFbXB0eSgpICYmIGNhbGxMaW5rSW5mb3MuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIGF1dG8gc3R1YiA9IGFkb3B0UmVmKCpuZXcgUG9seW1vcnBoaWNBY2Nlc3NKSVRTdHViUm91
dGluZShjb2RlLCB2bSwgV1RGTW92ZShjYXNlcyksIFdURk1vdmUod2Vha1N0cnVjdHVyZXMpKSk7
CiAgICAgICAgIHN0dWItPm1ha2VHQ0F3YXJlKHZtKTsKKyAgICAgICAgaWYgKGNhbkNoYWluQWNj
ZXNzQ2FzZXMpCisgICAgICAgICAgICBzdHViLT5tYWtlQ2FuQ2hhaW5BY2Nlc3NDYXNlcygpOwog
ICAgICAgICByZXR1cm4gc3R1YjsKICAgICB9CiAgICAgCiAgICAgYXV0byBzdHViID0gYWRvcHRS
ZWYoKm5ldyBNYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lKGNvZGUsIHZtLCBXVEZNb3ZlKGNh
c2VzKSwgV1RGTW92ZSh3ZWFrU3RydWN0dXJlcyksIG93bmVyLCBjZWxscywgV1RGTW92ZShjYWxs
TGlua0luZm9zKSkpOwogICAgIHN0dWItPm1ha2VHQ0F3YXJlKHZtKTsKKyAgICBpZiAoY2FuQ2hh
aW5BY2Nlc3NDYXNlcykKKyAgICAgICAgc3R1Yi0+bWFrZUNhbkNoYWluQWNjZXNzQ2FzZXMoKTsK
ICAgICByZXR1cm4gc3R1YjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
R0NBd2FyZUpJVFN0dWJSb3V0aW5lLmgKaW5kZXggM2E2N2RmYmM1ODZmYjdhNWNkZWZmMjE1Zjg0
NDY4OGEyMGNiOWU2YS4uNGIzMzhhZjBmYTUwYTY3YTJhODFhM2FhZTFkNTQ3MmZmNmQ2MGNlMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRp
bmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dDQXdhcmVKSVRTdHViUm91dGlu
ZS5oCkBAIC03NSw2ICs3NSw5IEBAIGNsYXNzIEdDQXdhcmVKSVRTdHViUm91dGluZSA6IHB1Ymxp
YyBKSVRTdHViUm91dGluZSB7CiAgICAgdm9pZCBkZWxldGVGcm9tR0MoKTsKIAogICAgIHZvaWQg
bWFrZUdDQXdhcmUoVk0mKTsKKyAgICB2b2lkIG1ha2VDYW5DaGFpbkFjY2Vzc0Nhc2VzKCk7CisK
KyAgICBib29sIGNhbkNoYWluQWNjZXNzQ2FzZXMoKSBjb25zdCB7IHJldHVybiBtX2NhbkNoYWlu
QWNjZXNzQ2FzZXM7IH0KICAgICAKIHByb3RlY3RlZDoKICAgICB2b2lkIG9ic2VydmVaZXJvUmVm
Q291bnQoKSBvdmVycmlkZTsKQEAgLTg4LDYgKzkxLDcgQEAgY2xhc3MgR0NBd2FyZUpJVFN0dWJS
b3V0aW5lIDogcHVibGljIEpJVFN0dWJSb3V0aW5lIHsKICAgICBib29sIG1fbWF5QmVFeGVjdXRp
bmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0pldHRpc29uZWQgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9pc0dDQXdhcmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9jYW5DaGFpbkFjY2Vzc0Nhc2Vz
IHsgZmFsc2UgfTsKIH07CiAKIGNsYXNzIFBvbHltb3JwaGljQWNjZXNzSklUU3R1YlJvdXRpbmUg
OiBwdWJsaWMgR0NBd2FyZUpJVFN0dWJSb3V0aW5lIHsKQEAgLTE4MCw3ICsxODQsNyBAQCBjbGFz
cyBHQ0F3YXJlSklUU3R1YlJvdXRpbmVXaXRoRXhjZXB0aW9uSGFuZGxlciBmaW5hbCA6IHB1Ymxp
YyBNYXJraW5nR0NBd2FyZUpJVAogLy8gd2F5LgogCiBSZWY8UG9seW1vcnBoaWNBY2Nlc3NKSVRT
dHViUm91dGluZT4gY3JlYXRlSUNKSVRTdHViUm91dGluZSgKLSAgICBjb25zdCBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8SklUU3R1YlJvdXRpbmVQdHJUYWc+JiwgRml4ZWRWZWN0b3I8UmVmUHRyPEFj
Y2Vzc0Nhc2U+PiYmIGNhc2VzLCBGaXhlZFZlY3RvcjxTdHJ1Y3R1cmVJRD4mJiB3ZWFrU3RydWN0
dXJlcywgVk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBib29sIG1ha2VzQ2FsbHMsCisgICAgY29u
c3QgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiYsIEZpeGVkVmVj
dG9yPFJlZlB0cjxBY2Nlc3NDYXNlPj4mJiBjYXNlcywgRml4ZWRWZWN0b3I8U3RydWN0dXJlSUQ+
JiYgd2Vha1N0cnVjdHVyZXMsIFZNJiwgY29uc3QgSlNDZWxsKiBvd25lciwgYm9vbCBtYWtlc0Nh
bGxzLCBib29sIGNhbkNoYWluQWNjZXNzQ2FzZXMsCiAgICAgY29uc3QgVmVjdG9yPEpTQ2VsbCo+
JiwgQmFnPENhbGxMaW5rSW5mbz4mJiBjYWxsTGlua0luZm9zLAogICAgIENvZGVCbG9jayogY29k
ZUJsb2NrRm9yRXhjZXB0aW9uSGFuZGxlcnMsIERpc3Bvc2FibGVDYWxsU2l0ZUluZGV4IGV4Y2Vw
dGlvbkhhbmRsaW5nQ2FsbFNpdGVJbmRleCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1ByaW50U3RyZWFtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QcmludFN0cmVhbS5oCmluZGV4IGQ0ZmZl
ODc2NzI0YjE3MjdhOWJkMzUwNGQwMDU2M2ZhZjQ1ODU4ZjQuLjVjZDVlNTg4NTkzODY1MjM3Mjlm
ZWQ1YTQxZWViYTg5ZjlhZGQxNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1ByaW50U3Ry
ZWFtLmgKKysrIGIvU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uaApAQCAtMjAzLDYgKzIwMywx
MiBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgUmVmUHRyPFQ+
JiB2YWx1ZSkKICAgICBvdXQucHJpbnQocG9pbnRlckR1bXAodmFsdWUuZ2V0KCkpKTsKIH0KIAor
dGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBjb25zdCBSZWY8VD4mIHZhbHVlKQoreworICAgIG91dC5wcmludCh2YWx1ZS5nZXQoKSk7Cit9
CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+CiBjbGFzcyBWYWx1ZUluQ29udGV4
dCB7CiBwdWJsaWM6Cg==
</data>
<flag name="commit-queue"
          id="471642"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>