<?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>37820</bug_id>
          
          <creation_ts>2010-04-19 13:59:07 -0700</creation_ts>
          <short_desc>Web Inspector: Aggregated time stats should be visible in Timeline record Popup</short_desc>
          <delta_ts>2010-04-26 06:39:31 -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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>pfeldman</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>214229</commentid>
    <comment_count>0</comment_count>
      <attachid>53716</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-19 13:59:07 -0700</bug_when>
    <thetext>Created attachment 53716
screenshot of Popup with aggregated time info

%SUBJ%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214243</commentid>
    <comment_count>1</comment_count>
      <attachid>53721</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-19 14:15:02 -0700</bug_when>
    <thetext>Created attachment 53721
[patch] initial version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214254</commentid>
    <comment_count>2</comment_count>
      <attachid>53721</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-19 14:41:13 -0700</bug_when>
    <thetext>Comment on attachment 53721
[patch] initial version.

I don&apos;t think that popover is informative enough. You might want to do a little pie chart or use legend with corresponding colors instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214666</commentid>
    <comment_count>3</comment_count>
      <attachid>53819</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-20 08:00:57 -0700</bug_when>
    <thetext>Created attachment 53819
screenshot of Popup with aggregated time info and with self|cpu|total bars</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214797</commentid>
    <comment_count>4</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-04-20 11:33:08 -0700</bug_when>
    <thetext>I really like the second version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214799</commentid>
    <comment_count>5</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-04-20 11:33:29 -0700</bug_when>
    <thetext>Maybe we should hide anything with 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214943</commentid>
    <comment_count>6</comment_count>
      <attachid>53880</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-20 14:21:17 -0700</bug_when>
    <thetext>Created attachment 53880
[patch] second iteration.

has binary changes.
1) Legend boxes was added to the Aggregated Time row data in Popup;
2) three bars with different opacity are used for one record. Solid is for Self Time, with opacity 0.6 for aggregated cpu time of the record and it&apos;s children and with opacity 0.2 for duration; 
3) Duration property is changed. Now it is time between startTime and lastChildEndTime (was time between start and end of real event);
4) Title of popup is fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216411</commentid>
    <comment_count>7</comment_count>
      <attachid>54160</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-23 08:11:44 -0700</bug_when>
    <thetext>Created attachment 54160
[patch] Second iteration.

pushGCEvents crash was fixed.
aggregated stats propagation to the parents was fixed.
incorrect calculation of visible records count was fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216420</commentid>
    <comment_count>8</comment_count>
      <attachid>54160</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-23 08:24:02 -0700</bug_when>
    <thetext>Comment on attachment 54160
[patch] Second iteration.

r+ with comments. please address them prior to landing.

