<?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>170625</bug_id>
          
          <creation_ts>2017-04-07 16:13:47 -0700</creation_ts>
          <short_desc>Start using MonotonicTime / Seconds in Timer class</short_desc>
          <delta_ts>2017-04-07 21:40:53 -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>WebCore Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>170639</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1295529</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-07 16:13:47 -0700</bug_when>
    <thetext>Start using MonotonicTime / Seconds in Timer class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295531</commentid>
    <comment_count>1</comment_count>
      <attachid>306546</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-07 16:16:41 -0700</bug_when>
    <thetext>Created attachment 306546
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295547</commentid>
    <comment_count>2</comment_count>
      <attachid>306546</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-04-07 16:55:58 -0700</bug_when>
    <thetext>Comment on attachment 306546
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=306546&amp;action=review

&gt; Source/WebCore/page/SuspendableTimer.cpp:118
&gt; +        m_savedRepeatInterval = Seconds { 0 };

0_s

&gt; Source/WebCore/page/SuspendableTimer.cpp:128
&gt;      return 0;

Why not change this function to return a Seconds?

&gt; Source/WebCore/page/SuspendableTimer.cpp:140
&gt; +        m_savedRepeatInterval = Seconds { 0 };

0_s

&gt; Source/WebCore/platform/ThreadTimers.cpp:46
&gt; +static const Seconds maxDurationOfFiringTimers { 0.050 };

50_ms

&gt; Source/WebCore/platform/ThreadTimers.cpp:92
&gt; +        m_sharedTimer-&gt;setFireInterval(std::max(nextFireTime - currentMonotonicTime, Seconds { }));

0_s

&gt; Source/WebCore/platform/ThreadTimers.cpp:122
&gt; +        if (!m_firingTimers || timeToQuit &lt; MonotonicTime::now())
&gt;              break;

Should we capture MonotonicTime::now() outside the loop?

&gt; Source/WebCore/platform/Timer.cpp:216
&gt; +    m_repeatInterval = Seconds { };

0_s

&gt; Source/WebCore/platform/Timer.cpp:220
&gt; +    ASSERT(m_repeatInterval == Seconds { 0 });

0_s

&gt; Source/WebCore/platform/Timer.cpp:224
&gt;  double TimerBase::nextFireInterval() const

Return a Seconds?

&gt; Source/WebCore/platform/Timer.cpp:416
&gt; +    return std::max(m_unalignedNextFireTime - MonotonicTime::now(), Seconds { 0 });

0_s

&gt; Source/WebCore/platform/Timer.h:68
&gt; +    void startOneShot(Seconds interval) { start(interval, Seconds { 0 }); }

0_s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295550</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-07 17:00:21 -0700</bug_when>
    <thetext>Will update the return values in a follow-up patch to keep patch size small.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295553</commentid>
    <comment_count>4</comment_count>
      <attachid>306551</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-07 17:03:29 -0700</bug_when>
    <thetext>Created attachment 306551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295606</commentid>
    <comment_count>5</comment_count>
      <attachid>306551</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-07 18:33:58 -0700</bug_when>
    <thetext>Comment on attachment 306551
Patch

Clearing flags on attachment: 306551

Committed r215136: &lt;http://trac.webkit.org/changeset/215136&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295607</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-07 18:33:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306546</attachid>
            <date>2017-04-07 16:16:41 -0700</date>
            <delta_ts>2017-04-07 17:03:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170625-20170407161640.patch</filename>
            <type>text/plain</type>
            <size>27083</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGU4OTRiNTZkYTcyMzgzNWMzZTEwYTdl
