<?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>147029</bug_id>
          
          <creation_ts>2015-07-16 19:29:06 -0700</creation_ts>
          <short_desc>Web Inspector: Better share objects generated from timeline events (Records)</short_desc>
          <delta_ts>2015-07-30 18:56:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Matt Baker">mattbaker</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonowells</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1110059</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-16 19:29:06 -0700</bug_when>
    <thetext>* SUMMARY
Better share objects generated from timeline events (Records, Profiles). Currently TimelineManager processes all events twice (once for each of the two Timelines) and creates two records for each of the events.

We should create and share just one FooTimelineRecord for the timeline event, because the Records are readonly data. This would:

  - reduce memory use
  - avoid duplicate work
  - avoid handling unexpected modifications of payloads (see bug 147025)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110060</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-07-16 19:29:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/21868532&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111896</commentid>
    <comment_count>2</comment_count>
      <attachid>257424</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-07-23 20:12:40 -0700</bug_when>
    <thetext>Created attachment 257424
[Patch] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113377</commentid>
    <comment_count>3</comment_count>
      <attachid>257424</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-07-30 09:02:26 -0700</bug_when>
    <thetext>Comment on attachment 257424
[Patch] Proposed Fix

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

r=me

Please file a bug for improving test coverage of record tree creation. Ideally it would block this bug, but this bug might block your render frame performance investigation.

&gt; Source/WebInspectorUI/UserInterface/Views/RenderingFrameTimelineView.js:253
&gt; +

