<?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>224588</bug_id>
          
          <creation_ts>2021-04-14 17:57:58 -0700</creation_ts>
          <short_desc>[JSC] Change Vector&lt;&gt; to FixedVector&lt;&gt; in DFG::CommonData if possible</short_desc>
          <delta_ts>2021-04-15 00:04:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <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>1750431</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-14 17:57:58 -0700</bug_when>
    <thetext>[JSC] Change Vector&lt;&gt; to FixedVector&lt;&gt; in DFG::CommonData if possible</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750432</commentid>
    <comment_count>1</comment_count>
      <attachid>426065</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-14 17:59:31 -0700</bug_when>
    <thetext>Created attachment 426065
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750437</commentid>
    <comment_count>2</comment_count>
      <attachid>426065</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-04-14 18:43:22 -0700</bug_when>
    <thetext>Comment on attachment 426065
Patch

very nice.  r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750504</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-14 23:47:55 -0700</bug_when>
    <thetext>imported/w3c/web-platform-tests/workers/semantics/structured-clone/dedicated.html is flaky recently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750508</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-15 00:03:49 -0700</bug_when>
    <thetext>Committed r276005 (236557@main): &lt;https://commits.webkit.org/236557@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750509</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-15 00:04:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/76688432&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426065</attachid>
            <date>2021-04-14 17:59:31 -0700</date>
            <delta_ts>2021-04-14 23:34:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224588-20210414175931.patch</filename>
            <type>text/plain</type>
            <size>34791</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1OTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OWRjZjNkNGRjODkyYjcyNDhmOGExZDljNmRhZmQ3NmU1ZTAwOGM0Li5kYzA3NjdiYWJkODU4ZjZm