YmFlNWQzOWFjNjM3ZDNlNjkuLjUyMDg2NjQ1MTVmZWNiZTVlMjcwNGI5ZWU1NzdhMWIyMDVmYWY5
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCB1c2luZyBNb25vdG9uaWNUaW1lIC8gU2Vjb25k
cyBpbiBUaW1lciBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTcwNjI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIG1vZHVsbyBvcGVyYXRvciB0byBNb25vdG9uaWNUaW1lLgorCisgICAgICAg
ICogd3RmL01vbm90b25pY1RpbWUuaDoKKyAgICAgICAgKFdURjo6TW9ub3RvbmljVGltZTo6b3Bl
cmF0b3IlKToKKwogMjAxNy0wNC0wNyAgVGluZy1XZWkgTGFuICA8bGFudHc0NEBnbWFpbC5jb20+
CiAKICAgICAgICAgSW5jbHVkZSBjc3RkaW8gYmVmb3JlIHVzaW5nIHNzY2FuZiBhbmQgc3RkZXJy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZDg2NTFmYTA0ZDdiODk0MDViMDQ4YzY4NzdkYjljOWUzMzNlZWY1Yy4u
OGRhMDA4YzI3NGUzNDU3YWM2M2JiNDU5OWUwYjQ0MWYyYmJhMzQ2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSw1ICsxLDU5IEBACiAyMDE3LTA0LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKKyAgICAgICAgU3RhcnQgdXNpbmcgTW9ub3RvbmljVGltZSAvIFNlY29uZHMgaW4gVGltZXIg
Y2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MDYyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0
YXJ0IHVzaW5nIE1vbm90b25pY1RpbWUgLyBTZWNvbmRzIGluIFRpbWVyIGNsYXNzLiBNb3JlIHdv
cmsgd2lsbCBiZSBuZWVkZWQKKyAgICAgICAgZm9yIHRoZSB0cmFuc2l0aW9uIHRvIGJlIGNvbXBs
ZXRlLiBJIHBsYW4gdG8gZG8gdGhpcyBpbiBhIGZvbGxvdy11cC4KKworICAgICAgICAqIHBhZ2Uv
RE9NVGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OmFsaWduZWRGaXJlVGlt
ZSk6CisgICAgICAgICogcGFnZS9ET01UaW1lci5oOgorICAgICAgICAqIHBhZ2UvU3VzcGVuZGFi
bGVUaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyOjpzdXNwZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0UmVwZWF0aW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0T25lU2hvdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyOjpyZXBlYXRJbnRlcnZhbCk6CisgICAgICAg
IChXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyOjphdWdtZW50RmlyZUludGVydmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbCk6Cisg
ICAgICAgICogcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdXNw
ZW5kYWJsZVRpbWVyOjpzdGFydFJlcGVhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5k
YWJsZVRpbWVyOjpzdGFydE9uZVNob3QpOgorICAgICAgICAoV2ViQ29yZTo6U3VzcGVuZGFibGVU
aW1lcjo6YXVnbWVudEZpcmVJbnRlcnZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJs
ZVRpbWVyOjphdWdtZW50UmVwZWF0SW50ZXJ2YWwpOgorICAgICAgICAqIHBsYXRmb3JtL1RocmVh
ZFRpbWVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRUaW1lcnM6OlRocmVhZFRpbWVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRUaW1lcnM6OnNldFNoYXJlZFRpbWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRocmVhZFRpbWVyczo6dXBkYXRlU2hhcmVkVGltZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkVGltZXJzOjpzaGFyZWRUaW1lckZpcmVkSW50ZXJuYWwpOgorICAg
ICAgICAoV2ViQ29yZTo6VGhyZWFkVGltZXJzOjpmaXJlVGltZXJzSW5OZXN0ZWRFdmVudExvb3Ap
OgorICAgICAgICAqIHBsYXRmb3JtL1RocmVhZFRpbWVycy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L1RpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVySGVhcExlc3NUaGFuRnVuY3Rpb246
Om9wZXJhdG9yKCkpOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjpUaW1lckJhc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpU
aW1lckJhc2U6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjpuZXh0RmlyZUlu
dGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6aGVhcFBvcCk6CisgICAgICAg
IChXZWJDb3JlOjpUaW1lckJhc2U6OnVwZGF0ZUhlYXBJZk5lZWRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpUaW1lckJhc2U6OnNldE5leHRGaXJlVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
ckJhc2U6Om5leHRVbmFsaWduZWRGaXJlSW50ZXJ2YWwpOgorICAgICAgICAqIHBsYXRmb3JtL1Rp
bWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlRpbWVyQmFzZTo6c3RhcnRPbmVTaG90KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVy
QmFzZTo6cmVwZWF0SW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjpyZXBl
YXRJbnRlcnZhbFNlY29uZHMpOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjphdWdtZW50
RmlyZUludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6YXVnbWVudFJlcGVh
dEludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6YWxpZ25lZEZpcmVUaW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6aXNBY3RpdmUpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aXNUaW1l
clRocm90dGxlZCk6CisKKzIwMTctMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKwogICAgICAgICBUaHJvdHRsZSAvIEFsaWduIERPTSBUaW1lcnMgaW4gY3Jvc3Mtb3JpZ2lu
IGlmcmFtZXMgdG8gMzBmcHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3MDYxMwogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE1MDY0NDQ+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmggYi9Tb3VyY2UvV1RGL3d0Zi9N
b25vdG9uaWNUaW1lLmgKaW5kZXggMGUzOWYwNDJiMTc1YTBiZDU4MDVhZWE3NjZlOTkxZTI2NTUz
MjkzZC4uMTA0MmQ1MjY3ZDkzYjc3MjhjODg5MjhkODQzYWFmNjM5OGIyYTExOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01v
bm90b25pY1RpbWUuaApAQCAtNzgsNiArNzgsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAg
cmV0dXJuIGZyb21SYXdTZWNvbmRzKG1fdmFsdWUgLSBvdGhlci52YWx1ZSgpKTsKICAgICB9CisK
KyAgICBTZWNvbmRzIG9wZXJhdG9yJShTZWNvbmRzIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIFNlY29uZHMgeyBmbW9kKG1fdmFsdWUsIG90aGVyLnZhbHVlKCkpIH07CisgICAg
fQogICAgIAogICAgIC8vIFRpbWUgaXMgYSBzY2FsYXIgYW5kIHNjYWxhcnMgY2FuIGJlIG5lZ2F0
ZWQgYXMgdGhpcyBjb3VsZCBhcmlzZSBmcm9tIGFsZ2VicmFpYwogICAgIC8vIHRyYW5zZm9ybWF0
aW9ucy4gU28sIHdlIGFsbG93IGl0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01UaW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAppbmRleCAxZjgw
YzY5ZWViNDA4YzQ1NmI5MTAwNjJhN2RlODYzNjE5ZTIxZWZhLi40ODg3NmVjZGUwOTJkZGUzNGNj
MDQ2YmU3NjMxODUzYTc1MmEyZGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVRpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcApAQCAtNDI3
LDcgKzQyNyw3IEBAIFNlY29uZHMgRE9NVGltZXI6OmludGVydmFsQ2xhbXBlZFRvTWluaW11bSgp
IGNvbnN0CiAgICAgcmV0dXJuIGludGVydmFsOwogfQogCi1zdGQ6Om9wdGlvbmFsPFNlY29uZHM+
IERPTVRpbWVyOjphbGlnbmVkRmlyZVRpbWUoU2Vjb25kcyBmaXJlVGltZSkgY29uc3QKK3N0ZDo6
b3B0aW9uYWw8TW9ub3RvbmljVGltZT4gRE9NVGltZXI6OmFsaWduZWRGaXJlVGltZShNb25vdG9u
aWNUaW1lIGZpcmVUaW1lKSBjb25zdAogewogICAgIFNlY29uZHMgYWxpZ25tZW50SW50ZXJ2YWwg
PSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwobV9u
ZXN0aW5nTGV2ZWwgPj0gbWF4VGltZXJOZXN0aW5nTGV2ZWwpOwogICAgIGlmICghYWxpZ25tZW50
SW50ZXJ2YWwpCkBAIC00MzgsNyArNDM4LDcgQEAgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBET01U
aW1lcjo6YWxpZ25lZEZpcmVUaW1lKFNlY29uZHMgZmlyZVRpbWUpIGNvbnN0CiAgICAgLy8gRm9y
Y2UgYWxpZ25tZW50IHRvIHJhbmRvbWl6ZWRBbGlnbm1lbnQgZnJhY3Rpb24gb2YgdGhlIHdheSBi
ZXR3ZWVuIGFsaWduZW1udEludGVydmFscywgZS5nLgogICAgIC8vIGlmIGFsaWdubWVudEludGVy
dmFsIGlzIDEwX21zIGFuZCByYW5kb21pemVkQWxpZ25tZW50IGlzIDAuMyB0aGlzIHdpbGwgYWxp
Z24gdG8gMywgMTMsIDIzLCAuLi4KICAgICBTZWNvbmRzIHJhbmRvbWl6ZWRPZmZzZXQgPSBhbGln
bm1lbnRJbnRlcnZhbCAqIHJhbmRvbWl6ZWRQcm9wb3J0aW9uOwotICAgIFNlY29uZHMgYWRqdXN0
ZWRGaXJlVGltZSA9IGZpcmVUaW1lIC0gcmFuZG9taXplZE9mZnNldDsKKyAgICBNb25vdG9uaWNU
aW1lIGFkanVzdGVkRmlyZVRpbWUgPSBmaXJlVGltZSAtIHJhbmRvbWl6ZWRPZmZzZXQ7CiAgICAg
cmV0dXJuIGFkanVzdGVkRmlyZVRpbWUgLSAoYWRqdXN0ZWRGaXJlVGltZSAlIGFsaWdubWVudElu
dGVydmFsKSArIGFsaWdubWVudEludGVydmFsICsgcmFuZG9taXplZE9mZnNldDsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01UaW1lci5oCmluZGV4IGIzZGZlOGE1YjljYjBkZjgzZTgwOTFiZDNlY2VhNGY4ODQ1
MDMzNzIuLjlmMWUxYTA2NWM3MzYxYTBiN2MwOTJmZWU4ZjMxNjk0ZTc3YTU5OGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVRpbWVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJTdXNwZW5kYWJsZVRp
bWVyLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDxtZW1v
cnk+CisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAKQEAgLTc0LDcgKzc1LDcgQEAgcHJp
dmF0ZToKICAgICAvLyBTdXNwZW5kYWJsZVRpbWVyCiAgICAgdm9pZCBmaXJlZCgpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlkU3RvcCgpIG92ZXJyaWRlOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6
b3B0aW9uYWw8U2Vjb25kcz4gYWxpZ25lZEZpcmVUaW1lKFNlY29uZHMpIGNvbnN0IG92ZXJyaWRl
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljVGltZT4gYWxpZ25l
ZEZpcmVUaW1lKE1vbm90b25pY1RpbWUpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gQWN0aXZl
RE9NT2JqZWN0IEFQSS4KICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxl
VGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAppbmRl
eCA3OTBkNGMzM2JlZmE3YTNmYzgyYzQ5MTVhOGZmOWExNzJlMWFjODI1Li4xOTQ0MzM3NzUxMGJi
OTVmMzM3YTkxNTIxMTMwOTc1ODQ4MjQxN2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVu
ZGFibGVUaW1lci5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpz
dXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiAgICAgbV9zYXZlZElzQWN0aXZlID0gVGltZXJC
YXNlOjppc0FjdGl2ZSgpOwogICAgIGlmIChtX3NhdmVkSXNBY3RpdmUpIHsKICAgICAgICAgbV9z
YXZlZE5leHRGaXJlSW50ZXJ2YWwgPSBUaW1lckJhc2U6Om5leHRVbmFsaWduZWRGaXJlSW50ZXJ2
YWwoKTsKLSAgICAgICAgbV9zYXZlZFJlcGVhdEludGVydmFsID0gVGltZXJCYXNlOjpyZXBlYXRJ
bnRlcnZhbCgpOworICAgICAgICBtX3NhdmVkUmVwZWF0SW50ZXJ2YWwgPSBUaW1lckJhc2U6OnJl
cGVhdEludGVydmFsU2Vjb25kcygpOwogICAgICAgICBUaW1lckJhc2U6OnN0b3AoKTsKICAgICB9
CiB9CkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgU3VzcGVuZGFibGVUaW1lcjo6Y2FuY2VsKCkKICAg
ICAgICAgbV9zdXNwZW5kZWQgPSBmYWxzZTsKIH0KIAotdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpz
dGFydFJlcGVhdGluZyhkb3VibGUgcmVwZWF0SW50ZXJ2YWwpCit2b2lkIFN1c3BlbmRhYmxlVGlt
ZXI6OnN0YXJ0UmVwZWF0aW5nKFNlY29uZHMgcmVwZWF0SW50ZXJ2YWwpCiB7CiAgICAgaWYgKCFt
X3N1c3BlbmRlZCkKICAgICAgICAgVGltZXJCYXNlOjpzdGFydFJlcGVhdGluZyhyZXBlYXRJbnRl
cnZhbCk7CkBAIC0xMDgsMTQgKzEwOCwxNCBAQCB2b2lkIFN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0
UmVwZWF0aW5nKGRvdWJsZSByZXBlYXRJbnRlcnZhbCkKICAgICB9CiB9CiAKLXZvaWQgU3VzcGVu
ZGFibGVUaW1lcjo6c3RhcnRPbmVTaG90KGRvdWJsZSBpbnRlcnZhbCkKK3ZvaWQgU3VzcGVuZGFi
bGVUaW1lcjo6c3RhcnRPbmVTaG90KFNlY29uZHMgaW50ZXJ2YWwpCiB7CiAgICAgaWYgKCFtX3N1
c3BlbmRlZCkKICAgICAgICAgVGltZXJCYXNlOjpzdGFydE9uZVNob3QoaW50ZXJ2YWwpOwogICAg
IGVsc2UgewogICAgICAgICBtX3NhdmVkSXNBY3RpdmUgPSB0cnVlOwogICAgICAgICBtX3NhdmVk
TmV4dEZpcmVJbnRlcnZhbCA9IGludGVydmFsOwotICAgICAgICBtX3NhdmVkUmVwZWF0SW50ZXJ2
YWwgPSAwOworICAgICAgICBtX3NhdmVkUmVwZWF0SW50ZXJ2YWwgPSBTZWNvbmRzIHsgMCB9Owog
ICAgIH0KIH0KIApAQCAtMTI0LDExICsxMjQsMTEgQEAgZG91YmxlIFN1c3BlbmRhYmxlVGltZXI6
OnJlcGVhdEludGVydmFsKCkgY29uc3QKICAgICBpZiAoIW1fc3VzcGVuZGVkKQogICAgICAgICBy
ZXR1cm4gVGltZXJCYXNlOjpyZXBlYXRJbnRlcnZhbCgpOwogICAgIGlmIChtX3NhdmVkSXNBY3Rp
dmUpCi0gICAgICAgIHJldHVybiBtX3NhdmVkUmVwZWF0SW50ZXJ2YWw7CisgICAgICAgIHJldHVy
biBtX3NhdmVkUmVwZWF0SW50ZXJ2YWwudmFsdWUoKTsKICAgICByZXR1cm4gMDsKIH0KIAotdm9p
ZCBTdXNwZW5kYWJsZVRpbWVyOjphdWdtZW50RmlyZUludGVydmFsKGRvdWJsZSBkZWx0YSkKK3Zv
aWQgU3VzcGVuZGFibGVUaW1lcjo6YXVnbWVudEZpcmVJbnRlcnZhbChTZWNvbmRzIGRlbHRhKQog
ewogICAgIGlmICghbV9zdXNwZW5kZWQpCiAgICAgICAgIFRpbWVyQmFzZTo6YXVnbWVudEZpcmVJ
bnRlcnZhbChkZWx0YSk7CkBAIC0xMzcsMTEgKzEzNywxMSBAQCB2b2lkIFN1c3BlbmRhYmxlVGlt
ZXI6OmF1Z21lbnRGaXJlSW50ZXJ2YWwoZG91YmxlIGRlbHRhKQogICAgIH0gZWxzZSB7CiAgICAg
ICAgIG1fc2F2ZWRJc0FjdGl2ZSA9IHRydWU7CiAgICAgICAgIG1fc2F2ZWROZXh0RmlyZUludGVy
dmFsID0gZGVsdGE7Ci0gICAgICAgIG1fc2F2ZWRSZXBlYXRJbnRlcnZhbCA9IDA7CisgICAgICAg
IG1fc2F2ZWRSZXBlYXRJbnRlcnZhbCA9IFNlY29uZHMgeyAwIH07CiAgICAgfQogfQogCi12b2lk
IFN1c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbChkb3VibGUgZGVsdGEpCit2
b2lkIFN1c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbChTZWNvbmRzIGRlbHRh
KQogewogICAgIGlmICghbV9zdXNwZW5kZWQpCiAgICAgICAgIFRpbWVyQmFzZTo6YXVnbWVudFJl
cGVhdEludGVydmFsKGRlbHRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3Vz
cGVuZGFibGVUaW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgK
aW5kZXggY2QzZTI0N2IxMDgzNTQ0M2ZhNDZhN2ViY2RlOThlZTBiM2IwNjAzYy4uZjA2NzFkOTFl
Mzg3YmQzNTMxYzUyMGYxMmZmZmNhZWRiZDhjZGQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNw
ZW5kYWJsZVRpbWVyLmgKQEAgLTQ1LDE0ICs0NSwxNSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Fj
dGl2ZSgpIGNvbnN0IHsgcmV0dXJuIFRpbWVyQmFzZTo6aXNBY3RpdmUoKSB8fCAobV9zdXNwZW5k
ZWQgJiYgbV9zYXZlZElzQWN0aXZlKTsgfQogICAgIGJvb2wgaXNTdXNwZW5kZWQoKSBjb25zdCB7
IHJldHVybiBtX3N1c3BlbmRlZDsgfQogCi0gICAgdm9pZCBzdGFydFJlcGVhdGluZyhkb3VibGUg
cmVwZWF0SW50ZXJ2YWwpOwotICAgIHZvaWQgc3RhcnRPbmVTaG90KGRvdWJsZSBpbnRlcnZhbCk7
CisgICAgdm9pZCBzdGFydFJlcGVhdGluZyhkb3VibGUgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnRS
ZXBlYXRpbmcoU2Vjb25kcyB7IHJlcGVhdEludGVydmFsIH0pOyB9CisgICAgdm9pZCBzdGFydE9u
ZVNob3QoZG91YmxlIGludGVydmFsKSB7IHN0YXJ0T25lU2hvdChTZWNvbmRzIHsgaW50ZXJ2YWwg
fSk7IH0KKwogICAgIGRvdWJsZSByZXBlYXRJbnRlcnZhbCgpIGNvbnN0OwotICAgIHZvaWQgYXVn
bWVudEZpcmVJbnRlcnZhbChkb3VibGUgZGVsdGEpOwotICAgIHZvaWQgYXVnbWVudFJlcGVhdElu
dGVydmFsKGRvdWJsZSBkZWx0YSk7CisgICAgdm9pZCBhdWdtZW50RmlyZUludGVydmFsKGRvdWJs
ZSBkZWx0YSkgeyBhdWdtZW50RmlyZUludGVydmFsKFNlY29uZHMgeyBkZWx0YSB9KTsgfQorICAg
IHZvaWQgYXVnbWVudFJlcGVhdEludGVydmFsKGRvdWJsZSBkZWx0YSkgeyBhdWdtZW50UmVwZWF0
SW50ZXJ2YWwoU2Vjb25kcyB7IGRlbHRhIH0pOyB9CiAKLSAgICB2b2lkIHN0YXJ0UmVwZWF0aW5n
KFNlY29uZHMgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRpbmcocmVwZWF0SW50ZXJ2YWwu
dmFsdWUoKSk7IH0KLSAgICB2b2lkIHN0YXJ0T25lU2hvdChTZWNvbmRzIGludGVydmFsKSB7IHN0
YXJ0T25lU2hvdChpbnRlcnZhbC52YWx1ZSgpKTsgfQorICAgIHZvaWQgc3RhcnRSZXBlYXRpbmco
U2Vjb25kcyByZXBlYXRJbnRlcnZhbCk7CisgICAgdm9pZCBzdGFydE9uZVNob3QoU2Vjb25kcyBp
bnRlcnZhbCk7CiAKICAgICAvLyBGSVhNRTogVXNlIHRoZSBvdmVybG9hZHMgdGFraW5nIFNlY29u
ZHMgaW5zdGVhZCBhbmQgZHJvcCB0aGVzZS4KICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKHN0ZDo6
Y2hyb25vOjptaWxsaXNlY29uZHMgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRpbmcobXNU
b1NlY29uZHMocmVwZWF0SW50ZXJ2YWwpKTsgfQpAQCAtNjEsOCArNjIsOCBAQCBwdWJsaWM6CiAg
ICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyByZXBlYXRJbnRlcnZhbE1TKCkgY29uc3QgeyBy
ZXR1cm4gc2Vjb25kc1RvTVMocmVwZWF0SW50ZXJ2YWwoKSk7IH0KICAgICBTZWNvbmRzIHJlcGVh
dEludGVydmFsU2Vjb25kcygpIGNvbnN0IHsgcmV0dXJuIFNlY29uZHMgeyByZXBlYXRJbnRlcnZh
bCgpIH07IH0KIAotICAgIHZvaWQgYXVnbWVudEZpcmVJbnRlcnZhbChTZWNvbmRzIGRlbHRhKSB7
IGF1Z21lbnRGaXJlSW50ZXJ2YWwoZGVsdGEudmFsdWUoKSk7IH0KLSAgICB2b2lkIGF1Z21lbnRS
ZXBlYXRJbnRlcnZhbChTZWNvbmRzIGRlbHRhKSB7IGF1Z21lbnRSZXBlYXRJbnRlcnZhbChkZWx0
YS52YWx1ZSgpKTsgfQorICAgIHZvaWQgYXVnbWVudEZpcmVJbnRlcnZhbChTZWNvbmRzIGRlbHRh
KTsKKyAgICB2b2lkIGF1Z21lbnRSZXBlYXRJbnRlcnZhbChTZWNvbmRzIGRlbHRhKTsKIAogICAg
IC8vIEZJWE1FOiBVc2UgdGhlIG92ZXJsb2FkcyB0YWtpbmcgU2Vjb25kcyBpbnN0ZWFkIGFuZCBk
cm9wIHRoZXNlLgogICAgIHZvaWQgYXVnbWVudEZpcmVJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzIGRlbHRhKSB7IGF1Z21lbnRGaXJlSW50ZXJ2YWwobXNUb1NlY29uZHMoZGVsdGEp
KTsgfQpAQCAtODQsOCArODUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc3VzcGVuZChSZWFzb25G
b3JTdXNwZW5zaW9uKSBmaW5hbDsKICAgICB2b2lkIHJlc3VtZSgpIGZpbmFsOwogCi0gICAgZG91
YmxlIG1fc2F2ZWROZXh0RmlyZUludGVydmFsIHsgMCB9OwotICAgIGRvdWJsZSBtX3NhdmVkUmVw
ZWF0SW50ZXJ2YWwgeyAwIH07CisgICAgU2Vjb25kcyBtX3NhdmVkTmV4dEZpcmVJbnRlcnZhbDsK
KyAgICBTZWNvbmRzIG1fc2F2ZWRSZXBlYXRJbnRlcnZhbDsKIAogICAgIGJvb2wgbV9zdXNwZW5k
ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zYXZlZElzQWN0aXZlIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZFRpbWVycy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRUaW1lcnMuY3BwCmluZGV4IGUzZDY1ZWFiYmU0NTlkM2I3
YWVmZDE2ZDIzMWFhMTBmY2ZkYmNhNDQuLmFkYzgzMjliYWVjNjU1MmM1YzgwMzBlNjA4YTEyNzBi
MjllMGQ3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZFRpbWVy
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkVGltZXJzLmNwcApAQCAt
NDMsMTUgKzQzLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEZpcmUgdGltZXJzIGZvciB0
aGlzIGxlbmd0aCBvZiB0aW1lLCBhbmQgdGhlbiBxdWl0IHRvIGxldCB0aGUgcnVuIGxvb3AgcHJv
Y2VzcyB1c2VyIGlucHV0IGV2ZW50cy4KIC8vIDEwMG1zIGlzIGFib3V0IGEgcGVyY2VwdGFibGUg
ZGVsYXkgaW4gVUksIHNvIHVzZSBhIGhhbGYgb2YgdGhhdCBhcyBhIHRocmVzaG9sZC4KIC8vIFRo
aXMgaXMgdG8gcHJldmVudCBVSSBmcmVlemUgd2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgdGltZXJz
IG9yIG1hY2hpbmUgcGVyZm9ybWFuY2UgaXMgbG93Lgotc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhE
dXJhdGlvbk9mRmlyaW5nVGltZXJzID0gMC4wNTA7CitzdGF0aWMgY29uc3QgU2Vjb25kcyBtYXhE
dXJhdGlvbk9mRmlyaW5nVGltZXJzIHsgMC4wNTAgfTsKIAogLy8gVGltZXJzIGFyZSBjcmVhdGVk
LCBzdGFydGVkIGFuZCBmaXJlZCBvbiB0aGUgc2FtZSB0aHJlYWQsIGFuZCBlYWNoIHRocmVhZCBo
YXMgaXRzIG93biBUaHJlYWRUaW1lcnMKIC8vIGNvcHkgdG8ga2VlcCB0aGUgaGVhcCBhbmQgYSBz
ZXQgb2YgY3VycmVudGx5IGZpcmluZyB0aW1lcnMuCiAKIFRocmVhZFRpbWVyczo6VGhyZWFkVGlt
ZXJzKCkKLSAgICA6IG1fc2hhcmVkVGltZXIoMCkKLSAgICAsIG1fZmlyaW5nVGltZXJzKGZhbHNl
KQotICAgICwgbV9wZW5kaW5nU2hhcmVkVGltZXJGaXJlVGltZSgwKQogewogICAgIGlmIChpc1VJ
VGhyZWFkKCkpCiAgICAgICAgIHNldFNoYXJlZFRpbWVyKCZNYWluVGhyZWFkU2hhcmVkVGltZXI6
OnNpbmdsZXRvbigpKTsKQEAgLTY0LDcgKzYxLDcgQEAgdm9pZCBUaHJlYWRUaW1lcnM6OnNldFNo
YXJlZFRpbWVyKFNoYXJlZFRpbWVyKiBzaGFyZWRUaW1lcikKICAgICBpZiAobV9zaGFyZWRUaW1l
cikgewogICAgICAgICBtX3NoYXJlZFRpbWVyLT5zZXRGaXJlZEZ1bmN0aW9uKG51bGxwdHIpOwog
ICAgICAgICBtX3NoYXJlZFRpbWVyLT5zdG9wKCk7Ci0gICAgICAgIG1fcGVuZGluZ1NoYXJlZFRp
bWVyRmlyZVRpbWUgPSAwOworICAgICAgICBtX3BlbmRpbmdTaGFyZWRUaW1lckZpcmVUaW1lID0g
TW9ub3RvbmljVGltZSB7IH07CiAgICAgfQogICAgIAogICAgIG1fc2hhcmVkVGltZXIgPSBzaGFy
ZWRUaW1lcjsKQEAgLTgxLDE4ICs3OCwxOCBAQCB2b2lkIFRocmVhZFRpbWVyczo6dXBkYXRlU2hh
cmVkVGltZXIoKQogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIGlmIChtX2ZpcmluZ1Rp
bWVycyB8fCBtX3RpbWVySGVhcC5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV9wZW5kaW5nU2hhcmVk
VGltZXJGaXJlVGltZSA9IDA7CisgICAgICAgIG1fcGVuZGluZ1NoYXJlZFRpbWVyRmlyZVRpbWUg
PSBNb25vdG9uaWNUaW1lIHsgfTsKICAgICAgICAgbV9zaGFyZWRUaW1lci0+c3RvcCgpOwogICAg
IH0gZWxzZSB7Ci0gICAgICAgIGRvdWJsZSBuZXh0RmlyZVRpbWUgPSBtX3RpbWVySGVhcC5maXJz
dCgpLT5tX25leHRGaXJlVGltZTsKLSAgICAgICAgZG91YmxlIGN1cnJlbnRNb25vdG9uaWNUaW1l
ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CisgICAgICAgIE1vbm90b25pY1RpbWUg
bmV4dEZpcmVUaW1lID0gbV90aW1lckhlYXAuZmlyc3QoKS0+bV9uZXh0RmlyZVRpbWU7CisgICAg
ICAgIE1vbm90b25pY1RpbWUgY3VycmVudE1vbm90b25pY1RpbWUgPSBNb25vdG9uaWNUaW1lOjpu
b3coKTsKICAgICAgICAgaWYgKG1fcGVuZGluZ1NoYXJlZFRpbWVyRmlyZVRpbWUpIHsKICAgICAg
ICAgICAgIC8vIE5vIG5lZWQgdG8gcmVzdGFydCB0aGUgdGltZXIgaWYgYm90aCB0aGUgcGVuZGlu
ZyBmaXJlIHRpbWUgYW5kIHRoZSBuZXcgZmlyZSB0aW1lIGFyZSBpbiB0aGUgcGFzdC4KICAgICAg
ICAgICAgIGlmIChtX3BlbmRpbmdTaGFyZWRUaW1lckZpcmVUaW1lIDw9IGN1cnJlbnRNb25vdG9u
aWNUaW1lICYmIG5leHRGaXJlVGltZSA8PSBjdXJyZW50TW9ub3RvbmljVGltZSkKICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0gCiAgICAgICAgIG1fcGVuZGluZ1NoYXJlZFRpbWVy
RmlyZVRpbWUgPSBuZXh0RmlyZVRpbWU7Ci0gICAgICAgIG1fc2hhcmVkVGltZXItPnNldEZpcmVJ
bnRlcnZhbChTZWNvbmRzKHN0ZDo6bWF4KG5leHRGaXJlVGltZSAtIGN1cnJlbnRNb25vdG9uaWNU
aW1lLCAwLjApKSk7CisgICAgICAgIG1fc2hhcmVkVGltZXItPnNldEZpcmVJbnRlcnZhbChzdGQ6
Om1heChuZXh0RmlyZVRpbWUgLSBjdXJyZW50TW9ub3RvbmljVGltZSwgU2Vjb25kcyB7IH0pKTsK
ICAgICB9CiB9CiAKQEAgLTEwMywyNSArMTAwLDI1IEBAIHZvaWQgVGhyZWFkVGltZXJzOjpzaGFy
ZWRUaW1lckZpcmVkSW50ZXJuYWwoKQogICAgIGlmIChtX2ZpcmluZ1RpbWVycykKICAgICAgICAg
cmV0dXJuOwogICAgIG1fZmlyaW5nVGltZXJzID0gdHJ1ZTsKLSAgICBtX3BlbmRpbmdTaGFyZWRU
aW1lckZpcmVUaW1lID0gMDsKKyAgICBtX3BlbmRpbmdTaGFyZWRUaW1lckZpcmVUaW1lID0gTW9u
b3RvbmljVGltZSB7IH07CiAKLSAgICBkb3VibGUgZmlyZVRpbWUgPSBtb25vdG9uaWNhbGx5SW5j
cmVhc2luZ1RpbWUoKTsKLSAgICBkb3VibGUgdGltZVRvUXVpdCA9IGZpcmVUaW1lICsgbWF4RHVy
YXRpb25PZkZpcmluZ1RpbWVyczsKKyAgICBNb25vdG9uaWNUaW1lIGZpcmVUaW1lID0gTW9ub3Rv
bmljVGltZTo6bm93KCk7CisgICAgTW9ub3RvbmljVGltZSB0aW1lVG9RdWl0ID0gZmlyZVRpbWUg
KyBtYXhEdXJhdGlvbk9mRmlyaW5nVGltZXJzOwogCiAgICAgd2hpbGUgKCFtX3RpbWVySGVhcC5p
c0VtcHR5KCkgJiYgbV90aW1lckhlYXAuZmlyc3QoKS0+bV9uZXh0RmlyZVRpbWUgPD0gZmlyZVRp
bWUpIHsKICAgICAgICAgVGltZXJCYXNlKiB0aW1lciA9IG1fdGltZXJIZWFwLmZpcnN0KCk7Ci0g
ICAgICAgIHRpbWVyLT5tX25leHRGaXJlVGltZSA9IDA7Ci0gICAgICAgIHRpbWVyLT5tX3VuYWxp
Z25lZE5leHRGaXJlVGltZSA9IDA7CisgICAgICAgIHRpbWVyLT5tX25leHRGaXJlVGltZSA9IE1v
bm90b25pY1RpbWUgeyB9OworICAgICAgICB0aW1lci0+bV91bmFsaWduZWROZXh0RmlyZVRpbWUg
PSBNb25vdG9uaWNUaW1lIHsgfTsKICAgICAgICAgdGltZXItPmhlYXBEZWxldGVNaW4oKTsKIAot
ICAgICAgICBkb3VibGUgaW50ZXJ2YWwgPSB0aW1lci0+cmVwZWF0SW50ZXJ2YWwoKTsKLSAgICAg
ICAgdGltZXItPnNldE5leHRGaXJlVGltZShpbnRlcnZhbCA/IGZpcmVUaW1lICsgaW50ZXJ2YWwg
OiAwKTsKKyAgICAgICAgU2Vjb25kcyBpbnRlcnZhbCA9IHRpbWVyLT5yZXBlYXRJbnRlcnZhbFNl
Y29uZHMoKTsKKyAgICAgICAgdGltZXItPnNldE5leHRGaXJlVGltZShpbnRlcnZhbCA/IGZpcmVU
aW1lICsgaW50ZXJ2YWwgOiBNb25vdG9uaWNUaW1lIHsgfSk7CiAKICAgICAgICAgLy8gT25jZSB0
aGUgdGltZXIgaGFzIGJlZW4gZmlyZWQsIGl0IG1heSBiZSBkZWxldGVkLCBzbyBkbyBub3RoaW5n
IGVsc2Ugd2l0aCBpdCBhZnRlciB0aGlzIHBvaW50LgogICAgICAgICB0aW1lci0+ZmlyZWQoKTsK
IAogICAgICAgICAvLyBDYXRjaCB0aGUgY2FzZSB3aGVyZSB0aGUgdGltZXIgYXNrZWQgdGltZXJz
IHRvIGZpcmUgaW4gYSBuZXN0ZWQgZXZlbnQgbG9vcCwgb3Igd2UgYXJlIG92ZXIgdGltZSBsaW1p
dC4KLSAgICAgICAgaWYgKCFtX2ZpcmluZ1RpbWVycyB8fCB0aW1lVG9RdWl0IDwgbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCkpCisgICAgICAgIGlmICghbV9maXJpbmdUaW1lcnMgfHwgdGlt
ZVRvUXVpdCA8IE1vbm90b25pY1RpbWU6Om5vdygpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
fQogCkBAIC0xMzcsNyArMTM0LDcgQEAgdm9pZCBUaHJlYWRUaW1lcnM6OmZpcmVUaW1lcnNJbk5l
c3RlZEV2ZW50TG9vcCgpCiAKICAgICBpZiAobV9zaGFyZWRUaW1lcikgewogICAgICAgICBtX3No
YXJlZFRpbWVyLT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1fcGVuZGluZ1NoYXJlZFRpbWVyRmly
ZVRpbWUgPSAwOworICAgICAgICBtX3BlbmRpbmdTaGFyZWRUaW1lckZpcmVUaW1lID0gTW9ub3Rv
bmljVGltZSB7IH07CiAgICAgfQogCiAgICAgdXBkYXRlU2hhcmVkVGltZXIoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZFRpbWVycy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGhyZWFkVGltZXJzLmgKaW5kZXggZWFiYzRkMTIxZTgyNjY2MmU5YWJiMzA0
ZTM4M2YxN2IxZTcyOWE5Ny4uMGQxZDg5MzBhYjhiMGI0NDZiOGE2OWMxZTFmZjIyMWM0MWZkNTQ0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkVGltZXJzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkVGltZXJzLmgKQEAgLTI3LDYgKzI3LDcg
QEAKICNpZm5kZWYgVGhyZWFkVGltZXJzX2gKICNkZWZpbmUgVGhyZWFkVGltZXJzX2gKIAorI2lu
Y2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC01NCw5ICs1NSw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdm9pZCBmaXJlVGltZXJzSW5OZXN0ZWRFdmVudExvb3BJbnRlcm5h
bCgpOwogCiAgICAgICAgIFZlY3RvcjxUaW1lckJhc2UqPiBtX3RpbWVySGVhcDsKLSAgICAgICAg
U2hhcmVkVGltZXIqIG1fc2hhcmVkVGltZXI7IC8vIEV4dGVybmFsIG9iamVjdCwgY2FuIGJlIGEg
cnVuIGxvb3Agb24gYSB3b3JrZXIgdGhyZWFkLiBOb3JtYWxseSBzZXQvcmVzZXQgYnkgd29ya2Vy
IHRocmVhZC4KLSAgICAgICAgYm9vbCBtX2ZpcmluZ1RpbWVyczsgLy8gUmVlbnRyYW5jeSBndWFy
ZC4KLSAgICAgICAgZG91YmxlIG1fcGVuZGluZ1NoYXJlZFRpbWVyRmlyZVRpbWU7CisgICAgICAg
IFNoYXJlZFRpbWVyKiBtX3NoYXJlZFRpbWVyIHsgbnVsbHB0ciB9OyAvLyBFeHRlcm5hbCBvYmpl
Y3QsIGNhbiBiZSBhIHJ1biBsb29wIG9uIGEgd29ya2VyIHRocmVhZC4gTm9ybWFsbHkgc2V0L3Jl
c2V0IGJ5IHdvcmtlciB0aHJlYWQuCisgICAgICAgIGJvb2wgbV9maXJpbmdUaW1lcnMgeyBmYWxz
ZSB9OyAvLyBSZWVudHJhbmN5IGd1YXJkLgorICAgICAgICBNb25vdG9uaWNUaW1lIG1fcGVuZGlu
Z1NoYXJlZFRpbWVyRmlyZVRpbWU7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIu
Y3BwCmluZGV4IDBhNDI2Njc1NjhlYjhhY2FjN2Y3YWVkYjhlZWMwMWI2YzhiNDIyYWQuLjc1MmNi
MTkyODdlMjhhZDMwYWEzYjE0ZTViYzMwMmUzZjUwYjIyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
aW1lci5jcHAKQEAgLTE3Miw4ICsxNzIsOCBAQCBpbmxpbmUgYm9vbCBUaW1lckhlYXBMZXNzVGhh
bkZ1bmN0aW9uOjpvcGVyYXRvcigpKGNvbnN0IFRpbWVyQmFzZSogYSwgY29uc3QgVGltZQogewog
ICAgIC8vIFRoZSBjb21wYXJpc29ucyBiZWxvdyBhcmUgImJhY2t3YXJkcyIgYmVjYXVzZSB0aGUg
aGVhcCBwdXRzIHRoZSBsYXJnZXN0IAogICAgIC8vIGVsZW1lbnQgZmlyc3QgYW5kIHdlIHdhbnQg
dGhlIGxvd2VzdCB0aW1lIHRvIGJlIHRoZSBmaXJzdCBvbmUgaW4gdGhlIGhlYXAuCi0gICAgZG91
YmxlIGFGaXJlVGltZSA9IGEtPm1fbmV4dEZpcmVUaW1lOwotICAgIGRvdWJsZSBiRmlyZVRpbWUg
PSBiLT5tX25leHRGaXJlVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIGFGaXJlVGltZSA9IGEtPm1f
bmV4dEZpcmVUaW1lOworICAgIE1vbm90b25pY1RpbWUgYkZpcmVUaW1lID0gYi0+bV9uZXh0Rmly
ZVRpbWU7CiAgICAgaWYgKGJGaXJlVGltZSAhPSBhRmlyZVRpbWUpCiAgICAgICAgIHJldHVybiBi
RmlyZVRpbWUgPCBhRmlyZVRpbWU7CiAgICAgCkBAIC0xODYsMTQgKzE4Niw4IEBAIGlubGluZSBi
b29sIFRpbWVySGVhcExlc3NUaGFuRnVuY3Rpb246Om9wZXJhdG9yKCkoY29uc3QgVGltZXJCYXNl
KiBhLCBjb25zdCBUaW1lCiAvLyAtLS0tLS0tLS0tLS0tLS0tCiAKIFRpbWVyQmFzZTo6VGltZXJC
YXNlKCkKLSAgICA6IG1fbmV4dEZpcmVUaW1lKDApCi0gICAgLCBtX3VuYWxpZ25lZE5leHRGaXJl
VGltZSgwKQotICAgICwgbV9yZXBlYXRJbnRlcnZhbCgwKQotICAgICwgbV9oZWFwSW5kZXgoLTEp
Ci0gICAgLCBtX2NhY2hlZFRocmVhZEdsb2JhbFRpbWVySGVhcCgwKQogI2lmbmRlZiBOREVCVUcK
LSAgICAsIG1fdGhyZWFkKGN1cnJlbnRUaHJlYWQoKSkKLSAgICAsIG1fd2FzRGVsZXRlZChmYWxz
ZSkKKyAgICA6IG1fdGhyZWFkKGN1cnJlbnRUaHJlYWQoKSkKICNlbmRpZgogewogfQpAQCAtMjA3
LDMzICsyMDEsMzMgQEAgVGltZXJCYXNlOjp+VGltZXJCYXNlKCkKICNlbmRpZgogfQogCi12b2lk
IFRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGRvdWJsZSByZXBlYXRJ
bnRlcnZhbCkKK3ZvaWQgVGltZXJCYXNlOjpzdGFydChTZWNvbmRzIG5leHRGaXJlSW50ZXJ2YWws
IFNlY29uZHMgcmVwZWF0SW50ZXJ2YWwpCiB7CiAgICAgQVNTRVJUKGNhbkFjY2Vzc1RocmVhZExv
Y2FsRGF0YUZvclRocmVhZChtX3RocmVhZCkpOwogCiAgICAgbV9yZXBlYXRJbnRlcnZhbCA9IHJl
cGVhdEludGVydmFsOwotICAgIHNldE5leHRGaXJlVGltZShtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKSArIG5leHRGaXJlSW50ZXJ2YWwpOworICAgIHNldE5leHRGaXJlVGltZShNb25vdG9u
aWNUaW1lOjpub3coKSArIG5leHRGaXJlSW50ZXJ2YWwpOwogfQogCiB2b2lkIFRpbWVyQmFzZTo6
c3RvcCgpCiB7CiAgICAgQVNTRVJUKGNhbkFjY2Vzc1RocmVhZExvY2FsRGF0YUZvclRocmVhZCht
X3RocmVhZCkpOwogCi0gICAgbV9yZXBlYXRJbnRlcnZhbCA9IDA7Ci0gICAgc2V0TmV4dEZpcmVU
aW1lKDApOworICAgIG1fcmVwZWF0SW50ZXJ2YWwgPSBTZWNvbmRzIHsgfTsKKyAgICBzZXROZXh0
RmlyZVRpbWUoTW9ub3RvbmljVGltZSB7IH0pOwogCi0gICAgQVNTRVJUKG1fbmV4dEZpcmVUaW1l
ID09IDApOwotICAgIEFTU0VSVChtX3JlcGVhdEludGVydmFsID09IDApOworICAgIEFTU0VSVCgh
c3RhdGljX2Nhc3Q8Ym9vbD4obV9uZXh0RmlyZVRpbWUpKTsKKyAgICBBU1NFUlQobV9yZXBlYXRJ
bnRlcnZhbCA9PSBTZWNvbmRzIHsgMCB9KTsKICAgICBBU1NFUlQoIWluSGVhcCgpKTsKIH0KIAog
ZG91YmxlIFRpbWVyQmFzZTo6bmV4dEZpcmVJbnRlcnZhbCgpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGlzQWN0aXZlKCkpOwotICAgIGRvdWJsZSBjdXJyZW50ID0gbW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lKCk7CisgICAgTW9ub3RvbmljVGltZSBjdXJyZW50ID0gTW9ub3RvbmljVGltZTo6bm93
KCk7CiAgICAgaWYgKG1fbmV4dEZpcmVUaW1lIDwgY3VycmVudCkKICAgICAgICAgcmV0dXJuIDA7
Ci0gICAgcmV0dXJuIG1fbmV4dEZpcmVUaW1lIC0gY3VycmVudDsKKyAgICByZXR1cm4gKG1fbmV4
dEZpcmVUaW1lIC0gY3VycmVudCkudmFsdWUoKTsKIH0KIAogaW5saW5lIHZvaWQgVGltZXJCYXNl
OjpjaGVja0hlYXBJbmRleCgpIGNvbnN0CkBAIC0yOTYsOCArMjkwLDggQEAgaW5saW5lIHZvaWQg
VGltZXJCYXNlOjpoZWFwSW5zZXJ0KCkKIGlubGluZSB2b2lkIFRpbWVyQmFzZTo6aGVhcFBvcCgp
CiB7CiAgICAgLy8gVGVtcG9yYXJpbHkgZm9yY2UgdGhpcyB0aW1lciB0byBoYXZlIHRoZSBtaW5p
bXVtIGtleSBzbyB3ZSBjYW4gcG9wIGl0LgotICAgIGRvdWJsZSBmaXJlVGltZSA9IG1fbmV4dEZp
cmVUaW1lOwotICAgIG1fbmV4dEZpcmVUaW1lID0gLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91Ymxl
Pjo6aW5maW5pdHkoKTsKKyAgICBNb25vdG9uaWNUaW1lIGZpcmVUaW1lID0gbV9uZXh0RmlyZVRp
bWU7CisgICAgbV9uZXh0RmlyZVRpbWUgPSAtTW9ub3RvbmljVGltZTo6aW5maW5pdHkoKTsKICAg
ICBoZWFwRGVjcmVhc2VLZXkoKTsKICAgICBoZWFwUG9wTWluKCk7CiAgICAgbV9uZXh0RmlyZVRp
bWUgPSBmaXJlVGltZTsKQEAgLTM0Nyw3ICszNDEsNyBAQCBib29sIFRpbWVyQmFzZTo6aGFzVmFs
aWRIZWFwUG9zaXRpb24oKSBjb25zdAogICAgIHJldHVybiBjaGlsZEhlYXBQcm9wZXJ0eUhvbGRz
KHRoaXMsIGhlYXAsIGNoaWxkSW5kZXgxKSAmJiBjaGlsZEhlYXBQcm9wZXJ0eUhvbGRzKHRoaXMs
IGhlYXAsIGNoaWxkSW5kZXgyKTsKIH0KIAotdm9pZCBUaW1lckJhc2U6OnVwZGF0ZUhlYXBJZk5l
ZWRlZChkb3VibGUgb2xkVGltZSkKK3ZvaWQgVGltZXJCYXNlOjp1cGRhdGVIZWFwSWZOZWVkZWQo
TW9ub3RvbmljVGltZSBvbGRUaW1lKQogewogICAgIGlmIChtX25leHRGaXJlVGltZSAmJiBoYXNW
YWxpZEhlYXBQb3NpdGlvbigpKQogICAgICAgICByZXR1cm47CkBAIC0zNjYsNyArMzYwLDcgQEAg
dm9pZCBUaW1lckJhc2U6OnVwZGF0ZUhlYXBJZk5lZWRlZChkb3VibGUgb2xkVGltZSkKICAgICBB
U1NFUlQoIWluSGVhcCgpIHx8IGhhc1ZhbGlkSGVhcFBvc2l0aW9uKCkpOwogfQogCi12b2lkIFRp
bWVyQmFzZTo6c2V0TmV4dEZpcmVUaW1lKGRvdWJsZSBuZXdUaW1lKQordm9pZCBUaW1lckJhc2U6
OnNldE5leHRGaXJlVGltZShNb25vdG9uaWNUaW1lIG5ld1RpbWUpCiB7CiAgICAgQVNTRVJUKGNh
bkFjY2Vzc1RocmVhZExvY2FsRGF0YUZvclRocmVhZChtX3RocmVhZCkpOwogICAgIEFTU0VSVCgh
bV93YXNEZWxldGVkKTsKQEAgLTM3OSwxMSArMzczLDExIEBAIHZvaWQgVGltZXJCYXNlOjpzZXRO
ZXh0RmlyZVRpbWUoZG91YmxlIG5ld1RpbWUpCiAgICAgICAgIG1fY2FjaGVkVGhyZWFkR2xvYmFs
VGltZXJIZWFwID0gJnRocmVhZEdsb2JhbFRpbWVySGVhcCgpOwogCiAgICAgLy8gS2VlcCBoZWFw
IHZhbGlkIHdoaWxlIGNoYW5naW5nIHRoZSBuZXh0LWZpcmUgdGltZS4KLSAgICBkb3VibGUgb2xk
VGltZSA9IG1fbmV4dEZpcmVUaW1lOworICAgIE1vbm90b25pY1RpbWUgb2xkVGltZSA9IG1fbmV4
dEZpcmVUaW1lOwogICAgIC8vIERvbid0IHJlYWxpZ24gemVyby1kZWxheSB0aW1lcnMuCiAgICAg
aWYgKG5ld1RpbWUpIHsKLSAgICAgICAgaWYgKGF1dG8gbmV3QWxpZ25lZFRpbWUgPSBhbGlnbmVk
RmlyZVRpbWUoU2Vjb25kcyB7IG5ld1RpbWUgfSkpCi0gICAgICAgICAgICBuZXdUaW1lID0gbmV3
QWxpZ25lZFRpbWUudmFsdWUoKS5zZWNvbmRzKCk7CisgICAgICAgIGlmIChhdXRvIG5ld0FsaWdu
ZWRUaW1lID0gYWxpZ25lZEZpcmVUaW1lKG5ld1RpbWUpKQorICAgICAgICAgICAgbmV3VGltZSA9
IG5ld0FsaWduZWRUaW1lLnZhbHVlKCk7CiAgICAgfQogCiAgICAgaWYgKG9sZFRpbWUgIT0gbmV3
VGltZSkgewpAQCAtNDE2LDEwICs0MTAsMTAgQEAgdm9pZCBUaW1lckJhc2U6OmRpZENoYW5nZUFs
aWdubWVudEludGVydmFsKCkKICAgICBzZXROZXh0RmlyZVRpbWUobV91bmFsaWduZWROZXh0Rmly
ZVRpbWUpOwogfQogCi1kb3VibGUgVGltZXJCYXNlOjpuZXh0VW5hbGlnbmVkRmlyZUludGVydmFs
KCkgY29uc3QKK1NlY29uZHMgVGltZXJCYXNlOjpuZXh0VW5hbGlnbmVkRmlyZUludGVydmFsKCkg
Y29uc3QKIHsKICAgICBBU1NFUlQoaXNBY3RpdmUoKSk7Ci0gICAgcmV0dXJuIHN0ZDo6bWF4KG1f
dW5hbGlnbmVkTmV4dEZpcmVUaW1lIC0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIDAu
MCk7CisgICAgcmV0dXJuIHN0ZDo6bWF4KG1fdW5hbGlnbmVkTmV4dEZpcmVUaW1lIC0gTW9ub3Rv
bmljVGltZTo6bm93KCksIFNlY29uZHMgeyAwIH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaAppbmRleCAwNDc3NDg5MThkNzMwMDdkYjcwNDVhYjY1
ZGY5MDU3ZTBiZDc0Zjg5Li4yYmYzMGE3Mzc5YTE2ZjM2MDMwMzJiNTliMGQwOGYzM2M0MDgxODA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUg
PGNocm9ubz4KICNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlv
bmFsLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KQEAgLTU1LDcgKzU2LDggQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIFRpbWVyQmFzZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZp
cnR1YWwgflRpbWVyQmFzZSgpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChkb3Vi
bGUgbmV4dEZpcmVJbnRlcnZhbCwgZG91YmxlIHJlcGVhdEludGVydmFsKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN0YXJ0KFNlY29uZHMgbmV4dEZpcmVJbnRlcnZhbCwgU2Vjb25kcyByZXBl
YXRJbnRlcnZhbCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChkb3VibGUgbmV4dEZp
cmVJbnRlcnZhbCwgZG91YmxlIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0KFNlY29uZHMgeyBuZXh0
RmlyZUludGVydmFsIH0sIFNlY29uZHMgeyByZXBlYXRJbnRlcnZhbCB9KTsgfQogCiAgICAgdm9p
ZCBzdGFydFJlcGVhdGluZyhkb3VibGUgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnQocmVwZWF0SW50
ZXJ2YWwsIHJlcGVhdEludGVydmFsKTsgfQogICAgIHZvaWQgc3RhcnRSZXBlYXRpbmcoc3RkOjpj
aHJvbm86Om1pbGxpc2Vjb25kcyByZXBlYXRJbnRlcnZhbCkgeyBzdGFydFJlcGVhdGluZyhtc1Rv
U2Vjb25kcyhyZXBlYXRJbnRlcnZhbCkpOyB9CkBAIC02MywyMyArNjUsMjQgQEAgcHVibGljOgog
CiAgICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKSB7IHN0YXJ0KGludGVydmFs
LCAwKTsgfQogICAgIHZvaWQgc3RhcnRPbmVTaG90KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
aW50ZXJ2YWwpIHsgc3RhcnRPbmVTaG90KG1zVG9TZWNvbmRzKGludGVydmFsKSk7IH0KLSAgICB2
b2lkIHN0YXJ0T25lU2hvdChTZWNvbmRzIGludGVydmFsKSB7IHN0YXJ0KGludGVydmFsLnZhbHVl
KCksIDApOyB9CisgICAgdm9pZCBzdGFydE9uZVNob3QoU2Vjb25kcyBpbnRlcnZhbCkgeyBzdGFy
dChpbnRlcnZhbCwgU2Vjb25kcyB7IDAgfSk7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c3RvcCgpOwogICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKIAotICAgIGRvdWJsZSBuZXh0Rmly
ZUludGVydmFsKCkgY29uc3Q7Ci0gICAgZG91YmxlIG5leHRVbmFsaWduZWRGaXJlSW50ZXJ2YWwo
KSBjb25zdDsKLSAgICBkb3VibGUgcmVwZWF0SW50ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX3Jl
cGVhdEludGVydmFsOyB9CisgICAgZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwoKSBjb25zdDsgLy8g
RklYTUU6IFNob3VsZCByZXR1cm4gU2Vjb25kcy4KKyAgICBTZWNvbmRzIG5leHRVbmFsaWduZWRG
aXJlSW50ZXJ2YWwoKSBjb25zdDsKKyAgICBkb3VibGUgcmVwZWF0SW50ZXJ2YWwoKSBjb25zdCB7
IHJldHVybiBtX3JlcGVhdEludGVydmFsLnZhbHVlKCk7IH0gLy8gRklYTUU6IFNob3VsZCByZXR1
cm4gU2Vjb25kcy4KKyAgICBTZWNvbmRzIHJlcGVhdEludGVydmFsU2Vjb25kcygpIGNvbnN0IHsg
cmV0dXJuIG1fcmVwZWF0SW50ZXJ2YWw7IH0gLy8gRklYTUU6IFJlbW92ZSBvbmNlIHJlcGVhdElu
dGVydmFsKCkgcmV0dXJucyBTZWNvbmRzLgogICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
cmVwZWF0SW50ZXJ2YWxNUygpIGNvbnN0IHsgcmV0dXJuIHNlY29uZHNUb01TKHJlcGVhdEludGVy
dmFsKCkpOyB9CiAKLSAgICB2b2lkIGF1Z21lbnRGaXJlSW50ZXJ2YWwoZG91YmxlIGRlbHRhKSB7
IHNldE5leHRGaXJlVGltZShtX25leHRGaXJlVGltZSArIGRlbHRhKTsgfQorICAgIHZvaWQgYXVn
bWVudEZpcmVJbnRlcnZhbChTZWNvbmRzIGRlbHRhKSB7IHNldE5leHRGaXJlVGltZShtX25leHRG
aXJlVGltZSArIGRlbHRhKTsgfQogICAgIHZvaWQgYXVnbWVudEZpcmVJbnRlcnZhbChzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzIGRlbHRhKSB7IGF1Z21lbnRGaXJlSW50ZXJ2YWwobXNUb1NlY29u
ZHMoZGVsdGEpKTsgfQotICAgIHZvaWQgYXVnbWVudEZpcmVJbnRlcnZhbChTZWNvbmRzIGRlbHRh
KSB7IGF1Z21lbnRGaXJlSW50ZXJ2YWwoZGVsdGEudmFsdWUoKSk7IH0KKyAgICB2b2lkIGF1Z21l
bnRGaXJlSW50ZXJ2YWwoZG91YmxlIGRlbHRhKSB7IGF1Z21lbnRGaXJlSW50ZXJ2YWwoU2Vjb25k
cyB7IGRlbHRhIH0pOyB9CiAKLSAgICB2b2lkIGF1Z21lbnRSZXBlYXRJbnRlcnZhbChkb3VibGUg
ZGVsdGEpIHsgYXVnbWVudEZpcmVJbnRlcnZhbChkZWx0YSk7IG1fcmVwZWF0SW50ZXJ2YWwgKz0g
ZGVsdGE7IH0KKyAgICB2b2lkIGF1Z21lbnRSZXBlYXRJbnRlcnZhbChTZWNvbmRzIGRlbHRhKSB7
IGF1Z21lbnRGaXJlSW50ZXJ2YWwoZGVsdGEpOyBtX3JlcGVhdEludGVydmFsICs9IGRlbHRhOyB9
CiAgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBkZWx0YSkgeyBhdWdtZW50UmVwZWF0SW50ZXJ2YWwobXNUb1NlY29uZHMoZGVsdGEpKTsgfQot
ICAgIHZvaWQgYXVnbWVudFJlcGVhdEludGVydmFsKFNlY29uZHMgZGVsdGEpIHsgYXVnbWVudFJl
cGVhdEludGVydmFsKGRlbHRhLnZhbHVlKCkpOyB9CisgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50
ZXJ2YWwoZG91YmxlIGRlbHRhKSB7IGF1Z21lbnRSZXBlYXRJbnRlcnZhbChTZWNvbmRzIHsgZGVs
dGEgfSk7IH0KIAogICAgIHZvaWQgZGlkQ2hhbmdlQWxpZ25tZW50SW50ZXJ2YWwoKTsKIApAQCAt
ODgsMTcgKzkxLDE3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGZpcmVk
KCkgPSAwOwogCi0gICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IGFsaWduZWRGaXJl
VGltZShTZWNvbmRzKSBjb25zdCB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KKyAgICB2aXJ0dWFs
IHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljVGltZT4gYWxpZ25lZEZpcmVUaW1lKE1vbm90b25pY1Rp
bWUpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQogCiAgICAgdm9pZCBjaGVja0NvbnNp
c3RlbmN5KCkgY29uc3Q7CiAgICAgdm9pZCBjaGVja0hlYXBJbmRleCgpIGNvbnN0OwogCi0gICAg
dm9pZCBzZXROZXh0RmlyZVRpbWUoZG91YmxlKTsKKyAgICB2b2lkIHNldE5leHRGaXJlVGltZShN
b25vdG9uaWNUaW1lKTsKIAogICAgIGJvb2wgaW5IZWFwKCkgY29uc3QgeyByZXR1cm4gbV9oZWFw
SW5kZXggIT0gLTE7IH0KIAogICAgIGJvb2wgaGFzVmFsaWRIZWFwUG9zaXRpb24oKSBjb25zdDsK
LSAgICB2b2lkIHVwZGF0ZUhlYXBJZk5lZWRlZChkb3VibGUgb2xkVGltZSk7CisgICAgdm9pZCB1
cGRhdGVIZWFwSWZOZWVkZWQoTW9ub3RvbmljVGltZSBvbGRUaW1lKTsKIAogICAgIHZvaWQgaGVh
cERlY3JlYXNlS2V5KCk7CiAgICAgdm9pZCBoZWFwRGVsZXRlKCk7CkBAIC0xMTAsMTYgKzExMywx
NiBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPFRpbWVyQmFzZSo+JiB0aW1lckhlYXAoKSBjb25z
dCB7IEFTU0VSVChtX2NhY2hlZFRocmVhZEdsb2JhbFRpbWVySGVhcCk7IHJldHVybiAqbV9jYWNo
ZWRUaHJlYWRHbG9iYWxUaW1lckhlYXA7IH0KIAotICAgIGRvdWJsZSBtX25leHRGaXJlVGltZTsg
Ly8gMCBpZiBpbmFjdGl2ZQotICAgIGRvdWJsZSBtX3VuYWxpZ25lZE5leHRGaXJlVGltZTsgLy8g
bV9uZXh0RmlyZVRpbWUgbm90IGNvbnNpZGVyaW5nIGFsaWdubWVudCBpbnRlcnZhbAotICAgIGRv
dWJsZSBtX3JlcGVhdEludGVydmFsOyAvLyAwIGlmIG5vdCByZXBlYXRpbmcKLSAgICBpbnQgbV9o
ZWFwSW5kZXg7IC8vIC0xIGlmIG5vdCBpbiBoZWFwCisgICAgTW9ub3RvbmljVGltZSBtX25leHRG
aXJlVGltZTsgLy8gMCBpZiBpbmFjdGl2ZQorICAgIE1vbm90b25pY1RpbWUgbV91bmFsaWduZWRO
ZXh0RmlyZVRpbWU7IC8vIG1fbmV4dEZpcmVUaW1lIG5vdCBjb25zaWRlcmluZyBhbGlnbm1lbnQg
aW50ZXJ2YWwKKyAgICBTZWNvbmRzIG1fcmVwZWF0SW50ZXJ2YWw7IC8vIDAgaWYgbm90IHJlcGVh
dGluZworICAgIGludCBtX2hlYXBJbmRleCB7IC0xIH07IC8vIC0xIGlmIG5vdCBpbiBoZWFwCiAg
ICAgdW5zaWduZWQgbV9oZWFwSW5zZXJ0aW9uT3JkZXI7IC8vIFVzZWQgdG8ga2VlcCBvcmRlciBh
bW9uZyBlcXVhbC1maXJlLXRpbWUgdGltZXJzCi0gICAgVmVjdG9yPFRpbWVyQmFzZSo+KiBtX2Nh
Y2hlZFRocmVhZEdsb2JhbFRpbWVySGVhcDsKKyAgICBWZWN0b3I8VGltZXJCYXNlKj4qIG1fY2Fj
aGVkVGhyZWFkR2xvYmFsVGltZXJIZWFwIHsgbnVsbHB0ciB9OwogCiAjaWZuZGVmIE5ERUJVRwog
ICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWQ7Ci0gICAgYm9vbCBtX3dhc0RlbGV0ZWQ7Cisg
ICAgYm9vbCBtX3dhc0RlbGV0ZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAKICAgICBmcmllbmQgY2xh
c3MgVGhyZWFkVGltZXJzOwpAQCAtMTU5LDcgKzE2Miw3IEBAIGlubGluZSBib29sIFRpbWVyQmFz
ZTo6aXNBY3RpdmUoKSBjb25zdAogI2Vsc2UKICAgICBBU1NFUlQoV2ViVGhyZWFkSXNDdXJyZW50
KCkgfHwgcHRocmVhZF9tYWluX25wKCkgfHwgbV90aHJlYWQgPT0gY3VycmVudFRocmVhZCgpKTsK
ICNlbmRpZiAvLyBQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIG1fbmV4dEZpcmVUaW1lOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxib29sPihtX25leHRGaXJlVGltZSk7CiB9CiAKIGNsYXNzIERl
ZmVycmFibGVPbmVTaG90VGltZXIgOiBwcm90ZWN0ZWQgVGltZXJCYXNlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBiOGMyODc4Mjk1ZDMwYjdhYzFjNjcyNzgyZDM5M2E5
NTcxOWU3Y2Q5Li41NTViZjE1ODlhMDhlNzA0MGIzYjMzN2EyYzY0ZGQzNDJhY2I2NTA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNTEsNiArMTUxLDcgQEAKICNpbmNs
dWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWUu
aD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CisjaW5jbHVkZSA8d3Rm
L01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgpAQCAtMTA4MSw3ICsxMDgyLDcgQEAgRXhjZXB0aW9uT3I8Ym9vbD4gSW50ZXJuYWxz
Ojppc1RpbWVyVGhyb3R0bGVkKGludCB0aW1lb3V0SWQpCiAgICAgaWYgKHRpbWVyLT5pbnRlcnZh
bENsYW1wZWRUb01pbmltdW0oKSA+IHRpbWVyLT5tX29yaWdpbmFsSW50ZXJ2YWwpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCi0gICAgcmV0dXJuICEhdGltZXItPmFsaWduZWRGaXJlVGltZSgwX3Mp
OworICAgIHJldHVybiAhIXRpbWVyLT5hbGlnbmVkRmlyZVRpbWUoTW9ub3RvbmljVGltZSB7IH0p
OwogfQogCiBib29sIEludGVybmFsczo6aXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVUaHJvdHRsZWQo
KSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306551</attachid>
            <date>2017-04-07 17:03:29 -0700</date>
            <delta_ts>2017-04-07 18:33:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170625-20170407170329.patch</filename>
            <type>text/plain</type>
            <size>28416</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGU4OTRiNTZkYTcyMzgzNWMzZTEwYTdl
