<?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>78599</bug_id>
          
          <creation_ts>2012-02-14 04:55:02 -0800</creation_ts>
          <short_desc>Web Inspector: [refactoring] extract TimelineOverviewWindow from TimelineOverviewPanel</short_desc>
          <delta_ts>2012-02-14 06:25:31 -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>apavlov</cc>
    
    <cc>bweinstein</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>556228</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-02-14 04:55:02 -0800</bug_when>
    <thetext>This patch separates the logic of window selection in timeline overview panel from the rest of the overview pane.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556235</commentid>
    <comment_count>1</comment_count>
      <attachid>126960</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-02-14 05:02:11 -0800</bug_when>
    <thetext>Created attachment 126960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556237</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 05:06:28 -0800</bug_when>
    <thetext>Attachment 126960 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets
Using index info to reconstruct a base tree...
&lt;stdin&gt;:1578: trailing whitespace.
        
&lt;stdin&gt;:1647: trailing whitespace.
    
&lt;stdin&gt;:1657: trailing whitespace.
    
&lt;stdin&gt;:1672: trailing whitespace.
        return 0;        
&lt;stdin&gt;:1674: trailing whitespace.
    
warning: squelched 7 whitespace errors
warning: 12 lines add whitespace errors.
Falling back to patching base and 3-way merge...
warning: too many files (created: 168776 deleted: 3), skipping inexact rename detection
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Auto-merging Source/WebKit2/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit2/ChangeLog
Auto-merging Tools/ChangeLog
CONFLICT (content): Merge conflict in Tools/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556241</commentid>
    <comment_count>3</comment_count>
      <attachid>126960</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-14 05:16:34 -0800</bug_when>
    <thetext>Comment on attachment 126960
Patch

Could you describe the responsibilities of each? What is TimelineOverviewPane and TimelineOverviewWindow now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556244</commentid>
    <comment_count>4</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-02-14 05:23:25 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 126960 [details])
&gt; Could you describe the responsibilities of each? What is TimelineOverviewPane and TimelineOverviewWindow now?

TimelineOverviewPane is a high-level class that holds together overview grid and heap graph. Overview window is essentially a control that manages window selection within an element passed as parent -- i.e. drag-n-drop resizing, scrolling etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556249</commentid>
    <comment_count>5</comment_count>
      <attachid>126964</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-02-14 05:29:29 -0800</bug_when>
    <thetext>Created attachment 126964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556251</commentid>
    <comment_count>6</comment_count>
      <attachid>126964</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-14 05:32:07 -0800</bug_when>
    <thetext>Comment on attachment 126964
Patch

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

&gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:196
&gt; +    this._parent = parentElement;

this._parentElement

&gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:237
&gt; +    scrollWindow: function(event)

Could you leave it in place for the sake of better diff?

&gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:261
&gt; +            if (node.hasStyleClass(&quot;resources-dividers-label-bar&quot;)) {

why did this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556252</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 05:32:10 -0800</bug_when>
    <thetext>Attachment 126964 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets
Using index info to reconstruct a base tree...
&lt;stdin&gt;:1578: trailing whitespace.
        
&lt;stdin&gt;:1647: trailing whitespace.
    
&lt;stdin&gt;:1657: trailing whitespace.
    
&lt;stdin&gt;:1672: trailing whitespace.
        return 0;        
&lt;stdin&gt;:1674: trailing whitespace.
    
warning: squelched 7 whitespace errors
warning: 12 lines add whitespace errors.
Falling back to patching base and 3-way merge...
warning: too many files (created: 168776 deleted: 3), skipping inexact rename detection
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Auto-merging Source/WebKit2/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit2/ChangeLog
Auto-merging Tools/ChangeLog
CONFLICT (content): Merge conflict in Tools/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556253</commentid>
    <comment_count>8</comment_count>
      <attachid>126965</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-02-14 05:41:05 -0800</bug_when>
    <thetext>Created attachment 126965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556254</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 05:43:33 -0800</bug_when>
    <thetext>Attachment 126965 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets
Using index info to reconstruct a base tree...
&lt;stdin&gt;:1578: trailing whitespace.
        
&lt;stdin&gt;:1647: trailing whitespace.
    
&lt;stdin&gt;:1657: trailing whitespace.
    
&lt;stdin&gt;:1672: trailing whitespace.
        return 0;        
&lt;stdin&gt;:1674: trailing whitespace.
    
warning: squelched 7 whitespace errors
warning: 12 lines add whitespace errors.
Falling back to patching base and 3-way merge...
warning: too many files (created: 168776 deleted: 3), skipping inexact rename detection
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Auto-merging Source/WebKit2/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit2/ChangeLog
Auto-merging Tools/ChangeLog
CONFLICT (content): Merge conflict in Tools/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556256</commentid>
    <comment_count>10</comment_count>
      <attachid>126965</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-14 05:44:29 -0800</bug_when>
    <thetext>Comment on attachment 126965
Patch

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

&gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:255
&gt; +            if (node.hasStyleClass(&quot;resources-dividers-label-bar&quot;)) {

Why did this change?

&gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:-264
&gt; -            if (this._overviewGrid.itemsGraphsElement.offsetWidth - window.end &gt; WebInspector.TimelineOverviewPane.MinSelectableSize)

This also might have side effects due to margins?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556258</commentid>
    <comment_count>11</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-02-14 05:45:35 -0800</bug_when>
    <thetext>(In reply to comment #6)

&gt; &gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:196
&gt; &gt; +    this._parent = parentElement;
&gt; this._parentElement

done

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:237
&gt; &gt; +    scrollWindow: function(event)
&gt; Could you leave it in place for the sake of better diff?

done (as long as another class qualifies as &quot;in place&quot; :-))

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:261
&gt; &gt; +            if (node.hasStyleClass(&quot;resources-dividers-label-bar&quot;)) {
&gt; 
&gt; why did this change?

We used to peak into private field of a class defined in another file. We could as well use the style here, considering it&apos;s not &apos;private&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556261</commentid>
    <comment_count>12</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-02-14 05:48:52 -0800</bug_when>
    <thetext>(In reply to comment #10)

&gt; &gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:-264
&gt; &gt; -            if (this._overviewGrid.itemsGraphsElement.offsetWidth - window.end &gt; WebInspector.TimelineOverviewPane.MinSelectableSize)
&gt; 
&gt; This also might have side effects due to margins?

The values are actually identical in our case. We do use clientWidth for the width of the parent container in quite a few places within the rest of overview window, do you see why it should be different in this particular case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556262</commentid>
    <comment_count>13</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-14 05:51:13 -0800</bug_when>
    <thetext>&gt; We used to peak into private field of a class defined in another file. We could as well use the style here, considering it&apos;s not &apos;private&apos;.

Style class is as private as any other private field, so we are only masking the issue. Is there a way to fix it properly?

&gt; The values are actually identical in our case. We do use clientWidth for the width of the parent container in quite a few places within the rest of overview window, do you see why it should be different in this particular case?

As you say, we decided to do differently in this case and I wonder if that might be for a reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556267</commentid>
    <comment_count>14</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-02-14 06:05:32 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; We used to peak into private field of a class defined in another file. We could as well use the style here, considering it&apos;s not &apos;private&apos;.
&gt; 
&gt; Style class is as private as any other private field, so we are only masking the issue. Is there a way to fix it properly?

I do not see a true fix for this yet, as least a cheap one. We do this because we&apos;d like to handle dragging on timeline label bar differently from that on the graph area (moving window vs. re-creating it). The label bar is in TimelineGrid, which is not related to overview pane. We can probably use a designated style to mark it, perhaps add it in the TimelineOverviewPane (this will still require making the element public).

&gt; &gt; The values are actually identical in our case. We do use clientWidth for the width of the parent container in quite a few places within the rest of overview window, do you see why it should be different in this particular case?
&gt; 
&gt; As you say, we decided to do differently in this case and I wonder if that might be for a reason.

A few days that I spent with the timeline code seriously undermine my ability to presume that all the decisions there were made consciously and in the good will ;) So I rather assured there&apos;s no practical difference between these values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556269</commentid>
    <comment_count>15</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-02-14 06:25:31 -0800</bug_when>
    <thetext>Committed r107709: &lt;http://trac.webkit.org/changeset/107709&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126960</attachid>
            <date>2012-02-14 05:02:11 -0800</date>
            <delta_ts>2012-02-14 05:29:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78599-20120214170209.patch</filename>
            <type>text/plain</type>
            <size>15817</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJhYjViNGQ0ODQ5YTQ5
OThhNDdhZjk0NDE1YjRlYmNiZWQzMjI2Mi4uMDY2N2IzOWYwNGUxMTFiNmIxMjg3OWVlNjk2YWQy
MjZmYjJiYWYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAyLTE0ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogW3JlZmFjdG9yaW5nXSBleHRyYWN0IFRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cgZnJvbSBUaW1l
bGluZU92ZXJ2aWV3UGFuZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4NTk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUucmVzZXQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5zY3JvbGxXaW5k
b3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cucHJvdG90eXBlLnJlc2V0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3V2luZG93LnByb3RvdHlw
ZS5zY3JvbGxXaW5kb3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdX
aW5kb3cucHJvdG90eXBlLl93aW5kb3dSZXNpemVEcmFnZ2luZyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGltZWxpbmVPdmVydmlld1dpbmRvdy5wcm90b3R5cGUuX2RyYWdXaW5kb3cpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cucHJvdG90eXBlLl93aW5k
b3dTZWxlY3RvckRyYWdnaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2
aWV3V2luZG93LnByb3RvdHlwZS5fZW5kV2luZG93U2VsZWN0b3JEcmFnZ2luZyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1dpbmRvdy5wcm90b3R5cGUuX3dpbmRvd0Ry
YWdnaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3V2luZG93LnBy
b3RvdHlwZS5fcmVzaXplV2luZG93UmlnaHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lT3ZlcnZpZXdXaW5kb3cucHJvdG90eXBlLl9yZXNpemVXaW5kb3dNYXhpbXVtKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3V2luZG93LnByb3RvdHlwZS5fc2V0V2lu
ZG93UG9zaXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5k
b3cucHJvdG90eXBlLl9lbmRXaW5kb3dEcmFnZ2luZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbC5XaW5kb3dTZWxlY3Rvcik6CisKIDIwMTItMDItMTMgIE5hdGUgQ2hhcGlu
ICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXVzZSBDYWNoZWRSYXdSZXNvdXJj
ZXMgKGUuZy4sIFhIUnMpIHRoYXQgYXJlIHN0b3JlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMKaW5kZXgg
MjkxZDg3MDdiN2NmYTczNTIwMmYxMzgyOWEyMWQzODI4NDk3M2RlMC4uZGQxNTRjMzc5ZjMyYzll
YTVlMTQzNWQyZjhjNzliYzY2Yzc3N2JmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zOCw5ICsz
OCw2IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZSA9IGZ1bmN0aW9uKHByZXNl
bnRhdGlvbk1vZGVsKQogICAgIHRoaXMuX292ZXJ2aWV3R3JpZCA9IG5ldyBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVHcmlkKCk7CiAgICAgdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQuaWQgPSAidGlt
ZWxpbmUtb3ZlcnZpZXctZ3JpZCI7CiAgICAgdGhpcy5fb3ZlcnZpZXdHcmlkLml0ZW1zR3JhcGhz
RWxlbWVudC5pZCA9ICJ0aW1lbGluZS1vdmVydmlldy10aW1lbGluZXMiOwotICAgIHRoaXMuX292
ZXJ2aWV3R3JpZC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX2Ry
YWdXaW5kb3cuYmluZCh0aGlzKSwgdHJ1ZSk7Ci0gICAgdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsIHRoaXMuc2Nyb2xsV2luZG93LmJpbmQo
dGhpcyksIHRydWUpOwotICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImRibGNsaWNrIiwgdGhpcy5fcmVzaXplV2luZG93TWF4aW11bS5iaW5kKHRoaXMpLCB0
cnVlKTsKIAogICAgIHRoaXMuX2hlYXBHcmFwaCA9IG5ldyBXZWJJbnNwZWN0b3IuSGVhcEdyYXBo
KCk7CiAgICAgdGhpcy5faGVhcEdyYXBoLmVsZW1lbnQuaWQgPSAidGltZWxpbmUtb3ZlcnZpZXct
bWVtb3J5IjsKQEAgLTYwLDMyICs1Nyw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3
UGFuZSA9IGZ1bmN0aW9uKHByZXNlbnRhdGlvbk1vZGVsKQogCiAgICAgdGhpcy5fb3ZlcnZpZXdH
cmlkLnNldFNjcm9sbEFuZERpdmlkZXJUb3AoMCwgMCk7CiAKLSAgICB0aGlzLl9vdmVydmlld1dp
bmRvd0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlzLl9v
dmVydmlld1dpbmRvd0VsZW1lbnQuaWQgPSAidGltZWxpbmUtb3ZlcnZpZXctd2luZG93IjsKLSAg
ICB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9vdmVydmlld1dp
bmRvd0VsZW1lbnQpOwotCi0gICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dCb3JkZXJzRWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMuX292ZXJ2aWV3V2luZG93
Qm9yZGVyc0VsZW1lbnQuY2xhc3NOYW1lID0gInRpbWVsaW5lLW92ZXJ2aWV3LXdpbmRvdy1ydWxl
cnMiOwotICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX292
ZXJ2aWV3V2luZG93Qm9yZGVyc0VsZW1lbnQpOwotCi0gICAgdmFyIG92ZXJ2aWV3RGl2aWRlcnNC
YWNrZ3JvdW5kID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgb3ZlcnZpZXdE
aXZpZGVyc0JhY2tncm91bmQuY2xhc3NOYW1lID0gInRpbWVsaW5lLW92ZXJ2aWV3LWRpdmlkZXJz
LWJhY2tncm91bmQiOwotICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50LmFwcGVuZENoaWxk
KG92ZXJ2aWV3RGl2aWRlcnNCYWNrZ3JvdW5kKTsKLQotICAgIHRoaXMuX2xlZnRSZXNpemVFbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdGhpcy5fbGVmdFJlc2l6
ZUVsZW1lbnQuY2xhc3NOYW1lID0gInRpbWVsaW5lLXdpbmRvdy1yZXNpemVyIjsKLSAgICB0aGlz
Ll9sZWZ0UmVzaXplRWxlbWVudC5zdHlsZS5sZWZ0ID0gMDsKLSAgICB0aGlzLl9vdmVydmlld0dy
aWQuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9sZWZ0UmVzaXplRWxlbWVudCk7Ci0KLSAgICB0
aGlzLl9yaWdodFJlc2l6ZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
LSAgICB0aGlzLl9yaWdodFJlc2l6ZUVsZW1lbnQuY2xhc3NOYW1lID0gInRpbWVsaW5lLXdpbmRv
dy1yZXNpemVyIHRpbWVsaW5lLXdpbmRvdy1yZXNpemVyLXJpZ2h0IjsKLSAgICB0aGlzLl9yaWdo
dFJlc2l6ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAwOwotICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5l
bGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3JpZ2h0UmVzaXplRWxlbWVudCk7Ci0KKyAgICB0aGlz
Ll9vdmVydmlld1dpbmRvdyA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1dpbmRv
dyh0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudCwgcHJlc2VudGF0aW9uTW9kZWwpOwogICAgIHRo
aXMuX292ZXJ2aWV3Q2FsY3VsYXRvciA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmll
d0NhbGN1bGF0b3IoKTsKLQotICAgIHRoaXMud2luZG93TGVmdCA9IDAuMDsKLSAgICB0aGlzLndp
bmRvd1JpZ2h0ID0gMS4wOwogfQogCiBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUu
TWluU2VsZWN0YWJsZVNpemUgPSAxMjsKQEAgLTIwMiwxNiArMTc1LDY5IEBAIFdlYkluc3BlY3Rv
ci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAKICAgICByZXNldDogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgdGhpcy53aW5kb3dMZWZ0ID0gMC4wOwotICAgICAgICB0aGlz
LndpbmRvd1JpZ2h0ID0gMS4wOworICAgICAgICB0aGlzLl9vdmVydmlld1dpbmRvdy5yZXNldCgp
OworICAgICAgICB0aGlzLl9vdmVydmlld0NhbGN1bGF0b3IucmVzZXQoKTsKKyAgICAgICAgdGhp
cy5fb3ZlcnZpZXdHcmlkLnVwZGF0ZURpdmlkZXJzKHRydWUsIHRoaXMuX292ZXJ2aWV3Q2FsY3Vs
YXRvcik7CisgICAgfSwKKworICAgIHNjcm9sbFdpbmRvdzogZnVuY3Rpb24oZXZlbnQpCisgICAg
eworICAgICAgICB0aGlzLl9vdmVydmlld1dpbmRvdy5zY3JvbGxXaW5kb3coZXZlbnQpOworICAg
IH0KK30KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7RWxlbWVudH0gcGFyZW50
RWxlbWVudAorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bH0gbW9kZWwKKyAqLworV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cgPSBmdW5j
dGlvbihwYXJlbnRFbGVtZW50LCBtb2RlbCkKK3sKKyAgICB0aGlzLl9wYXJlbnQgPSBwYXJlbnRF
bGVtZW50OworICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsID0gbW9kZWw7CisKKyAgICB0aGlz
Ll9wYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fZHJhZ1dpbmRvdy5i
aW5kKHRoaXMpLCB0cnVlKTsKKyAgICB0aGlzLl9wYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91
c2V3aGVlbCIsIHRoaXMuc2Nyb2xsV2luZG93LmJpbmQodGhpcyksIHRydWUpOworICAgIHRoaXMu
X3BhcmVudC5hZGRFdmVudExpc3RlbmVyKCJkYmxjbGljayIsIHRoaXMuX3Jlc2l6ZVdpbmRvd01h
eGltdW0uYmluZCh0aGlzKSwgdHJ1ZSk7CisKKyAgICB0aGlzLl9vdmVydmlld1dpbmRvd0VsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLl9vdmVydmlld1dp
bmRvd0VsZW1lbnQuaWQgPSAidGltZWxpbmUtb3ZlcnZpZXctd2luZG93IjsKKyAgICBwYXJlbnRF
bGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX292ZXJ2aWV3V2luZG93RWxlbWVudCk7CisKKyAgICB0
aGlzLl9vdmVydmlld1dpbmRvd0JvcmRlcnNFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CisgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dCb3JkZXJzRWxlbWVudC5jbGFzc05h
bWUgPSAidGltZWxpbmUtb3ZlcnZpZXctd2luZG93LXJ1bGVycyI7CisgICAgcGFyZW50RWxlbWVu
dC5hcHBlbmRDaGlsZCh0aGlzLl9vdmVydmlld1dpbmRvd0JvcmRlcnNFbGVtZW50KTsKKworICAg
IHZhciBvdmVydmlld0RpdmlkZXJzQmFja2dyb3VuZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworICAgIG92ZXJ2aWV3RGl2aWRlcnNCYWNrZ3JvdW5kLmNsYXNzTmFtZSA9ICJ0aW1l
bGluZS1vdmVydmlldy1kaXZpZGVycy1iYWNrZ3JvdW5kIjsKKyAgICBwYXJlbnRFbGVtZW50LmFw
cGVuZENoaWxkKG92ZXJ2aWV3RGl2aWRlcnNCYWNrZ3JvdW5kKTsKKworICAgIHRoaXMuX2xlZnRS
ZXNpemVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5f
bGVmdFJlc2l6ZUVsZW1lbnQuY2xhc3NOYW1lID0gInRpbWVsaW5lLXdpbmRvdy1yZXNpemVyIjsK
KyAgICB0aGlzLl9sZWZ0UmVzaXplRWxlbWVudC5zdHlsZS5sZWZ0ID0gMDsKKyAgICBwYXJlbnRF
bGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2xlZnRSZXNpemVFbGVtZW50KTsKKworICAgIHRoaXMu
X3JpZ2h0UmVzaXplRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAg
IHRoaXMuX3JpZ2h0UmVzaXplRWxlbWVudC5jbGFzc05hbWUgPSAidGltZWxpbmUtd2luZG93LXJl
c2l6ZXIgdGltZWxpbmUtd2luZG93LXJlc2l6ZXItcmlnaHQiOworICAgIHRoaXMuX3JpZ2h0UmVz
aXplRWxlbWVudC5zdHlsZS5yaWdodCA9IDA7CisgICAgcGFyZW50RWxlbWVudC5hcHBlbmRDaGls
ZCh0aGlzLl9yaWdodFJlc2l6ZUVsZW1lbnQpOworfQorCitXZWJJbnNwZWN0b3IuVGltZWxpbmVP
dmVydmlld1dpbmRvdy5wcm90b3R5cGUgPSB7CisgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICB7
CiAgICAgICAgIHRoaXMuX292ZXJ2aWV3V2luZG93RWxlbWVudC5zdHlsZS5sZWZ0ID0gIjAlIjsK
ICAgICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dFbGVtZW50LnN0eWxlLndpZHRoID0gIjEwMCUi
OwogICAgICAgICB0aGlzLl9vdmVydmlld1dpbmRvd0JvcmRlcnNFbGVtZW50LnN0eWxlLmxlZnQg
PSAiMCUiOwogICAgICAgICB0aGlzLl9vdmVydmlld1dpbmRvd0JvcmRlcnNFbGVtZW50LnN0eWxl
LnJpZ2h0ID0gIjAlIjsKICAgICAgICAgdGhpcy5fbGVmdFJlc2l6ZUVsZW1lbnQuc3R5bGUubGVm
dCA9ICIwJSI7CiAgICAgICAgIHRoaXMuX3JpZ2h0UmVzaXplRWxlbWVudC5zdHlsZS5sZWZ0ID0g
IjEwMCUiOwotICAgICAgICB0aGlzLl9vdmVydmlld0NhbGN1bGF0b3IucmVzZXQoKTsKLSAgICAg
ICAgdGhpcy5fb3ZlcnZpZXdHcmlkLnVwZGF0ZURpdmlkZXJzKHRydWUsIHRoaXMuX292ZXJ2aWV3
Q2FsY3VsYXRvcik7CisgICAgfSwKKworICAgIHNjcm9sbFdpbmRvdzogZnVuY3Rpb24oZXZlbnQp
CisgICAgeworICAgICAgICBpZiAodHlwZW9mIGV2ZW50LndoZWVsRGVsdGFYID09PSAibnVtYmVy
IiAmJiBldmVudC53aGVlbERlbHRhWCAhPT0gMCkKKyAgICAgICAgICAgIHRoaXMuX3dpbmRvd0Ry
YWdnaW5nKGV2ZW50LnBhZ2VYICsgTWF0aC5yb3VuZChldmVudC53aGVlbERlbHRhWCAqIFdlYklu
c3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5XaW5kb3dTY3JvbGxTcGVlZEZhY3RvciksIHRo
aXMuX2xlZnRSZXNpemVFbGVtZW50Lm9mZnNldExlZnQgKyBXZWJJbnNwZWN0b3IuVGltZWxpbmVP
dmVydmlld1BhbmUuUmVzaXplck9mZnNldCwgdGhpcy5fcmlnaHRSZXNpemVFbGVtZW50Lm9mZnNl
dExlZnQgKyBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuUmVzaXplck9mZnNldCwg
ZXZlbnQpOwogICAgIH0sCiAKICAgICBfcmVzaXplV2luZG93OiBmdW5jdGlvbihyZXNpemVFbGVt
ZW50LCBldmVudCkKQEAgLTIyMiw5ICsyNDgsOSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVy
dmlld1BhbmUucHJvdG90eXBlID0gewogICAgIF93aW5kb3dSZXNpemVEcmFnZ2luZzogZnVuY3Rp
b24ocmVzaXplRWxlbWVudCwgZXZlbnQpCiAgICAgewogICAgICAgICBpZiAocmVzaXplRWxlbWVu
dCA9PT0gdGhpcy5fbGVmdFJlc2l6ZUVsZW1lbnQpCi0gICAgICAgICAgICB0aGlzLl9yZXNpemVX
aW5kb3dMZWZ0KGV2ZW50LnBhZ2VYIC0gdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQub2Zmc2V0
TGVmdCk7CisgICAgICAgICAgICB0aGlzLl9yZXNpemVXaW5kb3dMZWZ0KGV2ZW50LnBhZ2VYIC0g
dGhpcy5fcGFyZW50Lm9mZnNldExlZnQpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlz
Ll9yZXNpemVXaW5kb3dSaWdodChldmVudC5wYWdlWCAtIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVt
ZW50Lm9mZnNldExlZnQpOworICAgICAgICAgICAgdGhpcy5fcmVzaXplV2luZG93UmlnaHQoZXZl
bnQucGFnZVggLSB0aGlzLl9wYXJlbnQub2Zmc2V0TGVmdCk7CiAgICAgICAgIGV2ZW50LnByZXZl
bnREZWZhdWx0KCk7CiAgICAgfSwKIApAQCAtMjMyLDEzICsyNTgsMTMgQEAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBu
b2RlID0gZXZlbnQudGFyZ2V0OwogICAgICAgICB3aGlsZSAobm9kZSkgewotICAgICAgICAgICAg
aWYgKG5vZGUgPT09IHRoaXMuX292ZXJ2aWV3R3JpZC5fZGl2aWRlcnNMYWJlbEJhckVsZW1lbnQp
IHsKKyAgICAgICAgICAgIGlmIChub2RlLmhhc1N0eWxlQ2xhc3MoInJlc291cmNlcy1kaXZpZGVy
cy1sYWJlbC1iYXIiKSkgewogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5lbGVtZW50RHJh
Z1N0YXJ0KHRoaXMuX292ZXJ2aWV3V2luZG93RWxlbWVudCwgdGhpcy5fd2luZG93RHJhZ2dpbmcu
YmluZCh0aGlzLCBldmVudC5wYWdlWCwKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGVmdFJl
c2l6ZUVsZW1lbnQub2Zmc2V0TGVmdCArIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFu
ZS5SZXNpemVyT2Zmc2V0LCB0aGlzLl9yaWdodFJlc2l6ZUVsZW1lbnQub2Zmc2V0TGVmdCArIFdl
Ykluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5SZXNpemVyT2Zmc2V0KSwgdGhpcy5fZW5k
V2luZG93RHJhZ2dpbmcuYmluZCh0aGlzKSwgZXZlbnQsICJldy1yZXNpemUiKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZSA9PT0gdGhpcy5fb3Zl
cnZpZXdHcmlkLmVsZW1lbnQpIHsKLSAgICAgICAgICAgICAgICB2YXIgcG9zaXRpb24gPSBldmVu
dC5wYWdlWCAtIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50Lm9mZnNldExlZnQ7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dTZWxlY3RvciA9IG5ldyBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbC5XaW5kb3dTZWxlY3Rvcih0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudCwg
cG9zaXRpb24sIGV2ZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZSA9PT0gdGhpcy5f
cGFyZW50KSB7CisgICAgICAgICAgICAgICAgdmFyIHBvc2l0aW9uID0gZXZlbnQucGFnZVggLSB0
aGlzLl9wYXJlbnQub2Zmc2V0TGVmdDsKKyAgICAgICAgICAgICAgICB0aGlzLl9vdmVydmlld1dp
bmRvd1NlbGVjdG9yID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLldpbmRvd1NlbGVj
dG9yKHRoaXMuX3BhcmVudCwgcG9zaXRpb24pOwogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5lbGVtZW50RHJhZ1N0YXJ0KG51bGwsIHRoaXMuX3dpbmRvd1NlbGVjdG9yRHJhZ2dpbmcuYmlu
ZCh0aGlzKSwgdGhpcy5fZW5kV2luZG93U2VsZWN0b3JEcmFnZ2luZy5iaW5kKHRoaXMpLCBldmVu
dCwgImV3LXJlc2l6ZSIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfSBl
bHNlIGlmIChub2RlID09PSB0aGlzLl9sZWZ0UmVzaXplRWxlbWVudCB8fCBub2RlID09PSB0aGlz
Ll9yaWdodFJlc2l6ZUVsZW1lbnQpIHsKQEAgLTI1MSwyMCArMjc3LDIxIEBAIFdlYkluc3BlY3Rv
ci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAKICAgICBfd2luZG93U2VsZWN0
b3JEcmFnZ2luZzogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICB0aGlzLl9vdmVydmll
d1dpbmRvd1NlbGVjdG9yLl91cGRhdGVQb3NpdGlvbihldmVudC5wYWdlWCAtIHRoaXMuX292ZXJ2
aWV3R3JpZC5lbGVtZW50Lm9mZnNldExlZnQpOworICAgICAgICB0aGlzLl9vdmVydmlld1dpbmRv
d1NlbGVjdG9yLl91cGRhdGVQb3NpdGlvbihldmVudC5wYWdlWCAtIHRoaXMuX3BhcmVudC5vZmZz
ZXRMZWZ0KTsKICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICB9LAogCiAgICAg
X2VuZFdpbmRvd1NlbGVjdG9yRHJhZ2dpbmc6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAg
ICAgV2ViSW5zcGVjdG9yLmVsZW1lbnREcmFnRW5kKGV2ZW50KTsKLSAgICAgICAgdmFyIHdpbmRv
dyA9IHRoaXMuX292ZXJ2aWV3V2luZG93U2VsZWN0b3IuX2Nsb3NlKGV2ZW50LnBhZ2VYIC0gdGhp
cy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQub2Zmc2V0TGVmdCk7CisgICAgICAgIHZhciB3aW5kb3cg
PSB0aGlzLl9vdmVydmlld1dpbmRvd1NlbGVjdG9yLl9jbG9zZShldmVudC5wYWdlWCAtIHRoaXMu
X3BhcmVudC5vZmZzZXRMZWZ0KTsKICAgICAgICAgZGVsZXRlIHRoaXMuX292ZXJ2aWV3V2luZG93
U2VsZWN0b3I7Ci0gICAgICAgIGlmICh3aW5kb3cuZW5kIC0gd2luZG93LnN0YXJ0IDwgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLk1pblNlbGVjdGFibGVTaXplKQotICAgICAgICAg
ICAgaWYgKHRoaXMuX292ZXJ2aWV3R3JpZC5pdGVtc0dyYXBoc0VsZW1lbnQub2Zmc2V0V2lkdGgg
LSB3aW5kb3cuZW5kID4gV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLk1pblNlbGVj
dGFibGVTaXplKQorICAgICAgICBpZiAod2luZG93LmVuZCAtIHdpbmRvdy5zdGFydCA8IFdlYklu
c3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5NaW5TZWxlY3RhYmxlU2l6ZSkgeworICAgICAg
ICAgICAgaWYgKHRoaXMuX3BhcmVudC5jbGllbnRXaWR0aCAtIHdpbmRvdy5lbmQgPiBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuTWluU2VsZWN0YWJsZVNpemUpCiAgICAgICAgICAg
ICAgICAgd2luZG93LmVuZCA9IHdpbmRvdy5zdGFydCArIFdlYkluc3BlY3Rvci5UaW1lbGluZU92
ZXJ2aWV3UGFuZS5NaW5TZWxlY3RhYmxlU2l6ZTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICB3aW5kb3cuc3RhcnQgPSB3aW5kb3cuZW5kIC0gV2ViSW5zcGVjdG9yLlRpbWVsaW5l
T3ZlcnZpZXdQYW5lLk1pblNlbGVjdGFibGVTaXplOworICAgICAgICB9CiAgICAgICAgIHRoaXMu
X3NldFdpbmRvd1Bvc2l0aW9uKHdpbmRvdy5zdGFydCwgd2luZG93LmVuZCk7CiAgICAgfSwKIApA
QCAtMjgwLDggKzMwNyw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICBlbmQgPSB3aW5kb3dTaXplOwogICAgICAgICB9CiAKLSAg
ICAgICAgaWYgKGVuZCA+IHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50LmNsaWVudFdpZHRoKSB7
Ci0gICAgICAgICAgICBlbmQgPSB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5jbGllbnRXaWR0
aDsKKyAgICAgICAgaWYgKGVuZCA+IHRoaXMuX3BhcmVudC5jbGllbnRXaWR0aCkgeworICAgICAg
ICAgICAgZW5kID0gdGhpcy5fcGFyZW50LmNsaWVudFdpZHRoOwogICAgICAgICAgICAgc3RhcnQg
PSBlbmQgLSB3aW5kb3dTaXplOwogICAgICAgICB9CiAgICAgICAgIHRoaXMuX3NldFdpbmRvd1Bv
c2l0aW9uKHN0YXJ0LCBlbmQpOwpAQCAtMzAyLDggKzMyOSw4IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAgICAgX3Jlc2l6ZVdpbmRvd1JpZ2h0OiBm
dW5jdGlvbihlbmQpCiAgICAgewogICAgICAgICAvLyBHbHVlIHRvIGVkZ2UuCi0gICAgICAgIGlm
IChlbmQgPiB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5jbGllbnRXaWR0aCAtIDEwKQotICAg
ICAgICAgICAgZW5kID0gdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQuY2xpZW50V2lkdGg7Cisg
ICAgICAgIGlmIChlbmQgPiB0aGlzLl9wYXJlbnQuY2xpZW50V2lkdGggLSAxMCkKKyAgICAgICAg
ICAgIGVuZCA9IHRoaXMuX3BhcmVudC5jbGllbnRXaWR0aDsKICAgICAgICAgZWxzZSBpZiAoZW5k
IDwgdGhpcy5fbGVmdFJlc2l6ZUVsZW1lbnQub2Zmc2V0TGVmdCArIFdlYkluc3BlY3Rvci5UaW1l
bGluZU92ZXJ2aWV3UGFuZS5NaW5TZWxlY3RhYmxlU2l6ZSkKICAgICAgICAgICAgIGVuZCA9IHRo
aXMuX2xlZnRSZXNpemVFbGVtZW50Lm9mZnNldExlZnQgKyBXZWJJbnNwZWN0b3IuVGltZWxpbmVP
dmVydmlld1BhbmUuTWluU2VsZWN0YWJsZVNpemU7CiAgICAgICAgIHRoaXMuX3NldFdpbmRvd1Bv
c2l0aW9uKG51bGwsIGVuZCk7CkBAIC0zMTEsNDEgKzMzOCwzNiBAQCBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlID0gewogCiAgICAgX3Jlc2l6ZVdpbmRvd01heGlt
dW06IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3NldFdpbmRvd1Bvc2l0aW9uKDAs
IHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50LmNsaWVudFdpZHRoKTsKKyAgICAgICAgdGhpcy5f
c2V0V2luZG93UG9zaXRpb24oMCwgdGhpcy5fcGFyZW50LmNsaWVudFdpZHRoKTsKICAgICB9LAog
CiAgICAgX3NldFdpbmRvd1Bvc2l0aW9uOiBmdW5jdGlvbihzdGFydCwgZW5kKQogICAgIHsKLSAg
ICAgICAgY29uc3QgcnVsZXJBZGp1c3RtZW50ID0gMSAvIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVt
ZW50LmNsaWVudFdpZHRoOworICAgICAgICB2YXIgY2xpZW50V2lkdGggPSB0aGlzLl9wYXJlbnQu
Y2xpZW50V2lkdGg7CisgICAgICAgIGNvbnN0IHJ1bGVyQWRqdXN0bWVudCA9IDEgLyBjbGllbnRX
aWR0aDsKKyAgICAgICAgdmFyIHdpbmRvd0xlZnQgPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC53
aW5kb3dMZWZ0OworICAgICAgICB2YXIgd2luZG93UmlnaHQgPSB0aGlzLl9wcmVzZW50YXRpb25N
b2RlbC53aW5kb3dSaWdodDsKICAgICAgICAgaWYgKHR5cGVvZiBzdGFydCA9PT0gIm51bWJlciIp
IHsKLSAgICAgICAgICAgIHRoaXMud2luZG93TGVmdCA9IHN0YXJ0IC8gdGhpcy5fb3ZlcnZpZXdH
cmlkLmVsZW1lbnQuY2xpZW50V2lkdGg7Ci0gICAgICAgICAgICB0aGlzLl9sZWZ0UmVzaXplRWxl
bWVudC5zdHlsZS5sZWZ0ID0gdGhpcy53aW5kb3dMZWZ0ICogMTAwICsgIiUiOwotICAgICAgICAg
ICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dFbGVtZW50LnN0eWxlLmxlZnQgPSB0aGlzLndpbmRvd0xl
ZnQgKiAxMDAgKyAiJSI7Ci0gICAgICAgICAgICB0aGlzLl9vdmVydmlld1dpbmRvd0JvcmRlcnNF
bGVtZW50LnN0eWxlLmxlZnQgPSAodGhpcy53aW5kb3dMZWZ0IC0gcnVsZXJBZGp1c3RtZW50KSAq
IDEwMCArICIlIjsKKyAgICAgICAgICAgIHdpbmRvd0xlZnQgPSBzdGFydCAvIGNsaWVudFdpZHRo
OworICAgICAgICAgICAgdGhpcy5fbGVmdFJlc2l6ZUVsZW1lbnQuc3R5bGUubGVmdCA9IHdpbmRv
d0xlZnQgKiAxMDAgKyAiJSI7CisgICAgICAgICAgICB0aGlzLl9vdmVydmlld1dpbmRvd0VsZW1l
bnQuc3R5bGUubGVmdCA9IHdpbmRvd0xlZnQgKiAxMDAgKyAiJSI7CisgICAgICAgICAgICB0aGlz
Ll9vdmVydmlld1dpbmRvd0JvcmRlcnNFbGVtZW50LnN0eWxlLmxlZnQgPSAod2luZG93TGVmdCAt
IHJ1bGVyQWRqdXN0bWVudCkgKiAxMDAgKyAiJSI7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHR5
cGVvZiBlbmQgPT09ICJudW1iZXIiKSB7Ci0gICAgICAgICAgICB0aGlzLndpbmRvd1JpZ2h0ID0g
ZW5kIC8gdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQuY2xpZW50V2lkdGg7Ci0gICAgICAgICAg
ICB0aGlzLl9yaWdodFJlc2l6ZUVsZW1lbnQuc3R5bGUubGVmdCA9IHRoaXMud2luZG93UmlnaHQg
KiAxMDAgKyAiJSI7CisgICAgICAgICAgICB3aW5kb3dSaWdodCA9IGVuZCAvIGNsaWVudFdpZHRo
OworICAgICAgICAgICAgdGhpcy5fcmlnaHRSZXNpemVFbGVtZW50LnN0eWxlLmxlZnQgPSB3aW5k
b3dSaWdodCAqIDEwMCArICIlIjsKICAgICAgICAgfQotICAgICAgICB0aGlzLl9vdmVydmlld1dp
bmRvd0VsZW1lbnQuc3R5bGUud2lkdGggPSAodGhpcy53aW5kb3dSaWdodCAtIHRoaXMud2luZG93
TGVmdCkgKiAxMDAgKyAiJSI7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3V2luZG93Qm9yZGVyc0Vs
ZW1lbnQuc3R5bGUucmlnaHQgPSAoMSAtIHRoaXMud2luZG93UmlnaHQgKyAyICogcnVsZXJBZGp1
c3RtZW50KSAqIDEwMCArICIlIjsKLSAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuc2V0
V2luZG93UG9zaXRpb24odGhpcy53aW5kb3dMZWZ0LCB0aGlzLndpbmRvd1JpZ2h0KTsKKyAgICAg
ICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dFbGVtZW50LnN0eWxlLndpZHRoID0gKHdpbmRvd1JpZ2h0
IC0gd2luZG93TGVmdCkgKiAxMDAgKyAiJSI7CisgICAgICAgIHRoaXMuX292ZXJ2aWV3V2luZG93
Qm9yZGVyc0VsZW1lbnQuc3R5bGUucmlnaHQgPSAoMSAtIHdpbmRvd1JpZ2h0ICsgMiAqIHJ1bGVy
QWRqdXN0bWVudCkgKiAxMDAgKyAiJSI7CisgICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVs
LnNldFdpbmRvd1Bvc2l0aW9uKHdpbmRvd0xlZnQsIHdpbmRvd1JpZ2h0KTsKICAgICB9LAogCiAg
ICAgX2VuZFdpbmRvd0RyYWdnaW5nOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIFdl
Ykluc3BlY3Rvci5lbGVtZW50RHJhZ0VuZChldmVudCk7CiAgICAgfSwKLQotICAgIHNjcm9sbFdp
bmRvdzogZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICBpZiAodHlwZW9mIGV2ZW50Lndo
ZWVsRGVsdGFYID09PSAibnVtYmVyIiAmJiBldmVudC53aGVlbERlbHRhWCAhPT0gMCkKLSAgICAg
ICAgICAgIHRoaXMuX3dpbmRvd0RyYWdnaW5nKGV2ZW50LnBhZ2VYICsgTWF0aC5yb3VuZChldmVu
dC53aGVlbERlbHRhWCAqIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5XaW5kb3dT
Y3JvbGxTcGVlZEZhY3RvciksIHRoaXMuX2xlZnRSZXNpemVFbGVtZW50Lm9mZnNldExlZnQgKyBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuUmVzaXplck9mZnNldCwgdGhpcy5fcmln
aHRSZXNpemVFbGVtZW50Lm9mZnNldExlZnQgKyBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmll
d1BhbmUuUmVzaXplck9mZnNldCwgZXZlbnQpOwotICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLlRp
bWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2Jq
ZWN0LnByb3RvdHlwZTsKLQogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqLwpAQCAtNDM4LDcgKzQ2
MCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5R3JhcGgucHJvdG90eXBlID0gewog
LyoqCiAgKiBAY29uc3RydWN0b3IKICAqLwotV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuV2lu
ZG93U2VsZWN0b3IgPSBmdW5jdGlvbihwYXJlbnQsIHBvc2l0aW9uLCBldmVudCkKK1dlYkluc3Bl
Y3Rvci5UaW1lbGluZVBhbmVsLldpbmRvd1NlbGVjdG9yID0gZnVuY3Rpb24ocGFyZW50LCBwb3Np
dGlvbikKIHsKICAgICB0aGlzLl9zdGFydFBvc2l0aW9uID0gcG9zaXRpb247CiAgICAgdGhpcy5f
d2lkdGggPSBwYXJlbnQub2Zmc2V0V2lkdGg7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126964</attachid>
            <date>2012-02-14 05:29:29 -0800</date>
            <delta_ts>2012-02-14 05:40:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78599-20120214172927.patch</filename>
            <type>text/plain</type>
            <size>15827</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjRlN2Q3YWFhYzdlMTk5
YmNhNGY2ZGE3NzNmMDZiNjg0Yzk4ZjVlMC4uNTFkNmFhMDMwNGNjYmM4MTk3ZGU4YWJhYWU4Njgy
ODFlODZlOWFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAyLTE0ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogW3JlZmFjdG9yaW5nXSBleHRyYWN0IFRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cgZnJvbSBUaW1l
bGluZU92ZXJ2aWV3UGFuZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4NTk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUucmVzZXQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5zY3JvbGxXaW5k
b3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cucHJvdG90eXBlLnJlc2V0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3V2luZG93LnByb3RvdHlw
ZS5zY3JvbGxXaW5kb3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdX
aW5kb3cucHJvdG90eXBlLl93aW5kb3dSZXNpemVEcmFnZ2luZyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGltZWxpbmVPdmVydmlld1dpbmRvdy5wcm90b3R5cGUuX2RyYWdXaW5kb3cpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cucHJvdG90eXBlLl93aW5k
b3dTZWxlY3RvckRyYWdnaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2
aWV3V2luZG93LnByb3RvdHlwZS5fZW5kV2luZG93U2VsZWN0b3JEcmFnZ2luZyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1dpbmRvdy5wcm90b3R5cGUuX3dpbmRvd0Ry
YWdnaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3V2luZG93LnBy
b3RvdHlwZS5fcmVzaXplV2luZG93UmlnaHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lT3ZlcnZpZXdXaW5kb3cucHJvdG90eXBlLl9yZXNpemVXaW5kb3dNYXhpbXVtKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3V2luZG93LnByb3RvdHlwZS5fc2V0V2lu
ZG93UG9zaXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5k
b3cucHJvdG90eXBlLl9lbmRXaW5kb3dEcmFnZ2luZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbC5XaW5kb3dTZWxlY3Rvcik6CisKIDIwMTItMDItMTQgIFZzZXZvbG9kIFZs
YXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTWFr
ZSBTY3JpcHRzTmF2aWdhdG9yIGRlZmF1bHQgZmlsZSBzZWxlY3Rvci4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5l
LmpzCmluZGV4IDI5MWQ4NzA3YjdjZmE3MzUyMDJmMTM4MjlhMjFkMzgyODQ5NzNkZTAuLmRkMTU0
YzM3OWYzMmM5ZWE1ZTE0MzVkMmY4Yzc5YmM2NmM3NzdiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5q
cwpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtMzgsOSArMzgsNiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUgPSBmdW5j
dGlvbihwcmVzZW50YXRpb25Nb2RlbCkKICAgICB0aGlzLl9vdmVydmlld0dyaWQgPSBuZXcgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lR3JpZCgpOwogICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50
LmlkID0gInRpbWVsaW5lLW92ZXJ2aWV3LWdyaWQiOwogICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5p
dGVtc0dyYXBoc0VsZW1lbnQuaWQgPSAidGltZWxpbmUtb3ZlcnZpZXctdGltZWxpbmVzIjsKLSAg
ICB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24i
LCB0aGlzLl9kcmFnV2luZG93LmJpbmQodGhpcyksIHRydWUpOwotICAgIHRoaXMuX292ZXJ2aWV3
R3JpZC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLCB0aGlzLnNjcm9sbFdp
bmRvdy5iaW5kKHRoaXMpLCB0cnVlKTsKLSAgICB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJkYmxjbGljayIsIHRoaXMuX3Jlc2l6ZVdpbmRvd01heGltdW0uYmlu
ZCh0aGlzKSwgdHJ1ZSk7CiAKICAgICB0aGlzLl9oZWFwR3JhcGggPSBuZXcgV2ViSW5zcGVjdG9y
LkhlYXBHcmFwaCgpOwogICAgIHRoaXMuX2hlYXBHcmFwaC5lbGVtZW50LmlkID0gInRpbWVsaW5l
LW92ZXJ2aWV3LW1lbW9yeSI7CkBAIC02MCwzMiArNTcsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxp
bmVPdmVydmlld1BhbmUgPSBmdW5jdGlvbihwcmVzZW50YXRpb25Nb2RlbCkKIAogICAgIHRoaXMu
X292ZXJ2aWV3R3JpZC5zZXRTY3JvbGxBbmREaXZpZGVyVG9wKDAsIDApOwogCi0gICAgdGhpcy5f
b3ZlcnZpZXdXaW5kb3dFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0g
ICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dFbGVtZW50LmlkID0gInRpbWVsaW5lLW92ZXJ2aWV3LXdp
bmRvdyI7Ci0gICAgdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
b3ZlcnZpZXdXaW5kb3dFbGVtZW50KTsKLQotICAgIHRoaXMuX292ZXJ2aWV3V2luZG93Qm9yZGVy
c0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlzLl9vdmVy
dmlld1dpbmRvd0JvcmRlcnNFbGVtZW50LmNsYXNzTmFtZSA9ICJ0aW1lbGluZS1vdmVydmlldy13
aW5kb3ctcnVsZXJzIjsKLSAgICB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5hcHBlbmRDaGls
ZCh0aGlzLl9vdmVydmlld1dpbmRvd0JvcmRlcnNFbGVtZW50KTsKLQotICAgIHZhciBvdmVydmll
d0RpdmlkZXJzQmFja2dyb3VuZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAg
IG92ZXJ2aWV3RGl2aWRlcnNCYWNrZ3JvdW5kLmNsYXNzTmFtZSA9ICJ0aW1lbGluZS1vdmVydmll
dy1kaXZpZGVycy1iYWNrZ3JvdW5kIjsKLSAgICB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5h
cHBlbmRDaGlsZChvdmVydmlld0RpdmlkZXJzQmFja2dyb3VuZCk7Ci0KLSAgICB0aGlzLl9sZWZ0
UmVzaXplRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMu
X2xlZnRSZXNpemVFbGVtZW50LmNsYXNzTmFtZSA9ICJ0aW1lbGluZS13aW5kb3ctcmVzaXplciI7
Ci0gICAgdGhpcy5fbGVmdFJlc2l6ZUVsZW1lbnQuc3R5bGUubGVmdCA9IDA7Ci0gICAgdGhpcy5f
b3ZlcnZpZXdHcmlkLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fbGVmdFJlc2l6ZUVsZW1lbnQp
OwotCi0gICAgdGhpcy5fcmlnaHRSZXNpemVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7Ci0gICAgdGhpcy5fcmlnaHRSZXNpemVFbGVtZW50LmNsYXNzTmFtZSA9ICJ0aW1l
bGluZS13aW5kb3ctcmVzaXplciB0aW1lbGluZS13aW5kb3ctcmVzaXplci1yaWdodCI7Ci0gICAg
dGhpcy5fcmlnaHRSZXNpemVFbGVtZW50LnN0eWxlLnJpZ2h0ID0gMDsKLSAgICB0aGlzLl9vdmVy
dmlld0dyaWQuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9yaWdodFJlc2l6ZUVsZW1lbnQpOwot
CisgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3cgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3Zl
cnZpZXdXaW5kb3codGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQsIHByZXNlbnRhdGlvbk1vZGVs
KTsKICAgICB0aGlzLl9vdmVydmlld0NhbGN1bGF0b3IgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lT3ZlcnZpZXdDYWxjdWxhdG9yKCk7Ci0KLSAgICB0aGlzLndpbmRvd0xlZnQgPSAwLjA7Ci0g
ICAgdGhpcy53aW5kb3dSaWdodCA9IDEuMDsKIH0KIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3Zl
cnZpZXdQYW5lLk1pblNlbGVjdGFibGVTaXplID0gMTI7CkBAIC0yMDIsMTYgKzE3NSw2OSBAQCBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlID0gewogCiAgICAgcmVz
ZXQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMud2luZG93TGVmdCA9IDAuMDsKLSAg
ICAgICAgdGhpcy53aW5kb3dSaWdodCA9IDEuMDsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5k
b3cucmVzZXQoKTsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdDYWxjdWxhdG9yLnJlc2V0KCk7Cisg
ICAgICAgIHRoaXMuX292ZXJ2aWV3R3JpZC51cGRhdGVEaXZpZGVycyh0cnVlLCB0aGlzLl9vdmVy
dmlld0NhbGN1bGF0b3IpOworICAgIH0sCisKKyAgICBzY3JvbGxXaW5kb3c6IGZ1bmN0aW9uKGV2
ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3cuc2Nyb2xsV2luZG93KGV2
ZW50KTsKKyAgICB9Cit9CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge0VsZW1l
bnR9IHBhcmVudEVsZW1lbnQKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2Vu
dGF0aW9uTW9kZWx9IG1vZGVsCisgKi8KK1dlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3V2lu
ZG93ID0gZnVuY3Rpb24ocGFyZW50RWxlbWVudCwgbW9kZWwpCit7CisgICAgdGhpcy5fcGFyZW50
ID0gcGFyZW50RWxlbWVudDsKKyAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbCA9IG1vZGVsOwor
CisgICAgdGhpcy5fcGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX2Ry
YWdXaW5kb3cuYmluZCh0aGlzKSwgdHJ1ZSk7CisgICAgdGhpcy5fcGFyZW50LmFkZEV2ZW50TGlz
dGVuZXIoIm1vdXNld2hlZWwiLCB0aGlzLnNjcm9sbFdpbmRvdy5iaW5kKHRoaXMpLCB0cnVlKTsK
KyAgICB0aGlzLl9wYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCB0aGlzLl9yZXNp
emVXaW5kb3dNYXhpbXVtLmJpbmQodGhpcyksIHRydWUpOworCisgICAgdGhpcy5fb3ZlcnZpZXdX
aW5kb3dFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5f
b3ZlcnZpZXdXaW5kb3dFbGVtZW50LmlkID0gInRpbWVsaW5lLW92ZXJ2aWV3LXdpbmRvdyI7Cisg
ICAgcGFyZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9vdmVydmlld1dpbmRvd0VsZW1lbnQp
OworCisgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dCb3JkZXJzRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHRoaXMuX292ZXJ2aWV3V2luZG93Qm9yZGVyc0VsZW1l
bnQuY2xhc3NOYW1lID0gInRpbWVsaW5lLW92ZXJ2aWV3LXdpbmRvdy1ydWxlcnMiOworICAgIHBh
cmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fb3ZlcnZpZXdXaW5kb3dCb3JkZXJzRWxlbWVu
dCk7CisKKyAgICB2YXIgb3ZlcnZpZXdEaXZpZGVyc0JhY2tncm91bmQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKyAgICBvdmVydmlld0RpdmlkZXJzQmFja2dyb3VuZC5jbGFzc05h
bWUgPSAidGltZWxpbmUtb3ZlcnZpZXctZGl2aWRlcnMtYmFja2dyb3VuZCI7CisgICAgcGFyZW50
RWxlbWVudC5hcHBlbmRDaGlsZChvdmVydmlld0RpdmlkZXJzQmFja2dyb3VuZCk7CisKKyAgICB0
aGlzLl9sZWZ0UmVzaXplRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgIHRoaXMuX2xlZnRSZXNpemVFbGVtZW50LmNsYXNzTmFtZSA9ICJ0aW1lbGluZS13aW5kb3ct
cmVzaXplciI7CisgICAgdGhpcy5fbGVmdFJlc2l6ZUVsZW1lbnQuc3R5bGUubGVmdCA9IDA7Cisg
ICAgcGFyZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9sZWZ0UmVzaXplRWxlbWVudCk7CisK
KyAgICB0aGlzLl9yaWdodFJlc2l6ZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICB0aGlzLl9yaWdodFJlc2l6ZUVsZW1lbnQuY2xhc3NOYW1lID0gInRpbWVsaW5l
LXdpbmRvdy1yZXNpemVyIHRpbWVsaW5lLXdpbmRvdy1yZXNpemVyLXJpZ2h0IjsKKyAgICB0aGlz
Ll9yaWdodFJlc2l6ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAwOworICAgIHBhcmVudEVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5fcmlnaHRSZXNpemVFbGVtZW50KTsKK30KKworV2ViSW5zcGVjdG9y
LlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cucHJvdG90eXBlID0geworICAgIHJlc2V0OiBmdW5jdGlv
bigpCisgICAgewogICAgICAgICB0aGlzLl9vdmVydmlld1dpbmRvd0VsZW1lbnQuc3R5bGUubGVm
dCA9ICIwJSI7CiAgICAgICAgIHRoaXMuX292ZXJ2aWV3V2luZG93RWxlbWVudC5zdHlsZS53aWR0
aCA9ICIxMDAlIjsKICAgICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dCb3JkZXJzRWxlbWVudC5z
dHlsZS5sZWZ0ID0gIjAlIjsKICAgICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dCb3JkZXJzRWxl
bWVudC5zdHlsZS5yaWdodCA9ICIwJSI7CiAgICAgICAgIHRoaXMuX2xlZnRSZXNpemVFbGVtZW50
LnN0eWxlLmxlZnQgPSAiMCUiOwogICAgICAgICB0aGlzLl9yaWdodFJlc2l6ZUVsZW1lbnQuc3R5
bGUubGVmdCA9ICIxMDAlIjsKLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdDYWxjdWxhdG9yLnJlc2V0
KCk7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3R3JpZC51cGRhdGVEaXZpZGVycyh0cnVlLCB0aGlz
Ll9vdmVydmlld0NhbGN1bGF0b3IpOworICAgIH0sCisKKyAgICBzY3JvbGxXaW5kb3c6IGZ1bmN0
aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKHR5cGVvZiBldmVudC53aGVlbERlbHRhWCA9
PT0gIm51bWJlciIgJiYgZXZlbnQud2hlZWxEZWx0YVggIT09IDApCisgICAgICAgICAgICB0aGlz
Ll93aW5kb3dEcmFnZ2luZyhldmVudC5wYWdlWCArIE1hdGgucm91bmQoZXZlbnQud2hlZWxEZWx0
YVggKiBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuV2luZG93U2Nyb2xsU3BlZWRG
YWN0b3IpLCB0aGlzLl9sZWZ0UmVzaXplRWxlbWVudC5vZmZzZXRMZWZ0ICsgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lT3ZlcnZpZXdQYW5lLlJlc2l6ZXJPZmZzZXQsIHRoaXMuX3JpZ2h0UmVzaXplRWxl
bWVudC5vZmZzZXRMZWZ0ICsgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLlJlc2l6
ZXJPZmZzZXQsIGV2ZW50KTsKICAgICB9LAogCiAgICAgX3Jlc2l6ZVdpbmRvdzogZnVuY3Rpb24o
cmVzaXplRWxlbWVudCwgZXZlbnQpCkBAIC0yMjIsOSArMjQ4LDkgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZSA9IHsKICAgICBfd2luZG93UmVzaXplRHJhZ2dp
bmc6IGZ1bmN0aW9uKHJlc2l6ZUVsZW1lbnQsIGV2ZW50KQogICAgIHsKICAgICAgICAgaWYgKHJl
c2l6ZUVsZW1lbnQgPT09IHRoaXMuX2xlZnRSZXNpemVFbGVtZW50KQotICAgICAgICAgICAgdGhp
cy5fcmVzaXplV2luZG93TGVmdChldmVudC5wYWdlWCAtIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVt
ZW50Lm9mZnNldExlZnQpOworICAgICAgICAgICAgdGhpcy5fcmVzaXplV2luZG93TGVmdChldmVu
dC5wYWdlWCAtIHRoaXMuX3BhcmVudC5vZmZzZXRMZWZ0KTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdGhpcy5fcmVzaXplV2luZG93UmlnaHQoZXZlbnQucGFnZVggLSB0aGlzLl9vdmVydmll
d0dyaWQuZWxlbWVudC5vZmZzZXRMZWZ0KTsKKyAgICAgICAgICAgIHRoaXMuX3Jlc2l6ZVdpbmRv
d1JpZ2h0KGV2ZW50LnBhZ2VYIC0gdGhpcy5fcGFyZW50Lm9mZnNldExlZnQpOwogICAgICAgICBl
dmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgIH0sCiAKQEAgLTIzMiwxMyArMjU4LDEzIEBAIFdl
Ykluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAgICAgewogICAg
ICAgICB2YXIgbm9kZSA9IGV2ZW50LnRhcmdldDsKICAgICAgICAgd2hpbGUgKG5vZGUpIHsKLSAg
ICAgICAgICAgIGlmIChub2RlID09PSB0aGlzLl9vdmVydmlld0dyaWQuX2RpdmlkZXJzTGFiZWxC
YXJFbGVtZW50KSB7CisgICAgICAgICAgICBpZiAobm9kZS5oYXNTdHlsZUNsYXNzKCJyZXNvdXJj
ZXMtZGl2aWRlcnMtbGFiZWwtYmFyIikpIHsKICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
ZWxlbWVudERyYWdTdGFydCh0aGlzLl9vdmVydmlld1dpbmRvd0VsZW1lbnQsIHRoaXMuX3dpbmRv
d0RyYWdnaW5nLmJpbmQodGhpcywgZXZlbnQucGFnZVgsCiAgICAgICAgICAgICAgICAgICAgIHRo
aXMuX2xlZnRSZXNpemVFbGVtZW50Lm9mZnNldExlZnQgKyBXZWJJbnNwZWN0b3IuVGltZWxpbmVP
dmVydmlld1BhbmUuUmVzaXplck9mZnNldCwgdGhpcy5fcmlnaHRSZXNpemVFbGVtZW50Lm9mZnNl
dExlZnQgKyBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuUmVzaXplck9mZnNldCks
IHRoaXMuX2VuZFdpbmRvd0RyYWdnaW5nLmJpbmQodGhpcyksIGV2ZW50LCAiZXctcmVzaXplIik7
CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUgPT09
IHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50KSB7Ci0gICAgICAgICAgICAgICAgdmFyIHBvc2l0
aW9uID0gZXZlbnQucGFnZVggLSB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5vZmZzZXRMZWZ0
OwotICAgICAgICAgICAgICAgIHRoaXMuX292ZXJ2aWV3V2luZG93U2VsZWN0b3IgPSBuZXcgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuV2luZG93U2VsZWN0b3IodGhpcy5fb3ZlcnZpZXdHcmlk
LmVsZW1lbnQsIHBvc2l0aW9uLCBldmVudCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUg
PT09IHRoaXMuX3BhcmVudCkgeworICAgICAgICAgICAgICAgIHZhciBwb3NpdGlvbiA9IGV2ZW50
LnBhZ2VYIC0gdGhpcy5fcGFyZW50Lm9mZnNldExlZnQ7CisgICAgICAgICAgICAgICAgdGhpcy5f
b3ZlcnZpZXdXaW5kb3dTZWxlY3RvciA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5X
aW5kb3dTZWxlY3Rvcih0aGlzLl9wYXJlbnQsIHBvc2l0aW9uKTsKICAgICAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuZWxlbWVudERyYWdTdGFydChudWxsLCB0aGlzLl93aW5kb3dTZWxlY3RvckRy
YWdnaW5nLmJpbmQodGhpcyksIHRoaXMuX2VuZFdpbmRvd1NlbGVjdG9yRHJhZ2dpbmcuYmluZCh0
aGlzKSwgZXZlbnQsICJldy1yZXNpemUiKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIH0gZWxzZSBpZiAobm9kZSA9PT0gdGhpcy5fbGVmdFJlc2l6ZUVsZW1lbnQgfHwgbm9k
ZSA9PT0gdGhpcy5fcmlnaHRSZXNpemVFbGVtZW50KSB7CkBAIC0yNTEsMjAgKzI3NywyMSBAQCBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlID0gewogCiAgICAgX3dp
bmRvd1NlbGVjdG9yRHJhZ2dpbmc6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdGhp
cy5fb3ZlcnZpZXdXaW5kb3dTZWxlY3Rvci5fdXBkYXRlUG9zaXRpb24oZXZlbnQucGFnZVggLSB0
aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5vZmZzZXRMZWZ0KTsKKyAgICAgICAgdGhpcy5fb3Zl
cnZpZXdXaW5kb3dTZWxlY3Rvci5fdXBkYXRlUG9zaXRpb24oZXZlbnQucGFnZVggLSB0aGlzLl9w
YXJlbnQub2Zmc2V0TGVmdCk7CiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAg
fSwKIAogICAgIF9lbmRXaW5kb3dTZWxlY3RvckRyYWdnaW5nOiBmdW5jdGlvbihldmVudCkKICAg
ICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5lbGVtZW50RHJhZ0VuZChldmVudCk7Ci0gICAgICAg
IHZhciB3aW5kb3cgPSB0aGlzLl9vdmVydmlld1dpbmRvd1NlbGVjdG9yLl9jbG9zZShldmVudC5w
YWdlWCAtIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50Lm9mZnNldExlZnQpOworICAgICAgICB2
YXIgd2luZG93ID0gdGhpcy5fb3ZlcnZpZXdXaW5kb3dTZWxlY3Rvci5fY2xvc2UoZXZlbnQucGFn
ZVggLSB0aGlzLl9wYXJlbnQub2Zmc2V0TGVmdCk7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9vdmVy
dmlld1dpbmRvd1NlbGVjdG9yOwotICAgICAgICBpZiAod2luZG93LmVuZCAtIHdpbmRvdy5zdGFy
dCA8IFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5NaW5TZWxlY3RhYmxlU2l6ZSkK
LSAgICAgICAgICAgIGlmICh0aGlzLl9vdmVydmlld0dyaWQuaXRlbXNHcmFwaHNFbGVtZW50Lm9m
ZnNldFdpZHRoIC0gd2luZG93LmVuZCA+IFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFu
ZS5NaW5TZWxlY3RhYmxlU2l6ZSkKKyAgICAgICAgaWYgKHdpbmRvdy5lbmQgLSB3aW5kb3cuc3Rh
cnQgPCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuTWluU2VsZWN0YWJsZVNpemUp
IHsKKyAgICAgICAgICAgIGlmICh0aGlzLl9wYXJlbnQuY2xpZW50V2lkdGggLSB3aW5kb3cuZW5k
ID4gV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLk1pblNlbGVjdGFibGVTaXplKQog
ICAgICAgICAgICAgICAgIHdpbmRvdy5lbmQgPSB3aW5kb3cuc3RhcnQgKyBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVPdmVydmlld1BhbmUuTWluU2VsZWN0YWJsZVNpemU7CiAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgd2luZG93LnN0YXJ0ID0gd2luZG93LmVuZCAtIFdlYkluc3BlY3Rv
ci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5NaW5TZWxlY3RhYmxlU2l6ZTsKKyAgICAgICAgfQogICAg
ICAgICB0aGlzLl9zZXRXaW5kb3dQb3NpdGlvbih3aW5kb3cuc3RhcnQsIHdpbmRvdy5lbmQpOwog
ICAgIH0sCiAKQEAgLTI4MCw4ICszMDcsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmll
d1BhbmUucHJvdG90eXBlID0gewogICAgICAgICAgICAgZW5kID0gd2luZG93U2l6ZTsKICAgICAg
ICAgfQogCi0gICAgICAgIGlmIChlbmQgPiB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5jbGll
bnRXaWR0aCkgewotICAgICAgICAgICAgZW5kID0gdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQu
Y2xpZW50V2lkdGg7CisgICAgICAgIGlmIChlbmQgPiB0aGlzLl9wYXJlbnQuY2xpZW50V2lkdGgp
IHsKKyAgICAgICAgICAgIGVuZCA9IHRoaXMuX3BhcmVudC5jbGllbnRXaWR0aDsKICAgICAgICAg
ICAgIHN0YXJ0ID0gZW5kIC0gd2luZG93U2l6ZTsKICAgICAgICAgfQogICAgICAgICB0aGlzLl9z
ZXRXaW5kb3dQb3NpdGlvbihzdGFydCwgZW5kKTsKQEAgLTMwMiw4ICszMjksOCBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlID0gewogICAgIF9yZXNpemVXaW5k
b3dSaWdodDogZnVuY3Rpb24oZW5kKQogICAgIHsKICAgICAgICAgLy8gR2x1ZSB0byBlZGdlLgot
ICAgICAgICBpZiAoZW5kID4gdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQuY2xpZW50V2lkdGgg
LSAxMCkKLSAgICAgICAgICAgIGVuZCA9IHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50LmNsaWVu
dFdpZHRoOworICAgICAgICBpZiAoZW5kID4gdGhpcy5fcGFyZW50LmNsaWVudFdpZHRoIC0gMTAp
CisgICAgICAgICAgICBlbmQgPSB0aGlzLl9wYXJlbnQuY2xpZW50V2lkdGg7CiAgICAgICAgIGVs
c2UgaWYgKGVuZCA8IHRoaXMuX2xlZnRSZXNpemVFbGVtZW50Lm9mZnNldExlZnQgKyBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuTWluU2VsZWN0YWJsZVNpemUpCiAgICAgICAgICAg
ICBlbmQgPSB0aGlzLl9sZWZ0UmVzaXplRWxlbWVudC5vZmZzZXRMZWZ0ICsgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lT3ZlcnZpZXdQYW5lLk1pblNlbGVjdGFibGVTaXplOwogICAgICAgICB0aGlzLl9z
ZXRXaW5kb3dQb3NpdGlvbihudWxsLCBlbmQpOwpAQCAtMzExLDQxICszMzgsMzYgQEAgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZSA9IHsKIAogICAgIF9yZXNpemVX
aW5kb3dNYXhpbXVtOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9zZXRXaW5kb3dQ
b3NpdGlvbigwLCB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5jbGllbnRXaWR0aCk7CisgICAg
ICAgIHRoaXMuX3NldFdpbmRvd1Bvc2l0aW9uKDAsIHRoaXMuX3BhcmVudC5jbGllbnRXaWR0aCk7
CiAgICAgfSwKIAogICAgIF9zZXRXaW5kb3dQb3NpdGlvbjogZnVuY3Rpb24oc3RhcnQsIGVuZCkK
ICAgICB7Ci0gICAgICAgIGNvbnN0IHJ1bGVyQWRqdXN0bWVudCA9IDEgLyB0aGlzLl9vdmVydmll
d0dyaWQuZWxlbWVudC5jbGllbnRXaWR0aDsKKyAgICAgICAgdmFyIGNsaWVudFdpZHRoID0gdGhp
cy5fcGFyZW50LmNsaWVudFdpZHRoOworICAgICAgICBjb25zdCBydWxlckFkanVzdG1lbnQgPSAx
IC8gY2xpZW50V2lkdGg7CisgICAgICAgIHZhciB3aW5kb3dMZWZ0ID0gdGhpcy5fcHJlc2VudGF0
aW9uTW9kZWwud2luZG93TGVmdDsKKyAgICAgICAgdmFyIHdpbmRvd1JpZ2h0ID0gdGhpcy5fcHJl
c2VudGF0aW9uTW9kZWwud2luZG93UmlnaHQ7CiAgICAgICAgIGlmICh0eXBlb2Ygc3RhcnQgPT09
ICJudW1iZXIiKSB7Ci0gICAgICAgICAgICB0aGlzLndpbmRvd0xlZnQgPSBzdGFydCAvIHRoaXMu
X292ZXJ2aWV3R3JpZC5lbGVtZW50LmNsaWVudFdpZHRoOwotICAgICAgICAgICAgdGhpcy5fbGVm
dFJlc2l6ZUVsZW1lbnQuc3R5bGUubGVmdCA9IHRoaXMud2luZG93TGVmdCAqIDEwMCArICIlIjsK
LSAgICAgICAgICAgIHRoaXMuX292ZXJ2aWV3V2luZG93RWxlbWVudC5zdHlsZS5sZWZ0ID0gdGhp
cy53aW5kb3dMZWZ0ICogMTAwICsgIiUiOwotICAgICAgICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5k
b3dCb3JkZXJzRWxlbWVudC5zdHlsZS5sZWZ0ID0gKHRoaXMud2luZG93TGVmdCAtIHJ1bGVyQWRq
dXN0bWVudCkgKiAxMDAgKyAiJSI7CisgICAgICAgICAgICB3aW5kb3dMZWZ0ID0gc3RhcnQgLyBj
bGllbnRXaWR0aDsKKyAgICAgICAgICAgIHRoaXMuX2xlZnRSZXNpemVFbGVtZW50LnN0eWxlLmxl
ZnQgPSB3aW5kb3dMZWZ0ICogMTAwICsgIiUiOworICAgICAgICAgICAgdGhpcy5fb3ZlcnZpZXdX
aW5kb3dFbGVtZW50LnN0eWxlLmxlZnQgPSB3aW5kb3dMZWZ0ICogMTAwICsgIiUiOworICAgICAg
ICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dCb3JkZXJzRWxlbWVudC5zdHlsZS5sZWZ0ID0gKHdp
bmRvd0xlZnQgLSBydWxlckFkanVzdG1lbnQpICogMTAwICsgIiUiOwogICAgICAgICB9CiAgICAg
ICAgIGlmICh0eXBlb2YgZW5kID09PSAibnVtYmVyIikgewotICAgICAgICAgICAgdGhpcy53aW5k
b3dSaWdodCA9IGVuZCAvIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50LmNsaWVudFdpZHRoOwot
ICAgICAgICAgICAgdGhpcy5fcmlnaHRSZXNpemVFbGVtZW50LnN0eWxlLmxlZnQgPSB0aGlzLndp
bmRvd1JpZ2h0ICogMTAwICsgIiUiOworICAgICAgICAgICAgd2luZG93UmlnaHQgPSBlbmQgLyBj
bGllbnRXaWR0aDsKKyAgICAgICAgICAgIHRoaXMuX3JpZ2h0UmVzaXplRWxlbWVudC5zdHlsZS5s
ZWZ0ID0gd2luZG93UmlnaHQgKiAxMDAgKyAiJSI7CiAgICAgICAgIH0KLSAgICAgICAgdGhpcy5f
b3ZlcnZpZXdXaW5kb3dFbGVtZW50LnN0eWxlLndpZHRoID0gKHRoaXMud2luZG93UmlnaHQgLSB0
aGlzLndpbmRvd0xlZnQpICogMTAwICsgIiUiOwotICAgICAgICB0aGlzLl9vdmVydmlld1dpbmRv
d0JvcmRlcnNFbGVtZW50LnN0eWxlLnJpZ2h0ID0gKDEgLSB0aGlzLndpbmRvd1JpZ2h0ICsgMiAq
IHJ1bGVyQWRqdXN0bWVudCkgKiAxMDAgKyAiJSI7Ci0gICAgICAgIHRoaXMuX3ByZXNlbnRhdGlv
bk1vZGVsLnNldFdpbmRvd1Bvc2l0aW9uKHRoaXMud2luZG93TGVmdCwgdGhpcy53aW5kb3dSaWdo
dCk7CisgICAgICAgIHRoaXMuX292ZXJ2aWV3V2luZG93RWxlbWVudC5zdHlsZS53aWR0aCA9ICh3
aW5kb3dSaWdodCAtIHdpbmRvd0xlZnQpICogMTAwICsgIiUiOworICAgICAgICB0aGlzLl9vdmVy
dmlld1dpbmRvd0JvcmRlcnNFbGVtZW50LnN0eWxlLnJpZ2h0ID0gKDEgLSB3aW5kb3dSaWdodCAr
IDIgKiBydWxlckFkanVzdG1lbnQpICogMTAwICsgIiUiOworICAgICAgICB0aGlzLl9wcmVzZW50
YXRpb25Nb2RlbC5zZXRXaW5kb3dQb3NpdGlvbih3aW5kb3dMZWZ0LCB3aW5kb3dSaWdodCk7CiAg
ICAgfSwKIAogICAgIF9lbmRXaW5kb3dEcmFnZ2luZzogZnVuY3Rpb24oZXZlbnQpCiAgICAgewog
ICAgICAgICBXZWJJbnNwZWN0b3IuZWxlbWVudERyYWdFbmQoZXZlbnQpOwogICAgIH0sCi0KLSAg
ICBzY3JvbGxXaW5kb3c6IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKHR5cGVv
ZiBldmVudC53aGVlbERlbHRhWCA9PT0gIm51bWJlciIgJiYgZXZlbnQud2hlZWxEZWx0YVggIT09
IDApCi0gICAgICAgICAgICB0aGlzLl93aW5kb3dEcmFnZ2luZyhldmVudC5wYWdlWCArIE1hdGgu
cm91bmQoZXZlbnQud2hlZWxEZWx0YVggKiBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1Bh
bmUuV2luZG93U2Nyb2xsU3BlZWRGYWN0b3IpLCB0aGlzLl9sZWZ0UmVzaXplRWxlbWVudC5vZmZz
ZXRMZWZ0ICsgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLlJlc2l6ZXJPZmZzZXQs
IHRoaXMuX3JpZ2h0UmVzaXplRWxlbWVudC5vZmZzZXRMZWZ0ICsgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lT3ZlcnZpZXdQYW5lLlJlc2l6ZXJPZmZzZXQsIGV2ZW50KTsKLSAgICB9CiB9CiAKLVdlYklu
c3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5z
cGVjdG9yLk9iamVjdC5wcm90b3R5cGU7Ci0KIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKi8KQEAg
LTQzOCw3ICs0NjAsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeUdyYXBoLnByb3Rv
dHlwZSA9IHsKIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKi8KLVdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLldpbmRvd1NlbGVjdG9yID0gZnVuY3Rpb24ocGFyZW50LCBwb3NpdGlvbiwgZXZlbnQp
CitXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5XaW5kb3dTZWxlY3RvciA9IGZ1bmN0aW9uKHBh
cmVudCwgcG9zaXRpb24pCiB7CiAgICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IHBvc2l0aW9uOwog
ICAgIHRoaXMuX3dpZHRoID0gcGFyZW50Lm9mZnNldFdpZHRoOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126965</attachid>
            <date>2012-02-14 05:41:05 -0800</date>
            <delta_ts>2012-02-14 06:22:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78599-20120214174103.patch</filename>
            <type>text/plain</type>
            <size>15067</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjRlN2Q3YWFhYzdlMTk5
YmNhNGY2ZGE3NzNmMDZiNjg0Yzk4ZjVlMC4uNTFkNmFhMDMwNGNjYmM4MTk3ZGU4YWJhYWU4Njgy
ODFlODZlOWFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAyLTE0ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogW3JlZmFjdG9yaW5nXSBleHRyYWN0IFRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cgZnJvbSBUaW1l
bGluZU92ZXJ2aWV3UGFuZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4NTk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUucmVzZXQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5zY3JvbGxXaW5k
b3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cucHJvdG90eXBlLnJlc2V0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3V2luZG93LnByb3RvdHlw
ZS5zY3JvbGxXaW5kb3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdX
aW5kb3cucHJvdG90eXBlLl93aW5kb3dSZXNpemVEcmFnZ2luZyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGltZWxpbmVPdmVydmlld1dpbmRvdy5wcm90b3R5cGUuX2RyYWdXaW5kb3cpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5kb3cucHJvdG90eXBlLl93aW5k
b3dTZWxlY3RvckRyYWdnaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2
aWV3V2luZG93LnByb3RvdHlwZS5fZW5kV2luZG93U2VsZWN0b3JEcmFnZ2luZyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1dpbmRvdy5wcm90b3R5cGUuX3dpbmRvd0Ry
YWdnaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3V2luZG93LnBy
b3RvdHlwZS5fcmVzaXplV2luZG93UmlnaHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lT3ZlcnZpZXdXaW5kb3cucHJvdG90eXBlLl9yZXNpemVXaW5kb3dNYXhpbXVtKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3V2luZG93LnByb3RvdHlwZS5fc2V0V2lu
ZG93UG9zaXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdXaW5k
b3cucHJvdG90eXBlLl9lbmRXaW5kb3dEcmFnZ2luZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbC5XaW5kb3dTZWxlY3Rvcik6CisKIDIwMTItMDItMTQgIFZzZXZvbG9kIFZs
YXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTWFr
ZSBTY3JpcHRzTmF2aWdhdG9yIGRlZmF1bHQgZmlsZSBzZWxlY3Rvci4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5l
LmpzCmluZGV4IDI5MWQ4NzA3YjdjZmE3MzUyMDJmMTM4MjlhMjFkMzgyODQ5NzNkZTAuLmIwOWQx
YzkyOTFiNThjNGY4MjJiMDE3ZmE4NThjYTdmZjExMjcyZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5q
cwpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtMzgsOSArMzgsNiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUgPSBmdW5j
dGlvbihwcmVzZW50YXRpb25Nb2RlbCkKICAgICB0aGlzLl9vdmVydmlld0dyaWQgPSBuZXcgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lR3JpZCgpOwogICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50
LmlkID0gInRpbWVsaW5lLW92ZXJ2aWV3LWdyaWQiOwogICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5p
dGVtc0dyYXBoc0VsZW1lbnQuaWQgPSAidGltZWxpbmUtb3ZlcnZpZXctdGltZWxpbmVzIjsKLSAg
ICB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24i
LCB0aGlzLl9kcmFnV2luZG93LmJpbmQodGhpcyksIHRydWUpOwotICAgIHRoaXMuX292ZXJ2aWV3
R3JpZC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLCB0aGlzLnNjcm9sbFdp
bmRvdy5iaW5kKHRoaXMpLCB0cnVlKTsKLSAgICB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJkYmxjbGljayIsIHRoaXMuX3Jlc2l6ZVdpbmRvd01heGltdW0uYmlu
ZCh0aGlzKSwgdHJ1ZSk7CiAKICAgICB0aGlzLl9oZWFwR3JhcGggPSBuZXcgV2ViSW5zcGVjdG9y
LkhlYXBHcmFwaCgpOwogICAgIHRoaXMuX2hlYXBHcmFwaC5lbGVtZW50LmlkID0gInRpbWVsaW5l
LW92ZXJ2aWV3LW1lbW9yeSI7CkBAIC02MCwzMiArNTcsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxp
bmVPdmVydmlld1BhbmUgPSBmdW5jdGlvbihwcmVzZW50YXRpb25Nb2RlbCkKIAogICAgIHRoaXMu
X292ZXJ2aWV3R3JpZC5zZXRTY3JvbGxBbmREaXZpZGVyVG9wKDAsIDApOwogCi0gICAgdGhpcy5f
b3ZlcnZpZXdXaW5kb3dFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0g
ICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dFbGVtZW50LmlkID0gInRpbWVsaW5lLW92ZXJ2aWV3LXdp
bmRvdyI7Ci0gICAgdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
b3ZlcnZpZXdXaW5kb3dFbGVtZW50KTsKLQotICAgIHRoaXMuX292ZXJ2aWV3V2luZG93Qm9yZGVy
c0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlzLl9vdmVy
dmlld1dpbmRvd0JvcmRlcnNFbGVtZW50LmNsYXNzTmFtZSA9ICJ0aW1lbGluZS1vdmVydmlldy13
aW5kb3ctcnVsZXJzIjsKLSAgICB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5hcHBlbmRDaGls
ZCh0aGlzLl9vdmVydmlld1dpbmRvd0JvcmRlcnNFbGVtZW50KTsKLQotICAgIHZhciBvdmVydmll
d0RpdmlkZXJzQmFja2dyb3VuZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAg
IG92ZXJ2aWV3RGl2aWRlcnNCYWNrZ3JvdW5kLmNsYXNzTmFtZSA9ICJ0aW1lbGluZS1vdmVydmll
dy1kaXZpZGVycy1iYWNrZ3JvdW5kIjsKLSAgICB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5h
cHBlbmRDaGlsZChvdmVydmlld0RpdmlkZXJzQmFja2dyb3VuZCk7Ci0KLSAgICB0aGlzLl9sZWZ0
UmVzaXplRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMu
X2xlZnRSZXNpemVFbGVtZW50LmNsYXNzTmFtZSA9ICJ0aW1lbGluZS13aW5kb3ctcmVzaXplciI7
Ci0gICAgdGhpcy5fbGVmdFJlc2l6ZUVsZW1lbnQuc3R5bGUubGVmdCA9IDA7Ci0gICAgdGhpcy5f
b3ZlcnZpZXdHcmlkLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fbGVmdFJlc2l6ZUVsZW1lbnQp
OwotCi0gICAgdGhpcy5fcmlnaHRSZXNpemVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7Ci0gICAgdGhpcy5fcmlnaHRSZXNpemVFbGVtZW50LmNsYXNzTmFtZSA9ICJ0aW1l
bGluZS13aW5kb3ctcmVzaXplciB0aW1lbGluZS13aW5kb3ctcmVzaXplci1yaWdodCI7Ci0gICAg
dGhpcy5fcmlnaHRSZXNpemVFbGVtZW50LnN0eWxlLnJpZ2h0ID0gMDsKLSAgICB0aGlzLl9vdmVy
dmlld0dyaWQuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9yaWdodFJlc2l6ZUVsZW1lbnQpOwot
CisgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3cgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3Zl
cnZpZXdXaW5kb3codGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQsIHByZXNlbnRhdGlvbk1vZGVs
KTsKICAgICB0aGlzLl9vdmVydmlld0NhbGN1bGF0b3IgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lT3ZlcnZpZXdDYWxjdWxhdG9yKCk7Ci0KLSAgICB0aGlzLndpbmRvd0xlZnQgPSAwLjA7Ci0g
ICAgdGhpcy53aW5kb3dSaWdodCA9IDEuMDsKIH0KIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3Zl
cnZpZXdQYW5lLk1pblNlbGVjdGFibGVTaXplID0gMTI7CkBAIC0yMDIsMTYgKzE3NSw2MyBAQCBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlID0gewogCiAgICAgcmVz
ZXQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMud2luZG93TGVmdCA9IDAuMDsKLSAg
ICAgICAgdGhpcy53aW5kb3dSaWdodCA9IDEuMDsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5k
b3cucmVzZXQoKTsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdDYWxjdWxhdG9yLnJlc2V0KCk7Cisg
ICAgICAgIHRoaXMuX292ZXJ2aWV3R3JpZC51cGRhdGVEaXZpZGVycyh0cnVlLCB0aGlzLl9vdmVy
dmlld0NhbGN1bGF0b3IpOworICAgIH0sCisKKyAgICBzY3JvbGxXaW5kb3c6IGZ1bmN0aW9uKGV2
ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3cuc2Nyb2xsV2luZG93KGV2
ZW50KTsKKyAgICB9Cit9CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge0VsZW1l
bnR9IHBhcmVudEVsZW1lbnQKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2Vu
dGF0aW9uTW9kZWx9IG1vZGVsCisgKi8KK1dlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3V2lu
ZG93ID0gZnVuY3Rpb24ocGFyZW50RWxlbWVudCwgbW9kZWwpCit7CisgICAgdGhpcy5fcGFyZW50
RWxlbWVudCA9IHBhcmVudEVsZW1lbnQ7CisgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwgPSBt
b2RlbDsKKworICAgIHRoaXMuX3BhcmVudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vk
b3duIiwgdGhpcy5fZHJhZ1dpbmRvdy5iaW5kKHRoaXMpLCB0cnVlKTsKKyAgICB0aGlzLl9wYXJl
bnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNld2hlZWwiLCB0aGlzLnNjcm9sbFdpbmRv
dy5iaW5kKHRoaXMpLCB0cnVlKTsKKyAgICB0aGlzLl9wYXJlbnRFbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImRibGNsaWNrIiwgdGhpcy5fcmVzaXplV2luZG93TWF4aW11bS5iaW5kKHRoaXMpLCB0
cnVlKTsKKworICAgIHRoaXMuX292ZXJ2aWV3V2luZG93RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworICAgIHRoaXMuX292ZXJ2aWV3V2luZG93RWxlbWVudC5pZCA9ICJ0
aW1lbGluZS1vdmVydmlldy13aW5kb3ciOworICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQo
dGhpcy5fb3ZlcnZpZXdXaW5kb3dFbGVtZW50KTsKKworICAgIHRoaXMuX292ZXJ2aWV3V2luZG93
Qm9yZGVyc0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlz
Ll9vdmVydmlld1dpbmRvd0JvcmRlcnNFbGVtZW50LmNsYXNzTmFtZSA9ICJ0aW1lbGluZS1vdmVy
dmlldy13aW5kb3ctcnVsZXJzIjsKKyAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
X292ZXJ2aWV3V2luZG93Qm9yZGVyc0VsZW1lbnQpOworCisgICAgdmFyIG92ZXJ2aWV3RGl2aWRl
cnNCYWNrZ3JvdW5kID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgb3ZlcnZp
ZXdEaXZpZGVyc0JhY2tncm91bmQuY2xhc3NOYW1lID0gInRpbWVsaW5lLW92ZXJ2aWV3LWRpdmlk
ZXJzLWJhY2tncm91bmQiOworICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQob3ZlcnZpZXdE
aXZpZGVyc0JhY2tncm91bmQpOworCisgICAgdGhpcy5fbGVmdFJlc2l6ZUVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLl9sZWZ0UmVzaXplRWxlbWVudC5j
bGFzc05hbWUgPSAidGltZWxpbmUtd2luZG93LXJlc2l6ZXIiOworICAgIHRoaXMuX2xlZnRSZXNp
emVFbGVtZW50LnN0eWxlLmxlZnQgPSAwOworICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQo
dGhpcy5fbGVmdFJlc2l6ZUVsZW1lbnQpOworCisgICAgdGhpcy5fcmlnaHRSZXNpemVFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5fcmlnaHRSZXNpemVF
bGVtZW50LmNsYXNzTmFtZSA9ICJ0aW1lbGluZS13aW5kb3ctcmVzaXplciB0aW1lbGluZS13aW5k
b3ctcmVzaXplci1yaWdodCI7CisgICAgdGhpcy5fcmlnaHRSZXNpemVFbGVtZW50LnN0eWxlLnJp
Z2h0ID0gMDsKKyAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3JpZ2h0UmVzaXpl
RWxlbWVudCk7Cit9CisKK1dlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3V2luZG93LnByb3Rv
dHlwZSA9IHsKKyAgICByZXNldDogZnVuY3Rpb24oKQorICAgIHsKICAgICAgICAgdGhpcy5fb3Zl
cnZpZXdXaW5kb3dFbGVtZW50LnN0eWxlLmxlZnQgPSAiMCUiOwogICAgICAgICB0aGlzLl9vdmVy
dmlld1dpbmRvd0VsZW1lbnQuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgICAgIHRoaXMuX292
ZXJ2aWV3V2luZG93Qm9yZGVyc0VsZW1lbnQuc3R5bGUubGVmdCA9ICIwJSI7CiAgICAgICAgIHRo
aXMuX292ZXJ2aWV3V2luZG93Qm9yZGVyc0VsZW1lbnQuc3R5bGUucmlnaHQgPSAiMCUiOwogICAg
ICAgICB0aGlzLl9sZWZ0UmVzaXplRWxlbWVudC5zdHlsZS5sZWZ0ID0gIjAlIjsKICAgICAgICAg
dGhpcy5fcmlnaHRSZXNpemVFbGVtZW50LnN0eWxlLmxlZnQgPSAiMTAwJSI7Ci0gICAgICAgIHRo
aXMuX292ZXJ2aWV3Q2FsY3VsYXRvci5yZXNldCgpOwotICAgICAgICB0aGlzLl9vdmVydmlld0dy
aWQudXBkYXRlRGl2aWRlcnModHJ1ZSwgdGhpcy5fb3ZlcnZpZXdDYWxjdWxhdG9yKTsKICAgICB9
LAogCiAgICAgX3Jlc2l6ZVdpbmRvdzogZnVuY3Rpb24ocmVzaXplRWxlbWVudCwgZXZlbnQpCkBA
IC0yMjIsOSArMjQyLDkgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3Rv
dHlwZSA9IHsKICAgICBfd2luZG93UmVzaXplRHJhZ2dpbmc6IGZ1bmN0aW9uKHJlc2l6ZUVsZW1l
bnQsIGV2ZW50KQogICAgIHsKICAgICAgICAgaWYgKHJlc2l6ZUVsZW1lbnQgPT09IHRoaXMuX2xl
ZnRSZXNpemVFbGVtZW50KQotICAgICAgICAgICAgdGhpcy5fcmVzaXplV2luZG93TGVmdChldmVu
dC5wYWdlWCAtIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50Lm9mZnNldExlZnQpOworICAgICAg
ICAgICAgdGhpcy5fcmVzaXplV2luZG93TGVmdChldmVudC5wYWdlWCAtIHRoaXMuX3BhcmVudEVs
ZW1lbnQub2Zmc2V0TGVmdCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMuX3Jlc2l6
ZVdpbmRvd1JpZ2h0KGV2ZW50LnBhZ2VYIC0gdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQub2Zm
c2V0TGVmdCk7CisgICAgICAgICAgICB0aGlzLl9yZXNpemVXaW5kb3dSaWdodChldmVudC5wYWdl
WCAtIHRoaXMuX3BhcmVudEVsZW1lbnQub2Zmc2V0TGVmdCk7CiAgICAgICAgIGV2ZW50LnByZXZl
bnREZWZhdWx0KCk7CiAgICAgfSwKIApAQCAtMjMyLDEzICsyNTIsMTMgQEAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBu
b2RlID0gZXZlbnQudGFyZ2V0OwogICAgICAgICB3aGlsZSAobm9kZSkgewotICAgICAgICAgICAg
aWYgKG5vZGUgPT09IHRoaXMuX292ZXJ2aWV3R3JpZC5fZGl2aWRlcnNMYWJlbEJhckVsZW1lbnQp
IHsKKyAgICAgICAgICAgIGlmIChub2RlLmhhc1N0eWxlQ2xhc3MoInJlc291cmNlcy1kaXZpZGVy
cy1sYWJlbC1iYXIiKSkgewogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5lbGVtZW50RHJh
Z1N0YXJ0KHRoaXMuX292ZXJ2aWV3V2luZG93RWxlbWVudCwgdGhpcy5fd2luZG93RHJhZ2dpbmcu
YmluZCh0aGlzLCBldmVudC5wYWdlWCwKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGVmdFJl
c2l6ZUVsZW1lbnQub2Zmc2V0TGVmdCArIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFu
ZS5SZXNpemVyT2Zmc2V0LCB0aGlzLl9yaWdodFJlc2l6ZUVsZW1lbnQub2Zmc2V0TGVmdCArIFdl
Ykluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5SZXNpemVyT2Zmc2V0KSwgdGhpcy5fZW5k
V2luZG93RHJhZ2dpbmcuYmluZCh0aGlzKSwgZXZlbnQsICJldy1yZXNpemUiKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZSA9PT0gdGhpcy5fb3Zl
cnZpZXdHcmlkLmVsZW1lbnQpIHsKLSAgICAgICAgICAgICAgICB2YXIgcG9zaXRpb24gPSBldmVu
dC5wYWdlWCAtIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50Lm9mZnNldExlZnQ7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dTZWxlY3RvciA9IG5ldyBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbC5XaW5kb3dTZWxlY3Rvcih0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudCwg
cG9zaXRpb24sIGV2ZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZSA9PT0gdGhpcy5f
cGFyZW50RWxlbWVudCkgeworICAgICAgICAgICAgICAgIHZhciBwb3NpdGlvbiA9IGV2ZW50LnBh
Z2VYIC0gdGhpcy5fcGFyZW50RWxlbWVudC5vZmZzZXRMZWZ0OworICAgICAgICAgICAgICAgIHRo
aXMuX292ZXJ2aWV3V2luZG93U2VsZWN0b3IgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwuV2luZG93U2VsZWN0b3IodGhpcy5fcGFyZW50RWxlbWVudCwgcG9zaXRpb24pOwogICAgICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5lbGVtZW50RHJhZ1N0YXJ0KG51bGwsIHRoaXMuX3dpbmRv
d1NlbGVjdG9yRHJhZ2dpbmcuYmluZCh0aGlzKSwgdGhpcy5fZW5kV2luZG93U2VsZWN0b3JEcmFn
Z2luZy5iaW5kKHRoaXMpLCBldmVudCwgImV3LXJlc2l6ZSIpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlID09PSB0aGlzLl9sZWZ0UmVzaXplRWxl
bWVudCB8fCBub2RlID09PSB0aGlzLl9yaWdodFJlc2l6ZUVsZW1lbnQpIHsKQEAgLTI1MSwyMCAr
MjcxLDIxIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7
CiAKICAgICBfd2luZG93U2VsZWN0b3JEcmFnZ2luZzogZnVuY3Rpb24oZXZlbnQpCiAgICAgewot
ICAgICAgICB0aGlzLl9vdmVydmlld1dpbmRvd1NlbGVjdG9yLl91cGRhdGVQb3NpdGlvbihldmVu
dC5wYWdlWCAtIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50Lm9mZnNldExlZnQpOworICAgICAg
ICB0aGlzLl9vdmVydmlld1dpbmRvd1NlbGVjdG9yLl91cGRhdGVQb3NpdGlvbihldmVudC5wYWdl
WCAtIHRoaXMuX3BhcmVudEVsZW1lbnQub2Zmc2V0TGVmdCk7CiAgICAgICAgIGV2ZW50LnByZXZl
bnREZWZhdWx0KCk7CiAgICAgfSwKIAogICAgIF9lbmRXaW5kb3dTZWxlY3RvckRyYWdnaW5nOiBm
dW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5lbGVtZW50RHJhZ0Vu
ZChldmVudCk7Ci0gICAgICAgIHZhciB3aW5kb3cgPSB0aGlzLl9vdmVydmlld1dpbmRvd1NlbGVj
dG9yLl9jbG9zZShldmVudC5wYWdlWCAtIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50Lm9mZnNl
dExlZnQpOworICAgICAgICB2YXIgd2luZG93ID0gdGhpcy5fb3ZlcnZpZXdXaW5kb3dTZWxlY3Rv
ci5fY2xvc2UoZXZlbnQucGFnZVggLSB0aGlzLl9wYXJlbnRFbGVtZW50Lm9mZnNldExlZnQpOwog
ICAgICAgICBkZWxldGUgdGhpcy5fb3ZlcnZpZXdXaW5kb3dTZWxlY3RvcjsKLSAgICAgICAgaWYg
KHdpbmRvdy5lbmQgLSB3aW5kb3cuc3RhcnQgPCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmll
d1BhbmUuTWluU2VsZWN0YWJsZVNpemUpCi0gICAgICAgICAgICBpZiAodGhpcy5fb3ZlcnZpZXdH
cmlkLml0ZW1zR3JhcGhzRWxlbWVudC5vZmZzZXRXaWR0aCAtIHdpbmRvdy5lbmQgPiBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuTWluU2VsZWN0YWJsZVNpemUpCisgICAgICAgIGlm
ICh3aW5kb3cuZW5kIC0gd2luZG93LnN0YXJ0IDwgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZp
ZXdQYW5lLk1pblNlbGVjdGFibGVTaXplKSB7CisgICAgICAgICAgICBpZiAodGhpcy5fcGFyZW50
RWxlbWVudC5jbGllbnRXaWR0aCAtIHdpbmRvdy5lbmQgPiBXZWJJbnNwZWN0b3IuVGltZWxpbmVP
dmVydmlld1BhbmUuTWluU2VsZWN0YWJsZVNpemUpCiAgICAgICAgICAgICAgICAgd2luZG93LmVu
ZCA9IHdpbmRvdy5zdGFydCArIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5NaW5T
ZWxlY3RhYmxlU2l6ZTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB3aW5kb3cu
c3RhcnQgPSB3aW5kb3cuZW5kIC0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLk1p
blNlbGVjdGFibGVTaXplOworICAgICAgICB9CiAgICAgICAgIHRoaXMuX3NldFdpbmRvd1Bvc2l0
aW9uKHdpbmRvdy5zdGFydCwgd2luZG93LmVuZCk7CiAgICAgfSwKIApAQCAtMjgwLDggKzMwMSw4
IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBlbmQgPSB3aW5kb3dTaXplOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKGVuZCA+
IHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50LmNsaWVudFdpZHRoKSB7Ci0gICAgICAgICAgICBl
bmQgPSB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5jbGllbnRXaWR0aDsKKyAgICAgICAgaWYg
KGVuZCA+IHRoaXMuX3BhcmVudEVsZW1lbnQuY2xpZW50V2lkdGgpIHsKKyAgICAgICAgICAgIGVu
ZCA9IHRoaXMuX3BhcmVudEVsZW1lbnQuY2xpZW50V2lkdGg7CiAgICAgICAgICAgICBzdGFydCA9
IGVuZCAtIHdpbmRvd1NpemU7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fc2V0V2luZG93UG9z
aXRpb24oc3RhcnQsIGVuZCk7CkBAIC0zMDIsOCArMzIzLDggQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZSA9IHsKICAgICBfcmVzaXplV2luZG93UmlnaHQ6IGZ1
bmN0aW9uKGVuZCkKICAgICB7CiAgICAgICAgIC8vIEdsdWUgdG8gZWRnZS4KLSAgICAgICAgaWYg
KGVuZCA+IHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50LmNsaWVudFdpZHRoIC0gMTApCi0gICAg
ICAgICAgICBlbmQgPSB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5jbGllbnRXaWR0aDsKKyAg
ICAgICAgaWYgKGVuZCA+IHRoaXMuX3BhcmVudEVsZW1lbnQuY2xpZW50V2lkdGggLSAxMCkKKyAg
ICAgICAgICAgIGVuZCA9IHRoaXMuX3BhcmVudEVsZW1lbnQuY2xpZW50V2lkdGg7CiAgICAgICAg
IGVsc2UgaWYgKGVuZCA8IHRoaXMuX2xlZnRSZXNpemVFbGVtZW50Lm9mZnNldExlZnQgKyBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuTWluU2VsZWN0YWJsZVNpemUpCiAgICAgICAg
ICAgICBlbmQgPSB0aGlzLl9sZWZ0UmVzaXplRWxlbWVudC5vZmZzZXRMZWZ0ICsgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLk1pblNlbGVjdGFibGVTaXplOwogICAgICAgICB0aGlz
Ll9zZXRXaW5kb3dQb3NpdGlvbihudWxsLCBlbmQpOwpAQCAtMzExLDI1ICszMzIsMjggQEAgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZSA9IHsKIAogICAgIF9yZXNp
emVXaW5kb3dNYXhpbXVtOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9zZXRXaW5k
b3dQb3NpdGlvbigwLCB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5jbGllbnRXaWR0aCk7Cisg
ICAgICAgIHRoaXMuX3NldFdpbmRvd1Bvc2l0aW9uKDAsIHRoaXMuX3BhcmVudEVsZW1lbnQuY2xp
ZW50V2lkdGgpOwogICAgIH0sCiAKICAgICBfc2V0V2luZG93UG9zaXRpb246IGZ1bmN0aW9uKHN0
YXJ0LCBlbmQpCiAgICAgewotICAgICAgICBjb25zdCBydWxlckFkanVzdG1lbnQgPSAxIC8gdGhp
cy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQuY2xpZW50V2lkdGg7CisgICAgICAgIHZhciBjbGllbnRX
aWR0aCA9IHRoaXMuX3BhcmVudEVsZW1lbnQuY2xpZW50V2lkdGg7CisgICAgICAgIGNvbnN0IHJ1
bGVyQWRqdXN0bWVudCA9IDEgLyBjbGllbnRXaWR0aDsKKyAgICAgICAgdmFyIHdpbmRvd0xlZnQg
PSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC53aW5kb3dMZWZ0OworICAgICAgICB2YXIgd2luZG93
UmlnaHQgPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC53aW5kb3dSaWdodDsKICAgICAgICAgaWYg
KHR5cGVvZiBzdGFydCA9PT0gIm51bWJlciIpIHsKLSAgICAgICAgICAgIHRoaXMud2luZG93TGVm
dCA9IHN0YXJ0IC8gdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1lbnQuY2xpZW50V2lkdGg7Ci0gICAg
ICAgICAgICB0aGlzLl9sZWZ0UmVzaXplRWxlbWVudC5zdHlsZS5sZWZ0ID0gdGhpcy53aW5kb3dM
ZWZ0ICogMTAwICsgIiUiOwotICAgICAgICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dFbGVtZW50
LnN0eWxlLmxlZnQgPSB0aGlzLndpbmRvd0xlZnQgKiAxMDAgKyAiJSI7Ci0gICAgICAgICAgICB0
aGlzLl9vdmVydmlld1dpbmRvd0JvcmRlcnNFbGVtZW50LnN0eWxlLmxlZnQgPSAodGhpcy53aW5k
b3dMZWZ0IC0gcnVsZXJBZGp1c3RtZW50KSAqIDEwMCArICIlIjsKKyAgICAgICAgICAgIHdpbmRv
d0xlZnQgPSBzdGFydCAvIGNsaWVudFdpZHRoOworICAgICAgICAgICAgdGhpcy5fbGVmdFJlc2l6
ZUVsZW1lbnQuc3R5bGUubGVmdCA9IHdpbmRvd0xlZnQgKiAxMDAgKyAiJSI7CisgICAgICAgICAg
ICB0aGlzLl9vdmVydmlld1dpbmRvd0VsZW1lbnQuc3R5bGUubGVmdCA9IHdpbmRvd0xlZnQgKiAx
MDAgKyAiJSI7CisgICAgICAgICAgICB0aGlzLl9vdmVydmlld1dpbmRvd0JvcmRlcnNFbGVtZW50
LnN0eWxlLmxlZnQgPSAod2luZG93TGVmdCAtIHJ1bGVyQWRqdXN0bWVudCkgKiAxMDAgKyAiJSI7
CiAgICAgICAgIH0KICAgICAgICAgaWYgKHR5cGVvZiBlbmQgPT09ICJudW1iZXIiKSB7Ci0gICAg
ICAgICAgICB0aGlzLndpbmRvd1JpZ2h0ID0gZW5kIC8gdGhpcy5fb3ZlcnZpZXdHcmlkLmVsZW1l
bnQuY2xpZW50V2lkdGg7Ci0gICAgICAgICAgICB0aGlzLl9yaWdodFJlc2l6ZUVsZW1lbnQuc3R5
bGUubGVmdCA9IHRoaXMud2luZG93UmlnaHQgKiAxMDAgKyAiJSI7CisgICAgICAgICAgICB3aW5k
b3dSaWdodCA9IGVuZCAvIGNsaWVudFdpZHRoOworICAgICAgICAgICAgdGhpcy5fcmlnaHRSZXNp
emVFbGVtZW50LnN0eWxlLmxlZnQgPSB3aW5kb3dSaWdodCAqIDEwMCArICIlIjsKICAgICAgICAg
fQotICAgICAgICB0aGlzLl9vdmVydmlld1dpbmRvd0VsZW1lbnQuc3R5bGUud2lkdGggPSAodGhp
cy53aW5kb3dSaWdodCAtIHRoaXMud2luZG93TGVmdCkgKiAxMDAgKyAiJSI7Ci0gICAgICAgIHRo
aXMuX292ZXJ2aWV3V2luZG93Qm9yZGVyc0VsZW1lbnQuc3R5bGUucmlnaHQgPSAoMSAtIHRoaXMu
d2luZG93UmlnaHQgKyAyICogcnVsZXJBZGp1c3RtZW50KSAqIDEwMCArICIlIjsKLSAgICAgICAg
dGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuc2V0V2luZG93UG9zaXRpb24odGhpcy53aW5kb3dMZWZ0
LCB0aGlzLndpbmRvd1JpZ2h0KTsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dFbGVtZW50
LnN0eWxlLndpZHRoID0gKHdpbmRvd1JpZ2h0IC0gd2luZG93TGVmdCkgKiAxMDAgKyAiJSI7Cisg
ICAgICAgIHRoaXMuX292ZXJ2aWV3V2luZG93Qm9yZGVyc0VsZW1lbnQuc3R5bGUucmlnaHQgPSAo
MSAtIHdpbmRvd1JpZ2h0ICsgMiAqIHJ1bGVyQWRqdXN0bWVudCkgKiAxMDAgKyAiJSI7CisgICAg
ICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnNldFdpbmRvd1Bvc2l0aW9uKHdpbmRvd0xlZnQs
IHdpbmRvd1JpZ2h0KTsKICAgICB9LAogCiAgICAgX2VuZFdpbmRvd0RyYWdnaW5nOiBmdW5jdGlv
bihldmVudCkKQEAgLTM0NCw4ICszNjgsNiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmll
d1BhbmUucHJvdG90eXBlID0gewogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3Zl
cnZpZXdQYW5lLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3Rv
dHlwZTsKLQogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqLwpAQCAtNDM4LDcgKzQ2MCw3IEBAIFdl
Ykluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5R3JhcGgucHJvdG90eXBlID0gewogLyoqCiAgKiBA
Y29uc3RydWN0b3IKICAqLwotV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuV2luZG93U2VsZWN0
b3IgPSBmdW5jdGlvbihwYXJlbnQsIHBvc2l0aW9uLCBldmVudCkKK1dlYkluc3BlY3Rvci5UaW1l
bGluZVBhbmVsLldpbmRvd1NlbGVjdG9yID0gZnVuY3Rpb24ocGFyZW50LCBwb3NpdGlvbikKIHsK
ICAgICB0aGlzLl9zdGFydFBvc2l0aW9uID0gcG9zaXRpb247CiAgICAgdGhpcy5fd2lkdGggPSBw
YXJlbnQub2Zmc2V0V2lkdGg7Cg==
</data>
<flag name="review"
          id="128942"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>