<?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>80127</bug_id>
          
          <creation_ts>2012-03-02 01:45:45 -0800</creation_ts>
          <short_desc>Web Inspector: add timeline instrumentation for frame events</short_desc>
          <delta_ts>2012-03-05 00:50:14 -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 (Deprecated)</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>569424</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-03-02 01:45:45 -0800</bug_when>
    <thetext>This adds an instrumentation interfaces and some visualization for frame-related events:
- beginning and end of frame rendering (end is currently ignored)
- layer compositing events

When frame marks are available, these are displayed in &quot;start at zero&quot; overview mode as vertical lines on main timeline grid, provided it is zoomed to 1 second per screen or closer. Also, start at zero aggregates events by frames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569428</commentid>
    <comment_count>1</comment_count>
      <attachid>129844</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-03-02 01:49:45 -0800</bug_when>
    <thetext>Created attachment 129844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569434</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-02 01:54:04 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569521</commentid>
    <comment_count>3</comment_count>
      <attachid>129844</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-02 04:05:04 -0800</bug_when>
    <thetext>Comment on attachment 129844
Patch

Attachment 129844 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11776932

New failing tests:
inspector/timeline/timeline-enum-stability.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569577</commentid>
    <comment_count>4</comment_count>
      <attachid>129844</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2012-03-02 05:06:26 -0800</bug_when>
    <thetext>Comment on attachment 129844
Patch

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

&gt; Source/WebKit/chromium/ChangeLog:20
&gt; +        * public/WebWidget.h:
&gt; +        (WebWidget):
&gt; +        (WebKit::WebWidget::willBeginUpdate):
&gt; +        (WebKit::WebWidget::didEndUpdate):
&gt; +        * src/WebDevToolsAgentImpl.cpp:
&gt; +        (WebKit::WebDevToolsAgentImpl::willComposeLayers):
&gt; +        (WebKit):
&gt; +        (WebKit::WebDevToolsAgentImpl::didComposeLayers):
&gt; +        (WebKit::WebDevToolsAgentImpl::willBeginFrameUpdate):
&gt; +        (WebKit::WebDevToolsAgentImpl::didEndFrameUpdate):

Please file bugs for the other WebKit ports to hook this up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569609</commentid>
    <comment_count>5</comment_count>
      <attachid>129892</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-03-02 06:05:42 -0800</bug_when>
    <thetext>Created attachment 129892
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569649</commentid>
    <comment_count>6</comment_count>
      <attachid>129892</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-02 07:41:14 -0800</bug_when>
    <thetext>Comment on attachment 129892
Patch

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

&gt; Source/WebCore/inspector/InspectorController.cpp:214
&gt; +void InspectorController::willBeginFrameUpdate()

We use will*/did* notation for non-atomic actions, we use did* notation for atomic actions. Should either be
didBeginFrame() / didEndFrame()
or willProcessFrame / didProcessFrame.

&gt; Source/WebCore/inspector/InspectorController.h:83
&gt; +    void willBeginFrameUpdate();

I would move it into the instrumentation.

&gt; Source/WebCore/inspector/InspectorController.h:85
&gt; +    void willBeginCompositing();

What does Begin / End compositing mean? Can it contain nested paints? If yes, when and why? Also, seems unrelated to the change.

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:64
&gt; +static const char LayersCompositing[] = &quot;LayersCompositing&quot;;

This will make test fail.

&gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:792
&gt; +        var lastFrameTime = records[0] &amp;&amp; records[0].startTime;

records.length &amp;&amp; ... ?

&gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:828
&gt; +                for (; currentFrame &lt; lastIndex &amp;&amp; currentRecord &lt; records.length; ++currentRecord) {

Could you extract method?

&gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:-856
&gt; -        var rightIndex = rightOffset + barWidth &gt;= this.element.clientWidth ? null : Math.ceil((rightOffset - offset0 - 2) / barWidth * this._recordsPerBar);

What is 2 ?

&gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:909
&gt; +            endTime: rightOffset + 3 &gt; windowSpan ? null : this._barTimes[lastBar].endTime

What is 3?

&gt; Source/WebKit/chromium/public/WebWidget.h:83
&gt; +    virtual void willBeginUpdate() { }

1) &quot;update&quot; looks to generic, WebWidget may be updated in various ways
2) We should emphasize the instrumenting nature of these methods. debugWillBeginUpdate

instrumentBeginFrame()

&gt; Source/WebKit/chromium/public/WebWidget.h:84
&gt; +    virtual void didEndUpdate() { }

nuke this?

&gt; Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp:234
&gt; +void WebDevToolsAgentImpl::willBeginFrameUpdate()

revert?

&gt; Source/WebKit/chromium/src/WebDevToolsAgentImpl.h:72
&gt; +    virtual void willBeginFrameUpdate();

revert?

&gt; Source/WebKit/chromium/src/WebDevToolsAgentPrivate.h:46
&gt; +    virtual void willBeginFrameUpdate() = 0;

revert?

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1271
&gt; +    if (m_devToolsAgent)

InspectorInstrumentation::didBeginFrame(m_page.get())

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1421
&gt; +        if (m_devToolsAgent)

Separate change please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569809</commentid>
    <comment_count>7</comment_count>
      <attachid>129932</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-03-02 11:47:50 -0800</bug_when>
    <thetext>Created attachment 129932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570462</commentid>
    <comment_count>8</comment_count>
      <attachid>129932</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-05 00:31:38 -0800</bug_when>
    <thetext>Comment on attachment 129932
Patch

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

&gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:283
&gt; +        return this._windowEndTime || this._presentationModel.maximumRecordTime();

!!this._windowEndTime ?

&gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:809
&gt; +        var scale = (this.element.clientHeight - 4) / boundarySpan;

Please use const paddingTop = 4;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570465</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-05 00:35:19 -0800</bug_when>
    <thetext>I don&apos;t think we should wait for Darin&apos;s approval for the WebView::instrumentBeginFrame() and it can be landed safely.

Darin, if you have any concerns about the changes to the API, please let us know and we will fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570477</commentid>
    <comment_count>10</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-03-05 00:50:14 -0800</bug_when>
    <thetext>Committed r109724: &lt;http://trac.webkit.org/changeset/109724&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129844</attachid>
            <date>2012-03-02 01:49:45 -0800</date>
            <delta_ts>2012-03-02 06:05:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80127-20120302134943.patch</filename>
            <type>text/plain</type>
            <size>39743</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJjMWIzZmZmMjZjZTY2
ZjM1YTA0YzgyNThiZThlMzZjMWQyYWM3OS4uNzM4ZjFlOTBiMmQ5NzhmZTk4N2I2Y2YwM2I4ZTBi
ZDhhODVlYTA1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTAzLTAyICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogYWRkIHRpbWVsaW5lIGluc3RydW1lbnRhdGlvbiBmb3IgZnJhbWUgZXZlbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDEyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cjo6d2lsbENvbXBvc2VMYXllcnMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRDb21wb3NlTGF5ZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxCZWdpbkZyYW1lVXBkYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEVuZEZyYW1lVXBkYXRlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAoSW5zcGVj
dG9yQ29udHJvbGxlcik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwOgorICAgICAgICAoVGltZWxpbmVSZWNvcmRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxCZWdpbkZyYW1lVXBkYXRlKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlk
RW5kRnJhbWVVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6d2lsbENvbXBvc2VMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkQ29tcG9zZUxheWVycyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qczoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUuX3Nob3dNZW1vcnlHcmFwaCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlLnNldFN0YXJ0QXRa
ZXJvKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5
cGUudXBkYXRlRXZlbnREaXZpZGVycyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVP
dmVydmlld1BhbmUucHJvdG90eXBlLnNpZGViYXJSZXNpemVkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5hY2NlcHQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5fb25XaW5kb3dD
aGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVN0YXJ0QXRaZXJvT3ZlcnZp
ZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lU3RhcnRBdFplcm9PdmVydmlldy5w
cm90b3R5cGUucmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lU3RhcnRBdFpl
cm9PdmVydmlldy5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZVN0YXJ0QXRaZXJvT3ZlcnZpZXcucHJvdG90eXBlLl9idWlsZEJhcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVTdGFydEF0WmVyb092ZXJ2aWV3LnByb3RvdHlwZS5nZXRXaW5k
b3dUaW1lcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl91cGRhdGVF
dmVudERpdmlkZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3Rv
dHlwZS5fY3JlYXRlRXZlbnREaXZpZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLnByb3RvdHlwZS5fdG9nZ2xlU3RhcnRBdFplcm9CdXR0b25DbGlja2VkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5faW5uZXJBZGRSZWNvcmRU
b1RpbWVsaW5lLmFkZFRpbWVzdGFtcFJlY29yZHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUGFuZWwucHJvdG90eXBlLl9pbm5lckFkZFJlY29yZFRvVGltZWxpbmUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9yZWZyZXNoKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5RmlsdGVyLnByb3RvdHlwZS5hY2NlcHQp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnBy
b3RvdHlwZS5nZXQgX3JlY29yZFN0eWxlcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3JDb21tb24uY3NzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvdGlt
ZWxpbmVQYW5lbC5jc3M6CisgICAgICAgICgudGltZWxpbmUgLnJlc291cmNlcy1ldmVudC1kaXZp
ZGVyKToKKyAgICAgICAgKC50aW1lbGluZS50aW1lbGluZS1zdGFydC1hdC16ZXJvIC5yZXNvdXJj
ZXMtZGl2aWRlcik6CisgICAgICAgICgudGltZWxpbmUgLnJlc291cmNlcy1ldmVudC1kaXZpZGVy
LnRpbWVsaW5lLWZyYW1lLWRpdmlkZXIpOgorCiAyMDEyLTAyLTI5ICBKYXNvbiBMaXUgIDxqYXNv
bi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XU1ha2UgYWJv
dXQ6Y2FjaGUgZmVhdHVyZSBhdmFpbGFibGUgaW4gcmVsZWFzZSB2ZXJzaW9uLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCA4OWQ5ZmQzMjI4ODA1NTViMTdjNjkxNzYwY2I2NjYzYzcxMjM1
ZWNmLi40NDcyYmJhNjQzMjNmMWU1N2I1ZDhhYTZlM2FkZTkwMzcxZmIxZGExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAzLTAyICBBbmRyZXkgS29z
eWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRk
IHRpbWVsaW5lIGluc3RydW1lbnRhdGlvbiBmb3IgZnJhbWUgZXZlbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDEyNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gZXhwb3NlIGFuIGluc3RydW1lbnRh
dGlvbiBpbnRlcmZhY2UgZnJvbSBXZWJXaWRnZXQgdG8gbWFyayBmcmFtZSB1cGRhdGUgc3RhcnQv
c3RvcCBldmVudHM7CisgICAgICAgIC0gcmVwb3J0IGZyYW1lIGNvbXBvc2l0aW5nIGV2ZW50cyB0
byBEZXZUb29scyBhZ2VudCBmcm9tIFdlYlZpZXcKKworICAgICAgICAqIHB1YmxpYy9XZWJXaWRn
ZXQuaDoKKyAgICAgICAgKFdlYldpZGdldCk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6
d2lsbEJlZ2luVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0OjpkaWRFbmRVcGRh
dGUpOgorICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJbXBsOjp3aWxsQ29tcG9zZUxheWVycyk6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZUb29sc0FnZW50SW1wbDo6ZGlkQ29t
cG9zZUxheWVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJbXBsOjp3aWxs
QmVnaW5GcmFtZVVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJbXBs
OjpkaWRFbmRGcmFtZVVwZGF0ZSk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
Lmg6CisgICAgICAgIChXZWJEZXZUb29sc0FnZW50SW1wbCk6CisgICAgICAgICogc3JjL1dlYkRl
dlRvb2xzQWdlbnRQcml2YXRlLmg6CisgICAgICAgIChXZWJEZXZUb29sc0FnZW50UHJpdmF0ZSk6
CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OndpbGxCZWdpblVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6ZGlkRW5kVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmNvbXBvc2l0ZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisgICAgICAg
IChXZWJWaWV3SW1wbCk6CisKIDIwMTItMDItMjkgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRml4IG5hdmlnYXRpb24gc3RhcnQg
dGltZSBvbiBjcm9zcy1yZW5kZXJlciBuYXZpZ2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggYzA4NzIxZDliM2VkOTM4OWUw
NzM1NzkzMGU5MTA5NGJlOWUwM2VlNS4uYTcwNmRhYmY0YjhkYzAyZDNhMzdlZDBkOTFhZDNmMDMy
ODQxNzMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcApAQCAtMTk5LDYgKzE5OSwzMCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OmRpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZChGcmFtZSogZnJhbWUsIERPTVdyYXBwZXJXbwog
ICAgICAgICBtX2luc3BlY3RvckZyb250ZW5kQ2xpZW50LT53aW5kb3dPYmplY3RDbGVhcmVkKCk7
CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbENvbXBvc2VMYXllcnMoKQorewor
ICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gbV9pbnN0cnVt
ZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCisgICAgICAgIHRpbWVsaW5l
QWdlbnQtPndpbGxDb21wb3NlTGF5ZXJzKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlkQ29tcG9zZUxheWVycygpCit7CisgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQq
IHRpbWVsaW5lQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5l
QWdlbnQoKSkKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkQ29tcG9zZUxheWVycygpOworfQor
Cit2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxCZWdpbkZyYW1lVXBkYXRlKCkKK3sKKyAg
ICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IG1faW5zdHJ1bWVu
dGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQorICAgICAgICB0aW1lbGluZUFn
ZW50LT53aWxsQmVnaW5GcmFtZVVwZGF0ZSgpOworfQorCit2b2lkIEluc3BlY3RvckNvbnRyb2xs
ZXI6OmRpZEVuZEZyYW1lVXBkYXRlKCkKK3sKKyAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dCogdGltZWxpbmVBZ2VudCA9IG1faW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxp
bmVBZ2VudCgpKQorICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRFbmRGcmFtZVVwZGF0ZSgpOwor
fQorCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCgpCiB7CiAgICAg
bV9pbnNwZWN0b3JGcm9udGVuZCA9IGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JGcm9udGVuZChtX2lu
c3BlY3RvckNsaWVudCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmgKaW5kZXggNWVlMjMzMGUxYzY1YjI0NTIzNGNjNGU4MjdmOTI0MjJmOTRhYWFk
Ni4uYTU0OTExNjgyMWMxNDhmZmNmZTc5NDVmNjc1ZWFjYWQ3OTQwYWQwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC04MCw2ICs4MCwx
MSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudChQYXNzT3du
UHRyPEluc3BlY3RvckZyb250ZW5kQ2xpZW50Pik7CiAgICAgYm9vbCBoYXNJbnNwZWN0b3JGcm9u
dGVuZENsaWVudCgpIGNvbnN0OwogICAgIHZvaWQgZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxk
KEZyYW1lKiwgRE9NV3JhcHBlcldvcmxkKik7CisgICAgdm9pZCB3aWxsQmVnaW5GcmFtZVVwZGF0
ZSgpOworICAgIHZvaWQgZGlkRW5kRnJhbWVVcGRhdGUoKTsKKyAgICB2b2lkIHdpbGxDb21wb3Nl
TGF5ZXJzKCk7CisgICAgdm9pZCBkaWRDb21wb3NlTGF5ZXJzKCk7CisKICAgICB2b2lkIHNldElu
amVjdGVkU2NyaXB0Rm9yT3JpZ2luKGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcm
IHNvdXJjZSk7CiAKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IGVkN2QxNDNkNWY2MjdmODExMTdkNjNhNTg5OTcx
OThlODIwMTM2ZmQuLjgxYzk4ZjYwNGU2NmViZDU4Y2YzYzY4MTg0YmQ0NWU1MTIyNzYwNTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAKQEAgLTYwLDYgKzYwLDkgQEAgc3RhdGljIGNvbnN0IGNoYXIgRXZlbnREaXNwYXRjaFtd
ID0gIkV2ZW50RGlzcGF0Y2giOwogc3RhdGljIGNvbnN0IGNoYXIgTGF5b3V0W10gPSAiTGF5b3V0
IjsKIHN0YXRpYyBjb25zdCBjaGFyIFJlY2FsY3VsYXRlU3R5bGVzW10gPSAiUmVjYWxjdWxhdGVT
dHlsZXMiOwogc3RhdGljIGNvbnN0IGNoYXIgUGFpbnRbXSA9ICJQYWludCI7CitzdGF0aWMgY29u
c3QgY2hhciBGcmFtZVVwZGF0ZVtdID0gIkZyYW1lVXBkYXRlIjsKK3N0YXRpYyBjb25zdCBjaGFy
IENvbXBvc2VMYXllcnNbXSA9ICJDb21wb3NlTGF5ZXJzIjsKKwogc3RhdGljIGNvbnN0IGNoYXIg
UGFyc2VIVE1MW10gPSAiUGFyc2VIVE1MIjsKIAogc3RhdGljIGNvbnN0IGNoYXIgVGltZXJJbnN0
YWxsW10gPSAiVGltZXJJbnN0YWxsIjsKQEAgLTE3MCw2ICsxNzMsMjUgQEAgdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpzZXRJbmNsdWRlTWVtb3J5RGV0YWlscyhFcnJvclN0cmluZyosIGJv
b2wgdmFsdWUpCiAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihUaW1lbGluZUFnZW50U3RhdGU6Omlu
Y2x1ZGVNZW1vcnlEZXRhaWxzLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6d2lsbEJlZ2luRnJhbWVVcGRhdGUoKQoreworICAgIGFwcGVuZFJlY29yZChJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6OkZyYW1lVXBkYXRlLCB0cnVl
KTsKK30KKwordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRFbmRGcmFtZVVwZGF0ZSgp
Cit7Cit9CisKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENvbXBvc2VMYXllcnMo
KQoreworICAgIHB1c2hDdXJyZW50UmVjb3JkKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCksIFRp
bWVsaW5lUmVjb3JkVHlwZTo6Q29tcG9zZUxheWVycywgdHJ1ZSk7Cit9CisKK3ZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tcG9zZUxheWVycygpCit7CisgICAgZGlkQ29tcGxldGVD
dXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6Q29tcG9zZUxheWVycyk7Cit9CisKIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5jdGlvbihjb25zdCBTdHJpbmcm
IHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQogewogICAgIHB1c2hDdXJyZW50UmVjb3JkKFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRnVuY3Rpb25DYWxsRGF0YShzY3JpcHROYW1lLCBz
Y3JpcHRMaW5lKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpGdW5jdGlvbkNhbGwsIHRydWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5k
ZXggZThjMzQ4NjlhN2JhNmJjNWRkNmQzODJiOTdhNzU4MzZkZmRhZjFmYi4uYjFlMWM3OTMwM2Qz
OGUwMWY1Y2YzYzZkYjMxNjA4MWFjMGFkMjEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC03NSw2ICs3NSwxMiBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGRpZENvbW1pdExvYWQoKTsKIAorICAgIHZvaWQgd2lsbEJlZ2luRnJh
bWVVcGRhdGUoKTsKKyAgICB2b2lkIGRpZEVuZEZyYW1lVXBkYXRlKCk7CisKKyAgICB2b2lkIHdp
bGxDb21wb3NlTGF5ZXJzKCk7CisgICAgdm9pZCBkaWRDb21wb3NlTGF5ZXJzKCk7CisKICAgICAv
LyBNZXRob2RzIGNhbGxlZCBmcm9tIFdlYkNvcmUuCiAgICAgdm9pZCB3aWxsQ2FsbEZ1bmN0aW9u
KGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUpOwogICAgIHZvaWQgZGlk
Q2FsbEZ1bmN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RpbWVsaW5lTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1RpbWVsaW5lTW9kZWwuanMKaW5kZXggZmE2NmQ2MzI0OTg4Y2VlZDM3MmVhYjFmODViMjgw
ZWQxNWM0MmUwZC4uNDNjMjQzNzBmN2U2ODY2Y2M3NTVkMjdhNjhjZDljOGMzYWNiMjc1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVs
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2Rl
bC5qcwpAQCAtNDMsMTEgKzQzLDE0IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsID0gZnVu
Y3Rpb24oKQogV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZSA9IHsKICAgICBS
b290OiAiUm9vdCIsCiAgICAgRXZlbnREaXNwYXRjaDogIkV2ZW50RGlzcGF0Y2giLAorCisgICAg
RnJhbWVVcGRhdGU6ICJGcmFtZVVwZGF0ZSIsCiAgICAgTGF5b3V0OiAiTGF5b3V0IiwKICAgICBS
ZWNhbGN1bGF0ZVN0eWxlczogIlJlY2FsY3VsYXRlU3R5bGVzIiwKICAgICBQYWludDogIlBhaW50
IiwKLSAgICBQYXJzZUhUTUw6ICJQYXJzZUhUTUwiLAorICAgIENvbXBvc2VMYXllcnM6ICJDb21w
b3NlTGF5ZXJzIiwKIAorICAgIFBhcnNlSFRNTDogIlBhcnNlSFRNTCIsCiAKICAgICBUaW1lcklu
c3RhbGw6ICJUaW1lckluc3RhbGwiLAogICAgIFRpbWVyUmVtb3ZlOiAiVGltZXJSZW1vdmUiLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92
ZXJ2aWV3UGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVPdmVydmlld1BhbmUuanMKaW5kZXggYWVlNTFiNzMzZDJkODM2ZDBmZDhhZGVjNjJhZTEwOTQw
MTI4ZDg5MS4uY2Y0OTk5Y2NhNWI5NTkyMmYwMzQzYThmY2FjNzY2M2YxMmExM2Y2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3
UGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
T3ZlcnZpZXdQYW5lLmpzCkBAIC0zNiwxOCArMzYsMTQgQEAKIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZU92ZXJ2aWV3UGFuZSA9IGZ1bmN0aW9uKHByZXNlbnRhdGlvbk1vZGVsKQogewogICAgIHRoaXMu
ZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMuZWxlbWVu
dC5jbGFzc05hbWUgPSAiZmlsbCI7CisgICAgdGhpcy5lbGVtZW50LmlkID0gInRpbWVsaW5lLW92
ZXJ2aWV3LXBhbmVsIjsKIAogICAgIHRoaXMuX3N0YXJ0QXRaZXJvID0gZmFsc2U7Ci0gICAgdGhp
cy5fdG9wTGV2ZWxSZWNvcmRJbmRleCA9IDA7Ci0gICAgdGhpcy5fd2luZG93SW5kZXhMZWZ0ID0g
MDsKLSAgICB0aGlzLl93aW5kb3dJbmRleFJpZ2h0ID0gbnVsbDsKKyAgICB0aGlzLl93aW5kb3dT
dGFydFRpbWUgPSAwOworICAgIHRoaXMuX3dpbmRvd0VuZFRpbWUgPSBudWxsOwogCiAgICAgdGhp
cy5fcHJlc2VudGF0aW9uTW9kZWwgPSBwcmVzZW50YXRpb25Nb2RlbDsKIAotICAgIHRoaXMuZWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMuZWxlbWVudC5p
ZCA9ICJ0aW1lbGluZS1vdmVydmlldy1wYW5lbCI7Ci0KICAgICB0aGlzLl90b3BQYW5lU2lkZWJh
ckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICB0aGlzLl90b3BQ
YW5lU2lkZWJhckVsZW1lbnQuaWQgPSAidGltZWxpbmUtb3ZlcnZpZXctc2lkZWJhciI7CiAKQEAg
LTY2LDE4ICs2MiwyMyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUgPSBmdW5j
dGlvbihwcmVzZW50YXRpb25Nb2RlbCkKICAgICB0b3BQYW5lU2lkZWJhclRyZWUuYXBwZW5kQ2hp
bGQodGhpcy5fbWVtb3J5T3ZlcnZpZXdJdGVtKTsKICAgICB0aGlzLl9tZW1vcnlPdmVydmlld0l0
ZW0ub25zZWxlY3QgPSB0aGlzLl9zaG93TWVtb3J5R3JhcGguYmluZCh0aGlzKTsKIAorICAgIHRo
aXMuX292ZXJ2aWV3Q29udGFpbmVyID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAi
ZmlsbCIpOworICAgIHRoaXMuX292ZXJ2aWV3Q29udGFpbmVyLmlkID0gInRpbWVsaW5lLW92ZXJ2
aWV3LWNvbnRhaW5lciI7CisKICAgICB0aGlzLl9vdmVydmlld0dyaWQgPSBuZXcgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lR3JpZCgpOwogICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50LmlkID0g
InRpbWVsaW5lLW92ZXJ2aWV3LWdyaWQiOwogICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5pdGVtc0dy
YXBoc0VsZW1lbnQuaWQgPSAidGltZWxpbmUtb3ZlcnZpZXctdGltZWxpbmVzIjsKKyAgICAKKyAg
ICB0aGlzLl9vdmVydmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLl9vdmVydmlld0dyaWQu
ZWxlbWVudCk7CiAKICAgICB0aGlzLl9oZWFwR3JhcGggPSBuZXcgV2ViSW5zcGVjdG9yLkhlYXBH
cmFwaCgpOwogICAgIHRoaXMuX2hlYXBHcmFwaC5lbGVtZW50LmlkID0gInRpbWVsaW5lLW92ZXJ2
aWV3LW1lbW9yeSI7CiAgICAgdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQuaW5zZXJ0QmVmb3Jl
KHRoaXMuX2hlYXBHcmFwaC5lbGVtZW50LCB0aGlzLl9vdmVydmlld0dyaWQuaXRlbXNHcmFwaHNF
bGVtZW50KTsKIAotICAgIHRoaXMuX292ZXJ2aWV3V2luZG93ID0gbmV3IFdlYkluc3BlY3Rvci5U
aW1lbGluZU92ZXJ2aWV3V2luZG93KHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50KTsKLSAgICB0
aGlzLl9vdmVydmlld1dpbmRvdy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZU92ZXJ2aWV3V2luZG93LkV2ZW50cy5XaW5kb3dDaGFuZ2VkLCB0aGlzLl9maXJlV2luZG93Q2hh
bmdlZCwgdGhpcyk7CisgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3cgPSBuZXcgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3codGhpcy5fb3ZlcnZpZXdDb250YWluZXIpOworICAgIHRo
aXMuX292ZXJ2aWV3V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
T3ZlcnZpZXdXaW5kb3cuRXZlbnRzLldpbmRvd0NoYW5nZWQsIHRoaXMuX29uV2luZG93Q2hhbmdl
ZCwgdGhpcyk7CiAKLSAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fb3ZlcnZpZXdH
cmlkLmVsZW1lbnQpOworICAgIHRoaXMuX292ZXJ2aWV3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRo
aXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50KTsKIAogICAgIHZhciBzZXBhcmF0b3JFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgc2VwYXJhdG9yRWxlbWVudC5pZCA9
ICJ0aW1lbGluZS1vdmVydmlldy1zZXBhcmF0b3IiOwpAQCAtOTQsNyArOTUsNiBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUgPSBmdW5jdGlvbihwcmVzZW50YXRpb25Nb2RlbCkK
ICAgICB9CiAKICAgICB0aGlzLl9vdmVydmlld0dyaWQuc2V0U2Nyb2xsQW5kRGl2aWRlclRvcCgw
LCAwKTsKLQogICAgIHRoaXMuX292ZXJ2aWV3Q2FsY3VsYXRvciA9IG5ldyBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVPdmVydmlld0NhbGN1bGF0b3IoKTsKIH0KIApAQCAtMTI3LDcgKzEyNyw3IEBAIFdl
Ykluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAgICAgewogICAg
ICAgICB0aGlzLl9tZW1vcnlPdmVydmlld0l0ZW0ucmV2ZWFsQW5kU2VsZWN0KGZhbHNlKTsKICAg
ICAgICAgdGhpcy5faGVhcEdyYXBoLnNob3coKTsKLSAgICAgICAgdGhpcy5faGVhcEdyYXBoLnVw
ZGF0ZSh0aGlzLl9yZWNvcmRzKTsKKyAgICAgICAgdGhpcy5faGVhcEdyYXBoLnVwZGF0ZSh0aGlz
Ll9wcmVzZW50YXRpb25Nb2RlbC5yb290UmVjb3JkKCkuY2hpbGRyZW4pOwogICAgICAgICB0aGlz
Ll9vdmVydmlld0dyaWQuaXRlbXNHcmFwaHNFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIp
OwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVPdmVydmlld1BhbmUuRXZlbnRzLk1vZGVDaGFuZ2VkLCBXZWJJbnNwZWN0b3IuVGltZWxp
bmVPdmVydmlld1BhbmUuTW9kZS5NZW1vcnkpOwogICAgIH0sCkBAIC0xNDMsMTIgKzE0MywxMCBA
QCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlID0gewogICAgICAg
ICBpZiAoZW5hYmxlZCkgewogICAgICAgICAgICAgaWYgKHRoaXMuX2hlYXBHcmFwaC52aXNpYmxl
KQogICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dUaW1lbGluZXMoKTsKLSAgICAgICAgICAgIHRo
aXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ0aW1lbGluZS1zdGFydC1hdC16ZXJvIik7Ci0gICAg
ICAgICAgICB0aGlzLl9zdGFydEF0WmVyb092ZXJ2aWV3ID0gbmV3IFdlYkluc3BlY3Rvci5UaW1l
bGluZVN0YXJ0QXRaZXJvT3ZlcnZpZXcodGhpcyk7Ci0gICAgICAgICAgICB0aGlzLl9zdGFydEF0
WmVyb092ZXJ2aWV3LnNob3codGhpcy5lbGVtZW50KTsKLSAgICAgICAgICAgIHRoaXMuX3N0YXJ0
QXRaZXJvT3ZlcnZpZXcudXBkYXRlKHRoaXMuX3JlY29yZHMpOworICAgICAgICAgICAgdGhpcy5f
c3RhcnRBdFplcm9PdmVydmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVTdGFydEF0WmVy
b092ZXJ2aWV3KCk7CisgICAgICAgICAgICB0aGlzLl9zdGFydEF0WmVyb092ZXJ2aWV3LnNob3co
dGhpcy5fb3ZlcnZpZXdDb250YWluZXIpOworICAgICAgICAgICAgdGhpcy5fc3RhcnRBdFplcm9P
dmVydmlldy51cGRhdGUodGhpcy5fcHJlc2VudGF0aW9uTW9kZWwucm9vdFJlY29yZCgpLmNoaWxk
cmVuKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVT
dHlsZUNsYXNzKCJ0aW1lbGluZS1zdGFydC1hdC16ZXJvIik7CiAgICAgICAgICAgICB0aGlzLl9z
dGFydEF0WmVyb092ZXJ2aWV3LmRldGFjaCgpOwogICAgICAgICAgICAgdGhpcy5fc3RhcnRBdFpl
cm9PdmVydmlldyA9IG51bGw7CiAgICAgICAgICAgICB0aGlzLl9zaG93VGltZWxpbmVzKCk7CkBA
IC0xNjEsMTAgKzE1OSw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2NhdGVnb3J5R3JhcGhzW2NhdGVnb3J5Lm5hbWVdLmRp
bW1lZCA9IGNhdGVnb3J5LmhpZGRlbjsKICAgICB9LAogCi0gICAgdXBkYXRlOiBmdW5jdGlvbihy
ZWNvcmRzLCBzaG93U2hvcnRFdmVudHMpCisgICAgdXBkYXRlOiBmdW5jdGlvbihzaG93U2hvcnRF
dmVudHMpCiAgICAgewotICAgICAgICB0aGlzLl90b3BMZXZlbFJlY29yZEluZGV4ID0gMDsKLSAg
ICAgICAgdGhpcy5fcmVjb3JkcyA9IHJlY29yZHM7CiAgICAgICAgIHRoaXMuX3Nob3dTaG9ydEV2
ZW50cyA9IHNob3dTaG9ydEV2ZW50czsKICAgICAgICAgLy8gQ2xlYXIgc3VtbWFyeSBiYXJzLgog
ICAgICAgICB2YXIgdGltZWxpbmVzID0ge307CkBAIC0xODIsNiArMTc4LDcgQEAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQogICAgICAgICAKKyAgICAgICAgdmFyIHJlY29yZHMgPSB0aGlz
Ll9wcmVzZW50YXRpb25Nb2RlbC5yb290UmVjb3JkKCkuY2hpbGRyZW47CiAgICAgICAgIFdlYklu
c3BlY3Rvci5UaW1lbGluZVBhbmVsLmZvckFsbFJlY29yZHMocmVjb3JkcywgdXBkYXRlQm91bmRh
cmllcy5iaW5kKHRoaXMpKTsKIAogICAgICAgICBmdW5jdGlvbiBtYXJrUGVyY2VudGFnZXNGb3JS
ZWNvcmQocmVjb3JkKQpAQCAtMjMzLDYgKzIzMCw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92
ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBkaXZpZGVycyA9IFtdOwogICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAg
ICAgIHZhciByZWNvcmQgPSByZWNvcmRzW2ldOworICAgICAgICAgICAgaWYgKHJlY29yZC50eXBl
ID09PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLkZyYW1lVXBkYXRlKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgdmFyIHBvc2l0aW9ucyA9IHRo
aXMuX292ZXJ2aWV3Q2FsY3VsYXRvci5jb21wdXRlQmFyR3JhcGhQZXJjZW50YWdlcyhyZWNvcmQp
OwogICAgICAgICAgICAgdmFyIGRpdmlkZXJQb3NpdGlvbiA9IE1hdGgucm91bmQocG9zaXRpb25z
LnN0YXJ0ICogMTApOwogICAgICAgICAgICAgaWYgKGRpdmlkZXJzW2RpdmlkZXJQb3NpdGlvbl0p
CkBAIC0yNDYsMTIgKzI0NSwxNCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUu
cHJvdG90eXBlID0gewogCiAgICAgc2lkZWJhclJlc2l6ZWQ6IGZ1bmN0aW9uKHdpZHRoKQogICAg
IHsKLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQuc3R5bGUubGVmdCA9IHdpZHRo
ICsgInB4IjsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdDb250YWluZXIuc3R5bGUubGVmdCA9IHdp
ZHRoICsgInB4IjsKICAgICAgICAgdGhpcy5fdG9wUGFuZVNpZGViYXJFbGVtZW50LnN0eWxlLndp
ZHRoID0gd2lkdGggKyAicHgiOwogICAgIH0sCiAKICAgICByZXNldDogZnVuY3Rpb24oKQogICAg
IHsKKyAgICAgICAgdGhpcy5fd2luZG93U3RhcnRUaW1lID0gMDsKKyAgICAgICAgdGhpcy5fd2lu
ZG93RW5kVGltZSA9IG51bGw7CiAgICAgICAgIHRoaXMuX292ZXJ2aWV3V2luZG93LnJlc2V0KCk7
CiAgICAgICAgIHRoaXMuX292ZXJ2aWV3Q2FsY3VsYXRvci5yZXNldCgpOwogICAgICAgICB0aGlz
Ll9vdmVydmlld0dyaWQudXBkYXRlRGl2aWRlcnModHJ1ZSwgdGhpcy5fb3ZlcnZpZXdDYWxjdWxh
dG9yKTsKQEAgLTI2OSwyNSArMjcwLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQ
YW5lLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBhY2NlcHQ6IGZ1bmN0aW9uKHJlY29yZCkK
ICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9zdGFydEF0WmVyb092ZXJ2aWV3KSB7Ci0gICAgICAg
ICAgICBpZiAocmVjb3JkLnBhcmVudCA9PT0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwucm9vdFJl
Y29yZCgpKQotICAgICAgICAgICAgICAgICsrdGhpcy5fdG9wTGV2ZWxSZWNvcmRJbmRleDsKLSAg
ICAgICAgICAgIHJldHVybiB0aGlzLl90b3BMZXZlbFJlY29yZEluZGV4ID4gdGhpcy5fd2luZG93
SW5kZXhMZWZ0ICYmCi0gICAgICAgICAgICAgICAgKHR5cGVvZiB0aGlzLl93aW5kb3dJbmRleFJp
Z2h0ICE9PSAibnVtYmVyIiB8fCB0aGlzLl90b3BMZXZlbFJlY29yZEluZGV4IDw9IHRoaXMuX3dp
bmRvd0luZGV4UmlnaHQpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdmFyIGFic29s
dXRlTWluID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwubWluaW11bVJlY29yZFRpbWUoKTsKLSAg
ICAgICAgICAgIHZhciBhYnNvbHV0ZU1heCA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLm1heGlt
dW1SZWNvcmRUaW1lKCk7Ci0gICAgICAgICAgICB2YXIgd2luZG93TGVmdCA9IGFic29sdXRlTWlu
ICsgKGFic29sdXRlTWF4IC0gYWJzb2x1dGVNaW4pICogdGhpcy53aW5kb3dMZWZ0KCk7Ci0gICAg
ICAgICAgICB2YXIgd2luZG93UmlnaHQgPSBhYnNvbHV0ZU1pbiArIChhYnNvbHV0ZU1heCAtIGFi
c29sdXRlTWluKSAqIHRoaXMud2luZG93UmlnaHQoKTsKLSAgICAgICAgICAgIHJldHVybiByZWNv
cmQuZW5kVGltZSA+PSB3aW5kb3dMZWZ0ICYmIHJlY29yZC5zdGFydFRpbWUgPD0gd2luZG93Umln
aHQ7Ci0gICAgICAgIH0KLSAgICB9LAotCi0gICAgX3NldFdpbmRvd0luZGljZXM6IGZ1bmN0aW9u
KGluZGV4TGVmdCwgaW5kZXhSaWdodCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3dpbmRvd0luZGV4
TGVmdCA9IGluZGV4TGVmdDsKLSAgICAgICAgdGhpcy5fd2luZG93SW5kZXhSaWdodCA9IGluZGV4
UmlnaHQ7Ci0gICAgICAgIHRoaXMuX2ZpcmVXaW5kb3dDaGFuZ2VkKCk7CisgICAgICAgIHJldHVy
biByZWNvcmQuZW5kVGltZSA+PSB0aGlzLl93aW5kb3dTdGFydFRpbWUgJiYgKHR5cGVvZiB0aGlz
Ll93aW5kb3dFbmRUaW1lICE9PSAibnVtYmVyIiB8fCByZWNvcmQuc3RhcnRUaW1lIDw9IHRoaXMu
X3dpbmRvd0VuZFRpbWUpOwogICAgIH0sCiAKICAgICB3aW5kb3dMZWZ0OiBmdW5jdGlvbigpCkBA
IC0zMDAsOCArMjgzLDE4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9vdmVydmlld1dpbmRvdy53aW5kb3dSaWdo
dDsKICAgICB9LAogCi0gICAgX2ZpcmVXaW5kb3dDaGFuZ2VkOiBmdW5jdGlvbigpCisgICAgX29u
V2luZG93Q2hhbmdlZDogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3N0YXJ0
QXRaZXJvT3ZlcnZpZXcpIHsKKyAgICAgICAgICAgIHZhciB0aW1lcyA9IHRoaXMuX3N0YXJ0QXRa
ZXJvT3ZlcnZpZXcuZ2V0V2luZG93VGltZXModGhpcy53aW5kb3dMZWZ0KCksIHRoaXMud2luZG93
UmlnaHQoKSk7CisgICAgICAgICAgICB0aGlzLl93aW5kb3dTdGFydFRpbWUgPSB0aW1lcy5zdGFy
dFRpbWU7CisgICAgICAgICAgICB0aGlzLl93aW5kb3dFbmRUaW1lID0gdGltZXMuZW5kVGltZTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZhciBhYnNvbHV0ZU1pbiA9IHRoaXMuX3By
ZXNlbnRhdGlvbk1vZGVsLm1pbmltdW1SZWNvcmRUaW1lKCk7CisgICAgICAgICAgICB2YXIgYWJz
b2x1dGVNYXggPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5tYXhpbXVtUmVjb3JkVGltZSgpOwor
ICAgICAgICAgICAgdGhpcy5fd2luZG93U3RhcnRUaW1lID0gYWJzb2x1dGVNaW4gKyAoYWJzb2x1
dGVNYXggLSBhYnNvbHV0ZU1pbikgKiB0aGlzLndpbmRvd0xlZnQoKTsKKyAgICAgICAgICAgIHRo
aXMuX3dpbmRvd0VuZFRpbWUgPSBhYnNvbHV0ZU1pbiArIChhYnNvbHV0ZU1heCAtIGFic29sdXRl
TWluKSAqIHRoaXMud2luZG93UmlnaHQoKTsKKyAgICAgICAgfQogICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuRXZl
bnRzLldpbmRvd0NoYW5nZWQpOwogICAgIH0KIH0KQEAgLTc2Myw1NCArNzU2LDEwMiBAQCBXZWJJ
bnNwZWN0b3IuSGVhcEdyYXBoLnByb3RvdHlwZSA9IHsKIAogLyoqCiAgKiBAY29uc3RydWN0b3IK
LSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lfSBwYW5lCiAgKiBA
ZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlZpZXd9CiAgKi8KLVdlYkluc3BlY3Rvci5UaW1lbGluZVN0
YXJ0QXRaZXJvT3ZlcnZpZXcgPSBmdW5jdGlvbihwYW5lKSB7CitXZWJJbnNwZWN0b3IuVGltZWxp
bmVTdGFydEF0WmVyb092ZXJ2aWV3ID0gZnVuY3Rpb24oKSB7CiAgICAgV2ViSW5zcGVjdG9yLlZp
ZXcuY2FsbCh0aGlzKTsKLSAgICB0aGlzLl9wYW5lID0gcGFuZTsKLSAgICB0aGlzLmVsZW1lbnQu
Y2xhc3NOYW1lID0gInRpbWVsaW5lLW92ZXJ2aWV3LXN0YXJ0LWF0LXplcm8gZmlsbCI7Ci0gICAg
dGhpcy5fb3ZlcnZpZXdFbGVtZW50ID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAi
dGltZWxpbmUtb3ZlcnZpZXctc3RhcnQtYXQtemVyby1iYXJzIGZpbGwiKTsKLSAgICB0aGlzLl9v
dmVydmlld1dpbmRvdyA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1dpbmRvdyh0
aGlzLmVsZW1lbnQpOwotICAgIHRoaXMuX292ZXJ2aWV3V2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cuRXZlbnRzLldpbmRvd0NoYW5nZWQs
IHRoaXMuX29uV2luZG93Q2hhbmdlZCwgdGhpcyk7Ci0gICAgdGhpcy5fcmVjb3Jkc1BlckJhciA9
IDE7CisgICAgdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cisg
ICAgdGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9ICJ0aW1lbGluZS1vdmVydmlldy1zdGFydC1hdC16
ZXJvLWJhcnMgZmlsbCI7CisgICAgdGhpcy5yZXNldCgpOwogfQogCiBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVTdGFydEF0WmVyb092ZXJ2aWV3LnByb3RvdHlwZSA9IHsKICAgICByZXNldDogZnVuY3Rp
b24oKQogICAgIHsKICAgICAgICAgdGhpcy5fcmVjb3Jkc1BlckJhciA9IDE7Ci0gICAgICAgIHRo
aXMuX292ZXJ2aWV3V2luZG93LnJlc2V0KCk7CisgICAgICAgIHRoaXMuX2ZyYW1lTW9kZSA9IGZh
bHNlOworICAgICAgICB0aGlzLl9iYXJUaW1lcyA9IFtdOwogICAgIH0sCiAKICAgICB1cGRhdGU6
IGZ1bmN0aW9uKHJlY29yZHMpCiAgICAgewogICAgICAgICByZWNvcmRzID0gdGhpcy5fZmlsdGVy
UmVjb3JkcyhyZWNvcmRzKTsKKworICAgICAgICB2YXIgZnJhbWVDb3VudCA9IDA7CiAgICAgICAg
IHZhciBib3VuZGFyeVNwYW4gPSAwOworICAgICAgICB2YXIgbGFzdEZyYW1lVGltZSA9IHJlY29y
ZHNbMF0gJiYgcmVjb3Jkc1swXS5zdGFydFRpbWU7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcmVjb3Jkcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHJlY29yZCA9IHJlY29y
ZHNbaV07CiAgICAgICAgICAgICB2YXIgZHVyYXRpb24gPSByZWNvcmQuZW5kVGltZSAtIHJlY29y
ZC5zdGFydFRpbWU7CiAgICAgICAgICAgICBpZiAoYm91bmRhcnlTcGFuIDwgZHVyYXRpb24pCiAg
ICAgICAgICAgICAgICAgYm91bmRhcnlTcGFuID0gZHVyYXRpb247CisgICAgICAgICAgICBpZiAo
cmVjb3JkLnR5cGUgPT09IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuRnJh
bWVVcGRhdGUgfHwgKGZyYW1lQ291bnQgJiYgKGkgKyAxID09PSByZWNvcmRzLmxlbmd0aCkpKSB7
CisgICAgICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSBmcmFtZXMsIHRha2UgZnJhbWUgZHVyYXRp
b24gaW50byBhY2NvdW50CisgICAgICAgICAgICAgICAgaWYgKHJlY29yZC5zdGFydFRpbWUgLSBs
YXN0RnJhbWVUaW1lID4gYm91bmRhcnlTcGFuKQorICAgICAgICAgICAgICAgICAgICBib3VuZGFy
eVNwYW4gPSByZWNvcmQuc3RhcnRUaW1lIC0gbGFzdEZyYW1lVGltZTsKKyAgICAgICAgICAgICAg
ICBsYXN0RnJhbWVUaW1lID0gcmVjb3JkLnN0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICArK2Zy
YW1lQ291bnQ7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgIAotICAgICAgICB2YXIg
c2NhbGUgPSAodGhpcy5fb3ZlcnZpZXdFbGVtZW50LmNsaWVudEhlaWdodCAtIDQpIC8gYm91bmRh
cnlTcGFuOwotICAgICAgICB0aGlzLl9yZWNvcmRzUGVyQmFyID0gTWF0aC5tYXgoMSwgcmVjb3Jk
cy5sZW5ndGggKiA0IC8gdGhpcy5lbGVtZW50LmNsaWVudFdpZHRoKTsKLSAgICAgICAgdmFyIG51
bWJlck9mQmFycyA9IE1hdGguY2VpbChyZWNvcmRzLmxlbmd0aCAvIHRoaXMuX3JlY29yZHNQZXJC
YXIpOwotCi0gICAgICAgIHRoaXMuX292ZXJ2aWV3RWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwot
ICAgICAgICB2YXIgcGFkZGluZyA9IHRoaXMuX292ZXJ2aWV3RWxlbWVudC5jcmVhdGVDaGlsZCgi
ZGl2IiwgInBhZGRpbmciKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bWJlck9m
QmFyczsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgaW5kZXggPSBNYXRoLmZsb29yKGkgKiB0aGlz
Ll9yZWNvcmRzUGVyQmFyKTsKLSAgICAgICAgICAgIHZhciBsb25nZXN0UmVjb3JkID0gcmVjb3Jk
c1tpbmRleF07Ci0gICAgICAgICAgICB2YXIgc3RvcEluZGV4ID0gTWF0aC5taW4oTWF0aC5mbG9v
cigoaSArIDEpICogdGhpcy5fcmVjb3Jkc1BlckJhciksIHJlY29yZHMubGVuZ3RoKTsKLSAgICAg
ICAgICAgIGZvciAoKytpbmRleDsgaW5kZXggPCBzdG9wSW5kZXg7ICsraW5kZXgpIHsKLSAgICAg
ICAgICAgICAgICB2YXIgcmVjb3JkID0gcmVjb3Jkc1tpbmRleF07Ci0gICAgICAgICAgICAgICAg
aWYgKGxvbmdlc3RSZWNvcmQuZW5kVGltZSAtIGxvbmdlc3RSZWNvcmQuc3RhcnRUaW1lIDwgcmVj
b3JkLmVuZFRpbWUgLSByZWNvcmQuc3RhcnRUaW1lKQotICAgICAgICAgICAgICAgICAgICBsb25n
ZXN0UmVjb3JkID0gcmVjb3JkOworICAgICAgICAvLyBJZiB3ZSBoYXZlIGZyYW1lcywgYWdncmVn
YXRlIGJ5IGZyYW1lczsgb3RoZXJ3aXNlLCBqdXN0IHNob3cgdG9wLWxldmVsIHJlY29yZHMuCisg
ICAgICAgIHZhciByZWNvcmRDb3VudCA9IGZyYW1lQ291bnQgfHwgcmVjb3Jkcy5sZW5ndGg7CisK
KyAgICAgICAgdmFyIHNjYWxlID0gKHRoaXMuZWxlbWVudC5jbGllbnRIZWlnaHQgLSA0KSAvIGJv
dW5kYXJ5U3BhbjsKKyAgICAgICAgdGhpcy5fcmVjb3Jkc1BlckJhciA9IE1hdGgubWF4KDEsIHJl
Y29yZENvdW50ICogNCAvIHRoaXMuZWxlbWVudC5jbGllbnRXaWR0aCk7CisgICAgICAgIHZhciBu
dW1iZXJPZkJhcnMgPSBNYXRoLmNlaWwocmVjb3JkQ291bnQgLyB0aGlzLl9yZWNvcmRzUGVyQmFy
KTsKKworICAgICAgICB0aGlzLl9iYXJUaW1lcyA9IFtdOworICAgICAgICB0aGlzLmVsZW1lbnQu
cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgdmFyIHBhZGRpbmcgPSB0aGlzLmVsZW1lbnQuY3Jl
YXRlQ2hpbGQoImRpdiIsICJwYWRkaW5nIik7CisKKyAgICAgICAgZm9yICh2YXIgYmFyTnVtYmVy
ID0gMCwgY3VycmVudEZyYW1lID0gMCwgY3VycmVudFJlY29yZCA9IDA7CisgICAgICAgICAgICBi
YXJOdW1iZXIgPCBudW1iZXJPZkJhcnMgJiYgY3VycmVudFJlY29yZCA8IHJlY29yZHMubGVuZ3Ro
OworICAgICAgICAgICAgKytiYXJOdW1iZXIpIHsKKyAgICAgICAgICAgIHZhciBzdGF0aXN0aWNz
OworICAgICAgICAgICAgdmFyIGxhc3RJbmRleCA9IE1hdGgubWluKE1hdGguZmxvb3IoKGJhck51
bWJlciArIDEpICogdGhpcy5fcmVjb3Jkc1BlckJhciksIHJlY29yZENvdW50KTsKKyAgICAgICAg
ICAgIHZhciBiYXJTdGFydFRpbWUgPSByZWNvcmRzW2N1cnJlbnRSZWNvcmRdLnN0YXJ0VGltZTsK
KworICAgICAgICAgICAgaWYgKGZyYW1lQ291bnQpIHsKKyAgICAgICAgICAgICAgICB2YXIgbG9u
Z2VzdEZyYW1lQ1BVVGltZSA9IDA7CisgICAgICAgICAgICAgICAgdmFyIGZyYW1lU3RhdGlzdGlj
cyA9IHt9OworICAgICAgICAgICAgICAgIHZhciBjcHVUaW1lRm9yRnJhbWUgPSAwOworICAgICAg
ICAgICAgICAgIGZvciAoOyBjdXJyZW50RnJhbWUgPCBsYXN0SW5kZXggJiYgY3VycmVudFJlY29y
ZCA8IHJlY29yZHMubGVuZ3RoOyArK2N1cnJlbnRSZWNvcmQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdmFyIHJlY29yZCA9IHJlY29yZHNbY3VycmVudFJlY29yZF07CisgICAgICAgICAgICAgICAg
ICAgIGlmIChyZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3Jk
VHlwZS5GcmFtZVVwZGF0ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNwdVRpbWVG
b3JGcmFtZSA+IGxvbmdlc3RGcmFtZUNQVVRpbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsb25nZXN0RnJhbWVDUFVUaW1lID0gY3B1VGltZUZvckZyYW1lOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXRpc3RpY3MgPSBmcmFtZVN0YXRpc3RpY3M7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICArK2N1cnJlbnRGcmFtZTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNwdVRpbWVGb3JGcmFtZSA9IDA7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmcmFtZVN0YXRpc3RpY3MgPSB7fTsKKyAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYXRlZ29yaWVzID0gT2JqZWN0
LmtleXMocmVjb3JkLmFnZ3JlZ2F0ZWRTdGF0cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGNhdGVnb3JpZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBmcmFtZVN0YXRpc3RpY3NbY2F0ZWdvcmllc1tp
XV0gfHwgMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSArPSByZWNvcmQuYWdn
cmVnYXRlZFN0YXRzW2NhdGVnb3JpZXNbaV1dOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNwdVRpbWVGb3JGcmFtZSArPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
cmFtZVN0YXRpc3RpY3NbY2F0ZWdvcmllc1tpXV0gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBpZiAoY3B1VGltZUZvckZyYW1lID4gbG9uZ2VzdEZyYW1lQ1BVVGltZSkKKyAg
ICAgICAgICAgICAgICAgICAgc3RhdGlzdGljcyA9IGZyYW1lU3RhdGlzdGljczsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gbm9uLWZyYW1lIG1vZGUKKyAgICAgICAg
ICAgICAgICB2YXIgbG9uZ2VzdFJlY29yZCA9IHJlY29yZHNbY3VycmVudFJlY29yZF07CisgICAg
ICAgICAgICAgICAgZm9yICgrK2N1cnJlbnRSZWNvcmQ7IGN1cnJlbnRSZWNvcmQgPCBsYXN0SW5k
ZXg7ICsrY3VycmVudFJlY29yZCkgeworICAgICAgICAgICAgICAgICAgICB2YXIgcmVjb3JkID0g
cmVjb3Jkc1tjdXJyZW50UmVjb3JkXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxvbmdlc3RS
ZWNvcmQuZW5kVGltZSAtIGxvbmdlc3RSZWNvcmQuc3RhcnRUaW1lIDwgcmVjb3JkLmVuZFRpbWUg
LSByZWNvcmQuc3RhcnRUaW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgbG9uZ2VzdFJlY29y
ZCA9IHJlY29yZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RhdGlzdGlj
cyA9IGxvbmdlc3RSZWNvcmQuYWdncmVnYXRlZFN0YXRzOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgdmFyIGJhckVuZFRpbWUgPSByZWNvcmRzW2N1cnJlbnRSZWNvcmQgLSAxXS5lbmRUaW1l
OworICAgICAgICAgICAgaWYgKHN0YXRpc3RpY3MpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9i
YXJUaW1lcy5wdXNoKHsgc3RhcnRUaW1lOiBiYXJTdGFydFRpbWUsIGVuZFRpbWU6IGJhckVuZFRp
bWUgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lmluc2VydEJlZm9yZSh0aGlzLl9i
dWlsZEJhcihzdGF0aXN0aWNzLCBzY2FsZSksIHBhZGRpbmcpOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgdGhpcy5fb3ZlcnZpZXdFbGVtZW50Lmluc2VydEJlZm9yZSh0aGlzLl9idWlsZEJh
cihsb25nZXN0UmVjb3JkLCBzY2FsZSksIHBhZGRpbmcpOwogICAgICAgICB9CiAgICAgfSwKIApA
QCAtODIzLDM5ICs4NjQsNDAgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lU3RhcnRBdFplcm9PdmVy
dmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiByZWNvcmRzLmZpbHRlcihmaWx0ZXIp
OwogICAgIH0sCiAKLSAgICBfYnVpbGRCYXI6IGZ1bmN0aW9uKHJlY29yZCwgc2NhbGUpCisgICAg
X2J1aWxkQmFyOiBmdW5jdGlvbihzdGF0aXN0aWNzLCBzY2FsZSkKICAgICB7CiAgICAgICAgIHZh
ciBvdXRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICBvdXRlci5j
bGFzc05hbWUgPSAidGltZWxpbmUtYmFyLXZlcnRpY2FsIjsKLSAgICAgICAgdmFyIHN0YXRzID0g
cmVjb3JkLmFnZ3JlZ2F0ZWRTdGF0czsKLSAgICAgICAgdmFyIGNhdGVnb3JpZXMgPSBPYmplY3Qu
a2V5cyhzdGF0cyk7CisgICAgICAgIHZhciBjYXRlZ29yaWVzID0gT2JqZWN0LmtleXMoc3RhdGlz
dGljcyk7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2F0ZWdvcmllcy5sZW5ndGg7ICsr
aSkgewogICAgICAgICAgICAgdmFyIGNhdGVnb3J5ID0gY2F0ZWdvcmllc1tpXTsKLSAgICAgICAg
ICAgIHZhciBkdXJhdGlvbiA9IHN0YXRzW2NhdGVnb3J5XTsKKyAgICAgICAgICAgIHZhciBkdXJh
dGlvbiA9IHN0YXRpc3RpY3NbY2F0ZWdvcnldOwogICAgICAgICAgICAgaWYgKCFkdXJhdGlvbikK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIHZhciBiYXIgPSBvdXRlci5j
cmVhdGVDaGlsZCgiZGl2IiwgInRpbWVsaW5lLSIgKyBjYXRlZ29yeSk7Ci0gICAgICAgICAgICBi
YXIuc3R5bGUuaGVpZ2h0ID0gKHN0YXRzW2NhdGVnb3J5XSAqIHNjYWxlKSArICJweCI7CisgICAg
ICAgICAgICBiYXIuc3R5bGUuaGVpZ2h0ID0gKHN0YXRpc3RpY3NbY2F0ZWdvcnldICogc2NhbGUp
ICsgInB4IjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gb3V0ZXI7CiAgICAgfSwKIAotICAg
IF9vbldpbmRvd0NoYW5nZWQ6IGZ1bmN0aW9uKCkKKyAgICBnZXRXaW5kb3dUaW1lczogZnVuY3Rp
b24od2luZG93TGVmdCwgd2luZG93UmlnaHQpCiAgICAgewotICAgICAgICB2YXIgbGVmdE9mZnNl
dCA9IHRoaXMuX292ZXJ2aWV3V2luZG93LndpbmRvd0xlZnQgKiB0aGlzLmVsZW1lbnQuY2xpZW50
V2lkdGg7Ci0gICAgICAgIHZhciByaWdodE9mZnNldCA9IHRoaXMuX292ZXJ2aWV3V2luZG93Lndp
bmRvd1JpZ2h0ICogdGhpcy5lbGVtZW50LmNsaWVudFdpZHRoOwotICAgICAgICB2YXIgYmFycyA9
IHRoaXMuX292ZXJ2aWV3RWxlbWVudC5jaGlsZHJlbjsKKyAgICAgICAgdmFyIHdpbmRvd1NwYW4g
PSB0aGlzLmVsZW1lbnQuY2xpZW50V2lkdGgKKyAgICAgICAgdmFyIGxlZnRPZmZzZXQgPSB3aW5k
b3dMZWZ0ICogd2luZG93U3BhbjsKKyAgICAgICAgdmFyIHJpZ2h0T2Zmc2V0ID0gd2luZG93Umln
aHQgKiB3aW5kb3dTcGFuOworICAgICAgICB2YXIgYmFycyA9IHRoaXMuZWxlbWVudC5jaGlsZHJl
bjsKICAgICAgICAgdmFyIG9mZnNldDAgPSBiYXJzWzBdID8gYmFyc1swXS5vZmZzZXRMZWZ0IDog
NDsKICAgICAgICAgdmFyIGJhcldpZHRoID0gOTsKICAgICAgICAgaWYgKGJhcnMubGVuZ3RoID4g
MikgewogICAgICAgICAgICAgdmFyIG9mZnNldDEgPSBiYXJzW2JhcnMubGVuZ3RoIC0gMl0ub2Zm
c2V0TGVmdDsKICAgICAgICAgICAgIGJhcldpZHRoID0gKG9mZnNldDEgLSBvZmZzZXQwKSAvIChi
YXJzLmxlbmd0aCAtIDIpOwogICAgICAgICB9Ci0KLSAgICAgICAgdmFyIGxlZnRJbmRleCA9IE1h
dGguZmxvb3IoKGxlZnRPZmZzZXQgLSBvZmZzZXQwKSAvIGJhcldpZHRoICogdGhpcy5fcmVjb3Jk
c1BlckJhcik7Ci0gICAgICAgIHZhciByaWdodEluZGV4ID0gcmlnaHRPZmZzZXQgKyBiYXJXaWR0
aCA+PSB0aGlzLmVsZW1lbnQuY2xpZW50V2lkdGggPyBudWxsIDogTWF0aC5jZWlsKChyaWdodE9m
ZnNldCAtIG9mZnNldDAgLSAyKSAvIGJhcldpZHRoICogdGhpcy5fcmVjb3Jkc1BlckJhcik7Ci0K
LSAgICAgICAgdGhpcy5fcGFuZS5fc2V0V2luZG93SW5kaWNlcyhsZWZ0SW5kZXgsIHJpZ2h0SW5k
ZXgpOworICAgICAgICB2YXIgZmlyc3RCYXIgPSBNYXRoLmZsb29yKE1hdGgubWF4KGxlZnRPZmZz
ZXQgLSBvZmZzZXQwLCAwKSAvIGJhcldpZHRoKTsKKyAgICAgICAgdmFyIGxhc3RCYXIgPSBNYXRo
Lm1pbihNYXRoLmNlaWwoKHJpZ2h0T2Zmc2V0IC0gb2Zmc2V0MCAtIDIpIC8gYmFyV2lkdGgpLCB0
aGlzLl9iYXJUaW1lcy5sZW5ndGggLSAxKTsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAg
IHN0YXJ0VGltZTogdGhpcy5fYmFyVGltZXNbZmlyc3RCYXJdLnN0YXJ0VGltZSwKKyAgICAgICAg
ICAgIGVuZFRpbWU6IHJpZ2h0T2Zmc2V0ICsgMyA+IHdpbmRvd1NwYW4gPyBudWxsIDogdGhpcy5f
YmFyVGltZXNbbGFzdEJhcl0uZW5kVGltZQorICAgICAgICB9CiAgICAgfQogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5k
ZXggM2E5YzU0YzgwYWFhYjY2NzZhN2JkMzlkZDU1ZjE0MDIzZjY4ZTI4Yi4uYzViNmU5NmVjMmI4
NDA4ZGM4MzgxMmMxZWVjNWIwYjA3MDZmMjU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtMzM0LDggKzMzNCwxMyBA
QCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMu
X3RpbWVsaW5lR3JpZC5yZW1vdmVFdmVudERpdmlkZXJzKCk7CiAgICAgICAgIHZhciBjbGllbnRX
aWR0aCA9IHRoaXMuX2dyYXBoUm93c0VsZW1lbnQub2Zmc2V0V2lkdGggLSB0aGlzLl9leHBhbmRP
ZmZzZXQ7CiAgICAgICAgIHZhciBkaXZpZGVycyA9IFtdOworICAgICAgICAvLyBPbmx5IHNob3cg
ZnJhbWVzIGlmIHdlJ3JlIHpvb21lZCBjbG9zZSBlbm91Z2ggLS0gb3RoZXJ3aXNlIHRoZXknZCBi
ZSB0byBkZW5zZSB0byBiZSB1c2VmdWwgYW5kIHdpbGwgb3ZlcnBvcHVsYXRlIERPTS4KKyAgICAg
ICAgdmFyIHNob3dGcmFtZXMgPSB0aGlzLmNhbGN1bGF0b3IuYm91bmRhcnlTcGFuIDwgMS4wICYm
IHRoaXMuX3N0YXJ0QXRaZXJvOworCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5f
dGltZVN0YW1wUmVjb3Jkcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHJlY29yZCA9
IHRoaXMuX3RpbWVTdGFtcFJlY29yZHNbaV07CisgICAgICAgICAgICBpZiAocmVjb3JkLnR5cGUg
PT09IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuRnJhbWVVcGRhdGUgJiYg
IXNob3dGcmFtZXMpCisgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB2YXIg
cG9zaXRpb25zID0gdGhpcy5fY2FsY3VsYXRvci5jb21wdXRlQmFyR3JhcGhXaW5kb3dQb3NpdGlv
bihyZWNvcmQsIGNsaWVudFdpZHRoKTsKICAgICAgICAgICAgIHZhciBkaXZpZGVyUG9zaXRpb24g
PSBNYXRoLnJvdW5kKHBvc2l0aW9ucy5sZWZ0KTsKICAgICAgICAgICAgIGlmIChkaXZpZGVyUG9z
aXRpb24gPCAwIHx8IGRpdmlkZXJQb3NpdGlvbiA+PSBjbGllbnRXaWR0aCB8fCBkaXZpZGVyc1tk
aXZpZGVyUG9zaXRpb25dKQpAQCAtMzY1LDcgKzM3MCw5IEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09IHJl
Y29yZFR5cGVzLlRpbWVTdGFtcCkgewogICAgICAgICAgICAgZXZlbnREaXZpZGVyLmNsYXNzTmFt
ZSArPSAiIHJlc291cmNlcy1vcmFuZ2UtZGl2aWRlciI7CiAgICAgICAgICAgICBldmVudERpdmlk
ZXJQYWRkaW5nLnRpdGxlID0gcmVjb3JkLmRhdGFbIm1lc3NhZ2UiXTsKLSAgICAgICAgfQorICAg
ICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5GcmFtZVVwZGF0ZSkK
KyAgICAgICAgICAgIGV2ZW50RGl2aWRlci5jbGFzc05hbWUgKz0gIiB0aW1lbGluZS1mcmFtZS1k
aXZpZGVyIjsKKwogICAgICAgICBldmVudERpdmlkZXJQYWRkaW5nLmFwcGVuZENoaWxkKGV2ZW50
RGl2aWRlcik7CiAgICAgICAgIHJldHVybiBldmVudERpdmlkZXJQYWRkaW5nOwogICAgIH0sCkBA
IC00MjUsNiArNDMyLDEwIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdmFyIHRvZ2dsZWQgPSAhdGhpcy50b2dnbGVTdGFydEF0WmVyb0J1dHRvbi50
b2dnbGVkCiAgICAgICAgIHRoaXMuX2dsdWVQYXJlbnRCdXR0b24uZGlzYWJsZWQgPSB0b2dnbGVk
OwogICAgICAgICB0aGlzLnRvZ2dsZVN0YXJ0QXRaZXJvQnV0dG9uLnRvZ2dsZWQgPSB0b2dnbGVk
OworICAgICAgICBpZiAodG9nZ2xlZCkKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRTdHls
ZUNsYXNzKCJ0aW1lbGluZS1zdGFydC1hdC16ZXJvIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRoaXMuZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJ0aW1lbGluZS1zdGFydC1hdC16ZXJv
Iik7CiAgICAgICAgIHRoaXMuX2NhbGN1bGF0b3IgPSB0b2dnbGVkID8gbmV3IFdlYkluc3BlY3Rv
ci5UaW1lbGluZUZpdEluV2luZG93Q2FsY3VsYXRvcih0aGlzLl9wcmVzZW50YXRpb25Nb2RlbCkg
OiBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2FsY3VsYXRvcih0aGlzLl9wcmVzZW50YXRpb25N
b2RlbCk7CiAgICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnNldEdsdWVSZWNvcmRzKHRo
aXMuX2dsdWVQYXJlbnRCdXR0b24udG9nZ2xlZCAmJiAhdGhpcy50b2dnbGVTdGFydEF0WmVyb0J1
dHRvbi50b2dnbGVkKTsKICAgICAgICAgdGhpcy5fcmVwb3B1bGF0ZVJlY29yZHMoKTsKQEAgLTQ2
Miw4ICs0NzMsMTAgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICB2YXIgdGltZVN0YW1wUmVjb3JkcyA9IHRoaXMuX3RpbWVTdGFtcFJlY29yZHM7CiAg
ICAgICAgIGZ1bmN0aW9uIGFkZFRpbWVzdGFtcFJlY29yZHMocmVjb3JkKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLk1hcmtET01Db250ZW50
IHx8IHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5NYXJrTG9hZCB8fCByZWNvcmQudHlwZSA9
PT0gcmVjb3JkVHlwZXMuVGltZVN0YW1wKQorICAgICAgICAgICAgaWYgKHJlY29yZC50eXBlID09
PSByZWNvcmRUeXBlcy5NYXJrRE9NQ29udGVudCB8fCByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlw
ZXMuTWFya0xvYWQgfHwKKyAgICAgICAgICAgICAgICByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlw
ZXMuVGltZVN0YW1wIHx8IHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5GcmFtZVVwZGF0ZSkg
ewogICAgICAgICAgICAgICAgIHRpbWVTdGFtcFJlY29yZHMucHVzaChyZWNvcmQpOworICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLmZv
ckFsbFJlY29yZHMoWyBmb3JtYXR0ZWRSZWNvcmQgXSwgYWRkVGltZXN0YW1wUmVjb3Jkcyk7CiAg
ICAgfSwKQEAgLTU1OSw3ICs1NzIsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fcmVmcmVzaFRpbWVvdXQ7CiAgICAg
ICAgIH0KIAotICAgICAgICB0aGlzLl9vdmVydmlld1BhbmUudXBkYXRlKHRoaXMuX3Jvb3RSZWNv
cmQoKS5jaGlsZHJlbiwgdGhpcy5fc2hvd1Nob3J0RXZlbnRzKTsKKyAgICAgICAgdGhpcy5fb3Zl
cnZpZXdQYW5lLnVwZGF0ZSh0aGlzLl9zaG93U2hvcnRFdmVudHMpOwogCiAgICAgICAgIGlmICgh
dGhpcy5fYm91bmRhcmllc0FyZVZhbGlkKSB7CiAgICAgICAgICAgICB2YXIgbWluID0gdGhpcy5f
cHJlc2VudGF0aW9uTW9kZWwubWluaW11bVJlY29yZFRpbWUoKTsKQEAgLTEwMzIsNyArMTA0NSw3
IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5RmlsdGVyLnByb3RvdHlwZSA9IHsKICAg
ICAgKi8KICAgICBhY2NlcHQ6IGZ1bmN0aW9uKHJlY29yZCkKICAgICB7Ci0gICAgICAgIHJldHVy
biAhcmVjb3JkLmNhdGVnb3J5LmhpZGRlbjsKKyAgICAgICAgcmV0dXJuICFyZWNvcmQuY2F0ZWdv
cnkuaGlkZGVuICYmIHJlY29yZC50eXBlICE9PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5S
ZWNvcmRUeXBlLkZyYW1lVXBkYXRlOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1v
ZGVsLmpzCmluZGV4IDY4Yzk4N2M0ZDY4ZjE3NDczNWE5NDQ1MGUxODk2MDBkZDBlNjgyMGIuLmI0
Yzc0MTc0YjM1ZGU5MDliM2YxMGM4Njk0MTczZDBiZDE2MGM0NWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2Vu
dGF0aW9uTW9kZWwuanMKQEAgLTIwNSw2ICsyMDUsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
cmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZWNvcmRTdHlsZXNb
cmVjb3JkVHlwZXMuTGF5b3V0XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTGF5
b3V0IiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJyZW5kZXJpbmciXSB9OwogICAgICAgICAgICAg
cmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlJlY2FsY3VsYXRlU3R5bGVzXSA9IHsgdGl0bGU6IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiUmVjYWxjdWxhdGUgU3R5bGUiKSwgY2F0ZWdvcnk6IGNhdGVn
b3JpZXNbInJlbmRlcmluZyJdIH07CiAgICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlw
ZXMuUGFpbnRdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQYWludCIpLCBjYXRl
Z29yeTogY2F0ZWdvcmllc1sicmVuZGVyaW5nIl0gfTsKKyAgICAgICAgICAgIHJlY29yZFN0eWxl
c1tyZWNvcmRUeXBlcy5GcmFtZVVwZGF0ZV0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIkZyYW1lIFVwZGF0ZSIpLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sicmVuZGVyaW5nIl0gfTsK
KyAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5Db21wb3NlTGF5ZXJzXSA9IHsg
dGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29tcG9zZSBMYXllcnMiKSwgY2F0ZWdvcnk6
IGNhdGVnb3JpZXNbInJlbmRlcmluZyJdIH07CiAgICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVj
b3JkVHlwZXMuUGFyc2VIVE1MXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUGFy
c2UiKSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbImxvYWRpbmciXSB9OwogICAgICAgICAgICAgcmVj
b3JkU3R5bGVzW3JlY29yZFR5cGVzLlRpbWVySW5zdGFsbF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkluc3RhbGwgVGltZXIiKSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbInNjcmlw
dGluZyJdIH07CiAgICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuVGltZXJSZW1v
dmVdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZW1vdmUgVGltZXIiKSwgY2F0
ZWdvcnk6IGNhdGVnb3JpZXNbInNjcmlwdGluZyJdIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvckNvbW1vbi5jc3MgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvckNvbW1vbi5jc3MKaW5kZXggNTI2ODQz
MTQwNGNkNDBmZjEzMGJkNjYwNTUzZTk4Nzk2Y2E5ZDRlNS4uY2I3OGIwMzExYmQzZTY0NzI4ODYy
MjA4ZjJiMzA2MDFlNDYyNGM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3JDb21tb24uY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yQ29tbW9uLmNzcwpAQCAtNzgsMTAgKzc4LDYgQEAgaWZy
YW1lLnZpZXcgewogICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogfQogCi0udGltZWxpbmUgLnJl
c291cmNlcy1ldmVudC1kaXZpZGVycyB7Ci0gICAgaGVpZ2h0OiAxOXB4OwotfQotCiAucmVzb3Vy
Y2VzLWRpdmlkZXJzLWxhYmVsLWJhciB7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgIHRv
cDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdGlt
ZWxpbmVQYW5lbC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RpbWVs
aW5lUGFuZWwuY3NzCmluZGV4IDQzOTBmZjBhNDQxMDlmNWNjOWYzYzc0YTQwMDVjNWUzMWVkNjhj
YzkuLjJkZGJkY2RkZmNmYzYwNmU5NDZlMGFiNmU3YTJhZmViNmUwNjM2NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdGltZWxpbmVQYW5lbC5jc3MKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90aW1lbGluZVBhbmVsLmNzcwpA
QCAtNzIsMTYgKzcyLDcgQEAKICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2IoMTYzLCAx
NjMsIDE2Myk7CiB9CiAKLS50aW1lbGluZS1zdGFydC1hdC16ZXJvICN0aW1lbGluZS1vdmVydmll
dy1zaWRlYmFyIHsKLSAgICBkaXNwbGF5OiBub25lOwotfQotCiAjdGltZWxpbmUtb3ZlcnZpZXct
Z3JpZCB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMHB4OwotICAgIGJvdHRv
bTogMHB4OwotICAgIGxlZnQ6IDIwMHB4OwotICAgIHJpZ2h0OiAwcHg7CiAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOwogfQogCkBAIC01OTMsMTAgKzU4NCw2IEBACiAg
ICAgZm9udC1zaXplOiAxMXB4OwogfQogCi0udGltZWxpbmUtb3ZlcnZpZXctc3RhcnQtYXQtemVy
byB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Ci19Ci0KICNjb3VudGVyLXZhbHVlcy1i
YXIgewogICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGdyYXk7CiAgICAgbWluLWhl
aWdodDogMTVweDsKQEAgLTY0NCwzICs2MzEsMTkgQEAKICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0
LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2IoMjEzLCAxODUsIDIzNiksIHJnYigxMzcsIDYyLCAy
MDApKTsKICAgICBib3JkZXI6IHNvbGlkIDFweCByZ2IoMTMwLCA1OSwgMTkwKTsKIH0KKworLnRp
bWVsaW5lIC5yZXNvdXJjZXMtZXZlbnQtZGl2aWRlciB7CisgICAgaGVpZ2h0OiAxOXB4OworICAg
IGJvdHRvbTogYXV0bzsKK30KKworLnRpbWVsaW5lLnRpbWVsaW5lLXN0YXJ0LWF0LXplcm8gLnJl
c291cmNlcy1kaXZpZGVyIHsKKyAgICBoZWlnaHQ6IDE5cHg7CisgICAgYm90dG9tOiBhdXRvOwor
fQorCisudGltZWxpbmUgLnJlc291cmNlcy1ldmVudC1kaXZpZGVyLnRpbWVsaW5lLWZyYW1lLWRp
dmlkZXIgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAxODUsIDIwMCwgMC44KTsK
KyAgICBoZWlnaHQ6IDEwMCU7Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYldpZGdldC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
V2lkZ2V0LmgKaW5kZXggNThmM2ZhMTY5NWY4Y2UzNjIyZDY3ZmNjNWNmNmM1NTQwOWQ3ZmJiMi4u
M2YwZTIyMjY2YjY1OTg0NTQzOTE5NDY2ZWM2MTg2ZDdjYTFhYjI1NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKQEAgLTc4LDYgKzc4LDExIEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgd2lsbEV4aXRGdWxsU2NyZWVuKCkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGRpZEV4aXRGdWxsU2NyZWVuKCkgeyB9CiAKKyAgICAvLyBDYWxsZWQgdG8gZ3JvdXAgYWN0
aW9ucyBwZXJmb3JtZWQgZHVyaW5nIGFuaW1hdGlvbi91cGRhdGUgY3ljbGUsCisgICAgLy8gZS5n
LiBhbmltYXRlKCkvbGF5b3V0KCkvcGFpbnQoKS9jb21wb3NpdGUoKS4gUHJpbWlhcmlseSBmb3Ig
aW5zdHJ1bWVudGF0aW9uLgorICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVnaW5VcGRhdGUoKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kVXBkYXRlKCkgeyB9CisKICAgICAvLyBDYWxsZWQgdG8g
dXBkYXRlIGltcGVyYXRpdmUgYW5pbWF0aW9uIHN0YXRlLiBUaGlzIHNob3VsZCBiZSBjYWxsZWQg
YmVmb3JlCiAgICAgLy8gcGFpbnQsIGFsdGhvdWdoIHRoZSBjbGllbnQgY2FuIHJhdGUtbGltaXQg
dGhlc2UgY2FsbHMuIFdoZW4KICAgICAvLyBmcmFtZUJlZ2luVGltZSBpcyAwLjAsIHRoZSBXZWJX
aWRnZXQgd2lsbCBkZXRlcm1pbmUgdGhlIGZyYW1lIGJlZ2luIHRpbWUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAppbmRleCA1MmVi
Mzc0MDBmNGU2OTdjNDUwZGJmMzA4YjY4YmI5Y2EzYzA4N2ZiLi41NTM1YzkzNzRkZDY1N2NhY2E2
MTE1N2IxZmViZWQ2NzIxNGRkNDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC0yMzEsNiArMjMxLDI2IEBAIHZvaWQg
V2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpZENsZWFyV2luZG93T2JqZWN0KFdlYkZyYW1lSW1wbCog
d2ViZnJhbWUpCiAgICAgICAgIHByb3h5LT5zZXRDb250ZXh0RGVidWdJZChtX2hvc3RJZCk7CiB9
CiAKK3ZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OndpbGxDb21wb3NlTGF5ZXJzKCkKK3sKKyAg
ICBpbnNwZWN0b3JDb250cm9sbGVyKCktPndpbGxDb21wb3NlTGF5ZXJzKCk7Cit9CisKK3ZvaWQg
V2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpZENvbXBvc2VMYXllcnMoKQoreworICAgIGluc3BlY3Rv
ckNvbnRyb2xsZXIoKS0+ZGlkQ29tcG9zZUxheWVycygpOworfQorCit2b2lkIFdlYkRldlRvb2xz
QWdlbnRJbXBsOjp3aWxsQmVnaW5GcmFtZVVwZGF0ZSgpCit7CisgICAgaW5zcGVjdG9yQ29udHJv
bGxlcigpLT53aWxsQmVnaW5GcmFtZVVwZGF0ZSgpOworfQorCit2b2lkIFdlYkRldlRvb2xzQWdl
bnRJbXBsOjpkaWRFbmRGcmFtZVVwZGF0ZSgpCit7CisgICAgaW5zcGVjdG9yQ29udHJvbGxlcigp
LT5kaWRFbmRGcmFtZVVwZGF0ZSgpOworfQorCiB2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpk
aXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCiB7CiAg
ICAgaW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQobWVz
c2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29s
c0FnZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2Vu
dEltcGwuaAppbmRleCA2NmZkNmM2ZWVhNjg4YjAzOGRlNzI0NzdhM2IxOWM1YjUxNWE3YjUxLi5k
MWVjMDgxZjU0NzZkMzdiNzc2Mzk1OGFjNzI4ZjMxMGM5NWJlOTY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKQEAgLTY5LDYgKzY5
LDEwIEBAIHB1YmxpYzoKIAogICAgIC8vIFdlYkRldlRvb2xzQWdlbnRQcml2YXRlIGltcGxlbWVu
dGF0aW9uLgogICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhcldpbmRvd09iamVjdChXZWJGcmFtZUlt
cGwqIGZyYW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2luRnJhbWVVcGRhdGUoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkRW5kRnJhbWVVcGRhdGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2ls
bENvbXBvc2VMYXllcnMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcG9zZUxheWVycygpOwog
CiAgICAgLy8gV2ViRGV2VG9vbHNBZ2VudCBpbXBsZW1lbnRhdGlvbi4KICAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJE
ZXZUb29sc0FnZW50UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2
VG9vbHNBZ2VudFByaXZhdGUuaAppbmRleCA3MDM4YTVlNWNiODMyZGUwMDlhYTdhOGM2ZjcyZmNh
YzQwZTc4NWEzLi44ZjdjZjk2MGIwNjQyM2E5M2ExODZmMjFjM2M1MDk3MGM2NjNmMzlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50UHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRQcml2
YXRlLmgKQEAgLTQzLDYgKzQzLDEwIEBAIHB1YmxpYzoKICAgICAvLyBUaGUgd2luZG93IG9iamVj
dCBmb3IgdGhlIGZyYW1lIGhhcyBiZWVuIGNsZWFyZWQgb2YgYW55IGV4dHJhIHByb3BlcnRpZXMK
ICAgICAvLyB0aGF0IG1heSBoYXZlIGJlZW4gc2V0IGJ5IHNjcmlwdCBmcm9tIHRoZSBwcmV2aW91
c2x5IGxvYWRlZCBkb2N1bWVudC4KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYXJXaW5kb3dPYmpl
Y3QoV2ViRnJhbWVJbXBsKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVnaW5GcmFtZVVw
ZGF0ZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kRnJhbWVVcGRhdGUoKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHdpbGxDb21wb3NlTGF5ZXJzKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRDb21wb3NlTGF5ZXJzKCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYzZiMmQ5OTAz
NzBjMzJkMjZkYTBkZDM1MGI1NDE4NTliY2FlZTg0My4uN2FhMjljYTExNzc4Y2QyZGQ3MzgxY2Ez
OGFmNjc4MmFiZWVjZGE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcApAQCAtMTI2Niw2ICsxMjY2LDE4IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpZEV4aXRG
dWxsU2NyZWVuKCkKICNlbmRpZgogfQogCit2b2lkIFdlYlZpZXdJbXBsOjp3aWxsQmVnaW5VcGRh
dGUoKQoreworICAgIGlmIChtX2RldlRvb2xzQWdlbnQpCisgICAgICAgIG1fZGV2VG9vbHNBZ2Vu
dC0+d2lsbEJlZ2luRnJhbWVVcGRhdGUoKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZGlkRW5k
VXBkYXRlKCkKK3sKKyAgICBpZiAobV9kZXZUb29sc0FnZW50KQorICAgICAgICBtX2RldlRvb2xz
QWdlbnQtPmRpZEVuZEZyYW1lVXBkYXRlKCk7Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OmFuaW1h
dGUoZG91YmxlIGZyYW1lQmVnaW5UaW1lKQogewogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRSkKQEAgLTE0MDYsNyArMTQxOCwxMSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjb21wb3Np
dGUoYm9vbCkKICAgICAgICAgaWYgKG1fcGFnZU92ZXJsYXlzKQogICAgICAgICAgICAgbV9wYWdl
T3ZlcmxheXMtPnVwZGF0ZSgpOwogCisgICAgICAgIGlmIChtX2RldlRvb2xzQWdlbnQpCisgICAg
ICAgICAgICBtX2RldlRvb2xzQWdlbnQtPndpbGxDb21wb3NlTGF5ZXJzKCk7CiAgICAgICAgIG1f
bGF5ZXJUcmVlVmlldy5jb21wb3NpdGUoKTsKKyAgICAgICAgaWYgKG1fZGV2VG9vbHNBZ2VudCkK
KyAgICAgICAgICAgIG1fZGV2VG9vbHNBZ2VudC0+ZGlkQ29tcG9zZUxheWVycygpOwogICAgIH0K
ICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXgg
Y2JmMWE1M2UxYTlmODIyOWY1MDE2NDZmNTdmN2M1OWIzZjMyMmM3ZC4uZTA0OTJkMzhhZDA3OGI3
ZmYwNmQzZjYyZDM0YmE3M2I4N2Y3ZjU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCkBAIC0xMTMsNiArMTEzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBkaWRFbnRlckZ1bGxTY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEV4aXRGdWxsU2Ny
ZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxsU2NyZWVuKCk7CisgICAgdmlydHVh
bCB2b2lkIHdpbGxCZWdpblVwZGF0ZSgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRVcGRhdGUo
KTsKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZShkb3VibGUgZnJhbWVCZWdpblRpbWUpOwogICAg
IHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsgLy8gQWxzbyBpbXBsZW1lbnRzIENDTGF5ZXJUcmVlSG9z
dENsaWVudDo6bGF5b3V0KCkKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ2FudmFzKiwgY29u
c3QgV2ViUmVjdCYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129892</attachid>
            <date>2012-03-02 06:05:42 -0800</date>
            <delta_ts>2012-03-02 11:47:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80127-20120302180539.patch</filename>
            <type>text/plain</type>
            <size>43118</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjUyNjRiNDdlOWNkNTcx
OGExNzFjMDgyOTc0MGQwYTIxYWUzZTMwZC4uNGQyOTAwOTA0MDkyZGE3OTg5N2I2OTc1OTY3YzA5
YjQxZTgzNzk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTAzLTAyICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogYWRkIHRpbWVsaW5lIGluc3RydW1lbnRhdGlvbiBmb3IgZnJhbWUgZXZlbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDEyNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cjo6d2lsbENvbXBvc2VMYXllcnMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRDb21wb3NlTGF5ZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxCZWdpbkZyYW1lVXBkYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEVuZEZyYW1lVXBkYXRlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAoSW5zcGVj
dG9yQ29udHJvbGxlcik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwOgorICAgICAgICAoVGltZWxpbmVSZWNvcmRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxCZWdpbkZyYW1lVXBkYXRlKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlk
RW5kRnJhbWVVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6d2lsbENvbXBvc2VMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkQ29tcG9zZUxheWVycyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qczoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUuX3Nob3dNZW1vcnlHcmFwaCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlLnNldFN0YXJ0QXRa
ZXJvKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5
cGUudXBkYXRlRXZlbnREaXZpZGVycyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVP
dmVydmlld1BhbmUucHJvdG90eXBlLnNpZGViYXJSZXNpemVkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5hY2NlcHQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5fb25XaW5kb3dD
aGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVN0YXJ0QXRaZXJvT3ZlcnZp
ZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lU3RhcnRBdFplcm9PdmVydmlldy5w
cm90b3R5cGUucmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lU3RhcnRBdFpl
cm9PdmVydmlldy5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZVN0YXJ0QXRaZXJvT3ZlcnZpZXcucHJvdG90eXBlLl9idWlsZEJhcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVTdGFydEF0WmVyb092ZXJ2aWV3LnByb3RvdHlwZS5nZXRXaW5k
b3dUaW1lcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl91cGRhdGVF
dmVudERpdmlkZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3Rv
dHlwZS5fY3JlYXRlRXZlbnREaXZpZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLnByb3RvdHlwZS5fdG9nZ2xlU3RhcnRBdFplcm9CdXR0b25DbGlja2VkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5faW5uZXJBZGRSZWNvcmRU
b1RpbWVsaW5lLmFkZFRpbWVzdGFtcFJlY29yZHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUGFuZWwucHJvdG90eXBlLl9pbm5lckFkZFJlY29yZFRvVGltZWxpbmUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9yZWZyZXNoKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5RmlsdGVyLnByb3RvdHlwZS5hY2NlcHQp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnBy
b3RvdHlwZS5nZXQgX3JlY29yZFN0eWxlcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3JDb21tb24uY3NzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvdGlt
ZWxpbmVQYW5lbC5jc3M6CisgICAgICAgICgudGltZWxpbmUgLnJlc291cmNlcy1ldmVudC1kaXZp
ZGVyKToKKyAgICAgICAgKC50aW1lbGluZS50aW1lbGluZS1zdGFydC1hdC16ZXJvIC5yZXNvdXJj
ZXMtZGl2aWRlcik6CisgICAgICAgICgudGltZWxpbmUgLnJlc291cmNlcy1ldmVudC1kaXZpZGVy
LnRpbWVsaW5lLWZyYW1lLWRpdmlkZXIpOgorCiAyMDEyLTAzLTAxICBWc2V2b2xvZCBWbGFzb3Yg
IDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtJbnNwZWN0
b3JJbmRleGVkREJdIFNob3cgbWVhbmluZ2Z1bCBkZXNjcmlwdGlvbiBmb3Igb2JqZWN0IHN0b3Jl
IGl0ZW1zIHZhbHVlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYThkN2U4OTgzOGI1
Nzk0NTRkOGQwYTAwZjdhMjNkODBmMjM0ZTI1ZC4uMmVjNjEyN2MyOGIxMDg2YWZkZTM4OTg1NzM0
MjJlNjQ1MmJhYmY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBA
QAorMjAxMi0wMy0wMiAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCB0aW1lbGluZSBpbnN0cnVtZW50YXRpb24gZm9yIGZy
YW1lIGV2ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODAxMjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAtIGV4cG9zZSBhbiBpbnN0cnVtZW50YXRpb24gaW50ZXJmYWNlIGZyb20gV2ViV2lkZ2V0IHRv
IG1hcmsgZnJhbWUgdXBkYXRlIHN0YXJ0L3N0b3AgZXZlbnRzOworICAgICAgICAtIHJlcG9ydCBm
cmFtZSBjb21wb3NpdGluZyBldmVudHMgdG8gRGV2VG9vbHMgYWdlbnQgZnJvbSBXZWJWaWV3CisK
KyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0Lmg6CisgICAgICAgIChXZWJXaWRnZXQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6OndpbGxCZWdpblVwZGF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYldpZGdldDo6ZGlkRW5kVXBkYXRlKToKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNB
Z2VudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZUb29sc0FnZW50SW1wbDo6d2ls
bENvbXBvc2VMYXllcnMpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
RGV2VG9vbHNBZ2VudEltcGw6OmRpZENvbXBvc2VMYXllcnMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJEZXZUb29sc0FnZW50SW1wbDo6d2lsbEJlZ2luRnJhbWVVcGRhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJEZXZUb29sc0FnZW50SW1wbDo6ZGlkRW5kRnJhbWVVcGRhdGUpOgorICAgICAgICAq
IHNyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oOgorICAgICAgICAoV2ViRGV2VG9vbHNBZ2VudElt
cGwpOgorICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50UHJpdmF0ZS5oOgorICAgICAgICAo
V2ViRGV2VG9vbHNBZ2VudFByaXZhdGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aWxsQmVnaW5VcGRhdGUpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRpZEVuZFVwZGF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjb21wb3NpdGUpOgorICAgICAgICAqIHNy
Yy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViVmlld0ltcGwpOgorCiAyMDEyLTAzLTAxICBE
YW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0g
TWFrZSBvcGFxdWUgcGFpbnQgdHJhY2tlciBhd2FyZSBvZiBTa0NhbnZhcyBsYXllcnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBj
MDg3MjFkOWIzZWQ5Mzg5ZTA3MzU3OTMwZTkxMDk0YmU5ZTAzZWU1Li44ZjBhYjQxZjNiNzNiMTI5
M2FmYzJhOTgxNWQwM2Y5YTVjYTc5ZjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xOTksNiArMTk5LDMwIEBAIHZvaWQgSW5z
cGVjdG9yQ29udHJvbGxlcjo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkKEZyYW1lKiBmcmFt
ZSwgRE9NV3JhcHBlcldvCiAgICAgICAgIG1faW5zcGVjdG9yRnJvbnRlbmRDbGllbnQtPndpbmRv
d09iamVjdENsZWFyZWQoKTsKIH0KIAordm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsQmVn
aW5Db21wb3NpdGluZygpCit7CisgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVs
aW5lQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQo
KSkKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbEJlZ2luQ29tcG9zaXRpbmcoKTsKK30KKwor
dm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRFbmRDb21wb3NpdGluZygpCit7CisgICAgaWYg
KEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBtX2luc3RydW1lbnRpbmdB
Z2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+
ZGlkRW5kQ29tcG9zaXRpbmcoKTsKK30KKwordm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxs
QmVnaW5GcmFtZVVwZGF0ZSgpCit7CisgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRp
bWVsaW5lQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdl
bnQoKSkKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbEJlZ2luRnJhbWVVcGRhdGUoKTsKK30K
Kwordm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRFbmRGcmFtZVVwZGF0ZSgpCit7CisgICAg
aWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBtX2luc3RydW1lbnRp
bmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKKyAgICAgICAgdGltZWxpbmVBZ2Vu
dC0+ZGlkRW5kRnJhbWVVcGRhdGUoKTsKK30KKwogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpj
b25uZWN0RnJvbnRlbmQoKQogewogICAgIG1faW5zcGVjdG9yRnJvbnRlbmQgPSBhZG9wdFB0cihu
ZXcgSW5zcGVjdG9yRnJvbnRlbmQobV9pbnNwZWN0b3JDbGllbnQpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDVlZTIzMzBlMWM2NWIy
NDUyMzRjYzRlODI3ZjkyNDIyZjk0YWFhZDYuLjg4YWJhOTE0MTllN2VkYjlhNjNiZjg0MzNhMzNl
OGY4ZmYyMWU0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuaApAQCAtODAsNiArODAsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQoUGFzc093blB0cjxJbnNwZWN0b3JGcm9udGVuZENsaWVudD4pOwog
ICAgIGJvb2wgaGFzSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoKSBjb25zdDsKICAgICB2b2lkIGRp
ZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZChGcmFtZSosIERPTVdyYXBwZXJXb3JsZCopOworICAg
IHZvaWQgd2lsbEJlZ2luRnJhbWVVcGRhdGUoKTsKKyAgICB2b2lkIGRpZEVuZEZyYW1lVXBkYXRl
KCk7CisgICAgdm9pZCB3aWxsQmVnaW5Db21wb3NpdGluZygpOworICAgIHZvaWQgZGlkRW5kQ29t
cG9zaXRpbmcoKTsKKwogICAgIHZvaWQgc2V0SW5qZWN0ZWRTY3JpcHRGb3JPcmlnaW4oY29uc3Qg
U3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgc291cmNlKTsKIAogICAgIHZvaWQgZGlzcGF0
Y2hNZXNzYWdlRnJvbUZyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXgg
ZWQ3ZDE0M2Q1ZjYyN2Y4MTExN2Q2M2E1ODk5NzE5OGU4MjAxMzZmZC4uNjNjZTIwOTg4Y2RhMjgx
MjRlMDgzMDJkNWZhOWQ0YmQxZjRlMDAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtNjAsNiArNjAsOSBAQCBzdGF0
aWMgY29uc3QgY2hhciBFdmVudERpc3BhdGNoW10gPSAiRXZlbnREaXNwYXRjaCI7CiBzdGF0aWMg
Y29uc3QgY2hhciBMYXlvdXRbXSA9ICJMYXlvdXQiOwogc3RhdGljIGNvbnN0IGNoYXIgUmVjYWxj
dWxhdGVTdHlsZXNbXSA9ICJSZWNhbGN1bGF0ZVN0eWxlcyI7CiBzdGF0aWMgY29uc3QgY2hhciBQ
YWludFtdID0gIlBhaW50IjsKK3N0YXRpYyBjb25zdCBjaGFyIEZyYW1lVXBkYXRlW10gPSAiRnJh
bWVVcGRhdGUiOworc3RhdGljIGNvbnN0IGNoYXIgTGF5ZXJzQ29tcG9zaXRpbmdbXSA9ICJMYXll
cnNDb21wb3NpdGluZyI7CisKIHN0YXRpYyBjb25zdCBjaGFyIFBhcnNlSFRNTFtdID0gIlBhcnNl
SFRNTCI7CiAKIHN0YXRpYyBjb25zdCBjaGFyIFRpbWVySW5zdGFsbFtdID0gIlRpbWVySW5zdGFs
bCI7CkBAIC0xNzAsNiArMTczLDI1IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c2V0
SW5jbHVkZU1lbW9yeURldGFpbHMoRXJyb3JTdHJpbmcqLCBib29sIHZhbHVlKQogICAgIG1fc3Rh
dGUtPnNldEJvb2xlYW4oVGltZWxpbmVBZ2VudFN0YXRlOjppbmNsdWRlTWVtb3J5RGV0YWlscywg
dmFsdWUpOwogfQogCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxCZWdpbkZyYW1l
VXBkYXRlKCkKK3sKKyAgICBhcHBlbmRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwg
VGltZWxpbmVSZWNvcmRUeXBlOjpGcmFtZVVwZGF0ZSwgdHJ1ZSk7Cit9CisKK3ZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6ZGlkRW5kRnJhbWVVcGRhdGUoKQoreworfQorCit2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxCZWdpbkNvbXBvc2l0aW5nKCkKK3sKKyAgICBwdXNoQ3Vy
cmVudFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6
OkxheWVyc0NvbXBvc2l0aW5nLCB0cnVlKTsKK30KKwordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRFbmRDb21wb3NpdGluZygpCit7CisgICAgZGlkQ29tcGxldGVDdXJyZW50UmVjb3Jk
KFRpbWVsaW5lUmVjb3JkVHlwZTo6TGF5ZXJzQ29tcG9zaXRpbmcpOworfQorCiB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxDYWxsRnVuY3Rpb24oY29uc3QgU3RyaW5nJiBzY3JpcHRO
YW1lLCBpbnQgc2NyaXB0TGluZSkKIHsKICAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEoc2NyaXB0TmFtZSwgc2NyaXB0TGlu
ZSksIFRpbWVsaW5lUmVjb3JkVHlwZTo6RnVuY3Rpb25DYWxsLCB0cnVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IGU4YzM0
ODY5YTdiYTZiYzVkZDZkMzgyYjk3YTc1ODM2ZGZkYWYxZmIuLjViMjZlZGEwMzY1NWVmOGUzYTJl
MzI4ZTY0NjE2M2Q0N2Q2OWFiZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtNzUsNiArNzUsMTIgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBkaWRDb21taXRMb2FkKCk7CiAKKyAgICB2b2lkIHdpbGxCZWdpbkZyYW1lVXBkYXRl
KCk7CisgICAgdm9pZCBkaWRFbmRGcmFtZVVwZGF0ZSgpOworCisgICAgdm9pZCB3aWxsQmVnaW5D
b21wb3NpdGluZygpOworICAgIHZvaWQgZGlkRW5kQ29tcG9zaXRpbmcoKTsKKwogICAgIC8vIE1l
dGhvZHMgY2FsbGVkIGZyb20gV2ViQ29yZS4KICAgICB2b2lkIHdpbGxDYWxsRnVuY3Rpb24oY29u
c3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7CiAgICAgdm9pZCBkaWRDYWxs
RnVuY3Rpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGltZWxpbmVNb2RlbC5qcwppbmRleCBmYTY2ZDYzMjQ5ODhjZWVkMzcyZWFiMWY4NWIyODBlZDE1
YzQyZTBkLi5hZTcwNTA3MDJkZTRjOWIxZDU3Y2NmZTdkNjAyNDQwZTgxNTFlNTY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpz
CkBAIC00MywxMSArNDMsMTQgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwgPSBmdW5jdGlv
bigpCiBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlID0gewogICAgIFJvb3Q6
ICJSb290IiwKICAgICBFdmVudERpc3BhdGNoOiAiRXZlbnREaXNwYXRjaCIsCisKKyAgICBGcmFt
ZVVwZGF0ZTogIkZyYW1lVXBkYXRlIiwKICAgICBMYXlvdXQ6ICJMYXlvdXQiLAogICAgIFJlY2Fs
Y3VsYXRlU3R5bGVzOiAiUmVjYWxjdWxhdGVTdHlsZXMiLAogICAgIFBhaW50OiAiUGFpbnQiLAot
ICAgIFBhcnNlSFRNTDogIlBhcnNlSFRNTCIsCisgICAgTGF5ZXJzQ29tcG9zaXRpbmc6ICJMYXll
cnNDb21wb3NpdGluZyIsCiAKKyAgICBQYXJzZUhUTUw6ICJQYXJzZUhUTUwiLAogCiAgICAgVGlt
ZXJJbnN0YWxsOiAiVGltZXJJbnN0YWxsIiwKICAgICBUaW1lclJlbW92ZTogIlRpbWVyUmVtb3Zl
IiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVPdmVydmlld1BhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lT3ZlcnZpZXdQYW5lLmpzCmluZGV4IGFlZTUxYjczM2QyZDgzNmQwZmQ4YWRlYzYyYWUx
MDk0MDEyOGQ4OTEuLjYzNmE1ZjJmZGZlN2NjZjllNWNiYTMwM2I5MWMyMmUwMWEyMzQ0NmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVy
dmlld1BhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZU92ZXJ2aWV3UGFuZS5qcwpAQCAtMzYsMTggKzM2LDE0IEBACiBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVPdmVydmlld1BhbmUgPSBmdW5jdGlvbihwcmVzZW50YXRpb25Nb2RlbCkKIHsKICAgICB0
aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlzLmVs
ZW1lbnQuY2xhc3NOYW1lID0gImZpbGwiOworICAgIHRoaXMuZWxlbWVudC5pZCA9ICJ0aW1lbGlu
ZS1vdmVydmlldy1wYW5lbCI7CiAKICAgICB0aGlzLl9zdGFydEF0WmVybyA9IGZhbHNlOwotICAg
IHRoaXMuX3RvcExldmVsUmVjb3JkSW5kZXggPSAwOwotICAgIHRoaXMuX3dpbmRvd0luZGV4TGVm
dCA9IDA7Ci0gICAgdGhpcy5fd2luZG93SW5kZXhSaWdodCA9IG51bGw7CisgICAgdGhpcy5fd2lu
ZG93U3RhcnRUaW1lID0gMDsKKyAgICB0aGlzLl93aW5kb3dFbmRUaW1lID0gbnVsbDsKIAogICAg
IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsID0gcHJlc2VudGF0aW9uTW9kZWw7CiAKLSAgICB0aGlz
LmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlzLmVsZW1l
bnQuaWQgPSAidGltZWxpbmUtb3ZlcnZpZXctcGFuZWwiOwotCiAgICAgdGhpcy5fdG9wUGFuZVNp
ZGViYXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy5f
dG9wUGFuZVNpZGViYXJFbGVtZW50LmlkID0gInRpbWVsaW5lLW92ZXJ2aWV3LXNpZGViYXIiOwog
CkBAIC02NiwxOCArNjIsMjMgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lID0g
ZnVuY3Rpb24ocHJlc2VudGF0aW9uTW9kZWwpCiAgICAgdG9wUGFuZVNpZGViYXJUcmVlLmFwcGVu
ZENoaWxkKHRoaXMuX21lbW9yeU92ZXJ2aWV3SXRlbSk7CiAgICAgdGhpcy5fbWVtb3J5T3ZlcnZp
ZXdJdGVtLm9uc2VsZWN0ID0gdGhpcy5fc2hvd01lbW9yeUdyYXBoLmJpbmQodGhpcyk7CiAKKyAg
ICB0aGlzLl9vdmVydmlld0NvbnRhaW5lciA9IHRoaXMuZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2
IiwgImZpbGwiKTsKKyAgICB0aGlzLl9vdmVydmlld0NvbnRhaW5lci5pZCA9ICJ0aW1lbGluZS1v
dmVydmlldy1jb250YWluZXIiOworCiAgICAgdGhpcy5fb3ZlcnZpZXdHcmlkID0gbmV3IFdlYklu
c3BlY3Rvci5UaW1lbGluZUdyaWQoKTsKICAgICB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5p
ZCA9ICJ0aW1lbGluZS1vdmVydmlldy1ncmlkIjsKICAgICB0aGlzLl9vdmVydmlld0dyaWQuaXRl
bXNHcmFwaHNFbGVtZW50LmlkID0gInRpbWVsaW5lLW92ZXJ2aWV3LXRpbWVsaW5lcyI7CiAKKyAg
ICB0aGlzLl9vdmVydmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLl9vdmVydmlld0dyaWQu
ZWxlbWVudCk7CisKICAgICB0aGlzLl9oZWFwR3JhcGggPSBuZXcgV2ViSW5zcGVjdG9yLkhlYXBH
cmFwaCgpOwogICAgIHRoaXMuX2hlYXBHcmFwaC5lbGVtZW50LmlkID0gInRpbWVsaW5lLW92ZXJ2
aWV3LW1lbW9yeSI7CiAgICAgdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQuaW5zZXJ0QmVmb3Jl
KHRoaXMuX2hlYXBHcmFwaC5lbGVtZW50LCB0aGlzLl9vdmVydmlld0dyaWQuaXRlbXNHcmFwaHNF
bGVtZW50KTsKIAotICAgIHRoaXMuX292ZXJ2aWV3V2luZG93ID0gbmV3IFdlYkluc3BlY3Rvci5U
aW1lbGluZU92ZXJ2aWV3V2luZG93KHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50KTsKLSAgICB0
aGlzLl9vdmVydmlld1dpbmRvdy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZU92ZXJ2aWV3V2luZG93LkV2ZW50cy5XaW5kb3dDaGFuZ2VkLCB0aGlzLl9maXJlV2luZG93Q2hh
bmdlZCwgdGhpcyk7CisgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3cgPSBuZXcgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3codGhpcy5fb3ZlcnZpZXdDb250YWluZXIpOworICAgIHRo
aXMuX292ZXJ2aWV3V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
T3ZlcnZpZXdXaW5kb3cuRXZlbnRzLldpbmRvd0NoYW5nZWQsIHRoaXMuX29uV2luZG93Q2hhbmdl
ZCwgdGhpcyk7CiAKLSAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fb3ZlcnZpZXdH
cmlkLmVsZW1lbnQpOworICAgIHRoaXMuX292ZXJ2aWV3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRo
aXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50KTsKIAogICAgIHZhciBzZXBhcmF0b3JFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgc2VwYXJhdG9yRWxlbWVudC5pZCA9
ICJ0aW1lbGluZS1vdmVydmlldy1zZXBhcmF0b3IiOwpAQCAtOTQsNyArOTUsNiBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUgPSBmdW5jdGlvbihwcmVzZW50YXRpb25Nb2RlbCkK
ICAgICB9CiAKICAgICB0aGlzLl9vdmVydmlld0dyaWQuc2V0U2Nyb2xsQW5kRGl2aWRlclRvcCgw
LCAwKTsKLQogICAgIHRoaXMuX292ZXJ2aWV3Q2FsY3VsYXRvciA9IG5ldyBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVPdmVydmlld0NhbGN1bGF0b3IoKTsKIH0KIApAQCAtMTI3LDcgKzEyNyw3IEBAIFdl
Ykluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAgICAgewogICAg
ICAgICB0aGlzLl9tZW1vcnlPdmVydmlld0l0ZW0ucmV2ZWFsQW5kU2VsZWN0KGZhbHNlKTsKICAg
ICAgICAgdGhpcy5faGVhcEdyYXBoLnNob3coKTsKLSAgICAgICAgdGhpcy5faGVhcEdyYXBoLnVw
ZGF0ZSh0aGlzLl9yZWNvcmRzKTsKKyAgICAgICAgdGhpcy5faGVhcEdyYXBoLnVwZGF0ZSh0aGlz
Ll9wcmVzZW50YXRpb25Nb2RlbC5yb290UmVjb3JkKCkuY2hpbGRyZW4pOwogICAgICAgICB0aGlz
Ll9vdmVydmlld0dyaWQuaXRlbXNHcmFwaHNFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIp
OwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVPdmVydmlld1BhbmUuRXZlbnRzLk1vZGVDaGFuZ2VkLCBXZWJJbnNwZWN0b3IuVGltZWxp
bmVPdmVydmlld1BhbmUuTW9kZS5NZW1vcnkpOwogICAgIH0sCkBAIC0xNDMsMTIgKzE0MywxMCBA
QCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlID0gewogICAgICAg
ICBpZiAoZW5hYmxlZCkgewogICAgICAgICAgICAgaWYgKHRoaXMuX2hlYXBHcmFwaC52aXNpYmxl
KQogICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dUaW1lbGluZXMoKTsKLSAgICAgICAgICAgIHRo
aXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ0aW1lbGluZS1zdGFydC1hdC16ZXJvIik7Ci0gICAg
ICAgICAgICB0aGlzLl9zdGFydEF0WmVyb092ZXJ2aWV3ID0gbmV3IFdlYkluc3BlY3Rvci5UaW1l
bGluZVN0YXJ0QXRaZXJvT3ZlcnZpZXcodGhpcyk7Ci0gICAgICAgICAgICB0aGlzLl9zdGFydEF0
WmVyb092ZXJ2aWV3LnNob3codGhpcy5lbGVtZW50KTsKLSAgICAgICAgICAgIHRoaXMuX3N0YXJ0
QXRaZXJvT3ZlcnZpZXcudXBkYXRlKHRoaXMuX3JlY29yZHMpOworICAgICAgICAgICAgdGhpcy5f
c3RhcnRBdFplcm9PdmVydmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVTdGFydEF0WmVy
b092ZXJ2aWV3KCk7CisgICAgICAgICAgICB0aGlzLl9zdGFydEF0WmVyb092ZXJ2aWV3LnNob3co
dGhpcy5fb3ZlcnZpZXdDb250YWluZXIpOworICAgICAgICAgICAgdGhpcy5fc3RhcnRBdFplcm9P
dmVydmlldy51cGRhdGUodGhpcy5fcHJlc2VudGF0aW9uTW9kZWwucm9vdFJlY29yZCgpLmNoaWxk
cmVuKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVT
dHlsZUNsYXNzKCJ0aW1lbGluZS1zdGFydC1hdC16ZXJvIik7CiAgICAgICAgICAgICB0aGlzLl9z
dGFydEF0WmVyb092ZXJ2aWV3LmRldGFjaCgpOwogICAgICAgICAgICAgdGhpcy5fc3RhcnRBdFpl
cm9PdmVydmlldyA9IG51bGw7CiAgICAgICAgICAgICB0aGlzLl9zaG93VGltZWxpbmVzKCk7CkBA
IC0xNjEsMTAgKzE1OSw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2NhdGVnb3J5R3JhcGhzW2NhdGVnb3J5Lm5hbWVdLmRp
bW1lZCA9IGNhdGVnb3J5LmhpZGRlbjsKICAgICB9LAogCi0gICAgdXBkYXRlOiBmdW5jdGlvbihy
ZWNvcmRzLCBzaG93U2hvcnRFdmVudHMpCisgICAgdXBkYXRlOiBmdW5jdGlvbihzaG93U2hvcnRF
dmVudHMpCiAgICAgewotICAgICAgICB0aGlzLl90b3BMZXZlbFJlY29yZEluZGV4ID0gMDsKLSAg
ICAgICAgdGhpcy5fcmVjb3JkcyA9IHJlY29yZHM7CiAgICAgICAgIHRoaXMuX3Nob3dTaG9ydEV2
ZW50cyA9IHNob3dTaG9ydEV2ZW50czsKICAgICAgICAgLy8gQ2xlYXIgc3VtbWFyeSBiYXJzLgog
ICAgICAgICB2YXIgdGltZWxpbmVzID0ge307CkBAIC0xNzUsMTMgKzE3MSwxNCBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlID0gewogCiAgICAgICAgIC8vIENy
ZWF0ZSBzcGFyc2UgYXJyYXlzIHdpdGggMTAxIGNlbGxzIGVhY2ggdG8gZmlsbCB3aXRoIGNodW5r
cyBmb3IgYSBnaXZlbiBjYXRlZ29yeS4KICAgICAgICAgdGhpcy5fb3ZlcnZpZXdDYWxjdWxhdG9y
LnJlc2V0KCk7Ci0gICAgICAgIAorCiAgICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUJvdW5kYXJpZXMo
cmVjb3JkKQogICAgICAgICB7CiAgICAgICAgICAgICB0aGlzLl9vdmVydmlld0NhbGN1bGF0b3Iu
dXBkYXRlQm91bmRhcmllcyhyZWNvcmQpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICB9CiAgICAgICAgIAorICAgICAgICB2YXIgcmVjb3JkcyA9IHRoaXMuX3ByZXNlbnRhdGlv
bk1vZGVsLnJvb3RSZWNvcmQoKS5jaGlsZHJlbjsKICAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUGFuZWwuZm9yQWxsUmVjb3JkcyhyZWNvcmRzLCB1cGRhdGVCb3VuZGFyaWVzLmJpbmQodGhp
cykpOwogCiAgICAgICAgIGZ1bmN0aW9uIG1hcmtQZXJjZW50YWdlc0ZvclJlY29yZChyZWNvcmQp
CkBAIC0yMzMsNiArMjMwLDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGRpdmlkZXJzID0gW107CiAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHJlY29y
ZCA9IHJlY29yZHNbaV07CisgICAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuRnJhbWVVcGRhdGUpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgICAgICB2YXIgcG9zaXRpb25zID0gdGhpcy5fb3ZlcnZpZXdD
YWxjdWxhdG9yLmNvbXB1dGVCYXJHcmFwaFBlcmNlbnRhZ2VzKHJlY29yZCk7CiAgICAgICAgICAg
ICB2YXIgZGl2aWRlclBvc2l0aW9uID0gTWF0aC5yb3VuZChwb3NpdGlvbnMuc3RhcnQgKiAxMCk7
CiAgICAgICAgICAgICBpZiAoZGl2aWRlcnNbZGl2aWRlclBvc2l0aW9uXSkKQEAgLTI0NiwxMiAr
MjQ1LDE0IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7
CiAKICAgICBzaWRlYmFyUmVzaXplZDogZnVuY3Rpb24od2lkdGgpCiAgICAgewotICAgICAgICB0
aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5zdHlsZS5sZWZ0ID0gd2lkdGggKyAicHgiOworICAg
ICAgICB0aGlzLl9vdmVydmlld0NvbnRhaW5lci5zdHlsZS5sZWZ0ID0gd2lkdGggKyAicHgiOwog
ICAgICAgICB0aGlzLl90b3BQYW5lU2lkZWJhckVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aCAr
ICJweCI7CiAgICAgfSwKIAogICAgIHJlc2V0OiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICB0
aGlzLl93aW5kb3dTdGFydFRpbWUgPSAwOworICAgICAgICB0aGlzLl93aW5kb3dFbmRUaW1lID0g
bnVsbDsKICAgICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3cucmVzZXQoKTsKICAgICAgICAgdGhp
cy5fb3ZlcnZpZXdDYWxjdWxhdG9yLnJlc2V0KCk7CiAgICAgICAgIHRoaXMuX292ZXJ2aWV3R3Jp
ZC51cGRhdGVEaXZpZGVycyh0cnVlLCB0aGlzLl9vdmVydmlld0NhbGN1bGF0b3IpOwpAQCAtMjY5
LDI1ICsyNzAsMTcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlw
ZSA9IHsKICAgICAgKi8KICAgICBhY2NlcHQ6IGZ1bmN0aW9uKHJlY29yZCkKICAgICB7Ci0gICAg
ICAgIGlmICh0aGlzLl9zdGFydEF0WmVyb092ZXJ2aWV3KSB7Ci0gICAgICAgICAgICBpZiAocmVj
b3JkLnBhcmVudCA9PT0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwucm9vdFJlY29yZCgpKQotICAg
ICAgICAgICAgICAgICsrdGhpcy5fdG9wTGV2ZWxSZWNvcmRJbmRleDsKLSAgICAgICAgICAgIHJl
dHVybiB0aGlzLl90b3BMZXZlbFJlY29yZEluZGV4ID4gdGhpcy5fd2luZG93SW5kZXhMZWZ0ICYm
Ci0gICAgICAgICAgICAgICAgKHR5cGVvZiB0aGlzLl93aW5kb3dJbmRleFJpZ2h0ICE9PSAibnVt
YmVyIiB8fCB0aGlzLl90b3BMZXZlbFJlY29yZEluZGV4IDw9IHRoaXMuX3dpbmRvd0luZGV4Umln
aHQpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdmFyIGFic29sdXRlTWluID0gdGhp
cy5fcHJlc2VudGF0aW9uTW9kZWwubWluaW11bVJlY29yZFRpbWUoKTsKLSAgICAgICAgICAgIHZh
ciBhYnNvbHV0ZU1heCA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLm1heGltdW1SZWNvcmRUaW1l
KCk7Ci0gICAgICAgICAgICB2YXIgd2luZG93TGVmdCA9IGFic29sdXRlTWluICsgKGFic29sdXRl
TWF4IC0gYWJzb2x1dGVNaW4pICogdGhpcy53aW5kb3dMZWZ0KCk7Ci0gICAgICAgICAgICB2YXIg
d2luZG93UmlnaHQgPSBhYnNvbHV0ZU1pbiArIChhYnNvbHV0ZU1heCAtIGFic29sdXRlTWluKSAq
IHRoaXMud2luZG93UmlnaHQoKTsKLSAgICAgICAgICAgIHJldHVybiByZWNvcmQuZW5kVGltZSA+
PSB3aW5kb3dMZWZ0ICYmIHJlY29yZC5zdGFydFRpbWUgPD0gd2luZG93UmlnaHQ7Ci0gICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIHJlY29yZC5lbmRUaW1lID49IHRoaXMuX3dpbmRvd1N0YXJ0VGlt
ZSAmJiAodHlwZW9mIHRoaXMuX3dpbmRvd0VuZFRpbWUgIT09ICJudW1iZXIiIHx8IHJlY29yZC5z
dGFydFRpbWUgPD0gdGhpcy5fd2luZG93RW5kVGltZSk7CisgICAgfSwKKworICAgIHdpbmRvd1N0
YXJ0VGltZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3dpbmRvd1N0
YXJ0VGltZSB8fCB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5taW5pbXVtUmVjb3JkVGltZSgpOwog
ICAgIH0sCiAKLSAgICBfc2V0V2luZG93SW5kaWNlczogZnVuY3Rpb24oaW5kZXhMZWZ0LCBpbmRl
eFJpZ2h0KQorICAgIHdpbmRvd0VuZFRpbWU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRo
aXMuX3dpbmRvd0luZGV4TGVmdCA9IGluZGV4TGVmdDsKLSAgICAgICAgdGhpcy5fd2luZG93SW5k
ZXhSaWdodCA9IGluZGV4UmlnaHQ7Ci0gICAgICAgIHRoaXMuX2ZpcmVXaW5kb3dDaGFuZ2VkKCk7
CisgICAgICAgIHJldHVybiB0aGlzLl93aW5kb3dFbmRUaW1lIHx8IHRoaXMuX3ByZXNlbnRhdGlv
bk1vZGVsLm1heGltdW1SZWNvcmRUaW1lKCk7CiAgICAgfSwKIAogICAgIHdpbmRvd0xlZnQ6IGZ1
bmN0aW9uKCkKQEAgLTMwMCw4ICsyOTMsMTggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZp
ZXdQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJ2aWV3V2luZG93
LndpbmRvd1JpZ2h0OwogICAgIH0sCiAKLSAgICBfZmlyZVdpbmRvd0NoYW5nZWQ6IGZ1bmN0aW9u
KCkKKyAgICBfb25XaW5kb3dDaGFuZ2VkOiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICBpZiAo
dGhpcy5fc3RhcnRBdFplcm9PdmVydmlldykgeworICAgICAgICAgICAgdmFyIHRpbWVzID0gdGhp
cy5fc3RhcnRBdFplcm9PdmVydmlldy5nZXRXaW5kb3dUaW1lcyh0aGlzLndpbmRvd0xlZnQoKSwg
dGhpcy53aW5kb3dSaWdodCgpKTsKKyAgICAgICAgICAgIHRoaXMuX3dpbmRvd1N0YXJ0VGltZSA9
IHRpbWVzLnN0YXJ0VGltZTsKKyAgICAgICAgICAgIHRoaXMuX3dpbmRvd0VuZFRpbWUgPSB0aW1l
cy5lbmRUaW1lOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdmFyIGFic29sdXRlTWlu
ID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwubWluaW11bVJlY29yZFRpbWUoKTsKKyAgICAgICAg
ICAgIHZhciBhYnNvbHV0ZU1heCA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLm1heGltdW1SZWNv
cmRUaW1lKCk7CisgICAgICAgICAgICB0aGlzLl93aW5kb3dTdGFydFRpbWUgPSBhYnNvbHV0ZU1p
biArIChhYnNvbHV0ZU1heCAtIGFic29sdXRlTWluKSAqIHRoaXMud2luZG93TGVmdCgpOworICAg
ICAgICAgICAgdGhpcy5fd2luZG93RW5kVGltZSA9IGFic29sdXRlTWluICsgKGFic29sdXRlTWF4
IC0gYWJzb2x1dGVNaW4pICogdGhpcy53aW5kb3dSaWdodCgpOworICAgICAgICB9CiAgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2
aWV3UGFuZS5FdmVudHMuV2luZG93Q2hhbmdlZCk7CiAgICAgfQogfQpAQCAtNzYzLDU0ICs3NjYs
MTAyIEBAIFdlYkluc3BlY3Rvci5IZWFwR3JhcGgucHJvdG90eXBlID0gewogCiAvKioKICAqIEBj
b25zdHJ1Y3RvcgotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmV9
IHBhbmUKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuVmlld30KICAqLwotV2ViSW5zcGVjdG9y
LlRpbWVsaW5lU3RhcnRBdFplcm9PdmVydmlldyA9IGZ1bmN0aW9uKHBhbmUpIHsKK1dlYkluc3Bl
Y3Rvci5UaW1lbGluZVN0YXJ0QXRaZXJvT3ZlcnZpZXcgPSBmdW5jdGlvbigpIHsKICAgICBXZWJJ
bnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOwotICAgIHRoaXMuX3BhbmUgPSBwYW5lOwotICAgIHRo
aXMuZWxlbWVudC5jbGFzc05hbWUgPSAidGltZWxpbmUtb3ZlcnZpZXctc3RhcnQtYXQtemVybyBm
aWxsIjsKLSAgICB0aGlzLl9vdmVydmlld0VsZW1lbnQgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hp
bGQoImRpdiIsICJ0aW1lbGluZS1vdmVydmlldy1zdGFydC1hdC16ZXJvLWJhcnMgZmlsbCIpOwot
ICAgIHRoaXMuX292ZXJ2aWV3V2luZG93ID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2
aWV3V2luZG93KHRoaXMuZWxlbWVudCk7Ci0gICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1dpbmRvdy5FdmVudHMuV2lu
ZG93Q2hhbmdlZCwgdGhpcy5fb25XaW5kb3dDaGFuZ2VkLCB0aGlzKTsKLSAgICB0aGlzLl9yZWNv
cmRzUGVyQmFyID0gMTsKKyAgICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKKyAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gInRpbWVsaW5lLW92ZXJ2aWV3
LXN0YXJ0LWF0LXplcm8tYmFycyBmaWxsIjsKKyAgICB0aGlzLnJlc2V0KCk7CiB9CiAKIFdlYklu
c3BlY3Rvci5UaW1lbGluZVN0YXJ0QXRaZXJvT3ZlcnZpZXcucHJvdG90eXBlID0gewogICAgIHJl
c2V0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9yZWNvcmRzUGVyQmFyID0gMTsK
LSAgICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3cucmVzZXQoKTsKKyAgICAgICAgdGhpcy5fZnJh
bWVNb2RlID0gZmFsc2U7CisgICAgICAgIHRoaXMuX2JhclRpbWVzID0gW107CiAgICAgfSwKIAog
ICAgIHVwZGF0ZTogZnVuY3Rpb24ocmVjb3JkcykKICAgICB7CiAgICAgICAgIHJlY29yZHMgPSB0
aGlzLl9maWx0ZXJSZWNvcmRzKHJlY29yZHMpOworCisgICAgICAgIHZhciBmcmFtZUNvdW50ID0g
MDsKICAgICAgICAgdmFyIGJvdW5kYXJ5U3BhbiA9IDA7CisgICAgICAgIHZhciBsYXN0RnJhbWVU
aW1lID0gcmVjb3Jkc1swXSAmJiByZWNvcmRzWzBdLnN0YXJ0VGltZTsKICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgcmVj
b3JkID0gcmVjb3Jkc1tpXTsKICAgICAgICAgICAgIHZhciBkdXJhdGlvbiA9IHJlY29yZC5lbmRU
aW1lIC0gcmVjb3JkLnN0YXJ0VGltZTsKICAgICAgICAgICAgIGlmIChib3VuZGFyeVNwYW4gPCBk
dXJhdGlvbikKICAgICAgICAgICAgICAgICBib3VuZGFyeVNwYW4gPSBkdXJhdGlvbjsKKyAgICAg
ICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVj
b3JkVHlwZS5GcmFtZVVwZGF0ZSB8fCAoZnJhbWVDb3VudCAmJiAoaSArIDEgPT09IHJlY29yZHMu
bGVuZ3RoKSkpIHsKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIGZyYW1lcywgdGFrZSBm
cmFtZSBkdXJhdGlvbiBpbnRvIGFjY291bnQKKyAgICAgICAgICAgICAgICBpZiAocmVjb3JkLnN0
YXJ0VGltZSAtIGxhc3RGcmFtZVRpbWUgPiBib3VuZGFyeVNwYW4pCisgICAgICAgICAgICAgICAg
ICAgIGJvdW5kYXJ5U3BhbiA9IHJlY29yZC5zdGFydFRpbWUgLSBsYXN0RnJhbWVUaW1lOworICAg
ICAgICAgICAgICAgIGxhc3RGcmFtZVRpbWUgPSByZWNvcmQuc3RhcnRUaW1lOworICAgICAgICAg
ICAgICAgICsrZnJhbWVDb3VudDsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgCi0g
ICAgICAgIHZhciBzY2FsZSA9ICh0aGlzLl9vdmVydmlld0VsZW1lbnQuY2xpZW50SGVpZ2h0IC0g
NCkgLyBib3VuZGFyeVNwYW47Ci0gICAgICAgIHRoaXMuX3JlY29yZHNQZXJCYXIgPSBNYXRoLm1h
eCgxLCByZWNvcmRzLmxlbmd0aCAqIDQgLyB0aGlzLmVsZW1lbnQuY2xpZW50V2lkdGgpOwotICAg
ICAgICB2YXIgbnVtYmVyT2ZCYXJzID0gTWF0aC5jZWlsKHJlY29yZHMubGVuZ3RoIC8gdGhpcy5f
cmVjb3Jkc1BlckJhcik7Ci0KLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdFbGVtZW50LnJlbW92ZUNo
aWxkcmVuKCk7Ci0gICAgICAgIHZhciBwYWRkaW5nID0gdGhpcy5fb3ZlcnZpZXdFbGVtZW50LmNy
ZWF0ZUNoaWxkKCJkaXYiLCAicGFkZGluZyIpOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgbnVtYmVyT2ZCYXJzOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBpbmRleCA9IE1hdGguZmxv
b3IoaSAqIHRoaXMuX3JlY29yZHNQZXJCYXIpOwotICAgICAgICAgICAgdmFyIGxvbmdlc3RSZWNv
cmQgPSByZWNvcmRzW2luZGV4XTsKLSAgICAgICAgICAgIHZhciBzdG9wSW5kZXggPSBNYXRoLm1p
bihNYXRoLmZsb29yKChpICsgMSkgKiB0aGlzLl9yZWNvcmRzUGVyQmFyKSwgcmVjb3Jkcy5sZW5n
dGgpOwotICAgICAgICAgICAgZm9yICgrK2luZGV4OyBpbmRleCA8IHN0b3BJbmRleDsgKytpbmRl
eCkgewotICAgICAgICAgICAgICAgIHZhciByZWNvcmQgPSByZWNvcmRzW2luZGV4XTsKLSAgICAg
ICAgICAgICAgICBpZiAobG9uZ2VzdFJlY29yZC5lbmRUaW1lIC0gbG9uZ2VzdFJlY29yZC5zdGFy
dFRpbWUgPCByZWNvcmQuZW5kVGltZSAtIHJlY29yZC5zdGFydFRpbWUpCi0gICAgICAgICAgICAg
ICAgICAgIGxvbmdlc3RSZWNvcmQgPSByZWNvcmQ7CisgICAgICAgIC8vIElmIHdlIGhhdmUgZnJh
bWVzLCBhZ2dyZWdhdGUgYnkgZnJhbWVzOyBvdGhlcndpc2UsIGp1c3Qgc2hvdyB0b3AtbGV2ZWwg
cmVjb3Jkcy4KKyAgICAgICAgdmFyIHJlY29yZENvdW50ID0gZnJhbWVDb3VudCB8fCByZWNvcmRz
Lmxlbmd0aDsKKworICAgICAgICB2YXIgc2NhbGUgPSAodGhpcy5lbGVtZW50LmNsaWVudEhlaWdo
dCAtIDQpIC8gYm91bmRhcnlTcGFuOworICAgICAgICB0aGlzLl9yZWNvcmRzUGVyQmFyID0gTWF0
aC5tYXgoMSwgcmVjb3JkQ291bnQgKiA0IC8gdGhpcy5lbGVtZW50LmNsaWVudFdpZHRoKTsKKyAg
ICAgICAgdmFyIG51bWJlck9mQmFycyA9IE1hdGguY2VpbChyZWNvcmRDb3VudCAvIHRoaXMuX3Jl
Y29yZHNQZXJCYXIpOworCisgICAgICAgIHRoaXMuX2JhclRpbWVzID0gW107CisgICAgICAgIHRo
aXMuZWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOworICAgICAgICB2YXIgcGFkZGluZyA9IHRoaXMu
ZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgInBhZGRpbmciKTsKKworICAgICAgICBmb3IgKHZh
ciBiYXJOdW1iZXIgPSAwLCBjdXJyZW50RnJhbWUgPSAwLCBjdXJyZW50UmVjb3JkID0gMDsKKyAg
ICAgICAgICAgIGJhck51bWJlciA8IG51bWJlck9mQmFycyAmJiBjdXJyZW50UmVjb3JkIDwgcmVj
b3Jkcy5sZW5ndGg7CisgICAgICAgICAgICArK2Jhck51bWJlcikgeworICAgICAgICAgICAgdmFy
IHN0YXRpc3RpY3M7CisgICAgICAgICAgICB2YXIgbGFzdEluZGV4ID0gTWF0aC5taW4oTWF0aC5m
bG9vcigoYmFyTnVtYmVyICsgMSkgKiB0aGlzLl9yZWNvcmRzUGVyQmFyKSwgcmVjb3JkQ291bnQp
OworICAgICAgICAgICAgdmFyIGJhclN0YXJ0VGltZSA9IHJlY29yZHNbY3VycmVudFJlY29yZF0u
c3RhcnRUaW1lOworCisgICAgICAgICAgICBpZiAoZnJhbWVDb3VudCkgeworICAgICAgICAgICAg
ICAgIHZhciBsb25nZXN0RnJhbWVDUFVUaW1lID0gMDsKKyAgICAgICAgICAgICAgICB2YXIgZnJh
bWVTdGF0aXN0aWNzID0ge307CisgICAgICAgICAgICAgICAgdmFyIGNwdVRpbWVGb3JGcmFtZSA9
IDA7CisgICAgICAgICAgICAgICAgZm9yICg7IGN1cnJlbnRGcmFtZSA8IGxhc3RJbmRleCAmJiBj
dXJyZW50UmVjb3JkIDwgcmVjb3Jkcy5sZW5ndGg7ICsrY3VycmVudFJlY29yZCkgeworICAgICAg
ICAgICAgICAgICAgICB2YXIgcmVjb3JkID0gcmVjb3Jkc1tjdXJyZW50UmVjb3JkXTsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVN
b2RlbC5SZWNvcmRUeXBlLkZyYW1lVXBkYXRlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoY3B1VGltZUZvckZyYW1lID4gbG9uZ2VzdEZyYW1lQ1BVVGltZSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxvbmdlc3RGcmFtZUNQVVRpbWUgPSBjcHVUaW1lRm9yRnJhbWU7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGlzdGljcyA9IGZyYW1lU3RhdGlzdGljczsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICsrY3Vy
cmVudEZyYW1lOworICAgICAgICAgICAgICAgICAgICAgICAgY3B1VGltZUZvckZyYW1lID0gMDsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lU3RhdGlzdGljcyA9IHt9OworICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNhdGVnb3Jp
ZXMgPSBPYmplY3Qua2V5cyhyZWNvcmQuYWdncmVnYXRlZFN0YXRzKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2F0ZWdvcmllcy5sZW5ndGg7ICsraSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGZyYW1lU3RhdGlzdGljc1tj
YXRlZ29yaWVzW2ldXSB8fCAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlICs9
IHJlY29yZC5hZ2dyZWdhdGVkU3RhdHNbY2F0ZWdvcmllc1tpXV07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3B1VGltZUZvckZyYW1lICs9IHZhbHVlOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZyYW1lU3RhdGlzdGljc1tjYXRlZ29yaWVzW2ldXSA9IHZhbHVlOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGlmIChjcHVUaW1lRm9yRnJhbWUgPiBsb25nZXN0RnJhbWVD
UFVUaW1lKQorICAgICAgICAgICAgICAgICAgICBzdGF0aXN0aWNzID0gZnJhbWVTdGF0aXN0aWNz
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBub24tZnJhbWUgbW9k
ZQorICAgICAgICAgICAgICAgIHZhciBsb25nZXN0UmVjb3JkID0gcmVjb3Jkc1tjdXJyZW50UmVj
b3JkXTsKKyAgICAgICAgICAgICAgICBmb3IgKCsrY3VycmVudFJlY29yZDsgY3VycmVudFJlY29y
ZCA8IGxhc3RJbmRleDsgKytjdXJyZW50UmVjb3JkKSB7CisgICAgICAgICAgICAgICAgICAgIHZh
ciByZWNvcmQgPSByZWNvcmRzW2N1cnJlbnRSZWNvcmRdOworICAgICAgICAgICAgICAgICAgICBp
ZiAobG9uZ2VzdFJlY29yZC5lbmRUaW1lIC0gbG9uZ2VzdFJlY29yZC5zdGFydFRpbWUgPCByZWNv
cmQuZW5kVGltZSAtIHJlY29yZC5zdGFydFRpbWUpCisgICAgICAgICAgICAgICAgICAgICAgICBs
b25nZXN0UmVjb3JkID0gcmVjb3JkOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBzdGF0aXN0aWNzID0gbG9uZ2VzdFJlY29yZC5hZ2dyZWdhdGVkU3RhdHM7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICB2YXIgYmFyRW5kVGltZSA9IHJlY29yZHNbY3VycmVudFJlY29yZCAt
IDFdLmVuZFRpbWU7CisgICAgICAgICAgICBpZiAoc3RhdGlzdGljcykgeworICAgICAgICAgICAg
ICAgIHRoaXMuX2JhclRpbWVzLnB1c2goeyBzdGFydFRpbWU6IGJhclN0YXJ0VGltZSwgZW5kVGlt
ZTogYmFyRW5kVGltZSB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuaW5zZXJ0QmVm
b3JlKHRoaXMuX2J1aWxkQmFyKHN0YXRpc3RpY3MsIHNjYWxlKSwgcGFkZGluZyk7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB0aGlzLl9vdmVydmlld0VsZW1lbnQuaW5zZXJ0QmVmb3JlKHRo
aXMuX2J1aWxkQmFyKGxvbmdlc3RSZWNvcmQsIHNjYWxlKSwgcGFkZGluZyk7CiAgICAgICAgIH0K
ICAgICB9LAogCkBAIC04MjMsMzkgKzg3NCw0MCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVTdGFy
dEF0WmVyb092ZXJ2aWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHJlY29yZHMuZmls
dGVyKGZpbHRlcik7CiAgICAgfSwKIAotICAgIF9idWlsZEJhcjogZnVuY3Rpb24ocmVjb3JkLCBz
Y2FsZSkKKyAgICBfYnVpbGRCYXI6IGZ1bmN0aW9uKHN0YXRpc3RpY3MsIHNjYWxlKQogICAgIHsK
ICAgICAgICAgdmFyIG91dGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAg
ICAgIG91dGVyLmNsYXNzTmFtZSA9ICJ0aW1lbGluZS1iYXItdmVydGljYWwiOwotICAgICAgICB2
YXIgc3RhdHMgPSByZWNvcmQuYWdncmVnYXRlZFN0YXRzOwotICAgICAgICB2YXIgY2F0ZWdvcmll
cyA9IE9iamVjdC5rZXlzKHN0YXRzKTsKKyAgICAgICAgdmFyIGNhdGVnb3JpZXMgPSBPYmplY3Qu
a2V5cyhzdGF0aXN0aWNzKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYXRlZ29yaWVz
Lmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgY2F0ZWdvcnkgPSBjYXRlZ29yaWVzW2ld
OwotICAgICAgICAgICAgdmFyIGR1cmF0aW9uID0gc3RhdHNbY2F0ZWdvcnldOworICAgICAgICAg
ICAgdmFyIGR1cmF0aW9uID0gc3RhdGlzdGljc1tjYXRlZ29yeV07CiAgICAgICAgICAgICBpZiAo
IWR1cmF0aW9uKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgdmFyIGJh
ciA9IG91dGVyLmNyZWF0ZUNoaWxkKCJkaXYiLCAidGltZWxpbmUtIiArIGNhdGVnb3J5KTsKLSAg
ICAgICAgICAgIGJhci5zdHlsZS5oZWlnaHQgPSAoc3RhdHNbY2F0ZWdvcnldICogc2NhbGUpICsg
InB4IjsKKyAgICAgICAgICAgIGJhci5zdHlsZS5oZWlnaHQgPSAoc3RhdGlzdGljc1tjYXRlZ29y
eV0gKiBzY2FsZSkgKyAicHgiOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBvdXRlcjsKICAg
ICB9LAogCi0gICAgX29uV2luZG93Q2hhbmdlZDogZnVuY3Rpb24oKQorICAgIGdldFdpbmRvd1Rp
bWVzOiBmdW5jdGlvbih3aW5kb3dMZWZ0LCB3aW5kb3dSaWdodCkKICAgICB7Ci0gICAgICAgIHZh
ciBsZWZ0T2Zmc2V0ID0gdGhpcy5fb3ZlcnZpZXdXaW5kb3cud2luZG93TGVmdCAqIHRoaXMuZWxl
bWVudC5jbGllbnRXaWR0aDsKLSAgICAgICAgdmFyIHJpZ2h0T2Zmc2V0ID0gdGhpcy5fb3ZlcnZp
ZXdXaW5kb3cud2luZG93UmlnaHQgKiB0aGlzLmVsZW1lbnQuY2xpZW50V2lkdGg7Ci0gICAgICAg
IHZhciBiYXJzID0gdGhpcy5fb3ZlcnZpZXdFbGVtZW50LmNoaWxkcmVuOworICAgICAgICB2YXIg
d2luZG93U3BhbiA9IHRoaXMuZWxlbWVudC5jbGllbnRXaWR0aAorICAgICAgICB2YXIgbGVmdE9m
ZnNldCA9IHdpbmRvd0xlZnQgKiB3aW5kb3dTcGFuOworICAgICAgICB2YXIgcmlnaHRPZmZzZXQg
PSB3aW5kb3dSaWdodCAqIHdpbmRvd1NwYW47CisgICAgICAgIHZhciBiYXJzID0gdGhpcy5lbGVt
ZW50LmNoaWxkcmVuOwogICAgICAgICB2YXIgb2Zmc2V0MCA9IGJhcnNbMF0gPyBiYXJzWzBdLm9m
ZnNldExlZnQgOiA0OwogICAgICAgICB2YXIgYmFyV2lkdGggPSA5OwogICAgICAgICBpZiAoYmFy
cy5sZW5ndGggPiAyKSB7CiAgICAgICAgICAgICB2YXIgb2Zmc2V0MSA9IGJhcnNbYmFycy5sZW5n
dGggLSAyXS5vZmZzZXRMZWZ0OwogICAgICAgICAgICAgYmFyV2lkdGggPSAob2Zmc2V0MSAtIG9m
ZnNldDApIC8gKGJhcnMubGVuZ3RoIC0gMik7CiAgICAgICAgIH0KLQotICAgICAgICB2YXIgbGVm
dEluZGV4ID0gTWF0aC5mbG9vcigobGVmdE9mZnNldCAtIG9mZnNldDApIC8gYmFyV2lkdGggKiB0
aGlzLl9yZWNvcmRzUGVyQmFyKTsKLSAgICAgICAgdmFyIHJpZ2h0SW5kZXggPSByaWdodE9mZnNl
dCArIGJhcldpZHRoID49IHRoaXMuZWxlbWVudC5jbGllbnRXaWR0aCA/IG51bGwgOiBNYXRoLmNl
aWwoKHJpZ2h0T2Zmc2V0IC0gb2Zmc2V0MCAtIDIpIC8gYmFyV2lkdGggKiB0aGlzLl9yZWNvcmRz
UGVyQmFyKTsKLQotICAgICAgICB0aGlzLl9wYW5lLl9zZXRXaW5kb3dJbmRpY2VzKGxlZnRJbmRl
eCwgcmlnaHRJbmRleCk7CisgICAgICAgIHZhciBmaXJzdEJhciA9IE1hdGguZmxvb3IoTWF0aC5t
YXgobGVmdE9mZnNldCAtIG9mZnNldDAsIDApIC8gYmFyV2lkdGgpOworICAgICAgICB2YXIgbGFz
dEJhciA9IE1hdGgubWluKE1hdGguY2VpbCgocmlnaHRPZmZzZXQgLSBvZmZzZXQwIC0gMikgLyBi
YXJXaWR0aCksIHRoaXMuX2JhclRpbWVzLmxlbmd0aCAtIDEpOworICAgICAgICByZXR1cm4gewor
ICAgICAgICAgICAgc3RhcnRUaW1lOiB0aGlzLl9iYXJUaW1lc1tmaXJzdEJhcl0uc3RhcnRUaW1l
LAorICAgICAgICAgICAgZW5kVGltZTogcmlnaHRPZmZzZXQgKyAzID4gd2luZG93U3BhbiA/IG51
bGwgOiB0aGlzLl9iYXJUaW1lc1tsYXN0QmFyXS5lbmRUaW1lCisgICAgICAgIH0KICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQ
YW5lbC5qcwppbmRleCAzYTljNTRjODBhYWFiNjY3NmE3YmQzOWRkNTVmMTQwMjNmNjhlMjhiLi5k
YjJhODMzYmZkOGMzNTE3NjEyMTE3NTkyNGZmZmZhMWU1NzEyYzE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC0zMzQs
OCArMzM0LDEzIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgdGhpcy5fdGltZWxpbmVHcmlkLnJlbW92ZUV2ZW50RGl2aWRlcnMoKTsKICAgICAgICAg
dmFyIGNsaWVudFdpZHRoID0gdGhpcy5fZ3JhcGhSb3dzRWxlbWVudC5vZmZzZXRXaWR0aCAtIHRo
aXMuX2V4cGFuZE9mZnNldDsKICAgICAgICAgdmFyIGRpdmlkZXJzID0gW107CisgICAgICAgIC8v
IE9ubHkgc2hvdyBmcmFtZXMgaWYgd2UncmUgem9vbWVkIGNsb3NlIGVub3VnaCAtLSBvdGhlcndp
c2UgdGhleSdkIGJlIHRvIGRlbnNlIHRvIGJlIHVzZWZ1bCBhbmQgd2lsbCBvdmVycG9wdWxhdGUg
RE9NLgorICAgICAgICB2YXIgc2hvd0ZyYW1lcyA9IHRoaXMuY2FsY3VsYXRvci5ib3VuZGFyeVNw
YW4gPCAxLjAgJiYgdGhpcy5fc3RhcnRBdFplcm87CisKICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB0aGlzLl90aW1lU3RhbXBSZWNvcmRzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2
YXIgcmVjb3JkID0gdGhpcy5fdGltZVN0YW1wUmVjb3Jkc1tpXTsKKyAgICAgICAgICAgIGlmIChy
ZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZS5GcmFt
ZVVwZGF0ZSAmJiAhc2hvd0ZyYW1lcykKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgIHZhciBwb3NpdGlvbnMgPSB0aGlzLl9jYWxjdWxhdG9yLmNvbXB1dGVCYXJHcmFwaFdp
bmRvd1Bvc2l0aW9uKHJlY29yZCwgY2xpZW50V2lkdGgpOwogICAgICAgICAgICAgdmFyIGRpdmlk
ZXJQb3NpdGlvbiA9IE1hdGgucm91bmQocG9zaXRpb25zLmxlZnQpOwogICAgICAgICAgICAgaWYg
KGRpdmlkZXJQb3NpdGlvbiA8IDAgfHwgZGl2aWRlclBvc2l0aW9uID49IGNsaWVudFdpZHRoIHx8
IGRpdmlkZXJzW2RpdmlkZXJQb3NpdGlvbl0pCkBAIC0zNjUsNyArMzcwLDkgQEAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBlbHNlIGlmIChyZWNvcmQu
dHlwZSA9PT0gcmVjb3JkVHlwZXMuVGltZVN0YW1wKSB7CiAgICAgICAgICAgICBldmVudERpdmlk
ZXIuY2xhc3NOYW1lICs9ICIgcmVzb3VyY2VzLW9yYW5nZS1kaXZpZGVyIjsKICAgICAgICAgICAg
IGV2ZW50RGl2aWRlclBhZGRpbmcudGl0bGUgPSByZWNvcmQuZGF0YVsibWVzc2FnZSJdOwotICAg
ICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLkZy
YW1lVXBkYXRlKQorICAgICAgICAgICAgZXZlbnREaXZpZGVyLmNsYXNzTmFtZSArPSAiIHRpbWVs
aW5lLWZyYW1lLWRpdmlkZXIiOworCiAgICAgICAgIGV2ZW50RGl2aWRlclBhZGRpbmcuYXBwZW5k
Q2hpbGQoZXZlbnREaXZpZGVyKTsKICAgICAgICAgcmV0dXJuIGV2ZW50RGl2aWRlclBhZGRpbmc7
CiAgICAgfSwKQEAgLTQyNSw3ICs0MzIsMTAgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICB2YXIgdG9nZ2xlZCA9ICF0aGlzLnRvZ2dsZVN0YXJ0QXRa
ZXJvQnV0dG9uLnRvZ2dsZWQKICAgICAgICAgdGhpcy5fZ2x1ZVBhcmVudEJ1dHRvbi5kaXNhYmxl
ZCA9IHRvZ2dsZWQ7CiAgICAgICAgIHRoaXMudG9nZ2xlU3RhcnRBdFplcm9CdXR0b24udG9nZ2xl
ZCA9IHRvZ2dsZWQ7Ci0gICAgICAgIHRoaXMuX2NhbGN1bGF0b3IgPSB0b2dnbGVkID8gbmV3IFdl
Ykluc3BlY3Rvci5UaW1lbGluZUZpdEluV2luZG93Q2FsY3VsYXRvcih0aGlzLl9wcmVzZW50YXRp
b25Nb2RlbCkgOiBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2FsY3VsYXRvcih0aGlzLl9wcmVz
ZW50YXRpb25Nb2RlbCk7CisgICAgICAgIGlmICh0b2dnbGVkKQorICAgICAgICAgICAgdGhpcy5l
bGVtZW50LmFkZFN0eWxlQ2xhc3MoInRpbWVsaW5lLXN0YXJ0LWF0LXplcm8iKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInRpbWVsaW5l
LXN0YXJ0LWF0LXplcm8iKTsKICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuc2V0R2x1
ZVJlY29yZHModGhpcy5fZ2x1ZVBhcmVudEJ1dHRvbi50b2dnbGVkICYmICF0aGlzLnRvZ2dsZVN0
YXJ0QXRaZXJvQnV0dG9uLnRvZ2dsZWQpOwogICAgICAgICB0aGlzLl9yZXBvcHVsYXRlUmVjb3Jk
cygpOwogICAgICAgICB0aGlzLl9vdmVydmlld1BhbmUuc2V0U3RhcnRBdFplcm8odG9nZ2xlZCk7
CkBAIC00NjIsOCArNDcyLDEwIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdmFyIHRpbWVTdGFtcFJlY29yZHMgPSB0aGlzLl90aW1lU3RhbXBSZWNv
cmRzOwogICAgICAgICBmdW5jdGlvbiBhZGRUaW1lc3RhbXBSZWNvcmRzKHJlY29yZCkKICAgICAg
ICAgewotICAgICAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5NYXJrRE9N
Q29udGVudCB8fCByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuTWFya0xvYWQgfHwgcmVjb3Jk
LnR5cGUgPT09IHJlY29yZFR5cGVzLlRpbWVTdGFtcCkKKyAgICAgICAgICAgIGlmIChyZWNvcmQu
dHlwZSA9PT0gcmVjb3JkVHlwZXMuTWFya0RPTUNvbnRlbnQgfHwgcmVjb3JkLnR5cGUgPT09IHJl
Y29yZFR5cGVzLk1hcmtMb2FkIHx8CisgICAgICAgICAgICAgICAgcmVjb3JkLnR5cGUgPT09IHJl
Y29yZFR5cGVzLlRpbWVTdGFtcCB8fCByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuRnJhbWVV
cGRhdGUpIHsKICAgICAgICAgICAgICAgICB0aW1lU3RhbXBSZWNvcmRzLnB1c2gocmVjb3JkKTsK
KyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
YW5lbC5mb3JBbGxSZWNvcmRzKFsgZm9ybWF0dGVkUmVjb3JkIF0sIGFkZFRpbWVzdGFtcFJlY29y
ZHMpOwogICAgIH0sCkBAIC01NTksMTMgKzU3MSwxMCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fcmVmcmVzaFRpbWVv
dXQ7CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLl9vdmVydmlld1BhbmUudXBkYXRlKHRoaXMu
X3Jvb3RSZWNvcmQoKS5jaGlsZHJlbiwgdGhpcy5fc2hvd1Nob3J0RXZlbnRzKTsKKyAgICAgICAg
dGhpcy5fb3ZlcnZpZXdQYW5lLnVwZGF0ZSh0aGlzLl9zaG93U2hvcnRFdmVudHMpOwogCi0gICAg
ICAgIGlmICghdGhpcy5fYm91bmRhcmllc0FyZVZhbGlkKSB7Ci0gICAgICAgICAgICB2YXIgbWlu
ID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwubWluaW11bVJlY29yZFRpbWUoKTsKLSAgICAgICAg
ICAgIHZhciBtYXggPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5tYXhpbXVtUmVjb3JkVGltZSgp
OwotICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRvci5zZXRXaW5kb3cobWluICsgKG1heCAtIG1p
bikgKiB0aGlzLl9vdmVydmlld1BhbmUud2luZG93TGVmdCgpLCBtaW4gKyAobWF4IC0gbWluKSAq
IHRoaXMuX292ZXJ2aWV3UGFuZS53aW5kb3dSaWdodCgpKTsKLSAgICAgICAgfQorICAgICAgICBp
ZiAoIXRoaXMuX2JvdW5kYXJpZXNBcmVWYWxpZCkKKyAgICAgICAgICAgIHRoaXMuX2NhbGN1bGF0
b3Iuc2V0V2luZG93KHRoaXMuX292ZXJ2aWV3UGFuZS53aW5kb3dTdGFydFRpbWUoKSwgdGhpcy5f
b3ZlcnZpZXdQYW5lLndpbmRvd0VuZFRpbWUoKSk7CiAKICAgICAgICAgdmFyIHJlY29yZHNJbldp
bmRvd0NvdW50ID0gdGhpcy5fcmVmcmVzaFJlY29yZHMoIXRoaXMuX2JvdW5kYXJpZXNBcmVWYWxp
ZCk7CiAgICAgICAgIHRoaXMuX3VwZGF0ZVJlY29yZHNDb3VudGVyKHJlY29yZHNJbldpbmRvd0Nv
dW50KTsKQEAgLTYwOSw3ICs2MTgsNiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgX3JlZnJlc2hSZWNvcmRzOiBmdW5jdGlvbih1cGRhdGVCb3VuZGFyaWVz
KQogICAgIHsKICAgICAgICAgdmFyIHJlY29yZHNJbldpbmRvdyA9IHRoaXMuX3ByZXNlbnRhdGlv
bk1vZGVsLmZpbHRlcmVkUmVjb3JkcygpOwotICAgICAgICB0aGlzLl9jYWxjdWxhdG9yLnNldFJl
Y29yZHMocmVjb3Jkc0luV2luZG93KTsKIAogICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHZpc2li
bGUgYXJlYS4KICAgICAgICAgdGhpcy5fc2Nyb2xsVG9wID0gdGhpcy5fY29udGFpbmVyRWxlbWVu
dC5zY3JvbGxUb3A7CkBAIC03OTMsMTAgKzgwMSw2IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZUNh
bGN1bGF0b3IucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmJvdW5kYXJ5U3BhbiA9IHRoaXMu
bWF4aW11bUJvdW5kYXJ5IC0gdGhpcy5taW5pbXVtQm91bmRhcnk7CiAgICAgfSwKIAotICAgIHNl
dFJlY29yZHM6IGZ1bmN0aW9uKHJlY29yZHMpCi0gICAgewotICAgIH0sCi0KICAgICBmb3JtYXRU
aW1lOiBmdW5jdGlvbih2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBOdW1iZXIuc2Vjb25k
c1RvU3RyaW5nKHZhbHVlICsgdGhpcy5taW5pbXVtQm91bmRhcnkgLSB0aGlzLl9wcmVzZW50YXRp
b25Nb2RlbC5taW5pbXVtUmVjb3JkVGltZSgpKTsKQEAgLTgwNSw0MCArODA5LDYgQEAgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lQ2FsY3VsYXRvci5wcm90b3R5cGUgPSB7CiAKIC8qKgogICogQGNvbnN0
cnVjdG9yCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
fSBwcmVzZW50YXRpb25Nb2RlbAotICogQGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2Fs
Y3VsYXRvcgotICovCi1XZWJJbnNwZWN0b3IuVGltZWxpbmVGaXRJbldpbmRvd0NhbGN1bGF0b3Ig
PSBmdW5jdGlvbihwcmVzZW50YXRpb25Nb2RlbCkKLXsKLSAgICBXZWJJbnNwZWN0b3IuVGltZWxp
bmVDYWxjdWxhdG9yLmNhbGwodGhpcywgcHJlc2VudGF0aW9uTW9kZWwpOwotfQotCi1XZWJJbnNw
ZWN0b3IuVGltZWxpbmVGaXRJbldpbmRvd0NhbGN1bGF0b3IucHJvdG90eXBlID0gewotICAgIHNl
dFdpbmRvdzogZnVuY3Rpb24obWluaW11bUJvdW5kYXJ5LCBtYXhpbXVtQm91bmRhcnkpCi0gICAg
ewotICAgIH0sCi0KLSAgICBzZXRSZWNvcmRzOiBmdW5jdGlvbihyZWNvcmRzKQotICAgIHsKLSAg
ICAgICAgdGhpcy5taW5pbXVtQm91bmRhcnkgPSAtMTsKLSAgICAgICAgdGhpcy5tYXhpbXVtQm91
bmRhcnkgPSAtMTsKLQotICAgICAgICB2YXIgYm91bmRhcnlTcGFuID0gMDsKLSAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIg
cmVjb3JkID0gcmVjb3Jkc1tpXTsKLSAgICAgICAgICAgIGlmICh0aGlzLm1pbmltdW1Cb3VuZGFy
eSA9PSAtMSB8fCByZWNvcmQuc3RhcnRUaW1lIDwgdGhpcy5taW5pbXVtQm91bmRhcnkpCi0gICAg
ICAgICAgICAgICAgdGhpcy5taW5pbXVtQm91bmRhcnkgPSByZWNvcmQuc3RhcnRUaW1lOwotICAg
ICAgICAgICAgaWYgKHRoaXMubWF4aW11bUJvdW5kYXJ5ID09IC0xIHx8IHJlY29yZC5lbmRUaW1l
ID4gdGhpcy5tYXhpbXVtQm91bmRhcnkpCi0gICAgICAgICAgICAgICAgdGhpcy5tYXhpbXVtQm91
bmRhcnkgPSByZWNvcmQuZW5kVGltZTsKLSAgICAgICAgfQotICAgICAgICB0aGlzLmJvdW5kYXJ5
U3BhbiA9IHRoaXMubWF4aW11bUJvdW5kYXJ5IC0gdGhpcy5taW5pbXVtQm91bmRhcnk7Ci0gICAg
fQotfQotCi1XZWJJbnNwZWN0b3IuVGltZWxpbmVGaXRJbldpbmRvd0NhbGN1bGF0b3IucHJvdG90
eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZUNhbGN1bGF0b3IucHJvdG90eXBl
OwotCi0vKioKLSAqIEBjb25zdHJ1Y3RvcgogICovCiBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNv
cmRMaXN0Um93ID0gZnVuY3Rpb24oKQogewpAQCAtMTAzMiw3ICsxMDAyLDcgQEAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lQ2F0ZWdvcnlGaWx0ZXIucHJvdG90eXBlID0gewogICAgICAqLwogICAgIGFj
Y2VwdDogZnVuY3Rpb24ocmVjb3JkKQogICAgIHsKLSAgICAgICAgcmV0dXJuICFyZWNvcmQuY2F0
ZWdvcnkuaGlkZGVuOworICAgICAgICByZXR1cm4gIXJlY29yZC5jYXRlZ29yeS5oaWRkZW4gJiYg
cmVjb3JkLnR5cGUgIT09IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuRnJh
bWVVcGRhdGU7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXgg
NjhjOTg3YzRkNjhmMTc0NzM1YTk0NDUwZTE4OTYwMGRkMGU2ODIwYi4uYzU1MDg1NjBlY2QzZWFj
YzA3NjMzOTRlZTVlYWZhN2VhMDBlYmY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5q
cwpAQCAtMjA1LDYgKzIwNSw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1v
ZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5M
YXlvdXRdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMYXlvdXQiKSwgY2F0ZWdv
cnk6IGNhdGVnb3JpZXNbInJlbmRlcmluZyJdIH07CiAgICAgICAgICAgICByZWNvcmRTdHlsZXNb
cmVjb3JkVHlwZXMuUmVjYWxjdWxhdGVTdHlsZXNdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJSZWNhbGN1bGF0ZSBTdHlsZSIpLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sicmVuZGVy
aW5nIl0gfTsKICAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5QYWludF0gPSB7
IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhaW50IiksIGNhdGVnb3J5OiBjYXRlZ29y
aWVzWyJyZW5kZXJpbmciXSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVz
LkZyYW1lVXBkYXRlXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRnJhbWUgVXBk
YXRlIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJyZW5kZXJpbmciXSB9OworICAgICAgICAgICAg
cmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkxheWVyc0NvbXBvc2l0aW5nXSA9IHsgdGl0bGU6IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiTGF5ZXJzIENvbXBvc2l0aW5nIiksIGNhdGVnb3J5OiBjYXRl
Z29yaWVzWyJyZW5kZXJpbmciXSB9OwogICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5
cGVzLlBhcnNlSFRNTF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhcnNlIiks
IGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJsb2FkaW5nIl0gfTsKICAgICAgICAgICAgIHJlY29yZFN0
eWxlc1tyZWNvcmRUeXBlcy5UaW1lckluc3RhbGxdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJJbnN0YWxsIFRpbWVyIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmci
XSB9OwogICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlRpbWVyUmVtb3ZlXSA9
IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVtb3ZlIFRpbWVyIiksIGNhdGVnb3J5
OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmciXSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JDb21tb24uY3NzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JDb21tb24uY3NzCmluZGV4IDUyNjg0MzE0MDRj
ZDQwZmYxMzBiZDY2MDU1M2U5ODc5NmNhOWQ0ZTUuLmNiNzhiMDMxMWJkM2U2NDcyODg2MjIwOGYy
YjMwNjAxZTQ2MjRjOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yQ29tbW9uLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3RvckNvbW1vbi5jc3MKQEAgLTc4LDEwICs3OCw2IEBAIGlmcmFtZS52
aWV3IHsKICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKIH0KIAotLnRpbWVsaW5lIC5yZXNvdXJj
ZXMtZXZlbnQtZGl2aWRlcnMgewotICAgIGhlaWdodDogMTlweDsKLX0KLQogLnJlc291cmNlcy1k
aXZpZGVycy1sYWJlbC1iYXIgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICB0b3A6IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RpbWVsaW5l
UGFuZWwuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90aW1lbGluZVBh
bmVsLmNzcwppbmRleCA0MzkwZmYwYTQ0MTA5ZjVjYzlmM2M3NGE0MDA1YzVlMzFlZDY4Y2M5Li44
NzhmMDU0ZDM0ODZkNDI1OGFlMzI0ZGU5OGE0MmE2MWJlMWJjZDRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RpbWVsaW5lUGFuZWwuY3NzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdGltZWxpbmVQYW5lbC5jc3MKQEAgLTcy
LDE2ICs3Miw3IEBACiAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiKDE2MywgMTYzLCAx
NjMpOwogfQogCi0udGltZWxpbmUtc3RhcnQtYXQtemVybyAjdGltZWxpbmUtb3ZlcnZpZXctc2lk
ZWJhciB7Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLQogI3RpbWVsaW5lLW92ZXJ2aWV3LWdyaWQg
ewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDBweDsKLSAgICBib3R0b206IDBw
eDsKLSAgICBsZWZ0OiAyMDBweDsKLSAgICByaWdodDogMHB4OwogICAgIGJhY2tncm91bmQtY29s
b3I6IHJnYigyNTUsIDI1NSwgMjU1KTsKIH0KIApAQCAtMTYzLDcgKzE1NCw3IEBACiAgICAgYm90
dG9tOiAwOwogICAgIHJpZ2h0OiAwOwogICAgIGJvcmRlci1yaWdodDogMCBub25lIHRyYW5zcGFy
ZW50OwotICAgIG92ZXJmbG93LXk6IGF1dG87CisgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAg
IG92ZXJmbG93LXg6IGhpZGRlbjsKIH0KIApAQCAtNTkzLDEwICs1ODQsNiBAQAogICAgIGZvbnQt
c2l6ZTogMTFweDsKIH0KIAotLnRpbWVsaW5lLW92ZXJ2aWV3LXN0YXJ0LWF0LXplcm8gewotICAg
IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwotfQotCiAjY291bnRlci12YWx1ZXMtYmFyIHsKICAg
ICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggbGlnaHRncmF5OwogICAgIG1pbi1oZWlnaHQ6IDE1
cHg7CkBAIC02NDQsMyArNjMxLDE5IEBACiAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXIt
Z3JhZGllbnQobGVmdCwgcmdiKDIxMywgMTg1LCAyMzYpLCByZ2IoMTM3LCA2MiwgMjAwKSk7CiAg
ICAgYm9yZGVyOiBzb2xpZCAxcHggcmdiKDEzMCwgNTksIDE5MCk7CiB9CisKKy50aW1lbGluZSAu
cmVzb3VyY2VzLWV2ZW50LWRpdmlkZXIgeworICAgIGhlaWdodDogMTlweDsKKyAgICBib3R0b206
IGF1dG87Cit9CisKKy50aW1lbGluZS50aW1lbGluZS1zdGFydC1hdC16ZXJvIC5yZXNvdXJjZXMt
ZGl2aWRlciB7CisgICAgaGVpZ2h0OiAxOXB4OworICAgIGJvdHRvbTogYXV0bzsKK30KKworLnRp
bWVsaW5lIC5yZXNvdXJjZXMtZXZlbnQtZGl2aWRlci50aW1lbGluZS1mcmFtZS1kaXZpZGVyIHsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwgMTg1LCAyMDAsIDAuOCk7CisgICAgaGVp
Z2h0OiAxMDAlOworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJXaWRnZXQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5o
CmluZGV4IDU4ZjNmYTE2OTVmOGNlMzYyMmQ2N2ZjYzVjZjZjNTU0MDlkN2ZiYjIuLjNmMGUyMjI2
NmI2NTk4NDU0MzkxOTQ2NmVjNjE4NmQ3Y2ExYWIyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYldpZGdldC5oCkBAIC03OCw2ICs3OCwxMSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHdpbGxFeGl0RnVsbFNjcmVlbigpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRF
eGl0RnVsbFNjcmVlbigpIHsgfQogCisgICAgLy8gQ2FsbGVkIHRvIGdyb3VwIGFjdGlvbnMgcGVy
Zm9ybWVkIGR1cmluZyBhbmltYXRpb24vdXBkYXRlIGN5Y2xlLAorICAgIC8vIGUuZy4gYW5pbWF0
ZSgpL2xheW91dCgpL3BhaW50KCkvY29tcG9zaXRlKCkuIFByaW1pYXJpbHkgZm9yIGluc3RydW1l
bnRhdGlvbi4KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2luVXBkYXRlKCkgeyB9CisgICAgdmly
dHVhbCB2b2lkIGRpZEVuZFVwZGF0ZSgpIHsgfQorCiAgICAgLy8gQ2FsbGVkIHRvIHVwZGF0ZSBp
bXBlcmF0aXZlIGFuaW1hdGlvbiBzdGF0ZS4gVGhpcyBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZQog
ICAgIC8vIHBhaW50LCBhbHRob3VnaCB0aGUgY2xpZW50IGNhbiByYXRlLWxpbWl0IHRoZXNlIGNh
bGxzLiBXaGVuCiAgICAgLy8gZnJhbWVCZWdpblRpbWUgaXMgMC4wLCB0aGUgV2ViV2lkZ2V0IHdp
bGwgZGV0ZXJtaW5lIHRoZSBmcmFtZSBiZWdpbiB0aW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKaW5kZXggNTJlYjM3NDAwZjRl
Njk3YzQ1MGRiZjMwOGI2OGJiOWNhM2MwODdmYi4uZGRlMmYzODQzZDlhYTM0YjQ2ODljY2Y2MDMy
Mjc1Y2Q5Yjc1NTEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RGV2VG9vbHNBZ2VudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkRldlRvb2xzQWdlbnRJbXBsLmNwcApAQCAtMjMxLDYgKzIzMSwyNiBAQCB2b2lkIFdlYkRldlRv
b2xzQWdlbnRJbXBsOjpkaWRDbGVhcldpbmRvd09iamVjdChXZWJGcmFtZUltcGwqIHdlYmZyYW1l
KQogICAgICAgICBwcm94eS0+c2V0Q29udGV4dERlYnVnSWQobV9ob3N0SWQpOwogfQogCit2b2lk
IFdlYkRldlRvb2xzQWdlbnRJbXBsOjp3aWxsQmVnaW5GcmFtZVVwZGF0ZSgpCit7CisgICAgaW5z
cGVjdG9yQ29udHJvbGxlcigpLT53aWxsQmVnaW5GcmFtZVVwZGF0ZSgpOworfQorCit2b2lkIFdl
YkRldlRvb2xzQWdlbnRJbXBsOjpkaWRFbmRGcmFtZVVwZGF0ZSgpCit7CisgICAgaW5zcGVjdG9y
Q29udHJvbGxlcigpLT5kaWRFbmRGcmFtZVVwZGF0ZSgpOworfQorCit2b2lkIFdlYkRldlRvb2xz
QWdlbnRJbXBsOjp3aWxsQmVnaW5Db21wb3NpdGluZygpCit7CisgICAgaW5zcGVjdG9yQ29udHJv
bGxlcigpLT53aWxsQmVnaW5Db21wb3NpdGluZygpOworfQorCit2b2lkIFdlYkRldlRvb2xzQWdl
bnRJbXBsOjpkaWRFbmRDb21wb3NpdGluZygpCit7CisgICAgaW5zcGVjdG9yQ29udHJvbGxlcigp
LT5kaWRFbmRDb21wb3NpdGluZygpOworfQorCiB2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpk
aXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCiB7CiAg
ICAgaW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQobWVz
c2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29s
c0FnZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2Vu
dEltcGwuaAppbmRleCA2NmZkNmM2ZWVhNjg4YjAzOGRlNzI0NzdhM2IxOWM1YjUxNWE3YjUxLi44
NzI0YTM2OGY1ZjU3YWIzMTBhNTc4OGZkZjI0MzdhZWU1Y2MwOTA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKQEAgLTY5LDYgKzY5
LDEwIEBAIHB1YmxpYzoKIAogICAgIC8vIFdlYkRldlRvb2xzQWdlbnRQcml2YXRlIGltcGxlbWVu
dGF0aW9uLgogICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhcldpbmRvd09iamVjdChXZWJGcmFtZUlt
cGwqIGZyYW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2luRnJhbWVVcGRhdGUoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkRW5kRnJhbWVVcGRhdGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2ls
bEJlZ2luQ29tcG9zaXRpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kQ29tcG9zaXRpbmco
KTsKIAogICAgIC8vIFdlYkRldlRvb2xzQWdlbnQgaW1wbGVtZW50YXRpb24uCiAgICAgdmlydHVh
bCB2b2lkIGF0dGFjaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRGV2VG9vbHNBZ2VudFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkRldlRvb2xzQWdlbnRQcml2YXRlLmgKaW5kZXggNzAzOGE1ZTVjYjgzMmRlMDA5YWE3YThjNmY3
MmZjYWM0MGU3ODVhMy4uY2ZkYTVkNzFjZGYwNWZkODkwMDFhMTg2Njg2YmJlYWQyZWE5N2ViZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudFBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50
UHJpdmF0ZS5oCkBAIC00Myw2ICs0MywxMCBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIHdpbmRvdyBv
YmplY3QgZm9yIHRoZSBmcmFtZSBoYXMgYmVlbiBjbGVhcmVkIG9mIGFueSBleHRyYSBwcm9wZXJ0
aWVzCiAgICAgLy8gdGhhdCBtYXkgaGF2ZSBiZWVuIHNldCBieSBzY3JpcHQgZnJvbSB0aGUgcHJl
dmlvdXNseSBsb2FkZWQgZG9jdW1lbnQuCiAgICAgdmlydHVhbCB2b2lkIGRpZENsZWFyV2luZG93
T2JqZWN0KFdlYkZyYW1lSW1wbCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2luRnJh
bWVVcGRhdGUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEVuZEZyYW1lVXBkYXRlKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVnaW5Db21wb3NpdGluZygpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRW5kQ29tcG9zaXRpbmcoKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBk
N2M2NTRhNmU0ODMyY2QxODg3YWM2MWJiN2RlMDc1OGYzZDE4NjQ1Li4xY2JmNzk4MDM3NWUzNDlk
OGE4OTNkYjEwMTZlYzU1MzkyN2Q3ZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCkBAIC0xMjY2LDYgKzEyNjYsMTggQEAgdm9pZCBXZWJWaWV3SW1wbDo6
ZGlkRXhpdEZ1bGxTY3JlZW4oKQogI2VuZGlmCiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OndpbGxC
ZWdpblVwZGF0ZSgpCit7CisgICAgaWYgKG1fZGV2VG9vbHNBZ2VudCkKKyAgICAgICAgbV9kZXZU
b29sc0FnZW50LT53aWxsQmVnaW5GcmFtZVVwZGF0ZSgpOworfQorCit2b2lkIFdlYlZpZXdJbXBs
OjpkaWRFbmRVcGRhdGUoKQoreworICAgIGlmIChtX2RldlRvb2xzQWdlbnQpCisgICAgICAgIG1f
ZGV2VG9vbHNBZ2VudC0+ZGlkRW5kRnJhbWVVcGRhdGUoKTsKK30KKwogdm9pZCBXZWJWaWV3SW1w
bDo6YW5pbWF0ZShkb3VibGUgZnJhbWVCZWdpblRpbWUpCiB7CiAjaWYgRU5BQkxFKFJFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FKQpAQCAtMTQwNiw3ICsxNDE4LDExIEBAIHZvaWQgV2ViVmlld0ltcGw6
OmNvbXBvc2l0ZShib29sKQogICAgICAgICBpZiAobV9wYWdlT3ZlcmxheXMpCiAgICAgICAgICAg
ICBtX3BhZ2VPdmVybGF5cy0+dXBkYXRlKCk7CiAKKyAgICAgICAgaWYgKG1fZGV2VG9vbHNBZ2Vu
dCkKKyAgICAgICAgICAgIG1fZGV2VG9vbHNBZ2VudC0+d2lsbEJlZ2luQ29tcG9zaXRpbmcoKTsK
ICAgICAgICAgbV9sYXllclRyZWVWaWV3LmNvbXBvc2l0ZSgpOworICAgICAgICBpZiAobV9kZXZU
b29sc0FnZW50KQorICAgICAgICAgICAgbV9kZXZUb29sc0FnZW50LT5kaWRFbmRDb21wb3NpdGlu
ZygpOwogICAgIH0KICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmgKaW5kZXggY2JmMWE1M2UxYTlmODIyOWY1MDE2NDZmNTdmN2M1OWIzZjMyMmM3ZC4uZTA0
OTJkMzhhZDA3OGI3ZmYwNmQzZjYyZDM0YmE3M2I4N2Y3ZjU3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0xMTMsNiArMTEzLDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxTY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgd2ls
bEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxsU2NyZWVuKCk7
CisgICAgdmlydHVhbCB2b2lkIHdpbGxCZWdpblVwZGF0ZSgpOworICAgIHZpcnR1YWwgdm9pZCBk
aWRFbmRVcGRhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZShkb3VibGUgZnJhbWVCZWdp
blRpbWUpOwogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsgLy8gQWxzbyBpbXBsZW1lbnRzIEND
TGF5ZXJUcmVlSG9zdENsaWVudDo6bGF5b3V0KCkKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2Vi
Q2FudmFzKiwgY29uc3QgV2ViUmVjdCYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129932</attachid>
            <date>2012-03-02 11:47:50 -0800</date>
            <delta_ts>2012-03-05 00:31:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80127-20120302234748.patch</filename>
            <type>text/plain</type>
            <size>42076</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmE1MzZlMjcwZDg4ODBh
