<?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>71939</bug_id>
          
          <creation_ts>2011-11-09 11:17:00 -0800</creation_ts>
          <short_desc>[MutationObservers] Microbenchmarks for appendChild, removeChild, and innerHTML</short_desc>
          <delta_ts>2011-11-10 10:42:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>68729</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Klein">adamk</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>ojan</cc>
    
    <cc>rafaelw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>499174</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-11-09 11:17:00 -0800</bug_when>
    <thetext>[MutationObservers] Microbenchmarks for appendChild, removeChild, and innerHTML</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499184</commentid>
    <comment_count>1</comment_count>
      <attachid>114324</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-11-09 11:24:27 -0800</bug_when>
    <thetext>Created attachment 114324
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499202</commentid>
    <comment_count>2</comment_count>
      <attachid>114330</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-11-09 11:38:24 -0800</bug_when>
    <thetext>Created attachment 114330
Bumped depth to 200</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499218</commentid>
    <comment_count>3</comment_count>
      <attachid>114335</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-11-09 11:57:45 -0800</bug_when>
    <thetext>Created attachment 114335
Remove braces</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499593</commentid>
    <comment_count>4</comment_count>
      <attachid>114335</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-11-09 19:20:09 -0800</bug_when>
    <thetext>Comment on attachment 114335
Remove braces

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

Looks fine. I have some personal stylistic nits that would make the code seem more natural to me, but you can ignore them. I only listed them for the first tests, but obviously the same nits apply to all the tests.

&gt; PerformanceTests/Mutation/append-child-deep.html:23
&gt; +    window.start = null;
&gt; +    window.numRuns = 25;
&gt; +    window.times = [];

Using &quot;window.&quot; here seems weird to me. Just use start/numRuns/times. It&apos;ll do the same thing right?

&gt; PerformanceTests/Mutation/append-child-deep.html:32
&gt; +        var time = new Date().getTime() - start;

Nit: Use Date.now()

&gt; PerformanceTests/Mutation/append-child-deep.html:43
&gt; +        start = new Date().getTime();

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500040</commentid>
    <comment_count>5</comment_count>
      <attachid>114335</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-11-10 10:39:00 -0800</bug_when>
    <thetext>Comment on attachment 114335
Remove braces

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

&gt;&gt; PerformanceTests/Mutation/append-child-deep.html:23
&gt;&gt; +    window.times = [];
&gt; 
&gt; Using &quot;window.&quot; here seems weird to me. Just use start/numRuns/times. It&apos;ll do the same thing right?

Just a clash of stylistic preferences, I guess: I wanted to avoid declaring these variables, but still wanted to make it clear that I _knew_ they were being set on the global scope.

&gt;&gt; PerformanceTests/Mutation/append-child-deep.html:32
&gt;&gt; +        var time = new Date().getTime() - start;
&gt; 
&gt; Nit: Use Date.now()

Ah, yes, nicer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500045</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-11-10 10:42:09 -0800</bug_when>
    <thetext>Committed r99879: &lt;http://trac.webkit.org/changeset/99879&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114324</attachid>
            <date>2011-11-09 11:24:27 -0800</date>
            <delta_ts>2011-11-09 11:38:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71939-20111109112426.patch</filename>
            <type>text/plain</type>
            <size>11367</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk3MzQKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMv
Q2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2U1YmI0NjVhZjQ3
YWY4MzA2M2IyMWY4NDZhY2JjZTEyNTdhM2E4OC4uM2NhNjY5MjUzOWM5ZmM0NDA0ZmUyOWMwMjFh
YTVjYTBlMjVkMmYyMiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0xMS0w
OSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBbTXV0YXRpb25P
YnNlcnZlcnNdIE1pY3JvYmVuY2htYXJrcyBmb3IgYXBwZW5kQ2hpbGQsIHJlbW92ZUNoaWxkLCBh
bmQgaW5uZXJIVE1MCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MTkzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZXNlIGJlbmNobWFya3MgdGltZSBib3RoIHRoZSBET00gbXV0YXRpb25zIHRoZW1zZWx2
ZXMgYW5kIHRoZSB0aW1lIHRha2VuCisgICAgICAgIHRvIGNhbGwgdGhlIE11dGF0aW9uQ2FsbGJh
Y2suIFRoaXMgbWVhc3VyZW1lbnQgaXMgYWNoaWV2ZWQgYnkKKyAgICAgICAgZXhlY3V0aW5nIHRo
ZSBjb2RlIGVudGlyZWx5IHdpdGhpbiB0aGUgTXV0YXRpb25DYWxsYmFjayBpdHNlbGYuCisKKyAg
ICAgICAgKiBNdXRhdGlvbi9hcHBlbmQtY2hpbGQtZGVlcC5odG1sOiBBZGRlZC4gQ292ZXJzIGFw
cGVuZENoaWxkIGluIGEgNjQtbm9kZS1kZWVwIHRyZWUgd2l0aCBzdWJ0cmVlIG9ic2VydmF0aW9u
LgorICAgICAgICAqIE11dGF0aW9uL2FwcGVuZC1jaGlsZC5odG1sOiBBZGRlZC4gQ292ZXJzIGFw
cGVuZENoaWxkIGluIGEgZmxhdCB0cmVlLgorICAgICAgICAqIE11dGF0aW9uL2lubmVyLWh0bWwu
aHRtbDogQWRkZWQuIENvdmVycyBpbm5lckhUTUwgYWRkaW5nIGFuZCByZW1vdmluZyBtYW55IG5v
ZGVzIGF0IGEgdGltZS4KKyAgICAgICAgKiBNdXRhdGlvbi9yZW1vdmUtY2hpbGQtZGVlcC5odG1s
OiBBZGRlZC4gQ292ZXJzIHJlbW92ZUNoaWxkIGluIGEgNjQtbm9kZS1kZWVwIHRyZWUgd2l0aCBz
dWJ0cmVlIG9ic2VydmF0aW9uLgorICAgICAgICAqIE11dGF0aW9uL3JlbW92ZS1jaGlsZC5odG1s
OiBBZGRlZC4gQ292ZXJzIHJlbW92ZUNoaWxkIGluIGEgZmxhdCB0cmVlLgorCiAyMDExLTEwLTI1
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRXZlbnRUYXJnZXRG
YWN0b3J5LmluIGlzIG5vdCBzb3J0ZWQKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvTXV0
YXRpb24vYXBwZW5kLWNoaWxkLWRlZXAuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvTXV0YXRpb24v
YXBwZW5kLWNoaWxkLWRlZXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDc1ZmZlYzE1ZmJlZmRhNDZiZTg3
OTI4YmFiOGFiYTZhNTM4MTc4Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9N
dXRhdGlvbi9hcHBlbmQtY2hpbGQtZGVlcC5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGJvZHk+Cis8cHJlIGlkPSJsb2ciPjwvcHJlPgorPHNjcmlwdCBzcmM9Ii4uL1Bh
cnNlci9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9InNhbmRib3giIHN0
eWxlPSJkaXNwbGF5Om5vbmUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBzYW5kYm94ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKK3ZhciBub2RlID0gc2FuZGJveDsKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgNjQ7ICsraSkgeworICAgIG5vZGUgPSBub2RlLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKK30KK3ZhciBlbGVtcyA9IFtdOworZm9yICh2
YXIgaSA9IDA7IGkgPCA1MDAwMDsgKytpKSB7CisgICAgZWxlbXNbaV0gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKK30KK3ZhciBvYnNlcnZpbmcgPSBmYWxzZTsKKwordmFyIG9ic2Vy
dmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIobGlzdGVuZXIpOwordmFyIHRpY2tsZWRT
cGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworb2JzZXJ2ZXIub2JzZXJ2ZSh0
aWNrbGVkU3Bhbiwge2F0dHJpYnV0ZXM6IHRydWV9KTsKKworZnVuY3Rpb24gcmVzZXRTdGF0ZSgp
IHsKKyAgICB3aW5kb3cuc3RhcnQgPSBudWxsOworICAgIHdpbmRvdy5udW1SdW5zID0gMjU7Cisg
ICAgd2luZG93LnRpbWVzID0gW107Cit9CisKK2Z1bmN0aW9uIHJ1bkFnYWluKCkgeworICAgIHRp
Y2tsZWRTcGFuLnNldEF0dHJpYnV0ZSgnZGF0YS1mb28nLCBudW1SdW5zKTsKK30KKworZnVuY3Rp
b24gbGlzdGVuZXIobXV0YXRpb25zKSB7CisgICAgaWYgKHN0YXJ0KSB7CisgICAgICAgIHZhciB0
aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSBzdGFydDsKKyAgICAgICAgdGltZXMucHVzaCh0
aW1lKTsKKyAgICAgICAgbG9nKHRpbWUpOworICAgIH0KKyAgICBpZiAobnVtUnVucy0tID49IDAp
IHsKKyAgICAgICAgcnVuQWdhaW4oKTsKKyAgICAgICAgaWYgKG9ic2VydmluZykKKyAgICAgICAg
ICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKQorICAgICAgICBub2RlLmlubmVySFRNTCA9ICcnOwor
ICAgICAgICBpZiAob2JzZXJ2aW5nKQorICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShzYW5k
Ym94LCB7Y2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlfSk7CisgICAgICAgIHN0YXJ0ID0g
bmV3IERhdGUoKS5nZXRUaW1lKCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbXMu
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoZWxlbXNbaV0pOwor
ICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgbG9nU3RhdGlzdGljcyh0aW1lcyk7Cisg
ICAgICAgIGlmICghb2JzZXJ2aW5nKSB7CisgICAgICAgICAgICBvYnNlcnZpbmcgPSB0cnVlOwor
ICAgICAgICAgICAgcmVzZXRTdGF0ZSgpOworICAgICAgICAgICAgbG9nKCdcbi0tLS0tLS0tLS0t
LVxuJyk7CisgICAgICAgICAgICBsb2coJ1J1bm5pbmcgJyArIG51bVJ1bnMgKyAnIHRpbWVzIHdp
dGggb2JzZXJ2YXRpb24nKTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQocnVuQWdhaW4sIDApOwor
ICAgICAgICB9CisgICAgfQorfQorCityZXNldFN0YXRlKCk7Citsb2coJ1J1bm5pbmcgJyArIG51
bVJ1bnMgKyAnIHRpbWVzIHdpdGhvdXQgb2JzZXJ2YXRpb24nKTsKK3dpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgcnVuQWdhaW4pOworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQg
YS9QZXJmb3JtYW5jZVRlc3RzL011dGF0aW9uL2FwcGVuZC1jaGlsZC5odG1sIGIvUGVyZm9ybWFu
Y2VUZXN0cy9NdXRhdGlvbi9hcHBlbmQtY2hpbGQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjE4NzVlMmE1
ZDU4OTJmZmM2N2Y1MWQ0YWMzMWJiYzVmZGQ5ZjZmCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9y
bWFuY2VUZXN0cy9NdXRhdGlvbi9hcHBlbmQtY2hpbGQuaHRtbApAQCAtMCwwICsxLDYxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHByZSBpZD0ibG9nIj48L3ByZT4KKzxzY3JpcHQgc3Jj
PSIuLi9QYXJzZXIvcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJzYW5k
Ym94IiBzdHlsZT0iZGlzcGxheTpub25lIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgc2FuZGJveCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Cit2YXIgb2JzZXJ2aW5nID0gZmFs
c2U7CisKK3ZhciBlbGVtcyA9IFtdOworZm9yICh2YXIgaSA9IDA7IGkgPCA1MDAwMDsgKytpKSB7
CisgICAgZWxlbXNbaV0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK30KK3ZhciBv
YnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGxpc3RlbmVyKTsKK3ZhciB0aWNr
bGVkU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKK29ic2VydmVyLm9ic2Vy
dmUodGlja2xlZFNwYW4sIHthdHRyaWJ1dGVzOiB0cnVlfSk7CisKK2Z1bmN0aW9uIHJlc2V0U3Rh
dGUoKSB7CisgICAgd2luZG93LnN0YXJ0ID0gbnVsbDsKKyAgICB3aW5kb3cubnVtUnVucyA9IDI1
OworICAgIHdpbmRvdy50aW1lcyA9IFtdOworfQorCitmdW5jdGlvbiBydW5BZ2FpbigpIHsKKyAg
ICB0aWNrbGVkU3Bhbi5zZXRBdHRyaWJ1dGUoJ2RhdGEtZm9vJywgbnVtUnVucyk7Cit9CisKK2Z1
bmN0aW9uIGxpc3RlbmVyKG11dGF0aW9ucykgeworICAgIGlmIChzdGFydCkgeworICAgICAgICB2
YXIgdGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gc3RhcnQ7CisgICAgICAgIHRpbWVzLnB1
c2godGltZSk7CisgICAgICAgIGxvZyh0aW1lKTsKKyAgICB9CisgICAgaWYgKG51bVJ1bnMtLSA+
PSAwKSB7CisgICAgICAgIHJ1bkFnYWluKCk7CisgICAgICAgIGlmIChvYnNlcnZpbmcpCisgICAg
ICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCkKKyAgICAgICAgc2FuZGJveC5pbm5lckhUTUwg
PSAnJzsKKyAgICAgICAgaWYgKG9ic2VydmluZykKKyAgICAgICAgICAgIG9ic2VydmVyLm9ic2Vy
dmUoc2FuZGJveCwge2NoaWxkTGlzdDogdHJ1ZX0pOworICAgICAgICBzdGFydCA9IG5ldyBEYXRl
KCkuZ2V0VGltZSgpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1zLmxlbmd0aDsg
KytpKSB7CisgICAgICAgICAgICBzYW5kYm94LmFwcGVuZENoaWxkKGVsZW1zW2ldKTsKKyAgICAg
ICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGxvZ1N0YXRpc3RpY3ModGltZXMpOworICAgICAg
ICBpZiAoIW9ic2VydmluZykgeworICAgICAgICAgICAgb2JzZXJ2aW5nID0gdHJ1ZTsKKyAgICAg
ICAgICAgIHJlc2V0U3RhdGUoKTsKKyAgICAgICAgICAgIGxvZygnXG4tLS0tLS0tLS0tLS1cbicp
OworICAgICAgICAgICAgbG9nKCdSdW5uaW5nICcgKyBudW1SdW5zICsgJyB0aW1lcyB3aXRoIG9i
c2VydmF0aW9uJyk7CisgICAgICAgICAgICBzZXRUaW1lb3V0KHJ1bkFnYWluLCAwKTsKKyAgICAg
ICAgfQorICAgIH0KK30KKworcmVzZXRTdGF0ZSgpOworbG9nKCdSdW5uaW5nICcgKyBudW1SdW5z
ICsgJyB0aW1lcyB3aXRob3V0IG9ic2VydmF0aW9uJyk7Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbG9hZCcsIHJ1bkFnYWluKTsKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvUGVy
Zm9ybWFuY2VUZXN0cy9NdXRhdGlvbi9pbm5lci1odG1sLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3Rz
L011dGF0aW9uL2lubmVyLWh0bWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZGQ0ZGVkNmM3YTcxMGQ5ZDRj
NjI2MjExYjUyNGRkYWY2NjE4ZTY5Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0
cy9NdXRhdGlvbi9pbm5lci1odG1sLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8Ym9keT4KKzxwcmUgaWQ9ImxvZyI+PC9wcmU+Cis8c2NyaXB0IHNyYz0iLi4vUGFyc2Vy
L3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ic2FuZGJveCIgc3R5bGU9
ImRpc3BsYXk6bm9uZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIHNhbmRib3ggPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwordmFyIG9ic2VydmluZyA9IGZhbHNlOworZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICBzYW5kYm94LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKK30KK3ZhciBodG1sID0gc2FuZGJveC5pbm5lckhU
TUw7CisKK3ZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGxpc3RlbmVy
KTsKK3ZhciB0aWNrbGVkU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKK29i
c2VydmVyLm9ic2VydmUodGlja2xlZFNwYW4sIHthdHRyaWJ1dGVzOiB0cnVlfSk7CisKK2Z1bmN0
aW9uIHJlc2V0U3RhdGUoKSB7CisgICAgd2luZG93LnN0YXJ0ID0gbnVsbDsKKyAgICB3aW5kb3cu
bnVtUnVucyA9IDI1OworICAgIHdpbmRvdy50aW1lcyA9IFtdOworfQorCitmdW5jdGlvbiBydW5B
Z2FpbigpIHsKKyAgICB0aWNrbGVkU3Bhbi5zZXRBdHRyaWJ1dGUoJ2RhdGEtZm9vJywgbnVtUnVu
cyk7Cit9CisKK2Z1bmN0aW9uIGxpc3RlbmVyKG11dGF0aW9ucykgeworICAgIGlmIChzdGFydCkg
eworICAgICAgICB2YXIgdGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gc3RhcnQ7CisgICAg
ICAgIHRpbWVzLnB1c2godGltZSk7CisgICAgICAgIGxvZyh0aW1lKTsKKyAgICB9CisgICAgaWYg
KG51bVJ1bnMtLSA+PSAwKSB7CisgICAgICAgIHJ1bkFnYWluKCk7CisgICAgICAgIHN0YXJ0ID0g
bmV3IERhdGUoKS5nZXRUaW1lKCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyAr
K2kpIHsKKyAgICAgICAgICAgIHNhbmRib3guaW5uZXJIVE1MID0gaHRtbDsKKyAgICAgICAgfQor
ICAgIH0gZWxzZSB7CisgICAgICAgIGxvZ1N0YXRpc3RpY3ModGltZXMpOworICAgICAgICBpZiAo
IW9ic2VydmluZykgeworICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShzYW5kYm94LCB7Y2hp
bGRMaXN0OiB0cnVlfSk7CisgICAgICAgICAgICBvYnNlcnZpbmcgPSB0cnVlOworICAgICAgICAg
ICAgcmVzZXRTdGF0ZSgpOworICAgICAgICAgICAgbG9nKCdcbi0tLS0tLS0tLS0tLVxuJyk7Cisg
ICAgICAgICAgICBsb2coJ1J1bm5pbmcgJyArIG51bVJ1bnMgKyAnIHRpbWVzIHdpdGggb2JzZXJ2
YXRpb24nKTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQocnVuQWdhaW4sIDApOworICAgICAgICB9
CisgICAgfQorfQorCityZXNldFN0YXRlKCk7Citsb2coJ1J1bm5pbmcgJyArIG51bVJ1bnMgKyAn
IHRpbWVzIHdpdGhvdXQgb2JzZXJ2YXRpb24nKTsKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgcnVuQWdhaW4pOworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9QZXJmb3Jt
YW5jZVRlc3RzL011dGF0aW9uL3JlbW92ZS1jaGlsZC1kZWVwLmh0bWwgYi9QZXJmb3JtYW5jZVRl
c3RzL011dGF0aW9uL3JlbW92ZS1jaGlsZC1kZWVwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY3YjNhNTBj
OGFmZDAyNTEzOGNkMjdkOWFiZjUzMjc5YjRiNTcxMwotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvTXV0YXRpb24vcmVtb3ZlLWNoaWxkLWRlZXAuaHRtbApAQCAtMCwwICsxLDY4
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHByZSBpZD0ibG9nIj48L3ByZT4KKzxzY3Jp
cHQgc3JjPSIuLi9QYXJzZXIvcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlk
PSJzYW5kYm94IiBzdHlsZT0iZGlzcGxheTpub25lIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgc2Fu
ZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Cit2YXIgbm9kZSA9IHNh
bmRib3g7Citmb3IgKHZhciBpID0gMDsgaSA8IDY0OyArK2kpIHsKKyAgICBub2RlID0gbm9kZS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Cit9Cit2YXIgb2JzZXJ2
aW5nID0gZmFsc2U7CisKK3ZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
KGxpc3RlbmVyKTsKK3ZhciB0aWNrbGVkU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nw
YW4nKTsKK29ic2VydmVyLm9ic2VydmUodGlja2xlZFNwYW4sIHthdHRyaWJ1dGVzOiB0cnVlfSk7
CisKK2Z1bmN0aW9uIHJlc2V0U3RhdGUoKSB7CisgICAgd2luZG93LnN0YXJ0ID0gbnVsbDsKKyAg
ICB3aW5kb3cubnVtUnVucyA9IDI1OworICAgIHdpbmRvdy50aW1lcyA9IFtdOworfQorCitmdW5j
dGlvbiBydW5BZ2FpbigpIHsKKyAgICB0aWNrbGVkU3Bhbi5zZXRBdHRyaWJ1dGUoJ2RhdGEtZm9v
JywgbnVtUnVucyk7Cit9CisKK2Z1bmN0aW9uIGhpZGVGcm9tT2JzZXJ2YXRpb24oZnVuYykgewor
ICAgIGlmIChvYnNlcnZpbmcpCisgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTsKKyAgICBm
dW5jKCk7CisgICAgaWYgKG9ic2VydmluZykKKyAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShzYW5k
Ym94LCB7Y2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlfSk7Cit9CisKK2Z1bmN0aW9uIGxp
c3RlbmVyKG11dGF0aW9ucykgeworICAgIGlmIChzdGFydCkgeworICAgICAgICB2YXIgdGltZSA9
IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gc3RhcnQ7CisgICAgICAgIHRpbWVzLnB1c2godGltZSk7
CisgICAgICAgIGxvZyh0aW1lKTsKKyAgICB9CisgICAgaWYgKG51bVJ1bnMtLSA+PSAwKSB7Cisg
ICAgICAgIHJ1bkFnYWluKCk7CisgICAgICAgIGhpZGVGcm9tT2JzZXJ2YXRpb24oZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDUwMDAwOyArK2kpCisgICAgICAg
ICAgICAgICAgbm9kZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7
CisgICAgICAgIH0pOworICAgICAgICBzdGFydCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOworICAg
ICAgICB3aGlsZSAobm9kZS5maXJzdENoaWxkKSB7CisgICAgICAgICAgICBub2RlLnJlbW92ZUNo
aWxkKG5vZGUuZmlyc3RDaGlsZCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBs
b2dTdGF0aXN0aWNzKHRpbWVzKTsKKyAgICAgICAgaWYgKCFvYnNlcnZpbmcpIHsKKyAgICAgICAg
ICAgIG9ic2VydmluZyA9IHRydWU7CisgICAgICAgICAgICByZXNldFN0YXRlKCk7CisgICAgICAg
ICAgICBsb2coJ1xuLS0tLS0tLS0tLS0tXG4nKTsKKyAgICAgICAgICAgIGxvZygnUnVubmluZyAn
ICsgbnVtUnVucyArICcgdGltZXMgd2l0aCBvYnNlcnZhdGlvbicpOworICAgICAgICAgICAgc2V0
VGltZW91dChydW5BZ2FpbiwgMCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3Jlc2V0U3RhdGUo
KTsKK2xvZygnUnVubmluZyAnICsgbnVtUnVucyArICcgdGltZXMgd2l0aG91dCBvYnNlcnZhdGlv
bicpOword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5BZ2Fpbik7Cis8L3Njcmlw
dD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvTXV0YXRpb24vcmVtb3Zl
LWNoaWxkLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL011dGF0aW9uL3JlbW92ZS1jaGlsZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZmNGY3OTM5ZTE3ZGE0ZjBhNDY5ODI5NmVmN2ViYTllYjY4M2ViMjQKLS0t
IC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL011dGF0aW9uL3JlbW92ZS1jaGlsZC5o
dG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8cHJlIGlkPSJs
b2ciPjwvcHJlPgorPHNjcmlwdCBzcmM9Ii4uL1BhcnNlci9yZXNvdXJjZXMvcnVubmVyLmpzIj48
L3NjcmlwdD4KKzxkaXYgaWQ9InNhbmRib3giIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjwvZGl2Pgor
PHNjcmlwdD4KK3ZhciBzYW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gn
KTsKK3ZhciBvYnNlcnZpbmcgPSBmYWxzZTsKKwordmFyIG9ic2VydmVyID0gbmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIobGlzdGVuZXIpOwordmFyIHRpY2tsZWRTcGFuID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnc3BhbicpOworb2JzZXJ2ZXIub2JzZXJ2ZSh0aWNrbGVkU3Bhbiwge2F0dHJp
YnV0ZXM6IHRydWV9KTsKKworZnVuY3Rpb24gcmVzZXRTdGF0ZSgpIHsKKyAgICB3aW5kb3cuc3Rh
cnQgPSBudWxsOworICAgIHdpbmRvdy5udW1SdW5zID0gMjU7CisgICAgd2luZG93LnRpbWVzID0g
W107Cit9CisKK2Z1bmN0aW9uIHJ1bkFnYWluKCkgeworICAgIHRpY2tsZWRTcGFuLnNldEF0dHJp
YnV0ZSgnZGF0YS1mb28nLCBudW1SdW5zKTsKK30KKworZnVuY3Rpb24gaGlkZUZyb21PYnNlcnZh
dGlvbihmdW5jKSB7CisgICAgaWYgKG9ic2VydmluZykKKyAgICAgICAgb2JzZXJ2ZXIuZGlzY29u
bmVjdCgpCisgICAgZnVuYygpOworICAgIGlmIChvYnNlcnZpbmcpCisgICAgICAgIG9ic2VydmVy
Lm9ic2VydmUoc2FuZGJveCwge2NoaWxkTGlzdDogdHJ1ZX0pOworfQorCitmdW5jdGlvbiBsaXN0
ZW5lcihtdXRhdGlvbnMpIHsKKyAgICBpZiAoc3RhcnQpIHsKKyAgICAgICAgdmFyIHRpbWUgPSBu
ZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHN0YXJ0OworICAgICAgICB0aW1lcy5wdXNoKHRpbWUpOwor
ICAgICAgICBsb2codGltZSk7CisgICAgfQorICAgIGlmIChudW1SdW5zLS0gPj0gMCkgeworICAg
ICAgICBydW5BZ2FpbigpOworICAgICAgICBoaWRlRnJvbU9ic2VydmF0aW9uKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1MDAwMDsgKytpKQorICAgICAgICAg
ICAgICAgIHNhbmRib3guYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jykp
OworICAgICAgICB9KTsKKyAgICAgICAgc3RhcnQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKKyAg
ICAgICAgd2hpbGUgKHNhbmRib3guZmlyc3RDaGlsZCkgeworICAgICAgICAgICAgc2FuZGJveC5y
ZW1vdmVDaGlsZChzYW5kYm94LmZpcnN0Q2hpbGQpOworICAgICAgICB9CisgICAgfSBlbHNlIHsK
KyAgICAgICAgbG9nU3RhdGlzdGljcyh0aW1lcyk7CisgICAgICAgIGlmICghb2JzZXJ2aW5nKSB7
CisgICAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKHNhbmRib3gsIHtjaGlsZExpc3Q6IHRydWV9
KTsKKyAgICAgICAgICAgIG9ic2VydmluZyA9IHRydWU7CisgICAgICAgICAgICByZXNldFN0YXRl
KCk7CisgICAgICAgICAgICBsb2coJ1xuLS0tLS0tLS0tLS0tXG4nKTsKKyAgICAgICAgICAgIGxv
ZygnUnVubmluZyAnICsgbnVtUnVucyArICcgdGltZXMgd2l0aCBvYnNlcnZhdGlvbicpOworICAg
ICAgICAgICAgc2V0VGltZW91dChydW5BZ2FpbiwgMCk7CisgICAgICAgIH0KKyAgICB9Cit9CisK
K3Jlc2V0U3RhdGUoKTsKK2xvZygnUnVubmluZyAnICsgbnVtUnVucyArICcgdGltZXMgd2l0aG91
dCBvYnNlcnZhdGlvbicpOword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5BZ2Fp
bik7Cis8L3NjcmlwdD4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114330</attachid>
            <date>2011-11-09 11:38:24 -0800</date>
            <delta_ts>2011-11-09 11:57:42 -0800</delta_ts>
            <desc>Bumped depth to 200</desc>
            <filename>bug-71939-20111109113823.patch</filename>
            <type>text/plain</type>
            <size>11371</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk3MzQKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMv
Q2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2U1YmI0NjVhZjQ3
YWY4MzA2M2IyMWY4NDZhY2JjZTEyNTdhM2E4OC4uY2RjNmI3OTY5M2ZiNDlkODM3ZjgzNzIyNDhl
OWYyZWEzZDA5YWQwYSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0xMS0w
OSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBbTXV0YXRpb25P
YnNlcnZlcnNdIE1pY3JvYmVuY2htYXJrcyBmb3IgYXBwZW5kQ2hpbGQsIHJlbW92ZUNoaWxkLCBh
bmQgaW5uZXJIVE1MCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MTkzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZXNlIGJlbmNobWFya3MgdGltZSBib3RoIHRoZSBET00gbXV0YXRpb25zIHRoZW1zZWx2
ZXMgYW5kIHRoZSB0aW1lIHRha2VuCisgICAgICAgIHRvIGNhbGwgdGhlIE11dGF0aW9uQ2FsbGJh
Y2suIFRoaXMgbWVhc3VyZW1lbnQgaXMgYWNoaWV2ZWQgYnkKKyAgICAgICAgZXhlY3V0aW5nIHRo
ZSBjb2RlIGVudGlyZWx5IHdpdGhpbiB0aGUgTXV0YXRpb25DYWxsYmFjayBpdHNlbGYuCisKKyAg
ICAgICAgKiBNdXRhdGlvbi9hcHBlbmQtY2hpbGQtZGVlcC5odG1sOiBBZGRlZC4gQ292ZXJzIGFw
cGVuZENoaWxkIGluIGEgMjAwLW5vZGUtZGVlcCB0cmVlIHdpdGggc3VidHJlZSBvYnNlcnZhdGlv
bi4KKyAgICAgICAgKiBNdXRhdGlvbi9hcHBlbmQtY2hpbGQuaHRtbDogQWRkZWQuIENvdmVycyBh
cHBlbmRDaGlsZCBpbiBhIGZsYXQgdHJlZS4KKyAgICAgICAgKiBNdXRhdGlvbi9pbm5lci1odG1s
Lmh0bWw6IEFkZGVkLiBDb3ZlcnMgaW5uZXJIVE1MIGFkZGluZyBhbmQgcmVtb3ZpbmcgbWFueSBu
b2RlcyBhdCBhIHRpbWUuCisgICAgICAgICogTXV0YXRpb24vcmVtb3ZlLWNoaWxkLWRlZXAuaHRt
bDogQWRkZWQuIENvdmVycyByZW1vdmVDaGlsZCBpbiBhIDIwMC1ub2RlLWRlZXAgdHJlZSB3aXRo
IHN1YnRyZWUgb2JzZXJ2YXRpb24uCisgICAgICAgICogTXV0YXRpb24vcmVtb3ZlLWNoaWxkLmh0
bWw6IEFkZGVkLiBDb3ZlcnMgcmVtb3ZlQ2hpbGQgaW4gYSBmbGF0IHRyZWUuCisKIDIwMTEtMTAt
MjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBFdmVudFRhcmdl
dEZhY3RvcnkuaW4gaXMgbm90IHNvcnRlZApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9N
dXRhdGlvbi9hcHBlbmQtY2hpbGQtZGVlcC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9NdXRhdGlv
bi9hcHBlbmQtY2hpbGQtZGVlcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5ZDYzNTViNjY4MzQzOTc4YjNm
MjgxMGU3YjY3NDhhODRhNWFmMjgKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L011dGF0aW9uL2FwcGVuZC1jaGlsZC1kZWVwLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8Ym9keT4KKzxwcmUgaWQ9ImxvZyI+PC9wcmU+Cis8c2NyaXB0IHNyYz0iLi4v
UGFyc2VyL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ic2FuZGJveCIg
c3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIHNhbmRib3ggPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwordmFyIG5vZGUgPSBzYW5kYm94OworZm9y
ICh2YXIgaSA9IDA7IGkgPCAyMDA7ICsraSkgeworICAgIG5vZGUgPSBub2RlLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKK30KK3ZhciBlbGVtcyA9IFtdOworZm9y
ICh2YXIgaSA9IDA7IGkgPCA1MDAwMDsgKytpKSB7CisgICAgZWxlbXNbaV0gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKK30KK3ZhciBvYnNlcnZpbmcgPSBmYWxzZTsKKwordmFyIG9i
c2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIobGlzdGVuZXIpOwordmFyIHRpY2ts
ZWRTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworb2JzZXJ2ZXIub2JzZXJ2
ZSh0aWNrbGVkU3Bhbiwge2F0dHJpYnV0ZXM6IHRydWV9KTsKKworZnVuY3Rpb24gcmVzZXRTdGF0
ZSgpIHsKKyAgICB3aW5kb3cuc3RhcnQgPSBudWxsOworICAgIHdpbmRvdy5udW1SdW5zID0gMjU7
CisgICAgd2luZG93LnRpbWVzID0gW107Cit9CisKK2Z1bmN0aW9uIHJ1bkFnYWluKCkgeworICAg
IHRpY2tsZWRTcGFuLnNldEF0dHJpYnV0ZSgnZGF0YS1mb28nLCBudW1SdW5zKTsKK30KKworZnVu
Y3Rpb24gbGlzdGVuZXIobXV0YXRpb25zKSB7CisgICAgaWYgKHN0YXJ0KSB7CisgICAgICAgIHZh
ciB0aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSBzdGFydDsKKyAgICAgICAgdGltZXMucHVz
aCh0aW1lKTsKKyAgICAgICAgbG9nKHRpbWUpOworICAgIH0KKyAgICBpZiAobnVtUnVucy0tID49
IDApIHsKKyAgICAgICAgcnVuQWdhaW4oKTsKKyAgICAgICAgaWYgKG9ic2VydmluZykKKyAgICAg
ICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKQorICAgICAgICBub2RlLmlubmVySFRNTCA9ICcn
OworICAgICAgICBpZiAob2JzZXJ2aW5nKQorICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShz
YW5kYm94LCB7Y2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlfSk7CisgICAgICAgIHN0YXJ0
ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxl
bXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoZWxlbXNbaV0p
OworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgbG9nU3RhdGlzdGljcyh0aW1lcyk7
CisgICAgICAgIGlmICghb2JzZXJ2aW5nKSB7CisgICAgICAgICAgICBvYnNlcnZpbmcgPSB0cnVl
OworICAgICAgICAgICAgcmVzZXRTdGF0ZSgpOworICAgICAgICAgICAgbG9nKCdcbi0tLS0tLS0t
LS0tLVxuJyk7CisgICAgICAgICAgICBsb2coJ1J1bm5pbmcgJyArIG51bVJ1bnMgKyAnIHRpbWVz
IHdpdGggb2JzZXJ2YXRpb24nKTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQocnVuQWdhaW4sIDAp
OworICAgICAgICB9CisgICAgfQorfQorCityZXNldFN0YXRlKCk7Citsb2coJ1J1bm5pbmcgJyAr
IG51bVJ1bnMgKyAnIHRpbWVzIHdpdGhvdXQgb2JzZXJ2YXRpb24nKTsKK3dpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgcnVuQWdhaW4pOworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL011dGF0aW9uL2FwcGVuZC1jaGlsZC5odG1sIGIvUGVyZm9y
bWFuY2VUZXN0cy9NdXRhdGlvbi9hcHBlbmQtY2hpbGQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjE4NzVl
MmE1ZDU4OTJmZmM2N2Y1MWQ0YWMzMWJiYzVmZGQ5ZjZmCi0tLSAvZGV2L251bGwKKysrIGIvUGVy
Zm9ybWFuY2VUZXN0cy9NdXRhdGlvbi9hcHBlbmQtY2hpbGQuaHRtbApAQCAtMCwwICsxLDYxIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHByZSBpZD0ibG9nIj48L3ByZT4KKzxzY3JpcHQg
c3JjPSIuLi9QYXJzZXIvcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJz
YW5kYm94IiBzdHlsZT0iZGlzcGxheTpub25lIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgc2FuZGJv
eCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Cit2YXIgb2JzZXJ2aW5nID0g
ZmFsc2U7CisKK3ZhciBlbGVtcyA9IFtdOworZm9yICh2YXIgaSA9IDA7IGkgPCA1MDAwMDsgKytp
KSB7CisgICAgZWxlbXNbaV0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK30KK3Zh
ciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGxpc3RlbmVyKTsKK3ZhciB0
aWNrbGVkU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKK29ic2VydmVyLm9i
c2VydmUodGlja2xlZFNwYW4sIHthdHRyaWJ1dGVzOiB0cnVlfSk7CisKK2Z1bmN0aW9uIHJlc2V0
U3RhdGUoKSB7CisgICAgd2luZG93LnN0YXJ0ID0gbnVsbDsKKyAgICB3aW5kb3cubnVtUnVucyA9
IDI1OworICAgIHdpbmRvdy50aW1lcyA9IFtdOworfQorCitmdW5jdGlvbiBydW5BZ2FpbigpIHsK
KyAgICB0aWNrbGVkU3Bhbi5zZXRBdHRyaWJ1dGUoJ2RhdGEtZm9vJywgbnVtUnVucyk7Cit9CisK
K2Z1bmN0aW9uIGxpc3RlbmVyKG11dGF0aW9ucykgeworICAgIGlmIChzdGFydCkgeworICAgICAg
ICB2YXIgdGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gc3RhcnQ7CisgICAgICAgIHRpbWVz
LnB1c2godGltZSk7CisgICAgICAgIGxvZyh0aW1lKTsKKyAgICB9CisgICAgaWYgKG51bVJ1bnMt
LSA+PSAwKSB7CisgICAgICAgIHJ1bkFnYWluKCk7CisgICAgICAgIGlmIChvYnNlcnZpbmcpCisg
ICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCkKKyAgICAgICAgc2FuZGJveC5pbm5lckhU
TUwgPSAnJzsKKyAgICAgICAgaWYgKG9ic2VydmluZykKKyAgICAgICAgICAgIG9ic2VydmVyLm9i
c2VydmUoc2FuZGJveCwge2NoaWxkTGlzdDogdHJ1ZX0pOworICAgICAgICBzdGFydCA9IG5ldyBE
YXRlKCkuZ2V0VGltZSgpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1zLmxlbmd0
aDsgKytpKSB7CisgICAgICAgICAgICBzYW5kYm94LmFwcGVuZENoaWxkKGVsZW1zW2ldKTsKKyAg
ICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGxvZ1N0YXRpc3RpY3ModGltZXMpOworICAg
ICAgICBpZiAoIW9ic2VydmluZykgeworICAgICAgICAgICAgb2JzZXJ2aW5nID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHJlc2V0U3RhdGUoKTsKKyAgICAgICAgICAgIGxvZygnXG4tLS0tLS0tLS0tLS1c
bicpOworICAgICAgICAgICAgbG9nKCdSdW5uaW5nICcgKyBudW1SdW5zICsgJyB0aW1lcyB3aXRo
IG9ic2VydmF0aW9uJyk7CisgICAgICAgICAgICBzZXRUaW1lb3V0KHJ1bkFnYWluLCAwKTsKKyAg
ICAgICAgfQorICAgIH0KK30KKworcmVzZXRTdGF0ZSgpOworbG9nKCdSdW5uaW5nICcgKyBudW1S
dW5zICsgJyB0aW1lcyB3aXRob3V0IG9ic2VydmF0aW9uJyk7Cit3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsIHJ1bkFnYWluKTsKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
UGVyZm9ybWFuY2VUZXN0cy9NdXRhdGlvbi9pbm5lci1odG1sLmh0bWwgYi9QZXJmb3JtYW5jZVRl
c3RzL011dGF0aW9uL2lubmVyLWh0bWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZGQ0ZGVkNmM3YTcxMGQ5
ZDRjNjI2MjExYjUyNGRkYWY2NjE4ZTY5Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9NdXRhdGlvbi9pbm5lci1odG1sLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8Ym9keT4KKzxwcmUgaWQ9ImxvZyI+PC9wcmU+Cis8c2NyaXB0IHNyYz0iLi4vUGFy
c2VyL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ic2FuZGJveCIgc3R5
bGU9ImRpc3BsYXk6bm9uZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIHNhbmRib3ggPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwordmFyIG9ic2VydmluZyA9IGZhbHNlOworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICBzYW5kYm94LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKK30KK3ZhciBodG1sID0gc2FuZGJveC5pbm5l
ckhUTUw7CisKK3ZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGxpc3Rl
bmVyKTsKK3ZhciB0aWNrbGVkU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsK
K29ic2VydmVyLm9ic2VydmUodGlja2xlZFNwYW4sIHthdHRyaWJ1dGVzOiB0cnVlfSk7CisKK2Z1
bmN0aW9uIHJlc2V0U3RhdGUoKSB7CisgICAgd2luZG93LnN0YXJ0ID0gbnVsbDsKKyAgICB3aW5k
b3cubnVtUnVucyA9IDI1OworICAgIHdpbmRvdy50aW1lcyA9IFtdOworfQorCitmdW5jdGlvbiBy
dW5BZ2FpbigpIHsKKyAgICB0aWNrbGVkU3Bhbi5zZXRBdHRyaWJ1dGUoJ2RhdGEtZm9vJywgbnVt
UnVucyk7Cit9CisKK2Z1bmN0aW9uIGxpc3RlbmVyKG11dGF0aW9ucykgeworICAgIGlmIChzdGFy
dCkgeworICAgICAgICB2YXIgdGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gc3RhcnQ7Cisg
ICAgICAgIHRpbWVzLnB1c2godGltZSk7CisgICAgICAgIGxvZyh0aW1lKTsKKyAgICB9CisgICAg
aWYgKG51bVJ1bnMtLSA+PSAwKSB7CisgICAgICAgIHJ1bkFnYWluKCk7CisgICAgICAgIHN0YXJ0
ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
OyArK2kpIHsKKyAgICAgICAgICAgIHNhbmRib3guaW5uZXJIVE1MID0gaHRtbDsKKyAgICAgICAg
fQorICAgIH0gZWxzZSB7CisgICAgICAgIGxvZ1N0YXRpc3RpY3ModGltZXMpOworICAgICAgICBp
ZiAoIW9ic2VydmluZykgeworICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShzYW5kYm94LCB7
Y2hpbGRMaXN0OiB0cnVlfSk7CisgICAgICAgICAgICBvYnNlcnZpbmcgPSB0cnVlOworICAgICAg
ICAgICAgcmVzZXRTdGF0ZSgpOworICAgICAgICAgICAgbG9nKCdcbi0tLS0tLS0tLS0tLVxuJyk7
CisgICAgICAgICAgICBsb2coJ1J1bm5pbmcgJyArIG51bVJ1bnMgKyAnIHRpbWVzIHdpdGggb2Jz
ZXJ2YXRpb24nKTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQocnVuQWdhaW4sIDApOworICAgICAg
ICB9CisgICAgfQorfQorCityZXNldFN0YXRlKCk7Citsb2coJ1J1bm5pbmcgJyArIG51bVJ1bnMg
KyAnIHRpbWVzIHdpdGhvdXQgb2JzZXJ2YXRpb24nKTsKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgcnVuQWdhaW4pOworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9QZXJm
b3JtYW5jZVRlc3RzL011dGF0aW9uL3JlbW92ZS1jaGlsZC1kZWVwLmh0bWwgYi9QZXJmb3JtYW5j
ZVRlc3RzL011dGF0aW9uL3JlbW92ZS1jaGlsZC1kZWVwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTZmOTdi
ZjljNGRlOTllYjZjYmRhNzEzZDZhNGNmZjg1MGEzMDU1YQotLS0gL2Rldi9udWxsCisrKyBiL1Bl
cmZvcm1hbmNlVGVzdHMvTXV0YXRpb24vcmVtb3ZlLWNoaWxkLWRlZXAuaHRtbApAQCAtMCwwICsx
LDY4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHByZSBpZD0ibG9nIj48L3ByZT4KKzxz
Y3JpcHQgc3JjPSIuLi9QYXJzZXIvcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8ZGl2
IGlkPSJzYW5kYm94IiBzdHlsZT0iZGlzcGxheTpub25lIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIg
c2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Cit2YXIgbm9kZSA9
IHNhbmRib3g7Citmb3IgKHZhciBpID0gMDsgaSA8IDIwMDsgKytpKSB7CisgICAgbm9kZSA9IG5v
ZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOworfQordmFyIG9i
c2VydmluZyA9IGZhbHNlOworCit2YXIgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcihsaXN0ZW5lcik7Cit2YXIgdGlja2xlZFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdzcGFuJyk7CitvYnNlcnZlci5vYnNlcnZlKHRpY2tsZWRTcGFuLCB7YXR0cmlidXRlczogdHJ1
ZX0pOworCitmdW5jdGlvbiByZXNldFN0YXRlKCkgeworICAgIHdpbmRvdy5zdGFydCA9IG51bGw7
CisgICAgd2luZG93Lm51bVJ1bnMgPSAyNTsKKyAgICB3aW5kb3cudGltZXMgPSBbXTsKK30KKwor
ZnVuY3Rpb24gcnVuQWdhaW4oKSB7CisgICAgdGlja2xlZFNwYW4uc2V0QXR0cmlidXRlKCdkYXRh
LWZvbycsIG51bVJ1bnMpOworfQorCitmdW5jdGlvbiBoaWRlRnJvbU9ic2VydmF0aW9uKGZ1bmMp
IHsKKyAgICBpZiAob2JzZXJ2aW5nKQorICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7Cisg
ICAgZnVuYygpOworICAgIGlmIChvYnNlcnZpbmcpCisgICAgICAgIG9ic2VydmVyLm9ic2VydmUo
c2FuZGJveCwge2NoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZX0pOworfQorCitmdW5jdGlv
biBsaXN0ZW5lcihtdXRhdGlvbnMpIHsKKyAgICBpZiAoc3RhcnQpIHsKKyAgICAgICAgdmFyIHRp
bWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHN0YXJ0OworICAgICAgICB0aW1lcy5wdXNoKHRp
bWUpOworICAgICAgICBsb2codGltZSk7CisgICAgfQorICAgIGlmIChudW1SdW5zLS0gPj0gMCkg
eworICAgICAgICBydW5BZ2FpbigpOworICAgICAgICBoaWRlRnJvbU9ic2VydmF0aW9uKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1MDAwMDsgKytpKQorICAg
ICAgICAgICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
JykpOworICAgICAgICB9KTsKKyAgICAgICAgc3RhcnQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsK
KyAgICAgICAgd2hpbGUgKG5vZGUuZmlyc3RDaGlsZCkgeworICAgICAgICAgICAgbm9kZS5yZW1v
dmVDaGlsZChub2RlLmZpcnN0Q2hpbGQpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgbG9nU3RhdGlzdGljcyh0aW1lcyk7CisgICAgICAgIGlmICghb2JzZXJ2aW5nKSB7CisgICAg
ICAgICAgICBvYnNlcnZpbmcgPSB0cnVlOworICAgICAgICAgICAgcmVzZXRTdGF0ZSgpOworICAg
ICAgICAgICAgbG9nKCdcbi0tLS0tLS0tLS0tLVxuJyk7CisgICAgICAgICAgICBsb2coJ1J1bm5p
bmcgJyArIG51bVJ1bnMgKyAnIHRpbWVzIHdpdGggb2JzZXJ2YXRpb24nKTsKKyAgICAgICAgICAg
IHNldFRpbWVvdXQocnVuQWdhaW4sIDApOworICAgICAgICB9CisgICAgfQorfQorCityZXNldFN0
YXRlKCk7Citsb2coJ1J1bm5pbmcgJyArIG51bVJ1bnMgKyAnIHRpbWVzIHdpdGhvdXQgb2JzZXJ2
YXRpb24nKTsKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVuQWdhaW4pOworPC9z
Y3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL011dGF0aW9uL3Jl
bW92ZS1jaGlsZC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9NdXRhdGlvbi9yZW1vdmUtY2hpbGQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42ZjRmNzkzOWUxN2RhNGYwYTQ2OTgyOTZlZjdlYmE5ZWI2ODNlYjI0
Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9NdXRhdGlvbi9yZW1vdmUtY2hp
bGQuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHByZSBp
ZD0ibG9nIj48L3ByZT4KKzxzY3JpcHQgc3JjPSIuLi9QYXJzZXIvcmVzb3VyY2VzL3J1bm5lci5q
cyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJzYW5kYm94IiBzdHlsZT0iZGlzcGxheTpub25lIj48L2Rp
dj4KKzxzY3JpcHQ+Cit2YXIgc2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5k
Ym94Jyk7Cit2YXIgb2JzZXJ2aW5nID0gZmFsc2U7CisKK3ZhciBvYnNlcnZlciA9IG5ldyBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyKGxpc3RlbmVyKTsKK3ZhciB0aWNrbGVkU3BhbiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKK29ic2VydmVyLm9ic2VydmUodGlja2xlZFNwYW4sIHth
dHRyaWJ1dGVzOiB0cnVlfSk7CisKK2Z1bmN0aW9uIHJlc2V0U3RhdGUoKSB7CisgICAgd2luZG93
LnN0YXJ0ID0gbnVsbDsKKyAgICB3aW5kb3cubnVtUnVucyA9IDI1OworICAgIHdpbmRvdy50aW1l
cyA9IFtdOworfQorCitmdW5jdGlvbiBydW5BZ2FpbigpIHsKKyAgICB0aWNrbGVkU3Bhbi5zZXRB
dHRyaWJ1dGUoJ2RhdGEtZm9vJywgbnVtUnVucyk7Cit9CisKK2Z1bmN0aW9uIGhpZGVGcm9tT2Jz
ZXJ2YXRpb24oZnVuYykgeworICAgIGlmIChvYnNlcnZpbmcpCisgICAgICAgIG9ic2VydmVyLmRp
c2Nvbm5lY3QoKQorICAgIGZ1bmMoKTsKKyAgICBpZiAob2JzZXJ2aW5nKQorICAgICAgICBvYnNl
cnZlci5vYnNlcnZlKHNhbmRib3gsIHtjaGlsZExpc3Q6IHRydWV9KTsKK30KKworZnVuY3Rpb24g
bGlzdGVuZXIobXV0YXRpb25zKSB7CisgICAgaWYgKHN0YXJ0KSB7CisgICAgICAgIHZhciB0aW1l
ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSBzdGFydDsKKyAgICAgICAgdGltZXMucHVzaCh0aW1l
KTsKKyAgICAgICAgbG9nKHRpbWUpOworICAgIH0KKyAgICBpZiAobnVtUnVucy0tID49IDApIHsK
KyAgICAgICAgcnVuQWdhaW4oKTsKKyAgICAgICAgaGlkZUZyb21PYnNlcnZhdGlvbihmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTAwMDA7ICsraSkKKyAgICAg
ICAgICAgICAgICBzYW5kYm94LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpKTsKKyAgICAgICAgfSk7CisgICAgICAgIHN0YXJ0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7
CisgICAgICAgIHdoaWxlIChzYW5kYm94LmZpcnN0Q2hpbGQpIHsKKyAgICAgICAgICAgIHNhbmRi
b3gucmVtb3ZlQ2hpbGQoc2FuZGJveC5maXJzdENoaWxkKTsKKyAgICAgICAgfQorICAgIH0gZWxz
ZSB7CisgICAgICAgIGxvZ1N0YXRpc3RpY3ModGltZXMpOworICAgICAgICBpZiAoIW9ic2Vydmlu
ZykgeworICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShzYW5kYm94LCB7Y2hpbGRMaXN0OiB0
cnVlfSk7CisgICAgICAgICAgICBvYnNlcnZpbmcgPSB0cnVlOworICAgICAgICAgICAgcmVzZXRT
dGF0ZSgpOworICAgICAgICAgICAgbG9nKCdcbi0tLS0tLS0tLS0tLVxuJyk7CisgICAgICAgICAg
ICBsb2coJ1J1bm5pbmcgJyArIG51bVJ1bnMgKyAnIHRpbWVzIHdpdGggb2JzZXJ2YXRpb24nKTsK
KyAgICAgICAgICAgIHNldFRpbWVvdXQocnVuQWdhaW4sIDApOworICAgICAgICB9CisgICAgfQor
fQorCityZXNldFN0YXRlKCk7Citsb2coJ1J1bm5pbmcgJyArIG51bVJ1bnMgKyAnIHRpbWVzIHdp
dGhvdXQgb2JzZXJ2YXRpb24nKTsKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVu
QWdhaW4pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114335</attachid>
            <date>2011-11-09 11:57:45 -0800</date>
            <delta_ts>2011-11-10 10:39:00 -0800</delta_ts>
            <desc>Remove braces</desc>
            <filename>bug-71939-20111109115744.patch</filename>
            <type>text/plain</type>
            <size>11281</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk3MzQKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMv
Q2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2U1YmI0NjVhZjQ3
YWY4MzA2M2IyMWY4NDZhY2JjZTEyNTdhM2E4OC4uY2RjNmI3OTY5M2ZiNDlkODM3ZjgzNzIyNDhl
OWYyZWEzZDA5YWQwYSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0xMS0w
OSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBbTXV0YXRpb25P
YnNlcnZlcnNdIE1pY3JvYmVuY2htYXJrcyBmb3IgYXBwZW5kQ2hpbGQsIHJlbW92ZUNoaWxkLCBh
bmQgaW5uZXJIVE1MCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MTkzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZXNlIGJlbmNobWFya3MgdGltZSBib3RoIHRoZSBET00gbXV0YXRpb25zIHRoZW1zZWx2
ZXMgYW5kIHRoZSB0aW1lIHRha2VuCisgICAgICAgIHRvIGNhbGwgdGhlIE11dGF0aW9uQ2FsbGJh
Y2suIFRoaXMgbWVhc3VyZW1lbnQgaXMgYWNoaWV2ZWQgYnkKKyAgICAgICAgZXhlY3V0aW5nIHRo
ZSBjb2RlIGVudGlyZWx5IHdpdGhpbiB0aGUgTXV0YXRpb25DYWxsYmFjayBpdHNlbGYuCisKKyAg
ICAgICAgKiBNdXRhdGlvbi9hcHBlbmQtY2hpbGQtZGVlcC5odG1sOiBBZGRlZC4gQ292ZXJzIGFw
cGVuZENoaWxkIGluIGEgMjAwLW5vZGUtZGVlcCB0cmVlIHdpdGggc3VidHJlZSBvYnNlcnZhdGlv
bi4KKyAgICAgICAgKiBNdXRhdGlvbi9hcHBlbmQtY2hpbGQuaHRtbDogQWRkZWQuIENvdmVycyBh
cHBlbmRDaGlsZCBpbiBhIGZsYXQgdHJlZS4KKyAgICAgICAgKiBNdXRhdGlvbi9pbm5lci1odG1s
Lmh0bWw6IEFkZGVkLiBDb3ZlcnMgaW5uZXJIVE1MIGFkZGluZyBhbmQgcmVtb3ZpbmcgbWFueSBu
b2RlcyBhdCBhIHRpbWUuCisgICAgICAgICogTXV0YXRpb24vcmVtb3ZlLWNoaWxkLWRlZXAuaHRt
bDogQWRkZWQuIENvdmVycyByZW1vdmVDaGlsZCBpbiBhIDIwMC1ub2RlLWRlZXAgdHJlZSB3aXRo
IHN1YnRyZWUgb2JzZXJ2YXRpb24uCisgICAgICAgICogTXV0YXRpb24vcmVtb3ZlLWNoaWxkLmh0
bWw6IEFkZGVkLiBDb3ZlcnMgcmVtb3ZlQ2hpbGQgaW4gYSBmbGF0IHRyZWUuCisKIDIwMTEtMTAt
MjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBFdmVudFRhcmdl
dEZhY3RvcnkuaW4gaXMgbm90IHNvcnRlZApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9N
dXRhdGlvbi9hcHBlbmQtY2hpbGQtZGVlcC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9NdXRhdGlv
bi9hcHBlbmQtY2hpbGQtZGVlcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiMDU0NTY0YzgxZjI3MWIwOTU4
YWRlYTg4ZjM5Y2EyZjc1MDEzOWYKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L011dGF0aW9uL2FwcGVuZC1jaGlsZC1kZWVwLmh0bWwKQEAgLTAsMCArMSw2MiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8Ym9keT4KKzxwcmUgaWQ9ImxvZyI+PC9wcmU+Cis8c2NyaXB0IHNyYz0iLi4v
UGFyc2VyL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ic2FuZGJveCIg
c3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIHNhbmRib3ggPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwordmFyIG5vZGUgPSBzYW5kYm94OworZm9y
ICh2YXIgaSA9IDA7IGkgPCAyMDA7ICsraSkKKyAgICBub2RlID0gbm9kZS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Cit2YXIgZWxlbXMgPSBbXTsKK2ZvciAodmFy
IGkgPSAwOyBpIDwgNTAwMDA7ICsraSkKKyAgICBlbGVtc1tpXSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwordmFyIG9ic2VydmluZyA9IGZhbHNlOworCit2YXIgb2JzZXJ2ZXIgPSBu
ZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihsaXN0ZW5lcik7Cit2YXIgdGlja2xlZFNwYW4gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CitvYnNlcnZlci5vYnNlcnZlKHRpY2tsZWRT
cGFuLCB7YXR0cmlidXRlczogdHJ1ZX0pOworCitmdW5jdGlvbiByZXNldFN0YXRlKCkgeworICAg
IHdpbmRvdy5zdGFydCA9IG51bGw7CisgICAgd2luZG93Lm51bVJ1bnMgPSAyNTsKKyAgICB3aW5k
b3cudGltZXMgPSBbXTsKK30KKworZnVuY3Rpb24gcnVuQWdhaW4oKSB7CisgICAgdGlja2xlZFNw
YW4uc2V0QXR0cmlidXRlKCdkYXRhLWZvbycsIG51bVJ1bnMpOworfQorCitmdW5jdGlvbiBsaXN0
ZW5lcihtdXRhdGlvbnMpIHsKKyAgICBpZiAoc3RhcnQpIHsKKyAgICAgICAgdmFyIHRpbWUgPSBu
ZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHN0YXJ0OworICAgICAgICB0aW1lcy5wdXNoKHRpbWUpOwor
ICAgICAgICBsb2codGltZSk7CisgICAgfQorICAgIGlmIChudW1SdW5zLS0gPj0gMCkgeworICAg
ICAgICBydW5BZ2FpbigpOworICAgICAgICBpZiAob2JzZXJ2aW5nKQorICAgICAgICAgICAgb2Jz
ZXJ2ZXIuZGlzY29ubmVjdCgpCisgICAgICAgIG5vZGUuaW5uZXJIVE1MID0gJyc7CisgICAgICAg
IGlmIChvYnNlcnZpbmcpCisgICAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKHNhbmRib3gsIHtj
aGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWV9KTsKKyAgICAgICAgc3RhcnQgPSBuZXcgRGF0
ZSgpLmdldFRpbWUoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtcy5sZW5ndGg7
ICsraSkKKyAgICAgICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoZWxlbXNbaV0pOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGxvZ1N0YXRpc3RpY3ModGltZXMpOworICAgICAgICBpZiAoIW9ic2Vydmlu
ZykgeworICAgICAgICAgICAgb2JzZXJ2aW5nID0gdHJ1ZTsKKyAgICAgICAgICAgIHJlc2V0U3Rh
dGUoKTsKKyAgICAgICAgICAgIGxvZygnXG4tLS0tLS0tLS0tLS1cbicpOworICAgICAgICAgICAg
bG9nKCdSdW5uaW5nICcgKyBudW1SdW5zICsgJyB0aW1lcyB3aXRoIG9ic2VydmF0aW9uJyk7Cisg
ICAgICAgICAgICBzZXRUaW1lb3V0KHJ1bkFnYWluLCAwKTsKKyAgICAgICAgfQorICAgIH0KK30K
KworcmVzZXRTdGF0ZSgpOworbG9nKCdSdW5uaW5nICcgKyBudW1SdW5zICsgJyB0aW1lcyB3aXRo
b3V0IG9ic2VydmF0aW9uJyk7Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1bkFn
YWluKTsKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9N
dXRhdGlvbi9hcHBlbmQtY2hpbGQuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvTXV0YXRpb24vYXBw
ZW5kLWNoaWxkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ0MWFiMzEzMzMyYTg5YTNiYmIyN2Y4OTYxMWQ3
Mjc4OTQzNzUzYQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvTXV0YXRpb24v
YXBwZW5kLWNoaWxkLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9k
eT4KKzxwcmUgaWQ9ImxvZyI+PC9wcmU+Cis8c2NyaXB0IHNyYz0iLi4vUGFyc2VyL3Jlc291cmNl
cy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ic2FuZGJveCIgc3R5bGU9ImRpc3BsYXk6
bm9uZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIHNhbmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnc2FuZGJveCcpOwordmFyIG9ic2VydmluZyA9IGZhbHNlOworCit2YXIgZWxlbXMgPSBb
XTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgNTAwMDA7ICsraSkKKyAgICBlbGVtc1tpXSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwordmFyIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIobGlzdGVuZXIpOwordmFyIHRpY2tsZWRTcGFuID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnc3BhbicpOworb2JzZXJ2ZXIub2JzZXJ2ZSh0aWNrbGVkU3Bhbiwge2F0dHJpYnV0
ZXM6IHRydWV9KTsKKworZnVuY3Rpb24gcmVzZXRTdGF0ZSgpIHsKKyAgICB3aW5kb3cuc3RhcnQg
PSBudWxsOworICAgIHdpbmRvdy5udW1SdW5zID0gMjU7CisgICAgd2luZG93LnRpbWVzID0gW107
Cit9CisKK2Z1bmN0aW9uIHJ1bkFnYWluKCkgeworICAgIHRpY2tsZWRTcGFuLnNldEF0dHJpYnV0
ZSgnZGF0YS1mb28nLCBudW1SdW5zKTsKK30KKworZnVuY3Rpb24gbGlzdGVuZXIobXV0YXRpb25z
KSB7CisgICAgaWYgKHN0YXJ0KSB7CisgICAgICAgIHZhciB0aW1lID0gbmV3IERhdGUoKS5nZXRU
aW1lKCkgLSBzdGFydDsKKyAgICAgICAgdGltZXMucHVzaCh0aW1lKTsKKyAgICAgICAgbG9nKHRp
bWUpOworICAgIH0KKyAgICBpZiAobnVtUnVucy0tID49IDApIHsKKyAgICAgICAgcnVuQWdhaW4o
KTsKKyAgICAgICAgaWYgKG9ic2VydmluZykKKyAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5l
Y3QoKQorICAgICAgICBzYW5kYm94LmlubmVySFRNTCA9ICcnOworICAgICAgICBpZiAob2JzZXJ2
aW5nKQorICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShzYW5kYm94LCB7Y2hpbGRMaXN0OiB0
cnVlfSk7CisgICAgICAgIHN0YXJ0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgZWxlbXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBzYW5kYm94
LmFwcGVuZENoaWxkKGVsZW1zW2ldKTsKKyAgICB9IGVsc2UgeworICAgICAgICBsb2dTdGF0aXN0
aWNzKHRpbWVzKTsKKyAgICAgICAgaWYgKCFvYnNlcnZpbmcpIHsKKyAgICAgICAgICAgIG9ic2Vy
dmluZyA9IHRydWU7CisgICAgICAgICAgICByZXNldFN0YXRlKCk7CisgICAgICAgICAgICBsb2co
J1xuLS0tLS0tLS0tLS0tXG4nKTsKKyAgICAgICAgICAgIGxvZygnUnVubmluZyAnICsgbnVtUnVu
cyArICcgdGltZXMgd2l0aCBvYnNlcnZhdGlvbicpOworICAgICAgICAgICAgc2V0VGltZW91dChy
dW5BZ2FpbiwgMCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3Jlc2V0U3RhdGUoKTsKK2xvZygn
UnVubmluZyAnICsgbnVtUnVucyArICcgdGltZXMgd2l0aG91dCBvYnNlcnZhdGlvbicpOword2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5BZ2Fpbik7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvTXV0YXRpb24vaW5uZXItaHRtbC5odG1s
IGIvUGVyZm9ybWFuY2VUZXN0cy9NdXRhdGlvbi9pbm5lci1odG1sLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDg1NWVhOTNmOGRiNDQxNWQyZWY2YTUzMDUxNTZhYzA3YTY1OTJjZAotLS0gL2Rldi9udWxsCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvTXV0YXRpb24vaW5uZXItaHRtbC5odG1sCkBAIC0wLDAgKzEs
NTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8cHJlIGlkPSJsb2ciPjwvcHJlPgorPHNj
cmlwdCBzcmM9Ii4uL1BhcnNlci9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxkaXYg
aWQ9InNhbmRib3giIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBz
YW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKK3ZhciBvYnNlcnZp
bmcgPSBmYWxzZTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKQorICAgIHNhbmRib3gu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwordmFyIGh0bWwgPSBz
YW5kYm94LmlubmVySFRNTDsKKwordmFyIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIobGlzdGVuZXIpOwordmFyIHRpY2tsZWRTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc3BhbicpOworb2JzZXJ2ZXIub2JzZXJ2ZSh0aWNrbGVkU3Bhbiwge2F0dHJpYnV0ZXM6IHRy
dWV9KTsKKworZnVuY3Rpb24gcmVzZXRTdGF0ZSgpIHsKKyAgICB3aW5kb3cuc3RhcnQgPSBudWxs
OworICAgIHdpbmRvdy5udW1SdW5zID0gMjU7CisgICAgd2luZG93LnRpbWVzID0gW107Cit9CisK
K2Z1bmN0aW9uIHJ1bkFnYWluKCkgeworICAgIHRpY2tsZWRTcGFuLnNldEF0dHJpYnV0ZSgnZGF0
YS1mb28nLCBudW1SdW5zKTsKK30KKworZnVuY3Rpb24gbGlzdGVuZXIobXV0YXRpb25zKSB7Cisg
ICAgaWYgKHN0YXJ0KSB7CisgICAgICAgIHZhciB0aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCkg
LSBzdGFydDsKKyAgICAgICAgdGltZXMucHVzaCh0aW1lKTsKKyAgICAgICAgbG9nKHRpbWUpOwor
ICAgIH0KKyAgICBpZiAobnVtUnVucy0tID49IDApIHsKKyAgICAgICAgcnVuQWdhaW4oKTsKKyAg
ICAgICAgc3RhcnQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDA7ICsraSkKKyAgICAgICAgICAgIHNhbmRib3guaW5uZXJIVE1MID0gaHRtbDsK
KyAgICB9IGVsc2UgeworICAgICAgICBsb2dTdGF0aXN0aWNzKHRpbWVzKTsKKyAgICAgICAgaWYg
KCFvYnNlcnZpbmcpIHsKKyAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoc2FuZGJveCwge2No
aWxkTGlzdDogdHJ1ZX0pOworICAgICAgICAgICAgb2JzZXJ2aW5nID0gdHJ1ZTsKKyAgICAgICAg
ICAgIHJlc2V0U3RhdGUoKTsKKyAgICAgICAgICAgIGxvZygnXG4tLS0tLS0tLS0tLS1cbicpOwor
ICAgICAgICAgICAgbG9nKCdSdW5uaW5nICcgKyBudW1SdW5zICsgJyB0aW1lcyB3aXRoIG9ic2Vy
dmF0aW9uJyk7CisgICAgICAgICAgICBzZXRUaW1lb3V0KHJ1bkFnYWluLCAwKTsKKyAgICAgICAg
fQorICAgIH0KK30KKworcmVzZXRTdGF0ZSgpOworbG9nKCdSdW5uaW5nICcgKyBudW1SdW5zICsg
JyB0aW1lcyB3aXRob3V0IG9ic2VydmF0aW9uJyk7Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bG9hZCcsIHJ1bkFnYWluKTsKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9NdXRhdGlvbi9yZW1vdmUtY2hpbGQtZGVlcC5odG1sIGIvUGVyZm9ybWFuY2VU
ZXN0cy9NdXRhdGlvbi9yZW1vdmUtY2hpbGQtZGVlcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkZWI3Yjdi
ZTczZDUzZjkwYWZhOTQ0NTk2ZTExZTNjNzZjNjU5MzAKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJm
b3JtYW5jZVRlc3RzL011dGF0aW9uL3JlbW92ZS1jaGlsZC1kZWVwLmh0bWwKQEAgLTAsMCArMSw2
NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxwcmUgaWQ9ImxvZyI+PC9wcmU+Cis8c2Ny
aXB0IHNyYz0iLi4vUGFyc2VyL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPGRpdiBp
ZD0ic2FuZGJveCIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIHNh
bmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwordmFyIG5vZGUgPSBz
YW5kYm94OworZm9yICh2YXIgaSA9IDA7IGkgPCAyMDA7ICsraSkKKyAgICBub2RlID0gbm9kZS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Cit2YXIgb2JzZXJ2aW5n
ID0gZmFsc2U7CisKK3ZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGxp
c3RlbmVyKTsKK3ZhciB0aWNrbGVkU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4n
KTsKK29ic2VydmVyLm9ic2VydmUodGlja2xlZFNwYW4sIHthdHRyaWJ1dGVzOiB0cnVlfSk7CisK
K2Z1bmN0aW9uIHJlc2V0U3RhdGUoKSB7CisgICAgd2luZG93LnN0YXJ0ID0gbnVsbDsKKyAgICB3
aW5kb3cubnVtUnVucyA9IDI1OworICAgIHdpbmRvdy50aW1lcyA9IFtdOworfQorCitmdW5jdGlv
biBydW5BZ2FpbigpIHsKKyAgICB0aWNrbGVkU3Bhbi5zZXRBdHRyaWJ1dGUoJ2RhdGEtZm9vJywg
bnVtUnVucyk7Cit9CisKK2Z1bmN0aW9uIGhpZGVGcm9tT2JzZXJ2YXRpb24oZnVuYykgeworICAg
IGlmIChvYnNlcnZpbmcpCisgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTsKKyAgICBmdW5j
KCk7CisgICAgaWYgKG9ic2VydmluZykKKyAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShzYW5kYm94
LCB7Y2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlfSk7Cit9CisKK2Z1bmN0aW9uIGxpc3Rl
bmVyKG11dGF0aW9ucykgeworICAgIGlmIChzdGFydCkgeworICAgICAgICB2YXIgdGltZSA9IG5l
dyBEYXRlKCkuZ2V0VGltZSgpIC0gc3RhcnQ7CisgICAgICAgIHRpbWVzLnB1c2godGltZSk7Cisg
ICAgICAgIGxvZyh0aW1lKTsKKyAgICB9CisgICAgaWYgKG51bVJ1bnMtLSA+PSAwKSB7CisgICAg
ICAgIHJ1bkFnYWluKCk7CisgICAgICAgIGhpZGVGcm9tT2JzZXJ2YXRpb24oZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDUwMDAwOyArK2kpCisgICAgICAgICAg
ICAgICAgbm9kZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Cisg
ICAgICAgIH0pOworICAgICAgICBzdGFydCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOworICAgICAg
ICB3aGlsZSAobm9kZS5maXJzdENoaWxkKQorICAgICAgICAgICAgbm9kZS5yZW1vdmVDaGlsZChu
b2RlLmZpcnN0Q2hpbGQpOworICAgIH0gZWxzZSB7CisgICAgICAgIGxvZ1N0YXRpc3RpY3ModGlt
ZXMpOworICAgICAgICBpZiAoIW9ic2VydmluZykgeworICAgICAgICAgICAgb2JzZXJ2aW5nID0g
dHJ1ZTsKKyAgICAgICAgICAgIHJlc2V0U3RhdGUoKTsKKyAgICAgICAgICAgIGxvZygnXG4tLS0t
LS0tLS0tLS1cbicpOworICAgICAgICAgICAgbG9nKCdSdW5uaW5nICcgKyBudW1SdW5zICsgJyB0
aW1lcyB3aXRoIG9ic2VydmF0aW9uJyk7CisgICAgICAgICAgICBzZXRUaW1lb3V0KHJ1bkFnYWlu
LCAwKTsKKyAgICAgICAgfQorICAgIH0KK30KKworcmVzZXRTdGF0ZSgpOworbG9nKCdSdW5uaW5n
ICcgKyBudW1SdW5zICsgJyB0aW1lcyB3aXRob3V0IG9ic2VydmF0aW9uJyk7Cit3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1bkFnYWluKTsKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9NdXRhdGlvbi9yZW1vdmUtY2hpbGQuaHRtbCBiL1Bl
cmZvcm1hbmNlVGVzdHMvTXV0YXRpb24vcmVtb3ZlLWNoaWxkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY3
YmRhODU0YTRiY2U4MWFjY2Y4OWQyMGE5NjEwODg2YTFiNWM2NgotLS0gL2Rldi9udWxsCisrKyBi
L1BlcmZvcm1hbmNlVGVzdHMvTXV0YXRpb24vcmVtb3ZlLWNoaWxkLmh0bWwKQEAgLTAsMCArMSw2
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxwcmUgaWQ9ImxvZyI+PC9wcmU+Cis8c2Ny
aXB0IHNyYz0iLi4vUGFyc2VyL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPGRpdiBp
ZD0ic2FuZGJveCIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIHNh
bmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwordmFyIG9ic2Vydmlu
ZyA9IGZhbHNlOworCit2YXIgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihs
aXN0ZW5lcik7Cit2YXIgdGlja2xlZFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFu
Jyk7CitvYnNlcnZlci5vYnNlcnZlKHRpY2tsZWRTcGFuLCB7YXR0cmlidXRlczogdHJ1ZX0pOwor
CitmdW5jdGlvbiByZXNldFN0YXRlKCkgeworICAgIHdpbmRvdy5zdGFydCA9IG51bGw7CisgICAg
d2luZG93Lm51bVJ1bnMgPSAyNTsKKyAgICB3aW5kb3cudGltZXMgPSBbXTsKK30KKworZnVuY3Rp
b24gcnVuQWdhaW4oKSB7CisgICAgdGlja2xlZFNwYW4uc2V0QXR0cmlidXRlKCdkYXRhLWZvbycs
IG51bVJ1bnMpOworfQorCitmdW5jdGlvbiBoaWRlRnJvbU9ic2VydmF0aW9uKGZ1bmMpIHsKKyAg
ICBpZiAob2JzZXJ2aW5nKQorICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCkKKyAgICBmdW5j
KCk7CisgICAgaWYgKG9ic2VydmluZykKKyAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShzYW5kYm94
LCB7Y2hpbGRMaXN0OiB0cnVlfSk7Cit9CisKK2Z1bmN0aW9uIGxpc3RlbmVyKG11dGF0aW9ucykg
eworICAgIGlmIChzdGFydCkgeworICAgICAgICB2YXIgdGltZSA9IG5ldyBEYXRlKCkuZ2V0VGlt
ZSgpIC0gc3RhcnQ7CisgICAgICAgIHRpbWVzLnB1c2godGltZSk7CisgICAgICAgIGxvZyh0aW1l
KTsKKyAgICB9CisgICAgaWYgKG51bVJ1bnMtLSA+PSAwKSB7CisgICAgICAgIHJ1bkFnYWluKCk7
CisgICAgICAgIGhpZGVGcm9tT2JzZXJ2YXRpb24oZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDUwMDAwOyArK2kpCisgICAgICAgICAgICAgICAgc2FuZGJveC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CisgICAgICAgIH0pOwor
ICAgICAgICBzdGFydCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOworICAgICAgICB3aGlsZSAoc2Fu
ZGJveC5maXJzdENoaWxkKQorICAgICAgICAgICAgc2FuZGJveC5yZW1vdmVDaGlsZChzYW5kYm94
LmZpcnN0Q2hpbGQpOworICAgIH0gZWxzZSB7CisgICAgICAgIGxvZ1N0YXRpc3RpY3ModGltZXMp
OworICAgICAgICBpZiAoIW9ic2VydmluZykgeworICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2
ZShzYW5kYm94LCB7Y2hpbGRMaXN0OiB0cnVlfSk7CisgICAgICAgICAgICBvYnNlcnZpbmcgPSB0
cnVlOworICAgICAgICAgICAgcmVzZXRTdGF0ZSgpOworICAgICAgICAgICAgbG9nKCdcbi0tLS0t
LS0tLS0tLVxuJyk7CisgICAgICAgICAgICBsb2coJ1J1bm5pbmcgJyArIG51bVJ1bnMgKyAnIHRp
bWVzIHdpdGggb2JzZXJ2YXRpb24nKTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQocnVuQWdhaW4s
IDApOworICAgICAgICB9CisgICAgfQorfQorCityZXNldFN0YXRlKCk7Citsb2coJ1J1bm5pbmcg
JyArIG51bVJ1bnMgKyAnIHRpbWVzIHdpdGhvdXQgb2JzZXJ2YXRpb24nKTsKK3dpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgcnVuQWdhaW4pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cg==
</data>
<flag name="review"
          id="112947"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>