<?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>130488</bug_id>
          
          <creation_ts>2014-03-19 17:15:45 -0700</creation_ts>
          <short_desc>REGRESSION(r165926): broke the iOS build (Requested by estes on #webkit).</short_desc>
          <delta_ts>2014-03-19 17:18:56 -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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>128261</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>992329</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-19 17:15:45 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/165926 broke the build:
broke the iOS build (Requested by estes on #webkit).

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>992331</commentid>
    <comment_count>1</comment_count>
      <attachid>227237</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-19 17:16:15 -0700</bug_when>
    <thetext>Created attachment 227237
ROLLOUT of r165926

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 rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout 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>992332</commentid>
    <comment_count>2</comment_count>
      <attachid>227237</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-19 17:18:54 -0700</bug_when>
    <thetext>Comment on attachment 227237
ROLLOUT of r165926

Clearing flags on attachment: 227237

Committed r165933: &lt;http://trac.webkit.org/changeset/165933&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992333</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-19 17:18:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227237</attachid>
            <date>2014-03-19 17:16:15 -0700</date>
            <delta_ts>2014-03-19 17:18:54 -0700</delta_ts>
            <desc>ROLLOUT of r165926</desc>
            <filename>bug-130488-20140319171553.patch</filename>
            <type>text/plain</type>
            <size>51358</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1OTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NTdiY2QwYTkwYjNlNWI5ZmEwNzVkZTA1OTk5NWI1Mzk3YzYxYTRkLi4yZDIxZWJkYzAxMDA3NTQ3
ZmMzZjMxMWFlMDg1MWRhY2E5OWZlMGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNC0wMy0xOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2NTkyNi4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDQ4OAorCisgICAg
ICAgIGJyb2tlIHRoZSBpT1MgYnVpbGQgKFJlcXVlc3RlZCBieSBlc3RlcyBvbiAjd2Via2l0KS4K
KworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIkdDIHRpbWVyIHNob3Vs
ZCBpbnRlbGxpZ2VudGx5IGNob29zZSBiZXR3ZWVuIEVkZW5Db2xsZWN0aW9ucworICAgICAgICBh
bmQgRnVsbENvbGxlY3Rpb25zIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI4MjYxCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzE2NTkyNgorCiAyMDE0LTAzLTEzICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgR0MgdGltZXIgc2hvdWxkIGludGVsbGlnZW50bHkgY2hvb3Nl
IGJldHdlZW4gRWRlbkNvbGxlY3Rpb25zIGFuZCBGdWxsQ29sbGVjdGlvbnMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBkZTdlMmRiYjkxMmUyNjRlNjMzNWU5NTcwNjJkZDQ5N2QzYmFkNzRjLi4xNzNjMzYyMDQ3MjZj
M2E0ZGM5NzA4MzU3YWIyZTQzN2U0M2NlNzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAK
IDIwMTQtMDMtMTkgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCisg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNjU5MjYuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA0ODgKKworICAgICAgICBicm9rZSB0
aGUgaU9TIGJ1aWxkIChSZXF1ZXN0ZWQgYnkgZXN0ZXMgb24gI3dlYmtpdCkuCisKKyAgICAgICAg
UmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJHQyB0aW1lciBzaG91bGQgaW50ZWxsaWdl
bnRseSBjaG9vc2UgYmV0d2VlbiBFZGVuQ29sbGVjdGlvbnMKKyAgICAgICAgYW5kIEZ1bGxDb2xs
ZWN0aW9ucyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyODI2MQorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNjU5MjYK
KworMjAxNC0wMy0xOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2NTkyOS4KICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDQ4NwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYjgyN2NjMzA1Njc3ZDRkNDljYTE3MzBhZjYwMDQxN2Q2
Yjg0YWEzMy4uMzZjOWJjNmEyNDM3ZDcyYzlhMzRjYzRhYTRkYmZlOGU5MjExMDhhNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjE1LDggKzIxNSw2IEBAIHNldChKYXZh
U2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgaGVhcC9Db3BpZWRTcGFjZS5jcHAKICAgICBoZWFwL0Nv
cHlWaXNpdG9yLmNwcAogICAgIGhlYXAvRGVmZXJHQy5jcHAKLSAgICBoZWFwL0VkZW5HQ0FjdGl2
aXR5Q2FsbGJhY2suY3BwCi0gICAgaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAogICAg
IGhlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAogICAgIGhlYXAvR0NUaHJlYWQuY3BwCiAgICAg
aGVhcC9HQ1RocmVhZFNoYXJlZERhdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IGZiNDk4YTgzNmI2ZjkzYmRhY2MyNGRhZDczYWEyY2IzYjk2ZmRh
YTEuLjJiZjA5OThlZmVjZGUxYzMzMmVkNjU2NWUxYThjZTczNmE3Mzc3ZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01NTcsMTAgKzU1Nyw2IEBAIGph
dmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0RlZmVyR0MuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9EZWZlckdDLmggXAog
ICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0RlbGF5ZWRSZWxlYXNlU2NvcGUuaCBcCi0J
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAgXAot
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCBcCi0J
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAgXAot
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaCBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmggXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0dDU2VnbWVudGVkQXJyYXkuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2
YVNjcmlwdENvcmUudmN4cHJvagppbmRleCBiMjk2YzI4MmFlNWQ1ZWQ4OTg3ZDc2ZWYwMjAzNmVi
ODQ1YjhmZGY5Li40ZWM2MmNhMTYzNTRmYTcxMWVkODhlMDlkNDVjY2ExNGU0ZjNjM2VkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKQEAgLTQ2Myw4ICs0NjMsNiBAQAog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxDb3BpZWRTcGFjZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlWaXNpdG9yLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcRGVmZXJHQy5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxoZWFwXEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIiAvPgotICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5caGVhcFxGdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcR0NUaHJlYWQuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxHQ1RocmVhZFNoYXJlZERhdGEuY3BwIiAvPgpAQCAt
MTA0Niw4ICsxMDQ0LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcQ29weVdy
aXRlQmFycmllci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxEZWZlckdD
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXERlbGF5ZWRSZWxlYXNlU2Nv
cGUuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcRWRlbkdDQWN0aXZpdHlD
YWxsYmFjay5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxGdWxsR0NBY3Rp
dml0eUNhbGxiYWNrLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXEdDQWN0
aXZpdHlDYWxsYmFjay5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxHQ1Nl
Z21lbnRlZEFycmF5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXEdDU2Vn
bWVudGVkQXJyYXlJbmxpbmVzLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggM2E4MTY4ZWVjMTcxMmVjMDU0MjljODg2NWFkOGI3
YjQ3YjE2NTIzMi4uZmU5OWE2MzAxYjliMzRkYThkMmU4NWYxMGNmOTUwN2ZjNTk5Njg2MSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2
YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAt
MjI4LDEyICsyMjgsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxDb3B5Vmlz
aXRvci5jcHAiPgogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2su
Y3BwIj4KLSAgICAgIDxGaWx0ZXI+aGVhcDwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgotICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxGdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCI+
Ci0gICAgICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCI+CiAgICAgICA8
RmlsdGVyPmhlYXA8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTE2OTEsMTIgKzE2ODUs
NiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxEZWZlckdDLmgiPgogICAgICAg
PEZpbHRlcj5oZWFwPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxoZWFwXEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCI+Ci0gICAgICA8RmlsdGVy
PmhlYXA8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGhlYXBcRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oIj4KLSAgICAgIDxGaWx0ZXI+aGVhcDwv
RmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVh
cFxHQ0FjdGl2aXR5Q2FsbGJhY2suaCI+CiAgICAgICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGJjYjk2NWI1
YzZhYmI4Y2JkNjg0MmFjODkwOGRhY2QzOTg5YjE1My4uNGU4MWRmNDFhOTg5Y2M4NzZkYjRhNWJj
Y2YzN2RkZTI3M2RjZDE4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc4Niwx
MCArNzg2LDYgQEAKIAkJMkE2ODI5NUIxODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJp
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBNjgy
OTVBMTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5V3JpdGVCYXJyaWVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkE2RjQ2MjYxN0U5NTlDRTAwQzQ1
Qzk4IC8qIEhlYXBPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJBNkY0NjI1MTdFOTU5Q0UwMEM0NUM5OCAvKiBIZWFwT3BlcmF0aW9uLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkE3QTU4
RUYxODA4QTRDNDAwMjBCREY3IC8qIERlZmVyR0MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkE3QTU4RUUxODA4QTRDNDAwMjBCREY3IC8qIERlZmVy
R0MuY3BwICovOyB9OwotCQkyQTgzNjM4NTE4RDdEMEVFMDAwMEVCQ0MgLyogRWRlbkdDQWN0aXZp
dHlDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyQTgzNjM4MzE4RDdEMEVFMDAwMEVCQ0MgLyogRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5j
cHAgKi87IH07Ci0JCTJBODM2Mzg2MThEN0QwRUUwMDAwRUJDQyAvKiBFZGVuR0NBY3Rpdml0eUNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
QTgzNjM4NDE4RDdEMEVFMDAwMEVCQ0MgLyogRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTJBODM2Mzg5MThE
N0QwRkUwMDAwRUJDQyAvKiBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBODM2Mzg3MThEN0QwRkUwMDAwRUJD
QyAvKiBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCAqLzsgfTsKLQkJMkE4MzYzOEExOEQ3RDBG
RTAwMDBFQkNDIC8qIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBODM2Mzg4MThEN0QwRkUwMDAwRUJDQyAvKiBG
dWxsR0NBY3Rpdml0eUNhbGxiYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMkFBQUEzMTIxOEJENDlEMTAwMzk0Q0M4IC8qIFN0cnVjdHVyZUlE
QmxvYi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkFB
QUEzMTAxOEJENDlEMTAwMzk0Q0M4IC8qIFN0cnVjdHVyZUlEQmxvYi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJBQUNFNjNDMThDQTVBMDMwMEVE
MDE5MSAvKiBHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkFBQ0U2M0ExOENBNUEwMzAwRUQwMTkxIC8qIEdDQWN0aXZp
dHlDYWxsYmFjay5jcHAgKi87IH07CiAJCTJBQUNFNjNEMThDQTVBMDMwMEVEMDE5MSAvKiBHQ0Fj
dGl2aXR5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJBQUNFNjNCMThDQTVBMDMwMEVEMDE5MSAvKiBHQ0FjdGl2aXR5Q2FsbGJhY2suaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjI3Miwx
MCArMjI2OCw2IEBACiAJCTJBNjgyOTVBMTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5V3JpdGVCYXJy
aWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcHlXcml0ZUJhcnJpZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkE2RjQ2MjUxN0U5NTlDRTAwQzQ1Qzk4
IC8qIEhlYXBPcGVyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGVh
cE9wZXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQTdBNThFRTE4MDhB
NEM0MDAyMEJERjcgLyogRGVmZXJHQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBEZWZlckdDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkE4MzYz
ODMxOEQ3RDBFRTAwMDBFQkNDIC8qIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJBODM2Mzg0MThEN0QwRUUwMDAwRUJDQyAv
KiBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMkE4MzYzODcxOEQ3RDBGRTAwMDBFQkNDIC8qIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRnVsbEdDQWN0aXZpdHlDYWxs
YmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJBODM2Mzg4MThEN0QwRkUw
MDAwRUJDQyAvKiBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkFBQUEzMTAxOEJENDlEMTAwMzk0Q0M4IC8qIFN0cnVjdHVyZUlEQmxvYi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1cmVJREJsb2IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkFBQ0U2M0ExOENBNUEwMzAwRUQwMTkxIC8qIEdD
QWN0aXZpdHlDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
QUFDRTYzQjE4Q0E1QTAzMDBFRDAxOTEgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdDQWN0aXZpdHlDYWxsYmFjay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMzYwOSwxMCArMzYwMSw2IEBACiAJCQkJMkE0RUM5MEExODYw
RDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5oICovLAogCQkJCTBGQzgxNTA4MTQw
NDNCQ0EwMENGQTYwMyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmNwcCAqLywKIAkJCQkwRkM4MTUw
OTE0MDQzQkQyMDBDRkE2MDMgLyogV3JpdGVCYXJyaWVyU3VwcG9ydC5oICovLAotCQkJCTJBODM2
MzgzMThEN0QwRUUwMDAwRUJDQyAvKiBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCAqLywKLQkJ
CQkyQTgzNjM4NDE4RDdEMEVFMDAwMEVCQ0MgLyogRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oICov
LAotCQkJCTJBODM2Mzg3MThEN0QwRkUwMDAwRUJDQyAvKiBGdWxsR0NBY3Rpdml0eUNhbGxiYWNr
LmNwcCAqLywKLQkJCQkyQTgzNjM4ODE4RDdEMEZFMDAwMEVCQ0MgLyogRnVsbEdDQWN0aXZpdHlD
YWxsYmFjay5oICovLAogCQkJKTsKIAkJCXBhdGggPSBoZWFwOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTQ5MzIsOCArNDkyMCw2IEBACiAJCQkJODZEM0IyQzQxMDE1NkJERTAwMjg2
NUU3IC8qIEFSTUFzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NDAzMjAxOEJGRkJF
MTAwNUEwODExIC8qIEluc3BlY3RvckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyQUFDRTYz
RDE4Q0E1QTAzMDBFRDAxOTEgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywK
LQkJCQkyQTgzNjM4NjE4RDdEMEVFMDAwMEVCQ0MgLyogRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMkE4MzYzOEExOEQ3RDBGRTAwMDBFQkNDIC8qIEZ1bGxHQ0Fj
dGl2aXR5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTJBQUFBMzEyMThCRDQ5RDEwMDM5
NENDOCAvKiBTdHJ1Y3R1cmVJREJsb2IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NEU4RUIxMThC
RkZCQkUwMDU1NkQyOCAvKiBHQ1NlZ21lbnRlZEFycmF5SW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODZBREQxNDUwRkRERUE5ODAwMDZFRUMyIC8qIEFSTXY3QXNzZW1ibGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTYyMzcsNyArNjIyMyw2IEBACiAJCQkJMTQ3RjM5QzIxMDdFQzM3NjAwNDI3
QTQ4IC8qIENvbXBsZXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ2QjE2RDgxMkVCNUI1
OTAwMUJFQzFCIC8qIENvbnNlcnZhdGl2ZVJvb3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1
RkQwMDc5MTg5QjA1MTAwMDYzMzIzMSAvKiBDb25zb2xlTWVzc2FnZS5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQkyQTgzNjM4NTE4RDdEMEVFMDAwMEVCQ0MgLyogRWRlbkdDQWN0aXZpdHlDYWxsYmFj
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDgyRTEwN0VDMDU3MDAxM0U3QjIgLyogQ29u
c3RydWN0RGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdEMjNGMTE4OTFCNUI0MDAzMUM3
RkEgLyogQ29udGVudFNlYXJjaFV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMjQw
MzA1NTE0QjQwNEU2MDA3OUVCNjQgLyogQ29waWVkU3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC02NTM4LDcgKzY1MjMsNiBAQAogCQkJCTBGOTE5RDEwMTU3RjMzMjkwMDRBNEU3RCAvKiBKU1Nl
Z21lbnRlZFZhcmlhYmxlT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3Mjk5RDlEMTdE
MTI4MzcwMDVGNUZGOSAvKiBKU1NldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzkwREQ2RjE4
MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQky
QTgzNjM4OTE4RDdEMEZFMDAwMEVCQ0MgLyogRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDI4MDgzQTEwN0VDMDc1MDAxM0U3QjIgLyogSlNTdGFjay5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlENTEwN0VDMzc2MDA0MjdBNDggLyogSlNTdHJpbmcu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjYwMEI1QTYxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNTAwYWQ1NWE0MDFjYjcxMGVmNWJhMjg4M2U3ZGJmN2Q2NDkzMDcwNy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDkzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oIgotCi0jaW5jbHVkZSAiVk0uaCIKLQotbmFtZXNw
YWNlIEpTQyB7Ci0KLSNpZiBVU0UoQ0YpIHx8IFBMQVRGT1JNKEVGTCkKLQotRWRlbkdDQWN0aXZp
dHlDYWxsYmFjazo6RWRlbkdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQotICAgIDogR0NB
Y3Rpdml0eUNhbGxiYWNrKGhlYXApCi17Ci19Ci0KLXZvaWQgRWRlbkdDQWN0aXZpdHlDYWxsYmFj
azo6ZG9Db2xsZWN0aW9uKCkKLXsKLSAgICBtX3ZtLT5oZWFwLmNvbGxlY3QoRWRlbkNvbGxlY3Rp
b24pOwotfQotCi1kb3VibGUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkK
LXsKLSAgICByZXR1cm4gbV92bS0+aGVhcC5sYXN0RWRlbkdDTGVuZ3RoKCk7Ci19Ci0KLWRvdWJs
ZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpkZWF0aFJhdGUoKQotewotICAgIEhlYXAqIGhlYXAg
PSAmbV92bS0+aGVhcDsKLSAgICBzaXplX3Qgc2l6ZUJlZm9yZSA9IGhlYXAtPnNpemVCZWZvcmVM
YXN0RWRlbkNvbGxlY3Rpb24oKTsKLSAgICBzaXplX3Qgc2l6ZUFmdGVyID0gaGVhcC0+c2l6ZUFm
dGVyTGFzdEVkZW5Db2xsZWN0aW9uKCk7Ci0gICAgaWYgKCFzaXplQmVmb3JlKQotICAgICAgICBy
ZXR1cm4gMS4wOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHNpemVCZWZvcmUgLSBz
aXplQWZ0ZXIpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPihzaXplQmVmb3JlKTsKLX0KLQotZG91Ymxl
IEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmdjVGltZVNsaWNlKHNpemVfdCBieXRlcykKLXsKLSAg
ICByZXR1cm4gc3RkOjptaW4oKHN0YXRpY19jYXN0PGRvdWJsZT4oYnl0ZXMpIC8gTUIpICogT3B0
aW9uczo6cGVyY2VudENQVVBlck1CRm9yRWRlblRpbWVyKCksIE9wdGlvbnM6OmNvbGxlY3Rpb25U
aW1lck1heFBlcmNlbnRDUFUoKSk7Ci19Ci0KLSNlbHNlCi0KLUVkZW5HQ0FjdGl2aXR5Q2FsbGJh
Y2s6OkVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKLSAgICA6IEdDQWN0aXZpdHlD
YWxsYmFjayhoZWFwLT52bSgpKQotewotfQotCi12b2lkIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6
OmRvQ29sbGVjdGlvbigpCi17Ci19Ci0KLWRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjps
YXN0R0NMZW5ndGgoKQotewotICAgIHJldHVybiAwOwotfQotCi1kb3VibGUgRWRlbkdDQWN0aXZp
dHlDYWxsYmFjazo6ZGVhdGhSYXRlKCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLQotZG91YmxlIEVk
ZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmdjVGltZVNsaWNlKHNpemVfdCkKLXsKLSAgICByZXR1cm4g
MDsKLX0KLQotI2VuZGlmIC8vIFVTRShDRikgfHwgUExBVEZPUk0oRUZMKQotCi19IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0Fj
dGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2
aXR5Q2FsbGJhY2suaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA0ZDMzZTFiYzRj
MzdhOWY0NjE2NjA4YjVjMjQyMzQ3OGFmYzViYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rp
dml0eUNhbGxiYWNrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrX2gKLSNkZWZpbmUgRWRlbkdDQWN0aXZp
dHlDYWxsYmFja19oCi0KLSNpbmNsdWRlICJHQ0FjdGl2aXR5Q2FsbGJhY2suaCIKLQotbmFtZXNw
YWNlIEpTQyB7Ci0KLWNsYXNzIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rp
dml0eUNhbGxiYWNrIHsKLXB1YmxpYzoKLSAgICBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAq
KTsKLQotICAgIHZpcnR1YWwgdm9pZCBkb0NvbGxlY3Rpb24oKSBvdmVycmlkZTsKLQotcHJvdGVj
dGVkOgotI2lmIFVTRShDRikKLSAgICBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXAs
IENGUnVuTG9vcFJlZiBydW5Mb29wKQotICAgICAgICA6IEdDQWN0aXZpdHlDYWxsYmFjayhoZWFw
LCBydW5Mb29wKQotICAgIHsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHZpcnR1YWwgZG91YmxlIGxh
c3RHQ0xlbmd0aCgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgZG91YmxlIGdjVGltZVNsaWNlKHNp
emVfdCBieXRlcykgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBkb3VibGUgZGVhdGhSYXRlKCkgb3Zl
cnJpZGU7Ci19OwotCi1pbmxpbmUgUGFzc1JlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IEdDQWN0
aXZpdHlDYWxsYmFjazo6Y3JlYXRlRWRlblRpbWVyKEhlYXAqIGhlYXApCi17Ci0gICAgcmV0dXJu
IHNfc2hvdWxkQ3JlYXRlR0NUaW1lciA/IGFkb3B0UmVmKG5ldyBFZGVuR0NBY3Rpdml0eUNhbGxi
YWNrKGhlYXApKSA6IG51bGxwdHI7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYg
Ly8gRWRlbkdDQWN0aXZpdHlDYWxsYmFja19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3NmM2NzhkZDZiOTg2ZTI4ODJhMGU2MzFiZmY1OTNkZjk1ZDU4ZTM4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsMTA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oIgotCi0jaW5jbHVkZSAiVk0uaCIKLQotbmFtZXNw
YWNlIEpTQyB7Ci0KLSNpZiBVU0UoQ0YpIHx8IFBMQVRGT1JNKEVGTCkKLQotI2lmICFQTEFURk9S
TShJT1MpCi1jb25zdCBkb3VibGUgcGFnaW5nVGltZU91dCA9IDAuMTsgLy8gVGltZSBpbiBzZWNv
bmRzIHRvIGFsbG93IG9wcG9ydHVuaXN0aWMgdGltZXIgdG8gaXRlcmF0ZSBvdmVyIGFsbCBibG9j
a3MgdG8gc2VlIGlmIHRoZSBIZWFwIGlzIHBhZ2VkIG91dC4KLSNlbmRpZgotCi1GdWxsR0NBY3Rp
dml0eUNhbGxiYWNrOjpGdWxsR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCi0gICAgOiBH
Q0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkKLXsKLX0KLQotdm9pZCBGdWxsR0NBY3Rpdml0eUNhbGxi
YWNrOjpkb0NvbGxlY3Rpb24oKQotewotICAgIEhlYXAqIGhlYXAgPSAmbV92bS0+aGVhcDsKLQot
I2lmICFQTEFURk9STShJT1MpCi0gICAgZG91YmxlIHN0YXJ0VGltZSA9IFdURjo6bW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCk7Ci0gICAgaWYgKGhlYXAtPmlzUGFnZWRPdXQoc3RhcnRUaW1l
ICsgcGFnaW5nVGltZU91dCkpIHsKLSAgICAgICAgY2FuY2VsKCk7Ci0gICAgICAgIGhlYXAtPmlu
Y3JlYXNlTGFzdEZ1bGxHQ0xlbmd0aChwYWdpbmdUaW1lT3V0KTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLSNlbmRpZgotCi0gICAgaGVhcC0+Y29sbGVjdChGdWxsQ29sbGVjdGlvbik7Ci19Ci0K
LWRvdWJsZSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQotewotICAgIHJl
dHVybiBtX3ZtLT5oZWFwLmxhc3RGdWxsR0NMZW5ndGgoKTsKLX0KLQotZG91YmxlIEZ1bGxHQ0Fj
dGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZSgpCi17Ci0gICAgSGVhcCogaGVhcCA9ICZtX3ZtLT5o
ZWFwOwotICAgIHNpemVfdCBzaXplQmVmb3JlID0gaGVhcC0+c2l6ZUJlZm9yZUxhc3RGdWxsQ29s
bGVjdGlvbigpOwotICAgIHNpemVfdCBzaXplQWZ0ZXIgPSBoZWFwLT5zaXplQWZ0ZXJMYXN0RnVs
bENvbGxlY3Rpb24oKTsKLSAgICBpZiAoIXNpemVCZWZvcmUpCi0gICAgICAgIHJldHVybiAxLjA7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oc2l6ZUJlZm9yZSAtIHNpemVBZnRlcikg
LyBzdGF0aWNfY2FzdDxkb3VibGU+KHNpemVCZWZvcmUpOwotfQotCi1kb3VibGUgRnVsbEdDQWN0
aXZpdHlDYWxsYmFjazo6Z2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKQotewotICAgIHJldHVybiBz
dGQ6Om1pbigoc3RhdGljX2Nhc3Q8ZG91YmxlPihieXRlcykgLyBNQikgKiBPcHRpb25zOjpwZXJj
ZW50Q1BVUGVyTUJGb3JGdWxsVGltZXIoKSwgT3B0aW9uczo6Y29sbGVjdGlvblRpbWVyTWF4UGVy
Y2VudENQVSgpKTsKLX0KLQotI2Vsc2UKLQotRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6RnVsbEdD
QWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQotICAgIDogR0NBY3Rpdml0eUNhbGxiYWNrKGhl
YXApCi17Ci19Ci0KLXZvaWQgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Db2xsZWN0aW9uKCkK
LXsKLX0KLQotZG91YmxlIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RHQ0xlbmd0aCgpCi17
Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWRvdWJsZSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpkZWF0
aFJhdGUoKQotewotICAgIHJldHVybiAwOwotfQotCi1kb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxs
YmFjazo6Z2NUaW1lU2xpY2Uoc2l6ZV90KQotewotICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYg
Ly8gVVNFKENGKSB8fCBQTEFURk9STShFRkwpCi0KLX0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOWVjNWQ0OGJiYTYyMmVmZjg3YzIzMGRmZmRi
NjVkOTQ2OTNjZTE1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaAor
KysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEZ1bGxH
Q0FjdGl2aXR5Q2FsbGJhY2tfaAotI2RlZmluZSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrX2gKLQot
I2luY2x1ZGUgIkdDQWN0aXZpdHlDYWxsYmFjay5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY2xh
c3MgRnVsbEdDQWN0aXZpdHlDYWxsYmFjayA6IHB1YmxpYyBHQ0FjdGl2aXR5Q2FsbGJhY2sgewot
cHVibGljOgotICAgIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCopOwotCi0gICAgdmlydHVh
bCB2b2lkIGRvQ29sbGVjdGlvbigpIG92ZXJyaWRlOwotCi1wcm90ZWN0ZWQ6Ci0jaWYgVVNFKENG
KQotICAgIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCwgQ0ZSdW5Mb29wUmVmIHJ1
bkxvb3ApCi0gICAgICAgIDogR0NBY3Rpdml0eUNhbGxiYWNrKGhlYXAsIHJ1bkxvb3ApCi0gICAg
ewotICAgIH0KLSNlbmRpZgotCi0gICAgdmlydHVhbCBkb3VibGUgbGFzdEdDTGVuZ3RoKCkgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCBkb3VibGUgZ2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKSBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIGRvdWJsZSBkZWF0aFJhdGUoKSBvdmVycmlkZTsKLX07Ci0KLWlu
bGluZSBQYXNzUmVmUHRyPEdDQWN0aXZpdHlDYWxsYmFjaz4gR0NBY3Rpdml0eUNhbGxiYWNrOjpj
cmVhdGVGdWxsVGltZXIoSGVhcCogaGVhcCkKLXsKLSAgICByZXR1cm4gc19zaG91bGRDcmVhdGVH
Q1RpbWVyID8gYWRvcHRSZWYobmV3IEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkpIDogbnVs
bHB0cjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBGdWxsR0NBY3Rpdml0
eUNhbGxiYWNrX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0
aXZpdHlDYWxsYmFjay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5
Q2FsbGJhY2suY3BwCmluZGV4IGQzMjRiMzczMWEzZjE2ZjkxMzcxOWE3MjJhMGNkZWI4OGNmMTIx
MmUuLmY0ZWRkNmIzYmI2Mjg3MmYzZDYxYzRkYmRmZjkwNjM5NzEzMTFhZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNwcApAQCAtNDcs
MjYgKzQ3LDM5IEBAIGJvb2wgR0NBY3Rpdml0eUNhbGxiYWNrOjpzX3Nob3VsZENyZWF0ZUdDVGlt
ZXIgPSB0cnVlOwogCiAjaWYgVVNFKENGKSB8fCBQTEFURk9STShFRkwpCiAKK2NvbnN0IGRvdWJs
ZSBnY1RpbWVTbGljZVBlck1CID0gMC4wMTsgLy8gUGVyY2VudGFnZSBvZiBDUFUgdGltZSB3ZSB3
aWxsIHNwZW5kIHRvIHJlY2xhaW0gMSBNQgorY29uc3QgZG91YmxlIG1heEdDVGltZVNsaWNlID0g
MC4wNTsgLy8gVGhlIG1heGltdW0gYW1vdW50IG9mIENQVSB0aW1lIHdlIHdhbnQgdG8gdXNlIGZv
ciBvcHBvcnR1bmlzdGljIHRpbWVyLXRyaWdnZXJlZCBjb2xsZWN0aW9ucy4KIGNvbnN0IGRvdWJs
ZSB0aW1lclNsb3AgPSAyLjA7IC8vIEZ1ZGdlIGZhY3RvciB0byBhdm9pZCBwZXJmb3JtYW5jZSBj
b3N0IG9mIHJlc2V0dGluZyB0aW1lci4KIAorI2lmICFQTEFURk9STShJT1MpCitjb25zdCBkb3Vi
bGUgcGFnaW5nVGltZU91dCA9IDAuMTsgLy8gVGltZSBpbiBzZWNvbmRzIHRvIGFsbG93IG9wcG9y
dHVuaXN0aWMgdGltZXIgdG8gaXRlcmF0ZSBvdmVyIGFsbCBibG9ja3MgdG8gc2VlIGlmIHRoZSBI
ZWFwIGlzIHBhZ2VkIG91dC4KKyNlbmRpZgorCisjaWYgIVVTRShDRikKK2NvbnN0IGRvdWJsZSBo
b3VyID0gNjAgKiA2MDsKKyNlbmRpZgorCiAjaWYgVVNFKENGKQotR0NBY3Rpdml0eUNhbGxiYWNr
OjpHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKK0RlZmF1bHRHQ0FjdGl2aXR5Q2FsbGJh
Y2s6OkRlZmF1bHRHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKICAgICA6IEdDQWN0aXZp
dHlDYWxsYmFjayhoZWFwLT52bSgpLCBDRlJ1bkxvb3BHZXRDdXJyZW50KCkpCisgICAgLCBtX2Rl
bGF5KHNfZGVjYWRlKQogewogfQogCi1HQ0FjdGl2aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxs
YmFjayhIZWFwKiBoZWFwLCBDRlJ1bkxvb3BSZWYgcnVuTG9vcCkKK0RlZmF1bHRHQ0FjdGl2aXR5
Q2FsbGJhY2s6OkRlZmF1bHRHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCwgQ0ZSdW5Mb29w
UmVmIHJ1bkxvb3ApCiAgICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcC0+dm0oKSwgcnVuTG9v
cCkKKyAgICAsIG1fZGVsYXkoc19kZWNhZGUpCiB7CiB9CiAjZWxpZiBQTEFURk9STShFRkwpCi1H
Q0FjdGl2aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQorRGVmYXVs
dEdDQWN0aXZpdHlDYWxsYmFjazo6RGVmYXVsdEdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFw
KQogICAgIDogR0NBY3Rpdml0eUNhbGxiYWNrKGhlYXAtPnZtKCksIFdURjo6aXNNYWluVGhyZWFk
KCkpCisgICAgLCBtX2RlbGF5KGhvdXIpCiB7CiB9CiAjZW5kaWYKIAotdm9pZCBHQ0FjdGl2aXR5
Q2FsbGJhY2s6OmRvV29yaygpCit2b2lkIERlZmF1bHRHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvV29y
aygpCiB7CiAgICAgSGVhcCogaGVhcCA9ICZtX3ZtLT5oZWFwOwogICAgIGlmICghaXNFbmFibGVk
KCkpCkBAIC03OCwxMSArOTEsMjAgQEAgdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvV29yaygp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBkb0NvbGxlY3Rpb24oKTsKKyNpZiAhUExB
VEZPUk0oSU9TKQorICAgIGRvdWJsZSBzdGFydFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOworICAgIGlmIChoZWFwLT5pc1BhZ2VkT3V0KHN0YXJ0VGltZSArIHBhZ2lu
Z1RpbWVPdXQpKSB7CisgICAgICAgIGhlYXAtPmFjdGl2aXR5Q2FsbGJhY2soKS0+Y2FuY2VsKCk7
CisgICAgICAgIGhlYXAtPmluY3JlYXNlTGFzdEdDTGVuZ3RoKHBhZ2luZ1RpbWVPdXQpOworICAg
ICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisgICAgaGVhcC0+Z2NUaW1lckRpZEZpcmUoKTsK
KyAgICBoZWFwLT5jb2xsZWN0KCk7CiB9Ci0KKyAgICAKICNpZiBVU0UoQ0YpCi12b2lkIEdDQWN0
aXZpdHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihkb3VibGUgbmV3RGVsYXkpCit2b2lkIERlZmF1
bHRHQ0FjdGl2aXR5Q2FsbGJhY2s6OnNjaGVkdWxlVGltZXIoZG91YmxlIG5ld0RlbGF5KQogewog
ICAgIGlmIChuZXdEZWxheSAqIHRpbWVyU2xvcCA+IG1fZGVsYXkpCiAgICAgICAgIHJldHVybjsK
QEAgLTkxLDEzICsxMTMsMTMgQEAgdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OnNjaGVkdWxlVGlt
ZXIoZG91YmxlIG5ld0RlbGF5KQogICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1f
dGltZXIuZ2V0KCksIENGUnVuTG9vcFRpbWVyR2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCkp
IC0gZGVsdGEpOwogfQogCi12b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6Y2FuY2VsVGltZXIoKQor
dm9pZCBEZWZhdWx0R0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWxUaW1lcigpCiB7CiAgICAgbV9k
ZWxheSA9IHNfZGVjYWRlOwogICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGlt
ZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNhZGUpOwogfQogI2Vs
aWYgUExBVEZPUk0oRUZMKQotdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OnNjaGVkdWxlVGltZXIo
ZG91YmxlIG5ld0RlbGF5KQordm9pZCBEZWZhdWx0R0NBY3Rpdml0eUNhbGxiYWNrOjpzY2hlZHVs
ZVRpbWVyKGRvdWJsZSBuZXdEZWxheSkKIHsKICAgICBpZiAobmV3RGVsYXkgKiB0aW1lclNsb3Ag
PiBtX2RlbGF5KQogICAgICAgICByZXR1cm47CkBAIC0xMDksMTQgKzEzMSwxNCBAQCB2b2lkIEdD
QWN0aXZpdHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihkb3VibGUgbmV3RGVsYXkpCiAgICAgbV90
aW1lciA9IGFkZChuZXdEZWxheSwgdGhpcyk7CiB9CiAKLXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNr
OjpjYW5jZWxUaW1lcigpCit2b2lkIERlZmF1bHRHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNhbmNlbFRp
bWVyKCkKIHsKLSAgICBtX2RlbGF5ID0gc19ob3VyOworICAgIG1fZGVsYXkgPSBob3VyOwogICAg
IHN0b3AoKTsKIH0KICNlbmRpZgogCi12b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6ZGlkQWxsb2Nh
dGUoc2l6ZV90IGJ5dGVzKQordm9pZCBEZWZhdWx0R0NBY3Rpdml0eUNhbGxiYWNrOjpkaWRBbGxv
Y2F0ZShzaXplX3QgYnl0ZXMpCiB7CiAjaWYgUExBVEZPUk0oRUZMKQogICAgIGlmICghaXNFbmFi
bGVkKCkpCkBAIC0xMjksNDEgKzE1MSw0MiBAQCB2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6ZGlk
QWxsb2NhdGUoc2l6ZV90IGJ5dGVzKQogICAgIC8vIFdlIHByZXRlbmQgaXQncyBvbmUgYnl0ZSBz
byB0aGF0IHdlIGRvbid0IGlnbm9yZSB0aGlzIGFsbG9jYXRpb24gZW50aXJlbHkuCiAgICAgaWYg
KCFieXRlcykKICAgICAgICAgYnl0ZXMgPSAxOwotICAgIGRvdWJsZSBieXRlc0V4cGVjdGVkVG9S
ZWNsYWltID0gc3RhdGljX2Nhc3Q8ZG91YmxlPihieXRlcykgKiBkZWF0aFJhdGUoKTsKLSAgICBk
b3VibGUgbmV3RGVsYXkgPSBsYXN0R0NMZW5ndGgoKSAvIGdjVGltZVNsaWNlKGJ5dGVzRXhwZWN0
ZWRUb1JlY2xhaW0pOworICAgIEhlYXAqIGhlYXAgPSBzdGF0aWNfY2FzdDxIZWFwKj4oJm1fdm0t
PmhlYXApOworICAgIGRvdWJsZSBnY1RpbWVTbGljZSA9IHN0ZDo6bWluKChzdGF0aWNfY2FzdDxk
b3VibGU+KGJ5dGVzKSAvIE1CKSAqIGdjVGltZVNsaWNlUGVyTUIsIG1heEdDVGltZVNsaWNlKTsK
KyAgICBkb3VibGUgbmV3RGVsYXkgPSBoZWFwLT5sYXN0R0NMZW5ndGgoKSAvIGdjVGltZVNsaWNl
OwogICAgIHNjaGVkdWxlVGltZXIobmV3RGVsYXkpOwogfQogCi12b2lkIEdDQWN0aXZpdHlDYWxs
YmFjazo6d2lsbENvbGxlY3QoKQordm9pZCBEZWZhdWx0R0NBY3Rpdml0eUNhbGxiYWNrOjp3aWxs
Q29sbGVjdCgpCiB7CiAgICAgY2FuY2VsVGltZXIoKTsKIH0KIAotdm9pZCBHQ0FjdGl2aXR5Q2Fs
bGJhY2s6OmNhbmNlbCgpCit2b2lkIERlZmF1bHRHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNhbmNlbCgp
CiB7CiAgICAgY2FuY2VsVGltZXIoKTsKIH0KIAogI2Vsc2UKIAotR0NBY3Rpdml0eUNhbGxiYWNr
OjpHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKK0RlZmF1bHRHQ0FjdGl2aXR5Q2FsbGJh
Y2s6OkRlZmF1bHRHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKICAgICA6IEdDQWN0aXZp
dHlDYWxsYmFjayhoZWFwLT52bSgpKQogewogfQogCi12b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6
ZG9Xb3JrKCkKK3ZvaWQgRGVmYXVsdEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Xb3JrKCkKIHsKIH0K
IAotdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRpZEFsbG9jYXRlKHNpemVfdCkKK3ZvaWQgRGVm
YXVsdEdDQWN0aXZpdHlDYWxsYmFjazo6ZGlkQWxsb2NhdGUoc2l6ZV90KQogewogfQogCi12b2lk
IEdDQWN0aXZpdHlDYWxsYmFjazo6d2lsbENvbGxlY3QoKQordm9pZCBEZWZhdWx0R0NBY3Rpdml0
eUNhbGxiYWNrOjp3aWxsQ29sbGVjdCgpCiB7CiB9CiAKLXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNr
OjpjYW5jZWwoKQordm9pZCBEZWZhdWx0R0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWwoKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2Fs
bGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5o
CmluZGV4IDMzOTExOGJlOWFhNjM5MDgwNzVhMDA5MzQyYjVmMzFlNTQxZDJmYTEuLjU5ZGVhOTE0
YmY3NzJlNjJhMTYxY2NlMWZjNWRmNzUyMjE4ZjBhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC0zMSw3ICszMSw3IEBACiAKICNp
bmNsdWRlICJIZWFwVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiAjaWYgVVNF
KENGKQogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CkBAIC00MSw0
NCArNDEsMjggQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEhlYXA7CiAKLWNsYXNzIEdDQWN0
aXZpdHlDYWxsYmFjayA6IHB1YmxpYyBIZWFwVGltZXIsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxHQ0FjdGl2aXR5Q2FsbGJhY2s+IHsKK2NsYXNzIEdDQWN0aXZpdHlDYWxsYmFjayA6IHB1
YmxpYyBIZWFwVGltZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdDQWN0aXZpdHlDYWxsYmFjaz4gY3JlYXRlRnVsbFRpbWVy
KEhlYXAqKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IGNyZWF0
ZUVkZW5UaW1lcihIZWFwKik7Ci0KLSAgICBHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCopOwotCi0g
ICAgdmlydHVhbCB2b2lkIGRvV29yaygpIG92ZXJyaWRlOwotCi0gICAgdmlydHVhbCB2b2lkIGRv
Q29sbGVjdGlvbigpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBkaWRBbGxvY2F0ZShzaXplX3Qp
OwotICAgIHZpcnR1YWwgdm9pZCB3aWxsQ29sbGVjdCgpOwotICAgIHZpcnR1YWwgdm9pZCBjYW5j
ZWwoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWxsb2NhdGUoc2l6ZV90KSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgd2lsbENvbGxlY3QoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKCkgeyB9
CiAgICAgYm9vbCBpc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2VuYWJsZWQ7IH0KICAgICB2
b2lkIHNldEVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fZW5hYmxlZCA9IGVuYWJsZWQ7IH0KIAog
ICAgIHN0YXRpYyBib29sIHNfc2hvdWxkQ3JlYXRlR0NUaW1lcjsKIAogcHJvdGVjdGVkOgotICAg
IHZpcnR1YWwgZG91YmxlIGxhc3RHQ0xlbmd0aCgpID0gMDsKLSAgICB2aXJ0dWFsIGRvdWJsZSBn
Y1RpbWVTbGljZShzaXplX3QgYnl0ZXMpID0gMDsKLSAgICB2aXJ0dWFsIGRvdWJsZSBkZWF0aFJh
dGUoKSA9IDA7Ci0KICNpZiBVU0UoQ0YpCiAgICAgR0NBY3Rpdml0eUNhbGxiYWNrKFZNKiB2bSwg
Q0ZSdW5Mb29wUmVmIHJ1bkxvb3ApCiAgICAgICAgIDogSGVhcFRpbWVyKHZtLCBydW5Mb29wKQog
ICAgICAgICAsIG1fZW5hYmxlZCh0cnVlKQotICAgICAgICAsIG1fZGVsYXkoc19kZWNhZGUpCiAg
ICAgewogICAgIH0KICNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICBzdGF0aWMgY29uc3RleHByIGRv
dWJsZSBzX2hvdXIgPSAzNjAwOwogICAgIEdDQWN0aXZpdHlDYWxsYmFjayhWTSogdm0sIGJvb2wg
ZmxhZykKICAgICAgICAgOiBIZWFwVGltZXIodm0pCiAgICAgICAgICwgbV9lbmFibGVkKGZsYWcp
Ci0gICAgICAgICwgbV9kZWxheShzX2hvdXIpCiAgICAgewogICAgIH0KICNlbHNlCkBAIC05MCwx
MCArNzQsMjMgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAKICAgICBib29sIG1fZW5hYmxlZDsKK307
CisKK2NsYXNzIERlZmF1bHRHQ0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rpdml0eUNh
bGxiYWNrIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxEZWZhdWx0R0NBY3Rpdml0
eUNhbGxiYWNrPiBjcmVhdGUoSGVhcCopOworCisgICAgRGVmYXVsdEdDQWN0aXZpdHlDYWxsYmFj
ayhIZWFwKik7CisKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgZGlkQWxsb2Nh
dGUoc2l6ZV90KSBvdmVycmlkZTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQg
d2lsbENvbGxlY3QoKSBvdmVycmlkZTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZv
aWQgY2FuY2VsKCkgb3ZlcnJpZGU7CisKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZv
aWQgZG9Xb3JrKCkgb3ZlcnJpZGU7CiAKICNpZiBVU0UoQ0YpCiBwcm90ZWN0ZWQ6Ci0gICAgSlNf
RVhQT1JUX1BSSVZBVEUgR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqLCBDRlJ1bkxvb3BSZWYpOwor
ICAgIEpTX0VYUE9SVF9QUklWQVRFIERlZmF1bHRHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCosIENG
UnVuTG9vcFJlZik7CiAjZW5kaWYKICNpZiBVU0UoQ0YpIHx8IFBMQVRGT1JNKEVGTCkKIHByb3Rl
Y3RlZDoKQEAgLTEwNSw2ICsxMDIsMTEgQEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAotfSAvLyBu
YW1lc3BhY2UgSlNDCitpbmxpbmUgUGFzc093blB0cjxEZWZhdWx0R0NBY3Rpdml0eUNhbGxiYWNr
PiBEZWZhdWx0R0NBY3Rpdml0eUNhbGxiYWNrOjpjcmVhdGUoSGVhcCogaGVhcCkKK3sKKyAgICBy
ZXR1cm4gR0NBY3Rpdml0eUNhbGxiYWNrOjpzX3Nob3VsZENyZWF0ZUdDVGltZXIgPyBhZG9wdFB0
cihuZXcgRGVmYXVsdEdDQWN0aXZpdHlDYWxsYmFjayhoZWFwKSkgOiBudWxscHRyOworfQorCit9
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCAwYjI1YzRmYjhh
NzUwZjBkZDFjNTdhNDExNDVhMzgzODc1YWM0NDlmLi5jY2U3ZjZhNGM4M2VjYWQ2YjJmNTI1YzM2
ZDVlZTRiZmFmZWQ1YmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMjgs
OCArMjgsNiBAQAogI2luY2x1ZGUgIkNvcHlWaXNpdG9ySW5saW5lcy5oIgogI2luY2x1ZGUgIkRG
R1dvcmtsaXN0LmgiCiAjaW5jbHVkZSAiRGVsYXllZFJlbGVhc2VTY29wZS5oIgotI2luY2x1ZGUg
IkVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCIKLSNpbmNsdWRlICJGdWxsR0NBY3Rpdml0eUNhbGxi
YWNrLmgiCiAjaW5jbHVkZSAiR0NBY3Rpdml0eUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiR0NJbmNv
bWluZ1JlZkNvdW50ZWRTZXRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSGVhcEl0ZXJhdGlvblNjb3Bl
LmgiCkBAIC0yNTUsMTIgKzI1Myw4IEBAIEhlYXA6OkhlYXAoVk0qIHZtLCBIZWFwVHlwZSBoZWFw
VHlwZSkKICAgICAsIG1fcmFtU2l6ZShyYW1TaXplKCkpCiAgICAgLCBtX21pbkJ5dGVzUGVyQ3lj
bGUobWluSGVhcFNpemUobV9oZWFwVHlwZSwgbV9yYW1TaXplKSkKICAgICAsIG1fc2l6ZUFmdGVy
TGFzdENvbGxlY3QoMCkKLSAgICAsIG1fc2l6ZUFmdGVyTGFzdEZ1bGxDb2xsZWN0KDApCi0gICAg
LCBtX3NpemVCZWZvcmVMYXN0RnVsbENvbGxlY3QoMCkKLSAgICAsIG1fc2l6ZUFmdGVyTGFzdEVk
ZW5Db2xsZWN0KDApCi0gICAgLCBtX3NpemVCZWZvcmVMYXN0RWRlbkNvbGxlY3QoMCkKICAgICAs
IG1fYnl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGUoMCkKLSAgICAsIG1fYnl0ZXNBYmFuZG9uZWRTaW5j
ZUxhc3RGdWxsQ29sbGVjdCgwKQorICAgICwgbV9ieXRlc0FiYW5kb25lZFRoaXNDeWNsZSgwKQog
ICAgICwgbV9tYXhFZGVuU2l6ZShtX21pbkJ5dGVzUGVyQ3ljbGUpCiAgICAgLCBtX21heEhlYXBT
aXplKG1fbWluQnl0ZXNQZXJDeWNsZSkKICAgICAsIG1fc2hvdWxkRG9GdWxsQ29sbGVjdGlvbihm
YWxzZSkKQEAgLTI4MCwxNSArMjc0LDkgQEAgSGVhcDo6SGVhcChWTSogdm0sIEhlYXBUeXBlIGhl
YXBUeXBlKQogICAgICwgbV9pc1NhZmVUb0NvbGxlY3QoZmFsc2UpCiAgICAgLCBtX3dyaXRlQmFy
cmllckJ1ZmZlcigyNTYpCiAgICAgLCBtX3ZtKHZtKQotICAgICwgbV9sYXN0RnVsbEdDTGVuZ3Ro
KDApCi0gICAgLCBtX2xhc3RFZGVuR0NMZW5ndGgoMCkKKyAgICAsIG1fbGFzdEdDTGVuZ3RoKDAp
CiAgICAgLCBtX2xhc3RDb2RlRGlzY2FyZFRpbWUoV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKSkKLSAgICAsIG1fZnVsbEFjdGl2aXR5Q2FsbGJhY2soR0NBY3Rpdml0eUNhbGxiYWNr
OjpjcmVhdGVGdWxsVGltZXIodGhpcykpCi0jaWYgRU5BQkxFKEdHQykKLSAgICAsIG1fZWRlbkFj
dGl2aXR5Q2FsbGJhY2soR0NBY3Rpdml0eUNhbGxiYWNrOjpjcmVhdGVFZGVuVGltZXIodGhpcykp
Ci0jZWxzZQotICAgICwgbV9lZGVuQWN0aXZpdHlDYWxsYmFjayhtX2Z1bGxBY3Rpdml0eUNhbGxi
YWNrKQotI2VuZGlmCisgICAgLCBtX2FjdGl2aXR5Q2FsbGJhY2soRGVmYXVsdEdDQWN0aXZpdHlD
YWxsYmFjazo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9zd2VlcGVyKEluY3JlbWVudGFsU3dlZXBl
cjo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9kZWZlcnJhbERlcHRoKDApCiB7CkBAIC0zMzUsNyAr
MzIzLDcgQEAgdm9pZCBIZWFwOjpyZXBvcnRBYmFuZG9uZWRPYmplY3RHcmFwaCgpCiB7CiAgICAg
Ly8gT3VyIGNsaWVudHMgZG9uJ3Qga25vdyBleGFjdGx5IGhvdyBtdWNoIG1lbW9yeSB0aGV5CiAg
ICAgLy8gYXJlIGFiYW5kb25pbmcgc28gd2UganVzdCBndWVzcyBmb3IgdGhlbS4KLSAgICBkb3Vi
bGUgYWJhbmRvbmVkQnl0ZXMgPSAwLjEgKiBtX3NpemVBZnRlckxhc3RDb2xsZWN0OworICAgIGRv
dWJsZSBhYmFuZG9uZWRCeXRlcyA9IDAuMTAgKiBtX3NpemVBZnRlckxhc3RDb2xsZWN0OwogCiAg
ICAgLy8gV2Ugd2FudCB0byBhY2NlbGVyYXRlIHRoZSBuZXh0IGNvbGxlY3Rpb24uIEJlY2F1c2Ug
bWVtb3J5IGhhcyBqdXN0IAogICAgIC8vIGJlZW4gYWJhbmRvbmVkLCB0aGUgbmV4dCBjb2xsZWN0
aW9uIGhhcyB0aGUgcG90ZW50aWFsIHRvIApAQCAtMzQ2LDExICszMzQsOSBAQCB2b2lkIEhlYXA6
OnJlcG9ydEFiYW5kb25lZE9iamVjdEdyYXBoKCkKIAogdm9pZCBIZWFwOjpkaWRBYmFuZG9uKHNp
emVfdCBieXRlcykKIHsKLSAgICBpZiAobV9mdWxsQWN0aXZpdHlDYWxsYmFjaykgewotICAgICAg
ICBtX2Z1bGxBY3Rpdml0eUNhbGxiYWNrLT5kaWRBbGxvY2F0ZSgKLSAgICAgICAgICAgIG1fc2l6
ZUFmdGVyTGFzdENvbGxlY3QgLSBtX3NpemVBZnRlckxhc3RGdWxsQ29sbGVjdCArIG1fYnl0ZXNB
bGxvY2F0ZWRUaGlzQ3ljbGUgKyBtX2J5dGVzQWJhbmRvbmVkU2luY2VMYXN0RnVsbENvbGxlY3Qp
OwotICAgIH0KLSAgICBtX2J5dGVzQWJhbmRvbmVkU2luY2VMYXN0RnVsbENvbGxlY3QgKz0gYnl0
ZXM7CisgICAgaWYgKG1fYWN0aXZpdHlDYWxsYmFjaykKKyAgICAgICAgbV9hY3Rpdml0eUNhbGxi
YWNrLT5kaWRBbGxvY2F0ZShtX2J5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlICsgbV9ieXRlc0FiYW5k
b25lZFRoaXNDeWNsZSk7CisgICAgbV9ieXRlc0FiYW5kb25lZFRoaXNDeWNsZSArPSBieXRlczsK
IH0KIAogdm9pZCBIZWFwOjpwcm90ZWN0KEpTVmFsdWUgaykKQEAgLTg2MCw3ICs4NDYsOCBAQCB2
b2lkIEhlYXA6OmNvbGxlY3RBbGxHYXJiYWdlKCkKICAgICBpZiAoIW1faXNTYWZlVG9Db2xsZWN0
KQogICAgICAgICByZXR1cm47CiAKLSAgICBjb2xsZWN0KEZ1bGxDb2xsZWN0aW9uKTsKKyAgICBt
X3Nob3VsZERvRnVsbENvbGxlY3Rpb24gPSB0cnVlOworICAgIGNvbGxlY3QoKTsKIAogICAgIFNh
bXBsaW5nUmVnaW9uIHNhbXBsaW5nUmVnaW9uKCJHYXJiYWdlIENvbGxlY3Rpb246IFN3ZWVwaW5n
Iik7CiAgICAgRGVsYXllZFJlbGVhc2VTY29wZSBkZWxheWVkUmVsZWFzZVNjb3BlKG1fb2JqZWN0
U3BhY2UpOwpAQCAtODcwLDcgKzg1Nyw3IEBAIHZvaWQgSGVhcDo6Y29sbGVjdEFsbEdhcmJhZ2Uo
KQogCiBzdGF0aWMgZG91YmxlIG1pbnV0ZSA9IDYwLjA7CiAKLXZvaWQgSGVhcDo6Y29sbGVjdChI
ZWFwT3BlcmF0aW9uIGNvbGxlY3Rpb25UeXBlKQordm9pZCBIZWFwOjpjb2xsZWN0KCkKIHsKICNp
ZiBFTkFCTEUoQUxMT0NBVElPTl9MT0dHSU5HKQogICAgIGRhdGFMb2dGKCJKU0MgR0Mgc3RhcnRp
bmcgY29sbGVjdGlvbi5cbiIpOwpAQCAtODkzLDcgKzg4MCw3IEBAIHZvaWQgSGVhcDo6Y29sbGVj
dChIZWFwT3BlcmF0aW9uIGNvbGxlY3Rpb25UeXBlKQogICAgIFJFTEVBU0VfQVNTRVJUKG1fb3Bl
cmF0aW9uSW5Qcm9ncmVzcyA9PSBOb09wZXJhdGlvbik7CiAKICAgICBzdXNwZW5kQ29tcGlsZXJU
aHJlYWRzKCk7Ci0gICAgd2lsbFN0YXJ0Q29sbGVjdGlvbihjb2xsZWN0aW9uVHlwZSk7CisgICAg
d2lsbFN0YXJ0Q29sbGVjdGlvbigpOwogCiAgICAgZG91YmxlIGdjU3RhcnRUaW1lID0gV1RGOjpt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKIApAQCAtOTQwLDEwICs5MjcsMTAgQEAgdm9p
ZCBIZWFwOjpzdXNwZW5kQ29tcGlsZXJUaHJlYWRzKCkKICNlbmRpZgogfQogCi12b2lkIEhlYXA6
OndpbGxTdGFydENvbGxlY3Rpb24oSGVhcE9wZXJhdGlvbiBjb2xsZWN0aW9uVHlwZSkKK3ZvaWQg
SGVhcDo6d2lsbFN0YXJ0Q29sbGVjdGlvbigpCiB7CiAgICAgR0NQSEFTRShTdGFydGluZ0NvbGxl
Y3Rpb24pOwotICAgIGlmIChzaG91bGREb0Z1bGxDb2xsZWN0aW9uKGNvbGxlY3Rpb25UeXBlKSkg
eworICAgIGlmIChzaG91bGREb0Z1bGxDb2xsZWN0aW9uKCkpIHsKICAgICAgICAgbV9vcGVyYXRp
b25JblByb2dyZXNzID0gRnVsbENvbGxlY3Rpb247CiAgICAgICAgIG1fc2xvdFZpc2l0b3IuY2xl
YXJNYXJrU3RhY2soKTsKICAgICAgICAgbV9zaG91bGREb0Z1bGxDb2xsZWN0aW9uID0gZmFsc2U7
CkBAIC05NTQsMTkgKzk0MSwxMSBAQCB2b2lkIEhlYXA6OndpbGxTdGFydENvbGxlY3Rpb24oSGVh
cE9wZXJhdGlvbiBjb2xsZWN0aW9uVHlwZSkKICAgICAgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkp
CiAgICAgICAgICAgICBkYXRhTG9nKCJFZGVuQ29sbGVjdGlvbiwgIik7CiAgICAgfQotICAgIGlm
IChtX29wZXJhdGlvbkluUHJvZ3Jlc3MgPT0gRnVsbENvbGxlY3Rpb24pIHsKLSAgICAgICAgbV9z
aXplQmVmb3JlTGFzdEZ1bGxDb2xsZWN0ID0gbV9zaXplQWZ0ZXJMYXN0Q29sbGVjdCArIG1fYnl0
ZXNBbGxvY2F0ZWRUaGlzQ3ljbGU7CisgICAgaWYgKG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyA9PSBG
dWxsQ29sbGVjdGlvbikKICAgICAgICAgbV9leHRyYU1lbW9yeVVzYWdlID0gMDsKIAotICAgICAg
ICBpZiAobV9mdWxsQWN0aXZpdHlDYWxsYmFjaykKLSAgICAgICAgICAgIG1fZnVsbEFjdGl2aXR5
Q2FsbGJhY2stPndpbGxDb2xsZWN0KCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUKG1f
b3BlcmF0aW9uSW5Qcm9ncmVzcyA9PSBFZGVuQ29sbGVjdGlvbik7Ci0gICAgICAgIG1fc2l6ZUJl
Zm9yZUxhc3RFZGVuQ29sbGVjdCA9IG1fc2l6ZUFmdGVyTGFzdENvbGxlY3QgKyBtX2J5dGVzQWxs
b2NhdGVkVGhpc0N5Y2xlOwotICAgIH0KLQotICAgIGlmIChtX2VkZW5BY3Rpdml0eUNhbGxiYWNr
KQotICAgICAgICBtX2VkZW5BY3Rpdml0eUNhbGxiYWNrLT53aWxsQ29sbGVjdCgpOworICAgIGlm
IChtX2FjdGl2aXR5Q2FsbGJhY2spCisgICAgICAgIG1fYWN0aXZpdHlDYWxsYmFjay0+d2lsbENv
bGxlY3QoKTsKIH0KIAogdm9pZCBIZWFwOjpkZWxldGVPbGRDb2RlKGRvdWJsZSBnY1N0YXJ0VGlt
ZSkKQEAgLTEwNjQsMjYgKzEwNDMsMjAgQEAgdm9pZCBIZWFwOjp1cGRhdGVBbGxvY2F0aW9uTGlt
aXRzKCkKICAgICAgICAgLy8gZml4ZWQgbWluaW11bS4KICAgICAgICAgbV9tYXhIZWFwU2l6ZSA9
IG1heChtaW5IZWFwU2l6ZShtX2hlYXBUeXBlLCBtX3JhbVNpemUpLCBwcm9wb3J0aW9uYWxIZWFw
U2l6ZShjdXJyZW50SGVhcFNpemUsIG1fcmFtU2l6ZSkpOwogICAgICAgICBtX21heEVkZW5TaXpl
ID0gbV9tYXhIZWFwU2l6ZSAtIGN1cnJlbnRIZWFwU2l6ZTsKLSAgICAgICAgbV9zaXplQWZ0ZXJM
YXN0RnVsbENvbGxlY3QgPSBjdXJyZW50SGVhcFNpemU7Ci0gICAgICAgIG1fYnl0ZXNBYmFuZG9u
ZWRTaW5jZUxhc3RGdWxsQ29sbGVjdCA9IDA7CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJU
KGN1cnJlbnRIZWFwU2l6ZSA+PSBtX3NpemVBZnRlckxhc3RDb2xsZWN0KTsKICAgICAgICAgbV9t
YXhFZGVuU2l6ZSA9IG1fbWF4SGVhcFNpemUgLSBjdXJyZW50SGVhcFNpemU7Ci0gICAgICAgIG1f
c2l6ZUFmdGVyTGFzdEVkZW5Db2xsZWN0ID0gY3VycmVudEhlYXBTaXplOwogICAgICAgICBkb3Vi
bGUgZWRlblRvT2xkR2VuZXJhdGlvblJhdGlvID0gKGRvdWJsZSltX21heEVkZW5TaXplIC8gKGRv
dWJsZSltX21heEhlYXBTaXplOwogICAgICAgICBkb3VibGUgbWluRWRlblRvT2xkR2VuZXJhdGlv
blJhdGlvID0gMS4wIC8gMy4wOwogICAgICAgICBpZiAoZWRlblRvT2xkR2VuZXJhdGlvblJhdGlv
IDwgbWluRWRlblRvT2xkR2VuZXJhdGlvblJhdGlvKQogICAgICAgICAgICAgbV9zaG91bGREb0Z1
bGxDb2xsZWN0aW9uID0gdHJ1ZTsKICAgICAgICAgbV9tYXhIZWFwU2l6ZSArPSBjdXJyZW50SGVh
cFNpemUgLSBtX3NpemVBZnRlckxhc3RDb2xsZWN0OwogICAgICAgICBtX21heEVkZW5TaXplID0g
bV9tYXhIZWFwU2l6ZSAtIGN1cnJlbnRIZWFwU2l6ZTsKLSAgICAgICAgaWYgKG1fZnVsbEFjdGl2
aXR5Q2FsbGJhY2spIHsKLSAgICAgICAgICAgIEFTU0VSVChjdXJyZW50SGVhcFNpemUgPj0gbV9z
aXplQWZ0ZXJMYXN0RnVsbENvbGxlY3QpOwotICAgICAgICAgICAgbV9mdWxsQWN0aXZpdHlDYWxs
YmFjay0+ZGlkQWxsb2NhdGUoY3VycmVudEhlYXBTaXplIC0gbV9zaXplQWZ0ZXJMYXN0RnVsbENv
bGxlY3QpOwotICAgICAgICB9CiAgICAgfQogCiAgICAgbV9zaXplQWZ0ZXJMYXN0Q29sbGVjdCA9
IGN1cnJlbnRIZWFwU2l6ZTsKICAgICBtX2J5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlID0gMDsKKyAg
ICBtX2J5dGVzQWJhbmRvbmVkVGhpc0N5Y2xlID0gMDsKIAogICAgIGlmIChPcHRpb25zOjpsb2dH
QygpKQogICAgICAgICBkYXRhTG9nKGN1cnJlbnRIZWFwU2l6ZSAvIDEwMjQsICIga2IsICIpOwpA
QCAtMTA5MywxMCArMTA2Niw3IEBAIHZvaWQgSGVhcDo6ZGlkRmluaXNoQ29sbGVjdGlvbihkb3Vi
bGUgZ2NTdGFydFRpbWUpCiB7CiAgICAgR0NQSEFTRShGaW5pc2hpbmdDb2xsZWN0aW9uKTsKICAg
ICBkb3VibGUgZ2NFbmRUaW1lID0gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsK
LSAgICBpZiAobV9vcGVyYXRpb25JblByb2dyZXNzID09IEZ1bGxDb2xsZWN0aW9uKQotICAgICAg
ICBtX2xhc3RGdWxsR0NMZW5ndGggPSBnY0VuZFRpbWUgLSBnY1N0YXJ0VGltZTsKLSAgICBlbHNl
Ci0gICAgICAgIG1fbGFzdEVkZW5HQ0xlbmd0aCA9IGdjRW5kVGltZSAtIGdjU3RhcnRUaW1lOwor
ICAgIG1fbGFzdEdDTGVuZ3RoID0gZ2NFbmRUaW1lIC0gZ2NTdGFydFRpbWU7CiAKICAgICBpZiAo
T3B0aW9uczo6cmVjb3JkR0NQYXVzZVRpbWVzKCkpCiAgICAgICAgIEhlYXBTdGF0aXN0aWNzOjpy
ZWNvcmRHQ1BhdXNlVGltZShnY1N0YXJ0VGltZSwgZ2NFbmRUaW1lKTsKQEAgLTExMzIsMjQgKzEx
MDIsMTQgQEAgdm9pZCBIZWFwOjptYXJrRGVhZE9iamVjdHMoKQogICAgIG1fb2JqZWN0U3BhY2Uu
Zm9yRWFjaERlYWRDZWxsPE1hcmtPYmplY3Q+KGl0ZXJhdGlvblNjb3BlKTsKIH0KIAotdm9pZCBI
ZWFwOjpzZXRGdWxsQWN0aXZpdHlDYWxsYmFjayhQYXNzUmVmUHRyPEZ1bGxHQ0FjdGl2aXR5Q2Fs
bGJhY2s+IGFjdGl2aXR5Q2FsbGJhY2spCit2b2lkIEhlYXA6OnNldEFjdGl2aXR5Q2FsbGJhY2so
UGFzc093blB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IGFjdGl2aXR5Q2FsbGJhY2spCiB7Ci0gICAg
bV9mdWxsQWN0aXZpdHlDYWxsYmFjayA9IGFjdGl2aXR5Q2FsbGJhY2s7CisgICAgbV9hY3Rpdml0
eUNhbGxiYWNrID0gYWN0aXZpdHlDYWxsYmFjazsKIH0KIAotdm9pZCBIZWFwOjpzZXRFZGVuQWN0
aXZpdHlDYWxsYmFjayhQYXNzUmVmUHRyPEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s+IGFjdGl2aXR5
Q2FsbGJhY2spCitHQ0FjdGl2aXR5Q2FsbGJhY2sqIEhlYXA6OmFjdGl2aXR5Q2FsbGJhY2soKQog
ewotICAgIG1fZWRlbkFjdGl2aXR5Q2FsbGJhY2sgPSBhY3Rpdml0eUNhbGxiYWNrOwotfQotCi1H
Q0FjdGl2aXR5Q2FsbGJhY2sqIEhlYXA6OmZ1bGxBY3Rpdml0eUNhbGxiYWNrKCkKLXsKLSAgICBy
ZXR1cm4gbV9mdWxsQWN0aXZpdHlDYWxsYmFjay5nZXQoKTsKLX0KLQotR0NBY3Rpdml0eUNhbGxi
YWNrKiBIZWFwOjplZGVuQWN0aXZpdHlDYWxsYmFjaygpCi17Ci0gICAgcmV0dXJuIG1fZWRlbkFj
dGl2aXR5Q2FsbGJhY2suZ2V0KCk7CisgICAgcmV0dXJuIG1fYWN0aXZpdHlDYWxsYmFjay5nZXQo
KTsKIH0KIAogdm9pZCBIZWFwOjpzZXRJbmNyZW1lbnRhbFN3ZWVwZXIoUGFzc093blB0cjxJbmNy
ZW1lbnRhbFN3ZWVwZXI+IHN3ZWVwZXIpCkBAIC0xMTY0LDE2ICsxMTI0LDE0IEBAIEluY3JlbWVu
dGFsU3dlZXBlciogSGVhcDo6c3dlZXBlcigpCiAKIHZvaWQgSGVhcDo6c2V0R2FyYmFnZUNvbGxl
Y3Rpb25UaW1lckVuYWJsZWQoYm9vbCBlbmFibGUpCiB7Ci0gICAgaWYgKG1fZnVsbEFjdGl2aXR5
Q2FsbGJhY2spCi0gICAgICAgIG1fZnVsbEFjdGl2aXR5Q2FsbGJhY2stPnNldEVuYWJsZWQoZW5h
YmxlKTsKLSAgICBpZiAobV9lZGVuQWN0aXZpdHlDYWxsYmFjaykKLSAgICAgICAgbV9lZGVuQWN0
aXZpdHlDYWxsYmFjay0+c2V0RW5hYmxlZChlbmFibGUpOworICAgIGlmIChtX2FjdGl2aXR5Q2Fs
bGJhY2spCisgICAgICAgIG1fYWN0aXZpdHlDYWxsYmFjay0+c2V0RW5hYmxlZChlbmFibGUpOwog
fQogCiB2b2lkIEhlYXA6OmRpZEFsbG9jYXRlKHNpemVfdCBieXRlcykKIHsKLSAgICBpZiAobV9l
ZGVuQWN0aXZpdHlDYWxsYmFjaykKLSAgICAgICAgbV9lZGVuQWN0aXZpdHlDYWxsYmFjay0+ZGlk
QWxsb2NhdGUobV9ieXRlc0FsbG9jYXRlZFRoaXNDeWNsZSArIG1fYnl0ZXNBYmFuZG9uZWRTaW5j
ZUxhc3RGdWxsQ29sbGVjdCk7CisgICAgaWYgKG1fYWN0aXZpdHlDYWxsYmFjaykKKyAgICAgICAg
bV9hY3Rpdml0eUNhbGxiYWNrLT5kaWRBbGxvY2F0ZShtX2J5dGVzQWxsb2NhdGVkVGhpc0N5Y2xl
ICsgbV9ieXRlc0FiYW5kb25lZFRoaXNDeWNsZSk7CiAgICAgbV9ieXRlc0FsbG9jYXRlZFRoaXND
eWNsZSArPSBieXRlczsKIH0KIApAQCAtMTI1NiwyNyArMTIxNCwxMSBAQCB2b2lkIEhlYXA6OmZs
dXNoV3JpdGVCYXJyaWVyQnVmZmVyKEpTQ2VsbCogY2VsbCkKICNlbmRpZgogfQogCi1ib29sIEhl
YXA6OnNob3VsZERvRnVsbENvbGxlY3Rpb24oSGVhcE9wZXJhdGlvbiByZXF1ZXN0ZWRDb2xsZWN0
aW9uVHlwZSkgY29uc3QKK2Jvb2wgSGVhcDo6c2hvdWxkRG9GdWxsQ29sbGVjdGlvbigpIGNvbnN0
CiB7CiAjaWYgRU5BQkxFKEdHQykKLSAgICBpZiAoT3B0aW9uczo6YWx3YXlzRG9GdWxsQ29sbGVj
dGlvbigpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHN3aXRjaCAocmVxdWVzdGVkQ29s
bGVjdGlvblR5cGUpIHsKLSAgICBjYXNlIEVkZW5Db2xsZWN0aW9uOgotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgY2FzZSBGdWxsQ29sbGVjdGlvbjoKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgY2FzZSBBbnlDb2xsZWN0aW9uOgotICAgICAgICByZXR1cm4gbV9zaG91bGREb0Z1bGxDb2xs
ZWN0aW9uOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIE9wdGlvbnM6OmFsd2F5
c0RvRnVsbENvbGxlY3Rpb24oKSB8fCBtX3Nob3VsZERvRnVsbENvbGxlY3Rpb247CiAjZWxzZQot
ICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0ZWRDb2xsZWN0aW9uVHlwZSk7CiAgICAgcmV0dXJuIHRy
dWU7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAppbmRleCBlOGE5YTAzZjdl
NDBmYWIzZjZjNzAyODdiNjRlZDRkMzhlMWJmYTU5Li40ZTI1ZTgyNjAzMDZjZTQ5MGQ0MGExMzQ3
MzM5ZGZmYzMxYTlkYzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCkBAIC01Miw4ICs1
Miw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIENvcGllZFNwYWNlOwogICAgIGNsYXNz
IENvZGVCbG9jazsKICAgICBjbGFzcyBFeGVjdXRhYmxlQmFzZTsKLSAgICBjbGFzcyBFZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrOwotICAgIGNsYXNzIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s7CiAgICAg
Y2xhc3MgR0NBY3Rpdml0eUNhbGxiYWNrOwogICAgIGNsYXNzIEdDQXdhcmVKSVRTdHViUm91dGlu
ZTsKICAgICBjbGFzcyBHbG9iYWxDb2RlQmxvY2s7CkBAIC0xMjAsMTAgKzExOCw4IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBNYXJrZWRTcGFjZSYgb2JqZWN0U3BhY2UoKSB7IHJldHVybiBt
X29iamVjdFNwYWNlOyB9CiAgICAgICAgIE1hY2hpbmVUaHJlYWRzJiBtYWNoaW5lVGhyZWFkcygp
IHsgcmV0dXJuIG1fbWFjaGluZVRocmVhZHM7IH0KIAotICAgICAgICBKU19FWFBPUlRfUFJJVkFU
RSBHQ0FjdGl2aXR5Q2FsbGJhY2sqIGZ1bGxBY3Rpdml0eUNhbGxiYWNrKCk7Ci0gICAgICAgIEpT
X0VYUE9SVF9QUklWQVRFIEdDQWN0aXZpdHlDYWxsYmFjayogZWRlbkFjdGl2aXR5Q2FsbGJhY2so
KTsKLSAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRGdWxsQWN0aXZpdHlDYWxsYmFj
ayhQYXNzUmVmUHRyPEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s+KTsKLSAgICAgICAgSlNfRVhQT1JU
X1BSSVZBVEUgdm9pZCBzZXRFZGVuQWN0aXZpdHlDYWxsYmFjayhQYXNzUmVmUHRyPEVkZW5HQ0Fj
dGl2aXR5Q2FsbGJhY2s+KTsKKyAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgR0NBY3Rpdml0eUNh
bGxiYWNrKiBhY3Rpdml0eUNhbGxiYWNrKCk7CisgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZv
aWQgc2V0QWN0aXZpdHlDYWxsYmFjayhQYXNzT3duUHRyPEdDQWN0aXZpdHlDYWxsYmFjaz4pOwog
ICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHNldEdhcmJhZ2VDb2xsZWN0aW9uVGltZXJF
bmFibGVkKGJvb2wpOwogCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIEluY3JlbWVudGFsU3dl
ZXBlciogc3dlZXBlcigpOwpAQCAtMTUyLDcgKzE0OCw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgY29sbGVjdEFsbEdhcmJhZ2UoKTsKICAgICAg
ICAgYm9vbCBzaG91bGRDb2xsZWN0KCk7Ci0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQg
Y29sbGVjdChIZWFwT3BlcmF0aW9uIGNvbGxlY3Rpb25UeXBlID0gQW55Q29sbGVjdGlvbik7Cisg
ICAgICAgIHZvaWQgZ2NUaW1lckRpZEZpcmUoKSB7IG1fc2hvdWxkRG9GdWxsQ29sbGVjdGlvbiA9
IHRydWU7IH0KKyAgICAgICAgdm9pZCBzZXRTaG91bGREb0Z1bGxDb2xsZWN0aW9uKGJvb2wgc2hv
dWxkRG9GdWxsQ29sbGVjdGlvbikgeyBtX3Nob3VsZERvRnVsbENvbGxlY3Rpb24gPSBzaG91bGRE
b0Z1bGxDb2xsZWN0aW9uOyB9CisgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgY29sbGVj
dCgpOwogICAgICAgICBib29sIGNvbGxlY3RJZk5lY2Vzc2FyeU9yRGVmZXIoKTsgLy8gUmV0dXJu
cyB0cnVlIGlmIGl0IGRpZCBjb2xsZWN0LgogCiAgICAgICAgIHZvaWQgcmVwb3J0RXh0cmFNZW1v
cnlDb3N0KHNpemVfdCBjb3N0KTsKQEAgLTE4OCwxNCArMTg2LDggQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHZvaWQgZGlkRmluaXNoSXRlcmF0aW5nKCk7CiAgICAgICAgIHZvaWQgZ2V0Q29u
c2VydmF0aXZlUmVnaXN0ZXJSb290cyhIYXNoU2V0PEpTQ2VsbCo+JiByb290cyk7CiAKLSAgICAg
ICAgZG91YmxlIGxhc3RGdWxsR0NMZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xhc3RGdWxsR0NM
ZW5ndGg7IH0KLSAgICAgICAgZG91YmxlIGxhc3RFZGVuR0NMZW5ndGgoKSBjb25zdCB7IHJldHVy
biBtX2xhc3RFZGVuR0NMZW5ndGg7IH0KLSAgICAgICAgdm9pZCBpbmNyZWFzZUxhc3RGdWxsR0NM
ZW5ndGgoZG91YmxlIGFtb3VudCkgeyBtX2xhc3RGdWxsR0NMZW5ndGggKz0gYW1vdW50OyB9Ci0K
LSAgICAgICAgc2l6ZV90IHNpemVCZWZvcmVMYXN0RWRlbkNvbGxlY3Rpb24oKSBjb25zdCB7IHJl
dHVybiBtX3NpemVCZWZvcmVMYXN0RWRlbkNvbGxlY3Q7IH0KLSAgICAgICAgc2l6ZV90IHNpemVB
ZnRlckxhc3RFZGVuQ29sbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZUFmdGVyTGFzdEVk
ZW5Db2xsZWN0OyB9Ci0gICAgICAgIHNpemVfdCBzaXplQmVmb3JlTGFzdEZ1bGxDb2xsZWN0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9zaXplQmVmb3JlTGFzdEZ1bGxDb2xsZWN0OyB9Ci0gICAgICAg
IHNpemVfdCBzaXplQWZ0ZXJMYXN0RnVsbENvbGxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3Np
emVBZnRlckxhc3RGdWxsQ29sbGVjdDsgfQorICAgICAgICBkb3VibGUgbGFzdEdDTGVuZ3RoKCkg
eyByZXR1cm4gbV9sYXN0R0NMZW5ndGg7IH0KKyAgICAgICAgdm9pZCBpbmNyZWFzZUxhc3RHQ0xl
bmd0aChkb3VibGUgYW1vdW50KSB7IG1fbGFzdEdDTGVuZ3RoICs9IGFtb3VudDsgfQogCiAgICAg
ICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVsZXRlQWxsQ29tcGlsZWRDb2RlKCk7CiAgICAg
ICAgIHZvaWQgZGVsZXRlQWxsVW5saW5rZWRGdW5jdGlvbkNvZGUoKTsKQEAgLTI2MCw3ICsyNTIs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCByZXBv
cnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZShzaXplX3QpOwogCiAgICAgICAgIHZvaWQgc3VzcGVu
ZENvbXBpbGVyVGhyZWFkcygpOwotICAgICAgICB2b2lkIHdpbGxTdGFydENvbGxlY3Rpb24oSGVh
cE9wZXJhdGlvbiBjb2xsZWN0aW9uVHlwZSk7CisgICAgICAgIHZvaWQgd2lsbFN0YXJ0Q29sbGVj
dGlvbigpOwogICAgICAgICB2b2lkIGRlbGV0ZU9sZENvZGUoZG91YmxlIGdjU3RhcnRUaW1lKTsK
ICAgICAgICAgdm9pZCBmbHVzaE9sZFN0cnVjdHVyZUlEVGFibGVzKCk7CiAgICAgICAgIHZvaWQg
Zmx1c2hXcml0ZUJhcnJpZXJCdWZmZXIoKTsKQEAgLTMwNCw3ICsyOTYsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgdm9pZCB6b21iaWZ5RGVhZE9iamVjdHMoKTsKICAgICAgICAgdm9pZCBt
YXJrRGVhZE9iamVjdHMoKTsKIAotICAgICAgICBib29sIHNob3VsZERvRnVsbENvbGxlY3Rpb24o
SGVhcE9wZXJhdGlvbiByZXF1ZXN0ZWRDb2xsZWN0aW9uVHlwZSkgY29uc3Q7CisgICAgICAgIGJv
b2wgc2hvdWxkRG9GdWxsQ29sbGVjdGlvbigpIGNvbnN0OwogICAgICAgICBzaXplX3Qgc2l6ZUFm
dGVyQ29sbGVjdCgpOwogCiAgICAgICAgIEpTU3RhY2smIHN0YWNrKCk7CkBAIC0zMTcsMTMgKzMw
OSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBzaXplX3QgbV9yYW1TaXplOwog
ICAgICAgICBjb25zdCBzaXplX3QgbV9taW5CeXRlc1BlckN5Y2xlOwogICAgICAgICBzaXplX3Qg
bV9zaXplQWZ0ZXJMYXN0Q29sbGVjdDsKLSAgICAgICAgc2l6ZV90IG1fc2l6ZUFmdGVyTGFzdEZ1
bGxDb2xsZWN0OwotICAgICAgICBzaXplX3QgbV9zaXplQmVmb3JlTGFzdEZ1bGxDb2xsZWN0Owot
ICAgICAgICBzaXplX3QgbV9zaXplQWZ0ZXJMYXN0RWRlbkNvbGxlY3Q7Ci0gICAgICAgIHNpemVf
dCBtX3NpemVCZWZvcmVMYXN0RWRlbkNvbGxlY3Q7CiAKICAgICAgICAgc2l6ZV90IG1fYnl0ZXNB
bGxvY2F0ZWRUaGlzQ3ljbGU7Ci0gICAgICAgIHNpemVfdCBtX2J5dGVzQWJhbmRvbmVkU2luY2VM
YXN0RnVsbENvbGxlY3Q7CisgICAgICAgIHNpemVfdCBtX2J5dGVzQWJhbmRvbmVkVGhpc0N5Y2xl
OwogICAgICAgICBzaXplX3QgbV9tYXhFZGVuU2l6ZTsKICAgICAgICAgc2l6ZV90IG1fbWF4SGVh
cFNpemU7CiAgICAgICAgIGJvb2wgbV9zaG91bGREb0Z1bGxDb2xsZWN0aW9uOwpAQCAtMzYxLDE0
ICszNDksMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFdyaXRlQmFycmllckJ1ZmZlciBt
X3dyaXRlQmFycmllckJ1ZmZlcjsKIAogICAgICAgICBWTSogbV92bTsKLSAgICAgICAgZG91Ymxl
IG1fbGFzdEZ1bGxHQ0xlbmd0aDsKLSAgICAgICAgZG91YmxlIG1fbGFzdEVkZW5HQ0xlbmd0aDsK
KyAgICAgICAgZG91YmxlIG1fbGFzdEdDTGVuZ3RoOwogICAgICAgICBkb3VibGUgbV9sYXN0Q29k
ZURpc2NhcmRUaW1lOwogCiAgICAgICAgIERvdWJseUxpbmtlZExpc3Q8RXhlY3V0YWJsZUJhc2U+
IG1fY29tcGlsZWRDb2RlOwogICAgICAgICAKLSAgICAgICAgUmVmUHRyPEdDQWN0aXZpdHlDYWxs
YmFjaz4gbV9mdWxsQWN0aXZpdHlDYWxsYmFjazsKLSAgICAgICAgUmVmUHRyPEdDQWN0aXZpdHlD
YWxsYmFjaz4gbV9lZGVuQWN0aXZpdHlDYWxsYmFjazsKKyAgICAgICAgT3duUHRyPEdDQWN0aXZp
dHlDYWxsYmFjaz4gbV9hY3Rpdml0eUNhbGxiYWNrOwogICAgICAgICBPd25QdHI8SW5jcmVtZW50
YWxTd2VlcGVyPiBtX3N3ZWVwZXI7CiAgICAgICAgIFZlY3RvcjxNYXJrZWRCbG9jayo+IG1fYmxv
Y2tTbmFwc2hvdDsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwT3BlcmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwT3Bl
cmF0aW9uLmgKaW5kZXggMjcyZTNjMDY4NGJmZDE2ODZmMjg2OGE1Nzk4YjcwYzNhMWQ0ODUwOC4u
NzY5MTI3ZTg5MGZiNzI2MDUzNGY0ZTMxMzI0ODllMTBlMzRjMjA2ZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcE9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXBPcGVyYXRpb24uaApAQCAtMjgsNyArMjgsNyBAQAogCiBuYW1l
c3BhY2UgSlNDIHsKIAotZW51bSBIZWFwT3BlcmF0aW9uIHsgTm9PcGVyYXRpb24sIEFsbG9jYXRp
b24sIEZ1bGxDb2xsZWN0aW9uLCBFZGVuQ29sbGVjdGlvbiwgQW55Q29sbGVjdGlvbiB9OworZW51
bSBIZWFwT3BlcmF0aW9uIHsgTm9PcGVyYXRpb24sIEFsbG9jYXRpb24sIEZ1bGxDb2xsZWN0aW9u
LCBFZGVuQ29sbGVjdGlvbiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRpc3RpY3MuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRpc3RpY3MuY3BwCmluZGV4IGViZjNkZTIxNDhkNzVi
YTFiNWY1NTA3MzJjMjNmYzFiNmNlY2JhMWMuLmJjZWRlZjViNGMxOTMzZWI2NmQxNDM5ZWQ0ZWE4
YjZiM2FkZTI4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBT
dGF0aXN0aWNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU3RhdGlz
dGljcy5jcHAKQEAgLTIzMyw3ICsyMzMsNyBAQCB2b2lkIEhlYXBTdGF0aXN0aWNzOjpzaG93T2Jq
ZWN0U3RhdGlzdGljcyhIZWFwKiBoZWFwKQogICAgIGRhdGFMb2dGKCJcbj09PSBIZWFwIFN0YXRp
c3RpY3M6ID09PVxuIik7CiAgICAgZGF0YUxvZ0YoInNpemU6ICVsZGtCXG4iLCBzdGF0aWNfY2Fz
dDxsb25nPihoZWFwLT5tX3NpemVBZnRlckxhc3RDb2xsZWN0IC8gS0IpKTsKICAgICBkYXRhTG9n
RigiY2FwYWNpdHk6ICVsZGtCXG4iLCBzdGF0aWNfY2FzdDxsb25nPihoZWFwLT5jYXBhY2l0eSgp
IC8gS0IpKTsKLSAgICBkYXRhTG9nRigicGF1c2UgdGltZTogJWxmbXNcblxuIiwgaGVhcC0+bV9s
YXN0RnVsbEdDTGVuZ3RoKTsKKyAgICBkYXRhTG9nRigicGF1c2UgdGltZTogJWxmbXNcblxuIiwg
aGVhcC0+bV9sYXN0R0NMZW5ndGgpOwogCiAgICAgU3RvcmFnZVN0YXRpc3RpY3Mgc3RvcmFnZVN0
YXRpc3RpY3M7CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcFRpbWVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lci5jcHAK
aW5kZXggOTY2MGQ2NjIxNjUyNjg0NzZkNTczN2JjYTJhZDdmNjUyM2QxZjkyYS4uZTkzZTMxZGNm
ODZmNGFlZmFiYTQ1ZGI2MGUyZDU2NmMyMDZkY2YyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwVGltZXIuY3BwCkBAIC04NSwxMCArODUsOCBAQCB2b2lkIEhlYXBUaW1lcjo6dGlt
ZXJEaWRGaXJlKENGUnVuTG9vcFRpbWVyUmVmIHRpbWVyLCB2b2lkKiBjb250ZXh0KQogICAgIH0K
IAogICAgIEhlYXBUaW1lciogaGVhcFRpbWVyID0gMDsKLSAgICBpZiAodm0tPmhlYXAuZnVsbEFj
dGl2aXR5Q2FsbGJhY2soKSAmJiB2bS0+aGVhcC5mdWxsQWN0aXZpdHlDYWxsYmFjaygpLT5tX3Rp
bWVyLmdldCgpID09IHRpbWVyKQotICAgICAgICBoZWFwVGltZXIgPSB2bS0+aGVhcC5mdWxsQWN0
aXZpdHlDYWxsYmFjaygpOwotICAgIGVsc2UgaWYgKHZtLT5oZWFwLmVkZW5BY3Rpdml0eUNhbGxi
YWNrKCkgJiYgdm0tPmhlYXAuZWRlbkFjdGl2aXR5Q2FsbGJhY2soKS0+bV90aW1lci5nZXQoKSA9
PSB0aW1lcikKLSAgICAgICAgaGVhcFRpbWVyID0gdm0tPmhlYXAuZWRlbkFjdGl2aXR5Q2FsbGJh
Y2soKTsKKyAgICBpZiAodm0tPmhlYXAuYWN0aXZpdHlDYWxsYmFjaygpICYmIHZtLT5oZWFwLmFj
dGl2aXR5Q2FsbGJhY2soKS0+bV90aW1lci5nZXQoKSA9PSB0aW1lcikKKyAgICAgICAgaGVhcFRp
bWVyID0gdm0tPmhlYXAuYWN0aXZpdHlDYWxsYmFjaygpOwogICAgIGVsc2UgaWYgKHZtLT5oZWFw
LnN3ZWVwZXIoKS0+bV90aW1lci5nZXQoKSA9PSB0aW1lcikKICAgICAgICAgaGVhcFRpbWVyID0g
dm0tPmhlYXAuc3dlZXBlcigpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggNGVh
ZGY0ZjZjMjVmMjFjOGQ0NGY4NjRhNTJlNmU1YjU4NTgwNmIzMS4uZDA5MWYxMzMwYTM5ZjQ5MDgy
N2IzOWMwOTEwODcyMDQ0MWNlZGM3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTU3NywxNCAr
NTc3LDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HQ0FuZFN3ZWVw
KEV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25G
dWxsR0MoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwot
ICAgIGV4ZWMtPmhlYXAoKS0+Y29sbGVjdChGdWxsQ29sbGVjdGlvbik7CisgICAgSGVhcCogaGVh
cCA9IGV4ZWMtPmhlYXAoKTsKKyAgICBoZWFwLT5zZXRTaG91bGREb0Z1bGxDb2xsZWN0aW9uKHRy
dWUpOworICAgIGV4ZWMtPmhlYXAoKS0+Y29sbGVjdCgpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25FZGVuR0MoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTTG9ja0hvbGRlciBsb2Nr
KGV4ZWMpOwotICAgIGV4ZWMtPmhlYXAoKS0+Y29sbGVjdChFZGVuQ29sbGVjdGlvbik7CisgICAg
SGVhcCogaGVhcCA9IGV4ZWMtPmhlYXAoKTsKKyAgICBoZWFwLT5zZXRTaG91bGREb0Z1bGxDb2xs
ZWN0aW9uKGZhbHNlKTsKKyAgICBoZWFwLT5jb2xsZWN0KCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5oCmluZGV4IDVmOGNhZjRiYmU1YjhkNDE2YTcyM2YxZjQ3ZWIzYjUzYjVlMzQwNjMu
Ljg5NzQ0NTU1MzM2YmU5YmE4ZDdlNjlkNTEyNTk2NTFjMTI0OTA1MTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKQEAgLTI0MiwxMCArMjQyLDYgQEAgdHlwZWRlZiBP
cHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICB2KGRvdWJsZSwgbWluQ29waWVkQmxvY2tVdGls
aXphdGlvbiwgMC45KSBcCiAgICAgdihkb3VibGUsIG1pbk1hcmtlZEJsb2NrVXRpbGl6YXRpb24s
IDAuOSkgXAogICAgIFwKLSAgICB2KGRvdWJsZSwgcGVyY2VudENQVVBlck1CRm9yRnVsbFRpbWVy
LCAwLjAwMDMxMjUpIFwKLSAgICB2KGRvdWJsZSwgcGVyY2VudENQVVBlck1CRm9yRWRlblRpbWVy
LCAwLjAwMjUpIFwKLSAgICB2KGRvdWJsZSwgY29sbGVjdGlvblRpbWVyTWF4UGVyY2VudENQVSwg
MC4wNSkgXAotICAgIFwKICAgICB2KGJvb2wsIGZvcmNlV2Vha1JhbmRvbVNlZWQsIGZhbHNlKSBc
CiAgICAgdih1bnNpZ25lZCwgZm9yY2VkV2Vha1JhbmRvbVNlZWQsIDApIFwKICAgICBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViU2FmZUdDQWN0aXZpdHlDYWxs
YmFja0lPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlNhZmVHQ0FjdGl2aXR5
Q2FsbGJhY2tJT1MuaAppbmRleCAyZTkyY2U0MTdjNDhhOTUzMWQ0OWRjYjI1YWJhODkyYTRjYzZj
YjBkLi5lNjYzNzdhMDMwYzBlZmM5ZTg4M2M5YmJjZjZhYjhhMzI1YTA3NWM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViU2FmZUdDQWN0aXZpdHlDYWxsYmFja0lP
Uy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJTYWZlR0NBY3Rpdml0eUNh
bGxiYWNrSU9TLmgKQEAgLTI3LDQyICsyNywyNiBAQAogI2RlZmluZSBXZWJTYWZlR0NBY3Rpdml0
eUNhbGxiYWNrSU9TX2gKIAogI2luY2x1ZGUgIldlYkNvcmVUaHJlYWQuaCIKLSNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmg+Ci0jaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0dDQWN0aXZpdHlDYWxsYmFjay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IFdlYlNhZmVGdWxsR0NBY3Rpdml0eUNhbGxiYWNrIGZpbmFsIDogcHVibGljIEpTQzo6RnVsbEdD
QWN0aXZpdHlDYWxsYmFjayB7CitjbGFzcyBXZWJTYWZlR0NBY3Rpdml0eUNhbGxiYWNrIGZpbmFs
IDogcHVibGljIEpTQzo6RGVmYXVsdEdDQWN0aXZpdHlDYWxsYmFjayB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NPd25QdHI8V2ViU2FmZUZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s+IGNyZWF0ZShK
U0M6OkhlYXAqIGhlYXApCisgICAgc3RhdGljIFBhc3NPd25QdHI8V2ViU2FmZUdDQWN0aXZpdHlD
YWxsYmFjaz4gY3JlYXRlKEpTQzo6SGVhcCogaGVhcCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgV2ViU2FmZUZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYlNhZmVHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkpOwog
ICAgIH0KIAotICAgIHZpcnR1YWwgfldlYlNhZmVGdWxsR0NBY3Rpdml0eUNhbGxiYWNrKCkgb3Zl
cnJpZGUgeyB9CisgICAgdmlydHVhbCB+V2ViU2FmZUdDQWN0aXZpdHlDYWxsYmFjaygpIG92ZXJy
aWRlIHsgfQogCiBwcml2YXRlOgotICAgIFdlYlNhZmVGdWxsR0NBY3Rpdml0eUNhbGxiYWNrKEpT
Qzo6SGVhcCogaGVhcCkKLSAgICAgICAgOiBKU0M6OkZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2soaGVh
cCwgV2ViVGhyZWFkUnVuTG9vcCgpKQorICAgIFdlYlNhZmVHQ0FjdGl2aXR5Q2FsbGJhY2soSlND
OjpIZWFwKiBoZWFwKQorICAgICAgICA6IEpTQzo6RGVmYXVsdEdDQWN0aXZpdHlDYWxsYmFjayho
ZWFwLCBXZWJUaHJlYWRSdW5Mb29wKCkpCiAgICAgewogICAgIH0KIH07CiAKLWNsYXNzIFdlYlNh
ZmVFZGVuR0NBY3Rpdml0eUNhbGxiYWNrIGZpbmFsIDogcHVibGljIEpTQzo6RWRlbkdDQWN0aXZp
dHlDYWxsYmFjayB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V2ViU2FmZUVkZW5H
Q0FjdGl2aXR5Q2FsbGJhY2s+IGNyZWF0ZShKU0M6OkhlYXAqIGhlYXApCi0gICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYlNhZmVFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKGhlYXAp
KTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5XZWJTYWZlRWRlbkdDQWN0aXZpdHlDYWxsYmFjaygp
IG92ZXJyaWRlIHsgfQotCi1wcml2YXRlOgotICAgIFdlYlNhZmVFZGVuR0NBY3Rpdml0eUNhbGxi
YWNrKEpTQzo6SGVhcCogaGVhcCkKLSAgICAgICAgOiBKU0M6OkVkZW5HQ0FjdGl2aXR5Q2FsbGJh
Y2soaGVhcCwgV2ViVGhyZWFkUnVuTG9vcCgpKQotICAgIHsKLSAgICB9Ci19OwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gV2ViU2FmZUdDQWN0aXZpdHlDYWxsYmFja0lPU19o
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>