<?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>89584</bug_id>
          
          <creation_ts>2012-06-20 11:26:35 -0700</creation_ts>
          <short_desc>Web Inspector: Forward message loop instrumentation data to frontend.</short_desc>
          <delta_ts>2012-07-11 19:05:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (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>
          <dependson>91041</dependson>
          <blocked>88325</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter>eustas.bug</reporter>
          <assigned_to>eustas.bug</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>caseq</cc>
    
    <cc>eustas.bug</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>653684</commentid>
    <comment_count>0</comment_count>
    <who name="">eustas.bug</who>
    <bug_when>2012-06-20 11:26:35 -0700</bug_when>
    <thetext>Transmit collected message loop tasks to inspector frontend.
Now &quot;Program&quot; should be a top-level event where appropriate.
Frontend was changed so that user will not see any changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653746</commentid>
    <comment_count>1</comment_count>
      <attachid>148623</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-06-20 12:06:22 -0700</bug_when>
    <thetext>Created attachment 148623
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654017</commentid>
    <comment_count>2</comment_count>
      <attachid>148623</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-06-20 16:59:41 -0700</bug_when>
    <thetext>Comment on attachment 148623
Patch

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

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

We do seem to order these semantically, so I&apos;d make Program the top one.

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:457
&gt; +    if (record-&gt;getString(&quot;type&quot;, &amp;type)) {
&gt; +        if (type == program)

if (record-&gt;getString(&quot;type&quot;, &amp;type) &amp;&amp; type == program)
   return;

&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:54
&gt; +        program: new WebInspector.TimelineCategory(&quot;program&quot;, WebInspector.UIString(&quot;Program&quot;), -1, &quot;transparent&quot;, &quot;transparent&quot;, &quot;transparent&quot;)

This is not supposed to ever be painted, so passing concrete values for colors seems strange. Can we just omit them?
The category may also be named &quot;Hidden&quot;, I think.

&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:214
&gt; +        var records = [record];
&gt; +        if (record.type === recordTypes.Program)
&gt; +            records = record.children;

var records = record.type === recordTypes.Program ? record.children : [record];
or if (...) records = ... else records = ...;

&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:223
&gt; +    _addRecord: function(record, parentRecord)

innerAddRecord?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654069</commentid>
    <comment_count>3</comment_count>
      <attachid>148623</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-06-20 17:51:16 -0700</bug_when>
    <thetext>Comment on attachment 148623
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:99
&gt;&gt; +static const char Program[] = &quot;Program&quot;;
&gt; 
&gt; We do seem to order these semantically, so I&apos;d make Program the top one.

Done

&gt;&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:457
&gt;&gt; +        if (type == program)
&gt; 
&gt; if (record-&gt;getString(&quot;type&quot;, &amp;type) &amp;&amp; type == program)
&gt;    return;

Done

&gt;&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:54
&gt;&gt; +        program: new WebInspector.TimelineCategory(&quot;program&quot;, WebInspector.UIString(&quot;Program&quot;), -1, &quot;transparent&quot;, &quot;transparent&quot;, &quot;transparent&quot;)
&gt; 
&gt; This is not supposed to ever be painted, so passing concrete values for colors seems strange. Can we just omit them?
&gt; The category may also be named &quot;Hidden&quot;, I think.

Done.
I think &quot;hidden&quot; is not very good, because it doesn&apos;t reflect the nature of activity.

&gt;&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:214
&gt;&gt; +            records = record.children;
&gt; 
&gt; var records = record.type === recordTypes.Program ? record.children : [record];
&gt; or if (...) records = ... else records = ...;

Done

&gt;&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:223
&gt;&gt; +    _addRecord: function(record, parentRecord)
&gt; 
&gt; innerAddRecord?

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654118</commentid>
    <comment_count>4</comment_count>
      <attachid>148703</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-06-20 18:41:18 -0700</bug_when>
    <thetext>Created attachment 148703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654156</commentid>
    <comment_count>5</comment_count>
      <attachid>148703</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-06-20 19:14:02 -0700</bug_when>
    <thetext>Comment on attachment 148703
Patch

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

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:451
&gt;  void InspectorTimelineAgent::setHeapSizeStatistic(InspectorObject* record)

setHeapSizeStatistics

&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:456
&gt; +    if (record-&gt;getString(&quot;type&quot;, &amp;type) &amp;&amp; type == program)

I&apos;d rather not call setHeapSizeStatistics for Program type.

&gt; Source/WebCore/inspector/front-end/MemoryStatistics.js:260
&gt; +        var record = event.data;

We should not expect counters in the second-level records only. When we fix the GC to be synchronous, the counters should only stay in Parse, Script and GC records (maybe the whitelist is longer).

&gt; Source/WebCore/inspector/front-end/TimelineFrameController.js:69
&gt; +        records.forEach(this._innerAddRecord, this);

DFS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654313</commentid>
    <comment_count>6</comment_count>
      <attachid>148703</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-06-21 01:16:02 -0700</bug_when>
    <thetext>Comment on attachment 148703
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/MemoryStatistics.js:260
&gt;&gt; +        var record = event.data;
&gt; 
&gt; We should not expect counters in the second-level records only. When we fix the GC to be synchronous, the counters should only stay in Parse, Script and GC records (maybe the whitelist is longer).

What do you mean by &quot;When we fix the GC to be synchronous&quot; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654699</commentid>
    <comment_count>7</comment_count>
      <attachid>148703</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-06-21 11:01:23 -0700</bug_when>
    <thetext>Comment on attachment 148703
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:451
&gt;&gt;  void InspectorTimelineAgent::setHeapSizeStatistic(InspectorObject* record)
&gt; 
&gt; setHeapSizeStatistics

Done

&gt;&gt; Source/WebCore/inspector/InspectorTimelineAgent.cpp:456
&gt;&gt; +    if (record-&gt;getString(&quot;type&quot;, &amp;type) &amp;&amp; type == program)
&gt; 
&gt; I&apos;d rather not call setHeapSizeStatistics for Program type.

Done

&gt;&gt;&gt; Source/WebCore/inspector/front-end/MemoryStatistics.js:260
&gt;&gt;&gt; +        var record = event.data;
&gt;&gt; 
&gt;&gt; We should not expect counters in the second-level records only. When we fix the GC to be synchronous, the counters should only stay in Parse, Script and GC records (maybe the whitelist is longer).
&gt; 
&gt; What do you mean by &quot;When we fix the GC to be synchronous&quot; ?

Done

&gt;&gt; Source/WebCore/inspector/front-end/TimelineFrameController.js:69
&gt;&gt; +        records.forEach(this._innerAddRecord, this);
&gt; 
&gt; DFS?

Unfortunately, no. This would require severe changes to time aggregation methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654706</commentid>
    <comment_count>8</comment_count>
      <attachid>148842</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-06-21 11:03:13 -0700</bug_when>
    <thetext>Created attachment 148842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654847</commentid>
    <comment_count>9</comment_count>
      <attachid>148842</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-06-21 13:44:56 -0700</bug_when>
    <thetext>Comment on attachment 148842
Patch

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

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:492
&gt; +        this._scheduleRefresh(false);

indent

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:509
&gt; +        function isAttachedRecord(record) {

isAdoptedRecord()?
style: { =&gt; next line

&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:50
&gt; +

no need for extra ws here

&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:121
&gt; +WebInspector.TimelinePresentationModel.forAllRecords = function(recordsArray, preOrderCallback, postOrderCallback)

Can we have a test for this?

&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:228
&gt; +    _innerAddRecord: function(record, parentRecord)

so how about a recursive call this used to have?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654885</commentid>
    <comment_count>10</comment_count>
      <attachid>148842</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-06-21 14:40:17 -0700</bug_when>
    <thetext>Comment on attachment 148842
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:492
&gt;&gt; +        this._scheduleRefresh(false);
&gt; 
&gt; indent

fixed

&gt;&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:509
&gt;&gt; +        function isAttachedRecord(record) {
&gt; 
&gt; isAdoptedRecord()?
&gt; style: { =&gt; next line

Done

&gt;&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:50
&gt;&gt; +
&gt; 
&gt; no need for extra ws here

fixed

&gt;&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:121
&gt;&gt; +WebInspector.TimelinePresentationModel.forAllRecords = function(recordsArray, preOrderCallback, postOrderCallback)
&gt; 
&gt; Can we have a test for this?

Of sure.

&gt;&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:228
&gt;&gt; +    _innerAddRecord: function(record, parentRecord)
&gt; 
&gt; so how about a recursive call this used to have?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654933</commentid>
    <comment_count>11</comment_count>
      <attachid>148899</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-06-21 15:20:41 -0700</bug_when>
    <thetext>Created attachment 148899
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654941</commentid>
    <comment_count>12</comment_count>
      <attachid>148899</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-06-21 15:26:15 -0700</bug_when>
    <thetext>Comment on attachment 148899
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655098</commentid>
    <comment_count>13</comment_count>
      <attachid>148899</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-06-21 18:07:34 -0700</bug_when>
    <thetext>Comment on attachment 148899
Patch

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

&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:133
&gt; +                 stack.push({array: [], index: 0, record: record});

record: record should move into the same entry below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655121</commentid>
    <comment_count>14</comment_count>
      <attachid>148936</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-06-21 18:30:50 -0700</bug_when>
    <thetext>Created attachment 148936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655123</commentid>
    <comment_count>15</comment_count>
      <attachid>148899</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-06-21 18:31:50 -0700</bug_when>
    <thetext>Comment on attachment 148899
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:133
&gt;&gt; +                 stack.push({array: [], index: 0, record: record});
&gt; 
&gt; record: record should move into the same entry below.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655196</commentid>
    <comment_count>16</comment_count>
      <attachid>148936</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-06-21 20:19:24 -0700</bug_when>
    <thetext>Comment on attachment 148936
Patch

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

&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:132
&gt; +             if (record.children) {

nit: no need for { }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655505</commentid>
    <comment_count>17</comment_count>
      <attachid>149039</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-06-22 09:29:15 -0700</bug_when>
    <thetext>Created attachment 149039
Patch

Rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660340</commentid>
    <comment_count>18</comment_count>
      <attachid>150128</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-06-29 03:33:05 -0700</bug_when>
    <thetext>Created attachment 150128
Patch

Hide-program-category-checkbox</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660579</commentid>
    <comment_count>19</comment_count>
      <attachid>150201</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-06-29 09:57:01 -0700</bug_when>
    <thetext>Created attachment 150201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662140</commentid>
    <comment_count>20</comment_count>
      <attachid>150201</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-07-03 05:23:01 -0700</bug_when>
    <thetext>Comment on attachment 150201
Patch

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

LGTM

&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:227
&gt; +        var formattedRecords = [];
&gt; +        var recordsCount = records.length;
&gt; +        for (var i = 0; i &lt; recordsCount; ++i)
&gt; +            formattedRecords.push(this._innerAddRecord(records[i], parentRecord));
&gt; +        return formattedRecords;

nit: swap arguments to innerAddRecord, return records.map(this._innerAddRecord.bind(this, parentRecord));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662156</commentid>
    <comment_count>21</comment_count>
      <attachid>150201</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-07-03 05:56:37 -0700</bug_when>
    <thetext>Comment on attachment 150201
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Now &quot;Program&quot; should be a top-level event where appropriate.

Could you please elaborate on what &quot;appropriate&quot; means.

&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:212
&gt;          var recordTypes = WebInspector.TimelineModel.RecordType;

There is only one usage, inline this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662200</commentid>
    <comment_count>22</comment_count>
      <attachid>150201</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-07-03 07:15:36 -0700</bug_when>
    <thetext>Comment on attachment 150201
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        Now &quot;Program&quot; should be a top-level event where appropriate.
&gt; 
&gt; Could you please elaborate on what &quot;appropriate&quot; means.

Done

&gt;&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:212
&gt;&gt;          var recordTypes = WebInspector.TimelineModel.RecordType;
&gt; 
&gt; There is only one usage, inline this?

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662203</commentid>
    <comment_count>23</comment_count>
      <attachid>150604</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-07-03 07:21:06 -0700</bug_when>
    <thetext>Created attachment 150604
Patch

Rebased-and-fixed-nits</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662225</commentid>
    <comment_count>24</comment_count>
      <attachid>150611</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-07-03 08:12:28 -0700</bug_when>
    <thetext>Created attachment 150611
Patch

Rebased-and-fixed-js-compilation-warnings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662233</commentid>
    <comment_count>25</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-07-03 08:27:31 -0700</bug_when>
    <thetext>Committed r121767: &lt;http://trac.webkit.org/changeset/121767&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663055</commentid>
    <comment_count>26</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-07-04 10:40:03 -0700</bug_when>
    <thetext>Reverted r121767 for reason:

Crashes inspected page while recording timeline due to conflict with BeginFrame in record stack

Committed r121865: &lt;http://trac.webkit.org/changeset/121865&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666524</commentid>
    <comment_count>27</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-07-11 01:57:37 -0700</bug_when>
    <thetext>Committed r122312: &lt;http://trac.webkit.org/changeset/122312&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148623</attachid>
            <date>2012-06-20 12:06:22 -0700</date>
            <delta_ts>2012-06-20 18:41:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89584-20120620120621.patch</filename>
            <type>text/plain</type>
            <size>16180</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwODA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjcwYThiNmUyYTQwZmFm
OGEzYjU0YWI5Zjg4YWNkNTU2ZDM0Y2Y1OC4uMGUzMGVmYjZiZDM3YmJmYTA3ODNiZTRjOGFmNWVj
NTIzMGI3M2VjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA2LTIwICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYmlnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBGb3J3YXJkIG1lc3NhZ2UgbG9vcCBpbnN0cnVtZW50YXRpb24gZGF0YSB0byBmcm9u
dGVuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJh
bnNtaXQgY29sbGVjdGVkIG1lc3NhZ2UgbG9vcCB0YXNrcyB0byBpbnNwZWN0b3IgZnJvbnRlbmQu
CisgICAgICAgIE5vdyAiUHJvZ3JhbSIgc2hvdWxkIGJlIGEgdG9wLWxldmVsIGV2ZW50IHdoZXJl
IGFwcHJvcHJpYXRlLgorICAgICAgICBGcm9udGVuZCB3YXMgY2hhbmdlZCBzbyB0aGF0IHVzZXIg
d2lsbCBub3Qgc2VlIGFueSBjaGFuZ2VzLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoVGltZWxpbmVSZWNvcmRUeXBlKToKKyAgICAg
ICAgQWRkZWQgbmV3IGV2ZW50IHR5cGUgLSAiUHJvZ3JhbSIKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQcm9jZXNzVGFzayk6CisgICAgICAgIEJlZ2luICJQ
cm9ncmFtIiBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZFByb2Nlc3NUYXNrKToKKyAgICAgICAgRmluaXNoICJQcm9ncmFtIiBldmVudC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGlj
KToKKyAgICAgICAgRG8gbm90IGFkZCBjb3VudGVycyB0byAiUHJvZ3JhbSIgZXZlbnRzLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojppbm5lclNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAgUmVuYW1lZCBmcm9tICJzZXRI
ZWFwU2l6ZVN0YXRpc3RpYyIKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk1lbW9yeVN0YXRpc3RpY3MucHJvdG90eXBlLl9vblJlY29yZEFkZGVkKToKKyAgICAgICAg
VW53cmFwcyAiUHJvZ3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9yeVN0
YXRpc3RpY3MucHJvdG90eXBlLl9pbm5lclJlY29yZEFkZGVkKToKKyAgICAgICAgUmVuYW1lZCBm
cm9tICJfb25SZWNvcmRBZGRlZCIKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lRnJhbWVDb250cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJh
bWVDb250cm9sbGVyLnByb3RvdHlwZS5fYWRkUmVjb3JkKToKKyAgICAgICAgVW53cmFwcyAiUHJv
Z3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9s
bGVyLnByb3RvdHlwZS5faW5uZXJBZGRSZWNvcmQpOgorICAgICAgICBSZW5hbWVkIGZyb20gIl9h
ZGRSZWNvcmQiCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpz
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5wcm90b3R5cGUu
dXBkYXRlLmFwcGVuZFJlY29yZCk6CisgICAgICAgIEZpbHRlciBvdXQgIlByb2dyYW0iIGNhdGVn
b3J5LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMucHJvdG90
eXBlLnVwZGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVs
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVh
dGVTdGF0dXNiYXJCdXR0b25zKToKKyAgICAgICAgRmlsdGVyIG91dCAiUHJvZ3JhbSIgY2F0ZWdv
cnkuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2lubmVy
QWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAgIFVud3JhcHMgIlByb2dyYW0iIGV2ZW50cy4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRl
Z29yaWVzKToKKyAgICAgICAgQWRkZWQgIlByb2dyYW0iIGNhdGVnb3J5LgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucmVjb3JkU3R5bGUpOgorICAgICAg
ICBEaXR0by4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZS5hZGRSZWNvcmQpOgorICAgICAgICBVbndyYXBzICJQcm9ncmFtIiBldmVudHMu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5
cGUuX2FkZFJlY29yZCk6CisgICAgICAgIFJlbmFtZWQgZnJvbSAiYWRkUmVjb3JkIgorCiAyMDEy
LTA2LTE5ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBc3Nl
cnRpb24gZm9yIGV2ZW50J3MgdGFyZ2V0IGlzIHdyb25nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IDQ3MjgyZTk1NzM3
MTZmMzMyOWI0MGZkNWEzNjcxYjE2YzgxODczMDQuLjRkZDA2MzlhZTYxMzI4YWUyYjY1NjFlYjEw
Yzc5ODk3OTUzMTQxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTk1LDYgKzk1LDggQEAgc3RhdGljIGNvbnN0IGNo
YXIgR0NFdmVudFtdID0gIkdDRXZlbnQiOwogc3RhdGljIGNvbnN0IGNoYXIgUmVxdWVzdEFuaW1h
dGlvbkZyYW1lW10gPSAiUmVxdWVzdEFuaW1hdGlvbkZyYW1lIjsKIHN0YXRpYyBjb25zdCBjaGFy
IENhbmNlbEFuaW1hdGlvbkZyYW1lW10gPSAiQ2FuY2VsQW5pbWF0aW9uRnJhbWUiOwogc3RhdGlj
IGNvbnN0IGNoYXIgRmlyZUFuaW1hdGlvbkZyYW1lW10gPSAiRmlyZUFuaW1hdGlvbkZyYW1lIjsK
Kworc3RhdGljIGNvbnN0IGNoYXIgUHJvZ3JhbVtdID0gIlByb2dyYW0iOwogfQogCiB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hHQ0V2ZW50UmVjb3JkcygpCkBAIC00MTUsMTIgKzQx
NywxMiBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpcmVBbmltYXRpb25GcmFt
ZSgpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFByb2Nlc3NUYXNrKCkKIHsK
LSAgICAvLyBUT0RPOiBSZWNvcmQgdGFzayBwcm9jZXNzaW5nIHN0YXJ0IHRpbWUuCisgICAgcHVz
aEN1cnJlbnRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgVGltZWxpbmVSZWNvcmRU
eXBlOjpQcm9ncmFtLCBmYWxzZSwgMCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6ZGlkUHJvY2Vzc1Rhc2soKQogewotICAgIC8vIFRPRE86IFJlY29yZCB0YXNrIHByb2Nlc3Np
bmcgZW5kIHRpbWUuCisgICAgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3Jk
VHlwZTo6UHJvZ3JhbSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YWRkUmVj
b3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkLCBjb25zdCBT
dHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCkKQEAgLTQ0OCw2ICs0NTAsMTkgQEAg
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojppbm5lckFkZFJlY29yZFRvVGltZWxpbmUoUGFz
c1JlZlB0cjxJbnNwZWN0b3JPYmplY3QKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpz
ZXRIZWFwU2l6ZVN0YXRpc3RpYyhJbnNwZWN0b3JPYmplY3QqIHJlY29yZCkKIHsKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcHJvZ3JhbSwgKFRpbWVsaW5lUmVjb3JkVHlwZTo6UHJv
Z3JhbSkpOworCisgICAgU3RyaW5nIHR5cGU7CisgICAgaWYgKHJlY29yZC0+Z2V0U3RyaW5nKCJ0
eXBlIiwgJnR5cGUpKSB7CisgICAgICAgIGlmICh0eXBlID09IHByb2dyYW0pCisgICAgICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgaW5uZXJTZXRIZWFwU2l6ZVN0YXRpc3RpYyhyZWNvcmQp
OworfQorCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmlubmVyU2V0SGVhcFNpemVTdGF0
aXN0aWMoSW5zcGVjdG9yT2JqZWN0KiByZWNvcmQpCit7CiAgICAgc2l6ZV90IHVzZWRIZWFwU2l6
ZSA9IDA7CiAgICAgc2l6ZV90IHRvdGFsSGVhcFNpemUgPSAwOwogICAgIHNpemVfdCBoZWFwU2l6
ZUxpbWl0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5oCmluZGV4IDk0YzdmY2FlZTM4NmVjZDBmMjJmMjdlZWIxZDdhNWY5MWZmN2Yz
MTguLjFmNTM3YjVkOTVjOTk1OGNmZjAzNmI2YTA2MWIzZjkzMTlmNWRhNjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtMTYx
LDcgKzE2MSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHB1c2hDdXJyZW50UmVjb3JkKFBhc3NS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVD
YWxsU3RhY2ssIEZyYW1lKik7CiAgICAgdm9pZCBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhJbnNwZWN0
b3JPYmplY3QqIHJlY29yZCk7Ci0gICAgICAgIAorICAgIHZvaWQgaW5uZXJTZXRIZWFwU2l6ZVN0
YXRpc3RpYyhJbnNwZWN0b3JPYmplY3QqIHJlY29yZCk7CisKICAgICB2b2lkIGRpZENvbXBsZXRl
Q3VycmVudFJlY29yZChjb25zdCBTdHJpbmcmIHR5cGUpOwogICAgIHZvaWQgYXBwZW5kUmVjb3Jk
KFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIGJv
b2wgY2FwdHVyZUNhbGxTdGFjaywgRnJhbWUqKTsKICAgICB2b2lkIHB1c2hDYW5jZWxhYmxlUmVj
b3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlLCBGcmFt
ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZW1v
cnlTdGF0aXN0aWNzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZW1v
cnlTdGF0aXN0aWNzLmpzCmluZGV4IGM5MTVjZTc1MjQ2MGRkMzA5MjNmYjM4NWY5ZTdiM2NmMGNi
MTAxNGQuLjkxZjk0Y2IyM2M0ZTY1ZTNmNTUxN2MxZjNlYzNlYjdlMmNkMWRjNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTWVtb3J5U3RhdGlzdGljcy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01lbW9yeVN0YXRpc3Rp
Y3MuanMKQEAgLTI1NywxMSArMjU3LDIwIEBAIFdlYkluc3BlY3Rvci5NZW1vcnlTdGF0aXN0aWNz
LnByb3RvdHlwZSA9IHsKIAogICAgIF9vblJlY29yZEFkZGVkOiBmdW5jdGlvbihldmVudCkKICAg
ICB7Ci0gICAgICAgIHZhciBjb3VudGVycyA9IGV2ZW50LmRhdGFbImNvdW50ZXJzIl07CisgICAg
ICAgIHZhciByZWNvcmQgPSBldmVudC5kYXRhOworICAgICAgICB2YXIgcmVjb3JkcyA9IFtyZWNv
cmRdOworICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdlYkluc3BlY3Rvci5UaW1lbGluZU1v
ZGVsLlJlY29yZFR5cGUuUHJvZ3JhbSkKKyAgICAgICAgICAgIHJlY29yZHMgPSByZWNvcmRbImNo
aWxkcmVuIl0gfHwgW107CisgICAgICAgIHJlY29yZHMuZm9yRWFjaCh0aGlzLl9pbm5lclJlY29y
ZEFkZGVkLCB0aGlzKTsKKyAgICB9LAorCisgICAgX2lubmVyUmVjb3JkQWRkZWQ6IGZ1bmN0aW9u
KHJlY29yZCkKKyAgICB7CisgICAgICAgIHZhciBjb3VudGVycyA9IHJlY29yZFsiY291bnRlcnMi
XTsKICAgICAgICAgaWYgKCFjb3VudGVycykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
dGhpcy5fY291bnRlcnMucHVzaCh7Ci0gICAgICAgICAgICB0aW1lOiBldmVudC5kYXRhLmVuZFRp
bWUgfHwgZXZlbnQuZGF0YS5zdGFydFRpbWUsCisgICAgICAgICAgICB0aW1lOiByZWNvcmQuZW5k
VGltZSB8fCByZWNvcmQuc3RhcnRUaW1lLAogICAgICAgICAgICAgZG9jdW1lbnRDb3VudDogY291
bnRlcnNbImRvY3VtZW50cyJdLAogICAgICAgICAgICAgbm9kZUNvdW50OiBjb3VudGVyc1sibm9k
ZXMiXSwKICAgICAgICAgICAgIGxpc3RlbmVyQ291bnQ6IGNvdW50ZXJzWyJqc0V2ZW50TGlzdGVu
ZXJzIl0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1RpbWVsaW5lRnJhbWVDb250cm9sbGVyLmpzCmluZGV4IDRlNDFlMjQzNTNiNGJjZjU0ZGUz
ZjA5Mjg4ODdmYmUxMGEyNTRjMTEuLjBmMjUzNWI3MzllYzc1YzNlMTI0MzViNmExOTYyYzBlZjli
NzcyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9UaW1lbGluZUZyYW1lQ29udHJvbGxlci5qcwpAQCAtNjEsNiArNjEsMTQgQEAgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKIAogICAgIF9h
ZGRSZWNvcmQ6IGZ1bmN0aW9uKHJlY29yZCkKICAgICB7CisgICAgICAgIHZhciByZWNvcmRzID0g
W3JlY29yZF07CisgICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVs
aW5lTW9kZWwuUmVjb3JkVHlwZS5Qcm9ncmFtKQorICAgICAgICAgICAgcmVjb3JkcyA9IHJlY29y
ZFsiY2hpbGRyZW4iXSB8fCBbXTsKKyAgICAgICAgcmVjb3Jkcy5mb3JFYWNoKHRoaXMuX2lubmVy
QWRkUmVjb3JkLCB0aGlzKTsKKyAgICB9LAorCisgICAgX2lubmVyQWRkUmVjb3JkOiBmdW5jdGlv
bihyZWNvcmQpCisgICAgewogICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdlYkluc3BlY3Rv
ci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuQmVnaW5GcmFtZSAmJiB0aGlzLl9sYXN0RnJhbWUp
CiAgICAgICAgICAgICB0aGlzLl9mbHVzaEZyYW1lKHJlY29yZCk7CiAgICAgICAgIGVsc2Ugewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1v
ZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVs
LmpzCmluZGV4IDAzZmYwZTczNDhmYTNjYzMxZGUwZWMzZjU3YzViNGVjMTlmZGVhNjAuLjhmMmZm
ZTZhMzNkMDU3YThkYzUxYjUzNjNkNWFlYzU2MjAzNTE5MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMKQEAgLTc4LDcgKzc4
LDkgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZSA9IHsKIAogICAgIFJl
cXVlc3RBbmltYXRpb25GcmFtZTogIlJlcXVlc3RBbmltYXRpb25GcmFtZSIsCiAgICAgQ2FuY2Vs
QW5pbWF0aW9uRnJhbWU6ICJDYW5jZWxBbmltYXRpb25GcmFtZSIsCi0gICAgRmlyZUFuaW1hdGlv
bkZyYW1lOiAiRmlyZUFuaW1hdGlvbkZyYW1lIgorICAgIEZpcmVBbmltYXRpb25GcmFtZTogIkZp
cmVBbmltYXRpb25GcmFtZSIsCisKKyAgICBQcm9ncmFtOiAiUHJvZ3JhbSIKIH0KIAogV2ViSW5z
cGVjdG9yLlRpbWVsaW5lTW9kZWwuRXZlbnRzID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMKaW5kZXgg
ZGM0MDBkMzRmMDZiNjY2MTQyYjg0MzJlMmQ5ZmQ0NzI3NmU4NjBkYi4uNGVmNTZkMDVlYjY0ZTFi
MjM1NzRmMzUzZWNiOTY5ZjM1NDc2M2VkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzCkBAIC04NTks
NiArODU5LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgdmFyIHJlY29yZFN0YXJ0ID0gTWF0aC5mbG9vcigoV2ViSW5zcGVj
dG9yLlRpbWVsaW5lTW9kZWwuc3RhcnRUaW1lSW5TZWNvbmRzKHJlY29yZCkgLSB0aW1lT2Zmc2V0
KSAqIHNjYWxlKTsKICAgICAgICAgICAgIHZhciByZWNvcmRFbmQgPSBNYXRoLmNlaWwoKFdlYklu
c3BlY3Rvci5UaW1lbGluZU1vZGVsLmVuZFRpbWVJblNlY29uZHMocmVjb3JkKSAtIHRpbWVPZmZz
ZXQpICogc2NhbGUpOwogICAgICAgICAgICAgdmFyIGNhdGVnb3J5ID0gV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcnlGb3JSZWNvcmQocmVjb3JkKTsKKyAgICAg
ICAgICAgIGlmIChjYXRlZ29yeS5vdmVydmlld1N0cmlwR3JvdXBJbmRleCA8IDApCisgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgdmFyIGJhciA9IGxhc3RCYXJCeUdyb3VwW2Nh
dGVnb3J5Lm92ZXJ2aWV3U3RyaXBHcm91cEluZGV4XTsKICAgICAgICAgICAgIC8vIFRoaXMgYmFy
IG1heSBiZSBtZXJnZWQgd2l0aCBwcmV2aW91cyAtLSBzbyBqdXN0IGFkanVzdCB0aGUgcHJldmlv
dXMgYmFyLgogICAgICAgICAgICAgY29uc3QgYmFyc01lcmdlVGhyZXNob2xkID0gMjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpp
bmRleCBiODNjZTZkNjljMTc0OGE5NzNmMWY1MjdjNjZjZjg3ZTM0ZDRkYWQ2Li4xZjBjNjU1OGUy
NWM5Y2FhZWJiYTI4ZmExNjJhOGNiZjY0ZjJlY2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC0yMjUsNiArMjI1LDgg
QEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB2YXIg
Y2F0ZWdvcmllcyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmNhdGVn
b3JpZXMoKTsKICAgICAgICAgZm9yICh2YXIgY2F0ZWdvcnlOYW1lIGluIGNhdGVnb3JpZXMpIHsK
ICAgICAgICAgICAgIHZhciBjYXRlZ29yeSA9IGNhdGVnb3JpZXNbY2F0ZWdvcnlOYW1lXTsKKyAg
ICAgICAgICAgIGlmIChjYXRlZ29yeS5vdmVydmlld1N0cmlwR3JvdXBJbmRleCA8IDApCisgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB0aGlzLnN0YXR1c0JhckZpbHRlcnMu
YXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlVGltZWxpbmVDYXRlZ29yeVN0YXR1c0JhckNoZWNrYm94
KGNhdGVnb3J5LCB0aGlzLl9vbkNhdGVnb3J5Q2hlY2tib3hDbGlja2VkLmJpbmQodGhpcywgY2F0
ZWdvcnkpKSk7CiAgICAgICAgIH0KICAgICB9LApAQCAtNDg2LDggKzQ4OCw4IEBAIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9pbm5lckFkZFJlY29yZFRv
VGltZWxpbmU6IGZ1bmN0aW9uKHJlY29yZCwgcGFyZW50UmVjb3JkKQogICAgIHsKLSAgICAgICAg
dmFyIGZvcm1hdHRlZFJlY29yZCA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZFJlY29yZChy
ZWNvcmQsIHBhcmVudFJlY29yZCk7Ci0gICAgICAgICsrdGhpcy5fYWxsUmVjb3Jkc0NvdW50Owor
ICAgICAgICB2YXIgZm9ybWF0dGVkUmVjb3JkcyA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFk
ZFJlY29yZChyZWNvcmQsIHBhcmVudFJlY29yZCk7CisgICAgICAgIHRoaXMuX2FsbFJlY29yZHND
b3VudCArPSBmb3JtYXR0ZWRSZWNvcmRzLmxlbmd0aDsKICAgICAgICAgdmFyIHJlY29yZFR5cGVz
ID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZTsKICAgICAgICAgdmFyIHRp
bWVTdGFtcFJlY29yZHMgPSB0aGlzLl90aW1lU3RhbXBSZWNvcmRzOwogICAgICAgICBmdW5jdGlv
biBhZGRUaW1lc3RhbXBSZWNvcmRzKHJlY29yZCkKQEAgLTQ5NSw3ICs0OTcsNyBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpZiAoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuaXNFdmVudERpdmlkZXIocmVjb3JkKSkK
ICAgICAgICAgICAgICAgICB0aW1lU3RhbXBSZWNvcmRzLnB1c2gocmVjb3JkKTsKICAgICAgICAg
fQotICAgICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5mb3JBbGxS
ZWNvcmRzKFsgZm9ybWF0dGVkUmVjb3JkIF0sIGFkZFRpbWVzdGFtcFJlY29yZHMpOworICAgICAg
ICBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5mb3JBbGxSZWNvcmRzKGZv
cm1hdHRlZFJlY29yZHMsIGFkZFRpbWVzdGFtcFJlY29yZHMpOwogICAgIH0sCiAKICAgICBzaWRl
YmFyUmVzaXplZDogZnVuY3Rpb24oZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMK
aW5kZXggM2QwM2ExZDkzMDljNjYzNWVlNmMxMDBiNzJmMzU5YzdkM2FjNzZjYS4uMjI5NGNlYTY5
YzZiYjk5ZmJjY2I0OTI0MGRhMDdmMmZiNDc1NDU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25N
b2RlbC5qcwpAQCAtNTAsNyArNTAsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRp
b25Nb2RlbC5jYXRlZ29yaWVzID0gZnVuY3Rpb24oKQogICAgICAgICBsb2FkaW5nOiBuZXcgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoImxvYWRpbmciLCBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIkxvYWRpbmciKSwgMCwgIiM1QThCQ0MiLCAiIzhFQjZFOSIsICIjNzBBMkUzIiksCiAgICAg
ICAgIHNjcmlwdGluZzogbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5KCJzY3JpcHRp
bmciLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNjcmlwdGluZyIpLCAxLCAiI0Q4QUEzNCIsICIj
RjNEMDdBIiwgIiNGMUM0NTMiKSwKICAgICAgICAgcmVuZGVyaW5nOiBuZXcgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lQ2F0ZWdvcnkoInJlbmRlcmluZyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVu
ZGVyaW5nIiksIDIsICIjODI2NkNDIiwgIiNBRjlBRUIiLCAiIzlBN0VFNiIpLAotICAgICAgICBw
YWludGluZzogbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5KCJwYWludGluZyIsIFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiUGFpbnRpbmciKSwgMiwgIiM1RkEwNTAiLCAiIzhEQzI4NiIs
ICIjNzFCMzYzIikKKyAgICAgICAgcGFpbnRpbmc6IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVD
YXRlZ29yeSgicGFpbnRpbmciLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhaW50aW5nIiksIDIs
ICIjNUZBMDUwIiwgIiM4REMyODYiLCAiIzcxQjM2MyIpLAorICAgICAgICBwcm9ncmFtOiBuZXcg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoInByb2dyYW0iLCBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlByb2dyYW0iKSwgLTEsICJ0cmFuc3BhcmVudCIsICJ0cmFuc3BhcmVudCIsICJ0cmFu
c3BhcmVudCIpCiAgICAgfTsKICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2Vu
dGF0aW9uTW9kZWwuX2NhdGVnb3JpZXM7CiB9OwpAQCAtOTQsNiArOTUsNyBAQCBXZWJJbnNwZWN0
b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5yZWNvcmRTdHlsZSA9IGZ1bmN0aW9uKHJlY29y
ZCkKICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUmVxdWVzdEFuaW1hdGlvbkZyYW1lXSA9
IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVxdWVzdCBBbmltYXRpb24gRnJhbWUi
KSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbInNjcmlwdGluZyJdIH07CiAgICAgcmVjb3JkU3R5bGVz
W3JlY29yZFR5cGVzLkNhbmNlbEFuaW1hdGlvbkZyYW1lXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiQ2FuY2VsIEFuaW1hdGlvbiBGcmFtZSIpLCBjYXRlZ29yeTogY2F0ZWdvcmll
c1sic2NyaXB0aW5nIl0gfTsKICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuRmlyZUFuaW1h
dGlvbkZyYW1lXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQW5pbWF0aW9uIEZy
YW1lIEZpcmVkIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmciXSB9OworICAgIHJl
Y29yZFN0eWxlc1tyZWNvcmRUeXBlcy5Qcm9ncmFtXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5V
SVN0cmluZygiUHJvZ3JhbSIpLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sicHJvZ3JhbSJdIH07CiAK
ICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5fcmVjb3JkU3R5bGVz
TWFwID0gcmVjb3JkU3R5bGVzOwogICAgIHJldHVybiByZWNvcmRTdHlsZXNbcmVjb3JkLnR5cGVd
OwpAQCAtMjAyLDEyICsyMDQsMjcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9u
TW9kZWwucHJvdG90eXBlID0gewogCiAgICAgYWRkUmVjb3JkOiBmdW5jdGlvbihyZWNvcmQsIHBh
cmVudFJlY29yZCkKICAgICB7Ci0gICAgICAgIHZhciBjb25uZWN0ZWRUb09sZFJlY29yZCA9IGZh
bHNlOwogICAgICAgICB2YXIgcmVjb3JkVHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2Rl
bC5SZWNvcmRUeXBlOwogCiAgICAgICAgIGlmICh0aGlzLl9taW5pbXVtUmVjb3JkVGltZSA9PT0g
LTEgfHwgcmVjb3JkLnN0YXJ0VGltZSA8IHRoaXMuX21pbmltdW1SZWNvcmRUaW1lKQogICAgICAg
ICAgICAgdGhpcy5fbWluaW11bVJlY29yZFRpbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2Rl
bC5zdGFydFRpbWVJblNlY29uZHMocmVjb3JkKTsKIAorICAgICAgICB2YXIgcmVjb3JkcyA9IFty
ZWNvcmRdOworICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLlByb2dyYW0p
CisgICAgICAgICAgICByZWNvcmRzID0gcmVjb3JkLmNoaWxkcmVuOworCisgICAgICAgIHZhciBm
b3JtYXR0ZWRSZWNvcmRzID0gW107CisgICAgICAgIHZhciByZWNvcmRzQ291bnQgPSByZWNvcmRz
Lmxlbmd0aDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzQ291bnQ7ICsraSkK
KyAgICAgICAgICAgIGZvcm1hdHRlZFJlY29yZHMucHVzaCh0aGlzLl9hZGRSZWNvcmQocmVjb3Jk
c1tpXSwgcGFyZW50UmVjb3JkKSk7CisgICAgICAgIHJldHVybiBmb3JtYXR0ZWRSZWNvcmRzOwor
ICAgIH0sCisKKyAgICBfYWRkUmVjb3JkOiBmdW5jdGlvbihyZWNvcmQsIHBhcmVudFJlY29yZCkK
KyAgICB7CisgICAgICAgIHZhciBjb25uZWN0ZWRUb09sZFJlY29yZCA9IGZhbHNlOworICAgICAg
ICB2YXIgcmVjb3JkVHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBl
OworCiAgICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuTWFya0RPTUNvbnRl
bnQgfHwgcmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLk1hcmtMb2FkKQogICAgICAgICAgICAg
cGFyZW50UmVjb3JkID0gbnVsbDsgLy8gTm8gYmFyIGVudHJ5IGZvciBsb2FkIGV2ZW50cy4KICAg
ICAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWU4YjE0Nzk1MjU1MzE1NzAwZTI2ZjNhZjE1MTg0MDEyZjVi
Y2I1ZC4uNWYyYjY3ZWE1ZGMyYmRiYTJkYmE5NDlhZjU3NjIxYTA5YzE1Y2U0YiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDEyLTA2LTIwICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYmln
QGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBGb3J3YXJkIG1lc3NhZ2UgbG9v
cCBpbnN0cnVtZW50YXRpb24gZGF0YSB0byBmcm9udGVuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5NTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJhbnNtaXQgY29sbGVjdGVkIG1lc3NhZ2UgbG9v
cCB0YXNrcyB0byBpbnNwZWN0b3IgZnJvbnRlbmQuCisgICAgICAgIE5vdyAiUHJvZ3JhbSIgc2hv
dWxkIGJlIGEgdG9wLWxldmVsIGV2ZW50IHdoZXJlIGFwcHJvcHJpYXRlLgorICAgICAgICBGcm9u
dGVuZCB3YXMgY2hhbmdlZCBzbyB0aGF0IHVzZXIgd2lsbCBub3Qgc2VlIGFueSBjaGFuZ2VzLgor
CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4
cGVjdGVkLnR4dDoKKwogMjAxMi0wNi0xOSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFtRdF1bTWFjXSBTa2lwIG9uZSBtb3JlIGNyYXNoaW5nIHRlc3Qu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZW51
bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
L3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dAppbmRleCBkOTMxZjE0ZTJmNDNm
MjYwZWQyMDFjNDZlOWFlNDMwZDM2YzFiODkxLi5mNTAwMzg0NDZkYjFhOTBmMmQ2YmNkNmJkMzZl
NmMzNmI1NDk5ODkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQKQEAg
LTMwLDUgKzMwLDYgQEAgQXBwbGljYXRpb25zIG91dHNpZGUgb2YgV2ViS2l0IGRlcGVuZCBvbiB0
aGUgc3RhYmlsaXR5IG9mIHRoZSBtYXBwaW5nIG9mIHRoZXNlIHQKICAgICBSZXF1ZXN0QW5pbWF0
aW9uRnJhbWUgOiAiUmVxdWVzdEFuaW1hdGlvbkZyYW1lIgogICAgIENhbmNlbEFuaW1hdGlvbkZy
YW1lIDogIkNhbmNlbEFuaW1hdGlvbkZyYW1lIgogICAgIEZpcmVBbmltYXRpb25GcmFtZSA6ICJG
aXJlQW5pbWF0aW9uRnJhbWUiCisgICAgUHJvZ3JhbSA6ICJQcm9ncmFtIgogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148703</attachid>
            <date>2012-06-20 18:41:18 -0700</date>
            <delta_ts>2012-06-21 11:02:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89584-20120620184118.patch</filename>
            <type>text/plain</type>
            <size>15923</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwODA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjcwYThiNmUyYTQwZmFm
OGEzYjU0YWI5Zjg4YWNkNTU2ZDM0Y2Y1OC4uMGUzMGVmYjZiZDM3YmJmYTA3ODNiZTRjOGFmNWVj
NTIzMGI3M2VjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA2LTIwICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYmlnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBGb3J3YXJkIG1lc3NhZ2UgbG9vcCBpbnN0cnVtZW50YXRpb24gZGF0YSB0byBmcm9u
dGVuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJh
bnNtaXQgY29sbGVjdGVkIG1lc3NhZ2UgbG9vcCB0YXNrcyB0byBpbnNwZWN0b3IgZnJvbnRlbmQu
CisgICAgICAgIE5vdyAiUHJvZ3JhbSIgc2hvdWxkIGJlIGEgdG9wLWxldmVsIGV2ZW50IHdoZXJl
IGFwcHJvcHJpYXRlLgorICAgICAgICBGcm9udGVuZCB3YXMgY2hhbmdlZCBzbyB0aGF0IHVzZXIg
d2lsbCBub3Qgc2VlIGFueSBjaGFuZ2VzLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoVGltZWxpbmVSZWNvcmRUeXBlKToKKyAgICAg
ICAgQWRkZWQgbmV3IGV2ZW50IHR5cGUgLSAiUHJvZ3JhbSIKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQcm9jZXNzVGFzayk6CisgICAgICAgIEJlZ2luICJQ
cm9ncmFtIiBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZFByb2Nlc3NUYXNrKToKKyAgICAgICAgRmluaXNoICJQcm9ncmFtIiBldmVudC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGlj
KToKKyAgICAgICAgRG8gbm90IGFkZCBjb3VudGVycyB0byAiUHJvZ3JhbSIgZXZlbnRzLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojppbm5lclNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAgUmVuYW1lZCBmcm9tICJzZXRI
ZWFwU2l6ZVN0YXRpc3RpYyIKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk1lbW9yeVN0YXRpc3RpY3MucHJvdG90eXBlLl9vblJlY29yZEFkZGVkKToKKyAgICAgICAg
VW53cmFwcyAiUHJvZ3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9yeVN0
YXRpc3RpY3MucHJvdG90eXBlLl9pbm5lclJlY29yZEFkZGVkKToKKyAgICAgICAgUmVuYW1lZCBm
cm9tICJfb25SZWNvcmRBZGRlZCIKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lRnJhbWVDb250cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJh
bWVDb250cm9sbGVyLnByb3RvdHlwZS5fYWRkUmVjb3JkKToKKyAgICAgICAgVW53cmFwcyAiUHJv
Z3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9s
bGVyLnByb3RvdHlwZS5faW5uZXJBZGRSZWNvcmQpOgorICAgICAgICBSZW5hbWVkIGZyb20gIl9h
ZGRSZWNvcmQiCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpz
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5wcm90b3R5cGUu
dXBkYXRlLmFwcGVuZFJlY29yZCk6CisgICAgICAgIEZpbHRlciBvdXQgIlByb2dyYW0iIGNhdGVn
b3J5LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMucHJvdG90
eXBlLnVwZGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVs
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVh
dGVTdGF0dXNiYXJCdXR0b25zKToKKyAgICAgICAgRmlsdGVyIG91dCAiUHJvZ3JhbSIgY2F0ZWdv
cnkuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2lubmVy
QWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAgIFVud3JhcHMgIlByb2dyYW0iIGV2ZW50cy4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRl
Z29yaWVzKToKKyAgICAgICAgQWRkZWQgIlByb2dyYW0iIGNhdGVnb3J5LgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucmVjb3JkU3R5bGUpOgorICAgICAg
ICBEaXR0by4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZS5hZGRSZWNvcmQpOgorICAgICAgICBVbndyYXBzICJQcm9ncmFtIiBldmVudHMu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5
cGUuX2FkZFJlY29yZCk6CisgICAgICAgIFJlbmFtZWQgZnJvbSAiYWRkUmVjb3JkIgorCiAyMDEy
LTA2LTE5ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBc3Nl
cnRpb24gZm9yIGV2ZW50J3MgdGFyZ2V0IGlzIHdyb25nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IDQ3MjgyZTk1NzM3
MTZmMzMyOWI0MGZkNWEzNjcxYjE2YzgxODczMDQuLmNhOTViZTk1ZjJlYzU3MGZmMGVjNGVmMDEy
Yjg2OTQwOTU2MGJiNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTYwLDYgKzYwLDggQEAgc3RhdGljIGNvbnN0IGNo
YXIgaW5jbHVkZU1lbW9yeURldGFpbHNbXSA9ICJpbmNsdWRlTWVtb3J5RGV0YWlscyI7CiAKIC8v
IE11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGggV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVj
b3JkVHlwZSBpbiBUaW1lbGluZU1vZGVsLmpzCiBuYW1lc3BhY2UgVGltZWxpbmVSZWNvcmRUeXBl
IHsKK3N0YXRpYyBjb25zdCBjaGFyIFByb2dyYW1bXSA9ICJQcm9ncmFtIjsKKwogc3RhdGljIGNv
bnN0IGNoYXIgRXZlbnREaXNwYXRjaFtdID0gIkV2ZW50RGlzcGF0Y2giOwogc3RhdGljIGNvbnN0
IGNoYXIgQmVnaW5GcmFtZVtdID0gIkJlZ2luRnJhbWUiOwogc3RhdGljIGNvbnN0IGNoYXIgTGF5
b3V0W10gPSAiTGF5b3V0IjsKQEAgLTQxNSwxMiArNDE3LDEyIEBAIHZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6ZGlkRmlyZUFuaW1hdGlvbkZyYW1lKCkKIAogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsUHJvY2Vzc1Rhc2soKQogewotICAgIC8vIFRPRE86IFJlY29yZCB0YXNr
IHByb2Nlc3Npbmcgc3RhcnQgdGltZS4KKyAgICBwdXNoQ3VycmVudFJlY29yZChJbnNwZWN0b3JP
YmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6OlByb2dyYW0sIGZhbHNlLCAwKTsK
IH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRQcm9jZXNzVGFzaygpCiB7Ci0g
ICAgLy8gVE9ETzogUmVjb3JkIHRhc2sgcHJvY2Vzc2luZyBlbmQgdGltZS4KKyAgICBkaWRDb21w
bGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpQcm9ncmFtKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiBmcmFtZUlkKQpAQCAtNDQ4LDYgKzQ1MCwxNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmlubmVyQWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdAog
CiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKEluc3Bl
Y3Rvck9iamVjdCogcmVjb3JkKQogeworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBw
cm9ncmFtLCAoVGltZWxpbmVSZWNvcmRUeXBlOjpQcm9ncmFtKSk7CisKKyAgICBTdHJpbmcgdHlw
ZTsKKyAgICBpZiAocmVjb3JkLT5nZXRTdHJpbmcoInR5cGUiLCAmdHlwZSkgJiYgdHlwZSA9PSBw
cm9ncmFtKQorICAgICAgICByZXR1cm47CisKKyAgICBpbm5lclNldEhlYXBTaXplU3RhdGlzdGlj
KHJlY29yZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6aW5uZXJTZXRIZWFw
U2l6ZVN0YXRpc3RpYyhJbnNwZWN0b3JPYmplY3QqIHJlY29yZCkKK3sKICAgICBzaXplX3QgdXNl
ZEhlYXBTaXplID0gMDsKICAgICBzaXplX3QgdG90YWxIZWFwU2l6ZSA9IDA7CiAgICAgc2l6ZV90
IGhlYXBTaXplTGltaXQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggOTRjN2ZjYWVlMzg2ZWNkMGYyMmYyN2VlYjFkN2E1
ZjkxZmY3ZjMxOC4uMWY1MzdiNWQ5NWM5OTU4Y2ZmMDM2YjZhMDYxYjNmOTMxOWY1ZGE2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5o
CkBAIC0xNjEsNyArMTYxLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcHVzaEN1cnJlbnRSZWNv
cmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FwdHVyZUNhbGxTdGFjaywgRnJhbWUqKTsKICAgICB2b2lkIHNldEhlYXBTaXplU3RhdGlzdGlj
KEluc3BlY3Rvck9iamVjdCogcmVjb3JkKTsKLSAgICAgICAgCisgICAgdm9pZCBpbm5lclNldEhl
YXBTaXplU3RhdGlzdGljKEluc3BlY3Rvck9iamVjdCogcmVjb3JkKTsKKwogICAgIHZvaWQgZGlk
Q29tcGxldGVDdXJyZW50UmVjb3JkKGNvbnN0IFN0cmluZyYgdHlwZSk7CiAgICAgdm9pZCBhcHBl
bmRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYg
dHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFtZSopOwogICAgIHZvaWQgcHVzaENhbmNl
bGFibGVSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJpbmcmIHR5
cGUsIEZyYW1lKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL01lbW9yeVN0YXRpc3RpY3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL01lbW9yeVN0YXRpc3RpY3MuanMKaW5kZXggYzkxNWNlNzUyNDYwZGQzMDkyM2ZiMzg1Zjll
N2IzY2YwY2IxMDE0ZC4uYzNlNjBiMDgyNGQ2NGNhMzZmOTBlZGVkYTQ3YWE2M2U2OTc3N2E1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0
aXN0aWNzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTWVtb3J5
U3RhdGlzdGljcy5qcwpAQCAtMjU3LDExICsyNTcsMjIgQEAgV2ViSW5zcGVjdG9yLk1lbW9yeVN0
YXRpc3RpY3MucHJvdG90eXBlID0gewogCiAgICAgX29uUmVjb3JkQWRkZWQ6IGZ1bmN0aW9uKGV2
ZW50KQogICAgIHsKLSAgICAgICAgdmFyIGNvdW50ZXJzID0gZXZlbnQuZGF0YVsiY291bnRlcnMi
XTsKKyAgICAgICAgdmFyIHJlY29yZCA9IGV2ZW50LmRhdGE7CisgICAgICAgIHZhciByZWNvcmRz
OworICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVs
LlJlY29yZFR5cGUuUHJvZ3JhbSkKKyAgICAgICAgICAgIHJlY29yZHMgPSByZWNvcmRbImNoaWxk
cmVuIl0gfHwgW107CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlY29yZHMgPSBbcmVjb3Jk
XTsKKyAgICAgICAgcmVjb3Jkcy5mb3JFYWNoKHRoaXMuX2lubmVyUmVjb3JkQWRkZWQsIHRoaXMp
OworICAgIH0sCisKKyAgICBfaW5uZXJSZWNvcmRBZGRlZDogZnVuY3Rpb24ocmVjb3JkKQorICAg
IHsKKyAgICAgICAgdmFyIGNvdW50ZXJzID0gcmVjb3JkWyJjb3VudGVycyJdOwogICAgICAgICBp
ZiAoIWNvdW50ZXJzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB0aGlzLl9jb3VudGVy
cy5wdXNoKHsKLSAgICAgICAgICAgIHRpbWU6IGV2ZW50LmRhdGEuZW5kVGltZSB8fCBldmVudC5k
YXRhLnN0YXJ0VGltZSwKKyAgICAgICAgICAgIHRpbWU6IHJlY29yZC5lbmRUaW1lIHx8IHJlY29y
ZC5zdGFydFRpbWUsCiAgICAgICAgICAgICBkb2N1bWVudENvdW50OiBjb3VudGVyc1siZG9jdW1l
bnRzIl0sCiAgICAgICAgICAgICBub2RlQ291bnQ6IGNvdW50ZXJzWyJub2RlcyJdLAogICAgICAg
ICAgICAgbGlzdGVuZXJDb3VudDogY291bnRlcnNbImpzRXZlbnRMaXN0ZW5lcnMiXQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUZyYW1lQ29u
dHJvbGxlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVG
cmFtZUNvbnRyb2xsZXIuanMKaW5kZXggNGU0MWUyNDM1M2I0YmNmNTRkZTNmMDkyODg4N2ZiZTEw
YTI1NGMxMS4uMDYzODA5NjZlMzFlNmMyMzYyOTczNzBkYzliODVmM2M3YjcxZTliYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUZyYW1lQ29u
dHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lRnJhbWVDb250cm9sbGVyLmpzCkBAIC02MSw2ICs2MSwxNiBAQCBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVGcmFtZUNvbnRyb2xsZXIucHJvdG90eXBlID0gewogCiAgICAgX2FkZFJlY29yZDogZnVu
Y3Rpb24ocmVjb3JkKQogICAgIHsKKyAgICAgICAgdmFyIHJlY29yZHM7CisgICAgICAgIGlmIChy
ZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZS5Qcm9n
cmFtKQorICAgICAgICAgICAgcmVjb3JkcyA9IHJlY29yZFsiY2hpbGRyZW4iXSB8fCBbXTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgcmVjb3JkcyA9IFtyZWNvcmRdOworICAgICAgICByZWNv
cmRzLmZvckVhY2godGhpcy5faW5uZXJBZGRSZWNvcmQsIHRoaXMpOworICAgIH0sCisKKyAgICBf
aW5uZXJBZGRSZWNvcmQ6IGZ1bmN0aW9uKHJlY29yZCkKKyAgICB7CiAgICAgICAgIGlmIChyZWNv
cmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZS5CZWdpbkZy
YW1lICYmIHRoaXMuX2xhc3RGcmFtZSkKICAgICAgICAgICAgIHRoaXMuX2ZsdXNoRnJhbWUocmVj
b3JkKTsKICAgICAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMKaW5kZXggMDNmZjBlNzM0OGZhM2NjMzFkZTBlYzNm
NTdjNWI0ZWMxOWZkZWE2MC4uMjBlYmQwYzg3OWI4Y2RkMGUzMmMzYjA3ZThlYjNlNjAzZGY1ZThm
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVNb2RlbC5qcwpAQCAtNDQsNiArNDQsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbCA9
IGZ1bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZSA9IHsK
ICAgICBSb290OiAiUm9vdCIsCisgICAgUHJvZ3JhbTogIlByb2dyYW0iLAogICAgIEV2ZW50RGlz
cGF0Y2g6ICJFdmVudERpc3BhdGNoIiwKIAogICAgIEJlZ2luRnJhbWU6ICJCZWdpbkZyYW1lIiwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVP
dmVydmlld1BhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lT3ZlcnZpZXdQYW5lLmpzCmluZGV4IGRjNDAwZDM0ZjA2YjY2NjE0MmI4NDMyZTJkOWZkNDcy
NzZlODYwZGIuLjRlZjU2ZDA1ZWI2NGUxYjIzNTc0ZjM1M2VjYjk2OWYzNTQ3NjNlZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmll
d1BhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZU92ZXJ2aWV3UGFuZS5qcwpAQCAtODU5LDYgKzg1OSw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZUNhdGVnb3J5U3RyaXBzLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHZhciByZWNvcmRTdGFy
dCA9IE1hdGguZmxvb3IoKFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLnN0YXJ0VGltZUluU2Vj
b25kcyhyZWNvcmQpIC0gdGltZU9mZnNldCkgKiBzY2FsZSk7CiAgICAgICAgICAgICB2YXIgcmVj
b3JkRW5kID0gTWF0aC5jZWlsKChXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5lbmRUaW1lSW5T
ZWNvbmRzKHJlY29yZCkgLSB0aW1lT2Zmc2V0KSAqIHNjYWxlKTsKICAgICAgICAgICAgIHZhciBj
YXRlZ29yeSA9IFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmNhdGVnb3J5
Rm9yUmVjb3JkKHJlY29yZCk7CisgICAgICAgICAgICBpZiAoY2F0ZWdvcnkub3ZlcnZpZXdTdHJp
cEdyb3VwSW5kZXggPCAwKQorICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHZh
ciBiYXIgPSBsYXN0QmFyQnlHcm91cFtjYXRlZ29yeS5vdmVydmlld1N0cmlwR3JvdXBJbmRleF07
CiAgICAgICAgICAgICAvLyBUaGlzIGJhciBtYXkgYmUgbWVyZ2VkIHdpdGggcHJldmlvdXMgLS0g
c28ganVzdCBhZGp1c3QgdGhlIHByZXZpb3VzIGJhci4KICAgICAgICAgICAgIGNvbnN0IGJhcnNN
ZXJnZVRocmVzaG9sZCA9IDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggYjgzY2U2ZDY5YzE3NDhhOTczZjFmNTI3YzY2
Y2Y4N2UzNGQ0ZGFkNi4uMWYwYzY1NThlMjVjOWNhYWViYmEyOGZhMTYyYThjYmY2NGYyZWNhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBh
bmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQ
YW5lbC5qcwpAQCAtMjI1LDYgKzIyNSw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGNhdGVnb3JpZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxp
bmVQcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzKCk7CiAgICAgICAgIGZvciAodmFyIGNhdGVn
b3J5TmFtZSBpbiBjYXRlZ29yaWVzKSB7CiAgICAgICAgICAgICB2YXIgY2F0ZWdvcnkgPSBjYXRl
Z29yaWVzW2NhdGVnb3J5TmFtZV07CisgICAgICAgICAgICBpZiAoY2F0ZWdvcnkub3ZlcnZpZXdT
dHJpcEdyb3VwSW5kZXggPCAwKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAg
ICAgdGhpcy5zdGF0dXNCYXJGaWx0ZXJzLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVRpbWVsaW5l
Q2F0ZWdvcnlTdGF0dXNCYXJDaGVja2JveChjYXRlZ29yeSwgdGhpcy5fb25DYXRlZ29yeUNoZWNr
Ym94Q2xpY2tlZC5iaW5kKHRoaXMsIGNhdGVnb3J5KSkpOwogICAgICAgICB9CiAgICAgfSwKQEAg
LTQ4Niw4ICs0ODgsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7
CiAKICAgICBfaW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lOiBmdW5jdGlvbihyZWNvcmQsIHBhcmVu
dFJlY29yZCkKICAgICB7Ci0gICAgICAgIHZhciBmb3JtYXR0ZWRSZWNvcmQgPSB0aGlzLl9wcmVz
ZW50YXRpb25Nb2RlbC5hZGRSZWNvcmQocmVjb3JkLCBwYXJlbnRSZWNvcmQpOwotICAgICAgICAr
K3RoaXMuX2FsbFJlY29yZHNDb3VudDsKKyAgICAgICAgdmFyIGZvcm1hdHRlZFJlY29yZHMgPSB0
aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRSZWNvcmQocmVjb3JkLCBwYXJlbnRSZWNvcmQpOwor
ICAgICAgICB0aGlzLl9hbGxSZWNvcmRzQ291bnQgKz0gZm9ybWF0dGVkUmVjb3Jkcy5sZW5ndGg7
CiAgICAgICAgIHZhciByZWNvcmRUeXBlcyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJl
Y29yZFR5cGU7CiAgICAgICAgIHZhciB0aW1lU3RhbXBSZWNvcmRzID0gdGhpcy5fdGltZVN0YW1w
UmVjb3JkczsKICAgICAgICAgZnVuY3Rpb24gYWRkVGltZXN0YW1wUmVjb3JkcyhyZWNvcmQpCkBA
IC00OTUsNyArNDk3LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LmlzRXZlbnREaXZpZGVyKHJlY29yZCkpCiAgICAgICAgICAgICAgICAgdGltZVN0YW1wUmVjb3Jk
cy5wdXNoKHJlY29yZCk7CiAgICAgICAgIH0KLSAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyhbIGZvcm1hdHRlZFJlY29yZCBdLCBhZGRU
aW1lc3RhbXBSZWNvcmRzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0
aW9uTW9kZWwuZm9yQWxsUmVjb3Jkcyhmb3JtYXR0ZWRSZWNvcmRzLCBhZGRUaW1lc3RhbXBSZWNv
cmRzKTsKICAgICB9LAogCiAgICAgc2lkZWJhclJlc2l6ZWQ6IGZ1bmN0aW9uKGV2ZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNl
bnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4IDNkMDNhMWQ5MzA5YzY2MzVlZTZjMTAwYjcy
ZjM1OWM3ZDNhYzc2Y2EuLjJiMDdjMjZlMzQzZGE1NTVjYzVjZTJjZGVhOGI0N2RjNjdhOGM5NjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQ
cmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMKQEAgLTQ3LDYgKzQ3LDggQEAgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcmllcyA9IGZ1bmN0aW9uKCkK
ICAgICBpZiAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuX2NhdGVnb3Jp
ZXMpCiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bC5fY2F0ZWdvcmllczsKICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bC5fY2F0ZWdvcmllcyA9IHsKKworICAgICAgICBwcm9ncmFtOiBuZXcgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lQ2F0ZWdvcnkoInByb2dyYW0iLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByb2dyYW0i
KSwgLTEsICJ0cmFuc3BhcmVudCIsICJ0cmFuc3BhcmVudCIsICJ0cmFuc3BhcmVudCIpLAogICAg
ICAgICBsb2FkaW5nOiBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoImxvYWRpbmci
LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxvYWRpbmciKSwgMCwgIiM1QThCQ0MiLCAiIzhFQjZF
OSIsICIjNzBBMkUzIiksCiAgICAgICAgIHNjcmlwdGluZzogbmV3IFdlYkluc3BlY3Rvci5UaW1l
bGluZUNhdGVnb3J5KCJzY3JpcHRpbmciLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNjcmlwdGlu
ZyIpLCAxLCAiI0Q4QUEzNCIsICIjRjNEMDdBIiwgIiNGMUM0NTMiKSwKICAgICAgICAgcmVuZGVy
aW5nOiBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoInJlbmRlcmluZyIsIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiUmVuZGVyaW5nIiksIDIsICIjODI2NkNDIiwgIiNBRjlBRUIiLCAi
IzlBN0VFNiIpLApAQCAtNjgsNiArNzAsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50
YXRpb25Nb2RlbC5yZWNvcmRTdHlsZSA9IGZ1bmN0aW9uKHJlY29yZCkKIAogICAgIHZhciByZWNv
cmRTdHlsZXMgPSB7fTsKICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUm9vdF0gPSB7IHRp
dGxlOiAiI3Jvb3QiLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sibG9hZGluZyJdIH07CisgICAgcmVj
b3JkU3R5bGVzW3JlY29yZFR5cGVzLlByb2dyYW1dID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJQcm9ncmFtIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJwcm9ncmFtIl0gfTsKICAg
ICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuRXZlbnREaXNwYXRjaF0gPSB7IHRpdGxlOiBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkV2ZW50IiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRp
bmciXSB9OwogICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5CZWdpbkZyYW1lXSA9IHsgdGl0
bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRnJhbWUgU3RhcnQiKSwgY2F0ZWdvcnk6IGNhdGVn
b3JpZXNbInJlbmRlcmluZyJdIH07CiAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkxheW91
dF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxheW91dCIpLCBjYXRlZ29yeTog
Y2F0ZWdvcmllc1sicmVuZGVyaW5nIl0gfTsKQEAgLTIwMiwxMiArMjA1LDI5IEBAIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIGFkZFJl
Y29yZDogZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQpCiAgICAgewotICAgICAgICB2YXIg
Y29ubmVjdGVkVG9PbGRSZWNvcmQgPSBmYWxzZTsKICAgICAgICAgdmFyIHJlY29yZFR5cGVzID0g
V2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZTsKIAogICAgICAgICBpZiAodGhp
cy5fbWluaW11bVJlY29yZFRpbWUgPT09IC0xIHx8IHJlY29yZC5zdGFydFRpbWUgPCB0aGlzLl9t
aW5pbXVtUmVjb3JkVGltZSkKICAgICAgICAgICAgIHRoaXMuX21pbmltdW1SZWNvcmRUaW1lID0g
V2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuc3RhcnRUaW1lSW5TZWNvbmRzKHJlY29yZCk7CiAK
KyAgICAgICAgdmFyIHJlY29yZHM7CisgICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gcmVjb3Jk
VHlwZXMuUHJvZ3JhbSkKKyAgICAgICAgICAgIHJlY29yZHMgPSByZWNvcmQuY2hpbGRyZW47Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlY29yZHMgPSBbcmVjb3JkXTsKKworICAgICAgICB2
YXIgZm9ybWF0dGVkUmVjb3JkcyA9IFtdOworICAgICAgICB2YXIgcmVjb3Jkc0NvdW50ID0gcmVj
b3Jkcy5sZW5ndGg7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkc0NvdW50OyAr
K2kpCisgICAgICAgICAgICBmb3JtYXR0ZWRSZWNvcmRzLnB1c2godGhpcy5faW5uZXJBZGRSZWNv
cmQocmVjb3Jkc1tpXSwgcGFyZW50UmVjb3JkKSk7CisgICAgICAgIHJldHVybiBmb3JtYXR0ZWRS
ZWNvcmRzOworICAgIH0sCisKKyAgICBfaW5uZXJBZGRSZWNvcmQ6IGZ1bmN0aW9uKHJlY29yZCwg
cGFyZW50UmVjb3JkKQorICAgIHsKKyAgICAgICAgdmFyIGNvbm5lY3RlZFRvT2xkUmVjb3JkID0g
ZmFsc2U7CisgICAgICAgIHZhciByZWNvcmRUeXBlcyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZU1v
ZGVsLlJlY29yZFR5cGU7CisKICAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSByZWNvcmRUeXBl
cy5NYXJrRE9NQ29udGVudCB8fCByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuTWFya0xvYWQp
CiAgICAgICAgICAgICBwYXJlbnRSZWNvcmQgPSBudWxsOyAvLyBObyBiYXIgZW50cnkgZm9yIGxv
YWQgZXZlbnRzLgogICAgICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ZThiMTQ3OTUyNTUzMTU3MDBlMjZm
M2FmMTUxODQwMTJmNWJjYjVkLi41ZjJiNjdlYTVkYzJiZGJhMmRiYTk0OWFmNTc2MjFhMDljMTVj
ZTRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDYtMjAgIEV1Z2VuZSBLbHl1Y2huaWtv
diAgPGV1c3Rhcy5iaWdAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZvcndh
cmQgbWVzc2FnZSBsb29wIGluc3RydW1lbnRhdGlvbiBkYXRhIHRvIGZyb250ZW5kLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk1ODQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUcmFuc21pdCBjb2xsZWN0
ZWQgbWVzc2FnZSBsb29wIHRhc2tzIHRvIGluc3BlY3RvciBmcm9udGVuZC4KKyAgICAgICAgTm93
ICJQcm9ncmFtIiBzaG91bGQgYmUgYSB0b3AtbGV2ZWwgZXZlbnQgd2hlcmUgYXBwcm9wcmlhdGUu
CisgICAgICAgIEZyb250ZW5kIHdhcyBjaGFuZ2VkIHNvIHRoYXQgdXNlciB3aWxsIG5vdCBzZWUg
YW55IGNoYW5nZXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZW51
bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0OgorCiAyMDEyLTA2LTE5ICBDc2FiYSBPc3p0cm9nb27D
oWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XVtNYWNdIFNraXAgb25lIG1vcmUg
Y3Jhc2hpbmcgdGVzdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0CmluZGV4
IGQ5MzFmMTRlMmY0M2YyNjBlZDIwMWM0NmU5YWU0MzBkMzZjMWI4OTEuLmFkNzc4NjNiNjljYzA4
MDQ5ZTg3OGYyNWM0ODk3ZjlmMmFmZGQwYjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4
cGVjdGVkLnR4dApAQCAtNCw2ICs0LDcgQEAgQXBwbGljYXRpb25zIG91dHNpZGUgb2YgV2ViS2l0
IGRlcGVuZCBvbiB0aGUgc3RhYmlsaXR5IG9mIHRoZSBtYXBwaW5nIG9mIHRoZXNlIHQKIAogewog
ICAgIFJvb3QgOiAiUm9vdCIKKyAgICBQcm9ncmFtIDogIlByb2dyYW0iCiAgICAgRXZlbnREaXNw
YXRjaCA6ICJFdmVudERpc3BhdGNoIgogICAgIEJlZ2luRnJhbWUgOiAiQmVnaW5GcmFtZSIKICAg
ICBMYXlvdXQgOiAiTGF5b3V0Igo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148842</attachid>
            <date>2012-06-21 11:03:13 -0700</date>
            <delta_ts>2012-06-21 15:20:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89584-20120621110313.patch</filename>
            <type>text/plain</type>
            <size>19088</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJkMzNjY2MwOTViMzlj
MTM5MzQ5NDUyZjY4YjMzMDA0YjkzNGM2Ni4uZmU2NzZkYTJhYTkwNzhlYjgyZGQzZThhMDVmYzA2
OTdiY2ZlYTRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA2LTIxICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYmlnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBGb3J3YXJkIG1lc3NhZ2UgbG9vcCBpbnN0cnVtZW50YXRpb24gZGF0YSB0byBmcm9u
dGVuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJh
bnNtaXQgY29sbGVjdGVkIG1lc3NhZ2UgbG9vcCB0YXNrcyB0byBpbnNwZWN0b3IgZnJvbnRlbmQu
CisgICAgICAgIE5vdyAiUHJvZ3JhbSIgc2hvdWxkIGJlIGEgdG9wLWxldmVsIGV2ZW50IHdoZXJl
IGFwcHJvcHJpYXRlLgorICAgICAgICBGcm9udGVuZCB3YXMgY2hhbmdlZCBzbyB0aGF0IHVzZXIg
d2lsbCBub3Qgc2VlIGFueSBjaGFuZ2VzLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoVGltZWxpbmVSZWNvcmRUeXBlKToKKyAgICAg
ICAgQWRkZWQgbmV3IGV2ZW50IHR5cGUgLSAiUHJvZ3JhbSIKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQcm9jZXNzVGFzayk6CisgICAgICAgIEJlZ2luICJQ
cm9ncmFtIiBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZFByb2Nlc3NUYXNrKToKKyAgICAgICAgRmluaXNoICJQcm9ncmFtIiBldmVudC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGlj
KToKKyAgICAgICAgRG8gbm90IGFkZCBjb3VudGVycyB0byAiUHJvZ3JhbSIgZXZlbnRzLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojppbm5lclNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAgUmVuYW1lZCBmcm9tICJzZXRI
ZWFwU2l6ZVN0YXRpc3RpYyIKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk1lbW9yeVN0YXRpc3RpY3MucHJvdG90eXBlLl9vblJlY29yZEFkZGVkKToKKyAgICAgICAg
VW53cmFwcyAiUHJvZ3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9yeVN0
YXRpc3RpY3MucHJvdG90eXBlLl9pbm5lclJlY29yZEFkZGVkKToKKyAgICAgICAgUmVuYW1lZCBm
cm9tICJfb25SZWNvcmRBZGRlZCIKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lRnJhbWVDb250cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJh
bWVDb250cm9sbGVyLnByb3RvdHlwZS5fYWRkUmVjb3JkKToKKyAgICAgICAgVW53cmFwcyAiUHJv
Z3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9s
bGVyLnByb3RvdHlwZS5faW5uZXJBZGRSZWNvcmQpOgorICAgICAgICBSZW5hbWVkIGZyb20gIl9h
ZGRSZWNvcmQiCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpz
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5wcm90b3R5cGUu
dXBkYXRlLmFwcGVuZFJlY29yZCk6CisgICAgICAgIEZpbHRlciBvdXQgIlByb2dyYW0iIGNhdGVn
b3J5LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMucHJvdG90
eXBlLnVwZGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVs
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVh
dGVTdGF0dXNiYXJCdXR0b25zKToKKyAgICAgICAgRmlsdGVyIG91dCAiUHJvZ3JhbSIgY2F0ZWdv
cnkuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2lubmVy
QWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAgIFVud3JhcHMgIlByb2dyYW0iIGV2ZW50cy4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRl
Z29yaWVzKToKKyAgICAgICAgQWRkZWQgIlByb2dyYW0iIGNhdGVnb3J5LgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucmVjb3JkU3R5bGUpOgorICAgICAg
ICBEaXR0by4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZS5hZGRSZWNvcmQpOgorICAgICAgICBVbndyYXBzICJQcm9ncmFtIiBldmVudHMu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5
cGUuX2FkZFJlY29yZCk6CisgICAgICAgIFJlbmFtZWQgZnJvbSAiYWRkUmVjb3JkIgorCiAyMDEy
LTA2LTIxICBUYWlqdSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBNb3ZlIHJlcXVlc3RJZCBhbGxvY2F0aW9uIGZyb20gRmlsZVN5c3RlbSBmcm9u
dGVuZCB0byBiYWNrZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggNDcyODJlOTU3MzcxNmYzMzI5YjQwZmQ1YTM2NzFi
MTZjODE4NzMwNC4uMjZlYmZjNDlkYjE4MjBkNDFjMjU2NDhjZDI0YzQwN2Y1ZDFlMWQ5OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50
LmNwcApAQCAtNjAsNiArNjAsOCBAQCBzdGF0aWMgY29uc3QgY2hhciBpbmNsdWRlTWVtb3J5RGV0
YWlsc1tdID0gImluY2x1ZGVNZW1vcnlEZXRhaWxzIjsKIAogLy8gTXVzdCBiZSBrZXB0IGluIHN5
bmMgd2l0aCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlIGluIFRpbWVsaW5l
TW9kZWwuanMKIG5hbWVzcGFjZSBUaW1lbGluZVJlY29yZFR5cGUgeworc3RhdGljIGNvbnN0IGNo
YXIgUHJvZ3JhbVtdID0gIlByb2dyYW0iOworCiBzdGF0aWMgY29uc3QgY2hhciBFdmVudERpc3Bh
dGNoW10gPSAiRXZlbnREaXNwYXRjaCI7CiBzdGF0aWMgY29uc3QgY2hhciBCZWdpbkZyYW1lW10g
PSAiQmVnaW5GcmFtZSI7CiBzdGF0aWMgY29uc3QgY2hhciBMYXlvdXRbXSA9ICJMYXlvdXQiOwpA
QCAtMzQwLDcgKzM0Miw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFNlbmRS
ZXNvdXJjZVJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjCiAgICAgICAgIFN0cmlu
ZyBmcmFtZUlkKG1fcGFnZUFnZW50LT5mcmFtZUlkKGZyYW1lKSk7CiAgICAgICAgIHJlY29yZFJh
dy0+c2V0U3RyaW5nKCJmcmFtZUlkIiwgZnJhbWVJZCk7CiAgICAgfQotICAgIHNldEhlYXBTaXpl
U3RhdGlzdGljKHJlY29yZFJhdy5nZXQoKSk7CisgICAgc2V0SGVhcFNpemVTdGF0aXN0aWNzKHJl
Y29yZFJhdy5nZXQoKSk7CiAgICAgLy8gRklYTUU6IHJ1bnRpbWVDYXN0IGlzIGEgaGFjay4gV2Ug
ZG8gaXQgYmVjYXVzZSB3ZSBjYW4ndCBidWlsZCBUaW1lbGluZUV2ZW50IGRpcmVjdGx5IG5vdy4K
ICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpUaW1lbGluZUV2ZW50PiByZWNvcmQg
PSBUeXBlQnVpbGRlcjo6VGltZWxpbmU6OlRpbWVsaW5lRXZlbnQ6OnJ1bnRpbWVDYXN0KHJlY29y
ZFJhdy5yZWxlYXNlKCkpOwogICAgIG1fZnJvbnRlbmQtPmV2ZW50UmVjb3JkZWQocmVjb3JkLnJl
bGVhc2UoKSk7CkBAIC00MTUsMTIgKzQxNywxMiBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmRpZEZpcmVBbmltYXRpb25GcmFtZSgpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6d2lsbFByb2Nlc3NUYXNrKCkKIHsKLSAgICAvLyBUT0RPOiBSZWNvcmQgdGFzayBwcm9jZXNz
aW5nIHN0YXJ0IHRpbWUuCisgICAgcHVzaEN1cnJlbnRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0Ojpj
cmVhdGUoKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpQcm9ncmFtLCBmYWxzZSwgMCk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUHJvY2Vzc1Rhc2soKQogewotICAgIC8vIFRP
RE86IFJlY29yZCB0YXNrIHByb2Nlc3NpbmcgZW5kIHRpbWUuCisgICAgZGlkQ29tcGxldGVDdXJy
ZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6UHJvZ3JhbSk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6YWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gcmVjb3JkLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJ
ZCkKQEAgLTQzMSwxMSArNDMzLDE1IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YWRk
UmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjCiAKIHZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6aW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBwcnBSZWNvcmQsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qg
U3RyaW5nJiBmcmFtZUlkKQogeworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBwcm9n
cmFtLCAoVGltZWxpbmVSZWNvcmRUeXBlOjpQcm9ncmFtKSk7CisKICAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiByZWNvcmQocHJwUmVjb3JkKTsKICAgICByZWNvcmQtPnNldFN0cmluZygidHlw
ZSIsIHR5cGUpOwogICAgIGlmICghZnJhbWVJZC5pc0VtcHR5KCkpCiAgICAgICAgIHJlY29yZC0+
c2V0U3RyaW5nKCJmcmFtZUlkIiwgZnJhbWVJZCk7Ci0gICAgc2V0SGVhcFNpemVTdGF0aXN0aWMo
cmVjb3JkLmdldCgpKTsKKyAgICBpZiAodHlwZSAhPSBwcm9ncmFtKQorICAgICAgICBzZXRIZWFw
U2l6ZVN0YXRpc3RpY3MocmVjb3JkLmdldCgpKTsKKwogICAgIGlmIChtX3JlY29yZFN0YWNrLmlz
RW1wdHkoKSkgewogICAgICAgICAvLyBGSVhNRTogcnVudGltZUNhc3QgaXMgYSBoYWNrLiBXZSBk
byBpdCBiZWNhdXNlIHdlIGNhbid0IGJ1aWxkIFRpbWVsaW5lRXZlbnQgZGlyZWN0bHkgbm93Lgog
ICAgICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpUaW1lbGluZUV2ZW50PiByZWNv
cmRDaGVja2VkID0gVHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpUaW1lbGluZUV2ZW50OjpydW50aW1l
Q2FzdChyZWNvcmQucmVsZWFzZSgpKTsKQEAgLTQ0Niw3ICs0NTIsNyBAQCB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmlubmVyQWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdAogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzZXRI
ZWFwU2l6ZVN0YXRpc3RpYyhJbnNwZWN0b3JPYmplY3QqIHJlY29yZCkKK3ZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6c2V0SGVhcFNpemVTdGF0aXN0aWNzKEluc3BlY3Rvck9iamVjdCogcmVj
b3JkKQogewogICAgIHNpemVfdCB1c2VkSGVhcFNpemUgPSAwOwogICAgIHNpemVfdCB0b3RhbEhl
YXBTaXplID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5oCmluZGV4IDk0YzdmY2FlZTM4NmVjZDBmMjJmMjdlZWIxZDdhNWY5MWZmN2Yz
MTguLmVmYzZhMTY1NTBhZTM5OTI0NjEwZDM3OGEzMmU2YThlYjgwYTIzODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtMTYw
LDggKzE2MCw4IEBAIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yU3RhdGUqLCBJbnNw
ZWN0b3JUeXBlLCBJbnNwZWN0b3JDbGllbnQqKTsKIAogICAgIHZvaWQgcHVzaEN1cnJlbnRSZWNv
cmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FwdHVyZUNhbGxTdGFjaywgRnJhbWUqKTsKLSAgICB2b2lkIHNldEhlYXBTaXplU3RhdGlzdGlj
KEluc3BlY3Rvck9iamVjdCogcmVjb3JkKTsKLSAgICAgICAgCisgICAgdm9pZCBzZXRIZWFwU2l6
ZVN0YXRpc3RpY3MoSW5zcGVjdG9yT2JqZWN0KiByZWNvcmQpOworCiAgICAgdm9pZCBkaWRDb21w
bGV0ZUN1cnJlbnRSZWNvcmQoY29uc3QgU3RyaW5nJiB0eXBlKTsKICAgICB2b2lkIGFwcGVuZFJl
Y29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBl
LCBib29sIGNhcHR1cmVDYWxsU3RhY2ssIEZyYW1lKik7CiAgICAgdm9pZCBwdXNoQ2FuY2VsYWJs
ZVJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4sIGNvbnN0IFN0cmluZyYgdHlwZSwg
RnJhbWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
TWVtb3J5U3RhdGlzdGljcy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
TWVtb3J5U3RhdGlzdGljcy5qcwppbmRleCBjOTE1Y2U3NTI0NjBkZDMwOTIzZmIzODVmOWU3YjNj
ZjBjYjEwMTRkLi5hYTUyZTIyMmU3ZDdjODJiYjQzOGI1YWU4YjY1MGE4NTM1MjE4NTBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01lbW9yeVN0YXRpc3Rp
Y3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0
aXN0aWNzLmpzCkBAIC0yNTcsMTUgKzI1NywyMCBAQCBXZWJJbnNwZWN0b3IuTWVtb3J5U3RhdGlz
dGljcy5wcm90b3R5cGUgPSB7CiAKICAgICBfb25SZWNvcmRBZGRlZDogZnVuY3Rpb24oZXZlbnQp
CiAgICAgewotICAgICAgICB2YXIgY291bnRlcnMgPSBldmVudC5kYXRhWyJjb3VudGVycyJdOwot
ICAgICAgICBpZiAoIWNvdW50ZXJzKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlz
Ll9jb3VudGVycy5wdXNoKHsKLSAgICAgICAgICAgIHRpbWU6IGV2ZW50LmRhdGEuZW5kVGltZSB8
fCBldmVudC5kYXRhLnN0YXJ0VGltZSwKLSAgICAgICAgICAgIGRvY3VtZW50Q291bnQ6IGNvdW50
ZXJzWyJkb2N1bWVudHMiXSwKLSAgICAgICAgICAgIG5vZGVDb3VudDogY291bnRlcnNbIm5vZGVz
Il0sCi0gICAgICAgICAgICBsaXN0ZW5lckNvdW50OiBjb3VudGVyc1sianNFdmVudExpc3RlbmVy
cyJdCi0gICAgICAgIH0pOworICAgICAgICB2YXIgc3RhdGlzdGljcyA9IHRoaXMuX2NvdW50ZXJz
OworICAgICAgICBmdW5jdGlvbiBhZGRTdGF0aXN0aWNzKHJlY29yZCkKKyAgICAgICAgeworICAg
ICAgICAgICAgdmFyIGNvdW50ZXJzID0gcmVjb3JkWyJjb3VudGVycyJdOworICAgICAgICAgICAg
aWYgKCFjb3VudGVycykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBzdGF0
aXN0aWNzLnB1c2goeworICAgICAgICAgICAgICAgIHRpbWU6IHJlY29yZC5lbmRUaW1lIHx8IHJl
Y29yZC5zdGFydFRpbWUsCisgICAgICAgICAgICAgICAgZG9jdW1lbnRDb3VudDogY291bnRlcnNb
ImRvY3VtZW50cyJdLAorICAgICAgICAgICAgICAgIG5vZGVDb3VudDogY291bnRlcnNbIm5vZGVz
Il0sCisgICAgICAgICAgICAgICAgbGlzdGVuZXJDb3VudDogY291bnRlcnNbImpzRXZlbnRMaXN0
ZW5lcnMiXQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyhbZXZlbnQuZGF0YV0sIG51
bGwsIGFkZFN0YXRpc3RpY3MpOwogICAgIH0sCiAKICAgICBfZHJhdzogZnVuY3Rpb24oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUZyYW1l
Q29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVGcmFtZUNvbnRyb2xsZXIuanMKaW5kZXggNGU0MWUyNDM1M2I0YmNmNTRkZTNmMDkyODg4N2Zi
ZTEwYTI1NGMxMS4uMDYzODA5NjZlMzFlNmMyMzYyOTczNzBkYzliODVmM2M3YjcxZTliYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUZyYW1l
Q29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lRnJhbWVDb250cm9sbGVyLmpzCkBAIC02MSw2ICs2MSwxNiBAQCBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVGcmFtZUNvbnRyb2xsZXIucHJvdG90eXBlID0gewogCiAgICAgX2FkZFJlY29yZDog
ZnVuY3Rpb24ocmVjb3JkKQogICAgIHsKKyAgICAgICAgdmFyIHJlY29yZHM7CisgICAgICAgIGlm
IChyZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZS5Q
cm9ncmFtKQorICAgICAgICAgICAgcmVjb3JkcyA9IHJlY29yZFsiY2hpbGRyZW4iXSB8fCBbXTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVjb3JkcyA9IFtyZWNvcmRdOworICAgICAgICBy
ZWNvcmRzLmZvckVhY2godGhpcy5faW5uZXJBZGRSZWNvcmQsIHRoaXMpOworICAgIH0sCisKKyAg
ICBfaW5uZXJBZGRSZWNvcmQ6IGZ1bmN0aW9uKHJlY29yZCkKKyAgICB7CiAgICAgICAgIGlmIChy
ZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZS5CZWdp
bkZyYW1lICYmIHRoaXMuX2xhc3RGcmFtZSkKICAgICAgICAgICAgIHRoaXMuX2ZsdXNoRnJhbWUo
cmVjb3JkKTsKICAgICAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMKaW5kZXggMDNmZjBlNzM0OGZhM2NjMzFkZTBl
YzNmNTdjNWI0ZWMxOWZkZWE2MC4uMjBlYmQwYzg3OWI4Y2RkMGUzMmMzYjA3ZThlYjNlNjAzZGY1
ZThmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVNb2RlbC5qcwpAQCAtNDQsNiArNDQsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2Rl
bCA9IGZ1bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZSA9
IHsKICAgICBSb290OiAiUm9vdCIsCisgICAgUHJvZ3JhbTogIlByb2dyYW0iLAogICAgIEV2ZW50
RGlzcGF0Y2g6ICJFdmVudERpc3BhdGNoIiwKIAogICAgIEJlZ2luRnJhbWU6ICJCZWdpbkZyYW1l
IiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVPdmVydmlld1BhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lT3ZlcnZpZXdQYW5lLmpzCmluZGV4IDc0NTE3MWMwNDc5ZWZkNDE2MTZiYWNjNDY0ZmFl
ZGJhMDc4MmU3MDQuLjhhOGFiZWY4NzE4YjhjODk2ZmQwZDExNTQ4NDhiMjg3MThlYzYxMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVy
dmlld1BhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZU92ZXJ2aWV3UGFuZS5qcwpAQCAtODgzLDYgKzg4Myw4IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZUNhdGVnb3J5U3RyaXBzLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHZhciByZWNvcmRT
dGFydCA9IE1hdGguZmxvb3IoKFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLnN0YXJ0VGltZUlu
U2Vjb25kcyhyZWNvcmQpIC0gdGltZU9mZnNldCkgKiBzY2FsZSk7CiAgICAgICAgICAgICB2YXIg
cmVjb3JkRW5kID0gTWF0aC5jZWlsKChXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5lbmRUaW1l
SW5TZWNvbmRzKHJlY29yZCkgLSB0aW1lT2Zmc2V0KSAqIHNjYWxlKTsKICAgICAgICAgICAgIHZh
ciBjYXRlZ29yeSA9IFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmNhdGVn
b3J5Rm9yUmVjb3JkKHJlY29yZCk7CisgICAgICAgICAgICBpZiAoY2F0ZWdvcnkub3ZlcnZpZXdT
dHJpcEdyb3VwSW5kZXggPCAwKQorICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
IHZhciBiYXIgPSBsYXN0QmFyQnlHcm91cFtjYXRlZ29yeS5vdmVydmlld1N0cmlwR3JvdXBJbmRl
eF07CiAgICAgICAgICAgICAvLyBUaGlzIGJhciBtYXkgYmUgbWVyZ2VkIHdpdGggcHJldmlvdXMg
LS0gc28ganVzdCBhZGp1c3QgdGhlIHByZXZpb3VzIGJhci4KICAgICAgICAgICAgIGNvbnN0IGJh
cnNNZXJnZVRocmVzaG9sZCA9IDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggNDI1MTgxY2E4MWIxZjA3Mzk5N2U5NDc5
ZTI4OTVjODU3ZGIyNDA2MC4uYWRiZmE1YTNiN2NkMTMyMTliZDFkZjMyNDQ4OTBjNDcyZWUzYzU3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVQYW5lbC5qcwpAQCAtMjI5LDYgKzIyOSw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGNhdGVnb3JpZXMgPSBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzKCk7CiAgICAgICAgIGZvciAodmFyIGNh
dGVnb3J5TmFtZSBpbiBjYXRlZ29yaWVzKSB7CiAgICAgICAgICAgICB2YXIgY2F0ZWdvcnkgPSBj
YXRlZ29yaWVzW2NhdGVnb3J5TmFtZV07CisgICAgICAgICAgICBpZiAoY2F0ZWdvcnkub3ZlcnZp
ZXdTdHJpcEdyb3VwSW5kZXggPCAwKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgdGhpcy5zdGF0dXNCYXJGaWx0ZXJzLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVRpbWVs
aW5lQ2F0ZWdvcnlTdGF0dXNCYXJDaGVja2JveChjYXRlZ29yeSwgdGhpcy5fb25DYXRlZ29yeUNo
ZWNrYm94Q2xpY2tlZC5iaW5kKHRoaXMsIGNhdGVnb3J5KSkpOwogICAgICAgICB9CiAgICAgfSwK
QEAgLTQ4NywxMyArNDg5LDEzIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlw
ZSA9IHsKICAgICBfb25UaW1lbGluZUV2ZW50UmVjb3JkZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAg
IHsKICAgICAgICAgaWYgKHRoaXMuX2lubmVyQWRkUmVjb3JkVG9UaW1lbGluZShldmVudC5kYXRh
LCB0aGlzLl9yb290UmVjb3JkKCkpKQotICAgICAgICAgICAgdGhpcy5fc2NoZWR1bGVSZWZyZXNo
KGZhbHNlKTsKKyAgICAgICAgdGhpcy5fc2NoZWR1bGVSZWZyZXNoKGZhbHNlKTsKICAgICB9LAog
CiAgICAgX2lubmVyQWRkUmVjb3JkVG9UaW1lbGluZTogZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRS
ZWNvcmQpCiAgICAgewotICAgICAgICB2YXIgZm9ybWF0dGVkUmVjb3JkID0gdGhpcy5fcHJlc2Vu
dGF0aW9uTW9kZWwuYWRkUmVjb3JkKHJlY29yZCwgcGFyZW50UmVjb3JkKTsKLSAgICAgICAgKyt0
aGlzLl9hbGxSZWNvcmRzQ291bnQ7CisgICAgICAgIHZhciByZWNvcmRzID0gdGhpcy5fcHJlc2Vu
dGF0aW9uTW9kZWwuYWRkUmVjb3JkKHJlY29yZCwgcGFyZW50UmVjb3JkKTsKKyAgICAgICAgdGhp
cy5fYWxsUmVjb3Jkc0NvdW50ICs9IHJlY29yZHMubGVuZ3RoOwogICAgICAgICB2YXIgcmVjb3Jk
VHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlOwogICAgICAgICB2
YXIgdGltZVN0YW1wUmVjb3JkcyA9IHRoaXMuX3RpbWVTdGFtcFJlY29yZHM7CiAgICAgICAgIGZ1
bmN0aW9uIGFkZFRpbWVzdGFtcFJlY29yZHMocmVjb3JkKQpAQCAtNTAxLDkgKzUwMywxMyBAQCBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpZiAo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuaXNFdmVudERpdmlkZXIocmVj
b3JkKSkKICAgICAgICAgICAgICAgICB0aW1lU3RhbXBSZWNvcmRzLnB1c2gocmVjb3JkKTsKICAg
ICAgICAgfQotICAgICAgICB2YXIgcmVjb3JkcyA9IFsgZm9ybWF0dGVkUmVjb3JkIF07CiAgICAg
ICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmZvckFsbFJlY29yZHMo
cmVjb3JkcywgYWRkVGltZXN0YW1wUmVjb3Jkcyk7Ci0gICAgICAgIHJldHVybiAhIXRoaXMuX3By
ZXNlbnRhdGlvbk1vZGVsLmZpbHRlclJlY29yZHMocmVjb3JkcykubGVuZ3RoIHx8IGZvcm1hdHRl
ZFJlY29yZC5wYXJlbnQgIT09IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnJvb3RSZWNvcmQ7CisK
KyAgICAgICAgdmFyIHJvb3RSZWNvcmQgPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5yb290UmVj
b3JkOworICAgICAgICBmdW5jdGlvbiBpc0F0dGFjaGVkUmVjb3JkKHJlY29yZCkgeworICAgICAg
ICAgICAgcmV0dXJuIHJlY29yZC5wYXJlbnQgIT09IHJvb3RSZWNvcmQ7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuICEhdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuZmlsdGVyUmVjb3JkcyhyZWNv
cmRzKS5sZW5ndGggfHwgcmVjb3Jkcy5zb21lKGlzQXR0YWNoZWRSZWNvcmQpOwogICAgIH0sCiAK
ICAgICBzaWRlYmFyUmVzaXplZDogZnVuY3Rpb24oZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9u
TW9kZWwuanMKaW5kZXggZWI5MWEwNjRiMDY3YmY2NjExMjZkMDhlNDkxMGIzMmM2NzgwZDRiNS4u
ZDc4NzhmMWMyZWI3YzNiOTRmY2U4OWM1MjkxNWUwZmNjN2ZlZjBiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVz
ZW50YXRpb25Nb2RlbC5qcwpAQCAtNDcsNiArNDcsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
cmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzID0gZnVuY3Rpb24oKQogICAgIGlmIChXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5fY2F0ZWdvcmllcykKICAgICAgICAgcmV0
dXJuIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLl9jYXRlZ29yaWVzOwog
ICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLl9jYXRlZ29yaWVzID0g
eworCisgICAgICAgIHByb2dyYW06IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeSgi
cHJvZ3JhbSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJvZ3JhbSIpLCAtMSwgInRyYW5zcGFy
ZW50IiwgInRyYW5zcGFyZW50IiwgInRyYW5zcGFyZW50IiksCiAgICAgICAgIGxvYWRpbmc6IG5l
dyBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeSgibG9hZGluZyIsIFdlYkluc3BlY3Rvci5V
SVN0cmluZygiTG9hZGluZyIpLCAwLCAiIzVBOEJDQyIsICIjOEVCNkU5IiwgIiM3MEEyRTMiKSwK
ICAgICAgICAgc2NyaXB0aW5nOiBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoInNj
cmlwdGluZyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2NyaXB0aW5nIiksIDEsICIjRDhBQTM0
IiwgIiNGM0QwN0EiLCAiI0YxQzQ1MyIpLAogICAgICAgICByZW5kZXJpbmc6IG5ldyBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVDYXRlZ29yeSgicmVuZGVyaW5nIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJSZW5kZXJpbmciKSwgMiwgIiM4MjY2Q0MiLCAiI0FGOUFFQiIsICIjOUE3RUU2IiksCkBAIC02
OCw2ICs3MCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnJlY29y
ZFN0eWxlID0gZnVuY3Rpb24ocmVjb3JkKQogCiAgICAgdmFyIHJlY29yZFN0eWxlcyA9IHt9Owog
ICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5Sb290XSA9IHsgdGl0bGU6ICIjcm9vdCIsIGNh
dGVnb3J5OiBjYXRlZ29yaWVzWyJsb2FkaW5nIl0gfTsKKyAgICByZWNvcmRTdHlsZXNbcmVjb3Jk
VHlwZXMuUHJvZ3JhbV0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByb2dyYW0i
KSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbInByb2dyYW0iXSB9OwogICAgIHJlY29yZFN0eWxlc1ty
ZWNvcmRUeXBlcy5FdmVudERpc3BhdGNoXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiRXZlbnQiKSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbInNjcmlwdGluZyJdIH07CiAgICAgcmVj
b3JkU3R5bGVzW3JlY29yZFR5cGVzLkJlZ2luRnJhbWVdID0geyB0aXRsZTogV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJGcmFtZSBTdGFydCIpLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sicmVuZGVyaW5n
Il0gfTsKICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuTGF5b3V0XSA9IHsgdGl0bGU6IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiTGF5b3V0IiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJyZW5k
ZXJpbmciXSB9OwpAQCAtMTE1LDcgKzExOCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNl
bnRhdGlvbk1vZGVsLmlzRXZlbnREaXZpZGVyID0gZnVuY3Rpb24ocmVjb3JkKQogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZm9y
QWxsUmVjb3JkcyA9IGZ1bmN0aW9uKHJlY29yZHNBcnJheSwgY2FsbGJhY2spCitXZWJJbnNwZWN0
b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5mb3JBbGxSZWNvcmRzID0gZnVuY3Rpb24ocmVj
b3Jkc0FycmF5LCBwcmVPcmRlckNhbGxiYWNrLCBwb3N0T3JkZXJDYWxsYmFjaykKIHsKICAgICBp
ZiAoIXJlY29yZHNBcnJheSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTI1LDEzICsxMjgsMTUgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyA9IGZ1
bmN0aW9uKHJlY29yZHNBcnJheSwgY2EKICAgICAgICAgdmFyIHJlY29yZHMgPSBlbnRyeS5hcnJh
eTsKICAgICAgICAgaWYgKGVudHJ5LmluZGV4IDwgcmVjb3Jkcy5sZW5ndGgpIHsKICAgICAgICAg
ICAgICB2YXIgcmVjb3JkID0gcmVjb3Jkc1tlbnRyeS5pbmRleF07Ci0gICAgICAgICAgICAgaWYg
KGNhbGxiYWNrKHJlY29yZCkpCisgICAgICAgICAgICAgaWYgKHByZU9yZGVyQ2FsbGJhY2sgJiYg
cHJlT3JkZXJDYWxsYmFjayhyZWNvcmQpKQogICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICAgaWYgKHJlY29yZC5jaGlsZHJlbikKICAgICAgICAgICAgICAgICAgc3RhY2sucHVz
aCh7YXJyYXk6IHJlY29yZC5jaGlsZHJlbiwgaW5kZXg6IDB9KTsKICAgICAgICAgICAgICArK2Vu
dHJ5LmluZGV4OwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHN0YWNrLnBvcCgpOworICAg
ICAgICAgICAgdmFyIHJlY29yZCA9IHN0YWNrLnBvcCgpOworICAgICAgICAgICAgaWYgKHBvc3RP
cmRlckNhbGxiYWNrICYmIHBvc3RPcmRlckNhbGxiYWNrKHJlY29yZCkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIH0KIApAQCAtMjAyLDEyICsyMDcsMjkgQEAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogCiAgICAgYWRkUmVjb3Jk
OiBmdW5jdGlvbihyZWNvcmQsIHBhcmVudFJlY29yZCkKICAgICB7Ci0gICAgICAgIHZhciBjb25u
ZWN0ZWRUb09sZFJlY29yZCA9IGZhbHNlOwogICAgICAgICB2YXIgcmVjb3JkVHlwZXMgPSBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlOwogCiAgICAgICAgIGlmICh0aGlzLl9t
aW5pbXVtUmVjb3JkVGltZSA9PT0gLTEgfHwgcmVjb3JkLnN0YXJ0VGltZSA8IHRoaXMuX21pbmlt
dW1SZWNvcmRUaW1lKQogICAgICAgICAgICAgdGhpcy5fbWluaW11bVJlY29yZFRpbWUgPSBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVNb2RlbC5zdGFydFRpbWVJblNlY29uZHMocmVjb3JkKTsKIAorICAg
ICAgICB2YXIgcmVjb3JkczsKKyAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSByZWNvcmRUeXBl
cy5Qcm9ncmFtKQorICAgICAgICAgICAgcmVjb3JkcyA9IHJlY29yZC5jaGlsZHJlbjsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgcmVjb3JkcyA9IFtyZWNvcmRdOworCisgICAgICAgIHZhciBm
b3JtYXR0ZWRSZWNvcmRzID0gW107CisgICAgICAgIHZhciByZWNvcmRzQ291bnQgPSByZWNvcmRz
Lmxlbmd0aDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzQ291bnQ7ICsraSkK
KyAgICAgICAgICAgIGZvcm1hdHRlZFJlY29yZHMucHVzaCh0aGlzLl9pbm5lckFkZFJlY29yZChy
ZWNvcmRzW2ldLCBwYXJlbnRSZWNvcmQpKTsKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRlZFJlY29y
ZHM7CisgICAgfSwKKworICAgIF9pbm5lckFkZFJlY29yZDogZnVuY3Rpb24ocmVjb3JkLCBwYXJl
bnRSZWNvcmQpCisgICAgeworICAgICAgICB2YXIgY29ubmVjdGVkVG9PbGRSZWNvcmQgPSBmYWxz
ZTsKKyAgICAgICAgdmFyIHJlY29yZFR5cGVzID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwu
UmVjb3JkVHlwZTsKKwogICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLk1h
cmtET01Db250ZW50IHx8IHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5NYXJrTG9hZCkKICAg
ICAgICAgICAgIHBhcmVudFJlY29yZCA9IG51bGw7IC8vIE5vIGJhciBlbnRyeSBmb3IgbG9hZCBl
dmVudHMuCiAgICAgICAgIGVsc2UgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY1NTkyZTIzOTAyY2E5ZThkOWFkOWU4Njgx
NDY0M2VhZTU4OWU2MDEuLjg2OGNjMGZlYWRkNmUwZjYxMWRhYzQ5ZWZiYTJiODlkOWM5OTFjZjAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNi0yMSAgRXVnZW5lIEtseXVjaG5pa292ICA8
ZXVzdGFzLmJpZ0BnbWFpbC5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRm9yd2FyZCBt
ZXNzYWdlIGxvb3AgaW5zdHJ1bWVudGF0aW9uIGRhdGEgdG8gZnJvbnRlbmQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTU4NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRyYW5zbWl0IGNvbGxlY3RlZCBt
ZXNzYWdlIGxvb3AgdGFza3MgdG8gaW5zcGVjdG9yIGZyb250ZW5kLgorICAgICAgICBOb3cgIlBy
b2dyYW0iIHNob3VsZCBiZSBhIHRvcC1sZXZlbCBldmVudCB3aGVyZSBhcHByb3ByaWF0ZS4KKyAg
ICAgICAgRnJvbnRlbmQgd2FzIGNoYW5nZWQgc28gdGhhdCB1c2VyIHdpbGwgbm90IHNlZSBhbnkg
Y2hhbmdlcy4KKworICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0
YWJpbGl0eS1leHBlY3RlZC50eHQ6CisKIDIwMTItMDYtMjEgIFRhaWp1IFRzdWlraSAgPHR6aWtA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE1vdmUgcmVxdWVzdElkIGFs
bG9jYXRpb24gZnJvbSBGaWxlU3lzdGVtIGZyb250ZW5kIHRvIGJhY2tlbmQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZW51
bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0CmluZGV4IGQ5MzFmMTRlMmY0M2YyNjBlZDIwMWM0NmU5
YWU0MzBkMzZjMWI4OTEuLmFkNzc4NjNiNjljYzA4MDQ5ZTg3OGYyNWM0ODk3ZjlmMmFmZGQwYjYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVt
LXN0YWJpbGl0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dApAQCAtNCw2ICs0LDcgQEAg
QXBwbGljYXRpb25zIG91dHNpZGUgb2YgV2ViS2l0IGRlcGVuZCBvbiB0aGUgc3RhYmlsaXR5IG9m
IHRoZSBtYXBwaW5nIG9mIHRoZXNlIHQKIAogewogICAgIFJvb3QgOiAiUm9vdCIKKyAgICBQcm9n
cmFtIDogIlByb2dyYW0iCiAgICAgRXZlbnREaXNwYXRjaCA6ICJFdmVudERpc3BhdGNoIgogICAg
IEJlZ2luRnJhbWUgOiAiQmVnaW5GcmFtZSIKICAgICBMYXlvdXQgOiAiTGF5b3V0Igo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148899</attachid>
            <date>2012-06-21 15:20:41 -0700</date>
            <delta_ts>2012-06-21 18:31:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89584-20120621152041.patch</filename>
            <type>text/plain</type>
            <size>21655</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJkMzNjY2MwOTViMzlj
MTM5MzQ5NDUyZjY4YjMzMDA0YjkzNGM2Ni4uZmU2NzZkYTJhYTkwNzhlYjgyZGQzZThhMDVmYzA2
OTdiY2ZlYTRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA2LTIxICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYmlnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBGb3J3YXJkIG1lc3NhZ2UgbG9vcCBpbnN0cnVtZW50YXRpb24gZGF0YSB0byBmcm9u
dGVuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJh
bnNtaXQgY29sbGVjdGVkIG1lc3NhZ2UgbG9vcCB0YXNrcyB0byBpbnNwZWN0b3IgZnJvbnRlbmQu
CisgICAgICAgIE5vdyAiUHJvZ3JhbSIgc2hvdWxkIGJlIGEgdG9wLWxldmVsIGV2ZW50IHdoZXJl
IGFwcHJvcHJpYXRlLgorICAgICAgICBGcm9udGVuZCB3YXMgY2hhbmdlZCBzbyB0aGF0IHVzZXIg
d2lsbCBub3Qgc2VlIGFueSBjaGFuZ2VzLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoVGltZWxpbmVSZWNvcmRUeXBlKToKKyAgICAg
ICAgQWRkZWQgbmV3IGV2ZW50IHR5cGUgLSAiUHJvZ3JhbSIKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQcm9jZXNzVGFzayk6CisgICAgICAgIEJlZ2luICJQ
cm9ncmFtIiBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZFByb2Nlc3NUYXNrKToKKyAgICAgICAgRmluaXNoICJQcm9ncmFtIiBldmVudC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGlj
KToKKyAgICAgICAgRG8gbm90IGFkZCBjb3VudGVycyB0byAiUHJvZ3JhbSIgZXZlbnRzLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojppbm5lclNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAgUmVuYW1lZCBmcm9tICJzZXRI
ZWFwU2l6ZVN0YXRpc3RpYyIKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk1lbW9yeVN0YXRpc3RpY3MucHJvdG90eXBlLl9vblJlY29yZEFkZGVkKToKKyAgICAgICAg
VW53cmFwcyAiUHJvZ3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9yeVN0
YXRpc3RpY3MucHJvdG90eXBlLl9pbm5lclJlY29yZEFkZGVkKToKKyAgICAgICAgUmVuYW1lZCBm
cm9tICJfb25SZWNvcmRBZGRlZCIKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lRnJhbWVDb250cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJh
bWVDb250cm9sbGVyLnByb3RvdHlwZS5fYWRkUmVjb3JkKToKKyAgICAgICAgVW53cmFwcyAiUHJv
Z3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9s
bGVyLnByb3RvdHlwZS5faW5uZXJBZGRSZWNvcmQpOgorICAgICAgICBSZW5hbWVkIGZyb20gIl9h
ZGRSZWNvcmQiCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpz
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5wcm90b3R5cGUu
dXBkYXRlLmFwcGVuZFJlY29yZCk6CisgICAgICAgIEZpbHRlciBvdXQgIlByb2dyYW0iIGNhdGVn
b3J5LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMucHJvdG90
eXBlLnVwZGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVs
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVh
dGVTdGF0dXNiYXJCdXR0b25zKToKKyAgICAgICAgRmlsdGVyIG91dCAiUHJvZ3JhbSIgY2F0ZWdv
cnkuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2lubmVy
QWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAgIFVud3JhcHMgIlByb2dyYW0iIGV2ZW50cy4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRl
Z29yaWVzKToKKyAgICAgICAgQWRkZWQgIlByb2dyYW0iIGNhdGVnb3J5LgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucmVjb3JkU3R5bGUpOgorICAgICAg
ICBEaXR0by4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZS5hZGRSZWNvcmQpOgorICAgICAgICBVbndyYXBzICJQcm9ncmFtIiBldmVudHMu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5
cGUuX2FkZFJlY29yZCk6CisgICAgICAgIFJlbmFtZWQgZnJvbSAiYWRkUmVjb3JkIgorCiAyMDEy
LTA2LTIxICBUYWlqdSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBNb3ZlIHJlcXVlc3RJZCBhbGxvY2F0aW9uIGZyb20gRmlsZVN5c3RlbSBmcm9u
dGVuZCB0byBiYWNrZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggNDcyODJlOTU3MzcxNmYzMzI5YjQwZmQ1YTM2NzFi
MTZjODE4NzMwNC4uMjZlYmZjNDlkYjE4MjBkNDFjMjU2NDhjZDI0YzQwN2Y1ZDFlMWQ5OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50
LmNwcApAQCAtNjAsNiArNjAsOCBAQCBzdGF0aWMgY29uc3QgY2hhciBpbmNsdWRlTWVtb3J5RGV0
YWlsc1tdID0gImluY2x1ZGVNZW1vcnlEZXRhaWxzIjsKIAogLy8gTXVzdCBiZSBrZXB0IGluIHN5
bmMgd2l0aCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlIGluIFRpbWVsaW5l
TW9kZWwuanMKIG5hbWVzcGFjZSBUaW1lbGluZVJlY29yZFR5cGUgeworc3RhdGljIGNvbnN0IGNo
YXIgUHJvZ3JhbVtdID0gIlByb2dyYW0iOworCiBzdGF0aWMgY29uc3QgY2hhciBFdmVudERpc3Bh
dGNoW10gPSAiRXZlbnREaXNwYXRjaCI7CiBzdGF0aWMgY29uc3QgY2hhciBCZWdpbkZyYW1lW10g
PSAiQmVnaW5GcmFtZSI7CiBzdGF0aWMgY29uc3QgY2hhciBMYXlvdXRbXSA9ICJMYXlvdXQiOwpA
QCAtMzQwLDcgKzM0Miw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFNlbmRS
ZXNvdXJjZVJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjCiAgICAgICAgIFN0cmlu
ZyBmcmFtZUlkKG1fcGFnZUFnZW50LT5mcmFtZUlkKGZyYW1lKSk7CiAgICAgICAgIHJlY29yZFJh
dy0+c2V0U3RyaW5nKCJmcmFtZUlkIiwgZnJhbWVJZCk7CiAgICAgfQotICAgIHNldEhlYXBTaXpl
U3RhdGlzdGljKHJlY29yZFJhdy5nZXQoKSk7CisgICAgc2V0SGVhcFNpemVTdGF0aXN0aWNzKHJl
Y29yZFJhdy5nZXQoKSk7CiAgICAgLy8gRklYTUU6IHJ1bnRpbWVDYXN0IGlzIGEgaGFjay4gV2Ug
ZG8gaXQgYmVjYXVzZSB3ZSBjYW4ndCBidWlsZCBUaW1lbGluZUV2ZW50IGRpcmVjdGx5IG5vdy4K
ICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpUaW1lbGluZUV2ZW50PiByZWNvcmQg
PSBUeXBlQnVpbGRlcjo6VGltZWxpbmU6OlRpbWVsaW5lRXZlbnQ6OnJ1bnRpbWVDYXN0KHJlY29y
ZFJhdy5yZWxlYXNlKCkpOwogICAgIG1fZnJvbnRlbmQtPmV2ZW50UmVjb3JkZWQocmVjb3JkLnJl
bGVhc2UoKSk7CkBAIC00MTUsMTIgKzQxNywxMiBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmRpZEZpcmVBbmltYXRpb25GcmFtZSgpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6d2lsbFByb2Nlc3NUYXNrKCkKIHsKLSAgICAvLyBUT0RPOiBSZWNvcmQgdGFzayBwcm9jZXNz
aW5nIHN0YXJ0IHRpbWUuCisgICAgcHVzaEN1cnJlbnRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0Ojpj
cmVhdGUoKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpQcm9ncmFtLCBmYWxzZSwgMCk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUHJvY2Vzc1Rhc2soKQogewotICAgIC8vIFRP
RE86IFJlY29yZCB0YXNrIHByb2Nlc3NpbmcgZW5kIHRpbWUuCisgICAgZGlkQ29tcGxldGVDdXJy
ZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6UHJvZ3JhbSk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6YWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gcmVjb3JkLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJ
ZCkKQEAgLTQzMSwxMSArNDMzLDE1IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YWRk
UmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjCiAKIHZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6aW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBwcnBSZWNvcmQsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qg
U3RyaW5nJiBmcmFtZUlkKQogeworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBwcm9n
cmFtLCAoVGltZWxpbmVSZWNvcmRUeXBlOjpQcm9ncmFtKSk7CisKICAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiByZWNvcmQocHJwUmVjb3JkKTsKICAgICByZWNvcmQtPnNldFN0cmluZygidHlw
ZSIsIHR5cGUpOwogICAgIGlmICghZnJhbWVJZC5pc0VtcHR5KCkpCiAgICAgICAgIHJlY29yZC0+
c2V0U3RyaW5nKCJmcmFtZUlkIiwgZnJhbWVJZCk7Ci0gICAgc2V0SGVhcFNpemVTdGF0aXN0aWMo
cmVjb3JkLmdldCgpKTsKKyAgICBpZiAodHlwZSAhPSBwcm9ncmFtKQorICAgICAgICBzZXRIZWFw
U2l6ZVN0YXRpc3RpY3MocmVjb3JkLmdldCgpKTsKKwogICAgIGlmIChtX3JlY29yZFN0YWNrLmlz
RW1wdHkoKSkgewogICAgICAgICAvLyBGSVhNRTogcnVudGltZUNhc3QgaXMgYSBoYWNrLiBXZSBk
byBpdCBiZWNhdXNlIHdlIGNhbid0IGJ1aWxkIFRpbWVsaW5lRXZlbnQgZGlyZWN0bHkgbm93Lgog
ICAgICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpUaW1lbGluZUV2ZW50PiByZWNv
cmRDaGVja2VkID0gVHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpUaW1lbGluZUV2ZW50OjpydW50aW1l
Q2FzdChyZWNvcmQucmVsZWFzZSgpKTsKQEAgLTQ0Niw3ICs0NTIsNyBAQCB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmlubmVyQWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdAogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzZXRI
ZWFwU2l6ZVN0YXRpc3RpYyhJbnNwZWN0b3JPYmplY3QqIHJlY29yZCkKK3ZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6c2V0SGVhcFNpemVTdGF0aXN0aWNzKEluc3BlY3Rvck9iamVjdCogcmVj
b3JkKQogewogICAgIHNpemVfdCB1c2VkSGVhcFNpemUgPSAwOwogICAgIHNpemVfdCB0b3RhbEhl
YXBTaXplID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5oCmluZGV4IDk0YzdmY2FlZTM4NmVjZDBmMjJmMjdlZWIxZDdhNWY5MWZmN2Yz
MTguLmVmYzZhMTY1NTBhZTM5OTI0NjEwZDM3OGEzMmU2YThlYjgwYTIzODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtMTYw
LDggKzE2MCw4IEBAIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yU3RhdGUqLCBJbnNw
ZWN0b3JUeXBlLCBJbnNwZWN0b3JDbGllbnQqKTsKIAogICAgIHZvaWQgcHVzaEN1cnJlbnRSZWNv
cmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FwdHVyZUNhbGxTdGFjaywgRnJhbWUqKTsKLSAgICB2b2lkIHNldEhlYXBTaXplU3RhdGlzdGlj
KEluc3BlY3Rvck9iamVjdCogcmVjb3JkKTsKLSAgICAgICAgCisgICAgdm9pZCBzZXRIZWFwU2l6
ZVN0YXRpc3RpY3MoSW5zcGVjdG9yT2JqZWN0KiByZWNvcmQpOworCiAgICAgdm9pZCBkaWRDb21w
bGV0ZUN1cnJlbnRSZWNvcmQoY29uc3QgU3RyaW5nJiB0eXBlKTsKICAgICB2b2lkIGFwcGVuZFJl
Y29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBl
LCBib29sIGNhcHR1cmVDYWxsU3RhY2ssIEZyYW1lKik7CiAgICAgdm9pZCBwdXNoQ2FuY2VsYWJs
ZVJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4sIGNvbnN0IFN0cmluZyYgdHlwZSwg
RnJhbWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
TWVtb3J5U3RhdGlzdGljcy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
TWVtb3J5U3RhdGlzdGljcy5qcwppbmRleCBjOTE1Y2U3NTI0NjBkZDMwOTIzZmIzODVmOWU3YjNj
ZjBjYjEwMTRkLi5hYTUyZTIyMmU3ZDdjODJiYjQzOGI1YWU4YjY1MGE4NTM1MjE4NTBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01lbW9yeVN0YXRpc3Rp
Y3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0
aXN0aWNzLmpzCkBAIC0yNTcsMTUgKzI1NywyMCBAQCBXZWJJbnNwZWN0b3IuTWVtb3J5U3RhdGlz
dGljcy5wcm90b3R5cGUgPSB7CiAKICAgICBfb25SZWNvcmRBZGRlZDogZnVuY3Rpb24oZXZlbnQp
CiAgICAgewotICAgICAgICB2YXIgY291bnRlcnMgPSBldmVudC5kYXRhWyJjb3VudGVycyJdOwot
ICAgICAgICBpZiAoIWNvdW50ZXJzKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlz
Ll9jb3VudGVycy5wdXNoKHsKLSAgICAgICAgICAgIHRpbWU6IGV2ZW50LmRhdGEuZW5kVGltZSB8
fCBldmVudC5kYXRhLnN0YXJ0VGltZSwKLSAgICAgICAgICAgIGRvY3VtZW50Q291bnQ6IGNvdW50
ZXJzWyJkb2N1bWVudHMiXSwKLSAgICAgICAgICAgIG5vZGVDb3VudDogY291bnRlcnNbIm5vZGVz
Il0sCi0gICAgICAgICAgICBsaXN0ZW5lckNvdW50OiBjb3VudGVyc1sianNFdmVudExpc3RlbmVy
cyJdCi0gICAgICAgIH0pOworICAgICAgICB2YXIgc3RhdGlzdGljcyA9IHRoaXMuX2NvdW50ZXJz
OworICAgICAgICBmdW5jdGlvbiBhZGRTdGF0aXN0aWNzKHJlY29yZCkKKyAgICAgICAgeworICAg
ICAgICAgICAgdmFyIGNvdW50ZXJzID0gcmVjb3JkWyJjb3VudGVycyJdOworICAgICAgICAgICAg
aWYgKCFjb3VudGVycykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBzdGF0
aXN0aWNzLnB1c2goeworICAgICAgICAgICAgICAgIHRpbWU6IHJlY29yZC5lbmRUaW1lIHx8IHJl
Y29yZC5zdGFydFRpbWUsCisgICAgICAgICAgICAgICAgZG9jdW1lbnRDb3VudDogY291bnRlcnNb
ImRvY3VtZW50cyJdLAorICAgICAgICAgICAgICAgIG5vZGVDb3VudDogY291bnRlcnNbIm5vZGVz
Il0sCisgICAgICAgICAgICAgICAgbGlzdGVuZXJDb3VudDogY291bnRlcnNbImpzRXZlbnRMaXN0
ZW5lcnMiXQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyhbZXZlbnQuZGF0YV0sIG51
bGwsIGFkZFN0YXRpc3RpY3MpOwogICAgIH0sCiAKICAgICBfZHJhdzogZnVuY3Rpb24oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUZyYW1l
Q29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVGcmFtZUNvbnRyb2xsZXIuanMKaW5kZXggNGU0MWUyNDM1M2I0YmNmNTRkZTNmMDkyODg4N2Zi
ZTEwYTI1NGMxMS4uMDYzODA5NjZlMzFlNmMyMzYyOTczNzBkYzliODVmM2M3YjcxZTliYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUZyYW1l
Q29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lRnJhbWVDb250cm9sbGVyLmpzCkBAIC02MSw2ICs2MSwxNiBAQCBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVGcmFtZUNvbnRyb2xsZXIucHJvdG90eXBlID0gewogCiAgICAgX2FkZFJlY29yZDog
ZnVuY3Rpb24ocmVjb3JkKQogICAgIHsKKyAgICAgICAgdmFyIHJlY29yZHM7CisgICAgICAgIGlm
IChyZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZS5Q
cm9ncmFtKQorICAgICAgICAgICAgcmVjb3JkcyA9IHJlY29yZFsiY2hpbGRyZW4iXSB8fCBbXTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVjb3JkcyA9IFtyZWNvcmRdOworICAgICAgICBy
ZWNvcmRzLmZvckVhY2godGhpcy5faW5uZXJBZGRSZWNvcmQsIHRoaXMpOworICAgIH0sCisKKyAg
ICBfaW5uZXJBZGRSZWNvcmQ6IGZ1bmN0aW9uKHJlY29yZCkKKyAgICB7CiAgICAgICAgIGlmIChy
ZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZS5CZWdp
bkZyYW1lICYmIHRoaXMuX2xhc3RGcmFtZSkKICAgICAgICAgICAgIHRoaXMuX2ZsdXNoRnJhbWUo
cmVjb3JkKTsKICAgICAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMKaW5kZXggMDNmZjBlNzM0OGZhM2NjMzFkZTBl
YzNmNTdjNWI0ZWMxOWZkZWE2MC4uMjBlYmQwYzg3OWI4Y2RkMGUzMmMzYjA3ZThlYjNlNjAzZGY1
ZThmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVNb2RlbC5qcwpAQCAtNDQsNiArNDQsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2Rl
bCA9IGZ1bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZSA9
IHsKICAgICBSb290OiAiUm9vdCIsCisgICAgUHJvZ3JhbTogIlByb2dyYW0iLAogICAgIEV2ZW50
RGlzcGF0Y2g6ICJFdmVudERpc3BhdGNoIiwKIAogICAgIEJlZ2luRnJhbWU6ICJCZWdpbkZyYW1l
IiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVPdmVydmlld1BhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lT3ZlcnZpZXdQYW5lLmpzCmluZGV4IDc0NTE3MWMwNDc5ZWZkNDE2MTZiYWNjNDY0ZmFl
ZGJhMDc4MmU3MDQuLjhhOGFiZWY4NzE4YjhjODk2ZmQwZDExNTQ4NDhiMjg3MThlYzYxMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVy
dmlld1BhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZU92ZXJ2aWV3UGFuZS5qcwpAQCAtODgzLDYgKzg4Myw4IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZUNhdGVnb3J5U3RyaXBzLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHZhciByZWNvcmRT
dGFydCA9IE1hdGguZmxvb3IoKFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLnN0YXJ0VGltZUlu
U2Vjb25kcyhyZWNvcmQpIC0gdGltZU9mZnNldCkgKiBzY2FsZSk7CiAgICAgICAgICAgICB2YXIg
cmVjb3JkRW5kID0gTWF0aC5jZWlsKChXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5lbmRUaW1l
SW5TZWNvbmRzKHJlY29yZCkgLSB0aW1lT2Zmc2V0KSAqIHNjYWxlKTsKICAgICAgICAgICAgIHZh
ciBjYXRlZ29yeSA9IFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmNhdGVn
b3J5Rm9yUmVjb3JkKHJlY29yZCk7CisgICAgICAgICAgICBpZiAoY2F0ZWdvcnkub3ZlcnZpZXdT
dHJpcEdyb3VwSW5kZXggPCAwKQorICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
IHZhciBiYXIgPSBsYXN0QmFyQnlHcm91cFtjYXRlZ29yeS5vdmVydmlld1N0cmlwR3JvdXBJbmRl
eF07CiAgICAgICAgICAgICAvLyBUaGlzIGJhciBtYXkgYmUgbWVyZ2VkIHdpdGggcHJldmlvdXMg
LS0gc28ganVzdCBhZGp1c3QgdGhlIHByZXZpb3VzIGJhci4KICAgICAgICAgICAgIGNvbnN0IGJh
cnNNZXJnZVRocmVzaG9sZCA9IDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggNDI1MTgxY2E4MWIxZjA3Mzk5N2U5NDc5
ZTI4OTVjODU3ZGIyNDA2MC4uMjgyZDAwNGQwNWQ5ZmQ1MjA1NWYyODA3ODQzN2U1Nzg2ODI4MjYw
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVQYW5lbC5qcwpAQCAtMjI5LDYgKzIyOSw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGNhdGVnb3JpZXMgPSBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzKCk7CiAgICAgICAgIGZvciAodmFyIGNh
dGVnb3J5TmFtZSBpbiBjYXRlZ29yaWVzKSB7CiAgICAgICAgICAgICB2YXIgY2F0ZWdvcnkgPSBj
YXRlZ29yaWVzW2NhdGVnb3J5TmFtZV07CisgICAgICAgICAgICBpZiAoY2F0ZWdvcnkub3ZlcnZp
ZXdTdHJpcEdyb3VwSW5kZXggPCAwKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgdGhpcy5zdGF0dXNCYXJGaWx0ZXJzLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVRpbWVs
aW5lQ2F0ZWdvcnlTdGF0dXNCYXJDaGVja2JveChjYXRlZ29yeSwgdGhpcy5fb25DYXRlZ29yeUNo
ZWNrYm94Q2xpY2tlZC5iaW5kKHRoaXMsIGNhdGVnb3J5KSkpOwogICAgICAgICB9CiAgICAgfSwK
QEAgLTQ5Miw4ICs0OTQsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUg
PSB7CiAKICAgICBfaW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lOiBmdW5jdGlvbihyZWNvcmQsIHBh
cmVudFJlY29yZCkKICAgICB7Ci0gICAgICAgIHZhciBmb3JtYXR0ZWRSZWNvcmQgPSB0aGlzLl9w
cmVzZW50YXRpb25Nb2RlbC5hZGRSZWNvcmQocmVjb3JkLCBwYXJlbnRSZWNvcmQpOwotICAgICAg
ICArK3RoaXMuX2FsbFJlY29yZHNDb3VudDsKKyAgICAgICAgdmFyIHJlY29yZHMgPSB0aGlzLl9w
cmVzZW50YXRpb25Nb2RlbC5hZGRSZWNvcmQocmVjb3JkLCBwYXJlbnRSZWNvcmQpOworICAgICAg
ICB0aGlzLl9hbGxSZWNvcmRzQ291bnQgKz0gcmVjb3Jkcy5sZW5ndGg7CiAgICAgICAgIHZhciBy
ZWNvcmRUeXBlcyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGU7CiAgICAg
ICAgIHZhciB0aW1lU3RhbXBSZWNvcmRzID0gdGhpcy5fdGltZVN0YW1wUmVjb3JkczsKICAgICAg
ICAgZnVuY3Rpb24gYWRkVGltZXN0YW1wUmVjb3JkcyhyZWNvcmQpCkBAIC01MDEsOSArNTAzLDE0
IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IGlmIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5pc0V2ZW50RGl2aWRl
cihyZWNvcmQpKQogICAgICAgICAgICAgICAgIHRpbWVTdGFtcFJlY29yZHMucHVzaChyZWNvcmQp
OwogICAgICAgICB9Ci0gICAgICAgIHZhciByZWNvcmRzID0gWyBmb3JtYXR0ZWRSZWNvcmQgXTsK
ICAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVj
b3JkcyhyZWNvcmRzLCBhZGRUaW1lc3RhbXBSZWNvcmRzKTsKLSAgICAgICAgcmV0dXJuICEhdGhp
cy5fcHJlc2VudGF0aW9uTW9kZWwuZmlsdGVyUmVjb3JkcyhyZWNvcmRzKS5sZW5ndGggfHwgZm9y
bWF0dGVkUmVjb3JkLnBhcmVudCAhPT0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwucm9vdFJlY29y
ZDsKKworICAgICAgICB2YXIgcm9vdFJlY29yZCA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnJv
b3RSZWNvcmQ7CisgICAgICAgIGZ1bmN0aW9uIGlzQWRvcHRlZFJlY29yZChyZWNvcmQpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHJldHVybiByZWNvcmQucGFyZW50ICE9PSByb290UmVjb3JkOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiAhIXRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmZpbHRl
clJlY29yZHMocmVjb3JkcykubGVuZ3RoIHx8IHJlY29yZHMuc29tZShpc0Fkb3B0ZWRSZWNvcmQp
OwogICAgIH0sCiAKICAgICBzaWRlYmFyUmVzaXplZDogZnVuY3Rpb24oZXZlbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0
aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
UHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggZWI5MWEwNjRiMDY3YmY2NjExMjZkMDhlNDkxMGIz
MmM2NzgwZDRiNS4uYmVkYTJiZjhhZGYxNzAzOTdiNGU4ZTdhNjk3YTczNjI2OWRmMDhhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNl
bnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAtNDcsNiArNDcsNyBAQCBXZWJJbnNwZWN0
b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzID0gZnVuY3Rpb24oKQogICAg
IGlmIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5fY2F0ZWdvcmllcykK
ICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLl9j
YXRlZ29yaWVzOwogICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLl9j
YXRlZ29yaWVzID0geworICAgICAgICBwcm9ncmFtOiBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
Q2F0ZWdvcnkoInByb2dyYW0iLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByb2dyYW0iKSwgLTEs
ICJ0cmFuc3BhcmVudCIsICJ0cmFuc3BhcmVudCIsICJ0cmFuc3BhcmVudCIpLAogICAgICAgICBs
b2FkaW5nOiBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoImxvYWRpbmciLCBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkxvYWRpbmciKSwgMCwgIiM1QThCQ0MiLCAiIzhFQjZFOSIsICIj
NzBBMkUzIiksCiAgICAgICAgIHNjcmlwdGluZzogbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUNh
dGVnb3J5KCJzY3JpcHRpbmciLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNjcmlwdGluZyIpLCAx
LCAiI0Q4QUEzNCIsICIjRjNEMDdBIiwgIiNGMUM0NTMiKSwKICAgICAgICAgcmVuZGVyaW5nOiBu
ZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoInJlbmRlcmluZyIsIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiUmVuZGVyaW5nIiksIDIsICIjODI2NkNDIiwgIiNBRjlBRUIiLCAiIzlBN0VF
NiIpLApAQCAtNjgsNiArNjksNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25N
b2RlbC5yZWNvcmRTdHlsZSA9IGZ1bmN0aW9uKHJlY29yZCkKIAogICAgIHZhciByZWNvcmRTdHls
ZXMgPSB7fTsKICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUm9vdF0gPSB7IHRpdGxlOiAi
I3Jvb3QiLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sibG9hZGluZyJdIH07CisgICAgcmVjb3JkU3R5
bGVzW3JlY29yZFR5cGVzLlByb2dyYW1dID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJQcm9ncmFtIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJwcm9ncmFtIl0gfTsKICAgICByZWNv
cmRTdHlsZXNbcmVjb3JkVHlwZXMuRXZlbnREaXNwYXRjaF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkV2ZW50IiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmciXSB9
OwogICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5CZWdpbkZyYW1lXSA9IHsgdGl0bGU6IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiRnJhbWUgU3RhcnQiKSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNb
InJlbmRlcmluZyJdIH07CiAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkxheW91dF0gPSB7
IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxheW91dCIpLCBjYXRlZ29yeTogY2F0ZWdv
cmllc1sicmVuZGVyaW5nIl0gfTsKQEAgLTExNSw3ICsxMTcsNyBAQCBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5pc0V2ZW50RGl2aWRlciA9IGZ1bmN0aW9uKHJlY29yZCkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlv
bk1vZGVsLmZvckFsbFJlY29yZHMgPSBmdW5jdGlvbihyZWNvcmRzQXJyYXksIGNhbGxiYWNrKQor
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyA9IGZ1
bmN0aW9uKHJlY29yZHNBcnJheSwgcHJlT3JkZXJDYWxsYmFjaywgcG9zdE9yZGVyQ2FsbGJhY2sp
CiB7CiAgICAgaWYgKCFyZWNvcmRzQXJyYXkpCiAgICAgICAgIHJldHVybjsKQEAgLTEyNSwxMyAr
MTI3LDE5IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmZvckFsbFJl
Y29yZHMgPSBmdW5jdGlvbihyZWNvcmRzQXJyYXksIGNhCiAgICAgICAgIHZhciByZWNvcmRzID0g
ZW50cnkuYXJyYXk7CiAgICAgICAgIGlmIChlbnRyeS5pbmRleCA8IHJlY29yZHMubGVuZ3RoKSB7
CiAgICAgICAgICAgICAgdmFyIHJlY29yZCA9IHJlY29yZHNbZW50cnkuaW5kZXhdOwotICAgICAg
ICAgICAgIGlmIChjYWxsYmFjayhyZWNvcmQpKQorICAgICAgICAgICAgIGlmIChwcmVPcmRlckNh
bGxiYWNrICYmIHByZU9yZGVyQ2FsbGJhY2socmVjb3JkKSkKICAgICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgIGlmIChyZWNvcmQuY2hpbGRyZW4pCisgICAgICAgICAgICAgaWYg
KHJlY29yZC5jaGlsZHJlbikgeworICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKHthcnJheTog
W10sIGluZGV4OiAwLCByZWNvcmQ6IHJlY29yZH0pOwogICAgICAgICAgICAgICAgICBzdGFjay5w
dXNoKHthcnJheTogcmVjb3JkLmNoaWxkcmVuLCBpbmRleDogMH0pOworICAgICAgICAgICAgIH0g
ZWxzZSBpZiAocG9zdE9yZGVyQ2FsbGJhY2sgJiYgcG9zdE9yZGVyQ2FsbGJhY2socmVjb3JkKSkK
KyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgKytlbnRyeS5pbmRleDsKLSAg
ICAgICAgfSBlbHNlCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoZW50cnkucmVj
b3JkICYmIHBvc3RPcmRlckNhbGxiYWNrICYmIHBvc3RPcmRlckNhbGxiYWNrKGVudHJ5LnJlY29y
ZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgc3RhY2sucG9wKCk7Cisg
ICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTIwMiwxMiArMjEwLDI5IEBAIFdlYkluc3BlY3Rvci5U
aW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIGFkZFJlY29yZDog
ZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQpCiAgICAgewotICAgICAgICB2YXIgY29ubmVj
dGVkVG9PbGRSZWNvcmQgPSBmYWxzZTsKICAgICAgICAgdmFyIHJlY29yZFR5cGVzID0gV2ViSW5z
cGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZTsKIAogICAgICAgICBpZiAodGhpcy5fbWlu
aW11bVJlY29yZFRpbWUgPT09IC0xIHx8IHJlY29yZC5zdGFydFRpbWUgPCB0aGlzLl9taW5pbXVt
UmVjb3JkVGltZSkKICAgICAgICAgICAgIHRoaXMuX21pbmltdW1SZWNvcmRUaW1lID0gV2ViSW5z
cGVjdG9yLlRpbWVsaW5lTW9kZWwuc3RhcnRUaW1lSW5TZWNvbmRzKHJlY29yZCk7CiAKKyAgICAg
ICAgdmFyIHJlY29yZHM7CisgICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMu
UHJvZ3JhbSkKKyAgICAgICAgICAgIHJlY29yZHMgPSByZWNvcmQuY2hpbGRyZW47CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHJlY29yZHMgPSBbcmVjb3JkXTsKKworICAgICAgICB2YXIgZm9y
bWF0dGVkUmVjb3JkcyA9IFtdOworICAgICAgICB2YXIgcmVjb3Jkc0NvdW50ID0gcmVjb3Jkcy5s
ZW5ndGg7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkc0NvdW50OyArK2kpCisg
ICAgICAgICAgICBmb3JtYXR0ZWRSZWNvcmRzLnB1c2godGhpcy5faW5uZXJBZGRSZWNvcmQocmVj
b3Jkc1tpXSwgcGFyZW50UmVjb3JkKSk7CisgICAgICAgIHJldHVybiBmb3JtYXR0ZWRSZWNvcmRz
OworICAgIH0sCisKKyAgICBfaW5uZXJBZGRSZWNvcmQ6IGZ1bmN0aW9uKHJlY29yZCwgcGFyZW50
UmVjb3JkKQorICAgIHsKKyAgICAgICAgdmFyIGNvbm5lY3RlZFRvT2xkUmVjb3JkID0gZmFsc2U7
CisgICAgICAgIHZhciByZWNvcmRUeXBlcyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJl
Y29yZFR5cGU7CisKICAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5NYXJr
RE9NQ29udGVudCB8fCByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuTWFya0xvYWQpCiAgICAg
ICAgICAgICBwYXJlbnRSZWNvcmQgPSBudWxsOyAvLyBObyBiYXIgZW50cnkgZm9yIGxvYWQgZXZl
bnRzLgogICAgICAgICBlbHNlIHsKQEAgLTI0Nyw3ICsyNzIsNyBAQCBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdmFyIGNoaWxk
cmVuQ291bnQgPSBjaGlsZHJlbiA/IGNoaWxkcmVuLmxlbmd0aCA6IDA7CiAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5Db3VudDsgKytpKQotICAgICAgICAgICAgdGhpcy5hZGRS
ZWNvcmQoY2hpbGRyZW5baV0sIGZvcm1hdHRlZFJlY29yZCk7CisgICAgICAgICAgICB0aGlzLl9p
bm5lckFkZFJlY29yZChjaGlsZHJlbltpXSwgZm9ybWF0dGVkUmVjb3JkKTsKIAogICAgICAgICBm
b3JtYXR0ZWRSZWNvcmQuY2FsY3VsYXRlQWdncmVnYXRlZFN0YXRzKFdlYkluc3BlY3Rvci5UaW1l
bGluZVByZXNlbnRhdGlvbk1vZGVsLmNhdGVnb3JpZXMoKSk7CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNTU5MmUyMzkw
MmNhOWU4ZDlhZDllODY4MTQ2NDNlYWU1ODllNjAxLi44NjhjYzBmZWFkZDZlMGY2MTFkYWM0OWVm
YmEyYjg5ZDljOTkxY2YwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDYtMjEgIEV1Z2Vu
ZSBLbHl1Y2huaWtvdiAgPGV1c3Rhcy5iaWdAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEZvcndhcmQgbWVzc2FnZSBsb29wIGluc3RydW1lbnRhdGlvbiBkYXRhIHRvIGZyb250
ZW5kLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk1
ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUcmFu
c21pdCBjb2xsZWN0ZWQgbWVzc2FnZSBsb29wIHRhc2tzIHRvIGluc3BlY3RvciBmcm9udGVuZC4K
KyAgICAgICAgTm93ICJQcm9ncmFtIiBzaG91bGQgYmUgYSB0b3AtbGV2ZWwgZXZlbnQgd2hlcmUg
YXBwcm9wcmlhdGUuCisgICAgICAgIEZyb250ZW5kIHdhcyBjaGFuZ2VkIHNvIHRoYXQgdXNlciB3
aWxsIG5vdCBzZWUgYW55IGNoYW5nZXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0OgorCiAyMDEyLTA2LTIxICBUYWlq
dSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBN
b3ZlIHJlcXVlc3RJZCBhbGxvY2F0aW9uIGZyb20gRmlsZVN5c3RlbSBmcm9udGVuZCB0byBiYWNr
ZW5kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZGZzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1kZnMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjEzYTZjMWZlZTliMTNhMWEzYTExOTI2ZGU3MWE4MjQ4ZThjN2Y4YTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZGZzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDM0IEBACitUZXN0cyBUaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LmZvckFsbFJlY29yZHMgZnVuY3Rpb24uCisKK0RGUyBwcmVvcmRlcjoKK2EKK2FhCithYWEKK2Fh
YgorYWIKK2FiYQorYWJiCitiCitiYQorYmFhCitiYWIKK2JiCitiYmEKK2JiYgorCitERlMgcG9z
dG9yZGVyOgorYWFhCithYWIKK2FhCithYmEKK2FiYgorYWIKK2EKK2JhYQorYmFiCitiYQorYmJh
CitiYmIKK2JiCitiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS1kZnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1kZnMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNWU0MzE2MjI1NGRjZTliMTVkYWFjODQ3OWY0MTMxOWEyNDFhY2JiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWRmcy5odG1sCkBAIC0w
LDAgKzEsNTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgorCit2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBmdW5jdGlvbiBk
dW1wZXIocmVjb3JkKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVj
b3JkLm5hbWUpOworICAgIH0KKworICAgIHZhciByZWNvcmRzID0gWworICAgICAgICB7Im5hbWUi
IDogImEiLCAiY2hpbGRyZW4iIDogWworICAgICAgICAgICAgeyJuYW1lIiA6ICJhYSIsICJjaGls
ZHJlbiI6IFsKKyAgICAgICAgICAgICAgICB7Im5hbWUiIDogImFhYSJ9LAorICAgICAgICAgICAg
ICAgIHsibmFtZSIgOiAiYWFiIn0sCisgICAgICAgICAgICBdfSwKKyAgICAgICAgICAgIHsibmFt
ZSIgOiAiYWIiLCAiY2hpbGRyZW4iOlsKKyAgICAgICAgICAgICAgICB7Im5hbWUiIDogImFiYSJ9
LAorICAgICAgICAgICAgICAgIHsibmFtZSIgOiAiYWJiIn0sCisgICAgICAgICAgICBdfQorICAg
ICAgICBdfSwKKyAgICAgICAgeyJuYW1lIiA6ICJiIiwgImNoaWxkcmVuIiA6IFsKKyAgICAgICAg
ICAgIHsibmFtZSIgOiAiYmEiLCAiY2hpbGRyZW4iIDogWworICAgICAgICAgICAgICAgIHsibmFt
ZSIgOiAiYmFhIn0sCisgICAgICAgICAgICAgICAgeyJuYW1lIiA6ICJiYWIifSwKKyAgICAgICAg
ICAgIF19LAorICAgICAgICAgICAgeyJuYW1lIiA6ICJiYiIsICJjaGlsZHJlbiI6WworICAgICAg
ICAgICAgICAgIHsibmFtZSIgOiAiYmJhIn0sCisgICAgICAgICAgICAgICAgeyJuYW1lIiA6ICJi
YmIifSwKKyAgICAgICAgICAgIF19CisgICAgICAgIF19LAorICAgIF07CisKKyAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiREZTIHByZW9yZGVyOiIpOworICAgIFdlYkluc3BlY3Rvci5UaW1l
bGluZVByZXNlbnRhdGlvbk1vZGVsLmZvckFsbFJlY29yZHMocmVjb3JkcywgZHVtcGVyKTsKKyAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7CisKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiREZTIHBvc3RvcmRlcjoiKTsKKyAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50
YXRpb25Nb2RlbC5mb3JBbGxSZWNvcmRzKHJlY29yZHMsIG51bGwsIGR1bXBlcik7CisgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyBUaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LmZvckFsbFJlY29yZHMgZnVuY3Rpb24uPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1l
bnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQKaW5kZXggZDkzMWYxNGUyZjQzZjI2MGVkMjAxYzQ2
ZTlhZTQzMGQzNmMxYjg5MS4uYWQ3Nzg2M2I2OWNjMDgwNDllODc4ZjI1YzQ4OTdmOWYyYWZkZDBi
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVu
dW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGlt
ZWxpbmUvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0CkBAIC00LDYgKzQsNyBA
QCBBcHBsaWNhdGlvbnMgb3V0c2lkZSBvZiBXZWJLaXQgZGVwZW5kIG9uIHRoZSBzdGFiaWxpdHkg
b2YgdGhlIG1hcHBpbmcgb2YgdGhlc2UgdAogCiB7CiAgICAgUm9vdCA6ICJSb290IgorICAgIFBy
b2dyYW0gOiAiUHJvZ3JhbSIKICAgICBFdmVudERpc3BhdGNoIDogIkV2ZW50RGlzcGF0Y2giCiAg
ICAgQmVnaW5GcmFtZSA6ICJCZWdpbkZyYW1lIgogICAgIExheW91dCA6ICJMYXlvdXQiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148936</attachid>
            <date>2012-06-21 18:30:50 -0700</date>
            <delta_ts>2012-06-22 09:29:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89584-20120621183049.patch</filename>
            <type>text/plain</type>
            <size>21650</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTFmNGYyMmE5MGQxNDlk
ZDhjZDY2YjYwYmExODcwNzI4M2IzMWY3My4uMGFhOGFhM2YzOTZhZDBkN2MxNTRjODE1NThmOGJl
MGM3ZWI0OWNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA2LTIxICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYmlnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBGb3J3YXJkIG1lc3NhZ2UgbG9vcCBpbnN0cnVtZW50YXRpb24gZGF0YSB0byBmcm9u
dGVuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJh
bnNtaXQgY29sbGVjdGVkIG1lc3NhZ2UgbG9vcCB0YXNrcyB0byBpbnNwZWN0b3IgZnJvbnRlbmQu
CisgICAgICAgIE5vdyAiUHJvZ3JhbSIgc2hvdWxkIGJlIGEgdG9wLWxldmVsIGV2ZW50IHdoZXJl
IGFwcHJvcHJpYXRlLgorICAgICAgICBGcm9udGVuZCB3YXMgY2hhbmdlZCBzbyB0aGF0IHVzZXIg
d2lsbCBub3Qgc2VlIGFueSBjaGFuZ2VzLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoVGltZWxpbmVSZWNvcmRUeXBlKToKKyAgICAg
ICAgQWRkZWQgbmV3IGV2ZW50IHR5cGUgLSAiUHJvZ3JhbSIKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQcm9jZXNzVGFzayk6CisgICAgICAgIEJlZ2luICJQ
cm9ncmFtIiBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZFByb2Nlc3NUYXNrKToKKyAgICAgICAgRmluaXNoICJQcm9ncmFtIiBldmVudC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGlj
KToKKyAgICAgICAgRG8gbm90IGFkZCBjb3VudGVycyB0byAiUHJvZ3JhbSIgZXZlbnRzLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojppbm5lclNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAgUmVuYW1lZCBmcm9tICJzZXRI
ZWFwU2l6ZVN0YXRpc3RpYyIKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk1lbW9yeVN0YXRpc3RpY3MucHJvdG90eXBlLl9vblJlY29yZEFkZGVkKToKKyAgICAgICAg
VW53cmFwcyAiUHJvZ3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9yeVN0
YXRpc3RpY3MucHJvdG90eXBlLl9pbm5lclJlY29yZEFkZGVkKToKKyAgICAgICAgUmVuYW1lZCBm
cm9tICJfb25SZWNvcmRBZGRlZCIKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lRnJhbWVDb250cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJh
bWVDb250cm9sbGVyLnByb3RvdHlwZS5fYWRkUmVjb3JkKToKKyAgICAgICAgVW53cmFwcyAiUHJv
Z3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9s
bGVyLnByb3RvdHlwZS5faW5uZXJBZGRSZWNvcmQpOgorICAgICAgICBSZW5hbWVkIGZyb20gIl9h
ZGRSZWNvcmQiCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpz
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5wcm90b3R5cGUu
dXBkYXRlLmFwcGVuZFJlY29yZCk6CisgICAgICAgIEZpbHRlciBvdXQgIlByb2dyYW0iIGNhdGVn
b3J5LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMucHJvdG90
eXBlLnVwZGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVs
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVh
dGVTdGF0dXNiYXJCdXR0b25zKToKKyAgICAgICAgRmlsdGVyIG91dCAiUHJvZ3JhbSIgY2F0ZWdv
cnkuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2lubmVy
QWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAgIFVud3JhcHMgIlByb2dyYW0iIGV2ZW50cy4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRl
Z29yaWVzKToKKyAgICAgICAgQWRkZWQgIlByb2dyYW0iIGNhdGVnb3J5LgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucmVjb3JkU3R5bGUpOgorICAgICAg
ICBEaXR0by4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZS5hZGRSZWNvcmQpOgorICAgICAgICBVbndyYXBzICJQcm9ncmFtIiBldmVudHMu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5
cGUuX2FkZFJlY29yZCk6CisgICAgICAgIFJlbmFtZWQgZnJvbSAiYWRkUmVjb3JkIgorCiAyMDEy
LTA2LTIxICBPbGkgTGFuICA8b2xpbGFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgbWV0
aG9kcyB0byBzZWxlY3QgYmV0d2VlbiBvZmZzZXRzIGluIGFuIGVkaXRhYmxlIGZpZWxkLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
CmluZGV4IDQ3MjgyZTk1NzM3MTZmMzMyOWI0MGZkNWEzNjcxYjE2YzgxODczMDQuLjI2ZWJmYzQ5
ZGIxODIwZDQxYzI1NjQ4Y2QyNGM0MDdmNWQxZTFkOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTYwLDYgKzYwLDgg
QEAgc3RhdGljIGNvbnN0IGNoYXIgaW5jbHVkZU1lbW9yeURldGFpbHNbXSA9ICJpbmNsdWRlTWVt
b3J5RGV0YWlscyI7CiAKIC8vIE11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGggV2ViSW5zcGVjdG9y
LlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZSBpbiBUaW1lbGluZU1vZGVsLmpzCiBuYW1lc3BhY2Ug
VGltZWxpbmVSZWNvcmRUeXBlIHsKK3N0YXRpYyBjb25zdCBjaGFyIFByb2dyYW1bXSA9ICJQcm9n
cmFtIjsKKwogc3RhdGljIGNvbnN0IGNoYXIgRXZlbnREaXNwYXRjaFtdID0gIkV2ZW50RGlzcGF0
Y2giOwogc3RhdGljIGNvbnN0IGNoYXIgQmVnaW5GcmFtZVtdID0gIkJlZ2luRnJhbWUiOwogc3Rh
dGljIGNvbnN0IGNoYXIgTGF5b3V0W10gPSAiTGF5b3V0IjsKQEAgLTM0MCw3ICszNDIsNyBAQCB2
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgYwogICAgICAgICBTdHJpbmcgZnJhbWVJZChtX3BhZ2VBZ2Vu
dC0+ZnJhbWVJZChmcmFtZSkpOwogICAgICAgICByZWNvcmRSYXctPnNldFN0cmluZygiZnJhbWVJ
ZCIsIGZyYW1lSWQpOwogICAgIH0KLSAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhyZWNvcmRSYXcu
Z2V0KCkpOworICAgIHNldEhlYXBTaXplU3RhdGlzdGljcyhyZWNvcmRSYXcuZ2V0KCkpOwogICAg
IC8vIEZJWE1FOiBydW50aW1lQ2FzdCBpcyBhIGhhY2suIFdlIGRvIGl0IGJlY2F1c2Ugd2UgY2Fu
J3QgYnVpbGQgVGltZWxpbmVFdmVudCBkaXJlY3RseSBub3cuCiAgICAgUmVmUHRyPFR5cGVCdWls
ZGVyOjpUaW1lbGluZTo6VGltZWxpbmVFdmVudD4gcmVjb3JkID0gVHlwZUJ1aWxkZXI6OlRpbWVs
aW5lOjpUaW1lbGluZUV2ZW50OjpydW50aW1lQ2FzdChyZWNvcmRSYXcucmVsZWFzZSgpKTsKICAg
ICBtX2Zyb250ZW5kLT5ldmVudFJlY29yZGVkKHJlY29yZC5yZWxlYXNlKCkpOwpAQCAtNDE1LDEy
ICs0MTcsMTIgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRGaXJlQW5pbWF0aW9u
RnJhbWUoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQcm9jZXNzVGFzaygp
CiB7Ci0gICAgLy8gVE9ETzogUmVjb3JkIHRhc2sgcHJvY2Vzc2luZyBzdGFydCB0aW1lLgorICAg
IHB1c2hDdXJyZW50UmVjb3JkKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCksIFRpbWVsaW5lUmVj
b3JkVHlwZTo6UHJvZ3JhbSwgZmFsc2UsIDApOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZFByb2Nlc3NUYXNrKCkKIHsKLSAgICAvLyBUT0RPOiBSZWNvcmQgdGFzayBwcm9j
ZXNzaW5nIGVuZCB0aW1lLgorICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJl
Y29yZFR5cGU6OlByb2dyYW0pOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFk
ZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCwgY29u
c3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQpCkBAIC00MzEsMTEgKzQzMywx
NSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFkZFJlY29yZFRvVGltZWxpbmUoUGFz
c1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlYwogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmlubmVyQWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
cHJwUmVjb3JkLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCkKIHsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcHJvZ3JhbSwgKFRpbWVsaW5lUmVjb3Jk
VHlwZTo6UHJvZ3JhbSkpOworCiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkKHBy
cFJlY29yZCk7CiAgICAgcmVjb3JkLT5zZXRTdHJpbmcoInR5cGUiLCB0eXBlKTsKICAgICBpZiAo
IWZyYW1lSWQuaXNFbXB0eSgpKQogICAgICAgICByZWNvcmQtPnNldFN0cmluZygiZnJhbWVJZCIs
IGZyYW1lSWQpOwotICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJlY29yZC5nZXQoKSk7CisgICAg
aWYgKHR5cGUgIT0gcHJvZ3JhbSkKKyAgICAgICAgc2V0SGVhcFNpemVTdGF0aXN0aWNzKHJlY29y
ZC5nZXQoKSk7CisKICAgICBpZiAobV9yZWNvcmRTdGFjay5pc0VtcHR5KCkpIHsKICAgICAgICAg
Ly8gRklYTUU6IHJ1bnRpbWVDYXN0IGlzIGEgaGFjay4gV2UgZG8gaXQgYmVjYXVzZSB3ZSBjYW4n
dCBidWlsZCBUaW1lbGluZUV2ZW50IGRpcmVjdGx5IG5vdy4KICAgICAgICAgUmVmUHRyPFR5cGVC
dWlsZGVyOjpUaW1lbGluZTo6VGltZWxpbmVFdmVudD4gcmVjb3JkQ2hlY2tlZCA9IFR5cGVCdWls
ZGVyOjpUaW1lbGluZTo6VGltZWxpbmVFdmVudDo6cnVudGltZUNhc3QocmVjb3JkLnJlbGVhc2Uo
KSk7CkBAIC00NDYsNyArNDUyLDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojppbm5l
ckFkZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3QKICAgICB9CiB9
CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c2V0SGVhcFNpemVTdGF0aXN0aWMoSW5z
cGVjdG9yT2JqZWN0KiByZWNvcmQpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhl
YXBTaXplU3RhdGlzdGljcyhJbnNwZWN0b3JPYmplY3QqIHJlY29yZCkKIHsKICAgICBzaXplX3Qg
dXNlZEhlYXBTaXplID0gMDsKICAgICBzaXplX3QgdG90YWxIZWFwU2l6ZSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCA5
NGM3ZmNhZWUzODZlY2QwZjIyZjI3ZWViMWQ3YTVmOTFmZjdmMzE4Li5lZmM2YTE2NTUwYWUzOTky
NDYxMGQzNzhhMzJlNmE4ZWI4MGEyMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTE2MCw4ICsxNjAsOCBAQCBwcml2YXRl
OgogICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3Bl
Y3RvclBhZ2VBZ2VudCosIEluc3BlY3RvclN0YXRlKiwgSW5zcGVjdG9yVHlwZSwgSW5zcGVjdG9y
Q2xpZW50Kik7CiAKICAgICB2b2lkIHB1c2hDdXJyZW50UmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3RhY2ssIEZy
YW1lKik7Ci0gICAgdm9pZCBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhJbnNwZWN0b3JPYmplY3QqIHJl
Y29yZCk7Ci0gICAgICAgIAorICAgIHZvaWQgc2V0SGVhcFNpemVTdGF0aXN0aWNzKEluc3BlY3Rv
ck9iamVjdCogcmVjb3JkKTsKKwogICAgIHZvaWQgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKGNv
bnN0IFN0cmluZyYgdHlwZSk7CiAgICAgdm9pZCBhcHBlbmRSZWNvcmQoUGFzc1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0
YWNrLCBGcmFtZSopOwogICAgIHZvaWQgcHVzaENhbmNlbGFibGVSZWNvcmQoUGFzc1JlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJpbmcmIHR5cGUsIEZyYW1lKik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01lbW9yeVN0YXRpc3RpY3MuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01lbW9yeVN0YXRpc3RpY3MuanMK
aW5kZXggYzkxNWNlNzUyNDYwZGQzMDkyM2ZiMzg1ZjllN2IzY2YwY2IxMDE0ZC4uYWE1MmUyMjJl
N2Q3YzgyYmI0MzhiNWFlOGI2NTBhODUzNTIxODUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTWVtb3J5U3RhdGlzdGljcy5qcwpAQCAtMjU3LDE1
ICsyNTcsMjAgQEAgV2ViSW5zcGVjdG9yLk1lbW9yeVN0YXRpc3RpY3MucHJvdG90eXBlID0gewog
CiAgICAgX29uUmVjb3JkQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFy
IGNvdW50ZXJzID0gZXZlbnQuZGF0YVsiY291bnRlcnMiXTsKLSAgICAgICAgaWYgKCFjb3VudGVy
cykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5fY291bnRlcnMucHVzaCh7Ci0g
ICAgICAgICAgICB0aW1lOiBldmVudC5kYXRhLmVuZFRpbWUgfHwgZXZlbnQuZGF0YS5zdGFydFRp
bWUsCi0gICAgICAgICAgICBkb2N1bWVudENvdW50OiBjb3VudGVyc1siZG9jdW1lbnRzIl0sCi0g
ICAgICAgICAgICBub2RlQ291bnQ6IGNvdW50ZXJzWyJub2RlcyJdLAotICAgICAgICAgICAgbGlz
dGVuZXJDb3VudDogY291bnRlcnNbImpzRXZlbnRMaXN0ZW5lcnMiXQotICAgICAgICB9KTsKKyAg
ICAgICAgdmFyIHN0YXRpc3RpY3MgPSB0aGlzLl9jb3VudGVyczsKKyAgICAgICAgZnVuY3Rpb24g
YWRkU3RhdGlzdGljcyhyZWNvcmQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBjb3VudGVy
cyA9IHJlY29yZFsiY291bnRlcnMiXTsKKyAgICAgICAgICAgIGlmICghY291bnRlcnMpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgc3RhdGlzdGljcy5wdXNoKHsKKyAgICAg
ICAgICAgICAgICB0aW1lOiByZWNvcmQuZW5kVGltZSB8fCByZWNvcmQuc3RhcnRUaW1lLAorICAg
ICAgICAgICAgICAgIGRvY3VtZW50Q291bnQ6IGNvdW50ZXJzWyJkb2N1bWVudHMiXSwKKyAgICAg
ICAgICAgICAgICBub2RlQ291bnQ6IGNvdW50ZXJzWyJub2RlcyJdLAorICAgICAgICAgICAgICAg
IGxpc3RlbmVyQ291bnQ6IGNvdW50ZXJzWyJqc0V2ZW50TGlzdGVuZXJzIl0KKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CisgICAgICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlv
bk1vZGVsLmZvckFsbFJlY29yZHMoW2V2ZW50LmRhdGFdLCBudWxsLCBhZGRTdGF0aXN0aWNzKTsK
ICAgICB9LAogCiAgICAgX2RyYXc6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lRnJhbWVDb250cm9sbGVyLmpz
CmluZGV4IDRlNDFlMjQzNTNiNGJjZjU0ZGUzZjA5Mjg4ODdmYmUxMGEyNTRjMTEuLjA2MzgwOTY2
ZTMxZTZjMjM2Mjk3MzcwZGM5Yjg1ZjNjN2I3MWU5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUZyYW1lQ29udHJvbGxl
ci5qcwpAQCAtNjEsNiArNjEsMTYgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9s
bGVyLnByb3RvdHlwZSA9IHsKIAogICAgIF9hZGRSZWNvcmQ6IGZ1bmN0aW9uKHJlY29yZCkKICAg
ICB7CisgICAgICAgIHZhciByZWNvcmRzOworICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdl
Ykluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuUHJvZ3JhbSkKKyAgICAgICAgICAg
IHJlY29yZHMgPSByZWNvcmRbImNoaWxkcmVuIl0gfHwgW107CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHJlY29yZHMgPSBbcmVjb3JkXTsKKyAgICAgICAgcmVjb3Jkcy5mb3JFYWNoKHRoaXMu
X2lubmVyQWRkUmVjb3JkLCB0aGlzKTsKKyAgICB9LAorCisgICAgX2lubmVyQWRkUmVjb3JkOiBm
dW5jdGlvbihyZWNvcmQpCisgICAgewogICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdlYklu
c3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuQmVnaW5GcmFtZSAmJiB0aGlzLl9sYXN0
RnJhbWUpCiAgICAgICAgICAgICB0aGlzLl9mbHVzaEZyYW1lKHJlY29yZCk7CiAgICAgICAgIGVs
c2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZU1vZGVsLmpzCmluZGV4IDAzZmYwZTczNDhmYTNjYzMxZGUwZWMzZjU3YzViNGVjMTlmZGVhNjAu
LjIwZWJkMGM4NzliOGNkZDBlMzJjM2IwN2U4ZWIzZTYwM2RmNWU4ZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMKQEAgLTQ0
LDYgKzQ0LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwgPSBmdW5jdGlvbigpCiAKIFdl
Ykluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUgPSB7CiAgICAgUm9vdDogIlJvb3Qi
LAorICAgIFByb2dyYW06ICJQcm9ncmFtIiwKICAgICBFdmVudERpc3BhdGNoOiAiRXZlbnREaXNw
YXRjaCIsCiAKICAgICBCZWdpbkZyYW1lOiAiQmVnaW5GcmFtZSIsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5q
cwppbmRleCA3NDUxNzFjMDQ3OWVmZDQxNjE2YmFjYzQ2NGZhZWRiYTA3ODJlNzA0Li44YThhYmVm
ODcxOGI4Yzg5NmZkMGQxMTU0ODQ4YjI4NzE4ZWM2MTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMK
QEAgLTg4Myw2ICs4ODMsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgcmVjb3JkU3RhcnQgPSBNYXRoLmZsb29yKChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5zdGFydFRpbWVJblNlY29uZHMocmVjb3JkKSAtIHRp
bWVPZmZzZXQpICogc2NhbGUpOwogICAgICAgICAgICAgdmFyIHJlY29yZEVuZCA9IE1hdGguY2Vp
bCgoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuZW5kVGltZUluU2Vjb25kcyhyZWNvcmQpIC0g
dGltZU9mZnNldCkgKiBzY2FsZSk7CiAgICAgICAgICAgICB2YXIgY2F0ZWdvcnkgPSBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yeUZvclJlY29yZChyZWNvcmQp
OworICAgICAgICAgICAgaWYgKGNhdGVnb3J5Lm92ZXJ2aWV3U3RyaXBHcm91cEluZGV4IDwgMCkK
KyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB2YXIgYmFyID0gbGFzdEJhckJ5
R3JvdXBbY2F0ZWdvcnkub3ZlcnZpZXdTdHJpcEdyb3VwSW5kZXhdOwogICAgICAgICAgICAgLy8g
VGhpcyBiYXIgbWF5IGJlIG1lcmdlZCB3aXRoIHByZXZpb3VzIC0tIHNvIGp1c3QgYWRqdXN0IHRo
ZSBwcmV2aW91cyBiYXIuCiAgICAgICAgICAgICBjb25zdCBiYXJzTWVyZ2VUaHJlc2hvbGQgPSAy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZVBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBh
bmVsLmpzCmluZGV4IDQyNTE4MWNhODFiMWYwNzM5OTdlOTQ3OWUyODk1Yzg1N2RiMjQwNjAuLjI4
MmQwMDRkMDVkOWZkNTIwNTVmMjgwNzg0MzdlNTc4NjgyODI2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTIyOSw2
ICsyMjksOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHZhciBjYXRlZ29yaWVzID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9k
ZWwuY2F0ZWdvcmllcygpOwogICAgICAgICBmb3IgKHZhciBjYXRlZ29yeU5hbWUgaW4gY2F0ZWdv
cmllcykgewogICAgICAgICAgICAgdmFyIGNhdGVnb3J5ID0gY2F0ZWdvcmllc1tjYXRlZ29yeU5h
bWVdOworICAgICAgICAgICAgaWYgKGNhdGVnb3J5Lm92ZXJ2aWV3U3RyaXBHcm91cEluZGV4IDwg
MCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIHRoaXMuc3RhdHVzQmFy
RmlsdGVycy5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVUaW1lbGluZUNhdGVnb3J5U3RhdHVzQmFy
Q2hlY2tib3goY2F0ZWdvcnksIHRoaXMuX29uQ2F0ZWdvcnlDaGVja2JveENsaWNrZWQuYmluZCh0
aGlzLCBjYXRlZ29yeSkpKTsKICAgICAgICAgfQogICAgIH0sCkBAIC00OTIsOCArNDk0LDggQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX2lubmVyQWRk
UmVjb3JkVG9UaW1lbGluZTogZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQpCiAgICAgewot
ICAgICAgICB2YXIgZm9ybWF0dGVkUmVjb3JkID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuYWRk
UmVjb3JkKHJlY29yZCwgcGFyZW50UmVjb3JkKTsKLSAgICAgICAgKyt0aGlzLl9hbGxSZWNvcmRz
Q291bnQ7CisgICAgICAgIHZhciByZWNvcmRzID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuYWRk
UmVjb3JkKHJlY29yZCwgcGFyZW50UmVjb3JkKTsKKyAgICAgICAgdGhpcy5fYWxsUmVjb3Jkc0Nv
dW50ICs9IHJlY29yZHMubGVuZ3RoOwogICAgICAgICB2YXIgcmVjb3JkVHlwZXMgPSBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlOwogICAgICAgICB2YXIgdGltZVN0YW1wUmVj
b3JkcyA9IHRoaXMuX3RpbWVTdGFtcFJlY29yZHM7CiAgICAgICAgIGZ1bmN0aW9uIGFkZFRpbWVz
dGFtcFJlY29yZHMocmVjb3JkKQpAQCAtNTAxLDkgKzUwMywxNCBAQCBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuaXNFdmVudERpdmlkZXIocmVjb3JkKSkKICAgICAgICAg
ICAgICAgICB0aW1lU3RhbXBSZWNvcmRzLnB1c2gocmVjb3JkKTsKICAgICAgICAgfQotICAgICAg
ICB2YXIgcmVjb3JkcyA9IFsgZm9ybWF0dGVkUmVjb3JkIF07CiAgICAgICAgIFdlYkluc3BlY3Rv
ci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmZvckFsbFJlY29yZHMocmVjb3JkcywgYWRkVGlt
ZXN0YW1wUmVjb3Jkcyk7Ci0gICAgICAgIHJldHVybiAhIXRoaXMuX3ByZXNlbnRhdGlvbk1vZGVs
LmZpbHRlclJlY29yZHMocmVjb3JkcykubGVuZ3RoIHx8IGZvcm1hdHRlZFJlY29yZC5wYXJlbnQg
IT09IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnJvb3RSZWNvcmQ7CisKKyAgICAgICAgdmFyIHJv
b3RSZWNvcmQgPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5yb290UmVjb3JkOworICAgICAgICBm
dW5jdGlvbiBpc0Fkb3B0ZWRSZWNvcmQocmVjb3JkKQorICAgICAgICB7CisgICAgICAgICAgICBy
ZXR1cm4gcmVjb3JkLnBhcmVudCAhPT0gcm9vdFJlY29yZDsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gISF0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5maWx0ZXJSZWNvcmRzKHJlY29yZHMpLmxl
bmd0aCB8fCByZWNvcmRzLnNvbWUoaXNBZG9wdGVkUmVjb3JkKTsKICAgICB9LAogCiAgICAgc2lk
ZWJhclJlc2l6ZWQ6IGZ1bmN0aW9uKGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpz
CmluZGV4IGViOTFhMDY0YjA2N2JmNjYxMTI2ZDA4ZTQ5MTBiMzJjNjc4MGQ0YjUuLmRhNTI1N2Mw
YjMzNTdiMTBiNzRlNzAwZjgxNDUwM2Q5ODRhODdkOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9u
TW9kZWwuanMKQEAgLTQ3LDYgKzQ3LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0
aW9uTW9kZWwuY2F0ZWdvcmllcyA9IGZ1bmN0aW9uKCkKICAgICBpZiAoV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuX2NhdGVnb3JpZXMpCiAgICAgICAgIHJldHVybiBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5fY2F0ZWdvcmllczsKICAgICBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5fY2F0ZWdvcmllcyA9IHsKKyAgICAg
ICAgcHJvZ3JhbTogbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5KCJwcm9ncmFtIiwg
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQcm9ncmFtIiksIC0xLCAidHJhbnNwYXJlbnQiLCAidHJh
bnNwYXJlbnQiLCAidHJhbnNwYXJlbnQiKSwKICAgICAgICAgbG9hZGluZzogbmV3IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZUNhdGVnb3J5KCJsb2FkaW5nIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJM
b2FkaW5nIiksIDAsICIjNUE4QkNDIiwgIiM4RUI2RTkiLCAiIzcwQTJFMyIpLAogICAgICAgICBz
Y3JpcHRpbmc6IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeSgic2NyaXB0aW5nIiwg
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTY3JpcHRpbmciKSwgMSwgIiNEOEFBMzQiLCAiI0YzRDA3
QSIsICIjRjFDNDUzIiksCiAgICAgICAgIHJlbmRlcmluZzogbmV3IFdlYkluc3BlY3Rvci5UaW1l
bGluZUNhdGVnb3J5KCJyZW5kZXJpbmciLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlbmRlcmlu
ZyIpLCAyLCAiIzgyNjZDQyIsICIjQUY5QUVCIiwgIiM5QTdFRTYiKSwKQEAgLTY4LDYgKzY5LDcg
QEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucmVjb3JkU3R5bGUgPSBm
dW5jdGlvbihyZWNvcmQpCiAKICAgICB2YXIgcmVjb3JkU3R5bGVzID0ge307CiAgICAgcmVjb3Jk
U3R5bGVzW3JlY29yZFR5cGVzLlJvb3RdID0geyB0aXRsZTogIiNyb290IiwgY2F0ZWdvcnk6IGNh
dGVnb3JpZXNbImxvYWRpbmciXSB9OworICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5Qcm9n
cmFtXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJvZ3JhbSIpLCBjYXRlZ29y
eTogY2F0ZWdvcmllc1sicHJvZ3JhbSJdIH07CiAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVz
LkV2ZW50RGlzcGF0Y2hdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFdmVudCIp
LCBjYXRlZ29yeTogY2F0ZWdvcmllc1sic2NyaXB0aW5nIl0gfTsKICAgICByZWNvcmRTdHlsZXNb
cmVjb3JkVHlwZXMuQmVnaW5GcmFtZV0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkZyYW1lIFN0YXJ0IiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJyZW5kZXJpbmciXSB9OwogICAg
IHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5MYXlvdXRdID0geyB0aXRsZTogV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJMYXlvdXQiKSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbInJlbmRlcmluZyJdIH07
CkBAIC0xMTUsNyArMTE3LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9k
ZWwuaXNFdmVudERpdmlkZXIgPSBmdW5jdGlvbihyZWNvcmQpCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1XZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5mb3JBbGxSZWNvcmRz
ID0gZnVuY3Rpb24ocmVjb3Jkc0FycmF5LCBjYWxsYmFjaykKK1dlYkluc3BlY3Rvci5UaW1lbGlu
ZVByZXNlbnRhdGlvbk1vZGVsLmZvckFsbFJlY29yZHMgPSBmdW5jdGlvbihyZWNvcmRzQXJyYXks
IHByZU9yZGVyQ2FsbGJhY2ssIHBvc3RPcmRlckNhbGxiYWNrKQogewogICAgIGlmICghcmVjb3Jk
c0FycmF5KQogICAgICAgICByZXR1cm47CkBAIC0xMjUsMTMgKzEyNywxOCBAQCBXZWJJbnNwZWN0
b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5mb3JBbGxSZWNvcmRzID0gZnVuY3Rpb24ocmVj
b3Jkc0FycmF5LCBjYQogICAgICAgICB2YXIgcmVjb3JkcyA9IGVudHJ5LmFycmF5OwogICAgICAg
ICBpZiAoZW50cnkuaW5kZXggPCByZWNvcmRzLmxlbmd0aCkgewogICAgICAgICAgICAgIHZhciBy
ZWNvcmQgPSByZWNvcmRzW2VudHJ5LmluZGV4XTsKLSAgICAgICAgICAgICBpZiAoY2FsbGJhY2so
cmVjb3JkKSkKKyAgICAgICAgICAgICBpZiAocHJlT3JkZXJDYWxsYmFjayAmJiBwcmVPcmRlckNh
bGxiYWNrKHJlY29yZCkpCiAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICBp
ZiAocmVjb3JkLmNoaWxkcmVuKQotICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKHthcnJheTog
cmVjb3JkLmNoaWxkcmVuLCBpbmRleDogMH0pOworICAgICAgICAgICAgIGlmIChyZWNvcmQuY2hp
bGRyZW4pIHsKKyAgICAgICAgICAgICAgICAgc3RhY2sucHVzaCh7YXJyYXk6IHJlY29yZC5jaGls
ZHJlbiwgaW5kZXg6IDAsIHJlY29yZDogcmVjb3JkfSk7CisgICAgICAgICAgICAgfSBlbHNlIGlm
IChwb3N0T3JkZXJDYWxsYmFjayAmJiBwb3N0T3JkZXJDYWxsYmFjayhyZWNvcmQpKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICArK2VudHJ5LmluZGV4OwotICAgICAgICB9
IGVsc2UKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChlbnRyeS5yZWNvcmQgJiYg
cG9zdE9yZGVyQ2FsbGJhY2sgJiYgcG9zdE9yZGVyQ2FsbGJhY2soZW50cnkucmVjb3JkKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBzdGFjay5wb3AoKTsKKyAgICAgICAg
fQogICAgIH0KIH0KIApAQCAtMjAyLDEyICsyMDksMjkgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogCiAgICAgYWRkUmVjb3JkOiBmdW5jdGlv
bihyZWNvcmQsIHBhcmVudFJlY29yZCkKICAgICB7Ci0gICAgICAgIHZhciBjb25uZWN0ZWRUb09s
ZFJlY29yZCA9IGZhbHNlOwogICAgICAgICB2YXIgcmVjb3JkVHlwZXMgPSBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlOwogCiAgICAgICAgIGlmICh0aGlzLl9taW5pbXVtUmVj
b3JkVGltZSA9PT0gLTEgfHwgcmVjb3JkLnN0YXJ0VGltZSA8IHRoaXMuX21pbmltdW1SZWNvcmRU
aW1lKQogICAgICAgICAgICAgdGhpcy5fbWluaW11bVJlY29yZFRpbWUgPSBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVNb2RlbC5zdGFydFRpbWVJblNlY29uZHMocmVjb3JkKTsKIAorICAgICAgICB2YXIg
cmVjb3JkczsKKyAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5Qcm9ncmFt
KQorICAgICAgICAgICAgcmVjb3JkcyA9IHJlY29yZC5jaGlsZHJlbjsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgcmVjb3JkcyA9IFtyZWNvcmRdOworCisgICAgICAgIHZhciBmb3JtYXR0ZWRS
ZWNvcmRzID0gW107CisgICAgICAgIHZhciByZWNvcmRzQ291bnQgPSByZWNvcmRzLmxlbmd0aDsK
KyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzQ291bnQ7ICsraSkKKyAgICAgICAg
ICAgIGZvcm1hdHRlZFJlY29yZHMucHVzaCh0aGlzLl9pbm5lckFkZFJlY29yZChyZWNvcmRzW2ld
LCBwYXJlbnRSZWNvcmQpKTsKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRlZFJlY29yZHM7CisgICAg
fSwKKworICAgIF9pbm5lckFkZFJlY29yZDogZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQp
CisgICAgeworICAgICAgICB2YXIgY29ubmVjdGVkVG9PbGRSZWNvcmQgPSBmYWxzZTsKKyAgICAg
ICAgdmFyIHJlY29yZFR5cGVzID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlw
ZTsKKwogICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLk1hcmtET01Db250
ZW50IHx8IHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5NYXJrTG9hZCkKICAgICAgICAgICAg
IHBhcmVudFJlY29yZCA9IG51bGw7IC8vIE5vIGJhciBlbnRyeSBmb3IgbG9hZCBldmVudHMuCiAg
ICAgICAgIGVsc2UgewpAQCAtMjQ3LDcgKzI3MSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBy
ZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB2YXIgY2hpbGRyZW5Db3Vu
dCA9IGNoaWxkcmVuID8gY2hpbGRyZW4ubGVuZ3RoIDogMDsKICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBjaGlsZHJlbkNvdW50OyArK2kpCi0gICAgICAgICAgICB0aGlzLmFkZFJlY29yZChj
aGlsZHJlbltpXSwgZm9ybWF0dGVkUmVjb3JkKTsKKyAgICAgICAgICAgIHRoaXMuX2lubmVyQWRk
UmVjb3JkKGNoaWxkcmVuW2ldLCBmb3JtYXR0ZWRSZWNvcmQpOwogCiAgICAgICAgIGZvcm1hdHRl
ZFJlY29yZC5jYWxjdWxhdGVBZ2dyZWdhdGVkU3RhdHMoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJl
c2VudGF0aW9uTW9kZWwuY2F0ZWdvcmllcygpKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdmNmQ2NDQ0N2FiYjhiMzg0
ZjEwY2QwYzVkMGY4YzA2ZDk4Yzk2MDguLjFlZDdhNWY3OTk3NTE1ZmQ1Mzc4M2YxNmQ2YzliYzQ3
ZTgwOWNlZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNi0yMSAgRXVnZW5lIEtseXVj
aG5pa292ICA8ZXVzdGFzLmJpZ0BnbWFpbC5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
Rm9yd2FyZCBtZXNzYWdlIGxvb3AgaW5zdHJ1bWVudGF0aW9uIGRhdGEgdG8gZnJvbnRlbmQuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTU4NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRyYW5zbWl0IGNv
bGxlY3RlZCBtZXNzYWdlIGxvb3AgdGFza3MgdG8gaW5zcGVjdG9yIGZyb250ZW5kLgorICAgICAg
ICBOb3cgIlByb2dyYW0iIHNob3VsZCBiZSBhIHRvcC1sZXZlbCBldmVudCB3aGVyZSBhcHByb3By
aWF0ZS4KKyAgICAgICAgRnJvbnRlbmQgd2FzIGNoYW5nZWQgc28gdGhhdCB1c2VyIHdpbGwgbm90
IHNlZSBhbnkgY2hhbmdlcy4KKworICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQ6CisKIDIwMTItMDYtMjEgIEtlbm5ldGggUnVz
c2VsbCAgPGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTGF5b3V0IFRlc3Qg
ZmFzdC9zcGVlY2gvc2NyaXB0ZWQvc3BlZWNoZ3JhbW1hci1iYXNpY3MuaHRtbCBpcyBmbGFreQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWRmcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZGZzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xM2E2YzFmZWU5YjEzYTFhM2ExMTkyNmRlNzFhODI0OGU4YzdmOGEzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWRmcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzNCBAQAorVGVzdHMgVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5mb3JB
bGxSZWNvcmRzIGZ1bmN0aW9uLgorCitERlMgcHJlb3JkZXI6CithCithYQorYWFhCithYWIKK2Fi
CithYmEKK2FiYgorYgorYmEKK2JhYQorYmFiCitiYgorYmJhCitiYmIKKworREZTIHBvc3RvcmRl
cjoKK2FhYQorYWFiCithYQorYWJhCithYmIKK2FiCithCitiYWEKK2JhYgorYmEKK2JiYQorYmJi
CitiYgorYgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZGZz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZGZzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDVlNDMxNjIyNTRkY2U5YjE1ZGFhYzg0NzlmNDEzMTlhMjQxYWNiYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1kZnMuaHRtbApAQCAtMCwwICsx
LDUwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KKwordmFyIHRlc3QgPSBmdW5jdGlvbigpCit7CisgICAgZnVuY3Rpb24gZHVtcGVy
KHJlY29yZCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlY29yZC5u
YW1lKTsKKyAgICB9CisKKyAgICB2YXIgcmVjb3JkcyA9IFsKKyAgICAgICAgeyJuYW1lIiA6ICJh
IiwgImNoaWxkcmVuIiA6IFsKKyAgICAgICAgICAgIHsibmFtZSIgOiAiYWEiLCAiY2hpbGRyZW4i
OiBbCisgICAgICAgICAgICAgICAgeyJuYW1lIiA6ICJhYWEifSwKKyAgICAgICAgICAgICAgICB7
Im5hbWUiIDogImFhYiJ9LAorICAgICAgICAgICAgXX0sCisgICAgICAgICAgICB7Im5hbWUiIDog
ImFiIiwgImNoaWxkcmVuIjpbCisgICAgICAgICAgICAgICAgeyJuYW1lIiA6ICJhYmEifSwKKyAg
ICAgICAgICAgICAgICB7Im5hbWUiIDogImFiYiJ9LAorICAgICAgICAgICAgXX0KKyAgICAgICAg
XX0sCisgICAgICAgIHsibmFtZSIgOiAiYiIsICJjaGlsZHJlbiIgOiBbCisgICAgICAgICAgICB7
Im5hbWUiIDogImJhIiwgImNoaWxkcmVuIiA6IFsKKyAgICAgICAgICAgICAgICB7Im5hbWUiIDog
ImJhYSJ9LAorICAgICAgICAgICAgICAgIHsibmFtZSIgOiAiYmFiIn0sCisgICAgICAgICAgICBd
fSwKKyAgICAgICAgICAgIHsibmFtZSIgOiAiYmIiLCAiY2hpbGRyZW4iOlsKKyAgICAgICAgICAg
ICAgICB7Im5hbWUiIDogImJiYSJ9LAorICAgICAgICAgICAgICAgIHsibmFtZSIgOiAiYmJiIn0s
CisgICAgICAgICAgICBdfQorICAgICAgICBdfSwKKyAgICBdOworCisgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIkRGUyBwcmVvcmRlcjoiKTsKKyAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
cmVzZW50YXRpb25Nb2RlbC5mb3JBbGxSZWNvcmRzKHJlY29yZHMsIGR1bXBlcik7CisgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOworCisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkRGUyBwb3N0b3JkZXI6Iik7CisgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9u
TW9kZWwuZm9yQWxsUmVjb3JkcyhyZWNvcmRzLCBudWxsLCBkdW1wZXIpOworICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5mb3JB
bGxSZWNvcmRzIGZ1bmN0aW9uLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZW51bS1z
dGFiaWxpdHktZXhwZWN0ZWQudHh0CmluZGV4IGQ5MzFmMTRlMmY0M2YyNjBlZDIwMWM0NmU5YWU0
MzBkMzZjMWI4OTEuLmFkNzc4NjNiNjljYzA4MDQ5ZTg3OGYyNWM0ODk3ZjlmMmFmZGQwYjYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0
YWJpbGl0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
L3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dApAQCAtNCw2ICs0LDcgQEAgQXBw
bGljYXRpb25zIG91dHNpZGUgb2YgV2ViS2l0IGRlcGVuZCBvbiB0aGUgc3RhYmlsaXR5IG9mIHRo
ZSBtYXBwaW5nIG9mIHRoZXNlIHQKIAogewogICAgIFJvb3QgOiAiUm9vdCIKKyAgICBQcm9ncmFt
IDogIlByb2dyYW0iCiAgICAgRXZlbnREaXNwYXRjaCA6ICJFdmVudERpc3BhdGNoIgogICAgIEJl
Z2luRnJhbWUgOiAiQmVnaW5GcmFtZSIKICAgICBMYXlvdXQgOiAiTGF5b3V0Igo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149039</attachid>
            <date>2012-06-22 09:29:15 -0700</date>
            <delta_ts>2012-06-29 03:32:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89584-20120622092915.patch</filename>
            <type>text/plain</type>
            <size>21072</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTI2ODY3MmM5ZDBiMmM1
NjM3MTViY2E2YmQyOTE4NmFmOTc4ODlkZi4uOGFlZmNhNjZmNDBjMWExMjcyMTY3MjZhZDJhNzk4
MDA1MjEwOTM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA2LTIyICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYmlnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBGb3J3YXJkIG1lc3NhZ2UgbG9vcCBpbnN0cnVtZW50YXRpb24gZGF0YSB0byBmcm9u
dGVuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJh
bnNtaXQgY29sbGVjdGVkIG1lc3NhZ2UgbG9vcCB0YXNrcyB0byBpbnNwZWN0b3IgZnJvbnRlbmQu
CisgICAgICAgIE5vdyAiUHJvZ3JhbSIgc2hvdWxkIGJlIGEgdG9wLWxldmVsIGV2ZW50IHdoZXJl
IGFwcHJvcHJpYXRlLgorICAgICAgICBGcm9udGVuZCB3YXMgY2hhbmdlZCBzbyB0aGF0IHVzZXIg
d2lsbCBub3Qgc2VlIGFueSBjaGFuZ2VzLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoVGltZWxpbmVSZWNvcmRUeXBlKToKKyAgICAg
ICAgQWRkZWQgbmV3IGV2ZW50IHR5cGUgLSAiUHJvZ3JhbSIKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQcm9jZXNzVGFzayk6CisgICAgICAgIEJlZ2luICJQ
cm9ncmFtIiBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZFByb2Nlc3NUYXNrKToKKyAgICAgICAgRmluaXNoICJQcm9ncmFtIiBldmVudC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGlj
KToKKyAgICAgICAgRG8gbm90IGFkZCBjb3VudGVycyB0byAiUHJvZ3JhbSIgZXZlbnRzLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojppbm5lclNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAgUmVuYW1lZCBmcm9tICJzZXRI
ZWFwU2l6ZVN0YXRpc3RpYyIKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk1lbW9yeVN0YXRpc3RpY3MucHJvdG90eXBlLl9vblJlY29yZEFkZGVkKToKKyAgICAgICAg
VW53cmFwcyAiUHJvZ3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9yeVN0
YXRpc3RpY3MucHJvdG90eXBlLl9pbm5lclJlY29yZEFkZGVkKToKKyAgICAgICAgUmVuYW1lZCBm
cm9tICJfb25SZWNvcmRBZGRlZCIKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lRnJhbWVDb250cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJh
bWVDb250cm9sbGVyLnByb3RvdHlwZS5fYWRkUmVjb3JkKToKKyAgICAgICAgVW53cmFwcyAiUHJv
Z3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9s
bGVyLnByb3RvdHlwZS5faW5uZXJBZGRSZWNvcmQpOgorICAgICAgICBSZW5hbWVkIGZyb20gIl9h
ZGRSZWNvcmQiCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpz
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5wcm90b3R5cGUu
dXBkYXRlLmFwcGVuZFJlY29yZCk6CisgICAgICAgIEZpbHRlciBvdXQgIlByb2dyYW0iIGNhdGVn
b3J5LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMucHJvdG90
eXBlLnVwZGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVs
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVh
dGVTdGF0dXNiYXJCdXR0b25zKToKKyAgICAgICAgRmlsdGVyIG91dCAiUHJvZ3JhbSIgY2F0ZWdv
cnkuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2lubmVy
QWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAgIFVud3JhcHMgIlByb2dyYW0iIGV2ZW50cy4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRl
Z29yaWVzKToKKyAgICAgICAgQWRkZWQgIlByb2dyYW0iIGNhdGVnb3J5LgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucmVjb3JkU3R5bGUpOgorICAgICAg
ICBEaXR0by4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZS5hZGRSZWNvcmQpOgorICAgICAgICBVbndyYXBzICJQcm9ncmFtIiBldmVudHMu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5
cGUuX2FkZFJlY29yZCk6CisgICAgICAgIFJlbmFtZWQgZnJvbSAiYWRkUmVjb3JkIgorCiAyMDEy
LTA2LTIyICBBbXkgT3VzdGVyaG91dCAgPGFvdXN0ZXJoQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZW5hbWVkIERldmljZU9yaWVudGF0aW9uIHRvIERldmljZU9yaWVudGF0aW9uRGF0YQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
CmluZGV4IDQ3MjgyZTk1NzM3MTZmMzMyOWI0MGZkNWEzNjcxYjE2YzgxODczMDQuLjI2ZWJmYzQ5
ZGIxODIwZDQxYzI1NjQ4Y2QyNGM0MDdmNWQxZTFkOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTYwLDYgKzYwLDgg
QEAgc3RhdGljIGNvbnN0IGNoYXIgaW5jbHVkZU1lbW9yeURldGFpbHNbXSA9ICJpbmNsdWRlTWVt
b3J5RGV0YWlscyI7CiAKIC8vIE11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGggV2ViSW5zcGVjdG9y
LlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZSBpbiBUaW1lbGluZU1vZGVsLmpzCiBuYW1lc3BhY2Ug
VGltZWxpbmVSZWNvcmRUeXBlIHsKK3N0YXRpYyBjb25zdCBjaGFyIFByb2dyYW1bXSA9ICJQcm9n
cmFtIjsKKwogc3RhdGljIGNvbnN0IGNoYXIgRXZlbnREaXNwYXRjaFtdID0gIkV2ZW50RGlzcGF0
Y2giOwogc3RhdGljIGNvbnN0IGNoYXIgQmVnaW5GcmFtZVtdID0gIkJlZ2luRnJhbWUiOwogc3Rh
dGljIGNvbnN0IGNoYXIgTGF5b3V0W10gPSAiTGF5b3V0IjsKQEAgLTM0MCw3ICszNDIsNyBAQCB2
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgYwogICAgICAgICBTdHJpbmcgZnJhbWVJZChtX3BhZ2VBZ2Vu
dC0+ZnJhbWVJZChmcmFtZSkpOwogICAgICAgICByZWNvcmRSYXctPnNldFN0cmluZygiZnJhbWVJ
ZCIsIGZyYW1lSWQpOwogICAgIH0KLSAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhyZWNvcmRSYXcu
Z2V0KCkpOworICAgIHNldEhlYXBTaXplU3RhdGlzdGljcyhyZWNvcmRSYXcuZ2V0KCkpOwogICAg
IC8vIEZJWE1FOiBydW50aW1lQ2FzdCBpcyBhIGhhY2suIFdlIGRvIGl0IGJlY2F1c2Ugd2UgY2Fu
J3QgYnVpbGQgVGltZWxpbmVFdmVudCBkaXJlY3RseSBub3cuCiAgICAgUmVmUHRyPFR5cGVCdWls
ZGVyOjpUaW1lbGluZTo6VGltZWxpbmVFdmVudD4gcmVjb3JkID0gVHlwZUJ1aWxkZXI6OlRpbWVs
aW5lOjpUaW1lbGluZUV2ZW50OjpydW50aW1lQ2FzdChyZWNvcmRSYXcucmVsZWFzZSgpKTsKICAg
ICBtX2Zyb250ZW5kLT5ldmVudFJlY29yZGVkKHJlY29yZC5yZWxlYXNlKCkpOwpAQCAtNDE1LDEy
ICs0MTcsMTIgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRGaXJlQW5pbWF0aW9u
RnJhbWUoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQcm9jZXNzVGFzaygp
CiB7Ci0gICAgLy8gVE9ETzogUmVjb3JkIHRhc2sgcHJvY2Vzc2luZyBzdGFydCB0aW1lLgorICAg
IHB1c2hDdXJyZW50UmVjb3JkKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCksIFRpbWVsaW5lUmVj
b3JkVHlwZTo6UHJvZ3JhbSwgZmFsc2UsIDApOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZFByb2Nlc3NUYXNrKCkKIHsKLSAgICAvLyBUT0RPOiBSZWNvcmQgdGFzayBwcm9j
ZXNzaW5nIGVuZCB0aW1lLgorICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJl
Y29yZFR5cGU6OlByb2dyYW0pOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFk
ZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCwgY29u
c3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQpCkBAIC00MzEsMTEgKzQzMywx
NSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFkZFJlY29yZFRvVGltZWxpbmUoUGFz
c1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlYwogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmlubmVyQWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
cHJwUmVjb3JkLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCkKIHsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcHJvZ3JhbSwgKFRpbWVsaW5lUmVjb3Jk
VHlwZTo6UHJvZ3JhbSkpOworCiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkKHBy
cFJlY29yZCk7CiAgICAgcmVjb3JkLT5zZXRTdHJpbmcoInR5cGUiLCB0eXBlKTsKICAgICBpZiAo
IWZyYW1lSWQuaXNFbXB0eSgpKQogICAgICAgICByZWNvcmQtPnNldFN0cmluZygiZnJhbWVJZCIs
IGZyYW1lSWQpOwotICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJlY29yZC5nZXQoKSk7CisgICAg
aWYgKHR5cGUgIT0gcHJvZ3JhbSkKKyAgICAgICAgc2V0SGVhcFNpemVTdGF0aXN0aWNzKHJlY29y
ZC5nZXQoKSk7CisKICAgICBpZiAobV9yZWNvcmRTdGFjay5pc0VtcHR5KCkpIHsKICAgICAgICAg
Ly8gRklYTUU6IHJ1bnRpbWVDYXN0IGlzIGEgaGFjay4gV2UgZG8gaXQgYmVjYXVzZSB3ZSBjYW4n
dCBidWlsZCBUaW1lbGluZUV2ZW50IGRpcmVjdGx5IG5vdy4KICAgICAgICAgUmVmUHRyPFR5cGVC
dWlsZGVyOjpUaW1lbGluZTo6VGltZWxpbmVFdmVudD4gcmVjb3JkQ2hlY2tlZCA9IFR5cGVCdWls
ZGVyOjpUaW1lbGluZTo6VGltZWxpbmVFdmVudDo6cnVudGltZUNhc3QocmVjb3JkLnJlbGVhc2Uo
KSk7CkBAIC00NDYsNyArNDUyLDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojppbm5l
ckFkZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3QKICAgICB9CiB9
CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c2V0SGVhcFNpemVTdGF0aXN0aWMoSW5z
cGVjdG9yT2JqZWN0KiByZWNvcmQpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhl
YXBTaXplU3RhdGlzdGljcyhJbnNwZWN0b3JPYmplY3QqIHJlY29yZCkKIHsKICAgICBzaXplX3Qg
dXNlZEhlYXBTaXplID0gMDsKICAgICBzaXplX3QgdG90YWxIZWFwU2l6ZSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCA5
NGM3ZmNhZWUzODZlY2QwZjIyZjI3ZWViMWQ3YTVmOTFmZjdmMzE4Li5lZmM2YTE2NTUwYWUzOTky
NDYxMGQzNzhhMzJlNmE4ZWI4MGEyMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTE2MCw4ICsxNjAsOCBAQCBwcml2YXRl
OgogICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3Bl
Y3RvclBhZ2VBZ2VudCosIEluc3BlY3RvclN0YXRlKiwgSW5zcGVjdG9yVHlwZSwgSW5zcGVjdG9y
Q2xpZW50Kik7CiAKICAgICB2b2lkIHB1c2hDdXJyZW50UmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3RhY2ssIEZy
YW1lKik7Ci0gICAgdm9pZCBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhJbnNwZWN0b3JPYmplY3QqIHJl
Y29yZCk7Ci0gICAgICAgIAorICAgIHZvaWQgc2V0SGVhcFNpemVTdGF0aXN0aWNzKEluc3BlY3Rv
ck9iamVjdCogcmVjb3JkKTsKKwogICAgIHZvaWQgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKGNv
bnN0IFN0cmluZyYgdHlwZSk7CiAgICAgdm9pZCBhcHBlbmRSZWNvcmQoUGFzc1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0
YWNrLCBGcmFtZSopOwogICAgIHZvaWQgcHVzaENhbmNlbGFibGVSZWNvcmQoUGFzc1JlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJpbmcmIHR5cGUsIEZyYW1lKik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01lbW9yeVN0YXRpc3RpY3MuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01lbW9yeVN0YXRpc3RpY3MuanMK
aW5kZXggYzkxNWNlNzUyNDYwZGQzMDkyM2ZiMzg1ZjllN2IzY2YwY2IxMDE0ZC4uYWE1MmUyMjJl
N2Q3YzgyYmI0MzhiNWFlOGI2NTBhODUzNTIxODUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTWVtb3J5U3RhdGlzdGljcy5qcwpAQCAtMjU3LDE1
ICsyNTcsMjAgQEAgV2ViSW5zcGVjdG9yLk1lbW9yeVN0YXRpc3RpY3MucHJvdG90eXBlID0gewog
CiAgICAgX29uUmVjb3JkQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFy
IGNvdW50ZXJzID0gZXZlbnQuZGF0YVsiY291bnRlcnMiXTsKLSAgICAgICAgaWYgKCFjb3VudGVy
cykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5fY291bnRlcnMucHVzaCh7Ci0g
ICAgICAgICAgICB0aW1lOiBldmVudC5kYXRhLmVuZFRpbWUgfHwgZXZlbnQuZGF0YS5zdGFydFRp
bWUsCi0gICAgICAgICAgICBkb2N1bWVudENvdW50OiBjb3VudGVyc1siZG9jdW1lbnRzIl0sCi0g
ICAgICAgICAgICBub2RlQ291bnQ6IGNvdW50ZXJzWyJub2RlcyJdLAotICAgICAgICAgICAgbGlz
dGVuZXJDb3VudDogY291bnRlcnNbImpzRXZlbnRMaXN0ZW5lcnMiXQotICAgICAgICB9KTsKKyAg
ICAgICAgdmFyIHN0YXRpc3RpY3MgPSB0aGlzLl9jb3VudGVyczsKKyAgICAgICAgZnVuY3Rpb24g
YWRkU3RhdGlzdGljcyhyZWNvcmQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBjb3VudGVy
cyA9IHJlY29yZFsiY291bnRlcnMiXTsKKyAgICAgICAgICAgIGlmICghY291bnRlcnMpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgc3RhdGlzdGljcy5wdXNoKHsKKyAgICAg
ICAgICAgICAgICB0aW1lOiByZWNvcmQuZW5kVGltZSB8fCByZWNvcmQuc3RhcnRUaW1lLAorICAg
ICAgICAgICAgICAgIGRvY3VtZW50Q291bnQ6IGNvdW50ZXJzWyJkb2N1bWVudHMiXSwKKyAgICAg
ICAgICAgICAgICBub2RlQ291bnQ6IGNvdW50ZXJzWyJub2RlcyJdLAorICAgICAgICAgICAgICAg
IGxpc3RlbmVyQ291bnQ6IGNvdW50ZXJzWyJqc0V2ZW50TGlzdGVuZXJzIl0KKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CisgICAgICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlv
bk1vZGVsLmZvckFsbFJlY29yZHMoW2V2ZW50LmRhdGFdLCBudWxsLCBhZGRTdGF0aXN0aWNzKTsK
ICAgICB9LAogCiAgICAgX2RyYXc6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lRnJhbWVDb250cm9sbGVyLmpz
CmluZGV4IDRlNDFlMjQzNTNiNGJjZjU0ZGUzZjA5Mjg4ODdmYmUxMGEyNTRjMTEuLjA2MzgwOTY2
ZTMxZTZjMjM2Mjk3MzcwZGM5Yjg1ZjNjN2I3MWU5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUZyYW1lQ29udHJvbGxl
ci5qcwpAQCAtNjEsNiArNjEsMTYgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9s
bGVyLnByb3RvdHlwZSA9IHsKIAogICAgIF9hZGRSZWNvcmQ6IGZ1bmN0aW9uKHJlY29yZCkKICAg
ICB7CisgICAgICAgIHZhciByZWNvcmRzOworICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdl
Ykluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuUHJvZ3JhbSkKKyAgICAgICAgICAg
IHJlY29yZHMgPSByZWNvcmRbImNoaWxkcmVuIl0gfHwgW107CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHJlY29yZHMgPSBbcmVjb3JkXTsKKyAgICAgICAgcmVjb3Jkcy5mb3JFYWNoKHRoaXMu
X2lubmVyQWRkUmVjb3JkLCB0aGlzKTsKKyAgICB9LAorCisgICAgX2lubmVyQWRkUmVjb3JkOiBm
dW5jdGlvbihyZWNvcmQpCisgICAgewogICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdlYklu
c3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuQmVnaW5GcmFtZSAmJiB0aGlzLl9sYXN0
RnJhbWUpCiAgICAgICAgICAgICB0aGlzLl9mbHVzaEZyYW1lKHJlY29yZCk7CiAgICAgICAgIGVs
c2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZU1vZGVsLmpzCmluZGV4IDAzZmYwZTczNDhmYTNjYzMxZGUwZWMzZjU3YzViNGVjMTlmZGVhNjAu
LjIwZWJkMGM4NzliOGNkZDBlMzJjM2IwN2U4ZWIzZTYwM2RmNWU4ZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMKQEAgLTQ0
LDYgKzQ0LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwgPSBmdW5jdGlvbigpCiAKIFdl
Ykluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUgPSB7CiAgICAgUm9vdDogIlJvb3Qi
LAorICAgIFByb2dyYW06ICJQcm9ncmFtIiwKICAgICBFdmVudERpc3BhdGNoOiAiRXZlbnREaXNw
YXRjaCIsCiAKICAgICBCZWdpbkZyYW1lOiAiQmVnaW5GcmFtZSIsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5q
cwppbmRleCA3NDUxNzFjMDQ3OWVmZDQxNjE2YmFjYzQ2NGZhZWRiYTA3ODJlNzA0Li44YThhYmVm
ODcxOGI4Yzg5NmZkMGQxMTU0ODQ4YjI4NzE4ZWM2MTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMK
QEAgLTg4Myw2ICs4ODMsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgcmVjb3JkU3RhcnQgPSBNYXRoLmZsb29yKChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5zdGFydFRpbWVJblNlY29uZHMocmVjb3JkKSAtIHRp
bWVPZmZzZXQpICogc2NhbGUpOwogICAgICAgICAgICAgdmFyIHJlY29yZEVuZCA9IE1hdGguY2Vp
bCgoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuZW5kVGltZUluU2Vjb25kcyhyZWNvcmQpIC0g
dGltZU9mZnNldCkgKiBzY2FsZSk7CiAgICAgICAgICAgICB2YXIgY2F0ZWdvcnkgPSBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yeUZvclJlY29yZChyZWNvcmQp
OworICAgICAgICAgICAgaWYgKGNhdGVnb3J5Lm92ZXJ2aWV3U3RyaXBHcm91cEluZGV4IDwgMCkK
KyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB2YXIgYmFyID0gbGFzdEJhckJ5
R3JvdXBbY2F0ZWdvcnkub3ZlcnZpZXdTdHJpcEdyb3VwSW5kZXhdOwogICAgICAgICAgICAgLy8g
VGhpcyBiYXIgbWF5IGJlIG1lcmdlZCB3aXRoIHByZXZpb3VzIC0tIHNvIGp1c3QgYWRqdXN0IHRo
ZSBwcmV2aW91cyBiYXIuCiAgICAgICAgICAgICBjb25zdCBiYXJzTWVyZ2VUaHJlc2hvbGQgPSAy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZVBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBh
bmVsLmpzCmluZGV4IGJlNDM3NjhjOTczNjRhMDg3ZjJmMmQ3NjEzMjYwYjVlMDkzMGU2NjQuLjFh
MWVlMWUzMTdiYmI5ZmE5OTBmNTVmMzNhODc3NDgwMDUzNTQzYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTQ5Miw4
ICs0OTIsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAg
ICBfaW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lOiBmdW5jdGlvbihyZWNvcmQsIHBhcmVudFJlY29y
ZCkKICAgICB7Ci0gICAgICAgIHZhciBmb3JtYXR0ZWRSZWNvcmQgPSB0aGlzLl9wcmVzZW50YXRp
b25Nb2RlbC5hZGRSZWNvcmQocmVjb3JkLCBwYXJlbnRSZWNvcmQpOwotICAgICAgICArK3RoaXMu
X2FsbFJlY29yZHNDb3VudDsKKyAgICAgICAgdmFyIHJlY29yZHMgPSB0aGlzLl9wcmVzZW50YXRp
b25Nb2RlbC5hZGRSZWNvcmQocmVjb3JkLCBwYXJlbnRSZWNvcmQpOworICAgICAgICB0aGlzLl9h
bGxSZWNvcmRzQ291bnQgKz0gcmVjb3Jkcy5sZW5ndGg7CiAgICAgICAgIHZhciByZWNvcmRUeXBl
cyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGU7CiAgICAgICAgIHZhciB0
aW1lU3RhbXBSZWNvcmRzID0gdGhpcy5fdGltZVN0YW1wUmVjb3JkczsKICAgICAgICAgdmFyIGhh
c1Zpc2libGVSZWNvcmRzID0gZmFsc2U7CkBAIC01MDQsMTAgKzUwNCwxNCBAQCBXZWJJbnNwZWN0
b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdGltZVN0YW1w
UmVjb3Jkcy5wdXNoKHJlY29yZCk7CiAgICAgICAgICAgICBoYXNWaXNpYmxlUmVjb3JkcyB8PSBw
cmVzZW50YXRpb25Nb2RlbC5pc1Zpc2libGUocmVjb3JkKTsKICAgICAgICAgfQotICAgICAgICB2
YXIgcmVjb3JkcyA9IFsgZm9ybWF0dGVkUmVjb3JkIF07CiAgICAgICAgIFdlYkluc3BlY3Rvci5U
aW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmZvckFsbFJlY29yZHMocmVjb3JkcywgcHJvY2Vzc1Jl
Y29yZCk7CisKKyAgICAgICAgZnVuY3Rpb24gaXNBZG9wdGVkUmVjb3JkKHJlY29yZCkKKyAgICAg
ICAgeworICAgICAgICAgICAgcmV0dXJuIHJlY29yZC5wYXJlbnQgIT09IHByZXNlbnRhdGlvbk1v
ZGVsLnJvb3RSZWNvcmQ7CisgICAgICAgIH0KICAgICAgICAgLy8gVGVsbCBjYWxsZXIgdXBkYXRl
IGlzIG5lY2Vzc2FyeSBlaXRoZXIgaWYgd2UgYWRkZWQgYSB2aXNpYmxlIHJlY29yZCBvciBpZiB3
ZSByZS1wYXJlbnRlZCBhIHJlY29yZC4KLSAgICAgICAgcmV0dXJuIGhhc1Zpc2libGVSZWNvcmRz
IHx8IGZvcm1hdHRlZFJlY29yZC5wYXJlbnQgIT09IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnJv
b3RSZWNvcmQ7CisgICAgICAgIHJldHVybiBoYXNWaXNpYmxlUmVjb3JkcyB8fCByZWNvcmRzLnNv
bWUoaXNBZG9wdGVkUmVjb3JkKTsKICAgICB9LAogCiAgICAgc2lkZWJhclJlc2l6ZWQ6IGZ1bmN0
aW9uKGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4IDdlZGFmNjViNGY5
YmE0MGE1Zjg2YWM2MTQ5NDllMzEyODdjZjlkYjkuLjdkNzIwYzY2OWM5NTdjZTg4M2U5Y2I4YmU0
MzE5ZGExMjYxYTllNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMKQEAgLTQ3LDYg
KzQ3LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcmll
cyA9IGZ1bmN0aW9uKCkKICAgICBpZiAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9u
TW9kZWwuX2NhdGVnb3JpZXMpCiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
cmVzZW50YXRpb25Nb2RlbC5fY2F0ZWdvcmllczsKICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
cmVzZW50YXRpb25Nb2RlbC5fY2F0ZWdvcmllcyA9IHsKKyAgICAgICAgcHJvZ3JhbTogbmV3IFdl
Ykluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5KCJwcm9ncmFtIiwgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJQcm9ncmFtIiksIC0xLCAidHJhbnNwYXJlbnQiLCAidHJhbnNwYXJlbnQiLCAidHJhbnNw
YXJlbnQiKSwKICAgICAgICAgbG9hZGluZzogbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVn
b3J5KCJsb2FkaW5nIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMb2FkaW5nIiksIDAsICIjNUE4
QkNDIiwgIiM4RUI2RTkiLCAiIzcwQTJFMyIpLAogICAgICAgICBzY3JpcHRpbmc6IG5ldyBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeSgic2NyaXB0aW5nIiwgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJTY3JpcHRpbmciKSwgMSwgIiNEOEFBMzQiLCAiI0YzRDA3QSIsICIjRjFDNDUzIiksCiAg
ICAgICAgIHJlbmRlcmluZzogbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5KCJyZW5k
ZXJpbmciLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlbmRlcmluZyIpLCAyLCAiIzgyNjZDQyIs
ICIjQUY5QUVCIiwgIiM5QTdFRTYiKSwKQEAgLTY4LDYgKzY5LDcgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucmVjb3JkU3R5bGUgPSBmdW5jdGlvbihyZWNvcmQpCiAK
ICAgICB2YXIgcmVjb3JkU3R5bGVzID0ge307CiAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVz
LlJvb3RdID0geyB0aXRsZTogIiNyb290IiwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbImxvYWRpbmci
XSB9OworICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5Qcm9ncmFtXSA9IHsgdGl0bGU6IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiUHJvZ3JhbSIpLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sicHJv
Z3JhbSJdIH07CiAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkV2ZW50RGlzcGF0Y2hdID0g
eyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFdmVudCIpLCBjYXRlZ29yeTogY2F0ZWdv
cmllc1sic2NyaXB0aW5nIl0gfTsKICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuQmVnaW5G
cmFtZV0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZyYW1lIFN0YXJ0IiksIGNh
dGVnb3J5OiBjYXRlZ29yaWVzWyJyZW5kZXJpbmciXSB9OwogICAgIHJlY29yZFN0eWxlc1tyZWNv
cmRUeXBlcy5MYXlvdXRdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMYXlvdXQi
KSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbInJlbmRlcmluZyJdIH07CkBAIC0xMTUsNyArMTE3LDcg
QEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuaXNFdmVudERpdmlkZXIg
PSBmdW5jdGlvbihyZWNvcmQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1XZWJJbnNwZWN0b3Iu
VGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5mb3JBbGxSZWNvcmRzID0gZnVuY3Rpb24ocmVjb3Jk
c0FycmF5LCBjYWxsYmFjaykKK1dlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LmZvckFsbFJlY29yZHMgPSBmdW5jdGlvbihyZWNvcmRzQXJyYXksIHByZU9yZGVyQ2FsbGJhY2ss
IHBvc3RPcmRlckNhbGxiYWNrKQogewogICAgIGlmICghcmVjb3Jkc0FycmF5KQogICAgICAgICBy
ZXR1cm47CkBAIC0xMjUsMTMgKzEyNywxOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50
YXRpb25Nb2RlbC5mb3JBbGxSZWNvcmRzID0gZnVuY3Rpb24ocmVjb3Jkc0FycmF5LCBjYQogICAg
ICAgICB2YXIgcmVjb3JkcyA9IGVudHJ5LmFycmF5OwogICAgICAgICBpZiAoZW50cnkuaW5kZXgg
PCByZWNvcmRzLmxlbmd0aCkgewogICAgICAgICAgICAgIHZhciByZWNvcmQgPSByZWNvcmRzW2Vu
dHJ5LmluZGV4XTsKLSAgICAgICAgICAgICBpZiAoY2FsbGJhY2socmVjb3JkKSkKKyAgICAgICAg
ICAgICBpZiAocHJlT3JkZXJDYWxsYmFjayAmJiBwcmVPcmRlckNhbGxiYWNrKHJlY29yZCkpCiAg
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICBpZiAocmVjb3JkLmNoaWxkcmVu
KQotICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKHthcnJheTogcmVjb3JkLmNoaWxkcmVuLCBp
bmRleDogMH0pOworICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKHthcnJheTogcmVjb3JkLmNo
aWxkcmVuLCBpbmRleDogMCwgcmVjb3JkOiByZWNvcmR9KTsKKyAgICAgICAgICAgICBlbHNlIGlm
IChwb3N0T3JkZXJDYWxsYmFjayAmJiBwb3N0T3JkZXJDYWxsYmFjayhyZWNvcmQpKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICArK2VudHJ5LmluZGV4OwotICAgICAgICB9
IGVsc2UKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChlbnRyeS5yZWNvcmQgJiYg
cG9zdE9yZGVyQ2FsbGJhY2sgJiYgcG9zdE9yZGVyQ2FsbGJhY2soZW50cnkucmVjb3JkKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBzdGFjay5wb3AoKTsKKyAgICAgICAg
fQogICAgIH0KIH0KIApAQCAtMjAyLDEyICsyMDksMjkgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogCiAgICAgYWRkUmVjb3JkOiBmdW5jdGlv
bihyZWNvcmQsIHBhcmVudFJlY29yZCkKICAgICB7Ci0gICAgICAgIHZhciBjb25uZWN0ZWRUb09s
ZFJlY29yZCA9IGZhbHNlOwogICAgICAgICB2YXIgcmVjb3JkVHlwZXMgPSBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlOwogCiAgICAgICAgIGlmICh0aGlzLl9taW5pbXVtUmVj
b3JkVGltZSA9PT0gLTEgfHwgcmVjb3JkLnN0YXJ0VGltZSA8IHRoaXMuX21pbmltdW1SZWNvcmRU
aW1lKQogICAgICAgICAgICAgdGhpcy5fbWluaW11bVJlY29yZFRpbWUgPSBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVNb2RlbC5zdGFydFRpbWVJblNlY29uZHMocmVjb3JkKTsKIAorICAgICAgICB2YXIg
cmVjb3JkczsKKyAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5Qcm9ncmFt
KQorICAgICAgICAgICAgcmVjb3JkcyA9IHJlY29yZC5jaGlsZHJlbjsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgcmVjb3JkcyA9IFtyZWNvcmRdOworCisgICAgICAgIHZhciBmb3JtYXR0ZWRS
ZWNvcmRzID0gW107CisgICAgICAgIHZhciByZWNvcmRzQ291bnQgPSByZWNvcmRzLmxlbmd0aDsK
KyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzQ291bnQ7ICsraSkKKyAgICAgICAg
ICAgIGZvcm1hdHRlZFJlY29yZHMucHVzaCh0aGlzLl9pbm5lckFkZFJlY29yZChyZWNvcmRzW2ld
LCBwYXJlbnRSZWNvcmQpKTsKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRlZFJlY29yZHM7CisgICAg
fSwKKworICAgIF9pbm5lckFkZFJlY29yZDogZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQp
CisgICAgeworICAgICAgICB2YXIgY29ubmVjdGVkVG9PbGRSZWNvcmQgPSBmYWxzZTsKKyAgICAg
ICAgdmFyIHJlY29yZFR5cGVzID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlw
ZTsKKwogICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLk1hcmtET01Db250
ZW50IHx8IHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5NYXJrTG9hZCkKICAgICAgICAgICAg
IHBhcmVudFJlY29yZCA9IG51bGw7IC8vIE5vIGJhciBlbnRyeSBmb3IgbG9hZCBldmVudHMuCiAg
ICAgICAgIGVsc2UgewpAQCAtMjQ3LDcgKzI3MSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBy
ZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB2YXIgY2hpbGRyZW5Db3Vu
dCA9IGNoaWxkcmVuID8gY2hpbGRyZW4ubGVuZ3RoIDogMDsKICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBjaGlsZHJlbkNvdW50OyArK2kpCi0gICAgICAgICAgICB0aGlzLmFkZFJlY29yZChj
aGlsZHJlbltpXSwgZm9ybWF0dGVkUmVjb3JkKTsKKyAgICAgICAgICAgIHRoaXMuX2lubmVyQWRk
UmVjb3JkKGNoaWxkcmVuW2ldLCBmb3JtYXR0ZWRSZWNvcmQpOwogCiAgICAgICAgIGZvcm1hdHRl
ZFJlY29yZC5jYWxjdWxhdGVBZ2dyZWdhdGVkU3RhdHMoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJl
c2VudGF0aW9uTW9kZWwuY2F0ZWdvcmllcygpKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVhZmYwMTI5ZGE3NWZiZTJh
ZTE5ZTJhMzgzM2UyNDk0NmE1YmQ0YjQuLmRjZWQyY2Y4YzUyOTE3ZjZmNDI1NTU5ZmJhNjllMmQw
NGRmNTJlZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNi0yMiAgRXVnZW5lIEtseXVj
aG5pa292ICA8ZXVzdGFzLmJpZ0BnbWFpbC5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
Rm9yd2FyZCBtZXNzYWdlIGxvb3AgaW5zdHJ1bWVudGF0aW9uIGRhdGEgdG8gZnJvbnRlbmQuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTU4NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRyYW5zbWl0IGNv
bGxlY3RlZCBtZXNzYWdlIGxvb3AgdGFza3MgdG8gaW5zcGVjdG9yIGZyb250ZW5kLgorICAgICAg
ICBOb3cgIlByb2dyYW0iIHNob3VsZCBiZSBhIHRvcC1sZXZlbCBldmVudCB3aGVyZSBhcHByb3By
aWF0ZS4KKyAgICAgICAgRnJvbnRlbmQgd2FzIGNoYW5nZWQgc28gdGhhdCB1c2VyIHdpbGwgbm90
IHNlZSBhbnkgY2hhbmdlcy4KKworICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQ6CisKIDIwMTItMDYtMjEgIFZzZXZvbG9kIFZs
YXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU3Vw
cG9ydCBzZXBhcmF0ZSBzY3JpcHQgY29tcGlsYXRpb24gYW5kIGV4ZWN1dGlvbi4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1kZnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWRmcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTNhNmMxZmVlOWIxM2ExYTNhMTE5MjZkZTcxYTgyNDhlOGM3ZjhhMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1kZnMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzQgQEAKK1Rlc3RzIFRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3Jk
cyBmdW5jdGlvbi4KKworREZTIHByZW9yZGVyOgorYQorYWEKK2FhYQorYWFiCithYgorYWJhCith
YmIKK2IKK2JhCitiYWEKK2JhYgorYmIKK2JiYQorYmJiCisKK0RGUyBwb3N0b3JkZXI6CithYWEK
K2FhYgorYWEKK2FiYQorYWJiCithYgorYQorYmFhCitiYWIKK2JhCitiYmEKK2JiYgorYmIKK2IK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWRmcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWRmcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1ZTQz
MTYyMjU0ZGNlOWIxNWRhYWM4NDc5ZjQxMzE5YTI0MWFjYmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZGZzLmh0bWwKQEAgLTAsMCArMSw1MCBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CisKK3ZhciB0ZXN0ID0gZnVuY3Rpb24oKQoreworICAgIGZ1bmN0aW9uIGR1bXBlcihyZWNvcmQp
CisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChyZWNvcmQubmFtZSk7Cisg
ICAgfQorCisgICAgdmFyIHJlY29yZHMgPSBbCisgICAgICAgIHsibmFtZSIgOiAiYSIsICJjaGls
ZHJlbiIgOiBbCisgICAgICAgICAgICB7Im5hbWUiIDogImFhIiwgImNoaWxkcmVuIjogWworICAg
ICAgICAgICAgICAgIHsibmFtZSIgOiAiYWFhIn0sCisgICAgICAgICAgICAgICAgeyJuYW1lIiA6
ICJhYWIifSwKKyAgICAgICAgICAgIF19LAorICAgICAgICAgICAgeyJuYW1lIiA6ICJhYiIsICJj
aGlsZHJlbiI6WworICAgICAgICAgICAgICAgIHsibmFtZSIgOiAiYWJhIn0sCisgICAgICAgICAg
ICAgICAgeyJuYW1lIiA6ICJhYmIifSwKKyAgICAgICAgICAgIF19CisgICAgICAgIF19LAorICAg
ICAgICB7Im5hbWUiIDogImIiLCAiY2hpbGRyZW4iIDogWworICAgICAgICAgICAgeyJuYW1lIiA6
ICJiYSIsICJjaGlsZHJlbiIgOiBbCisgICAgICAgICAgICAgICAgeyJuYW1lIiA6ICJiYWEifSwK
KyAgICAgICAgICAgICAgICB7Im5hbWUiIDogImJhYiJ9LAorICAgICAgICAgICAgXX0sCisgICAg
ICAgICAgICB7Im5hbWUiIDogImJiIiwgImNoaWxkcmVuIjpbCisgICAgICAgICAgICAgICAgeyJu
YW1lIiA6ICJiYmEifSwKKyAgICAgICAgICAgICAgICB7Im5hbWUiIDogImJiYiJ9LAorICAgICAg
ICAgICAgXX0KKyAgICAgICAgXX0sCisgICAgXTsKKworICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJERlMgcHJlb3JkZXI6Iik7CisgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0
aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyhyZWNvcmRzLCBkdW1wZXIpOworICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCIiKTsKKworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJERlMgcG9z
dG9yZGVyOiIpOworICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmZv
ckFsbFJlY29yZHMocmVjb3JkcywgbnVsbCwgZHVtcGVyKTsKKyAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKzxwPlRlc3RzIFRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3Jk
cyBmdW5jdGlvbi48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5
LWV4cGVjdGVkLnR4dAppbmRleCBkOTMxZjE0ZTJmNDNmMjYwZWQyMDFjNDZlOWFlNDMwZDM2YzFi
ODkxLi5hZDc3ODYzYjY5Y2MwODA0OWU4NzhmMjVjNDg5N2Y5ZjJhZmRkMGI2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZW51bS1zdGFiaWxpdHkt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQKQEAgLTQsNiArNCw3IEBAIEFwcGxpY2F0aW9u
cyBvdXRzaWRlIG9mIFdlYktpdCBkZXBlbmQgb24gdGhlIHN0YWJpbGl0eSBvZiB0aGUgbWFwcGlu
ZyBvZiB0aGVzZSB0CiAKIHsKICAgICBSb290IDogIlJvb3QiCisgICAgUHJvZ3JhbSA6ICJQcm9n
cmFtIgogICAgIEV2ZW50RGlzcGF0Y2ggOiAiRXZlbnREaXNwYXRjaCIKICAgICBCZWdpbkZyYW1l
IDogIkJlZ2luRnJhbWUiCiAgICAgTGF5b3V0IDogIkxheW91dCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150128</attachid>
            <date>2012-06-29 03:33:05 -0700</date>
            <delta_ts>2012-06-29 09:56:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89584-20120629143304.patch</filename>
            <type>text/plain</type>
            <size>19398</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U4YTQ0NGIwZDdlYjgx
ZDg4YWEyNTJiOGU2YzIyMmYyZGExZWQzMy4uNDRjMzQ4OTViZWI3YTEzNzhjOGQ1N2ExNTFhNzcx
NjRlYTI4ZjRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA2LTI5ICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBGb3J3YXJkIG1lc3NhZ2UgbG9vcCBpbnN0cnVtZW50YXRpb24gZGF0YSB0byBmcm9u
dGVuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJh
bnNtaXQgY29sbGVjdGVkIG1lc3NhZ2UgbG9vcCB0YXNrcyB0byBpbnNwZWN0b3IgZnJvbnRlbmQu
CisgICAgICAgIE5vdyAiUHJvZ3JhbSIgc2hvdWxkIGJlIGEgdG9wLWxldmVsIGV2ZW50IHdoZXJl
IGFwcHJvcHJpYXRlLgorICAgICAgICBGcm9udGVuZCB3YXMgY2hhbmdlZCBzbyB0aGF0IHVzZXIg
d2lsbCBub3Qgc2VlIGFueSBjaGFuZ2VzLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoVGltZWxpbmVSZWNvcmRUeXBlKToKKyAgICAg
ICAgQWRkZWQgbmV3IGV2ZW50IHR5cGUgLSAiUHJvZ3JhbSIKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQcm9jZXNzVGFzayk6CisgICAgICAgIEJlZ2luICJQ
cm9ncmFtIiBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZFByb2Nlc3NUYXNrKToKKyAgICAgICAgRmluaXNoICJQcm9ncmFtIiBldmVudC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGlj
KToKKyAgICAgICAgRG8gbm90IGFkZCBjb3VudGVycyB0byAiUHJvZ3JhbSIgZXZlbnRzLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojppbm5lclNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAgUmVuYW1lZCBmcm9tICJzZXRI
ZWFwU2l6ZVN0YXRpc3RpYyIKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk1lbW9yeVN0YXRpc3RpY3MucHJvdG90eXBlLl9vblJlY29yZEFkZGVkKToKKyAgICAgICAg
VW53cmFwcyAiUHJvZ3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9yeVN0
YXRpc3RpY3MucHJvdG90eXBlLl9pbm5lclJlY29yZEFkZGVkKToKKyAgICAgICAgUmVuYW1lZCBm
cm9tICJfb25SZWNvcmRBZGRlZCIKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lRnJhbWVDb250cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJh
bWVDb250cm9sbGVyLnByb3RvdHlwZS5fYWRkUmVjb3JkKToKKyAgICAgICAgVW53cmFwcyAiUHJv
Z3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9s
bGVyLnByb3RvdHlwZS5faW5uZXJBZGRSZWNvcmQpOgorICAgICAgICBSZW5hbWVkIGZyb20gIl9h
ZGRSZWNvcmQiCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpz
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5wcm90b3R5cGUu
dXBkYXRlLmFwcGVuZFJlY29yZCk6CisgICAgICAgIEZpbHRlciBvdXQgIlByb2dyYW0iIGNhdGVn
b3J5LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMucHJvdG90
eXBlLnVwZGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVs
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVh
dGVTdGF0dXNiYXJCdXR0b25zKToKKyAgICAgICAgRmlsdGVyIG91dCAiUHJvZ3JhbSIgY2F0ZWdv
cnkuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2lubmVy
QWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAgIFVud3JhcHMgIlByb2dyYW0iIGV2ZW50cy4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRl
Z29yaWVzKToKKyAgICAgICAgQWRkZWQgIlByb2dyYW0iIGNhdGVnb3J5LgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucmVjb3JkU3R5bGUpOgorICAgICAg
ICBEaXR0by4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZS5hZGRSZWNvcmQpOgorICAgICAgICBVbndyYXBzICJQcm9ncmFtIiBldmVudHMu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5
cGUuX2FkZFJlY29yZCk6CisgICAgICAgIFJlbmFtZWQgZnJvbSAiYWRkUmVjb3JkIgorCiAyMDEy
LTA2LTI4ICBHcmVnZyBUYXZhcmVzICA8Z21hbkBnb29nbGUuY29tPgogCiAgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBERVBUSF9TVEVOQ0lMIHRvIFdFQkdMX2RlcHRoX3RleHR1cmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRl
eCA0NzI4MmU5NTczNzE2ZjMzMjliNDBmZDVhMzY3MWIxNmM4MTg3MzA0Li4yNmViZmM0OWRiMTgy
MGQ0MWMyNTY0OGNkMjRjNDA3ZjVkMWUxZDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC02MCw2ICs2MCw4IEBAIHN0
YXRpYyBjb25zdCBjaGFyIGluY2x1ZGVNZW1vcnlEZXRhaWxzW10gPSAiaW5jbHVkZU1lbW9yeURl
dGFpbHMiOwogCiAvLyBNdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIFdlYkluc3BlY3Rvci5UaW1l
bGluZU1vZGVsLlJlY29yZFR5cGUgaW4gVGltZWxpbmVNb2RlbC5qcwogbmFtZXNwYWNlIFRpbWVs
aW5lUmVjb3JkVHlwZSB7CitzdGF0aWMgY29uc3QgY2hhciBQcm9ncmFtW10gPSAiUHJvZ3JhbSI7
CisKIHN0YXRpYyBjb25zdCBjaGFyIEV2ZW50RGlzcGF0Y2hbXSA9ICJFdmVudERpc3BhdGNoIjsK
IHN0YXRpYyBjb25zdCBjaGFyIEJlZ2luRnJhbWVbXSA9ICJCZWdpbkZyYW1lIjsKIHN0YXRpYyBj
b25zdCBjaGFyIExheW91dFtdID0gIkxheW91dCI7CkBAIC0zNDAsNyArMzQyLDcgQEAgdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsU2VuZFJlc291cmNlUmVxdWVzdCh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGMKICAgICAgICAgU3RyaW5nIGZyYW1lSWQobV9wYWdlQWdlbnQtPmZy
YW1lSWQoZnJhbWUpKTsKICAgICAgICAgcmVjb3JkUmF3LT5zZXRTdHJpbmcoImZyYW1lSWQiLCBm
cmFtZUlkKTsKICAgICB9Ci0gICAgc2V0SGVhcFNpemVTdGF0aXN0aWMocmVjb3JkUmF3LmdldCgp
KTsKKyAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpY3MocmVjb3JkUmF3LmdldCgpKTsKICAgICAvLyBG
SVhNRTogcnVudGltZUNhc3QgaXMgYSBoYWNrLiBXZSBkbyBpdCBiZWNhdXNlIHdlIGNhbid0IGJ1
aWxkIFRpbWVsaW5lRXZlbnQgZGlyZWN0bHkgbm93LgogICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6
VGltZWxpbmU6OlRpbWVsaW5lRXZlbnQ+IHJlY29yZCA9IFR5cGVCdWlsZGVyOjpUaW1lbGluZTo6
VGltZWxpbmVFdmVudDo6cnVudGltZUNhc3QocmVjb3JkUmF3LnJlbGVhc2UoKSk7CiAgICAgbV9m
cm9udGVuZC0+ZXZlbnRSZWNvcmRlZChyZWNvcmQucmVsZWFzZSgpKTsKQEAgLTQxNSwxMiArNDE3
LDEyIEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmlyZUFuaW1hdGlvbkZyYW1l
KCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsUHJvY2Vzc1Rhc2soKQogewot
ICAgIC8vIFRPRE86IFJlY29yZCB0YXNrIHByb2Nlc3Npbmcgc3RhcnQgdGltZS4KKyAgICBwdXNo
Q3VycmVudFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5
cGU6OlByb2dyYW0sIGZhbHNlLCAwKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRQcm9jZXNzVGFzaygpCiB7Ci0gICAgLy8gVE9ETzogUmVjb3JkIHRhc2sgcHJvY2Vzc2lu
ZyBlbmQgdGltZS4KKyAgICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRU
eXBlOjpQcm9ncmFtKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNv
cmRUb1RpbWVsaW5lKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQsIGNvbnN0IFN0
cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBmcmFtZUlkKQpAQCAtNDMxLDExICs0MzMsMTUgQEAg
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiByZWMKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpp
bm5lckFkZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHBycFJl
Y29yZCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQpCiB7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHByb2dyYW0sIChUaW1lbGluZVJlY29yZFR5cGU6
OlByb2dyYW0pKTsKKwogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZChwcnBSZWNv
cmQpOwogICAgIHJlY29yZC0+c2V0U3RyaW5nKCJ0eXBlIiwgdHlwZSk7CiAgICAgaWYgKCFmcmFt
ZUlkLmlzRW1wdHkoKSkKICAgICAgICAgcmVjb3JkLT5zZXRTdHJpbmcoImZyYW1lSWQiLCBmcmFt
ZUlkKTsKLSAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhyZWNvcmQuZ2V0KCkpOworICAgIGlmICh0
eXBlICE9IHByb2dyYW0pCisgICAgICAgIHNldEhlYXBTaXplU3RhdGlzdGljcyhyZWNvcmQuZ2V0
KCkpOworCiAgICAgaWYgKG1fcmVjb3JkU3RhY2suaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIEZJ
WE1FOiBydW50aW1lQ2FzdCBpcyBhIGhhY2suIFdlIGRvIGl0IGJlY2F1c2Ugd2UgY2FuJ3QgYnVp
bGQgVGltZWxpbmVFdmVudCBkaXJlY3RseSBub3cuCiAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRl
cjo6VGltZWxpbmU6OlRpbWVsaW5lRXZlbnQ+IHJlY29yZENoZWNrZWQgPSBUeXBlQnVpbGRlcjo6
VGltZWxpbmU6OlRpbWVsaW5lRXZlbnQ6OnJ1bnRpbWVDYXN0KHJlY29yZC5yZWxlYXNlKCkpOwpA
QCAtNDQ2LDcgKzQ1Miw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6aW5uZXJBZGRS
ZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0CiAgICAgfQogfQogCi12
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKEluc3BlY3Rv
ck9iamVjdCogcmVjb3JkKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzZXRIZWFwU2l6
ZVN0YXRpc3RpY3MoSW5zcGVjdG9yT2JqZWN0KiByZWNvcmQpCiB7CiAgICAgc2l6ZV90IHVzZWRI
ZWFwU2l6ZSA9IDA7CiAgICAgc2l6ZV90IHRvdGFsSGVhcFNpemUgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggOTRjN2Zj
YWVlMzg2ZWNkMGYyMmYyN2VlYjFkN2E1ZjkxZmY3ZjMxOC4uZWZjNmExNjU1MGFlMzk5MjQ2MTBk
Mzc4YTMyZTZhOGViODBhMjM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC0xNjAsOCArMTYwLDggQEAgcHJpdmF0ZToKICAg
ICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQ
YWdlQWdlbnQqLCBJbnNwZWN0b3JTdGF0ZSosIEluc3BlY3RvclR5cGUsIEluc3BlY3RvckNsaWVu
dCopOwogCiAgICAgdm9pZCBwdXNoQ3VycmVudFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4sIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFtZSop
OwotICAgIHZvaWQgc2V0SGVhcFNpemVTdGF0aXN0aWMoSW5zcGVjdG9yT2JqZWN0KiByZWNvcmQp
OwotICAgICAgICAKKyAgICB2b2lkIHNldEhlYXBTaXplU3RhdGlzdGljcyhJbnNwZWN0b3JPYmpl
Y3QqIHJlY29yZCk7CisKICAgICB2b2lkIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChjb25zdCBT
dHJpbmcmIHR5cGUpOwogICAgIHZvaWQgYXBwZW5kUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wgY2FwdHVyZUNhbGxTdGFjaywg
RnJhbWUqKTsKICAgICB2b2lkIHB1c2hDYW5jZWxhYmxlUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlLCBGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzCmluZGV4
IGM5MTVjZTc1MjQ2MGRkMzA5MjNmYjM4NWY5ZTdiM2NmMGNiMTAxNGQuLmFhNTJlMjIyZTdkN2M4
MmJiNDM4YjVhZThiNjUwYTg1MzUyMTg1MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvTWVtb3J5U3RhdGlzdGljcy5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01lbW9yeVN0YXRpc3RpY3MuanMKQEAgLTI1NywxNSArMjU3
LDIwIEBAIFdlYkluc3BlY3Rvci5NZW1vcnlTdGF0aXN0aWNzLnByb3RvdHlwZSA9IHsKIAogICAg
IF9vblJlY29yZEFkZGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBjb3Vu
dGVycyA9IGV2ZW50LmRhdGFbImNvdW50ZXJzIl07Ci0gICAgICAgIGlmICghY291bnRlcnMpCi0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHRoaXMuX2NvdW50ZXJzLnB1c2goewotICAgICAg
ICAgICAgdGltZTogZXZlbnQuZGF0YS5lbmRUaW1lIHx8IGV2ZW50LmRhdGEuc3RhcnRUaW1lLAot
ICAgICAgICAgICAgZG9jdW1lbnRDb3VudDogY291bnRlcnNbImRvY3VtZW50cyJdLAotICAgICAg
ICAgICAgbm9kZUNvdW50OiBjb3VudGVyc1sibm9kZXMiXSwKLSAgICAgICAgICAgIGxpc3RlbmVy
Q291bnQ6IGNvdW50ZXJzWyJqc0V2ZW50TGlzdGVuZXJzIl0KLSAgICAgICAgfSk7CisgICAgICAg
IHZhciBzdGF0aXN0aWNzID0gdGhpcy5fY291bnRlcnM7CisgICAgICAgIGZ1bmN0aW9uIGFkZFN0
YXRpc3RpY3MocmVjb3JkKQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgY291bnRlcnMgPSBy
ZWNvcmRbImNvdW50ZXJzIl07CisgICAgICAgICAgICBpZiAoIWNvdW50ZXJzKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHN0YXRpc3RpY3MucHVzaCh7CisgICAgICAgICAg
ICAgICAgdGltZTogcmVjb3JkLmVuZFRpbWUgfHwgcmVjb3JkLnN0YXJ0VGltZSwKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudENvdW50OiBjb3VudGVyc1siZG9jdW1lbnRzIl0sCisgICAgICAgICAg
ICAgICAgbm9kZUNvdW50OiBjb3VudGVyc1sibm9kZXMiXSwKKyAgICAgICAgICAgICAgICBsaXN0
ZW5lckNvdW50OiBjb3VudGVyc1sianNFdmVudExpc3RlbmVycyJdCisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfQorICAgICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bC5mb3JBbGxSZWNvcmRzKFtldmVudC5kYXRhXSwgbnVsbCwgYWRkU3RhdGlzdGljcyk7CiAgICAg
fSwKIAogICAgIF9kcmF3OiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lRnJhbWVDb250cm9sbGVyLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUZyYW1lQ29udHJvbGxlci5qcwppbmRl
eCA0ZTQxZTI0MzUzYjRiY2Y1NGRlM2YwOTI4ODg3ZmJlMTBhMjU0YzExLi4wNjM4MDk2NmUzMWU2
YzIzNjI5NzM3MGRjOWI4NWYzYzdiNzFlOWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lRnJhbWVDb250cm9sbGVyLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMK
QEAgLTYxLDYgKzYxLDE2IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZUZyYW1lQ29udHJvbGxlci5w
cm90b3R5cGUgPSB7CiAKICAgICBfYWRkUmVjb3JkOiBmdW5jdGlvbihyZWNvcmQpCiAgICAgewor
ICAgICAgICB2YXIgcmVjb3JkczsKKyAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLlByb2dyYW0pCisgICAgICAgICAgICByZWNv
cmRzID0gcmVjb3JkWyJjaGlsZHJlbiJdIHx8IFtdOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICByZWNvcmRzID0gW3JlY29yZF07CisgICAgICAgIHJlY29yZHMuZm9yRWFjaCh0aGlzLl9pbm5l
ckFkZFJlY29yZCwgdGhpcyk7CisgICAgfSwKKworICAgIF9pbm5lckFkZFJlY29yZDogZnVuY3Rp
b24ocmVjb3JkKQorICAgIHsKICAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSBXZWJJbnNwZWN0
b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLkJlZ2luRnJhbWUgJiYgdGhpcy5fbGFzdEZyYW1l
KQogICAgICAgICAgICAgdGhpcy5fZmx1c2hGcmFtZShyZWNvcmQpOwogICAgICAgICBlbHNlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVN
b2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2Rl
bC5qcwppbmRleCAwM2ZmMGU3MzQ4ZmEzY2MzMWRlMGVjM2Y1N2M1YjRlYzE5ZmRlYTYwLi4yMGVi
ZDBjODc5YjhjZGQwZTMyYzNiMDdlOGViM2U2MDNkZjVlOGY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzCkBAIC00NCw2ICs0
NCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsID0gZnVuY3Rpb24oKQogCiBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlID0gewogICAgIFJvb3Q6ICJSb290IiwKKyAg
ICBQcm9ncmFtOiAiUHJvZ3JhbSIsCiAgICAgRXZlbnREaXNwYXRjaDogIkV2ZW50RGlzcGF0Y2gi
LAogCiAgICAgQmVnaW5GcmFtZTogIkJlZ2luRnJhbWUiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMKaW5k
ZXggNGU0ODkxZWI3MGMwMDY1MWRiNjk0MDM1MDRlNjM3NTJhMGFlMTIyZS4uMGEyOGMzYjllYWIw
NWY2ZDliZjU4MTcxYzdmZjY3MjlhMGJhNDI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzCkBAIC04
ODUsNiArODg1LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMucHJvdG90
eXBlID0gewogICAgICAgICAgICAgdmFyIHJlY29yZFN0YXJ0ID0gTWF0aC5mbG9vcigoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lTW9kZWwuc3RhcnRUaW1lSW5TZWNvbmRzKHJlY29yZCkgLSB0aW1lT2Zm
c2V0KSAqIHNjYWxlKTsKICAgICAgICAgICAgIHZhciByZWNvcmRFbmQgPSBNYXRoLmNlaWwoKFdl
Ykluc3BlY3Rvci5UaW1lbGluZU1vZGVsLmVuZFRpbWVJblNlY29uZHMocmVjb3JkKSAtIHRpbWVP
ZmZzZXQpICogc2NhbGUpOwogICAgICAgICAgICAgdmFyIGNhdGVnb3J5ID0gV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcnlGb3JSZWNvcmQocmVjb3JkKTsKKyAg
ICAgICAgICAgIGlmIChjYXRlZ29yeS5vdmVydmlld1N0cmlwR3JvdXBJbmRleCA8IDApCisgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgdmFyIGJhciA9IGxhc3RCYXJCeUdyb3Vw
W2NhdGVnb3J5Lm92ZXJ2aWV3U3RyaXBHcm91cEluZGV4XTsKICAgICAgICAgICAgIC8vIFRoaXMg
YmFyIG1heSBiZSBtZXJnZWQgd2l0aCBwcmV2aW91cyAtLSBzbyBqdXN0IGFkanVzdCB0aGUgcHJl
dmlvdXMgYmFyLgogICAgICAgICAgICAgY29uc3QgYmFyc01lcmdlVGhyZXNob2xkID0gMjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5l
bC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5q
cwppbmRleCBjODBlYzQzOGUxYzI0MzU2ZTdlODI2NDhjZDk0MGQyOWRmMjk2MzEzLi5jZmNlZDli
Nzc2MmZjMGEyYTgyOTViMjY3YzFhZjA1ZjhiOTg0NjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC0yMzEsNiArMjMx
LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB2
YXIgY2F0ZWdvcmllcyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmNh
dGVnb3JpZXMoKTsKICAgICAgICAgZm9yICh2YXIgY2F0ZWdvcnlOYW1lIGluIGNhdGVnb3JpZXMp
IHsKICAgICAgICAgICAgIHZhciBjYXRlZ29yeSA9IGNhdGVnb3JpZXNbY2F0ZWdvcnlOYW1lXTsK
KyAgICAgICAgICAgIGlmIChjYXRlZ29yeS5vdmVydmlld1N0cmlwR3JvdXBJbmRleCA8IDApCisg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB0aGlzLnN0YXR1c0JhckZpbHRl
cnMuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlVGltZWxpbmVDYXRlZ29yeVN0YXR1c0JhckNoZWNr
Ym94KGNhdGVnb3J5LCB0aGlzLl9vbkNhdGVnb3J5Q2hlY2tib3hDbGlja2VkLmJpbmQodGhpcywg
Y2F0ZWdvcnkpKSk7CiAgICAgICAgIH0KICAgICB9LApAQCAtNDk0LDggKzQ5Niw4IEBAIFdlYklu
c3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9pbm5lckFkZFJlY29y
ZFRvVGltZWxpbmU6IGZ1bmN0aW9uKHJlY29yZCwgcGFyZW50UmVjb3JkKQogICAgIHsKLSAgICAg
ICAgdmFyIGZvcm1hdHRlZFJlY29yZCA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZFJlY29y
ZChyZWNvcmQsIHBhcmVudFJlY29yZCk7Ci0gICAgICAgICsrdGhpcy5fYWxsUmVjb3Jkc0NvdW50
OworICAgICAgICB2YXIgcmVjb3JkcyA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZFJlY29y
ZChyZWNvcmQsIHBhcmVudFJlY29yZCk7CisgICAgICAgIHRoaXMuX2FsbFJlY29yZHNDb3VudCAr
PSByZWNvcmRzLmxlbmd0aDsKICAgICAgICAgdmFyIHJlY29yZFR5cGVzID0gV2ViSW5zcGVjdG9y
LlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZTsKICAgICAgICAgdmFyIHRpbWVTdGFtcFJlY29yZHMg
PSB0aGlzLl90aW1lU3RhbXBSZWNvcmRzOwogICAgICAgICB2YXIgaGFzVmlzaWJsZVJlY29yZHMg
PSBmYWxzZTsKQEAgLTUwNiwxMCArNTA4LDE0IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB0aW1lU3RhbXBSZWNvcmRzLnB1c2gocmVj
b3JkKTsKICAgICAgICAgICAgIGhhc1Zpc2libGVSZWNvcmRzIHw9IHByZXNlbnRhdGlvbk1vZGVs
LmlzVmlzaWJsZShyZWNvcmQpOwogICAgICAgICB9Ci0gICAgICAgIHZhciByZWNvcmRzID0gWyBm
b3JtYXR0ZWRSZWNvcmQgXTsKICAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0
aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyhyZWNvcmRzLCBwcm9jZXNzUmVjb3JkKTsKKworICAgICAg
ICBmdW5jdGlvbiBpc0Fkb3B0ZWRSZWNvcmQocmVjb3JkKQorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gcmVjb3JkLnBhcmVudCAhPT0gcHJlc2VudGF0aW9uTW9kZWwucm9vdFJlY29yZDsK
KyAgICAgICAgfQogICAgICAgICAvLyBUZWxsIGNhbGxlciB1cGRhdGUgaXMgbmVjZXNzYXJ5IGVp
dGhlciBpZiB3ZSBhZGRlZCBhIHZpc2libGUgcmVjb3JkIG9yIGlmIHdlIHJlLXBhcmVudGVkIGEg
cmVjb3JkLgotICAgICAgICByZXR1cm4gaGFzVmlzaWJsZVJlY29yZHMgfHwgZm9ybWF0dGVkUmVj
b3JkLnBhcmVudCAhPT0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwucm9vdFJlY29yZDsKKyAgICAg
ICAgcmV0dXJuIGhhc1Zpc2libGVSZWNvcmRzIHx8IHJlY29yZHMuc29tZShpc0Fkb3B0ZWRSZWNv
cmQpOwogICAgIH0sCiAKICAgICBzaWRlYmFyUmVzaXplZDogZnVuY3Rpb24oZXZlbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2Vu
dGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggNjZhNzdhYzg0MjU5ODQ3NzIwNWU3NGU1OWEw
MzgwOGM5NjY4MWMyNi4uYjk0MjYxOTkyZTEwN2I5MmJlOWRjZDk2MWJmM2NkMGFjNzQwNWY0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBy
ZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAtNDcsNiArNDcsNyBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzID0gZnVuY3Rpb24oKQog
ICAgIGlmIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5fY2F0ZWdvcmll
cykKICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
Ll9jYXRlZ29yaWVzOwogICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
Ll9jYXRlZ29yaWVzID0geworICAgICAgICBwcm9ncmFtOiBuZXcgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lQ2F0ZWdvcnkoInByb2dyYW0iLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByb2dyYW0iKSwg
LTEsICJ0cmFuc3BhcmVudCIsICJ0cmFuc3BhcmVudCIsICJ0cmFuc3BhcmVudCIpLAogICAgICAg
ICBsb2FkaW5nOiBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoImxvYWRpbmciLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxvYWRpbmciKSwgMCwgIiM1QThCQ0MiLCAiIzhFQjZFOSIs
ICIjNzBBMkUzIiksCiAgICAgICAgIHNjcmlwdGluZzogbmV3IFdlYkluc3BlY3Rvci5UaW1lbGlu
ZUNhdGVnb3J5KCJzY3JpcHRpbmciLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNjcmlwdGluZyIp
LCAxLCAiI0Q4QUEzNCIsICIjRjNEMDdBIiwgIiNGMUM0NTMiKSwKICAgICAgICAgcmVuZGVyaW5n
OiBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoInJlbmRlcmluZyIsIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiUmVuZGVyaW5nIiksIDIsICIjODI2NkNDIiwgIiNBRjlBRUIiLCAiIzlB
N0VFNiIpLApAQCAtNjgsNiArNjksNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRp
b25Nb2RlbC5yZWNvcmRTdHlsZSA9IGZ1bmN0aW9uKHJlY29yZCkKIAogICAgIHZhciByZWNvcmRT
dHlsZXMgPSB7fTsKICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUm9vdF0gPSB7IHRpdGxl
OiAiI3Jvb3QiLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sibG9hZGluZyJdIH07CisgICAgcmVjb3Jk
U3R5bGVzW3JlY29yZFR5cGVzLlByb2dyYW1dID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJQcm9ncmFtIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJwcm9ncmFtIl0gfTsKICAgICBy
ZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuRXZlbnREaXNwYXRjaF0gPSB7IHRpdGxlOiBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkV2ZW50IiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmci
XSB9OwogICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5CZWdpbkZyYW1lXSA9IHsgdGl0bGU6
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRnJhbWUgU3RhcnQiKSwgY2F0ZWdvcnk6IGNhdGVnb3Jp
ZXNbInJlbmRlcmluZyJdIH07CiAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkxheW91dF0g
PSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxheW91dCIpLCBjYXRlZ29yeTogY2F0
ZWdvcmllc1sicmVuZGVyaW5nIl0gfTsKQEAgLTExNSw3ICsxMTcsNyBAQCBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5pc0V2ZW50RGl2aWRlciA9IGZ1bmN0aW9uKHJlY29y
ZCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRh
dGlvbk1vZGVsLmZvckFsbFJlY29yZHMgPSBmdW5jdGlvbihyZWNvcmRzQXJyYXksIGNhbGxiYWNr
KQorV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyA9
IGZ1bmN0aW9uKHJlY29yZHNBcnJheSwgcHJlT3JkZXJDYWxsYmFjaywgcG9zdE9yZGVyQ2FsbGJh
Y2spCiB7CiAgICAgaWYgKCFyZWNvcmRzQXJyYXkpCiAgICAgICAgIHJldHVybjsKQEAgLTEyNSwx
MyArMTI3LDE4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmZvckFs
bFJlY29yZHMgPSBmdW5jdGlvbihyZWNvcmRzQXJyYXksIGNhCiAgICAgICAgIHZhciByZWNvcmRz
ID0gZW50cnkuYXJyYXk7CiAgICAgICAgIGlmIChlbnRyeS5pbmRleCA8IHJlY29yZHMubGVuZ3Ro
KSB7CiAgICAgICAgICAgICAgdmFyIHJlY29yZCA9IHJlY29yZHNbZW50cnkuaW5kZXhdOwotICAg
ICAgICAgICAgIGlmIChjYWxsYmFjayhyZWNvcmQpKQorICAgICAgICAgICAgIGlmIChwcmVPcmRl
ckNhbGxiYWNrICYmIHByZU9yZGVyQ2FsbGJhY2socmVjb3JkKSkKICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgIGlmIChyZWNvcmQuY2hpbGRyZW4pCi0gICAgICAgICAgICAg
ICAgIHN0YWNrLnB1c2goe2FycmF5OiByZWNvcmQuY2hpbGRyZW4sIGluZGV4OiAwfSk7CisgICAg
ICAgICAgICAgICAgIHN0YWNrLnB1c2goe2FycmF5OiByZWNvcmQuY2hpbGRyZW4sIGluZGV4OiAw
LCByZWNvcmQ6IHJlY29yZH0pOworICAgICAgICAgICAgIGVsc2UgaWYgKHBvc3RPcmRlckNhbGxi
YWNrICYmIHBvc3RPcmRlckNhbGxiYWNrKHJlY29yZCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgICsrZW50cnkuaW5kZXg7Ci0gICAgICAgIH0gZWxzZQorICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgaWYgKGVudHJ5LnJlY29yZCAmJiBwb3N0T3JkZXJDYWxsYmFj
ayAmJiBwb3N0T3JkZXJDYWxsYmFjayhlbnRyeS5yZWNvcmQpKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIHN0YWNrLnBvcCgpOworICAgICAgICB9CiAgICAgfQogfQogCkBA
IC0yMDIsMTIgKzIwOSwyOSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bC5wcm90b3R5cGUgPSB7CiAKICAgICBhZGRSZWNvcmQ6IGZ1bmN0aW9uKHJlY29yZCwgcGFyZW50
UmVjb3JkKQogICAgIHsKLSAgICAgICAgdmFyIGNvbm5lY3RlZFRvT2xkUmVjb3JkID0gZmFsc2U7
CiAgICAgICAgIHZhciByZWNvcmRUeXBlcyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJl
Y29yZFR5cGU7CiAKICAgICAgICAgaWYgKHRoaXMuX21pbmltdW1SZWNvcmRUaW1lID09PSAtMSB8
fCByZWNvcmQuc3RhcnRUaW1lIDwgdGhpcy5fbWluaW11bVJlY29yZFRpbWUpCiAgICAgICAgICAg
ICB0aGlzLl9taW5pbXVtUmVjb3JkVGltZSA9IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLnN0
YXJ0VGltZUluU2Vjb25kcyhyZWNvcmQpOwogCisgICAgICAgIHZhciByZWNvcmRzOworICAgICAg
ICBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLlByb2dyYW0pCisgICAgICAgICAgICBy
ZWNvcmRzID0gcmVjb3JkLmNoaWxkcmVuOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZWNv
cmRzID0gW3JlY29yZF07CisKKyAgICAgICAgdmFyIGZvcm1hdHRlZFJlY29yZHMgPSBbXTsKKyAg
ICAgICAgdmFyIHJlY29yZHNDb3VudCA9IHJlY29yZHMubGVuZ3RoOworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlY29yZHNDb3VudDsgKytpKQorICAgICAgICAgICAgZm9ybWF0dGVkUmVj
b3Jkcy5wdXNoKHRoaXMuX2lubmVyQWRkUmVjb3JkKHJlY29yZHNbaV0sIHBhcmVudFJlY29yZCkp
OworICAgICAgICByZXR1cm4gZm9ybWF0dGVkUmVjb3JkczsKKyAgICB9LAorCisgICAgX2lubmVy
QWRkUmVjb3JkOiBmdW5jdGlvbihyZWNvcmQsIHBhcmVudFJlY29yZCkKKyAgICB7CisgICAgICAg
IHZhciBjb25uZWN0ZWRUb09sZFJlY29yZCA9IGZhbHNlOworICAgICAgICB2YXIgcmVjb3JkVHlw
ZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlOworCiAgICAgICAgIGlm
IChyZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuTWFya0RPTUNvbnRlbnQgfHwgcmVjb3JkLnR5
cGUgPT09IHJlY29yZFR5cGVzLk1hcmtMb2FkKQogICAgICAgICAgICAgcGFyZW50UmVjb3JkID0g
bnVsbDsgLy8gTm8gYmFyIGVudHJ5IGZvciBsb2FkIGV2ZW50cy4KICAgICAgICAgZWxzZSB7CkBA
IC0yNDcsNyArMjcxLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
cHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciBjaGlsZHJlbkNvdW50ID0gY2hpbGRyZW4gPyBj
aGlsZHJlbi5sZW5ndGggOiAwOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVu
Q291bnQ7ICsraSkKLSAgICAgICAgICAgIHRoaXMuYWRkUmVjb3JkKGNoaWxkcmVuW2ldLCBmb3Jt
YXR0ZWRSZWNvcmQpOworICAgICAgICAgICAgdGhpcy5faW5uZXJBZGRSZWNvcmQoY2hpbGRyZW5b
aV0sIGZvcm1hdHRlZFJlY29yZCk7CiAKICAgICAgICAgZm9ybWF0dGVkUmVjb3JkLmNhbGN1bGF0
ZUFnZ3JlZ2F0ZWRTdGF0cyhXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5j
YXRlZ29yaWVzKCkpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjE4NDI1MjExY2YyMGQ0MGEwZGI3YTBjMzI2YjU4ODNh
NTNmMjU4NC4uZGNmNTUwMmNhOWVlN2ExZjkwMmNlMjU2MTYzODM1ZjYzNjgyMWUzMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEyLTA2LTI5ICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXMu
YnVnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBGb3J3YXJkIG1lc3NhZ2Ug
bG9vcCBpbnN0cnVtZW50YXRpb24gZGF0YSB0byBmcm9udGVuZC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5NTg0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJhbnNtaXQgY29sbGVjdGVkIG1lc3NhZ2Ug
bG9vcCB0YXNrcyB0byBpbnNwZWN0b3IgZnJvbnRlbmQuCisgICAgICAgIE5vdyAiUHJvZ3JhbSIg
c2hvdWxkIGJlIGEgdG9wLWxldmVsIGV2ZW50IHdoZXJlIGFwcHJvcHJpYXRlLgorICAgICAgICBG
cm9udGVuZCB3YXMgY2hhbmdlZCBzbyB0aGF0IHVzZXIgd2lsbCBub3Qgc2VlIGFueSBjaGFuZ2Vz
LgorCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5
LWV4cGVjdGVkLnR4dDoKKwogMjAxMi0wNi0yOCAgR3JlZ2cgVGF2YXJlcyAgPGdtYW5AZ29vZ2xl
LmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgREVQVEhfU1RFTkNJTCB0byBXRUJHTF9k
ZXB0aF90ZXh0dXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dAppbmRleCBk
OTMxZjE0ZTJmNDNmMjYwZWQyMDFjNDZlOWFlNDMwZDM2YzFiODkxLi5hZDc3ODYzYjY5Y2MwODA0
OWU4NzhmMjVjNDg5N2Y5ZjJhZmRkMGI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdGltZWxpbmUvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBl
Y3RlZC50eHQKQEAgLTQsNiArNCw3IEBAIEFwcGxpY2F0aW9ucyBvdXRzaWRlIG9mIFdlYktpdCBk
ZXBlbmQgb24gdGhlIHN0YWJpbGl0eSBvZiB0aGUgbWFwcGluZyBvZiB0aGVzZSB0CiAKIHsKICAg
ICBSb290IDogIlJvb3QiCisgICAgUHJvZ3JhbSA6ICJQcm9ncmFtIgogICAgIEV2ZW50RGlzcGF0
Y2ggOiAiRXZlbnREaXNwYXRjaCIKICAgICBCZWdpbkZyYW1lIDogIkJlZ2luRnJhbWUiCiAgICAg
TGF5b3V0IDogIkxheW91dCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150201</attachid>
            <date>2012-06-29 09:57:01 -0700</date>
            <delta_ts>2012-07-03 07:22:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89584-20120629205700.patch</filename>
            <type>text/plain</type>
            <size>21550</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U4YTQ0NGIwZDdlYjgx
ZDg4YWEyNTJiOGU2YzIyMmYyZGExZWQzMy4uNDRjMzQ4OTViZWI3YTEzNzhjOGQ1N2ExNTFhNzcx
NjRlYTI4ZjRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA2LTI5ICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBGb3J3YXJkIG1lc3NhZ2UgbG9vcCBpbnN0cnVtZW50YXRpb24gZGF0YSB0byBmcm9u
dGVuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJh
bnNtaXQgY29sbGVjdGVkIG1lc3NhZ2UgbG9vcCB0YXNrcyB0byBpbnNwZWN0b3IgZnJvbnRlbmQu
CisgICAgICAgIE5vdyAiUHJvZ3JhbSIgc2hvdWxkIGJlIGEgdG9wLWxldmVsIGV2ZW50IHdoZXJl
IGFwcHJvcHJpYXRlLgorICAgICAgICBGcm9udGVuZCB3YXMgY2hhbmdlZCBzbyB0aGF0IHVzZXIg
d2lsbCBub3Qgc2VlIGFueSBjaGFuZ2VzLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoVGltZWxpbmVSZWNvcmRUeXBlKToKKyAgICAg
ICAgQWRkZWQgbmV3IGV2ZW50IHR5cGUgLSAiUHJvZ3JhbSIKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQcm9jZXNzVGFzayk6CisgICAgICAgIEJlZ2luICJQ
cm9ncmFtIiBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZFByb2Nlc3NUYXNrKToKKyAgICAgICAgRmluaXNoICJQcm9ncmFtIiBldmVudC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGlj
KToKKyAgICAgICAgRG8gbm90IGFkZCBjb3VudGVycyB0byAiUHJvZ3JhbSIgZXZlbnRzLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojppbm5lclNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAgUmVuYW1lZCBmcm9tICJzZXRI
ZWFwU2l6ZVN0YXRpc3RpYyIKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk1lbW9yeVN0YXRpc3RpY3MucHJvdG90eXBlLl9vblJlY29yZEFkZGVkKToKKyAgICAgICAg
VW53cmFwcyAiUHJvZ3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9yeVN0
YXRpc3RpY3MucHJvdG90eXBlLl9pbm5lclJlY29yZEFkZGVkKToKKyAgICAgICAgUmVuYW1lZCBm
cm9tICJfb25SZWNvcmRBZGRlZCIKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lRnJhbWVDb250cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJh
bWVDb250cm9sbGVyLnByb3RvdHlwZS5fYWRkUmVjb3JkKToKKyAgICAgICAgVW53cmFwcyAiUHJv
Z3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9s
bGVyLnByb3RvdHlwZS5faW5uZXJBZGRSZWNvcmQpOgorICAgICAgICBSZW5hbWVkIGZyb20gIl9h
ZGRSZWNvcmQiCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpz
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5wcm90b3R5cGUu
dXBkYXRlLmFwcGVuZFJlY29yZCk6CisgICAgICAgIEZpbHRlciBvdXQgIlByb2dyYW0iIGNhdGVn
b3J5LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMucHJvdG90
eXBlLnVwZGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVs
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVh
dGVTdGF0dXNiYXJCdXR0b25zKToKKyAgICAgICAgRmlsdGVyIG91dCAiUHJvZ3JhbSIgY2F0ZWdv
cnkuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2lubmVy
QWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAgIFVud3JhcHMgIlByb2dyYW0iIGV2ZW50cy4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRl
Z29yaWVzKToKKyAgICAgICAgQWRkZWQgIlByb2dyYW0iIGNhdGVnb3J5LgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucmVjb3JkU3R5bGUpOgorICAgICAg
ICBEaXR0by4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZS5hZGRSZWNvcmQpOgorICAgICAgICBVbndyYXBzICJQcm9ncmFtIiBldmVudHMu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5
cGUuX2FkZFJlY29yZCk6CisgICAgICAgIFJlbmFtZWQgZnJvbSAiYWRkUmVjb3JkIgorCiAyMDEy
LTA2LTI4ICBHcmVnZyBUYXZhcmVzICA8Z21hbkBnb29nbGUuY29tPgogCiAgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBERVBUSF9TVEVOQ0lMIHRvIFdFQkdMX2RlcHRoX3RleHR1cmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRl
eCA0NzI4MmU5NTczNzE2ZjMzMjliNDBmZDVhMzY3MWIxNmM4MTg3MzA0Li4yNmViZmM0OWRiMTgy
MGQ0MWMyNTY0OGNkMjRjNDA3ZjVkMWUxZDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC02MCw2ICs2MCw4IEBAIHN0
YXRpYyBjb25zdCBjaGFyIGluY2x1ZGVNZW1vcnlEZXRhaWxzW10gPSAiaW5jbHVkZU1lbW9yeURl
dGFpbHMiOwogCiAvLyBNdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIFdlYkluc3BlY3Rvci5UaW1l
bGluZU1vZGVsLlJlY29yZFR5cGUgaW4gVGltZWxpbmVNb2RlbC5qcwogbmFtZXNwYWNlIFRpbWVs
aW5lUmVjb3JkVHlwZSB7CitzdGF0aWMgY29uc3QgY2hhciBQcm9ncmFtW10gPSAiUHJvZ3JhbSI7
CisKIHN0YXRpYyBjb25zdCBjaGFyIEV2ZW50RGlzcGF0Y2hbXSA9ICJFdmVudERpc3BhdGNoIjsK
IHN0YXRpYyBjb25zdCBjaGFyIEJlZ2luRnJhbWVbXSA9ICJCZWdpbkZyYW1lIjsKIHN0YXRpYyBj
b25zdCBjaGFyIExheW91dFtdID0gIkxheW91dCI7CkBAIC0zNDAsNyArMzQyLDcgQEAgdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsU2VuZFJlc291cmNlUmVxdWVzdCh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGMKICAgICAgICAgU3RyaW5nIGZyYW1lSWQobV9wYWdlQWdlbnQtPmZy
YW1lSWQoZnJhbWUpKTsKICAgICAgICAgcmVjb3JkUmF3LT5zZXRTdHJpbmcoImZyYW1lSWQiLCBm
cmFtZUlkKTsKICAgICB9Ci0gICAgc2V0SGVhcFNpemVTdGF0aXN0aWMocmVjb3JkUmF3LmdldCgp
KTsKKyAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpY3MocmVjb3JkUmF3LmdldCgpKTsKICAgICAvLyBG
SVhNRTogcnVudGltZUNhc3QgaXMgYSBoYWNrLiBXZSBkbyBpdCBiZWNhdXNlIHdlIGNhbid0IGJ1
aWxkIFRpbWVsaW5lRXZlbnQgZGlyZWN0bHkgbm93LgogICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6
VGltZWxpbmU6OlRpbWVsaW5lRXZlbnQ+IHJlY29yZCA9IFR5cGVCdWlsZGVyOjpUaW1lbGluZTo6
VGltZWxpbmVFdmVudDo6cnVudGltZUNhc3QocmVjb3JkUmF3LnJlbGVhc2UoKSk7CiAgICAgbV9m
cm9udGVuZC0+ZXZlbnRSZWNvcmRlZChyZWNvcmQucmVsZWFzZSgpKTsKQEAgLTQxNSwxMiArNDE3
LDEyIEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmlyZUFuaW1hdGlvbkZyYW1l
KCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsUHJvY2Vzc1Rhc2soKQogewot
ICAgIC8vIFRPRE86IFJlY29yZCB0YXNrIHByb2Nlc3Npbmcgc3RhcnQgdGltZS4KKyAgICBwdXNo
Q3VycmVudFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5
cGU6OlByb2dyYW0sIGZhbHNlLCAwKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRQcm9jZXNzVGFzaygpCiB7Ci0gICAgLy8gVE9ETzogUmVjb3JkIHRhc2sgcHJvY2Vzc2lu
ZyBlbmQgdGltZS4KKyAgICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRU
eXBlOjpQcm9ncmFtKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNv
cmRUb1RpbWVsaW5lKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQsIGNvbnN0IFN0
cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBmcmFtZUlkKQpAQCAtNDMxLDExICs0MzMsMTUgQEAg
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiByZWMKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpp
bm5lckFkZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHBycFJl
Y29yZCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQpCiB7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHByb2dyYW0sIChUaW1lbGluZVJlY29yZFR5cGU6
OlByb2dyYW0pKTsKKwogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZChwcnBSZWNv
cmQpOwogICAgIHJlY29yZC0+c2V0U3RyaW5nKCJ0eXBlIiwgdHlwZSk7CiAgICAgaWYgKCFmcmFt
ZUlkLmlzRW1wdHkoKSkKICAgICAgICAgcmVjb3JkLT5zZXRTdHJpbmcoImZyYW1lSWQiLCBmcmFt
ZUlkKTsKLSAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhyZWNvcmQuZ2V0KCkpOworICAgIGlmICh0
eXBlICE9IHByb2dyYW0pCisgICAgICAgIHNldEhlYXBTaXplU3RhdGlzdGljcyhyZWNvcmQuZ2V0
KCkpOworCiAgICAgaWYgKG1fcmVjb3JkU3RhY2suaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIEZJ
WE1FOiBydW50aW1lQ2FzdCBpcyBhIGhhY2suIFdlIGRvIGl0IGJlY2F1c2Ugd2UgY2FuJ3QgYnVp
bGQgVGltZWxpbmVFdmVudCBkaXJlY3RseSBub3cuCiAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRl
cjo6VGltZWxpbmU6OlRpbWVsaW5lRXZlbnQ+IHJlY29yZENoZWNrZWQgPSBUeXBlQnVpbGRlcjo6
VGltZWxpbmU6OlRpbWVsaW5lRXZlbnQ6OnJ1bnRpbWVDYXN0KHJlY29yZC5yZWxlYXNlKCkpOwpA
QCAtNDQ2LDcgKzQ1Miw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6aW5uZXJBZGRS
ZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0CiAgICAgfQogfQogCi12
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKEluc3BlY3Rv
ck9iamVjdCogcmVjb3JkKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzZXRIZWFwU2l6
ZVN0YXRpc3RpY3MoSW5zcGVjdG9yT2JqZWN0KiByZWNvcmQpCiB7CiAgICAgc2l6ZV90IHVzZWRI
ZWFwU2l6ZSA9IDA7CiAgICAgc2l6ZV90IHRvdGFsSGVhcFNpemUgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggOTRjN2Zj
YWVlMzg2ZWNkMGYyMmYyN2VlYjFkN2E1ZjkxZmY3ZjMxOC4uZWZjNmExNjU1MGFlMzk5MjQ2MTBk
Mzc4YTMyZTZhOGViODBhMjM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC0xNjAsOCArMTYwLDggQEAgcHJpdmF0ZToKICAg
ICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQ
YWdlQWdlbnQqLCBJbnNwZWN0b3JTdGF0ZSosIEluc3BlY3RvclR5cGUsIEluc3BlY3RvckNsaWVu
dCopOwogCiAgICAgdm9pZCBwdXNoQ3VycmVudFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4sIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFtZSop
OwotICAgIHZvaWQgc2V0SGVhcFNpemVTdGF0aXN0aWMoSW5zcGVjdG9yT2JqZWN0KiByZWNvcmQp
OwotICAgICAgICAKKyAgICB2b2lkIHNldEhlYXBTaXplU3RhdGlzdGljcyhJbnNwZWN0b3JPYmpl
Y3QqIHJlY29yZCk7CisKICAgICB2b2lkIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChjb25zdCBT
dHJpbmcmIHR5cGUpOwogICAgIHZvaWQgYXBwZW5kUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wgY2FwdHVyZUNhbGxTdGFjaywg
RnJhbWUqKTsKICAgICB2b2lkIHB1c2hDYW5jZWxhYmxlUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlLCBGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzCmluZGV4
IGM5MTVjZTc1MjQ2MGRkMzA5MjNmYjM4NWY5ZTdiM2NmMGNiMTAxNGQuLmFhNTJlMjIyZTdkN2M4
MmJiNDM4YjVhZThiNjUwYTg1MzUyMTg1MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvTWVtb3J5U3RhdGlzdGljcy5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01lbW9yeVN0YXRpc3RpY3MuanMKQEAgLTI1NywxNSArMjU3
LDIwIEBAIFdlYkluc3BlY3Rvci5NZW1vcnlTdGF0aXN0aWNzLnByb3RvdHlwZSA9IHsKIAogICAg
IF9vblJlY29yZEFkZGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBjb3Vu
dGVycyA9IGV2ZW50LmRhdGFbImNvdW50ZXJzIl07Ci0gICAgICAgIGlmICghY291bnRlcnMpCi0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHRoaXMuX2NvdW50ZXJzLnB1c2goewotICAgICAg
ICAgICAgdGltZTogZXZlbnQuZGF0YS5lbmRUaW1lIHx8IGV2ZW50LmRhdGEuc3RhcnRUaW1lLAot
ICAgICAgICAgICAgZG9jdW1lbnRDb3VudDogY291bnRlcnNbImRvY3VtZW50cyJdLAotICAgICAg
ICAgICAgbm9kZUNvdW50OiBjb3VudGVyc1sibm9kZXMiXSwKLSAgICAgICAgICAgIGxpc3RlbmVy
Q291bnQ6IGNvdW50ZXJzWyJqc0V2ZW50TGlzdGVuZXJzIl0KLSAgICAgICAgfSk7CisgICAgICAg
IHZhciBzdGF0aXN0aWNzID0gdGhpcy5fY291bnRlcnM7CisgICAgICAgIGZ1bmN0aW9uIGFkZFN0
YXRpc3RpY3MocmVjb3JkKQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgY291bnRlcnMgPSBy
ZWNvcmRbImNvdW50ZXJzIl07CisgICAgICAgICAgICBpZiAoIWNvdW50ZXJzKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHN0YXRpc3RpY3MucHVzaCh7CisgICAgICAgICAg
ICAgICAgdGltZTogcmVjb3JkLmVuZFRpbWUgfHwgcmVjb3JkLnN0YXJ0VGltZSwKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudENvdW50OiBjb3VudGVyc1siZG9jdW1lbnRzIl0sCisgICAgICAgICAg
ICAgICAgbm9kZUNvdW50OiBjb3VudGVyc1sibm9kZXMiXSwKKyAgICAgICAgICAgICAgICBsaXN0
ZW5lckNvdW50OiBjb3VudGVyc1sianNFdmVudExpc3RlbmVycyJdCisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfQorICAgICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bC5mb3JBbGxSZWNvcmRzKFtldmVudC5kYXRhXSwgbnVsbCwgYWRkU3RhdGlzdGljcyk7CiAgICAg
fSwKIAogICAgIF9kcmF3OiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lRnJhbWVDb250cm9sbGVyLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUZyYW1lQ29udHJvbGxlci5qcwppbmRl
eCA0ZTQxZTI0MzUzYjRiY2Y1NGRlM2YwOTI4ODg3ZmJlMTBhMjU0YzExLi4wNjM4MDk2NmUzMWU2
YzIzNjI5NzM3MGRjOWI4NWYzYzdiNzFlOWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lRnJhbWVDb250cm9sbGVyLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMK
QEAgLTYxLDYgKzYxLDE2IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZUZyYW1lQ29udHJvbGxlci5w
cm90b3R5cGUgPSB7CiAKICAgICBfYWRkUmVjb3JkOiBmdW5jdGlvbihyZWNvcmQpCiAgICAgewor
ICAgICAgICB2YXIgcmVjb3JkczsKKyAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLlByb2dyYW0pCisgICAgICAgICAgICByZWNv
cmRzID0gcmVjb3JkWyJjaGlsZHJlbiJdIHx8IFtdOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICByZWNvcmRzID0gW3JlY29yZF07CisgICAgICAgIHJlY29yZHMuZm9yRWFjaCh0aGlzLl9pbm5l
ckFkZFJlY29yZCwgdGhpcyk7CisgICAgfSwKKworICAgIF9pbm5lckFkZFJlY29yZDogZnVuY3Rp
b24ocmVjb3JkKQorICAgIHsKICAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSBXZWJJbnNwZWN0
b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLkJlZ2luRnJhbWUgJiYgdGhpcy5fbGFzdEZyYW1l
KQogICAgICAgICAgICAgdGhpcy5fZmx1c2hGcmFtZShyZWNvcmQpOwogICAgICAgICBlbHNlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVN
b2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2Rl
bC5qcwppbmRleCAwM2ZmMGU3MzQ4ZmEzY2MzMWRlMGVjM2Y1N2M1YjRlYzE5ZmRlYTYwLi4yMGVi
ZDBjODc5YjhjZGQwZTMyYzNiMDdlOGViM2U2MDNkZjVlOGY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzCkBAIC00NCw2ICs0
NCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsID0gZnVuY3Rpb24oKQogCiBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlID0gewogICAgIFJvb3Q6ICJSb290IiwKKyAg
ICBQcm9ncmFtOiAiUHJvZ3JhbSIsCiAgICAgRXZlbnREaXNwYXRjaDogIkV2ZW50RGlzcGF0Y2gi
LAogCiAgICAgQmVnaW5GcmFtZTogIkJlZ2luRnJhbWUiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMKaW5k
ZXggNGU0ODkxZWI3MGMwMDY1MWRiNjk0MDM1MDRlNjM3NTJhMGFlMTIyZS4uMGEyOGMzYjllYWIw
NWY2ZDliZjU4MTcxYzdmZjY3MjlhMGJhNDI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzCkBAIC04
ODUsNiArODg1LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMucHJvdG90
eXBlID0gewogICAgICAgICAgICAgdmFyIHJlY29yZFN0YXJ0ID0gTWF0aC5mbG9vcigoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lTW9kZWwuc3RhcnRUaW1lSW5TZWNvbmRzKHJlY29yZCkgLSB0aW1lT2Zm
c2V0KSAqIHNjYWxlKTsKICAgICAgICAgICAgIHZhciByZWNvcmRFbmQgPSBNYXRoLmNlaWwoKFdl
Ykluc3BlY3Rvci5UaW1lbGluZU1vZGVsLmVuZFRpbWVJblNlY29uZHMocmVjb3JkKSAtIHRpbWVP
ZmZzZXQpICogc2NhbGUpOwogICAgICAgICAgICAgdmFyIGNhdGVnb3J5ID0gV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcnlGb3JSZWNvcmQocmVjb3JkKTsKKyAg
ICAgICAgICAgIGlmIChjYXRlZ29yeS5vdmVydmlld1N0cmlwR3JvdXBJbmRleCA8IDApCisgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgdmFyIGJhciA9IGxhc3RCYXJCeUdyb3Vw
W2NhdGVnb3J5Lm92ZXJ2aWV3U3RyaXBHcm91cEluZGV4XTsKICAgICAgICAgICAgIC8vIFRoaXMg
YmFyIG1heSBiZSBtZXJnZWQgd2l0aCBwcmV2aW91cyAtLSBzbyBqdXN0IGFkanVzdCB0aGUgcHJl
dmlvdXMgYmFyLgogICAgICAgICAgICAgY29uc3QgYmFyc01lcmdlVGhyZXNob2xkID0gMjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5l
bC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5q
cwppbmRleCBjODBlYzQzOGUxYzI0MzU2ZTdlODI2NDhjZDk0MGQyOWRmMjk2MzEzLi5jZmNlZDli
Nzc2MmZjMGEyYTgyOTViMjY3YzFhZjA1ZjhiOTg0NjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC0yMzEsNiArMjMx
LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB2
YXIgY2F0ZWdvcmllcyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmNh
dGVnb3JpZXMoKTsKICAgICAgICAgZm9yICh2YXIgY2F0ZWdvcnlOYW1lIGluIGNhdGVnb3JpZXMp
IHsKICAgICAgICAgICAgIHZhciBjYXRlZ29yeSA9IGNhdGVnb3JpZXNbY2F0ZWdvcnlOYW1lXTsK
KyAgICAgICAgICAgIGlmIChjYXRlZ29yeS5vdmVydmlld1N0cmlwR3JvdXBJbmRleCA8IDApCisg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB0aGlzLnN0YXR1c0JhckZpbHRl
cnMuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlVGltZWxpbmVDYXRlZ29yeVN0YXR1c0JhckNoZWNr
Ym94KGNhdGVnb3J5LCB0aGlzLl9vbkNhdGVnb3J5Q2hlY2tib3hDbGlja2VkLmJpbmQodGhpcywg
Y2F0ZWdvcnkpKSk7CiAgICAgICAgIH0KICAgICB9LApAQCAtNDk0LDggKzQ5Niw4IEBAIFdlYklu
c3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9pbm5lckFkZFJlY29y
ZFRvVGltZWxpbmU6IGZ1bmN0aW9uKHJlY29yZCwgcGFyZW50UmVjb3JkKQogICAgIHsKLSAgICAg
ICAgdmFyIGZvcm1hdHRlZFJlY29yZCA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZFJlY29y
ZChyZWNvcmQsIHBhcmVudFJlY29yZCk7Ci0gICAgICAgICsrdGhpcy5fYWxsUmVjb3Jkc0NvdW50
OworICAgICAgICB2YXIgcmVjb3JkcyA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZFJlY29y
ZChyZWNvcmQsIHBhcmVudFJlY29yZCk7CisgICAgICAgIHRoaXMuX2FsbFJlY29yZHNDb3VudCAr
PSByZWNvcmRzLmxlbmd0aDsKICAgICAgICAgdmFyIHJlY29yZFR5cGVzID0gV2ViSW5zcGVjdG9y
LlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZTsKICAgICAgICAgdmFyIHRpbWVTdGFtcFJlY29yZHMg
PSB0aGlzLl90aW1lU3RhbXBSZWNvcmRzOwogICAgICAgICB2YXIgaGFzVmlzaWJsZVJlY29yZHMg
PSBmYWxzZTsKQEAgLTUwNiwxMCArNTA4LDE0IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB0aW1lU3RhbXBSZWNvcmRzLnB1c2gocmVj
b3JkKTsKICAgICAgICAgICAgIGhhc1Zpc2libGVSZWNvcmRzIHw9IHByZXNlbnRhdGlvbk1vZGVs
LmlzVmlzaWJsZShyZWNvcmQpOwogICAgICAgICB9Ci0gICAgICAgIHZhciByZWNvcmRzID0gWyBm
b3JtYXR0ZWRSZWNvcmQgXTsKICAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0
aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyhyZWNvcmRzLCBwcm9jZXNzUmVjb3JkKTsKKworICAgICAg
ICBmdW5jdGlvbiBpc0Fkb3B0ZWRSZWNvcmQocmVjb3JkKQorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gcmVjb3JkLnBhcmVudCAhPT0gcHJlc2VudGF0aW9uTW9kZWwucm9vdFJlY29yZDsK
KyAgICAgICAgfQogICAgICAgICAvLyBUZWxsIGNhbGxlciB1cGRhdGUgaXMgbmVjZXNzYXJ5IGVp
dGhlciBpZiB3ZSBhZGRlZCBhIHZpc2libGUgcmVjb3JkIG9yIGlmIHdlIHJlLXBhcmVudGVkIGEg
cmVjb3JkLgotICAgICAgICByZXR1cm4gaGFzVmlzaWJsZVJlY29yZHMgfHwgZm9ybWF0dGVkUmVj
b3JkLnBhcmVudCAhPT0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwucm9vdFJlY29yZDsKKyAgICAg
ICAgcmV0dXJuIGhhc1Zpc2libGVSZWNvcmRzIHx8IHJlY29yZHMuc29tZShpc0Fkb3B0ZWRSZWNv
cmQpOwogICAgIH0sCiAKICAgICBzaWRlYmFyUmVzaXplZDogZnVuY3Rpb24oZXZlbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2Vu
dGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggNjZhNzdhYzg0MjU5ODQ3NzIwNWU3NGU1OWEw
MzgwOGM5NjY4MWMyNi4uYjk0MjYxOTkyZTEwN2I5MmJlOWRjZDk2MWJmM2NkMGFjNzQwNWY0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBy
ZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAtNDcsNiArNDcsNyBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzID0gZnVuY3Rpb24oKQog
ICAgIGlmIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5fY2F0ZWdvcmll
cykKICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
Ll9jYXRlZ29yaWVzOwogICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
Ll9jYXRlZ29yaWVzID0geworICAgICAgICBwcm9ncmFtOiBuZXcgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lQ2F0ZWdvcnkoInByb2dyYW0iLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByb2dyYW0iKSwg
LTEsICJ0cmFuc3BhcmVudCIsICJ0cmFuc3BhcmVudCIsICJ0cmFuc3BhcmVudCIpLAogICAgICAg
ICBsb2FkaW5nOiBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoImxvYWRpbmciLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxvYWRpbmciKSwgMCwgIiM1QThCQ0MiLCAiIzhFQjZFOSIs
ICIjNzBBMkUzIiksCiAgICAgICAgIHNjcmlwdGluZzogbmV3IFdlYkluc3BlY3Rvci5UaW1lbGlu
ZUNhdGVnb3J5KCJzY3JpcHRpbmciLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNjcmlwdGluZyIp
LCAxLCAiI0Q4QUEzNCIsICIjRjNEMDdBIiwgIiNGMUM0NTMiKSwKICAgICAgICAgcmVuZGVyaW5n
OiBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoInJlbmRlcmluZyIsIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiUmVuZGVyaW5nIiksIDIsICIjODI2NkNDIiwgIiNBRjlBRUIiLCAiIzlB
N0VFNiIpLApAQCAtNjgsNiArNjksNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRp
b25Nb2RlbC5yZWNvcmRTdHlsZSA9IGZ1bmN0aW9uKHJlY29yZCkKIAogICAgIHZhciByZWNvcmRT
dHlsZXMgPSB7fTsKICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUm9vdF0gPSB7IHRpdGxl
OiAiI3Jvb3QiLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sibG9hZGluZyJdIH07CisgICAgcmVjb3Jk
U3R5bGVzW3JlY29yZFR5cGVzLlByb2dyYW1dID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJQcm9ncmFtIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJwcm9ncmFtIl0gfTsKICAgICBy
ZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuRXZlbnREaXNwYXRjaF0gPSB7IHRpdGxlOiBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkV2ZW50IiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmci
XSB9OwogICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5CZWdpbkZyYW1lXSA9IHsgdGl0bGU6
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRnJhbWUgU3RhcnQiKSwgY2F0ZWdvcnk6IGNhdGVnb3Jp
ZXNbInJlbmRlcmluZyJdIH07CiAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkxheW91dF0g
PSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxheW91dCIpLCBjYXRlZ29yeTogY2F0
ZWdvcmllc1sicmVuZGVyaW5nIl0gfTsKQEAgLTExNSw3ICsxMTcsNyBAQCBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5pc0V2ZW50RGl2aWRlciA9IGZ1bmN0aW9uKHJlY29y
ZCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRh
dGlvbk1vZGVsLmZvckFsbFJlY29yZHMgPSBmdW5jdGlvbihyZWNvcmRzQXJyYXksIGNhbGxiYWNr
KQorV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyA9
IGZ1bmN0aW9uKHJlY29yZHNBcnJheSwgcHJlT3JkZXJDYWxsYmFjaywgcG9zdE9yZGVyQ2FsbGJh
Y2spCiB7CiAgICAgaWYgKCFyZWNvcmRzQXJyYXkpCiAgICAgICAgIHJldHVybjsKQEAgLTEyNSwx
MyArMTI3LDE4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmZvckFs
bFJlY29yZHMgPSBmdW5jdGlvbihyZWNvcmRzQXJyYXksIGNhCiAgICAgICAgIHZhciByZWNvcmRz
ID0gZW50cnkuYXJyYXk7CiAgICAgICAgIGlmIChlbnRyeS5pbmRleCA8IHJlY29yZHMubGVuZ3Ro
KSB7CiAgICAgICAgICAgICAgdmFyIHJlY29yZCA9IHJlY29yZHNbZW50cnkuaW5kZXhdOwotICAg
ICAgICAgICAgIGlmIChjYWxsYmFjayhyZWNvcmQpKQorICAgICAgICAgICAgIGlmIChwcmVPcmRl
ckNhbGxiYWNrICYmIHByZU9yZGVyQ2FsbGJhY2socmVjb3JkKSkKICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgIGlmIChyZWNvcmQuY2hpbGRyZW4pCi0gICAgICAgICAgICAg
ICAgIHN0YWNrLnB1c2goe2FycmF5OiByZWNvcmQuY2hpbGRyZW4sIGluZGV4OiAwfSk7CisgICAg
ICAgICAgICAgICAgIHN0YWNrLnB1c2goe2FycmF5OiByZWNvcmQuY2hpbGRyZW4sIGluZGV4OiAw
LCByZWNvcmQ6IHJlY29yZH0pOworICAgICAgICAgICAgIGVsc2UgaWYgKHBvc3RPcmRlckNhbGxi
YWNrICYmIHBvc3RPcmRlckNhbGxiYWNrKHJlY29yZCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgICsrZW50cnkuaW5kZXg7Ci0gICAgICAgIH0gZWxzZQorICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgaWYgKGVudHJ5LnJlY29yZCAmJiBwb3N0T3JkZXJDYWxsYmFj
ayAmJiBwb3N0T3JkZXJDYWxsYmFjayhlbnRyeS5yZWNvcmQpKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIHN0YWNrLnBvcCgpOworICAgICAgICB9CiAgICAgfQogfQogCkBA
IC0yMDIsMTIgKzIwOSwyOSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bC5wcm90b3R5cGUgPSB7CiAKICAgICBhZGRSZWNvcmQ6IGZ1bmN0aW9uKHJlY29yZCwgcGFyZW50
UmVjb3JkKQogICAgIHsKLSAgICAgICAgdmFyIGNvbm5lY3RlZFRvT2xkUmVjb3JkID0gZmFsc2U7
CiAgICAgICAgIHZhciByZWNvcmRUeXBlcyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJl
Y29yZFR5cGU7CiAKICAgICAgICAgaWYgKHRoaXMuX21pbmltdW1SZWNvcmRUaW1lID09PSAtMSB8
fCByZWNvcmQuc3RhcnRUaW1lIDwgdGhpcy5fbWluaW11bVJlY29yZFRpbWUpCiAgICAgICAgICAg
ICB0aGlzLl9taW5pbXVtUmVjb3JkVGltZSA9IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLnN0
YXJ0VGltZUluU2Vjb25kcyhyZWNvcmQpOwogCisgICAgICAgIHZhciByZWNvcmRzOworICAgICAg
ICBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLlByb2dyYW0pCisgICAgICAgICAgICBy
ZWNvcmRzID0gcmVjb3JkLmNoaWxkcmVuOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZWNv
cmRzID0gW3JlY29yZF07CisKKyAgICAgICAgdmFyIGZvcm1hdHRlZFJlY29yZHMgPSBbXTsKKyAg
ICAgICAgdmFyIHJlY29yZHNDb3VudCA9IHJlY29yZHMubGVuZ3RoOworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlY29yZHNDb3VudDsgKytpKQorICAgICAgICAgICAgZm9ybWF0dGVkUmVj
b3Jkcy5wdXNoKHRoaXMuX2lubmVyQWRkUmVjb3JkKHJlY29yZHNbaV0sIHBhcmVudFJlY29yZCkp
OworICAgICAgICByZXR1cm4gZm9ybWF0dGVkUmVjb3JkczsKKyAgICB9LAorCisgICAgX2lubmVy
QWRkUmVjb3JkOiBmdW5jdGlvbihyZWNvcmQsIHBhcmVudFJlY29yZCkKKyAgICB7CisgICAgICAg
IHZhciBjb25uZWN0ZWRUb09sZFJlY29yZCA9IGZhbHNlOworICAgICAgICB2YXIgcmVjb3JkVHlw
ZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlOworCiAgICAgICAgIGlm
IChyZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuTWFya0RPTUNvbnRlbnQgfHwgcmVjb3JkLnR5
cGUgPT09IHJlY29yZFR5cGVzLk1hcmtMb2FkKQogICAgICAgICAgICAgcGFyZW50UmVjb3JkID0g
bnVsbDsgLy8gTm8gYmFyIGVudHJ5IGZvciBsb2FkIGV2ZW50cy4KICAgICAgICAgZWxzZSB7CkBA
IC0yNDcsNyArMjcxLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
cHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciBjaGlsZHJlbkNvdW50ID0gY2hpbGRyZW4gPyBj
aGlsZHJlbi5sZW5ndGggOiAwOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVu
Q291bnQ7ICsraSkKLSAgICAgICAgICAgIHRoaXMuYWRkUmVjb3JkKGNoaWxkcmVuW2ldLCBmb3Jt
YXR0ZWRSZWNvcmQpOworICAgICAgICAgICAgdGhpcy5faW5uZXJBZGRSZWNvcmQoY2hpbGRyZW5b
aV0sIGZvcm1hdHRlZFJlY29yZCk7CiAKICAgICAgICAgZm9ybWF0dGVkUmVjb3JkLmNhbGN1bGF0
ZUFnZ3JlZ2F0ZWRTdGF0cyhXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5j
YXRlZ29yaWVzKCkpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjE4NDI1MjExY2YyMGQ0MGEwZGI3YTBjMzI2YjU4ODNh
NTNmMjU4NC4uZGNmNTUwMmNhOWVlN2ExZjkwMmNlMjU2MTYzODM1ZjYzNjgyMWUzMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEyLTA2LTI5ICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXMu
YnVnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBGb3J3YXJkIG1lc3NhZ2Ug
bG9vcCBpbnN0cnVtZW50YXRpb24gZGF0YSB0byBmcm9udGVuZC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5NTg0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJhbnNtaXQgY29sbGVjdGVkIG1lc3NhZ2Ug
bG9vcCB0YXNrcyB0byBpbnNwZWN0b3IgZnJvbnRlbmQuCisgICAgICAgIE5vdyAiUHJvZ3JhbSIg
c2hvdWxkIGJlIGEgdG9wLWxldmVsIGV2ZW50IHdoZXJlIGFwcHJvcHJpYXRlLgorICAgICAgICBG
cm9udGVuZCB3YXMgY2hhbmdlZCBzbyB0aGF0IHVzZXIgd2lsbCBub3Qgc2VlIGFueSBjaGFuZ2Vz
LgorCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5
LWV4cGVjdGVkLnR4dDoKKwogMjAxMi0wNi0yOCAgR3JlZ2cgVGF2YXJlcyAgPGdtYW5AZ29vZ2xl
LmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgREVQVEhfU1RFTkNJTCB0byBXRUJHTF9k
ZXB0aF90ZXh0dXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUt
ZGZzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1kZnMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzYTZjMWZlZTliMTNhMWEzYTExOTI2ZGU3MWE4MjQ4ZThj
N2Y4YTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUt
ZGZzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM0IEBACitUZXN0cyBUaW1lbGluZVByZXNlbnRh
dGlvbk1vZGVsLmZvckFsbFJlY29yZHMgZnVuY3Rpb24uCisKK0RGUyBwcmVvcmRlcjoKK2EKK2Fh
CithYWEKK2FhYgorYWIKK2FiYQorYWJiCitiCitiYQorYmFhCitiYWIKK2JiCitiYmEKK2JiYgor
CitERlMgcG9zdG9yZGVyOgorYWFhCithYWIKK2FhCithYmEKK2FiYgorYWIKK2EKK2JhYQorYmFi
CitiYQorYmJhCitiYmIKK2JiCitiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS1kZnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1kZnMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kNWU0MzE2MjI1NGRjZTliMTVkYWFjODQ3OWY0MTMxOWEyNDFhY2Ji
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWRmcy5o
dG1sCkBAIC0wLDAgKzEsNTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBm
dW5jdGlvbiBkdW1wZXIocmVjb3JkKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQocmVjb3JkLm5hbWUpOworICAgIH0KKworICAgIHZhciByZWNvcmRzID0gWworICAgICAg
ICB7Im5hbWUiIDogImEiLCAiY2hpbGRyZW4iIDogWworICAgICAgICAgICAgeyJuYW1lIiA6ICJh
YSIsICJjaGlsZHJlbiI6IFsKKyAgICAgICAgICAgICAgICB7Im5hbWUiIDogImFhYSJ9LAorICAg
ICAgICAgICAgICAgIHsibmFtZSIgOiAiYWFiIn0sCisgICAgICAgICAgICBdfSwKKyAgICAgICAg
ICAgIHsibmFtZSIgOiAiYWIiLCAiY2hpbGRyZW4iOlsKKyAgICAgICAgICAgICAgICB7Im5hbWUi
IDogImFiYSJ9LAorICAgICAgICAgICAgICAgIHsibmFtZSIgOiAiYWJiIn0sCisgICAgICAgICAg
ICBdfQorICAgICAgICBdfSwKKyAgICAgICAgeyJuYW1lIiA6ICJiIiwgImNoaWxkcmVuIiA6IFsK
KyAgICAgICAgICAgIHsibmFtZSIgOiAiYmEiLCAiY2hpbGRyZW4iIDogWworICAgICAgICAgICAg
ICAgIHsibmFtZSIgOiAiYmFhIn0sCisgICAgICAgICAgICAgICAgeyJuYW1lIiA6ICJiYWIifSwK
KyAgICAgICAgICAgIF19LAorICAgICAgICAgICAgeyJuYW1lIiA6ICJiYiIsICJjaGlsZHJlbiI6
WworICAgICAgICAgICAgICAgIHsibmFtZSIgOiAiYmJhIn0sCisgICAgICAgICAgICAgICAgeyJu
YW1lIiA6ICJiYmIifSwKKyAgICAgICAgICAgIF19CisgICAgICAgIF19LAorICAgIF07CisKKyAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiREZTIHByZW9yZGVyOiIpOworICAgIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmZvckFsbFJlY29yZHMocmVjb3JkcywgZHVt
cGVyKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7CisKKyAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiREZTIHBvc3RvcmRlcjoiKTsKKyAgICBXZWJJbnNwZWN0b3IuVGltZWxp
bmVQcmVzZW50YXRpb25Nb2RlbC5mb3JBbGxSZWNvcmRzKHJlY29yZHMsIG51bGwsIGR1bXBlcik7
CisgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKK30KKworPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyBUaW1lbGluZVByZXNlbnRh
dGlvbk1vZGVsLmZvckFsbFJlY29yZHMgZnVuY3Rpb24uPC9wPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVudW0t
c3RhYmlsaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90
aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQKaW5kZXggZDkzMWYxNGUyZjQzZjI2
MGVkMjAxYzQ2ZTlhZTQzMGQzNmMxYjg5MS4uYWQ3Nzg2M2I2OWNjMDgwNDllODc4ZjI1YzQ4OTdm
OWYyYWZkZDBiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Rp
bWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0CkBAIC00
LDYgKzQsNyBAQCBBcHBsaWNhdGlvbnMgb3V0c2lkZSBvZiBXZWJLaXQgZGVwZW5kIG9uIHRoZSBz
dGFiaWxpdHkgb2YgdGhlIG1hcHBpbmcgb2YgdGhlc2UgdAogCiB7CiAgICAgUm9vdCA6ICJSb290
IgorICAgIFByb2dyYW0gOiAiUHJvZ3JhbSIKICAgICBFdmVudERpc3BhdGNoIDogIkV2ZW50RGlz
cGF0Y2giCiAgICAgQmVnaW5GcmFtZSA6ICJCZWdpbkZyYW1lIgogICAgIExheW91dCA6ICJMYXlv
dXQiCg==
</data>
<flag name="review"
          id="158404"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150604</attachid>
            <date>2012-07-03 07:21:06 -0700</date>
            <delta_ts>2012-07-03 08:12:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89584-20120703182104.patch</filename>
            <type>text/plain</type>
            <size>21732</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYzZmQ0NmJmMDk3MWFi
N2M4MDEwYjFkNDllYmZhNWEwMTMxZTFlNC4uMzhlYmVlMzZlYWE5Mzk0ZWNiODc1NGRmYzE0Y2Y5
MTk5Y2Y0NmVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA3LTAzICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBGb3J3YXJkIG1lc3NhZ2UgbG9vcCBpbnN0cnVtZW50YXRpb24gZGF0YSB0byBmcm9u
dGVuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJh
bnNtaXQgY29sbGVjdGVkIG1lc3NhZ2UgbG9vcCB0YXNrcyB0byBpbnNwZWN0b3IgZnJvbnRlbmQu
CisgICAgICAgIE5vdyAiUHJvZ3JhbSIgc2hvdWxkIGJlIGEgdG9wLWxldmVsIGV2ZW50IG9uIGJy
b3dzZXJzIHRoYXQKKyAgICAgICAgc3VwcG9ydCBtZXNzYWdlIGxvb3AgaW5zdHJ1bWVudGF0aW9u
LgorICAgICAgICBGcm9udGVuZCB3YXMgY2hhbmdlZCBzbyB0aGF0IHVzZXIgd2lsbCBub3Qgc2Vl
IGFueSBjaGFuZ2VzLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwOgorICAgICAgICAoVGltZWxpbmVSZWNvcmRUeXBlKToKKyAgICAgICAgQWRkZWQgbmV3
IGV2ZW50IHR5cGUgLSAiUHJvZ3JhbSIKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OndpbGxQcm9jZXNzVGFzayk6CisgICAgICAgIEJlZ2luICJQcm9ncmFtIiBldmVu
dC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFByb2Nlc3NU
YXNrKToKKyAgICAgICAgRmluaXNoICJQcm9ncmFtIiBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAg
RG8gbm90IGFkZCBjb3VudGVycyB0byAiUHJvZ3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojppbm5lclNldEhl
YXBTaXplU3RhdGlzdGljKToKKyAgICAgICAgUmVuYW1lZCBmcm9tICJzZXRIZWFwU2l6ZVN0YXRp
c3RpYyIKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oOgorICAg
ICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9yeVN0
YXRpc3RpY3MucHJvdG90eXBlLl9vblJlY29yZEFkZGVkKToKKyAgICAgICAgVW53cmFwcyAiUHJv
Z3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9yeVN0YXRpc3RpY3MucHJv
dG90eXBlLl9pbm5lclJlY29yZEFkZGVkKToKKyAgICAgICAgUmVuYW1lZCBmcm9tICJfb25SZWNv
cmRBZGRlZCIKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lRnJhbWVDb250
cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9sbGVy
LnByb3RvdHlwZS5fYWRkUmVjb3JkKToKKyAgICAgICAgVW53cmFwcyAiUHJvZ3JhbSIgZXZlbnRz
LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9sbGVyLnByb3RvdHlw
ZS5faW5uZXJBZGRSZWNvcmQpOgorICAgICAgICBSZW5hbWVkIGZyb20gIl9hZGRSZWNvcmQiCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5wcm90b3R5cGUudXBkYXRlLmFwcGVu
ZFJlY29yZCk6CisgICAgICAgIEZpbHRlciBvdXQgIlByb2dyYW0iIGNhdGVnb3J5LgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMucHJvdG90eXBlLnVwZGF0ZSk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVhdGVTdGF0dXNiYXJC
dXR0b25zKToKKyAgICAgICAgRmlsdGVyIG91dCAiUHJvZ3JhbSIgY2F0ZWdvcnkuCisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2lubmVyQWRkUmVjb3JkVG9U
aW1lbGluZSk6CisgICAgICAgIFVud3JhcHMgIlByb2dyYW0iIGV2ZW50cy4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzKToKKyAg
ICAgICAgQWRkZWQgIlByb2dyYW0iIGNhdGVnb3J5LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucmVjb3JkU3R5bGUpOgorICAgICAgICBEaXR0by4KKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5h
ZGRSZWNvcmQpOgorICAgICAgICBVbndyYXBzICJQcm9ncmFtIiBldmVudHMuCisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX2FkZFJlY29y
ZCk6CisgICAgICAgIFJlbmFtZWQgZnJvbSAiYWRkUmVjb3JkIgorCiAyMDEyLTA3LTAyICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbVGV4dHVyZU1h
cHBlcl0gVGhlIFRleHR1cmVNYXBwZXIgc2hvdWxkIHN1cHBvcnQgZWRnZS1kaXN0YW5jZSBhbnRp
LWFudGlhbGlhc2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IGM1NjgwMzc1NDAxZWQ4NDNjY2MwZGRmNDRlZTYwZTIw
MzYyOTNlNjYuLjc2OWQwYTJhM2Y2ZmI3MWMyMWMxYTlhODRkMjNmZWE4Y2E5M2Y2ZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5j
cHAKQEAgLTYwLDYgKzYwLDggQEAgc3RhdGljIGNvbnN0IGNoYXIgaW5jbHVkZU1lbW9yeURldGFp
bHNbXSA9ICJpbmNsdWRlTWVtb3J5RGV0YWlscyI7CiAKIC8vIE11c3QgYmUga2VwdCBpbiBzeW5j
IHdpdGggV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZSBpbiBUaW1lbGluZU1v
ZGVsLmpzCiBuYW1lc3BhY2UgVGltZWxpbmVSZWNvcmRUeXBlIHsKK3N0YXRpYyBjb25zdCBjaGFy
IFByb2dyYW1bXSA9ICJQcm9ncmFtIjsKKwogc3RhdGljIGNvbnN0IGNoYXIgRXZlbnREaXNwYXRj
aFtdID0gIkV2ZW50RGlzcGF0Y2giOwogc3RhdGljIGNvbnN0IGNoYXIgQmVnaW5GcmFtZVtdID0g
IkJlZ2luRnJhbWUiOwogc3RhdGljIGNvbnN0IGNoYXIgTGF5b3V0W10gPSAiTGF5b3V0IjsKQEAg
LTM0MCw3ICszNDIsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxTZW5kUmVz
b3VyY2VSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgYwogICAgICAgICBTdHJpbmcg
ZnJhbWVJZChtX3BhZ2VBZ2VudC0+ZnJhbWVJZChmcmFtZSkpOwogICAgICAgICByZWNvcmRSYXct
PnNldFN0cmluZygiZnJhbWVJZCIsIGZyYW1lSWQpOwogICAgIH0KLSAgICBzZXRIZWFwU2l6ZVN0
YXRpc3RpYyhyZWNvcmRSYXcuZ2V0KCkpOworICAgIHNldEhlYXBTaXplU3RhdGlzdGljcyhyZWNv
cmRSYXcuZ2V0KCkpOwogICAgIC8vIEZJWE1FOiBydW50aW1lQ2FzdCBpcyBhIGhhY2suIFdlIGRv
IGl0IGJlY2F1c2Ugd2UgY2FuJ3QgYnVpbGQgVGltZWxpbmVFdmVudCBkaXJlY3RseSBub3cuCiAg
ICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpUaW1lbGluZTo6VGltZWxpbmVFdmVudD4gcmVjb3JkID0g
VHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpUaW1lbGluZUV2ZW50OjpydW50aW1lQ2FzdChyZWNvcmRS
YXcucmVsZWFzZSgpKTsKICAgICBtX2Zyb250ZW5kLT5ldmVudFJlY29yZGVkKHJlY29yZC5yZWxl
YXNlKCkpOwpAQCAtNDE1LDEyICs0MTcsMTIgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRGaXJlQW5pbWF0aW9uRnJhbWUoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OndpbGxQcm9jZXNzVGFzaygpCiB7Ci0gICAgLy8gVE9ETzogUmVjb3JkIHRhc2sgcHJvY2Vzc2lu
ZyBzdGFydCB0aW1lLgorICAgIHB1c2hDdXJyZW50UmVjb3JkKEluc3BlY3Rvck9iamVjdDo6Y3Jl
YXRlKCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6UHJvZ3JhbSwgZmFsc2UsIDApOwogfQogCiB2b2lk
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFByb2Nlc3NUYXNrKCkKIHsKLSAgICAvLyBUT0RP
OiBSZWNvcmQgdGFzayBwcm9jZXNzaW5nIGVuZCB0aW1lLgorICAgIGRpZENvbXBsZXRlQ3VycmVu
dFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OlByb2dyYW0pOwogfQogCiB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmFkZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IHJlY29yZCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQp
CkBAIC00MzEsMTEgKzQzMywxNSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFkZFJl
Y29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlYwogCiB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmlubmVyQWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gcHJwUmVjb3JkLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0
cmluZyYgZnJhbWVJZCkKIHsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcHJvZ3Jh
bSwgKFRpbWVsaW5lUmVjb3JkVHlwZTo6UHJvZ3JhbSkpOworCiAgICAgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gcmVjb3JkKHBycFJlY29yZCk7CiAgICAgcmVjb3JkLT5zZXRTdHJpbmcoInR5cGUi
LCB0eXBlKTsKICAgICBpZiAoIWZyYW1lSWQuaXNFbXB0eSgpKQogICAgICAgICByZWNvcmQtPnNl
dFN0cmluZygiZnJhbWVJZCIsIGZyYW1lSWQpOwotICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJl
Y29yZC5nZXQoKSk7CisgICAgaWYgKHR5cGUgIT0gcHJvZ3JhbSkKKyAgICAgICAgc2V0SGVhcFNp
emVTdGF0aXN0aWNzKHJlY29yZC5nZXQoKSk7CisKICAgICBpZiAobV9yZWNvcmRTdGFjay5pc0Vt
cHR5KCkpIHsKICAgICAgICAgLy8gRklYTUU6IHJ1bnRpbWVDYXN0IGlzIGEgaGFjay4gV2UgZG8g
aXQgYmVjYXVzZSB3ZSBjYW4ndCBidWlsZCBUaW1lbGluZUV2ZW50IGRpcmVjdGx5IG5vdy4KICAg
ICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpUaW1lbGluZTo6VGltZWxpbmVFdmVudD4gcmVjb3Jk
Q2hlY2tlZCA9IFR5cGVCdWlsZGVyOjpUaW1lbGluZTo6VGltZWxpbmVFdmVudDo6cnVudGltZUNh
c3QocmVjb3JkLnJlbGVhc2UoKSk7CkBAIC00NDYsNyArNDUyLDcgQEAgdm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50Ojppbm5lckFkZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0
b3JPYmplY3QKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c2V0SGVh
cFNpemVTdGF0aXN0aWMoSW5zcGVjdG9yT2JqZWN0KiByZWNvcmQpCit2b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljcyhJbnNwZWN0b3JPYmplY3QqIHJlY29y
ZCkKIHsKICAgICBzaXplX3QgdXNlZEhlYXBTaXplID0gMDsKICAgICBzaXplX3QgdG90YWxIZWFw
U2l6ZSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVs
aW5lQWdlbnQuaAppbmRleCAxODk4ZjZmYzQxNWEzZjE5ZDU3NjQ4M2RmY2ZmMDZkNmFkYjk0Mjhm
Li45NjE4M2MwNjhjYjc0NGJiZWQzNTI2YmZhNTg2MzEzODNjZTlhZDE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTE2MCw4
ICsxNjAsOCBAQCBwcml2YXRlOgogICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3BlY3RvclN0YXRlKiwgSW5zcGVj
dG9yVHlwZSwgSW5zcGVjdG9yQ2xpZW50Kik7CiAKICAgICB2b2lkIHB1c2hDdXJyZW50UmVjb3Jk
KFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNh
cHR1cmVDYWxsU3RhY2ssIEZyYW1lKik7Ci0gICAgdm9pZCBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhJ
bnNwZWN0b3JPYmplY3QqIHJlY29yZCk7Ci0gICAgICAgIAorICAgIHZvaWQgc2V0SGVhcFNpemVT
dGF0aXN0aWNzKEluc3BlY3Rvck9iamVjdCogcmVjb3JkKTsKKwogICAgIHZvaWQgZGlkQ29tcGxl
dGVDdXJyZW50UmVjb3JkKGNvbnN0IFN0cmluZyYgdHlwZSk7CiAgICAgdm9pZCBhcHBlbmRSZWNv
cmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwg
Ym9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFtZSopOwogICAgIHZvaWQgcHVzaENhbmNlbGFibGVS
ZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJpbmcmIHR5cGUsIEZy
YW1lKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01l
bW9yeVN0YXRpc3RpY3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01l
bW9yeVN0YXRpc3RpY3MuanMKaW5kZXggYzkxNWNlNzUyNDYwZGQzMDkyM2ZiMzg1ZjllN2IzY2Yw
Y2IxMDE0ZC4uYWE1MmUyMjJlN2Q3YzgyYmI0MzhiNWFlOGI2NTBhODUzNTIxODUwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZW1vcnlTdGF0aXN0aWNz
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTWVtb3J5U3RhdGlz
dGljcy5qcwpAQCAtMjU3LDE1ICsyNTcsMjAgQEAgV2ViSW5zcGVjdG9yLk1lbW9yeVN0YXRpc3Rp
Y3MucHJvdG90eXBlID0gewogCiAgICAgX29uUmVjb3JkQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQog
ICAgIHsKLSAgICAgICAgdmFyIGNvdW50ZXJzID0gZXZlbnQuZGF0YVsiY291bnRlcnMiXTsKLSAg
ICAgICAgaWYgKCFjb3VudGVycykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5f
Y291bnRlcnMucHVzaCh7Ci0gICAgICAgICAgICB0aW1lOiBldmVudC5kYXRhLmVuZFRpbWUgfHwg
ZXZlbnQuZGF0YS5zdGFydFRpbWUsCi0gICAgICAgICAgICBkb2N1bWVudENvdW50OiBjb3VudGVy
c1siZG9jdW1lbnRzIl0sCi0gICAgICAgICAgICBub2RlQ291bnQ6IGNvdW50ZXJzWyJub2RlcyJd
LAotICAgICAgICAgICAgbGlzdGVuZXJDb3VudDogY291bnRlcnNbImpzRXZlbnRMaXN0ZW5lcnMi
XQotICAgICAgICB9KTsKKyAgICAgICAgdmFyIHN0YXRpc3RpY3MgPSB0aGlzLl9jb3VudGVyczsK
KyAgICAgICAgZnVuY3Rpb24gYWRkU3RhdGlzdGljcyhyZWNvcmQpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHZhciBjb3VudGVycyA9IHJlY29yZFsiY291bnRlcnMiXTsKKyAgICAgICAgICAgIGlm
ICghY291bnRlcnMpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgc3RhdGlz
dGljcy5wdXNoKHsKKyAgICAgICAgICAgICAgICB0aW1lOiByZWNvcmQuZW5kVGltZSB8fCByZWNv
cmQuc3RhcnRUaW1lLAorICAgICAgICAgICAgICAgIGRvY3VtZW50Q291bnQ6IGNvdW50ZXJzWyJk
b2N1bWVudHMiXSwKKyAgICAgICAgICAgICAgICBub2RlQ291bnQ6IGNvdW50ZXJzWyJub2RlcyJd
LAorICAgICAgICAgICAgICAgIGxpc3RlbmVyQ291bnQ6IGNvdW50ZXJzWyJqc0V2ZW50TGlzdGVu
ZXJzIl0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICAgIFdlYkluc3BlY3Rvci5U
aW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmZvckFsbFJlY29yZHMoW2V2ZW50LmRhdGFdLCBudWxs
LCBhZGRTdGF0aXN0aWNzKTsKICAgICB9LAogCiAgICAgX2RyYXc6IGZ1bmN0aW9uKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVGcmFtZUNv
bnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
RnJhbWVDb250cm9sbGVyLmpzCmluZGV4IDRlNDFlMjQzNTNiNGJjZjU0ZGUzZjA5Mjg4ODdmYmUx
MGEyNTRjMTEuLjA2MzgwOTY2ZTMxZTZjMjM2Mjk3MzcwZGM5Yjg1ZjNjN2I3MWU5YmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVGcmFtZUNv
bnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZUZyYW1lQ29udHJvbGxlci5qcwpAQCAtNjEsNiArNjEsMTYgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lRnJhbWVDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKIAogICAgIF9hZGRSZWNvcmQ6IGZ1
bmN0aW9uKHJlY29yZCkKICAgICB7CisgICAgICAgIHZhciByZWNvcmRzOworICAgICAgICBpZiAo
cmVjb3JkLnR5cGUgPT09IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuUHJv
Z3JhbSkKKyAgICAgICAgICAgIHJlY29yZHMgPSByZWNvcmRbImNoaWxkcmVuIl0gfHwgW107Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlY29yZHMgPSBbcmVjb3JkXTsKKyAgICAgICAgcmVj
b3Jkcy5mb3JFYWNoKHRoaXMuX2lubmVyQWRkUmVjb3JkLCB0aGlzKTsKKyAgICB9LAorCisgICAg
X2lubmVyQWRkUmVjb3JkOiBmdW5jdGlvbihyZWNvcmQpCisgICAgewogICAgICAgICBpZiAocmVj
b3JkLnR5cGUgPT09IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuQmVnaW5G
cmFtZSAmJiB0aGlzLl9sYXN0RnJhbWUpCiAgICAgICAgICAgICB0aGlzLl9mbHVzaEZyYW1lKHJl
Y29yZCk7CiAgICAgICAgIGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzCmluZGV4IDAzZmYwZTczNDhmYTNjYzMxZGUwZWMz
ZjU3YzViNGVjMTlmZGVhNjAuLjIwZWJkMGM4NzliOGNkZDBlMzJjM2IwN2U4ZWIzZTYwM2RmNWU4
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lTW9kZWwuanMKQEAgLTQ0LDYgKzQ0LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwg
PSBmdW5jdGlvbigpCiAKIFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUgPSB7
CiAgICAgUm9vdDogIlJvb3QiLAorICAgIFByb2dyYW06ICJQcm9ncmFtIiwKICAgICBFdmVudERp
c3BhdGNoOiAiRXZlbnREaXNwYXRjaCIsCiAKICAgICBCZWdpbkZyYW1lOiAiQmVnaW5GcmFtZSIs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
T3ZlcnZpZXdQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZU92ZXJ2aWV3UGFuZS5qcwppbmRleCA0ZTQ4OTFlYjcwYzAwNjUxZGI2OTQwMzUwNGU2Mzc1
MmEwYWUxMjJlLi4wYTI4YzNiOWVhYjA1ZjZkOWJmNTgxNzFjN2ZmNjcyOWEwYmE0MjUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZp
ZXdQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVPdmVydmlld1BhbmUuanMKQEAgLTg4NSw2ICs4ODUsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxp
bmVDYXRlZ29yeVN0cmlwcy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgcmVjb3JkU3Rh
cnQgPSBNYXRoLmZsb29yKChXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5zdGFydFRpbWVJblNl
Y29uZHMocmVjb3JkKSAtIHRpbWVPZmZzZXQpICogc2NhbGUpOwogICAgICAgICAgICAgdmFyIHJl
Y29yZEVuZCA9IE1hdGguY2VpbCgoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuZW5kVGltZUlu
U2Vjb25kcyhyZWNvcmQpIC0gdGltZU9mZnNldCkgKiBzY2FsZSk7CiAgICAgICAgICAgICB2YXIg
Y2F0ZWdvcnkgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29y
eUZvclJlY29yZChyZWNvcmQpOworICAgICAgICAgICAgaWYgKGNhdGVnb3J5Lm92ZXJ2aWV3U3Ry
aXBHcm91cEluZGV4IDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB2
YXIgYmFyID0gbGFzdEJhckJ5R3JvdXBbY2F0ZWdvcnkub3ZlcnZpZXdTdHJpcEdyb3VwSW5kZXhd
OwogICAgICAgICAgICAgLy8gVGhpcyBiYXIgbWF5IGJlIG1lcmdlZCB3aXRoIHByZXZpb3VzIC0t
IHNvIGp1c3QgYWRqdXN0IHRoZSBwcmV2aW91cyBiYXIuCiAgICAgICAgICAgICBjb25zdCBiYXJz
TWVyZ2VUaHJlc2hvbGQgPSAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IDgzZjVlNTNmYTcxN2M5Mzk3NDdkYmMwYTky
N2NkYTM2NWNhZTgxZjcuLmEyNjY3MzhiZmEwZDM2N2E1MmRjMDYzNTY1M2UyZWFlMDNjMzdhMzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQ
YW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
UGFuZWwuanMKQEAgLTIzMiw2ICsyMzIsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBjYXRlZ29yaWVzID0gV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcmllcygpOwogICAgICAgICBmb3IgKHZhciBjYXRl
Z29yeU5hbWUgaW4gY2F0ZWdvcmllcykgewogICAgICAgICAgICAgdmFyIGNhdGVnb3J5ID0gY2F0
ZWdvcmllc1tjYXRlZ29yeU5hbWVdOworICAgICAgICAgICAgaWYgKGNhdGVnb3J5Lm92ZXJ2aWV3
U3RyaXBHcm91cEluZGV4IDwgMCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIHRoaXMuc3RhdHVzQmFyRmlsdGVycy5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVUaW1lbGlu
ZUNhdGVnb3J5U3RhdHVzQmFyQ2hlY2tib3goY2F0ZWdvcnksIHRoaXMuX29uQ2F0ZWdvcnlDaGVj
a2JveENsaWNrZWQuYmluZCh0aGlzLCBjYXRlZ29yeSkpKTsKICAgICAgICAgfQogICAgIH0sCkBA
IC00OTUsOCArNDk3LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0g
ewogCiAgICAgX2lubmVyQWRkUmVjb3JkVG9UaW1lbGluZTogZnVuY3Rpb24ocmVjb3JkLCBwYXJl
bnRSZWNvcmQpCiAgICAgewotICAgICAgICB2YXIgZm9ybWF0dGVkUmVjb3JkID0gdGhpcy5fcHJl
c2VudGF0aW9uTW9kZWwuYWRkUmVjb3JkKHJlY29yZCwgcGFyZW50UmVjb3JkKTsKLSAgICAgICAg
Kyt0aGlzLl9hbGxSZWNvcmRzQ291bnQ7CisgICAgICAgIHZhciByZWNvcmRzID0gdGhpcy5fcHJl
c2VudGF0aW9uTW9kZWwuYWRkUmVjb3JkKHJlY29yZCwgcGFyZW50UmVjb3JkKTsKKyAgICAgICAg
dGhpcy5fYWxsUmVjb3Jkc0NvdW50ICs9IHJlY29yZHMubGVuZ3RoOwogICAgICAgICB2YXIgcmVj
b3JkVHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlOwogICAgICAg
ICB2YXIgdGltZVN0YW1wUmVjb3JkcyA9IHRoaXMuX3RpbWVTdGFtcFJlY29yZHM7CiAgICAgICAg
IHZhciBoYXNWaXNpYmxlUmVjb3JkcyA9IGZhbHNlOwpAQCAtNTA3LDEwICs1MDksMTQgQEAgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRp
bWVTdGFtcFJlY29yZHMucHVzaChyZWNvcmQpOwogICAgICAgICAgICAgaGFzVmlzaWJsZVJlY29y
ZHMgfD0gcHJlc2VudGF0aW9uTW9kZWwuaXNWaXNpYmxlKHJlY29yZCk7CiAgICAgICAgIH0KLSAg
ICAgICAgdmFyIHJlY29yZHMgPSBbIGZvcm1hdHRlZFJlY29yZCBdOwogICAgICAgICBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5mb3JBbGxSZWNvcmRzKHJlY29yZHMsIHBy
b2Nlc3NSZWNvcmQpOworCisgICAgICAgIGZ1bmN0aW9uIGlzQWRvcHRlZFJlY29yZChyZWNvcmQp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByZWNvcmQucGFyZW50ICE9PSBwcmVzZW50
YXRpb25Nb2RlbC5yb290UmVjb3JkOworICAgICAgICB9CiAgICAgICAgIC8vIFRlbGwgY2FsbGVy
IHVwZGF0ZSBpcyBuZWNlc3NhcnkgZWl0aGVyIGlmIHdlIGFkZGVkIGEgdmlzaWJsZSByZWNvcmQg
b3IgaWYgd2UgcmUtcGFyZW50ZWQgYSByZWNvcmQuCi0gICAgICAgIHJldHVybiBoYXNWaXNpYmxl
UmVjb3JkcyB8fCBmb3JtYXR0ZWRSZWNvcmQucGFyZW50ICE9PSB0aGlzLl9wcmVzZW50YXRpb25N
b2RlbC5yb290UmVjb3JkOworICAgICAgICByZXR1cm4gaGFzVmlzaWJsZVJlY29yZHMgfHwgcmVj
b3Jkcy5zb21lKGlzQWRvcHRlZFJlY29yZCk7CiAgICAgfSwKIAogICAgIHNpZGViYXJSZXNpemVk
OiBmdW5jdGlvbihldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcwppbmRleCBjYzM3
Njc1MDc2ODA4OWU3ODMwZmRlZDJjMDM0NDdlMTA4YzFjY2Q1Li44MGFlMzczNTE2OTdhMTRjYWM3
ODlhMTVmMTdkMDQwZmM2MGFiNmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCkBA
IC00Nyw2ICs0Nyw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmNh
dGVnb3JpZXMgPSBmdW5jdGlvbigpCiAgICAgaWYgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNl
bnRhdGlvbk1vZGVsLl9jYXRlZ29yaWVzKQogICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuX2NhdGVnb3JpZXM7CiAgICAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuX2NhdGVnb3JpZXMgPSB7CisgICAgICAgIHByb2dyYW06
IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeSgicHJvZ3JhbSIsIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiUHJvZ3JhbSIpLCAtMSwgInRyYW5zcGFyZW50IiwgInRyYW5zcGFyZW50Iiwg
InRyYW5zcGFyZW50IiksCiAgICAgICAgIGxvYWRpbmc6IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxp
bmVDYXRlZ29yeSgibG9hZGluZyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9hZGluZyIpLCAw
LCAiIzVBOEJDQyIsICIjOEVCNkU5IiwgIiM3MEEyRTMiKSwKICAgICAgICAgc2NyaXB0aW5nOiBu
ZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoInNjcmlwdGluZyIsIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiU2NyaXB0aW5nIiksIDEsICIjRDhBQTM0IiwgIiNGM0QwN0EiLCAiI0YxQzQ1
MyIpLAogICAgICAgICByZW5kZXJpbmc6IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29y
eSgicmVuZGVyaW5nIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZW5kZXJpbmciKSwgMiwgIiM4
MjY2Q0MiLCAiI0FGOUFFQiIsICIjOUE3RUU2IiksCkBAIC02OCw2ICs2OSw3IEBAIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnJlY29yZFN0eWxlID0gZnVuY3Rpb24ocmVj
b3JkKQogCiAgICAgdmFyIHJlY29yZFN0eWxlcyA9IHt9OwogICAgIHJlY29yZFN0eWxlc1tyZWNv
cmRUeXBlcy5Sb290XSA9IHsgdGl0bGU6ICIjcm9vdCIsIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJs
b2FkaW5nIl0gfTsKKyAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUHJvZ3JhbV0gPSB7IHRp
dGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByb2dyYW0iKSwgY2F0ZWdvcnk6IGNhdGVnb3Jp
ZXNbInByb2dyYW0iXSB9OwogICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5FdmVudERpc3Bh
dGNoXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRXZlbnQiKSwgY2F0ZWdvcnk6
IGNhdGVnb3JpZXNbInNjcmlwdGluZyJdIH07CiAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVz
LkJlZ2luRnJhbWVdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJGcmFtZSBTdGFy
dCIpLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sicmVuZGVyaW5nIl0gfTsKICAgICByZWNvcmRTdHls
ZXNbcmVjb3JkVHlwZXMuTGF5b3V0XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
TGF5b3V0IiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJyZW5kZXJpbmciXSB9OwpAQCAtMTE1LDcg
KzExNyw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmlzRXZlbnRE
aXZpZGVyID0gZnVuY3Rpb24ocmVjb3JkKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyA9IGZ1bmN0aW9u
KHJlY29yZHNBcnJheSwgY2FsbGJhY2spCitXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRp
b25Nb2RlbC5mb3JBbGxSZWNvcmRzID0gZnVuY3Rpb24ocmVjb3Jkc0FycmF5LCBwcmVPcmRlckNh
bGxiYWNrLCBwb3N0T3JkZXJDYWxsYmFjaykKIHsKICAgICBpZiAoIXJlY29yZHNBcnJheSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTI1LDEzICsxMjcsMTggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyA9IGZ1bmN0aW9uKHJlY29yZHNBcnJheSwg
Y2EKICAgICAgICAgdmFyIHJlY29yZHMgPSBlbnRyeS5hcnJheTsKICAgICAgICAgaWYgKGVudHJ5
LmluZGV4IDwgcmVjb3Jkcy5sZW5ndGgpIHsKICAgICAgICAgICAgICB2YXIgcmVjb3JkID0gcmVj
b3Jkc1tlbnRyeS5pbmRleF07Ci0gICAgICAgICAgICAgaWYgKGNhbGxiYWNrKHJlY29yZCkpCisg
ICAgICAgICAgICAgaWYgKHByZU9yZGVyQ2FsbGJhY2sgJiYgcHJlT3JkZXJDYWxsYmFjayhyZWNv
cmQpKQogICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgaWYgKHJlY29yZC5j
aGlsZHJlbikKLSAgICAgICAgICAgICAgICAgc3RhY2sucHVzaCh7YXJyYXk6IHJlY29yZC5jaGls
ZHJlbiwgaW5kZXg6IDB9KTsKKyAgICAgICAgICAgICAgICAgc3RhY2sucHVzaCh7YXJyYXk6IHJl
Y29yZC5jaGlsZHJlbiwgaW5kZXg6IDAsIHJlY29yZDogcmVjb3JkfSk7CisgICAgICAgICAgICAg
ZWxzZSBpZiAocG9zdE9yZGVyQ2FsbGJhY2sgJiYgcG9zdE9yZGVyQ2FsbGJhY2socmVjb3JkKSkK
KyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgKytlbnRyeS5pbmRleDsKLSAg
ICAgICAgfSBlbHNlCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoZW50cnkucmVj
b3JkICYmIHBvc3RPcmRlckNhbGxiYWNrICYmIHBvc3RPcmRlckNhbGxiYWNrKGVudHJ5LnJlY29y
ZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgc3RhY2sucG9wKCk7Cisg
ICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTIwMiwxMiArMjA5LDI3IEBAIFdlYkluc3BlY3Rvci5U
aW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIGFkZFJlY29yZDog
ZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQpCiAgICAgewotICAgICAgICB2YXIgY29ubmVj
dGVkVG9PbGRSZWNvcmQgPSBmYWxzZTsKLSAgICAgICAgdmFyIHJlY29yZFR5cGVzID0gV2ViSW5z
cGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZTsKLQogICAgICAgICBpZiAodGhpcy5fbWlu
aW11bVJlY29yZFRpbWUgPT09IC0xIHx8IHJlY29yZC5zdGFydFRpbWUgPCB0aGlzLl9taW5pbXVt
UmVjb3JkVGltZSkKICAgICAgICAgICAgIHRoaXMuX21pbmltdW1SZWNvcmRUaW1lID0gV2ViSW5z
cGVjdG9yLlRpbWVsaW5lTW9kZWwuc3RhcnRUaW1lSW5TZWNvbmRzKHJlY29yZCk7CiAKKyAgICAg
ICAgdmFyIHJlY29yZHM7CisgICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9y
LlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZS5Qcm9ncmFtKQorICAgICAgICAgICAgcmVjb3JkcyA9
IHJlY29yZC5jaGlsZHJlbjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVjb3JkcyA9IFty
ZWNvcmRdOworCisgICAgICAgIHZhciBmb3JtYXR0ZWRSZWNvcmRzID0gW107CisgICAgICAgIHZh
ciByZWNvcmRzQ291bnQgPSByZWNvcmRzLmxlbmd0aDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCByZWNvcmRzQ291bnQ7ICsraSkKKyAgICAgICAgICAgIGZvcm1hdHRlZFJlY29yZHMucHVz
aCh0aGlzLl9pbm5lckFkZFJlY29yZChyZWNvcmRzW2ldLCBwYXJlbnRSZWNvcmQpKTsKKyAgICAg
ICAgcmV0dXJuIGZvcm1hdHRlZFJlY29yZHM7CisgICAgfSwKKworICAgIF9pbm5lckFkZFJlY29y
ZDogZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQpCisgICAgeworICAgICAgICB2YXIgY29u
bmVjdGVkVG9PbGRSZWNvcmQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHJlY29yZFR5cGVzID0gV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZTsKKwogICAgICAgICBpZiAocmVjb3Jk
LnR5cGUgPT09IHJlY29yZFR5cGVzLk1hcmtET01Db250ZW50IHx8IHJlY29yZC50eXBlID09PSBy
ZWNvcmRUeXBlcy5NYXJrTG9hZCkKICAgICAgICAgICAgIHBhcmVudFJlY29yZCA9IG51bGw7IC8v
IE5vIGJhciBlbnRyeSBmb3IgbG9hZCBldmVudHMuCiAgICAgICAgIGVsc2UgewpAQCAtMjQ3LDcg
KzI2OSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlw
ZSA9IHsKIAogICAgICAgICB2YXIgY2hpbGRyZW5Db3VudCA9IGNoaWxkcmVuID8gY2hpbGRyZW4u
bGVuZ3RoIDogMDsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbkNvdW50OyAr
K2kpCi0gICAgICAgICAgICB0aGlzLmFkZFJlY29yZChjaGlsZHJlbltpXSwgZm9ybWF0dGVkUmVj
b3JkKTsKKyAgICAgICAgICAgIHRoaXMuX2lubmVyQWRkUmVjb3JkKGNoaWxkcmVuW2ldLCBmb3Jt
YXR0ZWRSZWNvcmQpOwogCiAgICAgICAgIGZvcm1hdHRlZFJlY29yZC5jYWxjdWxhdGVBZ2dyZWdh
dGVkU3RhdHMoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcmll
cygpKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDdiOTFkY2RmZDgxNjQzMDRiYzY1MDgyMWQ2OTc3OGZiY2I2ZjJjOWMu
Ljc3MTRjYmQzNzU5MmUwODM2OTllZTMyNGRhZTFjNmI1YjhkN2E4YzEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMi0wNy0wMyAgRXVnZW5lIEtseXVjaG5pa292ICA8ZXVzdGFzLmJ1Z0BnbWFp
bC5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRm9yd2FyZCBtZXNzYWdlIGxvb3AgaW5z
dHJ1bWVudGF0aW9uIGRhdGEgdG8gZnJvbnRlbmQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTU4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRyYW5zbWl0IGNvbGxlY3RlZCBtZXNzYWdlIGxvb3AgdGFz
a3MgdG8gaW5zcGVjdG9yIGZyb250ZW5kLgorICAgICAgICBOb3cgIlByb2dyYW0iIHNob3VsZCBi
ZSBhIHRvcC1sZXZlbCBldmVudCBvbiBicm93c2VycyB0aGF0CisgICAgICAgIHN1cHBvcnQgbWVz
c2FnZSBsb29wIGluc3RydW1lbnRhdGlvbi4KKyAgICAgICAgRnJvbnRlbmQgd2FzIGNoYW5nZWQg
c28gdGhhdCB1c2VyIHdpbGwgbm90IHNlZSBhbnkgY2hhbmdlcy4KKworICAgICAgICAqIGluc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQ6CisKIDIw
MTItMDctMDIgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBMYXlvdXQgVGVzdCBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjZWl2ZS1yZXNwb25z
ZS1ldmVudC5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS1kZnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lLWRmcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTNhNmMxZmVlOWIxM2ExYTNhMTE5MjZk
ZTcxYTgyNDhlOGM3ZjhhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS1kZnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzQgQEAKK1Rlc3RzIFRpbWVs
aW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyBmdW5jdGlvbi4KKworREZTIHByZW9y
ZGVyOgorYQorYWEKK2FhYQorYWFiCithYgorYWJhCithYmIKK2IKK2JhCitiYWEKK2JhYgorYmIK
K2JiYQorYmJiCisKK0RGUyBwb3N0b3JkZXI6CithYWEKK2FhYgorYWEKK2FiYQorYWJiCithYgor
YQorYmFhCitiYWIKK2JhCitiYmEKK2JiYgorYmIKK2IKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lLWRmcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lLWRmcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1ZTQzMTYyMjU0ZGNlOWIxNWRhYWM4NDc5ZjQx
MzE5YTI0MWFjYmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGlt
ZWxpbmUtZGZzLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3ZhciB0ZXN0ID0gZnVuY3Rpb24o
KQoreworICAgIGZ1bmN0aW9uIGR1bXBlcihyZWNvcmQpCisgICAgeworICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdChyZWNvcmQubmFtZSk7CisgICAgfQorCisgICAgdmFyIHJlY29yZHMg
PSBbCisgICAgICAgIHsibmFtZSIgOiAiYSIsICJjaGlsZHJlbiIgOiBbCisgICAgICAgICAgICB7
Im5hbWUiIDogImFhIiwgImNoaWxkcmVuIjogWworICAgICAgICAgICAgICAgIHsibmFtZSIgOiAi
YWFhIn0sCisgICAgICAgICAgICAgICAgeyJuYW1lIiA6ICJhYWIifSwKKyAgICAgICAgICAgIF19
LAorICAgICAgICAgICAgeyJuYW1lIiA6ICJhYiIsICJjaGlsZHJlbiI6WworICAgICAgICAgICAg
ICAgIHsibmFtZSIgOiAiYWJhIn0sCisgICAgICAgICAgICAgICAgeyJuYW1lIiA6ICJhYmIifSwK
KyAgICAgICAgICAgIF19CisgICAgICAgIF19LAorICAgICAgICB7Im5hbWUiIDogImIiLCAiY2hp
bGRyZW4iIDogWworICAgICAgICAgICAgeyJuYW1lIiA6ICJiYSIsICJjaGlsZHJlbiIgOiBbCisg
ICAgICAgICAgICAgICAgeyJuYW1lIiA6ICJiYWEifSwKKyAgICAgICAgICAgICAgICB7Im5hbWUi
IDogImJhYiJ9LAorICAgICAgICAgICAgXX0sCisgICAgICAgICAgICB7Im5hbWUiIDogImJiIiwg
ImNoaWxkcmVuIjpbCisgICAgICAgICAgICAgICAgeyJuYW1lIiA6ICJiYmEifSwKKyAgICAgICAg
ICAgICAgICB7Im5hbWUiIDogImJiYiJ9LAorICAgICAgICAgICAgXX0KKyAgICAgICAgXX0sCisg
ICAgXTsKKworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJERlMgcHJlb3JkZXI6Iik7Cisg
ICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3Jkcyhy
ZWNvcmRzLCBkdW1wZXIpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKKworICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJERlMgcG9zdG9yZGVyOiIpOworICAgIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmZvckFsbFJlY29yZHMocmVjb3JkcywgbnVs
bCwgZHVtcGVyKTsKKyAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworfQorCis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIFRpbWVs
aW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyBmdW5jdGlvbi48L3A+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGlt
ZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dAppbmRleCBkOTMx
ZjE0ZTJmNDNmMjYwZWQyMDFjNDZlOWFlNDMwZDM2YzFiODkxLi5hZDc3ODYzYjY5Y2MwODA0OWU4
NzhmMjVjNDg5N2Y5ZjJhZmRkMGI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3Rl
ZC50eHQKQEAgLTQsNiArNCw3IEBAIEFwcGxpY2F0aW9ucyBvdXRzaWRlIG9mIFdlYktpdCBkZXBl
bmQgb24gdGhlIHN0YWJpbGl0eSBvZiB0aGUgbWFwcGluZyBvZiB0aGVzZSB0CiAKIHsKICAgICBS
b290IDogIlJvb3QiCisgICAgUHJvZ3JhbSA6ICJQcm9ncmFtIgogICAgIEV2ZW50RGlzcGF0Y2gg
OiAiRXZlbnREaXNwYXRjaCIKICAgICBCZWdpbkZyYW1lIDogIkJlZ2luRnJhbWUiCiAgICAgTGF5
b3V0IDogIkxheW91dCIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150611</attachid>
            <date>2012-07-03 08:12:28 -0700</date>
            <delta_ts>2012-07-11 04:39:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89584-20120703191227.patch</filename>
            <type>text/plain</type>
            <size>22750</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE5YjRiYmE0MjQzODY1
Yjk3ZTc1M2U5YWUxMjNiYWU0OTQ1NjI1Mi4uNzQ1MjMwMmY2NmFjZGFiZGUwMTIzNjQ4NzdlNTEx
NTMxMzAyMDdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA3LTAzICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBGb3J3YXJkIG1lc3NhZ2UgbG9vcCBpbnN0cnVtZW50YXRpb24gZGF0YSB0byBmcm9u
dGVuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJh
bnNtaXQgY29sbGVjdGVkIG1lc3NhZ2UgbG9vcCB0YXNrcyB0byBpbnNwZWN0b3IgZnJvbnRlbmQu
CisgICAgICAgIE5vdyAiUHJvZ3JhbSIgc2hvdWxkIGJlIGEgdG9wLWxldmVsIGV2ZW50IG9uIGJy
b3dzZXJzIHRoYXQKKyAgICAgICAgc3VwcG9ydCBtZXNzYWdlIGxvb3AgaW5zdHJ1bWVudGF0aW9u
LgorICAgICAgICBGcm9udGVuZCB3YXMgY2hhbmdlZCBzbyB0aGF0IHVzZXIgd2lsbCBub3Qgc2Vl
IGFueSBjaGFuZ2VzLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwOgorICAgICAgICAoVGltZWxpbmVSZWNvcmRUeXBlKToKKyAgICAgICAgQWRkZWQgbmV3
IGV2ZW50IHR5cGUgLSAiUHJvZ3JhbSIKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OndpbGxQcm9jZXNzVGFzayk6CisgICAgICAgIEJlZ2luICJQcm9ncmFtIiBldmVu
dC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFByb2Nlc3NU
YXNrKToKKyAgICAgICAgRmluaXNoICJQcm9ncmFtIiBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAg
RG8gbm90IGFkZCBjb3VudGVycyB0byAiUHJvZ3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojppbm5lclNldEhl
YXBTaXplU3RhdGlzdGljKToKKyAgICAgICAgUmVuYW1lZCBmcm9tICJzZXRIZWFwU2l6ZVN0YXRp
c3RpYyIKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oOgorICAg
ICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9NZW1vcnlTdGF0aXN0aWNzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9yeVN0
YXRpc3RpY3MucHJvdG90eXBlLl9vblJlY29yZEFkZGVkKToKKyAgICAgICAgVW53cmFwcyAiUHJv
Z3JhbSIgZXZlbnRzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9yeVN0YXRpc3RpY3MucHJv
dG90eXBlLl9pbm5lclJlY29yZEFkZGVkKToKKyAgICAgICAgUmVuYW1lZCBmcm9tICJfb25SZWNv
cmRBZGRlZCIKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lRnJhbWVDb250
cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9sbGVy
LnByb3RvdHlwZS5fYWRkUmVjb3JkKToKKyAgICAgICAgVW53cmFwcyAiUHJvZ3JhbSIgZXZlbnRz
LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9sbGVyLnByb3RvdHlw
ZS5faW5uZXJBZGRSZWNvcmQpOgorICAgICAgICBSZW5hbWVkIGZyb20gIl9hZGRSZWNvcmQiCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5wcm90b3R5cGUudXBkYXRlLmFwcGVu
ZFJlY29yZCk6CisgICAgICAgIEZpbHRlciBvdXQgIlByb2dyYW0iIGNhdGVnb3J5LgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMucHJvdG90eXBlLnVwZGF0ZSk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVhdGVTdGF0dXNiYXJC
dXR0b25zKToKKyAgICAgICAgRmlsdGVyIG91dCAiUHJvZ3JhbSIgY2F0ZWdvcnkuCisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2lubmVyQWRkUmVjb3JkVG9U
aW1lbGluZSk6CisgICAgICAgIFVud3JhcHMgIlByb2dyYW0iIGV2ZW50cy4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzKToKKyAg
ICAgICAgQWRkZWQgIlByb2dyYW0iIGNhdGVnb3J5LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucmVjb3JkU3R5bGUpOgorICAgICAgICBEaXR0by4KKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5h
ZGRSZWNvcmQpOgorICAgICAgICBVbndyYXBzICJQcm9ncmFtIiBldmVudHMuCisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX2FkZFJlY29y
ZCk6CisgICAgICAgIFJlbmFtZWQgZnJvbSAiYWRkUmVjb3JkIgorCiAyMDEyLTA3LTAzICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogZGlzcGxheSB0aW1lIGludGVydmFscyBtZWFzdXJlZCB3aXRoIGNvbnNvbGUudGltZSgpIGFu
ZCBjb25zb2xlLnRpbWVFbmQoKSBpbiBUaW1lbGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IDMwZWQ3Y2Q5OWUyMDVm
MGJiZDE4OTRhYTdiMTg1YzBjZmQ1N2ZkMmEuLmE5NTZhYjI0OTE3Mjk4ZWQ3ZTc5ZTljZTM1YWU1
NWViMjUwMTZhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTYwLDYgKzYwLDggQEAgc3RhdGljIGNvbnN0IGNoYXIg
aW5jbHVkZU1lbW9yeURldGFpbHNbXSA9ICJpbmNsdWRlTWVtb3J5RGV0YWlscyI7CiAKIC8vIE11
c3QgYmUga2VwdCBpbiBzeW5jIHdpdGggV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3Jk
VHlwZSBpbiBUaW1lbGluZU1vZGVsLmpzCiBuYW1lc3BhY2UgVGltZWxpbmVSZWNvcmRUeXBlIHsK
K3N0YXRpYyBjb25zdCBjaGFyIFByb2dyYW1bXSA9ICJQcm9ncmFtIjsKKwogc3RhdGljIGNvbnN0
IGNoYXIgRXZlbnREaXNwYXRjaFtdID0gIkV2ZW50RGlzcGF0Y2giOwogc3RhdGljIGNvbnN0IGNo
YXIgQmVnaW5GcmFtZVtdID0gIkJlZ2luRnJhbWUiOwogc3RhdGljIGNvbnN0IGNoYXIgTGF5b3V0
W10gPSAiTGF5b3V0IjsKQEAgLTM0Miw3ICszNDQsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
YwogICAgICAgICBTdHJpbmcgZnJhbWVJZChtX3BhZ2VBZ2VudC0+ZnJhbWVJZChmcmFtZSkpOwog
ICAgICAgICByZWNvcmRSYXctPnNldFN0cmluZygiZnJhbWVJZCIsIGZyYW1lSWQpOwogICAgIH0K
LSAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhyZWNvcmRSYXcuZ2V0KCkpOworICAgIHNldEhlYXBT
aXplU3RhdGlzdGljcyhyZWNvcmRSYXcuZ2V0KCkpOwogICAgIC8vIEZJWE1FOiBydW50aW1lQ2Fz
dCBpcyBhIGhhY2suIFdlIGRvIGl0IGJlY2F1c2Ugd2UgY2FuJ3QgYnVpbGQgVGltZWxpbmVFdmVu
dCBkaXJlY3RseSBub3cuCiAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpUaW1lbGluZTo6VGltZWxp
bmVFdmVudD4gcmVjb3JkID0gVHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpUaW1lbGluZUV2ZW50Ojpy
dW50aW1lQ2FzdChyZWNvcmRSYXcucmVsZWFzZSgpKTsKICAgICBtX2Zyb250ZW5kLT5ldmVudFJl
Y29yZGVkKHJlY29yZC5yZWxlYXNlKCkpOwpAQCAtNDI3LDEyICs0MjksMTIgQEAgdm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpkaWRGaXJlQW5pbWF0aW9uRnJhbWUoKQogCiB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQcm9jZXNzVGFzaygpCiB7Ci0gICAgLy8gVE9ETzogUmVj
b3JkIHRhc2sgcHJvY2Vzc2luZyBzdGFydCB0aW1lLgorICAgIHB1c2hDdXJyZW50UmVjb3JkKElu
c3BlY3Rvck9iamVjdDo6Y3JlYXRlKCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6UHJvZ3JhbSwgZmFs
c2UsIDApOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFByb2Nlc3NUYXNr
KCkKIHsKLSAgICAvLyBUT0RPOiBSZWNvcmQgdGFzayBwcm9jZXNzaW5nIGVuZCB0aW1lLgorICAg
IGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OlByb2dyYW0pOwog
fQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFkZFJlY29yZFRvVGltZWxpbmUoUGFz
c1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIGZyYW1lSWQpCkBAIC00NDMsMTEgKzQ0NSwxNSBAQCB2b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmFkZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IHJlYwogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmlubmVyQWRkUmVjb3JkVG9U
aW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcHJwUmVjb3JkLCBjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCkKIHsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgcHJvZ3JhbSwgKFRpbWVsaW5lUmVjb3JkVHlwZTo6UHJvZ3JhbSkpOworCiAg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkKHBycFJlY29yZCk7CiAgICAgcmVjb3Jk
LT5zZXRTdHJpbmcoInR5cGUiLCB0eXBlKTsKICAgICBpZiAoIWZyYW1lSWQuaXNFbXB0eSgpKQog
ICAgICAgICByZWNvcmQtPnNldFN0cmluZygiZnJhbWVJZCIsIGZyYW1lSWQpOwotICAgIHNldEhl
YXBTaXplU3RhdGlzdGljKHJlY29yZC5nZXQoKSk7CisgICAgaWYgKHR5cGUgIT0gcHJvZ3JhbSkK
KyAgICAgICAgc2V0SGVhcFNpemVTdGF0aXN0aWNzKHJlY29yZC5nZXQoKSk7CisKICAgICBpZiAo
bV9yZWNvcmRTdGFjay5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gRklYTUU6IHJ1bnRpbWVDYXN0
IGlzIGEgaGFjay4gV2UgZG8gaXQgYmVjYXVzZSB3ZSBjYW4ndCBidWlsZCBUaW1lbGluZUV2ZW50
IGRpcmVjdGx5IG5vdy4KICAgICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpUaW1lbGluZTo6VGlt
ZWxpbmVFdmVudD4gcmVjb3JkQ2hlY2tlZCA9IFR5cGVCdWlsZGVyOjpUaW1lbGluZTo6VGltZWxp
bmVFdmVudDo6cnVudGltZUNhc3QocmVjb3JkLnJlbGVhc2UoKSk7CkBAIC00NTgsNyArNDY0LDcg
QEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojppbm5lckFkZFJlY29yZFRvVGltZWxpbmUo
UGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3QKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6c2V0SGVhcFNpemVTdGF0aXN0aWMoSW5zcGVjdG9yT2JqZWN0KiByZWNvcmQp
Cit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljcyhJbnNw
ZWN0b3JPYmplY3QqIHJlY29yZCkKIHsKICAgICBzaXplX3QgdXNlZEhlYXBTaXplID0gMDsKICAg
ICBzaXplX3QgdG90YWxIZWFwU2l6ZSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCBlNDQ3Yjc5ZmY4NWE3ZGM3NjBhMjRm
NTYyYjUwMTQyNjNiYWRhNWM2Li4wZDcyM2UzOTMwYzZiMjczMTliN2JlZTg1MDFmNGJiM2IyZmE4
YTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmgKQEAgLTE2Myw4ICsxNjMsOCBAQCBwcml2YXRlOgogICAgIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3Bl
Y3RvclN0YXRlKiwgSW5zcGVjdG9yVHlwZSwgSW5zcGVjdG9yQ2xpZW50Kik7CiAKICAgICB2b2lk
IHB1c2hDdXJyZW50UmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiwgY29uc3QgU3Ry
aW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3RhY2ssIEZyYW1lKik7Ci0gICAgdm9pZCBzZXRI
ZWFwU2l6ZVN0YXRpc3RpYyhJbnNwZWN0b3JPYmplY3QqIHJlY29yZCk7Ci0gICAgICAgIAorICAg
IHZvaWQgc2V0SGVhcFNpemVTdGF0aXN0aWNzKEluc3BlY3Rvck9iamVjdCogcmVjb3JkKTsKKwog
ICAgIHZvaWQgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKGNvbnN0IFN0cmluZyYgdHlwZSk7CiAg
ICAgdm9pZCBhcHBlbmRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNv
bnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFtZSopOwogICAgIHZv
aWQgcHVzaENhbmNlbGFibGVSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25z
dCBTdHJpbmcmIHR5cGUsIEZyYW1lKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL01lbW9yeVN0YXRpc3RpY3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL01lbW9yeVN0YXRpc3RpY3MuanMKaW5kZXggYzkxNWNlNzUyNDYwZGQz
MDkyM2ZiMzg1ZjllN2IzY2YwY2IxMDE0ZC4uYWE1MmUyMjJlN2Q3YzgyYmI0MzhiNWFlOGI2NTBh
ODUzNTIxODUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9NZW1vcnlTdGF0aXN0aWNzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvTWVtb3J5U3RhdGlzdGljcy5qcwpAQCAtMjU3LDE1ICsyNTcsMjAgQEAgV2ViSW5zcGVj
dG9yLk1lbW9yeVN0YXRpc3RpY3MucHJvdG90eXBlID0gewogCiAgICAgX29uUmVjb3JkQWRkZWQ6
IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIGNvdW50ZXJzID0gZXZlbnQuZGF0
YVsiY291bnRlcnMiXTsKLSAgICAgICAgaWYgKCFjb3VudGVycykKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgdGhpcy5fY291bnRlcnMucHVzaCh7Ci0gICAgICAgICAgICB0aW1lOiBldmVu
dC5kYXRhLmVuZFRpbWUgfHwgZXZlbnQuZGF0YS5zdGFydFRpbWUsCi0gICAgICAgICAgICBkb2N1
bWVudENvdW50OiBjb3VudGVyc1siZG9jdW1lbnRzIl0sCi0gICAgICAgICAgICBub2RlQ291bnQ6
IGNvdW50ZXJzWyJub2RlcyJdLAotICAgICAgICAgICAgbGlzdGVuZXJDb3VudDogY291bnRlcnNb
ImpzRXZlbnRMaXN0ZW5lcnMiXQotICAgICAgICB9KTsKKyAgICAgICAgdmFyIHN0YXRpc3RpY3Mg
PSB0aGlzLl9jb3VudGVyczsKKyAgICAgICAgZnVuY3Rpb24gYWRkU3RhdGlzdGljcyhyZWNvcmQp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBjb3VudGVycyA9IHJlY29yZFsiY291bnRlcnMi
XTsKKyAgICAgICAgICAgIGlmICghY291bnRlcnMpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgc3RhdGlzdGljcy5wdXNoKHsKKyAgICAgICAgICAgICAgICB0aW1lOiByZWNv
cmQuZW5kVGltZSB8fCByZWNvcmQuc3RhcnRUaW1lLAorICAgICAgICAgICAgICAgIGRvY3VtZW50
Q291bnQ6IGNvdW50ZXJzWyJkb2N1bWVudHMiXSwKKyAgICAgICAgICAgICAgICBub2RlQ291bnQ6
IGNvdW50ZXJzWyJub2RlcyJdLAorICAgICAgICAgICAgICAgIGxpc3RlbmVyQ291bnQ6IGNvdW50
ZXJzWyJqc0V2ZW50TGlzdGVuZXJzIl0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAg
ICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmZvckFsbFJlY29yZHMo
W2V2ZW50LmRhdGFdLCBudWxsLCBhZGRTdGF0aXN0aWNzKTsKICAgICB9LAogCiAgICAgX2RyYXc6
IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lRnJhbWVDb250cm9sbGVyLmpzCmluZGV4IDRlNDFlMjQzNTNiNGJj
ZjU0ZGUzZjA5Mjg4ODdmYmUxMGEyNTRjMTEuLjA2MzgwOTY2ZTMxZTZjMjM2Mjk3MzcwZGM5Yjg1
ZjNjN2I3MWU5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9UaW1lbGluZUZyYW1lQ29udHJvbGxlci5qcwpAQCAtNjEsNiArNjEsMTYg
QEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKIAog
ICAgIF9hZGRSZWNvcmQ6IGZ1bmN0aW9uKHJlY29yZCkKICAgICB7CisgICAgICAgIHZhciByZWNv
cmRzOworICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdlYkluc3BlY3Rvci5UaW1lbGluZU1v
ZGVsLlJlY29yZFR5cGUuUHJvZ3JhbSkKKyAgICAgICAgICAgIHJlY29yZHMgPSByZWNvcmRbImNo
aWxkcmVuIl0gfHwgW107CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlY29yZHMgPSBbcmVj
b3JkXTsKKyAgICAgICAgcmVjb3Jkcy5mb3JFYWNoKHRoaXMuX2lubmVyQWRkUmVjb3JkLCB0aGlz
KTsKKyAgICB9LAorCisgICAgX2lubmVyQWRkUmVjb3JkOiBmdW5jdGlvbihyZWNvcmQpCisgICAg
ewogICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVs
LlJlY29yZFR5cGUuQmVnaW5GcmFtZSAmJiB0aGlzLl9sYXN0RnJhbWUpCiAgICAgICAgICAgICB0
aGlzLl9mbHVzaEZyYW1lKHJlY29yZCk7CiAgICAgICAgIGVsc2UgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzCmluZGV4IGE1ZmFi
MTVlZWM1MGYyNGZjN2ViYTgwYTY0ZmFjYWY4OGU5MTE1OGQuLmIzYjZhNjYxNzI1MGJiZWQyNWI0
YTZiYjc3ZTJlNjdjYmQ2OGE1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMKQEAgLTQ0LDYgKzQ0LDcgQEAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lTW9kZWwgPSBmdW5jdGlvbigpCiAKIFdlYkluc3BlY3Rvci5UaW1lbGluZU1v
ZGVsLlJlY29yZFR5cGUgPSB7CiAgICAgUm9vdDogIlJvb3QiLAorICAgIFByb2dyYW06ICJQcm9n
cmFtIiwKICAgICBFdmVudERpc3BhdGNoOiAiRXZlbnREaXNwYXRjaCIsCiAKICAgICBCZWdpbkZy
YW1lOiAiQmVnaW5GcmFtZSIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qcwppbmRleCA0ZTQ4OTFlYjcwYzAw
NjUxZGI2OTQwMzUwNGU2Mzc1MmEwYWUxMjJlLi4wYTI4YzNiOWVhYjA1ZjZkOWJmNTgxNzFjN2Zm
NjcyOWEwYmE0MjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMKQEAgLTg4NSw2ICs4ODUsOCBAQCBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICB2YXIgcmVjb3JkU3RhcnQgPSBNYXRoLmZsb29yKChXZWJJbnNwZWN0b3IuVGltZWxpbmVN
b2RlbC5zdGFydFRpbWVJblNlY29uZHMocmVjb3JkKSAtIHRpbWVPZmZzZXQpICogc2NhbGUpOwog
ICAgICAgICAgICAgdmFyIHJlY29yZEVuZCA9IE1hdGguY2VpbCgoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lTW9kZWwuZW5kVGltZUluU2Vjb25kcyhyZWNvcmQpIC0gdGltZU9mZnNldCkgKiBzY2FsZSk7
CiAgICAgICAgICAgICB2YXIgY2F0ZWdvcnkgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50
YXRpb25Nb2RlbC5jYXRlZ29yeUZvclJlY29yZChyZWNvcmQpOworICAgICAgICAgICAgaWYgKGNh
dGVnb3J5Lm92ZXJ2aWV3U3RyaXBHcm91cEluZGV4IDwgMCkKKyAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB2YXIgYmFyID0gbGFzdEJhckJ5R3JvdXBbY2F0ZWdvcnkub3ZlcnZp
ZXdTdHJpcEdyb3VwSW5kZXhdOwogICAgICAgICAgICAgLy8gVGhpcyBiYXIgbWF5IGJlIG1lcmdl
ZCB3aXRoIHByZXZpb3VzIC0tIHNvIGp1c3QgYWRqdXN0IHRoZSBwcmV2aW91cyBiYXIuCiAgICAg
ICAgICAgICBjb25zdCBiYXJzTWVyZ2VUaHJlc2hvbGQgPSAyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IDgzZjVlNTNm
YTcxN2M5Mzk3NDdkYmMwYTkyN2NkYTM2NWNhZTgxZjcuLmEyNjY3MzhiZmEwZDM2N2E1MmRjMDYz
NTY1M2UyZWFlMDNjMzdhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTIzMiw2ICsyMzIsOCBAQCBXZWJJbnNwZWN0
b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBjYXRlZ29yaWVzID0g
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcmllcygpOwogICAg
ICAgICBmb3IgKHZhciBjYXRlZ29yeU5hbWUgaW4gY2F0ZWdvcmllcykgewogICAgICAgICAgICAg
dmFyIGNhdGVnb3J5ID0gY2F0ZWdvcmllc1tjYXRlZ29yeU5hbWVdOworICAgICAgICAgICAgaWYg
KGNhdGVnb3J5Lm92ZXJ2aWV3U3RyaXBHcm91cEluZGV4IDwgMCkKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgIHRoaXMuc3RhdHVzQmFyRmlsdGVycy5hcHBlbmRDaGlsZCh0
aGlzLl9jcmVhdGVUaW1lbGluZUNhdGVnb3J5U3RhdHVzQmFyQ2hlY2tib3goY2F0ZWdvcnksIHRo
aXMuX29uQ2F0ZWdvcnlDaGVja2JveENsaWNrZWQuYmluZCh0aGlzLCBjYXRlZ29yeSkpKTsKICAg
ICAgICAgfQogICAgIH0sCkBAIC00OTUsOCArNDk3LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX2lubmVyQWRkUmVjb3JkVG9UaW1lbGluZTogZnVu
Y3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQpCiAgICAgewotICAgICAgICB2YXIgZm9ybWF0dGVk
UmVjb3JkID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuYWRkUmVjb3JkKHJlY29yZCwgcGFyZW50
UmVjb3JkKTsKLSAgICAgICAgKyt0aGlzLl9hbGxSZWNvcmRzQ291bnQ7CisgICAgICAgIHZhciBy
ZWNvcmRzID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuYWRkUmVjb3JkKHJlY29yZCwgcGFyZW50
UmVjb3JkKTsKKyAgICAgICAgdGhpcy5fYWxsUmVjb3Jkc0NvdW50ICs9IHJlY29yZHMubGVuZ3Ro
OwogICAgICAgICB2YXIgcmVjb3JkVHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5S
ZWNvcmRUeXBlOwogICAgICAgICB2YXIgdGltZVN0YW1wUmVjb3JkcyA9IHRoaXMuX3RpbWVTdGFt
cFJlY29yZHM7CiAgICAgICAgIHZhciBoYXNWaXNpYmxlUmVjb3JkcyA9IGZhbHNlOwpAQCAtNTA3
LDEwICs1MDksMTQgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgICAgIHRpbWVTdGFtcFJlY29yZHMucHVzaChyZWNvcmQpOwogICAgICAgICAg
ICAgaGFzVmlzaWJsZVJlY29yZHMgfD0gcHJlc2VudGF0aW9uTW9kZWwuaXNWaXNpYmxlKHJlY29y
ZCk7CiAgICAgICAgIH0KLSAgICAgICAgdmFyIHJlY29yZHMgPSBbIGZvcm1hdHRlZFJlY29yZCBd
OwogICAgICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5mb3JBbGxS
ZWNvcmRzKHJlY29yZHMsIHByb2Nlc3NSZWNvcmQpOworCisgICAgICAgIGZ1bmN0aW9uIGlzQWRv
cHRlZFJlY29yZChyZWNvcmQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByZWNvcmQu
cGFyZW50ICE9PSBwcmVzZW50YXRpb25Nb2RlbC5yb290UmVjb3JkOworICAgICAgICB9CiAgICAg
ICAgIC8vIFRlbGwgY2FsbGVyIHVwZGF0ZSBpcyBuZWNlc3NhcnkgZWl0aGVyIGlmIHdlIGFkZGVk
IGEgdmlzaWJsZSByZWNvcmQgb3IgaWYgd2UgcmUtcGFyZW50ZWQgYSByZWNvcmQuCi0gICAgICAg
IHJldHVybiBoYXNWaXNpYmxlUmVjb3JkcyB8fCBmb3JtYXR0ZWRSZWNvcmQucGFyZW50ICE9PSB0
aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5yb290UmVjb3JkOworICAgICAgICByZXR1cm4gaGFzVmlz
aWJsZVJlY29yZHMgfHwgcmVjb3Jkcy5zb21lKGlzQWRvcHRlZFJlY29yZCk7CiAgICAgfSwKIAog
ICAgIHNpZGViYXJSZXNpemVkOiBmdW5jdGlvbihldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25N
b2RlbC5qcwppbmRleCAyYTJlNmEyNDlmNWY4MTE0NGVmOTA5YTlhMjljMDNhOWUwZjYzZjMwLi5j
MzYzNjVjZjJiZTkyYWE0M2ZjZDhlMjI1OWIxNDU4ODdmNWViMDY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNl
bnRhdGlvbk1vZGVsLmpzCkBAIC00Nyw2ICs0Nyw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBy
ZXNlbnRhdGlvbk1vZGVsLmNhdGVnb3JpZXMgPSBmdW5jdGlvbigpCiAgICAgaWYgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLl9jYXRlZ29yaWVzKQogICAgICAgICByZXR1
cm4gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuX2NhdGVnb3JpZXM7CiAg
ICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuX2NhdGVnb3JpZXMgPSB7
CisgICAgICAgIHByb2dyYW06IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeSgicHJv
Z3JhbSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJvZ3JhbSIpLCAtMSwgIiNCQkJCQkIiLCAi
I0RERERERCIsICIjRkZGRkZGIiksCiAgICAgICAgIGxvYWRpbmc6IG5ldyBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVDYXRlZ29yeSgibG9hZGluZyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9hZGlu
ZyIpLCAwLCAiIzVBOEJDQyIsICIjOEVCNkU5IiwgIiM3MEEyRTMiKSwKICAgICAgICAgc2NyaXB0
aW5nOiBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoInNjcmlwdGluZyIsIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiU2NyaXB0aW5nIiksIDEsICIjRDhBQTM0IiwgIiNGM0QwN0EiLCAi
I0YxQzQ1MyIpLAogICAgICAgICByZW5kZXJpbmc6IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVD
YXRlZ29yeSgicmVuZGVyaW5nIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZW5kZXJpbmciKSwg
MiwgIiM4MjY2Q0MiLCAiI0FGOUFFQiIsICIjOUE3RUU2IiksCkBAIC02OCw2ICs2OSw3IEBAIFdl
Ykluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnJlY29yZFN0eWxlID0gZnVuY3Rp
b24ocmVjb3JkKQogCiAgICAgdmFyIHJlY29yZFN0eWxlcyA9IHt9OwogICAgIHJlY29yZFN0eWxl
c1tyZWNvcmRUeXBlcy5Sb290XSA9IHsgdGl0bGU6ICIjcm9vdCIsIGNhdGVnb3J5OiBjYXRlZ29y
aWVzWyJsb2FkaW5nIl0gfTsKKyAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUHJvZ3JhbV0g
PSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByb2dyYW0iKSwgY2F0ZWdvcnk6IGNh
dGVnb3JpZXNbInByb2dyYW0iXSB9OwogICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5FdmVu
dERpc3BhdGNoXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRXZlbnQiKSwgY2F0
ZWdvcnk6IGNhdGVnb3JpZXNbInNjcmlwdGluZyJdIH07CiAgICAgcmVjb3JkU3R5bGVzW3JlY29y
ZFR5cGVzLkJlZ2luRnJhbWVdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJGcmFt
ZSBTdGFydCIpLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sicmVuZGVyaW5nIl0gfTsKICAgICByZWNv
cmRTdHlsZXNbcmVjb3JkVHlwZXMuTGF5b3V0XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiTGF5b3V0IiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJyZW5kZXJpbmciXSB9OwpAQCAt
MTAzLDcgKzEwNSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnJl
Y29yZFN0eWxlID0gZnVuY3Rpb24ocmVjb3JkKQogCiBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVz
ZW50YXRpb25Nb2RlbC5jYXRlZ29yeUZvclJlY29yZCA9IGZ1bmN0aW9uKHJlY29yZCkKIHsKLSAg
ICByZXR1cm4gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucmVjb3JkU3R5
bGUocmVjb3JkKS5jYXRlZ29yeTsKKyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVByZXNlbnRhdGlvbk1vZGVsLnJlY29yZFN0eWxlKHJlY29yZCkuY2F0ZWdvcnk7CiB9CiAKIFdl
Ykluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmlzRXZlbnREaXZpZGVyID0gZnVu
Y3Rpb24ocmVjb3JkKQpAQCAtMTE3LDcgKzExOSwxMiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
cmVzZW50YXRpb25Nb2RlbC5pc0V2ZW50RGl2aWRlciA9IGZ1bmN0aW9uKHJlY29yZCkKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLVdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LmZvckFsbFJlY29yZHMgPSBmdW5jdGlvbihyZWNvcmRzQXJyYXksIGNhbGxiYWNrKQorLyoqCisg
KiBAcGFyYW0ge0FycmF5fSByZWNvcmRzQXJyYXkKKyAqIEBwYXJhbSB7P2Z1bmN0aW9uKCopfSBw
cmVPcmRlckNhbGxiYWNrCisgKiBAcGFyYW0ge2Z1bmN0aW9uKCopPX0gcG9zdE9yZGVyQ2FsbGJh
Y2sKKyAqLworV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVj
b3JkcyA9IGZ1bmN0aW9uKHJlY29yZHNBcnJheSwgcHJlT3JkZXJDYWxsYmFjaywgcG9zdE9yZGVy
Q2FsbGJhY2spCiB7CiAgICAgaWYgKCFyZWNvcmRzQXJyYXkpCiAgICAgICAgIHJldHVybjsKQEAg
LTEyNywxMyArMTM0LDE4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LmZvckFsbFJlY29yZHMgPSBmdW5jdGlvbihyZWNvcmRzQXJyYXksIGNhCiAgICAgICAgIHZhciBy
ZWNvcmRzID0gZW50cnkuYXJyYXk7CiAgICAgICAgIGlmIChlbnRyeS5pbmRleCA8IHJlY29yZHMu
bGVuZ3RoKSB7CiAgICAgICAgICAgICAgdmFyIHJlY29yZCA9IHJlY29yZHNbZW50cnkuaW5kZXhd
OwotICAgICAgICAgICAgIGlmIChjYWxsYmFjayhyZWNvcmQpKQorICAgICAgICAgICAgIGlmIChw
cmVPcmRlckNhbGxiYWNrICYmIHByZU9yZGVyQ2FsbGJhY2socmVjb3JkKSkKICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIGlmIChyZWNvcmQuY2hpbGRyZW4pCi0gICAgICAg
ICAgICAgICAgIHN0YWNrLnB1c2goe2FycmF5OiByZWNvcmQuY2hpbGRyZW4sIGluZGV4OiAwfSk7
CisgICAgICAgICAgICAgICAgIHN0YWNrLnB1c2goe2FycmF5OiByZWNvcmQuY2hpbGRyZW4sIGlu
ZGV4OiAwLCByZWNvcmQ6IHJlY29yZH0pOworICAgICAgICAgICAgIGVsc2UgaWYgKHBvc3RPcmRl
ckNhbGxiYWNrICYmIHBvc3RPcmRlckNhbGxiYWNrKHJlY29yZCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgICsrZW50cnkuaW5kZXg7Ci0gICAgICAgIH0gZWxzZQorICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGVudHJ5LnJlY29yZCAmJiBwb3N0T3JkZXJD
YWxsYmFjayAmJiBwb3N0T3JkZXJDYWxsYmFjayhlbnRyeS5yZWNvcmQpKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIHN0YWNrLnBvcCgpOworICAgICAgICB9CiAgICAgfQog
fQogCkBAIC0yMDUsMTIgKzIxNywyNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRp
b25Nb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICBhZGRSZWNvcmQ6IGZ1bmN0aW9uKHJlY29yZCwg
cGFyZW50UmVjb3JkKQogICAgIHsKLSAgICAgICAgdmFyIGNvbm5lY3RlZFRvT2xkUmVjb3JkID0g
ZmFsc2U7Ci0gICAgICAgIHZhciByZWNvcmRUeXBlcyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZU1v
ZGVsLlJlY29yZFR5cGU7Ci0KICAgICAgICAgaWYgKHRoaXMuX21pbmltdW1SZWNvcmRUaW1lID09
PSAtMSB8fCByZWNvcmQuc3RhcnRUaW1lIDwgdGhpcy5fbWluaW11bVJlY29yZFRpbWUpCiAgICAg
ICAgICAgICB0aGlzLl9taW5pbXVtUmVjb3JkVGltZSA9IFdlYkluc3BlY3Rvci5UaW1lbGluZU1v
ZGVsLnN0YXJ0VGltZUluU2Vjb25kcyhyZWNvcmQpOwogCisgICAgICAgIHZhciByZWNvcmRzOwor
ICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLlJl
Y29yZFR5cGUuUHJvZ3JhbSkKKyAgICAgICAgICAgIHJlY29yZHMgPSByZWNvcmQuY2hpbGRyZW47
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlY29yZHMgPSBbcmVjb3JkXTsKKworICAgICAg
ICB2YXIgZm9ybWF0dGVkUmVjb3JkcyA9IFtdOworICAgICAgICB2YXIgcmVjb3Jkc0NvdW50ID0g
cmVjb3Jkcy5sZW5ndGg7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkc0NvdW50
OyArK2kpCisgICAgICAgICAgICBmb3JtYXR0ZWRSZWNvcmRzLnB1c2godGhpcy5faW5uZXJBZGRS
ZWNvcmQocmVjb3Jkc1tpXSwgcGFyZW50UmVjb3JkKSk7CisgICAgICAgIHJldHVybiBmb3JtYXR0
ZWRSZWNvcmRzOworICAgIH0sCisKKyAgICBfaW5uZXJBZGRSZWNvcmQ6IGZ1bmN0aW9uKHJlY29y
ZCwgcGFyZW50UmVjb3JkKQorICAgIHsKKyAgICAgICAgdmFyIGNvbm5lY3RlZFRvT2xkUmVjb3Jk
ID0gZmFsc2U7CisgICAgICAgIHZhciByZWNvcmRUeXBlcyA9IFdlYkluc3BlY3Rvci5UaW1lbGlu
ZU1vZGVsLlJlY29yZFR5cGU7CisKICAgICAgICAgc3dpdGNoIChyZWNvcmQudHlwZSkgewogICAg
ICAgICAvLyBObyBiYXIgZW50cnkgZm9yIGxvYWQgZXZlbnRzLgogICAgICAgICBjYXNlIHJlY29y
ZFR5cGVzLk1hcmtET01Db250ZW50OgpAQCAtMjU3LDcgKzI4NCw3IEBAIFdlYkluc3BlY3Rvci5U
aW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB2YXIgY2hp
bGRyZW5Db3VudCA9IGNoaWxkcmVuID8gY2hpbGRyZW4ubGVuZ3RoIDogMDsKICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbkNvdW50OyArK2kpCi0gICAgICAgICAgICB0aGlzLmFk
ZFJlY29yZChjaGlsZHJlbltpXSwgZm9ybWF0dGVkUmVjb3JkKTsKKyAgICAgICAgICAgIHRoaXMu
X2lubmVyQWRkUmVjb3JkKGNoaWxkcmVuW2ldLCBmb3JtYXR0ZWRSZWNvcmQpOwogCiAgICAgICAg
IGZvcm1hdHRlZFJlY29yZC5jYWxjdWxhdGVBZ2dyZWdhdGVkU3RhdHMoV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcmllcygpKTsKIApAQCAtMzk2LDcgKzQyMyw3
IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLlJlY29yZCA9IGZ1bmN0
aW9uKHByZXNlbnRhdGlvbk1vZGVsLCByZWNvCiAKICAgICBzd2l0Y2ggKHJlY29yZC50eXBlKSB7
CiAgICAgY2FzZSByZWNvcmRUeXBlcy5SZXNvdXJjZVNlbmRSZXF1ZXN0OgotICAgICAgICAvLyBN
YWtlIHJlc291cmNlIHJlY2VpdmUgcmVjb3JkIGxhc3Qgc2luY2UgcmVxdWVzdCB3YXMgc2VudDsg
bWFrZSBmaW5pc2ggcmVjb3JkIGxhc3Qgc2luY2UgcmVzcG9uc2UgcmVjZWl2ZWQuCisgICAgLy8g
TWFrZSByZXNvdXJjZSByZWNlaXZlIHJlY29yZCBsYXN0IHNpbmNlIHJlcXVlc3Qgd2FzIHNlbnQ7
IG1ha2UgZmluaXNoIHJlY29yZCBsYXN0IHNpbmNlIHJlc3BvbnNlIHJlY2VpdmVkLgogICAgICAg
ICBwcmVzZW50YXRpb25Nb2RlbC5fc2VuZFJlcXVlc3RSZWNvcmRzW3JlY29yZC5kYXRhWyJyZXF1
ZXN0SWQiXV0gPSB0aGlzOwogICAgICAgICBicmVhazsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYyM2NkZGE0MmY0YmE2
ODRjMDRlNjU0YjlmZmMxZmZlOGIxZDIyOTkuLjlkYjc0NGE1ODZmNGE4ZGQ5NzQ4NmYyNzYwZGVm
ZjFmZjM0MjY2NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNy0wMyAgRXVnZW5lIEts
eXVjaG5pa292ICA8ZXVzdGFzLmJ1Z0BnbWFpbC5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogRm9yd2FyZCBtZXNzYWdlIGxvb3AgaW5zdHJ1bWVudGF0aW9uIGRhdGEgdG8gZnJvbnRlbmQu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTU4NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRyYW5zbWl0
IGNvbGxlY3RlZCBtZXNzYWdlIGxvb3AgdGFza3MgdG8gaW5zcGVjdG9yIGZyb250ZW5kLgorICAg
ICAgICBOb3cgIlByb2dyYW0iIHNob3VsZCBiZSBhIHRvcC1sZXZlbCBldmVudCBvbiBicm93c2Vy
cyB0aGF0CisgICAgICAgIHN1cHBvcnQgbWVzc2FnZSBsb29wIGluc3RydW1lbnRhdGlvbi4KKyAg
ICAgICAgRnJvbnRlbmQgd2FzIGNoYW5nZWQgc28gdGhhdCB1c2VyIHdpbGwgbm90IHNlZSBhbnkg
Y2hhbmdlcy4KKworICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0
YWJpbGl0eS1leHBlY3RlZC50eHQ6CisKIDIwMTItMDctMDMgIEFuZHJleSBLb3N5YWtvdiAgPGNh
c2VxQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBkaXNwbGF5IHRpbWUg
aW50ZXJ2YWxzIG1lYXN1cmVkIHdpdGggY29uc29sZS50aW1lKCkgYW5kIGNvbnNvbGUudGltZUVu
ZCgpIGluIFRpbWVsaW5lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtZGZzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1kZnMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzYTZjMWZlZTliMTNhMWEzYTExOTI2ZGU3MWE4MjQ4
ZThjN2Y4YTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtZGZzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM0IEBACitUZXN0cyBUaW1lbGluZVByZXNl
bnRhdGlvbk1vZGVsLmZvckFsbFJlY29yZHMgZnVuY3Rpb24uCisKK0RGUyBwcmVvcmRlcjoKK2EK
K2FhCithYWEKK2FhYgorYWIKK2FiYQorYWJiCitiCitiYQorYmFhCitiYWIKK2JiCitiYmEKK2Ji
YgorCitERlMgcG9zdG9yZGVyOgorYWFhCithYWIKK2FhCithYmEKK2FiYgorYWIKK2EKK2JhYQor
YmFiCitiYQorYmJhCitiYmIKK2JiCitiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS1kZnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1k
ZnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kNWU0MzE2MjI1NGRjZTliMTVkYWFjODQ3OWY0MTMxOWEyNDFh
Y2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWRm
cy5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKK3sKKyAg
ICBmdW5jdGlvbiBkdW1wZXIocmVjb3JkKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQocmVjb3JkLm5hbWUpOworICAgIH0KKworICAgIHZhciByZWNvcmRzID0gWworICAg
ICAgICB7Im5hbWUiIDogImEiLCAiY2hpbGRyZW4iIDogWworICAgICAgICAgICAgeyJuYW1lIiA6
ICJhYSIsICJjaGlsZHJlbiI6IFsKKyAgICAgICAgICAgICAgICB7Im5hbWUiIDogImFhYSJ9LAor
ICAgICAgICAgICAgICAgIHsibmFtZSIgOiAiYWFiIn0sCisgICAgICAgICAgICBdfSwKKyAgICAg
ICAgICAgIHsibmFtZSIgOiAiYWIiLCAiY2hpbGRyZW4iOlsKKyAgICAgICAgICAgICAgICB7Im5h
bWUiIDogImFiYSJ9LAorICAgICAgICAgICAgICAgIHsibmFtZSIgOiAiYWJiIn0sCisgICAgICAg
ICAgICBdfQorICAgICAgICBdfSwKKyAgICAgICAgeyJuYW1lIiA6ICJiIiwgImNoaWxkcmVuIiA6
IFsKKyAgICAgICAgICAgIHsibmFtZSIgOiAiYmEiLCAiY2hpbGRyZW4iIDogWworICAgICAgICAg
ICAgICAgIHsibmFtZSIgOiAiYmFhIn0sCisgICAgICAgICAgICAgICAgeyJuYW1lIiA6ICJiYWIi
fSwKKyAgICAgICAgICAgIF19LAorICAgICAgICAgICAgeyJuYW1lIiA6ICJiYiIsICJjaGlsZHJl
biI6WworICAgICAgICAgICAgICAgIHsibmFtZSIgOiAiYmJhIn0sCisgICAgICAgICAgICAgICAg
eyJuYW1lIiA6ICJiYmIifSwKKyAgICAgICAgICAgIF19CisgICAgICAgIF19LAorICAgIF07CisK
KyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiREZTIHByZW9yZGVyOiIpOworICAgIFdlYklu
c3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmZvckFsbFJlY29yZHMocmVjb3Jkcywg
ZHVtcGVyKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7CisKKyAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiREZTIHBvc3RvcmRlcjoiKTsKKyAgICBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5mb3JBbGxSZWNvcmRzKHJlY29yZHMsIG51bGwsIGR1bXBl
cik7CisgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKK30KKworPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyBUaW1lbGluZVByZXNl
bnRhdGlvbk1vZGVsLmZvckFsbFJlY29yZHMgZnVuY3Rpb24uPC9wPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVu
dW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQKaW5kZXggZjE1ZTg5YTk4MGM0
MzE3NDhiNmFhODQ0ZWI0MGQxNjQzNzZlZjFjYS4uM2VhNzNiYWJmMWYzYmZjZTg2YmJkNzM1OWVk
YjNkZDRiZDE5MmMxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
L3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0CkBA
IC00LDYgKzQsNyBAQCBBcHBsaWNhdGlvbnMgb3V0c2lkZSBvZiBXZWJLaXQgZGVwZW5kIG9uIHRo
ZSBzdGFiaWxpdHkgb2YgdGhlIG1hcHBpbmcgb2YgdGhlc2UgdAogCiB7CiAgICAgUm9vdCA6ICJS
b290IgorICAgIFByb2dyYW0gOiAiUHJvZ3JhbSIKICAgICBFdmVudERpc3BhdGNoIDogIkV2ZW50
RGlzcGF0Y2giCiAgICAgQmVnaW5GcmFtZSA6ICJCZWdpbkZyYW1lIgogICAgIExheW91dCA6ICJM
YXlvdXQiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>