Y2M4MDE5MDI4NTIwZjM1NTM0MjUyYzEzNS4uYzYzNjk2ZGQxZWM0MWFjNTgzYTM3ZWU4NGRjOTRj
ZTBhYTk1YzRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTAzLTAyICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGluc3RydW1l
bnRhdGlvbiBmb3IgZnJhbWUgc3RhcnQvZW5kIG9uIHRpbWVsaW5lLgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IGFkZCB0aW1lbGluZSBpbnN0cnVtZW50YXRpb24gZm9yIGZyYW1lIGV2ZW50cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAxMjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIGRpc3BsYXkg
ZnJhbWUgYm91bmRhcmllcyB3aGVuIHZlcnRpY2FsIG92ZXJ2aWV3IG1vZGUgaXMgb24KKyAgICAg
ICAgLSBhZ2dyZWdhdGUgYnkgZnJhbWUgaW4gdmVydGljYWwgb3ZlcnZpZXcgbW9kZQorICAgICAg
ICAtIHN3aXRjaGVkIGV2ZW50IGZpbHRlcmluZyBjcml0ZXJpYSBmcm9tIGluZGV4IHRvIHRpbWUg
aW4gdmVydGljYWwgb3ZlcnZpZXcgbW9kZQorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZEJlZ2luRnJhbWVJbXBsKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZEJlZ2luRnJhbWUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoVGltZWxpbmVS
ZWNvcmRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZEJlZ2luRnJhbWUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qczoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUuX3Nob3dNZW1vcnlHcmFwaCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlLnNldFN0
YXJ0QXRaZXJvKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5w
cm90b3R5cGUudXBkYXRlRXZlbnREaXZpZGVycyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlLnNpZGViYXJSZXNpemVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUucmVzZXQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5hY2NlcHQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS53aW5k
b3dTdGFydFRpbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5l
LnByb3RvdHlwZS53aW5kb3dFbmRUaW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUuX29uV2luZG93Q2hhbmdlZCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGltZWxpbmVTdGFydEF0WmVyb092ZXJ2aWV3KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVN0YXJ0QXRaZXJvT3ZlcnZpZXcucHJvdG90eXBlLnJlc2V0KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVN0YXJ0QXRaZXJvT3ZlcnZpZXcucHJvdG90eXBlLnVw
ZGF0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVTdGFydEF0WmVyb092ZXJ2aWV3
LnByb3RvdHlwZS5fYWdncmVnYXRlRnJhbWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZVN0YXJ0QXRaZXJvT3ZlcnZpZXcucHJvdG90eXBlLl9hZ2dyZWdhdGVGcmFtZVN0YXRpc3Rp
Y3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lU3RhcnRBdFplcm9PdmVydmlldy5w
cm90b3R5cGUuX2FnZ3JlZ2F0ZVJlY29yZHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lU3RhcnRBdFplcm9PdmVydmlldy5wcm90b3R5cGUuX2J1aWxkQmFyKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZVN0YXJ0QXRaZXJvT3ZlcnZpZXcucHJvdG90eXBlLmdldFdpbmRv
d1RpbWVzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX3VwZGF0ZUV2
ZW50RGl2aWRlcnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90
eXBlLl9jcmVhdGVFdmVudERpdmlkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UGFuZWwucHJvdG90eXBlLl90b2dnbGVTdGFydEF0WmVyb0J1dHRvbkNsaWNrZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9pbm5lckFkZFJlY29yZFRv
VGltZWxpbmUuYWRkVGltZXN0YW1wUmVjb3Jkcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQYW5lbC5wcm90b3R5cGUuX2lubmVyQWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX3JlZnJlc2gpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9yZWZyZXNoUmVjb3Jkcyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeUZpbHRlci5wcm90b3R5cGUu
YWNjZXB0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0
aW9uTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25N
b2RlbC5wcm90b3R5cGUuZ2V0IF9yZWNvcmRTdHlsZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yQ29tbW9uLmNzczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL3RpbWVsaW5lUGFuZWwuY3NzOgorICAgICAgICAoI3RpbWVsaW5lLWNvbnRhaW5lcik6Cisg
ICAgICAgICgudGltZWxpbmUgLnJlc291cmNlcy1ldmVudC1kaXZpZGVyKToKKyAgICAgICAgKC50
aW1lbGluZS50aW1lbGluZS1zdGFydC1hdC16ZXJvIC5yZXNvdXJjZXMtZGl2aWRlcik6CisgICAg
ICAgICgudGltZWxpbmUgLnJlc291cmNlcy1ldmVudC1kaXZpZGVyLnRpbWVsaW5lLWZyYW1lLWRp
dmlkZXIpOgorCiAyMDEyLTAzLTAyICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxj
YWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgQ3JlYXRlIGEgbWV0aG9kIGlu
IEVsZW1lbnQgdG8gY29tcGFyZSBhdHRyaWJ1dGVzIHdpdGggb3RoZXIgRWxlbWVudApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCBkZjFjMjVlZDQ5NjViN2IwYWVhOGMzOGUwODRhODhhYTgy
ZTg4MzA3Li5hNmI1NmE3NjZlMGEwYmU0NjBkMzRiMWE1MTBiNDQ0ZjdhMjhhNzg4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAzLTAyICBBbmRyZXkg
S29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGluc3RydW1lbnRh
dGlvbiBmb3IgZnJhbWUgc3RhcnQvZW5kIG9uIHRpbWVsaW5lLgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGFkZCB0aW1lbGluZSBpbnN0cnVtZW50YXRpb24gZm9yIGZyYW1lIGV2ZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAxMjcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIGV4cG9zZSBhbiBp
bnN0cnVtZW50YXRpb24gbWV0aG9kIGZyb20gV2ViV2lkZ2V0IHRvIG1hcmsgZnJhbWUgdXBkYXRl
IHN0YXJ0CisKKyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0Lmg6CisgICAgICAgIChXZWJXaWRn
ZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6Omluc3RydW1lbnRCZWdpbkZyYW1lKToK
KyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6aW5zdHJ1bWVudEJlZ2luRnJhbWUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KiBzcmMvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKwogMjAxMi0wMy0w
MSAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9z
c2Eub3JnPgogCiAgICAgICAgIE1ha2UgcGFyc2VyIGNvZGUgbm90IGRlcGVuZCBvbiBOYW1lZE5v
ZGVNYXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAKaW5kZXggYmU3Y2U3YzM0YzFiOTNkMTlkZDY3YTRlYmEzOTZlMjZlYzFi
NjA1YS4uMjdiNzQyYzJlOGQ1MTNlZWYzMzYyNjQ2YjI3N2QwNDIyOWFjNDQwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKQEAgLTM4Miw2ICszODIsMTIgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZEZpcmVUaW1lckltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ28KICAgICAgICAg
dGltZWxpbmVBZ2VudC0+ZGlkRmlyZVRpbWVyKCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRCZWdpbkZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzKQoreworICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGlu
ZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQor
ICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRCZWdpbkZyYW1lKCk7Cit9CisKIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxMYXlvdXRJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMpCiB7CiAgICAgaW50
IHRpbWVsaW5lQWdlbnRJZCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggN2MxY2IzMmZlNWI5MzZiNzRhNWY4MTg2
ZTdjMmU0NjRjMGUwMDM0Yy4uMmFjNzRkYWMwNmMxM2JkZDQxZmVmZGViMjYwZjIxNmQ5YTIyNWVh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaApAQCAtMTIwLDYgKzEyMCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBk
aWRFdmFsdWF0ZVNjcmlwdChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsK
ICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxGaXJlVGltZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGludCB0aW1lcklkKTsKICAgICBzdGF0aWMgdm9pZCBk
aWRGaXJlVGltZXIoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CisgICAg
c3RhdGljIHZvaWQgZGlkQmVnaW5GcmFtZShQYWdlKik7CiAgICAgc3RhdGljIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsTGF5b3V0KEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQg
ZGlkTGF5b3V0KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogICAgIHN0
YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbExvYWRYSFIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFhNTEh0dHBSZXF1ZXN0Kik7CkBAIC0yNzIsNiArMjczLDcgQEAgcHJp
dmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRFdmFsdWF0ZVNjcmlwdEltcGwoY29uc3QgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSB3aWxsRmlyZVRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgaW50
IHRpbWVySWQpOwogICAgIHN0YXRpYyB2b2lkIGRpZEZpcmVUaW1lckltcGwoY29uc3QgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CisgICAgc3RhdGljIHZvaWQgZGlkQmVnaW5GcmFt
ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyopOwogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUgd2lsbExheW91dEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyopOwogICAg
IHN0YXRpYyB2b2lkIGRpZExheW91dEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llJik7CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxs
TG9hZFhIUkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFhNTEh0dHBSZXF1ZXN0Kik7CkBAIC03
MTAsNiArNzEyLDE1IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
RmlyZVRpbWVyKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvCiAjZW5kaWYKIH0KIAoraW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRCZWdpbkZyYW1lKFBhZ2UqIHBh
Z2UpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9O
VEVORFModm9pZCgpKTsKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpKQorICAgICAgICBkaWRC
ZWdpbkZyYW1lSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzKTsKKyNlbmRpZgorfQorCiBpbmxpbmUg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbExheW91dChGcmFtZSogZnJhbWUpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApp
bmRleCBlZDdkMTQzZDVmNjI3ZjgxMTE3ZDYzYTU4OTk3MTk4ZTgyMDEzNmZkLi5mZDBmNzhjNmY1
NDAzYTVhMWRiM2Y3OTFkZTc1NTg5OWJlZmFhYTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC02MCw2ICs2MCw4IEBA
IHN0YXRpYyBjb25zdCBjaGFyIEV2ZW50RGlzcGF0Y2hbXSA9ICJFdmVudERpc3BhdGNoIjsKIHN0
YXRpYyBjb25zdCBjaGFyIExheW91dFtdID0gIkxheW91dCI7CiBzdGF0aWMgY29uc3QgY2hhciBS
ZWNhbGN1bGF0ZVN0eWxlc1tdID0gIlJlY2FsY3VsYXRlU3R5bGVzIjsKIHN0YXRpYyBjb25zdCBj
aGFyIFBhaW50W10gPSAiUGFpbnQiOworc3RhdGljIGNvbnN0IGNoYXIgQmVnaW5GcmFtZVtdID0g
IkJlZ2luRnJhbWUiOworCiBzdGF0aWMgY29uc3QgY2hhciBQYXJzZUhUTUxbXSA9ICJQYXJzZUhU
TUwiOwogCiBzdGF0aWMgY29uc3QgY2hhciBUaW1lckluc3RhbGxbXSA9ICJUaW1lckluc3RhbGwi
OwpAQCAtMTcwLDYgKzE3MiwxMSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldElu
Y2x1ZGVNZW1vcnlEZXRhaWxzKEVycm9yU3RyaW5nKiwgYm9vbCB2YWx1ZSkKICAgICBtX3N0YXRl
LT5zZXRCb29sZWFuKFRpbWVsaW5lQWdlbnRTdGF0ZTo6aW5jbHVkZU1lbW9yeURldGFpbHMsIHZh
bHVlKTsKIH0KIAordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRCZWdpbkZyYW1lKCkK
K3sKKyAgICBhcHBlbmRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgVGltZWxpbmVS
ZWNvcmRUeXBlOjpCZWdpbkZyYW1lLCB0cnVlKTsKK30KKwogdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50Ojp3aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNj
cmlwdExpbmUpCiB7CiAgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVGdW5jdGlvbkNhbGxEYXRhKHNjcmlwdE5hbWUsIHNjcmlwdExpbmUpLCBUaW1lbGlu
ZVJlY29yZFR5cGU6OkZ1bmN0aW9uQ2FsbCwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCBlOGMzNDg2OWE3YmE2YmM1
ZGQ2ZDM4MmI5N2E3NTgzNmRmZGFmMWZiLi40MmM1ODExMmY3NDlkOWQyOTEzY2YxYzY5NjQ2MzNl
NGJjZjJhZjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmgKQEAgLTgyLDYgKzgyLDggQEAgcHVibGljOgogICAgIHZvaWQgd2lsbERp
c3BhdGNoRXZlbnQoY29uc3QgRXZlbnQmKTsKICAgICB2b2lkIGRpZERpc3BhdGNoRXZlbnQoKTsK
IAorICAgIHZvaWQgZGlkQmVnaW5GcmFtZSgpOworCiAgICAgdm9pZCB3aWxsTGF5b3V0KCk7CiAg
ICAgdm9pZCBkaWRMYXlvdXQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzCmluZGV4IGZhNjZkNjMyNDk4OGNlZWQzNzJlYWIx
Zjg1YjI4MGVkMTVjNDJlMGQuLjgxNWZlN2E4MzU1NWVlOGU3MjFhZTA1Yjk2Y2Q3ZWZiZmE0YmQ1
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lTW9kZWwuanMKQEAgLTQzLDExICs0MywxMyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2Rl
bCA9IGZ1bmN0aW9uKCkKIFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUgPSB7
CiAgICAgUm9vdDogIlJvb3QiLAogICAgIEV2ZW50RGlzcGF0Y2g6ICJFdmVudERpc3BhdGNoIiwK
KworICAgIEJlZ2luRnJhbWU6ICJCZWdpbkZyYW1lIiwKICAgICBMYXlvdXQ6ICJMYXlvdXQiLAog
ICAgIFJlY2FsY3VsYXRlU3R5bGVzOiAiUmVjYWxjdWxhdGVTdHlsZXMiLAogICAgIFBhaW50OiAi
UGFpbnQiLAotICAgIFBhcnNlSFRNTDogIlBhcnNlSFRNTCIsCiAKKyAgICBQYXJzZUhUTUw6ICJQ
YXJzZUhUTUwiLAogCiAgICAgVGltZXJJbnN0YWxsOiAiVGltZXJJbnN0YWxsIiwKICAgICBUaW1l
clJlbW92ZTogIlRpbWVyUmVtb3ZlIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzCmluZGV4IGFlZTUxYjcz
M2QyZDgzNmQwZmQ4YWRlYzYyYWUxMDk0MDEyOGQ4OTEuLmE4MTcwZTllNTk0YjdlNWI5NDgzMmY5
YTJmMjhhZjM2NWZlM2FlYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qcwpAQCAtMzYsMTggKzM2LDE0
IEBACiBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUgPSBmdW5jdGlvbihwcmVzZW50
YXRpb25Nb2RlbCkKIHsKICAgICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKLSAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gImZpbGwiOworICAgIHRoaXMu
ZWxlbWVudC5pZCA9ICJ0aW1lbGluZS1vdmVydmlldy1wYW5lbCI7CiAKICAgICB0aGlzLl9zdGFy
dEF0WmVybyA9IGZhbHNlOwotICAgIHRoaXMuX3RvcExldmVsUmVjb3JkSW5kZXggPSAwOwotICAg
IHRoaXMuX3dpbmRvd0luZGV4TGVmdCA9IDA7Ci0gICAgdGhpcy5fd2luZG93SW5kZXhSaWdodCA9
IG51bGw7CisgICAgdGhpcy5fd2luZG93U3RhcnRUaW1lID0gMDsKKyAgICB0aGlzLl93aW5kb3dF
bmRUaW1lID0gbnVsbDsKIAogICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsID0gcHJlc2VudGF0
aW9uTW9kZWw7CiAKLSAgICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKLSAgICB0aGlzLmVsZW1lbnQuaWQgPSAidGltZWxpbmUtb3ZlcnZpZXctcGFuZWwiOwot
CiAgICAgdGhpcy5fdG9wUGFuZVNpZGViYXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CiAgICAgdGhpcy5fdG9wUGFuZVNpZGViYXJFbGVtZW50LmlkID0gInRpbWVsaW5l
LW92ZXJ2aWV3LXNpZGViYXIiOwogCkBAIC02NiwxOCArNjIsMjMgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lT3ZlcnZpZXdQYW5lID0gZnVuY3Rpb24ocHJlc2VudGF0aW9uTW9kZWwpCiAgICAgdG9w
UGFuZVNpZGViYXJUcmVlLmFwcGVuZENoaWxkKHRoaXMuX21lbW9yeU92ZXJ2aWV3SXRlbSk7CiAg
ICAgdGhpcy5fbWVtb3J5T3ZlcnZpZXdJdGVtLm9uc2VsZWN0ID0gdGhpcy5fc2hvd01lbW9yeUdy
YXBoLmJpbmQodGhpcyk7CiAKKyAgICB0aGlzLl9vdmVydmlld0NvbnRhaW5lciA9IHRoaXMuZWxl
bWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgImZpbGwiKTsKKyAgICB0aGlzLl9vdmVydmlld0NvbnRh
aW5lci5pZCA9ICJ0aW1lbGluZS1vdmVydmlldy1jb250YWluZXIiOworCiAgICAgdGhpcy5fb3Zl
cnZpZXdHcmlkID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUdyaWQoKTsKICAgICB0aGlzLl9v
dmVydmlld0dyaWQuZWxlbWVudC5pZCA9ICJ0aW1lbGluZS1vdmVydmlldy1ncmlkIjsKICAgICB0
aGlzLl9vdmVydmlld0dyaWQuaXRlbXNHcmFwaHNFbGVtZW50LmlkID0gInRpbWVsaW5lLW92ZXJ2
aWV3LXRpbWVsaW5lcyI7CiAKKyAgICB0aGlzLl9vdmVydmlld0NvbnRhaW5lci5hcHBlbmRDaGls
ZCh0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudCk7CisKICAgICB0aGlzLl9oZWFwR3JhcGggPSBu
ZXcgV2ViSW5zcGVjdG9yLkhlYXBHcmFwaCgpOwogICAgIHRoaXMuX2hlYXBHcmFwaC5lbGVtZW50
LmlkID0gInRpbWVsaW5lLW92ZXJ2aWV3LW1lbW9yeSI7CiAgICAgdGhpcy5fb3ZlcnZpZXdHcmlk
LmVsZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMuX2hlYXBHcmFwaC5lbGVtZW50LCB0aGlzLl9vdmVy
dmlld0dyaWQuaXRlbXNHcmFwaHNFbGVtZW50KTsKIAotICAgIHRoaXMuX292ZXJ2aWV3V2luZG93
ID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3V2luZG93KHRoaXMuX292ZXJ2aWV3
R3JpZC5lbGVtZW50KTsKLSAgICB0aGlzLl9vdmVydmlld1dpbmRvdy5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3V2luZG93LkV2ZW50cy5XaW5kb3dDaGFuZ2Vk
LCB0aGlzLl9maXJlV2luZG93Q2hhbmdlZCwgdGhpcyk7CisgICAgdGhpcy5fb3ZlcnZpZXdXaW5k
b3cgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3codGhpcy5fb3ZlcnZp
ZXdDb250YWluZXIpOworICAgIHRoaXMuX292ZXJ2aWV3V2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cuRXZlbnRzLldpbmRvd0NoYW5nZWQs
IHRoaXMuX29uV2luZG93Q2hhbmdlZCwgdGhpcyk7CiAKLSAgICB0aGlzLmVsZW1lbnQuYXBwZW5k
Q2hpbGQodGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQpOworICAgIHRoaXMuX292ZXJ2aWV3Q29u
dGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50KTsKIAogICAgIHZh
ciBzZXBhcmF0b3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAg
c2VwYXJhdG9yRWxlbWVudC5pZCA9ICJ0aW1lbGluZS1vdmVydmlldy1zZXBhcmF0b3IiOwpAQCAt
OTQsNyArOTUsNiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUgPSBmdW5jdGlv
bihwcmVzZW50YXRpb25Nb2RlbCkKICAgICB9CiAKICAgICB0aGlzLl9vdmVydmlld0dyaWQuc2V0
U2Nyb2xsQW5kRGl2aWRlclRvcCgwLCAwKTsKLQogICAgIHRoaXMuX292ZXJ2aWV3Q2FsY3VsYXRv
ciA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld0NhbGN1bGF0b3IoKTsKIH0KIApA
QCAtMTI3LDcgKzEyNyw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90
b3R5cGUgPSB7CiAgICAgewogICAgICAgICB0aGlzLl9tZW1vcnlPdmVydmlld0l0ZW0ucmV2ZWFs
QW5kU2VsZWN0KGZhbHNlKTsKICAgICAgICAgdGhpcy5faGVhcEdyYXBoLnNob3coKTsKLSAgICAg
ICAgdGhpcy5faGVhcEdyYXBoLnVwZGF0ZSh0aGlzLl9yZWNvcmRzKTsKKyAgICAgICAgdGhpcy5f
aGVhcEdyYXBoLnVwZGF0ZSh0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5yb290UmVjb3JkKCkuY2hp
bGRyZW4pOwogICAgICAgICB0aGlzLl9vdmVydmlld0dyaWQuaXRlbXNHcmFwaHNFbGVtZW50LmFk
ZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuRXZlbnRzLk1vZGVDaGFuZ2Vk
LCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuTW9kZS5NZW1vcnkpOwogICAgIH0s
CkBAIC0xNDMsMTIgKzE0MywxMCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUu
cHJvdG90eXBlID0gewogICAgICAgICBpZiAoZW5hYmxlZCkgewogICAgICAgICAgICAgaWYgKHRo
aXMuX2hlYXBHcmFwaC52aXNpYmxlKQogICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dUaW1lbGlu
ZXMoKTsKLSAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ0aW1lbGluZS1z
dGFydC1hdC16ZXJvIik7Ci0gICAgICAgICAgICB0aGlzLl9zdGFydEF0WmVyb092ZXJ2aWV3ID0g
bmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZVN0YXJ0QXRaZXJvT3ZlcnZpZXcodGhpcyk7Ci0gICAg
ICAgICAgICB0aGlzLl9zdGFydEF0WmVyb092ZXJ2aWV3LnNob3codGhpcy5lbGVtZW50KTsKLSAg
ICAgICAgICAgIHRoaXMuX3N0YXJ0QXRaZXJvT3ZlcnZpZXcudXBkYXRlKHRoaXMuX3JlY29yZHMp
OworICAgICAgICAgICAgdGhpcy5fc3RhcnRBdFplcm9PdmVydmlldyA9IG5ldyBXZWJJbnNwZWN0
b3IuVGltZWxpbmVTdGFydEF0WmVyb092ZXJ2aWV3KCk7CisgICAgICAgICAgICB0aGlzLl9zdGFy
dEF0WmVyb092ZXJ2aWV3LnNob3codGhpcy5fb3ZlcnZpZXdDb250YWluZXIpOworICAgICAgICAg
ICAgdGhpcy5fc3RhcnRBdFplcm9PdmVydmlldy51cGRhdGUodGhpcy5fcHJlc2VudGF0aW9uTW9k
ZWwucm9vdFJlY29yZCgpLmNoaWxkcmVuKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IHRoaXMuZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJ0aW1lbGluZS1zdGFydC1hdC16ZXJvIik7
CiAgICAgICAgICAgICB0aGlzLl9zdGFydEF0WmVyb092ZXJ2aWV3LmRldGFjaCgpOwogICAgICAg
ICAgICAgdGhpcy5fc3RhcnRBdFplcm9PdmVydmlldyA9IG51bGw7CiAgICAgICAgICAgICB0aGlz
Ll9zaG93VGltZWxpbmVzKCk7CkBAIC0xNjEsMTAgKzE1OSw4IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2NhdGVnb3J5R3Jh
cGhzW2NhdGVnb3J5Lm5hbWVdLmRpbW1lZCA9IGNhdGVnb3J5LmhpZGRlbjsKICAgICB9LAogCi0g
ICAgdXBkYXRlOiBmdW5jdGlvbihyZWNvcmRzLCBzaG93U2hvcnRFdmVudHMpCisgICAgdXBkYXRl
OiBmdW5jdGlvbihzaG93U2hvcnRFdmVudHMpCiAgICAgewotICAgICAgICB0aGlzLl90b3BMZXZl
bFJlY29yZEluZGV4ID0gMDsKLSAgICAgICAgdGhpcy5fcmVjb3JkcyA9IHJlY29yZHM7CiAgICAg
ICAgIHRoaXMuX3Nob3dTaG9ydEV2ZW50cyA9IHNob3dTaG9ydEV2ZW50czsKICAgICAgICAgLy8g
Q2xlYXIgc3VtbWFyeSBiYXJzLgogICAgICAgICB2YXIgdGltZWxpbmVzID0ge307CkBAIC0xNzUs
MTMgKzE3MSwxNCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBl
ID0gewogCiAgICAgICAgIC8vIENyZWF0ZSBzcGFyc2UgYXJyYXlzIHdpdGggMTAxIGNlbGxzIGVh
Y2ggdG8gZmlsbCB3aXRoIGNodW5rcyBmb3IgYSBnaXZlbiBjYXRlZ29yeS4KICAgICAgICAgdGhp
cy5fb3ZlcnZpZXdDYWxjdWxhdG9yLnJlc2V0KCk7Ci0gICAgICAgIAorCiAgICAgICAgIGZ1bmN0
aW9uIHVwZGF0ZUJvdW5kYXJpZXMocmVjb3JkKQogICAgICAgICB7CiAgICAgICAgICAgICB0aGlz
Ll9vdmVydmlld0NhbGN1bGF0b3IudXBkYXRlQm91bmRhcmllcyhyZWNvcmQpOwogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0gICAgICAgIAorCisgICAgICAgIHZhciByZWNv
cmRzID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwucm9vdFJlY29yZCgpLmNoaWxkcmVuOwogICAg
ICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5mb3JBbGxSZWNvcmRzKHJlY29yZHMsIHVw
ZGF0ZUJvdW5kYXJpZXMuYmluZCh0aGlzKSk7CiAKICAgICAgICAgZnVuY3Rpb24gbWFya1BlcmNl
bnRhZ2VzRm9yUmVjb3JkKHJlY29yZCkKQEAgLTIzMyw2ICsyMzAsOCBAQCBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlID0gewogICAgICAgICB2YXIgZGl2aWRlcnMg
PSBbXTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgKytpKSB7
CiAgICAgICAgICAgICB2YXIgcmVjb3JkID0gcmVjb3Jkc1tpXTsKKyAgICAgICAgICAgIGlmIChy
ZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZS5CZWdp
bkZyYW1lKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgdmFyIHBvc2l0
aW9ucyA9IHRoaXMuX292ZXJ2aWV3Q2FsY3VsYXRvci5jb21wdXRlQmFyR3JhcGhQZXJjZW50YWdl
cyhyZWNvcmQpOwogICAgICAgICAgICAgdmFyIGRpdmlkZXJQb3NpdGlvbiA9IE1hdGgucm91bmQo
cG9zaXRpb25zLnN0YXJ0ICogMTApOwogICAgICAgICAgICAgaWYgKGRpdmlkZXJzW2RpdmlkZXJQ
b3NpdGlvbl0pCkBAIC0yNDYsMTIgKzI0NSwxNCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVy
dmlld1BhbmUucHJvdG90eXBlID0gewogCiAgICAgc2lkZWJhclJlc2l6ZWQ6IGZ1bmN0aW9uKHdp
ZHRoKQogICAgIHsKLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQuc3R5bGUubGVm
dCA9IHdpZHRoICsgInB4IjsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdDb250YWluZXIuc3R5bGUu
bGVmdCA9IHdpZHRoICsgInB4IjsKICAgICAgICAgdGhpcy5fdG9wUGFuZVNpZGViYXJFbGVtZW50
LnN0eWxlLndpZHRoID0gd2lkdGggKyAicHgiOwogICAgIH0sCiAKICAgICByZXNldDogZnVuY3Rp
b24oKQogICAgIHsKKyAgICAgICAgdGhpcy5fd2luZG93U3RhcnRUaW1lID0gMDsKKyAgICAgICAg
dGhpcy5fd2luZG93RW5kVGltZSA9IG51bGw7CiAgICAgICAgIHRoaXMuX292ZXJ2aWV3V2luZG93
LnJlc2V0KCk7CiAgICAgICAgIHRoaXMuX292ZXJ2aWV3Q2FsY3VsYXRvci5yZXNldCgpOwogICAg
ICAgICB0aGlzLl9vdmVydmlld0dyaWQudXBkYXRlRGl2aWRlcnModHJ1ZSwgdGhpcy5fb3ZlcnZp
ZXdDYWxjdWxhdG9yKTsKQEAgLTI2OSwyNSArMjcwLDE3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgYWNjZXB0OiBmdW5jdGlv
bihyZWNvcmQpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fc3RhcnRBdFplcm9PdmVydmlldykg
ewotICAgICAgICAgICAgaWYgKHJlY29yZC5wYXJlbnQgPT09IHRoaXMuX3ByZXNlbnRhdGlvbk1v
ZGVsLnJvb3RSZWNvcmQoKSkKLSAgICAgICAgICAgICAgICArK3RoaXMuX3RvcExldmVsUmVjb3Jk
SW5kZXg7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5fdG9wTGV2ZWxSZWNvcmRJbmRleCA+IHRo
aXMuX3dpbmRvd0luZGV4TGVmdCAmJgotICAgICAgICAgICAgICAgICh0eXBlb2YgdGhpcy5fd2lu
ZG93SW5kZXhSaWdodCAhPT0gIm51bWJlciIgfHwgdGhpcy5fdG9wTGV2ZWxSZWNvcmRJbmRleCA8
PSB0aGlzLl93aW5kb3dJbmRleFJpZ2h0KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IHZhciBhYnNvbHV0ZU1pbiA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLm1pbmltdW1SZWNvcmRU
aW1lKCk7Ci0gICAgICAgICAgICB2YXIgYWJzb2x1dGVNYXggPSB0aGlzLl9wcmVzZW50YXRpb25N
b2RlbC5tYXhpbXVtUmVjb3JkVGltZSgpOwotICAgICAgICAgICAgdmFyIHdpbmRvd0xlZnQgPSBh
YnNvbHV0ZU1pbiArIChhYnNvbHV0ZU1heCAtIGFic29sdXRlTWluKSAqIHRoaXMud2luZG93TGVm
dCgpOwotICAgICAgICAgICAgdmFyIHdpbmRvd1JpZ2h0ID0gYWJzb2x1dGVNaW4gKyAoYWJzb2x1
dGVNYXggLSBhYnNvbHV0ZU1pbikgKiB0aGlzLndpbmRvd1JpZ2h0KCk7Ci0gICAgICAgICAgICBy
ZXR1cm4gcmVjb3JkLmVuZFRpbWUgPj0gd2luZG93TGVmdCAmJiByZWNvcmQuc3RhcnRUaW1lIDw9
IHdpbmRvd1JpZ2h0OwotICAgICAgICB9CisgICAgICAgIHJldHVybiByZWNvcmQuZW5kVGltZSA+
PSB0aGlzLl93aW5kb3dTdGFydFRpbWUgJiYgKHR5cGVvZiB0aGlzLl93aW5kb3dFbmRUaW1lICE9
PSAibnVtYmVyIiB8fCByZWNvcmQuc3RhcnRUaW1lIDw9IHRoaXMuX3dpbmRvd0VuZFRpbWUpOwor
ICAgIH0sCisKKyAgICB3aW5kb3dTdGFydFRpbWU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLl93aW5kb3dTdGFydFRpbWUgfHwgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwu
bWluaW11bVJlY29yZFRpbWUoKTsKICAgICB9LAogCi0gICAgX3NldFdpbmRvd0luZGljZXM6IGZ1
bmN0aW9uKGluZGV4TGVmdCwgaW5kZXhSaWdodCkKKyAgICB3aW5kb3dFbmRUaW1lOiBmdW5jdGlv
bigpCiAgICAgewotICAgICAgICB0aGlzLl93aW5kb3dJbmRleExlZnQgPSBpbmRleExlZnQ7Ci0g
ICAgICAgIHRoaXMuX3dpbmRvd0luZGV4UmlnaHQgPSBpbmRleFJpZ2h0OwotICAgICAgICB0aGlz
Ll9maXJlV2luZG93Q2hhbmdlZCgpOworICAgICAgICByZXR1cm4gdGhpcy5fd2luZG93RW5kVGlt
ZSB8fCB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5tYXhpbXVtUmVjb3JkVGltZSgpOwogICAgIH0s
CiAKICAgICB3aW5kb3dMZWZ0OiBmdW5jdGlvbigpCkBAIC0zMDAsOCArMjkzLDE4IEBAIFdlYklu
c3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVy
biB0aGlzLl9vdmVydmlld1dpbmRvdy53aW5kb3dSaWdodDsKICAgICB9LAogCi0gICAgX2ZpcmVX
aW5kb3dDaGFuZ2VkOiBmdW5jdGlvbigpCisgICAgX29uV2luZG93Q2hhbmdlZDogZnVuY3Rpb24o
KQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3N0YXJ0QXRaZXJvT3ZlcnZpZXcpIHsKKyAgICAg
ICAgICAgIHZhciB0aW1lcyA9IHRoaXMuX3N0YXJ0QXRaZXJvT3ZlcnZpZXcuZ2V0V2luZG93VGlt
ZXModGhpcy53aW5kb3dMZWZ0KCksIHRoaXMud2luZG93UmlnaHQoKSk7CisgICAgICAgICAgICB0
aGlzLl93aW5kb3dTdGFydFRpbWUgPSB0aW1lcy5zdGFydFRpbWU7CisgICAgICAgICAgICB0aGlz
Ll93aW5kb3dFbmRUaW1lID0gdGltZXMuZW5kVGltZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHZhciBhYnNvbHV0ZU1pbiA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLm1pbmltdW1S
ZWNvcmRUaW1lKCk7CisgICAgICAgICAgICB2YXIgYWJzb2x1dGVNYXggPSB0aGlzLl9wcmVzZW50
YXRpb25Nb2RlbC5tYXhpbXVtUmVjb3JkVGltZSgpOworICAgICAgICAgICAgdGhpcy5fd2luZG93
U3RhcnRUaW1lID0gYWJzb2x1dGVNaW4gKyAoYWJzb2x1dGVNYXggLSBhYnNvbHV0ZU1pbikgKiB0
aGlzLndpbmRvd0xlZnQoKTsKKyAgICAgICAgICAgIHRoaXMuX3dpbmRvd0VuZFRpbWUgPSBhYnNv
bHV0ZU1pbiArIChhYnNvbHV0ZU1heCAtIGFic29sdXRlTWluKSAqIHRoaXMud2luZG93UmlnaHQo
KTsKKyAgICAgICAgfQogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuRXZlbnRzLldpbmRvd0NoYW5nZWQpOwogICAg
IH0KIH0KQEAgLTc2Myw1NSArNzY2LDEyOCBAQCBXZWJJbnNwZWN0b3IuSGVhcEdyYXBoLnByb3Rv
dHlwZSA9IHsKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LlRpbWVsaW5lT3ZlcnZpZXdQYW5lfSBwYW5lCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlZp
ZXd9CiAgKi8KLVdlYkluc3BlY3Rvci5UaW1lbGluZVN0YXJ0QXRaZXJvT3ZlcnZpZXcgPSBmdW5j
dGlvbihwYW5lKSB7CitXZWJJbnNwZWN0b3IuVGltZWxpbmVTdGFydEF0WmVyb092ZXJ2aWV3ID0g
ZnVuY3Rpb24oKSB7CiAgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzKTsKLSAgICB0aGlz
Ll9wYW5lID0gcGFuZTsKLSAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gInRpbWVsaW5lLW92
ZXJ2aWV3LXN0YXJ0LWF0LXplcm8gZmlsbCI7Ci0gICAgdGhpcy5fb3ZlcnZpZXdFbGVtZW50ID0g
dGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAidGltZWxpbmUtb3ZlcnZpZXctc3RhcnQt
YXQtemVyby1iYXJzIGZpbGwiKTsKLSAgICB0aGlzLl9vdmVydmlld1dpbmRvdyA9IG5ldyBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1dpbmRvdyh0aGlzLmVsZW1lbnQpOwotICAgIHRoaXMu
X292ZXJ2aWV3V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3Zl
cnZpZXdXaW5kb3cuRXZlbnRzLldpbmRvd0NoYW5nZWQsIHRoaXMuX29uV2luZG93Q2hhbmdlZCwg
dGhpcyk7Ci0gICAgdGhpcy5fcmVjb3Jkc1BlckJhciA9IDE7CisgICAgdGhpcy5lbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFt
ZSA9ICJ0aW1lbGluZS1vdmVydmlldy1zdGFydC1hdC16ZXJvLWJhcnMgZmlsbCI7CisgICAgdGhp
cy5yZXNldCgpOwogfQogCiBXZWJJbnNwZWN0b3IuVGltZWxpbmVTdGFydEF0WmVyb092ZXJ2aWV3
LnByb3RvdHlwZSA9IHsKICAgICByZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhp
cy5fcmVjb3Jkc1BlckJhciA9IDE7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3V2luZG93LnJlc2V0
KCk7CisgICAgICAgIHRoaXMuX2ZyYW1lTW9kZSA9IGZhbHNlOworICAgICAgICB0aGlzLl9iYXJU
aW1lcyA9IFtdOwogICAgIH0sCiAKICAgICB1cGRhdGU6IGZ1bmN0aW9uKHJlY29yZHMpCiAgICAg
ewogICAgICAgICByZWNvcmRzID0gdGhpcy5fZmlsdGVyUmVjb3JkcyhyZWNvcmRzKTsKKworICAg
ICAgICB2YXIgZnJhbWVDb3VudCA9IDA7CiAgICAgICAgIHZhciBib3VuZGFyeVNwYW4gPSAwOwor
ICAgICAgICB2YXIgbGFzdEZyYW1lVGltZSA9IHJlY29yZHMubGVuZ3RoICYmIHJlY29yZHNbMF0u
c3RhcnRUaW1lOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyAr
K2kpIHsKICAgICAgICAgICAgIHZhciByZWNvcmQgPSByZWNvcmRzW2ldOwogICAgICAgICAgICAg
dmFyIGR1cmF0aW9uID0gcmVjb3JkLmVuZFRpbWUgLSByZWNvcmQuc3RhcnRUaW1lOwogICAgICAg
ICAgICAgaWYgKGJvdW5kYXJ5U3BhbiA8IGR1cmF0aW9uKQogICAgICAgICAgICAgICAgIGJvdW5k
YXJ5U3BhbiA9IGR1cmF0aW9uOworICAgICAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLkJlZ2luRnJhbWUgfHwgKGZyYW1lQ291
bnQgJiYgKGkgKyAxID09PSByZWNvcmRzLmxlbmd0aCkpKSB7CisgICAgICAgICAgICAgICAgLy8g
aWYgd2UgaGF2ZSBmcmFtZXMsIHRha2UgZnJhbWUgZHVyYXRpb24gaW50byBhY2NvdW50CisgICAg
ICAgICAgICAgICAgaWYgKHJlY29yZC5zdGFydFRpbWUgLSBsYXN0RnJhbWVUaW1lID4gYm91bmRh
cnlTcGFuKQorICAgICAgICAgICAgICAgICAgICBib3VuZGFyeVNwYW4gPSByZWNvcmQuc3RhcnRU
aW1lIC0gbGFzdEZyYW1lVGltZTsKKyAgICAgICAgICAgICAgICBsYXN0RnJhbWVUaW1lID0gcmVj
b3JkLnN0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICArK2ZyYW1lQ291bnQ7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gSWYgd2UgaGF2ZSBmcmFtZXMsIGFnZ3JlZ2F0ZSBi
eSBmcmFtZXM7IG90aGVyd2lzZSwganVzdCBzaG93IHRvcC1sZXZlbCByZWNvcmRzLgorICAgICAg
ICB2YXIgcmVjb3JkQ291bnQgPSBmcmFtZUNvdW50IHx8IHJlY29yZHMubGVuZ3RoOworCisgICAg
ICAgIHZhciBzY2FsZSA9ICh0aGlzLmVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gNCkgLyBib3VuZGFy
eVNwYW47CisgICAgICAgIHRoaXMuX3JlY29yZHNQZXJCYXIgPSBNYXRoLm1heCgxLCByZWNvcmRD
b3VudCAqIDQgLyB0aGlzLmVsZW1lbnQuY2xpZW50V2lkdGgpOworICAgICAgICB2YXIgbnVtYmVy
T2ZCYXJzID0gTWF0aC5jZWlsKHJlY29yZENvdW50IC8gdGhpcy5fcmVjb3Jkc1BlckJhcik7CisK
KyAgICAgICAgdGhpcy5fYmFyVGltZXMgPSBbXTsKKyAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92
ZUNoaWxkcmVuKCk7CisgICAgICAgIHZhciBwYWRkaW5nID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNo
aWxkKCJkaXYiLCAicGFkZGluZyIpOworCisgICAgICAgIHZhciBzdGF0aXN0aWNzID0gZnJhbWVD
b3VudCA/IHRoaXMuX2FnZ3JlZ2F0ZUZyYW1lcyhyZWNvcmRzLCBudW1iZXJPZkJhcnMpIDogdGhp
cy5fYWdncmVnYXRlUmVjb3JkcyhyZWNvcmRzLCBudW1iZXJPZkJhcnMpOworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHN0YXRpc3RpY3MubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlz
LmVsZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMuX2J1aWxkQmFyKHN0YXRpc3RpY3NbaV0sIHNjYWxl
KSwgcGFkZGluZyk7CisgICAgfSwKKworICAgIF9hZ2dyZWdhdGVGcmFtZXM6IGZ1bmN0aW9uKHJl
Y29yZHMsIG51bWJlck9mQmFycykKKyAgICB7CisgICAgICAgIHZhciBzdGF0aXN0aWNzID0gW107
CisgICAgICAgIGZvciAodmFyIGJhck51bWJlciA9IDAsIGN1cnJlbnRSZWNvcmQgPSAwLCBjdXJy
ZW50RnJhbWUgPSAwOworICAgICAgICAgICAgIGJhck51bWJlciA8IG51bWJlck9mQmFycyAmJiBj
dXJyZW50UmVjb3JkIDwgcmVjb3Jkcy5sZW5ndGg7ICsrYmFyTnVtYmVyKSB7CisgICAgICAgICAg
ICB2YXIgbGFzdEZyYW1lID0gTWF0aC5mbG9vcigoYmFyTnVtYmVyICsgMSkgKiB0aGlzLl9yZWNv
cmRzUGVyQmFyKTsKKyAgICAgICAgICAgIHZhciBiYXJTdGFydFRpbWUgPSByZWNvcmRzW2N1cnJl
bnRSZWNvcmRdLnN0YXJ0VGltZTsKKyAgICAgICAgICAgIHZhciBsb25nZXN0RnJhbWVTdGF0aXN0
aWNzOworICAgICAgICAgICAgdmFyIGxvbmdlc3RGcmFtZVRpbWUgPSAwOworCisgICAgICAgICAg
ICBmb3IgKDsgY3VycmVudEZyYW1lIDwgbGFzdEZyYW1lICYmIGN1cnJlbnRSZWNvcmQgPCByZWNv
cmRzLmxlbmd0aDsgKytjdXJyZW50RnJhbWUpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVjb3Jk
c1tjdXJyZW50UmVjb3JkXS50eXBlID09PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNv
cmRUeXBlLkJlZ2luRnJhbWUpCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSZWNvcmQrKzsK
KyAgICAgICAgICAgICAgICB2YXIgZnJhbWVTdGF0aXN0aWNzID0ge307CisgICAgICAgICAgICAg
ICAgdmFyIGZyYW1lSW5mbyA9IHRoaXMuX2FnZ3JlZ2F0ZUZyYW1lU3RhdGlzdGljcyhyZWNvcmRz
LCBjdXJyZW50UmVjb3JkLCBmcmFtZVN0YXRpc3RpY3MpOworICAgICAgICAgICAgICAgIGN1cnJl
bnRSZWNvcmQgKz0gZnJhbWVJbmZvLnJlY29yZENvdW50OworICAgICAgICAgICAgICAgIGlmIChm
cmFtZUluZm8udG90YWxUaW1lID4gbG9uZ2VzdEZyYW1lVGltZSkgeworICAgICAgICAgICAgICAg
ICAgICBsb25nZXN0RnJhbWVTdGF0aXN0aWNzID0gZnJhbWVTdGF0aXN0aWNzOworICAgICAgICAg
ICAgICAgICAgICBsb25nZXN0RnJhbWVUaW1lID0gZnJhbWVJbmZvLnRvdGFsVGltZTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXIgYmFyRW5kVGltZSA9
IHJlY29yZHNbY3VycmVudFJlY29yZCAtIDFdLmVuZFRpbWU7CisgICAgICAgICAgICBpZiAobG9u
Z2VzdEZyYW1lU3RhdGlzdGljcykgeworICAgICAgICAgICAgICAgIHN0YXRpc3RpY3MucHVzaChs
b25nZXN0RnJhbWVTdGF0aXN0aWNzKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9iYXJUaW1lcy5w
dXNoKHsgc3RhcnRUaW1lOiBiYXJTdGFydFRpbWUsIGVuZFRpbWU6IGJhckVuZFRpbWUgfSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0YXRpc3RpY3M7CisgICAg
fSwKKworICAgIF9hZ2dyZWdhdGVGcmFtZVN0YXRpc3RpY3M6IGZ1bmN0aW9uKHJlY29yZHMsIHN0
YXJ0SW5kZXgsIHN0YXRpc3RpY3MpCisgICAgeworICAgICAgICB2YXIgdG90YWxUaW1lID0gMDsK
KyAgICAgICAgZm9yICh2YXIgaW5kZXggPSBzdGFydEluZGV4OyBpbmRleCA8IHJlY29yZHMubGVu
Z3RoOyArK2luZGV4KSB7CisgICAgICAgICAgICB2YXIgcmVjb3JkID0gcmVjb3Jkc1tpbmRleF07
CisgICAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdlYkluc3BlY3Rvci5UaW1lbGluZU1v
ZGVsLlJlY29yZFR5cGUuQmVnaW5GcmFtZSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIHZhciBjYXRlZ29yaWVzID0gT2JqZWN0LmtleXMocmVjb3JkLmFnZ3JlZ2F0ZWRTdGF0
cyk7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGVnb3JpZXMubGVuZ3RoOyAr
K2kpIHsKKyAgICAgICAgICAgICAgICB2YXIgY2F0ZWdvcnkgPSBjYXRlZ29yaWVzW2ldOworICAg
ICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHN0YXRpc3RpY3NbY2F0ZWdvcnldIHx8IDA7CisgICAg
ICAgICAgICAgICAgdmFsdWUgKz0gcmVjb3JkLmFnZ3JlZ2F0ZWRTdGF0c1tjYXRlZ29yeV07Cisg
ICAgICAgICAgICAgICAgdG90YWxUaW1lICs9IHJlY29yZC5hZ2dyZWdhdGVkU3RhdHNbY2F0ZWdv
cnldOworICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NbY2F0ZWdvcnldID0gdmFsdWU7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHRvdGFs
VGltZTogdG90YWxUaW1lLAorICAgICAgICAgICAgcmVjb3JkQ291bnQ6IGluZGV4IC0gc3RhcnRJ
bmRleAogICAgICAgICB9Ci0gICAgICAKLSAgICAgICAgdmFyIHNjYWxlID0gKHRoaXMuX292ZXJ2
aWV3RWxlbWVudC5jbGllbnRIZWlnaHQgLSA0KSAvIGJvdW5kYXJ5U3BhbjsKLSAgICAgICAgdGhp
cy5fcmVjb3Jkc1BlckJhciA9IE1hdGgubWF4KDEsIHJlY29yZHMubGVuZ3RoICogNCAvIHRoaXMu
ZWxlbWVudC5jbGllbnRXaWR0aCk7Ci0gICAgICAgIHZhciBudW1iZXJPZkJhcnMgPSBNYXRoLmNl
aWwocmVjb3Jkcy5sZW5ndGggLyB0aGlzLl9yZWNvcmRzUGVyQmFyKTsKLQotICAgICAgICB0aGlz
Ll9vdmVydmlld0VsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgdmFyIHBhZGRpbmcg
PSB0aGlzLl9vdmVydmlld0VsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJwYWRkaW5nIik7Ci0K
LSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1iZXJPZkJhcnM7ICsraSkgewotICAgICAg
ICAgICAgdmFyIGluZGV4ID0gTWF0aC5mbG9vcihpICogdGhpcy5fcmVjb3Jkc1BlckJhcik7Ci0g
ICAgICAgICAgICB2YXIgbG9uZ2VzdFJlY29yZCA9IHJlY29yZHNbaW5kZXhdOwotICAgICAgICAg
ICAgdmFyIHN0b3BJbmRleCA9IE1hdGgubWluKE1hdGguZmxvb3IoKGkgKyAxKSAqIHRoaXMuX3Jl
Y29yZHNQZXJCYXIpLCByZWNvcmRzLmxlbmd0aCk7Ci0gICAgICAgICAgICBmb3IgKCsraW5kZXg7
IGluZGV4IDwgc3RvcEluZGV4OyArK2luZGV4KSB7Ci0gICAgICAgICAgICAgICAgdmFyIHJlY29y
ZCA9IHJlY29yZHNbaW5kZXhdOworICAgIH0sCisKKyAgICBfYWdncmVnYXRlUmVjb3JkczogZnVu
Y3Rpb24ocmVjb3JkcywgbnVtYmVyT2ZCYXJzKQorICAgIHsKKyAgICAgICAgdmFyIHN0YXRpc3Rp
Y3MgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgYmFyTnVtYmVyID0gMCwgY3VycmVudFJlY29yZCA9
IDA7IGJhck51bWJlciA8IG51bWJlck9mQmFycyAmJiBjdXJyZW50UmVjb3JkIDwgcmVjb3Jkcy5s
ZW5ndGg7ICsrYmFyTnVtYmVyKSB7CisgICAgICAgICAgICB2YXIgYmFyU3RhcnRUaW1lID0gcmVj
b3Jkc1tjdXJyZW50UmVjb3JkXS5zdGFydFRpbWU7CisgICAgICAgICAgICB2YXIgbG9uZ2VzdFJl
Y29yZCA9IHJlY29yZHNbY3VycmVudFJlY29yZF07CisgICAgICAgICAgICB2YXIgbGFzdEluZGV4
ID0gTWF0aC5taW4oTWF0aC5mbG9vcigoYmFyTnVtYmVyICsgMSkgKiB0aGlzLl9yZWNvcmRzUGVy
QmFyKSwgcmVjb3Jkcy5sZW5ndGgpOworICAgICAgICAgICAgZm9yICgrK2N1cnJlbnRSZWNvcmQ7
IGN1cnJlbnRSZWNvcmQgPCBsYXN0SW5kZXg7ICsrY3VycmVudFJlY29yZCkgeworICAgICAgICAg
ICAgICAgIHZhciByZWNvcmQgPSByZWNvcmRzW2N1cnJlbnRSZWNvcmRdOwogICAgICAgICAgICAg
ICAgIGlmIChsb25nZXN0UmVjb3JkLmVuZFRpbWUgLSBsb25nZXN0UmVjb3JkLnN0YXJ0VGltZSA8
IHJlY29yZC5lbmRUaW1lIC0gcmVjb3JkLnN0YXJ0VGltZSkKICAgICAgICAgICAgICAgICAgICAg
bG9uZ2VzdFJlY29yZCA9IHJlY29yZDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMu
X292ZXJ2aWV3RWxlbWVudC5pbnNlcnRCZWZvcmUodGhpcy5fYnVpbGRCYXIobG9uZ2VzdFJlY29y
ZCwgc2NhbGUpLCBwYWRkaW5nKTsKKyAgICAgICAgICAgIHZhciBiYXJFbmRUaW1lID0gcmVjb3Jk
c1tjdXJyZW50UmVjb3JkIC0gMV0uZW5kVGltZTsKKyAgICAgICAgICAgIHN0YXRpc3RpY3MucHVz
aChsb25nZXN0UmVjb3JkLmFnZ3JlZ2F0ZWRTdGF0cyk7CisgICAgICAgICAgICB0aGlzLl9iYXJU
aW1lcy5wdXNoKHsgc3RhcnRUaW1lOiBiYXJTdGFydFRpbWUsIGVuZFRpbWU6IGJhckVuZFRpbWUg
fSk7CiAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0YXRpc3RpY3M7CiAgICAgfSwKIAogICAg
IF9maWx0ZXJSZWNvcmRzOiBmdW5jdGlvbihyZWNvcmRzKQpAQCAtODIzLDM5ICs4OTksNDEgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lU3RhcnRBdFplcm9PdmVydmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHJldHVybiByZWNvcmRzLmZpbHRlcihmaWx0ZXIpOwogICAgIH0sCiAKLSAgICBfYnVp
bGRCYXI6IGZ1bmN0aW9uKHJlY29yZCwgc2NhbGUpCisgICAgX2J1aWxkQmFyOiBmdW5jdGlvbihz
dGF0aXN0aWNzLCBzY2FsZSkKICAgICB7CiAgICAgICAgIHZhciBvdXRlciA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICBvdXRlci5jbGFzc05hbWUgPSAidGltZWxpbmUt
YmFyLXZlcnRpY2FsIjsKLSAgICAgICAgdmFyIHN0YXRzID0gcmVjb3JkLmFnZ3JlZ2F0ZWRTdGF0
czsKLSAgICAgICAgdmFyIGNhdGVnb3JpZXMgPSBPYmplY3Qua2V5cyhzdGF0cyk7CisgICAgICAg
IHZhciBjYXRlZ29yaWVzID0gT2JqZWN0LmtleXMoc3RhdGlzdGljcyk7CiAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgY2F0ZWdvcmllcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFy
IGNhdGVnb3J5ID0gY2F0ZWdvcmllc1tpXTsKLSAgICAgICAgICAgIHZhciBkdXJhdGlvbiA9IHN0
YXRzW2NhdGVnb3J5XTsKKyAgICAgICAgICAgIHZhciBkdXJhdGlvbiA9IHN0YXRpc3RpY3NbY2F0
ZWdvcnldOwogICAgICAgICAgICAgaWYgKCFkdXJhdGlvbikKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgIHZhciBiYXIgPSBvdXRlci5jcmVhdGVDaGlsZCgiZGl2IiwgInRp
bWVsaW5lLSIgKyBjYXRlZ29yeSk7Ci0gICAgICAgICAgICBiYXIuc3R5bGUuaGVpZ2h0ID0gKHN0
YXRzW2NhdGVnb3J5XSAqIHNjYWxlKSArICJweCI7CisgICAgICAgICAgICBiYXIuc3R5bGUuaGVp
Z2h0ID0gKHN0YXRpc3RpY3NbY2F0ZWdvcnldICogc2NhbGUpICsgInB4IjsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gb3V0ZXI7CiAgICAgfSwKIAotICAgIF9vbldpbmRvd0NoYW5nZWQ6IGZ1
bmN0aW9uKCkKKyAgICBnZXRXaW5kb3dUaW1lczogZnVuY3Rpb24od2luZG93TGVmdCwgd2luZG93
UmlnaHQpCiAgICAgewotICAgICAgICB2YXIgbGVmdE9mZnNldCA9IHRoaXMuX292ZXJ2aWV3V2lu
ZG93LndpbmRvd0xlZnQgKiB0aGlzLmVsZW1lbnQuY2xpZW50V2lkdGg7Ci0gICAgICAgIHZhciBy
aWdodE9mZnNldCA9IHRoaXMuX292ZXJ2aWV3V2luZG93LndpbmRvd1JpZ2h0ICogdGhpcy5lbGVt
ZW50LmNsaWVudFdpZHRoOwotICAgICAgICB2YXIgYmFycyA9IHRoaXMuX292ZXJ2aWV3RWxlbWVu
dC5jaGlsZHJlbjsKKyAgICAgICAgdmFyIHdpbmRvd1NwYW4gPSB0aGlzLmVsZW1lbnQuY2xpZW50
V2lkdGgKKyAgICAgICAgdmFyIGxlZnRPZmZzZXQgPSB3aW5kb3dMZWZ0ICogd2luZG93U3BhbjsK
KyAgICAgICAgdmFyIHJpZ2h0T2Zmc2V0ID0gd2luZG93UmlnaHQgKiB3aW5kb3dTcGFuOworICAg
ICAgICB2YXIgYmFycyA9IHRoaXMuZWxlbWVudC5jaGlsZHJlbjsKICAgICAgICAgdmFyIG9mZnNl
dDAgPSBiYXJzWzBdID8gYmFyc1swXS5vZmZzZXRMZWZ0IDogNDsKICAgICAgICAgdmFyIGJhcldp
ZHRoID0gOTsKICAgICAgICAgaWYgKGJhcnMubGVuZ3RoID4gMikgewogICAgICAgICAgICAgdmFy
IG9mZnNldDEgPSBiYXJzW2JhcnMubGVuZ3RoIC0gMl0ub2Zmc2V0TGVmdDsKICAgICAgICAgICAg
IGJhcldpZHRoID0gKG9mZnNldDEgLSBvZmZzZXQwKSAvIChiYXJzLmxlbmd0aCAtIDIpOwogICAg
ICAgICB9Ci0KLSAgICAgICAgdmFyIGxlZnRJbmRleCA9IE1hdGguZmxvb3IoKGxlZnRPZmZzZXQg
LSBvZmZzZXQwKSAvIGJhcldpZHRoICogdGhpcy5fcmVjb3Jkc1BlckJhcik7Ci0gICAgICAgIHZh
ciByaWdodEluZGV4ID0gcmlnaHRPZmZzZXQgKyBiYXJXaWR0aCA+PSB0aGlzLmVsZW1lbnQuY2xp
ZW50V2lkdGggPyBudWxsIDogTWF0aC5jZWlsKChyaWdodE9mZnNldCAtIG9mZnNldDAgLSAyKSAv
IGJhcldpZHRoICogdGhpcy5fcmVjb3Jkc1BlckJhcik7Ci0KLSAgICAgICAgdGhpcy5fcGFuZS5f
c2V0V2luZG93SW5kaWNlcyhsZWZ0SW5kZXgsIHJpZ2h0SW5kZXgpOworICAgICAgICB2YXIgZmly
c3RCYXIgPSBNYXRoLmZsb29yKE1hdGgubWF4KGxlZnRPZmZzZXQgLSBvZmZzZXQwLCAwKSAvIGJh
cldpZHRoKTsKKyAgICAgICAgdmFyIGxhc3RCYXIgPSBNYXRoLm1pbihNYXRoLmNlaWwoKHJpZ2h0
T2Zmc2V0IC0gb2Zmc2V0MCAtIDIpIC8gYmFyV2lkdGgpLCB0aGlzLl9iYXJUaW1lcy5sZW5ndGgg
LSAxKTsKKyAgICAgICAgY29uc3Qgc25hcFRvUmlnaHRUb2xlcmFuY2VQaXhlbHMgPSAzOworICAg
ICAgICByZXR1cm4geworICAgICAgICAgICAgc3RhcnRUaW1lOiB0aGlzLl9iYXJUaW1lc1tmaXJz
dEJhcl0uc3RhcnRUaW1lLAorICAgICAgICAgICAgZW5kVGltZTogcmlnaHRPZmZzZXQgKyBzbmFw
VG9SaWdodFRvbGVyYW5jZVBpeGVscyA+IHdpbmRvd1NwYW4gPyBudWxsIDogdGhpcy5fYmFyVGlt
ZXNbbGFzdEJhcl0uZW5kVGltZQorICAgICAgICB9CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggM2E5
YzU0YzgwYWFhYjY2NzZhN2JkMzlkZDU1ZjE0MDIzZjY4ZTI4Yi4uNjc3ODUzYWI0MTU3ZGEwODc5
Njg3Zjg2YmE5MGYzNzJhNWFmYTRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtMzM0LDggKzMzNCwxMyBAQCBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3RpbWVs
aW5lR3JpZC5yZW1vdmVFdmVudERpdmlkZXJzKCk7CiAgICAgICAgIHZhciBjbGllbnRXaWR0aCA9
IHRoaXMuX2dyYXBoUm93c0VsZW1lbnQub2Zmc2V0V2lkdGggLSB0aGlzLl9leHBhbmRPZmZzZXQ7
CiAgICAgICAgIHZhciBkaXZpZGVycyA9IFtdOworICAgICAgICAvLyBPbmx5IHNob3cgZnJhbWVz
IGlmIHdlJ3JlIHpvb21lZCBjbG9zZSBlbm91Z2ggLS0gb3RoZXJ3aXNlIHRoZXknZCBiZSB0byBk
ZW5zZSB0byBiZSB1c2VmdWwgYW5kIHdpbGwgb3ZlcnBvcHVsYXRlIERPTS4KKyAgICAgICAgdmFy
IHNob3dGcmFtZXMgPSB0aGlzLmNhbGN1bGF0b3IuYm91bmRhcnlTcGFuIDwgMS4wICYmIHRoaXMu
X3N0YXJ0QXRaZXJvOworCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fdGltZVN0
YW1wUmVjb3Jkcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHJlY29yZCA9IHRoaXMu
X3RpbWVTdGFtcFJlY29yZHNbaV07CisgICAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdl
Ykluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuQmVnaW5GcmFtZSAmJiAhc2hvd0Zy
YW1lcykKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIHZhciBwb3NpdGlv
bnMgPSB0aGlzLl9jYWxjdWxhdG9yLmNvbXB1dGVCYXJHcmFwaFdpbmRvd1Bvc2l0aW9uKHJlY29y
ZCwgY2xpZW50V2lkdGgpOwogICAgICAgICAgICAgdmFyIGRpdmlkZXJQb3NpdGlvbiA9IE1hdGgu
cm91bmQocG9zaXRpb25zLmxlZnQpOwogICAgICAgICAgICAgaWYgKGRpdmlkZXJQb3NpdGlvbiA8
IDAgfHwgZGl2aWRlclBvc2l0aW9uID49IGNsaWVudFdpZHRoIHx8IGRpdmlkZXJzW2RpdmlkZXJQ
b3NpdGlvbl0pCkBAIC0zNjUsNyArMzcwLDkgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlw
ZXMuVGltZVN0YW1wKSB7CiAgICAgICAgICAgICBldmVudERpdmlkZXIuY2xhc3NOYW1lICs9ICIg
cmVzb3VyY2VzLW9yYW5nZS1kaXZpZGVyIjsKICAgICAgICAgICAgIGV2ZW50RGl2aWRlclBhZGRp
bmcudGl0bGUgPSByZWNvcmQuZGF0YVsibWVzc2FnZSJdOwotICAgICAgICB9CisgICAgICAgIH0g
ZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLkJlZ2luRnJhbWUpCisgICAgICAg
ICAgICBldmVudERpdmlkZXIuY2xhc3NOYW1lICs9ICIgdGltZWxpbmUtZnJhbWUtZGl2aWRlciI7
CisKICAgICAgICAgZXZlbnREaXZpZGVyUGFkZGluZy5hcHBlbmRDaGlsZChldmVudERpdmlkZXIp
OwogICAgICAgICByZXR1cm4gZXZlbnREaXZpZGVyUGFkZGluZzsKICAgICB9LApAQCAtNDI1LDcg
KzQzMiwxMCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHZhciB0b2dnbGVkID0gIXRoaXMudG9nZ2xlU3RhcnRBdFplcm9CdXR0b24udG9nZ2xlZAog
ICAgICAgICB0aGlzLl9nbHVlUGFyZW50QnV0dG9uLmRpc2FibGVkID0gdG9nZ2xlZDsKICAgICAg
ICAgdGhpcy50b2dnbGVTdGFydEF0WmVyb0J1dHRvbi50b2dnbGVkID0gdG9nZ2xlZDsKLSAgICAg
ICAgdGhpcy5fY2FsY3VsYXRvciA9IHRvZ2dsZWQgPyBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
Rml0SW5XaW5kb3dDYWxjdWxhdG9yKHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsKSA6IG5ldyBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVDYWxjdWxhdG9yKHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsKTsKKyAg
ICAgICAgaWYgKHRvZ2dsZWQpCisgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFz
cygidGltZWxpbmUtc3RhcnQtYXQtemVybyIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0
aGlzLmVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygidGltZWxpbmUtc3RhcnQtYXQtemVybyIpOwog
ICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5zZXRHbHVlUmVjb3Jkcyh0aGlzLl9nbHVl
UGFyZW50QnV0dG9uLnRvZ2dsZWQgJiYgIXRoaXMudG9nZ2xlU3RhcnRBdFplcm9CdXR0b24udG9n
Z2xlZCk7CiAgICAgICAgIHRoaXMuX3JlcG9wdWxhdGVSZWNvcmRzKCk7CiAgICAgICAgIHRoaXMu
X292ZXJ2aWV3UGFuZS5zZXRTdGFydEF0WmVybyh0b2dnbGVkKTsKQEAgLTQ2Miw4ICs0NzIsMTAg
QEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB2YXIg
dGltZVN0YW1wUmVjb3JkcyA9IHRoaXMuX3RpbWVTdGFtcFJlY29yZHM7CiAgICAgICAgIGZ1bmN0
aW9uIGFkZFRpbWVzdGFtcFJlY29yZHMocmVjb3JkKQogICAgICAgICB7Ci0gICAgICAgICAgICBp
ZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLk1hcmtET01Db250ZW50IHx8IHJlY29yZC50
eXBlID09PSByZWNvcmRUeXBlcy5NYXJrTG9hZCB8fCByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlw
ZXMuVGltZVN0YW1wKQorICAgICAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSByZWNvcmRUeXBl
cy5NYXJrRE9NQ29udGVudCB8fCByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuTWFya0xvYWQg
fHwKKyAgICAgICAgICAgICAgICByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuVGltZVN0YW1w
IHx8IHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5CZWdpbkZyYW1lKSB7CiAgICAgICAgICAg
ICAgICAgdGltZVN0YW1wUmVjb3Jkcy5wdXNoKHJlY29yZCk7CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuZm9yQWxsUmVjb3Jkcyhb
IGZvcm1hdHRlZFJlY29yZCBdLCBhZGRUaW1lc3RhbXBSZWNvcmRzKTsKICAgICB9LApAQCAtNTU5
LDEzICs1NzEsMTAgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3JlZnJlc2hUaW1lb3V0OwogICAgICAgICB9CiAKLSAg
ICAgICAgdGhpcy5fb3ZlcnZpZXdQYW5lLnVwZGF0ZSh0aGlzLl9yb290UmVjb3JkKCkuY2hpbGRy
ZW4sIHRoaXMuX3Nob3dTaG9ydEV2ZW50cyk7CisgICAgICAgIHRoaXMuX292ZXJ2aWV3UGFuZS51
cGRhdGUodGhpcy5fc2hvd1Nob3J0RXZlbnRzKTsKIAotICAgICAgICBpZiAoIXRoaXMuX2JvdW5k
YXJpZXNBcmVWYWxpZCkgewotICAgICAgICAgICAgdmFyIG1pbiA9IHRoaXMuX3ByZXNlbnRhdGlv
bk1vZGVsLm1pbmltdW1SZWNvcmRUaW1lKCk7Ci0gICAgICAgICAgICB2YXIgbWF4ID0gdGhpcy5f
cHJlc2VudGF0aW9uTW9kZWwubWF4aW11bVJlY29yZFRpbWUoKTsKLSAgICAgICAgICAgIHRoaXMu
X2NhbGN1bGF0b3Iuc2V0V2luZG93KG1pbiArIChtYXggLSBtaW4pICogdGhpcy5fb3ZlcnZpZXdQ
YW5lLndpbmRvd0xlZnQoKSwgbWluICsgKG1heCAtIG1pbikgKiB0aGlzLl9vdmVydmlld1BhbmUu
d2luZG93UmlnaHQoKSk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKCF0aGlzLl9ib3VuZGFyaWVz
QXJlVmFsaWQpCisgICAgICAgICAgICB0aGlzLl9jYWxjdWxhdG9yLnNldFdpbmRvdyh0aGlzLl9v
dmVydmlld1BhbmUud2luZG93U3RhcnRUaW1lKCksIHRoaXMuX292ZXJ2aWV3UGFuZS53aW5kb3dF
bmRUaW1lKCkpOwogCiAgICAgICAgIHZhciByZWNvcmRzSW5XaW5kb3dDb3VudCA9IHRoaXMuX3Jl
ZnJlc2hSZWNvcmRzKCF0aGlzLl9ib3VuZGFyaWVzQXJlVmFsaWQpOwogICAgICAgICB0aGlzLl91
cGRhdGVSZWNvcmRzQ291bnRlcihyZWNvcmRzSW5XaW5kb3dDb3VudCk7CkBAIC02MDksNyArNjE4
LDYgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgIF9yZWZy
ZXNoUmVjb3JkczogZnVuY3Rpb24odXBkYXRlQm91bmRhcmllcykKICAgICB7CiAgICAgICAgIHZh
ciByZWNvcmRzSW5XaW5kb3cgPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5maWx0ZXJlZFJlY29y
ZHMoKTsKLSAgICAgICAgdGhpcy5fY2FsY3VsYXRvci5zZXRSZWNvcmRzKHJlY29yZHNJbldpbmRv
dyk7CiAKICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSB2aXNpYmxlIGFyZWEuCiAgICAgICAgIHRo
aXMuX3Njcm9sbFRvcCA9IHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuc2Nyb2xsVG9wOwpAQCAtNzkz
LDEwICs4MDEsNiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYWxjdWxhdG9yLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5ib3VuZGFyeVNwYW4gPSB0aGlzLm1heGltdW1Cb3VuZGFyeSAtIHRo
aXMubWluaW11bUJvdW5kYXJ5OwogICAgIH0sCiAKLSAgICBzZXRSZWNvcmRzOiBmdW5jdGlvbihy
ZWNvcmRzKQotICAgIHsKLSAgICB9LAotCiAgICAgZm9ybWF0VGltZTogZnVuY3Rpb24odmFsdWUp
CiAgICAgewogICAgICAgICByZXR1cm4gTnVtYmVyLnNlY29uZHNUb1N0cmluZyh2YWx1ZSArIHRo
aXMubWluaW11bUJvdW5kYXJ5IC0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwubWluaW11bVJlY29y
ZFRpbWUoKSk7CkBAIC04MDUsNDAgKzgwOSw2IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZUNhbGN1
bGF0b3IucHJvdG90eXBlID0gewogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgotICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbH0gcHJlc2VudGF0aW9uTW9kZWwK
LSAqIEBleHRlbmRzIFdlYkluc3BlY3Rvci5UaW1lbGluZUNhbGN1bGF0b3IKLSAqLwotV2ViSW5z
cGVjdG9yLlRpbWVsaW5lRml0SW5XaW5kb3dDYWxjdWxhdG9yID0gZnVuY3Rpb24ocHJlc2VudGF0
aW9uTW9kZWwpCi17Ci0gICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2FsY3VsYXRvci5jYWxsKHRo
aXMsIHByZXNlbnRhdGlvbk1vZGVsKTsKLX0KLQotV2ViSW5zcGVjdG9yLlRpbWVsaW5lRml0SW5X
aW5kb3dDYWxjdWxhdG9yLnByb3RvdHlwZSA9IHsKLSAgICBzZXRXaW5kb3c6IGZ1bmN0aW9uKG1p
bmltdW1Cb3VuZGFyeSwgbWF4aW11bUJvdW5kYXJ5KQotICAgIHsKLSAgICB9LAotCi0gICAgc2V0
UmVjb3JkczogZnVuY3Rpb24ocmVjb3JkcykKLSAgICB7Ci0gICAgICAgIHRoaXMubWluaW11bUJv
dW5kYXJ5ID0gLTE7Ci0gICAgICAgIHRoaXMubWF4aW11bUJvdW5kYXJ5ID0gLTE7Ci0KLSAgICAg
ICAgdmFyIGJvdW5kYXJ5U3BhbiA9IDA7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVj
b3Jkcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHJlY29yZCA9IHJlY29yZHNbaV07
Ci0gICAgICAgICAgICBpZiAodGhpcy5taW5pbXVtQm91bmRhcnkgPT0gLTEgfHwgcmVjb3JkLnN0
YXJ0VGltZSA8IHRoaXMubWluaW11bUJvdW5kYXJ5KQotICAgICAgICAgICAgICAgIHRoaXMubWlu
aW11bUJvdW5kYXJ5ID0gcmVjb3JkLnN0YXJ0VGltZTsKLSAgICAgICAgICAgIGlmICh0aGlzLm1h
eGltdW1Cb3VuZGFyeSA9PSAtMSB8fCByZWNvcmQuZW5kVGltZSA+IHRoaXMubWF4aW11bUJvdW5k
YXJ5KQotICAgICAgICAgICAgICAgIHRoaXMubWF4aW11bUJvdW5kYXJ5ID0gcmVjb3JkLmVuZFRp
bWU7Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5ib3VuZGFyeVNwYW4gPSB0aGlzLm1heGltdW1C
b3VuZGFyeSAtIHRoaXMubWluaW11bUJvdW5kYXJ5OwotICAgIH0KLX0KLQotV2ViSW5zcGVjdG9y
LlRpbWVsaW5lRml0SW5XaW5kb3dDYWxjdWxhdG9yLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVDYWxjdWxhdG9yLnByb3RvdHlwZTsKLQotLyoqCi0gKiBAY29uc3Ry
dWN0b3IKICAqLwogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkTGlzdFJvdyA9IGZ1bmN0aW9u
KCkKIHsKQEAgLTEwMzIsNyArMTAwMiw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5
RmlsdGVyLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBhY2NlcHQ6IGZ1bmN0aW9uKHJlY29y
ZCkKICAgICB7Ci0gICAgICAgIHJldHVybiAhcmVjb3JkLmNhdGVnb3J5LmhpZGRlbjsKKyAgICAg
ICAgcmV0dXJuICFyZWNvcmQuY2F0ZWdvcnkuaGlkZGVuICYmIHJlY29yZC50eXBlICE9PSBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLkJlZ2luRnJhbWU7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
UHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggNjhjOTg3YzRkNjhmMTc0NzM1YTk0
NDUwZTE4OTYwMGRkMGU2ODIwYi4uNWVmMzNjZjI2ZjU5YzQxOTY1YjkxM2EwNmJiNzQwYjA3NWU2
NDc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAtMjA1LDYgKzIwNSw3IEBA
IFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5MYXlvdXRdID0geyB0aXRsZTogV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJMYXlvdXQiKSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbInJlbmRl
cmluZyJdIH07CiAgICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUmVjYWxjdWxh
dGVTdHlsZXNdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZWNhbGN1bGF0ZSBT
dHlsZSIpLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sicmVuZGVyaW5nIl0gfTsKICAgICAgICAgICAg
IHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5QYWludF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlBhaW50IiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJyZW5kZXJpbmciXSB9Owor
ICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkJlZ2luRnJhbWVdID0geyB0aXRs
ZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJGcmFtZSBTdGFydCIpLCBjYXRlZ29yeTogY2F0ZWdv
cmllc1sicmVuZGVyaW5nIl0gfTsKICAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBl
cy5QYXJzZUhUTUxdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQYXJzZSIpLCBj
YXRlZ29yeTogY2F0ZWdvcmllc1sibG9hZGluZyJdIH07CiAgICAgICAgICAgICByZWNvcmRTdHls
ZXNbcmVjb3JkVHlwZXMuVGltZXJJbnN0YWxsXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiSW5zdGFsbCBUaW1lciIpLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sic2NyaXB0aW5nIl0g
fTsKICAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5UaW1lclJlbW92ZV0gPSB7
IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlbW92ZSBUaW1lciIpLCBjYXRlZ29yeTog
Y2F0ZWdvcmllc1sic2NyaXB0aW5nIl0gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yQ29tbW9uLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yQ29tbW9uLmNzcwppbmRleCA1MjY4NDMxNDA0Y2Q0
MGZmMTMwYmQ2NjA1NTNlOTg3OTZjYTlkNGU1Li5jYjc4YjAzMTFiZDNlNjQ3Mjg4NjIyMDhmMmIz
MDYwMWU0NjI0YzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3RvckNvbW1vbi5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3JDb21tb24uY3NzCkBAIC03OCwxMCArNzgsNiBAQCBpZnJhbWUudmll
dyB7CiAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiB9CiAKLS50aW1lbGluZSAucmVzb3VyY2Vz
LWV2ZW50LWRpdmlkZXJzIHsKLSAgICBoZWlnaHQ6IDE5cHg7Ci19Ci0KIC5yZXNvdXJjZXMtZGl2
aWRlcnMtbGFiZWwtYmFyIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgdG9wOiAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90aW1lbGluZVBh
bmVsLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdGltZWxpbmVQYW5l
bC5jc3MKaW5kZXggNDM5MGZmMGE0NDEwOWY1Y2M5ZjNjNzRhNDAwNWM1ZTMxZWQ2OGNjOS4uODc4
ZjA1NGQzNDg2ZDQyNThhZTMyNGRlOThhNDJhNjFiZTFiY2Q0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90aW1lbGluZVBhbmVsLmNzcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RpbWVsaW5lUGFuZWwuY3NzCkBAIC03Miwx
NiArNzIsNyBAQAogICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYigxNjMsIDE2MywgMTYz
KTsKIH0KIAotLnRpbWVsaW5lLXN0YXJ0LWF0LXplcm8gI3RpbWVsaW5lLW92ZXJ2aWV3LXNpZGVi
YXIgewotICAgIGRpc3BsYXk6IG5vbmU7Ci19Ci0KICN0aW1lbGluZS1vdmVydmlldy1ncmlkIHsK
LSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwcHg7Ci0gICAgYm90dG9tOiAwcHg7
Ci0gICAgbGVmdDogMjAwcHg7Ci0gICAgcmlnaHQ6IDBweDsKICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiByZ2IoMjU1LCAyNTUsIDI1NSk7CiB9CiAKQEAgLTE2Myw3ICsxNTQsNyBAQAogICAgIGJvdHRv
bTogMDsKICAgICByaWdodDogMDsKICAgICBib3JkZXItcmlnaHQ6IDAgbm9uZSB0cmFuc3BhcmVu
dDsKLSAgICBvdmVyZmxvdy15OiBhdXRvOworICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKICAgICBv
dmVyZmxvdy14OiBoaWRkZW47CiB9CiAKQEAgLTU5MywxMCArNTg0LDYgQEAKICAgICBmb250LXNp
emU6IDExcHg7CiB9CiAKLS50aW1lbGluZS1vdmVydmlldy1zdGFydC1hdC16ZXJvIHsKLSAgICBi
YWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKLX0KLQogI2NvdW50ZXItdmFsdWVzLWJhciB7CiAgICAg
Ym9yZGVyLWJvdHRvbTogc29saWQgMXB4IGxpZ2h0Z3JheTsKICAgICBtaW4taGVpZ2h0OiAxNXB4
OwpAQCAtNjQ0LDMgKzYzMSwxOSBAQAogICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdy
YWRpZW50KGxlZnQsIHJnYigyMTMsIDE4NSwgMjM2KSwgcmdiKDEzNywgNjIsIDIwMCkpOwogICAg
IGJvcmRlcjogc29saWQgMXB4IHJnYigxMzAsIDU5LCAxOTApOwogfQorCisudGltZWxpbmUgLnJl
c291cmNlcy1ldmVudC1kaXZpZGVyIHsKKyAgICBoZWlnaHQ6IDE5cHg7CisgICAgYm90dG9tOiBh
dXRvOworfQorCisudGltZWxpbmUudGltZWxpbmUtc3RhcnQtYXQtemVybyAucmVzb3VyY2VzLWRp
dmlkZXIgeworICAgIGhlaWdodDogMTlweDsKKyAgICBib3R0b206IGF1dG87Cit9CisKKy50aW1l
bGluZSAucmVzb3VyY2VzLWV2ZW50LWRpdmlkZXIudGltZWxpbmUtZnJhbWUtZGl2aWRlciB7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDE4NSwgMjAwLCAwLjgpOworICAgIGhlaWdo
dDogMTAwJTsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViV2lkZ2V0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaApp
bmRleCA1OGYzZmExNjk1ZjhjZTM2MjJkNjdmY2M1Y2Y2YzU1NDA5ZDdmYmIyLi5lOTcxMmQ3NDNj
M2UyNDBkZDU1ODUxMDhmYzNhNTRkZDA1YzQwNTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJXaWRnZXQuaApAQCAtMTkyLDYgKzE5MiwxMCBAQCBwdWJsaWM6CiAgICAgLy8g
cmVjdC4pCiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVdpbmRvd1Jlc2l6ZXJSZWN0KCkgeyB9
CiAKKyAgICAvLyBJbnN0cnVtZW50YXRpb24gbWV0aG9kIHRoYXQgbWFya3MgYmVnaW5uaW5nIG9m
IGZyYW1lIHVwZGF0ZSB0aGF0IGluY2x1ZGVzCisgICAgLy8gdGhpbmdzIGxpa2UgYW5pbWF0ZSgp
L2xheW91dCgpL3BhaW50KCkvY29tcG9zaXRlKCkuCisgICAgdmlydHVhbCB2b2lkIGluc3RydW1l
bnRCZWdpbkZyYW1lKCkgeyB9CisKIHByb3RlY3RlZDoKICAgICB+V2ViV2lkZ2V0KCkgeyB9CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGQ3YzY1
NGE2ZTQ4MzJjZDE4ODdhYzYxYmI3ZGUwNzU4ZjNkMTg2NDUuLmRjYWZmYWRmNjY3ZWY5MDliZTEz
NTBhZWUwMDU2MmEzNmFhYjZkZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKQEAgLTc0LDYgKzc0LDcgQEAKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1
ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgorI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIktleWJvYXJkQ29k
ZXMuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTGF5ZXJDaHJvbWl1
bS5oIgpAQCAtMTI2Niw2ICsxMjY3LDExIEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpZEV4aXRGdWxs
U2NyZWVuKCkKICNlbmRpZgogfQogCit2b2lkIFdlYlZpZXdJbXBsOjppbnN0cnVtZW50QmVnaW5G
cmFtZSgpCit7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRCZWdpbkZyYW1lKG1f
cGFnZS5nZXQoKSk7Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OmFuaW1hdGUoZG91YmxlIGZyYW1l
QmVnaW5UaW1lKQogewogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IGNiZjFhNTNlMWE5ZjgyMjlm
NTAxNjQ2ZjU3ZjdjNTliM2YzMjJjN2QuLjU1Nzc0MDdkZTNiNDExMjliMDVkMzRmZWM1MWQ5OGI2
NjA3ODJlY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAt
MTM5LDYgKzEzOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWNxdWlyZVBv
aW50ZXJMb2NrKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZExvc2VQb2ludGVyTG9jaygpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VXaW5kb3dSZXNpemVyUmVjdCgpOworICAgIHZpcnR1YWwg
dm9pZCBpbnN0cnVtZW50QmVnaW5GcmFtZSgpOwogCiAgICAgLy8gV2ViVmlldyBtZXRob2RzOgog
ICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplTWFpbkZyYW1lKFdlYkZyYW1lQ2xpZW50Kik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggZmFiZmYyODliZTIwODg3M2NmOGJhOWVhYjM0ZTE0ZWQxOGVhMWViMS4uYWViZjlkOWIz
YzgzYTJiYmEzY2VhNGIxOWJmYmRhNGMwODNkYzM1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDEyLTAzLTAyICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgQWRkIGluc3RydW1lbnRhdGlvbiBmb3IgZnJhbWUgc3RhcnQvZW5kIG9uIHRpbWVsaW5lLgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCB0aW1lbGluZSBpbnN0cnVtZW50YXRpb24gZm9y
IGZyYW1lIGV2ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODAxMjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3Rl
ZC50eHQ6CisKIDIwMTItMDMtMDIgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmViYXNlbGluZSBhIHRlc3Qgb24gTGVvcGFyZCBhZnRlciBleHBlY3RhdGlvbiB3
YXMgcmVtb3ZlZCBpbiByMTA5NTE2LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50
eHQKaW5kZXggYmU5OGMzNTUzNDY4NTgwNWRkNzViMGFiOWFhOTBjNDk5ODU1YjNjMy4uYTk5OTRl
ZTU2NjNjMGM4MzNkODYxOWYzN2FiYzkyMTE0NmZmNTllZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZW51bS1zdGFi
aWxpdHktZXhwZWN0ZWQudHh0CkBAIC01LDYgKzUsNyBAQCBBcHBsaWNhdGlvbnMgb3V0c2lkZSBv
ZiBXZWJLaXQgZGVwZW5kIG9uIHRoZSBzdGFiaWxpdHkgb2YgdGhlIG1hcHBpbmcgb2YgdGhlc2Ug
dAogewogICAgIFJvb3QgOiAiUm9vdCIKICAgICBFdmVudERpc3BhdGNoIDogIkV2ZW50RGlzcGF0
Y2giCisgICAgQmVnaW5GcmFtZSA6ICJCZWdpbkZyYW1lIgogICAgIExheW91dCA6ICJMYXlvdXQi
CiAgICAgUmVjYWxjdWxhdGVTdHlsZXMgOiAiUmVjYWxjdWxhdGVTdHlsZXMiCiAgICAgUGFpbnQg
OiAiUGFpbnQiCg==
</data>
<flag name="review"
          id="132758"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>