<?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>266050</bug_id>
          
          <creation_ts>2023-12-07 18:51:46 -0800</creation_ts>
          <short_desc>REGRESSION(271682@main): 5% SP2 regression</short_desc>
          <delta_ts>2023-12-07 18:56:19 -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>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>265947</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>annevk</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1997874</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-12-07 18:51:46 -0800</bug_when>
    <thetext>https://commits.webkit.org/271682@main introduced a regression:
5% SP2 regression

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1997876</commentid>
    <comment_count>1</comment_count>
      <attachid>468935</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-12-07 18:51:53 -0800</bug_when>
    <thetext>Created attachment 468935
REVERT of 271682@main

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1997878</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-12-07 18:55:38 -0800</bug_when>
    <thetext>Committed 271705@main (2d1ab242d162): &lt;https://commits.webkit.org/271705@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 468935.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1997879</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-12-07 18:56:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/119351448&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468935</attachid>
            <date>2023-12-07 18:51:53 -0800</date>
            <delta_ts>2023-12-07 18:55:39 -0800</delta_ts>
            <desc>REVERT of 271682@main</desc>
            <filename>bug-266050-20231208025153.patch</filename>
            <type>text/plain</type>
            <size>26639</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA3YmFiNjk0NTBhNjFlNTBkZjZhMzVjOTRlYTkzYWI4NTE4MmViMzgyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBGcmksIDggRGVjIDIwMjMgMDI6NTE6NTEgKzAwMDAKU3ViamVjdDogW1BBVENIXSBV
