<?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>155085</bug_id>
          
          <creation_ts>2016-03-06 00:23:09 -0800</creation_ts>
          <short_desc>Convert DOMTimer to std::chrono::milliseconds</short_desc>
          <delta_ts>2016-03-07 10:41:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>Other</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1171388</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-03-06 00:23:09 -0800</bug_when>
    <thetext>DOMTimer currently uses a mix of millisecond (was int, now std::chrono) and second (as double) time values. Constant conversion back and forth is a complete mess. Stop that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171392</commentid>
    <comment_count>1</comment_count>
      <attachid>273129</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-03-06 00:36:00 -0800</bug_when>
    <thetext>Created attachment 273129
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171524</commentid>
    <comment_count>2</comment_count>
      <attachid>273161</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-03-06 22:22:34 -0800</bug_when>
    <thetext>Created attachment 273161
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171532</commentid>
    <comment_count>3</comment_count>
      <attachid>273164</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-03-06 23:33:54 -0800</bug_when>
    <thetext>Created attachment 273164
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171544</commentid>
    <comment_count>4</comment_count>
      <attachid>273164</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-03-07 01:45:59 -0800</bug_when>
    <thetext>Comment on attachment 273164
Fix

r=me, sweet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171660</commentid>
    <comment_count>5</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-03-07 10:41:53 -0800</bug_when>
    <thetext>Transmitting file data ..................
Committed revision 197690.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273129</attachid>
            <date>2016-03-06 00:36:00 -0800</date>
            <delta_ts>2016-03-06 22:22:34 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>155085.1.patch</filename>
            <type>text/plain</type>
            <size>27200</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzYzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY5IEBACisyMDE2LTAzLTA2ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IERP
TVRpbWVyIHRvIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTA4NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERPTVRpbWVyIGN1cnJlbnRseSB1c2VzIGEgbWl4
IG9mIG1pbGxpc2Vjb25kICh3YXMgaW50LCBub3cgc3RkOjpjaHJvbm8pIGFuZCBzZWNvbmQgKGFz
IGRvdWJsZSkKKyAgICAgICAgdGltZSB2YWx1ZXMuIENvbnN0YW50IGNvbnZlcnNpb24gYmFjayBh
bmQgZm9ydGggaXMgYSBjb21wbGV0ZSBtZXNzLiBTdG9wIHRoYXQuCisKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om1pbmltdW1UaW1lcklu
dGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0aW1lckFsaWdubWVudEludGVy
dmFsKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgICAgIC0gZG91YmxlIC0+
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojph
ZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudEludGVydmFsKToKKyAgICAgICAg
KiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAgICAgICAgLSBkb3VibGUgLT4g
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcworICAgICAgICAqIHBhZ2UvRE9NVGltZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OnVwZGF0ZVRpbWVySW50ZXJ2YWxJZk5lY2Vzc2Fy
eSk6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6aW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVt
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjphbGlnbmVkRmlyZVRpbWUpOgorICAgICAg
ICAqIHBhZ2UvRE9NVGltZXIuaDoKKyAgICAgICAgICAgIC0gZG91YmxlIC0+IHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c2V0VGltZXJUaHJvdHRsaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6c2V0VGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6dXBkYXRlRE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6CisgICAgICAgICog
cGFnZS9QYWdlLmg6CisgICAgICAgICAgICAtIGRvdWJsZSAtPiBzdGQ6OmNocm9ubzo6bWlsbGlz
ZWNvbmRzCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZXR0aW5nczo6c2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmspOgorICAgICAgICAoV2Vi
Q29yZTo6U2V0dGluZ3M6OnNldE1pbmltdW1ET01UaW1lckludGVydmFsKToKKyAgICAgICAgKiBw
YWdlL1NldHRpbmdzLmg6CisgICAgICAgICAgICAtIGRvdWJsZSAtPiBzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzCisgICAgICAgICogcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyOjpzdGFydFJlcGVhdGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTdXNwZW5kYWJsZVRpbWVyOjpzdGFydE9uZVNob3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3VzcGVuZGFibGVUaW1lcjo6cmVwZWF0SW50ZXJ2YWxNUyk6CisgICAgICAgIChXZWJDb3JlOjpT
dXNwZW5kYWJsZVRpbWVyOjphdWdtZW50RmlyZUludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OlN1c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbCk6CisgICAgICAgICAgICAt
IGFkZGVkIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW50ZXJmYWNlLgorICAgICAgICAqIHBs
YXRmb3JtL1RpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6c2V0TmV4dEZp
cmVUaW1lKToKKyAgICAgICAgICAgIC0gcmVzdHJ1Y3R1cmVkIGZvciBuZXcgYWxpZ25lZEZpcmVU
aW1lIHNpZ25hdHVyZWQsIG1vdmVkIHplcm8tZGVsYXkgaGFuZGxpbmcgdG8gaGVyZS4KKyAgICAg
ICAgICAgICAgVGhpcyBjaGFuZ2UgbWFkZSBiZWNhdXNlIGluc2lkZSBhbGlnbmVkRmlyZVRpbWUg
ZmlyZVRpbWUgd2lsbCBoYXZlIGFscmVhZHkgYmVlbiB0cnVuY2F0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vVGltZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6bXNUb1NlY29uZHMp
OgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjpzZWNvbmRzVG9NUyk6CisgICAgICAgICAg
ICAtIGludGVybmFsIGhlbHBlciBmdW5jdGlvbnMgdG8gYnJpZGdlIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgdG8gaW50ZXJuYWwgZG91YmxlLgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNl
OjpzdGFydFJlcGVhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OnN0YXJ0T25l
U2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OnJlcGVhdEludGVydmFsTVMpOgor
ICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjphdWdtZW50RmlyZUludGVydmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6YXVnbWVudFJlcGVhdEludGVydmFsKToKKyAgICAgICAg
ICAgIC0gZXhwYW5kZWQgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcmZhY2UuCisgICAg
ICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OmFsaWduZWRGaXJlVGltZSk6CisgICAgICAgICAgICAt
IGNoYW5nZWQgdG8gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcywgbWFkZSByZXR1cm4gdmFsdWUg
T3B0aW9uYWwgKG51bGwgbWVhbnMgbm8gYWxpZ25tZW50KS4KKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6
c2V0TWluaW11bVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5oOgorICAgICAgICAgICAgLSBkb3VibGUgLT4gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cworCiAyMDE2LTAzLTA1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEFkZCB0aGUgc3VwcG9ydCBmb3IgdXBncmFkaW5nIGN1c3RvbSBlbGVtZW50cyBpbiBjbG9u
ZU5vZGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMTk3NTk4KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg5Niw3
ICsyODk2LDcgQEAgdm9pZCBEb2N1bWVudDo6d3JpdGVsbihjb25zdCBTdHJpbmcmIHRleAogICAg
IHdyaXRlKCJcbiIsIG93bmVyRG9jdW1lbnQpOwogfQogCi1kb3VibGUgRG9jdW1lbnQ6Om1pbmlt
dW1UaW1lckludGVydmFsKCkgY29uc3QKK3N0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgRG9jdW1l
bnQ6Om1pbmltdW1UaW1lckludGVydmFsKCkgY29uc3QKIHsKICAgICBhdXRvKiBwYWdlID0gdGhp
cy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAgLTI5MTMsOSArMjkxMyw5IEBAIHZvaWQgRG9j
dW1lbnQ6OnNldFRpbWVyVGhyb3R0bGluZ0VuYWJsZWQKICAgICBkaWRDaGFuZ2VUaW1lckFsaWdu
bWVudEludGVydmFsKCk7CiB9CiAKLWRvdWJsZSBEb2N1bWVudDo6dGltZXJBbGlnbm1lbnRJbnRl
cnZhbChib29sIGhhc1JlYWNoZWRNYXhOZXN0aW5nTGV2ZWwpIGNvbnN0CitzdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzIERvY3VtZW50Ojp0aW1lckFsaWdubWVudEludGVydmFsKGJvb2wgaGFzUmVh
Y2hlZE1heE5lc3RpbmdMZXZlbCkgY29uc3QKIHsKLSAgICBkb3VibGUgYWxpZ25tZW50SW50ZXJ2
YWwgPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudEludGVydmFsKGhhc1Jl
YWNoZWRNYXhOZXN0aW5nTGV2ZWwpOworICAgIGF1dG8gYWxpZ25tZW50SW50ZXJ2YWwgPSBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudEludGVydmFsKGhhc1JlYWNoZWRNYXhO
ZXN0aW5nTGV2ZWwpOwogCiAgICAgLy8gQXBwbHkgRG9jdW1lbnQtbGV2ZWwgRE9NVGltZXIgdGhy
b3R0bGluZyBvbmx5IGlmIHRpbWVycyBoYXZlIHJlYWNoZWQgdGhlaXIgbWF4aW11bSBuZXN0aW5n
IGxldmVsIGFzIHRoZSBQYWdlIG1heSBzdGlsbCBiZSB2aXNpYmxlLgogICAgIGlmIChtX2lzVGlt
ZXJUaHJvdHRsaW5nRW5hYmxlZCAmJiBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKQpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDE5NzU5OCkKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzU1LDkgKzEzNTUsOSBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGlu
ZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRD
YWxsU3RhY2s+JiYsIEpTQzo6RXhlY1N0YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVx
dWVzdElkZW50aWZpZXIgPSAwKSBmaW5hbDsKIAotICAgIGRvdWJsZSBtaW5pbXVtVGltZXJJbnRl
cnZhbCgpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWluaW11
bVRpbWVySW50ZXJ2YWwoKSBjb25zdCBmaW5hbDsKIAotICAgIGRvdWJsZSB0aW1lckFsaWdubWVu
dEludGVydmFsKGJvb2wgaGFzUmVhY2hlZE1heE5lc3RpbmdMZXZlbCkgY29uc3QgZmluYWw7Cisg
ICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lckFsaWdubWVudEludGVydmFsKGJvb2wg
aGFzUmVhY2hlZE1heE5lc3RpbmdMZXZlbCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHVwZGF0
ZVRpdGxlRnJvbVRpdGxlRWxlbWVudCgpOwogICAgIHZvaWQgdXBkYXRlVGl0bGUoY29uc3QgU3Ry
aW5nV2l0aERpcmVjdGlvbiYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcAkocmV2aXNpb24gMTk3NTk4KQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjYsNyAr
NDI2LDcgQEAgUHVibGljVVJMTWFuYWdlciYgU2NyaXB0RXhlY3V0aW9uQ29udGV4dAogICAgIHJl
dHVybiAqbV9wdWJsaWNVUkxNYW5hZ2VyOwogfQogCi12b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmFkanVzdE1pbmltdW1UaW1lckludGVydmFsKGRvdWJsZSBvbGRNaW5pbXVtVGltZXJJbnRl
cnZhbCkKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRqdXN0TWluaW11bVRpbWVySW50
ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBvbGRNaW5pbXVtVGltZXJJbnRlcnZhbCkK
IHsKICAgICBpZiAobWluaW11bVRpbWVySW50ZXJ2YWwoKSAhPSBvbGRNaW5pbXVtVGltZXJJbnRl
cnZhbCkgewogICAgICAgICBmb3IgKGF1dG8mIHRpbWVyIDogbV90aW1lb3V0cy52YWx1ZXMoKSkK
QEAgLTQzNCw3ICs0MzQsNyBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkanVzdE1p
bmltCiAgICAgfQogfQogCi1kb3VibGUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6bWluaW11bVRp
bWVySW50ZXJ2YWwoKSBjb25zdAorc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0CiB7CiAgICAgLy8gVGhl
IGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJucyB0aGUgRE9NVGltZXIncyBkZWZhdWx0CiAg
ICAgLy8gbWluaW11bSB0aW1lciBpbnRlcnZhbC4gRklYTUU6IHRvIG1ha2UgaXQgd29yayB3aXRo
IGRlZGljYXRlZApAQCAtNDUwLDcgKzQ1MCw3IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6ZGlkQ2hhbmdlVGkKICAgICAgICAgdGltZXItPmRpZENoYW5nZUFsaWdubWVudEludGVydmFs
KCk7CiB9CiAKLWRvdWJsZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudElu
dGVydmFsKGJvb2wpIGNvbnN0CitzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OnRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9vbCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gRE9NVGltZXI6OmRlZmF1bHRBbGlnbm1lbnRJbnRlcnZhbCgpOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCShyZXZpc2lvbiAxOTc1
OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzAsMTEgKzE3MCwxMSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgSlNDOjpWTSYgdm0oKTsKIAogICAgIC8vIEludGVydmFsIGlzIGluIHNlY29uZHMuCi0gICAg
dm9pZCBhZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUgb2xkTWluaW11bVRpbWVySW50
ZXJ2YWwpOwotICAgIHZpcnR1YWwgZG91YmxlIG1pbmltdW1UaW1lckludGVydmFsKCkgY29uc3Q7
CisgICAgdm9pZCBhZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlz
ZWNvbmRzIG9sZE1pbmltdW1UaW1lckludGVydmFsKTsKKyAgICB2aXJ0dWFsIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25zdDsKIAogICAgIHZvaWQg
ZGlkQ2hhbmdlVGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpOwotICAgIHZpcnR1YWwgZG91YmxlIHRp
bWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25z
dDsKKyAgICB2aXJ0dWFsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZXJBbGlnbm1lbnRJ
bnRlcnZhbChib29sIGhhc1JlYWNoZWRNYXhOZXN0aW5nTGV2ZWwpIGNvbnN0OwogCiAgICAgdmly
dHVhbCBFdmVudFF1ZXVlJiBldmVudFF1ZXVlKCkgY29uc3QgPSAwOwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVRpbWVyLmNwcAkocmV2aXNpb24gMTk3NjAzKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01UaW1lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDkgKzUzLDggQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWF4
SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzKDEwMDApOyAvLyBPbmUgc2Vjb25kIG1hdGNoZXMgR2Vja28uCi1zdGF0aWMgY29uc3QgaW50
IG1pbkludGVydmFsRm9yTm9uVXNlck9ic2VydmFibGVDaGFuZ2VUaW1lcnMgPSAxMDAwOyAvLyBF
bXBpcmljYWxseSBkZXRlcm1pbmVkIHRvIG1heGltaXplIGJhdHRlcnkgbGlmZS4KK3N0YXRpYyBj
b25zdCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1pbkludGVydmFsRm9yTm9uVXNlck9ic2Vy
dmFibGVDaGFuZ2VUaW1lcnMgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwMDApOyAvLyBF
bXBpcmljYWxseSBkZXRlcm1pbmVkIHRvIG1heGltaXplIGJhdHRlcnkgbGlmZS4KIHN0YXRpYyBj
b25zdCBpbnQgbWF4VGltZXJOZXN0aW5nTGV2ZWwgPSA1Owotc3RhdGljIGNvbnN0IGRvdWJsZSBv
bmVNaWxsaXNlY29uZCA9IDAuMDAxOwogCiBjbGFzcyBET01UaW1lckZpcmVTdGF0ZSB7CiBwdWJs
aWM6CkBAIC0zODcsNTMgKzM4Niw1MiBAQCB2b2lkIERPTVRpbWVyOjp1cGRhdGVUaW1lckludGVy
dmFsSWZOZWNlCiB7CiAgICAgQVNTRVJUKG1fbmVzdGluZ0xldmVsIDw9IG1heFRpbWVyTmVzdGlu
Z0xldmVsKTsKIAotICAgIGRvdWJsZSBwcmV2aW91c0ludGVydmFsID0gbV9jdXJyZW50VGltZXJJ
bnRlcnZhbDsKKyAgICBhdXRvIHByZXZpb3VzSW50ZXJ2YWwgPSBtX2N1cnJlbnRUaW1lckludGVy
dmFsOwogICAgIG1fY3VycmVudFRpbWVySW50ZXJ2YWwgPSBpbnRlcnZhbENsYW1wZWRUb01pbmlt
dW0oKTsKLQotICAgIGlmIChXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwocHJldmlvdXNJbnRlcnZh
bCwgbV9jdXJyZW50VGltZXJJbnRlcnZhbCwgb25lTWlsbGlzZWNvbmQpKQorICAgIGlmIChwcmV2
aW91c0ludGVydmFsID09IG1fY3VycmVudFRpbWVySW50ZXJ2YWwpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGlmIChyZXBlYXRJbnRlcnZhbCgpKSB7Ci0gICAgICAgIEFTU0VSVChXVEY6OmFyZUVz
c2VudGlhbGx5RXF1YWwocmVwZWF0SW50ZXJ2YWwoKSwgcHJldmlvdXNJbnRlcnZhbCwgb25lTWls
bGlzZWNvbmQpKTsKLSAgICAgICAgTE9HKERPTVRpbWVycywgIiVwIC0gVXBkYXRpbmcgRE9NVGlt
ZXIncyByZXBlYXQgaW50ZXJ2YWwgZnJvbSAlZyBtcyB0byAlZyBtcyBkdWUgdG8gdGhyb3R0bGlu
Zy4iLCB0aGlzLCBwcmV2aW91c0ludGVydmFsICogMTAwMC4sIG1fY3VycmVudFRpbWVySW50ZXJ2
YWwgKiAxMDAwLik7CisgICAgICAgIEFTU0VSVChyZXBlYXRJbnRlcnZhbE1TKCkgPT0gcHJldmlv
dXNJbnRlcnZhbCk7CisgICAgICAgIExPRyhET01UaW1lcnMsICIlcCAtIFVwZGF0aW5nIERPTVRp
bWVyJ3MgcmVwZWF0IGludGVydmFsIGZyb20gJWxsZCBtcyB0byAlbGxkIG1zIGR1ZSB0byB0aHJv
dHRsaW5nLiIsIHRoaXMsIHByZXZpb3VzSW50ZXJ2YWwuY291bnQoKSwgbV9jdXJyZW50VGltZXJJ
bnRlcnZhbC5jb3VudCgpKTsKICAgICAgICAgYXVnbWVudFJlcGVhdEludGVydmFsKG1fY3VycmVu
dFRpbWVySW50ZXJ2YWwgLSBwcmV2aW91c0ludGVydmFsKTsKICAgICB9IGVsc2UgewotICAgICAg
ICBMT0coRE9NVGltZXJzLCAiJXAgLSBVcGRhdGluZyBET01UaW1lcidzIGZpcmUgaW50ZXJ2YWwg
ZnJvbSAlZyBtcyB0byAlZyBtcyBkdWUgdG8gdGhyb3R0bGluZy4iLCB0aGlzLCBwcmV2aW91c0lu
dGVydmFsICogMTAwMC4sIG1fY3VycmVudFRpbWVySW50ZXJ2YWwgKiAxMDAwLik7CisgICAgICAg
IExPRyhET01UaW1lcnMsICIlcCAtIFVwZGF0aW5nIERPTVRpbWVyJ3MgZmlyZSBpbnRlcnZhbCBm
cm9tICVsbGQgbXMgdG8gJWxsZCBtcyBkdWUgdG8gdGhyb3R0bGluZy4iLCB0aGlzLCBwcmV2aW91
c0ludGVydmFsLmNvdW50KCksIG1fY3VycmVudFRpbWVySW50ZXJ2YWwuY291bnQoKSk7CiAgICAg
ICAgIGF1Z21lbnRGaXJlSW50ZXJ2YWwobV9jdXJyZW50VGltZXJJbnRlcnZhbCAtIHByZXZpb3Vz
SW50ZXJ2YWwpOwogICAgIH0KIH0KIAotZG91YmxlIERPTVRpbWVyOjppbnRlcnZhbENsYW1wZWRU
b01pbmltdW0oKSBjb25zdAorc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBET01UaW1lcjo6aW50
ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgY29uc3QKIHsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKICAgICBBU1NFUlQobV9uZXN0aW5nTGV2ZWwgPD0gbWF4VGltZXJOZXN0
aW5nTGV2ZWwpOwogCi0gICAgZG91YmxlIGludGVydmFsSW5TZWNvbmRzID0gc3RkOjptYXgob25l
TWlsbGlzZWNvbmQsIG1fb3JpZ2luYWxJbnRlcnZhbC5jb3VudCgpICogb25lTWlsbGlzZWNvbmQp
OworICAgIGF1dG8gaW50ZXJ2YWwgPSBzdGQ6Om1heChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
KDEpLCBtX29yaWdpbmFsSW50ZXJ2YWwpOwogCiAgICAgLy8gT25seSBhcHBseSB0aHJvdHRsaW5n
IHRvIHJlcGVhdGluZyB0aW1lcnMuCiAgICAgaWYgKG1fbmVzdGluZ0xldmVsIDwgbWF4VGltZXJO
ZXN0aW5nTGV2ZWwpCi0gICAgICAgIHJldHVybiBpbnRlcnZhbEluU2Vjb25kczsKKyAgICAgICAg
cmV0dXJuIGludGVydmFsOwogCiAgICAgLy8gQXBwbHkgdHdvIHRocm90dGxlcyAtIHRoZSBnbG9i
YWwgKHBlciBQYWdlKSBtaW5pbXVtLCBhbmQgYWxzbyBhIHBlci10aW1lciB0aHJvdHRsZS4KLSAg
ICBpbnRlcnZhbEluU2Vjb25kcyA9IHN0ZDo6bWF4KGludGVydmFsSW5TZWNvbmRzLCBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPm1pbmltdW1UaW1lckludGVydmFsKCkpOworICAgIGludGVydmFs
ID0gc3RkOjptYXgoaW50ZXJ2YWwsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+bWluaW11bVRp
bWVySW50ZXJ2YWwoKSk7CiAgICAgaWYgKG1fdGhyb3R0bGVTdGF0ZSA9PSBTaG91bGRUaHJvdHRs
ZSkKLSAgICAgICAgaW50ZXJ2YWxJblNlY29uZHMgPSBzdGQ6Om1heChpbnRlcnZhbEluU2Vjb25k
cywgbWluSW50ZXJ2YWxGb3JOb25Vc2VyT2JzZXJ2YWJsZUNoYW5nZVRpbWVycyAqIG9uZU1pbGxp
c2Vjb25kKTsKLSAgICByZXR1cm4gaW50ZXJ2YWxJblNlY29uZHM7CisgICAgICAgIGludGVydmFs
ID0gc3RkOjptYXgoaW50ZXJ2YWwsIG1pbkludGVydmFsRm9yTm9uVXNlck9ic2VydmFibGVDaGFu
Z2VUaW1lcnMpOworICAgIHJldHVybiBpbnRlcnZhbDsKIH0KIAotZG91YmxlIERPTVRpbWVyOjph
bGlnbmVkRmlyZVRpbWUoZG91YmxlIGZpcmVUaW1lKSBjb25zdAorT3B0aW9uYWw8c3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcz4gRE9NVGltZXI6OmFsaWduZWRGaXJlVGltZShzdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzIGZpcmVUaW1lKSBjb25zdAogewotICAgIGlmIChkb3VibGUgYWxpZ25tZW50
SW50ZXJ2YWwgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnRpbWVyQWxpZ25tZW50SW50ZXJ2
YWwobV9uZXN0aW5nTGV2ZWwgPj0gbWF4VGltZXJOZXN0aW5nTGV2ZWwpKSB7Ci0gICAgICAgIC8v
IERvbid0IG1lc3Mgd2l0aCB6ZXJvLWRlbGF5IHRpbWVycy4KLSAgICAgICAgaWYgKCFmaXJlVGlt
ZSkKLSAgICAgICAgICAgIHJldHVybiBmaXJlVGltZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGRv
dWJsZSByYW5kb21pemVkQWxpZ25tZW50ID0gcmFuZG9tTnVtYmVyKCk7Ci0gICAgICAgIC8vIEZv
cmNlIGFsaWdubWVudCB0byByYW5kb21pemVkQWxpZ25tZW50IGZyYWN0aW9uIG9mIHRoZSB3YXkg
YmV0d2VlbiBhbGlnbmVtbnRJbnRlcnZhbHMsIGUuZy4KLSAgICAgICAgLy8gaWYgYWxpZ25tZW50
SW50ZXJ2YWwgaXMgMTAgYW5kIHJhbmRvbWl6ZWRBbGlnbm1lbnQgaXMgMC4zIHRoaXMgd2lsbCBh
bGlnbiB0byAzLCAxMywgMjMsIC4uLgotICAgICAgICByZXR1cm4gKGNlaWwoZmlyZVRpbWUgLyBh
bGlnbm1lbnRJbnRlcnZhbCAtIHJhbmRvbWl6ZWRBbGlnbm1lbnQpICsgcmFuZG9taXplZEFsaWdu
bWVudCkgKiBhbGlnbm1lbnRJbnRlcnZhbDsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmlyZVRpbWU7
CisgICAgYXV0byBhbGlnbm1lbnRJbnRlcnZhbCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
dGltZXJBbGlnbm1lbnRJbnRlcnZhbChtX25lc3RpbmdMZXZlbCA+PSBtYXhUaW1lck5lc3RpbmdM
ZXZlbCk7CisgICAgaWYgKGFsaWdubWVudEludGVydmFsID09IHN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHM6Onplcm8oKSkKKyAgICAgICAgcmV0dXJuIE51bGxvcHQ7CisgICAgCisgICAgc3RhdGlj
IGNvbnN0IGRvdWJsZSByYW5kb21pemVkUHJvcG9ydGlvbiA9IHJhbmRvbU51bWJlcigpOworCisg
ICAgLy8gRm9yY2UgYWxpZ25tZW50IHRvIHJhbmRvbWl6ZWRBbGlnbm1lbnQgZnJhY3Rpb24gb2Yg
dGhlIHdheSBiZXR3ZWVuIGFsaWduZW1udEludGVydmFscywgZS5nLgorICAgIC8vIGlmIGFsaWdu
bWVudEludGVydmFsIGlzIDEwIGFuZCByYW5kb21pemVkQWxpZ25tZW50IGlzIDAuMyB0aGlzIHdp
bGwgYWxpZ24gdG8gMywgMTMsIDIzLCAuLi4KKyAgICBhdXRvIHJhbmRvbWl6ZWRPZmZzZXQgPSBz
dGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPihhbGln
bm1lbnRJbnRlcnZhbCAqIHJhbmRvbWl6ZWRQcm9wb3J0aW9uKTsKKyAgICBhdXRvIGFkanVzdGVk
RmlyZVRpbWUgPSBmaXJlVGltZSAtIHJhbmRvbWl6ZWRPZmZzZXQ7CisgICAgcmV0dXJuIGFkanVz
dGVkRmlyZVRpbWUgLSAoYWRqdXN0ZWRGaXJlVGltZSAlIGFsaWdubWVudEludGVydmFsKSArIGFs
aWdubWVudEludGVydmFsICsgcmFuZG9taXplZE9mZnNldDsKIH0KIAogY29uc3QgY2hhciogRE9N
VGltZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9ET01UaW1lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGlt
ZXIuaAkocmV2aXNpb24gMTk3NTk5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5o
CSh3b3JraW5nIGNvcHkpCkBAIC00Niw5ICs0Niw5IEBAIGNsYXNzIERPTVRpbWVyIGZpbmFsIDog
cHVibGljIFJlZkNvdW50ZWQKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5ET01UaW1lcigpOwogCi0g
ICAgc3RhdGljIGRvdWJsZSBkZWZhdWx0TWluaW11bUludGVydmFsKCkgeyByZXR1cm4gMC4wMDQ7
IH0gLy8gNCBtaWxsaXNlY29uZHMuCi0gICAgc3RhdGljIGRvdWJsZSBkZWZhdWx0QWxpZ25tZW50
SW50ZXJ2YWwoKSB7IHJldHVybiAwOyB9Ci0gICAgc3RhdGljIGRvdWJsZSBoaWRkZW5QYWdlQWxp
Z25tZW50SW50ZXJ2YWwoKSB7IHJldHVybiAxLjA7IH0gLy8gMSBzZWNvbmQuCisgICAgc3RhdGlj
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVmYXVsdE1pbmltdW1JbnRlcnZhbCgpIHsgcmV0
dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNCk7IH0KKyAgICBzdGF0aWMgc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyBkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKSB7IHJldHVybiBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzOjp6ZXJvKCk7IH0KKyAgICBzdGF0aWMgc3RkOjpjaHJvbm86
Om1pbGxpc2Vjb25kcyBoaWRkZW5QYWdlQWxpZ25tZW50SW50ZXJ2YWwoKSB7IHJldHVybiBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwMDApOyB9CiAKICAgICAvLyBDcmVhdGVzIGEgbmV3IHRp
bWVyIG93bmVkIGJ5IHNwZWNpZmllZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdGFydHMgaXQK
ICAgICAvLyBhbmQgcmV0dXJucyBpdHMgSWQuCkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAg
ICAgRE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6dW5pcXVlX3B0cjxTY2hl
ZHVsZWRBY3Rpb24+LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGludGVydmFsLCBib29sIHNp
bmdsZVNob3QpOwogICAgIGZyaWVuZCBjbGFzcyBJbnRlcm5hbHM7CiAKLSAgICBkb3VibGUgaW50
ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgY29uc3Q7CisgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyBpbnRlcnZhbENsYW1wZWRUb01pbmltdW0oKSBjb25zdDsKIAogICAgIGJvb2wgaXNET01U
aW1lcnNUaHJvdHRsaW5nRW5hYmxlZChEb2N1bWVudCYpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRl
VGhyb3R0bGluZ1N0YXRlSWZOZWNlc3NhcnkoY29uc3QgRE9NVGltZXJGaXJlU3RhdGUmKTsKQEAg
LTczLDcgKzczLDcgQEAgcHJpdmF0ZToKICAgICAvLyBTdXNwZW5kYWJsZVRpbWVyCiAgICAgdm9p
ZCBmaXJlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkU3RvcCgpIG92ZXJyaWRlOwotICAgIGRv
dWJsZSBhbGlnbmVkRmlyZVRpbWUoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKKyAgICBPcHRpb25h
bDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPiBhbGlnbmVkRmlyZVRpbWUoc3RkOjpjaHJvbm86
Om1pbGxpc2Vjb25kcykgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3Qg
QVBJLgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlk
ZTsKQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1
bGVkQWN0aW9uPiBtX2FjdGlvbjsKICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fb3Jp
Z2luYWxJbnRlcnZhbDsKICAgICBUaW1lclRocm90dGxlU3RhdGUgbV90aHJvdHRsZVN0YXRlOwot
ICAgIGRvdWJsZSBtX2N1cnJlbnRUaW1lckludGVydmFsOworICAgIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgbV9jdXJyZW50VGltZXJJbnRlcnZhbDsKICAgICBib29sIG1fc2hvdWxkRm9yd2Fy
ZFVzZXJHZXN0dXJlOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAxOTc1
OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjA2LDcgKzEyMDYsNyBAQCB2b2lkIFBhZ2U6OnNldFRpbWVyVGhyb3R0bGluZ1N0YXRlKFRpbWVy
CiAgICAgICAgIHJldHVybjsKIAogICAgIG1fdGltZXJUaHJvdHRsaW5nU3RhdGUgPSBzdGF0ZTsK
LSAgICBtX3RpbWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lID0gbW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCk7CisgICAgbV90aW1lclRocm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2Vk
VGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOwogCiAgICAgdXBkYXRlRE9N
VGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpOwogCkBAIC0xMjIxLDggKzEyMjEsNyBAQCB2b2lkIFBh
Z2U6OnNldFRpbWVyVGhyb3R0bGluZ1N0YXRlKFRpbWVyCiAKIHZvaWQgUGFnZTo6c2V0VGltZXJB
bGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBs
aW1pdCkKIHsKLSAgICAvLyBGSVhNRTogc3RkOjpjaHJvbm8taWZ5IGFsbCB0aW1lciBhbGxpZ25t
ZW50IHJlbGF0ZWQgY29kZS4KLSAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxp
bWl0ID0gbGltaXQuY291bnQoKSAqIDAuMDAxOworICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZh
bEluY3JlYXNlTGltaXQgPSBsaW1pdDsKIAogICAgIC8vIElmIChtX3RpbWVyQWxpZ25tZW50SW50
ZXJ2YWxJbmNyZWFzZUxpbWl0IDwgbV90aW1lckFsaWdubWVudEludGVydmFsKSB0aGVuIHdlIG5l
ZWQKICAgICAvLyB0byB1cGRhdGUgbV90aW1lckFsaWdubWVudEludGVydmFsLCBpZiBncmVhdGVy
IHRoZW4gbmVlZCB0byByZXN0YXJ0IHRoZSBpbmNyZWFzZSB0aW1lci4KQEAgLTEyNDgsOCArMTI0
Nyw4IEBAIHZvaWQgUGFnZTo6dXBkYXRlRE9NVGltZXJBbGlnbm1lbnRJbnRlcnYKICAgICAgICAg
aWYgKG1faXNQcmVyZW5kZXIpCiAgICAgICAgICAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwg
PSBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0OwogICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgIEFTU0VSVChtX3RpbWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1l
KTsKLSAgICAgICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpIC0gbV90aW1lclRocm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2VkVGltZTsK
KyAgICAgICAgICAgIEFTU0VSVChtX3RpbWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1l
LnRpbWVfc2luY2VfZXBvY2goKSAhPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpkdXJhdGlv
bjo6emVybygpKTsKKyAgICAgICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IHN0ZDo6
Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KHN0ZDo6Y2hy
b25vOjpzdGVhZHlfY2xvY2s6Om5vdygpIC0gbV90aW1lclRocm90dGxpbmdTdGF0ZUxhc3RDaGFu
Z2VkVGltZSk7CiAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBiZWxvdyB0aGUgbGltaXQsIHNldCB0
aGUgdGltZXIuIElmIGFib3ZlLCBjbGFtcCB0byBsaW1pdC4KICAgICAgICAgICAgIGlmIChtX3Rp
bWVyQWxpZ25tZW50SW50ZXJ2YWwgPCBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxp
bWl0KQogICAgICAgICAgICAgICAgIG5lZWRzSW5jcmVhc2VUaW1lciA9IHRydWU7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAkocmV2aXNpb24gMTk3NTk4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxOSw3ICsyMTksNyBAQCBwdWJsaWM6CiAgICAgUHJvZ3Jl
c3NUcmFja2VyJiBwcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuICptX3Byb2dyZXNzOyB9CiAgICAg
QmFja0ZvcndhcmRDb250cm9sbGVyJiBiYWNrRm9yd2FyZCgpIGNvbnN0IHsgcmV0dXJuICptX2Jh
Y2tGb3J3YXJkQ29udHJvbGxlcjsgfQogCi0gICAgZG91YmxlIGRvbVRpbWVyQWxpZ25tZW50SW50
ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWw7IH0KKyAgICBz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKSBjb25z
dCB7IHJldHVybiBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWw7IH0KIAogI2lmIEVOQUJMRShWSUVX
X01PREVfQ1NTX01FRElBKQogICAgIGVudW0gVmlld01vZGUgewpAQCAtNjIxLDEwICs2MjEsMTAg
QEAgcHJpdmF0ZToKICNlbmRpZiAvLyBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKIAogICAg
IFRpbWVyVGhyb3R0bGluZ1N0YXRlIG1fdGltZXJUaHJvdHRsaW5nU3RhdGUgeyBUaW1lclRocm90
dGxpbmdTdGF0ZTo6RGlzYWJsZWQgfTsKLSAgICBkb3VibGUgbV90aW1lclRocm90dGxpbmdTdGF0
ZUxhc3RDaGFuZ2VkVGltZSB7IDAgfTsKLSAgICBkb3VibGUgbV90aW1lckFsaWdubWVudEludGVy
dmFsOworICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgbV90aW1lclRo
cm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2VkVGltZSB7IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6
OmR1cmF0aW9uOjp6ZXJvKCkgfTsKKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fdGlt
ZXJBbGlnbm1lbnRJbnRlcnZhbDsKICAgICBUaW1lciBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJ
bmNyZWFzZVRpbWVyOwotICAgIGRvdWJsZSBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFz
ZUxpbWl0IHsgMCB9OworICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbV90aW1lckFsaWdu
bWVudEludGVydmFsSW5jcmVhc2VMaW1pdCB7IDAgfTsKIAogICAgIGJvb2wgbV9pc0VkaXRhYmxl
OwogICAgIGJvb2wgbV9pc1ByZXJlbmRlcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
CShyZXZpc2lvbiAxOTc1OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDY0LDkgKzQ2NCw5IEBAIHZvaWQgU2V0dGluZ3M6OnNldE5lZWRz
QWRvYmVGcmFtZVJlbG9hZGkKICAgICBtX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrID0g
c2hvdWxkTm90UmVsb2FkSUZyYW1lc0ZvclVuY2hhbmdlZFNSQzsKIH0KIAotdm9pZCBTZXR0aW5n
czo6c2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoZG91YmxlIGludGVydmFsKQordm9pZCBTZXR0
aW5nczo6c2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBpbnRlcnZhbCkKIHsKLSAgICBkb3VibGUgb2xkVGltZXJJbnRlcnZhbCA9IG1fbWluaW11bURP
TVRpbWVySW50ZXJ2YWw7CisgICAgYXV0byBvbGRUaW1lckludGVydmFsID0gbV9taW5pbXVtRE9N
VGltZXJJbnRlcnZhbDsKICAgICBtX21pbmltdW1ET01UaW1lckludGVydmFsID0gaW50ZXJ2YWw7
CiAKICAgICBpZiAoIW1fcGFnZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHJldmlzaW9u
IDE5NzU5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkod29ya2luZyBjb3B5
KQpAQCAtMTUyLDggKzE1Miw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dE5lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrKGJvb2wpOwogICAgIGJvb2wgbmVlZHNBY3Jv
YmF0RnJhbWVSZWxvYWRpbmdRdWlyaygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNBZG9iZUZyYW1l
UmVsb2FkaW5nUXVpcms7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWluaW11bURP
TVRpbWVySW50ZXJ2YWwoZG91YmxlKTsgLy8gSW5pdGlhbGl6ZWQgdG8gRE9NVGltZXI6OmRlZmF1
bHRNaW5pbXVtSW50ZXJ2YWwoKS4KLSAgICBkb3VibGUgbWluaW11bURPTVRpbWVySW50ZXJ2YWwo
KSBjb25zdCB7IHJldHVybiBtX21pbmltdW1ET01UaW1lckludGVydmFsOyB9CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzKTsgLy8gSW5pdGlhbGl6ZWQgdG8gRE9NVGltZXI6OmRlZmF1bHRNaW5pbXVtSW50
ZXJ2YWwoKS4KKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1pbmltdW1ET01UaW1lcklu
dGVydmFsKCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsgfQogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRMYXlvdXRJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzKTsKICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGxheW91dEludGVydmFs
KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRJbnRlcnZhbDsgfQpAQCAtMzAzLDcgKzMwMyw3IEBA
IHByaXZhdGU6CiAgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPEZvbnRHZW5lcmljRmFtaWxpZXM+
IG1fZm9udEdlbmVyaWNGYW1pbGllczsKICAgICBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2Nr
aW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5OwogICAgIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgbV9sYXlvdXRJbnRlcnZhbDsKLSAgICBkb3VibGUgbV9taW5pbXVtRE9NVGltZXJJ
bnRlcnZhbDsKKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fbWluaW11bURPTVRpbWVy
SW50ZXJ2YWw7CiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIGZsb2F0IG1fdGV4
dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3I7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1N1
c3BlbmRhYmxlVGltZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3Bl
bmRhYmxlVGltZXIuaAkocmV2aXNpb24gMTk3NTk4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9T
dXNwZW5kYWJsZVRpbWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDExICs0MywxOSBAQCBwdWJs
aWM6CiAgICAgLy8gUGFydCBvZiBUaW1lckJhc2UgaW50ZXJmYWNlIHVzZWQgYnkgU3VzcGVuZGFi
bGVUaW1lciBjbGllbnRzLCBtb2RpZmllZCB0byB3b3JrIHdoZW4gc3VzcGVuZGVkLgogICAgIGJv
b2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBUaW1lckJhc2U6OmlzQWN0aXZlKCkgfHwgKG1f
c3VzcGVuZGVkICYmIG1fc2F2ZWRJc0FjdGl2ZSk7IH0KICAgICBib29sIGlzU3VzcGVuZGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9zdXNwZW5kZWQ7IH0KKwogICAgIHZvaWQgc3RhcnRSZXBlYXRpbmco
ZG91YmxlIHJlcGVhdEludGVydmFsKTsKICAgICB2b2lkIHN0YXJ0T25lU2hvdChkb3VibGUgaW50
ZXJ2YWwpOwogICAgIGRvdWJsZSByZXBlYXRJbnRlcnZhbCgpIGNvbnN0OwogICAgIHZvaWQgYXVn
bWVudEZpcmVJbnRlcnZhbChkb3VibGUgZGVsdGEpOwogICAgIHZvaWQgYXVnbWVudFJlcGVhdElu
dGVydmFsKGRvdWJsZSBkZWx0YSk7CisKKyAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHMgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRpbmcobXNUb1Nl
Y29uZHMocmVwZWF0SW50ZXJ2YWwpKTsgfQorICAgIHZvaWQgc3RhcnRPbmVTaG90KHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHMgaW50ZXJ2YWwpIHsgc3RhcnRPbmVTaG90KG1zVG9TZWNvbmRzKGlu
dGVydmFsKSk7IH0KKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHJlcGVhdEludGVydmFs
TVMoKSBjb25zdCB7IHJldHVybiBzZWNvbmRzVG9NUyhyZXBlYXRJbnRlcnZhbCgpKTsgfQorICAg
IHZvaWQgYXVnbWVudEZpcmVJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbHRh
KSB7IGF1Z21lbnRGaXJlSW50ZXJ2YWwobXNUb1NlY29uZHMoZGVsdGEpKTsgfQorICAgIHZvaWQg
YXVnbWVudFJlcGVhdEludGVydmFsKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVsdGEpIHsg
YXVnbWVudFJlcGVhdEludGVydmFsKG1zVG9TZWNvbmRzKGRlbHRhKSk7IH0KKwogICAgIHVzaW5n
IFRpbWVyQmFzZTo6ZGlkQ2hhbmdlQWxpZ25tZW50SW50ZXJ2YWw7CiAgICAgdXNpbmcgVGltZXJC
YXNlOjpvcGVyYXRvciBuZXc7CiAgICAgdXNpbmcgVGltZXJCYXNlOjpvcGVyYXRvciBkZWxldGU7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCShyZXZpc2lvbiAxOTc1OTgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2Nywx
MyArMzY3LDEzIEBAIHZvaWQgVGltZXJCYXNlOjp1cGRhdGVIZWFwSWZOZWVkZWQoZG91YmwKICAg
ICBBU1NFUlQoIWluSGVhcCgpIHx8IGhhc1ZhbGlkSGVhcFBvc2l0aW9uKCkpOwogfQogCi12b2lk
IFRpbWVyQmFzZTo6c2V0TmV4dEZpcmVUaW1lKGRvdWJsZSBuZXdVbmFsaWduZWRUaW1lKQordm9p
ZCBUaW1lckJhc2U6OnNldE5leHRGaXJlVGltZShkb3VibGUgbmV3VGltZSkKIHsKICAgICBBU1NF
UlQoY2FuQWNjZXNzVGhyZWFkTG9jYWxEYXRhRm9yVGhyZWFkKG1fdGhyZWFkKSk7CiAgICAgQVNT
RVJUKCFtX3dhc0RlbGV0ZWQpOwogCi0gICAgaWYgKG1fdW5hbGlnbmVkTmV4dEZpcmVUaW1lICE9
IG5ld1VuYWxpZ25lZFRpbWUpCi0gICAgICAgIG1fdW5hbGlnbmVkTmV4dEZpcmVUaW1lID0gbmV3
VW5hbGlnbmVkVGltZTsKKyAgICBpZiAobV91bmFsaWduZWROZXh0RmlyZVRpbWUgIT0gbmV3VGlt
ZSkKKyAgICAgICAgbV91bmFsaWduZWROZXh0RmlyZVRpbWUgPSBuZXdUaW1lOwogCiAgICAgLy8g
QWNjZXNzaW5nIHRocmVhZCBnbG9iYWwgZGF0YSBpcyBzbG93LiBDYWNoZSB0aGUgaGVhcCBwb2lu
dGVyLgogICAgIGlmICghbV9jYWNoZWRUaHJlYWRHbG9iYWxUaW1lckhlYXApCkBAIC0zODEsNyAr
MzgxLDEyIEBAIHZvaWQgVGltZXJCYXNlOjpzZXROZXh0RmlyZVRpbWUoZG91YmxlIG4KIAogICAg
IC8vIEtlZXAgaGVhcCB2YWxpZCB3aGlsZSBjaGFuZ2luZyB0aGUgbmV4dC1maXJlIHRpbWUuCiAg
ICAgZG91YmxlIG9sZFRpbWUgPSBtX25leHRGaXJlVGltZTsKLSAgICBkb3VibGUgbmV3VGltZSA9
IGFsaWduZWRGaXJlVGltZShuZXdVbmFsaWduZWRUaW1lKTsKKyAgICAvLyBEb24ndCByZWFsaWdu
IHplcm8tZGVsYXkgdGltZXJzLgorICAgIGlmIChuZXdUaW1lKSB7CisgICAgICAgIGlmIChhdXRv
IG5ld0FsaWduZWRUaW1lID0gYWxpZ25lZEZpcmVUaW1lKHNlY29uZHNUb01TKG5ld1RpbWUpKSkK
KyAgICAgICAgICAgIG5ld1RpbWUgPSBtc1RvU2Vjb25kcyhuZXdBbGlnbmVkVGltZS52YWx1ZSgp
KTsKKyAgICB9CisKICAgICBpZiAob2xkVGltZSAhPSBuZXdUaW1lKSB7CiAgICAgICAgIG1fbmV4
dEZpcmVUaW1lID0gbmV3VGltZTsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHBh
cnQgb2YgVGhyZWFkVGltZXJzLCBvciBhbm90aGVyIHBlci10aHJlYWQgc3RydWN0dXJlLgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCShyZXZpc2lvbiAxOTc1OTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9UaW1lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSA8Y2hyb25vPgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDUsNiArNDYsMTAgQEAg
Y2xhc3MgVGltZXJIZWFwRWxlbWVudDsKIGNsYXNzIFRpbWVyQmFzZSB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoVGltZXJCYXNlKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3By
b3RlY3RlZDoKKyAgICBzdGF0aWMgaW5saW5lIGRvdWJsZSBtc1RvU2Vjb25kcyhzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIGR1cmF0aW9uKSB7IHJldHVybiBkdXJhdGlvbi5jb3VudCgpICogMC4w
MDE7IH0KKyAgICBzdGF0aWMgaW5saW5lIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgc2Vjb25k
c1RvTVMoZG91YmxlIGR1cmF0aW9uKSB7IHJldHVybiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
KChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjpyZXApKGR1cmF0aW9uICogMTAwMCkpOyB9CisK
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBUaW1lckJhc2UoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIH5UaW1lckJhc2UoKTsKQEAgLTUyLDkgKzU3LDkgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGRvdWJs
ZSByZXBlYXRJbnRlcnZhbCk7CiAKICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKGRvdWJsZSByZXBl
YXRJbnRlcnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZhbCwgcmVwZWF0SW50ZXJ2YWwpOyB9Ci0g
ICAgdm9pZCBzdGFydFJlcGVhdGluZyhzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHJlcGVhdElu
dGVydmFsKSB7IHN0YXJ0UmVwZWF0aW5nKHJlcGVhdEludGVydmFsLmNvdW50KCkgKiAwLjAwMSk7
IH0KKyAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgcmVw
ZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRpbmcobXNUb1NlY29uZHMocmVwZWF0SW50ZXJ2YWwp
KTsgfQogICAgIHZvaWQgc3RhcnRPbmVTaG90KGRvdWJsZSBpbnRlcnZhbCkgeyBzdGFydChpbnRl
cnZhbCwgMCk7IH0KLSAgICB2b2lkIHN0YXJ0T25lU2hvdChzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzIGludGVydmFsKSB7IHN0YXJ0T25lU2hvdChpbnRlcnZhbC5jb3VudCgpICogMC4wMDEpOyB9
CisgICAgdm9pZCBzdGFydE9uZVNob3Qoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZh
bCkgeyBzdGFydE9uZVNob3QobXNUb1NlY29uZHMoaW50ZXJ2YWwpKTsgfQogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzdG9wKCk7CiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0OwpAQCAtNjIs
OSArNjcsMTIgQEAgcHVibGljOgogICAgIGRvdWJsZSBuZXh0RmlyZUludGVydmFsKCkgY29uc3Q7
CiAgICAgZG91YmxlIG5leHRVbmFsaWduZWRGaXJlSW50ZXJ2YWwoKSBjb25zdDsKICAgICBkb3Vi
bGUgcmVwZWF0SW50ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX3JlcGVhdEludGVydmFsOyB9Cisg
ICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyByZXBlYXRJbnRlcnZhbE1TKCkgY29uc3QgeyBy
ZXR1cm4gc2Vjb25kc1RvTVMocmVwZWF0SW50ZXJ2YWwoKSk7IH0KIAogICAgIHZvaWQgYXVnbWVu
dEZpcmVJbnRlcnZhbChkb3VibGUgZGVsdGEpIHsgc2V0TmV4dEZpcmVUaW1lKG1fbmV4dEZpcmVU
aW1lICsgZGVsdGEpOyB9CisgICAgdm9pZCBhdWdtZW50RmlyZUludGVydmFsKHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgZGVsdGEpIHsgYXVnbWVudEZpcmVJbnRlcnZhbChtc1RvU2Vjb25kcyhk
ZWx0YSkpOyB9CiAgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoZG91YmxlIGRlbHRhKSB7
IGF1Z21lbnRGaXJlSW50ZXJ2YWwoZGVsdGEpOyBtX3JlcGVhdEludGVydmFsICs9IGRlbHRhOyB9
CisgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBkZWx0YSkgeyBhdWdtZW50UmVwZWF0SW50ZXJ2YWwobXNUb1NlY29uZHMoZGVsdGEpKTsgfQog
CiAgICAgdm9pZCBkaWRDaGFuZ2VBbGlnbm1lbnRJbnRlcnZhbCgpOwogCkBAIC03Myw3ICs4MSw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAwOwogCi0g
ICAgdmlydHVhbCBkb3VibGUgYWxpZ25lZEZpcmVUaW1lKGRvdWJsZSBmaXJlVGltZSkgY29uc3Qg
eyByZXR1cm4gZmlyZVRpbWU7IH0KKyAgICB2aXJ0dWFsIE9wdGlvbmFsPHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHM+IGFsaWduZWRGaXJlVGltZShzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKSBj
b25zdCB7IHJldHVybiBOdWxsb3B0OyB9CiAKICAgICB2b2lkIGNoZWNrQ29uc2lzdGVuY3koKSBj
b25zdDsKICAgICB2b2lkIGNoZWNrSGVhcEluZGV4KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAJKHJldmlzaW9uIDE5NzU5OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2Niw3ICs0NjYsNyBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEltYWdlc0Vu
YWJsZWQoCiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldE1pbmltdW1UaW1lckludGVydmFsKGRv
dWJsZSBpbnRlcnZhbEluU2Vjb25kcywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSW50ZXJu
YWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKLSAgICBzZXR0aW5ncygpLT5zZXRNaW5pbXVt
RE9NVGltZXJJbnRlcnZhbChpbnRlcnZhbEluU2Vjb25kcyk7CisgICAgc2V0dGluZ3MoKS0+c2V0
TWluaW11bURPTVRpbWVySW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygoc3RkOjpj
aHJvbm86Om1pbGxpc2Vjb25kczo6cmVwKShpbnRlcnZhbEluU2Vjb25kcyAqIDEwMDApKSk7CiB9
CiAKIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RGVmYXVsdFZpZGVvUG9zdGVyVVJMKGNvbnN0
IFN0cmluZyYgdXJsLCBFeGNlcHRpb25Db2RlJiBlYykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCShyZXZpc2lvbiAxOTc1OTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyAr
NzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgbV9vcmlnaW5hbFVzZXNPdmVybGF5U2Nyb2xs
YmFyczsKICAgICAgICAgYm9vbCBtX2xhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFi
bGVkOwogICAgICAgICBib29sIG1faW1hZ2VzRW5hYmxlZDsKLSAgICAgICAgZG91YmxlIG1fbWlu
aW11bVRpbWVySW50ZXJ2YWw7CisgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbV9t
aW5pbXVtVGltZXJJbnRlcnZhbDsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgICAgIGJv
b2wgbV9zaG91bGREaXNwbGF5U3VidGl0bGVzOwogICAgICAgICBib29sIG1fc2hvdWxkRGlzcGxh
eUNhcHRpb25zOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273161</attachid>
            <date>2016-03-06 22:22:34 -0800</date>
            <delta_ts>2016-03-06 23:33:54 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>155085.2.patch</filename>
            <type>text/plain</type>
            <size>28621</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzYzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY5IEBACisyMDE2LTAzLTA2ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IERP
TVRpbWVyIHRvIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTA4NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERPTVRpbWVyIGN1cnJlbnRseSB1c2VzIGEgbWl4
IG9mIG1pbGxpc2Vjb25kICh3YXMgaW50LCBub3cgc3RkOjpjaHJvbm8pIGFuZCBzZWNvbmQgKGFz
IGRvdWJsZSkKKyAgICAgICAgdGltZSB2YWx1ZXMuIENvbnN0YW50IGNvbnZlcnNpb24gYmFjayBh
bmQgZm9ydGggaXMgYSBjb21wbGV0ZSBtZXNzLiBTdG9wIHRoYXQuCisKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om1pbmltdW1UaW1lcklu
dGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0aW1lckFsaWdubWVudEludGVy
dmFsKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgICAgIC0gZG91YmxlIC0+
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojph
ZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudEludGVydmFsKToKKyAgICAgICAg
KiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAgICAgICAgLSBkb3VibGUgLT4g
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcworICAgICAgICAqIHBhZ2UvRE9NVGltZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OnVwZGF0ZVRpbWVySW50ZXJ2YWxJZk5lY2Vzc2Fy
eSk6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6aW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVt
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjphbGlnbmVkRmlyZVRpbWUpOgorICAgICAg
ICAqIHBhZ2UvRE9NVGltZXIuaDoKKyAgICAgICAgICAgIC0gZG91YmxlIC0+IHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c2V0VGltZXJUaHJvdHRsaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6c2V0VGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6dXBkYXRlRE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6CisgICAgICAgICog
cGFnZS9QYWdlLmg6CisgICAgICAgICAgICAtIGRvdWJsZSAtPiBzdGQ6OmNocm9ubzo6bWlsbGlz
ZWNvbmRzCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZXR0aW5nczo6c2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmspOgorICAgICAgICAoV2Vi
Q29yZTo6U2V0dGluZ3M6OnNldE1pbmltdW1ET01UaW1lckludGVydmFsKToKKyAgICAgICAgKiBw
YWdlL1NldHRpbmdzLmg6CisgICAgICAgICAgICAtIGRvdWJsZSAtPiBzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzCisgICAgICAgICogcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyOjpzdGFydFJlcGVhdGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTdXNwZW5kYWJsZVRpbWVyOjpzdGFydE9uZVNob3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3VzcGVuZGFibGVUaW1lcjo6cmVwZWF0SW50ZXJ2YWxNUyk6CisgICAgICAgIChXZWJDb3JlOjpT
dXNwZW5kYWJsZVRpbWVyOjphdWdtZW50RmlyZUludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OlN1c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbCk6CisgICAgICAgICAgICAt
IGFkZGVkIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW50ZXJmYWNlLgorICAgICAgICAqIHBs
YXRmb3JtL1RpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6c2V0TmV4dEZp
cmVUaW1lKToKKyAgICAgICAgICAgIC0gcmVzdHJ1Y3R1cmVkIGZvciBuZXcgYWxpZ25lZEZpcmVU
aW1lIHNpZ25hdHVyZWQsIG1vdmVkIHplcm8tZGVsYXkgaGFuZGxpbmcgdG8gaGVyZS4KKyAgICAg
ICAgICAgICAgVGhpcyBjaGFuZ2UgbWFkZSBiZWNhdXNlIGluc2lkZSBhbGlnbmVkRmlyZVRpbWUg
ZmlyZVRpbWUgd2lsbCBoYXZlIGFscmVhZHkgYmVlbiB0cnVuY2F0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vVGltZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6bXNUb1NlY29uZHMp
OgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjpzZWNvbmRzVG9NUyk6CisgICAgICAgICAg
ICAtIGludGVybmFsIGhlbHBlciBmdW5jdGlvbnMgdG8gYnJpZGdlIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgdG8gaW50ZXJuYWwgZG91YmxlLgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNl
OjpzdGFydFJlcGVhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OnN0YXJ0T25l
U2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OnJlcGVhdEludGVydmFsTVMpOgor
ICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjphdWdtZW50RmlyZUludGVydmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6YXVnbWVudFJlcGVhdEludGVydmFsKToKKyAgICAgICAg
ICAgIC0gZXhwYW5kZWQgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcmZhY2UuCisgICAg
ICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OmFsaWduZWRGaXJlVGltZSk6CisgICAgICAgICAgICAt
IGNoYW5nZWQgdG8gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcywgbWFkZSByZXR1cm4gdmFsdWUg
T3B0aW9uYWwgKG51bGwgbWVhbnMgbm8gYWxpZ25tZW50KS4KKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6
c2V0TWluaW11bVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5oOgorICAgICAgICAgICAgLSBkb3VibGUgLT4gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cworCiAyMDE2LTAzLTA1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEFkZCB0aGUgc3VwcG9ydCBmb3IgdXBncmFkaW5nIGN1c3RvbSBlbGVtZW50cyBpbiBjbG9u
ZU5vZGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMTk3NTk4KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg5Niw3
ICsyODk2LDcgQEAgdm9pZCBEb2N1bWVudDo6d3JpdGVsbihjb25zdCBTdHJpbmcmIHRleAogICAg
IHdyaXRlKCJcbiIsIG93bmVyRG9jdW1lbnQpOwogfQogCi1kb3VibGUgRG9jdW1lbnQ6Om1pbmlt
dW1UaW1lckludGVydmFsKCkgY29uc3QKK3N0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgRG9jdW1l
bnQ6Om1pbmltdW1UaW1lckludGVydmFsKCkgY29uc3QKIHsKICAgICBhdXRvKiBwYWdlID0gdGhp
cy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAgLTI5MTMsOSArMjkxMyw5IEBAIHZvaWQgRG9j
dW1lbnQ6OnNldFRpbWVyVGhyb3R0bGluZ0VuYWJsZWQKICAgICBkaWRDaGFuZ2VUaW1lckFsaWdu
bWVudEludGVydmFsKCk7CiB9CiAKLWRvdWJsZSBEb2N1bWVudDo6dGltZXJBbGlnbm1lbnRJbnRl
cnZhbChib29sIGhhc1JlYWNoZWRNYXhOZXN0aW5nTGV2ZWwpIGNvbnN0CitzdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzIERvY3VtZW50Ojp0aW1lckFsaWdubWVudEludGVydmFsKGJvb2wgaGFzUmVh
Y2hlZE1heE5lc3RpbmdMZXZlbCkgY29uc3QKIHsKLSAgICBkb3VibGUgYWxpZ25tZW50SW50ZXJ2
YWwgPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudEludGVydmFsKGhhc1Jl
YWNoZWRNYXhOZXN0aW5nTGV2ZWwpOworICAgIGF1dG8gYWxpZ25tZW50SW50ZXJ2YWwgPSBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudEludGVydmFsKGhhc1JlYWNoZWRNYXhO
ZXN0aW5nTGV2ZWwpOwogCiAgICAgLy8gQXBwbHkgRG9jdW1lbnQtbGV2ZWwgRE9NVGltZXIgdGhy
b3R0bGluZyBvbmx5IGlmIHRpbWVycyBoYXZlIHJlYWNoZWQgdGhlaXIgbWF4aW11bSBuZXN0aW5n
IGxldmVsIGFzIHRoZSBQYWdlIG1heSBzdGlsbCBiZSB2aXNpYmxlLgogICAgIGlmIChtX2lzVGlt
ZXJUaHJvdHRsaW5nRW5hYmxlZCAmJiBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKQpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDE5NzU5OCkKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzU1LDkgKzEzNTUsOSBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGlu
ZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRD
YWxsU3RhY2s+JiYsIEpTQzo6RXhlY1N0YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVx
dWVzdElkZW50aWZpZXIgPSAwKSBmaW5hbDsKIAotICAgIGRvdWJsZSBtaW5pbXVtVGltZXJJbnRl
cnZhbCgpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWluaW11
bVRpbWVySW50ZXJ2YWwoKSBjb25zdCBmaW5hbDsKIAotICAgIGRvdWJsZSB0aW1lckFsaWdubWVu
dEludGVydmFsKGJvb2wgaGFzUmVhY2hlZE1heE5lc3RpbmdMZXZlbCkgY29uc3QgZmluYWw7Cisg
ICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lckFsaWdubWVudEludGVydmFsKGJvb2wg
aGFzUmVhY2hlZE1heE5lc3RpbmdMZXZlbCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHVwZGF0
ZVRpdGxlRnJvbVRpdGxlRWxlbWVudCgpOwogICAgIHZvaWQgdXBkYXRlVGl0bGUoY29uc3QgU3Ry
aW5nV2l0aERpcmVjdGlvbiYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcAkocmV2aXNpb24gMTk3NTk4KQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjYsNyAr
NDI2LDcgQEAgUHVibGljVVJMTWFuYWdlciYgU2NyaXB0RXhlY3V0aW9uQ29udGV4dAogICAgIHJl
dHVybiAqbV9wdWJsaWNVUkxNYW5hZ2VyOwogfQogCi12b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmFkanVzdE1pbmltdW1UaW1lckludGVydmFsKGRvdWJsZSBvbGRNaW5pbXVtVGltZXJJbnRl
cnZhbCkKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRqdXN0TWluaW11bVRpbWVySW50
ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBvbGRNaW5pbXVtVGltZXJJbnRlcnZhbCkK
IHsKICAgICBpZiAobWluaW11bVRpbWVySW50ZXJ2YWwoKSAhPSBvbGRNaW5pbXVtVGltZXJJbnRl
cnZhbCkgewogICAgICAgICBmb3IgKGF1dG8mIHRpbWVyIDogbV90aW1lb3V0cy52YWx1ZXMoKSkK
QEAgLTQzNCw3ICs0MzQsNyBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkanVzdE1p
bmltCiAgICAgfQogfQogCi1kb3VibGUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6bWluaW11bVRp
bWVySW50ZXJ2YWwoKSBjb25zdAorc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0CiB7CiAgICAgLy8gVGhl
IGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJucyB0aGUgRE9NVGltZXIncyBkZWZhdWx0CiAg
ICAgLy8gbWluaW11bSB0aW1lciBpbnRlcnZhbC4gRklYTUU6IHRvIG1ha2UgaXQgd29yayB3aXRo
IGRlZGljYXRlZApAQCAtNDUwLDcgKzQ1MCw3IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6ZGlkQ2hhbmdlVGkKICAgICAgICAgdGltZXItPmRpZENoYW5nZUFsaWdubWVudEludGVydmFs
KCk7CiB9CiAKLWRvdWJsZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudElu
dGVydmFsKGJvb2wpIGNvbnN0CitzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OnRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9vbCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gRE9NVGltZXI6OmRlZmF1bHRBbGlnbm1lbnRJbnRlcnZhbCgpOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCShyZXZpc2lvbiAxOTc1
OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzAsMTEgKzE3MCwxMSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgSlNDOjpWTSYgdm0oKTsKIAogICAgIC8vIEludGVydmFsIGlzIGluIHNlY29uZHMuCi0gICAg
dm9pZCBhZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUgb2xkTWluaW11bVRpbWVySW50
ZXJ2YWwpOwotICAgIHZpcnR1YWwgZG91YmxlIG1pbmltdW1UaW1lckludGVydmFsKCkgY29uc3Q7
CisgICAgdm9pZCBhZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlz
ZWNvbmRzIG9sZE1pbmltdW1UaW1lckludGVydmFsKTsKKyAgICB2aXJ0dWFsIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25zdDsKIAogICAgIHZvaWQg
ZGlkQ2hhbmdlVGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpOwotICAgIHZpcnR1YWwgZG91YmxlIHRp
bWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25z
dDsKKyAgICB2aXJ0dWFsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZXJBbGlnbm1lbnRJ
bnRlcnZhbChib29sIGhhc1JlYWNoZWRNYXhOZXN0aW5nTGV2ZWwpIGNvbnN0OwogCiAgICAgdmly
dHVhbCBFdmVudFF1ZXVlJiBldmVudFF1ZXVlKCkgY29uc3QgPSAwOwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVRpbWVyLmNwcAkocmV2aXNpb24gMTk3NjAzKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01UaW1lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDkgKzUzLDggQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWF4
SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzKDEwMDApOyAvLyBPbmUgc2Vjb25kIG1hdGNoZXMgR2Vja28uCi1zdGF0aWMgY29uc3QgaW50
IG1pbkludGVydmFsRm9yTm9uVXNlck9ic2VydmFibGVDaGFuZ2VUaW1lcnMgPSAxMDAwOyAvLyBF
bXBpcmljYWxseSBkZXRlcm1pbmVkIHRvIG1heGltaXplIGJhdHRlcnkgbGlmZS4KK3N0YXRpYyBj
b25zdCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1pbkludGVydmFsRm9yTm9uVXNlck9ic2Vy
dmFibGVDaGFuZ2VUaW1lcnMgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwMDApOyAvLyBF
bXBpcmljYWxseSBkZXRlcm1pbmVkIHRvIG1heGltaXplIGJhdHRlcnkgbGlmZS4KIHN0YXRpYyBj
b25zdCBpbnQgbWF4VGltZXJOZXN0aW5nTGV2ZWwgPSA1Owotc3RhdGljIGNvbnN0IGRvdWJsZSBv
bmVNaWxsaXNlY29uZCA9IDAuMDAxOwogCiBjbGFzcyBET01UaW1lckZpcmVTdGF0ZSB7CiBwdWJs
aWM6CkBAIC0zODcsNTMgKzM4Niw1MiBAQCB2b2lkIERPTVRpbWVyOjp1cGRhdGVUaW1lckludGVy
dmFsSWZOZWNlCiB7CiAgICAgQVNTRVJUKG1fbmVzdGluZ0xldmVsIDw9IG1heFRpbWVyTmVzdGlu
Z0xldmVsKTsKIAotICAgIGRvdWJsZSBwcmV2aW91c0ludGVydmFsID0gbV9jdXJyZW50VGltZXJJ
bnRlcnZhbDsKKyAgICBhdXRvIHByZXZpb3VzSW50ZXJ2YWwgPSBtX2N1cnJlbnRUaW1lckludGVy
dmFsOwogICAgIG1fY3VycmVudFRpbWVySW50ZXJ2YWwgPSBpbnRlcnZhbENsYW1wZWRUb01pbmlt
dW0oKTsKLQotICAgIGlmIChXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwocHJldmlvdXNJbnRlcnZh
bCwgbV9jdXJyZW50VGltZXJJbnRlcnZhbCwgb25lTWlsbGlzZWNvbmQpKQorICAgIGlmIChwcmV2
aW91c0ludGVydmFsID09IG1fY3VycmVudFRpbWVySW50ZXJ2YWwpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGlmIChyZXBlYXRJbnRlcnZhbCgpKSB7Ci0gICAgICAgIEFTU0VSVChXVEY6OmFyZUVz
c2VudGlhbGx5RXF1YWwocmVwZWF0SW50ZXJ2YWwoKSwgcHJldmlvdXNJbnRlcnZhbCwgb25lTWls
bGlzZWNvbmQpKTsKLSAgICAgICAgTE9HKERPTVRpbWVycywgIiVwIC0gVXBkYXRpbmcgRE9NVGlt
ZXIncyByZXBlYXQgaW50ZXJ2YWwgZnJvbSAlZyBtcyB0byAlZyBtcyBkdWUgdG8gdGhyb3R0bGlu
Zy4iLCB0aGlzLCBwcmV2aW91c0ludGVydmFsICogMTAwMC4sIG1fY3VycmVudFRpbWVySW50ZXJ2
YWwgKiAxMDAwLik7CisgICAgICAgIEFTU0VSVChyZXBlYXRJbnRlcnZhbE1TKCkgPT0gcHJldmlv
dXNJbnRlcnZhbCk7CisgICAgICAgIExPRyhET01UaW1lcnMsICIlcCAtIFVwZGF0aW5nIERPTVRp
bWVyJ3MgcmVwZWF0IGludGVydmFsIGZyb20gJWxsZCBtcyB0byAlbGxkIG1zIGR1ZSB0byB0aHJv
dHRsaW5nLiIsIHRoaXMsIHByZXZpb3VzSW50ZXJ2YWwuY291bnQoKSwgbV9jdXJyZW50VGltZXJJ
bnRlcnZhbC5jb3VudCgpKTsKICAgICAgICAgYXVnbWVudFJlcGVhdEludGVydmFsKG1fY3VycmVu
dFRpbWVySW50ZXJ2YWwgLSBwcmV2aW91c0ludGVydmFsKTsKICAgICB9IGVsc2UgewotICAgICAg
ICBMT0coRE9NVGltZXJzLCAiJXAgLSBVcGRhdGluZyBET01UaW1lcidzIGZpcmUgaW50ZXJ2YWwg
ZnJvbSAlZyBtcyB0byAlZyBtcyBkdWUgdG8gdGhyb3R0bGluZy4iLCB0aGlzLCBwcmV2aW91c0lu
dGVydmFsICogMTAwMC4sIG1fY3VycmVudFRpbWVySW50ZXJ2YWwgKiAxMDAwLik7CisgICAgICAg
IExPRyhET01UaW1lcnMsICIlcCAtIFVwZGF0aW5nIERPTVRpbWVyJ3MgZmlyZSBpbnRlcnZhbCBm
cm9tICVsbGQgbXMgdG8gJWxsZCBtcyBkdWUgdG8gdGhyb3R0bGluZy4iLCB0aGlzLCBwcmV2aW91
c0ludGVydmFsLmNvdW50KCksIG1fY3VycmVudFRpbWVySW50ZXJ2YWwuY291bnQoKSk7CiAgICAg
ICAgIGF1Z21lbnRGaXJlSW50ZXJ2YWwobV9jdXJyZW50VGltZXJJbnRlcnZhbCAtIHByZXZpb3Vz
SW50ZXJ2YWwpOwogICAgIH0KIH0KIAotZG91YmxlIERPTVRpbWVyOjppbnRlcnZhbENsYW1wZWRU
b01pbmltdW0oKSBjb25zdAorc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBET01UaW1lcjo6aW50
ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgY29uc3QKIHsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKICAgICBBU1NFUlQobV9uZXN0aW5nTGV2ZWwgPD0gbWF4VGltZXJOZXN0
aW5nTGV2ZWwpOwogCi0gICAgZG91YmxlIGludGVydmFsSW5TZWNvbmRzID0gc3RkOjptYXgob25l
TWlsbGlzZWNvbmQsIG1fb3JpZ2luYWxJbnRlcnZhbC5jb3VudCgpICogb25lTWlsbGlzZWNvbmQp
OworICAgIGF1dG8gaW50ZXJ2YWwgPSBzdGQ6Om1heChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
KDEpLCBtX29yaWdpbmFsSW50ZXJ2YWwpOwogCiAgICAgLy8gT25seSBhcHBseSB0aHJvdHRsaW5n
IHRvIHJlcGVhdGluZyB0aW1lcnMuCiAgICAgaWYgKG1fbmVzdGluZ0xldmVsIDwgbWF4VGltZXJO
ZXN0aW5nTGV2ZWwpCi0gICAgICAgIHJldHVybiBpbnRlcnZhbEluU2Vjb25kczsKKyAgICAgICAg
cmV0dXJuIGludGVydmFsOwogCiAgICAgLy8gQXBwbHkgdHdvIHRocm90dGxlcyAtIHRoZSBnbG9i
YWwgKHBlciBQYWdlKSBtaW5pbXVtLCBhbmQgYWxzbyBhIHBlci10aW1lciB0aHJvdHRsZS4KLSAg
ICBpbnRlcnZhbEluU2Vjb25kcyA9IHN0ZDo6bWF4KGludGVydmFsSW5TZWNvbmRzLCBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPm1pbmltdW1UaW1lckludGVydmFsKCkpOworICAgIGludGVydmFs
ID0gc3RkOjptYXgoaW50ZXJ2YWwsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+bWluaW11bVRp
bWVySW50ZXJ2YWwoKSk7CiAgICAgaWYgKG1fdGhyb3R0bGVTdGF0ZSA9PSBTaG91bGRUaHJvdHRs
ZSkKLSAgICAgICAgaW50ZXJ2YWxJblNlY29uZHMgPSBzdGQ6Om1heChpbnRlcnZhbEluU2Vjb25k
cywgbWluSW50ZXJ2YWxGb3JOb25Vc2VyT2JzZXJ2YWJsZUNoYW5nZVRpbWVycyAqIG9uZU1pbGxp
c2Vjb25kKTsKLSAgICByZXR1cm4gaW50ZXJ2YWxJblNlY29uZHM7CisgICAgICAgIGludGVydmFs
ID0gc3RkOjptYXgoaW50ZXJ2YWwsIG1pbkludGVydmFsRm9yTm9uVXNlck9ic2VydmFibGVDaGFu
Z2VUaW1lcnMpOworICAgIHJldHVybiBpbnRlcnZhbDsKIH0KIAotZG91YmxlIERPTVRpbWVyOjph
bGlnbmVkRmlyZVRpbWUoZG91YmxlIGZpcmVUaW1lKSBjb25zdAorT3B0aW9uYWw8c3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcz4gRE9NVGltZXI6OmFsaWduZWRGaXJlVGltZShzdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzIGZpcmVUaW1lKSBjb25zdAogewotICAgIGlmIChkb3VibGUgYWxpZ25tZW50
SW50ZXJ2YWwgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnRpbWVyQWxpZ25tZW50SW50ZXJ2
YWwobV9uZXN0aW5nTGV2ZWwgPj0gbWF4VGltZXJOZXN0aW5nTGV2ZWwpKSB7Ci0gICAgICAgIC8v
IERvbid0IG1lc3Mgd2l0aCB6ZXJvLWRlbGF5IHRpbWVycy4KLSAgICAgICAgaWYgKCFmaXJlVGlt
ZSkKLSAgICAgICAgICAgIHJldHVybiBmaXJlVGltZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGRv
dWJsZSByYW5kb21pemVkQWxpZ25tZW50ID0gcmFuZG9tTnVtYmVyKCk7Ci0gICAgICAgIC8vIEZv
cmNlIGFsaWdubWVudCB0byByYW5kb21pemVkQWxpZ25tZW50IGZyYWN0aW9uIG9mIHRoZSB3YXkg
YmV0d2VlbiBhbGlnbmVtbnRJbnRlcnZhbHMsIGUuZy4KLSAgICAgICAgLy8gaWYgYWxpZ25tZW50
SW50ZXJ2YWwgaXMgMTAgYW5kIHJhbmRvbWl6ZWRBbGlnbm1lbnQgaXMgMC4zIHRoaXMgd2lsbCBh
bGlnbiB0byAzLCAxMywgMjMsIC4uLgotICAgICAgICByZXR1cm4gKGNlaWwoZmlyZVRpbWUgLyBh
bGlnbm1lbnRJbnRlcnZhbCAtIHJhbmRvbWl6ZWRBbGlnbm1lbnQpICsgcmFuZG9taXplZEFsaWdu
bWVudCkgKiBhbGlnbm1lbnRJbnRlcnZhbDsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmlyZVRpbWU7
CisgICAgYXV0byBhbGlnbm1lbnRJbnRlcnZhbCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
dGltZXJBbGlnbm1lbnRJbnRlcnZhbChtX25lc3RpbmdMZXZlbCA+PSBtYXhUaW1lck5lc3RpbmdM
ZXZlbCk7CisgICAgaWYgKGFsaWdubWVudEludGVydmFsID09IHN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHM6Onplcm8oKSkKKyAgICAgICAgcmV0dXJuIE51bGxvcHQ7CisgICAgCisgICAgc3RhdGlj
IGNvbnN0IGRvdWJsZSByYW5kb21pemVkUHJvcG9ydGlvbiA9IHJhbmRvbU51bWJlcigpOworCisg
ICAgLy8gRm9yY2UgYWxpZ25tZW50IHRvIHJhbmRvbWl6ZWRBbGlnbm1lbnQgZnJhY3Rpb24gb2Yg
dGhlIHdheSBiZXR3ZWVuIGFsaWduZW1udEludGVydmFscywgZS5nLgorICAgIC8vIGlmIGFsaWdu
bWVudEludGVydmFsIGlzIDEwIGFuZCByYW5kb21pemVkQWxpZ25tZW50IGlzIDAuMyB0aGlzIHdp
bGwgYWxpZ24gdG8gMywgMTMsIDIzLCAuLi4KKyAgICBhdXRvIHJhbmRvbWl6ZWRPZmZzZXQgPSBz
dGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPihhbGln
bm1lbnRJbnRlcnZhbCAqIHJhbmRvbWl6ZWRQcm9wb3J0aW9uKTsKKyAgICBhdXRvIGFkanVzdGVk
RmlyZVRpbWUgPSBmaXJlVGltZSAtIHJhbmRvbWl6ZWRPZmZzZXQ7CisgICAgcmV0dXJuIGFkanVz
dGVkRmlyZVRpbWUgLSAoYWRqdXN0ZWRGaXJlVGltZSAlIGFsaWdubWVudEludGVydmFsKSArIGFs
aWdubWVudEludGVydmFsICsgcmFuZG9taXplZE9mZnNldDsKIH0KIAogY29uc3QgY2hhciogRE9N
VGltZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9ET01UaW1lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGlt
ZXIuaAkocmV2aXNpb24gMTk3NTk5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5o
CSh3b3JraW5nIGNvcHkpCkBAIC00Niw5ICs0Niw5IEBAIGNsYXNzIERPTVRpbWVyIGZpbmFsIDog
cHVibGljIFJlZkNvdW50ZWQKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5ET01UaW1lcigpOwogCi0g
ICAgc3RhdGljIGRvdWJsZSBkZWZhdWx0TWluaW11bUludGVydmFsKCkgeyByZXR1cm4gMC4wMDQ7
IH0gLy8gNCBtaWxsaXNlY29uZHMuCi0gICAgc3RhdGljIGRvdWJsZSBkZWZhdWx0QWxpZ25tZW50
SW50ZXJ2YWwoKSB7IHJldHVybiAwOyB9Ci0gICAgc3RhdGljIGRvdWJsZSBoaWRkZW5QYWdlQWxp
Z25tZW50SW50ZXJ2YWwoKSB7IHJldHVybiAxLjA7IH0gLy8gMSBzZWNvbmQuCisgICAgc3RhdGlj
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVmYXVsdE1pbmltdW1JbnRlcnZhbCgpIHsgcmV0
dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNCk7IH0KKyAgICBzdGF0aWMgc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyBkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKSB7IHJldHVybiBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzOjp6ZXJvKCk7IH0KKyAgICBzdGF0aWMgc3RkOjpjaHJvbm86
Om1pbGxpc2Vjb25kcyBoaWRkZW5QYWdlQWxpZ25tZW50SW50ZXJ2YWwoKSB7IHJldHVybiBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwMDApOyB9CiAKICAgICAvLyBDcmVhdGVzIGEgbmV3IHRp
bWVyIG93bmVkIGJ5IHNwZWNpZmllZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdGFydHMgaXQK
ICAgICAvLyBhbmQgcmV0dXJucyBpdHMgSWQuCkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAg
ICAgRE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6dW5pcXVlX3B0cjxTY2hl
ZHVsZWRBY3Rpb24+LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGludGVydmFsLCBib29sIHNp
bmdsZVNob3QpOwogICAgIGZyaWVuZCBjbGFzcyBJbnRlcm5hbHM7CiAKLSAgICBkb3VibGUgaW50
ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgY29uc3Q7CisgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyBpbnRlcnZhbENsYW1wZWRUb01pbmltdW0oKSBjb25zdDsKIAogICAgIGJvb2wgaXNET01U
aW1lcnNUaHJvdHRsaW5nRW5hYmxlZChEb2N1bWVudCYpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRl
VGhyb3R0bGluZ1N0YXRlSWZOZWNlc3NhcnkoY29uc3QgRE9NVGltZXJGaXJlU3RhdGUmKTsKQEAg
LTczLDcgKzczLDcgQEAgcHJpdmF0ZToKICAgICAvLyBTdXNwZW5kYWJsZVRpbWVyCiAgICAgdm9p
ZCBmaXJlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkU3RvcCgpIG92ZXJyaWRlOwotICAgIGRv
dWJsZSBhbGlnbmVkRmlyZVRpbWUoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKKyAgICBPcHRpb25h
bDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPiBhbGlnbmVkRmlyZVRpbWUoc3RkOjpjaHJvbm86
Om1pbGxpc2Vjb25kcykgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3Qg
QVBJLgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlk
ZTsKQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1
bGVkQWN0aW9uPiBtX2FjdGlvbjsKICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fb3Jp
Z2luYWxJbnRlcnZhbDsKICAgICBUaW1lclRocm90dGxlU3RhdGUgbV90aHJvdHRsZVN0YXRlOwot
ICAgIGRvdWJsZSBtX2N1cnJlbnRUaW1lckludGVydmFsOworICAgIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgbV9jdXJyZW50VGltZXJJbnRlcnZhbDsKICAgICBib29sIG1fc2hvdWxkRm9yd2Fy
ZFVzZXJHZXN0dXJlOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAxOTc1
OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjA2LDcgKzEyMDYsNyBAQCB2b2lkIFBhZ2U6OnNldFRpbWVyVGhyb3R0bGluZ1N0YXRlKFRpbWVy
CiAgICAgICAgIHJldHVybjsKIAogICAgIG1fdGltZXJUaHJvdHRsaW5nU3RhdGUgPSBzdGF0ZTsK
LSAgICBtX3RpbWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lID0gbW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCk7CisgICAgbV90aW1lclRocm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2Vk
VGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOwogCiAgICAgdXBkYXRlRE9N
VGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpOwogCkBAIC0xMjIxLDggKzEyMjEsNyBAQCB2b2lkIFBh
Z2U6OnNldFRpbWVyVGhyb3R0bGluZ1N0YXRlKFRpbWVyCiAKIHZvaWQgUGFnZTo6c2V0VGltZXJB
bGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBs
aW1pdCkKIHsKLSAgICAvLyBGSVhNRTogc3RkOjpjaHJvbm8taWZ5IGFsbCB0aW1lciBhbGxpZ25t
ZW50IHJlbGF0ZWQgY29kZS4KLSAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxp
bWl0ID0gbGltaXQuY291bnQoKSAqIDAuMDAxOworICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZh
bEluY3JlYXNlTGltaXQgPSBsaW1pdDsKIAogICAgIC8vIElmIChtX3RpbWVyQWxpZ25tZW50SW50
ZXJ2YWxJbmNyZWFzZUxpbWl0IDwgbV90aW1lckFsaWdubWVudEludGVydmFsKSB0aGVuIHdlIG5l
ZWQKICAgICAvLyB0byB1cGRhdGUgbV90aW1lckFsaWdubWVudEludGVydmFsLCBpZiBncmVhdGVy
IHRoZW4gbmVlZCB0byByZXN0YXJ0IHRoZSBpbmNyZWFzZSB0aW1lci4KQEAgLTEyNDgsOCArMTI0
Nyw4IEBAIHZvaWQgUGFnZTo6dXBkYXRlRE9NVGltZXJBbGlnbm1lbnRJbnRlcnYKICAgICAgICAg
aWYgKG1faXNQcmVyZW5kZXIpCiAgICAgICAgICAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwg
PSBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0OwogICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgIEFTU0VSVChtX3RpbWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1l
KTsKLSAgICAgICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpIC0gbV90aW1lclRocm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2VkVGltZTsK
KyAgICAgICAgICAgIEFTU0VSVChtX3RpbWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1l
LnRpbWVfc2luY2VfZXBvY2goKSAhPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpkdXJhdGlv
bjo6emVybygpKTsKKyAgICAgICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IHN0ZDo6
Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KHN0ZDo6Y2hy
b25vOjpzdGVhZHlfY2xvY2s6Om5vdygpIC0gbV90aW1lclRocm90dGxpbmdTdGF0ZUxhc3RDaGFu
Z2VkVGltZSk7CiAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBiZWxvdyB0aGUgbGltaXQsIHNldCB0
aGUgdGltZXIuIElmIGFib3ZlLCBjbGFtcCB0byBsaW1pdC4KICAgICAgICAgICAgIGlmIChtX3Rp
bWVyQWxpZ25tZW50SW50ZXJ2YWwgPCBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxp
bWl0KQogICAgICAgICAgICAgICAgIG5lZWRzSW5jcmVhc2VUaW1lciA9IHRydWU7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAkocmV2aXNpb24gMTk3NTk4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxOSw3ICsyMTksNyBAQCBwdWJsaWM6CiAgICAgUHJvZ3Jl
c3NUcmFja2VyJiBwcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuICptX3Byb2dyZXNzOyB9CiAgICAg
QmFja0ZvcndhcmRDb250cm9sbGVyJiBiYWNrRm9yd2FyZCgpIGNvbnN0IHsgcmV0dXJuICptX2Jh
Y2tGb3J3YXJkQ29udHJvbGxlcjsgfQogCi0gICAgZG91YmxlIGRvbVRpbWVyQWxpZ25tZW50SW50
ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWw7IH0KKyAgICBz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKSBjb25z
dCB7IHJldHVybiBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWw7IH0KIAogI2lmIEVOQUJMRShWSUVX
X01PREVfQ1NTX01FRElBKQogICAgIGVudW0gVmlld01vZGUgewpAQCAtNjIxLDEwICs2MjEsMTAg
QEAgcHJpdmF0ZToKICNlbmRpZiAvLyBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKIAogICAg
IFRpbWVyVGhyb3R0bGluZ1N0YXRlIG1fdGltZXJUaHJvdHRsaW5nU3RhdGUgeyBUaW1lclRocm90
dGxpbmdTdGF0ZTo6RGlzYWJsZWQgfTsKLSAgICBkb3VibGUgbV90aW1lclRocm90dGxpbmdTdGF0
ZUxhc3RDaGFuZ2VkVGltZSB7IDAgfTsKLSAgICBkb3VibGUgbV90aW1lckFsaWdubWVudEludGVy
dmFsOworICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgbV90aW1lclRo
cm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2VkVGltZSB7IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6
OmR1cmF0aW9uOjp6ZXJvKCkgfTsKKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fdGlt
ZXJBbGlnbm1lbnRJbnRlcnZhbDsKICAgICBUaW1lciBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJ
bmNyZWFzZVRpbWVyOwotICAgIGRvdWJsZSBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFz
ZUxpbWl0IHsgMCB9OworICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbV90aW1lckFsaWdu
bWVudEludGVydmFsSW5jcmVhc2VMaW1pdCB7IDAgfTsKIAogICAgIGJvb2wgbV9pc0VkaXRhYmxl
OwogICAgIGJvb2wgbV9pc1ByZXJlbmRlcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
CShyZXZpc2lvbiAxOTc1OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDY0LDkgKzQ2NCw5IEBAIHZvaWQgU2V0dGluZ3M6OnNldE5lZWRz
QWRvYmVGcmFtZVJlbG9hZGkKICAgICBtX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrID0g
c2hvdWxkTm90UmVsb2FkSUZyYW1lc0ZvclVuY2hhbmdlZFNSQzsKIH0KIAotdm9pZCBTZXR0aW5n
czo6c2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoZG91YmxlIGludGVydmFsKQordm9pZCBTZXR0
aW5nczo6c2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBpbnRlcnZhbCkKIHsKLSAgICBkb3VibGUgb2xkVGltZXJJbnRlcnZhbCA9IG1fbWluaW11bURP
TVRpbWVySW50ZXJ2YWw7CisgICAgYXV0byBvbGRUaW1lckludGVydmFsID0gbV9taW5pbXVtRE9N
VGltZXJJbnRlcnZhbDsKICAgICBtX21pbmltdW1ET01UaW1lckludGVydmFsID0gaW50ZXJ2YWw7
CiAKICAgICBpZiAoIW1fcGFnZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHJldmlzaW9u
IDE5NzU5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkod29ya2luZyBjb3B5
KQpAQCAtMTUyLDggKzE1Miw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dE5lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrKGJvb2wpOwogICAgIGJvb2wgbmVlZHNBY3Jv
YmF0RnJhbWVSZWxvYWRpbmdRdWlyaygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNBZG9iZUZyYW1l
UmVsb2FkaW5nUXVpcms7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWluaW11bURP
TVRpbWVySW50ZXJ2YWwoZG91YmxlKTsgLy8gSW5pdGlhbGl6ZWQgdG8gRE9NVGltZXI6OmRlZmF1
bHRNaW5pbXVtSW50ZXJ2YWwoKS4KLSAgICBkb3VibGUgbWluaW11bURPTVRpbWVySW50ZXJ2YWwo
KSBjb25zdCB7IHJldHVybiBtX21pbmltdW1ET01UaW1lckludGVydmFsOyB9CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzKTsgLy8gSW5pdGlhbGl6ZWQgdG8gRE9NVGltZXI6OmRlZmF1bHRNaW5pbXVtSW50
ZXJ2YWwoKS4KKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1pbmltdW1ET01UaW1lcklu
dGVydmFsKCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsgfQogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRMYXlvdXRJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzKTsKICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGxheW91dEludGVydmFs
KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRJbnRlcnZhbDsgfQpAQCAtMzAzLDcgKzMwMyw3IEBA
IHByaXZhdGU6CiAgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPEZvbnRHZW5lcmljRmFtaWxpZXM+
IG1fZm9udEdlbmVyaWNGYW1pbGllczsKICAgICBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2Nr
aW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5OwogICAgIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgbV9sYXlvdXRJbnRlcnZhbDsKLSAgICBkb3VibGUgbV9taW5pbXVtRE9NVGltZXJJ
bnRlcnZhbDsKKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fbWluaW11bURPTVRpbWVy
SW50ZXJ2YWw7CiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIGZsb2F0IG1fdGV4
dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3I7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1N1
c3BlbmRhYmxlVGltZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3Bl
bmRhYmxlVGltZXIuaAkocmV2aXNpb24gMTk3NTk4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9T
dXNwZW5kYWJsZVRpbWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDExICs0MywxOSBAQCBwdWJs
aWM6CiAgICAgLy8gUGFydCBvZiBUaW1lckJhc2UgaW50ZXJmYWNlIHVzZWQgYnkgU3VzcGVuZGFi
bGVUaW1lciBjbGllbnRzLCBtb2RpZmllZCB0byB3b3JrIHdoZW4gc3VzcGVuZGVkLgogICAgIGJv
b2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBUaW1lckJhc2U6OmlzQWN0aXZlKCkgfHwgKG1f
c3VzcGVuZGVkICYmIG1fc2F2ZWRJc0FjdGl2ZSk7IH0KICAgICBib29sIGlzU3VzcGVuZGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9zdXNwZW5kZWQ7IH0KKwogICAgIHZvaWQgc3RhcnRSZXBlYXRpbmco
ZG91YmxlIHJlcGVhdEludGVydmFsKTsKICAgICB2b2lkIHN0YXJ0T25lU2hvdChkb3VibGUgaW50
ZXJ2YWwpOwogICAgIGRvdWJsZSByZXBlYXRJbnRlcnZhbCgpIGNvbnN0OwogICAgIHZvaWQgYXVn
bWVudEZpcmVJbnRlcnZhbChkb3VibGUgZGVsdGEpOwogICAgIHZvaWQgYXVnbWVudFJlcGVhdElu
dGVydmFsKGRvdWJsZSBkZWx0YSk7CisKKyAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHMgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRpbmcobXNUb1Nl
Y29uZHMocmVwZWF0SW50ZXJ2YWwpKTsgfQorICAgIHZvaWQgc3RhcnRPbmVTaG90KHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHMgaW50ZXJ2YWwpIHsgc3RhcnRPbmVTaG90KG1zVG9TZWNvbmRzKGlu
dGVydmFsKSk7IH0KKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHJlcGVhdEludGVydmFs
TVMoKSBjb25zdCB7IHJldHVybiBzZWNvbmRzVG9NUyhyZXBlYXRJbnRlcnZhbCgpKTsgfQorICAg
IHZvaWQgYXVnbWVudEZpcmVJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbHRh
KSB7IGF1Z21lbnRGaXJlSW50ZXJ2YWwobXNUb1NlY29uZHMoZGVsdGEpKTsgfQorICAgIHZvaWQg
YXVnbWVudFJlcGVhdEludGVydmFsKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVsdGEpIHsg
YXVnbWVudFJlcGVhdEludGVydmFsKG1zVG9TZWNvbmRzKGRlbHRhKSk7IH0KKwogICAgIHVzaW5n
IFRpbWVyQmFzZTo6ZGlkQ2hhbmdlQWxpZ25tZW50SW50ZXJ2YWw7CiAgICAgdXNpbmcgVGltZXJC
YXNlOjpvcGVyYXRvciBuZXc7CiAgICAgdXNpbmcgVGltZXJCYXNlOjpvcGVyYXRvciBkZWxldGU7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCShyZXZpc2lvbiAxOTc1OTgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2Nywx
MyArMzY3LDEzIEBAIHZvaWQgVGltZXJCYXNlOjp1cGRhdGVIZWFwSWZOZWVkZWQoZG91YmwKICAg
ICBBU1NFUlQoIWluSGVhcCgpIHx8IGhhc1ZhbGlkSGVhcFBvc2l0aW9uKCkpOwogfQogCi12b2lk
IFRpbWVyQmFzZTo6c2V0TmV4dEZpcmVUaW1lKGRvdWJsZSBuZXdVbmFsaWduZWRUaW1lKQordm9p
ZCBUaW1lckJhc2U6OnNldE5leHRGaXJlVGltZShkb3VibGUgbmV3VGltZSkKIHsKICAgICBBU1NF
UlQoY2FuQWNjZXNzVGhyZWFkTG9jYWxEYXRhRm9yVGhyZWFkKG1fdGhyZWFkKSk7CiAgICAgQVNT
RVJUKCFtX3dhc0RlbGV0ZWQpOwogCi0gICAgaWYgKG1fdW5hbGlnbmVkTmV4dEZpcmVUaW1lICE9
IG5ld1VuYWxpZ25lZFRpbWUpCi0gICAgICAgIG1fdW5hbGlnbmVkTmV4dEZpcmVUaW1lID0gbmV3
VW5hbGlnbmVkVGltZTsKKyAgICBpZiAobV91bmFsaWduZWROZXh0RmlyZVRpbWUgIT0gbmV3VGlt
ZSkKKyAgICAgICAgbV91bmFsaWduZWROZXh0RmlyZVRpbWUgPSBuZXdUaW1lOwogCiAgICAgLy8g
QWNjZXNzaW5nIHRocmVhZCBnbG9iYWwgZGF0YSBpcyBzbG93LiBDYWNoZSB0aGUgaGVhcCBwb2lu
dGVyLgogICAgIGlmICghbV9jYWNoZWRUaHJlYWRHbG9iYWxUaW1lckhlYXApCkBAIC0zODEsNyAr
MzgxLDEyIEBAIHZvaWQgVGltZXJCYXNlOjpzZXROZXh0RmlyZVRpbWUoZG91YmxlIG4KIAogICAg
IC8vIEtlZXAgaGVhcCB2YWxpZCB3aGlsZSBjaGFuZ2luZyB0aGUgbmV4dC1maXJlIHRpbWUuCiAg
ICAgZG91YmxlIG9sZFRpbWUgPSBtX25leHRGaXJlVGltZTsKLSAgICBkb3VibGUgbmV3VGltZSA9
IGFsaWduZWRGaXJlVGltZShuZXdVbmFsaWduZWRUaW1lKTsKKyAgICAvLyBEb24ndCByZWFsaWdu
IHplcm8tZGVsYXkgdGltZXJzLgorICAgIGlmIChuZXdUaW1lKSB7CisgICAgICAgIGlmIChhdXRv
IG5ld0FsaWduZWRUaW1lID0gYWxpZ25lZEZpcmVUaW1lKHNlY29uZHNUb01TKG5ld1RpbWUpKSkK
KyAgICAgICAgICAgIG5ld1RpbWUgPSBtc1RvU2Vjb25kcyhuZXdBbGlnbmVkVGltZS52YWx1ZSgp
KTsKKyAgICB9CisKICAgICBpZiAob2xkVGltZSAhPSBuZXdUaW1lKSB7CiAgICAgICAgIG1fbmV4
dEZpcmVUaW1lID0gbmV3VGltZTsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHBh
cnQgb2YgVGhyZWFkVGltZXJzLCBvciBhbm90aGVyIHBlci10aHJlYWQgc3RydWN0dXJlLgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCShyZXZpc2lvbiAxOTc1OTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9UaW1lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSA8Y2hyb25vPgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDUsNiArNDYsMTAgQEAg
Y2xhc3MgVGltZXJIZWFwRWxlbWVudDsKIGNsYXNzIFRpbWVyQmFzZSB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoVGltZXJCYXNlKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3By
b3RlY3RlZDoKKyAgICBzdGF0aWMgaW5saW5lIGRvdWJsZSBtc1RvU2Vjb25kcyhzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIGR1cmF0aW9uKSB7IHJldHVybiBkdXJhdGlvbi5jb3VudCgpICogMC4w
MDE7IH0KKyAgICBzdGF0aWMgaW5saW5lIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgc2Vjb25k
c1RvTVMoZG91YmxlIGR1cmF0aW9uKSB7IHJldHVybiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
KChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjpyZXApKGR1cmF0aW9uICogMTAwMCkpOyB9CisK
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBUaW1lckJhc2UoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIH5UaW1lckJhc2UoKTsKQEAgLTUyLDkgKzU3LDkgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGRvdWJs
ZSByZXBlYXRJbnRlcnZhbCk7CiAKICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKGRvdWJsZSByZXBl
YXRJbnRlcnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZhbCwgcmVwZWF0SW50ZXJ2YWwpOyB9Ci0g
ICAgdm9pZCBzdGFydFJlcGVhdGluZyhzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHJlcGVhdElu
dGVydmFsKSB7IHN0YXJ0UmVwZWF0aW5nKHJlcGVhdEludGVydmFsLmNvdW50KCkgKiAwLjAwMSk7
IH0KKyAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgcmVw
ZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRpbmcobXNUb1NlY29uZHMocmVwZWF0SW50ZXJ2YWwp
KTsgfQogICAgIHZvaWQgc3RhcnRPbmVTaG90KGRvdWJsZSBpbnRlcnZhbCkgeyBzdGFydChpbnRl
cnZhbCwgMCk7IH0KLSAgICB2b2lkIHN0YXJ0T25lU2hvdChzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzIGludGVydmFsKSB7IHN0YXJ0T25lU2hvdChpbnRlcnZhbC5jb3VudCgpICogMC4wMDEpOyB9
CisgICAgdm9pZCBzdGFydE9uZVNob3Qoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZh
bCkgeyBzdGFydE9uZVNob3QobXNUb1NlY29uZHMoaW50ZXJ2YWwpKTsgfQogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzdG9wKCk7CiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0OwpAQCAtNjIs
OSArNjcsMTIgQEAgcHVibGljOgogICAgIGRvdWJsZSBuZXh0RmlyZUludGVydmFsKCkgY29uc3Q7
CiAgICAgZG91YmxlIG5leHRVbmFsaWduZWRGaXJlSW50ZXJ2YWwoKSBjb25zdDsKICAgICBkb3Vi
bGUgcmVwZWF0SW50ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX3JlcGVhdEludGVydmFsOyB9Cisg
ICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyByZXBlYXRJbnRlcnZhbE1TKCkgY29uc3QgeyBy
ZXR1cm4gc2Vjb25kc1RvTVMocmVwZWF0SW50ZXJ2YWwoKSk7IH0KIAogICAgIHZvaWQgYXVnbWVu
dEZpcmVJbnRlcnZhbChkb3VibGUgZGVsdGEpIHsgc2V0TmV4dEZpcmVUaW1lKG1fbmV4dEZpcmVU
aW1lICsgZGVsdGEpOyB9CisgICAgdm9pZCBhdWdtZW50RmlyZUludGVydmFsKHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgZGVsdGEpIHsgYXVnbWVudEZpcmVJbnRlcnZhbChtc1RvU2Vjb25kcyhk
ZWx0YSkpOyB9CiAgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoZG91YmxlIGRlbHRhKSB7
IGF1Z21lbnRGaXJlSW50ZXJ2YWwoZGVsdGEpOyBtX3JlcGVhdEludGVydmFsICs9IGRlbHRhOyB9
CisgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBkZWx0YSkgeyBhdWdtZW50UmVwZWF0SW50ZXJ2YWwobXNUb1NlY29uZHMoZGVsdGEpKTsgfQog
CiAgICAgdm9pZCBkaWRDaGFuZ2VBbGlnbm1lbnRJbnRlcnZhbCgpOwogCkBAIC03Myw3ICs4MSw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAwOwogCi0g
ICAgdmlydHVhbCBkb3VibGUgYWxpZ25lZEZpcmVUaW1lKGRvdWJsZSBmaXJlVGltZSkgY29uc3Qg
eyByZXR1cm4gZmlyZVRpbWU7IH0KKyAgICB2aXJ0dWFsIE9wdGlvbmFsPHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHM+IGFsaWduZWRGaXJlVGltZShzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKSBj
b25zdCB7IHJldHVybiBOdWxsb3B0OyB9CiAKICAgICB2b2lkIGNoZWNrQ29uc2lzdGVuY3koKSBj
b25zdDsKICAgICB2b2lkIGNoZWNrSGVhcEluZGV4KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAJKHJldmlzaW9uIDE5NzU5OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2Niw3ICs0NjYsNyBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEltYWdlc0Vu
YWJsZWQoCiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldE1pbmltdW1UaW1lckludGVydmFsKGRv
dWJsZSBpbnRlcnZhbEluU2Vjb25kcywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSW50ZXJu
YWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKLSAgICBzZXR0aW5ncygpLT5zZXRNaW5pbXVt
RE9NVGltZXJJbnRlcnZhbChpbnRlcnZhbEluU2Vjb25kcyk7CisgICAgc2V0dGluZ3MoKS0+c2V0
TWluaW11bURPTVRpbWVySW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygoc3RkOjpj
aHJvbm86Om1pbGxpc2Vjb25kczo6cmVwKShpbnRlcnZhbEluU2Vjb25kcyAqIDEwMDApKSk7CiB9
CiAKIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RGVmYXVsdFZpZGVvUG9zdGVyVVJMKGNvbnN0
IFN0cmluZyYgdXJsLCBFeGNlcHRpb25Db2RlJiBlYykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCShyZXZpc2lvbiAxOTc1OTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyAr
NzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgbV9vcmlnaW5hbFVzZXNPdmVybGF5U2Nyb2xs
YmFyczsKICAgICAgICAgYm9vbCBtX2xhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFi
bGVkOwogICAgICAgICBib29sIG1faW1hZ2VzRW5hYmxlZDsKLSAgICAgICAgZG91YmxlIG1fbWlu
aW11bVRpbWVySW50ZXJ2YWw7CisgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbV9t
aW5pbXVtVGltZXJJbnRlcnZhbDsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgICAgIGJv
b2wgbV9zaG91bGREaXNwbGF5U3VidGl0bGVzOwogICAgICAgICBib29sIG1fc2hvdWxkRGlzcGxh
eUNhcHRpb25zOwpJbmRleDogU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMTk3NjU4KQorKysgU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTYtMDMtMDYgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgor
CisgICAgICAgIENvbnZlcnQgRE9NVGltZXIgdG8gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MDg1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRE9NVGltZXIg
Y3VycmVudGx5IHVzZXMgYSBtaXggb2YgbWlsbGlzZWNvbmQgKHdhcyBpbnQsIG5vdyBzdGQ6OmNo
cm9ubykgYW5kIHNlY29uZCAoYXMgZG91YmxlKQorICAgICAgICB0aW1lIHZhbHVlcy4gQ29uc3Rh
bnQgY29udmVyc2lvbiBiYWNrIGFuZCBmb3J0aCBpcyBhIGNvbXBsZXRlIG1lc3MuIFN0b3AgdGhh
dC4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6c2V0TWluaW11
bVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAgICAgLSBDb252ZXJ0IGRvdWJsZSBhcmd1bWVudCBp
bnRvIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMuCisKIDIwMTYtMDMtMDUgIFl1c3VrZSBTdXp1
a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0VTNl0gU3VwcG9ydCBSZWZs
ZWN0LmNvbnN0cnVjdApJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHJldmlzaW9uIDE5NzU5OCkK
KysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MjI5
LDcgKzcyMjksOCBAQCBIUkVTVUxUIFdlYlZpZXc6OnNldE1pbmltdW1UaW1lckludGVydmFsCiAg
ICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKLSAgICBwYWdlKCktPnNl
dHRpbmdzKCkuc2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoaW50ZXJ2YWwpOworICAgIGF1dG8g
aW50ZXJ2YWxNUyA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoKHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHM6OnJlcCkoaW50ZXJ2YWwgKiAxMDAwKSk7CisgICAgcGFnZSgpLT5zZXR0aW5ncygp
LnNldE1pbmltdW1ET01UaW1lckludGVydmFsKGludGVydmFsTVMpOwogICAgIHJldHVybiBTX09L
OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273164</attachid>
            <date>2016-03-06 23:33:54 -0800</date>
            <delta_ts>2016-03-07 01:45:59 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>155085.3.patch</filename>
            <type>text/plain</type>
            <size>28879</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzYzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY5IEBACisyMDE2LTAzLTA2ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IERP
TVRpbWVyIHRvIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTA4NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERPTVRpbWVyIGN1cnJlbnRseSB1c2VzIGEgbWl4
IG9mIG1pbGxpc2Vjb25kICh3YXMgaW50LCBub3cgc3RkOjpjaHJvbm8pIGFuZCBzZWNvbmQgKGFz
IGRvdWJsZSkKKyAgICAgICAgdGltZSB2YWx1ZXMuIENvbnN0YW50IGNvbnZlcnNpb24gYmFjayBh
bmQgZm9ydGggaXMgYSBjb21wbGV0ZSBtZXNzLiBTdG9wIHRoYXQuCisKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om1pbmltdW1UaW1lcklu
dGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0aW1lckFsaWdubWVudEludGVy
dmFsKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgICAgIC0gZG91YmxlIC0+
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojph
ZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudEludGVydmFsKToKKyAgICAgICAg
KiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAgICAgICAgLSBkb3VibGUgLT4g
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcworICAgICAgICAqIHBhZ2UvRE9NVGltZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OnVwZGF0ZVRpbWVySW50ZXJ2YWxJZk5lY2Vzc2Fy
eSk6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6aW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVt
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjphbGlnbmVkRmlyZVRpbWUpOgorICAgICAg
ICAqIHBhZ2UvRE9NVGltZXIuaDoKKyAgICAgICAgICAgIC0gZG91YmxlIC0+IHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c2V0VGltZXJUaHJvdHRsaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6c2V0VGltZXJBbGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6dXBkYXRlRE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbCk6CisgICAgICAgICog
cGFnZS9QYWdlLmg6CisgICAgICAgICAgICAtIGRvdWJsZSAtPiBzdGQ6OmNocm9ubzo6bWlsbGlz
ZWNvbmRzCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZXR0aW5nczo6c2V0TmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmspOgorICAgICAgICAoV2Vi
Q29yZTo6U2V0dGluZ3M6OnNldE1pbmltdW1ET01UaW1lckludGVydmFsKToKKyAgICAgICAgKiBw
YWdlL1NldHRpbmdzLmg6CisgICAgICAgICAgICAtIGRvdWJsZSAtPiBzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzCisgICAgICAgICogcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyOjpzdGFydFJlcGVhdGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTdXNwZW5kYWJsZVRpbWVyOjpzdGFydE9uZVNob3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3VzcGVuZGFibGVUaW1lcjo6cmVwZWF0SW50ZXJ2YWxNUyk6CisgICAgICAgIChXZWJDb3JlOjpT
dXNwZW5kYWJsZVRpbWVyOjphdWdtZW50RmlyZUludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OlN1c3BlbmRhYmxlVGltZXI6OmF1Z21lbnRSZXBlYXRJbnRlcnZhbCk6CisgICAgICAgICAgICAt
IGFkZGVkIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW50ZXJmYWNlLgorICAgICAgICAqIHBs
YXRmb3JtL1RpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6c2V0TmV4dEZp
cmVUaW1lKToKKyAgICAgICAgICAgIC0gcmVzdHJ1Y3R1cmVkIGZvciBuZXcgYWxpZ25lZEZpcmVU
aW1lIHNpZ25hdHVyZWQsIG1vdmVkIHplcm8tZGVsYXkgaGFuZGxpbmcgdG8gaGVyZS4KKyAgICAg
ICAgICAgICAgVGhpcyBjaGFuZ2UgbWFkZSBiZWNhdXNlIGluc2lkZSBhbGlnbmVkRmlyZVRpbWUg
ZmlyZVRpbWUgd2lsbCBoYXZlIGFscmVhZHkgYmVlbiB0cnVuY2F0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vVGltZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6bXNUb1NlY29uZHMp
OgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjpzZWNvbmRzVG9NUyk6CisgICAgICAgICAg
ICAtIGludGVybmFsIGhlbHBlciBmdW5jdGlvbnMgdG8gYnJpZGdlIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgdG8gaW50ZXJuYWwgZG91YmxlLgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNl
OjpzdGFydFJlcGVhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OnN0YXJ0T25l
U2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OnJlcGVhdEludGVydmFsTVMpOgor
ICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjphdWdtZW50RmlyZUludGVydmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6YXVnbWVudFJlcGVhdEludGVydmFsKToKKyAgICAgICAg
ICAgIC0gZXhwYW5kZWQgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcmZhY2UuCisgICAg
ICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OmFsaWduZWRGaXJlVGltZSk6CisgICAgICAgICAgICAt
IGNoYW5nZWQgdG8gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcywgbWFkZSByZXR1cm4gdmFsdWUg
T3B0aW9uYWwgKG51bGwgbWVhbnMgbm8gYWxpZ25tZW50KS4KKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6
c2V0TWluaW11bVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5oOgorICAgICAgICAgICAgLSBkb3VibGUgLT4gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cworCiAyMDE2LTAzLTA1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEFkZCB0aGUgc3VwcG9ydCBmb3IgdXBncmFkaW5nIGN1c3RvbSBlbGVtZW50cyBpbiBjbG9u
ZU5vZGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMTk3NTk4KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg5Niw3
ICsyODk2LDcgQEAgdm9pZCBEb2N1bWVudDo6d3JpdGVsbihjb25zdCBTdHJpbmcmIHRleAogICAg
IHdyaXRlKCJcbiIsIG93bmVyRG9jdW1lbnQpOwogfQogCi1kb3VibGUgRG9jdW1lbnQ6Om1pbmlt
dW1UaW1lckludGVydmFsKCkgY29uc3QKK3N0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgRG9jdW1l
bnQ6Om1pbmltdW1UaW1lckludGVydmFsKCkgY29uc3QKIHsKICAgICBhdXRvKiBwYWdlID0gdGhp
cy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAgLTI5MTMsOSArMjkxMyw5IEBAIHZvaWQgRG9j
dW1lbnQ6OnNldFRpbWVyVGhyb3R0bGluZ0VuYWJsZWQKICAgICBkaWRDaGFuZ2VUaW1lckFsaWdu
bWVudEludGVydmFsKCk7CiB9CiAKLWRvdWJsZSBEb2N1bWVudDo6dGltZXJBbGlnbm1lbnRJbnRl
cnZhbChib29sIGhhc1JlYWNoZWRNYXhOZXN0aW5nTGV2ZWwpIGNvbnN0CitzdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzIERvY3VtZW50Ojp0aW1lckFsaWdubWVudEludGVydmFsKGJvb2wgaGFzUmVh
Y2hlZE1heE5lc3RpbmdMZXZlbCkgY29uc3QKIHsKLSAgICBkb3VibGUgYWxpZ25tZW50SW50ZXJ2
YWwgPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudEludGVydmFsKGhhc1Jl
YWNoZWRNYXhOZXN0aW5nTGV2ZWwpOworICAgIGF1dG8gYWxpZ25tZW50SW50ZXJ2YWwgPSBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudEludGVydmFsKGhhc1JlYWNoZWRNYXhO
ZXN0aW5nTGV2ZWwpOwogCiAgICAgLy8gQXBwbHkgRG9jdW1lbnQtbGV2ZWwgRE9NVGltZXIgdGhy
b3R0bGluZyBvbmx5IGlmIHRpbWVycyBoYXZlIHJlYWNoZWQgdGhlaXIgbWF4aW11bSBuZXN0aW5n
IGxldmVsIGFzIHRoZSBQYWdlIG1heSBzdGlsbCBiZSB2aXNpYmxlLgogICAgIGlmIChtX2lzVGlt
ZXJUaHJvdHRsaW5nRW5hYmxlZCAmJiBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKQpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDE5NzU5OCkKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzU1LDkgKzEzNTUsOSBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGlu
ZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRD
YWxsU3RhY2s+JiYsIEpTQzo6RXhlY1N0YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVx
dWVzdElkZW50aWZpZXIgPSAwKSBmaW5hbDsKIAotICAgIGRvdWJsZSBtaW5pbXVtVGltZXJJbnRl
cnZhbCgpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWluaW11
bVRpbWVySW50ZXJ2YWwoKSBjb25zdCBmaW5hbDsKIAotICAgIGRvdWJsZSB0aW1lckFsaWdubWVu
dEludGVydmFsKGJvb2wgaGFzUmVhY2hlZE1heE5lc3RpbmdMZXZlbCkgY29uc3QgZmluYWw7Cisg
ICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lckFsaWdubWVudEludGVydmFsKGJvb2wg
aGFzUmVhY2hlZE1heE5lc3RpbmdMZXZlbCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHVwZGF0
ZVRpdGxlRnJvbVRpdGxlRWxlbWVudCgpOwogICAgIHZvaWQgdXBkYXRlVGl0bGUoY29uc3QgU3Ry
aW5nV2l0aERpcmVjdGlvbiYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcAkocmV2aXNpb24gMTk3NTk4KQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjYsNyAr
NDI2LDcgQEAgUHVibGljVVJMTWFuYWdlciYgU2NyaXB0RXhlY3V0aW9uQ29udGV4dAogICAgIHJl
dHVybiAqbV9wdWJsaWNVUkxNYW5hZ2VyOwogfQogCi12b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmFkanVzdE1pbmltdW1UaW1lckludGVydmFsKGRvdWJsZSBvbGRNaW5pbXVtVGltZXJJbnRl
cnZhbCkKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRqdXN0TWluaW11bVRpbWVySW50
ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBvbGRNaW5pbXVtVGltZXJJbnRlcnZhbCkK
IHsKICAgICBpZiAobWluaW11bVRpbWVySW50ZXJ2YWwoKSAhPSBvbGRNaW5pbXVtVGltZXJJbnRl
cnZhbCkgewogICAgICAgICBmb3IgKGF1dG8mIHRpbWVyIDogbV90aW1lb3V0cy52YWx1ZXMoKSkK
QEAgLTQzNCw3ICs0MzQsNyBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkanVzdE1p
bmltCiAgICAgfQogfQogCi1kb3VibGUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6bWluaW11bVRp
bWVySW50ZXJ2YWwoKSBjb25zdAorc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjptaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0CiB7CiAgICAgLy8gVGhl
IGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJucyB0aGUgRE9NVGltZXIncyBkZWZhdWx0CiAg
ICAgLy8gbWluaW11bSB0aW1lciBpbnRlcnZhbC4gRklYTUU6IHRvIG1ha2UgaXQgd29yayB3aXRo
IGRlZGljYXRlZApAQCAtNDUwLDcgKzQ1MCw3IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6ZGlkQ2hhbmdlVGkKICAgICAgICAgdGltZXItPmRpZENoYW5nZUFsaWdubWVudEludGVydmFs
KCk7CiB9CiAKLWRvdWJsZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVudElu
dGVydmFsKGJvb2wpIGNvbnN0CitzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OnRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9vbCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gRE9NVGltZXI6OmRlZmF1bHRBbGlnbm1lbnRJbnRlcnZhbCgpOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCShyZXZpc2lvbiAxOTc1
OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzAsMTEgKzE3MCwxMSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgSlNDOjpWTSYgdm0oKTsKIAogICAgIC8vIEludGVydmFsIGlzIGluIHNlY29uZHMuCi0gICAg
dm9pZCBhZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUgb2xkTWluaW11bVRpbWVySW50
ZXJ2YWwpOwotICAgIHZpcnR1YWwgZG91YmxlIG1pbmltdW1UaW1lckludGVydmFsKCkgY29uc3Q7
CisgICAgdm9pZCBhZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlz
ZWNvbmRzIG9sZE1pbmltdW1UaW1lckludGVydmFsKTsKKyAgICB2aXJ0dWFsIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25zdDsKIAogICAgIHZvaWQg
ZGlkQ2hhbmdlVGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpOwotICAgIHZpcnR1YWwgZG91YmxlIHRp
bWVyQWxpZ25tZW50SW50ZXJ2YWwoYm9vbCBoYXNSZWFjaGVkTWF4TmVzdGluZ0xldmVsKSBjb25z
dDsKKyAgICB2aXJ0dWFsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZXJBbGlnbm1lbnRJ
bnRlcnZhbChib29sIGhhc1JlYWNoZWRNYXhOZXN0aW5nTGV2ZWwpIGNvbnN0OwogCiAgICAgdmly
dHVhbCBFdmVudFF1ZXVlJiBldmVudFF1ZXVlKCkgY29uc3QgPSAwOwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVRpbWVyLmNwcAkocmV2aXNpb24gMTk3NjAzKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01UaW1lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDkgKzUzLDggQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbWF4
SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzKDEwMDApOyAvLyBPbmUgc2Vjb25kIG1hdGNoZXMgR2Vja28uCi1zdGF0aWMgY29uc3QgaW50
IG1pbkludGVydmFsRm9yTm9uVXNlck9ic2VydmFibGVDaGFuZ2VUaW1lcnMgPSAxMDAwOyAvLyBF
bXBpcmljYWxseSBkZXRlcm1pbmVkIHRvIG1heGltaXplIGJhdHRlcnkgbGlmZS4KK3N0YXRpYyBj
b25zdCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1pbkludGVydmFsRm9yTm9uVXNlck9ic2Vy
dmFibGVDaGFuZ2VUaW1lcnMgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwMDApOyAvLyBF
bXBpcmljYWxseSBkZXRlcm1pbmVkIHRvIG1heGltaXplIGJhdHRlcnkgbGlmZS4KIHN0YXRpYyBj
b25zdCBpbnQgbWF4VGltZXJOZXN0aW5nTGV2ZWwgPSA1Owotc3RhdGljIGNvbnN0IGRvdWJsZSBv
bmVNaWxsaXNlY29uZCA9IDAuMDAxOwogCiBjbGFzcyBET01UaW1lckZpcmVTdGF0ZSB7CiBwdWJs
aWM6CkBAIC0zODcsNTMgKzM4Niw1MiBAQCB2b2lkIERPTVRpbWVyOjp1cGRhdGVUaW1lckludGVy
dmFsSWZOZWNlCiB7CiAgICAgQVNTRVJUKG1fbmVzdGluZ0xldmVsIDw9IG1heFRpbWVyTmVzdGlu
Z0xldmVsKTsKIAotICAgIGRvdWJsZSBwcmV2aW91c0ludGVydmFsID0gbV9jdXJyZW50VGltZXJJ
bnRlcnZhbDsKKyAgICBhdXRvIHByZXZpb3VzSW50ZXJ2YWwgPSBtX2N1cnJlbnRUaW1lckludGVy
dmFsOwogICAgIG1fY3VycmVudFRpbWVySW50ZXJ2YWwgPSBpbnRlcnZhbENsYW1wZWRUb01pbmlt
dW0oKTsKLQotICAgIGlmIChXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwocHJldmlvdXNJbnRlcnZh
bCwgbV9jdXJyZW50VGltZXJJbnRlcnZhbCwgb25lTWlsbGlzZWNvbmQpKQorICAgIGlmIChwcmV2
aW91c0ludGVydmFsID09IG1fY3VycmVudFRpbWVySW50ZXJ2YWwpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGlmIChyZXBlYXRJbnRlcnZhbCgpKSB7Ci0gICAgICAgIEFTU0VSVChXVEY6OmFyZUVz
c2VudGlhbGx5RXF1YWwocmVwZWF0SW50ZXJ2YWwoKSwgcHJldmlvdXNJbnRlcnZhbCwgb25lTWls
bGlzZWNvbmQpKTsKLSAgICAgICAgTE9HKERPTVRpbWVycywgIiVwIC0gVXBkYXRpbmcgRE9NVGlt
ZXIncyByZXBlYXQgaW50ZXJ2YWwgZnJvbSAlZyBtcyB0byAlZyBtcyBkdWUgdG8gdGhyb3R0bGlu
Zy4iLCB0aGlzLCBwcmV2aW91c0ludGVydmFsICogMTAwMC4sIG1fY3VycmVudFRpbWVySW50ZXJ2
YWwgKiAxMDAwLik7CisgICAgICAgIEFTU0VSVChyZXBlYXRJbnRlcnZhbE1TKCkgPT0gcHJldmlv
dXNJbnRlcnZhbCk7CisgICAgICAgIExPRyhET01UaW1lcnMsICIlcCAtIFVwZGF0aW5nIERPTVRp
bWVyJ3MgcmVwZWF0IGludGVydmFsIGZyb20gJWxsZCBtcyB0byAlbGxkIG1zIGR1ZSB0byB0aHJv
dHRsaW5nLiIsIHRoaXMsIHByZXZpb3VzSW50ZXJ2YWwuY291bnQoKSwgbV9jdXJyZW50VGltZXJJ
bnRlcnZhbC5jb3VudCgpKTsKICAgICAgICAgYXVnbWVudFJlcGVhdEludGVydmFsKG1fY3VycmVu
dFRpbWVySW50ZXJ2YWwgLSBwcmV2aW91c0ludGVydmFsKTsKICAgICB9IGVsc2UgewotICAgICAg
ICBMT0coRE9NVGltZXJzLCAiJXAgLSBVcGRhdGluZyBET01UaW1lcidzIGZpcmUgaW50ZXJ2YWwg
ZnJvbSAlZyBtcyB0byAlZyBtcyBkdWUgdG8gdGhyb3R0bGluZy4iLCB0aGlzLCBwcmV2aW91c0lu
dGVydmFsICogMTAwMC4sIG1fY3VycmVudFRpbWVySW50ZXJ2YWwgKiAxMDAwLik7CisgICAgICAg
IExPRyhET01UaW1lcnMsICIlcCAtIFVwZGF0aW5nIERPTVRpbWVyJ3MgZmlyZSBpbnRlcnZhbCBm
cm9tICVsbGQgbXMgdG8gJWxsZCBtcyBkdWUgdG8gdGhyb3R0bGluZy4iLCB0aGlzLCBwcmV2aW91
c0ludGVydmFsLmNvdW50KCksIG1fY3VycmVudFRpbWVySW50ZXJ2YWwuY291bnQoKSk7CiAgICAg
ICAgIGF1Z21lbnRGaXJlSW50ZXJ2YWwobV9jdXJyZW50VGltZXJJbnRlcnZhbCAtIHByZXZpb3Vz
SW50ZXJ2YWwpOwogICAgIH0KIH0KIAotZG91YmxlIERPTVRpbWVyOjppbnRlcnZhbENsYW1wZWRU
b01pbmltdW0oKSBjb25zdAorc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBET01UaW1lcjo6aW50
ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgY29uc3QKIHsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKICAgICBBU1NFUlQobV9uZXN0aW5nTGV2ZWwgPD0gbWF4VGltZXJOZXN0
aW5nTGV2ZWwpOwogCi0gICAgZG91YmxlIGludGVydmFsSW5TZWNvbmRzID0gc3RkOjptYXgob25l
TWlsbGlzZWNvbmQsIG1fb3JpZ2luYWxJbnRlcnZhbC5jb3VudCgpICogb25lTWlsbGlzZWNvbmQp
OworICAgIGF1dG8gaW50ZXJ2YWwgPSBzdGQ6Om1heChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
KDEpLCBtX29yaWdpbmFsSW50ZXJ2YWwpOwogCiAgICAgLy8gT25seSBhcHBseSB0aHJvdHRsaW5n
IHRvIHJlcGVhdGluZyB0aW1lcnMuCiAgICAgaWYgKG1fbmVzdGluZ0xldmVsIDwgbWF4VGltZXJO
ZXN0aW5nTGV2ZWwpCi0gICAgICAgIHJldHVybiBpbnRlcnZhbEluU2Vjb25kczsKKyAgICAgICAg
cmV0dXJuIGludGVydmFsOwogCiAgICAgLy8gQXBwbHkgdHdvIHRocm90dGxlcyAtIHRoZSBnbG9i
YWwgKHBlciBQYWdlKSBtaW5pbXVtLCBhbmQgYWxzbyBhIHBlci10aW1lciB0aHJvdHRsZS4KLSAg
ICBpbnRlcnZhbEluU2Vjb25kcyA9IHN0ZDo6bWF4KGludGVydmFsSW5TZWNvbmRzLCBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPm1pbmltdW1UaW1lckludGVydmFsKCkpOworICAgIGludGVydmFs
ID0gc3RkOjptYXgoaW50ZXJ2YWwsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+bWluaW11bVRp
bWVySW50ZXJ2YWwoKSk7CiAgICAgaWYgKG1fdGhyb3R0bGVTdGF0ZSA9PSBTaG91bGRUaHJvdHRs
ZSkKLSAgICAgICAgaW50ZXJ2YWxJblNlY29uZHMgPSBzdGQ6Om1heChpbnRlcnZhbEluU2Vjb25k
cywgbWluSW50ZXJ2YWxGb3JOb25Vc2VyT2JzZXJ2YWJsZUNoYW5nZVRpbWVycyAqIG9uZU1pbGxp
c2Vjb25kKTsKLSAgICByZXR1cm4gaW50ZXJ2YWxJblNlY29uZHM7CisgICAgICAgIGludGVydmFs
ID0gc3RkOjptYXgoaW50ZXJ2YWwsIG1pbkludGVydmFsRm9yTm9uVXNlck9ic2VydmFibGVDaGFu
Z2VUaW1lcnMpOworICAgIHJldHVybiBpbnRlcnZhbDsKIH0KIAotZG91YmxlIERPTVRpbWVyOjph
bGlnbmVkRmlyZVRpbWUoZG91YmxlIGZpcmVUaW1lKSBjb25zdAorT3B0aW9uYWw8c3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcz4gRE9NVGltZXI6OmFsaWduZWRGaXJlVGltZShzdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzIGZpcmVUaW1lKSBjb25zdAogewotICAgIGlmIChkb3VibGUgYWxpZ25tZW50
SW50ZXJ2YWwgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnRpbWVyQWxpZ25tZW50SW50ZXJ2
YWwobV9uZXN0aW5nTGV2ZWwgPj0gbWF4VGltZXJOZXN0aW5nTGV2ZWwpKSB7Ci0gICAgICAgIC8v
IERvbid0IG1lc3Mgd2l0aCB6ZXJvLWRlbGF5IHRpbWVycy4KLSAgICAgICAgaWYgKCFmaXJlVGlt
ZSkKLSAgICAgICAgICAgIHJldHVybiBmaXJlVGltZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGRv
dWJsZSByYW5kb21pemVkQWxpZ25tZW50ID0gcmFuZG9tTnVtYmVyKCk7Ci0gICAgICAgIC8vIEZv
cmNlIGFsaWdubWVudCB0byByYW5kb21pemVkQWxpZ25tZW50IGZyYWN0aW9uIG9mIHRoZSB3YXkg
YmV0d2VlbiBhbGlnbmVtbnRJbnRlcnZhbHMsIGUuZy4KLSAgICAgICAgLy8gaWYgYWxpZ25tZW50
SW50ZXJ2YWwgaXMgMTAgYW5kIHJhbmRvbWl6ZWRBbGlnbm1lbnQgaXMgMC4zIHRoaXMgd2lsbCBh
bGlnbiB0byAzLCAxMywgMjMsIC4uLgotICAgICAgICByZXR1cm4gKGNlaWwoZmlyZVRpbWUgLyBh
bGlnbm1lbnRJbnRlcnZhbCAtIHJhbmRvbWl6ZWRBbGlnbm1lbnQpICsgcmFuZG9taXplZEFsaWdu
bWVudCkgKiBhbGlnbm1lbnRJbnRlcnZhbDsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmlyZVRpbWU7
CisgICAgYXV0byBhbGlnbm1lbnRJbnRlcnZhbCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
dGltZXJBbGlnbm1lbnRJbnRlcnZhbChtX25lc3RpbmdMZXZlbCA+PSBtYXhUaW1lck5lc3RpbmdM
ZXZlbCk7CisgICAgaWYgKGFsaWdubWVudEludGVydmFsID09IHN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHM6Onplcm8oKSkKKyAgICAgICAgcmV0dXJuIE51bGxvcHQ7CisgICAgCisgICAgc3RhdGlj
IGNvbnN0IGRvdWJsZSByYW5kb21pemVkUHJvcG9ydGlvbiA9IHJhbmRvbU51bWJlcigpOworCisg
ICAgLy8gRm9yY2UgYWxpZ25tZW50IHRvIHJhbmRvbWl6ZWRBbGlnbm1lbnQgZnJhY3Rpb24gb2Yg
dGhlIHdheSBiZXR3ZWVuIGFsaWduZW1udEludGVydmFscywgZS5nLgorICAgIC8vIGlmIGFsaWdu
bWVudEludGVydmFsIGlzIDEwIGFuZCByYW5kb21pemVkQWxpZ25tZW50IGlzIDAuMyB0aGlzIHdp
bGwgYWxpZ24gdG8gMywgMTMsIDIzLCAuLi4KKyAgICBhdXRvIHJhbmRvbWl6ZWRPZmZzZXQgPSBz
dGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPihhbGln
bm1lbnRJbnRlcnZhbCAqIHJhbmRvbWl6ZWRQcm9wb3J0aW9uKTsKKyAgICBhdXRvIGFkanVzdGVk
RmlyZVRpbWUgPSBmaXJlVGltZSAtIHJhbmRvbWl6ZWRPZmZzZXQ7CisgICAgcmV0dXJuIGFkanVz
dGVkRmlyZVRpbWUgLSAoYWRqdXN0ZWRGaXJlVGltZSAlIGFsaWdubWVudEludGVydmFsKSArIGFs
aWdubWVudEludGVydmFsICsgcmFuZG9taXplZE9mZnNldDsKIH0KIAogY29uc3QgY2hhciogRE9N
VGltZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9ET01UaW1lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGlt
ZXIuaAkocmV2aXNpb24gMTk3NTk5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5o
CSh3b3JraW5nIGNvcHkpCkBAIC00Niw5ICs0Niw5IEBAIGNsYXNzIERPTVRpbWVyIGZpbmFsIDog
cHVibGljIFJlZkNvdW50ZWQKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5ET01UaW1lcigpOwogCi0g
ICAgc3RhdGljIGRvdWJsZSBkZWZhdWx0TWluaW11bUludGVydmFsKCkgeyByZXR1cm4gMC4wMDQ7
IH0gLy8gNCBtaWxsaXNlY29uZHMuCi0gICAgc3RhdGljIGRvdWJsZSBkZWZhdWx0QWxpZ25tZW50
SW50ZXJ2YWwoKSB7IHJldHVybiAwOyB9Ci0gICAgc3RhdGljIGRvdWJsZSBoaWRkZW5QYWdlQWxp
Z25tZW50SW50ZXJ2YWwoKSB7IHJldHVybiAxLjA7IH0gLy8gMSBzZWNvbmQuCisgICAgc3RhdGlj
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVmYXVsdE1pbmltdW1JbnRlcnZhbCgpIHsgcmV0
dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNCk7IH0KKyAgICBzdGF0aWMgc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyBkZWZhdWx0QWxpZ25tZW50SW50ZXJ2YWwoKSB7IHJldHVybiBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzOjp6ZXJvKCk7IH0KKyAgICBzdGF0aWMgc3RkOjpjaHJvbm86
Om1pbGxpc2Vjb25kcyBoaWRkZW5QYWdlQWxpZ25tZW50SW50ZXJ2YWwoKSB7IHJldHVybiBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwMDApOyB9CiAKICAgICAvLyBDcmVhdGVzIGEgbmV3IHRp
bWVyIG93bmVkIGJ5IHNwZWNpZmllZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdGFydHMgaXQK
ICAgICAvLyBhbmQgcmV0dXJucyBpdHMgSWQuCkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAg
ICAgRE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6dW5pcXVlX3B0cjxTY2hl
ZHVsZWRBY3Rpb24+LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGludGVydmFsLCBib29sIHNp
bmdsZVNob3QpOwogICAgIGZyaWVuZCBjbGFzcyBJbnRlcm5hbHM7CiAKLSAgICBkb3VibGUgaW50
ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCkgY29uc3Q7CisgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyBpbnRlcnZhbENsYW1wZWRUb01pbmltdW0oKSBjb25zdDsKIAogICAgIGJvb2wgaXNET01U
aW1lcnNUaHJvdHRsaW5nRW5hYmxlZChEb2N1bWVudCYpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRl
VGhyb3R0bGluZ1N0YXRlSWZOZWNlc3NhcnkoY29uc3QgRE9NVGltZXJGaXJlU3RhdGUmKTsKQEAg
LTczLDcgKzczLDcgQEAgcHJpdmF0ZToKICAgICAvLyBTdXNwZW5kYWJsZVRpbWVyCiAgICAgdm9p
ZCBmaXJlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkU3RvcCgpIG92ZXJyaWRlOwotICAgIGRv
dWJsZSBhbGlnbmVkRmlyZVRpbWUoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKKyAgICBPcHRpb25h
bDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPiBhbGlnbmVkRmlyZVRpbWUoc3RkOjpjaHJvbm86
Om1pbGxpc2Vjb25kcykgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3Qg
QVBJLgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlk
ZTsKQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1
bGVkQWN0aW9uPiBtX2FjdGlvbjsKICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fb3Jp
Z2luYWxJbnRlcnZhbDsKICAgICBUaW1lclRocm90dGxlU3RhdGUgbV90aHJvdHRsZVN0YXRlOwot
ICAgIGRvdWJsZSBtX2N1cnJlbnRUaW1lckludGVydmFsOworICAgIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgbV9jdXJyZW50VGltZXJJbnRlcnZhbDsKICAgICBib29sIG1fc2hvdWxkRm9yd2Fy
ZFVzZXJHZXN0dXJlOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAxOTc1
OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjA2LDcgKzEyMDYsNyBAQCB2b2lkIFBhZ2U6OnNldFRpbWVyVGhyb3R0bGluZ1N0YXRlKFRpbWVy
CiAgICAgICAgIHJldHVybjsKIAogICAgIG1fdGltZXJUaHJvdHRsaW5nU3RhdGUgPSBzdGF0ZTsK
LSAgICBtX3RpbWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1lID0gbW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCk7CisgICAgbV90aW1lclRocm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2Vk
VGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOwogCiAgICAgdXBkYXRlRE9N
VGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpOwogCkBAIC0xMjIxLDggKzEyMjEsNyBAQCB2b2lkIFBh
Z2U6OnNldFRpbWVyVGhyb3R0bGluZ1N0YXRlKFRpbWVyCiAKIHZvaWQgUGFnZTo6c2V0VGltZXJB
bGlnbm1lbnRJbnRlcnZhbEluY3JlYXNlTGltaXQoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBs
aW1pdCkKIHsKLSAgICAvLyBGSVhNRTogc3RkOjpjaHJvbm8taWZ5IGFsbCB0aW1lciBhbGxpZ25t
ZW50IHJlbGF0ZWQgY29kZS4KLSAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxp
bWl0ID0gbGltaXQuY291bnQoKSAqIDAuMDAxOworICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZh
bEluY3JlYXNlTGltaXQgPSBsaW1pdDsKIAogICAgIC8vIElmIChtX3RpbWVyQWxpZ25tZW50SW50
ZXJ2YWxJbmNyZWFzZUxpbWl0IDwgbV90aW1lckFsaWdubWVudEludGVydmFsKSB0aGVuIHdlIG5l
ZWQKICAgICAvLyB0byB1cGRhdGUgbV90aW1lckFsaWdubWVudEludGVydmFsLCBpZiBncmVhdGVy
IHRoZW4gbmVlZCB0byByZXN0YXJ0IHRoZSBpbmNyZWFzZSB0aW1lci4KQEAgLTEyNDgsOCArMTI0
Nyw4IEBAIHZvaWQgUGFnZTo6dXBkYXRlRE9NVGltZXJBbGlnbm1lbnRJbnRlcnYKICAgICAgICAg
aWYgKG1faXNQcmVyZW5kZXIpCiAgICAgICAgICAgICBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWwg
PSBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxpbWl0OwogICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgIEFTU0VSVChtX3RpbWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1l
KTsKLSAgICAgICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpIC0gbV90aW1lclRocm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2VkVGltZTsK
KyAgICAgICAgICAgIEFTU0VSVChtX3RpbWVyVGhyb3R0bGluZ1N0YXRlTGFzdENoYW5nZWRUaW1l
LnRpbWVfc2luY2VfZXBvY2goKSAhPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpkdXJhdGlv
bjo6emVybygpKTsKKyAgICAgICAgICAgIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbCA9IHN0ZDo6
Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KHN0ZDo6Y2hy
b25vOjpzdGVhZHlfY2xvY2s6Om5vdygpIC0gbV90aW1lclRocm90dGxpbmdTdGF0ZUxhc3RDaGFu
Z2VkVGltZSk7CiAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBiZWxvdyB0aGUgbGltaXQsIHNldCB0
aGUgdGltZXIuIElmIGFib3ZlLCBjbGFtcCB0byBsaW1pdC4KICAgICAgICAgICAgIGlmIChtX3Rp
bWVyQWxpZ25tZW50SW50ZXJ2YWwgPCBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFzZUxp
bWl0KQogICAgICAgICAgICAgICAgIG5lZWRzSW5jcmVhc2VUaW1lciA9IHRydWU7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAkocmV2aXNpb24gMTk3NTk4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxOSw3ICsyMTksNyBAQCBwdWJsaWM6CiAgICAgUHJvZ3Jl
c3NUcmFja2VyJiBwcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuICptX3Byb2dyZXNzOyB9CiAgICAg
QmFja0ZvcndhcmRDb250cm9sbGVyJiBiYWNrRm9yd2FyZCgpIGNvbnN0IHsgcmV0dXJuICptX2Jh
Y2tGb3J3YXJkQ29udHJvbGxlcjsgfQogCi0gICAgZG91YmxlIGRvbVRpbWVyQWxpZ25tZW50SW50
ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWw7IH0KKyAgICBz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRvbVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKSBjb25z
dCB7IHJldHVybiBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWw7IH0KIAogI2lmIEVOQUJMRShWSUVX
X01PREVfQ1NTX01FRElBKQogICAgIGVudW0gVmlld01vZGUgewpAQCAtNjIxLDEwICs2MjEsMTAg
QEAgcHJpdmF0ZToKICNlbmRpZiAvLyBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKIAogICAg
IFRpbWVyVGhyb3R0bGluZ1N0YXRlIG1fdGltZXJUaHJvdHRsaW5nU3RhdGUgeyBUaW1lclRocm90
dGxpbmdTdGF0ZTo6RGlzYWJsZWQgfTsKLSAgICBkb3VibGUgbV90aW1lclRocm90dGxpbmdTdGF0
ZUxhc3RDaGFuZ2VkVGltZSB7IDAgfTsKLSAgICBkb3VibGUgbV90aW1lckFsaWdubWVudEludGVy
dmFsOworICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgbV90aW1lclRo
cm90dGxpbmdTdGF0ZUxhc3RDaGFuZ2VkVGltZSB7IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6
OmR1cmF0aW9uOjp6ZXJvKCkgfTsKKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fdGlt
ZXJBbGlnbm1lbnRJbnRlcnZhbDsKICAgICBUaW1lciBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJ
bmNyZWFzZVRpbWVyOwotICAgIGRvdWJsZSBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWxJbmNyZWFz
ZUxpbWl0IHsgMCB9OworICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbV90aW1lckFsaWdu
bWVudEludGVydmFsSW5jcmVhc2VMaW1pdCB7IDAgfTsKIAogICAgIGJvb2wgbV9pc0VkaXRhYmxl
OwogICAgIGJvb2wgbV9pc1ByZXJlbmRlcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
CShyZXZpc2lvbiAxOTc1OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDY0LDkgKzQ2NCw5IEBAIHZvaWQgU2V0dGluZ3M6OnNldE5lZWRz
QWRvYmVGcmFtZVJlbG9hZGkKICAgICBtX25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrID0g
c2hvdWxkTm90UmVsb2FkSUZyYW1lc0ZvclVuY2hhbmdlZFNSQzsKIH0KIAotdm9pZCBTZXR0aW5n
czo6c2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoZG91YmxlIGludGVydmFsKQordm9pZCBTZXR0
aW5nczo6c2V0TWluaW11bURPTVRpbWVySW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBpbnRlcnZhbCkKIHsKLSAgICBkb3VibGUgb2xkVGltZXJJbnRlcnZhbCA9IG1fbWluaW11bURP
TVRpbWVySW50ZXJ2YWw7CisgICAgYXV0byBvbGRUaW1lckludGVydmFsID0gbV9taW5pbXVtRE9N
VGltZXJJbnRlcnZhbDsKICAgICBtX21pbmltdW1ET01UaW1lckludGVydmFsID0gaW50ZXJ2YWw7
CiAKICAgICBpZiAoIW1fcGFnZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHJldmlzaW9u
IDE5NzU5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkod29ya2luZyBjb3B5
KQpAQCAtMTUyLDggKzE1Miw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dE5lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrKGJvb2wpOwogICAgIGJvb2wgbmVlZHNBY3Jv
YmF0RnJhbWVSZWxvYWRpbmdRdWlyaygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNBZG9iZUZyYW1l
UmVsb2FkaW5nUXVpcms7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWluaW11bURP
TVRpbWVySW50ZXJ2YWwoZG91YmxlKTsgLy8gSW5pdGlhbGl6ZWQgdG8gRE9NVGltZXI6OmRlZmF1
bHRNaW5pbXVtSW50ZXJ2YWwoKS4KLSAgICBkb3VibGUgbWluaW11bURPTVRpbWVySW50ZXJ2YWwo
KSBjb25zdCB7IHJldHVybiBtX21pbmltdW1ET01UaW1lckludGVydmFsOyB9CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRNaW5pbXVtRE9NVGltZXJJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzKTsgLy8gSW5pdGlhbGl6ZWQgdG8gRE9NVGltZXI6OmRlZmF1bHRNaW5pbXVtSW50
ZXJ2YWwoKS4KKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1pbmltdW1ET01UaW1lcklu
dGVydmFsKCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtRE9NVGltZXJJbnRlcnZhbDsgfQogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRMYXlvdXRJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzKTsKICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGxheW91dEludGVydmFs
KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRJbnRlcnZhbDsgfQpAQCAtMzAzLDcgKzMwMyw3IEBA
IHByaXZhdGU6CiAgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPEZvbnRHZW5lcmljRmFtaWxpZXM+
IG1fZm9udEdlbmVyaWNGYW1pbGllczsKICAgICBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2Nr
aW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5OwogICAgIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMgbV9sYXlvdXRJbnRlcnZhbDsKLSAgICBkb3VibGUgbV9taW5pbXVtRE9NVGltZXJJ
bnRlcnZhbDsKKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fbWluaW11bURPTVRpbWVy
SW50ZXJ2YWw7CiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIGZsb2F0IG1fdGV4
dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3I7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1N1
c3BlbmRhYmxlVGltZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3Bl
bmRhYmxlVGltZXIuaAkocmV2aXNpb24gMTk3NTk4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9T
dXNwZW5kYWJsZVRpbWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDExICs0MywxOSBAQCBwdWJs
aWM6CiAgICAgLy8gUGFydCBvZiBUaW1lckJhc2UgaW50ZXJmYWNlIHVzZWQgYnkgU3VzcGVuZGFi
bGVUaW1lciBjbGllbnRzLCBtb2RpZmllZCB0byB3b3JrIHdoZW4gc3VzcGVuZGVkLgogICAgIGJv
b2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBUaW1lckJhc2U6OmlzQWN0aXZlKCkgfHwgKG1f
c3VzcGVuZGVkICYmIG1fc2F2ZWRJc0FjdGl2ZSk7IH0KICAgICBib29sIGlzU3VzcGVuZGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9zdXNwZW5kZWQ7IH0KKwogICAgIHZvaWQgc3RhcnRSZXBlYXRpbmco
ZG91YmxlIHJlcGVhdEludGVydmFsKTsKICAgICB2b2lkIHN0YXJ0T25lU2hvdChkb3VibGUgaW50
ZXJ2YWwpOwogICAgIGRvdWJsZSByZXBlYXRJbnRlcnZhbCgpIGNvbnN0OwogICAgIHZvaWQgYXVn
bWVudEZpcmVJbnRlcnZhbChkb3VibGUgZGVsdGEpOwogICAgIHZvaWQgYXVnbWVudFJlcGVhdElu
dGVydmFsKGRvdWJsZSBkZWx0YSk7CisKKyAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHMgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRpbmcobXNUb1Nl
Y29uZHMocmVwZWF0SW50ZXJ2YWwpKTsgfQorICAgIHZvaWQgc3RhcnRPbmVTaG90KHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHMgaW50ZXJ2YWwpIHsgc3RhcnRPbmVTaG90KG1zVG9TZWNvbmRzKGlu
dGVydmFsKSk7IH0KKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHJlcGVhdEludGVydmFs
TVMoKSBjb25zdCB7IHJldHVybiBzZWNvbmRzVG9NUyhyZXBlYXRJbnRlcnZhbCgpKTsgfQorICAg
IHZvaWQgYXVnbWVudEZpcmVJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbHRh
KSB7IGF1Z21lbnRGaXJlSW50ZXJ2YWwobXNUb1NlY29uZHMoZGVsdGEpKTsgfQorICAgIHZvaWQg
YXVnbWVudFJlcGVhdEludGVydmFsKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVsdGEpIHsg
YXVnbWVudFJlcGVhdEludGVydmFsKG1zVG9TZWNvbmRzKGRlbHRhKSk7IH0KKwogICAgIHVzaW5n
IFRpbWVyQmFzZTo6ZGlkQ2hhbmdlQWxpZ25tZW50SW50ZXJ2YWw7CiAgICAgdXNpbmcgVGltZXJC
YXNlOjpvcGVyYXRvciBuZXc7CiAgICAgdXNpbmcgVGltZXJCYXNlOjpvcGVyYXRvciBkZWxldGU7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCShyZXZpc2lvbiAxOTc1OTgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2Nywx
MyArMzY3LDEzIEBAIHZvaWQgVGltZXJCYXNlOjp1cGRhdGVIZWFwSWZOZWVkZWQoZG91YmwKICAg
ICBBU1NFUlQoIWluSGVhcCgpIHx8IGhhc1ZhbGlkSGVhcFBvc2l0aW9uKCkpOwogfQogCi12b2lk
IFRpbWVyQmFzZTo6c2V0TmV4dEZpcmVUaW1lKGRvdWJsZSBuZXdVbmFsaWduZWRUaW1lKQordm9p
ZCBUaW1lckJhc2U6OnNldE5leHRGaXJlVGltZShkb3VibGUgbmV3VGltZSkKIHsKICAgICBBU1NF
UlQoY2FuQWNjZXNzVGhyZWFkTG9jYWxEYXRhRm9yVGhyZWFkKG1fdGhyZWFkKSk7CiAgICAgQVNT
RVJUKCFtX3dhc0RlbGV0ZWQpOwogCi0gICAgaWYgKG1fdW5hbGlnbmVkTmV4dEZpcmVUaW1lICE9
IG5ld1VuYWxpZ25lZFRpbWUpCi0gICAgICAgIG1fdW5hbGlnbmVkTmV4dEZpcmVUaW1lID0gbmV3
VW5hbGlnbmVkVGltZTsKKyAgICBpZiAobV91bmFsaWduZWROZXh0RmlyZVRpbWUgIT0gbmV3VGlt
ZSkKKyAgICAgICAgbV91bmFsaWduZWROZXh0RmlyZVRpbWUgPSBuZXdUaW1lOwogCiAgICAgLy8g
QWNjZXNzaW5nIHRocmVhZCBnbG9iYWwgZGF0YSBpcyBzbG93LiBDYWNoZSB0aGUgaGVhcCBwb2lu
dGVyLgogICAgIGlmICghbV9jYWNoZWRUaHJlYWRHbG9iYWxUaW1lckhlYXApCkBAIC0zODEsNyAr
MzgxLDEyIEBAIHZvaWQgVGltZXJCYXNlOjpzZXROZXh0RmlyZVRpbWUoZG91YmxlIG4KIAogICAg
IC8vIEtlZXAgaGVhcCB2YWxpZCB3aGlsZSBjaGFuZ2luZyB0aGUgbmV4dC1maXJlIHRpbWUuCiAg
ICAgZG91YmxlIG9sZFRpbWUgPSBtX25leHRGaXJlVGltZTsKLSAgICBkb3VibGUgbmV3VGltZSA9
IGFsaWduZWRGaXJlVGltZShuZXdVbmFsaWduZWRUaW1lKTsKKyAgICAvLyBEb24ndCByZWFsaWdu
IHplcm8tZGVsYXkgdGltZXJzLgorICAgIGlmIChuZXdUaW1lKSB7CisgICAgICAgIGlmIChhdXRv
IG5ld0FsaWduZWRUaW1lID0gYWxpZ25lZEZpcmVUaW1lKHNlY29uZHNUb01TKG5ld1RpbWUpKSkK
KyAgICAgICAgICAgIG5ld1RpbWUgPSBtc1RvU2Vjb25kcyhuZXdBbGlnbmVkVGltZS52YWx1ZSgp
KTsKKyAgICB9CisKICAgICBpZiAob2xkVGltZSAhPSBuZXdUaW1lKSB7CiAgICAgICAgIG1fbmV4
dEZpcmVUaW1lID0gbmV3VGltZTsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHBh
cnQgb2YgVGhyZWFkVGltZXJzLCBvciBhbm90aGVyIHBlci10aHJlYWQgc3RydWN0dXJlLgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCShyZXZpc2lvbiAxOTc1OTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9UaW1lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSA8Y2hyb25vPgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDUsNiArNDYsMTAgQEAg
Y2xhc3MgVGltZXJIZWFwRWxlbWVudDsKIGNsYXNzIFRpbWVyQmFzZSB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoVGltZXJCYXNlKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3By
b3RlY3RlZDoKKyAgICBzdGF0aWMgaW5saW5lIGRvdWJsZSBtc1RvU2Vjb25kcyhzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIGR1cmF0aW9uKSB7IHJldHVybiBkdXJhdGlvbi5jb3VudCgpICogMC4w
MDE7IH0KKyAgICBzdGF0aWMgaW5saW5lIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgc2Vjb25k
c1RvTVMoZG91YmxlIGR1cmF0aW9uKSB7IHJldHVybiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
KChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjpyZXApKGR1cmF0aW9uICogMTAwMCkpOyB9CisK
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBUaW1lckJhc2UoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIH5UaW1lckJhc2UoKTsKQEAgLTUyLDkgKzU3LDkgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGRvdWJs
ZSByZXBlYXRJbnRlcnZhbCk7CiAKICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKGRvdWJsZSByZXBl
YXRJbnRlcnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZhbCwgcmVwZWF0SW50ZXJ2YWwpOyB9Ci0g
ICAgdm9pZCBzdGFydFJlcGVhdGluZyhzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHJlcGVhdElu
dGVydmFsKSB7IHN0YXJ0UmVwZWF0aW5nKHJlcGVhdEludGVydmFsLmNvdW50KCkgKiAwLjAwMSk7
IH0KKyAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgcmVw
ZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRpbmcobXNUb1NlY29uZHMocmVwZWF0SW50ZXJ2YWwp
KTsgfQogICAgIHZvaWQgc3RhcnRPbmVTaG90KGRvdWJsZSBpbnRlcnZhbCkgeyBzdGFydChpbnRl
cnZhbCwgMCk7IH0KLSAgICB2b2lkIHN0YXJ0T25lU2hvdChzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzIGludGVydmFsKSB7IHN0YXJ0T25lU2hvdChpbnRlcnZhbC5jb3VudCgpICogMC4wMDEpOyB9
CisgICAgdm9pZCBzdGFydE9uZVNob3Qoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZh
bCkgeyBzdGFydE9uZVNob3QobXNUb1NlY29uZHMoaW50ZXJ2YWwpKTsgfQogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzdG9wKCk7CiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0OwpAQCAtNjIs
OSArNjcsMTIgQEAgcHVibGljOgogICAgIGRvdWJsZSBuZXh0RmlyZUludGVydmFsKCkgY29uc3Q7
CiAgICAgZG91YmxlIG5leHRVbmFsaWduZWRGaXJlSW50ZXJ2YWwoKSBjb25zdDsKICAgICBkb3Vi
bGUgcmVwZWF0SW50ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX3JlcGVhdEludGVydmFsOyB9Cisg
ICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyByZXBlYXRJbnRlcnZhbE1TKCkgY29uc3QgeyBy
ZXR1cm4gc2Vjb25kc1RvTVMocmVwZWF0SW50ZXJ2YWwoKSk7IH0KIAogICAgIHZvaWQgYXVnbWVu
dEZpcmVJbnRlcnZhbChkb3VibGUgZGVsdGEpIHsgc2V0TmV4dEZpcmVUaW1lKG1fbmV4dEZpcmVU
aW1lICsgZGVsdGEpOyB9CisgICAgdm9pZCBhdWdtZW50RmlyZUludGVydmFsKHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgZGVsdGEpIHsgYXVnbWVudEZpcmVJbnRlcnZhbChtc1RvU2Vjb25kcyhk
ZWx0YSkpOyB9CiAgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoZG91YmxlIGRlbHRhKSB7
IGF1Z21lbnRGaXJlSW50ZXJ2YWwoZGVsdGEpOyBtX3JlcGVhdEludGVydmFsICs9IGRlbHRhOyB9
CisgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBkZWx0YSkgeyBhdWdtZW50UmVwZWF0SW50ZXJ2YWwobXNUb1NlY29uZHMoZGVsdGEpKTsgfQog
CiAgICAgdm9pZCBkaWRDaGFuZ2VBbGlnbm1lbnRJbnRlcnZhbCgpOwogCkBAIC03Myw3ICs4MSw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAwOwogCi0g
ICAgdmlydHVhbCBkb3VibGUgYWxpZ25lZEZpcmVUaW1lKGRvdWJsZSBmaXJlVGltZSkgY29uc3Qg
eyByZXR1cm4gZmlyZVRpbWU7IH0KKyAgICB2aXJ0dWFsIE9wdGlvbmFsPHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHM+IGFsaWduZWRGaXJlVGltZShzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKSBj
b25zdCB7IHJldHVybiBOdWxsb3B0OyB9CiAKICAgICB2b2lkIGNoZWNrQ29uc2lzdGVuY3koKSBj
b25zdDsKICAgICB2b2lkIGNoZWNrSGVhcEluZGV4KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAJKHJldmlzaW9uIDE5NzU5OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2Niw3ICs0NjYsNyBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEltYWdlc0Vu
YWJsZWQoCiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldE1pbmltdW1UaW1lckludGVydmFsKGRv
dWJsZSBpbnRlcnZhbEluU2Vjb25kcywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSW50ZXJu
YWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKLSAgICBzZXR0aW5ncygpLT5zZXRNaW5pbXVt
RE9NVGltZXJJbnRlcnZhbChpbnRlcnZhbEluU2Vjb25kcyk7CisgICAgc2V0dGluZ3MoKS0+c2V0
TWluaW11bURPTVRpbWVySW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygoc3RkOjpj
aHJvbm86Om1pbGxpc2Vjb25kczo6cmVwKShpbnRlcnZhbEluU2Vjb25kcyAqIDEwMDApKSk7CiB9
CiAKIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RGVmYXVsdFZpZGVvUG9zdGVyVVJMKGNvbnN0
IFN0cmluZyYgdXJsLCBFeGNlcHRpb25Db2RlJiBlYykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCShyZXZpc2lvbiAxOTc1OTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyAr
NzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgbV9vcmlnaW5hbFVzZXNPdmVybGF5U2Nyb2xs
YmFyczsKICAgICAgICAgYm9vbCBtX2xhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFi
bGVkOwogICAgICAgICBib29sIG1faW1hZ2VzRW5hYmxlZDsKLSAgICAgICAgZG91YmxlIG1fbWlu
aW11bVRpbWVySW50ZXJ2YWw7CisgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgbV9t
aW5pbXVtVGltZXJJbnRlcnZhbDsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgICAgIGJv
b2wgbV9zaG91bGREaXNwbGF5U3VidGl0bGVzOwogICAgICAgICBib29sIG1fc2hvdWxkRGlzcGxh
eUNhcHRpb25zOwpJbmRleDogU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMTk3NjU4KQorKysgU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTYtMDMtMDYgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgor
CisgICAgICAgIENvbnZlcnQgRE9NVGltZXIgdG8gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MDg1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRE9NVGltZXIg
Y3VycmVudGx5IHVzZXMgYSBtaXggb2YgbWlsbGlzZWNvbmQgKHdhcyBpbnQsIG5vdyBzdGQ6OmNo
cm9ubykgYW5kIHNlY29uZCAoYXMgZG91YmxlKQorICAgICAgICB0aW1lIHZhbHVlcy4gQ29uc3Rh
bnQgY29udmVyc2lvbiBiYWNrIGFuZCBmb3J0aCBpcyBhIGNvbXBsZXRlIG1lc3MuIFN0b3AgdGhh
dC4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6c2V0TWluaW11
bVRpbWVySW50ZXJ2YWwpOgorICAgICAgICAgICAgLSBDb252ZXJ0IGRvdWJsZSBhcmd1bWVudCBp
bnRvIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMuCisKIDIwMTYtMDMtMDUgIFl1c3VrZSBTdXp1
a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0VTNl0gU3VwcG9ydCBSZWZs
ZWN0LmNvbnN0cnVjdApJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHJldmlzaW9uIDE5NzU5OCkK
KysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MjIw
LDcgKzcyMjAsNyBAQCBIUkVTVUxUIFdlYlZpZXc6OmRlZmF1bHRNaW5pbXVtVGltZXJJbnRlCiB7
CiAgICAgaWYgKCFpbnRlcnZhbCkKICAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKLSAgICAqaW50
ZXJ2YWwgPSBET01UaW1lcjo6ZGVmYXVsdE1pbmltdW1JbnRlcnZhbCgpOworICAgICppbnRlcnZh
bCA9IERPTVRpbWVyOjpkZWZhdWx0TWluaW11bUludGVydmFsKCkuY291bnQoKSAvIDEwMDAuOwog
ICAgIHJldHVybiBTX09LOwogfQogCkBAIC03MjI5LDcgKzcyMjksOCBAQCBIUkVTVUxUIFdlYlZp
ZXc6OnNldE1pbmltdW1UaW1lckludGVydmFsCiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJl
dHVybiBFX0ZBSUw7CiAKLSAgICBwYWdlKCktPnNldHRpbmdzKCkuc2V0TWluaW11bURPTVRpbWVy
SW50ZXJ2YWwoaW50ZXJ2YWwpOworICAgIGF1dG8gaW50ZXJ2YWxNUyA9IHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMoKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6OnJlcCkoaW50ZXJ2YWwgKiAx
MDAwKSk7CisgICAgcGFnZSgpLT5zZXR0aW5ncygpLnNldE1pbmltdW1ET01UaW1lckludGVydmFs
KGludGVydmFsTVMpOwogICAgIHJldHVybiBTX09LOwogfQogCg==
</data>
<flag name="review"
          id="297759"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>