YmFlNWQzOWFjNjM3ZDNlNjkuLmQ4YzI5ZjhiNzI3NzNhMGFmM2ZiZGRlMjQzZWEyNWJhOWJiMTIz
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCB1c2luZyBNb25vdG9uaWNUaW1lIC8gU2Vjb25k
cyBpbiBUaW1lciBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTcwNjI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisg
ICAgICAgIEFkZCBtb2R1bG8gb3BlcmF0b3IgdG8gTW9ub3RvbmljVGltZS4KKworICAgICAgICAq
IHd0Zi9Nb25vdG9uaWNUaW1lLmg6CisgICAgICAgIChXVEY6Ok1vbm90b25pY1RpbWU6Om9wZXJh
dG9yJSk6CisKIDIwMTctMDQtMDcgIFRpbmctV2VpIExhbiAgPGxhbnR3NDRAZ21haWwuY29tPgog
CiAgICAgICAgIEluY2x1ZGUgY3N0ZGlvIGJlZm9yZSB1c2luZyBzc2NhbmYgYW5kIHN0ZGVycgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGQ4NjUxZmEwNGQ3Yjg5NDA1YjA0OGM2ODc3ZGI5YzllMzMzZWVmNWMuLjQx
YmMwZmE5YjUyMGUwOTU1MWM5ZWE4NDA4YjA5Y2U5ZWYyYjM2MmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw1OSBAQAogMjAxNy0wNC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CisgICAgICAgIFN0YXJ0IHVzaW5nIE1vbm90b25pY1RpbWUgLyBTZWNvbmRzIGluIFRpbWVyIGNs
YXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA2
MjUKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgU3RhcnQg
dXNpbmcgTW9ub3RvbmljVGltZSAvIFNlY29uZHMgaW4gVGltZXIgY2xhc3MuIE1vcmUgd29yayB3
aWxsIGJlIG5lZWRlZAorICAgICAgICBmb3IgdGhlIHRyYW5zaXRpb24gdG8gYmUgY29tcGxldGUu
IEkgcGxhbiB0byBkbyB0aGlzIGluIGEgZm9sbG93LXVwLgorCisgICAgICAgICogcGFnZS9ET01U
aW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6YWxpZ25lZEZpcmVUaW1lKToK
KyAgICAgICAgKiBwYWdlL0RPTVRpbWVyLmg6CisgICAgICAgICogcGFnZS9TdXNwZW5kYWJsZVRp
bWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXI6OnN1c3BlbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3VzcGVuZGFibGVUaW1lcjo6c3RhcnRSZXBlYXRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U3VzcGVuZGFibGVUaW1lcjo6c3RhcnRPbmVTaG90KToKKyAgICAgICAg
KFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXI6OnJlcGVhdEludGVydmFsKToKKyAgICAgICAgKFdl
YkNvcmU6OlN1c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRGaXJlSW50ZXJ2YWwpOgorICAgICAgICAo
V2ViQ29yZTo6U3VzcGVuZGFibGVUaW1lcjo6YXVnbWVudFJlcGVhdEludGVydmFsKToKKyAgICAg
ICAgKiBwYWdlL1N1c3BlbmRhYmxlVGltZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRh
YmxlVGltZXI6OnN0YXJ0UmVwZWF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxl
VGltZXI6OnN0YXJ0T25lU2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVy
OjphdWdtZW50RmlyZUludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGlt
ZXI6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbCk6CisgICAgICAgICogcGxhdGZvcm0vVGhyZWFkVGlt
ZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZFRpbWVyczo6VGhyZWFkVGltZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OlRocmVhZFRpbWVyczo6c2V0U2hhcmVkVGltZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkVGltZXJzOjp1cGRhdGVTaGFyZWRUaW1lcik6CisgICAgICAgIChX
ZWJDb3JlOjpUaHJlYWRUaW1lcnM6OnNoYXJlZFRpbWVyRmlyZWRJbnRlcm5hbCk6CisgICAgICAg
IChXZWJDb3JlOjpUaHJlYWRUaW1lcnM6OmZpcmVUaW1lcnNJbk5lc3RlZEV2ZW50TG9vcCk6Cisg
ICAgICAgICogcGxhdGZvcm0vVGhyZWFkVGltZXJzLmg6CisgICAgICAgICogcGxhdGZvcm0vVGlt
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJIZWFwTGVzc1RoYW5GdW5jdGlvbjo6b3Bl
cmF0b3IoKSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVy
QmFzZTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6Om5leHRGaXJlSW50ZXJ2
YWwpOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjpoZWFwUG9wKToKKyAgICAgICAgKFdl
YkNvcmU6OlRpbWVyQmFzZTo6dXBkYXRlSGVhcElmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlRpbWVyQmFzZTo6c2V0TmV4dEZpcmVUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFz
ZTo6bmV4dFVuYWxpZ25lZEZpcmVJbnRlcnZhbCk6CisgICAgICAgICogcGxhdGZvcm0vVGltZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6VGltZXJCYXNlOjpzdGFydE9uZVNob3QpOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNl
OjpyZXBlYXRJbnRlcnZhbCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OnJlcGVhdElu
dGVydmFsU2Vjb25kcyk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OmF1Z21lbnRGaXJl
SW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjphdWdtZW50UmVwZWF0SW50
ZXJ2YWwpOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjphbGlnbmVkRmlyZVRpbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjppc1RpbWVyVGhy
b3R0bGVkKToKKworMjAxNy0wNC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CiAgICAgICAgIFRocm90dGxlIC8gQWxpZ24gRE9NIFRpbWVycyBpbiBjcm9zcy1vcmlnaW4gaWZy
YW1lcyB0byAzMGZwcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcwNjEzCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTUwNjQ0ND4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL01vbm90b25pY1RpbWUuaCBiL1NvdXJjZS9XVEYvd3RmL01vbm90
b25pY1RpbWUuaAppbmRleCAwZTM5ZjA0MmIxNzVhMGJkNTgwNWFlYTc2NmU5OTFlMjY1NTMyOTNk
Li4xMDQyZDUyNjdkOTNiNzcyOGM4ODkyOGQ4NDNhYWY2Mzk4YjJhMTE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmgKKysrIGIvU291cmNlL1dURi93dGYvTW9ub3Rv
bmljVGltZS5oCkBAIC03OCw2ICs3OCwxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1
cm4gZnJvbVJhd1NlY29uZHMobV92YWx1ZSAtIG90aGVyLnZhbHVlKCkpOwogICAgIH0KKworICAg
IFNlY29uZHMgb3BlcmF0b3IlKFNlY29uZHMgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gU2Vjb25kcyB7IGZtb2QobV92YWx1ZSwgb3RoZXIudmFsdWUoKSkgfTsKKyAgICB9CiAg
ICAgCiAgICAgLy8gVGltZSBpcyBhIHNjYWxhciBhbmQgc2NhbGFycyBjYW4gYmUgbmVnYXRlZCBh
cyB0aGlzIGNvdWxkIGFyaXNlIGZyb20gYWxnZWJyYWljCiAgICAgLy8gdHJhbnNmb3JtYXRpb25z
LiBTbywgd2UgYWxsb3cgaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRp
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCmluZGV4IDFmODBjNjll
ZWI0MDhjNDU2YjkxMDA2MmE3ZGU4NjM2MTllMjFlZmEuLjQ4ODc2ZWNkZTA5MmRkZTM0Y2MwNDZi
ZTc2MzE4NTNhNzUyYTJkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGlt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC00MjcsNyAr
NDI3LDcgQEAgU2Vjb25kcyBET01UaW1lcjo6aW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgY29u
c3QKICAgICByZXR1cm4gaW50ZXJ2YWw7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gRE9N
VGltZXI6OmFsaWduZWRGaXJlVGltZShTZWNvbmRzIGZpcmVUaW1lKSBjb25zdAorc3RkOjpvcHRp
b25hbDxNb25vdG9uaWNUaW1lPiBET01UaW1lcjo6YWxpZ25lZEZpcmVUaW1lKE1vbm90b25pY1Rp
bWUgZmlyZVRpbWUpIGNvbnN0CiB7CiAgICAgU2Vjb25kcyBhbGlnbm1lbnRJbnRlcnZhbCA9IHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+ZG9tVGltZXJBbGlnbm1lbnRJbnRlcnZhbChtX25lc3Rp
bmdMZXZlbCA+PSBtYXhUaW1lck5lc3RpbmdMZXZlbCk7CiAgICAgaWYgKCFhbGlnbm1lbnRJbnRl
cnZhbCkKQEAgLTQzOCw3ICs0MzgsNyBAQCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IERPTVRpbWVy
OjphbGlnbmVkRmlyZVRpbWUoU2Vjb25kcyBmaXJlVGltZSkgY29uc3QKICAgICAvLyBGb3JjZSBh
bGlnbm1lbnQgdG8gcmFuZG9taXplZEFsaWdubWVudCBmcmFjdGlvbiBvZiB0aGUgd2F5IGJldHdl
ZW4gYWxpZ25lbW50SW50ZXJ2YWxzLCBlLmcuCiAgICAgLy8gaWYgYWxpZ25tZW50SW50ZXJ2YWwg
aXMgMTBfbXMgYW5kIHJhbmRvbWl6ZWRBbGlnbm1lbnQgaXMgMC4zIHRoaXMgd2lsbCBhbGlnbiB0
byAzLCAxMywgMjMsIC4uLgogICAgIFNlY29uZHMgcmFuZG9taXplZE9mZnNldCA9IGFsaWdubWVu
dEludGVydmFsICogcmFuZG9taXplZFByb3BvcnRpb247Ci0gICAgU2Vjb25kcyBhZGp1c3RlZEZp
cmVUaW1lID0gZmlyZVRpbWUgLSByYW5kb21pemVkT2Zmc2V0OworICAgIE1vbm90b25pY1RpbWUg
YWRqdXN0ZWRGaXJlVGltZSA9IGZpcmVUaW1lIC0gcmFuZG9taXplZE9mZnNldDsKICAgICByZXR1
cm4gYWRqdXN0ZWRGaXJlVGltZSAtIChhZGp1c3RlZEZpcmVUaW1lICUgYWxpZ25tZW50SW50ZXJ2
YWwpICsgYWxpZ25tZW50SW50ZXJ2YWwgKyByYW5kb21pemVkT2Zmc2V0OwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVRpbWVyLmgKaW5kZXggYjNkZmU4YTViOWNiMGRmODNlODA5MWJkM2VjZWE0Zjg4NDUwMzM3
Mi4uOWYxZTFhMDY1YzczNjFhMGI3YzA5MmZlZThmMzE2OTRlNzdhNTk4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NVGltZXIuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIlN1c3BlbmRhYmxlVGltZXIu
aCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPG1lbW9yeT4K
KyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KIApAQCAtNzQsNyArNzUsNyBAQCBwcml2YXRl
OgogICAgIC8vIFN1c3BlbmRhYmxlVGltZXIKICAgICB2b2lkIGZpcmVkKCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkaWRTdG9wKCkgb3ZlcnJpZGU7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRp
b25hbDxTZWNvbmRzPiBhbGlnbmVkRmlyZVRpbWUoU2Vjb25kcykgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxNb25vdG9uaWNUaW1lPiBhbGlnbmVkRmly
ZVRpbWUoTW9ub3RvbmljVGltZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBBY3RpdmVET01P
YmplY3QgQVBJLgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwCmluZGV4IDc5
MGQ0YzMzYmVmYTdhM2ZjODJjNDkxNWE4ZmY5YTE3MmUxYWM4MjUuLmZhMDg0OWQ0MzExZjQzMzI1
NmE3ZDY5ZTlhMmRjMjEyZjk2MzFiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U3VzcGVuZGFibGVUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJs
ZVRpbWVyLmNwcApAQCAtNjYsNyArNjYsNyBAQCB2b2lkIFN1c3BlbmRhYmxlVGltZXI6OnN1c3Bl
bmQoUmVhc29uRm9yU3VzcGVuc2lvbikKICAgICBtX3NhdmVkSXNBY3RpdmUgPSBUaW1lckJhc2U6
OmlzQWN0aXZlKCk7CiAgICAgaWYgKG1fc2F2ZWRJc0FjdGl2ZSkgewogICAgICAgICBtX3NhdmVk
TmV4dEZpcmVJbnRlcnZhbCA9IFRpbWVyQmFzZTo6bmV4dFVuYWxpZ25lZEZpcmVJbnRlcnZhbCgp
OwotICAgICAgICBtX3NhdmVkUmVwZWF0SW50ZXJ2YWwgPSBUaW1lckJhc2U6OnJlcGVhdEludGVy
dmFsKCk7CisgICAgICAgIG1fc2F2ZWRSZXBlYXRJbnRlcnZhbCA9IFRpbWVyQmFzZTo6cmVwZWF0
SW50ZXJ2YWxTZWNvbmRzKCk7CiAgICAgICAgIFRpbWVyQmFzZTo6c3RvcCgpOwogICAgIH0KIH0K
QEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpjYW5jZWwoKQogICAgICAg
ICBtX3N1c3BlbmRlZCA9IGZhbHNlOwogfQogCi12b2lkIFN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0
UmVwZWF0aW5nKGRvdWJsZSByZXBlYXRJbnRlcnZhbCkKK3ZvaWQgU3VzcGVuZGFibGVUaW1lcjo6
c3RhcnRSZXBlYXRpbmcoU2Vjb25kcyByZXBlYXRJbnRlcnZhbCkKIHsKICAgICBpZiAoIW1fc3Vz
cGVuZGVkKQogICAgICAgICBUaW1lckJhc2U6OnN0YXJ0UmVwZWF0aW5nKHJlcGVhdEludGVydmFs
KTsKQEAgLTEwOCwxNCArMTA4LDE0IEBAIHZvaWQgU3VzcGVuZGFibGVUaW1lcjo6c3RhcnRSZXBl
YXRpbmcoZG91YmxlIHJlcGVhdEludGVydmFsKQogICAgIH0KIH0KIAotdm9pZCBTdXNwZW5kYWJs
ZVRpbWVyOjpzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKQordm9pZCBTdXNwZW5kYWJsZVRp
bWVyOjpzdGFydE9uZVNob3QoU2Vjb25kcyBpbnRlcnZhbCkKIHsKICAgICBpZiAoIW1fc3VzcGVu
ZGVkKQogICAgICAgICBUaW1lckJhc2U6OnN0YXJ0T25lU2hvdChpbnRlcnZhbCk7CiAgICAgZWxz
ZSB7CiAgICAgICAgIG1fc2F2ZWRJc0FjdGl2ZSA9IHRydWU7CiAgICAgICAgIG1fc2F2ZWROZXh0
RmlyZUludGVydmFsID0gaW50ZXJ2YWw7Ci0gICAgICAgIG1fc2F2ZWRSZXBlYXRJbnRlcnZhbCA9
IDA7CisgICAgICAgIG1fc2F2ZWRSZXBlYXRJbnRlcnZhbCA9IDBfczsKICAgICB9CiB9CiAKQEAg
LTEyNCwxMSArMTI0LDExIEBAIGRvdWJsZSBTdXNwZW5kYWJsZVRpbWVyOjpyZXBlYXRJbnRlcnZh
bCgpIGNvbnN0CiAgICAgaWYgKCFtX3N1c3BlbmRlZCkKICAgICAgICAgcmV0dXJuIFRpbWVyQmFz
ZTo6cmVwZWF0SW50ZXJ2YWwoKTsKICAgICBpZiAobV9zYXZlZElzQWN0aXZlKQotICAgICAgICBy
ZXR1cm4gbV9zYXZlZFJlcGVhdEludGVydmFsOworICAgICAgICByZXR1cm4gbV9zYXZlZFJlcGVh
dEludGVydmFsLnZhbHVlKCk7CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgU3VzcGVuZGFibGVU
aW1lcjo6YXVnbWVudEZpcmVJbnRlcnZhbChkb3VibGUgZGVsdGEpCit2b2lkIFN1c3BlbmRhYmxl
VGltZXI6OmF1Z21lbnRGaXJlSW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkKIHsKICAgICBpZiAoIW1f
c3VzcGVuZGVkKQogICAgICAgICBUaW1lckJhc2U6OmF1Z21lbnRGaXJlSW50ZXJ2YWwoZGVsdGEp
OwpAQCAtMTM3LDExICsxMzcsMTEgQEAgdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjphdWdtZW50Rmly
ZUludGVydmFsKGRvdWJsZSBkZWx0YSkKICAgICB9IGVsc2UgewogICAgICAgICBtX3NhdmVkSXNB
Y3RpdmUgPSB0cnVlOwogICAgICAgICBtX3NhdmVkTmV4dEZpcmVJbnRlcnZhbCA9IGRlbHRhOwot
ICAgICAgICBtX3NhdmVkUmVwZWF0SW50ZXJ2YWwgPSAwOworICAgICAgICBtX3NhdmVkUmVwZWF0
SW50ZXJ2YWwgPSAwX3M7CiAgICAgfQogfQogCi12b2lkIFN1c3BlbmRhYmxlVGltZXI6OmF1Z21l
bnRSZXBlYXRJbnRlcnZhbChkb3VibGUgZGVsdGEpCit2b2lkIFN1c3BlbmRhYmxlVGltZXI6OmF1
Z21lbnRSZXBlYXRJbnRlcnZhbChTZWNvbmRzIGRlbHRhKQogewogICAgIGlmICghbV9zdXNwZW5k
ZWQpCiAgICAgICAgIFRpbWVyQmFzZTo6YXVnbWVudFJlcGVhdEludGVydmFsKGRlbHRhKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKaW5kZXggY2QzZTI0N2IxMDgzNTQ0M2Zh
NDZhN2ViY2RlOThlZTBiM2IwNjAzYy4uZjA2NzFkOTFlMzg3YmQzNTMxYzUyMGYxMmZmZmNhZWRi
ZDhjZGQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKQEAgLTQ1LDE0
ICs0NSwxNSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIFRp
bWVyQmFzZTo6aXNBY3RpdmUoKSB8fCAobV9zdXNwZW5kZWQgJiYgbV9zYXZlZElzQWN0aXZlKTsg
fQogICAgIGJvb2wgaXNTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX3N1c3BlbmRlZDsgfQog
Ci0gICAgdm9pZCBzdGFydFJlcGVhdGluZyhkb3VibGUgcmVwZWF0SW50ZXJ2YWwpOwotICAgIHZv
aWQgc3RhcnRPbmVTaG90KGRvdWJsZSBpbnRlcnZhbCk7CisgICAgdm9pZCBzdGFydFJlcGVhdGlu
Zyhkb3VibGUgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRpbmcoU2Vjb25kcyB7IHJlcGVh
dEludGVydmFsIH0pOyB9CisgICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKSB7
IHN0YXJ0T25lU2hvdChTZWNvbmRzIHsgaW50ZXJ2YWwgfSk7IH0KKwogICAgIGRvdWJsZSByZXBl
YXRJbnRlcnZhbCgpIGNvbnN0OwotICAgIHZvaWQgYXVnbWVudEZpcmVJbnRlcnZhbChkb3VibGUg
ZGVsdGEpOwotICAgIHZvaWQgYXVnbWVudFJlcGVhdEludGVydmFsKGRvdWJsZSBkZWx0YSk7Cisg
ICAgdm9pZCBhdWdtZW50RmlyZUludGVydmFsKGRvdWJsZSBkZWx0YSkgeyBhdWdtZW50RmlyZUlu
dGVydmFsKFNlY29uZHMgeyBkZWx0YSB9KTsgfQorICAgIHZvaWQgYXVnbWVudFJlcGVhdEludGVy
dmFsKGRvdWJsZSBkZWx0YSkgeyBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoU2Vjb25kcyB7IGRlbHRh
IH0pOyB9CiAKLSAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKFNlY29uZHMgcmVwZWF0SW50ZXJ2YWwp
IHsgc3RhcnRSZXBlYXRpbmcocmVwZWF0SW50ZXJ2YWwudmFsdWUoKSk7IH0KLSAgICB2b2lkIHN0
YXJ0T25lU2hvdChTZWNvbmRzIGludGVydmFsKSB7IHN0YXJ0T25lU2hvdChpbnRlcnZhbC52YWx1
ZSgpKTsgfQorICAgIHZvaWQgc3RhcnRSZXBlYXRpbmcoU2Vjb25kcyByZXBlYXRJbnRlcnZhbCk7
CisgICAgdm9pZCBzdGFydE9uZVNob3QoU2Vjb25kcyBpbnRlcnZhbCk7CiAKICAgICAvLyBGSVhN
RTogVXNlIHRoZSBvdmVybG9hZHMgdGFraW5nIFNlY29uZHMgaW5zdGVhZCBhbmQgZHJvcCB0aGVz
ZS4KICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgcmVw
ZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRpbmcobXNUb1NlY29uZHMocmVwZWF0SW50ZXJ2YWwp
KTsgfQpAQCAtNjEsOCArNjIsOCBAQCBwdWJsaWM6CiAgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyByZXBlYXRJbnRlcnZhbE1TKCkgY29uc3QgeyByZXR1cm4gc2Vjb25kc1RvTVMocmVwZWF0
SW50ZXJ2YWwoKSk7IH0KICAgICBTZWNvbmRzIHJlcGVhdEludGVydmFsU2Vjb25kcygpIGNvbnN0
IHsgcmV0dXJuIFNlY29uZHMgeyByZXBlYXRJbnRlcnZhbCgpIH07IH0KIAotICAgIHZvaWQgYXVn
bWVudEZpcmVJbnRlcnZhbChTZWNvbmRzIGRlbHRhKSB7IGF1Z21lbnRGaXJlSW50ZXJ2YWwoZGVs
dGEudmFsdWUoKSk7IH0KLSAgICB2b2lkIGF1Z21lbnRSZXBlYXRJbnRlcnZhbChTZWNvbmRzIGRl
bHRhKSB7IGF1Z21lbnRSZXBlYXRJbnRlcnZhbChkZWx0YS52YWx1ZSgpKTsgfQorICAgIHZvaWQg
YXVnbWVudEZpcmVJbnRlcnZhbChTZWNvbmRzIGRlbHRhKTsKKyAgICB2b2lkIGF1Z21lbnRSZXBl
YXRJbnRlcnZhbChTZWNvbmRzIGRlbHRhKTsKIAogICAgIC8vIEZJWE1FOiBVc2UgdGhlIG92ZXJs
b2FkcyB0YWtpbmcgU2Vjb25kcyBpbnN0ZWFkIGFuZCBkcm9wIHRoZXNlLgogICAgIHZvaWQgYXVn
bWVudEZpcmVJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbHRhKSB7IGF1Z21l
bnRGaXJlSW50ZXJ2YWwobXNUb1NlY29uZHMoZGVsdGEpKTsgfQpAQCAtODQsOCArODUsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBmaW5hbDsKICAg
ICB2b2lkIHJlc3VtZSgpIGZpbmFsOwogCi0gICAgZG91YmxlIG1fc2F2ZWROZXh0RmlyZUludGVy
dmFsIHsgMCB9OwotICAgIGRvdWJsZSBtX3NhdmVkUmVwZWF0SW50ZXJ2YWwgeyAwIH07CisgICAg
U2Vjb25kcyBtX3NhdmVkTmV4dEZpcmVJbnRlcnZhbDsKKyAgICBTZWNvbmRzIG1fc2F2ZWRSZXBl
YXRJbnRlcnZhbDsKIAogICAgIGJvb2wgbV9zdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9zYXZlZElzQWN0aXZlIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1RocmVhZFRpbWVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRU
aW1lcnMuY3BwCmluZGV4IGUzZDY1ZWFiYmU0NTlkM2I3YWVmZDE2ZDIzMWFhMTBmY2ZkYmNhNDQu
LmJjM2E4MTg2N2VhMzZkM2EwNzk0NWQxOWQwY2U2Y2FkYjQ1Yzk1N2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZFRpbWVycy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGhyZWFkVGltZXJzLmNwcApAQCAtNDMsMTUgKzQzLDEyIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIC8vIEZpcmUgdGltZXJzIGZvciB0aGlzIGxlbmd0aCBvZiB0aW1lLCBhbmQg
dGhlbiBxdWl0IHRvIGxldCB0aGUgcnVuIGxvb3AgcHJvY2VzcyB1c2VyIGlucHV0IGV2ZW50cy4K
IC8vIDEwMG1zIGlzIGFib3V0IGEgcGVyY2VwdGFibGUgZGVsYXkgaW4gVUksIHNvIHVzZSBhIGhh
bGYgb2YgdGhhdCBhcyBhIHRocmVzaG9sZC4KIC8vIFRoaXMgaXMgdG8gcHJldmVudCBVSSBmcmVl
emUgd2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgdGltZXJzIG9yIG1hY2hpbmUgcGVyZm9ybWFuY2Ug
aXMgbG93Lgotc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhEdXJhdGlvbk9mRmlyaW5nVGltZXJzID0g
MC4wNTA7CitzdGF0aWMgY29uc3QgU2Vjb25kcyBtYXhEdXJhdGlvbk9mRmlyaW5nVGltZXJzIHsg
NTBfbXMgfTsKIAogLy8gVGltZXJzIGFyZSBjcmVhdGVkLCBzdGFydGVkIGFuZCBmaXJlZCBvbiB0
aGUgc2FtZSB0aHJlYWQsIGFuZCBlYWNoIHRocmVhZCBoYXMgaXRzIG93biBUaHJlYWRUaW1lcnMK
IC8vIGNvcHkgdG8ga2VlcCB0aGUgaGVhcCBhbmQgYSBzZXQgb2YgY3VycmVudGx5IGZpcmluZyB0
aW1lcnMuCiAKIFRocmVhZFRpbWVyczo6VGhyZWFkVGltZXJzKCkKLSAgICA6IG1fc2hhcmVkVGlt
ZXIoMCkKLSAgICAsIG1fZmlyaW5nVGltZXJzKGZhbHNlKQotICAgICwgbV9wZW5kaW5nU2hhcmVk
VGltZXJGaXJlVGltZSgwKQogewogICAgIGlmIChpc1VJVGhyZWFkKCkpCiAgICAgICAgIHNldFNo
YXJlZFRpbWVyKCZNYWluVGhyZWFkU2hhcmVkVGltZXI6OnNpbmdsZXRvbigpKTsKQEAgLTY0LDcg
KzYxLDcgQEAgdm9pZCBUaHJlYWRUaW1lcnM6OnNldFNoYXJlZFRpbWVyKFNoYXJlZFRpbWVyKiBz
aGFyZWRUaW1lcikKICAgICBpZiAobV9zaGFyZWRUaW1lcikgewogICAgICAgICBtX3NoYXJlZFRp
bWVyLT5zZXRGaXJlZEZ1bmN0aW9uKG51bGxwdHIpOwogICAgICAgICBtX3NoYXJlZFRpbWVyLT5z
dG9wKCk7Ci0gICAgICAgIG1fcGVuZGluZ1NoYXJlZFRpbWVyRmlyZVRpbWUgPSAwOworICAgICAg
ICBtX3BlbmRpbmdTaGFyZWRUaW1lckZpcmVUaW1lID0gTW9ub3RvbmljVGltZSB7IH07CiAgICAg
fQogICAgIAogICAgIG1fc2hhcmVkVGltZXIgPSBzaGFyZWRUaW1lcjsKQEAgLTgxLDE4ICs3OCwx
OCBAQCB2b2lkIFRocmVhZFRpbWVyczo6dXBkYXRlU2hhcmVkVGltZXIoKQogICAgICAgICByZXR1
cm47CiAgICAgICAgIAogICAgIGlmIChtX2ZpcmluZ1RpbWVycyB8fCBtX3RpbWVySGVhcC5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgbV9wZW5kaW5nU2hhcmVkVGltZXJGaXJlVGltZSA9IDA7CisgICAg
ICAgIG1fcGVuZGluZ1NoYXJlZFRpbWVyRmlyZVRpbWUgPSBNb25vdG9uaWNUaW1lIHsgfTsKICAg
ICAgICAgbV9zaGFyZWRUaW1lci0+c3RvcCgpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvdWJs
ZSBuZXh0RmlyZVRpbWUgPSBtX3RpbWVySGVhcC5maXJzdCgpLT5tX25leHRGaXJlVGltZTsKLSAg
ICAgICAgZG91YmxlIGN1cnJlbnRNb25vdG9uaWNUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lKCk7CisgICAgICAgIE1vbm90b25pY1RpbWUgbmV4dEZpcmVUaW1lID0gbV90aW1lckhl
YXAuZmlyc3QoKS0+bV9uZXh0RmlyZVRpbWU7CisgICAgICAgIE1vbm90b25pY1RpbWUgY3VycmVu
dE1vbm90b25pY1RpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICAgICAgaWYgKG1fcGVu
ZGluZ1NoYXJlZFRpbWVyRmlyZVRpbWUpIHsKICAgICAgICAgICAgIC8vIE5vIG5lZWQgdG8gcmVz
dGFydCB0aGUgdGltZXIgaWYgYm90aCB0aGUgcGVuZGluZyBmaXJlIHRpbWUgYW5kIHRoZSBuZXcg
ZmlyZSB0aW1lIGFyZSBpbiB0aGUgcGFzdC4KICAgICAgICAgICAgIGlmIChtX3BlbmRpbmdTaGFy
ZWRUaW1lckZpcmVUaW1lIDw9IGN1cnJlbnRNb25vdG9uaWNUaW1lICYmIG5leHRGaXJlVGltZSA8
PSBjdXJyZW50TW9ub3RvbmljVGltZSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0gCiAgICAgICAgIG1fcGVuZGluZ1NoYXJlZFRpbWVyRmlyZVRpbWUgPSBuZXh0RmlyZVRpbWU7
Ci0gICAgICAgIG1fc2hhcmVkVGltZXItPnNldEZpcmVJbnRlcnZhbChTZWNvbmRzKHN0ZDo6bWF4
KG5leHRGaXJlVGltZSAtIGN1cnJlbnRNb25vdG9uaWNUaW1lLCAwLjApKSk7CisgICAgICAgIG1f
c2hhcmVkVGltZXItPnNldEZpcmVJbnRlcnZhbChzdGQ6Om1heChuZXh0RmlyZVRpbWUgLSBjdXJy
ZW50TW9ub3RvbmljVGltZSwgMF9zKSk7CiAgICAgfQogfQogCkBAIC0xMDMsMjUgKzEwMCwyNSBA
QCB2b2lkIFRocmVhZFRpbWVyczo6c2hhcmVkVGltZXJGaXJlZEludGVybmFsKCkKICAgICBpZiAo
bV9maXJpbmdUaW1lcnMpCiAgICAgICAgIHJldHVybjsKICAgICBtX2ZpcmluZ1RpbWVycyA9IHRy
dWU7Ci0gICAgbV9wZW5kaW5nU2hhcmVkVGltZXJGaXJlVGltZSA9IDA7CisgICAgbV9wZW5kaW5n
U2hhcmVkVGltZXJGaXJlVGltZSA9IE1vbm90b25pY1RpbWUgeyB9OwogCi0gICAgZG91YmxlIGZp
cmVUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0gICAgZG91YmxlIHRpbWVU
b1F1aXQgPSBmaXJlVGltZSArIG1heER1cmF0aW9uT2ZGaXJpbmdUaW1lcnM7CisgICAgTW9ub3Rv
bmljVGltZSBmaXJlVGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIE1vbm90b25pY1Rp
bWUgdGltZVRvUXVpdCA9IGZpcmVUaW1lICsgbWF4RHVyYXRpb25PZkZpcmluZ1RpbWVyczsKIAog
ICAgIHdoaWxlICghbV90aW1lckhlYXAuaXNFbXB0eSgpICYmIG1fdGltZXJIZWFwLmZpcnN0KCkt
Pm1fbmV4dEZpcmVUaW1lIDw9IGZpcmVUaW1lKSB7CiAgICAgICAgIFRpbWVyQmFzZSogdGltZXIg
PSBtX3RpbWVySGVhcC5maXJzdCgpOwotICAgICAgICB0aW1lci0+bV9uZXh0RmlyZVRpbWUgPSAw
OwotICAgICAgICB0aW1lci0+bV91bmFsaWduZWROZXh0RmlyZVRpbWUgPSAwOworICAgICAgICB0
aW1lci0+bV9uZXh0RmlyZVRpbWUgPSBNb25vdG9uaWNUaW1lIHsgfTsKKyAgICAgICAgdGltZXIt
Pm1fdW5hbGlnbmVkTmV4dEZpcmVUaW1lID0gTW9ub3RvbmljVGltZSB7IH07CiAgICAgICAgIHRp
bWVyLT5oZWFwRGVsZXRlTWluKCk7CiAKLSAgICAgICAgZG91YmxlIGludGVydmFsID0gdGltZXIt
PnJlcGVhdEludGVydmFsKCk7Ci0gICAgICAgIHRpbWVyLT5zZXROZXh0RmlyZVRpbWUoaW50ZXJ2
YWwgPyBmaXJlVGltZSArIGludGVydmFsIDogMCk7CisgICAgICAgIFNlY29uZHMgaW50ZXJ2YWwg
PSB0aW1lci0+cmVwZWF0SW50ZXJ2YWxTZWNvbmRzKCk7CisgICAgICAgIHRpbWVyLT5zZXROZXh0
RmlyZVRpbWUoaW50ZXJ2YWwgPyBmaXJlVGltZSArIGludGVydmFsIDogTW9ub3RvbmljVGltZSB7
IH0pOwogCiAgICAgICAgIC8vIE9uY2UgdGhlIHRpbWVyIGhhcyBiZWVuIGZpcmVkLCBpdCBtYXkg
YmUgZGVsZXRlZCwgc28gZG8gbm90aGluZyBlbHNlIHdpdGggaXQgYWZ0ZXIgdGhpcyBwb2ludC4K
ICAgICAgICAgdGltZXItPmZpcmVkKCk7CiAKICAgICAgICAgLy8gQ2F0Y2ggdGhlIGNhc2Ugd2hl
cmUgdGhlIHRpbWVyIGFza2VkIHRpbWVycyB0byBmaXJlIGluIGEgbmVzdGVkIGV2ZW50IGxvb3As
IG9yIHdlIGFyZSBvdmVyIHRpbWUgbGltaXQuCi0gICAgICAgIGlmICghbV9maXJpbmdUaW1lcnMg
fHwgdGltZVRvUXVpdCA8IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKQorICAgICAgICBp
ZiAoIW1fZmlyaW5nVGltZXJzIHx8IHRpbWVUb1F1aXQgPCBNb25vdG9uaWNUaW1lOjpub3coKSkK
ICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtMTM3LDcgKzEzNCw3IEBAIHZvaWQgVGhy
ZWFkVGltZXJzOjpmaXJlVGltZXJzSW5OZXN0ZWRFdmVudExvb3AoKQogCiAgICAgaWYgKG1fc2hh
cmVkVGltZXIpIHsKICAgICAgICAgbV9zaGFyZWRUaW1lci0+aW52YWxpZGF0ZSgpOwotICAgICAg
ICBtX3BlbmRpbmdTaGFyZWRUaW1lckZpcmVUaW1lID0gMDsKKyAgICAgICAgbV9wZW5kaW5nU2hh
cmVkVGltZXJGaXJlVGltZSA9IE1vbm90b25pY1RpbWUgeyB9OwogICAgIH0KIAogICAgIHVwZGF0
ZVNoYXJlZFRpbWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJl
YWRUaW1lcnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZFRpbWVycy5oCmluZGV4
IGVhYmM0ZDEyMWU4MjY2NjJlOWFiYjMwNGUzODNmMTdiMWU3MjlhOTcuLjBkMWQ4OTMwYWI4YjBi
NDQ2YjhhNjljMWUxZmYyMjFjNDFmZDU0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1RocmVhZFRpbWVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVh
ZFRpbWVycy5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaWZuZGVmIFRocmVhZFRpbWVyc19oCiAjZGVm
aW5lIFRocmVhZFRpbWVyc19oCiAKKyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAt
NTQsOSArNTUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZmlyZVRpbWVy
c0luTmVzdGVkRXZlbnRMb29wSW50ZXJuYWwoKTsKIAogICAgICAgICBWZWN0b3I8VGltZXJCYXNl
Kj4gbV90aW1lckhlYXA7Ci0gICAgICAgIFNoYXJlZFRpbWVyKiBtX3NoYXJlZFRpbWVyOyAvLyBF
eHRlcm5hbCBvYmplY3QsIGNhbiBiZSBhIHJ1biBsb29wIG9uIGEgd29ya2VyIHRocmVhZC4gTm9y
bWFsbHkgc2V0L3Jlc2V0IGJ5IHdvcmtlciB0aHJlYWQuCi0gICAgICAgIGJvb2wgbV9maXJpbmdU
aW1lcnM7IC8vIFJlZW50cmFuY3kgZ3VhcmQuCi0gICAgICAgIGRvdWJsZSBtX3BlbmRpbmdTaGFy
ZWRUaW1lckZpcmVUaW1lOworICAgICAgICBTaGFyZWRUaW1lciogbV9zaGFyZWRUaW1lciB7IG51
bGxwdHIgfTsgLy8gRXh0ZXJuYWwgb2JqZWN0LCBjYW4gYmUgYSBydW4gbG9vcCBvbiBhIHdvcmtl
ciB0aHJlYWQuIE5vcm1hbGx5IHNldC9yZXNldCBieSB3b3JrZXIgdGhyZWFkLgorICAgICAgICBi
b29sIG1fZmlyaW5nVGltZXJzIHsgZmFsc2UgfTsgLy8gUmVlbnRyYW5jeSBndWFyZC4KKyAgICAg
ICAgTW9ub3RvbmljVGltZSBtX3BlbmRpbmdTaGFyZWRUaW1lckZpcmVUaW1lOwogICAgIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAppbmRleCAwYTQyNjY3NTY4ZWI4YWNhYzdmN2Fl
ZGI4ZWVjMDFiNmM4YjQyMmFkLi5jZWVhNjkyZWI3NDlkM2FmOTVmNTYyNzNkNzczNTIwZmI4YzYz
M2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCkBAIC0xNzIsOCArMTcyLDggQEAgaW5s
aW5lIGJvb2wgVGltZXJIZWFwTGVzc1RoYW5GdW5jdGlvbjo6b3BlcmF0b3IoKShjb25zdCBUaW1l
ckJhc2UqIGEsIGNvbnN0IFRpbWUKIHsKICAgICAvLyBUaGUgY29tcGFyaXNvbnMgYmVsb3cgYXJl
ICJiYWNrd2FyZHMiIGJlY2F1c2UgdGhlIGhlYXAgcHV0cyB0aGUgbGFyZ2VzdCAKICAgICAvLyBl
bGVtZW50IGZpcnN0IGFuZCB3ZSB3YW50IHRoZSBsb3dlc3QgdGltZSB0byBiZSB0aGUgZmlyc3Qg
b25lIGluIHRoZSBoZWFwLgotICAgIGRvdWJsZSBhRmlyZVRpbWUgPSBhLT5tX25leHRGaXJlVGlt
ZTsKLSAgICBkb3VibGUgYkZpcmVUaW1lID0gYi0+bV9uZXh0RmlyZVRpbWU7CisgICAgTW9ub3Rv
bmljVGltZSBhRmlyZVRpbWUgPSBhLT5tX25leHRGaXJlVGltZTsKKyAgICBNb25vdG9uaWNUaW1l
IGJGaXJlVGltZSA9IGItPm1fbmV4dEZpcmVUaW1lOwogICAgIGlmIChiRmlyZVRpbWUgIT0gYUZp
cmVUaW1lKQogICAgICAgICByZXR1cm4gYkZpcmVUaW1lIDwgYUZpcmVUaW1lOwogICAgIApAQCAt
MTg2LDE0ICsxODYsOCBAQCBpbmxpbmUgYm9vbCBUaW1lckhlYXBMZXNzVGhhbkZ1bmN0aW9uOjpv
cGVyYXRvcigpKGNvbnN0IFRpbWVyQmFzZSogYSwgY29uc3QgVGltZQogLy8gLS0tLS0tLS0tLS0t
LS0tLQogCiBUaW1lckJhc2U6OlRpbWVyQmFzZSgpCi0gICAgOiBtX25leHRGaXJlVGltZSgwKQot
ICAgICwgbV91bmFsaWduZWROZXh0RmlyZVRpbWUoMCkKLSAgICAsIG1fcmVwZWF0SW50ZXJ2YWwo
MCkKLSAgICAsIG1faGVhcEluZGV4KC0xKQotICAgICwgbV9jYWNoZWRUaHJlYWRHbG9iYWxUaW1l
ckhlYXAoMCkKICNpZm5kZWYgTkRFQlVHCi0gICAgLCBtX3RocmVhZChjdXJyZW50VGhyZWFkKCkp
Ci0gICAgLCBtX3dhc0RlbGV0ZWQoZmFsc2UpCisgICAgOiBtX3RocmVhZChjdXJyZW50VGhyZWFk
KCkpCiAjZW5kaWYKIHsKIH0KQEAgLTIwNywzMyArMjAxLDMzIEBAIFRpbWVyQmFzZTo6flRpbWVy
QmFzZSgpCiAjZW5kaWYKIH0KIAotdm9pZCBUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0Rmly
ZUludGVydmFsLCBkb3VibGUgcmVwZWF0SW50ZXJ2YWwpCit2b2lkIFRpbWVyQmFzZTo6c3RhcnQo
U2Vjb25kcyBuZXh0RmlyZUludGVydmFsLCBTZWNvbmRzIHJlcGVhdEludGVydmFsKQogewogICAg
IEFTU0VSVChjYW5BY2Nlc3NUaHJlYWRMb2NhbERhdGFGb3JUaHJlYWQobV90aHJlYWQpKTsKIAog
ICAgIG1fcmVwZWF0SW50ZXJ2YWwgPSByZXBlYXRJbnRlcnZhbDsKLSAgICBzZXROZXh0RmlyZVRp
bWUobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgKyBuZXh0RmlyZUludGVydmFsKTsKKyAg
ICBzZXROZXh0RmlyZVRpbWUoTW9ub3RvbmljVGltZTo6bm93KCkgKyBuZXh0RmlyZUludGVydmFs
KTsKIH0KIAogdm9pZCBUaW1lckJhc2U6OnN0b3AoKQogewogICAgIEFTU0VSVChjYW5BY2Nlc3NU
aHJlYWRMb2NhbERhdGFGb3JUaHJlYWQobV90aHJlYWQpKTsKIAotICAgIG1fcmVwZWF0SW50ZXJ2
YWwgPSAwOwotICAgIHNldE5leHRGaXJlVGltZSgwKTsKKyAgICBtX3JlcGVhdEludGVydmFsID0g
MF9zOworICAgIHNldE5leHRGaXJlVGltZShNb25vdG9uaWNUaW1lIHsgfSk7CiAKLSAgICBBU1NF
UlQobV9uZXh0RmlyZVRpbWUgPT0gMCk7Ci0gICAgQVNTRVJUKG1fcmVwZWF0SW50ZXJ2YWwgPT0g
MCk7CisgICAgQVNTRVJUKCFzdGF0aWNfY2FzdDxib29sPihtX25leHRGaXJlVGltZSkpOworICAg
IEFTU0VSVChtX3JlcGVhdEludGVydmFsID09IDBfcyk7CiAgICAgQVNTRVJUKCFpbkhlYXAoKSk7
CiB9CiAKIGRvdWJsZSBUaW1lckJhc2U6Om5leHRGaXJlSW50ZXJ2YWwoKSBjb25zdAogewogICAg
IEFTU0VSVChpc0FjdGl2ZSgpKTsKLSAgICBkb3VibGUgY3VycmVudCA9IG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpOworICAgIE1vbm90b25pY1RpbWUgY3VycmVudCA9IE1vbm90b25pY1Rp
bWU6Om5vdygpOwogICAgIGlmIChtX25leHRGaXJlVGltZSA8IGN1cnJlbnQpCiAgICAgICAgIHJl
dHVybiAwOwotICAgIHJldHVybiBtX25leHRGaXJlVGltZSAtIGN1cnJlbnQ7CisgICAgcmV0dXJu
IChtX25leHRGaXJlVGltZSAtIGN1cnJlbnQpLnZhbHVlKCk7CiB9CiAKIGlubGluZSB2b2lkIFRp
bWVyQmFzZTo6Y2hlY2tIZWFwSW5kZXgoKSBjb25zdApAQCAtMjQ4LDE0ICsyNDIsMTQgQEAgaW5s
aW5lIHZvaWQgVGltZXJCYXNlOjpjaGVja0hlYXBJbmRleCgpIGNvbnN0CiBpbmxpbmUgdm9pZCBU
aW1lckJhc2U6OmNoZWNrQ29uc2lzdGVuY3koKSBjb25zdAogewogICAgIC8vIFRpbWVycyBzaG91
bGQgYmUgaW4gdGhlIGhlYXAgaWYgYW5kIG9ubHkgaWYgdGhleSBoYXZlIGEgbm9uLXplcm8gbmV4
dCBmaXJlIHRpbWUuCi0gICAgQVNTRVJUKGluSGVhcCgpID09IChtX25leHRGaXJlVGltZSAhPSAw
KSk7CisgICAgQVNTRVJUKGluSGVhcCgpID09IHN0YXRpY19jYXN0PGJvb2w+KG1fbmV4dEZpcmVU
aW1lKSk7CiAgICAgaWYgKGluSGVhcCgpKQogICAgICAgICBjaGVja0hlYXBJbmRleCgpOwogfQog
CiB2b2lkIFRpbWVyQmFzZTo6aGVhcERlY3JlYXNlS2V5KCkKIHsKLSAgICBBU1NFUlQobV9uZXh0
RmlyZVRpbWUgIT0gMCk7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PGJvb2w+KG1fbmV4dEZpcmVU
aW1lKSk7CiAgICAgY2hlY2tIZWFwSW5kZXgoKTsKICAgICBUaW1lckJhc2UqKiBoZWFwRGF0YSA9
IHRpbWVySGVhcCgpLmRhdGEoKTsKICAgICBwdXNoX2hlYXAoVGltZXJIZWFwSXRlcmF0b3IoaGVh
cERhdGEpLCBUaW1lckhlYXBJdGVyYXRvcihoZWFwRGF0YSArIG1faGVhcEluZGV4ICsgMSksIFRp
bWVySGVhcExlc3NUaGFuRnVuY3Rpb24oKSk7CkBAIC0yNjQsNyArMjU4LDcgQEAgdm9pZCBUaW1l
ckJhc2U6OmhlYXBEZWNyZWFzZUtleSgpCiAKIGlubGluZSB2b2lkIFRpbWVyQmFzZTo6aGVhcERl
bGV0ZSgpCiB7Ci0gICAgQVNTRVJUKG1fbmV4dEZpcmVUaW1lID09IDApOworICAgIEFTU0VSVCgh
c3RhdGljX2Nhc3Q8Ym9vbD4obV9uZXh0RmlyZVRpbWUpKTsKICAgICBoZWFwUG9wKCk7CiAgICAg
dGltZXJIZWFwKCkucmVtb3ZlTGFzdCgpOwogICAgIG1faGVhcEluZGV4ID0gLTE7CkBAIC0yNzIs
NyArMjY2LDcgQEAgaW5saW5lIHZvaWQgVGltZXJCYXNlOjpoZWFwRGVsZXRlKCkKIAogdm9pZCBU
aW1lckJhc2U6OmhlYXBEZWxldGVNaW4oKQogewotICAgIEFTU0VSVChtX25leHRGaXJlVGltZSA9
PSAwKTsKKyAgICBBU1NFUlQoIXN0YXRpY19jYXN0PGJvb2w+KG1fbmV4dEZpcmVUaW1lKSk7CiAg
ICAgaGVhcFBvcE1pbigpOwogICAgIHRpbWVySGVhcCgpLnJlbW92ZUxhc3QoKTsKICAgICBtX2hl
YXBJbmRleCA9IC0xOwpAQCAtMjgwLDcgKzI3NCw3IEBAIHZvaWQgVGltZXJCYXNlOjpoZWFwRGVs
ZXRlTWluKCkKIAogaW5saW5lIHZvaWQgVGltZXJCYXNlOjpoZWFwSW5jcmVhc2VLZXkoKQogewot
ICAgIEFTU0VSVChtX25leHRGaXJlVGltZSAhPSAwKTsKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8
Ym9vbD4obV9uZXh0RmlyZVRpbWUpKTsKICAgICBoZWFwUG9wKCk7CiAgICAgaGVhcERlY3JlYXNl
S2V5KCk7CiB9CkBAIC0yOTYsOCArMjkwLDggQEAgaW5saW5lIHZvaWQgVGltZXJCYXNlOjpoZWFw
SW5zZXJ0KCkKIGlubGluZSB2b2lkIFRpbWVyQmFzZTo6aGVhcFBvcCgpCiB7CiAgICAgLy8gVGVt
cG9yYXJpbHkgZm9yY2UgdGhpcyB0aW1lciB0byBoYXZlIHRoZSBtaW5pbXVtIGtleSBzbyB3ZSBj
YW4gcG9wIGl0LgotICAgIGRvdWJsZSBmaXJlVGltZSA9IG1fbmV4dEZpcmVUaW1lOwotICAgIG1f
bmV4dEZpcmVUaW1lID0gLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsK
KyAgICBNb25vdG9uaWNUaW1lIGZpcmVUaW1lID0gbV9uZXh0RmlyZVRpbWU7CisgICAgbV9uZXh0
RmlyZVRpbWUgPSAtTW9ub3RvbmljVGltZTo6aW5maW5pdHkoKTsKICAgICBoZWFwRGVjcmVhc2VL
ZXkoKTsKICAgICBoZWFwUG9wTWluKCk7CiAgICAgbV9uZXh0RmlyZVRpbWUgPSBmaXJlVGltZTsK
QEAgLTM0Nyw3ICszNDEsNyBAQCBib29sIFRpbWVyQmFzZTo6aGFzVmFsaWRIZWFwUG9zaXRpb24o
KSBjb25zdAogICAgIHJldHVybiBjaGlsZEhlYXBQcm9wZXJ0eUhvbGRzKHRoaXMsIGhlYXAsIGNo
aWxkSW5kZXgxKSAmJiBjaGlsZEhlYXBQcm9wZXJ0eUhvbGRzKHRoaXMsIGhlYXAsIGNoaWxkSW5k
ZXgyKTsKIH0KIAotdm9pZCBUaW1lckJhc2U6OnVwZGF0ZUhlYXBJZk5lZWRlZChkb3VibGUgb2xk
VGltZSkKK3ZvaWQgVGltZXJCYXNlOjp1cGRhdGVIZWFwSWZOZWVkZWQoTW9ub3RvbmljVGltZSBv
bGRUaW1lKQogewogICAgIGlmIChtX25leHRGaXJlVGltZSAmJiBoYXNWYWxpZEhlYXBQb3NpdGlv
bigpKQogICAgICAgICByZXR1cm47CkBAIC0zNjYsNyArMzYwLDcgQEAgdm9pZCBUaW1lckJhc2U6
OnVwZGF0ZUhlYXBJZk5lZWRlZChkb3VibGUgb2xkVGltZSkKICAgICBBU1NFUlQoIWluSGVhcCgp
IHx8IGhhc1ZhbGlkSGVhcFBvc2l0aW9uKCkpOwogfQogCi12b2lkIFRpbWVyQmFzZTo6c2V0TmV4
dEZpcmVUaW1lKGRvdWJsZSBuZXdUaW1lKQordm9pZCBUaW1lckJhc2U6OnNldE5leHRGaXJlVGlt
ZShNb25vdG9uaWNUaW1lIG5ld1RpbWUpCiB7CiAgICAgQVNTRVJUKGNhbkFjY2Vzc1RocmVhZExv
Y2FsRGF0YUZvclRocmVhZChtX3RocmVhZCkpOwogICAgIEFTU0VSVCghbV93YXNEZWxldGVkKTsK
QEAgLTM3OSwxMSArMzczLDExIEBAIHZvaWQgVGltZXJCYXNlOjpzZXROZXh0RmlyZVRpbWUoZG91
YmxlIG5ld1RpbWUpCiAgICAgICAgIG1fY2FjaGVkVGhyZWFkR2xvYmFsVGltZXJIZWFwID0gJnRo
cmVhZEdsb2JhbFRpbWVySGVhcCgpOwogCiAgICAgLy8gS2VlcCBoZWFwIHZhbGlkIHdoaWxlIGNo
YW5naW5nIHRoZSBuZXh0LWZpcmUgdGltZS4KLSAgICBkb3VibGUgb2xkVGltZSA9IG1fbmV4dEZp
cmVUaW1lOworICAgIE1vbm90b25pY1RpbWUgb2xkVGltZSA9IG1fbmV4dEZpcmVUaW1lOwogICAg
IC8vIERvbid0IHJlYWxpZ24gemVyby1kZWxheSB0aW1lcnMuCiAgICAgaWYgKG5ld1RpbWUpIHsK
LSAgICAgICAgaWYgKGF1dG8gbmV3QWxpZ25lZFRpbWUgPSBhbGlnbmVkRmlyZVRpbWUoU2Vjb25k
cyB7IG5ld1RpbWUgfSkpCi0gICAgICAgICAgICBuZXdUaW1lID0gbmV3QWxpZ25lZFRpbWUudmFs
dWUoKS5zZWNvbmRzKCk7CisgICAgICAgIGlmIChhdXRvIG5ld0FsaWduZWRUaW1lID0gYWxpZ25l
ZEZpcmVUaW1lKG5ld1RpbWUpKQorICAgICAgICAgICAgbmV3VGltZSA9IG5ld0FsaWduZWRUaW1l
LnZhbHVlKCk7CiAgICAgfQogCiAgICAgaWYgKG9sZFRpbWUgIT0gbmV3VGltZSkgewpAQCAtNDE2
LDEwICs0MTAsMTAgQEAgdm9pZCBUaW1lckJhc2U6OmRpZENoYW5nZUFsaWdubWVudEludGVydmFs
KCkKICAgICBzZXROZXh0RmlyZVRpbWUobV91bmFsaWduZWROZXh0RmlyZVRpbWUpOwogfQogCi1k
b3VibGUgVGltZXJCYXNlOjpuZXh0VW5hbGlnbmVkRmlyZUludGVydmFsKCkgY29uc3QKK1NlY29u
ZHMgVGltZXJCYXNlOjpuZXh0VW5hbGlnbmVkRmlyZUludGVydmFsKCkgY29uc3QKIHsKICAgICBB
U1NFUlQoaXNBY3RpdmUoKSk7Ci0gICAgcmV0dXJuIHN0ZDo6bWF4KG1fdW5hbGlnbmVkTmV4dEZp
cmVUaW1lIC0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIDAuMCk7CisgICAgcmV0dXJu
IHN0ZDo6bWF4KG1fdW5hbGlnbmVkTmV4dEZpcmVUaW1lIC0gTW9ub3RvbmljVGltZTo6bm93KCks
IDBfcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5o
CmluZGV4IDA0Nzc0ODkxOGQ3MzAwN2RiNzA0NWFiNjVkZjkwNTdlMGJkNzRmODkuLjYzMDcyYzdh
NTk0YzRlYThlMWRkYjBjYThlMGY4YTllNzkwZjgwOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1RpbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIu
aApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSA8Y2hyb25vPgogI2luY2x1ZGUgPGZ1bmN0
aW9uYWw+CisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvU2Vj
b25kcy5oPgpAQCAtNTUsNyArNTYsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgVGlt
ZXJCYXNlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+VGltZXJCYXNlKCk7CiAKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBkb3Vi
bGUgcmVwZWF0SW50ZXJ2YWwpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoU2Vjb25k
cyBuZXh0RmlyZUludGVydmFsLCBTZWNvbmRzIHJlcGVhdEludGVydmFsKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBkb3VibGUgcmVwZWF0
SW50ZXJ2YWwpIHsgc3RhcnQoU2Vjb25kcyB7IG5leHRGaXJlSW50ZXJ2YWwgfSwgU2Vjb25kcyB7
IHJlcGVhdEludGVydmFsIH0pOyB9CiAKICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKGRvdWJsZSBy
ZXBlYXRJbnRlcnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZhbCwgcmVwZWF0SW50ZXJ2YWwpOyB9
CiAgICAgdm9pZCBzdGFydFJlcGVhdGluZyhzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHJlcGVh
dEludGVydmFsKSB7IHN0YXJ0UmVwZWF0aW5nKG1zVG9TZWNvbmRzKHJlcGVhdEludGVydmFsKSk7
IH0KQEAgLTYzLDIzICs2NSwyNCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHN0YXJ0T25lU2hvdChk
b3VibGUgaW50ZXJ2YWwpIHsgc3RhcnQoaW50ZXJ2YWwsIDApOyB9CiAgICAgdm9pZCBzdGFydE9u
ZVNob3Qoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZhbCkgeyBzdGFydE9uZVNob3Qo
bXNUb1NlY29uZHMoaW50ZXJ2YWwpKTsgfQotICAgIHZvaWQgc3RhcnRPbmVTaG90KFNlY29uZHMg
aW50ZXJ2YWwpIHsgc3RhcnQoaW50ZXJ2YWwudmFsdWUoKSwgMCk7IH0KKyAgICB2b2lkIHN0YXJ0
T25lU2hvdChTZWNvbmRzIGludGVydmFsKSB7IHN0YXJ0KGludGVydmFsLCAwX3MpOyB9CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3AoKTsKICAgICBib29sIGlzQWN0aXZlKCkgY29uc3Q7
CiAKLSAgICBkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCgpIGNvbnN0OwotICAgIGRvdWJsZSBuZXh0
VW5hbGlnbmVkRmlyZUludGVydmFsKCkgY29uc3Q7Ci0gICAgZG91YmxlIHJlcGVhdEludGVydmFs
KCkgY29uc3QgeyByZXR1cm4gbV9yZXBlYXRJbnRlcnZhbDsgfQorICAgIGRvdWJsZSBuZXh0Rmly
ZUludGVydmFsKCkgY29uc3Q7IC8vIEZJWE1FOiBTaG91bGQgcmV0dXJuIFNlY29uZHMuCisgICAg
U2Vjb25kcyBuZXh0VW5hbGlnbmVkRmlyZUludGVydmFsKCkgY29uc3Q7CisgICAgZG91YmxlIHJl
cGVhdEludGVydmFsKCkgY29uc3QgeyByZXR1cm4gbV9yZXBlYXRJbnRlcnZhbC52YWx1ZSgpOyB9
IC8vIEZJWE1FOiBTaG91bGQgcmV0dXJuIFNlY29uZHMuCisgICAgU2Vjb25kcyByZXBlYXRJbnRl
cnZhbFNlY29uZHMoKSBjb25zdCB7IHJldHVybiBtX3JlcGVhdEludGVydmFsOyB9IC8vIEZJWE1F
OiBSZW1vdmUgb25jZSByZXBlYXRJbnRlcnZhbCgpIHJldHVybnMgU2Vjb25kcy4KICAgICBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzIHJlcGVhdEludGVydmFsTVMoKSBjb25zdCB7IHJldHVybiBz
ZWNvbmRzVG9NUyhyZXBlYXRJbnRlcnZhbCgpKTsgfQogCi0gICAgdm9pZCBhdWdtZW50RmlyZUlu
dGVydmFsKGRvdWJsZSBkZWx0YSkgeyBzZXROZXh0RmlyZVRpbWUobV9uZXh0RmlyZVRpbWUgKyBk
ZWx0YSk7IH0KKyAgICB2b2lkIGF1Z21lbnRGaXJlSW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkgeyBz
ZXROZXh0RmlyZVRpbWUobV9uZXh0RmlyZVRpbWUgKyBkZWx0YSk7IH0KICAgICB2b2lkIGF1Z21l
bnRGaXJlSW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBkZWx0YSkgeyBhdWdtZW50
RmlyZUludGVydmFsKG1zVG9TZWNvbmRzKGRlbHRhKSk7IH0KLSAgICB2b2lkIGF1Z21lbnRGaXJl
SW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkgeyBhdWdtZW50RmlyZUludGVydmFsKGRlbHRhLnZhbHVl
KCkpOyB9CisgICAgdm9pZCBhdWdtZW50RmlyZUludGVydmFsKGRvdWJsZSBkZWx0YSkgeyBhdWdt
ZW50RmlyZUludGVydmFsKFNlY29uZHMgeyBkZWx0YSB9KTsgfQogCi0gICAgdm9pZCBhdWdtZW50
UmVwZWF0SW50ZXJ2YWwoZG91YmxlIGRlbHRhKSB7IGF1Z21lbnRGaXJlSW50ZXJ2YWwoZGVsdGEp
OyBtX3JlcGVhdEludGVydmFsICs9IGRlbHRhOyB9CisgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50
ZXJ2YWwoU2Vjb25kcyBkZWx0YSkgeyBhdWdtZW50RmlyZUludGVydmFsKGRlbHRhKTsgbV9yZXBl
YXRJbnRlcnZhbCArPSBkZWx0YTsgfQogICAgIHZvaWQgYXVnbWVudFJlcGVhdEludGVydmFsKHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVsdGEpIHsgYXVnbWVudFJlcGVhdEludGVydmFsKG1z
VG9TZWNvbmRzKGRlbHRhKSk7IH0KLSAgICB2b2lkIGF1Z21lbnRSZXBlYXRJbnRlcnZhbChTZWNv
bmRzIGRlbHRhKSB7IGF1Z21lbnRSZXBlYXRJbnRlcnZhbChkZWx0YS52YWx1ZSgpKTsgfQorICAg
IHZvaWQgYXVnbWVudFJlcGVhdEludGVydmFsKGRvdWJsZSBkZWx0YSkgeyBhdWdtZW50UmVwZWF0
SW50ZXJ2YWwoU2Vjb25kcyB7IGRlbHRhIH0pOyB9CiAKICAgICB2b2lkIGRpZENoYW5nZUFsaWdu
bWVudEludGVydmFsKCk7CiAKQEAgLTg4LDE3ICs5MSwxNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpID0gMDsKIAotICAgIHZpcnR1YWwgc3RkOjpvcHRpb25h
bDxTZWNvbmRzPiBhbGlnbmVkRmlyZVRpbWUoU2Vjb25kcykgY29uc3QgeyByZXR1cm4gc3RkOjpu
dWxsb3B0OyB9CisgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPE1vbm90b25pY1RpbWU+IGFsaWdu
ZWRGaXJlVGltZShNb25vdG9uaWNUaW1lKSBjb25zdCB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0K
IAogICAgIHZvaWQgY2hlY2tDb25zaXN0ZW5jeSgpIGNvbnN0OwogICAgIHZvaWQgY2hlY2tIZWFw
SW5kZXgoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0TmV4dEZpcmVUaW1lKGRvdWJsZSk7CisgICAg
dm9pZCBzZXROZXh0RmlyZVRpbWUoTW9ub3RvbmljVGltZSk7CiAKICAgICBib29sIGluSGVhcCgp
IGNvbnN0IHsgcmV0dXJuIG1faGVhcEluZGV4ICE9IC0xOyB9CiAKICAgICBib29sIGhhc1ZhbGlk
SGVhcFBvc2l0aW9uKCkgY29uc3Q7Ci0gICAgdm9pZCB1cGRhdGVIZWFwSWZOZWVkZWQoZG91Ymxl
IG9sZFRpbWUpOworICAgIHZvaWQgdXBkYXRlSGVhcElmTmVlZGVkKE1vbm90b25pY1RpbWUgb2xk
VGltZSk7CiAKICAgICB2b2lkIGhlYXBEZWNyZWFzZUtleSgpOwogICAgIHZvaWQgaGVhcERlbGV0
ZSgpOwpAQCAtMTEwLDE2ICsxMTMsMTYgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxUaW1lckJh
c2UqPiYgdGltZXJIZWFwKCkgY29uc3QgeyBBU1NFUlQobV9jYWNoZWRUaHJlYWRHbG9iYWxUaW1l
ckhlYXApOyByZXR1cm4gKm1fY2FjaGVkVGhyZWFkR2xvYmFsVGltZXJIZWFwOyB9CiAKLSAgICBk
b3VibGUgbV9uZXh0RmlyZVRpbWU7IC8vIDAgaWYgaW5hY3RpdmUKLSAgICBkb3VibGUgbV91bmFs
aWduZWROZXh0RmlyZVRpbWU7IC8vIG1fbmV4dEZpcmVUaW1lIG5vdCBjb25zaWRlcmluZyBhbGln
bm1lbnQgaW50ZXJ2YWwKLSAgICBkb3VibGUgbV9yZXBlYXRJbnRlcnZhbDsgLy8gMCBpZiBub3Qg
cmVwZWF0aW5nCi0gICAgaW50IG1faGVhcEluZGV4OyAvLyAtMSBpZiBub3QgaW4gaGVhcAorICAg
IE1vbm90b25pY1RpbWUgbV9uZXh0RmlyZVRpbWU7IC8vIDAgaWYgaW5hY3RpdmUKKyAgICBNb25v
dG9uaWNUaW1lIG1fdW5hbGlnbmVkTmV4dEZpcmVUaW1lOyAvLyBtX25leHRGaXJlVGltZSBub3Qg
Y29uc2lkZXJpbmcgYWxpZ25tZW50IGludGVydmFsCisgICAgU2Vjb25kcyBtX3JlcGVhdEludGVy
dmFsOyAvLyAwIGlmIG5vdCByZXBlYXRpbmcKKyAgICBpbnQgbV9oZWFwSW5kZXggeyAtMSB9OyAv
LyAtMSBpZiBub3QgaW4gaGVhcAogICAgIHVuc2lnbmVkIG1faGVhcEluc2VydGlvbk9yZGVyOyAv
LyBVc2VkIHRvIGtlZXAgb3JkZXIgYW1vbmcgZXF1YWwtZmlyZS10aW1lIHRpbWVycwotICAgIFZl
Y3RvcjxUaW1lckJhc2UqPiogbV9jYWNoZWRUaHJlYWRHbG9iYWxUaW1lckhlYXA7CisgICAgVmVj
dG9yPFRpbWVyQmFzZSo+KiBtX2NhY2hlZFRocmVhZEdsb2JhbFRpbWVySGVhcCB7IG51bGxwdHIg
fTsKIAogI2lmbmRlZiBOREVCVUcKICAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkOwotICAg
IGJvb2wgbV93YXNEZWxldGVkOworICAgIGJvb2wgbV93YXNEZWxldGVkIHsgZmFsc2UgfTsKICNl
bmRpZgogCiAgICAgZnJpZW5kIGNsYXNzIFRocmVhZFRpbWVyczsKQEAgLTE1OSw3ICsxNjIsNyBA
QCBpbmxpbmUgYm9vbCBUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKICNlbHNlCiAgICAgQVNT
RVJUKFdlYlRocmVhZElzQ3VycmVudCgpIHx8IHB0aHJlYWRfbWFpbl9ucCgpIHx8IG1fdGhyZWFk
ID09IGN1cnJlbnRUaHJlYWQoKSk7CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQotICAgIHJldHVy
biBtX25leHRGaXJlVGltZTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4obV9uZXh0Rmly
ZVRpbWUpOwogfQogCiBjbGFzcyBEZWZlcnJhYmxlT25lU2hvdFRpbWVyIDogcHJvdGVjdGVkIFRp
bWVyQmFzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggYjhjMjg3ODI5
NWQzMGI3YWMxYzY3Mjc4MmQzOTNhOTU3MTllN2NkOS4uNTU1YmYxNTg5YTA4ZTcwNDBiM2IzMzdh
MmM2NGRkMzQyYWNiNjUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
MTUxLDYgKzE1MSw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFu
ZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1ZmZlci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KQEAgLTEwODEsNyArMTA4Miw3IEBAIEV4Y2Vw
dGlvbk9yPGJvb2w+IEludGVybmFsczo6aXNUaW1lclRocm90dGxlZChpbnQgdGltZW91dElkKQog
ICAgIGlmICh0aW1lci0+aW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgPiB0aW1lci0+bV9vcmln
aW5hbEludGVydmFsKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiAhIXRpbWVy
LT5hbGlnbmVkRmlyZVRpbWUoMF9zKTsKKyAgICByZXR1cm4gISF0aW1lci0+YWxpZ25lZEZpcmVU
aW1lKE1vbm90b25pY1RpbWUgeyB9KTsKIH0KIAogYm9vbCBJbnRlcm5hbHM6OmlzUmVxdWVzdEFu
aW1hdGlvbkZyYW1lVGhyb3R0bGVkKCkgY29uc3QK
</data>

          </attachment>
      

    </bug>

</bugzilla>