<?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>24453</bug_id>
          
          <creation_ts>2009-03-08 07:38:01 -0700</creation_ts>
          <short_desc>REGRESSION: If setTimeout is called on a iframe&apos;s window, the DOM changes to the main document that timer callback makes are not flushed</short_desc>
          <delta_ts>2009-04-13 18:07:55 -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>WebCore Misc.</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>http://ludios.net/safari4_dom_flush_bug.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="ivank">bugs</reporter>
          <assigned_to name="Dmitry Titov">dimich</assigned_to>
          <cc>ap</cc>
    
    <cc>dimich</cc>
    
    <cc>hyatt</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>112779</commentid>
    <comment_count>0</comment_count>
    <who name="ivank">bugs</who>
    <bug_when>2009-03-08 07:38:01 -0700</bug_when>
    <thetext>See the URL for a reproduction of the bug.

On Safari 4/XP SP3, using a frame&apos;s setTimeout to call a callable that modifies the DOM may leave those changes unflushed until a variety of things happen:

user moves the mouse or clicks
user presses a key
user has Error Console open

The expected behavior is for the changes to be flushed near-immediately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112780</commentid>
    <comment_count>1</comment_count>
    <who name="ivank">bugs</who>
    <bug_when>2009-03-08 08:04:13 -0700</bug_when>
    <thetext>This bug is NOT reproducible when the page is loaded over http:// (only https://).

The linked-to URL will not reproduce the bug, unless the page is copied to an https:// server.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112846</commentid>
    <comment_count>2</comment_count>
      <attachid>28416</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-09 10:09:36 -0700</bug_when>
    <thetext>Created attachment 28416
test case

bugs.webkit.org uses https, copying here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112848</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-09 10:12:55 -0700</bug_when>
    <thetext>Confirmed as a regression (test passes on Mac on 3.2.1, fails on a local debug ToT build).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112849</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-09 10:14:25 -0700</bug_when>
    <thetext>It&apos;s quite puzzling that there is a difference between http and https, but maybe it&apos;s just timing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113060</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-03-10 14:45:20 -0700</bug_when>
    <thetext>Reproducible in all nightlies starting r37442	(2008-10-09). 
I think the issue here is with using onload event on iframe - apparently, after adding &lt;HR&gt; to the enclosing document, the timer callback invalidates the iframe&apos;s document.
Looking for a fix...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113061</commentid>
    <comment_count>6</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-03-10 14:46:35 -0700</bug_when>
    <thetext>And, previous nightlies do not run in 3.2.1 anymore so hard to pinpoint the change.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113097</commentid>
    <comment_count>7</comment_count>
      <attachid>28456</attachid>
    <who name="ivank">bugs</who>
    <bug_when>2009-03-10 17:54:42 -0700</bug_when>
    <thetext>Created attachment 28456
test case (no onload)

This test case does not use onload on the iframe, but behaves just like the last one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113098</commentid>
    <comment_count>8</comment_count>
    <who name="ivank">bugs</who>
    <bug_when>2009-03-10 17:57:01 -0700</bug_when>
    <thetext>Attached wrong test case, hold on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113099</commentid>
    <comment_count>9</comment_count>
      <attachid>28457</attachid>
    <who name="ivank">bugs</who>
    <bug_when>2009-03-10 17:58:15 -0700</bug_when>
    <thetext>Created attachment 28457
test case (no onload) fixed

Proper test case for &quot;test case (no onload)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113255</commentid>
    <comment_count>10</comment_count>
      <attachid>28500</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-03-11 16:09:37 -0700</bug_when>
    <thetext>Created attachment 28500
Proposed patch

The key here is that setTimeout is called on a window object of &lt;iframe&gt;. This creates a timer that has that window as an &apos;executing context&apos;. The callback&apos;s JS function is defined in the parent document&apos;s scope and when it executes, it updates the parent document. However, the code calls updateRendering() on a document that is associated with the window of &lt;iframe&gt; - and with certain timing, it causes missing update of the parent document until some other event (like mousemove) causes update.

The proposed fix is to use Document::updateDocumentsRendering() instead since it will update all the affected documents right away.

So far, I was unable to create a local test that would reproduce the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113308</commentid>
    <comment_count>11</comment_count>
      <attachid>28517</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-03-11 19:46:31 -0700</bug_when>
    <thetext>Created attachment 28517
Repro file - can be loaded from disk.

Found a way to repro this from locally-saved file. No server needed.
Just need to wait for &gt;1sec.
Will post updated patch, with a regression test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113315</commentid>
    <comment_count>12</comment_count>
      <attachid>28500</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-03-11 20:57:57 -0700</bug_when>
    <thetext>Comment on attachment 28500
Proposed patch

Actually, I don&apos;t see how to make automated test out of it. DRT causes layout update when it tries to access any computed property or make an image or render tree dump. Flipping r? back on the patch w/o test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113357</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-12 03:10:41 -0700</bug_when>
    <thetext>CC&apos;ing Mitz, as he&apos;s the expert on making such tests, and might have a suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113514</commentid>
    <comment_count>14</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-03-12 15:35:37 -0700</bug_when>
    <thetext>More info: I&apos;ve tried to create a DRT-based test, but it seems any attempt to &apos;snapshot&apos; the result causes one extra FrameView::layout() one way or another and as a result, I get a correct snapshot even without the fix.

The buggy behavior here is that the setTimer callback not always invalidates layout of the right frame so the picture does not update until something else triggers layout. Lot of things trigger layout - among them externalRepresentation() function used to produce dump in DRT. I&apos;ve tried to get a bitmap dump first but then I get ASSERTS because rendering of dirty layout is not a good idea.

I think exposing FrameView::needsLayout() to be readable on LayoutTestController could be one way to enable such tests - make some changes, then check if layout was in fact invalidated.

Not sure though if this is the easiest way.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113804</commentid>
    <comment_count>15</comment_count>
      <attachid>28633</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-03-15 00:01:52 -0700</bug_when>
    <thetext>Created attachment 28633
Automated regression test.

This is one way to create a regression test for this bug. We can expose a new method on layoutTestController that reports invalidated layout. Here is the change, the test for the new layoutTestController method and a test for this bug. 
If this seems like a good solution, then this should go in first and the fix with updated expected results second.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117315</commentid>
    <comment_count>16</comment_count>
      <attachid>28633</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-04-13 10:54:40 -0700</bug_when>
    <thetext>Comment on attachment 28633
Automated regression test.

Removing r? from the test since it feels weird to expose internal flags for the test purposes. I don&apos;t know how to make a test for this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117317</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-13 11:13:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/6784969&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117328</commentid>
    <comment_count>18</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-04-13 12:22:04 -0700</bug_when>
    <thetext>Changed the title to match the actual issue. I believe http://trac.webkit.org/changeset/42384 also fixes this bug in a different way, but need to verify this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117329</commentid>
    <comment_count>19</comment_count>
      <attachid>29434</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-04-13 12:49:59 -0700</bug_when>
    <thetext>Created attachment 29434
Proposed patch

Updated proposed fix after recent changes. Although style recalc timer catches the update, so the updateStyleForAllDocuments() call may be removed at all now, doing so may produce other regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117382</commentid>
    <comment_count>20</comment_count>
      <attachid>29434</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-04-13 16:59:30 -0700</bug_when>
    <thetext>Comment on attachment 29434
Proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117394</commentid>
    <comment_count>21</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-04-13 18:07:55 -0700</bug_when>
    <thetext>Landed: http://trac.webkit.org/changeset/42474
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>28416</attachid>
            <date>2009-03-09 10:09:36 -0700</date>
            <delta_ts>2009-03-09 10:09:36 -0700</delta_ts>
            <desc>test case</desc>
            <filename>safari4_dom_flush_bug.html</filename>
            <type>text/html</type>
            <size>1312</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIKCSAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjxodG1sPgoK
PGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PXV0Zi04Ij4KPHRpdGxlPnNhZmFyaSA0IERPTSBiYWNrbG9nZ2luZyBidWc8L3Rp
dGxlPgo8L2hlYWQ+Cgo8Ym9keT4KCldoZW4gd2UgY2FsbCB0aGUgaWZyYW1lJ3Mgc2V0VGltZW91
dCB3aXRoIGEgY2FsbGFibGUgdGhhdCBjaGFuZ2VzIHRoZSBET00gb24gKnRoaXMqIHBhZ2UsCmNo
YW5nZXMgdGhlIERPTSBhcmUgZGVsYXllZCB1bnRpbCB0aGUgdXNlciBtb3ZlcyB0aGUgbW91c2Ug
YW55d2hlcmUgaW4gdGhlIFNhZmFyaSA0IHdpbmRvdyBvciBwcmVzc2VzIGEga2V5LgpUaGUgRE9N
IGNoYW5nZXMgYWxzbyBzZWVtIHRvIGZsdXNoIGlmIHRoZSBFcnJvciBDb25zb2xlIGlzIG9wZW4s
IG9yIGlmIGlubmVySFRNTCBpcyBjaGFuZ2VkIG9uIGBzb21laWRgPGJyPjxicj4KCjxiPlRvIHJl
cHJvZHVjZSB0aGUgYnVnPC9iPiwgcmVsb2FkIHRoaXMgcGFnZSBhbmQga2VlcCB5b3VyIG1vdXNl
IG9uIHRoZSByZWxvYWQgYnV0dG9uLiBJZiBidWdneSwgJmx0O2hyJmd0OyB3aWxsIG5vdCBhcHBl
YXIgaW1tZWRpYXRlbHkgKG9ubHkgd2hlbiB5b3UgbW92ZSB0aGUgbW91c2Ugb3ZlciB0aGUgdmll
d3BvcnQsIGNsaWNrIGFkZHJlc3MgYmFyLCBldGMpLiBFeHBlY3RlZCBiZWhhdmlvciBpcyB0aGUg
Jmx0O2hyJmd0OyBhcHBlYXJpbmcgaW4gfjEwMG1zIGFmdGVyIHBhZ2UgbG9hZC48YnI+PGJyPgoK
QW5vdGhlciBub3RlOiB0aGlzIGJ1ZyBpcyBub3QgcmVwcm9kdWNpYmxlIGlmIHNhZmFyaTRfZG9t
X2ZsdXNoX2J1Zy5odG1sIGlzIHNhdmVkIHRvIGRpc2suCgo8c2NyaXB0PgoKZnVuY3Rpb24gaWZy
YW1lU2V0VGltZW91dElzUmVhZHkoKSB7Cgl3aW5kb3cuZnJhbWVzWzBdLnNldFRpbWVvdXQoYWRk
U29tZXRoaW5nLCAxMDApOwp9CgpmdW5jdGlvbiBhZGRTb21ldGhpbmcoKSB7Cgl2YXIgaHIgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJociIpOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nv
bWVpZCcpLmFwcGVuZENoaWxkKGhyKTsKfQoKPC9zY3JpcHQ+Cgo8ZGl2IGlkPSJzb21laWQiPjwv
ZGl2PgoKPGlmcmFtZSBvbmxvYWQ9ImlmcmFtZVNldFRpbWVvdXRJc1JlYWR5KCkiIHNyYz0iYWJv
dXQ6YmxhbmsiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjwvaWZyYW1lPgoKPC9ib2R5Pgo8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>28456</attachid>
            <date>2009-03-10 17:54:42 -0700</date>
            <delta_ts>2009-03-10 17:58:15 -0700</delta_ts>
            <desc>test case (no onload)</desc>
            <filename>test case no onload.html</filename>
            <type>text/html</type>
            <size>1285</size>
            <attacher name="ivank">bugs</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIKCSAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjxodG1sPgoK
PGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PXV0Zi04Ij4KPHRpdGxlPnNhZmFyaWhlbGw8L3RpdGxlPgo8L2hlYWQ+Cgo8Ym9k
eT4KCkluIHRoaXMgdW51c3VhbCBjaXJjdW1zdGFuY2UsIFNhZmFyaSA0IGZhaWxzIHRvIHJ1biBz
ZXRUaW1lb3V0IGNhbGxzCndoZW4gdGhlcmUncyBubyBpbW1lZGlhdGUgdXNlciBhY3Rpdml0eSBp
biB0aGUgd2luZG93IChrZXlib2FyZC9tb3VzZSkuCgo8YnI+PGJyPgoKVG8gcmVwbGljYXRlLCBy
ZWxvYWQgb3Igc2hpZnQtcmVsb2FkIHRoaXMgcGFnZSwgYW5kIGtlZXAgeW91ciBtb3VzZSBvbiB0
aGUgcmVsb2FkIGljb24uCgo8YnI+PGJyPgoKc2V0SW50ZXJ2YWwgc2VlbXMgdG8gd29yayBmaW5l
LiBzZXRUaW1lb3V0IHNlZW1zIHRvIHdvcmsgZmluZS4KVGhlIHByb2JsZW0gcmVzdWx0cyBmcm9t
IHVzaW5nIHRoZSBpZnJhbWUncyBzZXRUaW1lb3V0Ljxicj48YnI+Cgo8YnI+Cgo8c3R5bGU+Cgkj
YmxhbmtfaWZyYW1lIHsKCQlib3JkZXI6IDA7CgkJd2lkdGg6IDFweDsKCQloZWlnaHQ6IDFweDsK
CX0KPC9zdHlsZT4KCjxpZnJhbWUgb25sb2FkPSJydW4oKSIgc3JjPSIvYmxhbmsvIiBuYW1lPSJi
bGFua19pZnJhbWUiIGlkPSJibGFua19pZnJhbWUiPjwvaWZyYW1lPgoKPGRpdiBpZD0ibG9nIj48
L2Rpdj4KCjxzY3JpcHQ+Cgljb3VudGVyID0gMDsKCS8vc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJykuaW5uZXJIVE1MICs9ICdwaW5nLjxicj4nfSwg
MTAwKTsKCWZ1bmN0aW9uIHJ1bigpIHsKCQkvLyAhISEhISEhISEhISEgd2luZG93LmZyYW1lc1sw
XS5zZXRUaW1lb3V0IC0+IHNldFRpbWVvdXQgYW5kIGl0IHdvcmtzIGZpbmUuCgkJd2luZG93LmZy
YW1lc1swXS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CgkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdsb2cnKS5pbm5lckhUTUwgKz0gJ3BpbmcuPGJyPic7CgkJCWNvdW50ZXIrKzsKCQkJaWYoY291
bnRlciA8IDEwMCkgewoJCQkJcnVuKCk7CgkJCX0KCQl9LCAyNTApOwoJfQoJLy93aW5kb3cuZnJh
bWVzWzBdLndpbmRvdy5kb2N1bWVudC5vbmxvYWQgPSBydW47CgkvL3NldFRpbWVvdXQocnVuLCA1
MDApOwo8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>28457</attachid>
            <date>2009-03-10 17:58:15 -0700</date>
            <delta_ts>2009-03-10 17:58:15 -0700</delta_ts>
            <desc>test case (no onload) fixed</desc>
            <filename>test case (no onload) fixed.html</filename>
            <type>text/html</type>
            <size>1347</size>
            <attacher name="ivank">bugs</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIKCSAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjxodG1sPgoK
PGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PXV0Zi04Ij4KPHRpdGxlPnNhZmFyaSA0IERPTSBiYWNrbG9nZ2luZyBidWcgKG5v
IG9ubG9hZCk8L3RpdGxlPgo8L2hlYWQ+Cgo8Ym9keT4KCldoZW4gd2UgY2FsbCB0aGUgaWZyYW1l
J3Mgc2V0VGltZW91dCB3aXRoIGEgY2FsbGFibGUgdGhhdCBjaGFuZ2VzIHRoZSBET00gb24gKnRo
aXMqIHBhZ2UsCmNoYW5nZXMgdGhlIERPTSBhcmUgZGVsYXllZCB1bnRpbCB0aGUgdXNlciBtb3Zl
cyB0aGUgbW91c2UgYW55d2hlcmUgaW4gdGhlIFNhZmFyaSA0IHdpbmRvdyBvciBwcmVzc2VzIGEg
a2V5LgpUaGUgRE9NIGNoYW5nZXMgYWxzbyBzZWVtIHRvIGZsdXNoIGlmIHRoZSBFcnJvciBDb25z
b2xlIGlzIG9wZW4sIG9yIGlmIGlubmVySFRNTCBpcyBjaGFuZ2VkIG9uIGBzb21laWRgPGJyPjxi
cj4KCjxiPlRvIHJlcHJvZHVjZSB0aGUgYnVnPC9iPiwgcmVsb2FkIHRoaXMgcGFnZSBhbmQga2Vl
cCB5b3VyIG1vdXNlIG9uIHRoZSByZWxvYWQgYnV0dG9uLiBJZiBidWdneSwgJmx0O2hyJmd0OyB3
aWxsIG5vdCBhcHBlYXIgaW1tZWRpYXRlbHkgKG9ubHkgd2hlbiB5b3UgbW92ZSB0aGUgbW91c2Ug
b3ZlciB0aGUgdmlld3BvcnQsIGNsaWNrIGFkZHJlc3MgYmFyLCBldGMpLiBFeHBlY3RlZCBiZWhh
dmlvciBpcyB0aGUgJmx0O2hyJmd0OyBhcHBlYXJpbmcgaW4gfjYwMG1zIGFmdGVyIHBhZ2UgbG9h
ZC48YnI+PGJyPgoKQW5vdGhlciBub3RlOiB0aGlzIGJ1ZyBpcyBub3QgcmVwcm9kdWNpYmxlIGlm
IHNhZmFyaTRfZG9tX2ZsdXNoX2J1Zy5odG1sIGlzIHNhdmVkIHRvIGRpc2suCgo8c2NyaXB0PgoK
ZnVuY3Rpb24gaWZyYW1lU2V0VGltZW91dElzUHJvYmFibHlSZWFkeSgpIHsKCXdpbmRvdy5mcmFt
ZXNbMF0uc2V0VGltZW91dChhZGRTb21ldGhpbmcsIDEwMCk7Cn0KCnNldFRpbWVvdXQoaWZyYW1l
U2V0VGltZW91dElzUHJvYmFibHlSZWFkeSwgNTAwKTsKCmZ1bmN0aW9uIGFkZFNvbWV0aGluZygp
IHsKCXZhciBociA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImhyIik7Cglkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnc29tZWlkJykuYXBwZW5kQ2hpbGQoaHIpOwp9Cgo8L3NjcmlwdD4KCjxkaXYg
aWQ9InNvbWVpZCI+PC9kaXY+Cgo8aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiIHdpZHRoPSIxIiBo
ZWlnaHQ9IjEiPjwvaWZyYW1lPgoKPC9ib2R5Pgo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28500</attachid>
            <date>2009-03-11 16:09:37 -0700</date>
            <delta_ts>2009-04-13 12:49:59 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>1802</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Nzg2NWMxMy4uZjFkNzU2ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0wMy0xMSAgRG1pdHJ5IFRpdG92
ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjQ0NTMKKyAgICAgICAgUkVHUkVTU0lPTjogQWZ0ZXIgY2FsbGluZyBmcmFtZWQgc2V0VGltZW91
dCBvbiBodHRwcyBwYWdlLCBET00gY2hhbmdlcyBhcmUgbm90IGZsdXNoZWQuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2No
ZWR1bGVkQWN0aW9uOjpleGVjdXRlKToKKyAgICAgICAgVXNlIERvY3VtZW50Ojp1cGRhdGVEb2N1
bWVudHNSZW5kZXJpbmcoKSBpbnN0ZWFkIG9mIGRvY3VtZW50LT51cGRhdGVSZW5kZXJpbmcoKQor
ICAgICAgICBzaW5jZSB0aW1lcnMgbWF5IGFmZmVjdCBkb2N1bWVudHMgb3RoZXIgdGhlbiB0aGVp
ciBvd24uCisKIDIwMDktMDMtMDkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y2hlZHVsZWRBY3Rpb24uY3BwCmluZGV4IDNiOGI2ZmEuLjNmNzY3MWYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKQEAgLTEyMiwxOCArMTIyLDEzIEBAIHZvaWQgU2No
ZWR1bGVkQWN0aW9uOjpleGVjdXRlKERvY3VtZW50KiBkb2N1bWVudCkKIAogICAgIGZyYW1lLT5z
Y3JpcHQoKS0+c2V0UHJvY2Vzc2luZ1RpbWVyQ2FsbGJhY2sodHJ1ZSk7CiAKLSAgICBpZiAobV9m
dW5jdGlvbikKKyAgICBpZiAobV9mdW5jdGlvbikgewogICAgICAgICBleGVjdXRlRnVuY3Rpb25J
bkNvbnRleHQod2luZG93LCB3aW5kb3ctPnNoZWxsKCkpOwotICAgIGVsc2UKKyAgICAgICAgRG9j
dW1lbnQ6OnVwZGF0ZURvY3VtZW50c1JlbmRlcmluZygpOworICAgIH0gZWxzZQogICAgICAgICBm
cmFtZS0+bG9hZGVyKCktPmV4ZWN1dGVTY3JpcHQobV9jb2RlKTsKIAotICAgIC8vIFVwZGF0ZSBv
dXIgZG9jdW1lbnQncyByZW5kZXJpbmcgZm9sbG93aW5nIHRoZSBleGVjdXRpb24gb2YgdGhlIHRp
bWVvdXQgY2FsbGJhY2suCi0gICAgLy8gRklYTUU6IFdoeSBub3QgdXNlIHVwZGF0ZURvY3VtZW50
c1JlbmRlcmluZyB0byB1cGRhdGUgcmVuZGVyaW5nIG9mIGFsbCBkb2N1bWVudHM/Ci0gICAgLy8g
RklYTUU6IElzIHRoaXMgcmVhbGx5IHRoZSByaWdodCBwb2ludCB0byBkbyB0aGUgdXBkYXRlPyBX
ZSBuZWVkIGEgcGxhY2UgdGhhdCB3b3JrcwotICAgIC8vIGZvciBhbGwgcG9zc2libGUgZW50cnkg
cG9pbnRzIHRoYXQgbWlnaHQgcG9zc2libHkgZXhlY3V0ZSBzY3JpcHQsIGJ1dCB0aGlzIHNlZW1z
Ci0gICAgLy8gdG8gYmUgYSBiaXQgdG9vIGxvdy1sZXZlbC4KLSAgICBmcmFtZS0+ZG9jdW1lbnQo
KS0+dXBkYXRlUmVuZGVyaW5nKCk7Ci0KKyAgICAKICAgICBmcmFtZS0+c2NyaXB0KCktPnNldFBy
b2Nlc3NpbmdUaW1lckNhbGxiYWNrKGZhbHNlKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>28517</attachid>
            <date>2009-03-11 19:46:31 -0700</date>
            <delta_ts>2009-03-11 19:46:31 -0700</delta_ts>
            <desc>Repro file - can be loaded from disk.</desc>
            <filename>update.html</filename>
            <type>text/html</type>
            <size>1050</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">PGh0bWw+CjxzdHlsZT4KcCB7IHdpZHRoOjE1M3B4OyBoZWlnaHQ6MTUzcHg7IGJhY2tncm91bmQt