MzJmNDM5MWM3ZWM2MjdjZDk2NDhiZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NSBAQAorMjAyMS0wNC0xNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIENoYW5nZSBWZWN0b3I8PiB0byBGaXhlZFZlY3Rvcjw+IGluIERG
Rzo6Q29tbW9uRGF0YSBpZiBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgREZHOjpDb21tb25EYXRhIGlzIGtlcHQgYWxpdmUgc28gbG9uZyBh
cyBERkcgY29kZSBleGlzdHMuIEl0IGluY2x1ZGVzIGEgbG90IG9mIFZlY3RvcnMgd2hpbGUgdGhl
eSBhcmUgbm90IG11dGFibGUgYWZ0ZXIgdGhlIERGRyBjb2RlIGNvbXBpbGF0aW9uLgorICAgICAg
ICBUaGlzIHBhdGNoIGNoYW5nZXMgVmVjdG9yPD4gdG8gRml4ZWRWZWN0b3I8PiBpZiBwb3NzaWJs
ZSB0byBzaHJpbmsgc2l6ZW9mKERGRzo6Q29tbW9uRGF0YSkuIEFuZCB0aGlzIGFsc28gcmVtb3Zl
cyB0aGUgbmVlZCBvZiBjYWxsaW5nIHNocmlua1RvRml0CisgICAgICAgIGV4cGxpY2l0bHkgZm9y
IHRoZW0uCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlND
OjpDb2RlQmxvY2s6OnByb3BhZ2F0ZVRyYW5zaXRpb25zKToKKyAgICAgICAgKEpTQzo6Q29kZUJs
b2NrOjpkZXRlcm1pbmVMaXZlbmVzcyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c3Ryb25n
bHlWaXNpdFdlYWtSZWZlcmVuY2VzKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpqZXR0aXNv
bik6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6bnVtYmVyT2ZERkdJZGVudGlmaWVycyBjb25z
dCk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAg
ICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgICogZGZnL0RGR0NvbW1vbkRhdGEuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkNvbW1vbkRhdGE6OnNocmlua1RvRml0KToKKyAgICAgICAg
KEpTQzo6REZHOjpDb21tb25EYXRhOjppbnZhbGlkYXRlKToKKyAgICAgICAgKEpTQzo6REZHOjpD
b21tb25EYXRhOjp+Q29tbW9uRGF0YSk6CisgICAgICAgIChKU0M6OkRGRzo6Q29tbW9uRGF0YTo6
aW5zdGFsbFZNVHJhcEJyZWFrcG9pbnRzKToKKyAgICAgICAgKEpTQzo6REZHOjpDb21tb25EYXRh
Ojppc1ZNVHJhcEJyZWFrcG9pbnQpOgorICAgICAgICAoSlNDOjpERkc6OkNvbW1vbkRhdGE6OmZp
bmFsaXplQ2F0Y2hFbnRyeXBvaW50cyk6CisgICAgICAgIChKU0M6OkRGRzo6Q29tbW9uRGF0YTo6
bm90aWZ5Q29tcGlsaW5nU3RydWN0dXJlVHJhbnNpdGlvbik6IERlbGV0ZWQuCisgICAgICAgICog
ZGZnL0RGR0NvbW1vbkRhdGEuaDoKKyAgICAgICAgKEpTQzo6REZHOjpDb21tb25EYXRhOjpjYXRj
aE9TUkVudHJ5RGF0YUZvckJ5dGVjb2RlSW5kZXgpOgorICAgICAgICAoSlNDOjpERkc6OkNvbW1v
bkRhdGE6OmFwcGVuZENhdGNoRW50cnlwb2ludCk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RG
R0Rlc2lyZWRJZGVudGlmaWVycy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6RGVzaXJlZElkZW50
aWZpZXJzOjpyZWFsbHlBZGQpOgorICAgICAgICAqIGRmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkRlc2lyZWRUcmFuc2l0aW9uOjpEZXNpcmVkVHJhbnNp
dGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6RGVzaXJlZFRyYW5zaXRpb25zOjpEZXNpcmVkVHJh
bnNpdGlvbnMpOgorICAgICAgICAoSlNDOjpERkc6OkRlc2lyZWRUcmFuc2l0aW9uczo6YWRkTGF6
aWx5KToKKyAgICAgICAgKEpTQzo6REZHOjpEZXNpcmVkVHJhbnNpdGlvbnM6OnJlYWxseUFkZCk6
CisgICAgICAgIChKU0M6OkRGRzo6RGVzaXJlZFRyYW5zaXRpb246OnJlYWxseUFkZCk6IERlbGV0
ZWQuCisgICAgICAgICogZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5oOgorICAgICAgICAqIGRm
Zy9ERkdEZXNpcmVkV2Vha1JlZmVyZW5jZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkRlc2ly
ZWRXZWFrUmVmZXJlbmNlczo6cmVhbGx5QWRkKToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoK
KyAgICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpJ
VENvbXBpbGVyOjpsaW5rKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6bm90aWNl
Q2F0Y2hFbnRyeXBvaW50KToKKyAgICAgICAgKiBkZmcvREZHT1NSRW50cnkuaDoKKyAgICAgICAg
KiBkZmcvREZHUGxhbi5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6UGxhbik6CisgICAg
ICAgIChKU0M6OkRGRzo6UGxhbjo6ZmluYWxpemVXaXRob3V0Tm90aWZ5aW5nQ2FsbGJhY2spOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmxpbmtPU1JFbnRyaWVzKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTENv
bXBpbGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9G
VExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpjb21waWxlUHV0U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9CMzo6Y29tcGlsZU11bHRpUHV0QnlPZmZzZXQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpjb21waWxlSW52YWxpZGF0aW9uUG9pbnQpOgorCiAyMDIxLTA0LTEzICBN
YXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgd2F0Y2hkb2cgc2hv
dWxkIG5vdCBmaXJlIHdoZW4gaXQncyBub3QgYWN0aXZlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRleCBkYjgyODZhODc0NzgzMGIzN2Y3MDE3ZmFj
OTkyNzYyZDIxMzBiMDgzLi5lOTdmYWUwYWRjMTY1NzYyYzA0MmMxNTRmZjUxMDdhODQxM2U4MDJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAt
MTE3NiwxMCArMTE3NiwxMCBAQCB2b2lkIENvZGVCbG9jazo6cHJvcGFnYXRlVHJhbnNpdGlvbnMo
Y29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiwgVmlzaXRvciYgdmlzaXRvcgogICAgICAgICAKICAg
ICAgICAgZGZnQ29tbW9uLT5yZWNvcmRlZFN0YXR1c2VzLm1hcmtJZkNoZWFwKHZpc2l0b3IpOwog
ICAgICAgICAKLSAgICAgICAgZm9yIChTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA6IGRmZ0NvbW1v
bi0+d2Vha1N0cnVjdHVyZVJlZmVyZW5jZXMpCisgICAgICAgIGZvciAoU3RydWN0dXJlSUQgc3Ry
dWN0dXJlSUQgOiBkZmdDb21tb24tPm1fd2Vha1N0cnVjdHVyZVJlZmVyZW5jZXMpCiAgICAgICAg
ICAgICB2bS5nZXRTdHJ1Y3R1cmUoc3RydWN0dXJlSUQpLT5tYXJrSWZDaGVhcCh2aXNpdG9yKTsK
IAotICAgICAgICBmb3IgKGF1dG8mIHRyYW5zaXRpb24gOiBkZmdDb21tb24tPnRyYW5zaXRpb25z
KSB7CisgICAgICAgIGZvciAoYXV0byYgdHJhbnNpdGlvbiA6IGRmZ0NvbW1vbi0+bV90cmFuc2l0
aW9ucykgewogICAgICAgICAgICAgaWYgKHNob3VsZE1hcmtUcmFuc2l0aW9uKHZpc2l0b3IsIHRy
YW5zaXRpb24pKSB7CiAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGZvbGxvd2luZyB0aHJlZSB0
aGluZ3MgYXJlIGxpdmUsIHRoZW4gdGhlIHRhcmdldCBvZiB0aGUKICAgICAgICAgICAgICAgICAv
LyB0cmFuc2l0aW9uIGlzIGFsc28gbGl2ZToKQEAgLTEyMzEsOCArMTIzMSw4IEBAIHZvaWQgQ29k
ZUJsb2NrOjpkZXRlcm1pbmVMaXZlbmVzcyhjb25zdCBDb25jdXJyZW50SlNMb2NrZXImLCBWaXNp
dG9yJiB2aXNpdG9yKQogICAgIC8vIGhhdmUgcHJvdmVkIGxpdmVuZXNzIGFuZCBzbyB3ZSBzY2Fu
IG91ciBzdHJvbmcgcmVmZXJlbmNlcy4gSWYgYXQgZW5kIG9mCiAgICAgLy8gR0Mgd2Ugc3RpbGwg
aGF2ZSBub3QgcHJvdmVkIGxpdmVuZXNzLCB0aGVuIHRoaXMgY29kZSBibG9jayBpcyB0b2FzdC4K
ICAgICBib29sIGFsbEFyZUxpdmVTb0ZhciA9IHRydWU7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGRmZ0NvbW1vbi0+d2Vha1JlZmVyZW5jZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
SlNDZWxsKiByZWZlcmVuY2UgPSBkZmdDb21tb24tPndlYWtSZWZlcmVuY2VzW2ldLmdldCgpOwor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZmdDb21tb24tPm1fd2Vha1JlZmVyZW5jZXMu
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgSlNDZWxsKiByZWZlcmVuY2UgPSBkZmdDb21tb24tPm1f
d2Vha1JlZmVyZW5jZXNbaV0uZ2V0KCk7CiAgICAgICAgIEFTU0VSVCghanNEeW5hbWljQ2FzdDxD
b2RlQmxvY2sqPih2bSwgcmVmZXJlbmNlKSk7CiAgICAgICAgIGlmICghdmlzaXRvci5pc01hcmtl
ZChyZWZlcmVuY2UpKSB7CiAgICAgICAgICAgICBhbGxBcmVMaXZlU29GYXIgPSBmYWxzZTsKQEAg
LTEyNDAsNyArMTI0MCw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkZXRlcm1pbmVMaXZlbmVzcyhjb25z
dCBDb25jdXJyZW50SlNMb2NrZXImLCBWaXNpdG9yJiB2aXNpdG9yKQogICAgICAgICB9CiAgICAg
fQogICAgIGlmIChhbGxBcmVMaXZlU29GYXIpIHsKLSAgICAgICAgZm9yIChTdHJ1Y3R1cmVJRCBz
dHJ1Y3R1cmVJRCA6IGRmZ0NvbW1vbi0+d2Vha1N0cnVjdHVyZVJlZmVyZW5jZXMpIHsKKyAgICAg
ICAgZm9yIChTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA6IGRmZ0NvbW1vbi0+bV93ZWFrU3RydWN0
dXJlUmVmZXJlbmNlcykgewogICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSB2bS5n
ZXRTdHJ1Y3R1cmUoc3RydWN0dXJlSUQpOwogICAgICAgICAgICAgaWYgKCF2aXNpdG9yLmlzTWFy
a2VkKHN0cnVjdHVyZSkpIHsKICAgICAgICAgICAgICAgICBhbGxBcmVMaXZlU29GYXIgPSBmYWxz
ZTsKQEAgLTE4NzIsMjAgKzE4NzIsMTggQEAgdm9pZCBDb2RlQmxvY2s6OnN0cm9uZ2x5VmlzaXRX
ZWFrUmVmZXJlbmNlcyhjb25zdCBDb25jdXJyZW50SlNMb2NrZXImLCBWaXNpdG9yJgogICAgIAog
ICAgIERGRzo6Q29tbW9uRGF0YSogZGZnQ29tbW9uID0gbV9qaXRDb2RlLT5kZmdDb21tb24oKTsK
IAotICAgIGZvciAoYXV0byYgdHJhbnNpdGlvbiA6IGRmZ0NvbW1vbi0+dHJhbnNpdGlvbnMpIHsK
KyAgICBmb3IgKGF1dG8mIHRyYW5zaXRpb24gOiBkZmdDb21tb24tPm1fdHJhbnNpdGlvbnMpIHsK
ICAgICAgICAgaWYgKCEhdHJhbnNpdGlvbi5tX2NvZGVPcmlnaW4pCiAgICAgICAgICAgICB2aXNp
dG9yLmFwcGVuZCh0cmFuc2l0aW9uLm1fY29kZU9yaWdpbik7IC8vIEFsbW9zdCBjZXJ0YWlubHkg
bm90IG5lY2Vzc2FyeSwgc2luY2UgdGhlIGNvZGUgb3JpZ2luIHNob3VsZCBhbHNvIGJlIGEgd2Vh
ayByZWZlcmVuY2UuIEJldHRlciB0byBiZSBzYWZlLCB0aG91Z2guCiAgICAgICAgIHZpc2l0b3Iu
YXBwZW5kKHRyYW5zaXRpb24ubV9mcm9tKTsKICAgICAgICAgdmlzaXRvci5hcHBlbmQodHJhbnNp
dGlvbi5tX3RvKTsKICAgICB9CiAKLSAgICBmb3IgKGF1dG8mIHdlYWtSZWZlcmVuY2UgOiBkZmdD
b21tb24tPndlYWtSZWZlcmVuY2VzKQorICAgIGZvciAoYXV0byYgd2Vha1JlZmVyZW5jZSA6IGRm
Z0NvbW1vbi0+bV93ZWFrUmVmZXJlbmNlcykKICAgICAgICAgdmlzaXRvci5hcHBlbmQod2Vha1Jl
ZmVyZW5jZSk7CiAKLSAgICBmb3IgKFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEIDogZGZnQ29tbW9u
LT53ZWFrU3RydWN0dXJlUmVmZXJlbmNlcykKKyAgICBmb3IgKFN0cnVjdHVyZUlEIHN0cnVjdHVy
ZUlEIDogZGZnQ29tbW9uLT5tX3dlYWtTdHJ1Y3R1cmVSZWZlcmVuY2VzKQogICAgICAgICB2aXNp
dG9yLmFwcGVuZFVuYmFycmllcmVkKHZpc2l0b3Iudm0oKS5nZXRTdHJ1Y3R1cmUoc3RydWN0dXJl
SUQpKTsKLQotICAgIGRmZ0NvbW1vbi0+bGl2ZW5lc3NIYXNCZWVuUHJvdmVkID0gdHJ1ZTsKICNl
bmRpZiAgICAKIH0KIApAQCAtMjI1MSw3ICsyMjQ5LDcgQEAgdm9pZCBDb2RlQmxvY2s6OmpldHRp
c29uKFByb2ZpbGVyOjpKZXR0aXNvblJlYXNvbiByZWFzb24sIFJlb3B0aW1pemF0aW9uTW9kZSBt
b2QKICAgICAgICAgaWYgKERGRzo6c2hvdWxkRHVtcERpc2Fzc2VtYmx5KCkpIHsKICAgICAgICAg
ICAgIGRhdGFMb2coKnRoaXMsICIgd2lsbCBiZSBqZXR0aXNvbmVkIGJlY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBkZWFkIHJlZmVyZW5jZXM6XG4iKTsKICAgICAgICAgICAgIERGRzo6Q29tbW9uRGF0
YSogZGZnQ29tbW9uID0gbV9qaXRDb2RlLT5kZmdDb21tb24oKTsKLSAgICAgICAgICAgIGZvciAo
YXV0byYgdHJhbnNpdGlvbiA6IGRmZ0NvbW1vbi0+dHJhbnNpdGlvbnMpIHsKKyAgICAgICAgICAg
IGZvciAoYXV0byYgdHJhbnNpdGlvbiA6IGRmZ0NvbW1vbi0+bV90cmFuc2l0aW9ucykgewogICAg
ICAgICAgICAgICAgIEpTQ2VsbCogb3JpZ2luID0gdHJhbnNpdGlvbi5tX2NvZGVPcmlnaW4uZ2V0
KCk7CiAgICAgICAgICAgICAgICAgSlNDZWxsKiBmcm9tID0gdHJhbnNpdGlvbi5tX2Zyb20uZ2V0
KCk7CiAgICAgICAgICAgICAgICAgSlNDZWxsKiB0byA9IHRyYW5zaXRpb24ubV90by5nZXQoKTsK
QEAgLTIyNTksOCArMjI1Nyw4IEBAIHZvaWQgQ29kZUJsb2NrOjpqZXR0aXNvbihQcm9maWxlcjo6
SmV0dGlzb25SZWFzb24gcmVhc29uLCBSZW9wdGltaXphdGlvbk1vZGUgbW9kCiAgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBUcmFuc2l0
aW9uIHVuZGVyICIsIFJhd1BvaW50ZXIob3JpZ2luKSwgIiwgIiwgUmF3UG9pbnRlcihmcm9tKSwg
IiAtPiAiLCBSYXdQb2ludGVyKHRvKSwgIi5cbiIpOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRmZ0NvbW1vbi0+d2Vha1JlZmVyZW5jZXMuc2l6
ZSgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICBKU0NlbGwqIHdlYWsgPSBkZmdDb21tb24tPndl
YWtSZWZlcmVuY2VzW2ldLmdldCgpOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGRmZ0NvbW1vbi0+bV93ZWFrUmVmZXJlbmNlcy5zaXplKCk7ICsraSkgeworICAgICAgICAg
ICAgICAgIEpTQ2VsbCogd2VhayA9IGRmZ0NvbW1vbi0+bV93ZWFrUmVmZXJlbmNlc1tpXS5nZXQo
KTsKICAgICAgICAgICAgICAgICBpZiAodm0uaGVhcC5pc01hcmtlZCh3ZWFrKSkKICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIFdlYWsg
cmVmZXJlbmNlICIsIFJhd1BvaW50ZXIod2VhayksICIuXG4iKTsKQEAgLTI4ODAsNyArMjg3OCw3
IEBAIHNpemVfdCBDb2RlQmxvY2s6Om51bWJlck9mREZHSWRlbnRpZmllcnMoKSBjb25zdAogICAg
IGlmICghSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKGppdFR5cGUoKSkpCiAgICAgICAgIHJldHVy
biAwOwogICAgIAotICAgIHJldHVybiBtX2ppdENvZGUtPmRmZ0NvbW1vbigpLT5kZmdJZGVudGlm
aWVycy5zaXplKCk7CisgICAgcmV0dXJuIG1faml0Q29kZS0+ZGZnQ29tbW9uKCktPm1fZGZnSWRl
bnRpZmllcnMuc2l6ZSgpOwogfQogCiBjb25zdCBJZGVudGlmaWVyJiBDb2RlQmxvY2s6OmlkZW50
aWZpZXIoaW50IGluZGV4KSBjb25zdApAQCAtMjg4OSw3ICsyODg3LDcgQEAgY29uc3QgSWRlbnRp
ZmllciYgQ29kZUJsb2NrOjppZGVudGlmaWVyKGludCBpbmRleCkgY29uc3QKICAgICBpZiAoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KGluZGV4KSA8IHVubGlua2VkSWRlbnRpZmllcnMpCiAgICAgICAg
IHJldHVybiBtX3VubGlua2VkQ29kZS0+aWRlbnRpZmllcihpbmRleCk7CiAgICAgQVNTRVJUKEpJ
VENvZGU6OmlzT3B0aW1pemluZ0pJVChqaXRUeXBlKCkpKTsKLSAgICByZXR1cm4gbV9qaXRDb2Rl
LT5kZmdDb21tb24oKS0+ZGZnSWRlbnRpZmllcnNbaW5kZXggLSB1bmxpbmtlZElkZW50aWZpZXJz
XTsKKyAgICByZXR1cm4gbV9qaXRDb2RlLT5kZmdDb21tb24oKS0+bV9kZmdJZGVudGlmaWVyc1tp
bmRleCAtIHVubGlua2VkSWRlbnRpZmllcnNdOwogfQogI2VuZGlmIC8vIEVOQUJMRShERkdfSklU
KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKaW5kZXggNmY4
MDA0OTQ5NTJhOTIwNzA3ZjY0YzA5ZmYwZjMzMmZjMDgwOTgwNi4uYWQzMjM2Mzc1OTAzOTM2NTFj
ZGU1M2NjZjdhNzU1YWI2NWFjMjllNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suaApAQCAtODY3LDggKzg2Nyw2IEBAIGNsYXNzIENvZGVCbG9jayA6IHB1Ymxp
YyBKU0NlbGwgewogICAgIHVuc2lnbmVkIG1fY2FwYWJpbGl0eUxldmVsU3RhdGUgOiAyOyAvLyBE
Rkc6OkNhcGFiaWxpdHlMZXZlbAogI2VuZGlmCiAKLSAgICBib29sIG1fYWxsVHJhbnNpdGlvbnNI
YXZlQmVlbk1hcmtlZCA6IDE7IC8vIEluaXRpYWxpemVkIGFuZCB1c2VkIG9uIGV2ZXJ5IEdDLgot
CiAgICAgYm9vbCBtX2RpZEZhaWxKSVRDb21waWxhdGlvbiA6IDE7CiAgICAgYm9vbCBtX2RpZEZh
aWxGVExDb21waWxhdGlvbiA6IDE7CiAgICAgYm9vbCBtX2hhc0JlZW5Db21waWxlZFdpdGhGVEwg
OiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRh
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uRGF0YS5jcHAKaW5kZXgg
Y2NmNGQ4MzZlYjgxNWU3ODA2MDU2NjJjMjk4YmI2MTYzYzM5YmUwYi4uYjNlZmJlNWI1NmM2ZjFj
ZDY4MzYwZjU3NzJhZGIzNjFlNTMyYjVhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDb21tb25EYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NvbW1vbkRhdGEuY3BwCkBAIC0zOCwyNCArMzgsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBERkcgewogCi12b2lkIENvbW1vbkRhdGE6Om5vdGlmeUNvbXBpbGluZ1N0cnVj
dHVyZVRyYW5zaXRpb24oUGxhbiYgcGxhbiwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIE5vZGUqIG5v
ZGUpCi17Ci0gICAgcGxhbi50cmFuc2l0aW9ucygpLmFkZExhemlseSgKLSAgICAgICAgY29kZUJs
b2NrLAotICAgICAgICBub2RlLT5vcmlnaW4uc2VtYW50aWMuY29kZU9yaWdpbk93bmVyKCksCi0g
ICAgICAgIG5vZGUtPnRyYW5zaXRpb24oKS0+cHJldmlvdXMuZ2V0KCksCi0gICAgICAgIG5vZGUt
PnRyYW5zaXRpb24oKS0+bmV4dC5nZXQoKSk7Ci19Ci0KIHZvaWQgQ29tbW9uRGF0YTo6c2hyaW5r
VG9GaXQoKQogewogICAgIGNvZGVPcmlnaW5zLT5zaHJpbmtUb0ZpdCgpOwotICAgIGRmZ0lkZW50
aWZpZXJzLnNocmlua1RvRml0KCk7Ci0gICAgd2Vha1JlZmVyZW5jZXMuc2hyaW5rVG9GaXQoKTsK
LSAgICB3ZWFrU3RydWN0dXJlUmVmZXJlbmNlcy5zaHJpbmtUb0ZpdCgpOwotICAgIHRyYW5zaXRp
b25zLnNocmlua1RvRml0KCk7Ci0gICAgY2F0Y2hFbnRyeXBvaW50cy5zaHJpbmtUb0ZpdCgpOwot
ICAgIGp1bXBSZXBsYWNlbWVudHMuc2hyaW5rVG9GaXQoKTsKKyAgICBtX2p1bXBSZXBsYWNlbWVu
dHMuc2hyaW5rVG9GaXQoKTsKIH0KIAogc3RhdGljIExvY2sgcGNDb2RlQmxvY2tNYXBMb2NrOwpA
QCAtNzcsMTMgKzYzLDEzIEBAIGJvb2wgQ29tbW9uRGF0YTo6aW52YWxpZGF0ZSgpCiAgICAgaWYg
KFVOTElLRUxZKGhhc1ZNVHJhcHNCcmVha3BvaW50c0luc3RhbGxlZCkpIHsKICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIocGNDb2RlQmxvY2tNYXBMb2NrKTsKICAgICAgICAgYXV0byYgbWFwID0g
cGNDb2RlQmxvY2tNYXAobG9ja2VyKTsKLSAgICAgICAgZm9yIChhdXRvJiBqdW1wUmVwbGFjZW1l
bnQgOiBqdW1wUmVwbGFjZW1lbnRzKQorICAgICAgICBmb3IgKGF1dG8mIGp1bXBSZXBsYWNlbWVu
dCA6IG1fanVtcFJlcGxhY2VtZW50cykKICAgICAgICAgICAgIG1hcC5yZW1vdmUoanVtcFJlcGxh
Y2VtZW50LmRhdGFMb2NhdGlvbigpKTsKICAgICAgICAgaGFzVk1UcmFwc0JyZWFrcG9pbnRzSW5z
dGFsbGVkID0gZmFsc2U7CiAgICAgfQogCi0gICAgZm9yICh1bnNpZ25lZCBpID0ganVtcFJlcGxh
Y2VtZW50cy5zaXplKCk7IGktLTspCi0gICAgICAgIGp1bXBSZXBsYWNlbWVudHNbaV0uZmlyZSgp
OworICAgIGZvciAodW5zaWduZWQgaSA9IG1fanVtcFJlcGxhY2VtZW50cy5zaXplKCk7IGktLTsp
CisgICAgICAgIG1fanVtcFJlcGxhY2VtZW50c1tpXS5maXJlKCk7CiAgICAgaXNTdGlsbFZhbGlk
ID0gZmFsc2U7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC05Myw3ICs3OSw3IEBAIENvbW1vbkRh
dGE6On5Db21tb25EYXRhKCkKICAgICBpZiAoVU5MSUtFTFkoaGFzVk1UcmFwc0JyZWFrcG9pbnRz
SW5zdGFsbGVkKSkgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihwY0NvZGVCbG9ja01hcExv
Y2spOwogICAgICAgICBhdXRvJiBtYXAgPSBwY0NvZGVCbG9ja01hcChsb2NrZXIpOwotICAgICAg
ICBmb3IgKGF1dG8mIGp1bXBSZXBsYWNlbWVudCA6IGp1bXBSZXBsYWNlbWVudHMpCisgICAgICAg
IGZvciAoYXV0byYganVtcFJlcGxhY2VtZW50IDogbV9qdW1wUmVwbGFjZW1lbnRzKQogICAgICAg
ICAgICAgbWFwLnJlbW92ZShqdW1wUmVwbGFjZW1lbnQuZGF0YUxvY2F0aW9uKCkpOwogICAgIH0K
IH0KQEAgLTExMSw3ICs5Nyw3IEBAIHZvaWQgQ29tbW9uRGF0YTo6aW5zdGFsbFZNVHJhcEJyZWFr
cG9pbnRzKENvZGVCbG9jayogb3duZXIpCiAgICAgLy8gYnV0IHdlIHdhbnQgdG8gbWFrZSBzdXJl
IHdlIGRvbid0IGZvcmdldCB0byByZW1vdmUgYSBwYyBmcm9tIHRoZSBtYXAuCiAgICAgSGFzaFNl
dDx2b2lkKj4gbmV3UmVwbGFjZW1lbnRzOwogI2VuZGlmCi0gICAgZm9yIChhdXRvJiBqdW1wUmVw
bGFjZW1lbnQgOiBqdW1wUmVwbGFjZW1lbnRzKSB7CisgICAgZm9yIChhdXRvJiBqdW1wUmVwbGFj
ZW1lbnQgOiBtX2p1bXBSZXBsYWNlbWVudHMpIHsKICAgICAgICAganVtcFJlcGxhY2VtZW50Lmlu
c3RhbGxWTVRyYXBCcmVha3BvaW50KCk7CiAgICAgICAgIHZvaWQqIHNvdXJjZSA9IGp1bXBSZXBs
YWNlbWVudC5kYXRhTG9jYXRpb24oKTsKICAgICAgICAgYXV0byByZXN1bHQgPSBtYXAuYWRkKHNv
dXJjZSwgb3duZXIpOwpAQCAtMTM4LDggKzEyNCw4IEBAIGJvb2wgQ29tbW9uRGF0YTo6aXNWTVRy
YXBCcmVha3BvaW50KHZvaWQqIGFkZHJlc3MpCiB7CiAgICAgaWYgKCFpc1N0aWxsVmFsaWQpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSBqdW1wUmVwbGFjZW1l
bnRzLnNpemUoKTsgaS0tOykgewotICAgICAgICBpZiAoYWRkcmVzcyA9PSBqdW1wUmVwbGFjZW1l
bnRzW2ldLmRhdGFMb2NhdGlvbigpKQorICAgIGZvciAodW5zaWduZWQgaSA9IG1fanVtcFJlcGxh
Y2VtZW50cy5zaXplKCk7IGktLTspIHsKKyAgICAgICAgaWYgKGFkZHJlc3MgPT0gbV9qdW1wUmVw
bGFjZW1lbnRzW2ldLmRhdGFMb2NhdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogICAgIHJldHVybiBmYWxzZTsKQEAgLTE2NiwxNCArMTUyLDE2IEBAIHZvaWQgQ29tbW9u
RGF0YTo6dmFsaWRhdGVSZWZlcmVuY2VzKGNvbnN0IFRyYWNrZWRSZWZlcmVuY2VzJiB0cmFja2Vk
UmVmZXJlbmNlcykKICAgICAgICAgd2F0Y2hwb2ludC0+a2V5KCkudmFsaWRhdGVSZWZlcmVuY2Vz
KHRyYWNrZWRSZWZlcmVuY2VzKTsKIH0KIAotdm9pZCBDb21tb25EYXRhOjpmaW5hbGl6ZUNhdGNo
RW50cnlwb2ludHMoKQordm9pZCBDb21tb25EYXRhOjpmaW5hbGl6ZUNhdGNoRW50cnlwb2ludHMo
VmVjdG9yPENhdGNoRW50cnlwb2ludERhdGE+JiYgY2F0Y2hFbnRyeXBvaW50cykKIHsKICAgICBz
dGQ6OnNvcnQoY2F0Y2hFbnRyeXBvaW50cy5iZWdpbigpLCBjYXRjaEVudHJ5cG9pbnRzLmVuZCgp
LAogICAgICAgICBbXSAoY29uc3QgQ2F0Y2hFbnRyeXBvaW50RGF0YSYgYSwgY29uc3QgQ2F0Y2hF
bnRyeXBvaW50RGF0YSYgYikgeyByZXR1cm4gYS5ieXRlY29kZUluZGV4IDwgYi5ieXRlY29kZUlu
ZGV4OyB9KTsKKyAgICBBU1NFUlQobV9jYXRjaEVudHJ5cG9pbnRzLmlzRW1wdHkoKSk7CisgICAg
bV9jYXRjaEVudHJ5cG9pbnRzID0gV1RGTW92ZShjYXRjaEVudHJ5cG9pbnRzKTsKIAogI2lmIEFT
U0VSVF9FTkFCTEVECi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSArIDEgPCBjYXRjaEVudHJ5
cG9pbnRzLnNpemUoKTsgKytpKQotICAgICAgICBBU1NFUlQoY2F0Y2hFbnRyeXBvaW50c1tpXS5i
eXRlY29kZUluZGV4IDw9IGNhdGNoRW50cnlwb2ludHNbaSArIDFdLmJ5dGVjb2RlSW5kZXgpOwor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgKyAxIDwgbV9jYXRjaEVudHJ5cG9pbnRzLnNpemUo
KTsgKytpKQorICAgICAgICBBU1NFUlQobV9jYXRjaEVudHJ5cG9pbnRzW2ldLmJ5dGVjb2RlSW5k
ZXggPD0gbV9jYXRjaEVudHJ5cG9pbnRzW2kgKyAxXS5ieXRlY29kZUluZGV4KTsKICNlbmRpZgog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbkRhdGEu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uRGF0YS5oCmluZGV4IDY1MWVl
MzA0NzRiZjY4MGM5Yjk5YjgzNzY2Y2U2ODU3NTZiYzlmNmIuLjkzNjc3NDRmMzY1ZTNiN2Q3OWMx
OTAxMTAzNDQ3NWU4Mzc1ODY2NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uRGF0YS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29t
bW9uRGF0YS5oCkBAIC03OCw4ICs3OCw2IEBAIGNsYXNzIENvbW1vbkRhdGEgewogICAgIHsgfQog
ICAgIH5Db21tb25EYXRhKCk7CiAgICAgCi0gICAgdm9pZCBub3RpZnlDb21waWxpbmdTdHJ1Y3R1
cmVUcmFuc2l0aW9uKFBsYW4mLCBDb2RlQmxvY2sqLCBOb2RlKik7Ci0KICAgICB2b2lkIHNocmlu
a1RvRml0KCk7CiAgICAgCiAgICAgYm9vbCBpbnZhbGlkYXRlKCk7IC8vIFJldHVybnMgdHJ1ZSBp
ZiB3ZSBkaWQgaW52YWxpZGF0ZSwgb3IgZmFsc2UgaWYgdGhlIGNvZGUgYmxvY2sgd2FzIGFscmVh
ZHkgaW52YWxpZGF0ZWQuCkBAIC05MCwxNiArODgsMTEgQEAgY2xhc3MgQ29tbW9uRGF0YSB7CiAg
ICAgQ2F0Y2hFbnRyeXBvaW50RGF0YSogY2F0Y2hPU1JFbnRyeURhdGFGb3JCeXRlY29kZUluZGV4
KEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRleCkKICAgICB7CiAgICAgICAgIHJldHVybiB0cnlC
aW5hcnlTZWFyY2g8Q2F0Y2hFbnRyeXBvaW50RGF0YSwgQnl0ZWNvZGVJbmRleD4oCi0gICAgICAg
ICAgICBjYXRjaEVudHJ5cG9pbnRzLCBjYXRjaEVudHJ5cG9pbnRzLnNpemUoKSwgYnl0ZWNvZGVJ
bmRleCwKKyAgICAgICAgICAgIG1fY2F0Y2hFbnRyeXBvaW50cywgbV9jYXRjaEVudHJ5cG9pbnRz
LnNpemUoKSwgYnl0ZWNvZGVJbmRleCwKICAgICAgICAgICAgIFtdIChjb25zdCBDYXRjaEVudHJ5
cG9pbnREYXRhKiBpdGVtKSB7IHJldHVybiBpdGVtLT5ieXRlY29kZUluZGV4OyB9KTsKICAgICB9
CiAKLSAgICB2b2lkIGFwcGVuZENhdGNoRW50cnlwb2ludChCeXRlY29kZUluZGV4IGJ5dGVjb2Rl
SW5kZXgsIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPiBtYWNo
aW5lQ29kZSwgVmVjdG9yPEZsdXNoRm9ybWF0PiYmIGFyZ3VtZW50Rm9ybWF0cykKLSAgICB7Ci0g
ICAgICAgIGNhdGNoRW50cnlwb2ludHMuYXBwZW5kKENhdGNoRW50cnlwb2ludERhdGEgeyBtYWNo
aW5lQ29kZSwgIFdURk1vdmUoYXJndW1lbnRGb3JtYXRzKSwgYnl0ZWNvZGVJbmRleCB9KTsKLSAg
ICB9Ci0KLSAgICB2b2lkIGZpbmFsaXplQ2F0Y2hFbnRyeXBvaW50cygpOworICAgIHZvaWQgZmlu
YWxpemVDYXRjaEVudHJ5cG9pbnRzKFZlY3RvcjxDYXRjaEVudHJ5cG9pbnREYXRhPiYmKTsKIAog
ICAgIHVuc2lnbmVkIHJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKSBj
b25zdAogICAgIHsKQEAgLTExNSwyMSArMTA4LDE5IEBAIGNsYXNzIENvbW1vbkRhdGEgewogICAg
IFJlZlB0cjxJbmxpbmVDYWxsRnJhbWVTZXQ+IGlubGluZUNhbGxGcmFtZXM7CiAgICAgUmVmPENv
ZGVPcmlnaW5Qb29sPiBjb2RlT3JpZ2luczsKICAgICAKLSAgICBWZWN0b3I8SWRlbnRpZmllcj4g
ZGZnSWRlbnRpZmllcnM7Ci0gICAgVmVjdG9yPFdlYWtSZWZlcmVuY2VUcmFuc2l0aW9uPiB0cmFu
c2l0aW9uczsKLSAgICBWZWN0b3I8V3JpdGVCYXJyaWVyPEpTQ2VsbD4+IHdlYWtSZWZlcmVuY2Vz
OwotICAgIFZlY3RvcjxTdHJ1Y3R1cmVJRD4gd2Vha1N0cnVjdHVyZVJlZmVyZW5jZXM7Ci0gICAg
VmVjdG9yPENhdGNoRW50cnlwb2ludERhdGE+IGNhdGNoRW50cnlwb2ludHM7CisgICAgRml4ZWRW
ZWN0b3I8SWRlbnRpZmllcj4gbV9kZmdJZGVudGlmaWVyczsKKyAgICBGaXhlZFZlY3RvcjxXZWFr
UmVmZXJlbmNlVHJhbnNpdGlvbj4gbV90cmFuc2l0aW9uczsKKyAgICBGaXhlZFZlY3RvcjxXcml0
ZUJhcnJpZXI8SlNDZWxsPj4gbV93ZWFrUmVmZXJlbmNlczsKKyAgICBGaXhlZFZlY3RvcjxTdHJ1
Y3R1cmVJRD4gbV93ZWFrU3RydWN0dXJlUmVmZXJlbmNlczsKKyAgICBGaXhlZFZlY3RvcjxDYXRj
aEVudHJ5cG9pbnREYXRhPiBtX2NhdGNoRW50cnlwb2ludHM7CiAgICAgQmFnPENvZGVCbG9ja0pl
dHRpc29uaW5nV2F0Y2hwb2ludD4gd2F0Y2hwb2ludHM7CiAgICAgQmFnPEFkYXB0aXZlU3RydWN0
dXJlV2F0Y2hwb2ludD4gYWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50czsKICAgICBCYWc8QWRh
cHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50PiBhZGFwdGl2ZUluZmVycmVkUHJv
cGVydHlWYWx1ZVdhdGNocG9pbnRzOwogICAgIFJlY29yZGVkU3RhdHVzZXMgcmVjb3JkZWRTdGF0
dXNlczsKLSAgICBWZWN0b3I8SnVtcFJlcGxhY2VtZW50PiBqdW1wUmVwbGFjZW1lbnRzOworICAg
IFZlY3RvcjxKdW1wUmVwbGFjZW1lbnQ+IG1fanVtcFJlcGxhY2VtZW50czsKICAgICAKICAgICBT
Y3JhdGNoQnVmZmVyKiBjYXRjaE9TUkVudHJ5QnVmZmVyOwogICAgIFJlZlB0cjxQcm9maWxlcjo6
Q29tcGlsYXRpb24+IGNvbXBpbGF0aW9uOwotICAgIGJvb2wgbGl2ZW5lc3NIYXNCZWVuUHJvdmVk
OyAvLyBJbml0aWFsaXplZCBhbmQgdXNlZCBvbiBldmVyeSBHQy4KLSAgICBib29sIGFsbFRyYW5z
aXRpb25zSGF2ZUJlZW5NYXJrZWQ7IC8vIEluaXRpYWxpemVkIGFuZCB1c2VkIG9uIGV2ZXJ5IEdD
LgogICAgIGJvb2wgaXNTdGlsbFZhbGlkIHsgdHJ1ZSB9OwogICAgIGJvb2wgaGFzVk1UcmFwc0Jy
ZWFrcG9pbnRzSW5zdGFsbGVkIHsgZmFsc2UgfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZElkZW50aWZpZXJzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZElkZW50aWZpZXJzLmNwcAppbmRleCA0NjNjYmJkOTE4
M2M3YzhiZTAxMzU4MzZmMjAwYjA5MmJhODdjZmFlLi4xZjZhNGI0MDgzZTc1NjY4ODhhYWQyOTQ3
NzVkMWE3NDFkMmIzNTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Rlc2lyZWRJZGVudGlmaWVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdEZXNpcmVkSWRlbnRpZmllcnMuY3BwCkBAIC04NywxMyArODcsMTYgQEAgVW5pcXVlZFN0cmlu
Z0ltcGwqIERlc2lyZWRJZGVudGlmaWVyczo6YXQodW5zaWduZWQgaW5kZXgpIGNvbnN0CiAKIHZv
aWQgRGVzaXJlZElkZW50aWZpZXJzOjpyZWFsbHlBZGQoVk0mIHZtLCBDb21tb25EYXRhKiBjb21t
b25EYXRhKQogeworICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKKyAgICBGaXhlZFZlY3RvcjxJZGVu
dGlmaWVyPiBpZGVudGlmaWVycyhtX2FkZGVkSWRlbnRpZmllcnMuc2l6ZSgpKTsKICAgICBmb3Ig
KGF1dG8gcmVwIDogbV9hZGRlZElkZW50aWZpZXJzKSB7CiAgICAgICAgIEFTU0VSVChyZXAtPmhh
c0F0TGVhc3RPbmVSZWYoKSk7Ci0gICAgICAgIElkZW50aWZpZXIgdWlkID0gSWRlbnRpZmllcjo6
ZnJvbVVpZCh2bSwgcmVwKTsKLSAgICAgICAgewotICAgICAgICAgICAgQ29uY3VycmVudEpTTG9j
a2VyIGxvY2tlcihtX2NvZGVCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAgIGNvbW1vbkRhdGEt
PmRmZ0lkZW50aWZpZXJzLmFwcGVuZChXVEZNb3ZlKHVpZCkpOwotICAgICAgICB9CisgICAgICAg
IGlkZW50aWZpZXJzW2luZGV4KytdID0gSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwgcmVwKTsKKyAg
ICB9CisgICAgaWYgKCFpZGVudGlmaWVycy5pc0VtcHR5KCkpIHsKKyAgICAgICAgQ29uY3VycmVu
dEpTTG9ja2VyIGxvY2tlcihtX2NvZGVCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgQVNTRVJUKGNv
bW1vbkRhdGEtPm1fZGZnSWRlbnRpZmllcnMuaXNFbXB0eSgpKTsKKyAgICAgICAgY29tbW9uRGF0
YS0+bV9kZmdJZGVudGlmaWVycyA9IFdURk1vdmUoaWRlbnRpZmllcnMpOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEZXNpcmVkVHJhbnNpdGlv
bnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMu
Y3BwCmluZGV4IGMyNzljYWY5MWI5ZWI1MWNhMTMxODQwOGY4MDE0NzZiM2JlNWJmYWMuLjg3ZmY1
N2UyYWE5MzNjOTU2NGQ1MTE5MGY4MjJiMmM0YjlkZWU3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAKQEAgLTM1LDI0ICsz
NSwxMyBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLURlc2lyZWRUcmFu
c2l0aW9uOjpEZXNpcmVkVHJhbnNpdGlvbihDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZUJsb2Nr
KiBjb2RlT3JpZ2luT3duZXIsIFN0cnVjdHVyZSogb2xkU3RydWN0dXJlLCBTdHJ1Y3R1cmUqIG5l
d1N0cnVjdHVyZSkKLSAgICA6IG1fY29kZUJsb2NrKGNvZGVCbG9jaykKLSAgICAsIG1fY29kZU9y
aWdpbk93bmVyKGNvZGVPcmlnaW5Pd25lcikKK0Rlc2lyZWRUcmFuc2l0aW9uOjpEZXNpcmVkVHJh
bnNpdGlvbihDb2RlQmxvY2sqIGNvZGVPcmlnaW5Pd25lciwgU3RydWN0dXJlKiBvbGRTdHJ1Y3R1
cmUsIFN0cnVjdHVyZSogbmV3U3RydWN0dXJlKQorICAgIDogbV9jb2RlT3JpZ2luT3duZXIoY29k
ZU9yaWdpbk93bmVyKQogICAgICwgbV9vbGRTdHJ1Y3R1cmUob2xkU3RydWN0dXJlKQogICAgICwg
bV9uZXdTdHJ1Y3R1cmUobmV3U3RydWN0dXJlKQogewogfQogCi12b2lkIERlc2lyZWRUcmFuc2l0
aW9uOjpyZWFsbHlBZGQoVk0mIHZtLCBDb21tb25EYXRhKiBjb21tb24pCi17Ci0gICAgQ29uY3Vy
cmVudEpTTG9ja2VyIGxvY2tlcihtX2NvZGVCbG9jay0+bV9sb2NrKTsKLSAgICBjb21tb24tPnRy
YW5zaXRpb25zLmFwcGVuZCgKLSAgICAgICAgV2Vha1JlZmVyZW5jZVRyYW5zaXRpb24oCi0gICAg
ICAgICAgICB2bSwgbV9jb2RlQmxvY2ssCi0gICAgICAgICAgICBtX2NvZGVPcmlnaW5Pd25lciwK
LSAgICAgICAgICAgIG1fb2xkU3RydWN0dXJlLCBtX25ld1N0cnVjdHVyZSkpOwotfQotCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBWaXNpdG9yPgogdm9pZCBEZXNpcmVkVHJhbnNpdGlvbjo6dmlzaXRDaGls
ZHJlbihWaXNpdG9yJiB2aXNpdG9yKQogewpAQCAtNjQsNyArNTMsOCBAQCB2b2lkIERlc2lyZWRU
cmFuc2l0aW9uOjp2aXNpdENoaWxkcmVuKFZpc2l0b3ImIHZpc2l0b3IpCiB0ZW1wbGF0ZSB2b2lk
IERlc2lyZWRUcmFuc2l0aW9uOjp2aXNpdENoaWxkcmVuKEFic3RyYWN0U2xvdFZpc2l0b3ImKTsK
IHRlbXBsYXRlIHZvaWQgRGVzaXJlZFRyYW5zaXRpb246OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0
b3ImKTsKIAotRGVzaXJlZFRyYW5zaXRpb25zOjpEZXNpcmVkVHJhbnNpdGlvbnMoKQorRGVzaXJl
ZFRyYW5zaXRpb25zOjpEZXNpcmVkVHJhbnNpdGlvbnMoQ29kZUJsb2NrKiBjb2RlQmxvY2spCisg
ICAgOiBtX2NvZGVCbG9jayhjb2RlQmxvY2spCiB7CiB9CiAKQEAgLTcyLDE1ICs2MiwyMyBAQCBE
ZXNpcmVkVHJhbnNpdGlvbnM6On5EZXNpcmVkVHJhbnNpdGlvbnMoKQogewogfQogCi12b2lkIERl
c2lyZWRUcmFuc2l0aW9uczo6YWRkTGF6aWx5KENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlQmxv
Y2sqIGNvZGVPcmlnaW5Pd25lciwgU3RydWN0dXJlKiBvbGRTdHJ1Y3R1cmUsIFN0cnVjdHVyZSog
bmV3U3RydWN0dXJlKQordm9pZCBEZXNpcmVkVHJhbnNpdGlvbnM6OmFkZExhemlseShDb2RlQmxv
Y2sqIGNvZGVPcmlnaW5Pd25lciwgU3RydWN0dXJlKiBvbGRTdHJ1Y3R1cmUsIFN0cnVjdHVyZSog
bmV3U3RydWN0dXJlKQogewotICAgIG1fdHJhbnNpdGlvbnMuYXBwZW5kKERlc2lyZWRUcmFuc2l0
aW9uKGNvZGVCbG9jaywgY29kZU9yaWdpbk93bmVyLCBvbGRTdHJ1Y3R1cmUsIG5ld1N0cnVjdHVy
ZSkpOworICAgIG1fdHJhbnNpdGlvbnMuYXBwZW5kKERlc2lyZWRUcmFuc2l0aW9uKGNvZGVPcmln
aW5Pd25lciwgb2xkU3RydWN0dXJlLCBuZXdTdHJ1Y3R1cmUpKTsKIH0KIAogdm9pZCBEZXNpcmVk
VHJhbnNpdGlvbnM6OnJlYWxseUFkZChWTSYgdm0sIENvbW1vbkRhdGEqIGNvbW1vbikKIHsKLSAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV90cmFuc2l0aW9ucy5zaXplKCk7IGkrKykKLSAg
ICAgICAgbV90cmFuc2l0aW9uc1tpXS5yZWFsbHlBZGQodm0sIGNvbW1vbik7CisgICAgRml4ZWRW
ZWN0b3I8V2Vha1JlZmVyZW5jZVRyYW5zaXRpb24+IHRyYW5zaXRpb25zKG1fdHJhbnNpdGlvbnMu
c2l6ZSgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV90cmFuc2l0aW9ucy5zaXpl
KCk7IGkrKykgeworICAgICAgICBhdXRvJiBkZXNpcmVkVHJhbnNpdGlvbiA9IG1fdHJhbnNpdGlv
bnNbaV07CisgICAgICAgIHRyYW5zaXRpb25zW2ldID0gV2Vha1JlZmVyZW5jZVRyYW5zaXRpb24o
dm0sIG1fY29kZUJsb2NrLCBkZXNpcmVkVHJhbnNpdGlvbi5tX2NvZGVPcmlnaW5Pd25lciwgZGVz
aXJlZFRyYW5zaXRpb24ubV9vbGRTdHJ1Y3R1cmUsIGRlc2lyZWRUcmFuc2l0aW9uLm1fbmV3U3Ry
dWN0dXJlKTsKKyAgICB9CisgICAgaWYgKCF0cmFuc2l0aW9ucy5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihtX2NvZGVCbG9jay0+bV9sb2NrKTsKKyAgICAg
ICAgQVNTRVJUKGNvbW1vbi0+bV90cmFuc2l0aW9ucy5pc0VtcHR5KCkpOworICAgICAgICBjb21t
b24tPm1fdHJhbnNpdGlvbnMgPSBXVEZNb3ZlKHRyYW5zaXRpb25zKTsKKyAgICB9CiB9CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuaAppbmRleCA1OTVlNjUwZjY4ZTc3ODRlZWY0M2M3NTdm
ZmI5ZWFlMDgyZWM1ZTkxLi4zM2NhZGQ5MjAwMWI3YzMxODIyOTZiYWZjZDY3MGUyMWUyMjE3MGJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRUcmFuc2l0
aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFRyYW5zaXRp
b25zLmgKQEAgLTM5LDE2ICszOSwxNiBAQCBjbGFzcyBWTTsKIG5hbWVzcGFjZSBERkcgewogCiBj
bGFzcyBDb21tb25EYXRhOworY2xhc3MgRGVzaXJlZFRyYW5zaXRpb25zOwogCiBjbGFzcyBEZXNp
cmVkVHJhbnNpdGlvbiB7CiBwdWJsaWM6Ci0gICAgRGVzaXJlZFRyYW5zaXRpb24oQ29kZUJsb2Nr
KiwgQ29kZUJsb2NrKiBjb2RlT3JpZ2luT3duZXIsIFN0cnVjdHVyZSosIFN0cnVjdHVyZSopOwor
ICAgIGZyaWVuZCBjbGFzcyBEZXNpcmVkVHJhbnNpdGlvbnM7CisgICAgRGVzaXJlZFRyYW5zaXRp
b24oQ29kZUJsb2NrKiBjb2RlT3JpZ2luT3duZXIsIFN0cnVjdHVyZSosIFN0cnVjdHVyZSopOwog
Ci0gICAgdm9pZCByZWFsbHlBZGQoVk0mLCBDb21tb25EYXRhKik7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVmlzaXRvcj4gdm9pZCB2aXNpdENoaWxkcmVuKFZpc2l0b3ImKTsKIAogcHJpdmF0ZToK
LSAgICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwogICAgIENvZGVCbG9jayogbV9jb2RlT3JpZ2lu
T3duZXI7CiAgICAgU3RydWN0dXJlKiBtX29sZFN0cnVjdHVyZTsKICAgICBTdHJ1Y3R1cmUqIG1f
bmV3U3RydWN0dXJlOwpAQCAtNTYsMTQgKzU2LDE2IEBAIGNsYXNzIERlc2lyZWRUcmFuc2l0aW9u
IHsKIAogY2xhc3MgRGVzaXJlZFRyYW5zaXRpb25zIHsKIHB1YmxpYzoKLSAgICBEZXNpcmVkVHJh
bnNpdGlvbnMoKTsKKyAgICBEZXNpcmVkVHJhbnNpdGlvbnMoKSA9IGRlZmF1bHQ7CisgICAgRGVz
aXJlZFRyYW5zaXRpb25zKENvZGVCbG9jayopOwogICAgIH5EZXNpcmVkVHJhbnNpdGlvbnMoKTsK
IAotICAgIHZvaWQgYWRkTGF6aWx5KENvZGVCbG9jayosIENvZGVCbG9jayogY29kZU9yaWdpbk93
bmVyLCBTdHJ1Y3R1cmUqLCBTdHJ1Y3R1cmUqKTsKKyAgICB2b2lkIGFkZExhemlseShDb2RlQmxv
Y2sqIGNvZGVPcmlnaW5Pd25lciwgU3RydWN0dXJlKiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBy
ZWFsbHlBZGQoVk0mLCBDb21tb25EYXRhKik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRv
cj4gdm9pZCB2aXNpdENoaWxkcmVuKFZpc2l0b3ImKTsKIAogcHJpdmF0ZToKKyAgICBDb2RlQmxv
Y2sqIG1fY29kZUJsb2NrIHsgbnVsbHB0ciB9OwogICAgIFZlY3RvcjxEZXNpcmVkVHJhbnNpdGlv
bj4gbV90cmFuc2l0aW9uczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRGVzaXJlZFdlYWtSZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRGVzaXJlZFdlYWtSZWZlcmVuY2VzLmNwcAppbmRleCA0MThkMWY3NTU5MDc5YTAx
NzkyZDIzYzI1NjdhNTZmNjQwMzJhZDc1Li44ODgzZTE1ZjQwOThhN2IyMzAxMmQ1OWU2MjNlNzJk
ZTc4OGQ2Y2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2ly
ZWRXZWFrUmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdE
ZXNpcmVkV2Vha1JlZmVyZW5jZXMuY3BwCkBAIC02NywyNCArNjcsMzAgQEAgYm9vbCBEZXNpcmVk
V2Vha1JlZmVyZW5jZXM6OmNvbnRhaW5zKEpTQ2VsbCogY2VsbCkKIAogdm9pZCBEZXNpcmVkV2Vh
a1JlZmVyZW5jZXM6OnJlYWxseUFkZChWTSYgdm0sIENvbW1vbkRhdGEqIGNvbW1vbikKIHsKKyAg
ICAvLyBXZSBkbyBub3QgZW1pdCBXcml0ZUJhcnJpZXIgaGVyZSBzaW5jZSAoMSkgR0MgaXMgZGVm
ZXJyZWQgYW5kICgyKSB3ZSBlbWl0IHdyaXRlLWJhcnJpZXIgb24gQ29kZUJsb2NrIHdoZW4gZmlu
aXNoaW5nIERGRzo6UGxhbjo6cmVhbGx5QWRkLgogICAgIEFTU0VSVCh2bS5oZWFwLmlzRGVmZXJy
ZWQoKSk7CisKKyAgICBWZWN0b3I8U3RydWN0dXJlSUQ+IHdlYWtTdHJ1Y3R1cmVSZWZlcmVuY2Vz
OworICAgIFZlY3RvcjxXcml0ZUJhcnJpZXI8SlNDZWxsPj4gd2Vha1JlZmVyZW5jZXM7CiAgICAg
Zm9yIChKU0NlbGwqIHRhcmdldCA6IG1fcmVmZXJlbmNlcykgewotICAgICAgICBpZiAoU3RydWN0
dXJlKiBzdHJ1Y3R1cmUgPSBqc0R5bmFtaWNDYXN0PFN0cnVjdHVyZSo+KHZtLCB0YXJnZXQpKSB7
Ci0gICAgICAgICAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKG1fY29kZUJsb2NrLT5tX2xv
Y2spOwotICAgICAgICAgICAgLy8gV2UgZG8gbm90IGVtaXQgV3JpdGVCYXJyaWVyIGhlcmUgc2lu
Y2UgKDEpIEdDIGlzIGRlZmVycmVkIGFuZCAoMikgd2UgZW1pdCB3cml0ZS1iYXJyaWVyIG9uIENv
ZGVCbG9jayB3aGVuIGZpbmlzaGluZyBERkc6OlBsYW46OnJlYWxseUFkZC4KLSAgICAgICAgICAg
IGNvbW1vbi0+d2Vha1N0cnVjdHVyZVJlZmVyZW5jZXMuYXBwZW5kKHN0cnVjdHVyZS0+aWQoKSk7
Ci0gICAgICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGpz
RHluYW1pY0Nhc3Q8U3RydWN0dXJlKj4odm0sIHRhcmdldCkpCisgICAgICAgICAgICB3ZWFrU3Ry
dWN0dXJlUmVmZXJlbmNlcy5hcHBlbmQoc3RydWN0dXJlLT5pZCgpKTsKKyAgICAgICAgZWxzZSB7
CiAgICAgICAgICAgICAvLyBUaGVyZSBhcmUgd2VpcmQgcmVsYXRpb25zaGlwcyBpbiBob3cgb3B0
aW1pemVkIENvZGVCbG9ja3MKICAgICAgICAgICAgIC8vIHBvaW50IHRvIG90aGVyIENvZGVCbG9j
a3MuIFdlIGRvbid0IHdhbnQgdG8gaGF2ZSB0aGVtIGJlCiAgICAgICAgICAgICAvLyBwYXJ0IG9m
IHRoZSB3ZWFrIHBvaW50ZXIgc2V0LiBGb3IgZXhhbXBsZSwgYW4gb3B0aW1pemVkIENvZGVCbG9j
awogICAgICAgICAgICAgLy8gaGF2aW5nIGEgd2VhayBwb2ludGVyIHRvIGl0c2VsZiB3aWxsIGNh
dXNlIGl0IHRvIGdldCBjb2xsZWN0ZWQuCiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCghanNE
eW5hbWljQ2FzdDxDb2RlQmxvY2sqPih2bSwgdGFyZ2V0KSk7Ci0KLSAgICAgICAgICAgIENvbmN1
cnJlbnRKU0xvY2tlciBsb2NrZXIobV9jb2RlQmxvY2stPm1fbG9jayk7Ci0gICAgICAgICAgICBj
b21tb24tPndlYWtSZWZlcmVuY2VzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICBXcml0ZUJhcnJp
ZXI8SlNDZWxsPih2bSwgbV9jb2RlQmxvY2ssIHRhcmdldCkpOworICAgICAgICAgICAgd2Vha1Jl
ZmVyZW5jZXMuYXBwZW5kKFdyaXRlQmFycmllcjxKU0NlbGw+KHZtLCBtX2NvZGVCbG9jaywgdGFy
Z2V0KSk7CiAgICAgICAgIH0KICAgICB9CisgICAgaWYgKCF3ZWFrU3RydWN0dXJlUmVmZXJlbmNl
cy5pc0VtcHR5KCkgfHwgIXdlYWtSZWZlcmVuY2VzLmlzRW1wdHkoKSkgeworICAgICAgICBDb25j
dXJyZW50SlNMb2NrZXIgbG9ja2VyKG1fY29kZUJsb2NrLT5tX2xvY2spOworICAgICAgICBBU1NF
UlQoY29tbW9uLT5tX3dlYWtTdHJ1Y3R1cmVSZWZlcmVuY2VzLmlzRW1wdHkoKSk7CisgICAgICAg
IEFTU0VSVChjb21tb24tPm1fd2Vha1JlZmVyZW5jZXMuaXNFbXB0eSgpKTsKKyAgICAgICAgY29t
bW9uLT5tX3dlYWtTdHJ1Y3R1cmVSZWZlcmVuY2VzID0gV1RGTW92ZSh3ZWFrU3RydWN0dXJlUmVm
ZXJlbmNlcyk7CisgICAgICAgIGNvbW1vbi0+bV93ZWFrUmVmZXJlbmNlcyA9IFdURk1vdmUod2Vh
a1JlZmVyZW5jZXMpOworICAgIH0KIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAppbmRleCA0Yjg4ZjQxM2VjMjU5YjEyNWMyZjU5
Y2Q3Nzc5NDc0MWZiN2EzNGExLi4yYTI1ODZkZTU5ODUwYWM3ZTUzOWNiOGYxZmJhZGI4YjA4MTc1
MWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCkBAIC0xMDY0LDYgKzEwNjQs
MTEgQEAgY2xhc3MgR3JhcGggZmluYWwgOiBwdWJsaWMgdmlydHVhbCBTY2FubmFibGUgewogICAg
IFByZWZpeCYgcHJlZml4KCkgeyByZXR1cm4gbV9wcmVmaXg7IH0KICAgICB2b2lkIG5leHRQaGFz
ZSgpIHsgbV9wcmVmaXgucGhhc2VOdW1iZXIrKzsgfQogCisgICAgdm9pZCBhcHBlbmRDYXRjaEVu
dHJ5cG9pbnQoQnl0ZWNvZGVJbmRleCBieXRlY29kZUluZGV4LCBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHI8RXhjZXB0aW9uSGFuZGxlclB0clRhZz4gbWFjaGluZUNvZGUsIFZlY3RvcjxGbHVzaEZvcm1h
dD4mJiBhcmd1bWVudEZvcm1hdHMpCisgICAgeworICAgICAgICBtX2NhdGNoRW50cnlwb2ludHMu
YXBwZW5kKENhdGNoRW50cnlwb2ludERhdGEgeyBtYWNoaW5lQ29kZSwgRml4ZWRWZWN0b3I8Rmx1
c2hGb3JtYXQ+KFdURk1vdmUoYXJndW1lbnRGb3JtYXRzKSksIGJ5dGVjb2RlSW5kZXggfSk7Cisg
ICAgfQorCiAgICAgU3RhY2tDaGVjayBtX3N0YWNrQ2hlY2tlcjsKICAgICBWTSYgbV92bTsKICAg
ICBQbGFuJiBtX3BsYW47CkBAIC0xMTU1LDYgKzExNjAsNyBAQCBjbGFzcyBHcmFwaCBmaW5hbCA6
IHB1YmxpYyB2aXJ0dWFsIFNjYW5uYWJsZSB7CiAgICAgLy8gVGhpcyBtYXBzIGFuIGVudHJ5cG9p
bnQgaW5kZXggdG8gYSBwYXJ0aWN1bGFyIG9wX2NhdGNoIGJ5dGVjb2RlIG9mZnNldC4gQnkgY29u
dmVudGlvbiwKICAgICAvLyBpdCdsbCBuZXZlciBoYXZlIHplcm8gYXMgYSBrZXkgYmVjYXVzZSB3
ZSB1c2UgemVybyB0byBtZWFuIHRoZSBvcF9lbnRlciBlbnRyeXBvaW50LgogICAgIEhhc2hNYXA8
dW5zaWduZWQsIEJ5dGVjb2RlSW5kZXg+IG1fZW50cnlwb2ludEluZGV4VG9DYXRjaEJ5dGVjb2Rl
SW5kZXg7CisgICAgVmVjdG9yPENhdGNoRW50cnlwb2ludERhdGE+IG1fY2F0Y2hFbnRyeXBvaW50
czsKIAogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX2xvY2FsU3RyaW5nczsKICAgICBIYXNoTWFwPGNv
bnN0IFN0cmluZ0ltcGwqLCBTdHJpbmc+IG1fY29waWVkU3RyaW5nczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKaW5kZXggMzE4ZjAxNTZjMTRmZDg2MzYz
ZmIyOWZlOWVhZmZkMWMyOTg4M2YxNS4uMjY5MGUxMGJmMTQxMGIwZDMwZWFjODE5OTg1MzM1MGQ3
NDI2ZmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21w
aWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5j
cHAKQEAgLTI4OSw3ICsyODksNyBAQCB2b2lkIEpJVENvbXBpbGVyOjpsaW5rKExpbmtCdWZmZXIm
IGxpbmtCdWZmZXIpCiAgICAgICAgICAgICBleGl0Lm1fcGF0Y2hhYmxlSnVtcExvY2F0aW9uID0g
bGlua0J1ZmZlci5sb2NhdGlvbk9mPEpTSW50ZXJuYWxQdHJUYWc+KGluZm8ubV9wYXRjaGFibGVK
dW1wKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaW5mby5tX3JlcGxhY2VtZW50U291cmNlLmlz
U2V0KCkpIHsKLSAgICAgICAgICAgIG1faml0Q29kZS0+Y29tbW9uLmp1bXBSZXBsYWNlbWVudHMu
YXBwZW5kKEp1bXBSZXBsYWNlbWVudCgKKyAgICAgICAgICAgIG1faml0Q29kZS0+Y29tbW9uLm1f
anVtcFJlcGxhY2VtZW50cy5hcHBlbmQoSnVtcFJlcGxhY2VtZW50KAogICAgICAgICAgICAgICAg
IGxpbmtCdWZmZXIubG9jYXRpb25PZjxKU0ludGVybmFsUHRyVGFnPihpbmZvLm1fcmVwbGFjZW1l
bnRTb3VyY2UpLAogICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZjxPU1JFeGl0
UHRyVGFnPihpbmZvLm1fcmVwbGFjZW1lbnREZXN0aW5hdGlvbikpKTsKICAgICAgICAgfQpAQCAt
NTM5LDcgKzUzOSw3IEBAIHZvaWQgSklUQ29tcGlsZXI6Om5vdGljZUNhdGNoRW50cnlwb2ludChC
YXNpY0Jsb2NrJiBiYXNpY0Jsb2NrLCBKSVRDb21waWxlcjo6TGFiCiB7CiAgICAgUkVMRUFTRV9B
U1NFUlQoYmFzaWNCbG9jay5pc0NhdGNoRW50cnlwb2ludCk7CiAgICAgUkVMRUFTRV9BU1NFUlQo
YmFzaWNCbG9jay5pbnRlcnNlY3Rpb25PZkNGQUhhc1Zpc2l0ZWQpOyAvLyBBbiBlbnRyeXBvaW50
IGlzIHJlYWNoYWJsZSBieSBkZWZpbml0aW9uLgotICAgIG1faml0Q29kZS0+Y29tbW9uLmFwcGVu
ZENhdGNoRW50cnlwb2ludChiYXNpY0Jsb2NrLmJ5dGVjb2RlQmVnaW4sIGxpbmtCdWZmZXIubG9j
YXRpb25PZjxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPihibG9ja0hlYWQpLCBXVEZNb3ZlKGFyZ3Vt
ZW50Rm9ybWF0cykpOworICAgIG1fZ3JhcGguYXBwZW5kQ2F0Y2hFbnRyeXBvaW50KGJhc2ljQmxv
Y2suYnl0ZWNvZGVCZWdpbiwgbGlua0J1ZmZlci5sb2NhdGlvbk9mPEV4Y2VwdGlvbkhhbmRsZXJQ
dHJUYWc+KGJsb2NrSGVhZCksIFdURk1vdmUoYXJndW1lbnRGb3JtYXRzKSk7CiB9CiAKIHZvaWQg
SklUQ29tcGlsZXI6Om5vdGljZU9TUkVudHJ5KEJhc2ljQmxvY2smIGJhc2ljQmxvY2ssIEpJVENv
bXBpbGVyOjpMYWJlbCBibG9ja0hlYWQsIExpbmtCdWZmZXImIGxpbmtCdWZmZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmgKaW5kZXggODY2NjBiZDIzNzkzN2QxYzA5NzAx
ZjhlZWYyZWVlNDM5YWYzOWE3Zi4uMTZiMzgyMWI4OTcyODFiYTFkNTVjZDhlZjBhYjE0MDk2NmVm
NzJlZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuaApAQCAtNzYsNyAr
NzYsNyBAQCBzdHJ1Y3QgQ2F0Y2hFbnRyeXBvaW50RGF0YSB7CiAgICAgLy8gV2UgdXNlIHRoaXMg
d2hlbiBkb2luZyBPU1IgZW50cnkgYXQgY2F0Y2guIFdlIHByb3ZlIHRoZSBhcmd1bWVudHMKICAg
ICAvLyBhcmUgb2YgdGhlIGV4cGVjdGVkIHR5cGUgYmVmb3JlIGVudGVyaW5nIGF0IGEgY2F0Y2gg
YmxvY2suCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEV4Y2VwdGlvbkhhbmRsZXJQdHJUYWc+
IG1hY2hpbmVDb2RlOwotICAgIFZlY3RvcjxGbHVzaEZvcm1hdD4gYXJndW1lbnRGb3JtYXRzOwor
ICAgIEZpeGVkVmVjdG9yPEZsdXNoRm9ybWF0PiBhcmd1bWVudEZvcm1hdHM7CiAgICAgQnl0ZWNv
ZGVJbmRleCBieXRlY29kZUluZGV4OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxh
bi5jcHAKaW5kZXggZDY5MTk0M2RmOTE0Y2VjYTBhZjFiMmU1NDZjNWMxMjAzNDcxNDBjMy4uYzU3
MmE1OGZjYWJjNGVhZmYxNDNkMWI0ZjhkNDFiMjA1YzJhZWU2OSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1BsYW4uY3BwCkBAIC0xNDUsNiArMTQ1LDcgQEAgUGxhbjo6UGxhbihDb2RlQmxv
Y2sqIHBhc3NlZENvZGVCbG9jaywgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywKICAg
ICAsIG1faW5saW5lQ2FsbEZyYW1lcyhhZG9wdFJlZihuZXcgSW5saW5lQ2FsbEZyYW1lU2V0KCkp
KQogICAgICwgbV9pZGVudGlmaWVycyhtX2NvZGVCbG9jaykKICAgICAsIG1fd2Vha1JlZmVyZW5j
ZXMobV9jb2RlQmxvY2spCisgICAgLCBtX3RyYW5zaXRpb25zKG1fY29kZUJsb2NrKQogICAgICwg
bV9zdGFnZShQcmVwYXJpbmcpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9jb2RlQmxvY2stPmFs
dGVybmF0aXZlKCktPmppdENvZGUoKSk7CkBAIC02MzYsOSArNjM3LDkgQEAgQ29tcGlsYXRpb25S
ZXN1bHQgUGxhbjo6ZmluYWxpemVXaXRob3V0Tm90aWZ5aW5nQ2FsbGJhY2soKQogICAgICAgICBp
ZiAodmFsaWRhdGlvbkVuYWJsZWQoKSkgewogICAgICAgICAgICAgVHJhY2tlZFJlZmVyZW5jZXMg
dHJhY2tlZFJlZmVyZW5jZXM7CiAKLSAgICAgICAgICAgIGZvciAoV3JpdGVCYXJyaWVyPEpTQ2Vs
bD4mIHJlZmVyZW5jZSA6IG1fY29kZUJsb2NrLT5qaXRDb2RlKCktPmRmZ0NvbW1vbigpLT53ZWFr
UmVmZXJlbmNlcykKKyAgICAgICAgICAgIGZvciAoV3JpdGVCYXJyaWVyPEpTQ2VsbD4mIHJlZmVy
ZW5jZSA6IG1fY29kZUJsb2NrLT5qaXRDb2RlKCktPmRmZ0NvbW1vbigpLT5tX3dlYWtSZWZlcmVu
Y2VzKQogICAgICAgICAgICAgICAgIHRyYWNrZWRSZWZlcmVuY2VzLmFkZChyZWZlcmVuY2UuZ2V0
KCkpOwotICAgICAgICAgICAgZm9yIChTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA6IG1fY29kZUJs
b2NrLT5qaXRDb2RlKCktPmRmZ0NvbW1vbigpLT53ZWFrU3RydWN0dXJlUmVmZXJlbmNlcykKKyAg
ICAgICAgICAgIGZvciAoU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgOiBtX2NvZGVCbG9jay0+aml0
Q29kZSgpLT5kZmdDb21tb24oKS0+bV93ZWFrU3RydWN0dXJlUmVmZXJlbmNlcykKICAgICAgICAg
ICAgICAgICB0cmFja2VkUmVmZXJlbmNlcy5hZGQobV92bS0+Z2V0U3RydWN0dXJlKHN0cnVjdHVy
ZUlEKSk7CiAgICAgICAgICAgICBmb3IgKFdyaXRlQmFycmllcjxVbmtub3duPiYgY29uc3RhbnQg
OiBtX2NvZGVCbG9jay0+Y29uc3RhbnRzKCkpCiAgICAgICAgICAgICAgICAgdHJhY2tlZFJlZmVy
ZW5jZXMuYWRkKGNvbnN0YW50LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggZTJiNGU5ZTE3YTdjY2QxZGIxNzU1MzRjMWIz
NzU3NWMyZTUyMzkxZi4uNzc4NTQxMzVkOWUzZjFlYTgyZjM5ODQ3NTRkZGVmMmJhMDE0ZGVlOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAK
QEAgLTIyMDIsNyArMjIwMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmxpbmtPU1JFbnRyaWVz
KExpbmtCdWZmZXImIGxpbmtCdWZmZXIpCiAgICAgfQogCiAgICAgbV9qaXQuaml0Q29kZSgpLT5m
aW5hbGl6ZU9TUkVudHJ5cG9pbnRzKCk7Ci0gICAgbV9qaXQuaml0Q29kZSgpLT5jb21tb24uZmlu
YWxpemVDYXRjaEVudHJ5cG9pbnRzKCk7CisgICAgbV9qaXQuaml0Q29kZSgpLT5jb21tb24uZmlu
YWxpemVDYXRjaEVudHJ5cG9pbnRzKFdURk1vdmUobV9qaXQuZ3JhcGgoKS5tX2NhdGNoRW50cnlw
b2ludHMpKTsKIAogICAgIEFTU0VSVChvc3JFbnRyeUluZGV4ID09IG1fb3NyRW50cnlIZWFkcy5z
aXplKCkpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggNTQzYTVkNjMwNGY4ZmQ3YjBmNmY3ZTkwMDY2YWZk
ZGFkOTc4NDAyYy4uMzQyNDBlNTRlODU3ZjU4YWQ0NzZhNmFmM2JlYTMyY2Q3YzIxNmQ2OCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwCkBAIC0zNDczLDggKzM0NzMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
KE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQdXRTdHJ1Y3R1cmU6IHsKICAgICAgICAgUmVnaXN0ZXJl
ZFN0cnVjdHVyZSBvbGRTdHJ1Y3R1cmUgPSBub2RlLT50cmFuc2l0aW9uKCktPnByZXZpb3VzOwog
ICAgICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIG5ld1N0cnVjdHVyZSA9IG5vZGUtPnRyYW5zaXRp
b24oKS0+bmV4dDsKLQotICAgICAgICBtX2ppdC5qaXRDb2RlKCktPmNvbW1vbi5ub3RpZnlDb21w
aWxpbmdTdHJ1Y3R1cmVUcmFuc2l0aW9uKG1faml0LmdyYXBoKCkubV9wbGFuLCBtX2ppdC5jb2Rl
QmxvY2soKSwgbm9kZSk7CisgICAgICAgIG1faml0LmdyYXBoKCkubV9wbGFuLnRyYW5zaXRpb25z
KCkuYWRkTGF6aWx5KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5jb2RlT3JpZ2luT3duZXIoKSwgb2xk
U3RydWN0dXJlLmdldCgpLCBuZXdTdHJ1Y3R1cmUuZ2V0KCkpOwogCiAgICAgICAgIFNwZWN1bGF0
ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBHUFJSZWcg
YmFzZUdQUiA9IGJhc2UuZ3ByKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCA0NDhmMDQ5ZTYzYjM5OTU1NmE5NDFjZjQ5YjQ3
OGQ3NmYzMWUxZWYyLi4zOGVlNmI0YTZlZjkwOTc0MzVhYjhlMDk1MjkxZDBiNmU3NzQxMzA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKQEAgLTQxMDYsOCArNDEwNiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9k
ZSogbm9kZSkKICAgICBjYXNlIFB1dFN0cnVjdHVyZTogewogICAgICAgICBSZWdpc3RlcmVkU3Ry
dWN0dXJlIG9sZFN0cnVjdHVyZSA9IG5vZGUtPnRyYW5zaXRpb24oKS0+cHJldmlvdXM7CiAgICAg
ICAgIFJlZ2lzdGVyZWRTdHJ1Y3R1cmUgbmV3U3RydWN0dXJlID0gbm9kZS0+dHJhbnNpdGlvbigp
LT5uZXh0OwotCi0gICAgICAgIG1faml0LmppdENvZGUoKS0+Y29tbW9uLm5vdGlmeUNvbXBpbGlu
Z1N0cnVjdHVyZVRyYW5zaXRpb24obV9qaXQuZ3JhcGgoKS5tX3BsYW4sIG1faml0LmNvZGVCbG9j
aygpLCBub2RlKTsKKyAgICAgICAgbV9qaXQuZ3JhcGgoKS5tX3BsYW4udHJhbnNpdGlvbnMoKS5h
ZGRMYXppbHkobm9kZS0+b3JpZ2luLnNlbWFudGljLmNvZGVPcmlnaW5Pd25lcigpLCBvbGRTdHJ1
Y3R1cmUuZ2V0KCksIG5ld1N0cnVjdHVyZS5nZXQoKSk7CiAKICAgICAgICAgU3BlY3VsYXRlQ2Vs
bE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlJlZyBiYXNl
R1BSID0gYmFzZS5ncHIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQ29tcGlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3Bw
CmluZGV4IGY1NzE3NTJkYmQzYWYwNDU5YWUyOGE4NGJhN2U2OWU0MzIxZTM1MTkuLmQ4Zjc4ZTQ0
MmY3YzFiOWRkMGM3YzM1OGJjYzgxNGI3NmQzMTBiZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExDb21waWxlLmNwcApAQCAtMTU0LDkgKzE1NCw5IEBAIHZvaWQgY29tcGlsZShTdGF0
ZSYgc3RhdGUsIFNhZmVwb2ludDo6UmVzdWx0JiBzYWZlcG9pbnRSZXN1bHQpCiAgICAgICAgIEJ5
dGVjb2RlSW5kZXggY2F0Y2hCeXRlY29kZUluZGV4ID0gcGFpci52YWx1ZTsKICAgICAgICAgdW5z
aWduZWQgZW50cnlwb2ludEluZGV4ID0gcGFpci5rZXk7CiAgICAgICAgIFZlY3RvcjxGbHVzaEZv
cm1hdD4gYXJndW1lbnRGb3JtYXRzID0gc3RhdGUuZ3JhcGgubV9hcmd1bWVudEZvcm1hdHNbZW50
cnlwb2ludEluZGV4XTsKLSAgICAgICAgc3RhdGUuaml0Q29kZS0+Y29tbW9uLmFwcGVuZENhdGNo
RW50cnlwb2ludChjYXRjaEJ5dGVjb2RlSW5kZXgsIHN0YXRlLmZpbmFsaXplci0+YjNDb2RlTGlu
a0J1ZmZlci0+bG9jYXRpb25PZjxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPihzdGF0ZS5wcm9jLT5j
b2RlKCkuZW50cnlwb2ludExhYmVsKGVudHJ5cG9pbnRJbmRleCkpLCBXVEZNb3ZlKGFyZ3VtZW50
Rm9ybWF0cykpOworICAgICAgICBzdGF0ZS5ncmFwaC5hcHBlbmRDYXRjaEVudHJ5cG9pbnQoY2F0
Y2hCeXRlY29kZUluZGV4LCBzdGF0ZS5maW5hbGl6ZXItPmIzQ29kZUxpbmtCdWZmZXItPmxvY2F0
aW9uT2Y8RXhjZXB0aW9uSGFuZGxlclB0clRhZz4oc3RhdGUucHJvYy0+Y29kZSgpLmVudHJ5cG9p
bnRMYWJlbChlbnRyeXBvaW50SW5kZXgpKSwgV1RGTW92ZShhcmd1bWVudEZvcm1hdHMpKTsKICAg
ICB9Ci0gICAgc3RhdGUuaml0Q29kZS0+Y29tbW9uLmZpbmFsaXplQ2F0Y2hFbnRyeXBvaW50cygp
OworICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5maW5hbGl6ZUNhdGNoRW50cnlwb2ludHMoV1RG
TW92ZShzdGF0ZS5ncmFwaC5tX2NhdGNoRW50cnlwb2ludHMpKTsKIAogICAgIGlmIChCMzo6QWly
OjpEaXNhc3NlbWJsZXIqIGRpc2Fzc2VtYmxlciA9IHN0YXRlLnByb2MtPmNvZGUoKS5kaXNhc3Nl
bWJsZXIoKSkgewogICAgICAgICBQcmludFN0cmVhbSYgb3V0ID0gV1RGOjpkYXRhRmlsZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDUx
OGMwNDNhYWVmZjllZWRmN2VhOGMwNWE0YWIyMDQwYmYwNzZhM2IuLmIyNTU2MzcwN2VkMzEzYjY5
ZTU1ZDcwOWE1NmQxYTJiNTUzOTJmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTM4NDksMTAgKzM4NDksMTAgQEAgY2xhc3MgTG93ZXJE
RkdUb0IzIHsKICAgICAKICAgICB2b2lkIGNvbXBpbGVQdXRTdHJ1Y3R1cmUoKQogICAgIHsKLSAg
ICAgICAgbV9mdGxTdGF0ZS5qaXRDb2RlLT5jb21tb24ubm90aWZ5Q29tcGlsaW5nU3RydWN0dXJl
VHJhbnNpdGlvbihtX2dyYXBoLm1fcGxhbiwgY29kZUJsb2NrKCksIG1fbm9kZSk7Ci0gICAgICAg
IAogICAgICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIG9sZFN0cnVjdHVyZSA9IG1fbm9kZS0+dHJh
bnNpdGlvbigpLT5wcmV2aW91czsKICAgICAgICAgUmVnaXN0ZXJlZFN0cnVjdHVyZSBuZXdTdHJ1
Y3R1cmUgPSBtX25vZGUtPnRyYW5zaXRpb24oKS0+bmV4dDsKKyAgICAgICAgbV9ncmFwaC5tX3Bs
YW4udHJhbnNpdGlvbnMoKS5hZGRMYXppbHkobV9ub2RlLT5vcmlnaW4uc2VtYW50aWMuY29kZU9y
aWdpbk93bmVyKCksIG9sZFN0cnVjdHVyZS5nZXQoKSwgbmV3U3RydWN0dXJlLmdldCgpKTsKKwog
ICAgICAgICBBU1NFUlRfVU5VU0VEKG9sZFN0cnVjdHVyZSwgb2xkU3RydWN0dXJlLT5pbmRleGlu
Z01vZGUoKSA9PSBuZXdTdHJ1Y3R1cmUtPmluZGV4aW5nTW9kZSgpKTsKICAgICAgICAgQVNTRVJU
KG9sZFN0cnVjdHVyZS0+dHlwZUluZm8oKS5pbmxpbmVUeXBlRmxhZ3MoKSA9PSBuZXdTdHJ1Y3R1
cmUtPnR5cGVJbmZvKCkuaW5saW5lVHlwZUZsYWdzKCkpOwogICAgICAgICBBU1NFUlQob2xkU3Ry
dWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKSA9PSBuZXdTdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlw
ZSgpKTsKQEAgLTg4MjQsNyArODgyNCw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwgbV9ub2Rl
LCB2YXJpYW50LmtpbmQoKSA9PSBQdXRCeUlkVmFyaWFudDo6VHJhbnNpdGlvbiwgdmFyaWFudC5r
aW5kKCkpOwogICAgICAgICAgICAgICAgIG1fZ3JhcGgubV9wbGFuLnRyYW5zaXRpb25zKCkuYWRk
TGF6aWx5KAotICAgICAgICAgICAgICAgICAgICBjb2RlQmxvY2soKSwgbV9vcmlnaW4uc2VtYW50
aWMuY29kZU9yaWdpbk93bmVyKCksCisgICAgICAgICAgICAgICAgICAgIG1fb3JpZ2luLnNlbWFu
dGljLmNvZGVPcmlnaW5Pd25lcigpLAogICAgICAgICAgICAgICAgICAgICB2YXJpYW50Lm9sZFN0
cnVjdHVyZUZvclRyYW5zaXRpb24oKSwgdmFyaWFudC5uZXdTdHJ1Y3R1cmUoKSk7CiAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgc3RvcmFnZSA9IHN0b3JhZ2VGb3JUcmFuc2l0aW9u
KApAQCAtMTEzNTMsNyArMTEzNTMsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAg
ICAgICAgICAgICAgICAgSnVtcFJlcGxhY2VtZW50IGp1bXBSZXBsYWNlbWVudCgKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SlNJbnRlcm5hbFB0clRh
Zz4obGFiZWwpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRp
b25PZjxPU1JFeGl0UHRyVGFnPihoYW5kbGUtPmxhYmVsKSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBqaXRDb2RlLT5jb21tb24uanVtcFJlcGxhY2VtZW50cy5hcHBlbmQoanVtcFJlcGxhY2Vt
ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdENvZGUtPmNvbW1vbi5tX2p1bXBSZXBs
YWNlbWVudHMuYXBwZW5kKGp1bXBSZXBsYWNlbWVudCk7CiAgICAgICAgICAgICAgICAgICAgIH0p
OwogICAgICAgICAgICAgfSk7CiAK
</data>
<flag name="review"
          id="446236"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
    <flag name="commit-queue"
          id="446263"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>