<?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>188832</bug_id>
          
          <creation_ts>2018-08-21 18:21:54 -0700</creation_ts>
          <short_desc>REGRESSION(r235107): &quot;It revealed bugs in Blob code as well as regressed JS performance tests&quot; (Requested by saamyjoon on #webkit).</short_desc>
          <delta_ts>2018-08-21 18:27:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>188426</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>mark.lam</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1452472</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-21 18:21:54 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/235107 broke the build:
&quot;It revealed bugs in Blob code as well as regressed JS performance tests&quot; (Requested by saamyjoon 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>1452474</commentid>
    <comment_count>1</comment_count>
      <attachid>347749</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-21 18:22:11 -0700</bug_when>
    <thetext>Created attachment 347749
ROLLOUT of r235107

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>1452475</commentid>
    <comment_count>2</comment_count>
      <attachid>347749</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-21 18:24:58 -0700</bug_when>
    <thetext>Comment on attachment 347749
ROLLOUT of r235107

Clearing flags on attachment: 347749

Committed r235152: &lt;https://trac.webkit.org/changeset/235152&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452476</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-21 18:25:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452478</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-21 18:27:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/43587303&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347749</attachid>
            <date>2018-08-21 18:22:11 -0700</date>
            <delta_ts>2018-08-21 18:24:58 -0700</delta_ts>
            <desc>ROLLOUT of r235107</desc>
            <filename>bug-188832-20180821212210.patch</filename>
            <type>text/plain</type>
            <size>49810</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YTYxZDY3M2NkMzFjNjI3YmE3ZjJhMzU5MzhjYmQ3MDQwMDVlMmM3Li4zMTQ4MmJiZTc4Y2E5NDdk
NjlmY2I1OTA1YWMxMGI4NjRkNDkyNGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxOC0wOC0yMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzNTEwNy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODgzMgorCisgICAg
ICAgICJJdCByZXZlYWxlZCBidWdzIGluIEJsb2IgY29kZSBhcyB3ZWxsIGFzIHJlZ3Jlc3NlZCBK
UworICAgICAgICBwZXJmb3JtYW5jZSB0ZXN0cyIgKFJlcXVlc3RlZCBieSBzYWFteWpvb24gb24g
I3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJKU1J1
bkxvb3BUaW1lciBtYXkgcnVuIHBhcnQgb2YgYSBtZW1iZXIgZnVuY3Rpb24gYWZ0ZXIgaXQncwor
ICAgICAgICBkZXN0cm95ZWQiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODg0MjYKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzIzNTEwNworCiAyMDE4LTA4LTIxICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29t
PgogCiAgICAgICAgIEpTUnVuTG9vcFRpbWVyIG1heSBydW4gcGFydCBvZiBhIG1lbWJlciBmdW5j
dGlvbiBhZnRlciBpdCdzIGRlc3Ryb3llZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNjN2Q0NmQ3N2ZkOWY0NDUz
MTI5NWIyMDExNjUyNzQzNjZlYmZmNDUuLjYwMzY0NGM3YjBkODcwNjk2MWY0YzI5YmZiMTAwMDQy
YWYwNTJiNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOC0wOC0yMSAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjIzNTEwNy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4ODgzMgorCisgICAgICAgICJJdCByZXZlYWxlZCBidWdzIGluIEJsb2Ig
Y29kZSBhcyB3ZWxsIGFzIHJlZ3Jlc3NlZCBKUworICAgICAgICBwZXJmb3JtYW5jZSB0ZXN0cyIg
KFJlcXVlc3RlZCBieSBzYWFteWpvb24gb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQg
Y2hhbmdlc2V0OgorCisgICAgICAgICJKU1J1bkxvb3BUaW1lciBtYXkgcnVuIHBhcnQgb2YgYSBt
ZW1iZXIgZnVuY3Rpb24gYWZ0ZXIgaXQncworICAgICAgICBkZXN0cm95ZWQiCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg0MjYKKyAgICAgICAgaHR0
cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIzNTEwNworCiAyMDE4LTA4LTIxICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIFZpc2li
bGVQb3NpdGlvbiB0byBjYWxjdWxhdGUgc2VsZWN0aW9uIHJhbmdlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAppbmRleCAw
Y2E1MDE0ZmU2NGM0NzgwZDMzNDhhYzFlNWQ5M2JlMGQ1OTIyMDgzLi5iNmJkZTNkZDE3Zjg1ZDQw
YzI5N2NkMzZkNDc3MTA3ZWYwZmQ1YWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmNwcApAQCAtMzYsMjAgKzM2LDIxIEBA
IEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OkVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVh
cCkKIHsKIH0KIAotdm9pZCBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oVk0m
IHZtKQordm9pZCBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQogewotICAg
IHZtLmhlYXAuY29sbGVjdEFzeW5jKENvbGxlY3Rpb25TY29wZTo6RWRlbik7CisgICAgbV92bS0+
aGVhcC5jb2xsZWN0QXN5bmMoQ29sbGVjdGlvblNjb3BlOjpFZGVuKTsKIH0KIAotU2Vjb25kcyBF
ZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoSGVhcCYgaGVhcCkKK1NlY29uZHMg
RWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKIHsKLSAgICByZXR1cm4gaGVh
cC5sYXN0RWRlbkdDTGVuZ3RoKCk7CisgICAgcmV0dXJuIG1fdm0tPmhlYXAubGFzdEVkZW5HQ0xl
bmd0aCgpOwogfQogCi1kb3VibGUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6ZGVhdGhSYXRlKEhl
YXAmIGhlYXApCitkb3VibGUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6ZGVhdGhSYXRlKCkKIHsK
LSAgICBzaXplX3Qgc2l6ZUJlZm9yZSA9IGhlYXAuc2l6ZUJlZm9yZUxhc3RFZGVuQ29sbGVjdGlv
bigpOwotICAgIHNpemVfdCBzaXplQWZ0ZXIgPSBoZWFwLnNpemVBZnRlckxhc3RFZGVuQ29sbGVj
dGlvbigpOworICAgIEhlYXAqIGhlYXAgPSAmbV92bS0+aGVhcDsKKyAgICBzaXplX3Qgc2l6ZUJl
Zm9yZSA9IGhlYXAtPnNpemVCZWZvcmVMYXN0RWRlbkNvbGxlY3Rpb24oKTsKKyAgICBzaXplX3Qg
c2l6ZUFmdGVyID0gaGVhcC0+c2l6ZUFmdGVyTGFzdEVkZW5Db2xsZWN0aW9uKCk7CiAgICAgaWYg
KCFzaXplQmVmb3JlKQogICAgICAgICByZXR1cm4gMS4wOwogICAgIGlmIChzaXplQWZ0ZXIgPiBz
aXplQmVmb3JlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVu
R0NBY3Rpdml0eUNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrLmgKaW5kZXggNTJlMGEyOGZlM2M5MGNmOWYyZjgxODU3NzlhNzZmZjE5
MjUzNzVjYy4uODc0ODJiZGZiMzAxODZjMDE2YjFhNmE4NGNiYWVkOTkyNzA5ZmM5NiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2su
aApAQCAtMzMsMTIgKzMzLDEyIEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEVkZW5HQ0FjdGl2
aXR5Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rpdml0eUNhbGxiYWNrIHsKIHB1YmxpYzoKICAgICBF
ZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqKTsKIAotICAgIHZvaWQgZG9Db2xsZWN0aW9uKFZN
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkb0NvbGxlY3Rpb24oKSBvdmVycmlkZTsKIAogcHJvdGVj
dGVkOgotICAgIFNlY29uZHMgbGFzdEdDTGVuZ3RoKEhlYXAmKSBvdmVycmlkZTsKKyAgICBTZWNv
bmRzIGxhc3RHQ0xlbmd0aCgpIG92ZXJyaWRlOwogICAgIGRvdWJsZSBnY1RpbWVTbGljZShzaXpl
X3QgYnl0ZXMpIG92ZXJyaWRlOwotICAgIGRvdWJsZSBkZWF0aFJhdGUoSGVhcCYpIG92ZXJyaWRl
OworICAgIGRvdWJsZSBkZWF0aFJhdGUoKSBvdmVycmlkZTsKIH07CiAKIGlubGluZSBSZWZQdHI8
R0NBY3Rpdml0eUNhbGxiYWNrPiBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNyZWF0ZUVkZW5UaW1lcihI
ZWFwKiBoZWFwKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdD
QWN0aXZpdHlDYWxsYmFjay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NB
Y3Rpdml0eUNhbGxiYWNrLmNwcAppbmRleCBjOWVmN2ZlMTIyNGNjMzk0MmMyOWUyYmQ1NzhjOTdk
ZDNmN2NiODY2Li5kOTk4YTI5ZDUyNmI2ZjE3NTY4MzFiZmIzNzVkYzcyY2Y2MTNiYzc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNr
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxi
YWNrLmNwcApAQCAtMzksOSArMzksOSBAQCBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpGdWxsR0NB
Y3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCiB7CiB9CiAKLXZvaWQgRnVsbEdDQWN0aXZpdHlD
YWxsYmFjazo6ZG9Db2xsZWN0aW9uKFZNJiB2bSkKK3ZvaWQgRnVsbEdDQWN0aXZpdHlDYWxsYmFj
azo6ZG9Db2xsZWN0aW9uKCkKIHsKLSAgICBIZWFwJiBoZWFwID0gdm0uaGVhcDsKKyAgICBIZWFw
JiBoZWFwID0gbV92bS0+aGVhcDsKICAgICBtX2RpZEdDUmVjZW50bHkgPSBmYWxzZTsKIAogI2lm
ICFQTEFURk9STShJT1MpCkBAIC01NiwxNSArNTYsMTYgQEAgdm9pZCBGdWxsR0NBY3Rpdml0eUNh
bGxiYWNrOjpkb0NvbGxlY3Rpb24oVk0mIHZtKQogICAgIGhlYXAuY29sbGVjdEFzeW5jKENvbGxl
Y3Rpb25TY29wZTo6RnVsbCk7CiB9CiAKLVNlY29uZHMgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6
bGFzdEdDTGVuZ3RoKEhlYXAmIGhlYXApCitTZWNvbmRzIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6
Omxhc3RHQ0xlbmd0aCgpCiB7Ci0gICAgcmV0dXJuIGhlYXAubGFzdEZ1bGxHQ0xlbmd0aCgpOwor
ICAgIHJldHVybiBtX3ZtLT5oZWFwLmxhc3RGdWxsR0NMZW5ndGgoKTsKIH0KIAotZG91YmxlIEZ1
bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZShIZWFwJiBoZWFwKQorZG91YmxlIEZ1bGxH
Q0FjdGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZSgpCiB7Ci0gICAgc2l6ZV90IHNpemVCZWZvcmUg
PSBoZWFwLnNpemVCZWZvcmVMYXN0RnVsbENvbGxlY3Rpb24oKTsKLSAgICBzaXplX3Qgc2l6ZUFm
dGVyID0gaGVhcC5zaXplQWZ0ZXJMYXN0RnVsbENvbGxlY3Rpb24oKTsKKyAgICBIZWFwKiBoZWFw
ID0gJm1fdm0tPmhlYXA7CisgICAgc2l6ZV90IHNpemVCZWZvcmUgPSBoZWFwLT5zaXplQmVmb3Jl
TGFzdEZ1bGxDb2xsZWN0aW9uKCk7CisgICAgc2l6ZV90IHNpemVBZnRlciA9IGhlYXAtPnNpemVB
ZnRlckxhc3RGdWxsQ29sbGVjdGlvbigpOwogICAgIGlmICghc2l6ZUJlZm9yZSkKICAgICAgICAg
cmV0dXJuIDEuMDsKICAgICBpZiAoc2l6ZUFmdGVyID4gc2l6ZUJlZm9yZSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oCmluZGV4
IDVjZTAzNGEwY2Q4MWY1NWQyOThmMTI4OTgyNmRlNmY4YmVmNjJiYmEuLmRhODljN2QzNzc4YzRm
YjBkODAxZmY5YjdlNDBlMDFkNDUyYjA3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgKQEAgLTMzLDE1ICszMywxNSBAQCBj
bGFzcyBKU19FWFBPUlRfUFJJVkFURSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrIDogcHVibGljIEdD
QWN0aXZpdHlDYWxsYmFjayB7CiBwdWJsaWM6CiAgICAgRnVsbEdDQWN0aXZpdHlDYWxsYmFjayhI
ZWFwKik7CiAKLSAgICB2b2lkIGRvQ29sbGVjdGlvbihWTSYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZG9Db2xsZWN0aW9uKCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGRpZEdDUmVjZW50bHkoKSBjb25z
dCB7IHJldHVybiBtX2RpZEdDUmVjZW50bHk7IH0KICAgICB2b2lkIHNldERpZEdDUmVjZW50bHko
KSB7IG1fZGlkR0NSZWNlbnRseSA9IHRydWU7IH0KIAogcHJvdGVjdGVkOgotICAgIFNlY29uZHMg
bGFzdEdDTGVuZ3RoKEhlYXAmKSBvdmVycmlkZTsKKyAgICBTZWNvbmRzIGxhc3RHQ0xlbmd0aCgp
IG92ZXJyaWRlOwogICAgIGRvdWJsZSBnY1RpbWVTbGljZShzaXplX3QgYnl0ZXMpIG92ZXJyaWRl
OwotICAgIGRvdWJsZSBkZWF0aFJhdGUoSGVhcCYpIG92ZXJyaWRlOworICAgIGRvdWJsZSBkZWF0
aFJhdGUoKSBvdmVycmlkZTsKIAogICAgIGJvb2wgbV9kaWRHQ1JlY2VudGx5IHsgZmFsc2UgfTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2Fs
bGJhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNr
LmNwcAppbmRleCBlNWE3ODAyN2EyMGRiYTlhYzhjNzhmNzIzNTRmYzY3MjFiNzM3YWNlLi4wMDdm
ZGQ4MTMzODcxY2NjZjM1YmFiNjJjZjdkNTVlZDgzYmRhOWMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw1MiArNDUs
ODMgQEAgR0NBY3Rpdml0eUNhbGxiYWNrOjpHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkK
IHsKIH0KIAotdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvV29yayhWTSYgdm0pCit2b2lkIEdD
QWN0aXZpdHlDYWxsYmFjazo6ZG9Xb3JrKCkKIHsKKyAgICBIZWFwKiBoZWFwID0gJm1fdm0tPmhl
YXA7CiAgICAgaWYgKCFpc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIEFT
U0VSVCh2bS5jdXJyZW50VGhyZWFkSXNIb2xkaW5nQVBJTG9jaygpKTsKLSAgICBIZWFwJiBoZWFw
ID0gdm0uaGVhcDsKLSAgICBpZiAoaGVhcC5pc0RlZmVycmVkKCkpIHsKKyAgICBKU0xvY2tIb2xk
ZXIgbG9ja2VyKG1fdm0pOworICAgIGlmIChoZWFwLT5pc0RlZmVycmVkKCkpIHsKICAgICAgICAg
c2NoZWR1bGVUaW1lcigwX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZG9Db2xs
ZWN0aW9uKHZtKTsKKyAgICBkb0NvbGxlY3Rpb24oKTsKIH0KIAorI2lmIFVTRShDRikKIHZvaWQg
R0NBY3Rpdml0eUNhbGxiYWNrOjpzY2hlZHVsZVRpbWVyKFNlY29uZHMgbmV3RGVsYXkpCiB7CiAg
ICAgaWYgKG5ld0RlbGF5ICogdGltZXJTbG9wID4gbV9kZWxheSkKICAgICAgICAgcmV0dXJuOwog
ICAgIFNlY29uZHMgZGVsdGEgPSBtX2RlbGF5IC0gbmV3RGVsYXk7CiAgICAgbV9kZWxheSA9IG5l
d0RlbGF5OwotICAgIGlmIChhdXRvIHRpbWVVbnRpbEZpcmUgPSB0aGlzLT50aW1lVW50aWxGaXJl
KCkpCi0gICAgICAgIHNldFRpbWVVbnRpbEZpcmUoKnRpbWVVbnRpbEZpcmUgLSBkZWx0YSk7Ci0g
ICAgZWxzZQotICAgICAgICBzZXRUaW1lVW50aWxGaXJlKGRlbHRhKTsKKyAgICBDRlJ1bkxvb3BU
aW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRlJ1bkxvb3BUaW1lckdldE5leHRG
aXJlRGF0ZShtX3RpbWVyLmdldCgpKSAtIGRlbHRhLnNlY29uZHMoKSk7CiB9CiAKLXZvaWQgR0NB
Y3Rpdml0eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZShIZWFwJiBoZWFwLCBzaXplX3QgYnl0ZXMpCit2
b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6Y2FuY2VsVGltZXIoKQoreworICAgIG1fZGVsYXkgPSBz
X2RlY2FkZTsKKyAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgp
LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlLnNlY29uZHMoKSk7Cit9CisK
K01vbm90b25pY1RpbWUgR0NBY3Rpdml0eUNhbGxiYWNrOjpuZXh0RmlyZVRpbWUoKQoreworICAg
IHJldHVybiBNb25vdG9uaWNUaW1lOjpub3coKSArIFNlY29uZHMoQ0ZSdW5Mb29wVGltZXJHZXRO
ZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSkgLSBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSk7
Cit9CisjZWxzZQordm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OnNjaGVkdWxlVGltZXIoU2Vjb25k
cyBuZXdEZWxheSkKK3sKKyAgICBpZiAobmV3RGVsYXkgKiB0aW1lclNsb3AgPiBtX2RlbGF5KQor
ICAgICAgICByZXR1cm47CisgICAgU2Vjb25kcyBkZWx0YSA9IG1fZGVsYXkgLSBuZXdEZWxheTsK
KyAgICBtX2RlbGF5ID0gbmV3RGVsYXk7CisKKyAgICBTZWNvbmRzIHNlY29uZHNVbnRpbEZpcmUg
PSBtX3RpbWVyLnNlY29uZHNVbnRpbEZpcmUoKTsKKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChz
dGQ6Om1heDxTZWNvbmRzPihzZWNvbmRzVW50aWxGaXJlIC0gZGVsdGEsIDBfcykpOworfQorCit2
b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6Y2FuY2VsVGltZXIoKQoreworICAgIG1fZGVsYXkgPSBz
X2RlY2FkZTsKKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChzX2RlY2FkZSk7Cit9CisKK01vbm90
b25pY1RpbWUgR0NBY3Rpdml0eUNhbGxiYWNrOjpuZXh0RmlyZVRpbWUoKQoreworICAgIHJldHVy
biBNb25vdG9uaWNUaW1lOjpub3coKSArIG1fdGltZXIuc2Vjb25kc1VudGlsRmlyZSgpOworfQor
I2VuZGlmCisKK3ZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZShzaXplX3QgYnl0
ZXMpCiB7CiAgICAgLy8gVGhlIGZpcnN0IGJ5dGUgYWxsb2NhdGVkIGluIGFuIGFsbG9jYXRpb24g
Y3ljbGUgd2lsbCByZXBvcnQgMCBieXRlcyB0byBkaWRBbGxvY2F0ZS4gCiAgICAgLy8gV2UgcHJl
dGVuZCBpdCdzIG9uZSBieXRlIHNvIHRoYXQgd2UgZG9uJ3QgaWdub3JlIHRoaXMgYWxsb2NhdGlv
biBlbnRpcmVseS4KICAgICBpZiAoIWJ5dGVzKQogICAgICAgICBieXRlcyA9IDE7Ci0gICAgZG91
YmxlIGJ5dGVzRXhwZWN0ZWRUb1JlY2xhaW0gPSBzdGF0aWNfY2FzdDxkb3VibGU+KGJ5dGVzKSAq
IGRlYXRoUmF0ZShoZWFwKTsKLSAgICBTZWNvbmRzIG5ld0RlbGF5ID0gbGFzdEdDTGVuZ3RoKGhl
YXApIC8gZ2NUaW1lU2xpY2UoYnl0ZXNFeHBlY3RlZFRvUmVjbGFpbSk7CisgICAgZG91YmxlIGJ5
dGVzRXhwZWN0ZWRUb1JlY2xhaW0gPSBzdGF0aWNfY2FzdDxkb3VibGU+KGJ5dGVzKSAqIGRlYXRo
UmF0ZSgpOworICAgIFNlY29uZHMgbmV3RGVsYXkgPSBsYXN0R0NMZW5ndGgoKSAvIGdjVGltZVNs
aWNlKGJ5dGVzRXhwZWN0ZWRUb1JlY2xhaW0pOwogICAgIHNjaGVkdWxlVGltZXIobmV3RGVsYXkp
OwogfQogCiB2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6d2lsbENvbGxlY3QoKQogewotICAgIGNh
bmNlbCgpOworICAgIGNhbmNlbFRpbWVyKCk7CiB9CiAKIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNr
OjpjYW5jZWwoKQogewotICAgIG1fZGVsYXkgPSBzX2RlY2FkZTsKICAgICBjYW5jZWxUaW1lcigp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5
Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFj
ay5oCmluZGV4IDlkZmRkMGY3MDA3ZDIxM2I0ZmI5NTQ0OWIxNmVmZWRkOGU0YzNhMzYuLjRiNDA2
NzYxMGMxOTNlNTJlZTFlYmFiNzE0MjcyNWQzNjc0YTQ1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC00OCwyMiArNDgsMjQgQEAg
cHVibGljOgogCiAgICAgR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqKTsKIAotICAgIHZvaWQgZG9X
b3JrKFZNJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkb1dvcmsoKSBvdmVycmlkZTsKIAotICAgIHZp
cnR1YWwgdm9pZCBkb0NvbGxlY3Rpb24oVk0mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRvQ29s
bGVjdGlvbigpID0gMDsKIAotICAgIHZvaWQgZGlkQWxsb2NhdGUoSGVhcCYsIHNpemVfdCk7Ci0g
ICAgdm9pZCB3aWxsQ29sbGVjdCgpOwotICAgIHZvaWQgY2FuY2VsKCk7CisgICAgdmlydHVhbCB2
b2lkIGRpZEFsbG9jYXRlKHNpemVfdCk7CisgICAgdmlydHVhbCB2b2lkIHdpbGxDb2xsZWN0KCk7
CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpOwogICAgIGJvb2wgaXNFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgdm9pZCBzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkg
eyBtX2VuYWJsZWQgPSBlbmFibGVkOyB9CiAKICAgICBzdGF0aWMgYm9vbCBzX3Nob3VsZENyZWF0
ZUdDVGltZXI7CiAKKyAgICBNb25vdG9uaWNUaW1lIG5leHRGaXJlVGltZSgpOworCiBwcm90ZWN0
ZWQ6Ci0gICAgdmlydHVhbCBTZWNvbmRzIGxhc3RHQ0xlbmd0aChIZWFwJikgPSAwOworICAgIHZp
cnR1YWwgU2Vjb25kcyBsYXN0R0NMZW5ndGgoKSA9IDA7CiAgICAgdmlydHVhbCBkb3VibGUgZ2NU
aW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKSA9IDA7Ci0gICAgdmlydHVhbCBkb3VibGUgZGVhdGhSYXRl
KEhlYXAmKSA9IDA7CisgICAgdmlydHVhbCBkb3VibGUgZGVhdGhSYXRlKCkgPSAwOwogCiAgICAg
R0NBY3Rpdml0eUNhbGxiYWNrKFZNKiB2bSkKICAgICAgICAgOiBCYXNlKHZtKQpAQCAtNzUsNiAr
NzcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2VuYWJsZWQ7CiAKIHByb3RlY3RlZDoKKyAg
ICB2b2lkIGNhbmNlbFRpbWVyKCk7CiAgICAgdm9pZCBzY2hlZHVsZVRpbWVyKFNlY29uZHMpOwog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCBmODRmN2U2NDQ0
MmI2NDU0YzZmYmE0ZWYyMmM5NWYwMTBiOGY2MTMwLi5jNzgyZmNiYjcwNTFkYmQ2NWIxM2RlZGZh
NTI2NjI2YjY3YzczYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtNTM5
LDcgKzUzOSw3IEBAIHZvaWQgSGVhcDo6cmVwb3J0QWJhbmRvbmVkT2JqZWN0R3JhcGgoKQogICAg
IC8vIGJlIG1vcmUgcHJvZml0YWJsZS4gU2luY2UgYWxsb2NhdGlvbiBpcyB0aGUgdHJpZ2dlciBm
b3IgY29sbGVjdGlvbiwgCiAgICAgLy8gd2UgaGFzdGVuIHRoZSBuZXh0IGNvbGxlY3Rpb24gYnkg
cHJldGVuZGluZyB0aGF0IHdlJ3ZlIGFsbG9jYXRlZCBtb3JlIG1lbW9yeS4gCiAgICAgaWYgKG1f
ZnVsbEFjdGl2aXR5Q2FsbGJhY2spIHsKLSAgICAgICAgbV9mdWxsQWN0aXZpdHlDYWxsYmFjay0+
ZGlkQWxsb2NhdGUoKnRoaXMsCisgICAgICAgIG1fZnVsbEFjdGl2aXR5Q2FsbGJhY2stPmRpZEFs
bG9jYXRlKAogICAgICAgICAgICAgbV9zaXplQWZ0ZXJMYXN0Q29sbGVjdCAtIG1fc2l6ZUFmdGVy
TGFzdEZ1bGxDb2xsZWN0ICsgbV9ieXRlc0FsbG9jYXRlZFRoaXNDeWNsZSArIG1fYnl0ZXNBYmFu
ZG9uZWRTaW5jZUxhc3RGdWxsQ29sbGVjdCk7CiAgICAgfQogICAgIG1fYnl0ZXNBYmFuZG9uZWRT
aW5jZUxhc3RGdWxsQ29sbGVjdCArPSBhYmFuZG9uZWRCeXRlczsKQEAgLTIxOTQsNyArMjE5NCw3
IEBAIHZvaWQgSGVhcDo6bm90aWZ5SW5jcmVtZW50YWxTd2VlcGVyKCkKICAgICAgICAgICAgIG1f
aW5kZXhPZk5leHRMb2dpY2FsbHlFbXB0eVdlYWtCbG9ja1RvU3dlZXAgPSAwOwogICAgIH0KIAot
ICAgIG1fc3dlZXBlci0+c3RhcnRTd2VlcGluZygqdGhpcyk7CisgICAgbV9zd2VlcGVyLT5zdGFy
dFN3ZWVwaW5nKCk7CiB9CiAKIHZvaWQgSGVhcDo6dXBkYXRlQWxsb2NhdGlvbkxpbWl0cygpCkBA
IC0yMjczLDcgKzIyNzMsNyBAQCB2b2lkIEhlYXA6OnVwZGF0ZUFsbG9jYXRpb25MaW1pdHMoKQog
ICAgICAgICAgICAgZGF0YUxvZygiRWRlbjogbWF4RWRlblNpemUgPSAiLCBtX21heEVkZW5TaXpl
LCAiXG4iKTsKICAgICAgICAgaWYgKG1fZnVsbEFjdGl2aXR5Q2FsbGJhY2spIHsKICAgICAgICAg
ICAgIEFTU0VSVChjdXJyZW50SGVhcFNpemUgPj0gbV9zaXplQWZ0ZXJMYXN0RnVsbENvbGxlY3Qp
OwotICAgICAgICAgICAgbV9mdWxsQWN0aXZpdHlDYWxsYmFjay0+ZGlkQWxsb2NhdGUoKnRoaXMs
IGN1cnJlbnRIZWFwU2l6ZSAtIG1fc2l6ZUFmdGVyTGFzdEZ1bGxDb2xsZWN0KTsKKyAgICAgICAg
ICAgIG1fZnVsbEFjdGl2aXR5Q2FsbGJhY2stPmRpZEFsbG9jYXRlKGN1cnJlbnRIZWFwU2l6ZSAt
IG1fc2l6ZUFmdGVyTGFzdEZ1bGxDb2xsZWN0KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMjM1
NCw3ICsyMzU0LDcgQEAgdm9pZCBIZWFwOjpzZXRHYXJiYWdlQ29sbGVjdGlvblRpbWVyRW5hYmxl
ZChib29sIGVuYWJsZSkKIHZvaWQgSGVhcDo6ZGlkQWxsb2NhdGUoc2l6ZV90IGJ5dGVzKQogewog
ICAgIGlmIChtX2VkZW5BY3Rpdml0eUNhbGxiYWNrKQotICAgICAgICBtX2VkZW5BY3Rpdml0eUNh
bGxiYWNrLT5kaWRBbGxvY2F0ZSgqdGhpcywgbV9ieXRlc0FsbG9jYXRlZFRoaXNDeWNsZSArIG1f
Ynl0ZXNBYmFuZG9uZWRTaW5jZUxhc3RGdWxsQ29sbGVjdCk7CisgICAgICAgIG1fZWRlbkFjdGl2
aXR5Q2FsbGJhY2stPmRpZEFsbG9jYXRlKG1fYnl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGUgKyBtX2J5
dGVzQWJhbmRvbmVkU2luY2VMYXN0RnVsbENvbGxlY3QpOwogICAgIG1fYnl0ZXNBbGxvY2F0ZWRU
aGlzQ3ljbGUgKz0gYnl0ZXM7CiAgICAgcGVyZm9ybUluY3JlbWVudChieXRlcyk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcAppbmRl
eCAyMmQ4MzkzNzI2ZjJiNTAwNTJjOGRlNzk2MDViYjg2YWUwNzgyN2FkLi5lNWU0OWRkOGVhNDk1
ODAzYWZkYThkMWFhYWUyMDc4ZTRkYzljYzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEyLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsMTMgKzM0LDEzIEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgY29uc3QgU2Vjb25kcyBzd2VlcFRpbWVTbGljZSA9
IDEwX21zOworc3RhdGljIGNvbnN0IFNlY29uZHMgc3dlZXBUaW1lU2xpY2UgPSAxMF9tczsgLy8g
c2Vjb25kcwogc3RhdGljIGNvbnN0IGRvdWJsZSBzd2VlcFRpbWVUb3RhbCA9IC4xMDsKIHN0YXRp
YyBjb25zdCBkb3VibGUgc3dlZXBUaW1lTXVsdGlwbGllciA9IDEuMCAvIHN3ZWVwVGltZVRvdGFs
OwogCiB2b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6c2NoZWR1bGVUaW1lcigpCiB7Ci0gICAgc2V0
VGltZVVudGlsRmlyZShzd2VlcFRpbWVTbGljZSAqIHN3ZWVwVGltZU11bHRpcGxpZXIpOworICAg
IEJhc2U6OnNjaGVkdWxlVGltZXIoc3dlZXBUaW1lU2xpY2UgKiBzd2VlcFRpbWVNdWx0aXBsaWVy
KTsKIH0KIAogSW5jcmVtZW50YWxTd2VlcGVyOjpJbmNyZW1lbnRhbFN3ZWVwZXIoSGVhcCogaGVh
cCkKQEAgLTQ5LDE0ICs0OSwxNCBAQCBJbmNyZW1lbnRhbFN3ZWVwZXI6OkluY3JlbWVudGFsU3dl
ZXBlcihIZWFwKiBoZWFwKQogewogfQogCi12b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6ZG9Xb3Jr
KFZNJiB2bSkKK3ZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpkb1dvcmsoKQogewotICAgIGRvU3dl
ZXAodm0sIE1vbm90b25pY1RpbWU6Om5vdygpKTsKKyAgICBkb1N3ZWVwKE1vbm90b25pY1RpbWU6
Om5vdygpKTsKIH0KIAotdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmRvU3dlZXAoVk0mIHZtLCBN
b25vdG9uaWNUaW1lIHN3ZWVwQmVnaW5UaW1lKQordm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmRv
U3dlZXAoTW9ub3RvbmljVGltZSBzd2VlcEJlZ2luVGltZSkKIHsKLSAgICB3aGlsZSAoc3dlZXBO
ZXh0QmxvY2sodm0pKSB7CisgICAgd2hpbGUgKHN3ZWVwTmV4dEJsb2NrKCkpIHsKICAgICAgICAg
U2Vjb25kcyBlbGFwc2VkVGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3dlZXBCZWdpblRp
bWU7CiAgICAgICAgIGlmIChlbGFwc2VkVGltZSA8IHN3ZWVwVGltZVNsaWNlKQogICAgICAgICAg
ICAgY29udGludWU7CkBAIC03Miw5ICs3Miw5IEBAIHZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpk
b1N3ZWVwKFZNJiB2bSwgTW9ub3RvbmljVGltZSBzd2VlcEJlZ2luVGltZSkKICAgICBjYW5jZWxU
aW1lcigpOwogfQogCi1ib29sIEluY3JlbWVudGFsU3dlZXBlcjo6c3dlZXBOZXh0QmxvY2soVk0m
IHZtKQorYm9vbCBJbmNyZW1lbnRhbFN3ZWVwZXI6OnN3ZWVwTmV4dEJsb2NrKCkKIHsKLSAgICB2
bS5oZWFwLnN0b3BJZk5lY2Vzc2FyeSgpOworICAgIG1fdm0tPmhlYXAuc3RvcElmTmVjZXNzYXJ5
KCk7CiAKICAgICBNYXJrZWRCbG9jazo6SGFuZGxlKiBibG9jayA9IG51bGxwdHI7CiAgICAgCkBA
IC04NSwyNSArODUsMjYgQEAgYm9vbCBJbmNyZW1lbnRhbFN3ZWVwZXI6OnN3ZWVwTmV4dEJsb2Nr
KFZNJiB2bSkKICAgICB9CiAgICAgCiAgICAgaWYgKGJsb2NrKSB7Ci0gICAgICAgIERlZmVyR0NG
b3JBV2hpbGUgZGVmZXJHQyh2bS5oZWFwKTsKKyAgICAgICAgRGVmZXJHQ0ZvckFXaGlsZSBkZWZl
ckdDKG1fdm0tPmhlYXApOwogICAgICAgICBibG9jay0+c3dlZXAobnVsbHB0cik7Ci0gICAgICAg
IHZtLmhlYXAub2JqZWN0U3BhY2UoKS5mcmVlT3JTaHJpbmtCbG9jayhibG9jayk7CisgICAgICAg
IG1fdm0tPmhlYXAub2JqZWN0U3BhY2UoKS5mcmVlT3JTaHJpbmtCbG9jayhibG9jayk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiB2bS5oZWFwLnN3ZWVwTmV4dExv
Z2ljYWxseUVtcHR5V2Vha0Jsb2NrKCk7CisgICAgcmV0dXJuIG1fdm0tPmhlYXAuc3dlZXBOZXh0
TG9naWNhbGx5RW1wdHlXZWFrQmxvY2soKTsKIH0KIAotdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6
OnN0YXJ0U3dlZXBpbmcoSGVhcCYgaGVhcCkKK3ZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpzdGFy
dFN3ZWVwaW5nKCkKIHsKICAgICBzY2hlZHVsZVRpbWVyKCk7Ci0gICAgbV9jdXJyZW50RGlyZWN0
b3J5ID0gaGVhcC5vYmplY3RTcGFjZSgpLmZpcnN0RGlyZWN0b3J5KCk7CisgICAgbV9jdXJyZW50
RGlyZWN0b3J5ID0gbV92bS0+aGVhcC5vYmplY3RTcGFjZSgpLmZpcnN0RGlyZWN0b3J5KCk7CiB9
CiAKIHZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpzdG9wU3dlZXBpbmcoKQogewogICAgIG1fY3Vy
cmVudERpcmVjdG9yeSA9IG51bGxwdHI7Ci0gICAgY2FuY2VsVGltZXIoKTsKKyAgICBpZiAobV92
bSkKKyAgICAgICAgY2FuY2VsVGltZXIoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCmluZGV4IDEy
NjQ2ZGViYjBiZjI3NjZhMzA1NzEzNjMzNGJmNGQ0MjdiNGZlMDkuLmFiZDhlNjlmNjkwMThkZGY0
NmFhMzhmMDM1Njk2MjIyZDgxYjUyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCkBAIC0zNywxNSArMzcsMTUgQEAgcHVibGljOgogICAg
IHVzaW5nIEJhc2UgPSBKU1J1bkxvb3BUaW1lcjsKICAgICBKU19FWFBPUlRfUFJJVkFURSBleHBs
aWNpdCBJbmNyZW1lbnRhbFN3ZWVwZXIoSGVhcCopOwogCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUg
dm9pZCBzdGFydFN3ZWVwaW5nKEhlYXAmKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHN0
YXJ0U3dlZXBpbmcoKTsKICAgICB2b2lkIGZyZWVGYXN0TWFsbG9jTWVtb3J5QWZ0ZXJTd2VlcGlu
ZygpIHsgbV9zaG91bGRGcmVlRmFzdE1hbGxvY01lbW9yeUFmdGVyU3dlZXBpbmcgPSB0cnVlOyB9
CiAKLSAgICB2b2lkIGRvV29yayhWTSYpIG92ZXJyaWRlOwotICAgIHZvaWQgc3RvcFN3ZWVwaW5n
KCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBkb1dvcmsoKSBvdmVycmlkZTsKKyAgICBi
b29sIHN3ZWVwTmV4dEJsb2NrKCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdG9wU3dl
ZXBpbmcoKTsKIAogcHJpdmF0ZToKLSAgICBib29sIHN3ZWVwTmV4dEJsb2NrKFZNJik7Ci0gICAg
dm9pZCBkb1N3ZWVwKFZNJiwgTW9ub3RvbmljVGltZSBzdGFydFRpbWUpOworICAgIHZvaWQgZG9T
d2VlcChNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSk7CiAgICAgdm9pZCBzY2hlZHVsZVRpbWVyKCk7
CiAgICAgCiAgICAgQmxvY2tEaXJlY3RvcnkqIG1fY3VycmVudERpcmVjdG9yeTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcAppbmRl
eCA0NTBkOGQ4ODU1MzQ1ZmU5MDY3MzFmZTRhYTdiZTYxYTAxNzUxYmE4Li42MjM5NjEwOTQ0N2Y2
NGNkNmVkZmNmMmE4ZjlkOWE2MzVjZGIxM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlUaW1lci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5VGltZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDExICszNSwxMSBAQCBTdG9w
SWZOZWNlc3NhcnlUaW1lcjo6U3RvcElmTmVjZXNzYXJ5VGltZXIoVk0qIHZtKQogewogfQogCi12
b2lkIFN0b3BJZk5lY2Vzc2FyeVRpbWVyOjpkb1dvcmsoVk0mIHZtKQordm9pZCBTdG9wSWZOZWNl
c3NhcnlUaW1lcjo6ZG9Xb3JrKCkKIHsKICAgICBjYW5jZWxUaW1lcigpOwogICAgIFdURjo6c3Rv
cmVTdG9yZUZlbmNlKCk7Ci0gICAgdm0uaGVhcC5zdG9wSWZOZWNlc3NhcnkoKTsKKyAgICBtX3Zt
LT5oZWFwLnN0b3BJZk5lY2Vzc2FyeSgpOwogfQogCiB2b2lkIFN0b3BJZk5lY2Vzc2FyeVRpbWVy
OjpzY2hlZHVsZVNvb24oKQpAQCAtNDgsNyArNDgsNyBAQCB2b2lkIFN0b3BJZk5lY2Vzc2FyeVRp
bWVyOjpzY2hlZHVsZVNvb24oKQogICAgICAgICBXVEY6OmxvYWRMb2FkRmVuY2UoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KLSAgICBzZXRUaW1lVW50aWxGaXJlKDBfcyk7CisgICAgc2NoZWR1
bGVUaW1lcigwX3MpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlUaW1lci5oCmluZGV4IDFmMTMzNzMwYThl
MmQzZmU0YTg1ZTMyODJmMGU0M2I1ZWNjZDYzYzIuLmUxODM2YTE0YzhlZDUyYTI1OGY0NjIwNzIz
NWIwNTRiOWNhMmFlYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0
b3BJZk5lY2Vzc2FyeVRpbWVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3Rv
cElmTmVjZXNzYXJ5VGltZXIuaApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcg
QmFzZSA9IEpTUnVuTG9vcFRpbWVyOwogICAgIGV4cGxpY2l0IFN0b3BJZk5lY2Vzc2FyeVRpbWVy
KFZNKik7CiAgICAgCi0gICAgdm9pZCBkb1dvcmsoVk0mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRv
V29yaygpIG92ZXJyaWRlOwogICAgIAogICAgIHZvaWQgc2NoZWR1bGVTb29uKCk7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuY3BwCmluZGV4
IGE1NmU0NjJkNGJiZGVlMDEyMjI0ZWM1OTc2YmZiZDAyYTVjYzVhMTEuLjg5ZWRiNjgxMzkwMGYz
NmU3MDIwMTFjZGYwYjcwOTI4ZTk4M2M1YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxMyArMjYsMTMgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1J1bkxvb3BUaW1lci5oIgogCisjaW5jbHVkZSAi
R0NBY3Rpdml0eUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiSW5jcmVtZW50YWxTd2VlcGVyLmgiCiAj
aW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAi
SlNTdHJpbmcuaCIKIAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3Rm
L05vVGFpbENhbGxzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiAjaWYgVVNFKEdM
SUJfRVZFTlRfTE9PUCkKQEAgLTQ2LDI4OCArNDYsMTA3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBj
b25zdCBTZWNvbmRzIEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSB7IDYwICogNjAgKiAyNCAqIDM2
NSAqIDEwIH07CiAKLXN0YXRpYyBpbmxpbmUgSlNSdW5Mb29wVGltZXI6Ok1hbmFnZXI6OkVwb2No
VGltZSBlcG9jaFRpbWUoU2Vjb25kcyBkZWxheSkKLXsKLSNpZiBVU0UoQ0YpCi0gICAgcmV0dXJu
IFNlY29uZHMgeyBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIGRlbGF5LnZhbHVlKCkgfTsK
LSNlbHNlCi0gICAgcmV0dXJuIE1vbm90b25pY1RpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2No
KCkgKyBkZWxheTsKLSNlbmRpZgotfQotCi0jaWYgVVNFKENGKQotdm9pZCBKU1J1bkxvb3BUaW1l
cjo6TWFuYWdlcjo6dGltZXJEaWRGaXJlQ2FsbGJhY2soQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQq
IGNvbnRleHRQdHIpCi17Ci0gICAgc3RhdGljX2Nhc3Q8SlNSdW5Mb29wVGltZXI6Ok1hbmFnZXIq
Pihjb250ZXh0UHRyKS0+dGltZXJEaWRGaXJlKCk7Ci19Ci0KLXZvaWQgSlNSdW5Mb29wVGltZXI6
Ok1hbmFnZXI6OlBlclZNRGF0YTo6c2V0UnVuTG9vcChNYW5hZ2VyKiBtYW5hZ2VyLCBDRlJ1bkxv
b3BSZWYgbmV3UnVuTG9vcCkKK3ZvaWQgSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZSgpCiB7
Ci0gICAgaWYgKHJ1bkxvb3ApIHsKLSAgICAgICAgQ0ZSdW5Mb29wUmVtb3ZlVGltZXIocnVuTG9v
cC5nZXQoKSwgdGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci0gICAgICAgIENG
UnVuTG9vcFRpbWVySW52YWxpZGF0ZSh0aW1lci5nZXQoKSk7Ci0gICAgICAgIHJ1bkxvb3AuY2xl
YXIoKTsKLSAgICAgICAgdGltZXIuY2xlYXIoKTsKKyAgICBKU0xvY2sqIGFwaUxvY2sgPSBtX2Fw
aUxvY2suZ2V0KCk7CisgICAgaWYgKCFhcGlMb2NrKSB7CisgICAgICAgIC8vIExpa2VseSBhIGJ1
Z2d5IHVzYWdlOiB0aGUgdGltZXIgZmlyZWQgd2hpbGUgSlNSdW5Mb29wVGltZXIgd2FzIGJlaW5n
IGRlc3Ryb3llZC4KKyAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChuZXdSdW5Mb29w
KSB7Ci0gICAgICAgIHJ1bkxvb3AgPSBuZXdSdW5Mb29wOwotICAgICAgICBtZW1zZXQoJmNvbnRl
eHQsIDAsIHNpemVvZihDRlJ1bkxvb3BUaW1lckNvbnRleHQpKTsKLSAgICAgICAgUkVMRUFTRV9B
U1NFUlQobWFuYWdlcik7Ci0gICAgICAgIGNvbnRleHQuaW5mbyA9IG1hbmFnZXI7Ci0gICAgICAg
IHRpbWVyID0gYWRvcHRDRihDRlJ1bkxvb3BUaW1lckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlLnNlY29uZHMoKSwgQ0ZBYnNv
bHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBzX2RlY2FkZS5zZWNvbmRzKCksIDAsIDAsIEpTUnVuTG9v
cFRpbWVyOjpNYW5hZ2VyOjp0aW1lckRpZEZpcmVDYWxsYmFjaywgJmNvbnRleHQpKTsKLSAgICAg
ICAgQ0ZSdW5Mb29wQWRkVGltZXIocnVuTG9vcC5nZXQoKSwgdGltZXIuZ2V0KCksIGtDRlJ1bkxv
b3BDb21tb25Nb2Rlcyk7Ci0KLSAgICAgICAgRXBvY2hUaW1lIHNjaGVkdWxlVGltZSA9IGVwb2No
VGltZShzX2RlY2FkZSk7Ci0gICAgICAgIGZvciAoYXV0byYgcGFpciA6IHRpbWVycykKLSAgICAg
ICAgICAgIHNjaGVkdWxlVGltZSA9IHN0ZDo6bWluKHBhaXIuc2Vjb25kLCBzY2hlZHVsZVRpbWUp
OwotICAgICAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZSh0aW1lci5nZXQoKSwgc2No
ZWR1bGVUaW1lLnZhbHVlKCkpOworICAgIHN0ZDo6bG9ja19ndWFyZDxKU0xvY2s+IGxvY2soKmFw
aUxvY2spOworICAgIFJlZlB0cjxWTT4gdm0gPSBhcGlMb2NrLT52bSgpOworICAgIGlmICghdm0p
IHsKKyAgICAgICAgLy8gVGhlIFZNIGhhcyBiZWVuIGRlc3Ryb3llZCwgc28gd2Ugc2hvdWxkIGp1
c3QgZ2l2ZSB1cC4KKyAgICAgICAgcmV0dXJuOwogICAgIH0KLX0KLSNlbHNlCi1KU1J1bkxvb3BU
aW1lcjo6TWFuYWdlcjo6UGVyVk1EYXRhOjpQZXJWTURhdGEoTWFuYWdlciYgbWFuYWdlcikKLSAg
ICA6IHJ1bkxvb3AoJlJ1bkxvb3A6OmN1cnJlbnQoKSkKLSAgICAsIHRpbWVyKHN0ZDo6bWFrZV91
bmlxdWU8UnVuTG9vcDo6VGltZXI8TWFuYWdlcj4+KCpydW5Mb29wLCAmbWFuYWdlciwgJkpTUnVu
TG9vcFRpbWVyOjpNYW5hZ2VyOjp0aW1lckRpZEZpcmVDYWxsYmFjaykpCi17Ci0jaWYgVVNFKEdM
SUJfRVZFTlRfTE9PUCkKLSAgICB0aW1lci0+c2V0UHJpb3JpdHkoUnVuTG9vcFNvdXJjZVByaW9y
aXR5OjpKYXZhc2NyaXB0VGltZXIpOwotICAgIHRpbWVyLT5zZXROYW1lKCJbSmF2YVNjcmlwdENv
cmVdIEpTUnVuTG9vcFRpbWVyIik7Ci0jZW5kaWYKLX0KLQotdm9pZCBKU1J1bkxvb3BUaW1lcjo6
TWFuYWdlcjo6dGltZXJEaWRGaXJlQ2FsbGJhY2soKQotewotICAgIHRpbWVyRGlkRmlyZSgpOwot
fQotI2VuZGlmCiAKLUpTUnVuTG9vcFRpbWVyOjpNYW5hZ2VyOjpQZXJWTURhdGE6On5QZXJWTURh
dGEoKQotewotI2lmIFVTRShDRikKLSAgICBzZXRSdW5Mb29wKG51bGxwdHIsIG51bGxwdHIpOwot
I2VuZGlmCisgICAgZG9Xb3JrKCk7CiB9CiAKLXZvaWQgSlNSdW5Mb29wVGltZXI6Ok1hbmFnZXI6
OnRpbWVyRGlkRmlyZSgpCi17Ci0gICAgVmVjdG9yPFJlZjxKU1J1bkxvb3BUaW1lcj4+IHRpbWVy
c1RvRmlyZTsKLQotICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2sp
OwotI2lmIFVTRShDRikKLSAgICAgICAgQ0ZSdW5Mb29wUmVmIGN1cnJlbnRSdW5Mb29wID0gQ0ZS
dW5Mb29wR2V0Q3VycmVudCgpOwotI2Vsc2UKLSAgICAgICAgUnVuTG9vcCogY3VycmVudFJ1bkxv
b3AgPSAmUnVuTG9vcDo6Y3VycmVudCgpOwotI2VuZGlmCi0gICAgICAgIEVwb2NoVGltZSBub3dF
cG9jaFRpbWUgPSBlcG9jaFRpbWUoMF9zKTsKLSAgICAgICAgZm9yIChhdXRvJiBlbnRyeSA6IG1f
bWFwcGluZykgewotICAgICAgICAgICAgUGVyVk1EYXRhJiBkYXRhID0gZW50cnkudmFsdWU7Ci0j
aWYgVVNFKENGKQotICAgICAgICAgICAgaWYgKGRhdGEucnVuTG9vcC5nZXQoKSAhPSBjdXJyZW50
UnVuTG9vcCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSNlbHNlCi0gICAgICAgICAgICBp
ZiAoZGF0YS5ydW5Mb29wICE9IGN1cnJlbnRSdW5Mb29wKQotICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotI2VuZGlmCi0gICAgICAgICAgICAKLSAgICAgICAgICAgIEVwb2NoVGltZSBzY2hlZHVs
ZVRpbWUgPSBlcG9jaFRpbWUoc19kZWNhZGUpOwotICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBkYXRhLnRpbWVycy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgYXV0byYgcGFpciA9IGRhdGEudGltZXJzW2ldOwotICAgICAgICAg
ICAgICAgICAgICBpZiAocGFpci5zZWNvbmQgPiBub3dFcG9jaFRpbWUpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHNjaGVkdWxlVGltZSA9IHN0ZDo6bWluKHBhaXIuc2Vjb25kLCBzY2hlZHVs
ZVRpbWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYXV0byYgbGFzdCA9IGRhdGEudGltZXJzLmxh
c3QoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCZsYXN0ICE9ICZwYWlyKQotICAgICAgICAg
ICAgICAgICAgICAgICAgc3RkOjpzd2FwKHBhaXIsIGxhc3QpOwotICAgICAgICAgICAgICAgICAg
ICAtLWk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgYXV0byBwYWlyID0g
ZGF0YS50aW1lcnMudGFrZUxhc3QoKTsKLSAgICAgICAgICAgICAgICB0aW1lcnNUb0ZpcmUuYXBw
ZW5kKFdURk1vdmUocGFpci5maXJzdCkpOwotICAgICAgICAgICAgfQotCiAjaWYgVVNFKENGKQot
ICAgICAgICAgICAgQ0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUoZGF0YS50aW1lci5nZXQo
KSwgc2NoZWR1bGVUaW1lLnZhbHVlKCkpOwotI2Vsc2UKLSAgICAgICAgICAgIGRhdGEudGltZXIt
PnN0YXJ0T25lU2hvdChzdGQ6Om1heCgwX3MsIHNjaGVkdWxlVGltZSAtIE1vbm90b25pY1RpbWU6
Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkpKTsKLSNlbmRpZgotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgZm9yIChhdXRvJiB0aW1lciA6IHRpbWVyc1RvRmlyZSkKLSAgICAgICAgdGltZXItPnRp
bWVyRGlkRmlyZSgpOwotfQogCi1KU1J1bkxvb3BUaW1lcjo6TWFuYWdlciYgSlNSdW5Mb29wVGlt
ZXI6Ok1hbmFnZXI6OnNoYXJlZCgpCi17Ci0gICAgc3RhdGljIE1hbmFnZXIqIG1hbmFnZXI7Ci0g
ICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7Ci0gICAgc3RkOjpjYWxsX29uY2Uob25jZSwg
WyZdIHsKLSAgICAgICAgbWFuYWdlciA9IG5ldyBNYW5hZ2VyOwotICAgIH0pOwotICAgIHJldHVy
biAqbWFuYWdlcjsKLX0KLQotdm9pZCBKU1J1bkxvb3BUaW1lcjo6TWFuYWdlcjo6cmVnaXN0ZXJW
TShWTSYgdm0pCi17Ci0gICAgUGVyVk1EYXRhIGRhdGEgeyAqdGhpcyB9OwotI2lmIFVTRShDRikK
LSAgICBkYXRhLnNldFJ1bkxvb3AodGhpcywgdm0ucnVuTG9vcCgpKTsKLSNlbmRpZgotCi0gICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9t
YXBwaW5nLmFkZCh7IHZtLmFwaUxvY2soKSB9LCBXVEZNb3ZlKGRhdGEpKTsKLSAgICBSRUxFQVNF
X0FTU0VSVChhZGRSZXN1bHQuaXNOZXdFbnRyeSk7Ci19Ci0KLXZvaWQgSlNSdW5Mb29wVGltZXI6
Ok1hbmFnZXI6OnVucmVnaXN0ZXJWTShWTSYgdm0pCitKU1J1bkxvb3BUaW1lcjo6SlNSdW5Mb29w
VGltZXIoVk0qIHZtKQorICAgIDogbV92bSh2bSkKKyAgICAsIG1fYXBpTG9jaygmdm0tPmFwaUxv
Y2soKSkKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbG9jayk7Ci0KLSAgICBhdXRv
IGl0ZXIgPSBtX21hcHBpbmcuZmluZCh7IHZtLmFwaUxvY2soKSB9KTsKLSAgICBSRUxFQVNFX0FT
U0VSVChpdGVyICE9IG1fbWFwcGluZy5lbmQoKSk7Ci0gICAgbV9tYXBwaW5nLnJlbW92ZShpdGVy
KTsKKyAgICBtX3ZtLT5yZWdpc3RlclJ1bkxvb3BUaW1lcih0aGlzKTsKIH0KIAotdm9pZCBKU1J1
bkxvb3BUaW1lcjo6TWFuYWdlcjo6c2NoZWR1bGVUaW1lcihKU1J1bkxvb3BUaW1lciYgdGltZXIs
IFNlY29uZHMgZGVsYXkpCit2b2lkIEpTUnVuTG9vcFRpbWVyOjpzZXRSdW5Mb29wKENGUnVuTG9v
cFJlZiBydW5Mb29wKQogewotICAgIEVwb2NoVGltZSBmaXJlRXBvY2hUaW1lID0gZXBvY2hUaW1l
KGRlbGF5KTsKLQotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9sb2NrKTsKLSAgICBhdXRv
IGl0ZXIgPSBtX21hcHBpbmcuZmluZCh0aW1lci5tX2FwaUxvY2spOwotICAgIFJFTEVBU0VfQVNT
RVJUKGl0ZXIgIT0gbV9tYXBwaW5nLmVuZCgpKTsgLy8gV2UgZG9uJ3QgYWxsb3cgY2FsbGluZyB0
aGlzIGFmdGVyIHRoZSBWTSBkaWVzLgotCi0gICAgUGVyVk1EYXRhJiBkYXRhID0gaXRlci0+dmFs
dWU7Ci0gICAgRXBvY2hUaW1lIHNjaGVkdWxlVGltZSA9IGZpcmVFcG9jaFRpbWU7Ci0gICAgYm9v
bCBmb3VuZCA9IGZhbHNlOwotICAgIGZvciAoYXV0byYgZW50cnkgOiBkYXRhLnRpbWVycykgewot
ICAgICAgICBpZiAoZW50cnkuZmlyc3QucHRyKCkgPT0gJnRpbWVyKSB7Ci0gICAgICAgICAgICBl
bnRyeS5zZWNvbmQgPSBmaXJlRXBvY2hUaW1lOwotICAgICAgICAgICAgZm91bmQgPSB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIHNjaGVkdWxlVGltZSA9IHN0ZDo6bWluKHNjaGVkdWxlVGltZSwg
ZW50cnkuc2Vjb25kKTsKKyAgICBpZiAobV9ydW5Mb29wKSB7CisgICAgICAgIENGUnVuTG9vcFJl
bW92ZVRpbWVyKG1fcnVuTG9vcC5nZXQoKSwgbV90aW1lci5nZXQoKSwga0NGUnVuTG9vcENvbW1v
bk1vZGVzKTsKKyAgICAgICAgQ0ZSdW5Mb29wVGltZXJJbnZhbGlkYXRlKG1fdGltZXIuZ2V0KCkp
OworICAgICAgICBtX3J1bkxvb3AuY2xlYXIoKTsKKyAgICAgICAgbV90aW1lci5jbGVhcigpOwog
ICAgIH0KIAotICAgIGlmICghZm91bmQpCi0gICAgICAgIGRhdGEudGltZXJzLmFwcGVuZCh7IHRp
bWVyLCBmaXJlRXBvY2hUaW1lIH0pOwotCi0jaWYgVVNFKENGKQotICAgIENGUnVuTG9vcFRpbWVy
U2V0TmV4dEZpcmVEYXRlKGRhdGEudGltZXIuZ2V0KCksIHNjaGVkdWxlVGltZS52YWx1ZSgpKTsK
LSNlbHNlCi0gICAgZGF0YS50aW1lci0+c3RhcnRPbmVTaG90KHN0ZDo6bWF4KDBfcywgc2NoZWR1
bGVUaW1lIC0gTW9ub3RvbmljVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKSkpOwotI2Vu
ZGlmCisgICAgbV9ydW5Mb29wID0gcnVuTG9vcDsKKyAgICBpZiAocnVuTG9vcCkgeworICAgICAg
ICBtZW1zZXQoJm1fY29udGV4dCwgMCwgc2l6ZW9mKENGUnVuTG9vcFRpbWVyQ29udGV4dCkpOwor
ICAgICAgICBtX2NvbnRleHQuaW5mbyA9IHRoaXM7CisgICAgICAgIG1fdGltZXIgPSBhZG9wdENG
KENGUnVuTG9vcFRpbWVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIENGQWJzb2x1dGVUaW1l
R2V0Q3VycmVudCgpICsgc19kZWNhZGUuc2Vjb25kcygpLCBzX2RlY2FkZS5zZWNvbmRzKCksIDAs
IDAsIEpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmVDYWxsYmFjaywgJm1fY29udGV4dCkpOwor
ICAgICAgICBDRlJ1bkxvb3BBZGRUaW1lcihtX3J1bkxvb3AuZ2V0KCksIG1fdGltZXIuZ2V0KCks
IGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7CisgICAgfQogfQogCi12b2lkIEpTUnVuTG9vcFRpbWVy
OjpNYW5hZ2VyOjpjYW5jZWxUaW1lcihKU1J1bkxvb3BUaW1lciYgdGltZXIpCitKU1J1bkxvb3BU
aW1lcjo6fkpTUnVuTG9vcFRpbWVyKCkKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1f
bG9jayk7Ci0gICAgYXV0byBpdGVyID0gbV9tYXBwaW5nLmZpbmQodGltZXIubV9hcGlMb2NrKTsK
LSAgICBpZiAoaXRlciA9PSBtX21hcHBpbmcuZW5kKCkpIHsKLSAgICAgICAgLy8gSXQncyB0cml2
aWFsIHRvIGFsbG93IHRoaXMgdG8gYmUgY2FsbGVkIGFmdGVyIHRoZSBWTSBkaWVzLCBzbyB3ZSBh
bGxvdyBmb3IgaXQuCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBQZXJWTURhdGEmIGRh
dGEgPSBpdGVyLT52YWx1ZTsKLSAgICBFcG9jaFRpbWUgc2NoZWR1bGVUaW1lID0gZXBvY2hUaW1l
KHNfZGVjYWRlKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGF0YS50aW1lcnMuc2l6
ZSgpOyArK2kpIHsKLSAgICAgICAgewotICAgICAgICAgICAgYXV0byYgZW50cnkgPSBkYXRhLnRp
bWVyc1tpXTsKLSAgICAgICAgICAgIGlmIChlbnRyeS5maXJzdC5wdHIoKSA9PSAmdGltZXIpIHsK
LSAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCh0aW1lci5yZWZDb3VudCgpID49IDIpOyAv
LyBJZiB3ZSByZW1vdmUgaXQgZnJvbSB0aGUgZW50cnkgYmVsb3csIHdlIHNob3VsZCBub3QgYmUg
dGhlIGxhc3QgdGhpbmcgcG9pbnRpbmcgdG8gaXQhCi0gICAgICAgICAgICAgICAgYXV0byYgbGFz
dCA9IGRhdGEudGltZXJzLmxhc3QoKTsKLSAgICAgICAgICAgICAgICBpZiAoJmxhc3QgIT0gJmVu
dHJ5KQotICAgICAgICAgICAgICAgICAgICBzdGQ6OnN3YXAoZW50cnksIGxhc3QpOwotICAgICAg
ICAgICAgICAgIGRhdGEudGltZXJzLnJlbW92ZUxhc3QoKTsKLSAgICAgICAgICAgICAgICBpLS07
Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQot
ICAgICAgICBzY2hlZHVsZVRpbWUgPSBzdGQ6Om1pbihzY2hlZHVsZVRpbWUsIGRhdGEudGltZXJz
W2ldLnNlY29uZCk7Ci0gICAgfQotCi0jaWYgVVNFKENGKQotICAgIENGUnVuTG9vcFRpbWVyU2V0
TmV4dEZpcmVEYXRlKGRhdGEudGltZXIuZ2V0KCksIHNjaGVkdWxlVGltZS52YWx1ZSgpKTsKLSNl
bHNlCi0gICAgZGF0YS50aW1lci0+c3RhcnRPbmVTaG90KHN0ZDo6bWF4KDBfcywgc2NoZWR1bGVU
aW1lIC0gTW9ub3RvbmljVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKSkpOwotI2VuZGlm
CisgICAgSlNMb2NrKiBhcGlMb2NrID0gbV9hcGlMb2NrLmdldCgpOworICAgIHN0ZDo6bG9ja19n
dWFyZDxKU0xvY2s+IGxvY2soKmFwaUxvY2spOworICAgIG1fdm0tPnVucmVnaXN0ZXJSdW5Mb29w
VGltZXIodGhpcyk7CisgICAgbV9hcGlMb2NrID0gbnVsbHB0cjsKIH0KIAotc3RkOjpvcHRpb25h
bDxTZWNvbmRzPiBKU1J1bkxvb3BUaW1lcjo6TWFuYWdlcjo6dGltZVVudGlsRmlyZShKU1J1bkxv
b3BUaW1lciYgdGltZXIpCit2b2lkIEpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmVDYWxsYmFj
ayhDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCogY29udGV4dFB0cikKIHsKLSAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fbG9jayk7Ci0gICAgYXV0byBpdGVyID0gbV9tYXBwaW5nLmZpbmQodGlt
ZXIubV9hcGlMb2NrKTsKLSAgICBSRUxFQVNFX0FTU0VSVChpdGVyICE9IG1fbWFwcGluZy5lbmQo
KSk7IC8vIFdlIG9ubHkgYWxsb3cgdGhpcyB0byBiZSBjYWxsZWQgd2l0aCBhIGxpdmUgVk0uCi0K
LSAgICBQZXJWTURhdGEmIGRhdGEgPSBpdGVyLT52YWx1ZTsKLSAgICBmb3IgKGF1dG8mIGVudHJ5
IDogZGF0YS50aW1lcnMpIHsKLSAgICAgICAgaWYgKGVudHJ5LmZpcnN0LnB0cigpID09ICZ0aW1l
cikgewotICAgICAgICAgICAgRXBvY2hUaW1lIG5vd0Vwb2NoVGltZSA9IGVwb2NoVGltZSgwX3Mp
OwotICAgICAgICAgICAgcmV0dXJuIGVudHJ5LnNlY29uZCAtIG5vd0Vwb2NoVGltZTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgc3RhdGljX2Nhc3Q8
SlNSdW5Mb29wVGltZXIqPihjb250ZXh0UHRyKS0+dGltZXJEaWRGaXJlKCk7CiB9CiAKLSNpZiBV
U0UoQ0YpCi12b2lkIEpTUnVuTG9vcFRpbWVyOjpNYW5hZ2VyOjpkaWRDaGFuZ2VSdW5Mb29wKFZN
JiB2bSwgQ0ZSdW5Mb29wUmVmIG5ld1J1bkxvb3ApCit2b2lkIEpTUnVuTG9vcFRpbWVyOjpzY2hl
ZHVsZVRpbWVyKFNlY29uZHMgaW50ZXJ2YWxJblNlY29uZHMpCiB7Ci0gICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhtX2xvY2spOwotICAgIGF1dG8gaXRlciA9IG1fbWFwcGluZy5maW5kKHsgdm0u
YXBpTG9jaygpIH0pOwotICAgIFJFTEVBU0VfQVNTRVJUKGl0ZXIgIT0gbV9tYXBwaW5nLmVuZCgp
KTsKLQotICAgIFBlclZNRGF0YSYgZGF0YSA9IGl0ZXItPnZhbHVlOwotICAgIGRhdGEuc2V0UnVu
TG9vcCh0aGlzLCBuZXdSdW5Mb29wKTsKKyAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0
ZShtX3RpbWVyLmdldCgpLCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIGludGVydmFsSW5T
ZWNvbmRzLnNlY29uZHMoKSk7CisgICAgbV9pc1NjaGVkdWxlZCA9IHRydWU7CisgICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhtX3RpbWVyQ2FsbGJhY2tzTG9jayk7CisgICAgZm9yIChhdXRvJiB0
YXNrIDogbV90aW1lclNldENhbGxiYWNrcykKKyAgICAgICAgdGFzay0+cnVuKCk7CiB9Ci0jZW5k
aWYKIAotdm9pZCBKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlKCkKK3ZvaWQgSlNSdW5Mb29w
VGltZXI6OmNhbmNlbFRpbWVyKCkKIHsKLSAgICBOT19UQUlMX0NBTExTKCk7Ci0KLSAgICB7Ci0g
ICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9sb2NrKTsKLSAgICAgICAgaWYgKCFtX2lz
U2NoZWR1bGVkKSB7Ci0gICAgICAgICAgICAvLyBXZSByYWNlZCBiZXR3ZWVuIHRoaXMgY2FsbGJh
Y2sgYmVpbmcgY2FsbGVkIGFuZCBjYW5jZWwoKSBiZWluZyBjYWxsZWQuCi0gICAgICAgICAgICAv
LyBUaGF0J3MgZmluZSwgd2UganVzdCBkb24ndCBkbyBhbnl0aGluZyBoZXJlLgotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgc3RkOjpsb2NrX2d1YXJkPEpTTG9j
az4gbG9jayhtX2FwaUxvY2suZ2V0KCkpOwotICAgIFJlZlB0cjxWTT4gdm0gPSBtX2FwaUxvY2st
PnZtKCk7Ci0gICAgaWYgKCF2bSkgewotICAgICAgICAvLyBUaGUgVk0gaGFzIGJlZW4gZGVzdHJv
eWVkLCBzbyB3ZSBzaG91bGQganVzdCBnaXZlIHVwLgotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgZG9Xb3JrKCp2bSk7CisgICAgQ0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUobV90
aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBzX2RlY2FkZS5zZWNvbmRz
KCkpOworICAgIG1faXNTY2hlZHVsZWQgPSBmYWxzZTsKIH0KIAorI2Vsc2UKKwogSlNSdW5Mb29w
VGltZXI6OkpTUnVuTG9vcFRpbWVyKFZNKiB2bSkKLSAgICA6IG1fYXBpTG9jayh2bS0+YXBpTG9j
aygpKQorICAgIDogbV92bSh2bSkKKyAgICAsIG1fYXBpTG9jaygmdm0tPmFwaUxvY2soKSkKKyAg
ICAsIG1fdGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmSlNSdW5Mb29wVGltZXI6OnRp
bWVyRGlkRmlyZUNhbGxiYWNrKQogeworI2lmIFVTRShHTElCX0VWRU5UX0xPT1ApCisgICAgbV90
aW1lci5zZXRQcmlvcml0eShSdW5Mb29wU291cmNlUHJpb3JpdHk6OkphdmFzY3JpcHRUaW1lcik7
CisgICAgbV90aW1lci5zZXROYW1lKCJbSmF2YVNjcmlwdENvcmVdIEpTUnVuTG9vcFRpbWVyIik7
CisjZW5kaWYKKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChzX2RlY2FkZSk7CiB9CiAKIEpTUnVu
TG9vcFRpbWVyOjp+SlNSdW5Mb29wVGltZXIoKQogewogfQogCi1zdGQ6Om9wdGlvbmFsPFNlY29u
ZHM+IEpTUnVuTG9vcFRpbWVyOjp0aW1lVW50aWxGaXJlKCkKK3ZvaWQgSlNSdW5Mb29wVGltZXI6
OnRpbWVyRGlkRmlyZUNhbGxiYWNrKCkKIHsKLSAgICByZXR1cm4gTWFuYWdlcjo6c2hhcmVkKCku
dGltZVVudGlsRmlyZSgqdGhpcyk7CisgICAgbV90aW1lci5zdGFydE9uZVNob3Qoc19kZWNhZGUp
OworICAgIHRpbWVyRGlkRmlyZSgpOwogfQogCi12b2lkIEpTUnVuTG9vcFRpbWVyOjpzZXRUaW1l
VW50aWxGaXJlKFNlY29uZHMgaW50ZXJ2YWxJblNlY29uZHMpCit2b2lkIEpTUnVuTG9vcFRpbWVy
OjpzY2hlZHVsZVRpbWVyKFNlY29uZHMgaW50ZXJ2YWxJblNlY29uZHMpCiB7Ci0gICAgewotICAg
ICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbG9jayk7Ci0gICAgICAgIG1faXNTY2hlZHVs
ZWQgPSB0cnVlOwotICAgICAgICBNYW5hZ2VyOjpzaGFyZWQoKS5zY2hlZHVsZVRpbWVyKCp0aGlz
LCBpbnRlcnZhbEluU2Vjb25kcyk7Ci0gICAgfQorICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KGlu
dGVydmFsSW5TZWNvbmRzKTsKKyAgICBtX2lzU2NoZWR1bGVkID0gdHJ1ZTsKIAogICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV90aW1lckNhbGxiYWNrc0xvY2spOwogICAgIGZvciAoYXV0byYg
dGFzayA6IG1fdGltZXJTZXRDYWxsYmFja3MpCkBAIC0zMzYsMTEgKzE1NSwxMiBAQCB2b2lkIEpT
UnVuTG9vcFRpbWVyOjpzZXRUaW1lVW50aWxGaXJlKFNlY29uZHMgaW50ZXJ2YWxJblNlY29uZHMp
CiAKIHZvaWQgSlNSdW5Mb29wVGltZXI6OmNhbmNlbFRpbWVyKCkKIHsKLSAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fbG9jayk7CisgICAgbV90aW1lci5zdGFydE9uZVNob3Qoc19kZWNhZGUp
OwogICAgIG1faXNTY2hlZHVsZWQgPSBmYWxzZTsKLSAgICBNYW5hZ2VyOjpzaGFyZWQoKS5jYW5j
ZWxUaW1lcigqdGhpcyk7CiB9CiAKKyNlbmRpZgorCiB2b2lkIEpTUnVuTG9vcFRpbWVyOjphZGRU
aW1lclNldE5vdGlmaWNhdGlvbihUaW1lck5vdGlmaWNhdGlvbkNhbGxiYWNrIGNhbGxiYWNrKQog
ewogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV90aW1lckNhbGxiYWNrc0xvY2spOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmgKaW5kZXggNjY1
MTY3MjczOWViOWRjYThmMWZmY2RiZTczNWJlZGE1YWYxNzI0MC4uMDZjNWYxN2QzN2E3NWY3ODlk
ZDU0ZjQ0MjViMjRlNzQ5ZmU1N2MwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1J1bkxvb3BUaW1lci5oCkBAIC00Nyw5MSArNDcsNTQgQEAgcHVibGljOgogICAgIHR5
cGVkZWYgdm9pZCBUaW1lck5vdGlmaWNhdGlvblR5cGUoKTsKICAgICB1c2luZyBUaW1lck5vdGlm
aWNhdGlvbkNhbGxiYWNrID0gUmVmUHRyPFdURjo6U2hhcmVkVGFzazxUaW1lck5vdGlmaWNhdGlv
blR5cGU+PjsKIAotICAgIGNsYXNzIE1hbmFnZXIgewotI2lmIFVTRShDRikKLSAgICAgICAgc3Rh
dGljIHZvaWQgdGltZXJEaWRGaXJlQ2FsbGJhY2soQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKTsK
LSNlbHNlCi0gICAgICAgIHZvaWQgdGltZXJEaWRGaXJlQ2FsbGJhY2soKTsKLSNlbmRpZgotCi0g
ICAgICAgIHZvaWQgdGltZXJEaWRGaXJlKCk7Ci0KLSAgICBwdWJsaWM6Ci0gICAgICAgIHVzaW5n
IEVwb2NoVGltZSA9IFNlY29uZHM7Ci0KLSAgICAgICAgc3RhdGljIE1hbmFnZXImIHNoYXJlZCgp
OwotICAgICAgICB2b2lkIHJlZ2lzdGVyVk0oVk0mKTsKLSAgICAgICAgdm9pZCB1bnJlZ2lzdGVy
Vk0oVk0mKTsKLSAgICAgICAgdm9pZCBzY2hlZHVsZVRpbWVyKEpTUnVuTG9vcFRpbWVyJiwgU2Vj
b25kcyBuZXh0RmlyZVRpbWUpOwotICAgICAgICB2b2lkIGNhbmNlbFRpbWVyKEpTUnVuTG9vcFRp
bWVyJik7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiB0aW1lVW50aWxGaXJlKEpT
UnVuTG9vcFRpbWVyJik7Ci0KLSNpZiBVU0UoQ0YpCi0gICAgICAgIHZvaWQgZGlkQ2hhbmdlUnVu
TG9vcChWTSYsIENGUnVuTG9vcFJlZiBuZXdSdW5Mb29wKTsKLSNlbmRpZgotCi0gICAgcHJpdmF0
ZToKLSAgICAgICAgTG9jayBtX2xvY2s7Ci0KLSAgICAgICAgc3RydWN0IFBlclZNRGF0YSB7Ci0g
ICAgICAgICAgICBQZXJWTURhdGEoKSA9IGRlZmF1bHQ7Ci0jaWYgVVNFKENGKQotICAgICAgICAg
ICAgUGVyVk1EYXRhKE1hbmFnZXImKSB7IH0KLSNlbHNlCi0gICAgICAgICAgICBQZXJWTURhdGEo
TWFuYWdlciYpOwotI2VuZGlmCi0gICAgICAgICAgICBQZXJWTURhdGEoUGVyVk1EYXRhJiYpID0g
ZGVmYXVsdDsKLSAgICAgICAgICAgIFBlclZNRGF0YSYgb3BlcmF0b3I9KFBlclZNRGF0YSYmKSA9
IGRlZmF1bHQ7Ci0KLSAgICAgICAgICAgIH5QZXJWTURhdGEoKTsKLQorICAgIEpTUnVuTG9vcFRp
bWVyKFZNKik7CiAjaWYgVVNFKENGKQotICAgICAgICAgICAgdm9pZCBzZXRSdW5Mb29wKE1hbmFn
ZXIqLCBDRlJ1bkxvb3BSZWYpOwotICAgICAgICAgICAgUmV0YWluUHRyPENGUnVuTG9vcFRpbWVy
UmVmPiB0aW1lcjsKLSAgICAgICAgICAgIFJldGFpblB0cjxDRlJ1bkxvb3BSZWY+IHJ1bkxvb3A7
Ci0gICAgICAgICAgICBDRlJ1bkxvb3BUaW1lckNvbnRleHQgY29udGV4dDsKKyAgICBzdGF0aWMg
dm9pZCB0aW1lckRpZEZpcmVDYWxsYmFjayhDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCopOwogI2Vs
c2UKLSAgICAgICAgICAgIFJ1bkxvb3AqIHJ1bkxvb3A7Ci0gICAgICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8UnVuTG9vcDo6VGltZXI8TWFuYWdlcj4+IHRpbWVyOworICAgIHZvaWQgdGltZXJEaWRG
aXJlQ2FsbGJhY2soKTsKICNlbmRpZgotICAgICAgICAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWY8
SlNSdW5Mb29wVGltZXI+LCBFcG9jaFRpbWU+PiB0aW1lcnM7Ci0gICAgICAgIH07CiAKLSAgICAg
ICAgSGFzaE1hcDxSZWY8SlNMb2NrPiwgUGVyVk1EYXRhPiBtX21hcHBpbmc7Ci0gICAgfTsKLQot
ICAgIEpTUnVuTG9vcFRpbWVyKFZNKik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB+
SlNSdW5Mb29wVGltZXIoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZG9Xb3JrKFZNJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkb1dvcmsoKSA9IDA7CiAKLSAgICB2b2lkIHNldFRpbWVVbnRpbEZpcmUo
U2Vjb25kcyBpbnRlcnZhbEluU2Vjb25kcyk7CisgICAgdm9pZCBzY2hlZHVsZVRpbWVyKFNlY29u
ZHMgaW50ZXJ2YWxJblNlY29uZHMpOwogICAgIHZvaWQgY2FuY2VsVGltZXIoKTsKICAgICBib29s
IGlzU2NoZWR1bGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1NjaGVkdWxlZDsgfQogCiAgICAgLy8g
Tm90ZTogVGhlIG9ubHkgdGhpbmcgdGhlIHRpbWVyIG5vdGlmaWNhdGlvbiBjYWxsYmFjayBjYW5u
b3QgZG8gaXMKLSAgICAvLyBjYWxsIHNldFRpbWVVbnRpbEZpcmUoKS4gVGhpcyB3aWxsIGNhdXNl
IGEgZGVhZGxvY2suIEl0IHdvdWxkIG5vdAorICAgIC8vIGNhbGwgc2NoZWR1bGVUaW1lcigpLiBU
aGlzIHdpbGwgY2F1c2UgYSBkZWFkbG9jay4gSXQgd291bGQgbm90CiAgICAgLy8gYmUgaGFyZCB0
byBtYWtlIHRoaXMgd29yaywgaG93ZXZlciwgdGhlcmUgYXJlIG5vIGNsaWVudHMgdGhhdCBuZWVk
CiAgICAgLy8gdGhpcyBiZWhhdmlvci4gV2Ugc2hvdWxkIGltcGxlbWVudCBpdCBvbmx5IGlmIHdl
IGZpbmQgdGhhdCB3ZSBuZWVkIGl0LgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgYWRkVGlt
ZXJTZXROb3RpZmljYXRpb24oVGltZXJOb3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgdm9pZCByZW1vdmVUaW1lclNldE5vdGlmaWNhdGlvbihUaW1lck5vdGlmaWNh
dGlvbkNhbGxiYWNrKTsKIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0ZDo6b3B0aW9uYWw8U2Vj
b25kcz4gdGltZVVudGlsRmlyZSgpOworI2lmIFVTRShDRikKKyAgICBKU19FWFBPUlRfUFJJVkFU
RSB2b2lkIHNldFJ1bkxvb3AoQ0ZSdW5Mb29wUmVmKTsKKyNlbmRpZiAvLyBVU0UoQ0YpCiAKIHBy
b3RlY3RlZDoKKyAgICBWTSogbV92bTsKKwogICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIHNfZGVj
YWRlOwotICAgIFJlZjxKU0xvY2s+IG1fYXBpTG9jazsKIAotcHJpdmF0ZToKLSAgICBmcmllbmQg
Y2xhc3MgTWFuYWdlcjsKKyAgICBSZWZQdHI8SlNMb2NrPiBtX2FwaUxvY2s7CisgICAgYm9vbCBt
X2lzU2NoZWR1bGVkIHsgZmFsc2UgfTsKKyNpZiBVU0UoQ0YpCisgICAgUmV0YWluUHRyPENGUnVu
TG9vcFRpbWVyUmVmPiBtX3RpbWVyOworICAgIFJldGFpblB0cjxDRlJ1bkxvb3BSZWY+IG1fcnVu
TG9vcDsKIAotICAgIHZvaWQgdGltZXJEaWRGaXJlKCk7CisgICAgQ0ZSdW5Mb29wVGltZXJDb250
ZXh0IG1fY29udGV4dDsKIAotICAgIEhhc2hTZXQ8VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaz4g
bV90aW1lclNldENhbGxiYWNrczsKLSAgICBMb2NrIG1fdGltZXJDYWxsYmFja3NMb2NrOworICAg
IExvY2sgbV9zaHV0ZG93bk11dGV4OworI2Vsc2UKKyAgICBSdW5Mb29wOjpUaW1lcjxKU1J1bkxv
b3BUaW1lcj4gbV90aW1lcjsKKyNlbmRpZgogCi0gICAgTG9jayBtX2xvY2s7Ci0gICAgYm9vbCBt
X2lzU2NoZWR1bGVkIHsgZmFsc2UgfTsKKyAgICBMb2NrIG1fdGltZXJDYWxsYmFja3NMb2NrOwor
ICAgIEhhc2hTZXQ8VGltZXJOb3RpZmljYXRpb25DYWxsYmFjaz4gbV90aW1lclNldENhbGxiYWNr
czsKKyAgICAKK3ByaXZhdGU6CisgICAgdm9pZCB0aW1lckRpZEZpcmUoKTsKIH07CiAgICAgCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcAppbmRleCAzNDNlZTJhOTk3N2VjMjNlMTg5NGQ1
N2M4ODgwNzk5MDk3Y2RhMjEyLi5kYjg1MWRjMGU4MzM4ZjQ0MDVlNGM1ZGJmYjYyNzhlZTEzNTNh
YTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNlRGVm
ZXJyZWRUaW1lci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvbWlz
ZURlZmVycmVkVGltZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTQzLDkgKzQzLDkgQEAgUHJvbWlzZURlZmVycmVkVGltZXI6OlBy
b21pc2VEZWZlcnJlZFRpbWVyKFZNJiB2bSkKIHsKIH0KIAotdm9pZCBQcm9taXNlRGVmZXJyZWRU
aW1lcjo6ZG9Xb3JrKFZNJiB2bSkKK3ZvaWQgUHJvbWlzZURlZmVycmVkVGltZXI6OmRvV29yaygp
CiB7Ci0gICAgQVNTRVJUKHZtLmN1cnJlbnRUaHJlYWRJc0hvbGRpbmdBUElMb2NrKCkpOworICAg
IEFTU0VSVChtX3ZtLT5jdXJyZW50VGhyZWFkSXNIb2xkaW5nQVBJTG9jaygpKTsKICAgICBtX3Rh
c2tMb2NrLmxvY2soKTsKICAgICBjYW5jZWxUaW1lcigpOwogICAgIGlmICghbV9ydW5UYXNrcykg
ewpAQCAtNjYsNyArNjYsNyBAQCB2b2lkIFByb21pc2VEZWZlcnJlZFRpbWVyOjpkb1dvcmsoVk0m
IHZtKQogICAgICAgICAgICAgbV90YXNrTG9jay51bmxvY2soKTsgCiAKICAgICAgICAgICAgIHRh
c2soKTsKLSAgICAgICAgICAgIHZtLmRyYWluTWljcm90YXNrcygpOworICAgICAgICAgICAgbV92
bS0+ZHJhaW5NaWNyb3Rhc2tzKCk7CiAKICAgICAgICAgICAgIG1fdGFza0xvY2subG9jaygpOwog
ICAgICAgICAgICAgbV9jdXJyZW50bHlSdW5uaW5nVGFzayA9IGZhbHNlOwpAQCAtNzUsNyArNzUs
NyBAQCB2b2lkIFByb21pc2VEZWZlcnJlZFRpbWVyOjpkb1dvcmsoVk0mIHZtKQogCiAgICAgaWYg
KG1fcGVuZGluZ1Byb21pc2VzLmlzRW1wdHkoKSAmJiBtX3Nob3VsZFN0b3BSdW5Mb29wV2hlbkFs
bFByb21pc2VzRmluaXNoKSB7CiAjaWYgVVNFKENGKQotICAgICAgICBDRlJ1bkxvb3BTdG9wKHZt
LnJ1bkxvb3AoKSk7CisgICAgICAgIENGUnVuTG9vcFN0b3AobV9ydW5Mb29wLmdldCgpKTsKICNl
bHNlCiAgICAgICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5zdG9wKCk7CiAjZW5kaWYKQEAgLTg2LDMw
ICs4NiwyOSBAQCB2b2lkIFByb21pc2VEZWZlcnJlZFRpbWVyOjpkb1dvcmsoVk0mIHZtKQogCiB2
b2lkIFByb21pc2VEZWZlcnJlZFRpbWVyOjpydW5SdW5Mb29wKCkKIHsKLSAgICBBU1NFUlQoIW1f
YXBpTG9jay0+dm0oKS0+Y3VycmVudFRocmVhZElzSG9sZGluZ0FQSUxvY2soKSk7CisgICAgQVNT
RVJUKCFtX3ZtLT5jdXJyZW50VGhyZWFkSXNIb2xkaW5nQVBJTG9jaygpKTsKICNpZiBVU0UoQ0Yp
Ci0gICAgQVNTRVJUKENGUnVuTG9vcEdldEN1cnJlbnQoKSA9PSBtX2FwaUxvY2stPnZtKCktPnJ1
bkxvb3AoKSk7CisgICAgQVNTRVJUKENGUnVuTG9vcEdldEN1cnJlbnQoKSA9PSBtX3J1bkxvb3Au
Z2V0KCkpOwogI2VuZGlmCiAgICAgbV9zaG91bGRTdG9wUnVuTG9vcFdoZW5BbGxQcm9taXNlc0Zp
bmlzaCA9IHRydWU7Ci0gICAgaWYgKG1fcGVuZGluZ1Byb21pc2VzLnNpemUoKSkgeworICAgIGlm
IChtX3BlbmRpbmdQcm9taXNlcy5zaXplKCkpCiAjaWYgVVNFKENGKQogICAgICAgICBDRlJ1bkxv
b3BSdW4oKTsKICNlbHNlCiAgICAgICAgIFJ1bkxvb3A6OnJ1bigpOwogI2VuZGlmCi0gICAgfQog
fQogCi12b2lkIFByb21pc2VEZWZlcnJlZFRpbWVyOjphZGRQZW5kaW5nUHJvbWlzZShWTSYgdm0s
IEpTUHJvbWlzZURlZmVycmVkKiB0aWNrZXQsIFZlY3RvcjxTdHJvbmc8SlNDZWxsPj4mJiBkZXBl
bmRlbmNpZXMpCit2b2lkIFByb21pc2VEZWZlcnJlZFRpbWVyOjphZGRQZW5kaW5nUHJvbWlzZShK
U1Byb21pc2VEZWZlcnJlZCogdGlja2V0LCBWZWN0b3I8U3Ryb25nPEpTQ2VsbD4+JiYgZGVwZW5k
ZW5jaWVzKQogewotICAgIEFTU0VSVCh2bS5jdXJyZW50VGhyZWFkSXNIb2xkaW5nQVBJTG9jaygp
KTsKKyAgICBBU1NFUlQobV92bS0+Y3VycmVudFRocmVhZElzSG9sZGluZ0FQSUxvY2soKSk7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlcGVuZGVuY2llcy5zaXplKCk7ICsraSkKICAg
ICAgICAgQVNTRVJUKGRlcGVuZGVuY2llc1tpXS5nZXQoKSAhPSB0aWNrZXQpOwogCiAgICAgYXV0
byByZXN1bHQgPSBtX3BlbmRpbmdQcm9taXNlcy5hZGQodGlja2V0LCBWZWN0b3I8U3Ryb25nPEpT
Q2VsbD4+KCkpOwogICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkgewogICAgICAgICBkYXRhTG9n
TG5JZihQcm9taXNlRGVmZXJyZWRUaW1lckludGVybmFsOjp2ZXJib3NlLCAiQWRkaW5nIG5ldyBw
ZW5kaW5nIHByb21pc2U6ICIsIFJhd1BvaW50ZXIodGlja2V0KSk7Ci0gICAgICAgIGRlcGVuZGVu
Y2llcy5hcHBlbmQoU3Ryb25nPEpTQ2VsbD4odm0sIHRpY2tldCkpOworICAgICAgICBkZXBlbmRl
bmNpZXMuYXBwZW5kKFN0cm9uZzxKU0NlbGw+KCptX3ZtLCB0aWNrZXQpKTsKICAgICAgICAgcmVz
dWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFdURk1vdmUoZGVwZW5kZW5jaWVzKTsKICAgICB9IGVsc2Ug
ewogICAgICAgICBkYXRhTG9nTG5JZihQcm9taXNlRGVmZXJyZWRUaW1lckludGVybmFsOjp2ZXJi
b3NlLCAiQWRkaW5nIG5ldyBkZXBlbmRlbmNpZXMgZm9yIHByb21pc2U6ICIsIFJhd1BvaW50ZXIo
dGlja2V0KSk7CkBAIC0xMjMsMTMgKzEyMiwxMyBAQCB2b2lkIFByb21pc2VEZWZlcnJlZFRpbWVy
OjphZGRQZW5kaW5nUHJvbWlzZShWTSYgdm0sIEpTUHJvbWlzZURlZmVycmVkKiB0aWNrZXQsCiAK
IGJvb2wgUHJvbWlzZURlZmVycmVkVGltZXI6Omhhc1BlbmRpbmdQcm9taXNlKEpTUHJvbWlzZURl
ZmVycmVkKiB0aWNrZXQpCiB7Ci0gICAgQVNTRVJUKHRpY2tldC0+dm0oKS0+Y3VycmVudFRocmVh
ZElzSG9sZGluZ0FQSUxvY2soKSk7CisgICAgQVNTRVJUKG1fdm0tPmN1cnJlbnRUaHJlYWRJc0hv
bGRpbmdBUElMb2NrKCkpOwogICAgIHJldHVybiBtX3BlbmRpbmdQcm9taXNlcy5jb250YWlucyh0
aWNrZXQpOwogfQogCiBib29sIFByb21pc2VEZWZlcnJlZFRpbWVyOjpoYXNEZXBlbmRhbmN5SW5Q
ZW5kaW5nUHJvbWlzZShKU1Byb21pc2VEZWZlcnJlZCogdGlja2V0LCBKU0NlbGwqIGRlcGVuZGVu
Y3kpCiB7Ci0gICAgQVNTRVJUKHRpY2tldC0+dm0oKS0+Y3VycmVudFRocmVhZElzSG9sZGluZ0FQ
SUxvY2soKSk7CisgICAgQVNTRVJUKG1fdm0tPmN1cnJlbnRUaHJlYWRJc0hvbGRpbmdBUElMb2Nr
KCkpOwogICAgIEFTU0VSVChtX3BlbmRpbmdQcm9taXNlcy5jb250YWlucyh0aWNrZXQpKTsKIAog
ICAgIGF1dG8gcmVzdWx0ID0gbV9wZW5kaW5nUHJvbWlzZXMuZ2V0KHRpY2tldCk7CkBAIC0xMzgs
NyArMTM3LDcgQEAgYm9vbCBQcm9taXNlRGVmZXJyZWRUaW1lcjo6aGFzRGVwZW5kYW5jeUluUGVu
ZGluZ1Byb21pc2UoSlNQcm9taXNlRGVmZXJyZWQqIHRpY2sKIAogYm9vbCBQcm9taXNlRGVmZXJy
ZWRUaW1lcjo6Y2FuY2VsUGVuZGluZ1Byb21pc2UoSlNQcm9taXNlRGVmZXJyZWQqIHRpY2tldCkK
IHsKLSAgICBBU1NFUlQodGlja2V0LT52bSgpLT5jdXJyZW50VGhyZWFkSXNIb2xkaW5nQVBJTG9j
aygpKTsKKyAgICBBU1NFUlQobV92bS0+Y3VycmVudFRocmVhZElzSG9sZGluZ0FQSUxvY2soKSk7
CiAgICAgYm9vbCByZXN1bHQgPSBtX3BlbmRpbmdQcm9taXNlcy5yZW1vdmUodGlja2V0KTsKIAog
ICAgIGlmIChyZXN1bHQpCkBAIC0xNTIsNyArMTUxLDcgQEAgdm9pZCBQcm9taXNlRGVmZXJyZWRU
aW1lcjo6c2NoZWR1bGVXb3JrU29vbihKU1Byb21pc2VEZWZlcnJlZCogdGlja2V0LCBUYXNrJiYg
dGEKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rhc2tMb2NrKTsKICAgICBtX3Rhc2tzLmFwcGVu
ZChzdGQ6Om1ha2VfdHVwbGUodGlja2V0LCBXVEZNb3ZlKHRhc2spKSk7CiAgICAgaWYgKCFpc1Nj
aGVkdWxlZCgpICYmICFtX2N1cnJlbnRseVJ1bm5pbmdUYXNrKQotICAgICAgICBzZXRUaW1lVW50
aWxGaXJlKDBfcyk7CisgICAgICAgIHNjaGVkdWxlVGltZXIoMF9zKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9t
aXNlRGVmZXJyZWRUaW1lci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvbWlz
ZURlZmVycmVkVGltZXIuaAppbmRleCBhNTJlYjY0YjNhNzA3OWNhMTliZWZiMzhiZmNiMWFmM2Qw
NjAzNTllLi42MTViMDg3N2U3OGFiNzVlM2YwYWU4YWNlY2Y2NDBkZDE0MTQ2ODhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNlRGVmZXJyZWRUaW1lci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVy
LmgKQEAgLTQ0LDkgKzQ0LDkgQEAgcHVibGljOgogCiAgICAgUHJvbWlzZURlZmVycmVkVGltZXIo
Vk0mKTsKIAotICAgIHZvaWQgZG9Xb3JrKFZNJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkb1dvcmso
KSBvdmVycmlkZTsKIAotICAgIHZvaWQgYWRkUGVuZGluZ1Byb21pc2UoVk0mLCBKU1Byb21pc2VE
ZWZlcnJlZCosIFZlY3RvcjxTdHJvbmc8SlNDZWxsPj4mJiBkZXBlbmRlbmNpZXMpOworICAgIHZv
aWQgYWRkUGVuZGluZ1Byb21pc2UoSlNQcm9taXNlRGVmZXJyZWQqLCBWZWN0b3I8U3Ryb25nPEpT
Q2VsbD4+JiYgZGVwZW5kZW5jaWVzKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGhhc1Bl
bmRpbmdQcm9taXNlKEpTUHJvbWlzZURlZmVycmVkKiB0aWNrZXQpOwogICAgIEpTX0VYUE9SVF9Q
UklWQVRFIGJvb2wgaGFzRGVwZW5kYW5jeUluUGVuZGluZ1Byb21pc2UoSlNQcm9taXNlRGVmZXJy
ZWQqIHRpY2tldCwgSlNDZWxsKiBkZXBlbmRlbmN5KTsKICAgICAvLyBKU1Byb21pc2VEZWZlcnJl
ZCBzaG91bGQgaGFuZGxlIGNhbmNlbGluZyB3aGVuIHRoZSBwcm9taXNlIGlzIHJlc29sdmVkIG9y
IHJlamVjdGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IGI5YTkwMzYy
ODRjOGUyMDgzNjYwYWE0ZWExNjBiNTA5OTkzOTEyZWMuLmYxMGZmZGJjNTdmYWUxZWEwYmU1Y2E1
Y2Y2YmJjYTBiN2FlNTRjYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAg
LTM4MSw4ICszODEsNiBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUp
CiAgICAgdXBkYXRlU29mdFJlc2VydmVkWm9uZVNpemUoT3B0aW9uczo6c29mdFJlc2VydmVkWm9u
ZVNpemUoKSk7CiAgICAgc2V0TGFzdFN0YWNrVG9wKHN0YWNrLm9yaWdpbigpKTsKIAotICAgIEpT
UnVuTG9vcFRpbWVyOjpNYW5hZ2VyOjpzaGFyZWQoKS5yZWdpc3RlclZNKCp0aGlzKTsKLQogICAg
IC8vIE5lZWQgdG8gYmUgY2FyZWZ1bCB0byBrZWVwIGV2ZXJ5dGhpbmcgY29uc2lzdGVudCBoZXJl
CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodGhpcyk7CiAgICAgQXRvbWljU3RyaW5nVGFibGUqIGV4
aXN0aW5nRW50cnlBdG9taWNTdHJpbmdUYWJsZSA9IFRocmVhZDo6Y3VycmVudCgpLnNldEN1cnJl
bnRBdG9taWNTdHJpbmdUYWJsZShtX2F0b21pY1N0cmluZ1RhYmxlKTsKQEAgLTU4Myw4ICs1ODEs
NiBAQCBWTTo6flZNKCkKICAgICBBU1NFUlQoY3VycmVudFRocmVhZElzSG9sZGluZ0FQSUxvY2so
KSk7CiAgICAgbV9hcGlMb2NrLT53aWxsRGVzdHJveVZNKHRoaXMpOwogICAgIGhlYXAubGFzdENo
YW5jZVRvRmluYWxpemUoKTsKLQotICAgIEpTUnVuTG9vcFRpbWVyOjpNYW5hZ2VyOjpzaGFyZWQo
KS51bnJlZ2lzdGVyVk0oKnRoaXMpOwogICAgIAogICAgIGRlbGV0ZSBpbnRlcnByZXRlcjsKICNp
Zm5kZWYgTkRFQlVHCkBAIC0xMjEzLDExICsxMjA5LDI3IEBAIHZvaWQgVk06OnZlcmlmeUV4Y2Vw
dGlvbkNoZWNrTmVlZElzU2F0aXNmaWVkKHVuc2lnbmVkIHJlY3Vyc2lvbkRlcHRoLCBFeGNlcHRp
b25FCiAjZW5kaWYKIAogI2lmIFVTRShDRikKK3ZvaWQgVk06OnJlZ2lzdGVyUnVuTG9vcFRpbWVy
KEpTUnVuTG9vcFRpbWVyKiB0aW1lcikKK3sKKyAgICBBU1NFUlQocnVuTG9vcCgpKTsKKyAgICBB
U1NFUlQoIW1fcnVuTG9vcFRpbWVycy5jb250YWlucyh0aW1lcikpOworICAgIG1fcnVuTG9vcFRp
bWVycy5hZGQodGltZXIpOworICAgIHRpbWVyLT5zZXRSdW5Mb29wKHJ1bkxvb3AoKSk7Cit9CisK
K3ZvaWQgVk06OnVucmVnaXN0ZXJSdW5Mb29wVGltZXIoSlNSdW5Mb29wVGltZXIqIHRpbWVyKQor
eworICAgIEFTU0VSVChtX3J1bkxvb3BUaW1lcnMuY29udGFpbnModGltZXIpKTsKKyAgICBtX3J1
bkxvb3BUaW1lcnMucmVtb3ZlKHRpbWVyKTsKKyAgICB0aW1lci0+c2V0UnVuTG9vcChudWxscHRy
KTsKK30KKwogdm9pZCBWTTo6c2V0UnVuTG9vcChDRlJ1bkxvb3BSZWYgcnVuTG9vcCkKIHsKICAg
ICBBU1NFUlQocnVuTG9vcCk7CiAgICAgbV9ydW5Mb29wID0gcnVuTG9vcDsKLSAgICBKU1J1bkxv
b3BUaW1lcjo6TWFuYWdlcjo6c2hhcmVkKCkuZGlkQ2hhbmdlUnVuTG9vcCgqdGhpcywgcnVuTG9v
cCk7CisgICAgZm9yIChhdXRvIHRpbWVyIDogbV9ydW5Mb29wVGltZXJzKQorICAgICAgICB0aW1l
ci0+c2V0UnVuTG9vcChydW5Mb29wKTsKIH0KICNlbmRpZiAvLyBVU0UoQ0YpCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCmluZGV4IDhkNmE4ZjgwZWI4YzgwZDA0NWU1ODdlZjdjYjhlZGJl
MWZiOTk5NTIuLmYxYjkxMDE3YzM0OTJiNWMxNWE2MDIxMTNkODMzMWJiNmZjMTcyYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtMzAyLDYgKzMwMiw3IEBAIHByaXZhdGU6CiAg
ICAgUmVmUHRyPEpTTG9jaz4gbV9hcGlMb2NrOwogI2lmIFVTRShDRikKICAgICAvLyBUaGVzZSBu
ZWVkIHRvIGJlIGluaXRpYWxpemVkIGJlZm9yZSBoZWFwIGJlbG93LgorICAgIEhhc2hTZXQ8SlNS
dW5Mb29wVGltZXIqPiBtX3J1bkxvb3BUaW1lcnM7CiAgICAgUmV0YWluUHRyPENGUnVuTG9vcFJl
Zj4gbV9ydW5Mb29wOwogI2VuZGlmCiAKQEAgLTg4MSw2ICs4ODIsOCBAQCBwdWJsaWM6CiAKICNp
ZiBVU0UoQ0YpCiAgICAgQ0ZSdW5Mb29wUmVmIHJ1bkxvb3AoKSBjb25zdCB7IHJldHVybiBtX3J1
bkxvb3AuZ2V0KCk7IH0KKyAgICB2b2lkIHJlZ2lzdGVyUnVuTG9vcFRpbWVyKEpTUnVuTG9vcFRp
bWVyKik7CisgICAgdm9pZCB1bnJlZ2lzdGVyUnVuTG9vcFRpbWVyKEpTUnVuTG9vcFRpbWVyKik7
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRSdW5Mb29wKENGUnVuTG9vcFJlZik7CiAj
ZW5kaWYgLy8gVVNFKENGKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAKaW5kZXggOTZkNGMxNGQ3NGM3ZWUxYWY4YWVl
NzYxMGM0OTRhYTdjOTRiMDZjNS4uMDg2NmFhZjMxM2UwYzk5NGIzMWMxMmQwNGQwN2M1MTdhZjU0
YjVlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5UHJvdG90eXBlLmNwcApAQCAtOTEsNyArOTEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJBc3Nl
bWJseU1vZHVsZVZhbGlkYXRlQXN5bmNJbnRlcm5hbChFeGVjU3RhdGUqIGV4ZWMsIEpTUHJvbWlz
ZURlZgogICAgIFZlY3RvcjxTdHJvbmc8SlNDZWxsPj4gZGVwZW5kZW5jaWVzOwogICAgIGRlcGVu
ZGVuY2llcy5hcHBlbmQoU3Ryb25nPEpTQ2VsbD4odm0sIGdsb2JhbE9iamVjdCkpOwogCi0gICAg
dm0ucHJvbWlzZURlZmVycmVkVGltZXItPmFkZFBlbmRpbmdQcm9taXNlKHZtLCBwcm9taXNlLCBX
VEZNb3ZlKGRlcGVuZGVuY2llcykpOworICAgIHZtLnByb21pc2VEZWZlcnJlZFRpbWVyLT5hZGRQ
ZW5kaW5nUHJvbWlzZShwcm9taXNlLCBXVEZNb3ZlKGRlcGVuZGVuY2llcykpOwogCiAgICAgV2Fz
bTo6TW9kdWxlOjp2YWxpZGF0ZUFzeW5jKCZ2bS53YXNtQ29udGV4dCwgV1RGTW92ZShzb3VyY2Up
LCBjcmVhdGVTaGFyZWRUYXNrPFdhc206Ok1vZHVsZTo6Q2FsbGJhY2tUeXBlPihbcHJvbWlzZSwg
Z2xvYmFsT2JqZWN0LCAmdm1dIChXYXNtOjpNb2R1bGU6OlZhbGlkYXRpb25SZXN1bHQmJiByZXN1
bHQpIG11dGFibGUgewogICAgICAgICB2bS5wcm9taXNlRGVmZXJyZWRUaW1lci0+c2NoZWR1bGVX
b3JrU29vbihwcm9taXNlLCBbcHJvbWlzZSwgZ2xvYmFsT2JqZWN0LCByZXN1bHQgPSBXVEZNb3Zl
KHJlc3VsdCksICZ2bV0gKCkgbXV0YWJsZSB7CkBAIC0xNzMsNyArMTczLDcgQEAgc3RhdGljIHZv
aWQgaW5zdGFudGlhdGUoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMsIEpTUHJvbWlzZURlZmVycmVk
KiBwcm9taXNlLCBKU1cKICAgICAvLyBUaGUgaW5zdGFuY2Uga2VlcHMgdGhlIG1vZHVsZSBhbGl2
ZS4KICAgICBkZXBlbmRlbmNpZXMuYXBwZW5kKFN0cm9uZzxKU0NlbGw+KHZtLCBpbnN0YW5jZSkp
OwogICAgIGRlcGVuZGVuY2llcy5hcHBlbmQoU3Ryb25nPEpTQ2VsbD4odm0sIGltcG9ydE9iamVj
dCkpOwotICAgIHZtLnByb21pc2VEZWZlcnJlZFRpbWVyLT5hZGRQZW5kaW5nUHJvbWlzZSh2bSwg
cHJvbWlzZSwgV1RGTW92ZShkZXBlbmRlbmNpZXMpKTsKKyAgICB2bS5wcm9taXNlRGVmZXJyZWRU
aW1lci0+YWRkUGVuZGluZ1Byb21pc2UocHJvbWlzZSwgV1RGTW92ZShkZXBlbmRlbmNpZXMpKTsK
ICAgICAvLyBOb3RlOiBUaGlzIGNvbXBsZXRpb24gdGFzayBtYXkgb3IgbWF5IG5vdCBnZXQgY2Fs
bGVkIGltbWVkaWF0ZWx5LgogICAgIG1vZHVsZS0+bW9kdWxlKCkuY29tcGlsZUFzeW5jKCZ2bS53
YXNtQ29udGV4dCwgaW5zdGFuY2UtPm1lbW9yeU1vZGUoKSwgY3JlYXRlU2hhcmVkVGFzazxXYXNt
OjpDb2RlQmxvY2s6OkNhbGxiYWNrVHlwZT4oW3Byb21pc2UsIGluc3RhbmNlLCBtb2R1bGUsIGlt
cG9ydE9iamVjdCwgcmVzb2x2ZUtpbmQsIGNyZWF0aW9uTW9kZSwgJnZtXSAoUmVmPFdhc206OkNv
ZGVCbG9jaz4mJiByZWZDb2RlQmxvY2spIG11dGFibGUgewogICAgICAgICBSZWZQdHI8V2FzbTo6
Q29kZUJsb2NrPiBjb2RlQmxvY2sgPSBXVEZNb3ZlKHJlZkNvZGVCbG9jayk7CkBAIC0xOTQsNyAr
MTk0LDcgQEAgc3RhdGljIHZvaWQgY29tcGlsZUFuZEluc3RhbnRpYXRlKFZNJiB2bSwgRXhlY1N0
YXRlKiBleGVjLCBKU1Byb21pc2VEZWZlcnJlZCogcHIKICAgICBWZWN0b3I8U3Ryb25nPEpTQ2Vs
bD4+IGRlcGVuZGVuY2llczsKICAgICBkZXBlbmRlbmNpZXMuYXBwZW5kKFN0cm9uZzxKU0NlbGw+
KHZtLCBpbXBvcnRPYmplY3QpKTsKICAgICBkZXBlbmRlbmNpZXMuYXBwZW5kKFN0cm9uZzxKU0Nl
bGw+KHZtLCBtb2R1bGVLZXlDZWxsKSk7Ci0gICAgdm0ucHJvbWlzZURlZmVycmVkVGltZXItPmFk
ZFBlbmRpbmdQcm9taXNlKHZtLCBwcm9taXNlLCBXVEZNb3ZlKGRlcGVuZGVuY2llcykpOworICAg
IHZtLnByb21pc2VEZWZlcnJlZFRpbWVyLT5hZGRQZW5kaW5nUHJvbWlzZShwcm9taXNlLCBXVEZN
b3ZlKGRlcGVuZGVuY2llcykpOwogCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHNvdXJjZSA9IGNyZWF0
ZVNvdXJjZUJ1ZmZlckZyb21WYWx1ZSh2bSwgZXhlYywgYnVmZmVyKTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCByZWplY3QoZXhlYywgc2NvcGUsIHByb21pc2UpKTsKQEAgLTIzMSw3
ICsyMzEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJBc3NlbWJseU1vZHVsZUluc3RhbnRpbmF0ZUFzeW5j
SW50ZXJuYWwoRXhlY1N0YXRlKiBleGVjLCBKU1Byb21pcwogICAgIFZlY3RvcjxTdHJvbmc8SlND
ZWxsPj4gZGVwZW5kZW5jaWVzOwogICAgIGRlcGVuZGVuY2llcy5hcHBlbmQoU3Ryb25nPEpTQ2Vs
bD4odm0sIGltcG9ydE9iamVjdCkpOwogICAgIGRlcGVuZGVuY2llcy5hcHBlbmQoU3Ryb25nPEpT
Q2VsbD4odm0sIGdsb2JhbE9iamVjdCkpOwotICAgIHZtLnByb21pc2VEZWZlcnJlZFRpbWVyLT5h
ZGRQZW5kaW5nUHJvbWlzZSh2bSwgcHJvbWlzZSwgV1RGTW92ZShkZXBlbmRlbmNpZXMpKTsKKyAg
ICB2bS5wcm9taXNlRGVmZXJyZWRUaW1lci0+YWRkUGVuZGluZ1Byb21pc2UocHJvbWlzZSwgV1RG
TW92ZShkZXBlbmRlbmNpZXMpKTsKIAogICAgIFdhc206Ok1vZHVsZTo6dmFsaWRhdGVBc3luYygm
dm0ud2FzbUNvbnRleHQsIFdURk1vdmUoc291cmNlKSwgY3JlYXRlU2hhcmVkVGFzazxXYXNtOjpN
b2R1bGU6OkNhbGxiYWNrVHlwZT4oW3Byb21pc2UsIGltcG9ydE9iamVjdCwgZ2xvYmFsT2JqZWN0
LCAmdm1dIChXYXNtOjpNb2R1bGU6OlZhbGlkYXRpb25SZXN1bHQmJiByZXN1bHQpIG11dGFibGUg
ewogICAgICAgICB2bS5wcm9taXNlRGVmZXJyZWRUaW1lci0+c2NoZWR1bGVXb3JrU29vbihwcm9t
aXNlLCBbcHJvbWlzZSwgaW1wb3J0T2JqZWN0LCBnbG9iYWxPYmplY3QsIHJlc3VsdCA9IFdURk1v
dmUocmVzdWx0KSwgJnZtXSAoKSBtdXRhYmxlIHsKQEAgLTMxMCw3ICszMTAsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5Q29tcGlsZVN0cmVhbWluZ0ludGVybmFs
KEV4ZWNTdGF0ZSogZXhlYwogCiAgICAgVmVjdG9yPFN0cm9uZzxKU0NlbGw+PiBkZXBlbmRlbmNp
ZXM7CiAgICAgZGVwZW5kZW5jaWVzLmFwcGVuZChTdHJvbmc8SlNDZWxsPih2bSwgZ2xvYmFsT2Jq
ZWN0KSk7Ci0gICAgdm0ucHJvbWlzZURlZmVycmVkVGltZXItPmFkZFBlbmRpbmdQcm9taXNlKHZt
LCBwcm9taXNlLCBXVEZNb3ZlKGRlcGVuZGVuY2llcykpOworICAgIHZtLnByb21pc2VEZWZlcnJl
ZFRpbWVyLT5hZGRQZW5kaW5nUHJvbWlzZShwcm9taXNlLCBXVEZNb3ZlKGRlcGVuZGVuY2llcykp
OwogCiAgICAgaWYgKGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+Y29t
cGlsZVN0cmVhbWluZykKICAgICAgICAgZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RU
YWJsZSgpLT5jb21waWxlU3RyZWFtaW5nKGdsb2JhbE9iamVjdCwgZXhlYywgcHJvbWlzZSwgZXhl
Yy0+YXJndW1lbnQoMCkpOwpAQCAtMzQ3LDcgKzM0Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgd2ViQXNzZW1ibHlJbnN0YW50aWF0ZVN0cmVhbWluZ0ludGVybmFsKEV4ZWNTdGF0
ZSoKICAgICAgICAgICAgICAgICBWZWN0b3I8U3Ryb25nPEpTQ2VsbD4+IGRlcGVuZGVuY2llczsK
ICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXMuYXBwZW5kKFN0cm9uZzxKU0NlbGw+KHZtLCBn
bG9iYWxPYmplY3QpKTsKICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXMuYXBwZW5kKFN0cm9u
ZzxKU0NlbGw+KHZtLCBpbXBvcnRPYmplY3QpKTsKLSAgICAgICAgICAgICAgICB2bS5wcm9taXNl
RGVmZXJyZWRUaW1lci0+YWRkUGVuZGluZ1Byb21pc2Uodm0sIHByb21pc2UsIFdURk1vdmUoZGVw
ZW5kZW5jaWVzKSk7CisgICAgICAgICAgICAgICAgdm0ucHJvbWlzZURlZmVycmVkVGltZXItPmFk
ZFBlbmRpbmdQcm9taXNlKHByb21pc2UsIFdURk1vdmUoZGVwZW5kZW5jaWVzKSk7CiAKICAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTg0ODg4PiBpZiB0aGVy
ZSdzIGFuIGltcG9ydE9iamVjdCBhbmQgaXQgY29udGFpbnMgYSBNZW1vcnksIHRoZW4gd2UgY2Fu
IGNvbXBpbGUgdGhlIG1vZHVsZSB3aXRoIHRoZSByaWdodCBtZW1vcnkgdHlwZSAoZmFzdCBvciBu
b3QpIGJ5IGxvb2tpbmcgYXQgdGhlIG1lbW9yeSdzIHR5cGUuCiAgICAgICAgICAgICAgICAgZ2xv
YmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5pbnN0YW50aWF0ZVN0cmVhbWlu
ZyhnbG9iYWxPYmplY3QsIGV4ZWMsIHByb21pc2UsIGV4ZWMtPmFyZ3VtZW50KDApLCBpbXBvcnRP
YmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJjZVVz
YWdlVGhyZWFkQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNh
Z2VUaHJlYWRDb2NvYS5tbQppbmRleCBmZTVhZjhkYTkyMmY3MmQ5YjhmNmFlOGE3NDNjNTVmZjkz
NDJkZmJkLi43ZTQ4MjI0N2JjYTE0M2NiMjRiY2EzZGY2YWEyNWJkZGRiYjA5Y2VkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VUaHJlYWRDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VUaHJlYWRDb2Nv
YS5tbQpAQCAtMjQ4LDkgKzI0OCw4IEBAIHZvaWQgUmVzb3VyY2VVc2FnZVRocmVhZDo6cGxhdGZv
cm1UaHJlYWRCb2R5KEpTQzo6Vk0qIHZtLCBSZXNvdXJjZVVzYWdlRGF0YSYgZGF0CiAKICAgICBk
YXRhLnRvdGFsRXh0ZXJuYWxTaXplID0gY3VycmVudEdDT3duZWRFeHRlcm5hbDsKIAotICAgIGF1
dG8gbm93ID0gTW9ub3RvbmljVGltZTo6bm93KCk7Ci0gICAgZGF0YS50aW1lT2ZOZXh0RWRlbkNv
bGxlY3Rpb24gPSBub3cgKyB2bS0+aGVhcC5lZGVuQWN0aXZpdHlDYWxsYmFjaygpLT50aW1lVW50
aWxGaXJlKCkudmFsdWVfb3IoU2Vjb25kcyhzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Omlu
ZmluaXR5KCkpKTsKLSAgICBkYXRhLnRpbWVPZk5leHRGdWxsQ29sbGVjdGlvbiA9IG5vdyArIHZt
LT5oZWFwLmZ1bGxBY3Rpdml0eUNhbGxiYWNrKCktPnRpbWVVbnRpbEZpcmUoKS52YWx1ZV9vcihT
ZWNvbmRzKHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSkpOworICAgIGRh
dGEudGltZU9mTmV4dEVkZW5Db2xsZWN0aW9uID0gdm0tPmhlYXAuZWRlbkFjdGl2aXR5Q2FsbGJh
Y2soKS0+bmV4dEZpcmVUaW1lKCk7CisgICAgZGF0YS50aW1lT2ZOZXh0RnVsbENvbGxlY3Rpb24g
PSB2bS0+aGVhcC5mdWxsQWN0aXZpdHlDYWxsYmFjaygpLT5uZXh0RmlyZVRpbWUoKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlVGhy
ZWFkTGludXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlVGhy
ZWFkTGludXguY3BwCmluZGV4IGRjYWZiNmY4YWZmZWRiOTRiNThhNzYzOWZjMDNhMzQ2NTA2NDE0
YTUuLjcwZjBkNjljMTFiMTc2ZTZlYTg1ZWVjZTY5MjFmZDk0ZDAwMmI2OTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZVRocmVhZExpbnV4LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2xpbnV4L1Jlc291cmNlVXNhZ2VUaHJlYWRMaW51eC5j
cHAKQEAgLTEsNiArMSw1IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNjksOSArMTY4LDggQEAgdm9pZCBS
ZXNvdXJjZVVzYWdlVGhyZWFkOjpwbGF0Zm9ybVRocmVhZEJvZHkoSlNDOjpWTSogdm0sIFJlc291
cmNlVXNhZ2VEYXRhJiBkYXQKIAogICAgIGRhdGEudG90YWxFeHRlcm5hbFNpemUgPSBjdXJyZW50
R0NPd25lZEV4dGVybmFsOwogCi0gICAgYXV0byBub3cgPSBNb25vdG9uaWNUaW1lOjpub3coKTsK
LSAgICBkYXRhLnRpbWVPZk5leHRFZGVuQ29sbGVjdGlvbiA9IG5vdyArIHZtLT5oZWFwLmVkZW5B
Y3Rpdml0eUNhbGxiYWNrKCktPnRpbWVVbnRpbEZpcmUoKS52YWx1ZV9vcihTZWNvbmRzKHN0ZDo6
bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSkpOwotICAgIGRhdGEudGltZU9mTmV4
dEZ1bGxDb2xsZWN0aW9uID0gbm93ICsgdm0tPmhlYXAuZnVsbEFjdGl2aXR5Q2FsbGJhY2soKS0+
dGltZVVudGlsRmlyZSgpLnZhbHVlX29yKFNlY29uZHMoc3RkOjpudW1lcmljX2xpbWl0czxkb3Vi
bGU+OjppbmZpbml0eSgpKSk7CisgICAgZGF0YS50aW1lT2ZOZXh0RWRlbkNvbGxlY3Rpb24gPSB2
bS0+aGVhcC5lZGVuQWN0aXZpdHlDYWxsYmFjaygpLT5uZXh0RmlyZVRpbWUoKTsKKyAgICBkYXRh
LnRpbWVPZk5leHRGdWxsQ29sbGVjdGlvbiA9IHZtLT5oZWFwLmZ1bGxBY3Rpdml0eUNhbGxiYWNr
KCktPm5leHRGaXJlVGltZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>