<?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>127063</bug_id>
          
          <creation_ts>2014-01-15 13:01:56 -0800</creation_ts>
          <short_desc>Web Inspector: Implement the discrete Script and Layout timeline views</short_desc>
          <delta_ts>2014-01-20 19:04:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>968443</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-01-15 13:01:56 -0800</bug_when>
    <thetext>Bring up the Script and Layout timeline views.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968444</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-15 13:02:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/15827848&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968448</commentid>
    <comment_count>2</comment_count>
      <attachid>221302</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-01-15 13:13:24 -0800</bug_when>
    <thetext>Created attachment 221302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969218</commentid>
    <comment_count>3</comment_count>
      <attachid>221302</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-17 12:49:07 -0800</bug_when>
    <thetext>Comment on attachment 221302
Patch

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

r=me

&gt; Source/WebInspectorUI/UserInterface/LayoutTimelineView.js:120
&gt; +        this._layoutTimeline.addEventListener(WebInspector.Timeline.Event.RecordAdded, this._layoutTimelineRecordAdded, this);

Hmm, I wonder if we should create &quot;RecordsAdded&quot; batched event. Is this likely to get called a lot of times?

&gt; Source/WebInspectorUI/UserInterface/ScriptTimelineDataGridNode.js:80
&gt; +            } else {
&gt; +                console.error(&quot;Unknown SourceCode subclass.&quot;);
&gt; +            }

Style: braces

&gt; Source/WebInspectorUI/UserInterface/TimelineRecordTreeElement.js:37
&gt; +        // FIXME: This needs to live update the subtitle in response to the WebInspector.SourceCodeLocation.Event.DisplayLocationChanged event.

Doh I see this FIXME was in the old code. I can see this being kind of tricky. Basically we want to update this.subtitleElement, but we first have to call the GeneralTreeElement super constructor, get the element created, then hook into it. It is a little tricky.