bnJldmlld2VkLCByZXZlcnRpbmcgMjcxNjgyQG1haW4uCiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjY2MDUwCgo1JSBTUDIgcmVncmVzc2lvbgoKUmV2ZXJ0ZWQgY2hh
bmdlc2V0OgoKIkFkZCA8aW5wdXQgdHlwZT1jaGVja2JveCBzd2l0Y2g+IGlPUyBpbmZyYXN0cnVj
dHVyZSIKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2NTk0NwpodHRw
czovL2NvbW1pdHMud2Via2l0Lm9yZy8yNzE2ODJAbWFpbgotLS0KIFNvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvaW9zL1VJS2l0U29mdExpbmsuaCAgfCAgIDIgLQogU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9pb3MvVUlLaXRTb2Z0TGluay5tbSB8ICAgMSAtCiBTb3VyY2UvV2ViQ29yZS9jc3MvaHRtbFN3
aXRjaENvbnRyb2wuY3NzICAgIHwgIDIzIC0tLS0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2ti
b3hJbnB1dFR5cGUuY3BwICAgfCAxMjAgKystLS0tLS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJD
b3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaCAgICAgfCAgMTUgKy0tCiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwICAgIHwgIDM3ICstLS0tLQogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggICAgICB8ICAgMyArLQogU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuaCAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVGhlbWUuaCAgICAgICAgICAgICB8ICAgMSAtCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvVGhlbWVJT1MuaCAgICAgIHwgICAxIC0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9UaGVtZUlPUy5tbSAgICAgfCAgIDUgLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmNwcCAgICB8ICAgOCAtLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmggICAgICB8ICAgNSAtCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJ
T1MuaCAgIHwgICA2IC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5t
bSAgfCAgNDQgLS0tLS0tLQogMTUgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgMjUy
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvaW9zL1VJ
S2l0U29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvaW9zL1VJS2l0U29mdExpbmsu
aAppbmRleCAxYTI2ODExYWJjZDguLjliMzlhNDllNzM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9pb3MvVUlLaXRTb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvaW9zL1VJS2l0U29mdExpbmsuaApAQCAtNzUsOCArNzUsNiBAQCBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIFVJS2l0LCBVSUFjY2Vzc2liaWxpdHlJc1JlZHVjZU1vdGlv
bkVuYWJsZWQsCiAjZGVmaW5lIFVJQWNjZXNzaWJpbGl0eUlzUmVkdWNlTW90aW9uRW5hYmxlZCBQ
QUw6OnNvZnRMaW5rX1VJS2l0X1VJQWNjZXNzaWJpbGl0eUlzUmVkdWNlTW90aW9uRW5hYmxlZAog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBVSUtpdCwgVUlBY2Nlc3NpYmlsaXR5
RGFya2VyU3lzdGVtQ29sb3JzRW5hYmxlZCwgQk9PTCwgKHZvaWQpLCAoKSkKICNkZWZpbmUgVUlB
Y2Nlc3NpYmlsaXR5RGFya2VyU3lzdGVtQ29sb3JzRW5hYmxlZCBQQUw6OnNvZnRMaW5rX1VJS2l0
X1VJQWNjZXNzaWJpbGl0eURhcmtlclN5c3RlbUNvbG9yc0VuYWJsZWQKLVNPRlRfTElOS19GVU5D
VElPTl9GT1JfSEVBREVSKFBBTCwgVUlLaXQsIFVJQWNjZXNzaWJpbGl0eUlzT25PZmZTd2l0Y2hM
YWJlbHNFbmFibGVkLCBCT09MLCAodm9pZCksICgpKQotI2RlZmluZSBVSUFjY2Vzc2liaWxpdHlJ
c09uT2ZmU3dpdGNoTGFiZWxzRW5hYmxlZCBQQUw6OnNvZnRMaW5rX1VJS2l0X1VJQWNjZXNzaWJp
bGl0eUlzT25PZmZTd2l0Y2hMYWJlbHNFbmFibGVkCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihQQUwsIFVJS2l0LCBVSUFjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uLCB2b2lkLCAo
VUlBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9ucyBuLCBpZCBhcmd1bWVudCksIChuLCBhcmd1bWVu
dCkpCiAjZGVmaW5lIFVJQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb24gUEFMOjpzb2Z0TGlu
a19VSUtpdF9VSUFjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIFVJS2l0LCBVSUdyYXBoaWNzR2V0Q3VycmVudENvbnRleHQsIENH
Q29udGV4dFJlZiwgKHZvaWQpLCAoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvaW9zL1VJS2l0U29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2lvcy9VSUtp
dFNvZnRMaW5rLm1tCmluZGV4IGY5NDU2ZmJmOGU5Yi4uMmExYzY4MDYwZmU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2lvcy9VSUtpdFNvZnRMaW5rLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvaW9zL1VJS2l0U29mdExpbmsubW0KQEAgLTcwLDcgKzcwLDYgQEAg
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBVSUtpdCwgVUlBY2Nlc3NpYmlsaXR5
SXNHcmF5c2NhbGVFbmFibGVkLCBCT08KIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBB
TCwgVUlLaXQsIFVJQWNjZXNzaWJpbGl0eUlzSW52ZXJ0Q29sb3JzRW5hYmxlZCwgQk9PTCwgKHZv
aWQpLCAoKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
VUlLaXQsIFVJQWNjZXNzaWJpbGl0eUlzUmVkdWNlTW90aW9uRW5hYmxlZCwgQk9PTCwgKHZvaWQp
LCAoKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgVUlLaXQsIFVJQWNjZXNzaWJpbGl0eURhcmtlclN5c3RlbUNvbG9yc0VuYWJsZWQs
IEJPT0wsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIFVJS2l0LCBVSUFjY2Vzc2liaWxpdHlJc09uT2ZmU3dpdGNo
TGFiZWxzRW5hYmxlZCwgQk9PTCwgKHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVUlLaXQsIFVJQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmlj
YXRpb24sIHZvaWQsIChVSUFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25zIG4sIGlkIGFyZ3VtZW50
KSwgKG4sIGFyZ3VtZW50KSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVUlL
aXQsIFVJR3JhcGhpY3NHZXRDdXJyZW50Q29udGV4dCwgQ0dDb250ZXh0UmVmLCAodm9pZCksICgp
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBVSUtpdCwgVUlHcmFwaGljc1Bv
cENvbnRleHQsIHZvaWQsICh2b2lkKSwgKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvaHRtbFN3aXRjaENvbnRyb2wuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWxTd2l0Y2hD
b250cm9sLmNzcwppbmRleCBkY2ZkYmJhODEwMjkuLjZmNDNlZmRlZWU3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL2h0bWxTd2l0Y2hDb250cm9sLmNzcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvaHRtbFN3aXRjaENvbnRyb2wuY3NzCkBAIC0zMywyNiArMzMsMyBAQCBpbnB1dFt0
eXBlPSJjaGVja2JveCJdW3N3aXRjaF06OnRodW1iLCBpbnB1dFt0eXBlPSJjaGVja2JveCJdW3N3
aXRjaF06OnRyYWNrIHsKICAgICBhcHBlYXJhbmNlOiBpbmhlcml0ICFpbXBvcnRhbnQ7CiAgICAg
Z3JpZC1hcmVhOiAxLzE7CiB9Ci0KLSNpZiBkZWZpbmVkKFdURl9QTEFURk9STV9JT1NfRkFNSUxZ
KSAmJiBXVEZfUExBVEZPUk1fSU9TX0ZBTUlMWQotaW5wdXRbdHlwZT0iY2hlY2tib3giXVtzd2l0
Y2hdIHsKLSAgICBib3JkZXItcmFkaXVzOiBpbml0aWFsOwotICAgIHdpZHRoOiBpbml0aWFsOwot
ICAgIGhlaWdodDogaW5pdGlhbDsKLSAgICBwYWRkaW5nOiBpbml0aWFsOwotICAgIGJhY2tncm91
bmQtY29sb3I6IGluaXRpYWw7Ci19Ci0KLWlucHV0W3R5cGU9ImNoZWNrYm94Il1bc3dpdGNoXTpj
aGVja2VkIHsKLSAgICBib3JkZXItY29sb3I6IGluaXRpYWw7Ci19Ci0KLWlucHV0W3R5cGU9ImNo
ZWNrYm94Il1bc3dpdGNoXTpkaXNhYmxlZCB7Ci0gICAgb3BhY2l0eTogaW5pdGlhbDsKLX0KLQot
aW5wdXRbdHlwZT0iY2hlY2tib3giXVtzd2l0Y2hdOmNoZWNrZWQ6ZGlzYWJsZWQgewotICAgIG9w
YWNpdHk6IGluaXRpYWw7Ci0gICAgYmFja2dyb3VuZDogaW5pdGlhbDsKLX0KLSNlbmRpZiAvLyBk
ZWZpbmVkKFdURl9QTEFURk9STV9JT1NfRkFNSUxZKSAmJiBXVEZfUExBVEZPUk1fSU9TX0ZBTUlM
WQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcAppbmRleCBkNDdkNDg5
MzAyNWQuLjUyMmZiNjY5YzhiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVj
a2JveElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0
VHlwZS5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgog
I2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgotI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNs
dWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNp
bmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCkBAIC01MSwxMCArNTAsNiBAQAogI2luY2x1ZGUgIlN3
aXRjaFRodW1iRWxlbWVudC5oIgogI2luY2x1ZGUgIlN3aXRjaFRyYWNrRWxlbWVudC5oIgogCi0j
aWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi0jaW5jbHVkZSAiVG91Y2hFdmVudC5oIgotI2Vu
ZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgQXRvbVN0cmluZyYgQ2hlY2tib3hJ
bnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CkBAIC0xMDIsNiArOTcsNyBAQCB2b2lk
IENoZWNrYm94SW5wdXRUeXBlOjpoYW5kbGVNb3VzZURvd25FdmVudChNb3VzZUV2ZW50JiBldmVu
dCkKIAogICAgIGlmICghZXZlbnQuaXNUcnVzdGVkKCkgfHwgIWlzU3dpdGNoKCkgfHwgZWxlbWVu
dCgpLT5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKSB8fCAhZWxlbWVudCgpLT5yZW5kZXJlcigpKQog
ICAgICAgICByZXR1cm47CisgICAgbV9pc1N3aXRjaFZpc3VhbGx5T24gPSBlbGVtZW50KCktPmNo
ZWNrZWQoKTsKICAgICBzdGFydFN3aXRjaFBvaW50ZXJUcmFja2luZyhldmVudC5hYnNvbHV0ZUxv
Y2F0aW9uKCkpOwogfQogCkBAIC0xMjIsNzYgKzExOCw2IEBAIHZvaWQgQ2hlY2tib3hJbnB1dFR5
cGU6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KE1vdXNlRXZlbnQmIGV2ZW50KQogICAgIHVwZGF0ZUlz
U3dpdGNoVmlzdWFsbHlPbkZyb21BYnNvbHV0ZUxvY2F0aW9uKGV2ZW50LmFic29sdXRlTG9jYXRp
b24oKSk7CiB9CiAKLSNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLS8vIEZJWE1FOiBTaGFy
ZSB0aGlzIGZ1bmN0aW9uIHdpdGggU2xpZGVyVGh1bWJFbGVtZW50IHNvbWVob3c/IFNvbWUgb2Yg
dGhlIGxvZ2ljIGluCi0vLyBoYW5kbGVUb3VjaEV2ZW50KCkgY291bGQgbWF5YmUgZG8gd2l0aCBz
b21lIGFic3RyYWN0aW9uIGFzIHdlbGwuCi1zdGF0aWMgVG91Y2gqIGZpbmRUb3VjaFdpdGhJZGVu
dGlmaWVyKFRvdWNoTGlzdCYgbGlzdCwgdW5zaWduZWQgaWRlbnRpZmllcikKLXsKLSAgICB1bnNp
Z25lZCBsZW5ndGggPSBsaXN0Lmxlbmd0aCgpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBsZW5ndGg7ICsraSkgewotICAgICAgICBSZWZQdHI8VG91Y2g+IHRvdWNoID0gbGlzdC5pdGVt
KGkpOwotICAgICAgICBpZiAodG91Y2gtPmlkZW50aWZpZXIoKSA9PSBpZGVudGlmaWVyKQotICAg
ICAgICAgICAgcmV0dXJuIHRvdWNoLmdldCgpOwotICAgIH0KLSAgICByZXR1cm4gbnVsbHB0cjsK
LX0KLQotdm9pZCBDaGVja2JveElucHV0VHlwZTo6aGFuZGxlVG91Y2hFdmVudChUb3VjaEV2ZW50
JiBldmVudCkKLXsKLSAgICBBU1NFUlQoZWxlbWVudCgpKTsKLQotICAgIGlmICghZXZlbnQuaXNU
cnVzdGVkKCkgfHwgIWlzU3dpdGNoKCkgfHwgZWxlbWVudCgpLT5pc0Rpc2FibGVkRm9ybUNvbnRy
b2woKSB8fCAhZWxlbWVudCgpLT5yZW5kZXJlcigpKSB7Ci0gICAgICAgIHN0b3BTd2l0Y2hQb2lu
dGVyVHJhY2tpbmcoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGNvbnN0IEF0b21T
dHJpbmcmIGV2ZW50VHlwZSA9IGV2ZW50LnR5cGUoKTsKLSAgICBhdXRvJiBldmVudE5hbWVzID0g
V2ViQ29yZTo6ZXZlbnROYW1lcygpOwotICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcy50
b3VjaHN0YXJ0RXZlbnQpIHsKLSAgICAgICAgUmVmUHRyPFRvdWNoTGlzdD4gdGFyZ2V0VG91Y2hl
cyA9IGV2ZW50LnRhcmdldFRvdWNoZXMoKTsKLSAgICAgICAgaWYgKCF0YXJnZXRUb3VjaGVzKQot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAodGFyZ2V0VG91Y2hlcy0+bGVuZ3RoKCkg
IT0gMSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgUmVmUHRyPFRvdWNoPiB0b3VjaCA9
IHRhcmdldFRvdWNoZXMtPml0ZW0oMCk7Ci0KLSAgICAgICAgc3RhcnRTd2l0Y2hQb2ludGVyVHJh
Y2tpbmcoSW50UG9pbnQodG91Y2gtPnBhZ2VYKCksIHRvdWNoLT5wYWdlWSgpKSwgdG91Y2gtPmlk
ZW50aWZpZXIoKSk7Ci0gICAgICAgIHBlcmZvcm1Td2l0Y2hBbmltYXRpb24oU3dpdGNoQW5pbWF0
aW9uVHlwZTo6UHJlc3NlZCk7Ci0gICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7Ci0g
ICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcy50b3VjaG1vdmVFdmVudCkgewot
ICAgICAgICBpZiAoIW1fc3dpdGNoUG9pbnRlclRyYWNraW5nVG91Y2hJZGVudGlmaWVyIHx8ICFp
c1N3aXRjaFBvaW50ZXJUcmFja2luZygpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IFJlZlB0cjxUb3VjaExpc3Q+IHRhcmdldFRvdWNoZXMgPSBldmVudC50YXJnZXRUb3VjaGVzKCk7
Ci0gICAgICAgIGlmICghdGFyZ2V0VG91Y2hlcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICBSZWZQdHI8VG91Y2g+IHRvdWNoID0gZmluZFRvdWNoV2l0aElkZW50aWZpZXIoKnRhcmdl
dFRvdWNoZXMsICptX3N3aXRjaFBvaW50ZXJUcmFja2luZ1RvdWNoSWRlbnRpZmllcik7Ci0gICAg
ICAgIGlmICghdG91Y2gpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgYXV0byBhYnNv
bHV0ZUxvY2F0aW9uID0gSW50UG9pbnQodG91Y2gtPnBhZ2VYKCksIHRvdWNoLT5wYWdlWSgpKTsK
LSAgICAgICAgdXBkYXRlSXNTd2l0Y2hWaXN1YWxseU9uRnJvbUFic29sdXRlTG9jYXRpb24oYWJz
b2x1dGVMb2NhdGlvbik7Ci0gICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAg
fSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcy50b3VjaGVuZEV2ZW50IHx8IGV2ZW50
VHlwZSA9PSBldmVudE5hbWVzLnRvdWNoY2FuY2VsRXZlbnQpIHsKLSAgICAgICAgaWYgKCFtX3N3
aXRjaFBvaW50ZXJUcmFja2luZ1RvdWNoSWRlbnRpZmllciB8fCAhaXNTd2l0Y2hQb2ludGVyVHJh
Y2tpbmcoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBSZWZQdHI8VG91Y2hMaXN0
PiB0YXJnZXRUb3VjaGVzID0gZXZlbnQudGFyZ2V0VG91Y2hlcygpOwotICAgICAgICBpZiAoIXRh
cmdldFRvdWNoZXMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgLy8gSWYgb3VyIHRv
dWNoIHN0aWxsIGV4aXN0cywgdGhpcyBpcyBub3Qgb3VyIHRvdWNoZW5kL3RvdWNoY2FuY2VsLgot
ICAgICAgICBSZWZQdHI8VG91Y2g+IHRvdWNoID0gZmluZFRvdWNoV2l0aElkZW50aWZpZXIoKnRh
cmdldFRvdWNoZXMsICptX3N3aXRjaFBvaW50ZXJUcmFja2luZ1RvdWNoSWRlbnRpZmllcik7Ci0g
ICAgICAgIGlmICh0b3VjaCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBwZXJmb3Jt
U3dpdGNoQW5pbWF0aW9uKFN3aXRjaEFuaW1hdGlvblR5cGU6OlByZXNzZWQpOwotICAgICAgICBl
bGVtZW50KCktPmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soJmV2ZW50KTsKLSAgICB9Ci19Ci0jZW5k
aWYKLQogdm9pZCBDaGVja2JveElucHV0VHlwZTo6d2lsbERpc3BhdGNoQ2xpY2soSW5wdXRFbGVt
ZW50Q2xpY2tTdGF0ZSYgc3RhdGUpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CkBAIC0yMzEs
NyArMTU3LDcgQEAgdm9pZCBDaGVja2JveElucHV0VHlwZTo6ZGlkRGlzcGF0Y2hDbGljayhFdmVu
dCYgZXZlbnQsIGNvbnN0IElucHV0RWxlbWVudENsaWNrU3QKICAgICBldmVudC5zZXREZWZhdWx0
SGFuZGxlZCgpOwogfQogCi12b2lkIENoZWNrYm94SW5wdXRUeXBlOjpzdGFydFN3aXRjaFBvaW50
ZXJUcmFja2luZyhMYXlvdXRQb2ludCBhYnNvbHV0ZUxvY2F0aW9uLCBzdGQ6Om9wdGlvbmFsPHVu
c2lnbmVkPiB0b3VjaElkZW50aWZpZXIpCit2b2lkIENoZWNrYm94SW5wdXRUeXBlOjpzdGFydFN3
aXRjaFBvaW50ZXJUcmFja2luZyhMYXlvdXRQb2ludCBhYnNvbHV0ZUxvY2F0aW9uKQogewogICAg
IEFTU0VSVChlbGVtZW50KCkpOwogICAgIEFTU0VSVChlbGVtZW50KCktPnJlbmRlcmVyKCkpOwpA
QCAtMjM5LDcgKzE2NSw2IEBAIHZvaWQgQ2hlY2tib3hJbnB1dFR5cGU6OnN0YXJ0U3dpdGNoUG9p
bnRlclRyYWNraW5nKExheW91dFBvaW50IGFic29sdXRlTG9jYXRpb24sCiAgICAgICAgIGZyYW1l
LT5ldmVudEhhbmRsZXIoKS5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoZWxlbWVudCgp
KTsKICAgICAgICAgbV9pc1N3aXRjaFZpc3VhbGx5T24gPSBlbGVtZW50KCktPmNoZWNrZWQoKTsK
ICAgICAgICAgbV9zd2l0Y2hQb2ludGVyVHJhY2tpbmdYUG9zaXRpb25TdGFydCA9IGVsZW1lbnQo
KS0+cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKGFic29sdXRlTG9jYXRpb24sIFVzZVRyYW5z
Zm9ybXMpLngoKTsKLSAgICAgICAgbV9zd2l0Y2hQb2ludGVyVHJhY2tpbmdUb3VjaElkZW50aWZp
ZXIgPSB0b3VjaElkZW50aWZpZXI7CiAgICAgfQogfQogCkBAIC0yNTMsNyArMTc4LDYgQEAgdm9p
ZCBDaGVja2JveElucHV0VHlwZTo6c3RvcFN3aXRjaFBvaW50ZXJUcmFja2luZygpCiAgICAgICAg
IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQobnVs
bHB0cik7CiAgICAgbV9oYXNTd2l0Y2hWaXN1YWxseU9uQ2hhbmdlZCA9IGZhbHNlOwogICAgIG1f
c3dpdGNoUG9pbnRlclRyYWNraW5nWFBvc2l0aW9uU3RhcnQgPSBzdGQ6Om51bGxvcHQ7Ci0gICAg
bV9zd2l0Y2hQb2ludGVyVHJhY2tpbmdUb3VjaElkZW50aWZpZXIgPSBzdGQ6Om51bGxvcHQ7CiB9
CiAKIGJvb2wgQ2hlY2tib3hJbnB1dFR5cGU6OmlzU3dpdGNoUG9pbnRlclRyYWNraW5nKCkgY29u
c3QKQEAgLTI3Miw3ICsxOTYsNiBAQCB2b2lkIENoZWNrYm94SW5wdXRUeXBlOjpkaXNhYmxlZFN0
YXRlQ2hhbmdlZCgpCiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgaWYgKGlzU3dpdGNoKCkg
JiYgZWxlbWVudCgpLT5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKSkgewogICAgICAgICBzdG9wU3dp
dGNoQW5pbWF0aW9uKFN3aXRjaEFuaW1hdGlvblR5cGU6OlZpc3VhbGx5T24pOwotICAgICAgICBz
dG9wU3dpdGNoQW5pbWF0aW9uKFN3aXRjaEFuaW1hdGlvblR5cGU6OlByZXNzZWQpOwogICAgICAg
ICBzdG9wU3dpdGNoUG9pbnRlclRyYWNraW5nKCk7CiAgICAgfQogfQpAQCAtMjgyLDcgKzIwNSw2
IEBAIHZvaWQgQ2hlY2tib3hJbnB1dFR5cGU6OndpbGxVcGRhdGVDaGVja2VkbmVzcyhib29sLCBX
YXNTZXRCeUphdmFTY3JpcHQgd2FzQ2hlY2tlCiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAg
aWYgKGlzU3dpdGNoKCkgJiYgd2FzQ2hlY2tlZEJ5SmF2YVNjcmlwdCA9PSBXYXNTZXRCeUphdmFT
Y3JpcHQ6OlllcykgewogICAgICAgICBzdG9wU3dpdGNoQW5pbWF0aW9uKFN3aXRjaEFuaW1hdGlv
blR5cGU6OlZpc3VhbGx5T24pOwotICAgICAgICBzdG9wU3dpdGNoQW5pbWF0aW9uKFN3aXRjaEFu
aW1hdGlvblR5cGU6OlByZXNzZWQpOwogICAgICAgICBzdG9wU3dpdGNoUG9pbnRlclRyYWNraW5n
KCk7CiAgICAgfQogfQpAQCAtMjk2LDI2ICsyMTgsMTkgQEAgc3RhdGljIFNlY29uZHMgc3dpdGNo
QW5pbWF0aW9uVXBkYXRlSW50ZXJ2YWwoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKICAgICBy
ZXR1cm4gMF9zOwogfQogCi1zdGF0aWMgU2Vjb25kcyBzd2l0Y2hBbmltYXRpb25EdXJhdGlvbihT
d2l0Y2hBbmltYXRpb25UeXBlIHR5cGUpCitzdGF0aWMgU2Vjb25kcyBzd2l0Y2hBbmltYXRpb25E
dXJhdGlvbihTd2l0Y2hBbmltYXRpb25UeXBlKQogewotICAgIGlmICh0eXBlID09IFN3aXRjaEFu
aW1hdGlvblR5cGU6OlZpc3VhbGx5T24pCi0gICAgICAgIHJldHVybiBSZW5kZXJUaGVtZTo6c2lu
Z2xldG9uKCkuc3dpdGNoQW5pbWF0aW9uVmlzdWFsbHlPbkR1cmF0aW9uKCk7Ci0gICAgcmV0dXJu
IFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5zd2l0Y2hBbmltYXRpb25QcmVzc2VkRHVyYXRpb24o
KTsKKyAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLnN3aXRjaEFuaW1hdGlvblZp
c3VhbGx5T25EdXJhdGlvbigpOwogfQogCi1TZWNvbmRzIENoZWNrYm94SW5wdXRUeXBlOjpzd2l0
Y2hBbmltYXRpb25TdGFydFRpbWUoU3dpdGNoQW5pbWF0aW9uVHlwZSB0eXBlKSBjb25zdAorU2Vj
b25kcyBDaGVja2JveElucHV0VHlwZTo6c3dpdGNoQW5pbWF0aW9uU3RhcnRUaW1lKFN3aXRjaEFu
aW1hdGlvblR5cGUpIGNvbnN0CiB7Ci0gICAgaWYgKHR5cGUgPT0gU3dpdGNoQW5pbWF0aW9uVHlw
ZTo6VmlzdWFsbHlPbikKLSAgICAgICAgcmV0dXJuIG1fc3dpdGNoQW5pbWF0aW9uVmlzdWFsbHlP
blN0YXJ0VGltZTsKLSAgICByZXR1cm4gbV9zd2l0Y2hBbmltYXRpb25QcmVzc2VkU3RhcnRUaW1l
OworICAgIHJldHVybiBtX3N3aXRjaEFuaW1hdGlvblZpc3VhbGx5T25TdGFydFRpbWU7CiB9CiAK
LXZvaWQgQ2hlY2tib3hJbnB1dFR5cGU6OnNldFN3aXRjaEFuaW1hdGlvblN0YXJ0VGltZShTd2l0
Y2hBbmltYXRpb25UeXBlIHR5cGUsIFNlY29uZHMgdGltZSkKK3ZvaWQgQ2hlY2tib3hJbnB1dFR5
cGU6OnNldFN3aXRjaEFuaW1hdGlvblN0YXJ0VGltZShTd2l0Y2hBbmltYXRpb25UeXBlLCBTZWNv
bmRzIHRpbWUpCiB7Ci0gICAgaWYgKHR5cGUgPT0gU3dpdGNoQW5pbWF0aW9uVHlwZTo6VmlzdWFs
bHlPbikKLSAgICAgICAgbV9zd2l0Y2hBbmltYXRpb25WaXN1YWxseU9uU3RhcnRUaW1lID0gdGlt
ZTsKLSAgICBlbHNlCi0gICAgICAgIG1fc3dpdGNoQW5pbWF0aW9uUHJlc3NlZFN0YXJ0VGltZSA9
IHRpbWU7CisgICAgbV9zd2l0Y2hBbmltYXRpb25WaXN1YWxseU9uU3RhcnRUaW1lID0gdGltZTsK
IH0KIAogYm9vbCBDaGVja2JveElucHV0VHlwZTo6aXNTd2l0Y2hBbmltYXRpbmcoU3dpdGNoQW5p
bWF0aW9uVHlwZSB0eXBlKSBjb25zdApAQCAtMzc1LDE0ICsyOTAsNiBAQCBmbG9hdCBDaGVja2Jv
eElucHV0VHlwZTo6c3dpdGNoQW5pbWF0aW9uVmlzdWFsbHlPblByb2dyZXNzKCkgY29uc3QKICAg
ICByZXR1cm4gc3dpdGNoQW5pbWF0aW9uUHJvZ3Jlc3MoU3dpdGNoQW5pbWF0aW9uVHlwZTo6Vmlz
dWFsbHlPbik7CiB9CiAKLWZsb2F0IENoZWNrYm94SW5wdXRUeXBlOjpzd2l0Y2hBbmltYXRpb25Q
cmVzc2VkUHJvZ3Jlc3MoKSBjb25zdAotewotICAgIEFTU0VSVChpc1N3aXRjaCgpKTsKLSAgICBB
U1NFUlQoc3dpdGNoQW5pbWF0aW9uRHVyYXRpb24oU3dpdGNoQW5pbWF0aW9uVHlwZTo6UHJlc3Nl
ZCkgPiAwX3MpOwotCi0gICAgcmV0dXJuIHN3aXRjaEFuaW1hdGlvblByb2dyZXNzKFN3aXRjaEFu
aW1hdGlvblR5cGU6OlByZXNzZWQpOwotfQotCiBib29sIENoZWNrYm94SW5wdXRUeXBlOjppc1N3
aXRjaFZpc3VhbGx5T24oKSBjb25zdAogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwpAQCAtNDMy
LDE1ICszMzksMTAgQEAgdm9pZCBDaGVja2JveElucHV0VHlwZTo6c3dpdGNoQW5pbWF0aW9uVGlt
ZXJGaXJlZCgpCiAKICAgICBhdXRvIGN1cnJlbnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCku
c2Vjb25kc1NpbmNlRXBvY2goKTsKICAgICBhdXRvIGlzVmlzdWFsbHlPbk9uZ29pbmcgPSBjdXJy
ZW50VGltZSAtIHN3aXRjaEFuaW1hdGlvblN0YXJ0VGltZShTd2l0Y2hBbmltYXRpb25UeXBlOjpW
aXN1YWxseU9uKSA8IHN3aXRjaEFuaW1hdGlvbkR1cmF0aW9uKFN3aXRjaEFuaW1hdGlvblR5cGU6
OlZpc3VhbGx5T24pOwotICAgIGF1dG8gaXNQcmVzc2VkT25nb2luZyA9IGN1cnJlbnRUaW1lIC0g
c3dpdGNoQW5pbWF0aW9uU3RhcnRUaW1lKFN3aXRjaEFuaW1hdGlvblR5cGU6OlByZXNzZWQpIDwg
c3dpdGNoQW5pbWF0aW9uRHVyYXRpb24oU3dpdGNoQW5pbWF0aW9uVHlwZTo6UHJlc3NlZCk7Ci0g
ICAgaWYgKGlzVmlzdWFsbHlPbk9uZ29pbmcgfHwgaXNQcmVzc2VkT25nb2luZykKKyAgICBpZiAo
aXNWaXN1YWxseU9uT25nb2luZykKICAgICAgICAgbV9zd2l0Y2hBbmltYXRpb25UaW1lci0+c3Rh
cnRPbmVTaG90KHVwZGF0ZUludGVydmFsKTsKLSAgICBlbHNlIHsKLSAgICAgICAgaWYgKCFpc1Zp
c3VhbGx5T25PbmdvaW5nKQotICAgICAgICAgICAgc3RvcFN3aXRjaEFuaW1hdGlvbihTd2l0Y2hB
bmltYXRpb25UeXBlOjpWaXN1YWxseU9uKTsKLSAgICAgICAgaWYgKCFpc1ByZXNzZWRPbmdvaW5n
KQotICAgICAgICAgICAgc3RvcFN3aXRjaEFuaW1hdGlvbihTd2l0Y2hBbmltYXRpb25UeXBlOjpQ
cmVzc2VkKTsKLSAgICB9CisgICAgZWxzZQorICAgICAgICBzdG9wU3dpdGNoQW5pbWF0aW9uKFN3
aXRjaEFuaW1hdGlvblR5cGU6OlZpc3VhbGx5T24pOwogCiAgICAgZWxlbWVudCgpLT5yZW5kZXJl
cigpLT5yZXBhaW50KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNr
Ym94SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmgK
aW5kZXggODYwYmQ5ODMwNmUzLi41ZDk3Mzg1NWU2M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0No
ZWNrYm94SW5wdXRUeXBlLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBlbnVtIGNsYXNzIFdhc1NldEJ5SmF2YVNjcmlwdCA6IGJvb2w7CiAKLWVudW0gY2xhc3MgU3dp
dGNoQW5pbWF0aW9uVHlwZSA6IGJvb2wgeyBWaXN1YWxseU9uLCBQcmVzc2VkIH07CitlbnVtIGNs
YXNzIFN3aXRjaEFuaW1hdGlvblR5cGUgeyBWaXN1YWxseU9uIH07CiAKIGNsYXNzIENoZWNrYm94
SW5wdXRUeXBlIGZpbmFsIDogcHVibGljIEJhc2VDaGVja2FibGVJbnB1dFR5cGUgewogcHVibGlj
OgpAQCAtNDgsNyArNDgsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCB2YWx1ZU1pc3NpbmcoY29uc3Qg
U3RyaW5nJikgY29uc3QgZmluYWw7CiAgICAgZmxvYXQgc3dpdGNoQW5pbWF0aW9uVmlzdWFsbHlP
blByb2dyZXNzKCkgY29uc3Q7CiAgICAgYm9vbCBpc1N3aXRjaFZpc3VhbGx5T24oKSBjb25zdDsK
LSAgICBmbG9hdCBzd2l0Y2hBbmltYXRpb25QcmVzc2VkUHJvZ3Jlc3MoKSBjb25zdDsKIAogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBDaGVja2JveElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBl
bGVtZW50KQpAQCAtNjIsMTIgKzYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZUtleXVw
RXZlbnQoS2V5Ym9hcmRFdmVudCYpIGZpbmFsOwogICAgIHZvaWQgaGFuZGxlTW91c2VEb3duRXZl
bnQoTW91c2VFdmVudCYpIGZpbmFsOwogICAgIHZvaWQgaGFuZGxlTW91c2VNb3ZlRXZlbnQoTW91
c2VFdmVudCYpIGZpbmFsOwotLy8gRklYTUU6IEl0IHNob3VsZCBub3QgYmUgaU9TLXNwZWNpZmlj
LCBidXQgaXQncyBub3QgYmVlbiB0ZXN0ZWQgd2l0aCBhIG5vbi1pT1MgdG91Y2gKLS8vIGltcGxl
bWVudGF0aW9uIHRodXMgZmFyLgotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAgIHZv
aWQgaGFuZGxlVG91Y2hFdmVudChUb3VjaEV2ZW50JikgZmluYWw7Ci0jZW5kaWYKLSAgICB2b2lk
IHN0YXJ0U3dpdGNoUG9pbnRlclRyYWNraW5nKExheW91dFBvaW50LCBzdGQ6Om9wdGlvbmFsPHVu
c2lnbmVkPiA9IHN0ZDo6bnVsbG9wdCk7CisgICAgdm9pZCBzdGFydFN3aXRjaFBvaW50ZXJUcmFj
a2luZyhMYXlvdXRQb2ludCk7CiAgICAgdm9pZCBzdG9wU3dpdGNoUG9pbnRlclRyYWNraW5nKCk7
CiAgICAgYm9vbCBpc1N3aXRjaFBvaW50ZXJUcmFja2luZygpIGNvbnN0OwogICAgIHZvaWQgd2ls
bERpc3BhdGNoQ2xpY2soSW5wdXRFbGVtZW50Q2xpY2tTdGF0ZSYpIGZpbmFsOwpAQCAtOTAsMTIg
Kzg0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzU3dpdGNoVmlzdWFsbHlPbkNoYW5nZWQg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1N3aXRjaFZpc3VhbGx5T24geyBmYWxzZSB9OwogICAg
IFNlY29uZHMgbV9zd2l0Y2hBbmltYXRpb25WaXN1YWxseU9uU3RhcnRUaW1lIHsgMF9zIH07Ci0g
ICAgU2Vjb25kcyBtX3N3aXRjaEFuaW1hdGlvblByZXNzZWRTdGFydFRpbWUgeyAwX3MgfTsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+IG1fc3dpdGNoQW5pbWF0aW9uVGltZXI7Ci0gICAgc3Rk
OjpvcHRpb25hbDx1bnNpZ25lZD4gbV9zd2l0Y2hQb2ludGVyVHJhY2tpbmdUb3VjaElkZW50aWZp
ZXIgeyBzdGQ6Om51bGxvcHQgfTsKLSNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLSAgICBi
b29sIGhhc1RvdWNoRXZlbnRIYW5kbGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQot
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAzNDRhNTA5NWIyN2IuLmJkOTc5Njc5MjFjOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xNDUsMTQgKzE0NSw5
IEBAIEhUTUxJbnB1dEVsZW1lbnQ6On5IVE1MSW5wdXRFbGVtZW50KCkKICAgICBpZiAobV9pbnB1
dFR5cGUgJiYgaXNSYWRpb0J1dHRvbigpKQogICAgICAgICB0cmVlU2NvcGUoKS5yYWRpb0J1dHRv
bkdyb3VwcygpLnJlbW92ZUJ1dHRvbigqdGhpcyk7CiAKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQotICAgIGlmIChtX2hhc1RvdWNoRXZlbnRIYW5kbGVyKSB7Ci0jaWYgRU5BQkxFKElPU19UT1VD
SF9FVkVOVFMpCi0gICAgICAgIGRvY3VtZW50KCkucmVtb3ZlVG91Y2hFdmVudEhhbmRsZXIoKnRo
aXMpOwotI2Vsc2UKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhRU5BQkxFKElPU19UT1VD
SF9FVkVOVFMpCisgICAgaWYgKG1faGFzVG91Y2hFdmVudEhhbmRsZXIpCiAgICAgICAgIGRvY3Vt
ZW50KCkuZGlkUmVtb3ZlRXZlbnRUYXJnZXROb2RlKCp0aGlzKTsKLSNlbmRpZgotICAgIH0KICNl
bmRpZgogfQogCkBAIC02MDksMjIgKzYwNCwxMyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnVw
ZGF0ZVR5cGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZUF0dHJpYnV0ZVZhbHVlKQogaW5saW5lIHZv
aWQgSFRNTElucHV0RWxlbWVudDo6cnVuUG9zdFR5cGVVcGRhdGVUYXNrcygpCiB7CiAgICAgQVNT
RVJUKG1faW5wdXRUeXBlKTsKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpICYmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICBib29sIGhhc1Rv
dWNoRXZlbnRIYW5kbGVyID0gbV9pbnB1dFR5cGUtPmhhc1RvdWNoRXZlbnRIYW5kbGVyKCk7CiAg
ICAgaWYgKGhhc1RvdWNoRXZlbnRIYW5kbGVyICE9IG1faGFzVG91Y2hFdmVudEhhbmRsZXIpIHsK
LSAgICAgICAgaWYgKGhhc1RvdWNoRXZlbnRIYW5kbGVyKSB7Ci0jaWYgRU5BQkxFKElPU19UT1VD
SF9FVkVOVFMpCi0gICAgICAgICAgICBkb2N1bWVudCgpLmFkZFRvdWNoRXZlbnRIYW5kbGVyKCp0
aGlzKTsKLSNlbHNlCisgICAgICAgIGlmIChoYXNUb3VjaEV2ZW50SGFuZGxlcikKICAgICAgICAg
ICAgIGRvY3VtZW50KCkuZGlkQWRkVG91Y2hFdmVudEhhbmRsZXIoKnRoaXMpOwotI2VuZGlmCi0g
ICAgICAgIH0gZWxzZSB7Ci0jaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi0gICAgICAgICAg
ICBkb2N1bWVudCgpLnJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKCp0aGlzKTsKLSNlbHNlCisgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIGRvY3VtZW50KCkuZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRs
ZXIoKnRoaXMpOwotI2VuZGlmCi0gICAgICAgIH0KICAgICAgICAgbV9oYXNUb3VjaEV2ZW50SGFu
ZGxlciA9IGhhc1RvdWNoRXZlbnRIYW5kbGVyOwogICAgIH0KICNlbmRpZgpAQCAtMTc0NywxNSAr
MTczMywxMCBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KERv
Y3VtZW50JiBvbGREb2N1bWVudCwgRG9jdW1lbnQmIG5ldwogICAgICAgICBuZXdEb2N1bWVudC5y
ZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrcygqdGhpcyk7CiAgICAgfQogCi0j
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhRU5B
QkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgaWYgKG1faGFzVG91Y2hFdmVudEhhbmRsZXIpIHsK
LSNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLSAgICAgICAgb2xkRG9jdW1lbnQucmVtb3Zl
VG91Y2hFdmVudEhhbmRsZXIoKnRoaXMpOwotICAgICAgICBuZXdEb2N1bWVudC5hZGRUb3VjaEV2
ZW50SGFuZGxlcigqdGhpcyk7Ci0jZWxzZQogICAgICAgICBvbGREb2N1bWVudC5kaWRSZW1vdmVF
dmVudFRhcmdldE5vZGUoKnRoaXMpOwogICAgICAgICBuZXdEb2N1bWVudC5kaWRBZGRUb3VjaEV2
ZW50SGFuZGxlcigqdGhpcyk7Ci0jZW5kaWYKICAgICB9CiAjZW5kaWYKIApAQCAtMjMzNSwxMCAr
MjMxNiw0IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNTd2l0Y2hWaXN1YWxseU9uKCkgY29u
c3QKICAgICByZXR1cm4gY2hlY2tlZERvd25jYXN0PENoZWNrYm94SW5wdXRUeXBlPigqbV9pbnB1
dFR5cGUpLmlzU3dpdGNoVmlzdWFsbHlPbigpOwogfQogCi1mbG9hdCBIVE1MSW5wdXRFbGVtZW50
Ojpzd2l0Y2hBbmltYXRpb25QcmVzc2VkUHJvZ3Jlc3MoKSBjb25zdAotewotICAgIEFTU0VSVChp
c1N3aXRjaCgpKTsKLSAgICByZXR1cm4gY2hlY2tlZERvd25jYXN0PENoZWNrYm94SW5wdXRUeXBl
PigqbV9pbnB1dFR5cGUpLnN3aXRjaEFuaW1hdGlvblByZXNzZWRQcm9ncmVzcygpOwotfQotCiB9
IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCBj
OTQzNzcyZGYxYTYuLjcwOGZiNGVjZGNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmgKQEAgLTM0Miw3ICszNDIsNiBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCBzd2l0Y2hB
bmltYXRpb25WaXN1YWxseU9uUHJvZ3Jlc3MoKSBjb25zdDsKICAgICBib29sIGlzU3dpdGNoVmlz
dWFsbHlPbigpIGNvbnN0OwotICAgIGZsb2F0IHN3aXRjaEFuaW1hdGlvblByZXNzZWRQcm9ncmVz
cygpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTElucHV0RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqLCBib29sIGNyZWF0ZWRCeVBh
cnNlcik7CkBAIC00ODIsNyArNDgxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdmFsdWVBdHRy
aWJ1dGVXYXNVcGRhdGVkQWZ0ZXJQYXJzaW5nIDogMSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3dh
c01vZGlmaWVkQnlVc2VyIDogMSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NhblJlY2VpdmVEcm9w
cGVkRmlsZXMgOiAxIHsgZmFsc2UgfTsKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorI2lmIEVO
QUJMRShUT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICBib29s
IG1faGFzVG91Y2hFdmVudEhhbmRsZXIgOiAxIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wg
bV9pc1NwZWxsY2hlY2tEaXNhYmxlZEV4Y2VwdFRleHRSZXBsYWNlbWVudCA6IDEgeyBmYWxzZSB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggMjhiMmRiMGE2ZmRjLi45MDIzZjc4YTAzZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMzA4LDcgKzMwOCw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkQmx1cigpIHsgfQogCi0jaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCiAgICAgdmlydHVhbCBib29sIGhhc1RvdWNoRXZlbnRIYW5kbGVyKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9UaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWUuaAppbmRleCAxMjVi
NmE2MDY3MzAuLjA4OWY4NmZmY2U4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGhlbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZS5oCkBAIC04Myw3
ICs4Myw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCB1c2VyUHJlZmVyc0NvbnRyYXN0
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgdXNlclByZWZlcnNS
ZWR1Y2VkTW90aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wg
dXNlclByZWZlcnNPbk9mZkxhYmVscygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByb3Rl
Y3RlZDoKICAgICBUaGVtZSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9UaGVtZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Ro
ZW1lSU9TLmgKaW5kZXggY2E3NDIxNTRhYTE4Li41ZWUxNzgzMWQ2NDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9UaGVtZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9UaGVtZUlPUy5oCkBAIC0zNSw3ICszNSw2IEBAIGNsYXNzIFRoZW1lSU9T
IGZpbmFsIDogcHVibGljIFRoZW1lQ29jb2EgewogcHJpdmF0ZToKICAgICBib29sIHVzZXJQcmVm
ZXJzQ29udHJhc3QoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHVzZXJQcmVmZXJzUmVkdWNlZE1v
dGlvbigpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgdXNlclByZWZlcnNPbk9mZkxhYmVscygpIGNv
bnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1RoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1RoZW1lSU9TLm1tCmluZGV4IDJiMDcwNjc4MmEyNy4uMGU1ZGVjYjEzZTFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVGhlbWVJT1MubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1RoZW1lSU9TLm1tCkBAIC00OSwxMSArNDksNiBA
QCBib29sIFRoZW1lSU9TOjp1c2VyUHJlZmVyc1JlZHVjZWRNb3Rpb24oKSBjb25zdAogICAgIHJl
dHVybiBQQUw6OnNvZnRMaW5rX1VJS2l0X1VJQWNjZXNzaWJpbGl0eUlzUmVkdWNlTW90aW9uRW5h
YmxlZCgpOwogfQogCi1ib29sIFRoZW1lSU9TOjp1c2VyUHJlZmVyc09uT2ZmTGFiZWxzKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gUEFMOjpzb2Z0TGlua19VSUtpdF9VSUFjY2Vzc2liaWxpdHlJc09u
T2ZmU3dpdGNoTGFiZWxzRW5hYmxlZCgpOwotfQotCiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXgg
NmE5YWQ2OTc3N2FmLi42Zjk3MmYyNDkyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmNwcApAQCAtMzYzLDggKzM2Myw2IEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVz
dFN0eWxlKFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QK
ICAgICAgICAgcmV0dXJuIGFkanVzdFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25QYXJ0U3R5
bGUoc3R5bGUsIGVsZW1lbnQpOwogICAgIGNhc2UgU3R5bGVBcHBlYXJhbmNlOjpTZWFyY2hGaWVs
ZFJlc3VsdHNCdXR0b246CiAgICAgICAgIHJldHVybiBhZGp1c3RTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25TdHlsZShzdHlsZSwgZWxlbWVudCk7Ci0gICAgY2FzZSBTdHlsZUFwcGVhcmFuY2U6OlN3
aXRjaDoKLSAgICAgICAgcmV0dXJuIGFkanVzdFN3aXRjaFN0eWxlKHN0eWxlLCBlbGVtZW50KTsK
ICAgICBjYXNlIFN0eWxlQXBwZWFyYW5jZTo6UHJvZ3Jlc3NCYXI6CiAgICAgICAgIHJldHVybiBh
ZGp1c3RQcm9ncmVzc0JhclN0eWxlKHN0eWxlLCBlbGVtZW50KTsKICAgICBjYXNlIFN0eWxlQXBw
ZWFyYW5jZTo6TWV0ZXI6CkBAIC05NDUsMTIgKzk0Myw2IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBh
aW50KGNvbnN0IFJlbmRlckJveCYgYm94LCBDb250cm9sU3RhdGVzJiBjb250cm9sU3RhdGVzLCBj
b25zCiAgICAgICAgIHJldHVybiBwYWludFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25QYXJ0
KGJveCwgcGFpbnRJbmZvLCBpbnRlZ3JhbFNuYXBwZWRSZWN0KTsKICAgICBjYXNlIFN0eWxlQXBw
ZWFyYW5jZTo6U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uOgogICAgICAgICByZXR1cm4gcGFpbnRT
ZWFyY2hGaWVsZFJlc3VsdHNCdXR0b24oYm94LCBwYWludEluZm8sIGludGVncmFsU25hcHBlZFJl
Y3QpOwotICAgIGNhc2UgU3R5bGVBcHBlYXJhbmNlOjpTd2l0Y2g6Ci0gICAgICAgIHJldHVybiB0
cnVlOwotICAgIGNhc2UgU3R5bGVBcHBlYXJhbmNlOjpTd2l0Y2hUaHVtYjoKLSAgICAgICAgcmV0
dXJuIHBhaW50U3dpdGNoVGh1bWIoYm94LCBwYWludEluZm8sIGRldmljZVBpeGVsU25hcHBlZFJl
Y3QpOwotICAgIGNhc2UgU3R5bGVBcHBlYXJhbmNlOjpTd2l0Y2hUcmFjazoKLSAgICAgICAgcmV0
dXJuIHBhaW50U3dpdGNoVHJhY2soYm94LCBwYWludEluZm8sIGRldmljZVBpeGVsU25hcHBlZFJl
Y3QpOwogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGNhc2UgU3R5bGVBcHBlYXJh
bmNlOjpJbWFnZUNvbnRyb2xzQnV0dG9uOgogICAgICAgICByZXR1cm4gcGFpbnRJbWFnZUNvbnRy
b2xzQnV0dG9uKGJveCwgcGFpbnRJbmZvLCBpbnRlZ3JhbFNuYXBwZWRSZWN0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggMmVmMDgyNTJjNmY2Li4xOTU0MzhiY2Y3
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBAIC0yNjQsNyArMjY0
LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludFN5c3RlbVByZXZpZXdCYWRnZShJ
bWFnZSYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpOwogI2VuZGlmCiAgICAg
dmlydHVhbCBTZWNvbmRzIHN3aXRjaEFuaW1hdGlvblZpc3VhbGx5T25EdXJhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIDBfczsgfQotICAgIHZpcnR1YWwgU2Vjb25kcyBzd2l0Y2hBbmltYXRpb25QcmVz
c2VkRHVyYXRpb24oKSBjb25zdCB7IHJldHVybiAwX3M7IH0KICAgICBmbG9hdCBzd2l0Y2hQb2lu
dGVyVHJhY2tpbmdNYWduaXR1ZGVQcm9wb3J0aW9uKCkgY29uc3QgeyByZXR1cm4gMC40ZjsgfQog
CiBwcm90ZWN0ZWQ6CkBAIC0zODQsMTAgKzM4Myw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IHZvaWQgYWRqdXN0U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUmLCBj
b25zdCBFbGVtZW50KikgY29uc3QgeyB9CiAgICAgdmlydHVhbCBib29sIHBhaW50U2VhcmNoRmll
bGRSZXN1bHRzQnV0dG9uKGNvbnN0IFJlbmRlckJveCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0
IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U3dp
dGNoU3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3QgeyB9Ci0gICAgdmly
dHVhbCBib29sIHBhaW50U3dpdGNoVGh1bWIoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFp
bnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwg
Ym9vbCBwYWludFN3aXRjaFRyYWNrKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5m
byYsIGNvbnN0IEZsb2F0UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KLQogcHVibGljOgogICAgIHZv
aWQgdXBkYXRlQ29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckJveCYsIENvbnRy
b2xTdGF0ZXMmKSBjb25zdDsKICAgICBPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiBl
eHRyYWN0Q29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCYpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAppbmRleCAzNWNjNGM0
YmE2NWYuLjFmZTM3ZTkzYjJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lSU9TLmgKQEAgLTk5LDEyICs5OSw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGFkanVzdFNs
aWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdCBvdmVycmlk
ZTsKIAotICAgIHZvaWQgYWRqdXN0U3dpdGNoU3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVt
ZW50KikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBwYWludFN3aXRjaFRodW1iKGNvbnN0IFJl
bmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRl
OwotICAgIGJvb2wgcGFpbnRTd2l0Y2hUcmFjayhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQ
YWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKLSAgICBTZWNvbmRzIHN3aXRj
aEFuaW1hdGlvblZpc3VhbGx5T25EdXJhdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDMwMF9t
czsgfQotICAgIFNlY29uZHMgc3dpdGNoQW5pbWF0aW9uUHJlc3NlZER1cmF0aW9uKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gMzAwX21zOyB9Ci0KICAgICBib29sIHBhaW50UHJvZ3Jlc3NCYXIoY29u
c3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92ZXJy
aWRlOwogCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggYWE0MTUzNDdjMTVjLi4xMjdjZmQwODQ0OTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTk3LDEw
ICs5Nyw2IEBACiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNlbmRpZgogCi0jaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvUmVuZGVy
VGhlbWVJT1NBZGRpdGlvbnMubW0+Ci0jZW5kaWYKLQogI2ltcG9ydCA8cGFsL2lvcy9VSUtpdFNv
ZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTcwNiw0NiArNzAyLDYgQEAgdm9p
ZCBSZW5kZXJUaGVtZUlPUzo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlJiBzdHls
ZSwgY29uc3QgRWxlbWVudCopIGMKIGNvbnN0ZXhwciBhdXRvIHJlZHVjZWRNb3Rpb25Qcm9ncmVz
c0FuaW1hdGlvbk1pbk9wYWNpdHkgPSAwLjNmOwogY29uc3RleHByIGF1dG8gcmVkdWNlZE1vdGlv
blByb2dyZXNzQW5pbWF0aW9uTWF4T3BhY2l0eSA9IDAuNmY7CiAKLSNpZiAhVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKLWNvbnN0ZXhwciBhdXRvIHN3aXRjaEhlaWdodCA9IDMxLmY7Ci1jb25zdGV4
cHIgYXV0byBzd2l0Y2hXaWR0aCA9IDUxLmY7Ci0KLXN0YXRpYyBib29sIHJlbmRlclRoZW1lUGFp
bnRTd2l0Y2hUaHVtYihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiwgY29uc3QgUmVu
ZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0JikKLXsKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIGJvb2wgcmVuZGVyVGhlbWVQYWludFN3aXRjaFRyYWNr
KE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+LCBjb25zdCBSZW5kZXJPYmplY3QmLCBj
b25zdCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBDb2xvcikKLXsKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLSNlbmRpZgotCi12b2lkIFJlbmRlclRoZW1lSU9TOjphZGp1c3RTd2l0
Y2hTdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpIGNvbnN0
Ci17Ci0gICAgUmVuZGVyVGhlbWU6OmFkanVzdFN3aXRjaFN0eWxlKHN0eWxlLCBlbGVtZW50KTsK
LQotICAgIGlmICghc3R5bGUud2lkdGgoKS5pc0F1dG8oKSAmJiAhc3R5bGUuaGVpZ2h0KCkuaXNB
dXRvKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8gc2l6ZSA9IHN0ZDo6bWF4KHN0eWxl
LmNvbXB1dGVkRm9udFNpemUoKSwgc3dpdGNoSGVpZ2h0KTsKLSAgICBzdHlsZS5zZXRXaWR0aCh7
IHNpemUgKiAoc3dpdGNoV2lkdGggLyBzd2l0Y2hIZWlnaHQpLCBMZW5ndGhUeXBlOjpGaXhlZCB9
KTsKLSAgICBzdHlsZS5zZXRIZWlnaHQoeyBzaXplLCBMZW5ndGhUeXBlOjpGaXhlZCB9KTsKLQot
ICAgIGlmIChlbGVtZW50LT5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKSkKLSAgICAgICAgc3R5bGUu
c2V0T3BhY2l0eSguNGYpOwotfQotCi1ib29sIFJlbmRlclRoZW1lSU9TOjpwYWludFN3aXRjaFRo
dW1iKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCi17Ci0gICAgcmV0dXJuIHJlbmRlclRoZW1lUGFp
bnRTd2l0Y2hUaHVtYihleHRyYWN0Q29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKHJlbmRlcmVyKSwg
cmVuZGVyZXIsIHBhaW50SW5mbywgcmVjdCk7Ci19Ci0KLWJvb2wgUmVuZGVyVGhlbWVJT1M6OnBh
aW50U3dpdGNoVHJhY2soY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgY29uc3QgUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKLXsKLSAgICByZXR1cm4gcmVu
ZGVyVGhlbWVQYWludFN3aXRjaFRyYWNrKGV4dHJhY3RDb250cm9sU3RhdGVzRm9yUmVuZGVyZXIo
cmVuZGVyZXIpLCByZW5kZXJlciwgcGFpbnRJbmZvLCByZWN0LCBzeXN0ZW1Db2xvcihDU1NWYWx1
ZUFwcGxlU3lzdGVtR3JlZW4sIHJlbmRlcmVyLnN0eWxlQ29sb3JPcHRpb25zKCkpKTsKLX0KLQog
Ym9vbCBSZW5kZXJUaGVtZUlPUzo6cGFpbnRQcm9ncmVzc0Jhcihjb25zdCBSZW5kZXJPYmplY3Qm
IHJlbmRlcmVyLCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVj
dCkKIHsKICAgICBhdXRvKiByZW5kZXJQcm9ncmVzcyA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJQ
cm9ncmVzcz4ocmVuZGVyZXIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>