WebCore/inspector/InspectorTimelineAgent.cpp:59
 +  	if (m_gcEvents.size()) {
Replace with guard expression?

WebCore/inspector/front-end/TimelinePanel.js:1005
 +      _calculateAggregatedStats: function(categories)
It would be great to remove the 0.00001 hack and to do as much of this as possible lazily (i.e. only calculate self time on record add).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217062</commentid>
    <comment_count>9</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-04-26 06:39:31 -0700</bug_when>
    <thetext>Committed r58242: &lt;http://trac.webkit.org/changeset/58242&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>53716</attachid>
            <date>2010-04-19 13:59:07 -0700</date>
            <delta_ts>2010-04-20 08:00:57 -0700</delta_ts>
            <desc>screenshot of Popup with aggregated time info</desc>
            <filename>Picture 17.png</filename>
            <type>image/png</type>
            <size>28011</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">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
vQb+PyskWrVjb83bAAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53721</attachid>
            <date>2010-04-19 14:15:02 -0700</date>
            <delta_ts>2010-04-20 14:21:17 -0700</delta_ts>
            <desc>[patch] initial version.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>7270</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzI3ZmNlMC4uOTQ1NDkzZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNC0xOSAgSWx5YSBUaWtob25v
dnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9yOiBBZ2dyZWdhdGVkIHN0YXRzIG9mIHRp
bWUgc3BlbnQgaW4gY2hpbGRyZW4gcmVjb3JkcyBzaG91bGQgYmUgdmlzaWJsZQorICAgICAgICBp
biB0aGUgcG9wdXAgcGFuZWwgb2YgcGFyZW50IHJlY29yZC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3ODIwCisKKyAgICAgICAgKiBFbmdsaXNoLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9U
aW1lbGluZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJv
dG90eXBlLl9pbm5lckFkZFJlY29yZFRvVGltZWxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVhdGVSb290UmVjb3JkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fc2hvd1BvcG92ZXIpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5cGUuX2dl
bmVyYXRlUG9wdXBDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVs
LkZvcm1hdHRlZFJlY29yZC5wcm90b3R5cGUuX2dldFJlY29yZERldGFpbHMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZS5fY2Fs
Y3VsYXRlQWdncmVnYXRlZFN0YXRzKToKKwogMjAxMC0wNC0xOCAgU2ltb24gSGF1c21hbm4gIDxz
aW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTGFzemxvIEdv
bWJvcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzIGIvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggYTU5
YmE4My4uNDYxNTA2OCAxMDA2NDQKQmluYXJ5IGZpbGVzIGEvV2ViQ29yZS9FbmdsaXNoLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanMgYW5kIGIvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanMgZGlmZmVyCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZVBhbmVsLmpzCmluZGV4IDdiM2UzYjAuLjk5YThhNzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC0zMDUsMTMgKzMwNSwyMSBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvciAodmFyIGkgPSAw
OyByZWNvcmQuY2hpbGRyZW4gJiYgaSA8IHJlY29yZC5jaGlsZHJlbi5sZW5ndGg7ICsraSkKICAg
ICAgICAgICAgIHRoaXMuX2lubmVyQWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQuY2hpbGRyZW5b
aV0sIGZvcm1hdHRlZFJlY29yZCk7CiAKKyAgICAgICAgZm9ybWF0dGVkUmVjb3JkLl9jYWxjdWxh
dGVBZ2dyZWdhdGVkU3RhdHModGhpcy5jYXRlZ29yaWVzKTsKKwogICAgICAgICBpZiAoY29ubmVj
dGVkVG9PbGRSZWNvcmQpIHsKICAgICAgICAgICAgIHZhciByZWNvcmQgPSBmb3JtYXR0ZWRSZWNv
cmQ7Ci0gICAgICAgICAgICB3aGlsZSAocmVjb3JkLnBhcmVudCAmJiByZWNvcmQucGFyZW50Ll9s
YXN0Q2hpbGRFbmRUaW1lIDwgcmVjb3JkLl9sYXN0Q2hpbGRFbmRUaW1lKSB7Ci0gICAgICAgICAg
ICAgICAgcmVjb3JkLnBhcmVudC5fbGFzdENoaWxkRW5kVGltZSA9IHJlY29yZC5fbGFzdENoaWxk
RW5kVGltZTsKLSAgICAgICAgICAgICAgICByZWNvcmQgPSByZWNvcmQucGFyZW50OwotICAgICAg
ICAgICAgfQotICAgICAgICB9CisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgdmFy
IHBhcmVudCA9IHJlY29yZC5wYXJlbnQ7CisgICAgICAgICAgICAgICAgaWYgKHBhcmVudC5fbGFz
dENoaWxkRW5kVGltZSA8IHJlY29yZC5fbGFzdENoaWxkRW5kVGltZSkKKyAgICAgICAgICAgICAg
ICAgICAgcGFyZW50Ll9sYXN0Q2hpbGRFbmRUaW1lID0gcmVjb3JkLl9sYXN0Q2hpbGRFbmRUaW1l
OworICAgICAgICAgICAgICAgIGZvciAodmFyIGNhdGVnb3J5IGluIHJlY29yZC5fYWdncmVnYXRl
ZFN0YXRzKQorICAgICAgICAgICAgICAgICAgICBwYXJlbnQuX2FnZ3JlZ2F0ZWRTdGF0c1tjYXRl
Z29yeV0gKz0gcmVjb3JkLl9hZ2dyZWdhdGVkU3RhdHNbY2F0ZWdvcnldOworICAgICAgICAgICAg
ICAgIHJlY29yZCA9IHBhcmVudDsKKyAgICAgICAgICAgIH0gd2hpbGUgKHJlY29yZC5wYXJlbnQp
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGlmIChwYXJlbnRSZWNvcmQgIT09IHRoaXMu
X3Jvb3RSZWNvcmQpCisgICAgICAgICAgICAgICAgcGFyZW50UmVjb3JkLl9zZWxmVGltZSAtPSBm
b3JtYXR0ZWRSZWNvcmQuZW5kVGltZSAtIGZvcm1hdHRlZFJlY29yZC5zdGFydFRpbWU7CiAKICAg
ICAgICAgLy8gS2VlcCBiYXIgZW50cnkgZm9yIG1hcmsgdGltZWxpbmUgc2luY2UgbmVzdGluZyBt
aWdodCBiZSBpbnRlcmVzdGluZyB0byB0aGUgdXNlci4KICAgICAgICAgaWYgKHJlY29yZC50eXBl
ID09PSByZWNvcmRUeXBlcy5NYXJrVGltZWxpbmUpCkBAIC0zNDQsNiArMzUyLDcgQEAgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICByb290UmVjb3JkLmNo
aWxkcmVuID0gW107CiAgICAgICAgIHJvb3RSZWNvcmQuX3Zpc2libGVSZWNvcmRzQ291bnQgPSAw
OwogICAgICAgICByb290UmVjb3JkLl9hbGxSZWNvcmRzQ291bnQgPSAwOworICAgICAgICByb290
UmVjb3JkLl9hZ2dyZWdhdGVkU3RhdHMgPSB7fTsKICAgICAgICAgcmV0dXJuIHJvb3RSZWNvcmQ7
CiAgICAgfSwKIApAQCAtNTUwLDcgKzU1OSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVs
LnByb3RvdHlwZSA9IHsKICAgICBfc2hvd1BvcG92ZXI6IGZ1bmN0aW9uKGFuY2hvcikKICAgICB7
CiAgICAgICAgIHZhciByZWNvcmQgPSBhbmNob3Iucm93Ll9yZWNvcmQ7Ci0gICAgICAgIHZhciBw
b3BvdmVyID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVyKHJlY29yZC5fZ2VuZXJhdGVQb3B1cENv
bnRlbnQodGhpcy5fY2FsY3VsYXRvcikpOworICAgICAgICB2YXIgcG9wb3ZlciA9IG5ldyBXZWJJ
bnNwZWN0b3IuUG9wb3ZlcihyZWNvcmQuX2dlbmVyYXRlUG9wdXBDb250ZW50KHRoaXMuX2NhbGN1
bGF0b3IsIHRoaXMuY2F0ZWdvcmllcykpOwogICAgICAgICBwb3BvdmVyLnNob3coYW5jaG9yKTsK
ICAgICAgICAgcmV0dXJuIHBvcG92ZXI7CiAgICAgfSwKQEAgLTc3OSw2ICs3ODgsNyBAQCBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQgPSBmdW5jdGlvbihyZWNvcmQs
IHBhcmVudFJlY29yZCwgcmVjbwogICAgIHRoaXMuY291bnQgPSAxOwogICAgIHRoaXMudHlwZSA9
IHJlY29yZC50eXBlOwogICAgIHRoaXMuZW5kVGltZSA9ICh0eXBlb2YgcmVjb3JkLmVuZFRpbWUg
IT09ICJ1bmRlZmluZWQiKSA/IHJlY29yZC5lbmRUaW1lIC8gMTAwMCA6IHRoaXMuc3RhcnRUaW1l
OworICAgIHRoaXMuX3NlbGZUaW1lID0gdGhpcy5lbmRUaW1lIC0gdGhpcy5zdGFydFRpbWU7CiAg
ICAgdGhpcy5fbGFzdENoaWxkRW5kVGltZSA9IHRoaXMuZW5kVGltZTsKICAgICB0aGlzLm9yaWdp
bmFsUmVjb3JkRm9yVGVzdHMgPSByZWNvcmQ7CiAgICAgdGhpcy5jYWxsZXJTY3JpcHROYW1lID0g
cmVjb3JkLmNhbGxlclNjcmlwdE5hbWU7CkBAIC04NjMsNyArODczLDcgQEAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0
dXJuIHJvdzsKICAgICB9LAogCi0gICAgX2dlbmVyYXRlUG9wdXBDb250ZW50OiBmdW5jdGlvbihj
YWxjdWxhdG9yKQorICAgIF9nZW5lcmF0ZVBvcHVwQ29udGVudDogZnVuY3Rpb24oY2FsY3VsYXRv
ciwgY2F0ZWdvcmllcykKICAgICB7CiAgICAgICAgIHZhciByZWNvcmRDb250ZW50VGFibGUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpOwogICAgICAgICB2YXIgdGl0bGVDZWxsID0g
dGhpcy5fY3JlYXRlQ2VsbChXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVzIC0gRGV0YWlscyIsIHRo
aXMudGl0bGUpLCAidGltZWxpbmUtZGV0YWlscy10aXRsZSIpOwpAQCAtODcxLDkgKzg4MSwxNSBA
QCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQucHJvdG90eXBlID0g
ewogICAgICAgICB2YXIgdGl0bGVSb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpOwog
ICAgICAgICB0aXRsZVJvdy5hcHBlbmRDaGlsZCh0aXRsZUNlbGwpOwogICAgICAgICByZWNvcmRD
b250ZW50VGFibGUuYXBwZW5kQ2hpbGQodGl0bGVSb3cpOworCiAgICAgICAgIHZhciB0ZXh0ID0g
TnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLmVuZFRpbWUgLSB0aGlzLnN0YXJ0VGltZSkgKyAi
IChAIiArCiAgICAgICAgIGNhbGN1bGF0b3IuZm9ybWF0VmFsdWUodGhpcy5zdGFydFRpbWUgLSBj
YWxjdWxhdG9yLm1pbmltdW1Cb3VuZGFyeSkgKyAiKSI7CiAgICAgICAgIHJlY29yZENvbnRlbnRU
YWJsZS5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJE
dXJhdGlvbiIpLCB0ZXh0KSk7CisgICAgICAgIGlmICh0aGlzLl9jaGlsZHJlbiAmJiB0aGlzLl9j
aGlsZHJlbi5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJlY29yZENvbnRlbnRUYWJsZS5hcHBlbmRD
aGlsZCh0aGlzLl9jcmVhdGVSb3coIkFnZ3JlZ2F0ZWQgVGltZSIsIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiJXMgU2VsZiIsIE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5fc2VsZlRpbWUpKSkp
OworICAgICAgICAgICAgZm9yICh2YXIgaW5kZXggaW4gdGhpcy5fYWdncmVnYXRlZFN0YXRzKQor
ICAgICAgICAgICAgICAgIHJlY29yZENvbnRlbnRUYWJsZS5hcHBlbmRDaGlsZCh0aGlzLl9jcmVh
dGVSb3coIiIsIE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5fYWdncmVnYXRlZFN0YXRzW2lu
ZGV4XSkgKyAiICIgKyBjYXRlZ29yaWVzW2luZGV4XS50aXRsZSkpOworICAgICAgICB9CiAKICAg
ICAgICAgY29uc3QgcmVjb3JkVHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNv
cmRUeXBlOwogICAgICAgICBpZiAodGhpcy5kZXRhaWxzKSB7CkBAIC05MjIsMTAgKzkzOCw5IEBA
IFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICB2YXIgbGluayA9IFdlYkluc3BlY3Rvci5saW5raWZ5UmVzb3VyY2VBc05v
ZGUodGhpcy5jYWxsZXJTY3JpcHROYW1lLCAic2NyaXB0cyIsIHRoaXMuY2FsbGVyU2NyaXB0TGlu
ZSk7CiAgICAgICAgICAgICByZWNvcmRDb250ZW50VGFibGUuYXBwZW5kQ2hpbGQodGhpcy5fY3Jl
YXRlTGlua1JvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhbGxlciIpLCBsaW5rKSk7CiAgICAg
ICAgIH0KLSAgICAgICAgaWYgKHRoaXMudXNlZEhlYXBTaXplKSB7Ci0gICAgICAgICAgICByZWNv
cmRDb250ZW50VGFibGUuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlUm93KFdlYkluc3BlY3Rvci5V
SVN0cmluZygiVXNlZCBIZWFwIFNpemUiKSwgTnVtYmVyLmJ5dGVzVG9TdHJpbmcodGhpcy51c2Vk
SGVhcFNpemUpKSk7Ci0gICAgICAgICAgICByZWNvcmRDb250ZW50VGFibGUuYXBwZW5kQ2hpbGQo
dGhpcy5fY3JlYXRlUm93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiVG90YWwgSGVhcCBTaXplIiks
IE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMudG90YWxIZWFwU2l6ZSkpKTsKLSAgICAgICAgfQor
ICAgICAgICBpZiAodGhpcy51c2VkSGVhcFNpemUpCisgICAgICAgICAgICByZWNvcmRDb250ZW50
VGFibGUuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlUm93KFdlYkluc3BlY3Rvci5VSVN0cmluZygi
VXNlZCBIZWFwIFNpemUiKSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlcyBvZiAlcyIsIE51bWJl
ci5ieXRlc1RvU3RyaW5nKHRoaXMudXNlZEhlYXBTaXplKSwgTnVtYmVyLmJ5dGVzVG9TdHJpbmco
dGhpcy50b3RhbEhlYXBTaXplKSkpKTsKKwogICAgICAgICByZXR1cm4gcmVjb3JkQ29udGVudFRh
YmxlOwogICAgIH0sCiAKQEAgLTk1Nyw2ICs5NzIsMjIgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICAgICAgcmV0dXJuICIiOwogICAgICAgICB9CisgICAgfSwKKworICAgIF9j
YWxjdWxhdGVBZ2dyZWdhdGVkU3RhdHM6IGZ1bmN0aW9uKGNhdGVnb3JpZXMpCisgICAgeworICAg
ICAgICB0aGlzLl9hZ2dyZWdhdGVkU3RhdHMgPSB7fTsKKyAgICAgICAgZm9yICh2YXIgY2F0ZWdv
cnkgaW4gY2F0ZWdvcmllcykKKyAgICAgICAgICAgIHRoaXMuX2FnZ3JlZ2F0ZWRTdGF0c1tjYXRl
Z29yeV0gPSAwOworCisgICAgICAgIGlmICh0aGlzLl9jaGlsZHJlbikgeworICAgICAgICAgICAg
Zm9yICh2YXIgaW5kZXggPSB0aGlzLl9jaGlsZHJlbi5sZW5ndGg7IGluZGV4OyAtLWluZGV4KSB7
CisgICAgICAgICAgICAgICAgdmFyIGNoaWxkID0gdGhpcy5fY2hpbGRyZW5baW5kZXggLSAxXTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9hZ2dyZWdhdGVkU3RhdHNbY2hpbGQuY2F0ZWdvcnkubmFt
ZV0gKz0gY2hpbGQuX3NlbGZUaW1lOyAKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBjYXRlZ29y
eSBpbiBjYXRlZ29yaWVzKQorICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZ2dyZWdhdGVkU3Rh
dHNbY2F0ZWdvcnldICs9IGNoaWxkLl9hZ2dyZWdhdGVkU3RhdHNbY2F0ZWdvcnldOworICAgICAg
ICAgICAgfQorICAgICAgICB9CiAgICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>53819</attachid>
            <date>2010-04-20 08:00:57 -0700</date>
            <delta_ts>2010-04-20 08:00:57 -0700</delta_ts>
            <desc>screenshot of Popup with aggregated time info and with self|cpu|total bars</desc>
            <filename>Picture 18.png</filename>
            <type>image/png</type>
            <size>14489</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">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
AAAASUVORK5CYII=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53880</attachid>
            <date>2010-04-20 14:21:17 -0700</date>
            <delta_ts>2010-04-23 08:11:44 -0700</delta_ts>
            <desc>[patch] second iteration.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>14418</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzI3ZmNlMC4uNDE5NzlkZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0wNC0yMCAgSWx5YSBUaWtob25v
dnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9yOiBBZ2dyZWdhdGVkIHN0YXRzIG9mIHRp
bWUgc3BlbnQgaW4gY2hpbGRyZW4gcmVjb3JkcyBzaG91bGQgYmUgdmlzaWJsZQorICAgICAgICBp
biB0aGUgcG9wdXAgcGFuZWwgb2YgcGFyZW50IHJlY29yZC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3ODIwCisKKyAgICAgICAgKiBFbmdsaXNoLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9U
aW1lbGluZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJv
dG90eXBlLl9pbm5lckFkZFJlY29yZFRvVGltZWxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVhdGVSb290UmVjb3JkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fc2hvd1BvcG92ZXIpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2FsY3VsYXRvci5wcm90b3R5cGUuY29tcHV0ZUJhckdy
YXBoUGVyY2VudGFnZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2FsY3VsYXRv
ci5wcm90b3R5cGUuY29tcHV0ZUJhckdyYXBoV2luZG93UG9zaXRpb24pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkR3JhcGhSb3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUmVjb3JkR3JhcGhSb3cucHJvdG90eXBlLnVwZGF0ZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZS5fZ2VuZXJhdGVB
Z2dyZWdhdGVkSW5mbyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3Jt
YXR0ZWRSZWNvcmQucHJvdG90eXBlLl9nZW5lcmF0ZVBvcHVwQ29udGVudCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQucHJvdG90eXBlLl9nZXRS
ZWNvcmREZXRhaWxzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1h
dHRlZFJlY29yZC5wcm90b3R5cGUuX2NhbGN1bGF0ZUFnZ3JlZ2F0ZWRTdGF0cyk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzOgorICAgICAgICAoLnRpbWVsaW5l
LWdyYXBoLWJhci53aXRoLWNoaWxkcmVuKToKKyAgICAgICAgKC50aW1lbGluZS1ncmFwaC1iYXIu
Y3B1KToKKyAgICAgICAgKC50aW1lbGluZS1hZ2dyZWdhdGVkLWNhdGVnb3J5KToKKyAgICAgICAg
KC50aW1lbGluZS1sb2FkaW5nKToKKyAgICAgICAgKC5wb3BvdmVyIC50aW1lbGluZS1hZ2dyZWdh
dGVkLWNhdGVnb3J5LnRpbWVsaW5lLWxvYWRpbmcpOgorICAgICAgICAoLnRpbWVsaW5lLXNjcmlw
dGluZyk6CisgICAgICAgICgudGltZWxpbmUtcmVuZGVyaW5nKToKKyAgICAgICAgKC50aW1lbGlu
ZS1kZXRhaWxzLXRpdGxlKToKKwogMjAxMC0wNC0xOCAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5o
YXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTGFzemxvIEdvbWJvcy4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIv
V2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggYTU5YmE4MzM2
NDc1ZjYxZWE1YmViNmJkN2ZjYTk4YmYxZTdhNjg5Zi4uNDI0ZmM2ZTNkMGVjNmQ2NGY2OTU1ZGU4
YzRjMzM3NThlYzQ4MzY4YSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAxMjYKemNtWjNz
aXNgfXtyVlZPU0N0SGNCT31AYSojLTdpUiMtUEJVSXlzUzVsKW82cmc3TylSNypyLUp2Zz1MYHNB
T1lJCnpvOXlUekllQ0g7OD43UEh6KDhYYE19fkFERU1pQ25sOEZvQDQ1XmR0SnRVUGRMPlc/bT03
bGgxR1VOaFBEbHUzeQpGMDA4VTs5Smx9ZwoKZGVsdGEgOQpRY21jYnhoSDJSPHJWVk9TMFQlV0lK
T0JVeQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBh
bmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5k
ZXggN2IzZTNiMC4uNmJjNTgxMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lUGFuZWwuanMKQEAgLTI4OSw2ICsyODksOSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICAgICAgdmFyIHJlY29yZFR5cGVzID0g
V2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZTsKIAorICAgICAgICBpZiAocmVj
b3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLk1hcmtET01Db250ZW50RXZlbnRUeXBlIHx8IHJlY29y
ZC50eXBlID09PSByZWNvcmRUeXBlcy5NYXJrTG9hZEV2ZW50VHlwZSkKKyAgICAgICAgICAgIHBh
cmVudFJlY29yZCA9IG51bGw7CisKICAgICAgICAgdmFyIGZvcm1hdHRlZFJlY29yZCA9IG5ldyBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQocmVjb3JkLCBwYXJlbnRS
ZWNvcmQsIHRoaXMuX3JlY29yZFN0eWxlcywgdGhpcy5fc2VuZFJlcXVlc3RSZWNvcmRzLCB0aGlz
Ll90aW1lclJlY29yZHMpOwogCiAgICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlw
ZXMuTWFya0RPTUNvbnRlbnRFdmVudFR5cGUgfHwgcmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVz
Lk1hcmtMb2FkRXZlbnRUeXBlKSB7CkBAIC0zMDUsMTMgKzMwOCwyMiBAQCBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyByZWNv
cmQuY2hpbGRyZW4gJiYgaSA8IHJlY29yZC5jaGlsZHJlbi5sZW5ndGg7ICsraSkKICAgICAgICAg
ICAgIHRoaXMuX2lubmVyQWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQuY2hpbGRyZW5baV0sIGZv
cm1hdHRlZFJlY29yZCk7CiAKKyAgICAgICAgZm9ybWF0dGVkUmVjb3JkLl9jYWxjdWxhdGVBZ2dy
ZWdhdGVkU3RhdHModGhpcy5jYXRlZ29yaWVzKTsKKwogICAgICAgICBpZiAoY29ubmVjdGVkVG9P
bGRSZWNvcmQpIHsKICAgICAgICAgICAgIHZhciByZWNvcmQgPSBmb3JtYXR0ZWRSZWNvcmQ7Ci0g
ICAgICAgICAgICB3aGlsZSAocmVjb3JkLnBhcmVudCAmJiByZWNvcmQucGFyZW50Ll9sYXN0Q2hp
bGRFbmRUaW1lIDwgcmVjb3JkLl9sYXN0Q2hpbGRFbmRUaW1lKSB7Ci0gICAgICAgICAgICAgICAg
cmVjb3JkLnBhcmVudC5fbGFzdENoaWxkRW5kVGltZSA9IHJlY29yZC5fbGFzdENoaWxkRW5kVGlt
ZTsKLSAgICAgICAgICAgICAgICByZWNvcmQgPSByZWNvcmQucGFyZW50OwotICAgICAgICAgICAg
fQotICAgICAgICB9CisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgdmFyIHBhcmVu
dCA9IHJlY29yZC5wYXJlbnQ7CisgICAgICAgICAgICAgICAgcGFyZW50Ll9jcHVUaW1lICs9IGZv
cm1hdHRlZFJlY29yZC5fY3B1VGltZTsKKyAgICAgICAgICAgICAgICBpZiAocGFyZW50Ll9sYXN0
Q2hpbGRFbmRUaW1lIDwgcmVjb3JkLl9sYXN0Q2hpbGRFbmRUaW1lKQorICAgICAgICAgICAgICAg
ICAgICBwYXJlbnQuX2xhc3RDaGlsZEVuZFRpbWUgPSByZWNvcmQuX2xhc3RDaGlsZEVuZFRpbWU7
CisgICAgICAgICAgICAgICAgZm9yICh2YXIgY2F0ZWdvcnkgaW4gcmVjb3JkLl9hZ2dyZWdhdGVk
U3RhdHMpCisgICAgICAgICAgICAgICAgICAgIHBhcmVudC5fYWdncmVnYXRlZFN0YXRzW2NhdGVn
b3J5XSArPSByZWNvcmQuX2FnZ3JlZ2F0ZWRTdGF0c1tjYXRlZ29yeV07CisgICAgICAgICAgICAg
ICAgcmVjb3JkID0gcGFyZW50OworICAgICAgICAgICAgfSB3aGlsZSAocmVjb3JkLnBhcmVudCk7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgaWYgKHBhcmVudFJlY29yZCAhPT0gdGhpcy5f
cm9vdFJlY29yZCkKKyAgICAgICAgICAgICAgICBwYXJlbnRSZWNvcmQuX3NlbGZUaW1lIC09IGZv
cm1hdHRlZFJlY29yZC5lbmRUaW1lIC0gZm9ybWF0dGVkUmVjb3JkLnN0YXJ0VGltZTsKIAogICAg
ICAgICAvLyBLZWVwIGJhciBlbnRyeSBmb3IgbWFyayB0aW1lbGluZSBzaW5jZSBuZXN0aW5nIG1p
Z2h0IGJlIGludGVyZXN0aW5nIHRvIHRoZSB1c2VyLgogICAgICAgICBpZiAocmVjb3JkLnR5cGUg
PT09IHJlY29yZFR5cGVzLk1hcmtUaW1lbGluZSkKQEAgLTM0NCw2ICszNTYsNyBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJvb3RSZWNvcmQuY2hp
bGRyZW4gPSBbXTsKICAgICAgICAgcm9vdFJlY29yZC5fdmlzaWJsZVJlY29yZHNDb3VudCA9IDA7
CiAgICAgICAgIHJvb3RSZWNvcmQuX2FsbFJlY29yZHNDb3VudCA9IDA7CisgICAgICAgIHJvb3RS
ZWNvcmQuX2FnZ3JlZ2F0ZWRTdGF0cyA9IHt9OwogICAgICAgICByZXR1cm4gcm9vdFJlY29yZDsK
ICAgICB9LAogCkBAIC01NTAsNyArNTYzLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwu
cHJvdG90eXBlID0gewogICAgIF9zaG93UG9wb3ZlcjogZnVuY3Rpb24oYW5jaG9yKQogICAgIHsK
ICAgICAgICAgdmFyIHJlY29yZCA9IGFuY2hvci5yb3cuX3JlY29yZDsKLSAgICAgICAgdmFyIHBv
cG92ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92ZXIocmVjb3JkLl9nZW5lcmF0ZVBvcHVwQ29u
dGVudCh0aGlzLl9jYWxjdWxhdG9yKSk7CisgICAgICAgIHZhciBwb3BvdmVyID0gbmV3IFdlYklu
c3BlY3Rvci5Qb3BvdmVyKHJlY29yZC5fZ2VuZXJhdGVQb3B1cENvbnRlbnQodGhpcy5fY2FsY3Vs
YXRvciwgdGhpcy5jYXRlZ29yaWVzKSk7CiAgICAgICAgIHBvcG92ZXIuc2hvdyhhbmNob3IpOwog
ICAgICAgICByZXR1cm4gcG9wb3ZlcjsKICAgICB9LApAQCAtNTgyLDkgKzU5NSwxMCBAQCBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVDYWxjdWxhdG9yLnByb3RvdHlwZSA9IHsKICAgICBjb21wdXRlQmFy
R3JhcGhQZXJjZW50YWdlczogZnVuY3Rpb24ocmVjb3JkKQogICAgIHsKICAgICAgICAgdmFyIHN0
YXJ0ID0gKHJlY29yZC5zdGFydFRpbWUgLSB0aGlzLm1pbmltdW1Cb3VuZGFyeSkgLyB0aGlzLmJv
dW5kYXJ5U3BhbiAqIDEwMDsKLSAgICAgICAgdmFyIGVuZCA9IChyZWNvcmQuZW5kVGltZSAtIHRo
aXMubWluaW11bUJvdW5kYXJ5KSAvIHRoaXMuYm91bmRhcnlTcGFuICogMTAwOworICAgICAgICB2
YXIgZW5kID0gKHJlY29yZC5zdGFydFRpbWUgKyByZWNvcmQuX3NlbGZUaW1lIC0gdGhpcy5taW5p
bXVtQm91bmRhcnkpIC8gdGhpcy5ib3VuZGFyeVNwYW4gKiAxMDA7CiAgICAgICAgIHZhciBlbmRX
aXRoQ2hpbGRyZW4gPSAocmVjb3JkLl9sYXN0Q2hpbGRFbmRUaW1lIC0gdGhpcy5taW5pbXVtQm91
bmRhcnkpIC8gdGhpcy5ib3VuZGFyeVNwYW4gKiAxMDA7Ci0gICAgICAgIHJldHVybiB7c3RhcnQ6
IHN0YXJ0LCBlbmQ6IGVuZCwgZW5kV2l0aENoaWxkcmVuOiBlbmRXaXRoQ2hpbGRyZW59OworICAg
ICAgICB2YXIgY3B1V2lkdGggPSByZWNvcmQuX2NwdVRpbWUgLyB0aGlzLmJvdW5kYXJ5U3BhbiAq
IDEwMDsKKyAgICAgICAgcmV0dXJuIHtzdGFydDogc3RhcnQsIGVuZDogZW5kLCBlbmRXaXRoQ2hp
bGRyZW46IGVuZFdpdGhDaGlsZHJlbiwgY3B1V2lkdGg6IGNwdVdpZHRofTsKICAgICB9LAogCiAg
ICAgY29tcHV0ZUJhckdyYXBoV2luZG93UG9zaXRpb246IGZ1bmN0aW9uKHJlY29yZCwgY2xpZW50
V2lkdGgpCkBAIC01OTYsOSArNjEwLDEwIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZUNhbGN1bGF0
b3IucHJvdG90eXBlID0gewogICAgICAgICB2YXIgbGVmdCA9IHBlcmNlbnRhZ2VzLnN0YXJ0IC8g
MTAwICogd29ya2luZ0FyZWE7CiAgICAgICAgIHZhciB3aWR0aCA9IChwZXJjZW50YWdlcy5lbmQg
LSBwZXJjZW50YWdlcy5zdGFydCkgLyAxMDAgKiB3b3JraW5nQXJlYSArIG1pbldpZHRoOwogICAg
ICAgICB2YXIgd2lkdGhXaXRoQ2hpbGRyZW4gPSAgKHBlcmNlbnRhZ2VzLmVuZFdpdGhDaGlsZHJl
biAtIHBlcmNlbnRhZ2VzLnN0YXJ0KSAvIDEwMCAqIHdvcmtpbmdBcmVhOworICAgICAgICB2YXIg
Y3B1V2lkdGggPSBwZXJjZW50YWdlcy5jcHVXaWR0aCAvIDEwMCAqIHdvcmtpbmdBcmVhICsgbWlu
V2lkdGg7CiAgICAgICAgIGlmIChwZXJjZW50YWdlcy5lbmRXaXRoQ2hpbGRyZW4gPiBwZXJjZW50
YWdlcy5lbmQpCiAgICAgICAgICAgICB3aWR0aFdpdGhDaGlsZHJlbiArPSBib3JkZXJXaWR0aCAr
IG1pbldpZHRoOwotICAgICAgICByZXR1cm4ge2xlZnQ6IGxlZnQsIHdpZHRoOiB3aWR0aCwgd2lk
dGhXaXRoQ2hpbGRyZW46IHdpZHRoV2l0aENoaWxkcmVufTsKKyAgICAgICAgcmV0dXJuIHtsZWZ0
OiBsZWZ0LCB3aWR0aDogd2lkdGgsIHdpZHRoV2l0aENoaWxkcmVuOiB3aWR0aFdpdGhDaGlsZHJl
biwgY3B1V2lkdGg6IGNwdVdpZHRofTsKICAgICB9LAogCiAgICAgY2FsY3VsYXRlV2luZG93OiBm
dW5jdGlvbigpCkBAIC03MDMsNiArNzE4LDExIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29y
ZEdyYXBoUm93ID0gZnVuY3Rpb24oZ3JhcGhDb250YWluZXIsIHNjaGVkdWxlUmVmcmVzaCwKICAg
ICB0aGlzLl9iYXJXaXRoQ2hpbGRyZW5FbGVtZW50LnJvdyA9IHRoaXM7CiAgICAgdGhpcy5fYmFy
QXJlYUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fYmFyV2l0aENoaWxkcmVuRWxlbWVudCk7CiAK
KyAgICB0aGlzLl9iYXJDcHVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CisgICAgdGhpcy5fYmFyQ3B1RWxlbWVudC5jbGFzc05hbWUgPSAidGltZWxpbmUtZ3JhcGgtYmFy
IGNwdSIKKyAgICB0aGlzLl9iYXJDcHVFbGVtZW50LnJvdyA9IHRoaXM7CisgICAgdGhpcy5fYmFy
QXJlYUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fYmFyQ3B1RWxlbWVudCk7CisKICAgICB0aGlz
Ll9iYXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy5f
YmFyRWxlbWVudC5jbGFzc05hbWUgPSAidGltZWxpbmUtZ3JhcGgtYmFyIjsKICAgICB0aGlzLl9i
YXJFbGVtZW50LnJvdyA9IHRoaXM7CkBAIC03MzIsNiArNzUyLDggQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUmVjb3JkR3JhcGhSb3cucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9iYXJXaXRo
Q2hpbGRyZW5FbGVtZW50LnN0eWxlLndpZHRoID0gYmFyUG9zaXRpb24ud2lkdGhXaXRoQ2hpbGRy
ZW4gKyAicHgiOwogICAgICAgICB0aGlzLl9iYXJFbGVtZW50LnN0eWxlLmxlZnQgPSBiYXJQb3Np
dGlvbi5sZWZ0ICsgZXhwYW5kT2Zmc2V0ICsgInB4IjsKICAgICAgICAgdGhpcy5fYmFyRWxlbWVu
dC5zdHlsZS53aWR0aCA9ICBiYXJQb3NpdGlvbi53aWR0aCArICJweCI7CisgICAgICAgIHRoaXMu
X2JhckNwdUVsZW1lbnQuc3R5bGUubGVmdCA9IGJhclBvc2l0aW9uLmxlZnQgKyBleHBhbmRPZmZz
ZXQgKyAicHgiOworICAgICAgICB0aGlzLl9iYXJDcHVFbGVtZW50LnN0eWxlLndpZHRoID0gYmFy
UG9zaXRpb24uY3B1V2lkdGggKyAicHgiOwogCiAgICAgICAgIGlmIChyZWNvcmQuX3Zpc2libGVD
aGlsZHJlbkNvdW50IHx8IHJlY29yZC5faW52aXNpYmxlQ2hpbGRyZW5Db3VudCkgewogICAgICAg
ICAgICAgdGhpcy5fZXhwYW5kRWxlbWVudC5zdHlsZS50b3AgPSBpbmRleCAqIHRoaXMuX3Jvd0hl
aWdodCArICJweCI7CkBAIC03NzEsNyArNzkzLDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwuRm9ybWF0dGVkUmVjb3JkID0gZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQsIHJlY28K
ICAgICB2YXIgc3R5bGUgPSByZWNvcmRTdHlsZXNbcmVjb3JkLnR5cGVdOwogCiAgICAgdGhpcy5w
YXJlbnQgPSBwYXJlbnRSZWNvcmQ7Ci0gICAgcGFyZW50UmVjb3JkLmNoaWxkcmVuLnB1c2godGhp
cyk7CisgICAgaWYgKHBhcmVudFJlY29yZCkKKyAgICAgICAgcGFyZW50UmVjb3JkLmNoaWxkcmVu
LnB1c2godGhpcyk7CiAgICAgdGhpcy5jYXRlZ29yeSA9IHN0eWxlLmNhdGVnb3J5OwogICAgIHRo
aXMudGl0bGUgPSBzdHlsZS50aXRsZTsKICAgICB0aGlzLnN0YXJ0VGltZSA9IHJlY29yZC5zdGFy
dFRpbWUgLyAxMDAwOwpAQCAtNzc5LDYgKzgwMiw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBh
bmVsLkZvcm1hdHRlZFJlY29yZCA9IGZ1bmN0aW9uKHJlY29yZCwgcGFyZW50UmVjb3JkLCByZWNv
CiAgICAgdGhpcy5jb3VudCA9IDE7CiAgICAgdGhpcy50eXBlID0gcmVjb3JkLnR5cGU7CiAgICAg
dGhpcy5lbmRUaW1lID0gKHR5cGVvZiByZWNvcmQuZW5kVGltZSAhPT0gInVuZGVmaW5lZCIpID8g
cmVjb3JkLmVuZFRpbWUgLyAxMDAwIDogdGhpcy5zdGFydFRpbWU7CisgICAgdGhpcy5fc2VsZlRp
bWUgPSB0aGlzLmVuZFRpbWUgLSB0aGlzLnN0YXJ0VGltZSArIDAuMDAwMDE7CiAgICAgdGhpcy5f
bGFzdENoaWxkRW5kVGltZSA9IHRoaXMuZW5kVGltZTsKICAgICB0aGlzLm9yaWdpbmFsUmVjb3Jk
Rm9yVGVzdHMgPSByZWNvcmQ7CiAgICAgdGhpcy5jYWxsZXJTY3JpcHROYW1lID0gcmVjb3JkLmNh
bGxlclNjcmlwdE5hbWU7CkBAIC04NjMsNyArODg3LDI0IEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiByb3c7
CiAgICAgfSwKIAotICAgIF9nZW5lcmF0ZVBvcHVwQ29udGVudDogZnVuY3Rpb24oY2FsY3VsYXRv
cikKKyAgICBfZ2VuZXJhdGVBZ2dyZWdhdGVkSW5mbzogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgdmFyIGNlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgIGNl
bGwuY2xhc3NOYW1lID0gInRpbWVsaW5lLWFnZ3JlZ2F0ZWQtaW5mbyI7CisgICAgICAgIGNlbGwu
X3RvdGFsID0gMDsKKyAgICAgICAgZm9yICh2YXIgaW5kZXggaW4gdGhpcy5fYWdncmVnYXRlZFN0
YXRzKSB7CisgICAgICAgICAgICB2YXIgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICAgICAgICAgIGxhYmVsLmNsYXNzTmFtZSA9ICJ0aW1lbGluZS1hZ2dyZWdhdGVk
LWNhdGVnb3J5IHRpbWVsaW5lLSIgKyBpbmRleDsKKyAgICAgICAgICAgIGNlbGwuYXBwZW5kQ2hp
bGQobGFiZWwpOworICAgICAgICAgICAgdmFyIHRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJzcGFuIik7CisgICAgICAgICAgICB0ZXh0LnRleHRDb250ZW50ID0gTnVtYmVyLnNlY29uZHNU
b1N0cmluZyh0aGlzLl9hZ2dyZWdhdGVkU3RhdHNbaW5kZXhdKTsKKyAgICAgICAgICAgIGNlbGwu
X3RvdGFsICs9IHRoaXMuX2FnZ3JlZ2F0ZWRTdGF0c1tpbmRleF07CisgICAgICAgICAgICBjZWxs
LmFwcGVuZENoaWxkKHRleHQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjZWxsOworICAg
IH0sCisKKyAgICBfZ2VuZXJhdGVQb3B1cENvbnRlbnQ6IGZ1bmN0aW9uKGNhbGN1bGF0b3IsIGNh
dGVnb3JpZXMpCiAgICAgewogICAgICAgICB2YXIgcmVjb3JkQ29udGVudFRhYmxlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgidGFibGUiKTsKICAgICAgICAgdmFyIHRpdGxlQ2VsbCA9IHRoaXMu
X2NyZWF0ZUNlbGwoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlcyAtIERldGFpbHMiLCB0aGlzLnRp
dGxlKSwgInRpbWVsaW5lLWRldGFpbHMtdGl0bGUiKTsKQEAgLTg3MSw3ICs5MTIsMTIgQEAgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgdmFyIHRpdGxlUm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTsKICAgICAg
ICAgdGl0bGVSb3cuYXBwZW5kQ2hpbGQodGl0bGVDZWxsKTsKICAgICAgICAgcmVjb3JkQ29udGVu
dFRhYmxlLmFwcGVuZENoaWxkKHRpdGxlUm93KTsKLSAgICAgICAgdmFyIHRleHQgPSBOdW1iZXIu
c2Vjb25kc1RvU3RyaW5nKHRoaXMuZW5kVGltZSAtIHRoaXMuc3RhcnRUaW1lKSArICIgKEAiICsK
KworICAgICAgICBpZiAodGhpcy5fY2hpbGRyZW4gJiYgdGhpcy5fY2hpbGRyZW4ubGVuZ3RoKSB7
CisgICAgICAgICAgICByZWNvcmRDb250ZW50VGFibGUuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRl
Um93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2VsZiBUaW1lIiksIE51bWJlci5zZWNvbmRzVG9T
dHJpbmcodGhpcy5fc2VsZlRpbWUpKSk7CisgICAgICAgICAgICByZWNvcmRDb250ZW50VGFibGUu
YXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlTGlua1JvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFn
Z3JlZ2F0ZWQgVGltZSIpLCB0aGlzLl9nZW5lcmF0ZUFnZ3JlZ2F0ZWRJbmZvKCkpKTsKKyAgICAg
ICAgfQorICAgICAgICB2YXIgdGV4dCA9IE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5fbGFz
dENoaWxkRW5kVGltZSAtIHRoaXMuc3RhcnRUaW1lKSArICIgKEAiICsKICAgICAgICAgY2FsY3Vs
YXRvci5mb3JtYXRWYWx1ZSh0aGlzLnN0YXJ0VGltZSAtIGNhbGN1bGF0b3IubWluaW11bUJvdW5k
YXJ5KSArICIpIjsKICAgICAgICAgcmVjb3JkQ29udGVudFRhYmxlLmFwcGVuZENoaWxkKHRoaXMu
X2NyZWF0ZVJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkR1cmF0aW9uIiksIHRleHQpKTsKIApA
QCAtOTIyLDEwICs5NjgsOSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRS
ZWNvcmQucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIGxpbmsgPSBXZWJJbnNwZWN0b3Iu
bGlua2lmeVJlc291cmNlQXNOb2RlKHRoaXMuY2FsbGVyU2NyaXB0TmFtZSwgInNjcmlwdHMiLCB0
aGlzLmNhbGxlclNjcmlwdExpbmUpOwogICAgICAgICAgICAgcmVjb3JkQ29udGVudFRhYmxlLmFw
cGVuZENoaWxkKHRoaXMuX2NyZWF0ZUxpbmtSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDYWxs
ZXIiKSwgbGluaykpOwogICAgICAgICB9Ci0gICAgICAgIGlmICh0aGlzLnVzZWRIZWFwU2l6ZSkg
ewotICAgICAgICAgICAgcmVjb3JkQ29udGVudFRhYmxlLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0
ZVJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlVzZWQgSGVhcCBTaXplIiksIE51bWJlci5ieXRl
c1RvU3RyaW5nKHRoaXMudXNlZEhlYXBTaXplKSkpOwotICAgICAgICAgICAgcmVjb3JkQ29udGVu
dFRhYmxlLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IlRvdGFsIEhlYXAgU2l6ZSIpLCBOdW1iZXIuYnl0ZXNUb1N0cmluZyh0aGlzLnRvdGFsSGVhcFNp
emUpKSk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMudXNlZEhlYXBTaXplKQorICAgICAg
ICAgICAgcmVjb3JkQ29udGVudFRhYmxlLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVJvdyhXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlVzZWQgSGVhcCBTaXplIiksIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiJXMgb2YgJXMiLCBOdW1iZXIuYnl0ZXNUb1N0cmluZyh0aGlzLnVzZWRIZWFwU2l6ZSksIE51
bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMudG90YWxIZWFwU2l6ZSkpKSk7CisKICAgICAgICAgcmV0
dXJuIHJlY29yZENvbnRlbnRUYWJsZTsKICAgICB9LAogCkBAIC05NTcsNiArMTAwMiwyNSBAQCBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICByZXR1cm4gIiI7CiAgICAgICAg
IH0KKyAgICB9LAorCisgICAgX2NhbGN1bGF0ZUFnZ3JlZ2F0ZWRTdGF0czogZnVuY3Rpb24oY2F0
ZWdvcmllcykKKyAgICB7CisgICAgICAgIHRoaXMuX2FnZ3JlZ2F0ZWRTdGF0cyA9IHt9OworICAg
ICAgICAvLyAwLjAwMDEgaXMgdXNlZCB0byBhdm9pZCB6ZXJvIGNhc2Ugb2YgTnVtYmVyLnNlY29u
ZHNUb1N0cmluZworICAgICAgICBmb3IgKHZhciBjYXRlZ29yeSBpbiBjYXRlZ29yaWVzKQorICAg
ICAgICAgICAgdGhpcy5fYWdncmVnYXRlZFN0YXRzW2NhdGVnb3J5XSA9IDAuMDAwMDE7CisgICAg
ICAgIHRoaXMuX2NwdVRpbWUgPSB0aGlzLl9zZWxmVGltZTsKKworICAgICAgICBpZiAodGhpcy5f
Y2hpbGRyZW4pIHsKKyAgICAgICAgICAgIGZvciAodmFyIGluZGV4ID0gdGhpcy5fY2hpbGRyZW4u
bGVuZ3RoOyBpbmRleDsgLS1pbmRleCkgeworICAgICAgICAgICAgICAgIHZhciBjaGlsZCA9IHRo
aXMuX2NoaWxkcmVuW2luZGV4IC0gMV07CisgICAgICAgICAgICAgICAgdGhpcy5fYWdncmVnYXRl
ZFN0YXRzW2NoaWxkLmNhdGVnb3J5Lm5hbWVdICs9IGNoaWxkLl9zZWxmVGltZTsKKyAgICAgICAg
ICAgICAgICBmb3IgKHZhciBjYXRlZ29yeSBpbiBjYXRlZ29yaWVzKQorICAgICAgICAgICAgICAg
ICAgICB0aGlzLl9hZ2dyZWdhdGVkU3RhdHNbY2F0ZWdvcnldICs9IGNoaWxkLl9hZ2dyZWdhdGVk
U3RhdHNbY2F0ZWdvcnldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yICh2YXIgY2F0
ZWdvcnkgaW4gdGhpcy5fYWdncmVnYXRlZFN0YXRzKQorICAgICAgICAgICAgICAgIHRoaXMuX2Nw
dVRpbWUgKz0gdGhpcy5fYWdncmVnYXRlZFN0YXRzW2NhdGVnb3J5XTsKKyAgICAgICAgfQogICAg
IH0KIH0KLQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5jc3MgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwppbmRleCA1
ODFjNzVhLi43OWE4YTMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmNzcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmNzcwpAQCAtMzYwNSw3ICszNjA1LDExIEBAIGJvZHkuaW5hY3RpdmUgLnNpZGViYXItdHJlZS1p
dGVtLnNlbGVjdGVkIC5idWJibGUuc2VhcmNoLW1hdGNoZXMgewogfQogCiAudGltZWxpbmUtZ3Jh
cGgtYmFyLndpdGgtY2hpbGRyZW4gewotICAgIG9wYWNpdHk6IDAuMzsKKyAgICBvcGFjaXR5OiAw
LjI7Cit9CisKKy50aW1lbGluZS1ncmFwaC1iYXIuY3B1IHsKKyAgICBvcGFjaXR5OiAwLjY7CiB9
CiAKIC50aW1lbGluZS1ncmFwaC1zaWRlLmV2ZW4gewpAQCAtMzYyNCw2ICszNjI4LDMyIEBAIGJv
ZHkuaW5hY3RpdmUgLnNpZGViYXItdHJlZS1pdGVtLnNlbGVjdGVkIC5idWJibGUuc2VhcmNoLW1h
dGNoZXMgewogICAgIC13ZWJraXQtYm9yZGVyLWltYWdlOiB1cmwoSW1hZ2VzL3RpbWVsaW5lQmFy
UHVycGxlLnBuZykgNCA0IDUgNDsKIH0KIAorLnRpbWVsaW5lLWFnZ3JlZ2F0ZWQtY2F0ZWdvcnkg
eworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBoZWlnaHQ6IDExcHg7CisgICAgbWFy
Z2luLXJpZ2h0OiAycHg7CisgICAgbWFyZ2luLWxlZnQ6IDZweDsKKyAgICBwb3NpdGlvbjogcmVs
YXRpdmU7CisgICAgdG9wOiAycHg7CisgICAgd2lkdGg6IDEwcHg7Cit9CisKKy50aW1lbGluZS1s
b2FkaW5nIHsKKyAgICAtd2Via2l0LWJvcmRlci1pbWFnZTogdXJsKEltYWdlcy90aW1lbGluZUJh
ckJsdWUucG5nKSA0IDQgNSA0OworfQorCisudGltZWxpbmUtc2NyaXB0aW5nIHsKKyAgICAtd2Vi
a2l0LWJvcmRlci1pbWFnZTogdXJsKEltYWdlcy90aW1lbGluZUJhck9yYW5nZS5wbmcpIDQgNCA1
IDQ7Cit9CisKKy50aW1lbGluZS1yZW5kZXJpbmcgeworICAgIC13ZWJraXQtYm9yZGVyLWltYWdl
OiB1cmwoSW1hZ2VzL3RpbWVsaW5lQmFyUHVycGxlLnBuZykgNCA0IDUgNDsKK30KKworLnBvcG92
ZXIgLnRpbWVsaW5lLWFnZ3JlZ2F0ZWQtY2F0ZWdvcnkudGltZWxpbmUtbG9hZGluZyB7CisgICAg
bWFyZ2luLWxlZnQ6IDBweDsKK30KKwogLnRpbWVsaW5lLWNhdGVnb3J5LWxvYWRpbmcgLnRpbWVs
aW5lLXRyZWUtaWNvbiB7CiAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAwcHg7CiB9CkBAIC0z
NjUxLDcgKzM2ODEsMTEgQEAgYm9keS5pbmFjdGl2ZSAuc2lkZWJhci10cmVlLWl0ZW0uc2VsZWN0
ZWQgLmJ1YmJsZS5zZWFyY2gtbWF0Y2hlcyB7CiB9CiAKIC50aW1lbGluZS1kZXRhaWxzLXRpdGxl
IHsKKyAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0I4QjhCODsKKyAgICBmb250LXNpemU6
IDExcHg7CiAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgcGFkZGluZy1ib3R0b206IDVweDsK
KyAgICBwYWRkaW5nLXRvcDogMHB4OwogICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiB9CiAK
</data>
<flag name="commit-queue"
          id="37707"
          type_id="3"
          status="-"
          setter="loislo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54160</attachid>
            <date>2010-04-23 08:11:44 -0700</date>
            <delta_ts>2010-04-23 08:24:01 -0700</delta_ts>
            <desc>[patch] Second iteration.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>16849</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzMzNWQ3Yy4uMjRlYjRlNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzOSBAQAogMjAxMC0wNC0yMyAgSWx5YSBUaWtob25v
dnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9yOiBBZ2dyZWdhdGVkIHN0YXRzIG9mIHRp
bWUgc3BlbnQgaW4gY2hpbGRyZW4gcmVjb3JkcyBzaG91bGQgYmUgdmlzaWJsZQorICAgICAgICBp
biB0aGUgcG9wdXAgcGFuZWwgb2YgcGFyZW50IHJlY29yZC4gQ3Jhc2ggaW4gcHVzaEdDRXZlbnRS
ZWNvcmQgYWxzbyB3YXMgZml4ZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNzgyMAorCisgICAgICAgICogRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hHQ0V2ZW50
UmVjb3Jkcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9pbm5lckFk
ZFJlY29yZFRvVGltZWxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwu
cHJvdG90eXBlLl9jcmVhdGVSb290UmVjb3JkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZVBhbmVsLnByb3RvdHlwZS5fc2hvd1BvcG92ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lQ2FsY3VsYXRvci5wcm90b3R5cGUuY29tcHV0ZUJhckdyYXBoUGVyY2VudGFnZXMp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2FsY3VsYXRvci5wcm90b3R5cGUuY29t
cHV0ZUJhckdyYXBoV2luZG93UG9zaXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUmVjb3JkR3JhcGhSb3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3Jk
R3JhcGhSb3cucHJvdG90eXBlLnVwZGF0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxp
bmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZS5fZ2VuZXJhdGVBZ2dyZWdhdGVkSW5mbyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQucHJv
dG90eXBlLl9nZW5lcmF0ZVBvcHVwQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQucHJvdG90eXBlLl9nZXRSZWNvcmREZXRhaWxzKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZC5wcm90
b3R5cGUuX2NhbGN1bGF0ZUFnZ3JlZ2F0ZWRTdGF0cyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuY3NzOgorICAgICAgICAoLnRpbWVsaW5lLWdyYXBoLWJhci53aXRo
LWNoaWxkcmVuKToKKyAgICAgICAgKC50aW1lbGluZS1ncmFwaC1iYXIuY3B1KToKKyAgICAgICAg
KC50aW1lbGluZS1hZ2dyZWdhdGVkLWNhdGVnb3J5KToKKyAgICAgICAgKC50aW1lbGluZS1sb2Fk
aW5nKToKKyAgICAgICAgKC50aW1lbGluZS1zY3JpcHRpbmcpOgorICAgICAgICAoLnRpbWVsaW5l
LXJlbmRlcmluZyk6CisgICAgICAgICgucG9wb3ZlciAudGltZWxpbmUtYWdncmVnYXRlZC1jYXRl
Z29yeS50aW1lbGluZS1sb2FkaW5nKToKKyAgICAgICAgKC50aW1lbGluZS1kZXRhaWxzLXRpdGxl
KToKKworMjAxMC0wNC0yMyAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+
CisKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KIAogICAgICAgICBXZWJJ
bnNwZWN0b3I6IEZsYWt5IEluc3BlY3RvciB0ZXN0cy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvRW5n
bGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xv
Y2FsaXplZFN0cmluZ3MuanMKaW5kZXggYTU5YmE4MzM2NDc1ZjYxZWE1YmViNmJkN2ZjYTk4YmYx
ZTdhNjg5Zi4uNjEyYzYzZWU5MDc5YThhY2YwNmI2MjIzODc2NWZkMzk4ZTkxZWMyNCAxMDA2NDQK
R0lUIGJpbmFyeSBwYXRjaApkZWx0YSAxNDIKemNtWjNzaXN7TjRyVlZPU0N0SGNCT31AYSojLTdp
UiMtUEJVSXlzUzVSSjw2LWc3TylSNypyVUY4SSV+VDhGKGlqCnolK09eX285eVR6SWVDSDs4QH5j
VzJ0eWBBRTwtOSpSKl8kbUtiO3wrcCRJNkYmWENBWiFqTC1JLWF9SCE1eShSawpMV2s+OzxrRXxC
fVlQQkFTCgpkZWx0YSA5ClFjbWNiemhIMlI8clZWT1MwVCZ0c0ttWSYkCgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCBjMDI3OGMyLi43YWQ2N2Zi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAt
NTYsMTMgKzU2LDE2IEBAIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5l
QWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogCiB2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OnB1c2hHQ0V2ZW50UmVjb3JkcygpCiB7Ci0gICAgZm9yIChHQ0V2ZW50czo6aXRl
cmF0b3IgaSA9IG1fZ2NFdmVudHMuYmVnaW4oKTsgaSAhPSBtX2djRXZlbnRzLmVuZCgpOyArK2kp
IHsKLSAgICAgICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBpLT5zdGFydFRpbWUpOwotICAgICAgICBy
ZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHQ0V2ZW50RGF0
YShtX2Zyb250ZW5kLCBpLT5jb2xsZWN0ZWRCeXRlcykpOwotICAgICAgICByZWNvcmQuc2V0KCJl
bmRUaW1lIiwgaS0+ZW5kVGltZSk7Ci0gICAgICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3Jk
LCBHQ0V2ZW50VGltZWxpbmVSZWNvcmRUeXBlKTsKLSAgICB9Ci0gICAgbV9nY0V2ZW50cy5jbGVh
cigpOworCWlmIChtX2djRXZlbnRzLnNpemUoKSkgeworCQlHQ0V2ZW50cyBldmVudHMgPSBtX2dj
RXZlbnRzOworCQltX2djRXZlbnRzLmNsZWFyKCk7CisJCWZvciAoR0NFdmVudHM6Oml0ZXJhdG9y
IGkgPSBldmVudHMuYmVnaW4oKTsgaSAhPSBldmVudHMuZW5kKCk7ICsraSkgeworCQkJU2NyaXB0
T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29y
ZChtX2Zyb250ZW5kLCBpLT5zdGFydFRpbWUpOworCQkJcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NFdmVudERhdGEobV9mcm9udGVuZCwgaS0+Y29sbGVj
dGVkQnl0ZXMpKTsKKwkJCXJlY29yZC5zZXQoImVuZFRpbWUiLCBpLT5lbmRUaW1lKTsKKwkJCWFk
ZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBHQ0V2ZW50VGltZWxpbmVSZWNvcmRUeXBlKTsKKwkJ
fQorCX0KIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRHQyhkb3VibGUgc3Rh
cnRUaW1lLCBkb3VibGUgZW5kVGltZSwgc2l6ZV90IGNvbGxlY3RlZEJ5dGVzQ291bnQpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IDg0M2Q0MTAu
LmVjMzQ1YjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZVBhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVs
LmpzCkBAIC0yODEsMzggKzI4MSw0NiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgX2lubmVyQWRkUmVjb3JkVG9UaW1lbGluZTogZnVuY3Rpb24ocmVjb3Jk
LCBwYXJlbnRSZWNvcmQpCiAgICAgewogICAgICAgICB2YXIgY29ubmVjdGVkVG9PbGRSZWNvcmQg
PSBmYWxzZTsKLSAgICAgICAgaWYgKHBhcmVudFJlY29yZCA9PT0gdGhpcy5fcm9vdFJlY29yZCkg
eworICAgICAgICB2YXIgcmVjb3JkVHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5S
ZWNvcmRUeXBlOworICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLk1hcmtE
T01Db250ZW50RXZlbnRUeXBlIHx8IHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5NYXJrTG9h
ZEV2ZW50VHlwZSkKKyAgICAgICAgICAgIHBhcmVudFJlY29yZCA9IG51bGw7IC8vIE5vIGJhciBl
bnRyeSBmb3IgbG9hZCBldmVudHMuCisgICAgICAgIGVsc2UgaWYgKHBhcmVudFJlY29yZCA9PT0g
dGhpcy5fcm9vdFJlY29yZCkgewogICAgICAgICAgICAgdmFyIG5ld1BhcmVudFJlY29yZCA9IHRo
aXMuX2ZpbmRQYXJlbnRSZWNvcmQocmVjb3JkKTsKICAgICAgICAgICAgIGlmIChuZXdQYXJlbnRS
ZWNvcmQpIHsKICAgICAgICAgICAgICAgICBwYXJlbnRSZWNvcmQgPSBuZXdQYXJlbnRSZWNvcmQ7
CiAgICAgICAgICAgICAgICAgY29ubmVjdGVkVG9PbGRSZWNvcmQgPSB0cnVlOwogICAgICAgICAg
ICAgfQogICAgICAgICB9Ci0gICAgICAgIHZhciByZWNvcmRUeXBlcyA9IFdlYkluc3BlY3Rvci5U
aW1lbGluZUFnZW50LlJlY29yZFR5cGU7CiAKICAgICAgICAgdmFyIGZvcm1hdHRlZFJlY29yZCA9
IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQocmVjb3JkLCBw
YXJlbnRSZWNvcmQsIHRoaXMuX3JlY29yZFN0eWxlcywgdGhpcy5fc2VuZFJlcXVlc3RSZWNvcmRz
LCB0aGlzLl90aW1lclJlY29yZHMpOwogCiAgICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gcmVj
b3JkVHlwZXMuTWFya0RPTUNvbnRlbnRFdmVudFR5cGUgfHwgcmVjb3JkLnR5cGUgPT09IHJlY29y
ZFR5cGVzLk1hcmtMb2FkRXZlbnRUeXBlKSB7Ci0gICAgICAgICAgICAvLyBObyBiYXIgZW50cnkg
Zm9yIGxvYWQgZXZlbnRzLgogICAgICAgICAgICAgdGhpcy5fbWFya1RpbWVsaW5lUmVjb3Jkcy5w
dXNoKGZvcm1hdHRlZFJlY29yZCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAog
ICAgICAgICArK3RoaXMuX3Jvb3RSZWNvcmQuX2FsbFJlY29yZHNDb3VudDsKLQotICAgICAgICBp
ZiAocGFyZW50UmVjb3JkID09PSB0aGlzLl9yb290UmVjb3JkKQotICAgICAgICAgICAgZm9ybWF0
dGVkUmVjb3JkLmNvbGxhcHNlZCA9IHRydWU7CisgICAgICAgIGZvcm1hdHRlZFJlY29yZC5jb2xs
YXBzZWQgPSAocGFyZW50UmVjb3JkID09PSB0aGlzLl9yb290UmVjb3JkKTsKIAogICAgICAgICBm
b3IgKHZhciBpID0gMDsgcmVjb3JkLmNoaWxkcmVuICYmIGkgPCByZWNvcmQuY2hpbGRyZW4ubGVu
Z3RoOyArK2kpCiAgICAgICAgICAgICB0aGlzLl9pbm5lckFkZFJlY29yZFRvVGltZWxpbmUocmVj
b3JkLmNoaWxkcmVuW2ldLCBmb3JtYXR0ZWRSZWNvcmQpOwogCisgICAgICAgIGZvcm1hdHRlZFJl
Y29yZC5fY2FsY3VsYXRlQWdncmVnYXRlZFN0YXRzKHRoaXMuY2F0ZWdvcmllcyk7CisKICAgICAg
ICAgaWYgKGNvbm5lY3RlZFRvT2xkUmVjb3JkKSB7CiAgICAgICAgICAgICB2YXIgcmVjb3JkID0g
Zm9ybWF0dGVkUmVjb3JkOwotICAgICAgICAgICAgd2hpbGUgKHJlY29yZC5wYXJlbnQgJiYgcmVj
b3JkLnBhcmVudC5fbGFzdENoaWxkRW5kVGltZSA8IHJlY29yZC5fbGFzdENoaWxkRW5kVGltZSkg
ewotICAgICAgICAgICAgICAgIHJlY29yZC5wYXJlbnQuX2xhc3RDaGlsZEVuZFRpbWUgPSByZWNv
cmQuX2xhc3RDaGlsZEVuZFRpbWU7Ci0gICAgICAgICAgICAgICAgcmVjb3JkID0gcmVjb3JkLnBh
cmVudDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICAgICAgZG8geworICAgICAg
ICAgICAgICAgIHZhciBwYXJlbnQgPSByZWNvcmQucGFyZW50OworICAgICAgICAgICAgICAgIHBh
cmVudC5fY3B1VGltZSArPSBmb3JtYXR0ZWRSZWNvcmQuX2NwdVRpbWU7CisgICAgICAgICAgICAg
ICAgaWYgKHBhcmVudC5fbGFzdENoaWxkRW5kVGltZSA8IHJlY29yZC5fbGFzdENoaWxkRW5kVGlt
ZSkKKyAgICAgICAgICAgICAgICAgICAgcGFyZW50Ll9sYXN0Q2hpbGRFbmRUaW1lID0gcmVjb3Jk
Ll9sYXN0Q2hpbGRFbmRUaW1lOworICAgICAgICAgICAgICAgIGZvciAodmFyIGNhdGVnb3J5IGlu
IGZvcm1hdHRlZFJlY29yZC5fYWdncmVnYXRlZFN0YXRzKQorICAgICAgICAgICAgICAgICAgICBw
YXJlbnQuX2FnZ3JlZ2F0ZWRTdGF0c1tjYXRlZ29yeV0gKz0gZm9ybWF0dGVkUmVjb3JkLl9hZ2dy
ZWdhdGVkU3RhdHNbY2F0ZWdvcnldOworICAgICAgICAgICAgICAgIHJlY29yZCA9IHBhcmVudDsK
KyAgICAgICAgICAgIH0gd2hpbGUgKHJlY29yZC5wYXJlbnQpOworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIGlmIChwYXJlbnRSZWNvcmQgIT09IHRoaXMuX3Jvb3RSZWNvcmQpCisgICAgICAg
ICAgICAgICAgcGFyZW50UmVjb3JkLl9zZWxmVGltZSAtPSBmb3JtYXR0ZWRSZWNvcmQuZW5kVGlt
ZSAtIGZvcm1hdHRlZFJlY29yZC5zdGFydFRpbWU7CiAKICAgICAgICAgLy8gS2VlcCBiYXIgZW50
cnkgZm9yIG1hcmsgdGltZWxpbmUgc2luY2UgbmVzdGluZyBtaWdodCBiZSBpbnRlcmVzdGluZyB0
byB0aGUgdXNlci4KICAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5NYXJr
VGltZWxpbmUpCkBAIC0zNDUsNiArMzUzLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICByb290UmVjb3JkLmNoaWxkcmVuID0gW107CiAgICAgICAg
IHJvb3RSZWNvcmQuX3Zpc2libGVSZWNvcmRzQ291bnQgPSAwOwogICAgICAgICByb290UmVjb3Jk
Ll9hbGxSZWNvcmRzQ291bnQgPSAwOworICAgICAgICByb290UmVjb3JkLl9hZ2dyZWdhdGVkU3Rh
dHMgPSB7fTsKICAgICAgICAgcmV0dXJuIHJvb3RSZWNvcmQ7CiAgICAgfSwKIApAQCAtNTUyLDcg
KzU2MSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICBf
c2hvd1BvcG92ZXI6IGZ1bmN0aW9uKGFuY2hvcikKICAgICB7CiAgICAgICAgIHZhciByZWNvcmQg
PSBhbmNob3Iucm93Ll9yZWNvcmQ7Ci0gICAgICAgIHZhciBwb3BvdmVyID0gbmV3IFdlYkluc3Bl
Y3Rvci5Qb3BvdmVyKHJlY29yZC5fZ2VuZXJhdGVQb3B1cENvbnRlbnQodGhpcy5fY2FsY3VsYXRv
cikpOworICAgICAgICB2YXIgcG9wb3ZlciA9IG5ldyBXZWJJbnNwZWN0b3IuUG9wb3ZlcihyZWNv
cmQuX2dlbmVyYXRlUG9wdXBDb250ZW50KHRoaXMuX2NhbGN1bGF0b3IsIHRoaXMuY2F0ZWdvcmll
cykpOwogICAgICAgICBwb3BvdmVyLnNob3coYW5jaG9yKTsKICAgICAgICAgcmV0dXJuIHBvcG92
ZXI7CiAgICAgfSwKQEAgLTU4NCw5ICs1OTMsMTAgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2Fs
Y3VsYXRvci5wcm90b3R5cGUgPSB7CiAgICAgY29tcHV0ZUJhckdyYXBoUGVyY2VudGFnZXM6IGZ1
bmN0aW9uKHJlY29yZCkKICAgICB7CiAgICAgICAgIHZhciBzdGFydCA9IChyZWNvcmQuc3RhcnRU
aW1lIC0gdGhpcy5taW5pbXVtQm91bmRhcnkpIC8gdGhpcy5ib3VuZGFyeVNwYW4gKiAxMDA7Ci0g
ICAgICAgIHZhciBlbmQgPSAocmVjb3JkLmVuZFRpbWUgLSB0aGlzLm1pbmltdW1Cb3VuZGFyeSkg
LyB0aGlzLmJvdW5kYXJ5U3BhbiAqIDEwMDsKKyAgICAgICAgdmFyIGVuZCA9IChyZWNvcmQuc3Rh
cnRUaW1lICsgcmVjb3JkLl9zZWxmVGltZSAtIHRoaXMubWluaW11bUJvdW5kYXJ5KSAvIHRoaXMu
Ym91bmRhcnlTcGFuICogMTAwOwogICAgICAgICB2YXIgZW5kV2l0aENoaWxkcmVuID0gKHJlY29y
ZC5fbGFzdENoaWxkRW5kVGltZSAtIHRoaXMubWluaW11bUJvdW5kYXJ5KSAvIHRoaXMuYm91bmRh
cnlTcGFuICogMTAwOwotICAgICAgICByZXR1cm4ge3N0YXJ0OiBzdGFydCwgZW5kOiBlbmQsIGVu
ZFdpdGhDaGlsZHJlbjogZW5kV2l0aENoaWxkcmVufTsKKyAgICAgICAgdmFyIGNwdVdpZHRoID0g
cmVjb3JkLl9jcHVUaW1lIC8gdGhpcy5ib3VuZGFyeVNwYW4gKiAxMDA7CisgICAgICAgIHJldHVy
biB7c3RhcnQ6IHN0YXJ0LCBlbmQ6IGVuZCwgZW5kV2l0aENoaWxkcmVuOiBlbmRXaXRoQ2hpbGRy
ZW4sIGNwdVdpZHRoOiBjcHVXaWR0aH07CiAgICAgfSwKIAogICAgIGNvbXB1dGVCYXJHcmFwaFdp
bmRvd1Bvc2l0aW9uOiBmdW5jdGlvbihyZWNvcmQsIGNsaWVudFdpZHRoKQpAQCAtNTk4LDkgKzYw
OCwxMCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYWxjdWxhdG9yLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgdmFyIGxlZnQgPSBwZXJjZW50YWdlcy5zdGFydCAvIDEwMCAqIHdvcmtpbmdBcmVhOwog
ICAgICAgICB2YXIgd2lkdGggPSAocGVyY2VudGFnZXMuZW5kIC0gcGVyY2VudGFnZXMuc3RhcnQp
IC8gMTAwICogd29ya2luZ0FyZWEgKyBtaW5XaWR0aDsKICAgICAgICAgdmFyIHdpZHRoV2l0aENo
aWxkcmVuID0gIChwZXJjZW50YWdlcy5lbmRXaXRoQ2hpbGRyZW4gLSBwZXJjZW50YWdlcy5zdGFy
dCkgLyAxMDAgKiB3b3JraW5nQXJlYTsKKyAgICAgICAgdmFyIGNwdVdpZHRoID0gcGVyY2VudGFn
ZXMuY3B1V2lkdGggLyAxMDAgKiB3b3JraW5nQXJlYSArIG1pbldpZHRoOwogICAgICAgICBpZiAo
cGVyY2VudGFnZXMuZW5kV2l0aENoaWxkcmVuID4gcGVyY2VudGFnZXMuZW5kKQogICAgICAgICAg
ICAgd2lkdGhXaXRoQ2hpbGRyZW4gKz0gYm9yZGVyV2lkdGggKyBtaW5XaWR0aDsKLSAgICAgICAg
cmV0dXJuIHtsZWZ0OiBsZWZ0LCB3aWR0aDogd2lkdGgsIHdpZHRoV2l0aENoaWxkcmVuOiB3aWR0
aFdpdGhDaGlsZHJlbn07CisgICAgICAgIHJldHVybiB7bGVmdDogbGVmdCwgd2lkdGg6IHdpZHRo
LCB3aWR0aFdpdGhDaGlsZHJlbjogd2lkdGhXaXRoQ2hpbGRyZW4sIGNwdVdpZHRoOiBjcHVXaWR0
aH07CiAgICAgfSwKIAogICAgIGNhbGN1bGF0ZVdpbmRvdzogZnVuY3Rpb24oKQpAQCAtNzA1LDYg
KzcxNiwxMSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRHcmFwaFJvdyA9IGZ1bmN0aW9u
KGdyYXBoQ29udGFpbmVyLCBzY2hlZHVsZVJlZnJlc2gsCiAgICAgdGhpcy5fYmFyV2l0aENoaWxk
cmVuRWxlbWVudC5yb3cgPSB0aGlzOwogICAgIHRoaXMuX2JhckFyZWFFbGVtZW50LmFwcGVuZENo
aWxkKHRoaXMuX2JhcldpdGhDaGlsZHJlbkVsZW1lbnQpOwogCisgICAgdGhpcy5fYmFyQ3B1RWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHRoaXMuX2JhckNwdUVs
ZW1lbnQuY2xhc3NOYW1lID0gInRpbWVsaW5lLWdyYXBoLWJhciBjcHUiCisgICAgdGhpcy5fYmFy
Q3B1RWxlbWVudC5yb3cgPSB0aGlzOworICAgIHRoaXMuX2JhckFyZWFFbGVtZW50LmFwcGVuZENo
aWxkKHRoaXMuX2JhckNwdUVsZW1lbnQpOworCiAgICAgdGhpcy5fYmFyRWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgIHRoaXMuX2JhckVsZW1lbnQuY2xhc3NOYW1l
ID0gInRpbWVsaW5lLWdyYXBoLWJhciI7CiAgICAgdGhpcy5fYmFyRWxlbWVudC5yb3cgPSB0aGlz
OwpAQCAtNzM0LDYgKzc1MCw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZEdyYXBoUm93
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fYmFyV2l0aENoaWxkcmVuRWxlbWVudC5zdHls
ZS53aWR0aCA9IGJhclBvc2l0aW9uLndpZHRoV2l0aENoaWxkcmVuICsgInB4IjsKICAgICAgICAg
dGhpcy5fYmFyRWxlbWVudC5zdHlsZS5sZWZ0ID0gYmFyUG9zaXRpb24ubGVmdCArIGV4cGFuZE9m
ZnNldCArICJweCI7CiAgICAgICAgIHRoaXMuX2JhckVsZW1lbnQuc3R5bGUud2lkdGggPSAgYmFy
UG9zaXRpb24ud2lkdGggKyAicHgiOworICAgICAgICB0aGlzLl9iYXJDcHVFbGVtZW50LnN0eWxl
LmxlZnQgPSBiYXJQb3NpdGlvbi5sZWZ0ICsgZXhwYW5kT2Zmc2V0ICsgInB4IjsKKyAgICAgICAg
dGhpcy5fYmFyQ3B1RWxlbWVudC5zdHlsZS53aWR0aCA9IGJhclBvc2l0aW9uLmNwdVdpZHRoICsg
InB4IjsKIAogICAgICAgICBpZiAocmVjb3JkLl92aXNpYmxlQ2hpbGRyZW5Db3VudCB8fCByZWNv
cmQuX2ludmlzaWJsZUNoaWxkcmVuQ291bnQpIHsKICAgICAgICAgICAgIHRoaXMuX2V4cGFuZEVs
ZW1lbnQuc3R5bGUudG9wID0gaW5kZXggKiB0aGlzLl9yb3dIZWlnaHQgKyAicHgiOwpAQCAtNzcz
LDcgKzc5MSw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZCA9
IGZ1bmN0aW9uKHJlY29yZCwgcGFyZW50UmVjb3JkLCByZWNvCiAgICAgdmFyIHN0eWxlID0gcmVj
b3JkU3R5bGVzW3JlY29yZC50eXBlXTsKIAogICAgIHRoaXMucGFyZW50ID0gcGFyZW50UmVjb3Jk
OwotICAgIHBhcmVudFJlY29yZC5jaGlsZHJlbi5wdXNoKHRoaXMpOworICAgIGlmIChwYXJlbnRS
ZWNvcmQpCisgICAgICAgIHBhcmVudFJlY29yZC5jaGlsZHJlbi5wdXNoKHRoaXMpOwogICAgIHRo
aXMuY2F0ZWdvcnkgPSBzdHlsZS5jYXRlZ29yeTsKICAgICB0aGlzLnRpdGxlID0gc3R5bGUudGl0
bGU7CiAgICAgdGhpcy5zdGFydFRpbWUgPSByZWNvcmQuc3RhcnRUaW1lIC8gMTAwMDsKQEAgLTc4
MSw2ICs4MDAsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQg
PSBmdW5jdGlvbihyZWNvcmQsIHBhcmVudFJlY29yZCwgcmVjbwogICAgIHRoaXMuY291bnQgPSAx
OwogICAgIHRoaXMudHlwZSA9IHJlY29yZC50eXBlOwogICAgIHRoaXMuZW5kVGltZSA9ICh0eXBl
b2YgcmVjb3JkLmVuZFRpbWUgIT09ICJ1bmRlZmluZWQiKSA/IHJlY29yZC5lbmRUaW1lIC8gMTAw
MCA6IHRoaXMuc3RhcnRUaW1lOworICAgIHRoaXMuX3NlbGZUaW1lID0gdGhpcy5lbmRUaW1lIC0g
dGhpcy5zdGFydFRpbWUgKyAwLjAwMDAxOwogICAgIHRoaXMuX2xhc3RDaGlsZEVuZFRpbWUgPSB0
aGlzLmVuZFRpbWU7CiAgICAgdGhpcy5vcmlnaW5hbFJlY29yZEZvclRlc3RzID0gcmVjb3JkOwog
ICAgIHRoaXMuY2FsbGVyU2NyaXB0TmFtZSA9IHJlY29yZC5jYWxsZXJTY3JpcHROYW1lOwpAQCAt
ODY1LDcgKzg4NSwyNCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNv
cmQucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gcm93OwogICAgIH0sCiAKLSAgICBfZ2Vu
ZXJhdGVQb3B1cENvbnRlbnQ6IGZ1bmN0aW9uKGNhbGN1bGF0b3IpCisgICAgX2dlbmVyYXRlQWdn
cmVnYXRlZEluZm86IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBjZWxsID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICBjZWxsLmNsYXNzTmFtZSA9ICJ0aW1l
bGluZS1hZ2dyZWdhdGVkLWluZm8iOworICAgICAgICBjZWxsLl90b3RhbCA9IDA7CisgICAgICAg
IGZvciAodmFyIGluZGV4IGluIHRoaXMuX2FnZ3JlZ2F0ZWRTdGF0cykgeworICAgICAgICAgICAg
dmFyIGxhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICBs
YWJlbC5jbGFzc05hbWUgPSAidGltZWxpbmUtYWdncmVnYXRlZC1jYXRlZ29yeSB0aW1lbGluZS0i
ICsgaW5kZXg7CisgICAgICAgICAgICBjZWxsLmFwcGVuZENoaWxkKGxhYmVsKTsKKyAgICAgICAg
ICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICAg
ICAgdGV4dC50ZXh0Q29udGVudCA9IE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5fYWdncmVn
YXRlZFN0YXRzW2luZGV4XSk7CisgICAgICAgICAgICBjZWxsLl90b3RhbCArPSB0aGlzLl9hZ2dy
ZWdhdGVkU3RhdHNbaW5kZXhdOworICAgICAgICAgICAgY2VsbC5hcHBlbmRDaGlsZCh0ZXh0KTsK
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2VsbDsKKyAgICB9LAorCisgICAgX2dlbmVyYXRl
UG9wdXBDb250ZW50OiBmdW5jdGlvbihjYWxjdWxhdG9yLCBjYXRlZ29yaWVzKQogICAgIHsKICAg
ICAgICAgdmFyIHJlY29yZENvbnRlbnRUYWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRh
YmxlIik7CiAgICAgICAgIHZhciB0aXRsZUNlbGwgPSB0aGlzLl9jcmVhdGVDZWxsKFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiJXMgLSBEZXRhaWxzIiwgdGhpcy50aXRsZSksICJ0aW1lbGluZS1kZXRh
aWxzLXRpdGxlIik7CkBAIC04NzMsNyArOTEwLDEyIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBh
bmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB0aXRsZVJvdyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7CiAgICAgICAgIHRpdGxlUm93LmFwcGVuZENo
aWxkKHRpdGxlQ2VsbCk7CiAgICAgICAgIHJlY29yZENvbnRlbnRUYWJsZS5hcHBlbmRDaGlsZCh0
aXRsZVJvdyk7Ci0gICAgICAgIHZhciB0ZXh0ID0gTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlz
LmVuZFRpbWUgLSB0aGlzLnN0YXJ0VGltZSkgKyAiIChAIiArCisKKyAgICAgICAgaWYgKHRoaXMu
X2NoaWxkcmVuICYmIHRoaXMuX2NoaWxkcmVuLmxlbmd0aCkgeworICAgICAgICAgICAgcmVjb3Jk
Q29udGVudFRhYmxlLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVJvdyhXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlNlbGYgVGltZSIpLCBOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMuX3NlbGZUaW1l
KSkpOworICAgICAgICAgICAgcmVjb3JkQ29udGVudFRhYmxlLmFwcGVuZENoaWxkKHRoaXMuX2Ny
ZWF0ZUxpbmtSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJBZ2dyZWdhdGVkIFRpbWUiKSwgdGhp
cy5fZ2VuZXJhdGVBZ2dyZWdhdGVkSW5mbygpKSk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHRl
eHQgPSBOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHRoaXMuX2xhc3RDaGlsZEVuZFRpbWUgLSB0aGlz
LnN0YXJ0VGltZSkgKyAiIChAIiArCiAgICAgICAgIGNhbGN1bGF0b3IuZm9ybWF0VmFsdWUodGhp
cy5zdGFydFRpbWUgLSBjYWxjdWxhdG9yLm1pbmltdW1Cb3VuZGFyeSkgKyAiKSI7CiAgICAgICAg
IHJlY29yZENvbnRlbnRUYWJsZS5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVSb3coV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJEdXJhdGlvbiIpLCB0ZXh0KSk7CiAKQEAgLTkyNCwxMCArOTY2LDkgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIHZhciBsaW5rID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9k
ZSh0aGlzLmNhbGxlclNjcmlwdE5hbWUsICJzY3JpcHRzIiwgdGhpcy5jYWxsZXJTY3JpcHRMaW5l
KTsKICAgICAgICAgICAgIHJlY29yZENvbnRlbnRUYWJsZS5hcHBlbmRDaGlsZCh0aGlzLl9jcmVh
dGVMaW5rUm93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2FsbGVyIiksIGxpbmspKTsKICAgICAg
ICAgfQotICAgICAgICBpZiAodGhpcy51c2VkSGVhcFNpemUpIHsKLSAgICAgICAgICAgIHJlY29y
ZENvbnRlbnRUYWJsZS5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVSb3coV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJVc2VkIEhlYXAgU2l6ZSIpLCBOdW1iZXIuYnl0ZXNUb1N0cmluZyh0aGlzLnVzZWRI
ZWFwU2l6ZSkpKTsKLSAgICAgICAgICAgIHJlY29yZENvbnRlbnRUYWJsZS5hcHBlbmRDaGlsZCh0
aGlzLl9jcmVhdGVSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUb3RhbCBIZWFwIFNpemUiKSwg
TnVtYmVyLmJ5dGVzVG9TdHJpbmcodGhpcy50b3RhbEhlYXBTaXplKSkpOwotICAgICAgICB9Cisg
ICAgICAgIGlmICh0aGlzLnVzZWRIZWFwU2l6ZSkKKyAgICAgICAgICAgIHJlY29yZENvbnRlbnRU
YWJsZS5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJV
c2VkIEhlYXAgU2l6ZSIpLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVzIG9mICVzIiwgTnVtYmVy
LmJ5dGVzVG9TdHJpbmcodGhpcy51c2VkSGVhcFNpemUpLCBOdW1iZXIuYnl0ZXNUb1N0cmluZyh0
aGlzLnRvdGFsSGVhcFNpemUpKSkpOworCiAgICAgICAgIHJldHVybiByZWNvcmRDb250ZW50VGFi
bGU7CiAgICAgfSwKIApAQCAtOTU5LDYgKzEwMDAsMjUgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICAgICAgcmV0dXJuICIiOwogICAgICAgICB9CisgICAgfSwKKworICAgIF9j
YWxjdWxhdGVBZ2dyZWdhdGVkU3RhdHM6IGZ1bmN0aW9uKGNhdGVnb3JpZXMpCisgICAgeworICAg
ICAgICB0aGlzLl9hZ2dyZWdhdGVkU3RhdHMgPSB7fTsKKyAgICAgICAgLy8gMC4wMDAxIGlzIHVz
ZWQgdG8gYXZvaWQgemVybyBjYXNlIG9mIE51bWJlci5zZWNvbmRzVG9TdHJpbmcKKyAgICAgICAg
Zm9yICh2YXIgY2F0ZWdvcnkgaW4gY2F0ZWdvcmllcykKKyAgICAgICAgICAgIHRoaXMuX2FnZ3Jl
Z2F0ZWRTdGF0c1tjYXRlZ29yeV0gPSAwLjAwMDAxOworICAgICAgICB0aGlzLl9jcHVUaW1lID0g
dGhpcy5fc2VsZlRpbWU7CisKKyAgICAgICAgaWYgKHRoaXMuX2NoaWxkcmVuKSB7CisgICAgICAg
ICAgICBmb3IgKHZhciBpbmRleCA9IHRoaXMuX2NoaWxkcmVuLmxlbmd0aDsgaW5kZXg7IC0taW5k
ZXgpIHsKKyAgICAgICAgICAgICAgICB2YXIgY2hpbGQgPSB0aGlzLl9jaGlsZHJlbltpbmRleCAt
IDFdOworICAgICAgICAgICAgICAgIHRoaXMuX2FnZ3JlZ2F0ZWRTdGF0c1tjaGlsZC5jYXRlZ29y
eS5uYW1lXSArPSBjaGlsZC5fc2VsZlRpbWU7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgY2F0
ZWdvcnkgaW4gY2F0ZWdvcmllcykKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWdncmVnYXRl
ZFN0YXRzW2NhdGVnb3J5XSArPSBjaGlsZC5fYWdncmVnYXRlZFN0YXRzW2NhdGVnb3J5XTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAodmFyIGNhdGVnb3J5IGluIHRoaXMuX2FnZ3Jl
Z2F0ZWRTdGF0cykKKyAgICAgICAgICAgICAgICB0aGlzLl9jcHVUaW1lICs9IHRoaXMuX2FnZ3Jl
Z2F0ZWRTdGF0c1tjYXRlZ29yeV07CisgICAgICAgIH0KICAgICB9CiB9Ci0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKaW5kZXggNTgxYzc1YS4uNzlhOGEzMiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKQEAgLTM2MDUsNyArMzYw
NSwxMSBAQCBib2R5LmluYWN0aXZlIC5zaWRlYmFyLXRyZWUtaXRlbS5zZWxlY3RlZCAuYnViYmxl
LnNlYXJjaC1tYXRjaGVzIHsKIH0KIAogLnRpbWVsaW5lLWdyYXBoLWJhci53aXRoLWNoaWxkcmVu
IHsKLSAgICBvcGFjaXR5OiAwLjM7CisgICAgb3BhY2l0eTogMC4yOworfQorCisudGltZWxpbmUt
Z3JhcGgtYmFyLmNwdSB7CisgICAgb3BhY2l0eTogMC42OwogfQogCiAudGltZWxpbmUtZ3JhcGgt
c2lkZS5ldmVuIHsKQEAgLTM2MjQsNiArMzYyOCwzMiBAQCBib2R5LmluYWN0aXZlIC5zaWRlYmFy
LXRyZWUtaXRlbS5zZWxlY3RlZCAuYnViYmxlLnNlYXJjaC1tYXRjaGVzIHsKICAgICAtd2Via2l0
LWJvcmRlci1pbWFnZTogdXJsKEltYWdlcy90aW1lbGluZUJhclB1cnBsZS5wbmcpIDQgNCA1IDQ7
CiB9CiAKKy50aW1lbGluZS1hZ2dyZWdhdGVkLWNhdGVnb3J5IHsKKyAgICBkaXNwbGF5OiBpbmxp
bmUtYmxvY2s7CisgICAgaGVpZ2h0OiAxMXB4OworICAgIG1hcmdpbi1yaWdodDogMnB4OworICAg
IG1hcmdpbi1sZWZ0OiA2cHg7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHRvcDogMnB4
OworICAgIHdpZHRoOiAxMHB4OworfQorCisudGltZWxpbmUtbG9hZGluZyB7CisgICAgLXdlYmtp
dC1ib3JkZXItaW1hZ2U6IHVybChJbWFnZXMvdGltZWxpbmVCYXJCbHVlLnBuZykgNCA0IDUgNDsK
K30KKworLnRpbWVsaW5lLXNjcmlwdGluZyB7CisgICAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IHVy
bChJbWFnZXMvdGltZWxpbmVCYXJPcmFuZ2UucG5nKSA0IDQgNSA0OworfQorCisudGltZWxpbmUt
cmVuZGVyaW5nIHsKKyAgICAtd2Via2l0LWJvcmRlci1pbWFnZTogdXJsKEltYWdlcy90aW1lbGlu
ZUJhclB1cnBsZS5wbmcpIDQgNCA1IDQ7Cit9CisKKy5wb3BvdmVyIC50aW1lbGluZS1hZ2dyZWdh
dGVkLWNhdGVnb3J5LnRpbWVsaW5lLWxvYWRpbmcgeworICAgIG1hcmdpbi1sZWZ0OiAwcHg7Cit9
CisKIC50aW1lbGluZS1jYXRlZ29yeS1sb2FkaW5nIC50aW1lbGluZS10cmVlLWljb24gewogICAg
IGJhY2tncm91bmQtcG9zaXRpb24teTogMHB4OwogfQpAQCAtMzY1MSw3ICszNjgxLDExIEBAIGJv
ZHkuaW5hY3RpdmUgLnNpZGViYXItdHJlZS1pdGVtLnNlbGVjdGVkIC5idWJibGUuc2VhcmNoLW1h
dGNoZXMgewogfQogCiAudGltZWxpbmUtZGV0YWlscy10aXRsZSB7CisgICAgYm9yZGVyLWJvdHRv
bTogMXB4IHNvbGlkICNCOEI4Qjg7CisgICAgZm9udC1zaXplOiAxMXB4OwogICAgIGZvbnQtd2Vp
Z2h0OiBib2xkOworICAgIHBhZGRpbmctYm90dG9tOiA1cHg7CisgICAgcGFkZGluZy10b3A6IDBw
eDsKICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogfQogCg==
</data>
<flag name="review"
          id="38058"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>