We are missing an &apos;else&apos; clause, so childTreeElement could be undefined when pushing a child onto the stack. Please add an else clause that throws an error, and/or add a console assertion, or initialize it to null and add a comment that it&apos;s not necessary for record types without children (?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113422</commentid>
    <comment_count>4</comment_count>
      <attachid>257424</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-07-30 11:25:14 -0700</bug_when>
    <thetext>Comment on attachment 257424
[Patch] Proposed Fix

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

&gt; Source/WebInspectorUI/ChangeLog:62
&gt; +        Now that we preserve the frame&apos;s child record hierarchy, we process the entire tree,
&gt; +        yielding richer data grid output:
&gt; +
&gt; +           Frame X
&gt; +              Styles Recalculated
&gt; +                 Layout Invalidated
&gt; +              Composite
&gt; +                 Paint
&gt; +                 Paint
&gt; +
&gt; +        Compared to the previous output:
&gt; +
&gt; +           Frame X
&gt; +              Styles Recalculated
&gt; +              Layout Invalidated
&gt; +              Composite
&gt; +              Paint
&gt; +              Paint

Should we do this for the overview timeline graph/tree too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113534</commentid>
    <comment_count>5</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-07-30 15:50:06 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 257424 [details]
&gt; [Patch] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=257424&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/ChangeLog:62
&gt; &gt; +        Now that we preserve the frame&apos;s child record hierarchy, we process the entire tree,
&gt; &gt; +        yielding richer data grid output:
&gt; &gt; +
&gt; &gt; +           Frame X
&gt; &gt; +              Styles Recalculated
&gt; &gt; +                 Layout Invalidated
&gt; &gt; +              Composite
&gt; &gt; +                 Paint
&gt; &gt; +                 Paint
&gt; &gt; +
&gt; &gt; +        Compared to the previous output:
&gt; &gt; +
&gt; &gt; +           Frame X
&gt; &gt; +              Styles Recalculated
&gt; &gt; +              Layout Invalidated
&gt; &gt; +              Composite
&gt; &gt; +              Paint
&gt; &gt; +              Paint
&gt; 
&gt; Should we do this for the overview timeline graph/tree too?

Yes! We could at least do this in the Layout &amp; Rendering data grid. Tracked here: https://bugs.webkit.org/show_bug.cgi?id=147468</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113538</commentid>
    <comment_count>6</comment_count>
      <attachid>257863</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-07-30 16:05:01 -0700</bug_when>
    <thetext>Created attachment 257863
[Patch] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113549</commentid>
    <comment_count>7</comment_count>
      <attachid>257868</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-07-30 16:11:13 -0700</bug_when>
    <thetext>Created attachment 257868
[Patch] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113621</commentid>
    <comment_count>8</comment_count>
      <attachid>257868</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-30 18:56:03 -0700</bug_when>
    <thetext>Comment on attachment 257868
[Patch] Proposed Fix

Clearing flags on attachment: 257868

Committed r187634: &lt;http://trac.webkit.org/changeset/187634&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113622</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-30 18:56:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257424</attachid>
            <date>2015-07-23 20:12:40 -0700</date>
            <delta_ts>2015-07-30 16:04:58 -0700</delta_ts>
            <desc>[Patch] Proposed Fix</desc>
            <filename>bug-147029-20150723201123.patch</filename>
            <type>text/plain</type>
            <size>21302</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA4
NGNmNjM3MDA4YWIxZjNmYjNiMTRmYjVmOWU5OGNkMjZlZDE4NTAwLi5iODljYmE3Y2Q3ZGVjZDFh
ZWE5YWNhMzlkYjVjOTZkODJiZGMxYjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw2OCBAQAogMjAxNS0wNy0yMyAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQmV0dGVyIHNoYXJlIG9iamVjdHMgZ2VuZXJhdGVk
IGZyb20gdGltZWxpbmUgZXZlbnRzIChSZWNvcmRzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSB3YXkgVGltZWxp
bmVNYW5hZ2VyIHByb2Nlc3NlcyBldmVudHMsIHByZXNlcnZpbmcgdGhlIGV2ZW50IGhpZXJhcmNo
eSBhZnRlcgorICAgICAgICBjb252ZXJ0aW5nIHBheWxvYWRzIHRvIFRpbWVsaW5lUmVjb3JkIG9i
amVjdHMgYnkgcmV0YWluaW5nIHBhcmVudC1jaGlsZCByZWxhdGlvbnNoaXBzIGJldHdlZW4gcmVj
b3Jkcy4KKyAgICAgICAgVGhpcyBlbGltaW5hdGVzIHRoZSBuZWVkIGZvciBSZW5kZXJpbmdGcmFt
ZVRpbWVsaW5lUmVjb3JkIG9iamVjdHMgdG8gY3JlYXRlIGEgc2VwYXJhdGUgY29weSBvZiB0aGVp
ciBjaGlsZAorICAgICAgICByZWNvcmRzLCBhbmQgcHJvdmlkZXMgcmljaGVyIGRhdGEgZm9yIHRo
ZSBUaW1lbGluZXMgVUkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1Rp
bWVsaW5lTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIu
cHJvdG90eXBlLmV2ZW50UmVjb3JkZWQpOgorICAgICAgICBUcmFjayB0aGUgcGFyZW50IFRpbWVs
aW5lUmVjb3JkIGFzIGNoaWxkIHJlY29yZCBwYXlsb2FkcyBhcmUgdW5wYWNrZWQsIGFuZCBjcmVh
dGUKKyAgICAgICAgYSBoaWVyYXJjaHkgb2YgVGltZWxpbmVSZWNvcmRzIHRoYXQgbWlycm9ycyB0
aGUgb3JpZ2luYWwgZXZlbnQgcGF5bG9hZCBoaWVyYXJjaHkuCisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGltZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5fcHJvY2Vzc1JlY29yZCk6CisgICAgICAgIFJl
bmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgaXMgbm93IHByb2Nlc3NlZCBsaWtlIGFueSBvdGhl
ciBldmVudC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIucHJvdG90eXBl
Ll9wcm9jZXNzTmVzdGVkUmVjb3Jkcyk6IERlbGV0ZWQuCisgICAgICAgIFJldmVydGVkIGJhY2sg
dG8gYSBzaW5nbGUgcGFzcyBvdmVyIHRoZSBpbmNvbWluZyB0aW1lbGluZSBldmVudCBwYXlsb2Fk
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvTGF5b3V0VGltZWxpbmVSZWNvcmQu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkLnByb3RvdHlwZS5nZXQgZHVyaW5n
Q29tcG9zaXRlKTogRGVsZXRlZC4KKyAgICAgICAgUmVtb3ZlZCBkdXJpbmdDb21wb3NpdGUgcHJv
cGVydHkgYW5kIGNvbnN0cnVjdG9yIHBhcmFtZXRlci4gTm8gbG9uZ2VyIG5lZWRlZC4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1JlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5w
cm90b3R5cGUuZ2V0IGNoaWxkcmVuKTogRGVsZXRlZC4KKyAgICAgICAgUmVtb3ZlZCBjaGlsZHJl
biBwcm9wZXJ0eS4gSXQgbm93IGV4aXN0cyBvbiB0aGUgYmFzZSBjbGFzcyBUaW1lbGluZVJlY29y
ZC4KKyAgICAgICAgQWxzbyByZW1vdmVkIGNvZGUgdGhhdCB3YXMgbmVlZGVkIHRvIHByZXZlbnQg
cGFpbnQgdGltZSBmcm9tIGJlaW5nIGFkZGVkIHR3aWNlLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQucHJvdG90eXBlLl9pbml0aWFsaXplUHJvZmlsZUZyb21Q
YXlsb2FkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZCk6Cisg
ICAgICAgIFJlbW92ZWQgd29ya2Fyb3VuZCBhZGRlZCBpbjoKKyAgICAgICAgPGh0dHBzOi8vd2Vi
a2l0Lm9yZy9iLzE0NzAyNT4gV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTiAocjE4NjIxOCkgU2Ny
aXB0VGltZWxpbmVSZWNvcmQgYXR0ZW1wdHMgdG8gYWNjZXNzIG51bGwgcHJvcGVydHkKKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZVJlY29yZC5wcm90b3R5cGUuZ2V0IGNoaWxkcmVuKToKKyAgICAgICAgQWRkZWQgY2hpbGRy
ZW4gcHJvcGVydHkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1JlbmRlcmluZ0Zy
YW1lVGltZWxpbmVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1l
VGltZWxpbmVWaWV3LnByb3RvdHlwZS5fcHJvY2Vzc1BlbmRpbmdSZWNvcmRzKToKKyAgICAgICAg
Tm93IHRoYXQgd2UgcHJlc2VydmUgdGhlIGZyYW1lJ3MgY2hpbGQgcmVjb3JkIGhpZXJhcmNoeSwg
d2UgcHJvY2VzcyB0aGUgZW50aXJlIHRyZWUsCisgICAgICAgIHlpZWxkaW5nIHJpY2hlciBkYXRh
IGdyaWQgb3V0cHV0OgorCisgICAgICAgICAgIEZyYW1lIFgKKyAgICAgICAgICAgICAgU3R5bGVz
IFJlY2FsY3VsYXRlZAorICAgICAgICAgICAgICAgICBMYXlvdXQgSW52YWxpZGF0ZWQKKyAgICAg
ICAgICAgICAgQ29tcG9zaXRlCisgICAgICAgICAgICAgICAgIFBhaW50CisgICAgICAgICAgICAg
ICAgIFBhaW50CisKKyAgICAgICAgQ29tcGFyZWQgdG8gdGhlIHByZXZpb3VzIG91dHB1dDoKKwor
ICAgICAgICAgICBGcmFtZSBYCisgICAgICAgICAgICAgIFN0eWxlcyBSZWNhbGN1bGF0ZWQKKyAg
ICAgICAgICAgICAgTGF5b3V0IEludmFsaWRhdGVkCisgICAgICAgICAgICAgIENvbXBvc2l0ZQor
ICAgICAgICAgICAgICBQYWludAorICAgICAgICAgICAgICBQYWludAorCisyMDE1LTA3LTIzICBN
YXR0IEJha2VyICA8bWF0dGJha2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBqaXR0ZXJ5IGN1cnNvciB3aGVuIGFkanVzdGluZyB0aW1lIGludGVydmFsIHVzaW5nIHRpbWVs
aW5lIGdyYWJiZXJzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDcwOTUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCmluZGV4IDZh
ZGZjMzg4YzRhN2U3NjM3YjZiNmYxOWE3YWZhODY1ZGY5ZjgyZDcuLjIwOWIxNDdhZjRmODI3MzQ3
YTA1MWYxYmVkZWI2ZDc3YmQ2MWJhMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFn
ZXIuanMKQEAgLTE4MywzNSArMTgzLDExIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIg
PSBjbGFzcyBUaW1lbGluZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAg
ICAgIGlmICghdGhpcy5faXNDYXB0dXJpbmcpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgdmFyIHJlY29yZHMgPSB0aGlzLl9wcm9jZXNzTmVzdGVkUmVjb3JkcyhyZWNvcmRQYXlsb2Fk
KTsKLSAgICAgICAgcmVjb3Jkcy5mb3JFYWNoKGZ1bmN0aW9uKGN1cnJlbnRWYWx1ZSkgewotICAg
ICAgICAgICAgdGhpcy5fYWRkUmVjb3JkKGN1cnJlbnRWYWx1ZSk7Ci0gICAgICAgIH0uYmluZCh0
aGlzKSk7Ci0gICAgfQotCi0gICAgLy8gUHJvdGVjdGVkCi0KLSAgICBwYWdlRGlkTG9hZCh0aW1l
c3RhbXApCi0gICAgewotICAgICAgICAvLyBDYWxsZWQgZnJvbSBXZWJJbnNwZWN0b3IuUGFnZU9i
c2VydmVyLgotCi0gICAgICAgIGlmIChpc05hTihXZWJJbnNwZWN0b3IuZnJhbWVSZXNvdXJjZU1h
bmFnZXIubWFpbkZyYW1lLmxvYWRFdmVudFRpbWVzdGFtcCkpCi0gICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIubWFpbkZyYW1lLm1hcmtMb2FkRXZlbnQodGhpcy5h
Y3RpdmVSZWNvcmRpbmcuY29tcHV0ZUVsYXBzZWRUaW1lKHRpbWVzdGFtcCkpOwotICAgIH0KLQot
ICAgIC8vIFByaXZhdGUKLQotICAgIF9wcm9jZXNzTmVzdGVkUmVjb3JkcyhjaGlsZFJlY29yZFBh
eWxvYWRzLCBwYXJlbnRSZWNvcmRQYXlsb2FkKQotICAgIHsKLSAgICAgICAgLy8gQ29udmVydCB0
byBhIHNpbmdsZSBpdGVtIGFycmF5IGlmIG5lZWRlZC4KLSAgICAgICAgaWYgKCEoY2hpbGRSZWNv
cmRQYXlsb2FkcyBpbnN0YW5jZW9mIEFycmF5KSkKLSAgICAgICAgICAgIGNoaWxkUmVjb3JkUGF5
bG9hZHMgPSBbY2hpbGRSZWNvcmRQYXlsb2Fkc107Ci0KICAgICAgICAgdmFyIHJlY29yZHMgPSBb
XTsKIAogICAgICAgICAvLyBJdGVyYXRlIG92ZXIgdGhlIHJlY29yZHMgdHJlZSB1c2luZyBhIHN0
YWNrLiBEb2luZyB0aGlzIHJlY3Vyc2l2ZWx5IGhhcwogICAgICAgICAvLyBiZWVuIGtub3duIHRv
IGNhdXNlIGEgY2FsbCBzdGFjayBvdmVyZmxvdy4gaHR0cHM6Ly93ZWJraXQub3JnL2IvNzkxMDYK
LSAgICAgICAgdmFyIHN0YWNrID0gW3thcnJheTogY2hpbGRSZWNvcmRQYXlsb2FkcywgcGFyZW50
OiBwYXJlbnRSZWNvcmRQYXlsb2FkIHx8IG51bGwsIGluZGV4OiAwfV07CisgICAgICAgIHZhciBz
dGFjayA9IFt7YXJyYXk6IFtyZWNvcmRQYXlsb2FkXSwgcGFyZW50OiBudWxsLCBwYXJlbnRSZWNv
cmQ6IG51bGwsIGluZGV4OiAwfV07CiAgICAgICAgIHdoaWxlIChzdGFjay5sZW5ndGgpIHsKICAg
ICAgICAgICAgIHZhciBlbnRyeSA9IHN0YWNrLmxhc3RWYWx1ZTsKICAgICAgICAgICAgIHZhciBy
ZWNvcmRQYXlsb2FkcyA9IGVudHJ5LmFycmF5OwpAQCAtMjE5LDE5ICsxOTUsMzggQEAgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lTWFuYWdlciA9IGNsYXNzIFRpbWVsaW5lTWFuYWdlciBleHRlbmRzIFdl
Ykluc3BlY3Rvci5PYmplY3QKICAgICAgICAgICAgIGlmIChlbnRyeS5pbmRleCA8IHJlY29yZFBh
eWxvYWRzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIHZhciByZWNvcmRQYXlsb2FkID0gcmVj
b3JkUGF5bG9hZHNbZW50cnkuaW5kZXhdOwogICAgICAgICAgICAgICAgIHZhciByZWNvcmQgPSB0
aGlzLl9wcm9jZXNzRXZlbnQocmVjb3JkUGF5bG9hZCwgZW50cnkucGFyZW50KTsKLSAgICAgICAg
ICAgICAgICBpZiAocmVjb3JkKQorICAgICAgICAgICAgICAgIGlmIChyZWNvcmQpIHsKICAgICAg
ICAgICAgICAgICAgICAgcmVjb3Jkcy5wdXNoKHJlY29yZCk7CisgICAgICAgICAgICAgICAgICAg
IGlmIChlbnRyeS5wYXJlbnRSZWNvcmQpCisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5w
YXJlbnRSZWNvcmQuY2hpbGRyZW4ucHVzaChyZWNvcmQpOworICAgICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgICAgIGlmIChyZWNvcmRQYXlsb2FkLmNoaWxkcmVuKQotICAgICAgICAgICAg
ICAgICAgICBzdGFjay5wdXNoKHthcnJheTogcmVjb3JkUGF5bG9hZC5jaGlsZHJlbiwgcGFyZW50
OiByZWNvcmRQYXlsb2FkLCBpbmRleDogMH0pOworICAgICAgICAgICAgICAgICAgICBzdGFjay5w
dXNoKHthcnJheTogcmVjb3JkUGF5bG9hZC5jaGlsZHJlbiwgcGFyZW50OiByZWNvcmRQYXlsb2Fk
LCBwYXJlbnRSZWNvcmQ6IHJlY29yZCwgaW5kZXg6IDB9KTsKICAgICAgICAgICAgICAgICArK2Vu
dHJ5LmluZGV4OwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgc3RhY2sucG9w
KCk7CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4gcmVjb3JkczsKKyAgICAgICAgZm9yICh2
YXIgcmVjb3JkIG9mIHJlY29yZHMpIHsKKyAgICAgICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0g
V2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgJiYgIXJlY29yZC5jaGls
ZHJlbi5sZW5ndGgpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB0aGlz
Ll9hZGRSZWNvcmQocmVjb3JkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFByb3RlY3Rl
ZAorCisgICAgcGFnZURpZExvYWQodGltZXN0YW1wKQorICAgIHsKKyAgICAgICAgLy8gQ2FsbGVk
IGZyb20gV2ViSW5zcGVjdG9yLlBhZ2VPYnNlcnZlci4KKworICAgICAgICBpZiAoaXNOYU4oV2Vi
SW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLm1haW5GcmFtZS5sb2FkRXZlbnRUaW1lc3Rh
bXApKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLm1haW5G
cmFtZS5tYXJrTG9hZEV2ZW50KHRoaXMuYWN0aXZlUmVjb3JkaW5nLmNvbXB1dGVFbGFwc2VkVGlt
ZSh0aW1lc3RhbXApKTsKICAgICB9CiAKKyAgICAvLyBQcml2YXRlCisKICAgICBfcHJvY2Vzc1Jl
Y29yZChyZWNvcmRQYXlsb2FkLCBwYXJlbnRSZWNvcmRQYXlsb2FkKQogICAgIHsKICAgICAgICAg
dmFyIHN0YXJ0VGltZSA9IHRoaXMuYWN0aXZlUmVjb3JkaW5nLmNvbXB1dGVFbGFwc2VkVGltZShy
ZWNvcmRQYXlsb2FkLnN0YXJ0VGltZSk7CkBAIC0yNzksMjcgKzI3NCwxOSBAQCBXZWJJbnNwZWN0
b3IuVGltZWxpbmVNYW5hZ2VyID0gY2xhc3MgVGltZWxpbmVNYW5hZ2VyIGV4dGVuZHMgV2ViSW5z
cGVjdG9yLk9iamVjdAogICAgICAgICBjYXNlIFRpbWVsaW5lQWdlbnQuRXZlbnRUeXBlLlBhaW50
OgogICAgICAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDYpOiBQYWludCByZWNvcmRzIGRh
dGEgY29udGFpbmVkIHgsIHksIHdpZHRoLCBoZWlnaHQgcHJvcGVydGllcy4gVGhpcyBiZWNhbWUg
YSBxdWFkICJjbGlwIi4KICAgICAgICAgICAgIHZhciBxdWFkID0gcmVjb3JkUGF5bG9hZC5kYXRh
LmNsaXAgPyBuZXcgV2ViSW5zcGVjdG9yLlF1YWQocmVjb3JkUGF5bG9hZC5kYXRhLmNsaXApIDog
bnVsbDsKLSAgICAgICAgICAgIHZhciBkdXJpbmdDb21wb3NpdGUgPSByZWNvcmRQYXlsb2FkLl9f
ZHVyaW5nQ29tcG9zaXRlIHx8IGZhbHNlOwogICAgICAgICAgICAgaWYgKHF1YWQpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQoV2Vi
SW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlwZS5QYWludCwgc3RhcnRUaW1l
LCBlbmRUaW1lLCBjYWxsRnJhbWVzLCBzb3VyY2VDb2RlTG9jYXRpb24sIG51bGwsIG51bGwsIHF1
YWQud2lkdGgsIHF1YWQuaGVpZ2h0LCBxdWFkLCBkdXJpbmdDb21wb3NpdGUpOworICAgICAgICAg
ICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkKFdlYklu
c3BlY3Rvci5MYXlvdXRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuUGFpbnQsIHN0YXJ0VGltZSwg
ZW5kVGltZSwgY2FsbEZyYW1lcywgc291cmNlQ29kZUxvY2F0aW9uLCBudWxsLCBudWxsLCBxdWFk
LndpZHRoLCBxdWFkLmhlaWdodCwgcXVhZCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQoV2ViSW5z
cGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlwZS5QYWludCwgc3RhcnRUaW1lLCBl
bmRUaW1lLCBjYWxsRnJhbWVzLCBzb3VyY2VDb2RlTG9jYXRpb24sIHJlY29yZFBheWxvYWQuZGF0
YS54LCByZWNvcmRQYXlsb2FkLmRhdGEueSwgcmVjb3JkUGF5bG9hZC5kYXRhLndpZHRoLCByZWNv
cmRQYXlsb2FkLmRhdGEuaGVpZ2h0LCBudWxsLCBkdXJpbmdDb21wb3NpdGUpOworICAgICAgICAg
ICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkKFdlYklu
c3BlY3Rvci5MYXlvdXRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuUGFpbnQsIHN0YXJ0VGltZSwg
ZW5kVGltZSwgY2FsbEZyYW1lcywgc291cmNlQ29kZUxvY2F0aW9uLCByZWNvcmRQYXlsb2FkLmRh
dGEueCwgcmVjb3JkUGF5bG9hZC5kYXRhLnksIHJlY29yZFBheWxvYWQuZGF0YS53aWR0aCwgcmVj
b3JkUGF5bG9hZC5kYXRhLmhlaWdodCk7CiAKICAgICAgICAgY2FzZSBUaW1lbGluZUFnZW50LkV2
ZW50VHlwZS5Db21wb3NpdGU6Ci0gICAgICAgICAgICByZWNvcmRQYXlsb2FkLmNoaWxkcmVuLmZv
ckVhY2goZnVuY3Rpb24oY2hpbGRSZWNvcmRQYXlsb2FkKSB7Ci0gICAgICAgICAgICAgICAgY29u
c29sZS5hc3NlcnQoY2hpbGRSZWNvcmRQYXlsb2FkLnR5cGUgPT09IFRpbWVsaW5lQWdlbnQuRXZl
bnRUeXBlLlBhaW50LCBjaGlsZFJlY29yZFBheWxvYWQudHlwZSk7Ci0gICAgICAgICAgICAgICAg
Y2hpbGRSZWNvcmRQYXlsb2FkLl9fZHVyaW5nQ29tcG9zaXRlID0gdHJ1ZTsKLSAgICAgICAgICAg
IH0pOwogICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVS
ZWNvcmQoV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlwZS5Db21wb3Np
dGUsIHN0YXJ0VGltZSwgZW5kVGltZSwgY2FsbEZyYW1lcywgc291cmNlQ29kZUxvY2F0aW9uKTsK
IAogICAgICAgICBjYXNlIFRpbWVsaW5lQWdlbnQuRXZlbnRUeXBlLlJlbmRlcmluZ0ZyYW1lOgot
ICAgICAgICAgICAgaWYgKCFyZWNvcmRQYXlsb2FkLmNoaWxkcmVuKQorICAgICAgICAgICAgaWYg
KCFyZWNvcmRQYXlsb2FkLmNoaWxkcmVuIHx8ICFyZWNvcmRQYXlsb2FkLmNoaWxkcmVuLmxlbmd0
aCkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKIAotICAgICAgICAgICAgdmFyIGNoaWxk
cmVuID0gdGhpcy5fcHJvY2Vzc05lc3RlZFJlY29yZHMocmVjb3JkUGF5bG9hZC5jaGlsZHJlbiwg
cmVjb3JkUGF5bG9hZCk7Ci0gICAgICAgICAgICBpZiAoIWNoaWxkcmVuLmxlbmd0aCkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVj
dG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQoc3RhcnRUaW1lLCBlbmRUaW1lLCBjaGls
ZHJlbik7CisgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5SZW5kZXJpbmdGcmFt
ZVRpbWVsaW5lUmVjb3JkKHN0YXJ0VGltZSwgZW5kVGltZSk7CiAKICAgICAgICAgY2FzZSBUaW1l
bGluZUFnZW50LkV2ZW50VHlwZS5FdmFsdWF0ZVNjcmlwdDoKICAgICAgICAgICAgIGlmICghc291
cmNlQ29kZUxvY2F0aW9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvTGF5b3V0VGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTGF5b3V0VGltZWxpbmVSZWNvcmQuanMKaW5k
ZXggYzE4ZGNmN2RmNmU1YWVhNTE0NWFhM2UwMjIxNmNmNDEzOGJjZTdlNi4uN2ZkZjQyYTVhZWU0
ZTVkYjUzNjMwNzgwYzM5OTg2M2ZlY2FmMDRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0xheW91dFRpbWVsaW5lUmVjb3JkLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9MYXlvdXRUaW1lbGlu
ZVJlY29yZC5qcwpAQCAtMjUsNyArMjUsNyBAQAogCiBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxp
bmVSZWNvcmQgPSBjbGFzcyBMYXlvdXRUaW1lbGluZVJlY29yZCBleHRlbmRzIFdlYkluc3BlY3Rv
ci5UaW1lbGluZVJlY29yZAogewotICAgIGNvbnN0cnVjdG9yKGV2ZW50VHlwZSwgc3RhcnRUaW1l
LCBlbmRUaW1lLCBjYWxsRnJhbWVzLCBzb3VyY2VDb2RlTG9jYXRpb24sIHgsIHksIHdpZHRoLCBo
ZWlnaHQsIHF1YWQsIGR1cmluZ0NvbXBvc2l0ZSkKKyAgICBjb25zdHJ1Y3RvcihldmVudFR5cGUs
IHN0YXJ0VGltZSwgZW5kVGltZSwgY2FsbEZyYW1lcywgc291cmNlQ29kZUxvY2F0aW9uLCB4LCB5
LCB3aWR0aCwgaGVpZ2h0LCBxdWFkKQogICAgIHsKICAgICAgICAgc3VwZXIoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUmVjb3JkLlR5cGUuTGF5b3V0LCBzdGFydFRpbWUsIGVuZFRpbWUsIGNhbGxGcmFt
ZXMsIHNvdXJjZUNvZGVMb2NhdGlvbik7CiAKQEAgLTQwLDcgKzQwLDYgQEAgV2ViSW5zcGVjdG9y
LkxheW91dFRpbWVsaW5lUmVjb3JkID0gY2xhc3MgTGF5b3V0VGltZWxpbmVSZWNvcmQgZXh0ZW5k
cyBXZWJJbnNwZWMKICAgICAgICAgdGhpcy5fd2lkdGggPSB0eXBlb2Ygd2lkdGggPT09ICJudW1i
ZXIiID8gd2lkdGggOiBOYU47CiAgICAgICAgIHRoaXMuX2hlaWdodCA9IHR5cGVvZiBoZWlnaHQg
PT09ICJudW1iZXIiID8gaGVpZ2h0IDogTmFOOwogICAgICAgICB0aGlzLl9xdWFkID0gcXVhZCBp
bnN0YW5jZW9mIFdlYkluc3BlY3Rvci5RdWFkID8gcXVhZCA6IG51bGw7Ci0gICAgICAgIHRoaXMu
X2R1cmluZ0NvbXBvc2l0ZSA9IGR1cmluZ0NvbXBvc2l0ZSB8fCBmYWxzZTsKICAgICB9CiAKICAg
ICAvLyBTdGF0aWMKQEAgLTEwOSwxMSArMTA4LDYgQEAgV2ViSW5zcGVjdG9yLkxheW91dFRpbWVs
aW5lUmVjb3JkID0gY2xhc3MgTGF5b3V0VGltZWxpbmVSZWNvcmQgZXh0ZW5kcyBXZWJJbnNwZWMK
ICAgICAgICAgcmV0dXJuIHRoaXMuX3F1YWQ7CiAgICAgfQogCi0gICAgZ2V0IGR1cmluZ0NvbXBv
c2l0ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZHVyaW5nQ29tcG9zaXRlOwotICAg
IH0KLQogICAgIHNhdmVJZGVudGl0eVRvQ29va2llKGNvb2tpZSkKICAgICB7CiAgICAgICAgIHN1
cGVyLnNhdmVJZGVudGl0eVRvQ29va2llKGNvb2tpZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJl
Y29yZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZW5k
ZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmpzCmluZGV4IDJiNmRmN2FhYzdiZmYwY2ZhMTEzNmE5
ZDRiMjg1MzMxNDBlMDMyMGIuLjg3MzhiYWI1ODlkOGZmYmQzMDQyODQ3YzlhMTMxYmQ4OGMxODg3
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmpz
CkBAIC0yNSwxMSArMjUsMTAgQEAKIAogV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxp
bmVSZWNvcmQgPSBjbGFzcyBSZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkCiB7Ci0gICAgY29uc3RydWN0b3Ioc3RhcnRUaW1lLCBl
bmRUaW1lLCBjaGlsZHJlbikKKyAgICBjb25zdHJ1Y3RvcihzdGFydFRpbWUsIGVuZFRpbWUpCiAg
ICAgewogICAgICAgICBzdXBlcihXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5SZW5k
ZXJpbmdGcmFtZSwgc3RhcnRUaW1lLCBlbmRUaW1lKTsKIAotICAgICAgICB0aGlzLl9jaGlsZHJl
biA9IGNoaWxkcmVuIHx8IFtdOwogICAgICAgICB0aGlzLl9kdXJhdGlvbkJ5VGFza1R5cGUgPSBu
ZXcgTWFwOwogICAgICAgICB0aGlzLl9mcmFtZUluZGV4ID0gV2ViSW5zcGVjdG9yLlJlbmRlcmlu
Z0ZyYW1lVGltZWxpbmVSZWNvcmQuX25leHRGcmFtZUluZGV4Kys7CiAgICAgfQpAQCAtNjcsMTEg
KzY2LDYgQEAgV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgPSBjbGFz
cyBSZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkIGUKICAgICAgICAgcmV0dXJuIHRoaXMuX2Zy
YW1lSW5kZXggKyAxOwogICAgIH0KIAotICAgIGdldCBjaGlsZHJlbigpCi0gICAgewotICAgICAg
ICByZXR1cm4gdGhpcy5fY2hpbGRyZW4uc2xpY2UoKTsKLSAgICB9Ci0KICAgICBkdXJhdGlvbkZv
clRhc2sodGFza1R5cGUpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fZHVyYXRpb25CeVRhc2tU
eXBlLmhhcyh0YXNrVHlwZSkpCkBAIC05Niw3ICs5MCw3IEBAIFdlYkluc3BlY3Rvci5SZW5kZXJp
bmdGcmFtZVRpbWVsaW5lUmVjb3JkID0gY2xhc3MgUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29y
ZCBlCiAgICAgICAgIGlmICh0YXNrVHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1l
VGltZWxpbmVSZWNvcmQuVGFza1R5cGUuT3RoZXIpCiAgICAgICAgICAgICBkdXJhdGlvbiA9IHRo
aXMuX2NhbGN1bGF0ZUR1cmF0aW9uUmVtYWluZGVyKCk7CiAgICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgZHVyYXRpb24gPSB0aGlzLl9jaGlsZHJlbi5yZWR1Y2UoZnVuY3Rpb24ocHJldmlvdXNW
YWx1ZSwgY3VycmVudFZhbHVlKSB7CisgICAgICAgICAgICBkdXJhdGlvbiA9IHRoaXMuY2hpbGRy
ZW4ucmVkdWNlKGZ1bmN0aW9uKHByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSkgewogICAgICAg
ICAgICAgICAgIGlmICghdmFsaWRSZWNvcmRGb3JUYXNrVHlwZShjdXJyZW50VmFsdWUpKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNWYWx1ZTsKIApAQCAtMTA5LDE4ICsxMDMs
MTEgQEAgV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBS
ZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkIGUKICAgICAgICAgICAgIGlmICh0YXNrVHlwZSA9
PT0gV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQuVGFza1R5cGUuU2Ny
aXB0KSB7CiAgICAgICAgICAgICAgICAgLy8gTGF5b3V0IGV2ZW50cyBzeW5jaHJvbm91c2x5IHRy
aWdnZXJlZCBmcm9tIEphdmFTY3JpcHQgbXVzdCBiZSBzdWJ0cmFjdGVkIGZyb20gdGhlIHRvdGFs
CiAgICAgICAgICAgICAgICAgLy8gc2NyaXB0IHRpbWUsIHRvIHByZXZlbnQgdGhlIHRpbWUgZnJv
bSBiZWluZyBjb3VudGVkIHR3aWNlLgotICAgICAgICAgICAgICAgIGR1cmF0aW9uIC09IHRoaXMu
X2NoaWxkcmVuLnJlZHVjZShmdW5jdGlvbihwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUpIHsK
KyAgICAgICAgICAgICAgICBkdXJhdGlvbiAtPSB0aGlzLmNoaWxkcmVuLnJlZHVjZShmdW5jdGlv
bihwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgaWYg
KGN1cnJlbnRWYWx1ZS50eXBlID09PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5M
YXlvdXQgJiYgKGN1cnJlbnRWYWx1ZS5zb3VyY2VDb2RlTG9jYXRpb24gfHwgY3VycmVudFZhbHVl
LmNhbGxGcmFtZXMpKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFs
dWUgKyBjdXJyZW50VmFsdWUuZHVyYXRpb247CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBw
cmV2aW91c1ZhbHVlOwogICAgICAgICAgICAgICAgIH0sIDApOwotICAgICAgICAgICAgfSBlbHNl
IGlmICh0YXNrVHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNv
cmQuVGFza1R5cGUuUGFpbnQpIHsKLSAgICAgICAgICAgICAgICAvLyBQYWludCBldmVudHMgdHJp
Z2dlcmVkIGR1cmluZyBhIENvbXBvc2l0ZSBldmVudCBtdXN0IGJlIHN1YnRyYWN0ZWQgZnJvbSB0
aGUgdG90YWwgcGFpbnRpbmcgdGltZSwKLSAgICAgICAgICAgICAgICAvLyBzaW5jZSB0aGUgY29t
cG9zaXRpbmcgdGltZSBhbHJlYWR5IGluY2x1ZGVzIHRpbWUgc3BlbnQgaW4gdGhlc2UgUGFpbnQg
ZXZlbnRzLgotICAgICAgICAgICAgICAgIHZhciBwYWludFJlY29yZHMgPSB0aGlzLl9jaGlsZHJl
bi5maWx0ZXIoZnVuY3Rpb24ocmVjb3JkKSB7IHJldHVybiByZWNvcmQuZXZlbnRUeXBlID09PSBX
ZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQuRXZlbnRUeXBlLlBhaW50OyB9KTsKLSAg
ICAgICAgICAgICAgICBkdXJhdGlvbiAtPSBwYWludFJlY29yZHMucmVkdWNlKGZ1bmN0aW9uKHBy
ZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Y3VycmVudFZhbHVlLmR1cmluZ0NvbXBvc2l0ZSA/IHByZXZpb3VzVmFsdWUgKyBjdXJyZW50VmFs
dWUuZHVyYXRpb24gOiBwcmV2aW91c1ZhbHVlOwotICAgICAgICAgICAgICAgIH0sIDApOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHRUaW1lbGluZVJlY29yZC5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHRUaW1lbGluZVJlY29yZC5q
cwppbmRleCA3ZTIzMTRmZjZhYTlhZDdkNjhlZmE1ODZhMGI3NGZiMDhiODE5YmI2Li5iNWQ3OThj
MDEyMDFmZWEyZDY2ZGViODI5M2NkMzM4MzZlZTI5Y2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NjcmlwdFRp
bWVsaW5lUmVjb3JkLmpzCkBAIC03MywxMyArNzMsNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0VGlt
ZWxpbmVSZWNvcmQgPSBjbGFzcyBTY3JpcHRUaW1lbGluZVJlY29yZCBleHRlbmRzIFdlYkluc3Bl
YwogICAgICAgICBpZiAodGhpcy5fcHJvZmlsZSB8fCAhdGhpcy5fcHJvZmlsZVBheWxvYWQpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5v
cmcvYi8xNDcwMjk+IFdlYiBJbnNwZWN0b3I6IEJldHRlciBzaGFyZSBvYmplY3RzIGdlbmVyYXRl
ZCBmcm9tIHRpbWVsaW5lIGV2ZW50cyAoUmVjb3JkcykKLSAgICAgICAgaWYgKHRoaXMuX3Byb2Zp
bGVQYXlsb2FkLl9fcHJvZmlsZSkgewotICAgICAgICAgICAgdGhpcy5fcHJvZmlsZSA9IHRoaXMu
X3Byb2ZpbGVQYXlsb2FkLl9fcHJvZmlsZTsKLSAgICAgICAgICAgIHRoaXMuX3Byb2ZpbGVQYXls
b2FkID0gdW5kZWZpbmVkOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KICAgICAg
ICAgdmFyIHBheWxvYWQgPSB0aGlzLl9wcm9maWxlUGF5bG9hZDsKICAgICAgICAgdGhpcy5fcHJv
ZmlsZVBheWxvYWQgPSB1bmRlZmluZWQ7CiAKQEAgLTE1MSw3ICsxNDQsNyBAQCBXZWJJbnNwZWN0
b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQgPSBjbGFzcyBTY3JpcHRUaW1lbGluZVJlY29yZCBleHRl
bmRzIFdlYkluc3BlYwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgdGhpcy5f
cHJvZmlsZSA9IHBheWxvYWQuX19wcm9maWxlID0gbmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlKHJv
b3ROb2Rlcyk7CisgICAgICAgIHRoaXMuX3Byb2ZpbGUgPSBuZXcgV2ViSW5zcGVjdG9yLlByb2Zp
bGUocm9vdE5vZGVzKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNvcmQuanMKaW5kZXgg
MzVhYjJmYTE1NzI0NTZlZDhhYjIxNWM0NzlhNDRmYmNhMmNlYjM1OC4uNmQyNGU0Y2Q3ZmIyOGZk
ZDk1Nzk2ZTI1MDZmOGY3ZGU4OGQ4MjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UaW1lbGluZVJlY29yZC5qcwpAQCAt
MzksNiArMzksNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBUaW1lbGlu
ZVJlY29yZCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5fZW5kVGlt
ZSA9IGVuZFRpbWUgfHwgTmFOOwogICAgICAgICB0aGlzLl9jYWxsRnJhbWVzID0gY2FsbEZyYW1l
cyB8fCBudWxsOwogICAgICAgICB0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24gPSBzb3VyY2VDb2Rl
TG9jYXRpb24gfHwgbnVsbDsKKyAgICAgICAgdGhpcy5fY2hpbGRyZW4gPSBbXTsKICAgICB9CiAK
ICAgICAvLyBQdWJsaWMKQEAgLTEyMSw2ICsxMjIsMTEgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UmVjb3JkID0gY2xhc3MgVGltZWxpbmVSZWNvcmQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0
CiAgICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb247CiAgICAgfQogCisgICAg
Z2V0IGNoaWxkcmVuKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9jaGlsZHJlbjsKKyAg
ICB9CisKICAgICBzYXZlSWRlbnRpdHlUb0Nvb2tpZShjb29raWUpCiAgICAgewogICAgICAgICBj
b29raWVbV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlNvdXJjZUNvZGVVUkxDb29raWVLZXld
ID0gdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uID8gdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uLnNv
dXJjZUNvZGUudXJsID8gdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uLnNvdXJjZUNvZGUudXJsLmhh
c2ggOiBudWxsIDogbnVsbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1JlbmRlcmluZ0ZyYW1lVGltZWxpbmVWaWV3LmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZp
ZXcuanMKaW5kZXggNTlkZTRmYWIxNzE4OGRkZjRiMDA4NTBlNzFjYzJlYzU0ZjM1NzI2ZS4uNjU1
MDFkNmUyNzE5ZWM4ZTQ0MWIxOGRlYzhmYjZjZGNlZmZiYTE5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVuZGVyaW5nRnJhbWVUaW1lbGlu
ZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
UmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcuanMKQEAgLTIxNSwxNSArMjE1LDIzIEBAIFdlYklu
c3BlY3Rvci5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICAg
ICAgICAgIHZhciB0cmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRU
cmVlRWxlbWVudChyZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkKTsKICAgICAgICAgICAgIHZh
ciBkYXRhR3JpZE5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVE
YXRhR3JpZE5vZGUocmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZCwgdGhpcy56ZXJvVGltZSk7
Ci0KICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZFJvd0luU29ydE9yZGVyKHRyZWVFbGVt
ZW50LCBkYXRhR3JpZE5vZGUpOwogCi0gICAgICAgICAgICBmb3IgKHZhciBjaGlsZFJlY29yZCBv
ZiByZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmNoaWxkcmVuKSB7CisgICAgICAgICAgICB2
YXIgc3RhY2sgPSBbe2NoaWxkcmVuOiByZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmNoaWxk
cmVuLCBwYXJlbnRUcmVlRWxlbWVudDogdHJlZUVsZW1lbnQsIGluZGV4OiAwfV07CisgICAgICAg
ICAgICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0g
c3RhY2subGFzdFZhbHVlOworICAgICAgICAgICAgICAgIGlmIChlbnRyeS5pbmRleCA+PSBlbnRy
eS5jaGlsZHJlbi5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhY2sucG9wKCk7Cisg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgIHZhciBjaGlsZFJlY29yZCA9IGVudHJ5LmNoaWxkcmVuW2VudHJ5LmluZGV4XTsK
KyAgICAgICAgICAgICAgICB2YXIgY2hpbGRUcmVlRWxlbWVudDsKICAgICAgICAgICAgICAgICBp
ZiAoY2hpbGRSZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUu
TGF5b3V0KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBsYXlvdXRUcmVlRWxlbWVudCA9IG5l
dyBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVudChjaGlsZFJlY29yZCwgV2Vi
SW5zcGVjdG9yLlNvdXJjZUNvZGVMb2NhdGlvbi5OYW1lU3R5bGUuU2hvcnQpOworICAgICAgICAg
ICAgICAgICAgICBjaGlsZFRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZVJl
Y29yZFRyZWVFbGVtZW50KGNoaWxkUmVjb3JkLCBXZWJJbnNwZWN0b3IuU291cmNlQ29kZUxvY2F0
aW9uLk5hbWVTdHlsZS5TaG9ydCk7CiAgICAgICAgICAgICAgICAgICAgIHZhciBsYXlvdXREYXRh
R3JpZE5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lRGF0YUdyaWROb2RlKGNo
aWxkUmVjb3JkLCB0aGlzLnplcm9UaW1lKTsKIAotICAgICAgICAgICAgICAgICAgICB0aGlzLl9k
YXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihsYXlvdXRUcmVlRWxlbWVudCwgbGF5b3V0RGF0YUdy
aWROb2RlLCB0cmVlRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlk
LmFkZFJvd0luU29ydE9yZGVyKGNoaWxkVHJlZUVsZW1lbnQsIGxheW91dERhdGFHcmlkTm9kZSwg
ZW50cnkucGFyZW50VHJlZUVsZW1lbnQpOwogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hp
bGRSZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUuU2NyaXB0
KSB7CiAgICAgICAgICAgICAgICAgICAgIHZhciByb290Tm9kZXMgPSBbXTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKGNoaWxkUmVjb3JkLnByb2ZpbGUpIHsKQEAgLTIzMSwyMSArMjM5LDIxIEBA
IFdlYkluc3BlY3Rvci5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICByb290Tm9kZXMgPSBjaGlsZFJlY29yZC5wcm9maWxlLnRv
cERvd25Sb290Tm9kZXM7CiAgICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAg
ICAgICB2YXIgemVyb1RpbWUgPSB0aGlzLnplcm9UaW1lOwotICAgICAgICAgICAgICAgICAgICB2
YXIgc2NyaXB0VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkVHJl
ZUVsZW1lbnQoY2hpbGRSZWNvcmQsIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlTG9jYXRpb24uTmFt
ZVN0eWxlLlNob3J0LCByb290Tm9kZXMubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgdmFy
IHNjcmlwdERhdGFHcmlkTm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVEYXRh
R3JpZE5vZGUoY2hpbGRSZWNvcmQsIHplcm9UaW1lKTsKKyAgICAgICAgICAgICAgICAgICAgY2hp
bGRUcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVu
dChjaGlsZFJlY29yZCwgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVMb2NhdGlvbi5OYW1lU3R5bGUu
U2hvcnQsIHJvb3ROb2Rlcy5sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICB2YXIgc2NyaXB0
RGF0YUdyaWROb2RlID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZURhdGFHcmlkTm9k
ZShjaGlsZFJlY29yZCwgdGhpcy56ZXJvVGltZSk7CiAKLSAgICAgICAgICAgICAgICAgICAgdGhp
cy5fZGF0YUdyaWQuYWRkUm93SW5Tb3J0T3JkZXIoc2NyaXB0VHJlZUVsZW1lbnQsIHNjcmlwdERh
dGFHcmlkTm9kZSwgdHJlZUVsZW1lbnQpOwotCi0gICAgICAgICAgICAgICAgICAgIHZhciBzdGFy
dFRpbWUgPSB0aGlzLnN0YXJ0VGltZTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGVuZFRpbWUg
PSB0aGlzLmVuZFRpbWU7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZFJv
d0luU29ydE9yZGVyKGNoaWxkVHJlZUVsZW1lbnQsIHNjcmlwdERhdGFHcmlkTm9kZSwgZW50cnku
cGFyZW50VHJlZUVsZW1lbnQpOwogCiAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIHByb2Zp
bGVOb2RlIG9mIHJvb3ROb2RlcykgewogICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHByb2Zp
bGVOb2RlVHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlByb2ZpbGVOb2RlVHJlZUVsZW1l
bnQocHJvZmlsZU5vZGUsIHRoaXMpOwotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHByb2Zp
bGVOb2RlRGF0YUdyaWROb2RlID0gbmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlTm9kZURhdGFHcmlk
Tm9kZShwcm9maWxlTm9kZSwgemVyb1RpbWUsIHN0YXJ0VGltZSwgZW5kVGltZSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihwcm9maWxl
Tm9kZVRyZWVFbGVtZW50LCBwcm9maWxlTm9kZURhdGFHcmlkTm9kZSwgc2NyaXB0VHJlZUVsZW1l
bnQpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHByb2ZpbGVOb2RlRGF0YUdyaWROb2Rl
ID0gbmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlTm9kZURhdGFHcmlkTm9kZShwcm9maWxlTm9kZSwg
dGhpcy56ZXJvVGltZSwgdGhpcy5zdGFydFRpbWUsIHRoaXMuZW5kVGltZSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihwcm9maWxlTm9k
ZVRyZWVFbGVtZW50LCBwcm9maWxlTm9kZURhdGFHcmlkTm9kZSwgY2hpbGRUcmVlRWxlbWVudCk7
CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICBpZiAoY2hpbGRSZWNvcmQuY2hpbGRyZW4ubGVuZ3RoKQorICAgICAgICAgICAgICAgICAg
ICBzdGFjay5wdXNoKHtjaGlsZHJlbjogY2hpbGRSZWNvcmQuY2hpbGRyZW4sIHBhcmVudFRyZWVF
bGVtZW50OiBjaGlsZFRyZWVFbGVtZW50LCBpbmRleDogMH0pOworICAgICAgICAgICAgICAgICsr
ZW50cnkuaW5kZXg7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257863</attachid>
            <date>2015-07-30 16:05:01 -0700</date>
            <delta_ts>2015-07-30 16:11:10 -0700</delta_ts>
            <desc>[Patch] Proposed Fix</desc>
            <filename>bug-147029-20150730160500.patch</filename>
            <type>text/plain</type>
            <size>21251</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NjE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBj
ZTY2NDAwODBiNWU0OTk3ZWJjZjQ4ZjhhMWUyOTllMzllMjMwODk0Li43YmQ4NWE1ODBjNmU0MTYy
NjMxMTdlNWFlYjZlZjE0NjdmZDI3MjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAxNS0wNy0yMyAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQmV0dGVyIHNoYXJlIG9iamVjdHMgZ2VuZXJhdGVk
IGZyb20gdGltZWxpbmUgZXZlbnRzIChSZWNvcmRzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSB3YXkgVGltZWxp
bmVNYW5hZ2VyIHByb2Nlc3NlcyBldmVudHMsIHByZXNlcnZpbmcgdGhlIGV2ZW50IGhpZXJhcmNo
eSBhZnRlcgorICAgICAgICBjb252ZXJ0aW5nIHBheWxvYWRzIHRvIFRpbWVsaW5lUmVjb3JkIG9i
amVjdHMgYnkgcmV0YWluaW5nIHBhcmVudC1jaGlsZCByZWxhdGlvbnNoaXBzIGJldHdlZW4gcmVj
b3Jkcy4KKyAgICAgICAgVGhpcyBlbGltaW5hdGVzIHRoZSBuZWVkIGZvciBSZW5kZXJpbmdGcmFt
ZVRpbWVsaW5lUmVjb3JkIG9iamVjdHMgdG8gY3JlYXRlIGEgc2VwYXJhdGUgY29weSBvZiB0aGVp
ciBjaGlsZAorICAgICAgICByZWNvcmRzLCBhbmQgcHJvdmlkZXMgcmljaGVyIGRhdGEgZm9yIHRo
ZSBUaW1lbGluZXMgVUkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1Rp
bWVsaW5lTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIu
cHJvdG90eXBlLmV2ZW50UmVjb3JkZWQpOgorICAgICAgICBUcmFjayB0aGUgcGFyZW50IFRpbWVs
aW5lUmVjb3JkIGFzIGNoaWxkIHJlY29yZCBwYXlsb2FkcyBhcmUgdW5wYWNrZWQsIGFuZCBjcmVh
dGUKKyAgICAgICAgYSBoaWVyYXJjaHkgb2YgVGltZWxpbmVSZWNvcmRzIHRoYXQgbWlycm9ycyB0
aGUgb3JpZ2luYWwgZXZlbnQgcGF5bG9hZCBoaWVyYXJjaHkuCisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGltZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5fcHJvY2Vzc1JlY29yZCk6CisgICAgICAgIFJl
bmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgaXMgbm93IHByb2Nlc3NlZCBsaWtlIGFueSBvdGhl
ciBldmVudC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIucHJvdG90eXBl
Ll9wcm9jZXNzTmVzdGVkUmVjb3Jkcyk6IERlbGV0ZWQuCisgICAgICAgIFJldmVydGVkIGJhY2sg
dG8gYSBzaW5nbGUgcGFzcyBvdmVyIHRoZSBpbmNvbWluZyB0aW1lbGluZSBldmVudCBwYXlsb2Fk
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvTGF5b3V0VGltZWxpbmVSZWNvcmQu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkLnByb3RvdHlwZS5nZXQgZHVyaW5n
Q29tcG9zaXRlKTogRGVsZXRlZC4KKyAgICAgICAgUmVtb3ZlZCBkdXJpbmdDb21wb3NpdGUgcHJv
cGVydHkgYW5kIGNvbnN0cnVjdG9yIHBhcmFtZXRlci4gTm8gbG9uZ2VyIG5lZWRlZC4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1JlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5w
cm90b3R5cGUuZ2V0IGNoaWxkcmVuKTogRGVsZXRlZC4KKyAgICAgICAgUmVtb3ZlZCBjaGlsZHJl
biBwcm9wZXJ0eS4gSXQgbm93IGV4aXN0cyBvbiB0aGUgYmFzZSBjbGFzcyBUaW1lbGluZVJlY29y
ZC4KKyAgICAgICAgQWxzbyByZW1vdmVkIGNvZGUgdGhhdCB3YXMgbmVlZGVkIHRvIHByZXZlbnQg
cGFpbnQgdGltZSBmcm9tIGJlaW5nIGFkZGVkIHR3aWNlLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQucHJvdG90eXBlLl9pbml0aWFsaXplUHJvZmlsZUZyb21Q
YXlsb2FkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZCk6Cisg
ICAgICAgIFJlbW92ZWQgd29ya2Fyb3VuZCBhZGRlZCBpbjoKKyAgICAgICAgPGh0dHBzOi8vd2Vi
a2l0Lm9yZy9iLzE0NzAyNT4gV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTiAocjE4NjIxOCkgU2Ny
aXB0VGltZWxpbmVSZWNvcmQgYXR0ZW1wdHMgdG8gYWNjZXNzIG51bGwgcHJvcGVydHkKKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZVJlY29yZC5wcm90b3R5cGUuZ2V0IGNoaWxkcmVuKToKKyAgICAgICAgQWRkZWQgY2hpbGRy
ZW4gcHJvcGVydHkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1JlbmRlcmluZ0Zy
YW1lVGltZWxpbmVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1l
VGltZWxpbmVWaWV3LnByb3RvdHlwZS5fcHJvY2Vzc1BlbmRpbmdSZWNvcmRzKToKKyAgICAgICAg
Tm93IHRoYXQgd2UgcHJlc2VydmUgdGhlIGZyYW1lJ3MgY2hpbGQgcmVjb3JkIGhpZXJhcmNoeSwg
d2UgcHJvY2VzcyB0aGUgZW50aXJlIHRyZWUsCisgICAgICAgIHlpZWxkaW5nIHJpY2hlciBkYXRh
IGdyaWQgb3V0cHV0OgorCisgICAgICAgICAgIEZyYW1lIFgKKyAgICAgICAgICAgICAgU3R5bGVz
IFJlY2FsY3VsYXRlZAorICAgICAgICAgICAgICAgICBMYXlvdXQgSW52YWxpZGF0ZWQKKyAgICAg
ICAgICAgICAgQ29tcG9zaXRlCisgICAgICAgICAgICAgICAgIFBhaW50CisgICAgICAgICAgICAg
ICAgIFBhaW50CisKKyAgICAgICAgQ29tcGFyZWQgdG8gdGhlIHByZXZpb3VzIG91dHB1dDoKKwor
ICAgICAgICAgICBGcmFtZSBYCisgICAgICAgICAgICAgIFN0eWxlcyBSZWNhbGN1bGF0ZWQKKyAg
ICAgICAgICAgICAgTGF5b3V0IEludmFsaWRhdGVkCisgICAgICAgICAgICAgIENvbXBvc2l0ZQor
ICAgICAgICAgICAgICBQYWludAorICAgICAgICAgICAgICBQYWludAorCiAyMDE1LTA3LTMwICBO
aWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFJlZ3Jlc3Npb246ICVjIGlzIGJyb2tlbiBmb3IgY29uc29sZS5ncm91cApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGlt
ZWxpbmVNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCmluZGV4IDZhZGZjMzg4YzRhN2U3NjM3YjZiNmYx
OWE3YWZhODY1ZGY5ZjgyZDcuLjIwOWIxNDdhZjRmODI3MzQ3YTA1MWYxYmVkZWI2ZDc3YmQ2MWJh
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKQEAgLTE4MywzNSArMTgz
LDExIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIgPSBjbGFzcyBUaW1lbGluZU1hbmFn
ZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGlmICghdGhpcy5faXNDYXB0
dXJpbmcpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIHJlY29yZHMgPSB0aGlz
Ll9wcm9jZXNzTmVzdGVkUmVjb3JkcyhyZWNvcmRQYXlsb2FkKTsKLSAgICAgICAgcmVjb3Jkcy5m
b3JFYWNoKGZ1bmN0aW9uKGN1cnJlbnRWYWx1ZSkgewotICAgICAgICAgICAgdGhpcy5fYWRkUmVj
b3JkKGN1cnJlbnRWYWx1ZSk7Ci0gICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfQotCi0gICAg
Ly8gUHJvdGVjdGVkCi0KLSAgICBwYWdlRGlkTG9hZCh0aW1lc3RhbXApCi0gICAgewotICAgICAg
ICAvLyBDYWxsZWQgZnJvbSBXZWJJbnNwZWN0b3IuUGFnZU9ic2VydmVyLgotCi0gICAgICAgIGlm
IChpc05hTihXZWJJbnNwZWN0b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIubWFpbkZyYW1lLmxvYWRF
dmVudFRpbWVzdGFtcCkpCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuZnJhbWVSZXNvdXJjZU1h
bmFnZXIubWFpbkZyYW1lLm1hcmtMb2FkRXZlbnQodGhpcy5hY3RpdmVSZWNvcmRpbmcuY29tcHV0
ZUVsYXBzZWRUaW1lKHRpbWVzdGFtcCkpOwotICAgIH0KLQotICAgIC8vIFByaXZhdGUKLQotICAg
IF9wcm9jZXNzTmVzdGVkUmVjb3JkcyhjaGlsZFJlY29yZFBheWxvYWRzLCBwYXJlbnRSZWNvcmRQ
YXlsb2FkKQotICAgIHsKLSAgICAgICAgLy8gQ29udmVydCB0byBhIHNpbmdsZSBpdGVtIGFycmF5
IGlmIG5lZWRlZC4KLSAgICAgICAgaWYgKCEoY2hpbGRSZWNvcmRQYXlsb2FkcyBpbnN0YW5jZW9m
IEFycmF5KSkKLSAgICAgICAgICAgIGNoaWxkUmVjb3JkUGF5bG9hZHMgPSBbY2hpbGRSZWNvcmRQ
YXlsb2Fkc107Ci0KICAgICAgICAgdmFyIHJlY29yZHMgPSBbXTsKIAogICAgICAgICAvLyBJdGVy
YXRlIG92ZXIgdGhlIHJlY29yZHMgdHJlZSB1c2luZyBhIHN0YWNrLiBEb2luZyB0aGlzIHJlY3Vy
c2l2ZWx5IGhhcwogICAgICAgICAvLyBiZWVuIGtub3duIHRvIGNhdXNlIGEgY2FsbCBzdGFjayBv
dmVyZmxvdy4gaHR0cHM6Ly93ZWJraXQub3JnL2IvNzkxMDYKLSAgICAgICAgdmFyIHN0YWNrID0g
W3thcnJheTogY2hpbGRSZWNvcmRQYXlsb2FkcywgcGFyZW50OiBwYXJlbnRSZWNvcmRQYXlsb2Fk
IHx8IG51bGwsIGluZGV4OiAwfV07CisgICAgICAgIHZhciBzdGFjayA9IFt7YXJyYXk6IFtyZWNv
cmRQYXlsb2FkXSwgcGFyZW50OiBudWxsLCBwYXJlbnRSZWNvcmQ6IG51bGwsIGluZGV4OiAwfV07
CiAgICAgICAgIHdoaWxlIChzdGFjay5sZW5ndGgpIHsKICAgICAgICAgICAgIHZhciBlbnRyeSA9
IHN0YWNrLmxhc3RWYWx1ZTsKICAgICAgICAgICAgIHZhciByZWNvcmRQYXlsb2FkcyA9IGVudHJ5
LmFycmF5OwpAQCAtMjE5LDE5ICsxOTUsMzggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdl
ciA9IGNsYXNzIFRpbWVsaW5lTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAg
ICAgICAgICAgIGlmIChlbnRyeS5pbmRleCA8IHJlY29yZFBheWxvYWRzLmxlbmd0aCkgewogICAg
ICAgICAgICAgICAgIHZhciByZWNvcmRQYXlsb2FkID0gcmVjb3JkUGF5bG9hZHNbZW50cnkuaW5k
ZXhdOwogICAgICAgICAgICAgICAgIHZhciByZWNvcmQgPSB0aGlzLl9wcm9jZXNzRXZlbnQocmVj
b3JkUGF5bG9hZCwgZW50cnkucGFyZW50KTsKLSAgICAgICAgICAgICAgICBpZiAocmVjb3JkKQor
ICAgICAgICAgICAgICAgIGlmIChyZWNvcmQpIHsKICAgICAgICAgICAgICAgICAgICAgcmVjb3Jk
cy5wdXNoKHJlY29yZCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeS5wYXJlbnRSZWNv
cmQpCisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5wYXJlbnRSZWNvcmQuY2hpbGRyZW4u
cHVzaChyZWNvcmQpOworICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmIChy
ZWNvcmRQYXlsb2FkLmNoaWxkcmVuKQotICAgICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKHth
cnJheTogcmVjb3JkUGF5bG9hZC5jaGlsZHJlbiwgcGFyZW50OiByZWNvcmRQYXlsb2FkLCBpbmRl
eDogMH0pOworICAgICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKHthcnJheTogcmVjb3JkUGF5
bG9hZC5jaGlsZHJlbiwgcGFyZW50OiByZWNvcmRQYXlsb2FkLCBwYXJlbnRSZWNvcmQ6IHJlY29y
ZCwgaW5kZXg6IDB9KTsKICAgICAgICAgICAgICAgICArK2VudHJ5LmluZGV4OwogICAgICAgICAg
ICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgc3RhY2sucG9wKCk7CiAgICAgICAgIH0KIAotICAg
ICAgICByZXR1cm4gcmVjb3JkczsKKyAgICAgICAgZm9yICh2YXIgcmVjb3JkIG9mIHJlY29yZHMp
IHsKKyAgICAgICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlbmRlcmlu
Z0ZyYW1lVGltZWxpbmVSZWNvcmQgJiYgIXJlY29yZC5jaGlsZHJlbi5sZW5ndGgpCisgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmQocmVjb3JkKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgcGFnZURpZExvYWQo
dGltZXN0YW1wKQorICAgIHsKKyAgICAgICAgLy8gQ2FsbGVkIGZyb20gV2ViSW5zcGVjdG9yLlBh
Z2VPYnNlcnZlci4KKworICAgICAgICBpZiAoaXNOYU4oV2ViSW5zcGVjdG9yLmZyYW1lUmVzb3Vy
Y2VNYW5hZ2VyLm1haW5GcmFtZS5sb2FkRXZlbnRUaW1lc3RhbXApKQorICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLm1haW5GcmFtZS5tYXJrTG9hZEV2ZW50KHRo
aXMuYWN0aXZlUmVjb3JkaW5nLmNvbXB1dGVFbGFwc2VkVGltZSh0aW1lc3RhbXApKTsKICAgICB9
CiAKKyAgICAvLyBQcml2YXRlCisKICAgICBfcHJvY2Vzc1JlY29yZChyZWNvcmRQYXlsb2FkLCBw
YXJlbnRSZWNvcmRQYXlsb2FkKQogICAgIHsKICAgICAgICAgdmFyIHN0YXJ0VGltZSA9IHRoaXMu
YWN0aXZlUmVjb3JkaW5nLmNvbXB1dGVFbGFwc2VkVGltZShyZWNvcmRQYXlsb2FkLnN0YXJ0VGlt
ZSk7CkBAIC0yNzksMjcgKzI3NCwxOSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyID0g
Y2xhc3MgVGltZWxpbmVNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAg
ICBjYXNlIFRpbWVsaW5lQWdlbnQuRXZlbnRUeXBlLlBhaW50OgogICAgICAgICAgICAgLy8gQ09N
UEFUSUJJTElUWSAoaU9TIDYpOiBQYWludCByZWNvcmRzIGRhdGEgY29udGFpbmVkIHgsIHksIHdp
ZHRoLCBoZWlnaHQgcHJvcGVydGllcy4gVGhpcyBiZWNhbWUgYSBxdWFkICJjbGlwIi4KICAgICAg
ICAgICAgIHZhciBxdWFkID0gcmVjb3JkUGF5bG9hZC5kYXRhLmNsaXAgPyBuZXcgV2ViSW5zcGVj
dG9yLlF1YWQocmVjb3JkUGF5bG9hZC5kYXRhLmNsaXApIDogbnVsbDsKLSAgICAgICAgICAgIHZh
ciBkdXJpbmdDb21wb3NpdGUgPSByZWNvcmRQYXlsb2FkLl9fZHVyaW5nQ29tcG9zaXRlIHx8IGZh
bHNlOwogICAgICAgICAgICAgaWYgKHF1YWQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBX
ZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQoV2ViSW5zcGVjdG9yLkxheW91dFRpbWVs
aW5lUmVjb3JkLkV2ZW50VHlwZS5QYWludCwgc3RhcnRUaW1lLCBlbmRUaW1lLCBjYWxsRnJhbWVz
LCBzb3VyY2VDb2RlTG9jYXRpb24sIG51bGwsIG51bGwsIHF1YWQud2lkdGgsIHF1YWQuaGVpZ2h0
LCBxdWFkLCBkdXJpbmdDb21wb3NpdGUpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgV2Vi
SW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkKFdlYkluc3BlY3Rvci5MYXlvdXRUaW1lbGlu
ZVJlY29yZC5FdmVudFR5cGUuUGFpbnQsIHN0YXJ0VGltZSwgZW5kVGltZSwgY2FsbEZyYW1lcywg
c291cmNlQ29kZUxvY2F0aW9uLCBudWxsLCBudWxsLCBxdWFkLndpZHRoLCBxdWFkLmhlaWdodCwg
cXVhZCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJ
bnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQoV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5l
UmVjb3JkLkV2ZW50VHlwZS5QYWludCwgc3RhcnRUaW1lLCBlbmRUaW1lLCBjYWxsRnJhbWVzLCBz
b3VyY2VDb2RlTG9jYXRpb24sIHJlY29yZFBheWxvYWQuZGF0YS54LCByZWNvcmRQYXlsb2FkLmRh
dGEueSwgcmVjb3JkUGF5bG9hZC5kYXRhLndpZHRoLCByZWNvcmRQYXlsb2FkLmRhdGEuaGVpZ2h0
LCBudWxsLCBkdXJpbmdDb21wb3NpdGUpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgV2Vi
SW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkKFdlYkluc3BlY3Rvci5MYXlvdXRUaW1lbGlu
ZVJlY29yZC5FdmVudFR5cGUuUGFpbnQsIHN0YXJ0VGltZSwgZW5kVGltZSwgY2FsbEZyYW1lcywg
c291cmNlQ29kZUxvY2F0aW9uLCByZWNvcmRQYXlsb2FkLmRhdGEueCwgcmVjb3JkUGF5bG9hZC5k
YXRhLnksIHJlY29yZFBheWxvYWQuZGF0YS53aWR0aCwgcmVjb3JkUGF5bG9hZC5kYXRhLmhlaWdo
dCk7CiAKICAgICAgICAgY2FzZSBUaW1lbGluZUFnZW50LkV2ZW50VHlwZS5Db21wb3NpdGU6Ci0g
ICAgICAgICAgICByZWNvcmRQYXlsb2FkLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oY2hpbGRS
ZWNvcmRQYXlsb2FkKSB7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoY2hpbGRSZWNv
cmRQYXlsb2FkLnR5cGUgPT09IFRpbWVsaW5lQWdlbnQuRXZlbnRUeXBlLlBhaW50LCBjaGlsZFJl
Y29yZFBheWxvYWQudHlwZSk7Ci0gICAgICAgICAgICAgICAgY2hpbGRSZWNvcmRQYXlsb2FkLl9f
ZHVyaW5nQ29tcG9zaXRlID0gdHJ1ZTsKLSAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmV0
dXJuIG5ldyBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQoV2ViSW5zcGVjdG9yLkxh
eW91dFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlwZS5Db21wb3NpdGUsIHN0YXJ0VGltZSwgZW5kVGlt
ZSwgY2FsbEZyYW1lcywgc291cmNlQ29kZUxvY2F0aW9uKTsKIAogICAgICAgICBjYXNlIFRpbWVs
aW5lQWdlbnQuRXZlbnRUeXBlLlJlbmRlcmluZ0ZyYW1lOgotICAgICAgICAgICAgaWYgKCFyZWNv
cmRQYXlsb2FkLmNoaWxkcmVuKQorICAgICAgICAgICAgaWYgKCFyZWNvcmRQYXlsb2FkLmNoaWxk
cmVuIHx8ICFyZWNvcmRQYXlsb2FkLmNoaWxkcmVuLmxlbmd0aCkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbDsKIAotICAgICAgICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5fcHJvY2Vzc05l
c3RlZFJlY29yZHMocmVjb3JkUGF5bG9hZC5jaGlsZHJlbiwgcmVjb3JkUGF5bG9hZCk7Ci0gICAg
ICAgICAgICBpZiAoIWNoaWxkcmVuLmxlbmd0aCkKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVs
bDsKLSAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGlt
ZWxpbmVSZWNvcmQoc3RhcnRUaW1lLCBlbmRUaW1lLCBjaGlsZHJlbik7CisgICAgICAgICAgICBy
ZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkKHN0YXJ0
VGltZSwgZW5kVGltZSk7CiAKICAgICAgICAgY2FzZSBUaW1lbGluZUFnZW50LkV2ZW50VHlwZS5F
dmFsdWF0ZVNjcmlwdDoKICAgICAgICAgICAgIGlmICghc291cmNlQ29kZUxvY2F0aW9uKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTGF5
b3V0VGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvTGF5b3V0VGltZWxpbmVSZWNvcmQuanMKaW5kZXggYzE4ZGNmN2RmNmU1YWVhNTE0
NWFhM2UwMjIxNmNmNDEzOGJjZTdlNi4uN2ZkZjQyYTVhZWU0ZTVkYjUzNjMwNzgwYzM5OTg2M2Zl
Y2FmMDRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0xheW91dFRpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9MYXlvdXRUaW1lbGluZVJlY29yZC5qcwpAQCAtMjUsNyAr
MjUsNyBAQAogCiBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQgPSBjbGFzcyBMYXlv
dXRUaW1lbGluZVJlY29yZCBleHRlbmRzIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZAogewot
ICAgIGNvbnN0cnVjdG9yKGV2ZW50VHlwZSwgc3RhcnRUaW1lLCBlbmRUaW1lLCBjYWxsRnJhbWVz
LCBzb3VyY2VDb2RlTG9jYXRpb24sIHgsIHksIHdpZHRoLCBoZWlnaHQsIHF1YWQsIGR1cmluZ0Nv
bXBvc2l0ZSkKKyAgICBjb25zdHJ1Y3RvcihldmVudFR5cGUsIHN0YXJ0VGltZSwgZW5kVGltZSwg
Y2FsbEZyYW1lcywgc291cmNlQ29kZUxvY2F0aW9uLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBxdWFk
KQogICAgIHsKICAgICAgICAgc3VwZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUu
TGF5b3V0LCBzdGFydFRpbWUsIGVuZFRpbWUsIGNhbGxGcmFtZXMsIHNvdXJjZUNvZGVMb2NhdGlv
bik7CiAKQEAgLTQwLDcgKzQwLDYgQEAgV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3Jk
ID0gY2xhc3MgTGF5b3V0VGltZWxpbmVSZWNvcmQgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAg
dGhpcy5fd2lkdGggPSB0eXBlb2Ygd2lkdGggPT09ICJudW1iZXIiID8gd2lkdGggOiBOYU47CiAg
ICAgICAgIHRoaXMuX2hlaWdodCA9IHR5cGVvZiBoZWlnaHQgPT09ICJudW1iZXIiID8gaGVpZ2h0
IDogTmFOOwogICAgICAgICB0aGlzLl9xdWFkID0gcXVhZCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rv
ci5RdWFkID8gcXVhZCA6IG51bGw7Ci0gICAgICAgIHRoaXMuX2R1cmluZ0NvbXBvc2l0ZSA9IGR1
cmluZ0NvbXBvc2l0ZSB8fCBmYWxzZTsKICAgICB9CiAKICAgICAvLyBTdGF0aWMKQEAgLTEwOSwx
MSArMTA4LDYgQEAgV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkID0gY2xhc3MgTGF5
b3V0VGltZWxpbmVSZWNvcmQgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgcmV0dXJuIHRoaXMu
X3F1YWQ7CiAgICAgfQogCi0gICAgZ2V0IGR1cmluZ0NvbXBvc2l0ZSgpCi0gICAgewotICAgICAg
ICByZXR1cm4gdGhpcy5fZHVyaW5nQ29tcG9zaXRlOwotICAgIH0KLQogICAgIHNhdmVJZGVudGl0
eVRvQ29va2llKGNvb2tpZSkKICAgICB7CiAgICAgICAgIHN1cGVyLnNhdmVJZGVudGl0eVRvQ29v
a2llKGNvb2tpZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVj
b3JkLmpzCmluZGV4IDJiNmRmN2FhYzdiZmYwY2ZhMTEzNmE5ZDRiMjg1MzMxNDBlMDMyMGIuLjg3
MzhiYWI1ODlkOGZmYmQzMDQyODQ3YzlhMTMxYmQ4OGMxODg3ODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZW5kZXJpbmdGcmFtZVRpbWVs
aW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmpzCkBAIC0yNSwxMSArMjUsMTAgQEAK
IAogV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBSZW5k
ZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVj
b3JkCiB7Ci0gICAgY29uc3RydWN0b3Ioc3RhcnRUaW1lLCBlbmRUaW1lLCBjaGlsZHJlbikKKyAg
ICBjb25zdHJ1Y3RvcihzdGFydFRpbWUsIGVuZFRpbWUpCiAgICAgewogICAgICAgICBzdXBlcihX
ZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5SZW5kZXJpbmdGcmFtZSwgc3RhcnRUaW1l
LCBlbmRUaW1lKTsKIAotICAgICAgICB0aGlzLl9jaGlsZHJlbiA9IGNoaWxkcmVuIHx8IFtdOwog
ICAgICAgICB0aGlzLl9kdXJhdGlvbkJ5VGFza1R5cGUgPSBuZXcgTWFwOwogICAgICAgICB0aGlz
Ll9mcmFtZUluZGV4ID0gV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQu
X25leHRGcmFtZUluZGV4Kys7CiAgICAgfQpAQCAtNjcsMTEgKzY2LDYgQEAgV2ViSW5zcGVjdG9y
LlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBSZW5kZXJpbmdGcmFtZVRpbWVs
aW5lUmVjb3JkIGUKICAgICAgICAgcmV0dXJuIHRoaXMuX2ZyYW1lSW5kZXggKyAxOwogICAgIH0K
IAotICAgIGdldCBjaGlsZHJlbigpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY2hpbGRy
ZW4uc2xpY2UoKTsKLSAgICB9Ci0KICAgICBkdXJhdGlvbkZvclRhc2sodGFza1R5cGUpCiAgICAg
ewogICAgICAgICBpZiAodGhpcy5fZHVyYXRpb25CeVRhc2tUeXBlLmhhcyh0YXNrVHlwZSkpCkBA
IC05Niw3ICs5MCw3IEBAIFdlYkluc3BlY3Rvci5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3Jk
ID0gY2xhc3MgUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZCBlCiAgICAgICAgIGlmICh0YXNr
VHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQuVGFza1R5
cGUuT3RoZXIpCiAgICAgICAgICAgICBkdXJhdGlvbiA9IHRoaXMuX2NhbGN1bGF0ZUR1cmF0aW9u
UmVtYWluZGVyKCk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgZHVyYXRpb24gPSB0aGlz
Ll9jaGlsZHJlbi5yZWR1Y2UoZnVuY3Rpb24ocHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlKSB7
CisgICAgICAgICAgICBkdXJhdGlvbiA9IHRoaXMuY2hpbGRyZW4ucmVkdWNlKGZ1bmN0aW9uKHBy
ZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSkgewogICAgICAgICAgICAgICAgIGlmICghdmFsaWRS
ZWNvcmRGb3JUYXNrVHlwZShjdXJyZW50VmFsdWUpKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gcHJldmlvdXNWYWx1ZTsKIApAQCAtMTA5LDE4ICsxMDMsMTEgQEAgV2ViSW5zcGVjdG9yLlJl
bmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBSZW5kZXJpbmdGcmFtZVRpbWVsaW5l
UmVjb3JkIGUKICAgICAgICAgICAgIGlmICh0YXNrVHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlbmRl
cmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQuVGFza1R5cGUuU2NyaXB0KSB7CiAgICAgICAgICAgICAg
ICAgLy8gTGF5b3V0IGV2ZW50cyBzeW5jaHJvbm91c2x5IHRyaWdnZXJlZCBmcm9tIEphdmFTY3Jp
cHQgbXVzdCBiZSBzdWJ0cmFjdGVkIGZyb20gdGhlIHRvdGFsCiAgICAgICAgICAgICAgICAgLy8g
c2NyaXB0IHRpbWUsIHRvIHByZXZlbnQgdGhlIHRpbWUgZnJvbSBiZWluZyBjb3VudGVkIHR3aWNl
LgotICAgICAgICAgICAgICAgIGR1cmF0aW9uIC09IHRoaXMuX2NoaWxkcmVuLnJlZHVjZShmdW5j
dGlvbihwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUpIHsKKyAgICAgICAgICAgICAgICBkdXJh
dGlvbiAtPSB0aGlzLmNoaWxkcmVuLnJlZHVjZShmdW5jdGlvbihwcmV2aW91c1ZhbHVlLCBjdXJy
ZW50VmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS50eXBlID09
PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5MYXlvdXQgJiYgKGN1cnJlbnRWYWx1
ZS5zb3VyY2VDb2RlTG9jYXRpb24gfHwgY3VycmVudFZhbHVlLmNhbGxGcmFtZXMpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWUgKyBjdXJyZW50VmFsdWUuZHVy
YXRpb247CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c1ZhbHVlOwogICAgICAg
ICAgICAgICAgIH0sIDApOwotICAgICAgICAgICAgfSBlbHNlIGlmICh0YXNrVHlwZSA9PT0gV2Vi
SW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQuVGFza1R5cGUuUGFpbnQpIHsK
LSAgICAgICAgICAgICAgICAvLyBQYWludCBldmVudHMgdHJpZ2dlcmVkIGR1cmluZyBhIENvbXBv
c2l0ZSBldmVudCBtdXN0IGJlIHN1YnRyYWN0ZWQgZnJvbSB0aGUgdG90YWwgcGFpbnRpbmcgdGlt
ZSwKLSAgICAgICAgICAgICAgICAvLyBzaW5jZSB0aGUgY29tcG9zaXRpbmcgdGltZSBhbHJlYWR5
IGluY2x1ZGVzIHRpbWUgc3BlbnQgaW4gdGhlc2UgUGFpbnQgZXZlbnRzLgotICAgICAgICAgICAg
ICAgIHZhciBwYWludFJlY29yZHMgPSB0aGlzLl9jaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24ocmVj
b3JkKSB7IHJldHVybiByZWNvcmQuZXZlbnRUeXBlID09PSBXZWJJbnNwZWN0b3IuTGF5b3V0VGlt
ZWxpbmVSZWNvcmQuRXZlbnRUeXBlLlBhaW50OyB9KTsKLSAgICAgICAgICAgICAgICBkdXJhdGlv
biAtPSBwYWludFJlY29yZHMucmVkdWNlKGZ1bmN0aW9uKHByZXZpb3VzVmFsdWUsIGN1cnJlbnRW
YWx1ZSkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlLmR1cmluZ0Nv
bXBvc2l0ZSA/IHByZXZpb3VzVmFsdWUgKyBjdXJyZW50VmFsdWUuZHVyYXRpb24gOiBwcmV2aW91
c1ZhbHVlOwotICAgICAgICAgICAgICAgIH0sIDApOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9TY3JpcHRUaW1lbGluZVJlY29yZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9TY3JpcHRUaW1lbGluZVJlY29yZC5qcwppbmRleCA3ZTIzMTRmZjZhYTlh
ZDdkNjhlZmE1ODZhMGI3NGZiMDhiODE5YmI2Li5iNWQ3OThjMDEyMDFmZWEyZDY2ZGViODI5M2Nk
MzM4MzZlZTI5Y2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NjcmlwdFRpbWVsaW5lUmVjb3JkLmpzCkBAIC03
MywxMyArNzMsNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQgPSBjbGFzcyBT
Y3JpcHRUaW1lbGluZVJlY29yZCBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICBpZiAodGhpcy5f
cHJvZmlsZSB8fCAhdGhpcy5fcHJvZmlsZVBheWxvYWQpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDcwMjk+IFdlYiBJbnNw
ZWN0b3I6IEJldHRlciBzaGFyZSBvYmplY3RzIGdlbmVyYXRlZCBmcm9tIHRpbWVsaW5lIGV2ZW50
cyAoUmVjb3JkcykKLSAgICAgICAgaWYgKHRoaXMuX3Byb2ZpbGVQYXlsb2FkLl9fcHJvZmlsZSkg
ewotICAgICAgICAgICAgdGhpcy5fcHJvZmlsZSA9IHRoaXMuX3Byb2ZpbGVQYXlsb2FkLl9fcHJv
ZmlsZTsKLSAgICAgICAgICAgIHRoaXMuX3Byb2ZpbGVQYXlsb2FkID0gdW5kZWZpbmVkOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KICAgICAgICAgdmFyIHBheWxvYWQgPSB0aGlz
Ll9wcm9maWxlUGF5bG9hZDsKICAgICAgICAgdGhpcy5fcHJvZmlsZVBheWxvYWQgPSB1bmRlZmlu
ZWQ7CiAKQEAgLTE1MSw3ICsxNDQsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVSZWNv
cmQgPSBjbGFzcyBTY3JpcHRUaW1lbGluZVJlY29yZCBleHRlbmRzIFdlYkluc3BlYwogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgdGhpcy5fcHJvZmlsZSA9IHBheWxvYWQuX19w
cm9maWxlID0gbmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlKHJvb3ROb2Rlcyk7CisgICAgICAgIHRo
aXMuX3Byb2ZpbGUgPSBuZXcgV2ViSW5zcGVjdG9yLlByb2ZpbGUocm9vdE5vZGVzKTsKICAgICB9
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvVGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNvcmQuanMKaW5kZXggMzVhYjJmYTE1NzI0NTZlZDhhYjIx
NWM0NzlhNDRmYmNhMmNlYjM1OC4uNmQyNGU0Y2Q3ZmIyOGZkZDk1Nzk2ZTI1MDZmOGY3ZGU4OGQ4
MjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL1RpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9UaW1lbGluZVJlY29yZC5qcwpAQCAtMzksNiArMzksNyBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBUaW1lbGluZVJlY29yZCBleHRlbmRzIFdlYklu
c3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5fZW5kVGltZSA9IGVuZFRpbWUgfHwgTmFOOwog
ICAgICAgICB0aGlzLl9jYWxsRnJhbWVzID0gY2FsbEZyYW1lcyB8fCBudWxsOwogICAgICAgICB0
aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24gPSBzb3VyY2VDb2RlTG9jYXRpb24gfHwgbnVsbDsKKyAg
ICAgICAgdGhpcy5fY2hpbGRyZW4gPSBbXTsKICAgICB9CiAKICAgICAvLyBQdWJsaWMKQEAgLTEy
MSw2ICsxMjIsMTEgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkID0gY2xhc3MgVGltZWxp
bmVSZWNvcmQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHJldHVybiB0aGlz
Ll9zb3VyY2VDb2RlTG9jYXRpb247CiAgICAgfQogCisgICAgZ2V0IGNoaWxkcmVuKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLl9jaGlsZHJlbjsKKyAgICB9CisKICAgICBzYXZlSWRlbnRp
dHlUb0Nvb2tpZShjb29raWUpCiAgICAgewogICAgICAgICBjb29raWVbV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUmVjb3JkLlNvdXJjZUNvZGVVUkxDb29raWVLZXldID0gdGhpcy5fc291cmNlQ29kZUxv
Y2F0aW9uID8gdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uLnNvdXJjZUNvZGUudXJsID8gdGhpcy5f
c291cmNlQ29kZUxvY2F0aW9uLnNvdXJjZUNvZGUudXJsLmhhc2ggOiBudWxsIDogbnVsbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlbmRl
cmluZ0ZyYW1lVGltZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcuanMKaW5kZXggY2YzNDFlNTA4
NjM3MjQyODQ4NTI0ZTQxODUwNTRjY2YzOTRhMDZmMS4uMmZlNWMwYjk1ZjM5ZjBmYzhhNjZhM2Nl
ZTk0MWQwYzQwODEwNjgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVuZGVyaW5nRnJhbWVUaW1lbGlu
ZVZpZXcuanMKQEAgLTI2MywxNSArMjYzLDIzIEBAIFdlYkluc3BlY3Rvci5SZW5kZXJpbmdGcmFt
ZVRpbWVsaW5lVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIHZhciB0cmVlRWxlbWVu
dCA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVudChyZW5kZXJpbmdG
cmFtZVRpbWVsaW5lUmVjb3JkKTsKICAgICAgICAgICAgIHZhciBkYXRhR3JpZE5vZGUgPSBuZXcg
V2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVEYXRhR3JpZE5vZGUocmVuZGVyaW5n
RnJhbWVUaW1lbGluZVJlY29yZCwgdGhpcy56ZXJvVGltZSk7Ci0KICAgICAgICAgICAgIHRoaXMu
X2RhdGFHcmlkLmFkZFJvd0luU29ydE9yZGVyKHRyZWVFbGVtZW50LCBkYXRhR3JpZE5vZGUpOwog
Ci0gICAgICAgICAgICBmb3IgKHZhciBjaGlsZFJlY29yZCBvZiByZW5kZXJpbmdGcmFtZVRpbWVs
aW5lUmVjb3JkLmNoaWxkcmVuKSB7CisgICAgICAgICAgICB2YXIgc3RhY2sgPSBbe2NoaWxkcmVu
OiByZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmNoaWxkcmVuLCBwYXJlbnRUcmVlRWxlbWVu
dDogdHJlZUVsZW1lbnQsIGluZGV4OiAwfV07CisgICAgICAgICAgICB3aGlsZSAoc3RhY2subGVu
Z3RoKSB7CisgICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gc3RhY2subGFzdFZhbHVlOworICAg
ICAgICAgICAgICAgIGlmIChlbnRyeS5pbmRleCA+PSBlbnRyeS5jaGlsZHJlbi5sZW5ndGgpIHsK
KyAgICAgICAgICAgICAgICAgICAgc3RhY2sucG9wKCk7CisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHZhciBjaGlsZFJl
Y29yZCA9IGVudHJ5LmNoaWxkcmVuW2VudHJ5LmluZGV4XTsKKyAgICAgICAgICAgICAgICB2YXIg
Y2hpbGRUcmVlRWxlbWVudCA9IG51bGw7CiAgICAgICAgICAgICAgICAgaWYgKGNoaWxkUmVjb3Jk
LnR5cGUgPT09IFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLkxheW91dCkgewotICAg
ICAgICAgICAgICAgICAgICB2YXIgbGF5b3V0VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQoY2hpbGRSZWNvcmQsIFdlYkluc3BlY3Rvci5Tb3Vy
Y2VDb2RlTG9jYXRpb24uTmFtZVN0eWxlLlNob3J0KTsKKyAgICAgICAgICAgICAgICAgICAgY2hp
bGRUcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVu
dChjaGlsZFJlY29yZCwgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVMb2NhdGlvbi5OYW1lU3R5bGUu
U2hvcnQpOwogICAgICAgICAgICAgICAgICAgICB2YXIgbGF5b3V0RGF0YUdyaWROb2RlID0gbmV3
IFdlYkluc3BlY3Rvci5MYXlvdXRUaW1lbGluZURhdGFHcmlkTm9kZShjaGlsZFJlY29yZCwgdGhp
cy56ZXJvVGltZSk7CiAKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuYWRkUm93
SW5Tb3J0T3JkZXIobGF5b3V0VHJlZUVsZW1lbnQsIGxheW91dERhdGFHcmlkTm9kZSwgdHJlZUVs
ZW1lbnQpOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRP
cmRlcihjaGlsZFRyZWVFbGVtZW50LCBsYXlvdXREYXRhR3JpZE5vZGUsIGVudHJ5LnBhcmVudFRy
ZWVFbGVtZW50KTsKICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkUmVjb3JkLnR5cGUg
PT09IFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLlNjcmlwdCkgewogICAgICAgICAg
ICAgICAgICAgICB2YXIgcm9vdE5vZGVzID0gW107CiAgICAgICAgICAgICAgICAgICAgIGlmIChj
aGlsZFJlY29yZC5wcm9maWxlKSB7CkBAIC0yNzksMjEgKzI4NywyMSBAQCBXZWJJbnNwZWN0b3Iu
UmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAg
ICAgICAgICAgcm9vdE5vZGVzID0gY2hpbGRSZWNvcmQucHJvZmlsZS50b3BEb3duUm9vdE5vZGVz
OwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgdmFyIHplcm9U
aW1lID0gdGhpcy56ZXJvVGltZTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHNjcmlwdFRyZWVF
bGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZFRyZWVFbGVtZW50KGNoaWxk
UmVjb3JkLCBXZWJJbnNwZWN0b3IuU291cmNlQ29kZUxvY2F0aW9uLk5hbWVTdHlsZS5TaG9ydCwg
cm9vdE5vZGVzLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBzY3JpcHREYXRhR3Jp
ZE5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lRGF0YUdyaWROb2RlKGNoaWxk
UmVjb3JkLCB6ZXJvVGltZSk7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkVHJlZUVsZW1lbnQg
PSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQoY2hpbGRSZWNvcmQs
IFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlTG9jYXRpb24uTmFtZVN0eWxlLlNob3J0LCByb290Tm9k
ZXMubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHNjcmlwdERhdGFHcmlkTm9kZSA9
IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVEYXRhR3JpZE5vZGUoY2hpbGRSZWNvcmQs
IHRoaXMuemVyb1RpbWUpOwogCi0gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFk
ZFJvd0luU29ydE9yZGVyKHNjcmlwdFRyZWVFbGVtZW50LCBzY3JpcHREYXRhR3JpZE5vZGUsIHRy
ZWVFbGVtZW50KTsKLQotICAgICAgICAgICAgICAgICAgICB2YXIgc3RhcnRUaW1lID0gdGhpcy5z
dGFydFRpbWU7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBlbmRUaW1lID0gdGhpcy5lbmRUaW1l
OworICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihj
aGlsZFRyZWVFbGVtZW50LCBzY3JpcHREYXRhR3JpZE5vZGUsIGVudHJ5LnBhcmVudFRyZWVFbGVt
ZW50KTsKIAogICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBwcm9maWxlTm9kZSBvZiByb290
Tm9kZXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwcm9maWxlTm9kZVRyZWVFbGVt
ZW50ID0gbmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlTm9kZVRyZWVFbGVtZW50KHByb2ZpbGVOb2Rl
LCB0aGlzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwcm9maWxlTm9kZURhdGFHcmlk
Tm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuUHJvZmlsZU5vZGVEYXRhR3JpZE5vZGUocHJvZmlsZU5v
ZGUsIHplcm9UaW1lLCBzdGFydFRpbWUsIGVuZFRpbWUpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fZGF0YUdyaWQuYWRkUm93SW5Tb3J0T3JkZXIocHJvZmlsZU5vZGVUcmVlRWxlbWVu
dCwgcHJvZmlsZU5vZGVEYXRhR3JpZE5vZGUsIHNjcmlwdFRyZWVFbGVtZW50KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHZhciBwcm9maWxlTm9kZURhdGFHcmlkTm9kZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuUHJvZmlsZU5vZGVEYXRhR3JpZE5vZGUocHJvZmlsZU5vZGUsIHRoaXMuemVyb1RpbWUs
IHRoaXMuc3RhcnRUaW1lLCB0aGlzLmVuZFRpbWUpOworICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fZGF0YUdyaWQuYWRkUm93SW5Tb3J0T3JkZXIocHJvZmlsZU5vZGVUcmVlRWxlbWVudCwg
cHJvZmlsZU5vZGVEYXRhR3JpZE5vZGUsIGNoaWxkVHJlZUVsZW1lbnQpOwogICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGNoaWxk
VHJlZUVsZW1lbnQgJiYgY2hpbGRSZWNvcmQuY2hpbGRyZW4ubGVuZ3RoKQorICAgICAgICAgICAg
ICAgICAgICBzdGFjay5wdXNoKHtjaGlsZHJlbjogY2hpbGRSZWNvcmQuY2hpbGRyZW4sIHBhcmVu
dFRyZWVFbGVtZW50OiBjaGlsZFRyZWVFbGVtZW50LCBpbmRleDogMH0pOworICAgICAgICAgICAg
ICAgICsrZW50cnkuaW5kZXg7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257868</attachid>
            <date>2015-07-30 16:11:13 -0700</date>
            <delta_ts>2015-07-30 18:56:03 -0700</delta_ts>
            <desc>[Patch] Proposed Fix</desc>
            <filename>bug-147029-20150730161112.patch</filename>
            <type>text/plain</type>
            <size>21251</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NjE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBj
ZTY2NDAwODBiNWU0OTk3ZWJjZjQ4ZjhhMWUyOTllMzllMjMwODk0Li4wY2FjZmFlY2FmNTY3YjAw
YzcwNzhhNWUzYzczNDMwYzJkODBkOTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAxNS0wNy0zMCAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQmV0dGVyIHNoYXJlIG9iamVjdHMgZ2VuZXJhdGVk
IGZyb20gdGltZWxpbmUgZXZlbnRzIChSZWNvcmRzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSB3YXkgVGltZWxp
bmVNYW5hZ2VyIHByb2Nlc3NlcyBldmVudHMsIHByZXNlcnZpbmcgdGhlIGV2ZW50IGhpZXJhcmNo
eSBhZnRlcgorICAgICAgICBjb252ZXJ0aW5nIHBheWxvYWRzIHRvIFRpbWVsaW5lUmVjb3JkIG9i
amVjdHMgYnkgcmV0YWluaW5nIHBhcmVudC1jaGlsZCByZWxhdGlvbnNoaXBzIGJldHdlZW4gcmVj
b3Jkcy4KKyAgICAgICAgVGhpcyBlbGltaW5hdGVzIHRoZSBuZWVkIGZvciBSZW5kZXJpbmdGcmFt
ZVRpbWVsaW5lUmVjb3JkIG9iamVjdHMgdG8gY3JlYXRlIGEgc2VwYXJhdGUgY29weSBvZiB0aGVp
ciBjaGlsZAorICAgICAgICByZWNvcmRzLCBhbmQgcHJvdmlkZXMgcmljaGVyIGRhdGEgZm9yIHRo
ZSBUaW1lbGluZXMgVUkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1Rp
bWVsaW5lTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIu
cHJvdG90eXBlLmV2ZW50UmVjb3JkZWQpOgorICAgICAgICBUcmFjayB0aGUgcGFyZW50IFRpbWVs
aW5lUmVjb3JkIGFzIGNoaWxkIHJlY29yZCBwYXlsb2FkcyBhcmUgdW5wYWNrZWQsIGFuZCBjcmVh
dGUKKyAgICAgICAgYSBoaWVyYXJjaHkgb2YgVGltZWxpbmVSZWNvcmRzIHRoYXQgbWlycm9ycyB0
aGUgb3JpZ2luYWwgZXZlbnQgcGF5bG9hZCBoaWVyYXJjaHkuCisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGltZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5fcHJvY2Vzc1JlY29yZCk6CisgICAgICAgIFJl
bmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgaXMgbm93IHByb2Nlc3NlZCBsaWtlIGFueSBvdGhl
ciBldmVudC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIucHJvdG90eXBl
Ll9wcm9jZXNzTmVzdGVkUmVjb3Jkcyk6IERlbGV0ZWQuCisgICAgICAgIFJldmVydGVkIGJhY2sg
dG8gYSBzaW5nbGUgcGFzcyBvdmVyIHRoZSBpbmNvbWluZyB0aW1lbGluZSBldmVudCBwYXlsb2Fk
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvTGF5b3V0VGltZWxpbmVSZWNvcmQu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkLnByb3RvdHlwZS5nZXQgZHVyaW5n
Q29tcG9zaXRlKTogRGVsZXRlZC4KKyAgICAgICAgUmVtb3ZlZCBkdXJpbmdDb21wb3NpdGUgcHJv
cGVydHkgYW5kIGNvbnN0cnVjdG9yIHBhcmFtZXRlci4gTm8gbG9uZ2VyIG5lZWRlZC4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1JlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5w
cm90b3R5cGUuZ2V0IGNoaWxkcmVuKTogRGVsZXRlZC4KKyAgICAgICAgUmVtb3ZlZCBjaGlsZHJl
biBwcm9wZXJ0eS4gSXQgbm93IGV4aXN0cyBvbiB0aGUgYmFzZSBjbGFzcyBUaW1lbGluZVJlY29y
ZC4KKyAgICAgICAgQWxzbyByZW1vdmVkIGNvZGUgdGhhdCB3YXMgbmVlZGVkIHRvIHByZXZlbnQg
cGFpbnQgdGltZSBmcm9tIGJlaW5nIGFkZGVkIHR3aWNlLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQucHJvdG90eXBlLl9pbml0aWFsaXplUHJvZmlsZUZyb21Q
YXlsb2FkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZCk6Cisg
ICAgICAgIFJlbW92ZWQgd29ya2Fyb3VuZCBhZGRlZCBpbjoKKyAgICAgICAgPGh0dHBzOi8vd2Vi
a2l0Lm9yZy9iLzE0NzAyNT4gV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTiAocjE4NjIxOCkgU2Ny
aXB0VGltZWxpbmVSZWNvcmQgYXR0ZW1wdHMgdG8gYWNjZXNzIG51bGwgcHJvcGVydHkKKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZVJlY29yZC5wcm90b3R5cGUuZ2V0IGNoaWxkcmVuKToKKyAgICAgICAgQWRkZWQgY2hpbGRy
ZW4gcHJvcGVydHkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1JlbmRlcmluZ0Zy
YW1lVGltZWxpbmVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1l
VGltZWxpbmVWaWV3LnByb3RvdHlwZS5fcHJvY2Vzc1BlbmRpbmdSZWNvcmRzKToKKyAgICAgICAg
Tm93IHRoYXQgd2UgcHJlc2VydmUgdGhlIGZyYW1lJ3MgY2hpbGQgcmVjb3JkIGhpZXJhcmNoeSwg
d2UgcHJvY2VzcyB0aGUgZW50aXJlIHRyZWUsCisgICAgICAgIHlpZWxkaW5nIHJpY2hlciBkYXRh
IGdyaWQgb3V0cHV0OgorCisgICAgICAgICAgIEZyYW1lIFgKKyAgICAgICAgICAgICAgU3R5bGVz
IFJlY2FsY3VsYXRlZAorICAgICAgICAgICAgICAgICBMYXlvdXQgSW52YWxpZGF0ZWQKKyAgICAg
ICAgICAgICAgQ29tcG9zaXRlCisgICAgICAgICAgICAgICAgIFBhaW50CisgICAgICAgICAgICAg
ICAgIFBhaW50CisKKyAgICAgICAgQ29tcGFyZWQgdG8gdGhlIHByZXZpb3VzIG91dHB1dDoKKwor
ICAgICAgICAgICBGcmFtZSBYCisgICAgICAgICAgICAgIFN0eWxlcyBSZWNhbGN1bGF0ZWQKKyAg
ICAgICAgICAgICAgTGF5b3V0IEludmFsaWRhdGVkCisgICAgICAgICAgICAgIENvbXBvc2l0ZQor
ICAgICAgICAgICAgICBQYWludAorICAgICAgICAgICAgICBQYWludAorCiAyMDE1LTA3LTMwICBO
aWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFJlZ3Jlc3Npb246ICVjIGlzIGJyb2tlbiBmb3IgY29uc29sZS5ncm91cApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGlt
ZWxpbmVNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCmluZGV4IDZhZGZjMzg4YzRhN2U3NjM3YjZiNmYx
OWE3YWZhODY1ZGY5ZjgyZDcuLjIwOWIxNDdhZjRmODI3MzQ3YTA1MWYxYmVkZWI2ZDc3YmQ2MWJh
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKQEAgLTE4MywzNSArMTgz
LDExIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIgPSBjbGFzcyBUaW1lbGluZU1hbmFn
ZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGlmICghdGhpcy5faXNDYXB0
dXJpbmcpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIHJlY29yZHMgPSB0aGlz
Ll9wcm9jZXNzTmVzdGVkUmVjb3JkcyhyZWNvcmRQYXlsb2FkKTsKLSAgICAgICAgcmVjb3Jkcy5m
b3JFYWNoKGZ1bmN0aW9uKGN1cnJlbnRWYWx1ZSkgewotICAgICAgICAgICAgdGhpcy5fYWRkUmVj
b3JkKGN1cnJlbnRWYWx1ZSk7Ci0gICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfQotCi0gICAg
Ly8gUHJvdGVjdGVkCi0KLSAgICBwYWdlRGlkTG9hZCh0aW1lc3RhbXApCi0gICAgewotICAgICAg
ICAvLyBDYWxsZWQgZnJvbSBXZWJJbnNwZWN0b3IuUGFnZU9ic2VydmVyLgotCi0gICAgICAgIGlm
IChpc05hTihXZWJJbnNwZWN0b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIubWFpbkZyYW1lLmxvYWRF
dmVudFRpbWVzdGFtcCkpCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuZnJhbWVSZXNvdXJjZU1h
bmFnZXIubWFpbkZyYW1lLm1hcmtMb2FkRXZlbnQodGhpcy5hY3RpdmVSZWNvcmRpbmcuY29tcHV0
ZUVsYXBzZWRUaW1lKHRpbWVzdGFtcCkpOwotICAgIH0KLQotICAgIC8vIFByaXZhdGUKLQotICAg
IF9wcm9jZXNzTmVzdGVkUmVjb3JkcyhjaGlsZFJlY29yZFBheWxvYWRzLCBwYXJlbnRSZWNvcmRQ
YXlsb2FkKQotICAgIHsKLSAgICAgICAgLy8gQ29udmVydCB0byBhIHNpbmdsZSBpdGVtIGFycmF5
IGlmIG5lZWRlZC4KLSAgICAgICAgaWYgKCEoY2hpbGRSZWNvcmRQYXlsb2FkcyBpbnN0YW5jZW9m
IEFycmF5KSkKLSAgICAgICAgICAgIGNoaWxkUmVjb3JkUGF5bG9hZHMgPSBbY2hpbGRSZWNvcmRQ
YXlsb2Fkc107Ci0KICAgICAgICAgdmFyIHJlY29yZHMgPSBbXTsKIAogICAgICAgICAvLyBJdGVy
YXRlIG92ZXIgdGhlIHJlY29yZHMgdHJlZSB1c2luZyBhIHN0YWNrLiBEb2luZyB0aGlzIHJlY3Vy
c2l2ZWx5IGhhcwogICAgICAgICAvLyBiZWVuIGtub3duIHRvIGNhdXNlIGEgY2FsbCBzdGFjayBv
dmVyZmxvdy4gaHR0cHM6Ly93ZWJraXQub3JnL2IvNzkxMDYKLSAgICAgICAgdmFyIHN0YWNrID0g
W3thcnJheTogY2hpbGRSZWNvcmRQYXlsb2FkcywgcGFyZW50OiBwYXJlbnRSZWNvcmRQYXlsb2Fk
IHx8IG51bGwsIGluZGV4OiAwfV07CisgICAgICAgIHZhciBzdGFjayA9IFt7YXJyYXk6IFtyZWNv
cmRQYXlsb2FkXSwgcGFyZW50OiBudWxsLCBwYXJlbnRSZWNvcmQ6IG51bGwsIGluZGV4OiAwfV07
CiAgICAgICAgIHdoaWxlIChzdGFjay5sZW5ndGgpIHsKICAgICAgICAgICAgIHZhciBlbnRyeSA9
IHN0YWNrLmxhc3RWYWx1ZTsKICAgICAgICAgICAgIHZhciByZWNvcmRQYXlsb2FkcyA9IGVudHJ5
LmFycmF5OwpAQCAtMjE5LDE5ICsxOTUsMzggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdl
ciA9IGNsYXNzIFRpbWVsaW5lTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAg
ICAgICAgICAgIGlmIChlbnRyeS5pbmRleCA8IHJlY29yZFBheWxvYWRzLmxlbmd0aCkgewogICAg
ICAgICAgICAgICAgIHZhciByZWNvcmRQYXlsb2FkID0gcmVjb3JkUGF5bG9hZHNbZW50cnkuaW5k
ZXhdOwogICAgICAgICAgICAgICAgIHZhciByZWNvcmQgPSB0aGlzLl9wcm9jZXNzRXZlbnQocmVj
b3JkUGF5bG9hZCwgZW50cnkucGFyZW50KTsKLSAgICAgICAgICAgICAgICBpZiAocmVjb3JkKQor
ICAgICAgICAgICAgICAgIGlmIChyZWNvcmQpIHsKICAgICAgICAgICAgICAgICAgICAgcmVjb3Jk
cy5wdXNoKHJlY29yZCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeS5wYXJlbnRSZWNv
cmQpCisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5wYXJlbnRSZWNvcmQuY2hpbGRyZW4u
cHVzaChyZWNvcmQpOworICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmIChy
ZWNvcmRQYXlsb2FkLmNoaWxkcmVuKQotICAgICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKHth
cnJheTogcmVjb3JkUGF5bG9hZC5jaGlsZHJlbiwgcGFyZW50OiByZWNvcmRQYXlsb2FkLCBpbmRl
eDogMH0pOworICAgICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKHthcnJheTogcmVjb3JkUGF5
bG9hZC5jaGlsZHJlbiwgcGFyZW50OiByZWNvcmRQYXlsb2FkLCBwYXJlbnRSZWNvcmQ6IHJlY29y
ZCwgaW5kZXg6IDB9KTsKICAgICAgICAgICAgICAgICArK2VudHJ5LmluZGV4OwogICAgICAgICAg
ICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgc3RhY2sucG9wKCk7CiAgICAgICAgIH0KIAotICAg
ICAgICByZXR1cm4gcmVjb3JkczsKKyAgICAgICAgZm9yICh2YXIgcmVjb3JkIG9mIHJlY29yZHMp
IHsKKyAgICAgICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlbmRlcmlu
Z0ZyYW1lVGltZWxpbmVSZWNvcmQgJiYgIXJlY29yZC5jaGlsZHJlbi5sZW5ndGgpCisgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmQocmVjb3JkKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgcGFnZURpZExvYWQo
dGltZXN0YW1wKQorICAgIHsKKyAgICAgICAgLy8gQ2FsbGVkIGZyb20gV2ViSW5zcGVjdG9yLlBh
Z2VPYnNlcnZlci4KKworICAgICAgICBpZiAoaXNOYU4oV2ViSW5zcGVjdG9yLmZyYW1lUmVzb3Vy
Y2VNYW5hZ2VyLm1haW5GcmFtZS5sb2FkRXZlbnRUaW1lc3RhbXApKQorICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLm1haW5GcmFtZS5tYXJrTG9hZEV2ZW50KHRo
aXMuYWN0aXZlUmVjb3JkaW5nLmNvbXB1dGVFbGFwc2VkVGltZSh0aW1lc3RhbXApKTsKICAgICB9
CiAKKyAgICAvLyBQcml2YXRlCisKICAgICBfcHJvY2Vzc1JlY29yZChyZWNvcmRQYXlsb2FkLCBw
YXJlbnRSZWNvcmRQYXlsb2FkKQogICAgIHsKICAgICAgICAgdmFyIHN0YXJ0VGltZSA9IHRoaXMu
YWN0aXZlUmVjb3JkaW5nLmNvbXB1dGVFbGFwc2VkVGltZShyZWNvcmRQYXlsb2FkLnN0YXJ0VGlt
ZSk7CkBAIC0yNzksMjcgKzI3NCwxOSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyID0g
Y2xhc3MgVGltZWxpbmVNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAg
ICBjYXNlIFRpbWVsaW5lQWdlbnQuRXZlbnRUeXBlLlBhaW50OgogICAgICAgICAgICAgLy8gQ09N
UEFUSUJJTElUWSAoaU9TIDYpOiBQYWludCByZWNvcmRzIGRhdGEgY29udGFpbmVkIHgsIHksIHdp
ZHRoLCBoZWlnaHQgcHJvcGVydGllcy4gVGhpcyBiZWNhbWUgYSBxdWFkICJjbGlwIi4KICAgICAg
ICAgICAgIHZhciBxdWFkID0gcmVjb3JkUGF5bG9hZC5kYXRhLmNsaXAgPyBuZXcgV2ViSW5zcGVj
dG9yLlF1YWQocmVjb3JkUGF5bG9hZC5kYXRhLmNsaXApIDogbnVsbDsKLSAgICAgICAgICAgIHZh
ciBkdXJpbmdDb21wb3NpdGUgPSByZWNvcmRQYXlsb2FkLl9fZHVyaW5nQ29tcG9zaXRlIHx8IGZh
bHNlOwogICAgICAgICAgICAgaWYgKHF1YWQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBX
ZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQoV2ViSW5zcGVjdG9yLkxheW91dFRpbWVs
aW5lUmVjb3JkLkV2ZW50VHlwZS5QYWludCwgc3RhcnRUaW1lLCBlbmRUaW1lLCBjYWxsRnJhbWVz
LCBzb3VyY2VDb2RlTG9jYXRpb24sIG51bGwsIG51bGwsIHF1YWQud2lkdGgsIHF1YWQuaGVpZ2h0
LCBxdWFkLCBkdXJpbmdDb21wb3NpdGUpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgV2Vi
SW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkKFdlYkluc3BlY3Rvci5MYXlvdXRUaW1lbGlu
ZVJlY29yZC5FdmVudFR5cGUuUGFpbnQsIHN0YXJ0VGltZSwgZW5kVGltZSwgY2FsbEZyYW1lcywg
c291cmNlQ29kZUxvY2F0aW9uLCBudWxsLCBudWxsLCBxdWFkLndpZHRoLCBxdWFkLmhlaWdodCwg
cXVhZCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJ
bnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQoV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5l
UmVjb3JkLkV2ZW50VHlwZS5QYWludCwgc3RhcnRUaW1lLCBlbmRUaW1lLCBjYWxsRnJhbWVzLCBz
b3VyY2VDb2RlTG9jYXRpb24sIHJlY29yZFBheWxvYWQuZGF0YS54LCByZWNvcmRQYXlsb2FkLmRh
dGEueSwgcmVjb3JkUGF5bG9hZC5kYXRhLndpZHRoLCByZWNvcmRQYXlsb2FkLmRhdGEuaGVpZ2h0
LCBudWxsLCBkdXJpbmdDb21wb3NpdGUpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgV2Vi
SW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkKFdlYkluc3BlY3Rvci5MYXlvdXRUaW1lbGlu
ZVJlY29yZC5FdmVudFR5cGUuUGFpbnQsIHN0YXJ0VGltZSwgZW5kVGltZSwgY2FsbEZyYW1lcywg
c291cmNlQ29kZUxvY2F0aW9uLCByZWNvcmRQYXlsb2FkLmRhdGEueCwgcmVjb3JkUGF5bG9hZC5k
YXRhLnksIHJlY29yZFBheWxvYWQuZGF0YS53aWR0aCwgcmVjb3JkUGF5bG9hZC5kYXRhLmhlaWdo
dCk7CiAKICAgICAgICAgY2FzZSBUaW1lbGluZUFnZW50LkV2ZW50VHlwZS5Db21wb3NpdGU6Ci0g
ICAgICAgICAgICByZWNvcmRQYXlsb2FkLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oY2hpbGRS
ZWNvcmRQYXlsb2FkKSB7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoY2hpbGRSZWNv
cmRQYXlsb2FkLnR5cGUgPT09IFRpbWVsaW5lQWdlbnQuRXZlbnRUeXBlLlBhaW50LCBjaGlsZFJl
Y29yZFBheWxvYWQudHlwZSk7Ci0gICAgICAgICAgICAgICAgY2hpbGRSZWNvcmRQYXlsb2FkLl9f
ZHVyaW5nQ29tcG9zaXRlID0gdHJ1ZTsKLSAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmV0
dXJuIG5ldyBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQoV2ViSW5zcGVjdG9yLkxh
eW91dFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlwZS5Db21wb3NpdGUsIHN0YXJ0VGltZSwgZW5kVGlt
ZSwgY2FsbEZyYW1lcywgc291cmNlQ29kZUxvY2F0aW9uKTsKIAogICAgICAgICBjYXNlIFRpbWVs
aW5lQWdlbnQuRXZlbnRUeXBlLlJlbmRlcmluZ0ZyYW1lOgotICAgICAgICAgICAgaWYgKCFyZWNv
cmRQYXlsb2FkLmNoaWxkcmVuKQorICAgICAgICAgICAgaWYgKCFyZWNvcmRQYXlsb2FkLmNoaWxk
cmVuIHx8ICFyZWNvcmRQYXlsb2FkLmNoaWxkcmVuLmxlbmd0aCkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbDsKIAotICAgICAgICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5fcHJvY2Vzc05l
c3RlZFJlY29yZHMocmVjb3JkUGF5bG9hZC5jaGlsZHJlbiwgcmVjb3JkUGF5bG9hZCk7Ci0gICAg
ICAgICAgICBpZiAoIWNoaWxkcmVuLmxlbmd0aCkKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVs
bDsKLSAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGlt
ZWxpbmVSZWNvcmQoc3RhcnRUaW1lLCBlbmRUaW1lLCBjaGlsZHJlbik7CisgICAgICAgICAgICBy
ZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkKHN0YXJ0
VGltZSwgZW5kVGltZSk7CiAKICAgICAgICAgY2FzZSBUaW1lbGluZUFnZW50LkV2ZW50VHlwZS5F
dmFsdWF0ZVNjcmlwdDoKICAgICAgICAgICAgIGlmICghc291cmNlQ29kZUxvY2F0aW9uKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTGF5
b3V0VGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvTGF5b3V0VGltZWxpbmVSZWNvcmQuanMKaW5kZXggYzE4ZGNmN2RmNmU1YWVhNTE0
NWFhM2UwMjIxNmNmNDEzOGJjZTdlNi4uN2ZkZjQyYTVhZWU0ZTVkYjUzNjMwNzgwYzM5OTg2M2Zl
Y2FmMDRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0xheW91dFRpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9MYXlvdXRUaW1lbGluZVJlY29yZC5qcwpAQCAtMjUsNyAr
MjUsNyBAQAogCiBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQgPSBjbGFzcyBMYXlv
dXRUaW1lbGluZVJlY29yZCBleHRlbmRzIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZAogewot
ICAgIGNvbnN0cnVjdG9yKGV2ZW50VHlwZSwgc3RhcnRUaW1lLCBlbmRUaW1lLCBjYWxsRnJhbWVz
LCBzb3VyY2VDb2RlTG9jYXRpb24sIHgsIHksIHdpZHRoLCBoZWlnaHQsIHF1YWQsIGR1cmluZ0Nv
bXBvc2l0ZSkKKyAgICBjb25zdHJ1Y3RvcihldmVudFR5cGUsIHN0YXJ0VGltZSwgZW5kVGltZSwg
Y2FsbEZyYW1lcywgc291cmNlQ29kZUxvY2F0aW9uLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBxdWFk
KQogICAgIHsKICAgICAgICAgc3VwZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUu
TGF5b3V0LCBzdGFydFRpbWUsIGVuZFRpbWUsIGNhbGxGcmFtZXMsIHNvdXJjZUNvZGVMb2NhdGlv
bik7CiAKQEAgLTQwLDcgKzQwLDYgQEAgV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3Jk
ID0gY2xhc3MgTGF5b3V0VGltZWxpbmVSZWNvcmQgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAg
dGhpcy5fd2lkdGggPSB0eXBlb2Ygd2lkdGggPT09ICJudW1iZXIiID8gd2lkdGggOiBOYU47CiAg
ICAgICAgIHRoaXMuX2hlaWdodCA9IHR5cGVvZiBoZWlnaHQgPT09ICJudW1iZXIiID8gaGVpZ2h0
IDogTmFOOwogICAgICAgICB0aGlzLl9xdWFkID0gcXVhZCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rv
ci5RdWFkID8gcXVhZCA6IG51bGw7Ci0gICAgICAgIHRoaXMuX2R1cmluZ0NvbXBvc2l0ZSA9IGR1
cmluZ0NvbXBvc2l0ZSB8fCBmYWxzZTsKICAgICB9CiAKICAgICAvLyBTdGF0aWMKQEAgLTEwOSwx
MSArMTA4LDYgQEAgV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkID0gY2xhc3MgTGF5
b3V0VGltZWxpbmVSZWNvcmQgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgcmV0dXJuIHRoaXMu
X3F1YWQ7CiAgICAgfQogCi0gICAgZ2V0IGR1cmluZ0NvbXBvc2l0ZSgpCi0gICAgewotICAgICAg
ICByZXR1cm4gdGhpcy5fZHVyaW5nQ29tcG9zaXRlOwotICAgIH0KLQogICAgIHNhdmVJZGVudGl0
eVRvQ29va2llKGNvb2tpZSkKICAgICB7CiAgICAgICAgIHN1cGVyLnNhdmVJZGVudGl0eVRvQ29v
a2llKGNvb2tpZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVj
b3JkLmpzCmluZGV4IDJiNmRmN2FhYzdiZmYwY2ZhMTEzNmE5ZDRiMjg1MzMxNDBlMDMyMGIuLjg3
MzhiYWI1ODlkOGZmYmQzMDQyODQ3YzlhMTMxYmQ4OGMxODg3ODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZW5kZXJpbmdGcmFtZVRpbWVs
aW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmpzCkBAIC0yNSwxMSArMjUsMTAgQEAK
IAogV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBSZW5k
ZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVj
b3JkCiB7Ci0gICAgY29uc3RydWN0b3Ioc3RhcnRUaW1lLCBlbmRUaW1lLCBjaGlsZHJlbikKKyAg
ICBjb25zdHJ1Y3RvcihzdGFydFRpbWUsIGVuZFRpbWUpCiAgICAgewogICAgICAgICBzdXBlcihX
ZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5SZW5kZXJpbmdGcmFtZSwgc3RhcnRUaW1l
LCBlbmRUaW1lKTsKIAotICAgICAgICB0aGlzLl9jaGlsZHJlbiA9IGNoaWxkcmVuIHx8IFtdOwog
ICAgICAgICB0aGlzLl9kdXJhdGlvbkJ5VGFza1R5cGUgPSBuZXcgTWFwOwogICAgICAgICB0aGlz
Ll9mcmFtZUluZGV4ID0gV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQu
X25leHRGcmFtZUluZGV4Kys7CiAgICAgfQpAQCAtNjcsMTEgKzY2LDYgQEAgV2ViSW5zcGVjdG9y
LlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBSZW5kZXJpbmdGcmFtZVRpbWVs
aW5lUmVjb3JkIGUKICAgICAgICAgcmV0dXJuIHRoaXMuX2ZyYW1lSW5kZXggKyAxOwogICAgIH0K
IAotICAgIGdldCBjaGlsZHJlbigpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY2hpbGRy
ZW4uc2xpY2UoKTsKLSAgICB9Ci0KICAgICBkdXJhdGlvbkZvclRhc2sodGFza1R5cGUpCiAgICAg
ewogICAgICAgICBpZiAodGhpcy5fZHVyYXRpb25CeVRhc2tUeXBlLmhhcyh0YXNrVHlwZSkpCkBA
IC05Niw3ICs5MCw3IEBAIFdlYkluc3BlY3Rvci5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3Jk
ID0gY2xhc3MgUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZCBlCiAgICAgICAgIGlmICh0YXNr
VHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQuVGFza1R5
cGUuT3RoZXIpCiAgICAgICAgICAgICBkdXJhdGlvbiA9IHRoaXMuX2NhbGN1bGF0ZUR1cmF0aW9u
UmVtYWluZGVyKCk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgZHVyYXRpb24gPSB0aGlz
Ll9jaGlsZHJlbi5yZWR1Y2UoZnVuY3Rpb24ocHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlKSB7
CisgICAgICAgICAgICBkdXJhdGlvbiA9IHRoaXMuY2hpbGRyZW4ucmVkdWNlKGZ1bmN0aW9uKHBy
ZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSkgewogICAgICAgICAgICAgICAgIGlmICghdmFsaWRS
ZWNvcmRGb3JUYXNrVHlwZShjdXJyZW50VmFsdWUpKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gcHJldmlvdXNWYWx1ZTsKIApAQCAtMTA5LDE4ICsxMDMsMTEgQEAgV2ViSW5zcGVjdG9yLlJl
bmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBSZW5kZXJpbmdGcmFtZVRpbWVsaW5l
UmVjb3JkIGUKICAgICAgICAgICAgIGlmICh0YXNrVHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlbmRl
cmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQuVGFza1R5cGUuU2NyaXB0KSB7CiAgICAgICAgICAgICAg
ICAgLy8gTGF5b3V0IGV2ZW50cyBzeW5jaHJvbm91c2x5IHRyaWdnZXJlZCBmcm9tIEphdmFTY3Jp
cHQgbXVzdCBiZSBzdWJ0cmFjdGVkIGZyb20gdGhlIHRvdGFsCiAgICAgICAgICAgICAgICAgLy8g
c2NyaXB0IHRpbWUsIHRvIHByZXZlbnQgdGhlIHRpbWUgZnJvbSBiZWluZyBjb3VudGVkIHR3aWNl
LgotICAgICAgICAgICAgICAgIGR1cmF0aW9uIC09IHRoaXMuX2NoaWxkcmVuLnJlZHVjZShmdW5j
dGlvbihwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUpIHsKKyAgICAgICAgICAgICAgICBkdXJh
dGlvbiAtPSB0aGlzLmNoaWxkcmVuLnJlZHVjZShmdW5jdGlvbihwcmV2aW91c1ZhbHVlLCBjdXJy
ZW50VmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS50eXBlID09
PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5MYXlvdXQgJiYgKGN1cnJlbnRWYWx1
ZS5zb3VyY2VDb2RlTG9jYXRpb24gfHwgY3VycmVudFZhbHVlLmNhbGxGcmFtZXMpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWUgKyBjdXJyZW50VmFsdWUuZHVy
YXRpb247CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c1ZhbHVlOwogICAgICAg
ICAgICAgICAgIH0sIDApOwotICAgICAgICAgICAgfSBlbHNlIGlmICh0YXNrVHlwZSA9PT0gV2Vi
SW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQuVGFza1R5cGUuUGFpbnQpIHsK
LSAgICAgICAgICAgICAgICAvLyBQYWludCBldmVudHMgdHJpZ2dlcmVkIGR1cmluZyBhIENvbXBv
c2l0ZSBldmVudCBtdXN0IGJlIHN1YnRyYWN0ZWQgZnJvbSB0aGUgdG90YWwgcGFpbnRpbmcgdGlt
ZSwKLSAgICAgICAgICAgICAgICAvLyBzaW5jZSB0aGUgY29tcG9zaXRpbmcgdGltZSBhbHJlYWR5
IGluY2x1ZGVzIHRpbWUgc3BlbnQgaW4gdGhlc2UgUGFpbnQgZXZlbnRzLgotICAgICAgICAgICAg
ICAgIHZhciBwYWludFJlY29yZHMgPSB0aGlzLl9jaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24ocmVj
b3JkKSB7IHJldHVybiByZWNvcmQuZXZlbnRUeXBlID09PSBXZWJJbnNwZWN0b3IuTGF5b3V0VGlt
ZWxpbmVSZWNvcmQuRXZlbnRUeXBlLlBhaW50OyB9KTsKLSAgICAgICAgICAgICAgICBkdXJhdGlv
biAtPSBwYWludFJlY29yZHMucmVkdWNlKGZ1bmN0aW9uKHByZXZpb3VzVmFsdWUsIGN1cnJlbnRW
YWx1ZSkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlLmR1cmluZ0Nv
bXBvc2l0ZSA/IHByZXZpb3VzVmFsdWUgKyBjdXJyZW50VmFsdWUuZHVyYXRpb24gOiBwcmV2aW91
c1ZhbHVlOwotICAgICAgICAgICAgICAgIH0sIDApOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9TY3JpcHRUaW1lbGluZVJlY29yZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9TY3JpcHRUaW1lbGluZVJlY29yZC5qcwppbmRleCA3ZTIzMTRmZjZhYTlh
ZDdkNjhlZmE1ODZhMGI3NGZiMDhiODE5YmI2Li5iNWQ3OThjMDEyMDFmZWEyZDY2ZGViODI5M2Nk
MzM4MzZlZTI5Y2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NjcmlwdFRpbWVsaW5lUmVjb3JkLmpzCkBAIC03
MywxMyArNzMsNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQgPSBjbGFzcyBT
Y3JpcHRUaW1lbGluZVJlY29yZCBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICBpZiAodGhpcy5f
cHJvZmlsZSB8fCAhdGhpcy5fcHJvZmlsZVBheWxvYWQpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDcwMjk+IFdlYiBJbnNw
ZWN0b3I6IEJldHRlciBzaGFyZSBvYmplY3RzIGdlbmVyYXRlZCBmcm9tIHRpbWVsaW5lIGV2ZW50
cyAoUmVjb3JkcykKLSAgICAgICAgaWYgKHRoaXMuX3Byb2ZpbGVQYXlsb2FkLl9fcHJvZmlsZSkg
ewotICAgICAgICAgICAgdGhpcy5fcHJvZmlsZSA9IHRoaXMuX3Byb2ZpbGVQYXlsb2FkLl9fcHJv
ZmlsZTsKLSAgICAgICAgICAgIHRoaXMuX3Byb2ZpbGVQYXlsb2FkID0gdW5kZWZpbmVkOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KICAgICAgICAgdmFyIHBheWxvYWQgPSB0aGlz
Ll9wcm9maWxlUGF5bG9hZDsKICAgICAgICAgdGhpcy5fcHJvZmlsZVBheWxvYWQgPSB1bmRlZmlu
ZWQ7CiAKQEAgLTE1MSw3ICsxNDQsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVSZWNv
cmQgPSBjbGFzcyBTY3JpcHRUaW1lbGluZVJlY29yZCBleHRlbmRzIFdlYkluc3BlYwogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgdGhpcy5fcHJvZmlsZSA9IHBheWxvYWQuX19w
cm9maWxlID0gbmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlKHJvb3ROb2Rlcyk7CisgICAgICAgIHRo
aXMuX3Byb2ZpbGUgPSBuZXcgV2ViSW5zcGVjdG9yLlByb2ZpbGUocm9vdE5vZGVzKTsKICAgICB9
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvVGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNvcmQuanMKaW5kZXggMzVhYjJmYTE1NzI0NTZlZDhhYjIx
NWM0NzlhNDRmYmNhMmNlYjM1OC4uNmQyNGU0Y2Q3ZmIyOGZkZDk1Nzk2ZTI1MDZmOGY3ZGU4OGQ4
MjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL1RpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9UaW1lbGluZVJlY29yZC5qcwpAQCAtMzksNiArMzksNyBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBUaW1lbGluZVJlY29yZCBleHRlbmRzIFdlYklu
c3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5fZW5kVGltZSA9IGVuZFRpbWUgfHwgTmFOOwog
ICAgICAgICB0aGlzLl9jYWxsRnJhbWVzID0gY2FsbEZyYW1lcyB8fCBudWxsOwogICAgICAgICB0
aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24gPSBzb3VyY2VDb2RlTG9jYXRpb24gfHwgbnVsbDsKKyAg
ICAgICAgdGhpcy5fY2hpbGRyZW4gPSBbXTsKICAgICB9CiAKICAgICAvLyBQdWJsaWMKQEAgLTEy
MSw2ICsxMjIsMTEgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkID0gY2xhc3MgVGltZWxp
bmVSZWNvcmQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHJldHVybiB0aGlz
Ll9zb3VyY2VDb2RlTG9jYXRpb247CiAgICAgfQogCisgICAgZ2V0IGNoaWxkcmVuKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLl9jaGlsZHJlbjsKKyAgICB9CisKICAgICBzYXZlSWRlbnRp
dHlUb0Nvb2tpZShjb29raWUpCiAgICAgewogICAgICAgICBjb29raWVbV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUmVjb3JkLlNvdXJjZUNvZGVVUkxDb29raWVLZXldID0gdGhpcy5fc291cmNlQ29kZUxv
Y2F0aW9uID8gdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uLnNvdXJjZUNvZGUudXJsID8gdGhpcy5f
c291cmNlQ29kZUxvY2F0aW9uLnNvdXJjZUNvZGUudXJsLmhhc2ggOiBudWxsIDogbnVsbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlbmRl
cmluZ0ZyYW1lVGltZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcuanMKaW5kZXggY2YzNDFlNTA4
NjM3MjQyODQ4NTI0ZTQxODUwNTRjY2YzOTRhMDZmMS4uMmZlNWMwYjk1ZjM5ZjBmYzhhNjZhM2Nl
ZTk0MWQwYzQwODEwNjgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVuZGVyaW5nRnJhbWVUaW1lbGlu
ZVZpZXcuanMKQEAgLTI2MywxNSArMjYzLDIzIEBAIFdlYkluc3BlY3Rvci5SZW5kZXJpbmdGcmFt
ZVRpbWVsaW5lVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIHZhciB0cmVlRWxlbWVu
dCA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVudChyZW5kZXJpbmdG
cmFtZVRpbWVsaW5lUmVjb3JkKTsKICAgICAgICAgICAgIHZhciBkYXRhR3JpZE5vZGUgPSBuZXcg
V2ViSW5zcGVjdG9yLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVEYXRhR3JpZE5vZGUocmVuZGVyaW5n
RnJhbWVUaW1lbGluZVJlY29yZCwgdGhpcy56ZXJvVGltZSk7Ci0KICAgICAgICAgICAgIHRoaXMu
X2RhdGFHcmlkLmFkZFJvd0luU29ydE9yZGVyKHRyZWVFbGVtZW50LCBkYXRhR3JpZE5vZGUpOwog
Ci0gICAgICAgICAgICBmb3IgKHZhciBjaGlsZFJlY29yZCBvZiByZW5kZXJpbmdGcmFtZVRpbWVs
aW5lUmVjb3JkLmNoaWxkcmVuKSB7CisgICAgICAgICAgICB2YXIgc3RhY2sgPSBbe2NoaWxkcmVu
OiByZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmNoaWxkcmVuLCBwYXJlbnRUcmVlRWxlbWVu
dDogdHJlZUVsZW1lbnQsIGluZGV4OiAwfV07CisgICAgICAgICAgICB3aGlsZSAoc3RhY2subGVu
Z3RoKSB7CisgICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gc3RhY2subGFzdFZhbHVlOworICAg
ICAgICAgICAgICAgIGlmIChlbnRyeS5pbmRleCA+PSBlbnRyeS5jaGlsZHJlbi5sZW5ndGgpIHsK
KyAgICAgICAgICAgICAgICAgICAgc3RhY2sucG9wKCk7CisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHZhciBjaGlsZFJl
Y29yZCA9IGVudHJ5LmNoaWxkcmVuW2VudHJ5LmluZGV4XTsKKyAgICAgICAgICAgICAgICB2YXIg
Y2hpbGRUcmVlRWxlbWVudCA9IG51bGw7CiAgICAgICAgICAgICAgICAgaWYgKGNoaWxkUmVjb3Jk
LnR5cGUgPT09IFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLkxheW91dCkgewotICAg
ICAgICAgICAgICAgICAgICB2YXIgbGF5b3V0VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQoY2hpbGRSZWNvcmQsIFdlYkluc3BlY3Rvci5Tb3Vy
Y2VDb2RlTG9jYXRpb24uTmFtZVN0eWxlLlNob3J0KTsKKyAgICAgICAgICAgICAgICAgICAgY2hp
bGRUcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVu
dChjaGlsZFJlY29yZCwgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVMb2NhdGlvbi5OYW1lU3R5bGUu
U2hvcnQpOwogICAgICAgICAgICAgICAgICAgICB2YXIgbGF5b3V0RGF0YUdyaWROb2RlID0gbmV3
IFdlYkluc3BlY3Rvci5MYXlvdXRUaW1lbGluZURhdGFHcmlkTm9kZShjaGlsZFJlY29yZCwgdGhp
cy56ZXJvVGltZSk7CiAKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuYWRkUm93
SW5Tb3J0T3JkZXIobGF5b3V0VHJlZUVsZW1lbnQsIGxheW91dERhdGFHcmlkTm9kZSwgdHJlZUVs
ZW1lbnQpOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRP
cmRlcihjaGlsZFRyZWVFbGVtZW50LCBsYXlvdXREYXRhR3JpZE5vZGUsIGVudHJ5LnBhcmVudFRy
ZWVFbGVtZW50KTsKICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkUmVjb3JkLnR5cGUg
PT09IFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLlNjcmlwdCkgewogICAgICAgICAg
ICAgICAgICAgICB2YXIgcm9vdE5vZGVzID0gW107CiAgICAgICAgICAgICAgICAgICAgIGlmIChj
aGlsZFJlY29yZC5wcm9maWxlKSB7CkBAIC0yNzksMjEgKzI4NywyMSBAQCBXZWJJbnNwZWN0b3Iu
UmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAg
ICAgICAgICAgcm9vdE5vZGVzID0gY2hpbGRSZWNvcmQucHJvZmlsZS50b3BEb3duUm9vdE5vZGVz
OwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgdmFyIHplcm9U
aW1lID0gdGhpcy56ZXJvVGltZTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHNjcmlwdFRyZWVF
bGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZFRyZWVFbGVtZW50KGNoaWxk
UmVjb3JkLCBXZWJJbnNwZWN0b3IuU291cmNlQ29kZUxvY2F0aW9uLk5hbWVTdHlsZS5TaG9ydCwg
cm9vdE5vZGVzLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBzY3JpcHREYXRhR3Jp
ZE5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lRGF0YUdyaWROb2RlKGNoaWxk
UmVjb3JkLCB6ZXJvVGltZSk7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkVHJlZUVsZW1lbnQg
PSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQoY2hpbGRSZWNvcmQs
IFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlTG9jYXRpb24uTmFtZVN0eWxlLlNob3J0LCByb290Tm9k
ZXMubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHNjcmlwdERhdGFHcmlkTm9kZSA9
IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVEYXRhR3JpZE5vZGUoY2hpbGRSZWNvcmQs
IHRoaXMuemVyb1RpbWUpOwogCi0gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFk
ZFJvd0luU29ydE9yZGVyKHNjcmlwdFRyZWVFbGVtZW50LCBzY3JpcHREYXRhR3JpZE5vZGUsIHRy
ZWVFbGVtZW50KTsKLQotICAgICAgICAgICAgICAgICAgICB2YXIgc3RhcnRUaW1lID0gdGhpcy5z
dGFydFRpbWU7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBlbmRUaW1lID0gdGhpcy5lbmRUaW1l
OworICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihj
aGlsZFRyZWVFbGVtZW50LCBzY3JpcHREYXRhR3JpZE5vZGUsIGVudHJ5LnBhcmVudFRyZWVFbGVt
ZW50KTsKIAogICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBwcm9maWxlTm9kZSBvZiByb290
Tm9kZXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwcm9maWxlTm9kZVRyZWVFbGVt
ZW50ID0gbmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlTm9kZVRyZWVFbGVtZW50KHByb2ZpbGVOb2Rl
LCB0aGlzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwcm9maWxlTm9kZURhdGFHcmlk
Tm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuUHJvZmlsZU5vZGVEYXRhR3JpZE5vZGUocHJvZmlsZU5v
ZGUsIHplcm9UaW1lLCBzdGFydFRpbWUsIGVuZFRpbWUpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fZGF0YUdyaWQuYWRkUm93SW5Tb3J0T3JkZXIocHJvZmlsZU5vZGVUcmVlRWxlbWVu
dCwgcHJvZmlsZU5vZGVEYXRhR3JpZE5vZGUsIHNjcmlwdFRyZWVFbGVtZW50KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHZhciBwcm9maWxlTm9kZURhdGFHcmlkTm9kZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuUHJvZmlsZU5vZGVEYXRhR3JpZE5vZGUocHJvZmlsZU5vZGUsIHRoaXMuemVyb1RpbWUs
IHRoaXMuc3RhcnRUaW1lLCB0aGlzLmVuZFRpbWUpOworICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fZGF0YUdyaWQuYWRkUm93SW5Tb3J0T3JkZXIocHJvZmlsZU5vZGVUcmVlRWxlbWVudCwg
cHJvZmlsZU5vZGVEYXRhR3JpZE5vZGUsIGNoaWxkVHJlZUVsZW1lbnQpOwogICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGNoaWxk
VHJlZUVsZW1lbnQgJiYgY2hpbGRSZWNvcmQuY2hpbGRyZW4ubGVuZ3RoKQorICAgICAgICAgICAg
ICAgICAgICBzdGFjay5wdXNoKHtjaGlsZHJlbjogY2hpbGRSZWNvcmQuY2hpbGRyZW4sIHBhcmVu
dFRyZWVFbGVtZW50OiBjaGlsZFRyZWVFbGVtZW50LCBpbmRleDogMH0pOworICAgICAgICAgICAg
ICAgICsrZW50cnkuaW5kZXg7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>