<?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>126035</bug_id>
          
          <creation_ts>2013-12-19 17:15:39 -0800</creation_ts>
          <short_desc>Web Inspector: implement time range selection for TimelineOverview and TimelineRuler</short_desc>
          <delta_ts>2014-01-20 19:03:05 -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>961650</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-12-19 17:15:39 -0800</bug_when>
    <thetext>We need to add time range selection for the ruler and overview.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961651</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-12-19 17:16:05 -0800</bug_when>
    <thetext>&lt;rdar://problem/15704981&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961654</commentid>
    <comment_count>2</comment_count>
      <attachid>219709</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-12-19 17:24:02 -0800</bug_when>
    <thetext>Created attachment 219709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961669</commentid>
    <comment_count>3</comment_count>
      <attachid>219709</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-12-19 18:28:19 -0800</bug_when>
    <thetext>Comment on attachment 219709
Patch

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

Nice and clean! r=me

&gt; Source/WebInspectorUI/UserInterface/TimelineRuler.js:71
&gt; +WebInspector.TimelineRuler.MinimumSelectionTimeRange = 0.1;

I think this is a bit too wide a margin right now. Snapping to 100ms boundaries would be rough if you only want to see what happened during a couple frames (~30ms duration). We should relax this a bit.

&gt; Source/WebInspectorUI/UserInterface/TimelineRuler.js:104
&gt; +        return this._allowsTimeRangeSelection

Style: Missing semicolon.

&gt; Source/WebInspectorUI/UserInterface/TimelineRuler.js:139
&gt; +            this._needsLayout();

Why needsLayout and not needsSelectionLayout?

&gt; Source/WebInspectorUI/UserInterface/TimelineRuler.js:547
&gt; +        if (!this._selectionDragElement.parentNode)
&gt; +            this._element.appendChild(this._selectionDragElement);
&gt; +
&gt; +        if (!this._leftShadedAreaElement.parentNode)
&gt; +            this._element.appendChild(this._leftShadedAreaElement);
&gt; +
&gt; +        if (!this._leftSelectionHandleElement.parentNode)
&gt; +            this._element.appendChild(this._leftSelectionHandleElement);
&gt; +
&gt; +        if (!this._rightShadedAreaElement.parentNode)
&gt; +            this._element.appendChild(this._rightShadedAreaElement);
&gt; +
&gt; +        if (!this._rightSelectionHandleElement.parentNode)
&gt; +            this._element.appendChild(this._rightSelectionHandleElement);

You only add/remove them as a group. I would just test for parentNode on one, and append all at once.

&gt; Source/WebInspectorUI/UserInterface/TimelineRuler.js:572
&gt; +        // Only handle left mouse clicks.
&gt; +        if (event.button !== 0)
&gt; +            return;

Should we also handle ⌃+Click on OS X translating as a right click. We have a lot of existing code that does:

    if (event.button !== 0 || event.ctrlKey)
        return;

&gt; Source/WebInspectorUI/UserInterface/TimelineRuler.js:657
&gt; +        // Only handle left mouse clicks.
&gt; +        if (event.button !== 0)
&gt; +            return;

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970124</commentid>
    <comment_count>4</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-01-20 19:03:05 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/162410</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219709</attachid>
            <date>2013-12-19 17:24:02 -0800</date>
            <delta_ts>2013-12-19 18:28:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126035-20131219172401.patch</filename>
            <type>text/plain</type>
            <size>27827</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3ODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBj
ZDIzYjE5NGEzYTcyZDhiZjU4ZmFlNGJmMzViZDNhNDg2YjI4ODg1Li4xYWZjMDE4OWI5NzI3M2Y1
YmNhYTliYTM3ZmE4NTYxOGMxMmVkNTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAxMy0xMi0xOSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IHRpbWUgcmFuZ2Ugc2VsZWN0aW9uIGZvciBUaW1lbGlu
ZU92ZXJ2aWV3IGFuZCBUaW1lbGluZVJ1bGVyLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYwMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGltZWxpbmVDb250ZW50Vmll
dy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZUNvbnRlbnRWaWV3LnByb3RvdHlw
ZS5fdXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZUNvbnRlbnRWaWV3LnBy
b3RvdHlwZS5fcmVjb3JkaW5nUmVzZXQpOgorICAgICAgICBQcm9wZXJseSB1cGRhdGUgc3RhcnQg
dGltZSBhbmQgdGhlIHNlbGVjdGlvbiBzdGFydCB0aW1lIG9uIHJlc2V0LgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9UaW1lbGluZU92ZXJ2aWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lT3ZlcnZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZp
ZXcucHJvdG90eXBlLmdldCBzZWxlY3Rpb25TdGFydFRpbWUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRpbWVsaW5lT3ZlcnZpZXcucHJvdG90eXBlLnNldCBzZWxlY3Rpb25TdGFydFRpbWUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcucHJvdG90eXBlLmdldCBzZWxl
Y3Rpb25EdXJhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldy5w
cm90b3R5cGUuc2V0IHNlbGVjdGlvbkR1cmF0aW9uKToKKyAgICAgICAgQWRkZWQgc2VsZWN0aW9u
IGdldHRlcnMgYW5kIHNldHRlcnMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1RpbWVsaW5l
UnVsZXIuY3NzOgorICAgICAgICAoLnRpbWVsaW5lLXJ1bGVyLmFsbG93cy10aW1lLXJhbmdlLXNl
bGVjdGlvbik6CisgICAgICAgICgudGltZWxpbmUtcnVsZXIgPiAqKToKKyAgICAgICAgKC50aW1l
bGluZS1ydWxlciA+IC5oZWFkZXIpOgorICAgICAgICAoLnRpbWVsaW5lLXJ1bGVyID4gLnNlbGVj
dGlvbi1kcmFnKToKKyAgICAgICAgKC50aW1lbGluZS1ydWxlciA+IC5zZWxlY3Rpb24tZHJhZzph
Y3RpdmUpOgorICAgICAgICAoLnRpbWVsaW5lLXJ1bGVyID4gLnNlbGVjdGlvbi1oYW5kbGUpOgor
ICAgICAgICAoLnRpbWVsaW5lLXJ1bGVyID4gLnNlbGVjdGlvbi1oYW5kbGUubGVmdCk6CisgICAg
ICAgICgudGltZWxpbmUtcnVsZXIgPiAuc2VsZWN0aW9uLWhhbmRsZS5yaWdodCk6CisgICAgICAg
ICgudGltZWxpbmUtcnVsZXIgPiAuc2hhZGVkLWFyZWEpOgorICAgICAgICAoLnRpbWVsaW5lLXJ1
bGVyID4gLnNoYWRlZC1hcmVhLmxlZnQpOgorICAgICAgICAoLnRpbWVsaW5lLXJ1bGVyID4gLnNo
YWRlZC1hcmVhLnJpZ2h0KToKKyAgICAgICAgQWRkZWQgc3R5bGVzIGZvciB0aGUgc2VsZWN0aW9u
IGVsZW1lbnRzIGFuZCB0d2Vha2VkIHBvaW50ZXItZXZlbnRzIHRvIGFsbG93CisgICAgICAgIGV2
ZW50cyBvbiBlbGVtZW50cyB3ZSBleHBlY3QuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Rp
bWVsaW5lUnVsZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlcik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5wcm90b3R5cGUuZ2V0IGFsbG93c1Rp
bWVSYW5nZVNlbGVjdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UnVsZXIucHJvdG90eXBlLnNldCBhbGxvd3NUaW1lUmFuZ2VTZWxlY3Rpb24pOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLnByb3RvdHlwZS5nZXQgc2VsZWN0aW9u
U3RhcnRUaW1lKTogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5w
cm90b3R5cGUuc2V0IHNlbGVjdGlvblN0YXJ0VGltZSk6IEFkZGVkLgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUnVsZXIucHJvdG90eXBlLmdldCBzZWxlY3Rpb25FbmRUaW1lKTogQWRk
ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5wcm90b3R5cGUuc2V0IHNl
bGVjdGlvbkVuZFRpbWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1
bGVyLnByb3RvdHlwZS51cGRhdGVMYXlvdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUnVsZXIucHJvdG90eXBlLl9uZWVkc01hcmtlckxheW91dC51cGRhdGUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIucHJvdG90eXBlLl9uZWVkc01hcmtlckxheW91dCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5wcm90b3R5cGUuX25lZWRzU2Vs
ZWN0aW9uTGF5b3V0LnVwZGF0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxl
ci5wcm90b3R5cGUuX25lZWRzU2VsZWN0aW9uTGF5b3V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UaW1lbGluZVJ1bGVyLnByb3RvdHlwZS5fcmVjYWxjdWxhdGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUnVsZXIucHJvdG90eXBlLl91cGRhdGVQb3NpdGlvbk9mRWxlbWVudCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5wcm90b3R5cGUuX3VwZGF0ZU1h
cmtlcnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIucHJvdG90eXBlLl91
cGRhdGVTZWxlY3Rpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1
bGVyLnByb3RvdHlwZS5fZGlzcGF0Y2hUaW1lUmFuZ2VTZWxlY3Rpb25DaGFuZ2VkRXZlbnQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIucHJvdG90eXBlLl90aW1lbGluZU1h
cmtlclRpbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLnBy
b3RvdHlwZS5faGFuZGxlTW91c2VEb3duKTogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVSdWxlci5wcm90b3R5cGUuX2hhbmRsZU1vdXNlTW92ZSk6IEFkZGVkLgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIucHJvdG90eXBlLl9oYW5kbGVNb3VzZVVwKTog
QWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5wcm90b3R5cGUuX2hh
bmRsZVNlbGVjdGlvbkhhbmRsZU1vdXNlRG93bik6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUnVsZXIucHJvdG90eXBlLl9oYW5kbGVTZWxlY3Rpb25IYW5kbGVNb3VzZU1v
dmUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLnByb3RvdHlw
ZS5faGFuZGxlU2VsZWN0aW9uSGFuZGxlTW91c2VVcCk6IEFkZGVkLgorICAgICAgICBDcmVhdGUg
c2VsZWN0aW9uIGVsZW1lbnRzIGFuZCBoYW5kbGUgbW91c2UgZXZlbnRzIGZvciBkcmFnIGFuZCBt
b3ZlLgorCiAyMDEzLTEyLTE3ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4K
IAogICAgICAgICBTdXBwb3J0IHNjcm9sbCB0byB6b29tIGluIFRpbWVsaW5lT3ZlcnZpZXcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UaW1lbGluZUNv
bnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGltZWxp
bmVDb250ZW50Vmlldy5qcwppbmRleCBjZjNlYzQ3MzdiZWM5YTJkODVlODZhNzZiNDRhZWM3MmMy
YWQ5Zjk0Li44OTUwMDcwOTNkMDQ4ZGQ1MGI1MDA5MTY2NmU1MjdjM2IyOTAwM2FmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UaW1lbGluZUNvbnRlbnRW
aWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RpbWVsaW5l
Q29udGVudFZpZXcuanMKQEAgLTE5Miw3ICsxOTIsMTMgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
Q29udGVudFZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMuX2N1cnJlbnRUaW1lTWFy
a2VyLnRpbWUgPSBjdXJyZW50VGltZTsKIAotICAgICAgICB0aGlzLl90aW1lbGluZU92ZXJ2aWV3
LnN0YXJ0VGltZSA9IHN0YXJ0VGltZTsKKyAgICAgICAgaWYgKHRoaXMuX3N0YXJ0VGltZU5lZWRz
UmVzZXQgJiYgIWlzTmFOKHN0YXJ0VGltZSkpIHsKKyAgICAgICAgICAgIHZhciBzZWxlY3Rpb25P
ZmZzZXQgPSB0aGlzLl90aW1lbGluZU92ZXJ2aWV3LnNlbGVjdGlvblN0YXJ0VGltZSAtIHRoaXMu
X3RpbWVsaW5lT3ZlcnZpZXcuc3RhcnRUaW1lOworICAgICAgICAgICAgdGhpcy5fdGltZWxpbmVP
dmVydmlldy5zdGFydFRpbWUgPSBzdGFydFRpbWU7CisgICAgICAgICAgICB0aGlzLl90aW1lbGlu
ZU92ZXJ2aWV3LnNlbGVjdGlvblN0YXJ0VGltZSA9IHN0YXJ0VGltZSArIHNlbGVjdGlvbk9mZnNl
dDsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9zdGFydFRpbWVOZWVkc1Jlc2V0OworICAgICAg
ICB9CisKICAgICAgICAgdGhpcy5fdGltZWxpbmVPdmVydmlldy5lbmRUaW1lID0gTWF0aC5tYXgo
ZW5kVGltZSwgY3VycmVudFRpbWUpOwogCiAgICAgICAgIC8vIEZvcmNlIGEgbGF5b3V0IG5vdyBz
aW5jZSB3ZSBhcmUgYWxyZWFkeSBpbiBhbiBhbmltYXRpb24gZnJhbWUgYW5kIGRvbid0IG5lZWQg
dG8gZGVsYXkgaXQgdW50aWwgdGhlIG5leHQuCkBAIC0yMzMsNiArMjM5LDcgQEAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lQ29udGVudFZpZXcucHJvdG90eXBlID0gewogCiAgICAgX3JlY29yZGluZ1Jl
c2V0OiBmdW5jdGlvbihldmVudCkKICAgICB7CisgICAgICAgIHRoaXMuX3N0YXJ0VGltZU5lZWRz
UmVzZXQgPSB0cnVlOwogICAgICAgICB0aGlzLl9jdXJyZW50VGltZU1hcmtlci50aW1lID0gMDsK
IAogICAgICAgICB0aGlzLl9vdmVydmlld1RpbWVsaW5lVmlldy5yZXNldCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGltZWxpbmVPdmVydmlldy5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RpbWVsaW5lT3ZlcnZpZXcu
anMKaW5kZXggN2EwNTBjOGZhYWFhNmZlMzQxZGFlN2RjZDBhNDUyNjI1NmYwZGY4OS4uMmU3ZTkx
YWVlMDdiMjc2NDQ2OGU1NTE2ZjAwZDY0MWE3NzczNDBhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGltZWxpbmVPdmVydmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UaW1lbGluZU92ZXJ2aWV3LmpzCkBAIC0z
OCwxMiArMzgsMTQgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXcgPSBmdW5jdGlvbigp
CiAKICAgICB0aGlzLl90aW1lbGluZVJ1bGVyID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1
bGVyOwogICAgIHRoaXMuX3RpbWVsaW5lUnVsZXIuYWxsb3dzQ2xpcHBlZExhYmVscyA9IHRydWU7
CisgICAgdGhpcy5fdGltZWxpbmVSdWxlci5hbGxvd3NUaW1lUmFuZ2VTZWxlY3Rpb24gPSB0cnVl
OwogICAgIHRoaXMuX3Njcm9sbENvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLl90aW1lbGluZVJ1
bGVyLmVsZW1lbnQpOwogCiAgICAgdGhpcy5fZW5kVGltZSA9IDA7CiAKICAgICB0aGlzLnN0YXJ0
VGltZSA9IDA7CiAgICAgdGhpcy5zZWNvbmRzUGVyUGl4ZWwgPSAwLjAwMjU7CisgICAgdGhpcy5z
ZWxlY3Rpb25EdXJhdGlvbiA9IDU7CiB9OwogCiBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmll
dy5TdHlsZUNsYXNzTmFtZSA9ICJ0aW1lbGluZS1vdmVydmlldyI7CkBAIC0xMDgsNiArMTEwLDMx
IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGhpcy5fbmVlZHNMYXlvdXQoKTsKICAgICB9LAogCisgICAgZ2V0IHNlbGVjdGlvblN0YXJ0VGlt
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fdGltZWxpbmVSdWxlci5zZWxlY3Rpb25T
dGFydFRpbWU7CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb25TdGFydFRpbWUoeCkKKyAgICB7
CisgICAgICAgIHggPSB4IHx8IDA7CisKKyAgICAgICAgdmFyIHNlbGVjdGlvbkR1cmF0aW9uID0g
dGhpcy5zZWxlY3Rpb25EdXJhdGlvbjsKKyAgICAgICAgdGhpcy5fdGltZWxpbmVSdWxlci5zZWxl
Y3Rpb25TdGFydFRpbWUgPSB4OworICAgICAgICB0aGlzLl90aW1lbGluZVJ1bGVyLnNlbGVjdGlv
bkVuZFRpbWUgPSB4ICsgc2VsZWN0aW9uRHVyYXRpb247CisgICAgfSwKKworICAgIGdldCBzZWxl
Y3Rpb25EdXJhdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fdGltZWxpbmVSdWxl
ci5zZWxlY3Rpb25FbmRUaW1lIC0gdGhpcy5fdGltZWxpbmVSdWxlci5zZWxlY3Rpb25TdGFydFRp
bWU7CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb25EdXJhdGlvbih4KQorICAgIHsKKyAgICAg
ICAgeCA9IE1hdGgubWF4KFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLk1pbmltdW1TZWxlY3Rp
b25UaW1lUmFuZ2UsIHgpOworICAgICAgICB0aGlzLl90aW1lbGluZVJ1bGVyLnNlbGVjdGlvbkVu
ZFRpbWUgPSB0aGlzLl90aW1lbGluZVJ1bGVyLnNlbGVjdGlvblN0YXJ0VGltZSArIHg7CisgICAg
fSwKKwogICAgIGFkZE1hcmtlcjogZnVuY3Rpb24obWFya2VyKQogICAgIHsKICAgICAgICAgdGhp
cy5fdGltZWxpbmVSdWxlci5hZGRNYXJrZXIobWFya2VyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RpbWVsaW5lUnVsZXIuY3NzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGltZWxpbmVSdWxlci5jc3MKaW5kZXggMzY0ZTQ4
YTk5ZTA4Y2JmZDdlMWJlNTNhYzVhZDBlZTE2Mzc4OWRkMy4uYWQ4OTc4YmZmMWJkMzRiNzI0ZTE5
Mzc2NDE2NTQ5N2MyZGEzNDhkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVGltZWxpbmVSdWxlci5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVGltZWxpbmVSdWxlci5jc3MKQEAgLTI4LDEyICsyOCwyMiBAQAogICAg
IHBvaW50ZXItZXZlbnRzOiBub25lOwogfQogCisudGltZWxpbmUtcnVsZXIuYWxsb3dzLXRpbWUt
cmFuZ2Utc2VsZWN0aW9uIHsKKyAgICBwb2ludGVyLWV2ZW50czogYWxsOworfQorCisudGltZWxp
bmUtcnVsZXIgPiAqIHsKKyAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKK30KKwogLnRpbWVsaW5l
LXJ1bGVyID4gLmhlYWRlciB7CiAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigyMDAs
IDIwMCwgMjAwKTsKIAorICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAg
bGVmdDogMDsKKyAgICByaWdodDogMDsKICAgICBoZWlnaHQ6IDIycHg7Ci0KLSAgICBwb3NpdGlv
bjogcmVsYXRpdmU7CiB9CiAKIC50aW1lbGluZS1ydWxlciA+IC5oZWFkZXIgPiAuZGl2aWRlciB7
CkBAIC0xMDYsMyArMTE2LDUwIEBACiAudGltZWxpbmUtcnVsZXIgPiAubWFya2VycyA+IC5tYXJr
ZXIudGltZXN0YW1wIHsKICAgICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgwLCAxMTAsIDAsIDAu
NSk7CiB9CisKKy50aW1lbGluZS1ydWxlciA+IC5zZWxlY3Rpb24tZHJhZyB7CisgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBoZWlnaHQ6IDIycHg7CisgICAgY3Vyc29y
OiAtd2Via2l0LWdyYWI7CisgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKK30KKworLnRpbWVsaW5l
LXJ1bGVyID4gLnNlbGVjdGlvbi1kcmFnOmFjdGl2ZSB7CisgICAgY3Vyc29yOiAtd2Via2l0LWdy
YWJiaW5nOworfQorCisudGltZWxpbmUtcnVsZXIgPiAuc2VsZWN0aW9uLWhhbmRsZSB7CisgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICB3aWR0aDogOHB4OworICAgIGhl
aWdodDogMjFweDsKKyAgICBib3JkZXItcmFkaXVzOiA1cHg7CisgICAgYmFja2dyb3VuZC1jb2xv
cjogcmdiKDE2NCwgMTY0LCAxNjQpOworICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlOworICAg
IGN1cnNvcjogY29sLXJlc2l6ZTsKKyAgICBwb2ludGVyLWV2ZW50czogYWxsOworfQorCisudGlt
ZWxpbmUtcnVsZXIgPiAuc2VsZWN0aW9uLWhhbmRsZS5sZWZ0IHsKKyAgICAtd2Via2l0LXRyYW5z
Zm9ybTogdHJhbnNsYXRlWCgtNHB4KTsKK30KKworLnRpbWVsaW5lLXJ1bGVyID4gLnNlbGVjdGlv
bi1oYW5kbGUucmlnaHQgeworICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7
Cit9CisKKy50aW1lbGluZS1ydWxlciA+IC5zaGFkZWQtYXJlYSB7CisgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgIHRvcDogMDsKKyAgICBib3R0b206IDA7CisgICAgYmFja2dyb3VuZC1jb2xv
cjogcmdiYSgwLCAwLCAwLCAwLjEpOworfQorCisudGltZWxpbmUtcnVsZXIgPiAuc2hhZGVkLWFy
ZWEubGVmdCB7CisgICAgbGVmdDogMDsKK30KKworLnRpbWVsaW5lLXJ1bGVyID4gLnNoYWRlZC1h
cmVhLnJpZ2h0IHsKKyAgICByaWdodDogMDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RpbWVsaW5lUnVsZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9UaW1lbGluZVJ1bGVyLmpzCmluZGV4IDI4ODVlZjgwODhlNDVl
OTkzYmM5OTg0MDdjYjhiZDQ5MjA3YzgyYzcuLmFiNjkxZmE1NzUzMTAzOTgwMWQ3YzBhYTJlMzA2
ZmNkMDk2NTA3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1RpbWVsaW5lUnVsZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVGltZWxpbmVSdWxlci5qcwpAQCAtNDMsOCArNDMsMTEgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUnVsZXIgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fZW5kVGltZSA9IDA7CiAgICAgdGhp
cy5fZHVyYXRpb24gPSBOYU47CiAgICAgdGhpcy5fc2Vjb25kc1BlclBpeGVsID0gMDsKKyAgICB0
aGlzLl9zZWxlY3Rpb25TdGFydFRpbWUgPSAwOworICAgIHRoaXMuX3NlbGVjdGlvbkVuZFRpbWUg
PSBJbmZpbml0eTsKICAgICB0aGlzLl9lbmRUaW1lUGlubmVkID0gZmFsc2U7CiAgICAgdGhpcy5f
YWxsb3dzQ2xpcHBlZExhYmVscyA9IGZhbHNlOworICAgIHRoaXMuX2FsbG93c1RpbWVSYW5nZVNl
bGVjdGlvbiA9IGZhbHNlOwogCiAgICAgdGhpcy5fbWFya2VyRWxlbWVudE1hcCA9IG5ldyBNYXA7
CiB9CkBAIC01MywxMiArNTYsMjMgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIuTWluaW11
bUxlZnREaXZpZGVyU3BhY2luZyA9IDQ4OwogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIuTWlu
aW11bURpdmlkZXJTcGFjaW5nID0gNjQ7CiAKIFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLlN0
eWxlQ2xhc3NOYW1lID0gInRpbWVsaW5lLXJ1bGVyIjsKK1dlYkluc3BlY3Rvci5UaW1lbGluZVJ1
bGVyLkFsbG93c1RpbWVSYW5nZVNlbGVjdGlvblN0eWxlQ2xhc3NOYW1lID0gImFsbG93cy10aW1l
LXJhbmdlLXNlbGVjdGlvbiI7CiBXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5IZWFkZXJFbGVt
ZW50U3R5bGVDbGFzc05hbWUgPSAiaGVhZGVyIjsKIFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVy
LkRpdmlkZXJFbGVtZW50U3R5bGVDbGFzc05hbWUgPSAiZGl2aWRlciI7CiBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVSdWxlci5EaXZpZGVyTGFiZWxFbGVtZW50U3R5bGVDbGFzc05hbWUgPSAibGFiZWwi
OwogCiBXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5NYXJrZXJzRWxlbWVudFN0eWxlQ2xhc3NO
YW1lID0gIm1hcmtlcnMiOwogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIuQmFzZU1hcmtlckVs
ZW1lbnRTdHlsZUNsYXNzTmFtZSA9ICJtYXJrZXIiOworV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVs
ZXIuU2hhZGVkQXJlYUVsZW1lbnRTdHlsZUNsYXNzTmFtZSA9ICJzaGFkZWQtYXJlYSI7CitXZWJJ
bnNwZWN0b3IuVGltZWxpbmVSdWxlci5TZWxlY3Rpb25EcmFnRWxlbWVudFN0eWxlQ2xhc3NOYW1l
ID0gInNlbGVjdGlvbi1kcmFnIjsKK1dlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLlNlbGVjdGlv
bkhhbmRsZUVsZW1lbnRTdHlsZUNsYXNzTmFtZSA9ICJzZWxlY3Rpb24taGFuZGxlIjsKK1dlYklu
c3BlY3Rvci5UaW1lbGluZVJ1bGVyLkxlZnRTZWxlY3Rpb25FbGVtZW50U3R5bGVDbGFzc05hbWUg
PSAibGVmdCI7CitXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5SaWdodFNlbGVjdGlvbkVsZW1l
bnRTdHlsZUNsYXNzTmFtZSA9ICJyaWdodCI7CitXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5N
aW5pbXVtU2VsZWN0aW9uVGltZVJhbmdlID0gMC4xOworCitXZWJJbnNwZWN0b3IuVGltZWxpbmVS
dWxlci5FdmVudCA9IHsKKyAgICBUaW1lUmFuZ2VTZWxlY3Rpb25DaGFuZ2VkOiAidGltZS1ydWxl
ci10aW1lLXJhbmdlLXNlbGVjdGlvbi1jaGFuZ2VkIgorfTsKIAogV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUnVsZXIucHJvdG90eXBlID0gewogICAgIGNvbnN0cnVjdG9yOiBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVSdWxlciwKQEAgLTcwLDExICs4NCw2IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVy
LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQ7CiAgICAgfSwKIAot
ICAgIGdldCBoZWFkZXJFbGVtZW50KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9oZWFk
ZXJFbGVtZW50OwotICAgIH0sCi0KICAgICBnZXQgYWxsb3dzQ2xpcHBlZExhYmVscygpCiAgICAg
ewogICAgICAgICByZXR1cm4gdGhpcy5fYWxsb3dzQ2xpcHBlZExhYmVscwpAQCAtOTAsNiArOTks
NjIgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIucHJvdG90eXBlID0gewogICAgICAgICB0
aGlzLl9uZWVkc0xheW91dCgpOwogICAgIH0sCiAKKyAgICBnZXQgYWxsb3dzVGltZVJhbmdlU2Vs
ZWN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9hbGxvd3NUaW1lUmFuZ2VTZWxl
Y3Rpb24KKyAgICB9LAorCisgICAgc2V0IGFsbG93c1RpbWVSYW5nZVNlbGVjdGlvbih4KQorICAg
IHsKKyAgICAgICAgaWYgKHRoaXMuX2FsbG93c1RpbWVSYW5nZVNlbGVjdGlvbiA9PT0geCkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9hbGxvd3NUaW1lUmFuZ2VTZWxlY3Rp
b24gPSB4IHx8IGZhbHNlOworCisgICAgICAgIGlmICh4KSB7CisgICAgICAgICAgICB0aGlzLl9t
b3VzZURvd25FdmVudExpc3RlbmVyID0gdGhpcy5faGFuZGxlTW91c2VEb3duLmJpbmQodGhpcyk7
CisgICAgICAgICAgICB0aGlzLl9lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIs
IHRoaXMuX21vdXNlRG93bkV2ZW50TGlzdGVuZXIpOworCisgICAgICAgICAgICB0aGlzLl9sZWZ0
U2hhZGVkQXJlYUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAg
ICAgICAgIHRoaXMuX2xlZnRTaGFkZWRBcmVhRWxlbWVudC5jbGFzc0xpc3QuYWRkKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVJ1bGVyLlNoYWRlZEFyZWFFbGVtZW50U3R5bGVDbGFzc05hbWUpOworICAg
ICAgICAgICAgdGhpcy5fbGVmdFNoYWRlZEFyZWFFbGVtZW50LmNsYXNzTGlzdC5hZGQoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUnVsZXIuTGVmdFNlbGVjdGlvbkVsZW1lbnRTdHlsZUNsYXNzTmFtZSk7
CisKKyAgICAgICAgICAgIHRoaXMuX3JpZ2h0U2hhZGVkQXJlYUVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIHRoaXMuX3JpZ2h0U2hhZGVkQXJlYUVs
ZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5TaGFkZWRBcmVh
RWxlbWVudFN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgIHRoaXMuX3JpZ2h0U2hhZGVkQXJl
YUVsZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5SaWdodFNl
bGVjdGlvbkVsZW1lbnRTdHlsZUNsYXNzTmFtZSk7CisKKyAgICAgICAgICAgIHRoaXMuX2xlZnRT
ZWxlY3Rpb25IYW5kbGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cisg
ICAgICAgICAgICB0aGlzLl9sZWZ0U2VsZWN0aW9uSGFuZGxlRWxlbWVudC5jbGFzc0xpc3QuYWRk
KFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLlNlbGVjdGlvbkhhbmRsZUVsZW1lbnRTdHlsZUNs
YXNzTmFtZSk7CisgICAgICAgICAgICB0aGlzLl9sZWZ0U2VsZWN0aW9uSGFuZGxlRWxlbWVudC5j
bGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLkxlZnRTZWxlY3Rpb25FbGVt
ZW50U3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgdGhpcy5fbGVmdFNlbGVjdGlvbkhhbmRs
ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5faGFuZGxlU2VsZWN0
aW9uSGFuZGxlTW91c2VEb3duLmJpbmQodGhpcykpOworCisgICAgICAgICAgICB0aGlzLl9yaWdo
dFNlbGVjdGlvbkhhbmRsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICAgICAgICAgIHRoaXMuX3JpZ2h0U2VsZWN0aW9uSGFuZGxlRWxlbWVudC5jbGFzc0xpc3Qu
YWRkKFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLlNlbGVjdGlvbkhhbmRsZUVsZW1lbnRTdHls
ZUNsYXNzTmFtZSk7CisgICAgICAgICAgICB0aGlzLl9yaWdodFNlbGVjdGlvbkhhbmRsZUVsZW1l
bnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5SaWdodFNlbGVjdGlv
bkVsZW1lbnRTdHlsZUNsYXNzTmFtZSk7CisgICAgICAgICAgICB0aGlzLl9yaWdodFNlbGVjdGlv
bkhhbmRsZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5faGFuZGxl
U2VsZWN0aW9uSGFuZGxlTW91c2VEb3duLmJpbmQodGhpcykpOworCisgICAgICAgICAgICB0aGlz
Ll9zZWxlY3Rpb25EcmFnRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uRHJhZ0VsZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJ
bnNwZWN0b3IuVGltZWxpbmVSdWxlci5TZWxlY3Rpb25EcmFnRWxlbWVudFN0eWxlQ2xhc3NOYW1l
KTsKKworICAgICAgICAgICAgdGhpcy5fbmVlZHNMYXlvdXQoKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3du
IiwgdGhpcy5fbW91c2VEb3duRXZlbnRMaXN0ZW5lcik7CisgICAgICAgICAgICBkZWxldGUgdGhp
cy5fbW91c2VEb3duRXZlbnRMaXN0ZW5lcjsKKworICAgICAgICAgICAgdGhpcy5fbGVmdFNoYWRl
ZEFyZWFFbGVtZW50LnJlbW92ZSgpOworICAgICAgICAgICAgdGhpcy5fcmlnaHRTaGFkZWRBcmVh
RWxlbWVudC5yZW1vdmUoKTsKKyAgICAgICAgICAgIHRoaXMuX2xlZnRTZWxlY3Rpb25IYW5kbGVF
bGVtZW50LnJlbW92ZSgpOworICAgICAgICAgICAgdGhpcy5fcmlnaHRTZWxlY3Rpb25IYW5kbGVF
bGVtZW50LnJlbW92ZSgpOworICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uRHJhZ0VsZW1lbnQu
cmVtb3ZlKCk7CisKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9sZWZ0U2hhZGVkQXJlYUVsZW1l
bnQ7CisgICAgICAgICAgICBkZWxldGUgdGhpcy5fcmlnaHRTaGFkZWRBcmVhRWxlbWVudDsKKyAg
ICAgICAgICAgIGRlbGV0ZSB0aGlzLl9sZWZ0U2VsZWN0aW9uSGFuZGxlRWxlbWVudDsKKyAgICAg
ICAgICAgIGRlbGV0ZSB0aGlzLl9yaWdodFNlbGVjdGlvbkhhbmRsZUVsZW1lbnQ7CisgICAgICAg
ICAgICBkZWxldGUgdGhpcy5fc2VsZWN0aW9uRHJhZ0VsZW1lbnQ7CisgICAgICAgIH0KKyAgICB9
LAorCiAgICAgZ2V0IHplcm9UaW1lKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl96ZXJv
VGltZTsKQEAgLTE4Myw2ICsyNDgsMzggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIucHJv
dG90eXBlID0gewogICAgICAgICB0aGlzLl9uZWVkc0xheW91dCgpOwogICAgIH0sCiAKKyAgICBn
ZXQgc2VsZWN0aW9uU3RhcnRUaW1lKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zZWxl
Y3Rpb25TdGFydFRpbWU7CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb25TdGFydFRpbWUoeCkK
KyAgICB7CisgICAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb25TdGFydFRpbWUgPT09IHgpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fc2VsZWN0aW9uU3RhcnRUaW1lID0geCB8
fCAwOworICAgICAgICB0aGlzLl90aW1lUmFuZ2VTZWxlY3Rpb25DaGFuZ2VkID0gdHJ1ZTsKKwor
ICAgICAgICB0aGlzLl9uZWVkc1NlbGVjdGlvbkxheW91dCgpOworICAgIH0sCisKKyAgICBnZXQg
c2VsZWN0aW9uRW5kVGltZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9u
RW5kVGltZTsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbkVuZFRpbWUoeCkKKyAgICB7Cisg
ICAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb25FbmRUaW1lID09PSB4KQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIHRoaXMuX3NlbGVjdGlvbkVuZFRpbWUgPSB4IHx8IDA7CisgICAgICAg
IHRoaXMuX3RpbWVSYW5nZVNlbGVjdGlvbkNoYW5nZWQgPSB0cnVlOworCisgICAgICAgIHRoaXMu
X25lZWRzU2VsZWN0aW9uTGF5b3V0KCk7CisgICAgfSwKKwogICAgIGFkZE1hcmtlcjogZnVuY3Rp
b24obWFya2VyKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQobWFya2VyIGluc3RhbmNl
b2YgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFya2VyKTsKQEAgLTI4Myw3ICszODAsNyBAQCBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVSdWxlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICB0aGlzLl91cGRhdGVMZWZ0
UG9zaXRpb25PZkVsZW1lbnQoZGl2aWRlckVsZW1lbnQsIG5ld0xlZnRQb3NpdGlvbiwgdmlzaWJs
ZVdpZHRoKTsKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVBvc2l0aW9uT2ZFbGVtZW50KGRpdmlk
ZXJFbGVtZW50LCBuZXdMZWZ0UG9zaXRpb24sIHZpc2libGVXaWR0aCk7CiAKICAgICAgICAgICAg
IGRpdmlkZXJFbGVtZW50Ll9sYWJlbEVsZW1lbnQudGV4dENvbnRlbnQgPSBpc05hTihkaXZpZGVy
VGltZSkgPyAiIiA6IE51bWJlci5zZWNvbmRzVG9TdHJpbmcoZGl2aWRlclRpbWUgLSB0aGlzLl96
ZXJvVGltZSwgdHJ1ZSk7CiAgICAgICAgICAgICBkaXZpZGVyRWxlbWVudCA9IGRpdmlkZXJFbGVt
ZW50Lm5leHRTaWJsaW5nOwpAQCAtMjk3LDYgKzM5NCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVJ1bGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3VwZGF0ZU1h
cmtlcnModmlzaWJsZVdpZHRoLCBkdXJhdGlvbik7CisgICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVj
dGlvbih2aXNpYmxlV2lkdGgsIGR1cmF0aW9uKTsKICAgICB9LAogCiAgICAgLy8gUHJpdmF0ZQpA
QCAtMzI3LDcgKzQyNSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLnByb3RvdHlwZSA9
IHsKICAgICAgICAgewogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NjaGVkdWxlZE1hcmtlckxh
eW91dFVwZGF0ZUlkZW50aWZpZXI7CiAKLSAgICAgICAgICAgIHZhciB2aXNpYmxlV2lkdGggPSB0
aGlzLl9oZWFkZXJFbGVtZW50LmNsaWVudFdpZHRoOworICAgICAgICAgICAgdmFyIHZpc2libGVX
aWR0aCA9IHRoaXMuX2VsZW1lbnQuY2xpZW50V2lkdGg7CiAgICAgICAgICAgICBpZiAodmlzaWJs
ZVdpZHRoIDw9IDApCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0zMzcsOSArNDM1LDM1
IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5fc2NoZWR1bGVkTWFya2VyTGF5b3V0VXBkYXRlSWRlbnRpZmllciA9IHJlcXVlc3RBbmltYXRp
b25GcmFtZSh1cGRhdGUuYmluZCh0aGlzKSk7CiAgICAgfSwKIAorICAgIF9uZWVkc1NlbGVjdGlv
bkxheW91dDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9hbGxvd3NUaW1l
UmFuZ2VTZWxlY3Rpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gSWYgbGF5
b3V0IGlzIHNjaGVkdWxlZCwgYWJvcnQgc2luY2UgdGhlIHNlbGVjdGlvbiB3aWxsIGJlIHVwZGF0
ZWQgd2hlbiBsYXlvdXQgaGFwcGVucy4KKyAgICAgICAgaWYgKHRoaXMuX3NjaGVkdWxlZExheW91
dFVwZGF0ZUlkZW50aWZpZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKHRo
aXMuX3NjaGVkdWxlZFNlbGVjdGlvbkxheW91dFVwZGF0ZUlkZW50aWZpZXIpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgZnVuY3Rpb24gdXBkYXRlKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgZGVsZXRlIHRoaXMuX3NjaGVkdWxlZFNlbGVjdGlvbkxheW91dFVwZGF0ZUlkZW50aWZp
ZXI7CisKKyAgICAgICAgICAgIHZhciB2aXNpYmxlV2lkdGggPSB0aGlzLl9lbGVtZW50LmNsaWVu
dFdpZHRoOworICAgICAgICAgICAgaWYgKHZpc2libGVXaWR0aCA8PSAwKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0aW9uKHZpc2libGVX
aWR0aCwgdGhpcy5kdXJhdGlvbik7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9zY2hlZHVs
ZWRTZWxlY3Rpb25MYXlvdXRVcGRhdGVJZGVudGlmaWVyID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1l
KHVwZGF0ZS5iaW5kKHRoaXMpKTsKKyAgICB9LAorCiAgICAgX3JlY2FsY3VsYXRlOiBmdW5jdGlv
bigpCiAgICAgewotICAgICAgICB2YXIgdmlzaWJsZVdpZHRoID0gdGhpcy5faGVhZGVyRWxlbWVu
dC5jbGllbnRXaWR0aDsKKyAgICAgICAgdmFyIHZpc2libGVXaWR0aCA9IHRoaXMuX2VsZW1lbnQu
Y2xpZW50V2lkdGg7CiAgICAgICAgIGlmICh2aXNpYmxlV2lkdGggPD0gMCkKICAgICAgICAgICAg
IHJldHVybiAwOwogCkBAIC0zNTYsMzEgKzQ4MCwyMjggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UnVsZXIucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdmlzaWJsZVdpZHRoOwogICAgIH0s
CiAKLSAgICBfdXBkYXRlTGVmdFBvc2l0aW9uT2ZFbGVtZW50OiBmdW5jdGlvbihlbGVtZW50LCBu
ZXdMZWZ0UG9zaXRpb24sIHZpc2libGVXaWR0aCkKKyAgICBfdXBkYXRlUG9zaXRpb25PZkVsZW1l
bnQ6IGZ1bmN0aW9uKGVsZW1lbnQsIG5ld1Bvc2l0aW9uLCB2aXNpYmxlV2lkdGgsIHByb3BlcnR5
KQogICAgIHsKLSAgICAgICAgbmV3TGVmdFBvc2l0aW9uICo9IHRoaXMuX2VuZFRpbWVQaW5uZWQg
PyAxMDAgOiB2aXNpYmxlV2lkdGg7Ci0gICAgICAgIG5ld0xlZnRQb3NpdGlvbiA9IG5ld0xlZnRQ
b3NpdGlvbi50b0ZpeGVkKDIpOworICAgICAgICBwcm9wZXJ0eSA9IHByb3BlcnR5IHx8ICJsZWZ0
IjsKIAotICAgICAgICB2YXIgY3VycmVudExlZnRQb3NpdGlvbiA9IHBhcnNlRmxvYXQoZWxlbWVu
dC5zdHlsZS5sZWZ0KS50b0ZpeGVkKDIpOwotICAgICAgICBpZiAoY3VycmVudExlZnRQb3NpdGlv
biAhPT0gbmV3TGVmdFBvc2l0aW9uKQotICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0g
bmV3TGVmdFBvc2l0aW9uICsgKHRoaXMuX2VuZFRpbWVQaW5uZWQgPyAiJSIgOiAicHgiKTsKKyAg
ICAgICAgbmV3UG9zaXRpb24gKj0gdGhpcy5fZW5kVGltZVBpbm5lZCA/IDEwMCA6IHZpc2libGVX
aWR0aDsKKyAgICAgICAgbmV3UG9zaXRpb24gPSBuZXdQb3NpdGlvbi50b0ZpeGVkKDIpOworCisg
ICAgICAgIHZhciBjdXJyZW50UG9zaXRpb24gPSBwYXJzZUZsb2F0KGVsZW1lbnQuc3R5bGVbcHJv
cGVydHldKS50b0ZpeGVkKDIpOworICAgICAgICBpZiAoY3VycmVudFBvc2l0aW9uICE9PSBuZXdQ
b3NpdGlvbikKKyAgICAgICAgICAgIGVsZW1lbnQuc3R5bGVbcHJvcGVydHldID0gbmV3UG9zaXRp
b24gKyAodGhpcy5fZW5kVGltZVBpbm5lZCA/ICIlIiA6ICJweCIpOwogICAgIH0sCiAKICAgICBf
dXBkYXRlTWFya2VyczogZnVuY3Rpb24odmlzaWJsZVdpZHRoLCBkdXJhdGlvbikKICAgICB7Cisg
ICAgICAgIGlmICh0aGlzLl9zY2hlZHVsZWRNYXJrZXJMYXlvdXRVcGRhdGVJZGVudGlmaWVyKSB7
CisgICAgICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9zY2hlZHVsZWRNYXJrZXJM
YXlvdXRVcGRhdGVJZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9zY2hlZHVs
ZWRNYXJrZXJMYXlvdXRVcGRhdGVJZGVudGlmaWVyOworICAgICAgICB9CisKICAgICAgICAgdGhp
cy5fbWFya2VyRWxlbWVudE1hcC5mb3JFYWNoKGZ1bmN0aW9uKG1hcmtlckVsZW1lbnQsIG1hcmtl
cikgewogICAgICAgICAgICAgdmFyIG5ld0xlZnRQb3NpdGlvbiA9IChtYXJrZXIudGltZSAtIHRo
aXMuX3N0YXJ0VGltZSkgLyBkdXJhdGlvbjsKIAotICAgICAgICAgICAgdGhpcy5fdXBkYXRlTGVm
dFBvc2l0aW9uT2ZFbGVtZW50KG1hcmtlckVsZW1lbnQsIG5ld0xlZnRQb3NpdGlvbiwgdmlzaWJs
ZVdpZHRoKTsKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVBvc2l0aW9uT2ZFbGVtZW50KG1hcmtl
ckVsZW1lbnQsIG5ld0xlZnRQb3NpdGlvbiwgdmlzaWJsZVdpZHRoKTsKIAogICAgICAgICAgICAg
aWYgKCFtYXJrZXJFbGVtZW50LnBhcmVudE5vZGUpCiAgICAgICAgICAgICAgICAgdGhpcy5fbWFy
a2Vyc0VsZW1lbnQuYXBwZW5kQ2hpbGQobWFya2VyRWxlbWVudCk7CiAgICAgICAgIH0sIHRoaXMp
OwogICAgIH0sCiAKKyAgICBfdXBkYXRlU2VsZWN0aW9uOiBmdW5jdGlvbih2aXNpYmxlV2lkdGgs
IGR1cmF0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3NjaGVkdWxlZFNlbGVjdGlvbkxh
eW91dFVwZGF0ZUlkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1l
KHRoaXMuX3NjaGVkdWxlZFNlbGVjdGlvbkxheW91dFVwZGF0ZUlkZW50aWZpZXIpOworICAgICAg
ICAgICAgZGVsZXRlIHRoaXMuX3NjaGVkdWxlZFNlbGVjdGlvbkxheW91dFVwZGF0ZUlkZW50aWZp
ZXI7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIuQWxsb3dzVGltZVJhbmdlU2VsZWN0aW9uU3R5bGVD
bGFzc05hbWUsIHRoaXMuX2FsbG93c1RpbWVSYW5nZVNlbGVjdGlvbik7CisKKyAgICAgICAgaWYg
KCF0aGlzLl9hbGxvd3NUaW1lUmFuZ2VTZWxlY3Rpb24pCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgdmFyIG5ld0xlZnRQb3NpdGlvbiA9IE1hdGgubWF4KDAsICh0aGlzLl9zZWxlY3Rp
b25TdGFydFRpbWUgLSB0aGlzLl9zdGFydFRpbWUpIC8gZHVyYXRpb24pOworICAgICAgICB0aGlz
Ll91cGRhdGVQb3NpdGlvbk9mRWxlbWVudCh0aGlzLl9sZWZ0U2hhZGVkQXJlYUVsZW1lbnQsIG5l
d0xlZnRQb3NpdGlvbiwgdmlzaWJsZVdpZHRoLCAid2lkdGgiKTsKKyAgICAgICAgdGhpcy5fdXBk
YXRlUG9zaXRpb25PZkVsZW1lbnQodGhpcy5fbGVmdFNlbGVjdGlvbkhhbmRsZUVsZW1lbnQsIG5l
d0xlZnRQb3NpdGlvbiwgdmlzaWJsZVdpZHRoLCAibGVmdCIpOworICAgICAgICB0aGlzLl91cGRh
dGVQb3NpdGlvbk9mRWxlbWVudCh0aGlzLl9zZWxlY3Rpb25EcmFnRWxlbWVudCwgbmV3TGVmdFBv
c2l0aW9uLCB2aXNpYmxlV2lkdGgsICJsZWZ0Iik7CisKKyAgICAgICAgdmFyIG5ld1JpZ2h0UG9z
aXRpb24gPSAxIC0gTWF0aC5taW4oKHRoaXMuX3NlbGVjdGlvbkVuZFRpbWUgLSB0aGlzLl9zdGFy
dFRpbWUpIC8gZHVyYXRpb24sIDEpOworICAgICAgICB0aGlzLl91cGRhdGVQb3NpdGlvbk9mRWxl
bWVudCh0aGlzLl9yaWdodFNoYWRlZEFyZWFFbGVtZW50LCBuZXdSaWdodFBvc2l0aW9uLCB2aXNp
YmxlV2lkdGgsICJ3aWR0aCIpOworICAgICAgICB0aGlzLl91cGRhdGVQb3NpdGlvbk9mRWxlbWVu
dCh0aGlzLl9yaWdodFNlbGVjdGlvbkhhbmRsZUVsZW1lbnQsIG5ld1JpZ2h0UG9zaXRpb24sIHZp
c2libGVXaWR0aCwgInJpZ2h0Iik7CisgICAgICAgIHRoaXMuX3VwZGF0ZVBvc2l0aW9uT2ZFbGVt
ZW50KHRoaXMuX3NlbGVjdGlvbkRyYWdFbGVtZW50LCBuZXdSaWdodFBvc2l0aW9uLCB2aXNpYmxl
V2lkdGgsICJyaWdodCIpOworCisgICAgICAgIGlmICghdGhpcy5fc2VsZWN0aW9uRHJhZ0VsZW1l
bnQucGFyZW50Tm9kZSkKKyAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy5fc2VsZWN0aW9uRHJhZ0VsZW1lbnQpOworCisgICAgICAgIGlmICghdGhpcy5fbGVmdFNoYWRl
ZEFyZWFFbGVtZW50LnBhcmVudE5vZGUpCisgICAgICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVu
ZENoaWxkKHRoaXMuX2xlZnRTaGFkZWRBcmVhRWxlbWVudCk7CisKKyAgICAgICAgaWYgKCF0aGlz
Ll9sZWZ0U2VsZWN0aW9uSGFuZGxlRWxlbWVudC5wYXJlbnROb2RlKQorICAgICAgICAgICAgdGhp
cy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9sZWZ0U2VsZWN0aW9uSGFuZGxlRWxlbWVudCk7
CisKKyAgICAgICAgaWYgKCF0aGlzLl9yaWdodFNoYWRlZEFyZWFFbGVtZW50LnBhcmVudE5vZGUp
CisgICAgICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3JpZ2h0U2hhZGVk
QXJlYUVsZW1lbnQpOworCisgICAgICAgIGlmICghdGhpcy5fcmlnaHRTZWxlY3Rpb25IYW5kbGVF
bGVtZW50LnBhcmVudE5vZGUpCisgICAgICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuX3JpZ2h0U2VsZWN0aW9uSGFuZGxlRWxlbWVudCk7CisKKyAgICAgICAgaWYgKHRoaXMu
X3RpbWVSYW5nZVNlbGVjdGlvbkNoYW5nZWQpCisgICAgICAgICAgICB0aGlzLl9kaXNwYXRjaFRp
bWVSYW5nZVNlbGVjdGlvbkNoYW5nZWRFdmVudCgpOworICAgIH0sCisKKyAgICBfZGlzcGF0Y2hU
aW1lUmFuZ2VTZWxlY3Rpb25DaGFuZ2VkRXZlbnQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IGRlbGV0ZSB0aGlzLl90aW1lUmFuZ2VTZWxlY3Rpb25DaGFuZ2VkOworCisgICAgICAgIGlmICh0
aGlzLl9zdXBwcmVzc1RpbWVSYW5nZVNlbGVjdGlvbkNoYW5nZWRFdmVudCkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuVGltZWxpbmVSdWxlci5FdmVudC5UaW1lUmFuZ2VTZWxlY3Rpb25DaGFuZ2VkKTsKKyAg
ICB9LAorCiAgICAgX3RpbWVsaW5lTWFya2VyVGltZUNoYW5nZWQ6IGZ1bmN0aW9uKCkKICAgICB7
CiAgICAgICAgIHRoaXMuX25lZWRzTWFya2VyTGF5b3V0KCk7CisgICAgfSwKKworICAgIF9oYW5k
bGVNb3VzZURvd246IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgLy8gT25seSBoYW5k
bGUgbGVmdCBtb3VzZSBjbGlja3MuCisgICAgICAgIGlmIChldmVudC5idXR0b24gIT09IDApCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fc2VsZWN0aW9uSXNNb3ZlID0gZXZl
bnQudGFyZ2V0ID09PSB0aGlzLl9zZWxlY3Rpb25EcmFnRWxlbWVudDsKKyAgICAgICAgdGhpcy5f
c3VwcHJlc3NUaW1lUmFuZ2VTZWxlY3Rpb25DaGFuZ2VkRXZlbnQgPSAhdGhpcy5fc2VsZWN0aW9u
SXNNb3ZlOworCisgICAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb25Jc01vdmUpCisgICAgICAgICAg
ICB0aGlzLl9sYXN0TW91c2VQb3NpdGlvbiA9IGV2ZW50LnBhZ2VYOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0aGlzLl9tb3VzZURvd25Qb3NpdGlvbiA9IGV2ZW50LnBhZ2VYIC0gdGhpcy5f
ZWxlbWVudC50b3RhbE9mZnNldExlZnQ7CisKKyAgICAgICAgdGhpcy5fbW91c2VNb3ZlRXZlbnRM
aXN0ZW5lciA9IHRoaXMuX2hhbmRsZU1vdXNlTW92ZS5iaW5kKHRoaXMpOworICAgICAgICB0aGlz
Ll9tb3VzZVVwRXZlbnRMaXN0ZW5lciA9IHRoaXMuX2hhbmRsZU1vdXNlVXAuYmluZCh0aGlzKTsK
KworICAgICAgICAvLyBSZWdpc3RlciB0aGVzZSBsaXN0ZW5lcnMgb24gdGhlIGRvY3VtZW50IHNv
IHdlIGNhbiB0cmFjayB0aGUgbW91c2UgaWYgaXQgbGVhdmVzIHRoZSBydWxlci4KKyAgICAgICAg
ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fbW91c2VNb3ZlRXZl
bnRMaXN0ZW5lcik7CisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAi
LCB0aGlzLl9tb3VzZVVwRXZlbnRMaXN0ZW5lcik7CisKKyAgICAgICAgZXZlbnQucHJldmVudERl
ZmF1bHQoKTsKKyAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgfSwKKworICAg
IF9oYW5kbGVNb3VzZU1vdmU6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQoZXZlbnQuYnV0dG9uID09PSAwKTsKKworICAgICAgICBpZiAodGhpcy5fc2VsZWN0
aW9uSXNNb3ZlKSB7CisgICAgICAgICAgICB2YXIgY3VycmVudE1vdXNlUG9zaXRpb24gPSBldmVu
dC5wYWdlWDsKKworICAgICAgICAgICAgdmFyIG9mZnNldFRpbWUgPSAoY3VycmVudE1vdXNlUG9z
aXRpb24gLSB0aGlzLl9sYXN0TW91c2VQb3NpdGlvbikgKiB0aGlzLnNlY29uZHNQZXJQaXhlbDsK
KyAgICAgICAgICAgIHZhciBzZWxlY3Rpb25EdXJhdGlvbiA9IHRoaXMuc2VsZWN0aW9uRW5kVGlt
ZSAtIHRoaXMuc2VsZWN0aW9uU3RhcnRUaW1lOworCisgICAgICAgICAgICB0aGlzLnNlbGVjdGlv
blN0YXJ0VGltZSA9IE1hdGgubWF4KHRoaXMuc3RhcnRUaW1lLCBNYXRoLm1pbih0aGlzLnNlbGVj
dGlvblN0YXJ0VGltZSArIG9mZnNldFRpbWUsIHRoaXMuZW5kVGltZSAtIHNlbGVjdGlvbkR1cmF0
aW9uKSk7CisgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkVuZFRpbWUgPSB0aGlzLnNlbGVjdGlv
blN0YXJ0VGltZSArIHNlbGVjdGlvbkR1cmF0aW9uOworCisgICAgICAgICAgICB0aGlzLl9sYXN0
TW91c2VQb3NpdGlvbiA9IGN1cnJlbnRNb3VzZVBvc2l0aW9uOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgdmFyIGN1cnJlbnRNb3VzZVBvc2l0aW9uID0gZXZlbnQucGFnZVggLSB0aGlz
Ll9lbGVtZW50LnRvdGFsT2Zmc2V0TGVmdDsKKworICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25T
dGFydFRpbWUgPSBNYXRoLm1heCh0aGlzLnN0YXJ0VGltZSwgdGhpcy56ZXJvVGltZSArIChNYXRo
Lm1pbihjdXJyZW50TW91c2VQb3NpdGlvbiwgdGhpcy5fbW91c2VEb3duUG9zaXRpb24pICogdGhp
cy5zZWNvbmRzUGVyUGl4ZWwpKTsKKyAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uRW5kVGltZSA9
IE1hdGgubWluKHRoaXMuemVyb1RpbWUgKyAoTWF0aC5tYXgoY3VycmVudE1vdXNlUG9zaXRpb24s
IHRoaXMuX21vdXNlRG93blBvc2l0aW9uKSAqIHRoaXMuc2Vjb25kc1BlclBpeGVsKSwgdGhpcy5l
bmRUaW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGlvbih0aGlz
Ll9lbGVtZW50LmNsaWVudFdpZHRoLCB0aGlzLmR1cmF0aW9uKTsKKworICAgICAgICBldmVudC5w
cmV2ZW50RGVmYXVsdCgpOworICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICB9
LAorCisgICAgX2hhbmRsZU1vdXNlVXA6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAg
Y29uc29sZS5hc3NlcnQoZXZlbnQuYnV0dG9uID09PSAwKTsKKworICAgICAgICBpZiAodGhpcy5z
ZWxlY3Rpb25FbmRUaW1lIC0gdGhpcy5zZWxlY3Rpb25TdGFydFRpbWUgPCBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVSdWxlci5NaW5pbXVtU2VsZWN0aW9uVGltZVJhbmdlKSB7CisgICAgICAgICAgICAv
LyBUaGUgc2VjdGlvbiBpcyBzbWFsbGVyIHRoYW4gYWxsb3dlZCwgZ3JvdyBpbiB0aGUgZGlyZWN0
aW9uIG9mIHRoZSBkcmFnIHRvIG1lZXQgdGhlIG1pbnVtdW0uCisgICAgICAgICAgICB2YXIgY3Vy
cmVudE1vdXNlUG9zaXRpb24gPSBldmVudC5wYWdlWCAtIHRoaXMuX2VsZW1lbnQudG90YWxPZmZz
ZXRMZWZ0OworICAgICAgICAgICAgaWYgKGN1cnJlbnRNb3VzZVBvc2l0aW9uID4gdGhpcy5fbW91
c2VEb3duUG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkVuZFRpbWUg
PSBNYXRoLm1pbih0aGlzLnNlbGVjdGlvblN0YXJ0VGltZSArIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVJ1bGVyLk1pbmltdW1TZWxlY3Rpb25UaW1lUmFuZ2UsIHRoaXMuZW5kVGltZSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5zZWxlY3Rpb25TdGFydFRpbWUgPSB0aGlzLnNlbGVjdGlvbkVuZFRpbWUg
LSBXZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5NaW5pbXVtU2VsZWN0aW9uVGltZVJhbmdlOwor
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblN0YXJ0
VGltZSA9IE1hdGgubWF4KHRoaXMuc3RhcnRUaW1lLCB0aGlzLnNlbGVjdGlvbkVuZFRpbWUgLSBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVSdWxlci5NaW5pbXVtU2VsZWN0aW9uVGltZVJhbmdlKTsKKyAg
ICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkVuZFRpbWUgPSB0aGlzLnNlbGVjdGlvblN0YXJ0
VGltZSArIFdlYkluc3BlY3Rvci5UaW1lbGluZVJ1bGVyLk1pbmltdW1TZWxlY3Rpb25UaW1lUmFu
Z2UKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGRlbGV0ZSB0aGlzLl9zdXBw
cmVzc1RpbWVSYW5nZVNlbGVjdGlvbkNoYW5nZWRFdmVudDsKKworICAgICAgICB0aGlzLl9kaXNw
YXRjaFRpbWVSYW5nZVNlbGVjdGlvbkNoYW5nZWRFdmVudCgpOworCisgICAgICAgIGRvY3VtZW50
LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIHRoaXMuX21vdXNlTW92ZUV2ZW50TGlz
dGVuZXIpOworICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwg
dGhpcy5fbW91c2VVcEV2ZW50TGlzdGVuZXIpOworCisgICAgICAgIGRlbGV0ZSB0aGlzLl9tb3Vz
ZU1vdmVkRXZlbnRMaXN0ZW5lcjsKKyAgICAgICAgZGVsZXRlIHRoaXMuX21vdXNlVXBFdmVudExp
c3RlbmVyOworICAgICAgICBkZWxldGUgdGhpcy5fbW91c2VEb3duUG9zaXRpb247CisgICAgICAg
IGRlbGV0ZSB0aGlzLl9sYXN0TW91c2VQb3NpdGlvbjsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3Nl
bGVjdGlvbklzTW92ZTsKKworICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAg
ICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICB9LAorCisgICAgX2hhbmRsZVNlbGVjdGlv
bkhhbmRsZU1vdXNlRG93bjogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICAvLyBPbmx5
IGhhbmRsZSBsZWZ0IG1vdXNlIGNsaWNrcy4KKyAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiAhPT0g
MCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9kcmFnSGFuZGxlSXNTdGFy
dFRpbWUgPSBldmVudC50YXJnZXQgPT09IHRoaXMuX2xlZnRTZWxlY3Rpb25IYW5kbGVFbGVtZW50
OworICAgICAgICB0aGlzLl9tb3VzZURvd25Qb3NpdGlvbiA9IGV2ZW50LnBhZ2VYIC0gdGhpcy5f
ZWxlbWVudC50b3RhbE9mZnNldExlZnQ7CisKKyAgICAgICAgdGhpcy5fc2VsZWN0aW9uSGFuZGxl
TW91c2VNb3ZlRXZlbnRMaXN0ZW5lciA9IHRoaXMuX2hhbmRsZVNlbGVjdGlvbkhhbmRsZU1vdXNl
TW92ZS5iaW5kKHRoaXMpOworICAgICAgICB0aGlzLl9zZWxlY3Rpb25IYW5kbGVNb3VzZVVwRXZl
bnRMaXN0ZW5lciA9IHRoaXMuX2hhbmRsZVNlbGVjdGlvbkhhbmRsZU1vdXNlVXAuYmluZCh0aGlz
KTsKKworICAgICAgICAvLyBSZWdpc3RlciB0aGVzZSBsaXN0ZW5lcnMgb24gdGhlIGRvY3VtZW50
IHNvIHdlIGNhbiB0cmFjayB0aGUgbW91c2UgaWYgaXQgbGVhdmVzIHRoZSBydWxlci4KKyAgICAg
ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fc2VsZWN0aW9u
SGFuZGxlTW91c2VNb3ZlRXZlbnRMaXN0ZW5lcik7CisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoIm1vdXNldXAiLCB0aGlzLl9zZWxlY3Rpb25IYW5kbGVNb3VzZVVwRXZlbnRMaXN0
ZW5lcik7CisKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgZXZlbnQu
c3RvcFByb3BhZ2F0aW9uKCk7CisgICAgfSwKKworICAgIF9oYW5kbGVTZWxlY3Rpb25IYW5kbGVN
b3VzZU1vdmU6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
ZXZlbnQuYnV0dG9uID09PSAwKTsKKworICAgICAgICB2YXIgY3VycmVudE1vdXNlUG9zaXRpb24g
PSBldmVudC5wYWdlWCAtIHRoaXMuX2VsZW1lbnQudG90YWxPZmZzZXRMZWZ0OworICAgICAgICB2
YXIgY3VycmVudFRpbWUgPSB0aGlzLnplcm9UaW1lICsgKGN1cnJlbnRNb3VzZVBvc2l0aW9uICog
dGhpcy5zZWNvbmRzUGVyUGl4ZWwpOworCisgICAgICAgIGlmICh0aGlzLl9kcmFnSGFuZGxlSXNT
dGFydFRpbWUpCisgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblN0YXJ0VGltZSA9IE1hdGgubWF4
KHRoaXMuc3RhcnRUaW1lLCBNYXRoLm1pbihjdXJyZW50VGltZSwgdGhpcy5zZWxlY3Rpb25FbmRU
aW1lIC0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXIuTWluaW11bVNlbGVjdGlvblRpbWVSYW5n
ZSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkVuZFRpbWUgPSBN
YXRoLm1pbihNYXRoLm1heCh0aGlzLnNlbGVjdGlvblN0YXJ0VGltZSArIFdlYkluc3BlY3Rvci5U
aW1lbGluZVJ1bGVyLk1pbmltdW1TZWxlY3Rpb25UaW1lUmFuZ2UsIGN1cnJlbnRUaW1lKSwgdGhp
cy5lbmRUaW1lKTsKKworICAgICAgICB0aGlzLl91cGRhdGVTZWxlY3Rpb24odGhpcy5fZWxlbWVu
dC5jbGllbnRXaWR0aCwgdGhpcy5kdXJhdGlvbik7CisKKyAgICAgICAgZXZlbnQucHJldmVudERl
ZmF1bHQoKTsKKyAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgfSwKKworICAg
IF9oYW5kbGVTZWxlY3Rpb25IYW5kbGVNb3VzZVVwOiBmdW5jdGlvbihldmVudCkKKyAgICB7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGV2ZW50LmJ1dHRvbiA9PT0gMCk7CisKKyAgICAgICAgZG9j
dW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fc2VsZWN0aW9uSGFu
ZGxlTW91c2VNb3ZlRXZlbnRMaXN0ZW5lcik7CisgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50
TGlzdGVuZXIoIm1vdXNldXAiLCB0aGlzLl9zZWxlY3Rpb25IYW5kbGVNb3VzZVVwRXZlbnRMaXN0
ZW5lcik7CisKKyAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGlvbkhhbmRsZU1vdXNlTW92ZUV2
ZW50TGlzdGVuZXI7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9zZWxlY3Rpb25IYW5kbGVNb3VzZVVw
RXZlbnRMaXN0ZW5lcjsKKyAgICAgICAgZGVsZXRlIHRoaXMuX2RyYWdIYW5kbGVJc1N0YXJ0VGlt
ZTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX21vdXNlRG93blBvc2l0aW9uOworCisgICAgICAgIGV2
ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwog
ICAgIH0KIH0KIAo=
</data>
<flag name="review"
          id="243369"
          type_id="1"
          status="+"
          setter="joepeck"
    />
    <flag name="commit-queue"
          id="243370"
          type_id="3"
          status="-"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>