&gt; Source/WebInspectorUI/UserInterface/TimelineRecordTreeElement.js:41
&gt; +        if (showFullLocationSubtitle) {
&gt; +            subtitle = this._sourceCodeLocation.displayLocationString(WebInspector.SourceCodeLocation.ColumnStyle.OnlyIfLarge);
&gt; +        } else {

Style: braces

&gt; Source/WebInspectorUI/UserInterface/TimelineRecordTreeElement.js:74
&gt; +            console.error(&quot;Unknown TimelineRecord eventType: &quot; + timelineRecord.eventType, timelineRecord);

Nit: Unknown Layout TimelineRecord eventType

&gt; Source/WebInspectorUI/UserInterface/TimelineRecordTreeElement.js:108
&gt; +            console.error(&quot;Unknown TimelineRecord eventType: &quot; + timelineRecord.eventType, timelineRecord);

Nit: Unknown Script TimelineRecord eventType

&gt; Source/WebInspectorUI/UserInterface/TimelineSidebarPanel.js:135
&gt; +        // TimelineRecordTreeElement to stay selected when the Resource is represents is showing.

Typo: &quot;Resource is represents&quot; =&gt; &quot;Resource it represents&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970131</commentid>
    <comment_count>4</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-01-20 19:04:37 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/162416</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221302</attachid>
            <date>2014-01-15 13:13:24 -0800</date>
            <delta_ts>2014-01-17 12:49:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127063-20140115131325.patch</filename>
            <type>text/plain</type>
            <size>55786</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA4
YjRlMzQxMmRkYzBjN2QwYjU0Y2FmNDZmMGY4ZTJkN2U1YzIzODRiLi5mMzFlOWUzZGEzM2IyNDRh
ZDkzZThmYTAxZDVjMmU2NjNkMzlhMTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NyBAQAorMjAxNC0wMS0xNSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBkaXNjcmV0ZSBTY3JpcHQgYW5kIExheW91dCB0
aW1lbGluZSB2aWV3cy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI3MDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6IFVw
ZGF0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0RhdGFHcmlkLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRhdGFHcmlkKTogU3VwcG9ydCBoaWRkZW4gY29sdW1ucyBieSBkZWZhdWx0
LgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLnByb3RvdHlwZS51cGRhdGVMYXlvdXQp
OiBTZXQgdGhlIGNvbHVtbiB3aWR0aCB0byB6ZXJvIGZvciBoaWRkZW4gY29sdW1ucy4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTGF5b3V0VGltZWxpbmVEYXRhR3JpZC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5MYXlvdXRUaW1lbGluZURhdGFHcmlkKTogUGFzcyB0aGUgcmlnaHQgcGFy
YW1ldGVycyB0byB0aGUgc3VwZXJjbGFzcy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTGF5
b3V0VGltZWxpbmVSZWNvcmQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxp
bmVSZWNvcmQucHJvdG90eXBlLnNhdmVJZGVudGl0eVRvQ29va2llKTogQWRkZWQuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL0xheW91dFRpbWVsaW5lVmlldy5jc3M6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1NjcmlwdFRpbWVsaW5lRGF0YUdyaWQu
anMuCisgICAgICAgICgudGltZWxpbmUtdmlldy5sYXlvdXQgPiAuZGF0YS1ncmlkKToKKyAgICAg
ICAgKC50aW1lbGluZS12aWV3LmxheW91dCA+IC5kYXRhLWdyaWQgLmV2ZW50VHlwZS1jb2x1bW4p
OgorICAgICAgICAoLnNpZGViYXIgPiAucGFuZWwudGltZWxpbmUudGltZWxpbmUtY29udGVudC12
aWV3LXNob3dpbmcgLm5hdmlnYXRpb24tc2lkZWJhci1wYW5lbC1jb250ZW50LXRyZWUtb3V0bGlu
ZS5sYXlvdXQgLml0ZW0gLnN1YnRpdGxlKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTGF5
b3V0VGltZWxpbmVWaWV3LmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5MYXlvdXRU
aW1lbGluZVZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lVmlldy5w
cm90b3R5cGUuZ2V0IG5hdmlnYXRpb25TaWRlYmFyVHJlZU91dGxpbmVMYWJlbCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVWaWV3LnByb3RvdHlwZS5zaG93bik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVWaWV3LnByb3RvdHlwZS5oaWRkZW4pOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lVmlldy5wcm90b3R5cGUudXBkYXRl
TGF5b3V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5MYXlvdXRUaW1lbGluZVZpZXcucHJvdG90
eXBlLm1hdGNoVHJlZUVsZW1lbnRBZ2FpbnN0Q3VzdG9tRmlsdGVycyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuTGF5b3V0VGltZWxpbmVWaWV3LnByb3RvdHlwZS5fbGF5b3V0VGltZWxpbmVSZWNv
cmRBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVWaWV3LnByb3Rv
dHlwZS5fZGF0YUdyaWRGaWx0ZXJzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5M
YXlvdXRUaW1lbGluZVZpZXcucHJvdG90eXBlLl90cmVlRWxlbWVudFNlbGVjdGVkKToKKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOiBBZGRlZCBuZXcgZmlsZXMuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1NjcmlwdFRpbWVsaW5lRGF0YUdyaWQuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVEYXRhR3JpZCk6IFBhc3MgdGhlIHJpZ2h0IHBhcmFt
ZXRlcnMgdG8gdGhlIHN1cGVyY2xhc3MuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Njcmlw
dFRpbWVsaW5lRGF0YUdyaWROb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFRp
bWVsaW5lRGF0YUdyaWROb2RlLnByb3RvdHlwZS5jcmVhdGVDZWxsQ29udGVudCk6IEZpeCB1cCBo
b3cgd2UgY3JlYXRlIHRoZSBsaW5rLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9TY3JpcHRU
aW1lbGluZVJlY29yZC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJl
Y29yZC5wcm90b3R5cGUuc2F2ZUlkZW50aXR5VG9Db29raWUpOiBBZGRlZC4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvU2NyaXB0VGltZWxpbmVWaWV3LmNzczogQ29waWVkIGZyb20gU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvU2NyaXB0VGltZWxpbmVEYXRhR3JpZC5qcy4K
KyAgICAgICAgKC50aW1lbGluZS12aWV3LnNjcmlwdCA+IC5kYXRhLWdyaWQpOgorICAgICAgICAo
LnRpbWVsaW5lLXZpZXcuc2NyaXB0ID4gLmRhdGEtZ3JpZCAuZXZlbnRUeXBlLWNvbHVtbik6Cisg
ICAgICAgICguc2lkZWJhciA+IC5wYW5lbC50aW1lbGluZS50aW1lbGluZS1jb250ZW50LXZpZXct
c2hvd2luZyAubmF2aWdhdGlvbi1zaWRlYmFyLXBhbmVsLWNvbnRlbnQtdHJlZS1vdXRsaW5lLnNj
cmlwdCAuaXRlbSAuc3VidGl0bGUpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9TY3JpcHRU
aW1lbGluZVZpZXcuanM6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVs
aW5lVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVWaWV3LnByb3Rv
dHlwZS5nZXQgbmF2aWdhdGlvblNpZGViYXJUcmVlT3V0bGluZUxhYmVsKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVZpZXcucHJvdG90eXBlLnNob3duKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVZpZXcucHJvdG90eXBlLmhpZGRlbik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVWaWV3LnByb3RvdHlwZS51cGRhdGVMYXlv
dXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lVmlldy5wcm90b3R5cGUu
bWF0Y2hUcmVlRWxlbWVudEFnYWluc3RDdXN0b21GaWx0ZXJzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TY3JpcHRUaW1lbGluZVZpZXcucHJvdG90eXBlLl9zY3JpcHRUaW1lbGluZVJlY29yZEFk
ZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVZpZXcucHJvdG90eXBl
Ll9kYXRhR3JpZEZpbHRlcnNEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dFRpbWVsaW5lVmlldy5wcm90b3R5cGUuX3RyZWVFbGVtZW50U2VsZWN0ZWQpOgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9Tb3VyY2VDb2RlVGltZWxpbmVUcmVlRWxlbWVudC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGltZWxpbmVUcmVlRWxlbWVudCk6CisgICAgICAg
IE1vdmVkIGNvZGUgdG8gVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVudC4gU3ViY2xhc3MgZnJvbSBp
dC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGltZWxpbmVDb250ZW50Vmlldy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5tYXRjaFRy
ZWVFbGVtZW50QWdhaW5zdEN1c3RvbUZpbHRlcnMpOiBTdXBwb3J0IFRpbWVsaW5lUmVjb3JkVHJl
ZUVsZW1lbnQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVDb250ZW50Vmlldy5wcm90
b3R5cGUuX3RpbWVSYW5nZVNlbGVjdGlvbkNoYW5nZWQpOiBVcGRhdGUgemVyb1RpbWUgZm9yIGFs
bCB2aWV3cy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGltZWxpbmVEYXRhR3JpZC5jc3M6
CisgICAgICAgICguZGF0YS1ncmlkLnRpbWVsaW5lIHRkIC5pY29uKToKKyAgICAgICAgKC5kYXRh
LWdyaWQudGltZWxpbmUgdGQgLmdvLXRvLWFycm93KToKKyAgICAgICAgKC5kYXRhLWdyaWQudGlt
ZWxpbmUgdHI6aG92ZXIgLmdvLXRvLWFycm93KToKKyAgICAgICAgKC5kYXRhLWdyaWQudGltZWxp
bmUgdGQgLnN1YnRpdGxlKToKKyAgICAgICAgKC5kYXRhLWdyaWQudGltZWxpbmUgdGQgLnN1YnRp
dGxlOjpiZWZvcmUpOgorICAgICAgICAoLmRhdGEtZ3JpZC50aW1lbGluZTpmb2N1cyB0ci5zZWxl
Y3RlZCB0ZCAuc3VidGl0bGUpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9UaW1lbGluZVJl
Y29yZC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5wcm90b3R5cGUu
c2F2ZUlkZW50aXR5VG9Db29raWUpOiBBZGRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
VGltZWxpbmVSZWNvcmRUcmVlRWxlbWVudC5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVSZWNvcmRUcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0IHJlY29yZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0IGZpbHRl
cmFibGVEYXRhKToKKyAgICAgICAgRmFjdG9yZWQgb3V0IGZyb20gU291cmNlQ29kZVRpbWVsaW5l
VHJlZUVsZW1lbnQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1RpbWVsaW5lU2lkZWJhclBh
bmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lU2lkZWJhclBhbmVsLnByb3Rv
dHlwZS50cmVlRWxlbWVudEZvclJlcHJlc2VudGVkT2JqZWN0Lmxvb3NseUNvbXBhcmVSZXByZXNl
bnRlZE9iamVjdHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lU2lkZWJhclBhbmVs
LnByb3RvdHlwZS50cmVlRWxlbWVudEZvclJlcHJlc2VudGVkT2JqZWN0KToKKyAgICAgICAgRmlu
ZCBUcmVlRWxlbWVudHMgdmlhIGEgbG9vc2UgbG9va3VwIGJhc2VkIG9uIHJlcHJlc2VudGVkIG9i
amVjdHMgdGhhdCBtaWdodCBjb250YWluIHRoZSByZXByZXNlbnRlZCBvYmplY3Qgd2UgYXJlCisg
ICAgICAgIHJlYWxseSBsb29raW5nIGZvci4KKwogMjAxNC0wMS0xNCAgVGltb3RoeSBIYXRjaGVy
ICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHRoZSBkaXNjcmV0ZSBO
ZXR3b3JrIHRpbWVsaW5lIHZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
TG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRl
eCAwNTczYzA3NzU5NzU1ZDQ1MjQwM2IxMmRhMWVlODE3ZjZlNzFkNzc5Li5kNWRmMjFmNzhiMTA2
MWY1MDM3ZjkxMmI0MDFlNGRhYzEyNWMzOWNkIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRh
IDEzMwp6Y21hRlYhMkdGXmN8KT9XV0QhRnVMbjRDYExvOTs9Z0RucyVGKnFgUyNVPn40PXgkQ0g3
Tn04N1gyPUgkcjcjcXUKekM8Xzg9Z3Z2fV96QClvNXp5QVFzPGt3U3BDViFuU3V6Qk5ASThvanJo
N3pFR0FxPCVleGVUZTM9ZDZAdTEreW43Ck0lKz1xX3koKE1gMExiU2dYI2ZCSwoKZGVsdGEgNTkK
emNtVi1CMEwxX0RmZGtAejFGJk5ndiNBcGhlNnRJWHlhYmMpbE1Ed18wQSZEZjBDYmEobE58dzVs
UTFuWWxOcHJ8ClJsZXdvMXYpYDByNnw8a0pReD9CKjdpUnpmCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRGF0YUdyaWQuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9EYXRhR3JpZC5qcwppbmRleCAwOTBkOGU1ODRmYTMzMDAz
MTZkMDFkNmM0ZDhlMDg2MzQ3YTMzZGMyLi4yYmVjYmQ2NDI1YTZmNWIxN2ViMGRmZjQxYzFiNGI1
NmY1M2I2OTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9EYXRhR3JpZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9E
YXRhR3JpZC5qcwpAQCAtMTY1LDYgKzE2NSw3IEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZCA9IGZ1
bmN0aW9uKGNvbHVtbnMsIGVkaXRDYWxsYmFjaywgZGVsZXRlQ2FsbGJhY2spCiAKICAgICB0aGlz
LmNvbHVtbnMgPSBjb2x1bW5zIHx8IHt9OwogICAgIHRoaXMuX2NvbHVtbnNBcnJheSA9IFtdOwor
CiAgICAgZm9yICh2YXIgY29sdW1uSWRlbnRpZmllciBpbiBjb2x1bW5zKSB7CiAgICAgICAgIGNv
bHVtbnNbY29sdW1uSWRlbnRpZmllcl0ub3JkaW5hbCA9IHRoaXMuX2NvbHVtbnNBcnJheS5sZW5n
dGg7CiAgICAgICAgIGNvbHVtbnNbY29sdW1uSWRlbnRpZmllcl0uaWRlbnRpZmllciA9IGNvbHVt
bklkZW50aWZpZXI7CkBAIC0xODcsNiArMTg4LDExIEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZCA9
IGZ1bmN0aW9uKGNvbHVtbnMsIGVkaXRDYWxsYmFjaywgZGVsZXRlQ2FsbGJhY2spCiAgICAgdGhp
cy5yZXNpemVycyA9IFtdOwogICAgIHRoaXMuX2NvbHVtbldpZHRoc0luaXRpYWxpemVkID0gZmFs
c2U7CiAKKyAgICBmb3IgKHZhciBjb2x1bW5JZGVudGlmaWVyIGluIGNvbHVtbnMpIHsKKyAgICAg
ICAgaWYgKGNvbHVtbnNbY29sdW1uSWRlbnRpZmllcl0uaGlkZGVuKQorICAgICAgICAgICAgdGhp
cy5faGlkZUNvbHVtbihjb2x1bW5JZGVudGlmaWVyKTsKKyAgICB9CisKICAgICB0aGlzLl9nZW5l
cmF0ZVNvcnRJbmRpY2F0b3JJbWFnZXNJZk5lZWRlZCgpOwogfQogCkBAIC01NDUsMTMgKzU1MSwy
MSBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFy
IHRhYmxlV2lkdGggPSB0aGlzLl9kYXRhVGFibGUub2Zmc2V0V2lkdGg7CiAgICAgICAgICAgICB2
YXIgbnVtQ29sdW1ucyA9IGhlYWRlclRhYmxlQ29sdW1ucy5sZW5ndGg7CiAgICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IG51bUNvbHVtbnM7IGkrKykgewotICAgICAgICAgICAgICAgIHZh
ciBjb2x1bW5XaWR0aCA9IHRoaXMuaGVhZGVyVGFibGVCb2R5LnJvd3NbMF0uY2VsbHNbaV0ub2Zm
c2V0V2lkdGg7Ci0gICAgICAgICAgICAgICAgdmFyIHBlcmNlbnRXaWR0aCA9ICgoY29sdW1uV2lk
dGggLyB0YWJsZVdpZHRoKSAqIDEwMCkgKyAiJSI7Ci0gICAgICAgICAgICAgICAgdGhpcy5faGVh
ZGVyVGFibGVDb2x1bW5Hcm91cC5jaGlsZHJlbltpXS5zdHlsZS53aWR0aCA9IHBlcmNlbnRXaWR0
aDsKLSAgICAgICAgICAgICAgICB0aGlzLl9kYXRhVGFibGVDb2x1bW5Hcm91cC5jaGlsZHJlbltp
XS5zdHlsZS53aWR0aCA9IHBlcmNlbnRXaWR0aDsKKyAgICAgICAgICAgICAgICB2YXIgaGVhZGVy
Q2VsbCA9IHRoaXMuaGVhZGVyVGFibGVCb2R5LnJvd3NbMF0uY2VsbHNbaV0KKyAgICAgICAgICAg
ICAgICBpZiAodGhpcy5faXNDb2x1bW5WaXNpYmxlKGhlYWRlckNlbGwuY29sdW1uSWRlbnRpZmll
cikpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGNvbHVtbldpZHRoID0gaGVhZGVyQ2VsbC5v
ZmZzZXRXaWR0aDsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHBlcmNlbnRXaWR0aCA9ICgoY29s
dW1uV2lkdGggLyB0YWJsZVdpZHRoKSAqIDEwMCkgKyAiJSI7CisgICAgICAgICAgICAgICAgICAg
IHRoaXMuX2hlYWRlclRhYmxlQ29sdW1uR3JvdXAuY2hpbGRyZW5baV0uc3R5bGUud2lkdGggPSBw
ZXJjZW50V2lkdGg7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFUYWJsZUNvbHVtbkdy
b3VwLmNoaWxkcmVuW2ldLnN0eWxlLndpZHRoID0gcGVyY2VudFdpZHRoOworICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2hlYWRlclRhYmxlQ29sdW1u
R3JvdXAuY2hpbGRyZW5baV0uc3R5bGUud2lkdGggPSAwOworICAgICAgICAgICAgICAgICAgICB0
aGlzLl9kYXRhVGFibGVDb2x1bW5Hcm91cC5jaGlsZHJlbltpXS5zdHlsZS53aWR0aCA9IDA7Cisg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQorCiAgICAgICAgICAgICB0aGlzLl9jb2x1
bW5XaWR0aHNJbml0aWFsaXplZCA9IHRydWU7CiAgICAgICAgIH0KKwogICAgICAgICB0aGlzLl9w
b3NpdGlvblJlc2l6ZXJzKCk7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KFdlYkluc3BlY3Rvci5EYXRhR3JpZC5FdmVudC5EaWRMYXlvdXQpOwogICAgIH0sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9MYXlvdXRUaW1lbGluZURh
dGFHcmlkLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTGF5b3V0VGlt
ZWxpbmVEYXRhR3JpZC5qcwppbmRleCBmODM0M2U3ZmY0MDhmNTA1Y2QxYTE4N2EyZmE3MWU5OTcw
ODg4YzU0Li44MzNmZjZkMTg4MzFlZmFiOWI5MTc4MDU2NDEyNTBmYTBjZGI1ZmY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9MYXlvdXRUaW1lbGluZURh
dGFHcmlkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0xheW91
dFRpbWVsaW5lRGF0YUdyaWQuanMKQEAgLTIzLDkgKzIzLDkgQEAKICAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVEYXRh
R3JpZCA9IGZ1bmN0aW9uKGNvbHVtbnMpCitXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVEYXRh
R3JpZCA9IGZ1bmN0aW9uKHRyZWVPdXRsaW5lLCBjb2x1bW5zLCBlZGl0Q2FsbGJhY2ssIGRlbGV0
ZUNhbGxiYWNrKQogewotICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZURhdGFHcmlkLmNhbGwodGhp
cywgY29sdW1ucyk7CisgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lRGF0YUdyaWQuY2FsbCh0aGlz
LCB0cmVlT3V0bGluZSwgY29sdW1ucywgZWRpdENhbGxiYWNrLCBkZWxldGVDYWxsYmFjayk7CiAK
ICAgICB0aGlzLl9zaG93aW5nSGlnaGxpZ2h0ID0gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0xheW91dFRpbWVsaW5lUmVjb3JkLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTGF5b3V0VGltZWxpbmVSZWNvcmQu
anMKaW5kZXggYTliYjgzNGM4NzZlYWQ1NmU3MTg4MmViMmQ2OTFiMWY2MWU2MzA0MC4uMTczNTc5
Y2YwZWY1ZWY4NmY2MDVlMDlkM2Y3NjZhNzljNTc4YThhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTGF5b3V0VGltZWxpbmVSZWNvcmQuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTGF5b3V0VGltZWxpbmVSZWNvcmQu
anMKQEAgLTY0LDYgKzY0LDkgQEAgV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lUmVjb3JkLkV2
ZW50VHlwZS5kaXNwbGF5TmFtZSA9IGZ1bmN0aW9uKGV2ZW50VHlwZSkKICAgICB9CiB9OwogCitX
ZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQuVHlwZUlkZW50aWZpZXIgPSAibGF5b3V0
LXRpbWVsaW5lLXJlY29yZCI7CitXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQuRXZl
bnRUeXBlQ29va2llS2V5ID0gImxheW91dC10aW1lbGluZS1yZWNvcmQtZXZlbnQtdHlwZSI7CisK
IFdlYkluc3BlY3Rvci5MYXlvdXRUaW1lbGluZVJlY29yZC5wcm90b3R5cGUgPSB7CiAgICAgY29u
c3RydWN0b3I6IFdlYkluc3BlY3Rvci5MYXlvdXRUaW1lbGluZVJlY29yZCwKIApAQCAtMTA5LDYg
KzExMiwxMyBAQCBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQucHJvdG90eXBlID0g
ewogICAgIGdldCBxdWFkKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9xdWFkOworICAg
IH0sCisKKyAgICBzYXZlSWRlbnRpdHlUb0Nvb2tpZTogZnVuY3Rpb24oY29va2llKQorICAgIHsK
KyAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLnByb3RvdHlwZS5zYXZlSWRlbnRp
dHlUb0Nvb2tpZS5jYWxsKHRoaXMsIGNvb2tpZSk7CisKKyAgICAgICAgY29va2llW1dlYkluc3Bl
Y3Rvci5MYXlvdXRUaW1lbGluZVJlY29yZC5FdmVudFR5cGVDb29raWVLZXldID0gdGhpcy5fZXZl
bnRUeXBlOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0xheW91dFRpbWVsaW5lVmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9MYXlvdXRUaW1lbGluZVZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExZDMy
ODFkZTQzMjBlY2QzMGZmYzM3MjQ0NDY0NzA0ZTRjYTIzMzAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9MYXlvdXRUaW1lbGluZVZpZXcuY3Nz
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisudGltZWxpbmUtdmlldy5sYXlvdXQgPiAu
ZGF0YS1ncmlkIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxl
ZnQ6IDA7CisgICAgcmlnaHQ6IDA7CisgICAgYm90dG9tOiAwOworfQorCisudGltZWxpbmUtdmll
dy5sYXlvdXQgPiAuZGF0YS1ncmlkIC5ldmVudFR5cGUtY29sdW1uIHsKKyAgICBib3JkZXItcmln
aHQ6IG5vbmU7Cit9CisKKy5zaWRlYmFyID4gLnBhbmVsLnRpbWVsaW5lLnRpbWVsaW5lLWNvbnRl
bnQtdmlldy1zaG93aW5nIC5uYXZpZ2F0aW9uLXNpZGViYXItcGFuZWwtY29udGVudC10cmVlLW91
dGxpbmUubGF5b3V0IC5pdGVtIC5zdWJ0aXRsZSB7CisgICAgZGlzcGxheTogbm9uZTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0xheW91dFRpbWVs
aW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0xheW91dFRp
bWVsaW5lVmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDg3MGVkMmVlZjNmZWVkOGI1Mzk0YWFlN2U1ODY1
MzZiZTQxOGRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTGF5b3V0VGltZWxpbmVWaWV3LmpzCkBAIC0wLDAgKzEsMTY0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lVmlldyA9IGZ1bmN0aW9uKCkKK3sKKyAg
ICBXZWJJbnNwZWN0b3IuVGltZWxpbmVWaWV3LmNhbGwodGhpcyk7CisKKyAgICB0aGlzLm5hdmln
YXRpb25TaWRlYmFyVHJlZU91dGxpbmUub25zZWxlY3QgPSB0aGlzLl90cmVlRWxlbWVudFNlbGVj
dGVkLmJpbmQodGhpcyk7CisgICAgdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclRyZWVPdXRsaW5lLmVs
ZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuTmF2aWdhdGlvblNpZGViYXJQYW5lbC5I
aWRlRGlzY2xvc3VyZUJ1dHRvbnNTdHlsZUNsYXNzTmFtZSk7CisgICAgdGhpcy5uYXZpZ2F0aW9u
U2lkZWJhclRyZWVPdXRsaW5lLmVsZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuTGF5
b3V0VGltZWxpbmVWaWV3LlRyZWVPdXRsaW5lU3R5bGVDbGFzc05hbWUpOworCisgICAgdmFyIGNv
bHVtbnMgPSB7ZXZlbnRUeXBlOiB7fSwgaW5pdGlhdG9yQ2FsbEZyYW1lOiB7fSwgd2lkdGg6IHt9
LCBoZWlnaHQ6IHt9LCBhcmVhOiB7fSwgc3RhcnRUaW1lOiB7fSwgZHVyYXRpb246IHt9fTsKKwor
ICAgIGNvbHVtbnMuZXZlbnRUeXBlLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUeXBl
Iik7CisgICAgY29sdW1ucy5ldmVudFR5cGUud2lkdGggPSAiMTUlIjsKKyAgICBjb2x1bW5zLmV2
ZW50VHlwZS5zY29wZUJhciA9IFdlYkluc3BlY3Rvci5UaW1lbGluZURhdGFHcmlkLmNyZWF0ZUNv
bHVtblNjb3BlQmFyKCJsYXlvdXQiLCBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQu
RXZlbnRUeXBlKTsKKyAgICBjb2x1bW5zLmV2ZW50VHlwZS5oaWRkZW4gPSB0cnVlOworCisgICAg
Y29sdW1ucy5pbml0aWF0b3JDYWxsRnJhbWUudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkluaXRpYXRvciIpOworICAgIGNvbHVtbnMuaW5pdGlhdG9yQ2FsbEZyYW1lLndpZHRoID0gIjI1
JSI7CisKKyAgICBjb2x1bW5zLndpZHRoLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJX
aWR0aCIpOworICAgIGNvbHVtbnMud2lkdGgud2lkdGggPSAiOCUiOworCisgICAgY29sdW1ucy5o
ZWlnaHQudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkhlaWdodCIpOworICAgIGNvbHVt
bnMuaGVpZ2h0LndpZHRoID0gIjglIjsKKworICAgIGNvbHVtbnMuYXJlYS50aXRsZSA9IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiQXJlYSIpOworICAgIGNvbHVtbnMuYXJlYS53aWR0aCA9ICIxMiUi
OworCisgICAgY29sdW1ucy5zdGFydFRpbWUudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IlN0YXJ0IFRpbWUiKTsKKyAgICBjb2x1bW5zLnN0YXJ0VGltZS53aWR0aCA9ICI4JSI7CisgICAg
Y29sdW1ucy5zdGFydFRpbWUuYWxpZ25lZCA9ICJyaWdodCI7CisgICAgY29sdW1ucy5zdGFydFRp
bWUuc29ydCA9ICJhc2NlbmRpbmciOworCisgICAgY29sdW1ucy5kdXJhdGlvbi50aXRsZSA9IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiRHVyYXRpb24iKTsKKyAgICBjb2x1bW5zLmR1cmF0aW9uLndp
ZHRoID0gIjglIjsKKyAgICBjb2x1bW5zLmR1cmF0aW9uLmFsaWduZWQgPSAicmlnaHQiOworCisg
ICAgZm9yICh2YXIgY29sdW1uIGluIGNvbHVtbnMpCisgICAgICAgIGNvbHVtbnNbY29sdW1uXS5z
b3J0YWJsZSA9IHRydWU7CisKKyAgICB0aGlzLl9kYXRhR3JpZCA9IG5ldyBXZWJJbnNwZWN0b3Iu
TGF5b3V0VGltZWxpbmVEYXRhR3JpZCh0aGlzLm5hdmlnYXRpb25TaWRlYmFyVHJlZU91dGxpbmUs
IGNvbHVtbnMpOworICAgIHRoaXMuX2RhdGFHcmlkLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLlRpbWVsaW5lRGF0YUdyaWQuRXZlbnQuRmlsdGVyc0RpZENoYW5nZSwgdGhpcy5fZGF0YUdy
aWRGaWx0ZXJzRGlkQ2hhbmdlLCB0aGlzKTsKKworICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3Qu
YWRkKFdlYkluc3BlY3Rvci5MYXlvdXRUaW1lbGluZVZpZXcuU3R5bGVDbGFzc05hbWUpOworICAg
IHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9kYXRhR3JpZC5lbGVtZW50KTsKK307CisK
K1dlYkluc3BlY3Rvci5MYXlvdXRUaW1lbGluZVZpZXcuU3R5bGVDbGFzc05hbWUgPSAibGF5b3V0
IjsKK1dlYkluc3BlY3Rvci5MYXlvdXRUaW1lbGluZVZpZXcuVHJlZU91dGxpbmVTdHlsZUNsYXNz
TmFtZSA9ICJsYXlvdXQiOworCitXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVWaWV3LnByb3Rv
dHlwZSA9IHsKKyAgICBjb25zdHJ1Y3RvcjogV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lVmll
dywKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5UaW1lbGluZVZpZXcucHJvdG90eXBlLAor
CisgICAgLy8gUHVibGljCisKKyAgICBnZXQgbmF2aWdhdGlvblNpZGViYXJUcmVlT3V0bGluZUxh
YmVsKCkKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlY29y
ZHMiKTsKKyAgICB9LAorCisgICAgc2hvd246IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRo
aXMuX2RhdGFHcmlkLnNob3duKCk7CisgICAgfSwKKworICAgIGhpZGRlbjogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgdGhpcy5fZGF0YUdyaWQuaGlkZGVuKCk7CisgICAgfSwKKworICAgIHVw
ZGF0ZUxheW91dDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lVmlldy5wcm90b3R5cGUudXBkYXRlTGF5b3V0LmNhbGwodGhpcyk7CisKKyAgICAgICAgdGhp
cy5fZGF0YUdyaWQudXBkYXRlTGF5b3V0KCk7CisgICAgfSwKKworICAgIG1hdGNoVHJlZUVsZW1l
bnRBZ2FpbnN0Q3VzdG9tRmlsdGVyczogZnVuY3Rpb24odHJlZUVsZW1lbnQpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5fZGF0YUdyaWQudHJlZUVsZW1lbnRNYXRjaGVzQWN0aXZlU2NvcGVG
aWx0ZXJzKHRyZWVFbGVtZW50KTsKKyAgICB9LAorCisgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVZpZXcucHJvdG90eXBlLnJlc2V0LmNh
bGwodGhpcyk7CisKKyAgICAgICAgdGhpcy5fZGF0YUdyaWQucmVzZXQoKTsKKworICAgICAgICBp
ZiAodGhpcy5fbGF5b3V0VGltZWxpbmUpCisgICAgICAgICAgICB0aGlzLl9sYXlvdXRUaW1lbGlu
ZS5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRoaXMpOworCisgICAgICAgIHRoaXMu
X2xheW91dFRpbWVsaW5lID0gV2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5yZWNvcmRpbmcu
dGltZWxpbmVzLmdldChXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5MYXlvdXQpOwor
ICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9sYXlvdXRUaW1lbGluZSk7CisKKyAgICAgICAg
dGhpcy5fbGF5b3V0VGltZWxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxp
bmUuRXZlbnQuUmVjb3JkQWRkZWQsIHRoaXMuX2xheW91dFRpbWVsaW5lUmVjb3JkQWRkZWQsIHRo
aXMpOworICAgIH0sCisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfbGF5b3V0VGltZWxpbmVSZWNv
cmRBZGRlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgbGF5b3V0VGltZWxp
bmVSZWNvcmQgPSBldmVudC5kYXRhLnJlY29yZDsKKyAgICAgICAgY29uc29sZS5hc3NlcnQobGF5
b3V0VGltZWxpbmVSZWNvcmQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVS
ZWNvcmQpOworCisgICAgICAgIHZhciB0cmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVSZWNvcmRUcmVlRWxlbWVudChsYXlvdXRUaW1lbGluZVJlY29yZCwgdHJ1ZSk7CisgICAg
ICAgIHZhciBkYXRhR3JpZE5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lRGF0
YUdyaWROb2RlKGxheW91dFRpbWVsaW5lUmVjb3JkLCB0aGlzLnplcm9UaW1lKTsKKworICAgICAg
ICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcih0cmVlRWxlbWVudCwgZGF0YUdyaWRO
b2RlKTsKKyAgICB9LAorCisgICAgX2RhdGFHcmlkRmlsdGVyc0RpZENoYW5nZTogZnVuY3Rpb24o
ZXZlbnQpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IudGltZWxpbmVTaWRlYmFyUGFuZWwu
dXBkYXRlRmlsdGVyKCk7CisgICAgfSwKKworICAgIF90cmVlRWxlbWVudFNlbGVjdGVkOiBmdW5j
dGlvbih0cmVlRWxlbWVudCwgc2VsZWN0ZWRCeVVzZXIpCisgICAgeworICAgICAgICBpZiAodGhp
cy5fZGF0YUdyaWQuc2hvdWxkSWdub3JlU2VsZWN0aW9uRXZlbnQoKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci50aW1lbGluZVNpZGViYXJQYW5lbC5j
YW5TaG93RGlmZmVyZW50Q29udGVudFZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBpZiAodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRm9sZGVyVHJlZUVs
ZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCEodHJlZUVsZW1lbnQg
aW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVudCkpIHsKKyAg
ICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlVua25vd24gdHJlZSBlbGVtZW50IHNlbGVjdGVkLiIp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCF0cmVlRWxl
bWVudC5yZWNvcmQuc291cmNlQ29kZUxvY2F0aW9uKSB7CisgICAgICAgICAgICBXZWJJbnNwZWN0
b3IudGltZWxpbmVTaWRlYmFyUGFuZWwuc2hvd1RpbWVsaW5lVmlldyhXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVSZWNvcmQuVHlwZS5MYXlvdXQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlU2lkZWJhclBhbmVsLnNob3dPcmlnaW5h
bE9yRm9ybWF0dGVkU291cmNlQ29kZUxvY2F0aW9uKHRyZWVFbGVtZW50LnJlY29yZC5zb3VyY2VD
b2RlTG9jYXRpb24pOworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9NYWluLmh0bWwKaW5kZXggOWFlNDM2NGY0MmQxNDlmNzZhZjNiYjg2ZTdiNTljYWMz
ZjIwNmEyMy4uNGNhYTJlNmU1MzdmMzk1YWZjODQ5ODUzMDdmYzAzODE3YWUwMzEzMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbApAQCAtODUsNiAr
ODUsOCBAQAogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVGltZWxpbmVDb250ZW50
Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iT3ZlcnZpZXdUaW1l
bGluZVZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ik5ldHdvcmtU
aW1lbGluZVZpZXcuY3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IkxheW91
dFRpbWVsaW5lVmlldy5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iU2Ny
aXB0VGltZWxpbmVWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJU
aW1lbGluZUljb25zLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJUaW1l
bGluZVJ1bGVyLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJUaW1lbGlu
ZURhdGFHcmlkLmNzcyI+CkBAIC0yNzksNiArMjgxLDggQEAKICAgICA8c2NyaXB0IHNyYz0iVGlt
ZWxpbmVWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iT3ZlcnZpZXdUaW1lbGlu
ZVZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOZXR3b3JrVGltZWxpbmVWaWV3
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTGF5b3V0VGltZWxpbmVWaWV3LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iU2NyaXB0VGltZWxpbmVWaWV3LmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iQXBwbGljYXRpb25DYWNoZURldGFpbHNTaWRlYmFyUGFuZWwu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJET01UcmVlTWFuYWdlci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkRPTU5vZGUuanMiPjwvc2NyaXB0PgpAQCAtMzQ2LDYgKzM1
MCw3IEBACiAgICAgPHNjcmlwdCBzcmM9IkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW5kZXRlcm1pbmF0ZVByb2dyZXNzU3Bpbm5lci5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlRpbWVsaW5lU2lkZWJhclBhbmVsLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVudC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlNvdXJjZUNvZGVUaW1lbGluZVRyZWVFbGVtZW50
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVGltZWxpbmVSdWxlci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlRpbWVsaW5lRGF0YUdyaWQuanMiPjwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvU2NyaXB0VGltZWxp
bmVEYXRhR3JpZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Njcmlw
dFRpbWVsaW5lRGF0YUdyaWQuanMKaW5kZXggY2IzYzZhYzJlNzZhMDUyYWViMWMwZTYxMmQyYmNl
ZDVhNmZiNDBlNC4uY2Y0ZDkwZjJkNDJmMDhkNmZjMWVhMmU0MzQyOTYyMmIzNDVhODZhMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvU2NyaXB0VGltZWxp
bmVEYXRhR3JpZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9T
Y3JpcHRUaW1lbGluZURhdGFHcmlkLmpzCkBAIC0yMyw5ICsyMyw5IEBACiAgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5l
RGF0YUdyaWQgPSBmdW5jdGlvbihjb2x1bW5zKQorV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5l
RGF0YUdyaWQgPSBmdW5jdGlvbih0cmVlT3V0bGluZSwgY29sdW1ucywgZWRpdENhbGxiYWNrLCBk
ZWxldGVDYWxsYmFjaykKIHsKLSAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVEYXRhR3JpZC5jYWxs
KHRoaXMsIGNvbHVtbnMpOworICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZURhdGFHcmlkLmNhbGwo
dGhpcywgdHJlZU91dGxpbmUsIGNvbHVtbnMsIGVkaXRDYWxsYmFjaywgZGVsZXRlQ2FsbGJhY2sp
OwogfQogCiBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVEYXRhR3JpZC5wcm90b3R5cGUgPSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9TY3JpcHRU
aW1lbGluZURhdGFHcmlkTm9kZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1NjcmlwdFRpbWVsaW5lRGF0YUdyaWROb2RlLmpzCmluZGV4IDU1OTQ4ZmY3YmEyNmZkYmFk
NzY4YWZhN2FkZDkzNjMwODlkZGJkZTEuLjNjMDQzYmY5OWFmOWI0OTUzZjVlMDQ4MzMzOTcwYWVl
ODhkMjlkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1NjcmlwdFRpbWVsaW5lRGF0YUdyaWROb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1NjcmlwdFRpbWVsaW5lRGF0YUdyaWROb2RlLmpzCkBAIC02MiwyMiAr
NjIsMjkgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lRGF0YUdyaWROb2RlLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgY2FzZSAiZGV0YWlscyI6CiAgICAgICAgICAgICByZXR1cm4gdmFsdWUg
PyB2YWx1ZSA6IGVtcHR5VmFsdWVQbGFjZWhvbGRlclN0cmluZzsKIAotICAgICAgICBjYXNlICJy
ZXNvdXJjZSI6CisgICAgICAgIGNhc2UgInNvdXJjZUNvZGVMb2NhdGlvbiI6CiAgICAgICAgICAg
ICBpZiAoIXZhbHVlKQogICAgICAgICAgICAgICAgIHJldHVybiBlbXB0eVZhbHVlUGxhY2Vob2xk
ZXJTdHJpbmc7CiAKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuZGF0YS5zb3VyY2VD
b2RlTG9jYXRpb24pOwotCi0gICAgICAgICAgICBjZWxsLmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVj
dG9yLlJlc291cmNlVHJlZUVsZW1lbnQuUmVzb3VyY2VJY29uU3R5bGVDbGFzc05hbWUpOwotICAg
ICAgICAgICAgY2VsbC5jbGFzc0xpc3QuYWRkKHZhbHVlLnR5cGUpOworICAgICAgICAgICAgaWYg
KHZhbHVlLnNvdXJjZUNvZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUmVzb3VyY2UpIHsKKyAg
ICAgICAgICAgICAgICBjZWxsLmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJl
ZUVsZW1lbnQuUmVzb3VyY2VJY29uU3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgICAgIGNl
bGwuY2xhc3NMaXN0LmFkZCh2YWx1ZS5zb3VyY2VDb2RlLnR5cGUpOworICAgICAgICAgICAgfSBl
bHNlIGlmICh2YWx1ZS5zb3VyY2VDb2RlIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNjcmlwdCkg
eworICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5zb3VyY2VDb2RlLnVybCkgeworICAgICAgICAg
ICAgICAgICAgICBjZWxsLmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVs
ZW1lbnQuUmVzb3VyY2VJY29uU3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgICAgICAgICBj
ZWxsLmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuU2NyaXB0KTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc0xpc3Qu
YWRkKFdlYkluc3BlY3Rvci5TY3JpcHRUcmVlRWxlbWVudC5Bbm9ueW1vdXNTY3JpcHRJY29uU3R5
bGVDbGFzc05hbWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb25z
b2xlLmVycm9yKCJVbmtub3duIFNvdXJjZUNvZGUgc3ViY2xhc3MuIik7CisgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIC8vIEdpdmUgdGhlIHdob2xlIGNlbGwgYSB0b29sdGlwIGFuZCBrZWVw
IGl0IHVwIHRvIGRhdGUuCi0gICAgICAgICAgICB2YXIgc291cmNlQ29kZUxvY2F0aW9uID0gdGhp
cy5kYXRhLnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAgICAgICAgICAgIHNvdXJjZUNvZGVMb2NhdGlv
bi5wb3B1bGF0ZUxpdmVEaXNwbGF5TG9jYXRpb25Ub29sdGlwKGNlbGwpOworICAgICAgICAgICAg
dmFsdWUucG9wdWxhdGVMaXZlRGlzcGxheUxvY2F0aW9uVG9vbHRpcChjZWxsKTsKIAogICAgICAg
ICAgICAgdmFyIGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwog
Ci0gICAgICAgICAgICB2YXIgZ29Ub0Fycm93QnV0dG9uTGluayA9IFdlYkluc3BlY3Rvci5jcmVh
dGVTb3VyY2VDb2RlTG9jYXRpb25MaW5rKHNvdXJjZUNvZGVMb2NhdGlvbiwgZmFsc2UsIHRydWUp
OworICAgICAgICAgICAgdmFyIGdvVG9BcnJvd0J1dHRvbkxpbmsgPSBXZWJJbnNwZWN0b3IuY3Jl
YXRlU291cmNlQ29kZUxvY2F0aW9uTGluayh2YWx1ZSwgZmFsc2UsIHRydWUpOwogICAgICAgICAg
ICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZ29Ub0Fycm93QnV0dG9uTGluayk7CiAKICAgICAgICAg
ICAgIHZhciBpY29uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CkBAIC04NSw3ICs5
Miw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZURhdGFHcmlkTm9kZS5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChpY29uKTsKIAogICAgICAgICAg
ICAgdmFyIHRpdGxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAg
ICAgICAgICAgIHNvdXJjZUNvZGVMb2NhdGlvbi5wb3B1bGF0ZUxpdmVEaXNwbGF5TG9jYXRpb25T
dHJpbmcodGl0bGVFbGVtZW50LCAidGV4dENvbnRlbnQiKTsKKyAgICAgICAgICAgIHZhbHVlLnBv
cHVsYXRlTGl2ZURpc3BsYXlMb2NhdGlvblN0cmluZyh0aXRsZUVsZW1lbnQsICJ0ZXh0Q29udGVu
dCIpOwogICAgICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQodGl0bGVFbGVtZW50KTsKIAog
ICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvU2NyaXB0VGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9TY3JpcHRUaW1lbGluZVJlY29yZC5qcwppbmRleCA1
ZWIzZjMzOWEwNThlNzczMTRjZDYwNzdjNzMwOGRmOWIyOGZkYWRmLi5lNWFjZGNkYTBmZTQxMjM3
YTI3NTg4ZmI3M2ExN2ZkNjQ4MTgxZTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9TY3JpcHRUaW1lbGluZVJlY29yZC5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9TY3JpcHRUaW1lbGluZVJlY29yZC5qcwpAQCAtNjMs
NiArNjMsMTAgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlwZS5k
aXNwbGF5TmFtZSA9IGZ1bmN0aW9uKGV2ZW50VHlwZSkKICAgICB9CiB9OwogCitXZWJJbnNwZWN0
b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQuVHlwZUlkZW50aWZpZXIgPSAic2NyaXB0LXRpbWVsaW5l
LXJlY29yZCI7CitXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQuRXZlbnRUeXBlQ29v
a2llS2V5ID0gInNjcmlwdC10aW1lbGluZS1yZWNvcmQtZXZlbnQtdHlwZSI7CitXZWJJbnNwZWN0
b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQuRGV0YWlsc0Nvb2tpZUtleSA9ICJzY3JpcHQtdGltZWxp
bmUtcmVjb3JkLWRldGFpbHMiOworCiBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQu
cHJvdG90eXBlID0gewogICAgIGNvbnN0cnVjdG9yOiBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxp
bmVSZWNvcmQsCiAKQEAgLTc2LDYgKzgwLDE0IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGlu
ZVJlY29yZC5wcm90b3R5cGUgPSB7CiAgICAgZ2V0IGRldGFpbHMoKQogICAgIHsKICAgICAgICAg
cmV0dXJuIHRoaXMuX2RldGFpbHM7CisgICAgfSwKKworICAgIHNhdmVJZGVudGl0eVRvQ29va2ll
OiBmdW5jdGlvbihjb29raWUpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVS
ZWNvcmQucHJvdG90eXBlLnNhdmVJZGVudGl0eVRvQ29va2llLmNhbGwodGhpcywgY29va2llKTsK
KworICAgICAgICBjb29raWVbV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lUmVjb3JkLkV2ZW50
VHlwZUNvb2tpZUtleV0gPSB0aGlzLl9ldmVudFR5cGU7CisgICAgICAgIGNvb2tpZVtXZWJJbnNw
ZWN0b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQuRGV0YWlsc0Nvb2tpZUtleV0gPSB0aGlzLl9kZXRh
aWxzOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1NjcmlwdFRpbWVsaW5lVmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9TY3JpcHRUaW1lbGluZVZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5ZmYzNGJj
ZTQ3ZTgyYjJiYzQxMzk5Y2M0NTdmY2QxMzAwYzM1NWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9TY3JpcHRUaW1lbGluZVZpZXcuY3NzCkBA
IC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisudGltZWxpbmUtdmlldy5zY3JpcHQgPiAuZGF0
YS1ncmlkIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6
IDA7CisgICAgcmlnaHQ6IDA7CisgICAgYm90dG9tOiAwOworfQorCisudGltZWxpbmUtdmlldy5z
Y3JpcHQgPiAuZGF0YS1ncmlkIC5ldmVudFR5cGUtY29sdW1uIHsKKyAgICBib3JkZXItcmlnaHQ6
IG5vbmU7Cit9CisKKy5zaWRlYmFyID4gLnBhbmVsLnRpbWVsaW5lLnRpbWVsaW5lLWNvbnRlbnQt
dmlldy1zaG93aW5nIC5uYXZpZ2F0aW9uLXNpZGViYXItcGFuZWwtY29udGVudC10cmVlLW91dGxp
bmUuc2NyaXB0IC5pdGVtIC5zdWJ0aXRsZSB7CisgICAgZGlzcGxheTogbm9uZTsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1NjcmlwdFRpbWVsaW5l
Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1NjcmlwdFRpbWVs
aW5lVmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OWExYjZlZmViOGFiMTQ4MDY2OTAyYTNmYTJjN2I1MjNj
YzA5ZDM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvU2NyaXB0VGltZWxpbmVWaWV3LmpzCkBAIC0wLDAgKzEsMTU4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lVmlldyA9IGZ1bmN0aW9uKCkKK3sKKyAgICBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVWaWV3LmNhbGwodGhpcyk7CisKKyAgICB0aGlzLm5hdmlnYXRp
b25TaWRlYmFyVHJlZU91dGxpbmUub25zZWxlY3QgPSB0aGlzLl90cmVlRWxlbWVudFNlbGVjdGVk
LmJpbmQodGhpcyk7CisgICAgdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclRyZWVPdXRsaW5lLmVsZW1l
bnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuTmF2aWdhdGlvblNpZGViYXJQYW5lbC5IaWRl
RGlzY2xvc3VyZUJ1dHRvbnNTdHlsZUNsYXNzTmFtZSk7CisgICAgdGhpcy5uYXZpZ2F0aW9uU2lk
ZWJhclRyZWVPdXRsaW5lLmVsZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuU2NyaXB0
VGltZWxpbmVWaWV3LlRyZWVPdXRsaW5lU3R5bGVDbGFzc05hbWUpOworCisgICAgdmFyIGNvbHVt
bnMgPSB7ZXZlbnRUeXBlOiB7fSwgc291cmNlQ29kZUxvY2F0aW9uOiB7fSwgZGV0YWlsczoge30s
IHN0YXJ0VGltZToge30sIGR1cmF0aW9uOiB7fX07CisKKyAgICBjb2x1bW5zLmV2ZW50VHlwZS50
aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVHlwZSIpOworICAgIGNvbHVtbnMuZXZlbnRU
eXBlLndpZHRoID0gIjE1JSI7CisgICAgY29sdW1ucy5ldmVudFR5cGUuc2NvcGVCYXIgPSBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVEYXRhR3JpZC5jcmVhdGVDb2x1bW5TY29wZUJhcigic2NyaXB0Iiwg
V2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlwZSk7CisgICAgY29sdW1u
cy5ldmVudFR5cGUuaGlkZGVuID0gdHJ1ZTsKKworICAgIGNvbHVtbnMuc291cmNlQ29kZUxvY2F0
aW9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMb2NhdGlvbiIpOworICAgIGNvbHVt
bnMuc291cmNlQ29kZUxvY2F0aW9uLndpZHRoID0gIjE1JSI7CisKKyAgICBjb2x1bW5zLmRldGFp
bHMudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRldGFpbHMiKTsKKyAgICBjb2x1bW5z
LmRldGFpbHMud2lkdGggPSAiMTUlIjsKKworICAgIGNvbHVtbnMuc3RhcnRUaW1lLnRpdGxlID0g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTdGFydCBUaW1lIik7CisgICAgY29sdW1ucy5zdGFydFRp
bWUud2lkdGggPSAiMTAlIjsKKyAgICBjb2x1bW5zLnN0YXJ0VGltZS5hbGlnbmVkID0gInJpZ2h0
IjsKKyAgICBjb2x1bW5zLnN0YXJ0VGltZS5zb3J0ID0gImFzY2VuZGluZyI7CisKKyAgICBjb2x1
bW5zLmR1cmF0aW9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEdXJhdGlvbiIpOwor
ICAgIGNvbHVtbnMuZHVyYXRpb24ud2lkdGggPSAiMTAlIjsKKyAgICBjb2x1bW5zLmR1cmF0aW9u
LmFsaWduZWQgPSAicmlnaHQiOworCisgICAgZm9yICh2YXIgY29sdW1uIGluIGNvbHVtbnMpCisg
ICAgICAgIGNvbHVtbnNbY29sdW1uXS5zb3J0YWJsZSA9IHRydWU7CisKKyAgICB0aGlzLl9kYXRh
R3JpZCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVEYXRhR3JpZCh0aGlzLm5hdmln
YXRpb25TaWRlYmFyVHJlZU91dGxpbmUsIGNvbHVtbnMpOworICAgIHRoaXMuX2RhdGFHcmlkLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRGF0YUdyaWQuRXZlbnQuRmlsdGVy
c0RpZENoYW5nZSwgdGhpcy5fZGF0YUdyaWRGaWx0ZXJzRGlkQ2hhbmdlLCB0aGlzKTsKKworICAg
IHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVZp
ZXcuU3R5bGVDbGFzc05hbWUpOworICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9k
YXRhR3JpZC5lbGVtZW50KTsKK307CisKK1dlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVZpZXcu
U3R5bGVDbGFzc05hbWUgPSAic2NyaXB0IjsKK1dlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVZp
ZXcuVHJlZU91dGxpbmVTdHlsZUNsYXNzTmFtZSA9ICJzY3JpcHQiOworCitXZWJJbnNwZWN0b3Iu
U2NyaXB0VGltZWxpbmVWaWV3LnByb3RvdHlwZSA9IHsKKyAgICBjb25zdHJ1Y3RvcjogV2ViSW5z
cGVjdG9yLlNjcmlwdFRpbWVsaW5lVmlldywKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5U
aW1lbGluZVZpZXcucHJvdG90eXBlLAorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgbmF2aWdh
dGlvblNpZGViYXJUcmVlT3V0bGluZUxhYmVsKCkKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlJlY29yZHMiKTsKKyAgICB9LAorCisgICAgc2hvd246IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkLnNob3duKCk7CisgICAgfSwKKwor
ICAgIGhpZGRlbjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fZGF0YUdyaWQuaGlk
ZGVuKCk7CisgICAgfSwKKworICAgIHVwZGF0ZUxheW91dDogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lVmlldy5wcm90b3R5cGUudXBkYXRlTGF5b3V0LmNh
bGwodGhpcyk7CisKKyAgICAgICAgdGhpcy5fZGF0YUdyaWQudXBkYXRlTGF5b3V0KCk7CisgICAg
fSwKKworICAgIG1hdGNoVHJlZUVsZW1lbnRBZ2FpbnN0Q3VzdG9tRmlsdGVyczogZnVuY3Rpb24o
dHJlZUVsZW1lbnQpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZGF0YUdyaWQudHJlZUVs
ZW1lbnRNYXRjaGVzQWN0aXZlU2NvcGVGaWx0ZXJzKHRyZWVFbGVtZW50KTsKKyAgICB9LAorCisg
ICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVZpZXcucHJvdG90eXBlLnJlc2V0LmNhbGwodGhpcyk7CisKKyAgICAgICAgdGhpcy5fZGF0YUdy
aWQucmVzZXQoKTsKKworICAgICAgICBpZiAodGhpcy5fc2NyaXB0VGltZWxpbmUpCisgICAgICAg
ICAgICB0aGlzLl9zY3JpcHRUaW1lbGluZS5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGws
IHRoaXMpOworCisgICAgICAgIHRoaXMuX3NjcmlwdFRpbWVsaW5lID0gV2ViSW5zcGVjdG9yLnRp
bWVsaW5lTWFuYWdlci5yZWNvcmRpbmcudGltZWxpbmVzLmdldChXZWJJbnNwZWN0b3IuVGltZWxp
bmVSZWNvcmQuVHlwZS5TY3JpcHQpOworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9zY3Jp
cHRUaW1lbGluZSk7CisKKyAgICAgICAgdGhpcy5fc2NyaXB0VGltZWxpbmUuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmUuRXZlbnQuUmVjb3JkQWRkZWQsIHRoaXMuX3Njcmlw
dFRpbWVsaW5lUmVjb3JkQWRkZWQsIHRoaXMpOworICAgIH0sCisKKyAgICAvLyBQcml2YXRlCisK
KyAgICBfc2NyaXB0VGltZWxpbmVSZWNvcmRBZGRlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgewor
ICAgICAgICB2YXIgc2NyaXB0VGltZWxpbmVSZWNvcmQgPSBldmVudC5kYXRhLnJlY29yZDsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQoc2NyaXB0VGltZWxpbmVSZWNvcmQgaW5zdGFuY2VvZiBXZWJJ
bnNwZWN0b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQpOworCisgICAgICAgIHZhciB0cmVlRWxlbWVu
dCA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVudChzY3JpcHRUaW1l
bGluZVJlY29yZCwgdHJ1ZSk7CisgICAgICAgIHZhciBkYXRhR3JpZE5vZGUgPSBuZXcgV2ViSW5z
cGVjdG9yLlNjcmlwdFRpbWVsaW5lRGF0YUdyaWROb2RlKHNjcmlwdFRpbWVsaW5lUmVjb3JkLCB0
aGlzLnplcm9UaW1lKTsKKworICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRl
cih0cmVlRWxlbWVudCwgZGF0YUdyaWROb2RlKTsKKyAgICB9LAorCisgICAgX2RhdGFHcmlkRmls
dGVyc0RpZENoYW5nZTogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0
b3IudGltZWxpbmVTaWRlYmFyUGFuZWwudXBkYXRlRmlsdGVyKCk7CisgICAgfSwKKworICAgIF90
cmVlRWxlbWVudFNlbGVjdGVkOiBmdW5jdGlvbih0cmVlRWxlbWVudCwgc2VsZWN0ZWRCeVVzZXIp
CisgICAgeworICAgICAgICBpZiAodGhpcy5fZGF0YUdyaWQuc2hvdWxkSWdub3JlU2VsZWN0aW9u
RXZlbnQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoIVdlYkluc3BlY3Rv
ci50aW1lbGluZVNpZGViYXJQYW5lbC5jYW5TaG93RGlmZmVyZW50Q29udGVudFZpZXcoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBX
ZWJJbnNwZWN0b3IuRm9sZGVyVHJlZUVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgaWYgKCEodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuVGltZWxpbmVS
ZWNvcmRUcmVlRWxlbWVudCkpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlVua25vd24g
dHJlZSBlbGVtZW50IHNlbGVjdGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKCF0cmVlRWxlbWVudC5yZWNvcmQuc291cmNlQ29kZUxvY2F0aW9uKSB7
CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IudGltZWxpbmVTaWRlYmFyUGFuZWwuc2hvd1RpbWVs
aW5lVmlldyhXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5TY3JpcHQpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNl
U2lkZWJhclBhbmVsLnNob3dPcmlnaW5hbE9yRm9ybWF0dGVkU291cmNlQ29kZUxvY2F0aW9uKHRy
ZWVFbGVtZW50LnJlY29yZC5zb3VyY2VDb2RlTG9jYXRpb24pOworICAgIH0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Tb3VyY2VDb2RlVGltZWxp
bmVUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Nv
dXJjZUNvZGVUaW1lbGluZVRyZWVFbGVtZW50LmpzCmluZGV4IDRkZTJhODI1NTBhZTk0NzQwODQz
ZGJkNzVmMTk5YmVkZmY5NjE0NjUuLjBlZTRkZmJiOTdhYWQyZDIwNGE3NTU1NTRlZDlhOGRlN2Ri
OTE4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Nv
dXJjZUNvZGVUaW1lbGluZVRyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1NvdXJjZUNvZGVUaW1lbGluZVRyZWVFbGVtZW50LmpzCkBAIC0yMyw5
OSArMjMsMjMgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1X
ZWJJbnNwZWN0b3IuU291cmNlQ29kZVRpbWVsaW5lVHJlZUVsZW1lbnQgPSBmdW5jdGlvbihzb3Vy
Y2VDb2RlVGltZWxpbmUpCitXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRpbWVsaW5lVHJlZUVsZW1l
bnQgPSBmdW5jdGlvbihzb3VyY2VDb2RlVGltZWxpbmUsIHNob3dGdWxsTG9jYXRpb25TdWJ0aXRs
ZSkKIHsKICAgICBjb25zb2xlLmFzc2VydChzb3VyY2VDb2RlVGltZWxpbmUpOwogCiAgICAgdGhp
cy5fc291cmNlQ29kZVRpbWVsaW5lID0gc291cmNlQ29kZVRpbWVsaW5lOwogCi0gICAgdmFyIHRp
dGxlID0gIiI7Ci0KLSAgICB2YXIgc3VidGl0bGUgPSAiIjsKLSAgICB2YXIgc291cmNlQ29kZUxv
Y2F0aW9uID0gc291cmNlQ29kZVRpbWVsaW5lLnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAgICBpZiAo
c291cmNlQ29kZUxvY2F0aW9uKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIGxp
dmUgdXBkYXRlIHRoZSBzdWJ0aXRsZSBpbiByZXNwb25zZSB0byB0aGUgV2ViSW5zcGVjdG9yLlNv
dXJjZUNvZGVMb2NhdGlvbi5FdmVudC5EaXNwbGF5TG9jYXRpb25DaGFuZ2VkIGV2ZW50LgotICAg
ICAgICBzdWJ0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygibGluZSAiKSArIChzb3VyY2VD
b2RlTG9jYXRpb24uZGlzcGxheUxpbmVOdW1iZXIgKyAxKTsgLy8gVGhlIHVzZXIgdmlzaWJsZSBs
aW5lIG51bWJlciBpcyAxLWJhc2VkLgotICAgICAgICBpZiAoc291cmNlQ29kZUxvY2F0aW9uLmRp
c3BsYXlDb2x1bW5OdW1iZXIgPiBXZWJJbnNwZWN0b3IuU291cmNlQ29kZUxvY2F0aW9uLkxhcmdl
Q29sdW1uTnVtYmVyKQotICAgICAgICAgICAgc3VidGl0bGUgKz0gIjoiICsgKHNvdXJjZUNvZGVM
b2NhdGlvbi5kaXNwbGF5Q29sdW1uTnVtYmVyICsgMSk7IC8vIFRoZSB1c2VyIHZpc2libGUgY29s
dW1uIG51bWJlciBpcyAxLWJhc2VkLgotICAgIH0KLQotICAgIHZhciBpY29uU3R5bGVDbGFzcyA9
IG51bGw7Ci0KLSAgICBzd2l0Y2ggKHNvdXJjZUNvZGVUaW1lbGluZS5yZWNvcmRUeXBlKSB7Ci0g
ICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5MYXlvdXQ6Ci0gICAgICAg
IHN3aXRjaCAoc291cmNlQ29kZVRpbWVsaW5lLnJlY29yZEV2ZW50VHlwZSkgewotICAgICAgICBj
YXNlIFdlYkluc3BlY3Rvci5MYXlvdXRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuSW52YWxpZGF0
ZVN0eWxlczoKLSAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTdHls
ZXMgSW52YWxpZGF0ZWQiKTsKLSAgICAgICAgICAgIGljb25TdHlsZUNsYXNzID0gV2ViSW5zcGVj
dG9yLlNvdXJjZUNvZGVUaW1lbGluZVRyZWVFbGVtZW50LlN0eWxlUmVjb3JkSWNvblN0eWxlQ2xh
c3M7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuTGF5b3V0
VGltZWxpbmVSZWNvcmQuRXZlbnRUeXBlLlJlY2FsY3VsYXRlU3R5bGVzOgotICAgICAgICAgICAg
dGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0eWxlcyBSZWNhbGN1bGF0ZWQiKTsKLSAg
ICAgICAgICAgIGljb25TdHlsZUNsYXNzID0gV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVUaW1lbGlu
ZVRyZWVFbGVtZW50LlN0eWxlUmVjb3JkSWNvblN0eWxlQ2xhc3M7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQuRXZlbnRU
eXBlLkludmFsaWRhdGVMYXlvdXQ6Ci0gICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5V
SVN0cmluZygiTGF5b3V0IEludmFsaWRhdGVkIik7Ci0gICAgICAgICAgICBpY29uU3R5bGVDbGFz
cyA9IFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGltZWxpbmVUcmVlRWxlbWVudC5MYXlvdXRSZWNv
cmRJY29uU3R5bGVDbGFzczsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYklu
c3BlY3Rvci5MYXlvdXRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuTGF5b3V0OgotICAgICAgICAg
ICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxheW91dCIpOwotICAgICAgICAgICAg
aWNvblN0eWxlQ2xhc3MgPSBXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRpbWVsaW5lVHJlZUVsZW1l
bnQuTGF5b3V0UmVjb3JkSWNvblN0eWxlQ2xhc3M7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQuRXZlbnRUeXBlLlBhaW50
OgotICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhaW50Iik7Ci0g
ICAgICAgICAgICBpY29uU3R5bGVDbGFzcyA9IFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGltZWxp
bmVUcmVlRWxlbWVudC5QYWludFJlY29yZEljb25TdHlsZUNsYXNzOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLQotICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5
cGUuU2NyaXB0OgotICAgICAgICBzd2l0Y2ggKHNvdXJjZUNvZGVUaW1lbGluZS5yZWNvcmRFdmVu
dFR5cGUpIHsKLSAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVSZWNvcmQu
RXZlbnRUeXBlLlNjcmlwdEV2YWx1YXRlZDoKLSAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJTY3JpcHQgRXZhbHVhdGVkIik7Ci0gICAgICAgICAgICBpY29uU3R5bGVD
bGFzcyA9IFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGltZWxpbmVUcmVlRWxlbWVudC5FdmFsdWF0
ZWRSZWNvcmRJY29uU3R5bGVDbGFzczsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuRXZlbnREaXNwYXRj
aGVkOgotICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkV2ZW50IERp
c3BhdGNoZWQiKTsKLSAgICAgICAgICAgIHN1YnRpdGxlICs9ICIgXHUyMDE0ICIgKyBzb3VyY2VD
b2RlVGltZWxpbmUucmVjb3Jkc1swXS5kZXRhaWxzOwotICAgICAgICAgICAgaWNvblN0eWxlQ2xh
c3MgPSBXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRpbWVsaW5lVHJlZUVsZW1lbnQuRXZlbnRSZWNv
cmRJY29uU3R5bGVDbGFzczsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYklu
c3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuVGltZXJGaXJlZDoKLSAgICAg
ICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUaW1lciBGaXJlZCIpOwotICAg
ICAgICAgICAgaWNvblN0eWxlQ2xhc3MgPSBXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRpbWVsaW5l
VHJlZUVsZW1lbnQuVGltZXJSZWNvcmRJY29uU3R5bGVDbGFzczsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZC5FdmVudFR5
cGUuVGltZXJJbnN0YWxsZWQ6Ci0gICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiVGltZXIgSW5zdGFsbGVkIik7Ci0gICAgICAgICAgICBpY29uU3R5bGVDbGFzcyA9IFdl
Ykluc3BlY3Rvci5Tb3VyY2VDb2RlVGltZWxpbmVUcmVlRWxlbWVudC5UaW1lclJlY29yZEljb25T
dHlsZUNsYXNzOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViSW5zcGVjdG9y
LlNjcmlwdFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlwZS5UaW1lclJlbW92ZWQ6Ci0gICAgICAgICAg
ICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGltZXIgUmVtb3ZlZCIpOwotICAgICAg
ICAgICAgaWNvblN0eWxlQ2xhc3MgPSBXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRpbWVsaW5lVHJl
ZUVsZW1lbnQuVGltZXJSZWNvcmRJY29uU3R5bGVDbGFzczsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUu
QW5pbWF0aW9uRnJhbWVGaXJlZDoKLSAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJBbmltYXRpb24gRnJhbWUgRmlyZWQiKTsKLSAgICAgICAgICAgIGljb25TdHlsZUNs
YXNzID0gV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVUaW1lbGluZVRyZWVFbGVtZW50LkFuaW1hdGlv
blJlY29yZEljb25TdHlsZUNsYXNzOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICBXZWJJbnNwZWN0b3IuR2VuZXJhbFRyZWVFbGVtZW50LmNhbGwodGhpcywgW2lj
b25TdHlsZUNsYXNzXSwgdGl0bGUsIHN1YnRpdGxlLCBzb3VyY2VDb2RlVGltZWxpbmUsIGZhbHNl
KTsKLQotICAgIHRoaXMuc21hbGwgPSB0cnVlOworICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVJl
Y29yZFRyZWVFbGVtZW50LmNhbGwodGhpcywgc291cmNlQ29kZVRpbWVsaW5lLnJlY29yZHNbMF0s
IHNob3dGdWxsTG9jYXRpb25TdWJ0aXRsZSwgc291cmNlQ29kZVRpbWVsaW5lLnNvdXJjZUNvZGVM
b2NhdGlvbiwgc291cmNlQ29kZVRpbWVsaW5lKTsKIH07CiAKLVdlYkluc3BlY3Rvci5Tb3VyY2VD
b2RlVGltZWxpbmVUcmVlRWxlbWVudC5TdHlsZVJlY29yZEljb25TdHlsZUNsYXNzID0gInN0eWxl
LXJlY29yZCI7Ci1XZWJJbnNwZWN0b3IuU291cmNlQ29kZVRpbWVsaW5lVHJlZUVsZW1lbnQuTGF5
b3V0UmVjb3JkSWNvblN0eWxlQ2xhc3MgPSAibGF5b3V0LXJlY29yZCI7Ci1XZWJJbnNwZWN0b3Iu
U291cmNlQ29kZVRpbWVsaW5lVHJlZUVsZW1lbnQuUGFpbnRSZWNvcmRJY29uU3R5bGVDbGFzcyA9
ICJwYWludC1yZWNvcmQiOwotV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVUaW1lbGluZVRyZWVFbGVt
ZW50LkV2YWx1YXRlZFJlY29yZEljb25TdHlsZUNsYXNzID0gImV2YWx1YXRlZC1yZWNvcmQiOwot
V2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVUaW1lbGluZVRyZWVFbGVtZW50LkV2ZW50UmVjb3JkSWNv
blN0eWxlQ2xhc3MgPSAiZXZlbnQtcmVjb3JkIjsKLVdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGlt
ZWxpbmVUcmVlRWxlbWVudC5UaW1lclJlY29yZEljb25TdHlsZUNsYXNzID0gInRpbWVyLXJlY29y
ZCI7Ci1XZWJJbnNwZWN0b3IuU291cmNlQ29kZVRpbWVsaW5lVHJlZUVsZW1lbnQuQW5pbWF0aW9u
UmVjb3JkSWNvblN0eWxlQ2xhc3MgPSAiYW5pbWF0aW9uLXJlY29yZCI7Ci0KIFdlYkluc3BlY3Rv
ci5Tb3VyY2VDb2RlVGltZWxpbmVUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgY29uc3Ry
dWN0b3I6IFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGltZWxpbmVUcmVlRWxlbWVudCwKLSAgICBf
X3Byb3RvX186IFdlYkluc3BlY3Rvci5HZW5lcmFsVHJlZUVsZW1lbnQucHJvdG90eXBlLAorICAg
IF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQucHJvdG90
eXBlLAogCiAgICAgLy8gUHVibGljCiAKKyAgICByZWNvcmQ6IHVuZGVmaW5lZCwKKwogICAgIGdl
dCBzb3VyY2VDb2RlVGltZWxpbmUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJj
ZUNvZGVUaW1lbGluZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1RpbWVsaW5lQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9UaW1lbGluZUNvbnRlbnRWaWV3LmpzCmluZGV4IDUyNTEzOTIwOGI3ODZlMGUy
YzM5YWVmZWY4NDYxMDFiYzM2NTUyZDEuLmMyZDJkYzY0YWYyZjRjZWJkODlmMWZlZGYxMDg4ZjU5
ZmMzMzZjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1RpbWVsaW5lQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVGltZWxpbmVDb250ZW50Vmlldy5qcwpAQCAtNDMsOCArNDMsOCBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVDb250ZW50VmlldyA9IGZ1bmN0aW9uKHJlY29yZGluZykKICAgICB0aGlz
Ll9vdmVydmlld1RpbWVsaW5lVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuT3ZlcnZpZXdUaW1lbGlu
ZVZpZXc7CiAgICAgdGhpcy5fZGlzY3JldGVUaW1lbGluZVZpZXdNYXAgPSB7CiAgICAgICAgIFtX
ZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5OZXR3b3JrXTogbmV3IFdlYkluc3BlY3Rv
ci5OZXR3b3JrVGltZWxpbmVWaWV3LAotICAgICAgICBbV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVj
b3JkLlR5cGUuTGF5b3V0XTogbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZVZpZXcsCi0gICAgICAg
IFtXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5TY3JpcHRdOiBuZXcgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lVmlldworICAgICAgICBbV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5
cGUuTGF5b3V0XTogbmV3IFdlYkluc3BlY3Rvci5MYXlvdXRUaW1lbGluZVZpZXcsCisgICAgICAg
IFtXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZS5TY3JpcHRdOiBuZXcgV2ViSW5zcGVj
dG9yLlNjcmlwdFRpbWVsaW5lVmlldwogICAgIH07CiAKICAgICBmdW5jdGlvbiBjcmVhdGVQYXRo
Q29tcG9uZW50KGRpc3BsYXlOYW1lLCBjbGFzc05hbWUsIHJlcHJlc2VudGVkT2JqZWN0KQpAQCAt
MTg2LDYgKzE4NiwxMSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVDb250ZW50Vmlldy5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAorICAgICAgICBp
ZiAodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRUcmVl
RWxlbWVudCkgeworICAgICAgICAgICAgdmFyIHJlY29yZCA9IHRyZWVFbGVtZW50LnJlY29yZDsK
KyAgICAgICAgICAgIHJldHVybiBjaGVja1RpbWVCb3VuZHMocmVjb3JkLnN0YXJ0VGltZSwgcmVj
b3JkLmVuZFRpbWUpOworICAgICAgICB9CisKICAgICAgICAgY29uc29sZS5lcnJvcigiVW5rbm93
biBUcmVlRWxlbWVudCwgY2FuJ3QgZmlsdGVyIGJ5IHRpbWUuIik7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0sCkBAIC0zMTUsNiArMzIwLDkgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ29u
dGVudFZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9jdXJyZW50VGltZWxpbmVWaWV3
LnN0YXJ0VGltZSA9IHRoaXMuX3RpbWVsaW5lT3ZlcnZpZXcuc2VsZWN0aW9uU3RhcnRUaW1lOwog
ICAgICAgICB0aGlzLl9jdXJyZW50VGltZWxpbmVWaWV3LmVuZFRpbWUgPSB0aGlzLl90aW1lbGlu
ZU92ZXJ2aWV3LnNlbGVjdGlvblN0YXJ0VGltZSArIHRoaXMuX3RpbWVsaW5lT3ZlcnZpZXcuc2Vs
ZWN0aW9uRHVyYXRpb247CiAKKyAgICAgICAgZm9yICh2YXIgaWRlbnRpZmllciBpbiB0aGlzLl9k
aXNjcmV0ZVRpbWVsaW5lVmlld01hcCkKKyAgICAgICAgICAgIHRoaXMuX2Rpc2NyZXRlVGltZWxp
bmVWaWV3TWFwW2lkZW50aWZpZXJdLnplcm9UaW1lID0gdGhpcy5fdGltZWxpbmVPdmVydmlldy5z
dGFydFRpbWU7CisKICAgICAgICAgV2ViSW5zcGVjdG9yLnRpbWVsaW5lU2lkZWJhclBhbmVsLnVw
ZGF0ZUZpbHRlcih0cnVlKTsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVGltZWxpbmVEYXRhR3JpZC5jc3MgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9UaW1lbGluZURhdGFHcmlkLmNzcwppbmRleCAzYzA0MmFm
OGFkNzhlMWI1ZWM0YTJjYjVlYWIyMzQ1MGQ3ZTJlZDM5Li43YTk4N2IwOGZlYWQ4ZDA1NTIxZmI0
Yjk4YzZhMmI1ZGE1MWVkNTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9UaW1lbGluZURhdGFHcmlkLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9UaW1lbGluZURhdGFHcmlkLmNzcwpAQCAtMTA1LDYgKzEwNSw0MSBA
QAogICAgIGNvbG9yOiBpbmhlcml0OwogfQogCisuZGF0YS1ncmlkLnRpbWVsaW5lIHRkIC5pY29u
IHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgdmVydGljYWwtYWxpZ246IHRvcDsK
KworICAgIHdpZHRoOiAxNnB4OworICAgIGhlaWdodDogMTZweDsKKworICAgIG1hcmdpbi1yaWdo
dDogMnB4OworfQorCisuZGF0YS1ncmlkLnRpbWVsaW5lIHRkIC5nby10by1hcnJvdyB7CisgICAg
ZmxvYXQ6IHJpZ2h0OworCisgICAgdmlzaWJpbGl0eTogaGlkZGVuOworCisgICAgbWFyZ2luLWxl
ZnQ6IDJweDsKK30KKworLmRhdGEtZ3JpZC50aW1lbGluZSB0ci5zZWxlY3RlZCAuZ28tdG8tYXJy
b3csCisuZGF0YS1ncmlkLnRpbWVsaW5lIHRyOmhvdmVyIC5nby10by1hcnJvdyB7CisgICAgdmlz
aWJpbGl0eTogdmlzaWJsZTsKK30KKworLmRhdGEtZ3JpZC50aW1lbGluZSB0ZCAuc3VidGl0bGUg
eworICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7Cit9CisKKy5kYXRhLWdyaWQudGltZWxp
bmUgdGQgLnN1YnRpdGxlOjpiZWZvcmUgeworICAgIGNvbnRlbnQ6ICIg4oCUICI7Cit9CisKKy5k
YXRhLWdyaWQudGltZWxpbmU6Zm9jdXMgdHIuc2VsZWN0ZWQgdGQgLnN1YnRpdGxlIHsKKyAgICBj
b2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOworfQorCiAuZGF0YS1ncmlkLnRpbWVsaW5l
ID4gLm5hdmlnYXRpb24tYmFyLWNvbnRhaW5lciB7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwog
ICAgIGJvdHRvbTogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1RpbWVsaW5lUmVjb3JkLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVGltZWxpbmVSZWNvcmQuanMKaW5kZXggNzFmMjcyZGJlMmU3YzkzODkxMTM1OGVhYjMw
NDY1YTg3NjNhYTVhZi4uNjZhMTc2MTM5OGI3ZjMwZTg4OTZmMzk1M2RlN2JlOWMwYjcyMzEwOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGltZWxpbmVS
ZWNvcmQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGltZWxp
bmVSZWNvcmQuanMKQEAgLTQ5LDYgKzQ5LDEzIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29y
ZC5UeXBlID0gewogICAgIFNjcmlwdDogInRpbWVsaW5lLXJlY29yZC10eXBlLXNjcmlwdCIKIH07
CiAKK1dlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlSWRlbnRpZmllciA9ICJ0aW1lbGlu
ZS1yZWNvcmQiOworV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlNvdXJjZUNvZGVVUkxDb29r
aWVLZXkgPSAidGltZWxpbmUtcmVjb3JkLXNvdXJjZS1jb2RlLXVybCI7CitXZWJJbnNwZWN0b3Iu
VGltZWxpbmVSZWNvcmQuU291cmNlQ29kZUxvY2F0aW9uTGluZUNvb2tpZUtleSA9ICJ0aW1lbGlu
ZS1yZWNvcmQtc291cmNlLWNvZGUtbG9jYXRpb24tbGluZSI7CitXZWJJbnNwZWN0b3IuVGltZWxp
bmVSZWNvcmQuU291cmNlQ29kZUxvY2F0aW9uQ29sdW1uQ29va2llS2V5ID0gInRpbWVsaW5lLXJl
Y29yZC1zb3VyY2UtY29kZS1sb2NhdGlvbi1jb2x1bW4iOworV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UmVjb3JkLlNvdXJjZUNvZGVVUkxDb29raWVLZXkgPSAidGltZWxpbmUtcmVjb3JkLXNvdXJjZS1j
b2RlLXVybCI7CitXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQuVHlwZUNvb2tpZUtleSA9ICJ0
aW1lbGluZS1yZWNvcmQtdHlwZSI7CisKIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5wcm90
b3R5cGUgPSB7CiAgICAgY29uc3RydWN0b3I6IFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZCwK
IApAQCAtMTMwLDYgKzEzNywxNCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmQucHJvdG90
eXBlID0gewogICAgIGdldCBzb3VyY2VDb2RlTG9jYXRpb24oKQogICAgIHsKICAgICAgICAgcmV0
dXJuIHRoaXMuX3NvdXJjZUNvZGVMb2NhdGlvbjsKKyAgICB9LAorCisgICAgc2F2ZUlkZW50aXR5
VG9Db29raWU6IGZ1bmN0aW9uKGNvb2tpZSkKKyAgICB7CisgICAgICAgIGNvb2tpZVtXZWJJbnNw
ZWN0b3IuVGltZWxpbmVSZWNvcmQuU291cmNlQ29kZVVSTENvb2tpZUtleV0gPSB0aGlzLl9zb3Vy
Y2VDb2RlTG9jYXRpb24gPyB0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24uc291cmNlQ29kZS51cmwg
PyB0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24uc291cmNlQ29kZS51cmwuaGFzaCA6IG51bGwgOiBu
dWxsOworICAgICAgICBjb29raWVbV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlNvdXJjZUNv
ZGVMb2NhdGlvbkxpbmVDb29raWVLZXldID0gdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uID8gdGhp
cy5fc291cmNlQ29kZUxvY2F0aW9uLmxpbmVOdW1iZXIgOiBudWxsOworICAgICAgICBjb29raWVb
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlNvdXJjZUNvZGVMb2NhdGlvbkNvbHVtbkNvb2tp
ZUtleV0gPSB0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24gPyB0aGlzLl9zb3VyY2VDb2RlTG9jYXRp
b24uY29sdW1uTnVtYmVyIDogbnVsbDsKKyAgICAgICAgY29va2llW1dlYkluc3BlY3Rvci5UaW1l
bGluZVJlY29yZC5UeXBlQ29va2llS2V5XSA9IHRoaXMuX3R5cGUgfHwgbnVsbDsKICAgICB9CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UaW1l
bGluZVJlY29yZFRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVudC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDBiNTk3MGNk
ZTA3MGE4NjRhMTcyZjdhM2YzNmRiOGY4NTVhYzIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVudC5q
cwpAQCAtMCwwICsxLDE0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3BlY3Rvci5UaW1lbGluZVJl
Y29yZFRyZWVFbGVtZW50ID0gZnVuY3Rpb24odGltZWxpbmVSZWNvcmQsIHNob3dGdWxsTG9jYXRp
b25TdWJ0aXRsZSwgc291cmNlQ29kZUxvY2F0aW9uLCByZXByZXNlbnRlZE9iamVjdCkKK3sKKyAg
ICBjb25zb2xlLmFzc2VydCh0aW1lbGluZVJlY29yZCk7CisKKyAgICB0aGlzLl9yZWNvcmQgPSB0
aW1lbGluZVJlY29yZDsKKyAgICB0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24gPSBzb3VyY2VDb2Rl
TG9jYXRpb24gfHwgdGltZWxpbmVSZWNvcmQuc291cmNlQ29kZUxvY2F0aW9uOworCisgICAgdmFy
IHRpdGxlID0gIiI7CisgICAgdmFyIHN1YnRpdGxlID0gIiI7CisKKyAgICBpZiAodGhpcy5fc291
cmNlQ29kZUxvY2F0aW9uKSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIGxpdmUg
dXBkYXRlIHRoZSBzdWJ0aXRsZSBpbiByZXNwb25zZSB0byB0aGUgV2ViSW5zcGVjdG9yLlNvdXJj
ZUNvZGVMb2NhdGlvbi5FdmVudC5EaXNwbGF5TG9jYXRpb25DaGFuZ2VkIGV2ZW50LgorCisgICAg
ICAgIGlmIChzaG93RnVsbExvY2F0aW9uU3VidGl0bGUpIHsKKyAgICAgICAgICAgIHN1YnRpdGxl
ID0gdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uLmRpc3BsYXlMb2NhdGlvblN0cmluZyhXZWJJbnNw
ZWN0b3IuU291cmNlQ29kZUxvY2F0aW9uLkNvbHVtblN0eWxlLk9ubHlJZkxhcmdlKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHN1YnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJsaW5lICIpICsgKHRoaXMuX3NvdXJjZUNvZGVMb2NhdGlvbi5kaXNwbGF5TGluZU51bWJlciAr
IDEpOyAvLyBUaGUgdXNlciB2aXNpYmxlIGxpbmUgbnVtYmVyIGlzIDEtYmFzZWQuCisgICAgICAg
ICAgICBpZiAodGhpcy5fc291cmNlQ29kZUxvY2F0aW9uLmRpc3BsYXlDb2x1bW5OdW1iZXIgPiBX
ZWJJbnNwZWN0b3IuU291cmNlQ29kZUxvY2F0aW9uLkxhcmdlQ29sdW1uTnVtYmVyKQorICAgICAg
ICAgICAgICAgIHN1YnRpdGxlICs9ICI6IiArICh0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24uZGlz
cGxheUNvbHVtbk51bWJlciArIDEpOyAvLyBUaGUgdXNlciB2aXNpYmxlIGNvbHVtbiBudW1iZXIg
aXMgMS1iYXNlZC4KKyAgICAgICAgfQorICAgIH0KKworICAgIHZhciBpY29uU3R5bGVDbGFzcyA9
IG51bGw7CisKKyAgICBzd2l0Y2ggKHRpbWVsaW5lUmVjb3JkLnR5cGUpIHsKKyAgICBjYXNlIFdl
Ykluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLkxheW91dDoKKyAgICAgICAgc3dpdGNoICh0
aW1lbGluZVJlY29yZC5ldmVudFR5cGUpIHsKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuTGF5
b3V0VGltZWxpbmVSZWNvcmQuRXZlbnRUeXBlLkludmFsaWRhdGVTdHlsZXM6CisgICAgICAgICAg
ICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3R5bGVzIEludmFsaWRhdGVkIik7Cisg
ICAgICAgICAgICBpY29uU3R5bGVDbGFzcyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZFRy
ZWVFbGVtZW50LlN0eWxlUmVjb3JkSWNvblN0eWxlQ2xhc3M7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQuRXZlbnRUeXBl
LlJlY2FsY3VsYXRlU3R5bGVzOgorICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlN0eWxlcyBSZWNhbGN1bGF0ZWQiKTsKKyAgICAgICAgICAgIGljb25TdHlsZUNsYXNz
ID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQuU3R5bGVSZWNvcmRJY29u
U3R5bGVDbGFzczsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYkluc3BlY3Rv
ci5MYXlvdXRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuSW52YWxpZGF0ZUxheW91dDoKKyAgICAg
ICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMYXlvdXQgSW52YWxpZGF0ZWQi
KTsKKyAgICAgICAgICAgIGljb25TdHlsZUNsYXNzID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVj
b3JkVHJlZUVsZW1lbnQuTGF5b3V0UmVjb3JkSWNvblN0eWxlQ2xhc3M7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVSZWNvcmQuRXZl
bnRUeXBlLkxheW91dDoKKyAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJMYXlvdXQiKTsKKyAgICAgICAgICAgIGljb25TdHlsZUNsYXNzID0gV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQuTGF5b3V0UmVjb3JkSWNvblN0eWxlQ2xhc3M7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVS
ZWNvcmQuRXZlbnRUeXBlLlBhaW50OgorICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlBhaW50Iik7CisgICAgICAgICAgICBpY29uU3R5bGVDbGFzcyA9IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVJlY29yZFRyZWVFbGVtZW50LlBhaW50UmVjb3JkSWNvblN0eWxlQ2xhc3M7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGNvbnNv
bGUuZXJyb3IoIlVua25vd24gVGltZWxpbmVSZWNvcmQgZXZlbnRUeXBlOiAiICsgdGltZWxpbmVS
ZWNvcmQuZXZlbnRUeXBlLCB0aW1lbGluZVJlY29yZCk7CisgICAgICAgIH0KKworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkLlR5cGUuU2NyaXB0
OgorICAgICAgICBzd2l0Y2ggKHRpbWVsaW5lUmVjb3JkLmV2ZW50VHlwZSkgeworICAgICAgICBj
YXNlIFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuU2NyaXB0RXZh
bHVhdGVkOgorICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNjcmlw
dCBFdmFsdWF0ZWQiKTsKKyAgICAgICAgICAgIGljb25TdHlsZUNsYXNzID0gV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQuRXZhbHVhdGVkUmVjb3JkSWNvblN0eWxlQ2xhc3M7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuU2NyaXB0VGlt
ZWxpbmVSZWNvcmQuRXZlbnRUeXBlLkV2ZW50RGlzcGF0Y2hlZDoKKyAgICAgICAgICAgIHRpdGxl
ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFdmVudCBEaXNwYXRjaGVkIik7CisgICAgICAgICAg
ICBpZiAodGltZWxpbmVSZWNvcmQuZGV0YWlscykKKyAgICAgICAgICAgICAgICBzdWJ0aXRsZSAr
PSAiIFx1MjAxNCAiICsgdGltZWxpbmVSZWNvcmQuZGV0YWlsczsKKyAgICAgICAgICAgIGljb25T
dHlsZUNsYXNzID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQuRXZlbnRS
ZWNvcmRJY29uU3R5bGVDbGFzczsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdl
Ykluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuVGltZXJGaXJlZDoKKyAg
ICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUaW1lciBGaXJlZCIpOwor
ICAgICAgICAgICAgaWNvblN0eWxlQ2xhc3MgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRU
cmVlRWxlbWVudC5UaW1lclJlY29yZEljb25TdHlsZUNsYXNzOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlw
ZS5UaW1lckluc3RhbGxlZDoKKyAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJUaW1lciBJbnN0YWxsZWQiKTsKKyAgICAgICAgICAgIGljb25TdHlsZUNsYXNzID0gV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQuVGltZXJSZWNvcmRJY29uU3R5bGVD
bGFzczsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5TY3Jp
cHRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuVGltZXJSZW1vdmVkOgorICAgICAgICAgICAgdGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRpbWVyIFJlbW92ZWQiKTsKKyAgICAgICAgICAg
IGljb25TdHlsZUNsYXNzID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQu
VGltZXJSZWNvcmRJY29uU3R5bGVDbGFzczsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuQW5pbWF0aW9u
RnJhbWVGaXJlZDoKKyAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJB
bmltYXRpb24gRnJhbWUgRmlyZWQiKTsKKyAgICAgICAgICAgIGljb25TdHlsZUNsYXNzID0gV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQuQW5pbWF0aW9uUmVjb3JkSWNvblN0
eWxlQ2xhc3M7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIGNvbnNvbGUuZXJyb3IoIlVua25vd24gVGltZWxpbmVSZWNvcmQgZXZlbnRUeXBlOiAiICsg
dGltZWxpbmVSZWNvcmQuZXZlbnRUeXBlLCB0aW1lbGluZVJlY29yZCk7CisgICAgICAgIH0KKwor
ICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIGNvbnNvbGUuZXJyb3IoIlVu
a25vd24gVGltZWxpbmVSZWNvcmQgdHlwZTogIiArIHRpbWVsaW5lUmVjb3JkLnR5cGUsIHRpbWVs
aW5lUmVjb3JkKTsKKyAgICB9CisKKyAgICBXZWJJbnNwZWN0b3IuR2VuZXJhbFRyZWVFbGVtZW50
LmNhbGwodGhpcywgW2ljb25TdHlsZUNsYXNzXSwgdGl0bGUsIHN1YnRpdGxlLCByZXByZXNlbnRl
ZE9iamVjdCB8fCB0aW1lbGluZVJlY29yZCwgZmFsc2UpOworCisgICAgdGhpcy5zbWFsbCA9IHRy
dWU7Cit9OworCitXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVudC5TdHlsZVJl
Y29yZEljb25TdHlsZUNsYXNzID0gInN0eWxlLXJlY29yZCI7CitXZWJJbnNwZWN0b3IuVGltZWxp
bmVSZWNvcmRUcmVlRWxlbWVudC5MYXlvdXRSZWNvcmRJY29uU3R5bGVDbGFzcyA9ICJsYXlvdXQt
cmVjb3JkIjsKK1dlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZFRyZWVFbGVtZW50LlBhaW50UmVj
b3JkSWNvblN0eWxlQ2xhc3MgPSAicGFpbnQtcmVjb3JkIjsKK1dlYkluc3BlY3Rvci5UaW1lbGlu
ZVJlY29yZFRyZWVFbGVtZW50LkV2YWx1YXRlZFJlY29yZEljb25TdHlsZUNsYXNzID0gImV2YWx1
YXRlZC1yZWNvcmQiOworV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQuRXZl
bnRSZWNvcmRJY29uU3R5bGVDbGFzcyA9ICJldmVudC1yZWNvcmQiOworV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQuVGltZXJSZWNvcmRJY29uU3R5bGVDbGFzcyA9ICJ0aW1l
ci1yZWNvcmQiOworV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQuQW5pbWF0
aW9uUmVjb3JkSWNvblN0eWxlQ2xhc3MgPSAiYW5pbWF0aW9uLXJlY29yZCI7CisKK1dlYkluc3Bl
Y3Rvci5UaW1lbGluZVJlY29yZFRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKKyAgICBjb25zdHJ1
Y3RvcjogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQsCisgICAgX19wcm90
b19fOiBXZWJJbnNwZWN0b3IuR2VuZXJhbFRyZWVFbGVtZW50LnByb3RvdHlwZSwKKworICAgIC8v
IFB1YmxpYworCisgICAgZ2V0IHJlY29yZCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5f
cmVjb3JkOworICAgIH0sCisKKyAgICBnZXQgZmlsdGVyYWJsZURhdGEoKQorICAgIHsKKyAgICAg
ICAgdmFyIHVybCA9IHRoaXMuX3NvdXJjZUNvZGVMb2NhdGlvbiA/IHRoaXMuX3NvdXJjZUNvZGVM
b2NhdGlvbi5zb3VyY2VDb2RlLnVybCA6ICIiOworICAgICAgICByZXR1cm4ge3RleHQ6IFt0aGlz
Lm1haW5UaXRsZSwgdXJsIHx8ICIiLCB0aGlzLl9yZWNvcmQuZGV0YWlscyB8fCAiIl19OworICAg
IH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9U
aW1lbGluZVNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1RpbWVsaW5lU2lkZWJhclBhbmVsLmpzCmluZGV4IDAyYTU1YjZkM2U1YzFmZTlmMmQ1YjA0
NTQ2MThjNTEwYTRhZTYxYjcuLjYxNjM1YzUyZmVjYjU1YmVjYjhiMmYzMDEwYWE2ZDFkNGRmNmEy
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RpbWVs
aW5lU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1RpbWVsaW5lU2lkZWJhclBhbmVsLmpzCkBAIC0xMjYsNyArMTI2LDUxIEBAIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVNpZGViYXJQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmIChyZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5GcmFtZSkKICAgICAgICAgICAg
IHJlcHJlc2VudGVkT2JqZWN0ID0gcmVwcmVzZW50ZWRPYmplY3QubWFpblJlc291cmNlOwogCi0g
ICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnRUcmVlT3V0bGluZS5nZXRDYWNoZWRUcmVlRWxlbWVu
dChyZXByZXNlbnRlZE9iamVjdCk7CisgICAgICAgIHZhciBmb3VuZFRyZWVFbGVtZW50ID0gdGhp
cy5jb250ZW50VHJlZU91dGxpbmUuZ2V0Q2FjaGVkVHJlZUVsZW1lbnQocmVwcmVzZW50ZWRPYmpl
Y3QpOworICAgICAgICBpZiAoZm91bmRUcmVlRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybiBm
b3VuZFRyZWVFbGVtZW50OworCisgICAgICAgIC8vIExvb2sgZm9yIFRyZWVFbGVtZW50cyBsb29z
ZWx5IGJhc2VkIG9uIHJlcHJlc2VudGVkIG9iamVjdHMgdGhhdCBjYW4gY29udGFpbiB0aGUgcmVw
cmVzZW50ZWQKKyAgICAgICAgLy8gb2JqZWN0IHdlIGFyZSByZWFsbHkgbG9va2luZyBmb3IuIFRo
aXMgYWxsb3dzIGEgU291cmNlQ29kZVRpbWVsaW5lVHJlZUVsZW1lbnQgb3IgYQorICAgICAgICAv
LyBUaW1lbGluZVJlY29yZFRyZWVFbGVtZW50IHRvIHN0YXkgc2VsZWN0ZWQgd2hlbiB0aGUgUmVz
b3VyY2UgaXMgcmVwcmVzZW50cyBpcyBzaG93aW5nLgorCisgICAgICAgIGZ1bmN0aW9uIGxvb3Nl
bHlDb21wYXJlUmVwcmVzZW50ZWRPYmplY3RzKGNhbmRpZGF0ZVRyZWVFbGVtZW50KQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAoIWNhbmRpZGF0ZVRyZWVFbGVtZW50KQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgdmFyIGNhbmRpZGF0ZVJlcHJlc2VudGVk
T2JqZWN0ID0gY2FuZGlkYXRlVHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAg
ICAgICBpZiAoY2FuZGlkYXRlUmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0
b3IuU291cmNlQ29kZVRpbWVsaW5lKSB7CisgICAgICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZVJl
cHJlc2VudGVkT2JqZWN0LnNvdXJjZUNvZGUgPT09IHJlcHJlc2VudGVkT2JqZWN0KQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjYW5kaWRhdGVSZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZCkgeworICAgICAgICAg
ICAgICAgIGlmICghY2FuZGlkYXRlUmVwcmVzZW50ZWRPYmplY3Quc291cmNlQ29kZUxvY2F0aW9u
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYg
KGNhbmRpZGF0ZVJlcHJlc2VudGVkT2JqZWN0LnNvdXJjZUNvZGVMb2NhdGlvbi5zb3VyY2VDb2Rl
ID09PSByZXByZXNlbnRlZE9iamVjdCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBjb25zb2xlLmVycm9yKCJVbmtub3duIFRyZWVFbGVtZW50Iik7CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayB0aGUgc2VsZWN0ZWQg
dHJlZSBlbGVtZW50IGZpcnN0IHNvIHdlIGRvbid0IG5lZWQgdG8gZG8gYSBsb25nZXIgc2VhcmNo
IGFuZCBpdCBpcworICAgICAgICAvLyBsaWtlbHkgdG8gYmUgdGhlIGJlc3QgY2FuZGlkYXRlIGZv
ciB0aGUgY3VycmVudCB2aWV3LgorICAgICAgICBpZiAobG9vc2VseUNvbXBhcmVSZXByZXNlbnRl
ZE9iamVjdHModGhpcy5jb250ZW50VHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudCkpCisg
ICAgICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50VHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxl
bWVudDsKKworICAgICAgICB2YXIgY3VycmVudFRyZWVFbGVtZW50ID0gdGhpcy5fY29udGVudFRy
ZWVPdXRsaW5lLmNoaWxkcmVuWzBdOworICAgICAgICB3aGlsZSAoY3VycmVudFRyZWVFbGVtZW50
ICYmICFjdXJyZW50VHJlZUVsZW1lbnQucm9vdCkgeworICAgICAgICAgICAgaWYgKGxvb3NlbHlD
b21wYXJlUmVwcmVzZW50ZWRPYmplY3RzKGN1cnJlbnRUcmVlRWxlbWVudCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGN1cnJlbnRUcmVlRWxlbWVudDsKKyAgICAgICAgICAgIGN1cnJlbnRUcmVl
RWxlbWVudCA9IGN1cnJlbnRUcmVlRWxlbWVudC50cmF2ZXJzZU5leHRUcmVlRWxlbWVudChmYWxz
ZSwgbnVsbCwgZmFsc2UpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CiAgICAg
fSwKIAogICAgIGdldCBjb250ZW50VHJlZU91dGxpbmVMYWJlbCgpCg==
</data>
<flag name="review"
          id="245179"
          type_id="1"
          status="+"
          setter="joepeck"
    />
    <flag name="commit-queue"
          id="245180"
          type_id="3"
          status="-"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>