<?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>125709</bug_id>
          
          <creation_ts>2013-12-13 13:35:38 -0800</creation_ts>
          <short_desc>Web Inspector: refactor TimelineDecorations into TimelineRuler</short_desc>
          <delta_ts>2014-01-20 19:02:40 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>959660</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-12-13 13:35:38 -0800</bug_when>
    <thetext>The current TimelineDecorations class needs beefed up to support new use cases in Timeline. Mainly scrollable times that isn&apos;t always starting at 0. We also need to support time scales that don&apos;t have an end time, but are specified in seconds per pixel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959673</commentid>
    <comment_count>1</comment_count>
      <attachid>219196</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-12-13 14:06:26 -0800</bug_when>
    <thetext>Created attachment 219196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959681</commentid>
    <comment_count>2</comment_count>
      <attachid>219196</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-12-13 14:50:27 -0800</bug_when>
    <thetext>Comment on attachment 219196
Patch

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

r=me

&gt; Source/WebInspectorUI/UserInterface/TimelineRuler.js:46
&gt; +    this._allowsClippedLabels = false;

I would include &quot;this._endTimePinned = false&quot; up here with the list of other member variables that don&apos;t get `delete`d.

&gt; Source/WebInspectorUI/UserInterface/TimelineRuler.js:165
&gt; +        return this._secondsPerPixel;

Should this _recalculate before returning a value? Someone could call _needsLayout, but that only updates this member variable after a rAF. So if someone set endTime then checked secondsPerPixel it could be wrong.

&gt; Source/WebInspectorUI/UserInterface/TimelineRuler.js:248
&gt; +            var newLeftPosition = ((dividerTime - this._startTime) / duration);

Style: unnecessary extra parens

&gt; Source/WebInspectorUI/UserInterface/TimelineRuler.js:254
&gt; +                    removeDividerAndSelectNext();
&gt; +                    continue;

Is it necessary to remove divider and select next? Why not just continue, and keep to reuse the current divider? Extra dividers are removed after this loop anyways (lines 284-285).

&gt; Source/WebInspectorUI/UserInterface/TimelineRuler.js:264
&gt; +                    removeDividerAndSelectNext();
&gt; +                    continue;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970120</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-01-20 19:02:25 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/162407</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970121</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-20 19:02:40 -0800</bug_when>
    <thetext>&lt;rdar://problem/15866316&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219196</attachid>
            <date>2013-12-13 14:06:26 -0800</date>
            <delta_ts>2013-12-13 14:50:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125709-20131213140625.patch</filename>
            <type>text/plain</type>
            <size>34666</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3ODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA4