Y29sb3I6cmVkOyBkaXNwbGF5OmJsb2NrO30KPC9zdHlsZT4KCjxzY3JpcHQ+CmZ1bmN0aW9uIHNo
b3dTcXVhcmUoKSB7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxhY2Vob2xkZXIiKS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIikpOwp9CgpmdW5jdGlvbiB0ZXN0
KCkgewogICAgd2luZG93LmZyYW1lc1swXS5zZXRUaW1lb3V0KHNob3dTcXVhcmUsIDIwMDApOwp9
Cjwvc2NyaXB0PgoKPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgpXaGVuIHdlIGNhbGwgdGhlIGlmcmFt
ZSdzIHNldFRpbWVvdXQgd2l0aCBhIGNhbGxhYmxlIHRoYXQgY2hhbmdlcyB0aGUgRE9NIG9uICp0
aGlzKiBwYWdlLApsYXlvdXQgYW5kIHJlbmRlcmluZyBjaGFuZ2VzIGFyZSBkZWxheWVkIHVudGls
IHRoZSB1c2VyIG1vdmVzIHRoZSBtb3VzZSBhbnl3aGVyZSBpbiB0aGUgd2luZG93IG9yIHByZXNz
ZXMgYSBrZXkuClRoZSBET00gY2hhbmdlcyBhbHNvIHNlZW0gdG8gZmx1c2ggaWYgdGhlIEVycm9y
IENvbnNvbGUgaXMgb3Blbiwgb3IgaWYgaW5uZXJIVE1MIGlzIGNoYW5nZWQgb24gYHNvbWVpZGA8
YnI+PGJyPgoKPGI+VG8gcmVwcm9kdWNlIHRoZSBidWc8L2I+LCByZWxvYWQgdGhpcyBwYWdlIGFu
ZCBrZWVwIHlvdXIgbW91c2Ugb24gdGhlIHJlbG9hZCBidXR0b24uIElmIGJ1Z2d5LCByZWQgc3F1
YXJlIHdpbGwgbm90IGFwcGVhciBpbW1lZGlhdGVseSAob25seSB3aGVuIHlvdSBtb3ZlIHRoZSBt
b3VzZSBvdmVyIHRoZSB2aWV3cG9ydCwgY2xpY2sgYWRkcmVzcyBiYXIsIGV0YykuIEV4cGVjdGVk
IGJlaGF2aW9yIGlzIHRoZSByZWQgc3F1YXJlIGFwcGVhcmluZyBpbiB+MnMgYWZ0ZXIgcGFnZSBs
b2FkLjxicj48YnI+Cgo8ZGl2IGlkPSJwbGFjZWhvbGRlciI+PC9kaXY+Cgo8aWZyYW1lIHN0eWxl
PSJkaXNwbGF5Om5vbmUiIHNyYz0iYWJvdXQ6YmxhbmsiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjwv
aWZyYW1lPgoKPC9ib2R5Pgo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28633</attachid>
            <date>2009-03-15 00:01:52 -0700</date>
            <delta_ts>2009-04-13 10:54:40 -0700</delta_ts>
            <desc>Automated regression test.</desc>
            <filename>test.txt</filename>
            <type>text/plain</type>
            <size>17777</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzZWRkMzkzLi4yNThhNjU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDMt
MTQgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI0NDUzCisgICAgICAgIFJlZ3Jlc3Npb24gdGVzdCBmb3IgdGhlIGJ1
ZyBhbmQgYSB0ZXN0IGZvciB0aGUgbmV3IG1ldGhvZCBsYXlvdXRUZXN0Q29udHJvbGxlci5uZWVk
c0xheW91dCgpLgorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L2Nyb3NzLXdpbmRvdy10aW1l
b3V0LXVwZGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRv
dy9jcm9zcy13aW5kb3ctdGltZW91dC11cGRhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9yZXBhaW50L2xheW91dC11cGRhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3JlcGFpbnQvbGF5b3V0LXVwZGF0ZS5odG1sOiBBZGRlZC4KKwogMjAwOS0wMy0xMyAgT2ph
biBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
U2VpZGVsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2Nyb3NzLXdp
bmRvdy10aW1lb3V0LXVwZGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvY3Jvc3Mtd2luZG93LXRpbWVvdXQtdXBkYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTE5YWY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2Nyb3NzLXdpbmRvdy10aW1lb3V0LXVwZGF0ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUaGlzIGlzIGEgcmVncmVzc2lvbiB0ZXN0IGZvciBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ0NTMuIFRoZSBidWcgY2F1
c2VkIGEgbWlzc2VkIGxheW91dCB1cGRhdGUgaGVuIHNldFRpbWVvdXQgaXMgdXNlZCB3aXRoIGFu
IGlmcmFtZSdzIHdpbmRvdyBvYmplY3QgYnV0IHRoZSBjYWxsYmFjayBjaGFuZ2VzIHRoZSBET00g
b24gKnRoaXMqIHBhZ2UuIFRoZSBpZnJhbWUncyBkb2N1bWVudCB3YXMgdXBkYXRlZCwgd2hpbGUg
aXQncyB0aGUgcGFyZW50IGRvY3VtZW50IHRoYXQncyBhY3R1YWxseSBjaGFuZ2VkLiBJZiB0ZXN0
IGZhaWxzLCB0aGUgcmVkIHNxdWFyZSB3aWxsIG5vdCBhcHBlYXIgYWZ0ZXIgYSBkZWxheSwgYnV0
IHdpbGwgYXBwZWFyIHdoZW4geW91IG1vdmUgdGhlIG1vdXNlIG92ZXIgdGhlIHZpZXdwb3J0LCBj
bGljayBhZGRyZXNzIGJhciwgZXRjLgorVGVzdCBpcyBzdWNjZXNzZnVsIGlmIHRoZXJlIGlzIGEg
cmVkIHNxdWFyZSBhbmQgYSB3b3JkICJQQVNTIiBiZWxvdy4KK0ZBSUwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9jcm9zcy13aW5kb3ctdGltZW91dC11cGRhdGUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9jcm9zcy13aW5kb3ctdGltZW91dC11cGRh
dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2I0NjQ0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2Nyb3NzLXdpbmRvdy10
aW1lb3V0LXVwZGF0ZS5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzxodG1sPgorPHN0eWxlPgorcCB7
IHdpZHRoOjE1M3B4OyBoZWlnaHQ6MTUzcHg7IGJhY2tncm91bmQtY29sb3I6cmVkOyBkaXNwbGF5
OmJsb2NrO30KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBmaW5pc2goKQoreworICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgLy8gTm8gbGF5b3V0
IHNob3VsZCBiZSBuZWVkZWQuCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGF0
dXMiKS5pbm5lclRleHQgPSAobGF5b3V0VGVzdENvbnRyb2xsZXIubmVlZHNMYXlvdXQoKSA/ICJG
QUlMIiA6ICJQQVNTIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHNob3dTcXVhcmUoKSB7CisgICAgLy8gVGhpcyBtb2Rp
ZmljYXRpb24gc2hvdWxkIGNhdXNlIGxheW91dCBpbnZhbGlkYXRpb24uIEFmdGVyIHRpbWVvdXQs
IHRoZSBsYXlvdXQgc2hvdWxkIGJlIHVwZGF0ZWQuCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInBsYWNlaG9sZGVyIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIp
KTsKKyAgICB3aW5kb3cuZnJhbWVzWzBdLnNldFRpbWVvdXQoZmluaXNoLCAxMCk7Cit9CisKK2Z1
bmN0aW9uIHRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgfQorICAgIHdpbmRvdy5mcmFt
ZXNbMF0uc2V0VGltZW91dChzaG93U3F1YXJlLCAyMDAwKTsKK30KKzwvc2NyaXB0PgorCis8Ym9k
eSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+CitUaGlzIGlzIGEgcmVn
cmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjQ0NTMuCitUaGUgYnVnIGNhdXNlZCBhIG1pc3NlZCBsYXlvdXQgdXBkYXRlIGhlbiBzZXRUaW1l
b3V0IGlzIHVzZWQgd2l0aCBhbiBpZnJhbWUncyB3aW5kb3cgb2JqZWN0IGJ1dCB0aGUgY2FsbGJh
Y2sgY2hhbmdlcyB0aGUgRE9NIG9uICp0aGlzKiBwYWdlLiBUaGUgaWZyYW1lJ3MgZG9jdW1lbnQg
d2FzIHVwZGF0ZWQsIHdoaWxlIGl0J3MgdGhlIHBhcmVudCBkb2N1bWVudCB0aGF0J3MgYWN0dWFs
bHkgY2hhbmdlZC4KK0lmIHRlc3QgZmFpbHMsIHRoZSByZWQgc3F1YXJlIHdpbGwgbm90IGFwcGVh
ciBhZnRlciBhIGRlbGF5LCBidXQgd2lsbCBhcHBlYXIgd2hlbiB5b3UgbW92ZSB0aGUgbW91c2Ug
b3ZlciB0aGUgdmlld3BvcnQsIGNsaWNrIGFkZHJlc3MgYmFyLCBldGMuPGJyPgorVGVzdCBpcyBz
dWNjZXNzZnVsIGlmIHRoZXJlIGlzIGEgcmVkIHNxdWFyZSBhbmQgYSB3b3JkICJQQVNTIiBiZWxv
dy48YnI+Cis8L2Rpdj4KKzxkaXYgaWQ9InBsYWNlaG9sZGVyIj48L2Rpdj48ZGl2IGlkPSJzdGF0
dXMiPkZBSUw8L2Rpdj4KKzxpZnJhbWUgc3R5bGU9ImRpc3BsYXk6bm9uZSIgc3JjPSJhYm91dDpi
bGFuayIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L2xheW91dC11cGRhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L2xheW91dC11cGRhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmYzZTUwYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvbGF5b3V0LXVwZGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUaGlzIHRl
c3QgdmVyaWZpZXMgdGhhdCBMYXlvdXRUZXN0Q29udHJvbGxlci5uZWVkc0xheW91dCgpIGZ1bmN0
aW9ucyBwcm9wZXJseS4gTFRDLm5lZWRzTGF5b3V0KCkgaXMgdXNlZCB0byBjcmVhdGUgdGVzdCBj
YXNlcyB3aGVyZSBET00gbW9kaWZpY2F0aW9ucyBvciBIVE1MIHBhcnNpbmcgZG8gbm90IHJlc3Vs
dCBpbiB1cGRhdGVkIGxheW91dCAtIGZvciBleGFtcGxlLCBpZiBsYXlvdXQgd2FzIG5vdCBzY2hl
ZHVsZWQgb3Igd2FzIG5vdCBwZXJmb3JtZWQuIFRoaXMgbWFuaWZlc3RzIGFzIGJ1ZyB3aGVyZSB0
aGUgcmVuZGVyaW5nIGlzIG5vdCB1cGRhdGVkIGFmdGVyIHRoZSBjaGFuZ2UgdW50aWwgbW91c2Vv
dmVyIG9yIHdpbmRvdyByZXNpemUgb3Igc29tZSBvdGhlciBldmVudCB0aGF0IGNhdXNlcyBhIHJl
LWxheW91dC4KK1Rlc3QgaXMgc3VjY2Vzc2Z1bCBpZiB0aGVyZSBpcyBhIHdvcmQgIlBBU1MiIGJl
bG93LgorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2xheW91dC11
cGRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9sYXlvdXQtdXBkYXRlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDUyZDNkNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9sYXlvdXQtdXBkYXRlLmh0bWwKQEAgLTAs
MCArMSw1MyBAQAorPGh0bWw+Cis8c2NyaXB0PgordmFyIHN1Y2Nlc3MgPSB0cnVlOwordmFyIHN0
YXR1c0VsZW1lbnQ7CisKK2Z1bmN0aW9uIGZpbmlzaCgpCit7CisgICAgc3VjY2VzcyA9IHN1Y2Nl
c3MgJiYgIWxheW91dFRlc3RDb250cm9sbGVyLm5lZWRzTGF5b3V0KCk7CisgICAgc3RhdHVzRWxl
bWVudC5pbm5lclRleHQgPSBzdWNjZXNzID8gIlBBU1MiIDogIkZBSUwiOworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBz
dGF0dXNFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXR1cyIpOworICAgIGlm
ICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIHN0YXR1c0VsZW1lbnQu
aW5uZXJUZXh0ID0gIlRoaXMgdGVzdCB2ZXJpZmllcyBmdW5jdGlvbmFsaXR5IG9mIER1bXBSZW5k
ZXJUcmVlLCBpdCB3b24ndCBydW4gaW4gYnJvd3Nlci4iOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciBoID0gZG9jdW1lbnQuZGVm
YXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShzdGF0dXNFbGVtZW50LG51bGwpLmdldFByb3BlcnR5
VmFsdWUoImhlaWdodCIpOworICAgIC8vIFF1ZXJ5IG9mIGNvbXB1dGVkIHN0eWxlIHNob3VsZCBo
YXZlIHZhbGlkYXRlZCBsYXlvdXQuCisgICAgc3VjY2VzcyA9ICFsYXlvdXRUZXN0Q29udHJvbGxl
ci5uZWVkc0xheW91dCgpOworCisgICAgc3RhdHVzRWxlbWVudC5zdHlsZS53aWR0aCA9IDIwMDsK
KyAgICAvLyBMYXlvdXQgc2hvdWxkIGJlIGludmFsaWQgYWZ0ZXIgc2NyaXB0IG1vZGlmaWVkIHRo
ZSBsYXlvdXQtYWZmZWN0aW5nIHByb3BlcnR5IG9uIHRoZSBlbGVtZW50LgorICAgIHN1Y2Nlc3Mg
PSBzdWNjZXNzICYmIGxheW91dFRlc3RDb250cm9sbGVyLm5lZWRzTGF5b3V0KCk7CisKKyAgICB2
YXIgdyA9IHN0YXR1c0VsZW1lbnQub2Zmc2V0V2lkdGg7CisgICAgLy8gTGF5b3V0IHNob3VsZCBi
ZSB2YWxpZGF0ZWQgYnkgdGhlIHNjcmlwdCBxdWVyeWluZyBhIGNvbXB1dGVkIHZhbHVlLgorICAg
IHN1Y2Nlc3MgPSBzdWNjZXNzICYmICFsYXlvdXRUZXN0Q29udHJvbGxlci5uZWVkc0xheW91dCgp
OworCisgICAgc3RhdHVzRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgiICIpKTsKKyAgICAvLyBMYXlvdXQgc2hvdWxkIGJlIGludmFsaWQgYWZ0ZXIgYWRkaW5nIGEg
Y2hpbGQgbm9kZS4KKyAgICBzdWNjZXNzID0gc3VjY2VzcyAmJiBsYXlvdXRUZXN0Q29udHJvbGxl
ci5uZWVkc0xheW91dCgpOworCisgICAgLy8gVGhlIGFjdCBvZiBxdWVyeWluZyB0aGUgbGF5b3V0
IHN0YXR1cyBzaG91ZGwgbm90IHZhbGlkYXRlIGl0LgorICAgIHN1Y2Nlc3MgPSBzdWNjZXNzICYm
IGxheW91dFRlc3RDb250cm9sbGVyLm5lZWRzTGF5b3V0KCk7CisKKyAgICAvLyBXaGVuIHRoZSBj
YWxsYmFjayBpcyBydW4sIGxheW91dCBzaG91bGQgYmUgdmFsaWQgYWdhaW4uCisgICAgc2V0VGlt
ZW91dChmaW5pc2gsIDEwKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgor
PGRpdiBpZD0iZGVzY3JpcHRpb24iPgorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgTGF5b3V0VGVz
dENvbnRyb2xsZXIubmVlZHNMYXlvdXQoKSBmdW5jdGlvbnMgcHJvcGVybHkuIExUQy5uZWVkc0xh
eW91dCgpIGlzIHVzZWQgdG8gY3JlYXRlIHRlc3QgY2FzZXMgd2hlcmUgRE9NIG1vZGlmaWNhdGlv
bnMgb3IgSFRNTCBwYXJzaW5nIGRvIG5vdCByZXN1bHQgaW4gdXBkYXRlZCBsYXlvdXQgLSBmb3Ig
ZXhhbXBsZSwgaWYgbGF5b3V0IHdhcyBub3Qgc2NoZWR1bGVkIG9yIHdhcyBub3QgcGVyZm9ybWVk
LiBUaGlzIG1hbmlmZXN0cyBhcyBidWcgd2hlcmUgdGhlIHJlbmRlcmluZyBpcyBub3QgdXBkYXRl
ZCBhZnRlciB0aGUgY2hhbmdlIHVudGlsIG1vdXNlb3ZlciBvciB3aW5kb3cgcmVzaXplIG9yIHNv
bWUgb3RoZXIgZXZlbnQgdGhhdCBjYXVzZXMgYSByZS1sYXlvdXQuPGJyPgorVGVzdCBpcyBzdWNj
ZXNzZnVsIGlmIHRoZXJlIGlzIGEgd29yZCAiUEFTUyIgYmVsb3cuCis8L2Rpdj4KKzxkaXYgaWQ9
InN0YXR1cyI+RkFJTDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKaW5kZXggYjU3ZTVjYS4uYWE1OGQ4ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAw
OS0wMy0xNCAgRG1pdHJ5IFRpdG92ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ0NTMKKyAgICAgICAgQWRkaW5nIHRoZSBsYXlvdXRUZXN0
Q29udHJvbGxlci5uZWVkc0xheW91dCgpLgorCisgICAgICAgICogd2Via2l0L3dlYmtpdHByaXZh
dGUuaDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgorCiAyMDA5LTAzLTEy
ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFsZXhleSAgUHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0cHJpdmF0ZS5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCmlu
ZGV4IDBiODNhMTEuLmYwMmM0OWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHByaXZhdGUuaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKQEAgLTE5
MSw2ICsxOTEsOSBAQCBleHRlcm4gIkMiIHsKICAgICBXRUJLSVRfQVBJIHVuc2lnbmVkIGludAog
ICAgIHdlYmtpdF93ZWJfZnJhbWVfbnVtYmVyX29mX2FjdGl2ZV9hbmltYXRpb25zKFdlYktpdFdl
YkZyYW1lKiBmcmFtZSk7CiAKKyAgICBXRUJLSVRfQVBJIGJvb2wKKyAgICB3ZWJraXRfd2ViX2Zy
YW1lX25lZWRzX2xheW91dChXZWJLaXRXZWJGcmFtZSogZnJhbWUpOworCiAgICAgV0VCS0lUX0FQ
SSBnY2hhcioKICAgICB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NlbGVjdGVkX3RleHQgKFdlYktpdFdl
YlZpZXcqIHdlYl92aWV3KTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2ViZnJhbWUuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4
IGUyYjEwYjYuLjBkMzE4ODEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmZyYW1lLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKQEAg
LTcxOSw2ICs3MTksMTUgQEAgdW5zaWduZWQgaW50IHdlYmtpdF93ZWJfZnJhbWVfbnVtYmVyX29m
X2FjdGl2ZV9hbmltYXRpb25zKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKICAgICByZXR1cm4gY29u
dHJvbGxlci0+bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7CiB9CiAKK2Jvb2wgd2Via2l0X3dl
Yl9mcmFtZV9uZWVkc19sYXlvdXQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQoreworICAgIEZyYW1l
KiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBpZiAoIWNvcmVGcmFtZSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGNvcmVGcmFtZS0+dmlldygpLT5uZWVkc0xheW91
dCgpOworfQorCiBnY2hhciogd2Via2l0X3dlYl9mcmFtZV9nZXRfcmVzcG9uc2VfbWltZV90eXBl
KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKIHsKICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShm
cmFtZSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCmluZGV4IDQ5ODk0YWQuLjJjZTAzYjAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDkt
MDMtMTQgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI0NDUzCisgICAgICAgIEFkZGluZyB0aGUgbGF5b3V0VGVzdENv
bnRyb2xsZXIubmVlZHNMYXlvdXQoKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToK
KyAgICAgICAgKC1bV2ViVmlldyBfbmVlZHNMYXlvdXRdKToKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlZpZXdQcml2YXRlLmg6CisKIDIwMDktMDMtMTMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2Nh
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZXZpbiBEZWNrZXIgYW5kIEdlb2Zm
cmV5IEdhcmVuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBlNjc5YTI5Li41MzBlMDM5IDEwMDY0
NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQpAQCAtMjExNSw2ICsyMTE1LDExIEBAIFdlYlNjcmlwdERlYnVnRGVs
ZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hlKiBXZWJWaWV3R2V0U2NyaXB0RGVidWdEZWxlZ2F0ZUlt
cGxlbWVuCiAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldEphdmFTY3JpcHRVUkxzQXJlQWxsb3dlZChh
cmVBbGxvd2VkKTsKIH0KIAorLSAoQk9PTClfbmVlZHNMYXlvdXQ7Cit7CisgICAgcmV0dXJuIF9w
cml2YXRlLT5wYWdlLT5tYWluRnJhbWUoKS0+dmlldygpLT5uZWVkc0xheW91dCgpID8gWUVTIDog
Tk87Cit9CisKICsgKE5TQ3Vyc29yICopX3BvaW50aW5nSGFuZEN1cnNvcgogewogICAgIHJldHVy
biBoYW5kQ3Vyc29yKCkuaW1wbCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXdQcml2YXRlLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAppbmRl
eCBhZGEwZTAxLi42ZmU3ZjUxIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
d1ByaXZhdGUuaAorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaApAQCAt
NDA4LDYgKzQwOCw4IEBAIENvdWxkIGJlIHdvcnRoIGFkZGluZyB0byB0aGUgQVBJLgogCiAtICh2
b2lkKV9zZXRKYXZhU2NyaXB0VVJMc0FyZUFsbG93ZWQ6KEJPT0wpc2V0SmF2YVNjcmlwdFVSTHNB
cmVBbGxvd2VkOwogCistIChCT09MKV9uZWVkc0xheW91dDsKKwogKyAoTlNDdXJzb3IgKilfcG9p
bnRpbmdIYW5kQ3Vyc29yOwogCiAvLyBTUEkgZm9yIER1bXBSZW5kZXJUcmVlCmRpZmYgLS1naXQg
YS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDhlZTMz
NjEuLjE3MDZhMzQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDMtMTQgIERtaXRyeSBUaXRv
diAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI0NDUzCisgICAgICAgIEFkZGluZyB0aGUgbGF5b3V0VGVzdENvbnRyb2xsZXIubmVlZHNMYXlv
dXQoKS4KKworICAgICAgICAqIEludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbDoKKyAgICAg
ICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om5lZWRzTGF5b3V0KToKKyAgICAg
ICAgKiBXZWJWaWV3Lmg6CisKIDIwMDktMDMtMTIgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bn
b29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdp
dCBhL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViVmlld1ByaXZhdGUuaWRsIGIvV2ViS2l0L3dp
bi9JbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwKaW5kZXggNDM2MmY4OS4uZTg5OThjMSAx
MDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwKKysr
IGIvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwKQEAgLTE1OSw0ICsx
NTksNiBAQCBpbnRlcmZhY2UgSVdlYlZpZXdQcml2YXRlIDogSVVua25vd24KICAgICBIUkVTVUxU
IHNldE1lbW9yeUNhY2hlRGVsZWdhdGVDYWxsc0VuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwog
CiAgICAgSFJFU1VMVCBzZXRKYXZhU2NyaXB0VVJMc0FyZUFsbG93ZWQoW2luXSBCT09MIGFyZUFs
bG93ZWQpOworICAgIAorICAgIEhSRVNVTFQgbmVlZHNMYXlvdXQoW291dCwgcmV0dmFsXSBCT09M
KiBuZWVkc0xheW91dCk7CiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIv
V2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA3OWQyNDI3Li42YzE4ZDU3IDEwMDY0NAotLS0g
YS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAg
LTUxNTYsNiArNTE1NiwxNyBAQCBIUkVTVUxUIFdlYlZpZXc6OnNldEphdmFTY3JpcHRVUkxzQXJl
QWxsb3dlZChCT09MIGFyZUFsbG93ZWQpCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKK0hSRVNVTFQg
V2ViVmlldzo6bmVlZHNMYXlvdXQoQk9PTCogbmVlZHNMYXlvdXQpCit7CisgICAgaWYgKCFuZWVk
c0xheW91dCkKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKKworICAgIEZyYW1lVmlldyogdmll
dyA9IG1fcGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKTsKKyAgICAqbmVlZHNMYXlvdXQgPSB2aWV3
ICYmIHZpZXctPm5lZWRzTGF5b3V0KCkgPyBUUlVFIDogRkFMU0U7CisKKyAgICByZXR1cm4gU19P
SzsKK30KKwogY2xhc3MgRW51bVRleHRNYXRjaGVzIDogcHVibGljIElFbnVtVGV4dE1hdGNoZXMK
IHsKICAgICBsb25nIG1fcmVmOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJWaWV3LmggYi9X
ZWJLaXQvd2luL1dlYlZpZXcuaAppbmRleCBmMGFmMTQzLi4xYTA5NjEzIDEwMDY0NAotLS0gYS9X
ZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9XZWJLaXQvd2luL1dlYlZpZXcuaApAQCAtNzI3LDYg
KzcyNyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
c2V0SmF2YVNjcmlwdFVSTHNBcmVBbGxvd2VkKAogICAgICAgICAvKiBbaW5dICovIEJPT0wgYXJl
QWxsb3dlZCk7CiAKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgbmVlZHNM
YXlvdXQoCisgICAgICAgIC8qIFtvdXQsIHJldHZhbF0gKi8gQk9PTCogbmVlZHNMYXlvdXQpOwor
CiAgICAgLy8gV2ViVmlldwogICAgIGJvb2wgc2hvdWxkVXNlRW1iZWRkZWRWaWV3KGNvbnN0IFdl
YkNvcmU6OlN0cmluZyYgbWltZVR5cGUpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggZmQzNzc2Yi4uMGI2ZTI5
ZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDA5LTAzLTE0ICBEbWl0cnkgVGl0b3YgIDxkaW1p
Y2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDQ1Mwor
ICAgICAgICBBZGRpbmcgdGhlIGxheW91dFRlc3RDb250cm9sbGVyLm5lZWRzTGF5b3V0KCkuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChuZWVkc0xheW91dENhbGxiYWNrKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250
cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpuZWVkc0xheW91
dCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFj
Lm1tOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6Om5lZWRzTGF5b3V0KToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAg
ICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6Om5lZWRzTGF5b3V0KToKKwogMjAwOS0wMy0xMyAg
QW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYTc4ZDExNS4uMTgwNjIxYyAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisr
KyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApA
QCAtNzM3LDYgKzczNywxMiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBudW1iZXJPZkFjdGl2ZUFuaW1h
dGlvbnNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplYwogICAgIHJldHVybiBK
U1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBjb250cm9sbGVyLT5udW1iZXJPZkFjdGl2ZUFuaW1h
dGlvbnMoKSk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIG5lZWRzTGF5b3V0Q2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlz
T2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
XSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBj
b250cm9sbGVyID0gcmVpbnRlcnByZXRfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2Jq
ZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVh
bihjb250ZXh0LCBjb250cm9sbGVyLT5uZWVkc0xheW91dCgpKTsKK30KKwogLy8gU3RhdGljIFZh
bHVlcwogCiBzdGF0aWMgSlNWYWx1ZVJlZiBnZXRHbG9iYWxGbGFnQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpAQCAtODMwLDYgKzgzNiw3IEBAIEpTU3RhdGlj
RnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAg
ICB7ICJleGVjQ29tbWFuZCIsIGV4ZWNDb21tYW5kQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAiaXNDb21tYW5kRW5hYmxlZCIsIGlzQ29tbWFuZEVuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJrZWVwV2ViSGlzdG9yeSIsIGtlZXBXZWJIaXN0b3J5Q2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKKyAgICAgICAgeyAibmVlZHNMYXlvdXQiLCBuZWVkc0xheW91dENhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgIm5vdGlmeURvbmUiLCBub3RpZnlEb25lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAicGF0aFRvTG9jYWxSZXNvdXJjZSIsIHBhdGhUb0xvY2FsUmVzb3VyY2VDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJxdWV1ZUJhY2tOYXZpZ2F0aW9uIiwgcXVldWVCYWNrTmF2
aWdhdGlvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAyZGU3ZjcyLi5lNDE5MWRlIDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisr
KyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAg
LTE2MCw2ICsxNjAsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBwYXVzZVRyYW5zaXRpb25BdFRpbWVP
bkVsZW1lbnRXaXRoSWQoSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBkb3VibGUgdGltZSwgSlNT
dHJpbmdSZWYgZWxlbWVudElkKTsKICAgICB1bnNpZ25lZCBudW1iZXJPZkFjdGl2ZUFuaW1hdGlv
bnMoKSBjb25zdDsKICAgICAKKyAgICBib29sIG5lZWRzTGF5b3V0KCkgY29uc3Q7CisgICAgCiBw
cml2YXRlOgogICAgIGJvb2wgbV9kdW1wQXNUZXh0OwogICAgIGJvb2wgbV9kdW1wQXNQREY7CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRy
b2xsZXJHdGsuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RD
b250cm9sbGVyR3RrLmNwcAppbmRleCBjYTNiYzM2Li5jZTM1ZGZmIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisr
KyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0
ay5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAgZXh0ZXJuICJDIiB7CiBib29sIHdlYmtpdF93ZWJfZnJh
bWVfcGF1c2VfYW5pbWF0aW9uKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG5h
bWUsIGRvdWJsZSB0aW1lLCBjb25zdCBnY2hhciogZWxlbWVudCk7CiBib29sIHdlYmtpdF93ZWJf
ZnJhbWVfcGF1c2VfdHJhbnNpdGlvbihXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFy
KiBuYW1lLCBkb3VibGUgdGltZSwgY29uc3QgZ2NoYXIqIGVsZW1lbnQpOwogdW5zaWduZWQgaW50
IHdlYmtpdF93ZWJfZnJhbWVfbnVtYmVyX29mX2FjdGl2ZV9hbmltYXRpb25zKFdlYktpdFdlYkZy
YW1lKiBmcmFtZSk7Citib29sIHdlYmtpdF93ZWJfZnJhbWVfbmVlZHNfbGF5b3V0KFdlYktpdFdl
YkZyYW1lKiBmcmFtZSk7CiB9CiAKIExheW91dFRlc3RDb250cm9sbGVyOjp+TGF5b3V0VGVzdENv
bnRyb2xsZXIoKQpAQCAtMzIxLDMgKzMyMiw4IEBAIHVuc2lnbmVkIExheW91dFRlc3RDb250cm9s
bGVyOjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdAogewogICAgIHJldHVybiB3ZWJr
aXRfd2ViX2ZyYW1lX251bWJlcl9vZl9hY3RpdmVfYW5pbWF0aW9ucyhtYWluRnJhbWUpOwogfQor
Citib29sIExheW91dFRlc3RDb250cm9sbGVyOjpuZWVkc0xheW91dCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHdlYmtpdF93ZWJfZnJhbWVfbmVlZHNfbGF5b3V0KG1haW5GcmFtZSk7Cit9CmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xs
ZXJNYWMubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRy
b2xsZXJNYWMubW0KaW5kZXggYzgwYzc4Zi4uNjE4NjQ0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpA
QCAtNDIwLDMgKzQyMCw4IEBAIHVuc2lnbmVkIExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJP
ZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdAogewogICAgIHJldHVybiBbbWFpbkZyYW1lIF9udW1i
ZXJPZkFjdGl2ZUFuaW1hdGlvbnNdOwogfQorCitib29sIExheW91dFRlc3RDb250cm9sbGVyOjpu
ZWVkc0xheW91dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFtbbWFpbkZyYW1lIHdlYlZpZXddIF9u
ZWVkc0xheW91dF07Cit9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93
aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAppbmRleCBkN2EzODIzLi4zZDYxNzAy
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENv
bnRyb2xsZXJXaW4uY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlv
dXRUZXN0Q29udHJvbGxlcldpbi5jcHAKQEAgLTc0NiwzICs3NDYsMjAgQEAgdW5zaWduZWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6Om51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0CiAKICAg
ICByZXR1cm4gbnVtYmVyOwogfQorCitib29sIExheW91dFRlc3RDb250cm9sbGVyOjpuZWVkc0xh
eW91dCgpIGNvbnN0Cit7CisgICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OworICAgIGlmIChG
QUlMRUQoZnJhbWUtPndlYlZpZXcoJndlYlZpZXcpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgQ09NUHRyPElXZWJWaWV3UHJpdmF0ZT4gdmlld1ByaXZhdGU7CisgICAgaWYgKEZBSUxF
RCh3ZWJWaWV3LT5RdWVyeUludGVyZmFjZSgmdmlld1ByaXZhdGUpKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgQk9PTCByZXN1bHQgPSBGQUxTRTsKKyAgICBpZiAoRkFJTEVEKHZpZXdQ
cml2YXRlLT5uZWVkc0xheW91dCgmcmVzdWx0KSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIHJldHVybiByZXN1bHQ7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29434</attachid>
            <date>2009-04-13 12:49:59 -0700</date>
            <delta_ts>2009-04-13 16:59:30 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch_v2.txt</filename>
            <type>text/plain</type>
            <size>2697</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZGMwMzYwMC4uMzU4YmY5OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0wNC0xMyAgRG1pdHJ5IFRpdG92
ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjQ0NTMKKyAgICAgICAgUkVHUkVTU0lPTjogSWYgc2V0VGltZW91dCBpcyBjYWxsZWQgb24gYSBp
ZnJhbWUncyB3aW5kb3csIHRoZSBET00gY2hhbmdlcyB0bworICAgICAgICB0aGUgbWFpbiBkb2N1
bWVudCB0aGF0IHRpbWVyIGNhbGxiYWNrIG1ha2VzIGFyZSBub3QgZmx1c2hlZC4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
Y2hlZHVsZWRBY3Rpb246OmV4ZWN1dGUpOgorICAgICAgICBVc2UgRG9jdW1lbnQ6OnVwZGF0ZVN0
eWxlRm9yQWxsRG9jdW1lbnRzKCkgaW5zdGVhZCBvZiBkb2N1bWVudC0+dXBkYXRlU3R5bGVJZk5l
ZWRlZCgpCisgICAgICAgIHNpbmNlIHRpbWVycyBtYXkgYWZmZWN0IGRvY3VtZW50cyBvdGhlciB0
aGVuIHRoZWlyIG93bi4KKwogMjAwOS0wNC0xMyAgUGFtZWxhIEdyZWVuZSAgPHBhbUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwCmluZGV4IGY1MDk2NmYuLjZiNTMxYmQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKQEAgLTEyNSwxOCArMTI1LDEyIEBAIHZv
aWQgU2NoZWR1bGVkQWN0aW9uOjpleGVjdXRlKERvY3VtZW50KiBkb2N1bWVudCkKIAogICAgIGZy
YW1lLT5zY3JpcHQoKS0+c2V0UHJvY2Vzc2luZ1RpbWVyQ2FsbGJhY2sodHJ1ZSk7CiAKLSAgICBp
ZiAobV9mdW5jdGlvbikKKyAgICBpZiAobV9mdW5jdGlvbikgewogICAgICAgICBleGVjdXRlRnVu
Y3Rpb25JbkNvbnRleHQod2luZG93LCB3aW5kb3ctPnNoZWxsKCkpOwotICAgIGVsc2UKKyAgICAg
ICAgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlRm9yQWxsRG9jdW1lbnRzKCk7CisgICAgfSBlbHNlCiAg
ICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+ZXhlY3V0ZVNjcmlwdChtX2NvZGUpOwogCi0gICAgLy8g
VXBkYXRlIG91ciBkb2N1bWVudCdzIHJlbmRlcmluZyBmb2xsb3dpbmcgdGhlIGV4ZWN1dGlvbiBv
ZiB0aGUgdGltZW91dCBjYWxsYmFjay4KLSAgICAvLyBGSVhNRTogV2h5IG5vdCB1c2UgdXBkYXRl
U3R5bGVGb3JBbGxEb2N1bWVudHMgdG8gdXBkYXRlIHJlbmRlcmluZyBvZiBhbGwgZG9jdW1lbnRz
PwotICAgIC8vIEZJWE1FOiBJcyB0aGlzIHJlYWxseSB0aGUgcmlnaHQgcG9pbnQgdG8gZG8gdGhl
IHVwZGF0ZT8gV2UgbmVlZCBhIHBsYWNlIHRoYXQgd29ya3MKLSAgICAvLyBmb3IgYWxsIHBvc3Np
YmxlIGVudHJ5IHBvaW50cyB0aGF0IG1pZ2h0IHBvc3NpYmx5IGV4ZWN1dGUgc2NyaXB0LCBidXQg
dGhpcyBzZWVtcwotICAgIC8vIHRvIGJlIGEgYml0IHRvbyBsb3ctbGV2ZWwuCi0gICAgZnJhbWUt
PmRvY3VtZW50KCktPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKLQogICAgIGZyYW1lLT5zY3JpcHQo
KS0+c2V0UHJvY2Vzc2luZ1RpbWVyQ2FsbGJhY2soZmFsc2UpOwogfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1NjaGVkdWxlZEFjdGlvbi5jcHAKaW5kZXggNmQxNWYwYy4uYzljNGJhNiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY2hlZHVsZWRBY3Rpb24uY3BwCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvdjgvU2NoZWR1bGVkQWN0aW9uLmNwcApAQCAtMTAwLDE0ICsxMDAsMTIgQEAgdm9p
ZCBTY2hlZHVsZWRBY3Rpb246OmV4ZWN1dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKIAogICAgIHByb3h5LT5zZXRUaW1lckNhbGxiYWNrKHRydWUpOwogCi0gICAgaWYgKCFtX2Z1
bmN0aW9uLklzRW1wdHkoKSAmJiBtX2Z1bmN0aW9uLT5Jc0Z1bmN0aW9uKCkpCisgICAgaWYgKCFt
X2Z1bmN0aW9uLklzRW1wdHkoKSAmJiBtX2Z1bmN0aW9uLT5Jc0Z1bmN0aW9uKCkpIHsKICAgICAg
ICAgcHJveHktPkNhbGxGdW5jdGlvbih2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb24+OjpDYXN0
KG1fZnVuY3Rpb24pLCB2OENvbnRleHQtPkdsb2JhbCgpLCBtX2FyZ2MsIG1fYXJndik7Ci0gICAg
ZWxzZQorICAgICAgICBEb2N1bWVudDo6dXBkYXRlU3R5bGVGb3JBbGxEb2N1bWVudHMoKTsKKyAg
ICB9IGVsc2UKICAgICAgICAgcHJveHktPmV2YWx1YXRlKG1fY29kZSwgMCk7CiAKLSAgICBpZiAo
Y29udGV4dC0+aXNEb2N1bWVudCgpKQotICAgICAgICBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNv
bnRleHQpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7Ci0KICAgICBwcm94eS0+c2V0VGltZXJDYWxs
YmFjayhmYWxzZSk7CiB9CiAK
</data>
<flag name="review"
          id="14651"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>