YzRiOGM0MDI1YWQ1ZDRmNzBjZTU5MDdjNmIwNTE3OWQ4OWJlMmE0Li41YzNkNWFmNjIyYjNmZThi
OGRmYWJiZThmMTNkNzNmMmRkYTdiNDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw2MyBAQAogMjAxMy0xMi0xMyAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5j
b20+CiAKKyAgICAgICAgQ2xlYW4gdXAgYW5kIHJlZmFjdG9yIFRpbWVsaW5lRGVjb3JhdGlvbnMg
aW50byBUaW1lbGluZVJ1bGVyLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjU3MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvT3ZlcnZpZXdUaW1lbGluZVZpZXcuY3NzOgorICAgICAgICAoLnRpbWVsaW5lLXZp
ZXcub3ZlcnZpZXcgPiAudGltZWxpbmUtcnVsZXIpOgorICAgICAgICAoLnRpbWVsaW5lLXZpZXcu
b3ZlcnZpZXcgPiAudGltZWxpbmUtcnVsZXIgPiAuaGVhZGVyKToKKyAgICAgICAgKC50aW1lbGlu
ZS12aWV3Lm92ZXJ2aWV3ID4gLnRpbWVsaW5lLXJ1bGVyID4gLmV2ZW50LW1hcmtlcnMpOgorICAg
ICAgICBVcGRhdGVkIGNsYXNzIG5hbWVzIGFuZCBib3JkZXIgc2lkZXMuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL092ZXJ2aWV3VGltZWxpbmVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk92ZXJ2aWV3VGltZWxpbmVWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PdmVydmll
d1RpbWVsaW5lVmlldy5wcm90b3R5cGUudXBkYXRlTGF5b3V0KToKKyAgICAgICAgQ2FsbCB1cGRh
dGVMYXlvdXQgb24gdGhlIFRpbWVsaW5lUnVsZXIuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1RpbWVsaW5lUnVsZXIuY3NzOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVGltZWxpbmVEZWNvcmF0aW9ucy5jc3MuCisgICAgICAgICgudGltZWxpbmUt
cnVsZXIpOgorICAgICAgICAoLnRpbWVsaW5lLXJ1bGVyID4gLmhlYWRlcik6CisgICAgICAgICgu
dGltZWxpbmUtcnVsZXIgPiAuaGVhZGVyID4gLmRpdmlkZXIpOgorICAgICAgICAoLnRpbWVsaW5l
LXJ1bGVyID4gLmhlYWRlciA+IC5kaXZpZGVyID4gLmxhYmVsKToKKyAgICAgICAgKC50aW1lbGlu
ZS1ydWxlciA+IC5ldmVudC1tYXJrZXJzKToKKyAgICAgICAgKC50aW1lbGluZS1ydWxlciA+IC5l
dmVudC1tYXJrZXJzID4gLmV2ZW50LW1hcmtlci10b29sdGlwKToKKyAgICAgICAgKC50aW1lbGlu
ZS1ydWxlciA+IC5ldmVudC1tYXJrZXJzID4gLmV2ZW50LW1hcmtlcik6CisgICAgICAgICgudGlt
ZWxpbmUtcnVsZXIgPiAuZXZlbnQtbWFya2VycyA+IC5ldmVudC1tYXJrZXIubG9hZC1ldmVudCk6
CisgICAgICAgICgudGltZWxpbmUtcnVsZXIgPiAuZXZlbnQtbWFya2VycyA+IC5ldmVudC1tYXJr
ZXIuZG9tLWNvbnRlbnQtZXZlbnQpOgorICAgICAgICAoLnRpbWVsaW5lLXJ1bGVyID4gLmV2ZW50
LW1hcmtlcnMgPiAuZXZlbnQtbWFya2VyLnRpbWVzdGFtcCk6CisgICAgICAgIFVwZGF0ZWQgY2xh
c3MgbmFtZXMgYW5kIGJvcmRlciBzaWRlcy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGlt
ZWxpbmVSdWxlci5qczogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1RpbWVsaW5lRGVjb3JhdGlvbnMuanMuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVSdWxlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5wcm90b3R5
cGUuZ2V0IGVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIucHJv
dG90eXBlLmdldCBoZWFkZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVJ1bGVyLnByb3RvdHlwZS5nZXQgYWxsb3dzQ2xpcHBlZExhYmVscyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGltZWxpbmVSdWxlci5wcm90b3R5cGUuc2V0IGFsbG93c0NsaXBwZWRMYWJlbHMp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIucHJvdG90eXBlLmdldCB6ZXJv
VGltZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5wcm90b3R5cGUuc2V0
IHplcm9UaW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLnByb3RvdHlw
ZS5nZXQgc3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLnBy
b3RvdHlwZS5zZXQgc3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1
bGVyLnByb3RvdHlwZS5nZXQgZHVyYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUnVsZXIucHJvdG90eXBlLnNldCBkdXJhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVSdWxlci5wcm90b3R5cGUuZ2V0IGVuZFRpbWUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUnVsZXIucHJvdG90eXBlLnNldCBlbmRUaW1lKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UaW1lbGluZVJ1bGVyLnByb3RvdHlwZS5nZXQgc2Vjb25kc1BlclBpeGVsKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLnByb3RvdHlwZS5zZXQgc2Vjb25kc1Bl
clBpeGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLnByb3RvdHlwZS51
cGRhdGVMYXlvdXQucmVtb3ZlRGl2aWRlckFuZFNlbGVjdE5leHQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUnVsZXIucHJvdG90eXBlLnVwZGF0ZUxheW91dCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5wcm90b3R5cGUuX25lZWRzTGF5b3V0KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLnByb3RvdHlwZS5fcmVjYWxjdWxhdGUpOgor
ICAgICAgICBSZWZhY3RvciBzbyB0aGUgdGltZXMgYXJlIHN0b3JlZCBvbiBUaW1lbGluZVJ1bGVy
IGFuZCBub3QgcGFzc2VkIGluIGVhY2ggdGltZSBhbiB1cGRhdGUgaXMgbmVlZGVkLgorICAgICAg
ICBTdXBwb3J0IGRpdmlkZXJzIHRoYXQgZG9uJ3QgYWx3YXlzIHN0YXJ0IGF0IHRoZSB6ZXJvIHBv
c2l0aW9uLCBhbGxvd2luZyBhIHNsaWRpbmcgdGltZSBydWxlci4KKyAgICAgICAgU3VwcG9ydCBm
b3IgYSBub24tcGlubmVkIHJ1bGVyIHdoZXJlIHRoZSBlbmQgdGltZSBpcyBub3QgZml4ZWQgYW5k
IHRoZSBzY2FsZSBpcyBzcGVjaWZpZWQgaW4KKyAgICAgICAgc2Vjb25kcy1wZXItcGl4ZWwuCisK
KzIwMTMtMTItMTMgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgorCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IHN1cHBvcnQgbmVnYXRpdmUgbnVtYmVycyBpbiBzZWNvbmRzVG9T
dHJpbmcgYW5kIGJ5dGVzVG9TdHJpbmcuCiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNTcwOApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IDYzMGJlNzY4NTAxZWIyNGM2N2NhNWY5NzE2YTdhYTQ5
MzJjNGM2YmQuLjRmODJmNTM0ZjUzYzU4YWFhN2RhOWUyMDUzNmJjMGVlNjA4MGNhZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAorKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTg1LDcg
Kzg1LDcgQEAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlRpbWVsaW5lQ29udGVu
dFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ik92ZXJ2aWV3VGlt
ZWxpbmVWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJUaW1lbGlu
ZUljb25zLmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJUaW1lbGluZURl
Y29yYXRpb25zLmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJUaW1lbGlu
ZVJ1bGVyLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJUaW1lbGluZURh
dGFHcmlkLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJUaW1lbGluZU92
ZXJ2aWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJQcm9maWxlVmll
dy5jc3MiPgpAQCAtMzI5LDcgKzMyOSw3IEBACiAgICAgPHNjcmlwdCBzcmM9IkluZGV0ZXJtaW5h
dGVQcm9ncmVzc1NwaW5uZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUaW1lbGlu
ZVNpZGViYXJQYW5lbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlNvdXJjZUNvZGVU
aW1lbGluZVRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVGltZWxp
bmVEZWNvcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlRpbWVsaW5lUnVs
ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUaW1lbGluZURhdGFHcmlkLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTGF5b3V0VGltZWxpbmVEYXRhR3JpZC5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlNjcmlwdFRpbWVsaW5lRGF0YUdyaWQuanMiPjwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvT3Zl
cnZpZXdUaW1lbGluZVZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvT3ZlcnZpZXdUaW1lbGluZVZpZXcuY3NzCmluZGV4IDM2NzJjZGI1YmY1MTY0NzEwMjZkMjU2
MWEwMGZiMTYyMTk0MDE0YmYuLjExZDEwODNlYjg1MmJiZThkZDM4MjJhNWY0Y2EwM2QxODcyYmU4
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL092ZXJ2
aWV3VGltZWxpbmVWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9PdmVydmlld1RpbWVsaW5lVmlldy5jc3MKQEAgLTIzLDcgKzIzLDcgQEAKICAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0udGltZWxpbmUtdmlldy5vdmVydmll
dyA+IC50aW1lbGluZS1kZWNvcmF0aW9ucyB7CisudGltZWxpbmUtdmlldy5vdmVydmlldyA+IC50
aW1lbGluZS1ydWxlciB7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgIHRvcDogMDsKICAg
ICBsZWZ0OiAwOwpAQCAtMzEsMTIgKzMxLDEyIEBACiAgICAgYm90dG9tOiAwOwogfQogCi0udGlt
ZWxpbmUtdmlldy5vdmVydmlldyA+IC50aW1lbGluZS1kZWNvcmF0aW9ucyA+IC5oZWFkZXIgewot
ICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2IoMjAwLCAyMDAsIDIwMCk7CisudGltZWxp
bmUtdmlldy5vdmVydmlldyA+IC50aW1lbGluZS1ydWxlciA+IC5oZWFkZXIgeworICAgIGJvcmRl
ci10b3A6IDFweCBzb2xpZCByZ2IoMjAwLCAyMDAsIDIwMCk7CiAgICAgaGVpZ2h0OiAyM3B4Owog
fQogCi0udGltZWxpbmUtdmlldy5vdmVydmlldyA+IC50aW1lbGluZS1kZWNvcmF0aW9ucyA+IC5l
dmVudC1tYXJrZXJzIHsKKy50aW1lbGluZS12aWV3Lm92ZXJ2aWV3ID4gLnRpbWVsaW5lLXJ1bGVy
ID4gLmV2ZW50LW1hcmtlcnMgewogICAgIHRvcDogMjNweDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvT3ZlcnZpZXdUaW1lbGluZVZpZXcuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9PdmVydmlld1RpbWVsaW5lVmll
dy5qcwppbmRleCBiOTVkMGQ5ZTUyMzZiYTcxYTRmYTZkYWQyYTdiYzViODY0NTA3OGExLi40NGU0
ZDY3MDYyZjk2NzhiZDdlZjJkYzNjNjgzOTNkNmE0YzhhOTZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9PdmVydmlld1RpbWVsaW5lVmlldy5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9PdmVydmlld1RpbWVsaW5lVmll
dy5qcwpAQCAtMzQsOCArMzQsOCBAQCBXZWJJbnNwZWN0b3IuT3ZlcnZpZXdUaW1lbGluZVZpZXcg
PSBmdW5jdGlvbigpCiAKICAgICB0aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVy
ID0gbmV3IFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyKHRoaXMu
X2NvbnRlbnRUcmVlT3V0bGluZSwgdGhpcy5fZGF0YUdyaWQpOwogCi0gICAgdGhpcy5fdGltZWxp
bmVEZWNvcmF0aW9ucyA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVEZWNvcmF0aW9uczsKLSAg
ICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fdGltZWxpbmVEZWNvcmF0aW9ucy5lbGVt
ZW50KTsKKyAgICB0aGlzLl90aW1lbGluZVJ1bGVyID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVJ1bGVyOworICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl90aW1lbGluZVJ1bGVy
LmVsZW1lbnQpOwogCiAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9y
Lk92ZXJ2aWV3VGltZWxpbmVWaWV3LlN0eWxlQ2xhc3NOYW1lKTsKICAgICB0aGlzLmVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5fZGF0YUdyaWQuZWxlbWVudCk7CkBAIC02Niw2ICs2NiwxMSBAQCBX
ZWJJbnNwZWN0b3IuT3ZlcnZpZXdUaW1lbGluZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0
aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyLnN5bmNocm9uaXplKCk7CiAgICAg
fSwKIAorICAgIHVwZGF0ZUxheW91dDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5f
dGltZWxpbmVSdWxlci51cGRhdGVMYXlvdXQoKTsKKyAgICB9LAorCiAgICAgLy8gUHJpdmF0ZQog
CiAgICAgX2NoaWxkRnJhbWVXYXNBZGRlZDogZnVuY3Rpb24oZXZlbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UaW1lbGluZURlY29yYXRpb25zLmNz
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RpbWVsaW5lRGVjb3JhdGlv
bnMuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMWM0NjVjMDUyOGZjNmRjMGZm
M2Y1MGIyOTYyMjI2ZTk1ZjQwYzU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RpbWVsaW5l
RGVjb3JhdGlvbnMuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMTA2ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0udGltZWxpbmUtZGVjb3JhdGlvbnMgewotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAg
ICBwb2ludGVyLWV2ZW50czogbm9uZTsKLX0KLQotLnRpbWVsaW5lLWRlY29yYXRpb25zID4gLmhl
YWRlciB7Ci0gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYigyMDAsIDIwMCwgMjAwKTsKLQot
ICAgIGhlaWdodDogMjJweDsKLQotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLQotLnRpbWVs
aW5lLWRlY29yYXRpb25zID4gLmhlYWRlciA+IC5kaXZpZGVyIHsKLSAgICBwb3NpdGlvbjogYWJz
b2x1dGU7Ci0gICAgd2lkdGg6IDFweDsKLSAgICB0b3A6IDA7Ci0gICAgYm90dG9tOiAwOwotICAg
IGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgyMDAs
IDIwMCwgMjAwLCAxKSwgcmdiYSgyMDAsIDIwMCwgMjAwLCAwKSA4NSUpOwotfQotCi0udGltZWxp
bmUtZGVjb3JhdGlvbnMgPiAuaGVhZGVyID4gLmRpdmlkZXI6Zmlyc3QtY2hpbGQsCi0udGltZWxp
bmUtZGVjb3JhdGlvbnMgPiAuaGVhZGVyID4gLmRpdmlkZXI6bGFzdC1jaGlsZCB7Ci0gICAgYmFj
a2dyb3VuZC1pbWFnZTogbm9uZTsKLX0KLQotLnRpbWVsaW5lLWRlY29yYXRpb25zID4gLmhlYWRl
ciA+IC5kaXZpZGVyID4gLmxhYmVsIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9w
OiAzcHg7Ci0gICAgcmlnaHQ6IDRweDsKLSAgICBmb250LXNpemU6IDlweDsKLSAgICBmb250LWZh
bWlseTogIkx1Y2lkYSBHcmFuZGUiLCBzYW5zLXNlcmlmOwotICAgIGNvbG9yOiByZ2IoMTI4LCAx
MjgsIDEyOCk7Ci0gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKLX0KLQotLnRpbWVsaW5lLWRlY29y
YXRpb25zID4gLmhlYWRlciA+IC5kaXZpZGVyOmZpcnN0LWNoaWxkID4gLmxhYmVsIHsKLSAgICBk
aXNwbGF5OiBub25lOwotfQotCi0udGltZWxpbmUtZGVjb3JhdGlvbnMgPiAuZXZlbnQtbWFya2Vy
cyB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMjJweDsKLSAgICBsZWZ0OiAw
OwotICAgIHJpZ2h0OiAwOwotICAgIGJvdHRvbTogMDsKLX0KLQotLnRpbWVsaW5lLWRlY29yYXRp
b25zID4gLmV2ZW50LW1hcmtlcnMgPiAuZXZlbnQtbWFya2VyLXRvb2x0aXAgewotICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgYm90dG9tOiAwOwotCi0gICAgd2lkdGg6
IDlweDsKLQotICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwotfQotCi0udGltZWxpbmUtZGVjb3Jh
dGlvbnMgPiAuZXZlbnQtbWFya2VycyA+IC5ldmVudC1tYXJrZXIgewotICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgYm90dG9tOiAwOwotCi0gICAgbWFyZ2luLWxlZnQ6
IDRweDsKLQotICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7Ci0gICAgYm9yZGVyLWxlZnQtc3R5
bGU6IGRhc2hlZDsKLSAgICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgxMjgsIDEyOCwgMTI4LCAw
LjUpOwotfQotCi0udGltZWxpbmUtZGVjb3JhdGlvbnMgPiAuZXZlbnQtbWFya2VycyA+IC5ldmVu
dC1tYXJrZXIubG9hZC1ldmVudCB7Ci0gICAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMjU1LCAw
LCAwLCAwLjUpOwotfQotCi0udGltZWxpbmUtZGVjb3JhdGlvbnMgPiAuZXZlbnQtbWFya2VycyA+
IC5ldmVudC1tYXJrZXIuZG9tLWNvbnRlbnQtZXZlbnQgewotICAgIGJvcmRlci1sZWZ0LWNvbG9y
OiByZ2JhKDAsIDAsIDI1NSwgMC41KTsKLX0KLQotLnRpbWVsaW5lLWRlY29yYXRpb25zID4gLmV2
ZW50LW1hcmtlcnMgPiAuZXZlbnQtbWFya2VyLnRpbWVzdGFtcCB7Ci0gICAgYm9yZGVyLWxlZnQt
Y29sb3I6IHJnYmEoMCwgMTEwLCAwLCAwLjUpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGltZWxpbmVEZWNvcmF0aW9ucy5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RpbWVsaW5lRGVjb3JhdGlvbnMuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3N2MyMjA5MmI2ZDdiZjMwMjQ4MTIwMjkyZjllNWNj
YTlkODFjZDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGltZWxpbmVEZWNvcmF0aW9ucy5q
cworKysgL2Rldi9udWxsCkBAIC0xLDIyNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV2ViSW5zcGVj
dG9yLlRpbWVsaW5lRGVjb3JhdGlvbnMgPSBmdW5jdGlvbigpCi17Ci0gICAgV2ViSW5zcGVjdG9y
Lk9iamVjdC5jYWxsKHRoaXMpOwotCi0gICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NOYW1lID0gV2ViSW5zcGVj
dG9yLlRpbWVsaW5lRGVjb3JhdGlvbnMuU3R5bGVDbGFzc05hbWU7Ci0KLSAgICB0aGlzLl9oZWFk
ZXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdGhpcy5faGVh
ZGVyRWxlbWVudC5jbGFzc05hbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVEZWNvcmF0aW9ucy5I
ZWFkZXJFbGVtZW50U3R5bGVDbGFzc05hbWU7Ci0gICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGls
ZCh0aGlzLl9oZWFkZXJFbGVtZW50KTsKLQotICAgIHRoaXMuX21hcmtlcnNFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdGhpcy5fbWFya2Vyc0VsZW1lbnQuY2xh
c3NOYW1lID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lRGVjb3JhdGlvbnMuRXZlbnRNYXJrZXJzRWxl
bWVudFN0eWxlQ2xhc3NOYW1lOwotICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
bWFya2Vyc0VsZW1lbnQpOwotCi0gICAgdGhpcy5jbGVhcigpOwotfQotCi1XZWJJbnNwZWN0b3Iu
VGltZWxpbmVEZWNvcmF0aW9ucy5NaW5pbXVtRGl2aWRlclNwYWNpbmcgPSA2NDsKLQotV2ViSW5z
cGVjdG9yLlRpbWVsaW5lRGVjb3JhdGlvbnMuU3R5bGVDbGFzc05hbWUgPSAidGltZWxpbmUtZGVj
b3JhdGlvbnMiOwotV2ViSW5zcGVjdG9yLlRpbWVsaW5lRGVjb3JhdGlvbnMuSGVhZGVyRWxlbWVu
dFN0eWxlQ2xhc3NOYW1lID0gImhlYWRlciI7Ci1XZWJJbnNwZWN0b3IuVGltZWxpbmVEZWNvcmF0
aW9ucy5EaXZpZGVyRWxlbWVudFN0eWxlQ2xhc3NOYW1lID0gImRpdmlkZXIiOwotV2ViSW5zcGVj
dG9yLlRpbWVsaW5lRGVjb3JhdGlvbnMuRGl2aWRlckxhYmVsRWxlbWVudFN0eWxlQ2xhc3NOYW1l
ID0gImxhYmVsIjsKLQotV2ViSW5zcGVjdG9yLlRpbWVsaW5lRGVjb3JhdGlvbnMuRXZlbnRNYXJr
ZXJzRWxlbWVudFN0eWxlQ2xhc3NOYW1lID0gImV2ZW50LW1hcmtlcnMiOwotV2ViSW5zcGVjdG9y
LlRpbWVsaW5lRGVjb3JhdGlvbnMuRXZlbnRNYXJrZXJUb29sdGlwRWxlbWVudFN0eWxlQ2xhc3NO
YW1lID0gImV2ZW50LW1hcmtlci10b29sdGlwIjsKLVdlYkluc3BlY3Rvci5UaW1lbGluZURlY29y
YXRpb25zLkJhc2VFdmVudE1hcmtlckVsZW1lbnRTdHlsZUNsYXNzTmFtZSA9ICJldmVudC1tYXJr
ZXIiOwotCi1XZWJJbnNwZWN0b3IuVGltZWxpbmVEZWNvcmF0aW9ucy5wcm90b3R5cGUgPSB7Ci0g
ICAgY29uc3RydWN0b3I6IFdlYkluc3BlY3Rvci5UaW1lbGluZURlY29yYXRpb25zLAotCi0gICAg
Ly8gUHVibGljCi0KLSAgICBnZXQgZWxlbWVudCgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy5fZWxlbWVudDsKLSAgICB9LAotCi0gICAgZ2V0IGhlYWRlckVsZW1lbnQoKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlckVsZW1lbnQ7Ci0gICAgfSwKLQotICAgIGNsZWFyOiBm
dW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLl9ldmVudE1hcmtlcnMgPSBbXTsKLSAgICAg
ICAgdGhpcy5fbWFya2Vyc0VsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICB9LAotCi0gICAg
dXBkYXRlSGVhZGVyVGltZXM6IGZ1bmN0aW9uKHRpbWVTcGFuLCBsZWZ0UGFkZGluZywgcmlnaHRQ
YWRkaW5nLCBmb3JjZSkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5pc1Nob3dpbmdIZWFkZXJE
aXZpZGVycygpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChpc05hTih0aW1l
U3BhbikpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGVmdFBhZGRpbmcgPSBsZWZ0
UGFkZGluZyB8fCAwOwotICAgICAgICByaWdodFBhZGRpbmcgPSByaWdodFBhZGRpbmcgfHwgMDsK
LQotICAgICAgICB2YXIgY2xpZW50V2lkdGggPSB0aGlzLl9oZWFkZXJFbGVtZW50LmNsaWVudFdp
ZHRoOwotCi0gICAgICAgIHZhciBsZWZ0VmlzaWJsZUVkZ2UgPSBsZWZ0UGFkZGluZzsKLSAgICAg
ICAgdmFyIHJpZ2h0VmlzaWJsZUVkZ2UgPSBjbGllbnRXaWR0aCAtIHJpZ2h0UGFkZGluZzsKLSAg
ICAgICAgdmFyIHZpc2libGVXaWR0aCA9IHJpZ2h0VmlzaWJsZUVkZ2UgLSBsZWZ0VmlzaWJsZUVk
Z2U7Ci0gICAgICAgIGlmICh2aXNpYmxlV2lkdGggPD0gMCkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICB2YXIgcGl4ZWxzUGVyU2Vjb25kID0gY2xpZW50V2lkdGggLyB0aW1lU3BhbjsK
LQotICAgICAgICAvLyBDYWxjdWxhdGUgYSBkaXZpZGVyIGNvdW50IGJhc2VkIG9uIHRoZSBtYXhp
bXVtIGFsbG93ZWQgZGl2aWRlciBkZW5zaXR5LgotICAgICAgICB2YXIgZGl2aWRlckNvdW50ID0g
TWF0aC5yb3VuZCh2aXNpYmxlV2lkdGggLyBXZWJJbnNwZWN0b3IuVGltZWxpbmVEZWNvcmF0aW9u
cy5NaW5pbXVtRGl2aWRlclNwYWNpbmcpOwotCi0gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgc2xp
Y2UgdGltZSBiYXNlZCBvbiB0aGUgcm91Z2ggZGl2aWRlciBjb3VudCBhbmQgdGhlIHRpbWUgc3Bh
bi4KLSAgICAgICAgdmFyIHNsaWNlVGltZSA9IHRpbWVTcGFuIC8gZGl2aWRlckNvdW50OwotCi0g
ICAgICAgIC8vIFNuYXAgdGhlIHNsaWNlIHRpbWUgdG8gYSBuZWFyZXN0IG51bWJlciAoZS5nLiAw
LjEsIDAuMiwgMC41LCAxLCAyLCA1LCAxMCwgMjAsIDUwLCBldGMuKQotICAgICAgICBzbGljZVRp
bWUgPSBNYXRoLnBvdygxMCwgTWF0aC5jZWlsKE1hdGgubG9nKHNsaWNlVGltZSkgLyBNYXRoLkxO
MTApKTsKLSAgICAgICAgaWYgKHNsaWNlVGltZSAqIHBpeGVsc1BlclNlY29uZCA+PSA1ICogV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lRGVjb3JhdGlvbnMuTWluaW11bURpdmlkZXJTcGFjaW5nKQotICAg
ICAgICAgICAgc2xpY2VUaW1lID0gc2xpY2VUaW1lIC8gNTsKLSAgICAgICAgaWYgKHNsaWNlVGlt
ZSAqIHBpeGVsc1BlclNlY29uZCA+PSAyICogV2ViSW5zcGVjdG9yLlRpbWVsaW5lRGVjb3JhdGlv
bnMuTWluaW11bURpdmlkZXJTcGFjaW5nKQotICAgICAgICAgICAgc2xpY2VUaW1lID0gc2xpY2VU
aW1lIC8gMjsKLQotICAgICAgICBpZiAoIWZvcmNlICYmIHRoaXMuX2N1cnJlbnRTbGljZVRpbWUg
PT09IHNsaWNlVGltZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9jdXJy
ZW50U2xpY2VUaW1lID0gc2xpY2VUaW1lOwotCi0gICAgICAgIHZhciBmaXJzdERpdmlkZXJUaW1l
ID0gc2xpY2VUaW1lOwotICAgICAgICB2YXIgbGFzdERpdmlkZXJUaW1lID0gdGltZVNwYW47Ci0K
LSAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBkaXZpZGVyIGNvdW50IG5vdyBiYXNlZCBvbiB0aGUg
ZmluYWwgc2xpY2UgdGltZS4KLSAgICAgICAgZGl2aWRlckNvdW50ID0gTWF0aC5jZWlsKChsYXN0
RGl2aWRlclRpbWUgLSBmaXJzdERpdmlkZXJUaW1lKSAvIHNsaWNlVGltZSk7Ci0KLSAgICAgICAg
dmFyIGRpdmlkZXJFbGVtZW50ID0gdGhpcy5faGVhZGVyRWxlbWVudC5maXJzdENoaWxkOwotICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8PSBkaXZpZGVyQ291bnQ7ICsraSkgewotICAgICAgICAg
ICAgaWYgKCFkaXZpZGVyRWxlbWVudCkgewotICAgICAgICAgICAgICAgIGRpdmlkZXJFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgICAgICAgICAgZGl2aWRl
ckVsZW1lbnQuY2xhc3NOYW1lID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lRGVjb3JhdGlvbnMuRGl2
aWRlckVsZW1lbnRTdHlsZUNsYXNzTmFtZTsKLSAgICAgICAgICAgICAgICB0aGlzLl9oZWFkZXJF
bGVtZW50LmFwcGVuZENoaWxkKGRpdmlkZXJFbGVtZW50KTsKLQotICAgICAgICAgICAgICAgIHZh
ciBsYWJlbEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAg
ICAgICAgICBsYWJlbEVsZW1lbnQuY2xhc3NOYW1lID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lRGVj
b3JhdGlvbnMuRGl2aWRlckxhYmVsRWxlbWVudFN0eWxlQ2xhc3NOYW1lOwotICAgICAgICAgICAg
ICAgIGRpdmlkZXJFbGVtZW50Ll9sYWJlbEVsZW1lbnQgPSBsYWJlbEVsZW1lbnQ7Ci0gICAgICAg
ICAgICAgICAgZGl2aWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQobGFiZWxFbGVtZW50KTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIGxlZnQgPSB2aXNpYmxlV2lkdGggKiAoaSAvIGRp
dmlkZXJDb3VudCk7Ci0gICAgICAgICAgICB2YXIgdG90YWxMZWZ0ID0gbGVmdCArIGxlZnRWaXNp
YmxlRWRnZTsKLSAgICAgICAgICAgIHZhciBmcmFjdGlvbkxlZnQgPSB0b3RhbExlZnQgLyBjbGll
bnRXaWR0aDsKLSAgICAgICAgICAgIHZhciBwZXJjZW50TGVmdCA9IDEwMCAqIGZyYWN0aW9uTGVm
dDsKLSAgICAgICAgICAgIHZhciB0aW1lID0gZmlyc3REaXZpZGVyVGltZSArIChzbGljZVRpbWUg
KiBpKTsKLQotICAgICAgICAgICAgdmFyIGN1cnJlbnRQZXJjZW50TGVmdCA9IHBhcnNlRmxvYXQo
ZGl2aWRlckVsZW1lbnQuc3R5bGUubGVmdCk7Ci0gICAgICAgICAgICBpZiAoaXNOYU4oY3VycmVu
dFBlcmNlbnRMZWZ0KSB8fCBNYXRoLmFicyhjdXJyZW50UGVyY2VudExlZnQgLSBwZXJjZW50TGVm
dCkgPj0gMC4xKQotICAgICAgICAgICAgICAgIGRpdmlkZXJFbGVtZW50LnN0eWxlLmxlZnQgPSBw
ZXJjZW50TGVmdCArICIlIjsKLQotICAgICAgICAgICAgZGl2aWRlckVsZW1lbnQuX2xhYmVsRWxl
bWVudC50ZXh0Q29udGVudCA9IGlzTmFOKHRpbWUpID8gIiIgOiBOdW1iZXIuc2Vjb25kc1RvU3Ry
aW5nKHRpbWUpOwotICAgICAgICAgICAgZGl2aWRlckVsZW1lbnQgPSBkaXZpZGVyRWxlbWVudC5u
ZXh0U2libGluZzsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFJlbW92ZSBleHRyYSBkaXZpZGVy
cy4KLSAgICAgICAgd2hpbGUgKGRpdmlkZXJFbGVtZW50KSB7Ci0gICAgICAgICAgICB2YXIgbmV4
dERpdmlkZXJFbGVtZW50ID0gZGl2aWRlckVsZW1lbnQubmV4dFNpYmxpbmc7Ci0gICAgICAgICAg
ICB0aGlzLl9oZWFkZXJFbGVtZW50LnJlbW92ZUNoaWxkKGRpdmlkZXJFbGVtZW50KTsKLSAgICAg
ICAgICAgIGRpdmlkZXJFbGVtZW50ID0gbmV4dERpdmlkZXJFbGVtZW50OwotICAgICAgICB9Ci0g
ICAgfSwKLQotICAgIHVwZGF0ZUV2ZW50TWFya2VyczogZnVuY3Rpb24obWluaW11bUJvdW5kYXJ5
LCBtYXhpbXVtQm91bmRhcnkpCi0gICAgewotICAgICAgICB0aGlzLl9tYXJrZXJzRWxlbWVudC5y
ZW1vdmVDaGlsZHJlbigpOwotCi0gICAgICAgIGlmICghdGhpcy5fZXZlbnRNYXJrZXJzLmxlbmd0
aCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB2YXIgdGltZVNwYW4gPSBtYXhpbXVt
Qm91bmRhcnkgLSBtaW5pbXVtQm91bmRhcnk7Ci0gICAgICAgIGlmIChpc05hTih0aW1lU3Bhbikp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZnVuY3Rpb24gdG9vbFRpcEZvckV2ZW50
TWFya2VyKGV2ZW50TWFya2VyLCB0aW1lKQotICAgICAgICB7Ci0gICAgICAgICAgICBzd2l0Y2gg
KGV2ZW50TWFya2VyLnR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lRXZlbnRNYXJrZXIuVHlwZS5Mb2FkRXZlbnQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiTG9hZCBldmVudCBmaXJlZCBhdCAlcyIpLmZvcm1hdChOdW1i
ZXIuc2Vjb25kc1RvU3RyaW5nKHRpbWUpKTsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lRXZlbnRNYXJrZXIuVHlwZS5ET01Db250ZW50RXZlbnQ6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRE9NQ29udGVudCBldmVudCBmaXJlZCBh
dCAlcyIpLmZvcm1hdChOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRpbWUpKTsKLSAgICAgICAgICAg
IGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lRXZlbnRNYXJrZXIuVHlwZS5UaW1lU3RhbXA6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGltZXN0YW1wIG1h
cmtlciBhdCAlcyIpLmZvcm1hdChOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRpbWUpKTsKLSAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UpOwot
ICAgICAgICAgICAgICAgIHJldHVybiAiIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0g
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fZXZlbnRNYXJrZXJzLmxlbmd0aDsgKytp
KSB7Ci0gICAgICAgICAgICB2YXIgZXZlbnRNYXJrZXIgPSB0aGlzLl9ldmVudE1hcmtlcnNbaV07
Ci0gICAgICAgICAgICBpZiAoZXZlbnRNYXJrZXIudGltZXN0YW1wIDwgbWluaW11bUJvdW5kYXJ5
IHx8IGV2ZW50TWFya2VyLnRpbWVzdGFtcCA+IG1heGltdW1Cb3VuZGFyeSkKLSAgICAgICAgICAg
ICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgdmFyIHRpbWUgPSBldmVudE1hcmtlci50aW1l
c3RhbXAgLSBtaW5pbXVtQm91bmRhcnk7Ci0gICAgICAgICAgICB2YXIgcGVyY2VudExlZnQgPSAo
MTAwICogdGltZSkgLyB0aW1lU3BhbjsKLQotICAgICAgICAgICAgdmFyIHRvb2x0aXBFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgICAgICB0b29sdGlwRWxl
bWVudC5jbGFzc05hbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVEZWNvcmF0aW9ucy5FdmVudE1h
cmtlclRvb2x0aXBFbGVtZW50U3R5bGVDbGFzc05hbWU7Ci0gICAgICAgICAgICB0b29sdGlwRWxl
bWVudC50aXRsZSA9IHRvb2xUaXBGb3JFdmVudE1hcmtlcihldmVudE1hcmtlciwgdGltZSk7Ci0g
ICAgICAgICAgICB0b29sdGlwRWxlbWVudC5zdHlsZS5sZWZ0ID0gcGVyY2VudExlZnQgKyAiJSI7
Ci0KLSAgICAgICAgICAgIHZhciBtYXJrZXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7Ci0gICAgICAgICAgICBtYXJrZXJFbGVtZW50LmNsYXNzTmFtZSA9IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZURlY29yYXRpb25zLkJhc2VFdmVudE1hcmtlckVsZW1lbnRTdHlsZUNsYXNz
TmFtZTsKLSAgICAgICAgICAgIG1hcmtlckVsZW1lbnQuY2xhc3NMaXN0LmFkZChldmVudE1hcmtl
ci50eXBlKTsKLSAgICAgICAgICAgIG1hcmtlckVsZW1lbnQuc3R5bGUubGVmdCA9IHBlcmNlbnRM
ZWZ0ICsgIiUiOwotCi0gICAgICAgICAgICB0aGlzLl9tYXJrZXJzRWxlbWVudC5hcHBlbmRDaGls
ZChtYXJrZXJFbGVtZW50KTsKLSAgICAgICAgICAgIHRoaXMuX21hcmtlcnNFbGVtZW50LmFwcGVu
ZENoaWxkKHRvb2x0aXBFbGVtZW50KTsKLSAgICAgICAgfQotICAgIH0sCi0KLSAgICBpc1Nob3dp
bmdIZWFkZXJEaXZpZGVyczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuICF0aGlz
Ll9oZWFkZXJFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIik7Ci0gICAgfSwKLQot
ICAgIHNob3dIZWFkZXJEaXZpZGVyczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5f
aGVhZGVyRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTsKLSAgICB9LAotCi0gICAg
aGlkZUhlYWRlckRpdmlkZXJzOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLl9oZWFk
ZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpOwotICAgIH0sCi0KLSAgICBhZGRUaW1l
bGluZUV2ZW50TWFya2VyOiBmdW5jdGlvbihldmVudE1hcmtlcikKLSAgICB7Ci0gICAgICAgIHRo
aXMuX2V2ZW50TWFya2Vycy5wdXNoKGV2ZW50TWFya2VyKTsKLSAgICB9LAotfQotCi1XZWJJbnNw
ZWN0b3IuVGltZWxpbmVEZWNvcmF0aW9ucy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG9yLk9iamVjdC5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9UaW1lbGluZVJ1bGVyLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1RpbWVsaW5lUnVsZXIuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmYzIwODQ2NDE2NWNj
YTJiYTdjYzMwMTNkMDZkZTQ0NThhN2JkYTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UaW1lbGluZVJ1bGVyLmNzcwpAQCAtMCwwICsxLDk4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworLnRpbWVsaW5lLXJ1bGVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRp
dmU7CisgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cit9CisKKy50aW1lbGluZS1ydWxlciA+IC5o
ZWFkZXIgeworICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2IoMjAwLCAyMDAsIDIwMCk7
CisKKyAgICBoZWlnaHQ6IDIycHg7CisKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cit9CisKKy50
aW1lbGluZS1ydWxlciA+IC5oZWFkZXIgPiAuZGl2aWRlciB7CisgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgIHdpZHRoOiAxcHg7CisgICAgdG9wOiAwOworICAgIGJvdHRvbTogMDsKKyAgICAt
d2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXB4KTsKKyAgICBiYWNrZ3JvdW5kLWltYWdl
OiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMjAwLCAyMDAsIDIwMCwgMSksIHJn
YmEoMjAwLCAyMDAsIDIwMCwgMCkgODUlKTsKK30KKworLnRpbWVsaW5lLXJ1bGVyID4gLmhlYWRl
ciA+IC5kaXZpZGVyID4gLmxhYmVsIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9w
OiAzcHg7CisgICAgcmlnaHQ6IDRweDsKKyAgICBmb250LXNpemU6IDlweDsKKyAgICBmb250LWZh
bWlseTogIkx1Y2lkYSBHcmFuZGUiLCBzYW5zLXNlcmlmOworICAgIGNvbG9yOiByZ2IoMTI4LCAx
MjgsIDEyOCk7CisgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKK30KKworLnRpbWVsaW5lLXJ1bGVy
ID4gLmV2ZW50LW1hcmtlcnMgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDIy
cHg7CisgICAgbGVmdDogMDsKKyAgICByaWdodDogMDsKKyAgICBib3R0b206IDA7Cit9CisKKy50
aW1lbGluZS1ydWxlciA+IC5ldmVudC1tYXJrZXJzID4gLmV2ZW50LW1hcmtlci10b29sdGlwIHsK
KyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGJvdHRvbTogMDsKKwor
ICAgIHdpZHRoOiA5cHg7CisKKyAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKK30KKworLnRpbWVs
aW5lLXJ1bGVyID4gLmV2ZW50LW1hcmtlcnMgPiAuZXZlbnQtbWFya2VyIHsKKyAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGJvdHRvbTogMDsKKworICAgIG1hcmdpbi1s
ZWZ0OiA0cHg7CisKKyAgICBib3JkZXItbGVmdC13aWR0aDogMXB4OworICAgIGJvcmRlci1sZWZ0
LXN0eWxlOiBkYXNoZWQ7CisgICAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMTI4LCAxMjgsIDEy
OCwgMC41KTsKK30KKworLnRpbWVsaW5lLXJ1bGVyID4gLmV2ZW50LW1hcmtlcnMgPiAuZXZlbnQt
bWFya2VyLmxvYWQtZXZlbnQgeworICAgIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDI1NSwgMCwg
MCwgMC41KTsKK30KKworLnRpbWVsaW5lLXJ1bGVyID4gLmV2ZW50LW1hcmtlcnMgPiAuZXZlbnQt
bWFya2VyLmRvbS1jb250ZW50LWV2ZW50IHsKKyAgICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgw
LCAwLCAyNTUsIDAuNSk7Cit9CisKKy50aW1lbGluZS1ydWxlciA+IC5ldmVudC1tYXJrZXJzID4g
LmV2ZW50LW1hcmtlci50aW1lc3RhbXAgeworICAgIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDAs
IDExMCwgMCwgMC41KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1RpbWVsaW5lUnVsZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9UaW1lbGluZVJ1bGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzZDMxNzQwOGRiNDM4ZTY1NDYx
N2RkMGRkZGQ0OWY1MGYwY2ZhNDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9UaW1lbGluZVJ1bGVyLmpzCkBAIC0wLDAgKzEsMzE3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIgPSBmdW5jdGlvbigpCit7Cisg
ICAgV2ViSW5zcGVjdG9yLk9iamVjdC5jYWxsKHRoaXMpOworCisgICAgdGhpcy5fZWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NO
YW1lID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIuU3R5bGVDbGFzc05hbWU7CisKKyAgICB0
aGlzLl9oZWFkZXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAg
dGhpcy5faGVhZGVyRWxlbWVudC5jbGFzc05hbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxl
ci5IZWFkZXJFbGVtZW50U3R5bGVDbGFzc05hbWU7CisgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRD
aGlsZCh0aGlzLl9oZWFkZXJFbGVtZW50KTsKKworICAgIHRoaXMuX21hcmtlcnNFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5fbWFya2Vyc0VsZW1lbnQu
Y2xhc3NOYW1lID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIuRXZlbnRNYXJrZXJzRWxlbWVu
dFN0eWxlQ2xhc3NOYW1lOworICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fbWFy
a2Vyc0VsZW1lbnQpOworCisgICAgdGhpcy5femVyb1RpbWUgPSAwOworICAgIHRoaXMuX3N0YXJ0
VGltZSA9IDA7CisgICAgdGhpcy5fZW5kVGltZSA9IDA7CisgICAgdGhpcy5fZHVyYXRpb24gPSBO
YU47CisgICAgdGhpcy5fc2Vjb25kc1BlclBpeGVsID0gMDsKKyAgICB0aGlzLl9hbGxvd3NDbGlw
cGVkTGFiZWxzID0gZmFsc2U7Cit9CisKK1dlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLk1pbmlt
dW1MZWZ0RGl2aWRlclNwYWNpbmcgPSA0ODsKK1dlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLk1p
bmltdW1EaXZpZGVyU3BhY2luZyA9IDY0OworCitXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5T
dHlsZUNsYXNzTmFtZSA9ICJ0aW1lbGluZS1ydWxlciI7CitXZWJJbnNwZWN0b3IuVGltZWxpbmVS
dWxlci5IZWFkZXJFbGVtZW50U3R5bGVDbGFzc05hbWUgPSAiaGVhZGVyIjsKK1dlYkluc3BlY3Rv
ci5UaW1lbGluZVJ1bGVyLkRpdmlkZXJFbGVtZW50U3R5bGVDbGFzc05hbWUgPSAiZGl2aWRlciI7
CitXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5EaXZpZGVyTGFiZWxFbGVtZW50U3R5bGVDbGFz
c05hbWUgPSAibGFiZWwiOworCitXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5FdmVudE1hcmtl
cnNFbGVtZW50U3R5bGVDbGFzc05hbWUgPSAiZXZlbnQtbWFya2VycyI7CitXZWJJbnNwZWN0b3Iu
VGltZWxpbmVSdWxlci5FdmVudE1hcmtlclRvb2x0aXBFbGVtZW50U3R5bGVDbGFzc05hbWUgPSAi
ZXZlbnQtbWFya2VyLXRvb2x0aXAiOworV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIuQmFzZUV2
ZW50TWFya2VyRWxlbWVudFN0eWxlQ2xhc3NOYW1lID0gImV2ZW50LW1hcmtlciI7CisKK1dlYklu
c3BlY3Rvci5UaW1lbGluZVJ1bGVyLnByb3RvdHlwZSA9IHsKKyAgICBjb25zdHJ1Y3RvcjogV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIsCisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBlbGVt
ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50OworICAgIH0sCisKKyAg
ICBnZXQgaGVhZGVyRWxlbWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVy
RWxlbWVudDsKKyAgICB9LAorCisgICAgZ2V0IGFsbG93c0NsaXBwZWRMYWJlbHMoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuX2FsbG93c0NsaXBwZWRMYWJlbHMKKyAgICB9LAorCisgICAg
c2V0IGFsbG93c0NsaXBwZWRMYWJlbHMoeCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9hbGxv
d3NDbGlwcGVkTGFiZWxzID09PSB4KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRo
aXMuX2FsbG93c0NsaXBwZWRMYWJlbHMgPSB4IHx8IGZhbHNlOworCisgICAgICAgIHRoaXMuX25l
ZWRzTGF5b3V0KCk7CisgICAgfSwKKworICAgIGdldCB6ZXJvVGltZSgpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5femVyb1RpbWU7CisgICAgfSwKKworICAgIHNldCB6ZXJvVGltZSh4KQor
ICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3plcm9UaW1lID09PSB4KQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIHRoaXMuX3plcm9UaW1lID0geCB8fCAwOworCisgICAgICAgIHRoaXMu
X25lZWRzTGF5b3V0KCk7CisgICAgfSwKKworICAgIGdldCBzdGFydFRpbWUoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX3N0YXJ0VGltZTsKKyAgICB9LAorCisgICAgc2V0IHN0YXJ0VGlt
ZSh4KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3N0YXJ0VGltZSA9PT0geCkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9zdGFydFRpbWUgPSB4IHx8IDA7CisKKyAgICAg
ICAgaWYgKCFpc05hTih0aGlzLl9kdXJhdGlvbikpCisgICAgICAgICAgICB0aGlzLl9lbmRUaW1l
ID0gdGhpcy5fc3RhcnRUaW1lICsgdGhpcy5fZHVyYXRpb247CisKKyAgICAgICAgdGhpcy5fbmVl
ZHNMYXlvdXQoKTsKKyAgICB9LAorCisgICAgZ2V0IGR1cmF0aW9uKCkKKyAgICB7CisgICAgICAg
IGlmICghaXNOYU4odGhpcy5fZHVyYXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2R1
cmF0aW9uOworICAgICAgICByZXR1cm4gdGhpcy5fZW5kVGltZSAtIHRoaXMuX3N0YXJ0VGltZTsK
KyAgICB9LAorCisgICAgc2V0IGR1cmF0aW9uKHgpCisgICAgeworICAgICAgICBpZiAodGhpcy5f
ZHVyYXRpb24gPT09IHgpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fZHVy
YXRpb24gPSB4IHx8IE5hTjsKKworICAgICAgICBpZiAoIWlzTmFOKHRoaXMuX2R1cmF0aW9uKSkg
eworICAgICAgICAgICAgdGhpcy5fZW5kVGltZSA9IHRoaXMuX3N0YXJ0VGltZSArIHRoaXMuX2R1
cmF0aW9uOworICAgICAgICAgICAgdGhpcy5fZW5kVGltZVBpbm5lZCA9IHRydWU7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgdGhpcy5fZW5kVGltZVBpbm5lZCA9IGZhbHNlOworCisgICAg
ICAgIHRoaXMuX25lZWRzTGF5b3V0KCk7CisgICAgfSwKKworICAgIGdldCBlbmRUaW1lKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLl9lbmRUaW1lOworICAgIH0sCisKKyAgICBzZXQgZW5k
VGltZSh4KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2VuZFRpbWUgPT09IHgpCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fZW5kVGltZSA9IHggfHwgMDsKKyAgICAgICAg
dGhpcy5fZW5kVGltZVBpbm5lZCA9IHRydWU7CisKKyAgICAgICAgdGhpcy5fbmVlZHNMYXlvdXQo
KTsKKyAgICB9LAorCisgICAgZ2V0IHNlY29uZHNQZXJQaXhlbCgpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5fc2Vjb25kc1BlclBpeGVsOworICAgIH0sCisKKyAgICBzZXQgc2Vjb25kc1Bl
clBpeGVsKHgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fc2Vjb25kc1BlclBpeGVsID09PSB4
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX3NlY29uZHNQZXJQaXhlbCA9
IHggfHwgMDsKKyAgICAgICAgdGhpcy5fZW5kVGltZVBpbm5lZCA9IGZhbHNlOworICAgICAgICB0
aGlzLl9jdXJyZW50U2xpY2VUaW1lID0gMDsKKworICAgICAgICB0aGlzLl9uZWVkc0xheW91dCgp
OworICAgIH0sCisKKyAgICB1cGRhdGVMYXlvdXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IGlmICh0aGlzLl9zY2hlZHVsZWRMYXlvdXRVcGRhdGVJZGVudGlmaWVyKSB7CisgICAgICAgICAg
ICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9zY2hlZHVsZWRMYXlvdXRVcGRhdGVJZGVudGlm
aWVyKTsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9zY2hlZHVsZWRMYXlvdXRVcGRhdGVJZGVu
dGlmaWVyOworICAgICAgICB9CisKKyAgICAgICAgdmFyIHZpc2libGVXaWR0aCA9IHRoaXMuX3Jl
Y2FsY3VsYXRlKCk7CisgICAgICAgIGlmICh2aXNpYmxlV2lkdGggPD0gMCkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICB2YXIgZHVyYXRpb24gPSB0aGlzLmR1cmF0aW9uOworCisgICAg
ICAgIHZhciBwaXhlbHNQZXJTZWNvbmQgPSB2aXNpYmxlV2lkdGggLyBkdXJhdGlvbjsKKworICAg
ICAgICAvLyBDYWxjdWxhdGUgYSBkaXZpZGVyIGNvdW50IGJhc2VkIG9uIHRoZSBtYXhpbXVtIGFs
bG93ZWQgZGl2aWRlciBkZW5zaXR5LgorICAgICAgICB2YXIgZGl2aWRlckNvdW50ID0gTWF0aC5y
b3VuZCh2aXNpYmxlV2lkdGggLyBXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5NaW5pbXVtRGl2
aWRlclNwYWNpbmcpOworCisgICAgICAgIGlmICh0aGlzLl9lbmRUaW1lUGlubmVkIHx8ICF0aGlz
Ll9jdXJyZW50U2xpY2VUaW1lKSB7CisgICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHNsaWNl
IHRpbWUgYmFzZWQgb24gdGhlIHJvdWdoIGRpdmlkZXIgY291bnQgYW5kIHRoZSB0aW1lIHNwYW4u
CisgICAgICAgICAgICB2YXIgc2xpY2VUaW1lID0gZHVyYXRpb24gLyBkaXZpZGVyQ291bnQ7CisK
KyAgICAgICAgICAgIC8vIFNuYXAgdGhlIHNsaWNlIHRpbWUgdG8gYSBuZWFyZXN0IG51bWJlciAo
ZS5nLiAwLjEsIDAuMiwgMC41LCAxLCAyLCA1LCAxMCwgMjAsIDUwLCBldGMuKQorICAgICAgICAg
ICAgc2xpY2VUaW1lID0gTWF0aC5wb3coMTAsIE1hdGguY2VpbChNYXRoLmxvZyhzbGljZVRpbWUp
IC8gTWF0aC5MTjEwKSk7CisgICAgICAgICAgICBpZiAoc2xpY2VUaW1lICogcGl4ZWxzUGVyU2Vj
b25kID49IDUgKiBXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5NaW5pbXVtRGl2aWRlclNwYWNp
bmcpCisgICAgICAgICAgICAgICAgc2xpY2VUaW1lID0gc2xpY2VUaW1lIC8gNTsKKyAgICAgICAg
ICAgIGlmIChzbGljZVRpbWUgKiBwaXhlbHNQZXJTZWNvbmQgPj0gMiAqIFdlYkluc3BlY3Rvci5U
aW1lbGluZVJ1bGVyLk1pbmltdW1EaXZpZGVyU3BhY2luZykKKyAgICAgICAgICAgICAgICBzbGlj
ZVRpbWUgPSBzbGljZVRpbWUgLyAyOworCisgICAgICAgICAgICB0aGlzLl9jdXJyZW50U2xpY2VU
aW1lID0gc2xpY2VUaW1lOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gUmV1c2Ug
dGhlIGxhc3Qgc2xpY2UgdGltZSBzaW5jZSB0aGUgdGltZSBkdXJhdGlvbiBkb2VzIG5vdCBzY2Fs
ZSB0byBmaXQgd2hlbiB0aGUgZW5kIHRpbWUgaXNuJ3QgcGlubmVkLgorICAgICAgICAgICAgdmFy
IHNsaWNlVGltZSA9IHRoaXMuX2N1cnJlbnRTbGljZVRpbWU7CisgICAgICAgIH0KKworICAgICAg
ICB2YXIgZmlyc3REaXZpZGVyVGltZSA9IChNYXRoLmNlaWwoKHRoaXMuX3N0YXJ0VGltZSAtIHRo
aXMuX3plcm9UaW1lKSAvIHNsaWNlVGltZSkgKiBzbGljZVRpbWUpICsgdGhpcy5femVyb1RpbWU7
CisgICAgICAgIHZhciBsYXN0RGl2aWRlclRpbWUgPSB0aGlzLl9lbmRUaW1lOworCisgICAgICAg
IC8vIENhbGN1bGF0ZSB0aGUgZGl2aWRlciBjb3VudCBub3cgYmFzZWQgb24gdGhlIGZpbmFsIHNs
aWNlIHRpbWUuCisgICAgICAgIGRpdmlkZXJDb3VudCA9IE1hdGguY2VpbCgobGFzdERpdmlkZXJU
aW1lIC0gZmlyc3REaXZpZGVyVGltZSkgLyBzbGljZVRpbWUpOworCisgICAgICAgIC8vIE1ha2Ug
YW4gZXh0cmEgZGl2aWRlciBpbiBjYXNlIHRoZSBsYXN0IG9uZSBpcyBwYXJ0aWFsbHkgdmlzaWJs
ZS4KKyAgICAgICAgaWYgKCF0aGlzLl9lbmRUaW1lUGlubmVkKQorICAgICAgICAgICAgKytkaXZp
ZGVyQ291bnQ7CisKKyAgICAgICAgdmFyIGRpdmlkZXJFbGVtZW50ID0gdGhpcy5faGVhZGVyRWxl
bWVudC5maXJzdENoaWxkOworCisgICAgICAgIGZ1bmN0aW9uIHJlbW92ZURpdmlkZXJBbmRTZWxl
Y3ROZXh0KCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIG5leHREaXZpZGVyRWxlbWVudCA9
IGRpdmlkZXJFbGVtZW50Lm5leHRTaWJsaW5nOworICAgICAgICAgICAgZGl2aWRlckVsZW1lbnQu
cmVtb3ZlKCk7CisgICAgICAgICAgICBkaXZpZGVyRWxlbWVudCA9IG5leHREaXZpZGVyRWxlbWVu
dDsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDw9IGRpdmlkZXJDb3Vu
dDsgKytpKSB7CisgICAgICAgICAgICBpZiAoIWRpdmlkZXJFbGVtZW50KSB7CisgICAgICAgICAg
ICAgICAgZGl2aWRlckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAg
ICAgICAgICAgICAgICBkaXZpZGVyRWxlbWVudC5jbGFzc05hbWUgPSBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVSdWxlci5EaXZpZGVyRWxlbWVudFN0eWxlQ2xhc3NOYW1lOworICAgICAgICAgICAgICAg
IHRoaXMuX2hlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZGl2aWRlckVsZW1lbnQpOworCisgICAg
ICAgICAgICAgICAgdmFyIGxhYmVsRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOworICAgICAgICAgICAgICAgIGxhYmVsRWxlbWVudC5jbGFzc05hbWUgPSBXZWJJbnNwZWN0
b3IuVGltZWxpbmVSdWxlci5EaXZpZGVyTGFiZWxFbGVtZW50U3R5bGVDbGFzc05hbWU7CisgICAg
ICAgICAgICAgICAgZGl2aWRlckVsZW1lbnQuX2xhYmVsRWxlbWVudCA9IGxhYmVsRWxlbWVudDsK
KyAgICAgICAgICAgICAgICBkaXZpZGVyRWxlbWVudC5hcHBlbmRDaGlsZChsYWJlbEVsZW1lbnQp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgZGl2aWRlclRpbWUgPSBmaXJzdERp
dmlkZXJUaW1lICsgKHNsaWNlVGltZSAqIGkpOworCisgICAgICAgICAgICB2YXIgbmV3TGVmdFBv
c2l0aW9uID0gKChkaXZpZGVyVGltZSAtIHRoaXMuX3N0YXJ0VGltZSkgLyBkdXJhdGlvbik7CisK
KyAgICAgICAgICAgIGlmICghdGhpcy5fYWxsb3dzQ2xpcHBlZExhYmVscykgeworICAgICAgICAg
ICAgICAgIC8vIERvbid0IGFsbG93IGRpdmlkZXJzIHVuZGVyIDAlIHdoZXJlIHRoZXkgd2lsbCBi
ZSBjb21wbGV0ZWx5IGhpZGRlbi4KKyAgICAgICAgICAgICAgICBpZiAobmV3TGVmdFBvc2l0aW9u
IDwgMCkgeworICAgICAgICAgICAgICAgICAgICByZW1vdmVEaXZpZGVyQW5kU2VsZWN0TmV4dCgp
OworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICAvLyBXaGVuIG92ZXIgMTAwJSBpdCBpcyB0aW1lIHRvIHN0b3AgbWFraW5n
L3VwZGF0aW5nIGRpdmlkZXJzLgorICAgICAgICAgICAgICAgIGlmIChuZXdMZWZ0UG9zaXRpb24g
PiAxKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIC8vIERv
bid0IGFsbG93IHRoZSBsZWZ0LW1vc3QgZGl2aWRlciBzcGFjaW5nIHRvIGJlIHNvIHRpZ2h0IGl0
IGNsaXBzLgorICAgICAgICAgICAgICAgIGlmICgobmV3TGVmdFBvc2l0aW9uICogdmlzaWJsZVdp
ZHRoKSA8IFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLk1pbmltdW1MZWZ0RGl2aWRlclNwYWNp
bmcpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVtb3ZlRGl2aWRlckFuZFNlbGVjdE5leHQoKTsK
KyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBpZiAodGhpcy5fZW5kVGltZVBpbm5lZCkKKyAgICAgICAg
ICAgICAgICBuZXdMZWZ0UG9zaXRpb24gKj0gMTAwOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIG5ld0xlZnRQb3NpdGlvbiAqPSB2aXNpYmxlV2lkdGg7CisKKyAgICAgICAgICAg
IG5ld0xlZnRQb3NpdGlvbiA9IG5ld0xlZnRQb3NpdGlvbi50b0ZpeGVkKDIpOworCisgICAgICAg
ICAgICB2YXIgY3VycmVudExlZnRQb3NpdGlvbiA9IHBhcnNlRmxvYXQoZGl2aWRlckVsZW1lbnQu
c3R5bGUubGVmdCkudG9GaXhlZCgyKTsKKyAgICAgICAgICAgIGlmIChjdXJyZW50TGVmdFBvc2l0
aW9uICE9PSBuZXdMZWZ0UG9zaXRpb24pCisgICAgICAgICAgICAgICAgZGl2aWRlckVsZW1lbnQu
c3R5bGUubGVmdCA9IG5ld0xlZnRQb3NpdGlvbiArICh0aGlzLl9lbmRUaW1lUGlubmVkID8gIiUi
IDogInB4Iik7CisKKyAgICAgICAgICAgIGRpdmlkZXJFbGVtZW50Ll9sYWJlbEVsZW1lbnQudGV4
dENvbnRlbnQgPSBpc05hTihkaXZpZGVyVGltZSkgPyAiIiA6IE51bWJlci5zZWNvbmRzVG9TdHJp
bmcoZGl2aWRlclRpbWUsIHRydWUpOworICAgICAgICAgICAgZGl2aWRlckVsZW1lbnQgPSBkaXZp
ZGVyRWxlbWVudC5uZXh0U2libGluZzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFJlbW92ZSBl
eHRyYSBkaXZpZGVycy4KKyAgICAgICAgd2hpbGUgKGRpdmlkZXJFbGVtZW50KQorICAgICAgICAg
ICAgcmVtb3ZlRGl2aWRlckFuZFNlbGVjdE5leHQoKTsKKyAgICB9LAorCisgICAgLy8gUHJpdmF0
ZQorCisgICAgX25lZWRzTGF5b3V0OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhp
cy5fc2NoZWR1bGVkTGF5b3V0VXBkYXRlSWRlbnRpZmllcikKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgdGhpcy5fc2NoZWR1bGVkTGF5b3V0VXBkYXRlSWRlbnRpZmllciA9IHJlcXVlc3RB
bmltYXRpb25GcmFtZSh0aGlzLnVwZGF0ZUxheW91dC5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisg
ICAgX3JlY2FsY3VsYXRlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgdmlzaWJsZVdp
ZHRoID0gdGhpcy5faGVhZGVyRWxlbWVudC5jbGllbnRXaWR0aDsKKyAgICAgICAgaWYgKHZpc2li
bGVXaWR0aCA8PSAwKQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgaWYgKHRoaXMu
X2VuZFRpbWVQaW5uZWQpCisgICAgICAgICAgICB2YXIgZHVyYXRpb24gPSB0aGlzLl9lbmRUaW1l
IC0gdGhpcy5fc3RhcnRUaW1lOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2YXIgZHVyYXRp
b24gPSB2aXNpYmxlV2lkdGggKiB0aGlzLl9zZWNvbmRzUGVyUGl4ZWw7CisKKyAgICAgICAgdGhp
cy5fc2Vjb25kc1BlclBpeGVsID0gZHVyYXRpb24gLyB2aXNpYmxlV2lkdGg7CisKKyAgICAgICAg
aWYgKCF0aGlzLl9lbmRUaW1lUGlubmVkKQorICAgICAgICAgICAgdGhpcy5fZW5kVGltZSA9IHRo
aXMuX3N0YXJ0VGltZSArICh2aXNpYmxlV2lkdGggKiB0aGlzLl9zZWNvbmRzUGVyUGl4ZWwpOwor
CisgICAgICAgIHJldHVybiB2aXNpYmxlV2lkdGg7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3Iu
VGltZWxpbmVSdWxlci5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5w
cm90b3R5cGU7Cg==
</data>
<flag name="review"
          id="242792"
          type_id="1"
          status="+"
          setter="joepeck"
    />
    <flag name="commit-queue"
          id="242793"
          type_id="3"
          status="-"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>