<?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>9001</bug_id>
          
          <creation_ts>2006-05-19 09:56:42 -0700</creation_ts>
          <short_desc>Javascript stops running before replacement page data arrives</short_desc>
          <delta_ts>2008-11-25 02:26:22 -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>Page Loading</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>grahamperrin</cc>
    
    <cc>ian</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>42895</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-05-19 09:56:42 -0700</bug_when>
    <thetext>This bug is also in Radar as &lt;rdar://4477632&gt;

* SUMMARY
I&apos;m working on a combination of JavaScript and CGI that gives a progress bar while a file is being uploaded.  I can&apos;t do it in the background with XMLHttpRequest, because Javascript doesn&apos;t allow access to file contents.  (Grrr.)  Thus, the only workaround is to track progress on the server and use client-side code to poll it periodically during the form submission.

Problem is... it doesn&apos;t work in Safari.  It works fine in Firefox, but in Safari as soon as you click a link or start a form submission, all Javascript execution stops cold.  It&apos;s really annoying, and the only workaround I can find (using a pop-up window for status reporting) is a bit of a kludge.

I&apos;ve attached a simple test page that demonstrates the problem.  To test this, load the page timertest.html, then click the link to start either the internal (same page) or external (pop-up) timer, then click to start the test.  In Firefox, you get he expected behavior葉he number continues to increment once a second while the new page tries to load.  In Safari, the number stops changing as soon as you click the test link.

-------------------------------------------

&lt;GMT15-Mar-2006 01:21:05GMT&gt; David Gatwood:
I just checked, and this mechanism also works on IE5 (Mac), Netscape 7.1 (Mac), and Opera (Mac), as well as IE 6 (Win) and Netscape 7.1 (Win).  So it looks like Safari is the only major browser where this code doesn&apos;t work.


&lt;GMT22-Mar-2006 23:35:35GMT&gt; David Gatwood:
Proposed patch attached.  The problem was caused by the call to Frame::pauseTimeouts from within saveDocumentToPageCache, which was, in turn, called from WebFrame&apos;s _createPageCacheForItem method.  Because this was being called before the data source was committed, the javascript code stopped functioning, causing my JavaScript progress bar to stand still.

This patch wraps the _createPageCacheForItem message in a test for (_private-&gt;state == WebFrameStateCommittedPage) instead of (_private-&gt;state == WebFrameStateProvisional), thus causing the JavaScript code to continue executing until the last practical moment.

This two line change fixes the misbehavior noted.  Backwards/forwards caching appears to still work, at least in very limited testing.


&lt;GMT28-Mar-2006 23:54:11GMT&gt; Alice Liu:
Don&apos;t worry David - the milestone being &quot;Later&quot; doesn&apos;t preclude your fix, if approved, from being integrated into Leopard. =)

Geoff please review David&apos;s patch. 

&lt;GMT30-Mar-2006 00:39:58GMT&gt; Geoff Garen:
David,

It&apos;s great that you took this bug into your own hands. However, I don&apos;t think the fix you proposed will work. A load becomes committed when its receives its first byte of data. At that time, it&apos;s almost certain that isLoading is true. Therefore, your patch would result in WebKit never adding items to the back/forward cache. 

I confirmed this theory by setting a breakpoint on _createPageCacheForItem and browsing around www.google.com.

I&apos;m assigning this back to you in case you want to take another shot at it.

&lt;GMT30-Mar-2006 03:49:06GMT&gt; David Gatwood:
At the point where this happens, previousItem is null for the first page, so we obviously should be looking at currentItem.  However, when I do this, backwards caching appears to work, but going back forwards results in a bus error.  So it looks like _createPageCacheForItem will have to take an alternate data source, cached from the previous one, and if there is no previous data source, no cache entry should get stored.

It is definitely using the caching with these changes, as I can disconnect from the network and go backwards and forwards without any problems.

I ended up fixing a NULL pointer dereference in scheduleRelayout in which it checks to see if m_frame-&gt;document is NULL, but doesn&apos;t check to see if m_frame is NULL, and for some reason, it is.  I&apos;m not sure why m_frame is ending up being NULL, though, and that concerns me that this may be introducing some very subtle regression in back/forward cache behavior.  I sure can&apos;t see it if it is, though.

I&apos;ve attached the updated bug as javascript_hang-revised.patch.

I&apos;m not sure how concerned to be about the m_frame issue.  With the updated changes, it still passes all the regression tests except two that failed before I started touching things.  Let me know what you think.


&lt;GMT01-Apr-2006 23:09:32GMT&gt; Geoff Garen:
This patch worries me. I don&apos;t think either of us fully understands its repercussions. It&apos;s very easy to cause nasty regressions in this party of the code (I speak from experience here), and none of our regression tests cover it. (In fact, DumpRenderTree runs with the back/forward cache turned off.)

Some comments:
1. I think you only need to track previousDataSource and previousDocumentView. You can use those later to discover whether the previous data source was loading, etc.

2. The commented-out code in Window::Alert is just confusing.

3. Was the change to CursorMac.mm intentional? What does it do?

4. To match &quot;_private-&gt;previousDataSource = NULL;&quot;, you should probably use &quot;[_private-&gt;previousDataSource release];&quot; instead of &quot;[dataSource release];&quot; In fact, it would probably be clearer if you just used &quot;_private-&gt;previousDataSource&quot; instead of &quot;dataSource&quot;.

5. The log is probably only appropriate in the case where _private-&gt;previousDataSource exists. The fact that we don&apos;t save pages to the b/f cache when you first arrive is not news; it&apos;s only if a page fails to save when you leave that&apos;s news. So &quot;else if (_private-&gt;previousDataSource) {&quot; is probably a better way to go.

Generally, this approach seems sound. I don&apos;t think we can land it until we know why m_frame is now NULL in a situation where it wasn&apos;t before, though.

&lt;GMT03-Apr-2006 18:29:40GMT&gt; David Gatwood:
Re #1: good point.  That will make things a lot cleaner.

Ignore #2.  This was me trying to figure out whether the script execution had actually stopped or the results simply were not being displayed.

Ignore #3, also.  This was me trying to work around a compile problem of some sort that turned out to just be a a case of me using the wrong gcc version....  (BTW, the webkit pages should really address which compiler to use.  :-)

Will take care of #4 and #5 and will try to figure out what&apos;s causing the null pointer regression.


&lt;GMT04-Apr-2006 01:39:48GMT&gt; David Gatwood:
Okay, I&apos;m still not sure whether the failure in that call would actually cause any problems or not, but this revised patch avoids the question entirely by moving the caching code earlier in the chain of events that lead to committing the new data---far enough back that backing data hasn&apos;t been obliterated, but far enough forward that it doesn&apos;t stop the Javascript interpreter until data has actually been received.

I&apos;ve attached the updated patch as javascript_hang-revised-3.patch.


&lt;GMT04-Apr-2006 16:54:55GMT&gt; Geoff Garen:
I&apos;m confused. javascript_hang-revised-3.patch doesn&apos;t seem to address #4 or #5, and it still includes the NULL check for m_frame. 

Generally, I&apos;m reluctant to add things to _checkLoadCompleteForThisFrame that do more than check whether the load is complete and notify the right folks. It&apos;s true that some code is guilty of that already, but we really need to clean that up, clarifying load responsibilities and making regressions due to poorly understood dependencies less likely.

&lt;GMT04-Apr-2006 19:02:47GMT&gt; David Gatwood:
I&apos;m a little confused by your second issue.  I didn&apos;t touch _checkLoadCompleteForThisFrame.  The call to doCache is at the start of _transitionToCommitted.

Oh, son of a... I just figured out why  m_frame was NULL when the caching code was executed later....  After that one line change, we can go back to caching it where I tried to cache it in the original patch.  *slams head into wall repeatedly*

New (greatly simplified) patch attached as javascript_hang-revised-6.patch.


&lt;GMT05-Apr-2006 14:54:08GMT&gt; Geoff Garen:
if (_private-&gt;previousDataSource &amp;&amp;

In Objective-C, messages sent to nil objects just return nil, so the nil check is unnecessary. 

[_private-&gt;bridge canCachePage]

What does this call do? Should it be called the previous bridge now, not the current one?

         else {
-            LOG(PageCache, &quot;NOT saving page to back/forward cache, %@\n&quot;, [[self dataSource] _URL]);
+            if (_private-&gt;previousDataSource) {
+		    LOG(PageCache, &quot;NOT saving page to back/forward cache, %@\n&quot;, [_private-&gt;previousDataSource _URL]);
+	    }

The WebCore style guidelines say only to use braces around ifs if the ifs enclose more than one line. So you can eliminate three lines of code here by nixing the 2 braces and making the else \n if into an else if.

Why do we refuse to cache when _private-&gt;quickRedirectComing is true? With your new scheme, do we need to know if a quick redirect *was* coming for the previous page?

_canCachePage is the most confusing indirection. Let&apos;s just get rid of it and put the one line of code it encloses at the call site. (Not new to your patch, but it would be a great thing to clean up along the way.)

+	/* DAG: Delayed caching code until the last possible moment
+	   for more consistent JavaScript behavior. */

We usually put this kind of exposition in the ChangeLog. (You can generate a skeleton ChangeLog with the prepare-ChangeLog script, then fill in the blanks. You&apos;ll need one before this patch can land.)

&lt;GMT05-Apr-2006 18:58:50GMT&gt; David Gatwood:

Cool about the null call being safe.  I&apos;m used to C++ where calling a function with a NULL &quot;this&quot; pointer isn&apos;t a bright idea.  :-)

Re: the bridge&apos;s canCachePage... since it&apos;s calling through the bridge into the C++ bigs, that call is probably using the wrong m_frame by this point in the code no matter what we do.  Thus, I&apos;m thinking that the cacheable status of the old page should be stored in _private-&gt;previousCanCachePage instead of the web view&apos;s notion (which isn&apos;t going to change anyway).

Re: the quick redirect, yes, this is still needed, I think.  If the previous page contained a meta refresh with... I think a second or less... something like that... then the page doesn&apos;t go in the cache because it is considered worthless... or at least that&apos;s the way I heard it explained to me.  But the previous page still was loaded, so the old page info should still be stored in _private-&gt;previousWhatever, so if we don&apos;t check that, we risk breaking that caching behavior.

Re: style, as long as I&apos;m fixing coding style in that spot, I&apos;m moving the &apos;else&apos; statements to be on the same line as the prior closing brace, as per recommended style.

It is a little confusing visually to have a nested else statement without braces followed immediately by the closing brace of the enclosing &apos;if&apos; statement, though.  I&apos;m wondering if maybe that should be an exception where even a single line &apos;else&apos; clause should have braces anyway.  Just a thought.

Anyway, updated patch attached.


&lt;GMT19-May-2006 16:52:15GMT&gt; Geoff Garen:
I still don&apos;t think this is quite right. I&apos;m going to post your patch on bugzilla to get more eyes on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42896</commentid>
    <comment_count>1</comment_count>
      <attachid>8406</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-05-19 09:59:00 -0700</bug_when>
    <thetext>Created attachment 8406
HTML file demonstrating bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42897</commentid>
    <comment_count>2</comment_count>
      <attachid>8407</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-05-19 09:59:32 -0700</bug_when>
    <thetext>Created attachment 8407
Helper file for demonstrating bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42898</commentid>
    <comment_count>3</comment_count>
      <attachid>8408</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-05-19 10:00:53 -0700</bug_when>
    <thetext>Created attachment 8408
David&apos;s latest patch

I don&apos;t think this patch is quite right -- I&apos;d like to get some more opinions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45204</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-06-09 11:55:10 -0700</bug_when>
    <thetext>To be specific, this is what I think might be wrong:

Our old behavior was to make all decisions based on the current page. This patch changes behavior to make certain decisions based on a previous page (_private-&gt;previousCanCachePage, for example), while still making others based on the current page (!_private-&gt;quickRedirectComing, for example). I&apos;m worried that these decisions will end up out of sync with each other.

I would also like to see some testing and confirmation that (1) pages get loaded into the back/forward cache; and (2) all the possible branches, like the quickRedirectComing branch, work appropriately.

Since nobody else has said anything, I&apos;m going to mark this r- for now, and hope that somebody picks it up later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45212</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-06-09 14:38:08 -0700</bug_when>
    <thetext>I hope this is the same David Gatwood I&apos;m adding to the CC list!
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45215</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-06-09 16:16:51 -0700</bug_when>
    <thetext>Actually, it was an Apple employee.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51202</commentid>
    <comment_count>7</comment_count>
    <who name="David A. Gatwood">dgatwood</who>
    <bug_when>2006-07-31 10:01:41 -0700</bug_when>
    <thetext>Same me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99827</commentid>
    <comment_count>8</comment_count>
      <attachid>25396</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-23 03:13:59 -0800</bug_when>
    <thetext>Created attachment 25396
test case

This bug is no longer reproducible with Safari 3.1.1 (possibly, even earlier). Adding a test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99828</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-23 03:28:31 -0800</bug_when>
    <thetext>This test is tricky - it only works because CFNetwork caches data before giving it to WebKit. So, it doesn&apos;t pass in Firefox.

But if hang-connection.php didn&apos;t write anything, the connection would have remained frozen even after canceled by WebKit, breaking all future tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100158</commentid>
    <comment_count>10</comment_count>
      <attachid>25396</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-11-24 22:29:18 -0800</bug_when>
    <thetext>Comment on attachment 25396
test case

&gt; +    function updateclock()

Should be &quot;updateClock&quot;.

+    usleep(100000);

Is this 1s? If so, OK. But let&apos;s try not to pause DRT for more than 1s on this test.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100188</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-25 02:26:22 -0800</bug_when>
    <thetext>Committed revision 38751.
 
(In reply to comment #10)
&gt; +    usleep(100000);
&gt; 
&gt; Is this 1s? If so, OK. But let&apos;s try not to pause DRT for more than 1s on this
&gt; test.

Even better, it&apos;s 0.1s.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>8406</attachid>
            <date>2006-05-19 09:59:00 -0700</date>
            <delta_ts>2006-05-19 09:59:00 -0700</delta_ts>
            <desc>HTML file demonstrating bug</desc>
            <filename>timertest.html</filename>
            <type>text/html</type>
            <size>804</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">PGh0bWw+PGhlYWQ+CjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2
YXNjcmlwdCI+PCEtLQoKCWZ1bmN0aW9uIGV4dHRpbWVyKCkKCXsKCQl3aW5kb3cub3BlbigiZXh0
dGltZXIuaHRtbCIsICJleHR0aW1lciIsICJoZWlnaHQ9MTAwLHdpZHRoPTEwMCIpOwoJfQoKCWZ1
bmN0aW9uIHVwZGF0ZWNsb2NrKCkKCXsKCQl2YXIgZWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm15Y2xvY2siKTsKCQl2YWwgPSBwYXJzZUludChlbHQuaW5uZXJIVE1MKTsKCQl2YWwrKzsK
CQllbHQuaW5uZXJIVE1MID0gIiIrdmFsOwoJCXdpbmRvdy5zZXRUaW1lb3V0KCJ1cGRhdGVjbG9j
aygpOyIsIDEwMDApOwoJfQoKCWZ1bmN0aW9uIHN0YXJ0dGltZXIoKQoJewoJCXdpbmRvdy5zZXRU
aW1lb3V0KCJ1cGRhdGVjbG9jaygpOyIsIDEwMDApOwoJfQotLT48L3NjcmlwdD4KCjwvaGVhZD48
Ym9keT4KCgk8c3BhbiBpZD0ibXljbG9jayI+MDwvc3Bhbj48cD4KCgk8YSBocmVmPSIjIiBvbmNs
aWNrPSdzdGFydHRpbWVyKCk7Jz5TdGFydCBpbnRlcm5hbCB0aW1lci48L2E+PHA+Cgk8YSBocmVm
PSIjIiBvbmNsaWNrPSdleHR0aW1lcigpOyc+U3RhcnQgZXh0ZXJuYWwgdGltZXIuPC9hPjxwPgoJ
PGEgaHJlZj0iaHR0cDovL3d3dy5nYXR3b29kLm5ldC9oYW5nY29ubmVjdGlvbi5waHAiPlN0YXJ0
IHRlc3QuPC9hPjxwPgoKPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij48IS0tCgkvLyBzdGFydHRpbWVyKCk7Ci0tPjwvc2NyaXB0PgoKPC9ib2R5Pjwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>8407</attachid>
            <date>2006-05-19 09:59:32 -0700</date>
            <delta_ts>2006-05-19 09:59:32 -0700</delta_ts>
            <desc>Helper file for demonstrating bug</desc>
            <filename>exttimer.html</filename>
            <type>text/html</type>
            <size>578</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">PGh0bWw+PGhlYWQ+CjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2
YXNjcmlwdCI+PCEtLQoKCWZ1bmN0aW9uIHVwZGF0ZWNsb2NrKCkKCXsKCQl2YXIgZWx0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15Y2xvY2siKTsKCQl2YWwgPSBwYXJzZUludChlbHQuaW5u
ZXJIVE1MKTsKCQl2YWwrKzsKCQllbHQuaW5uZXJIVE1MID0gIiIrdmFsOwoJCXdpbmRvdy5zZXRU
aW1lb3V0KCJ1cGRhdGVjbG9jaygpOyIsIDEwMDApOwoJfQoKCWZ1bmN0aW9uIHN0YXJ0dGltZXIo
KQoJewoJCXdpbmRvdy5zZXRUaW1lb3V0KCJ1cGRhdGVjbG9jaygpOyIsIDEwMDApOwoJfQotLT48
L3NjcmlwdD4KCjwvaGVhZD48Ym9keT4KCjxIMT5Eb24ndCBsb2FkIHRoaXMgcGFnZS48L0gxPgoK
VGhlIHBhZ2UgeW91IHdhbnQgaXMgPGEgaHJlZj0idGltZXJ0ZXN0Lmh0bWwiPnRpbWVydGVzdC5o
dG1sPC9hPi48cD4KCjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2
YXNjcmlwdCI+PCEtLQoJb3BlbmVyLnN0YXJ0dGltZXIoKTsKLS0+PC9zY3JpcHQ+Cgo8L2JvZHk+
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8408</attachid>
            <date>2006-05-19 10:00:53 -0700</date>
            <delta_ts>2006-06-09 11:55:26 -0700</delta_ts>
            <desc>David&apos;s latest patch</desc>
            <filename>javascript_hang-revised-7.patch</filename>
            <type>text/plain</type>
            <size>6373</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCShyZXZpc2lvbiAxMzQzMSkKKysrIFdlYktp
dC9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNyArMTQw
LDYgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQYWdlQ2FjaGVEb2N1bWVudFZpZQogLSAodm9pZClf
c2V0UHJvdmlzaW9uYWxEYXRhU291cmNlOihXZWJEYXRhU291cmNlICopZDsKIAogKyAoQ0ZBYnNv
bHV0ZVRpbWUpX3RpbWVPZkxhc3RDb21wbGV0ZWRMb2FkOwotLSAoQk9PTClfY2FuQ2FjaGVQYWdl
OwogLSAodm9pZClfcHVyZ2VQYWdlQ2FjaGU7CiAKIC0gKHZvaWQpX29wZW5lZDsKSW5kZXg6IFdl
YktpdC9XZWJWaWV3L1dlYkZyYW1lLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L1dlYlZpZXcvV2Vi
RnJhbWUubQkocmV2aXNpb24gMTM0MzEpCisrKyBXZWJLaXQvV2ViVmlldy9XZWJGcmFtZS5tCSh3
b3JraW5nIGNvcHkpCkBAIC0xOTYsNiArMTk2LDkgQEAgTlNTdHJpbmcgKldlYlBhZ2VDYWNoZURv
Y3VtZW50Vmlld0tleSA9IAogICAgIEJPT0wgZGVsZWdhdGVJc0RlY2lkaW5nTmF2aWdhdGlvblBv
bGljeTsKICAgICBCT09MIGRlbGVnYXRlSXNIYW5kbGluZ1VuaW1wbGVtZW50YWJsZVBvbGljeTsK
ICAgICBCT09MIGZpcnN0TGF5b3V0RG9uZTsKKyAgICBCT09MIHByZXZpb3VzQ2FuQ2FjaGVQYWdl
OworICAgIFdlYkRhdGFTb3VyY2UgKnByZXZpb3VzRGF0YVNvdXJjZTsKKyAgICBOU1ZpZXcgPFdl
YkRvY3VtZW50Vmlldz4gKnByZXZpb3VzRG9jdW1lbnRWaWV3OwogICAgIAogICAgIGlkIGludGVy
bmFsTG9hZERlbGVnYXRlOwogICAgIFdlYlNjcmlwdERlYnVnZ2VyICpzY3JpcHREZWJ1Z2dlcjsK
QEAgLTg2NywxMSArODcwLDYgQEAgc3RhdGljIGlubGluZSBXZWJGcmFtZSAqRnJhbWUoV2ViQ29y
ZUZyYQogICAgIFtzZWxmIF9vcGVuZWRdOwogfQogCi0tIChCT09MKV9jYW5DYWNoZVBhZ2UKLXsK
LSAgICByZXR1cm4gW1tbc2VsZiB3ZWJWaWV3XSBiYWNrRm9yd2FyZExpc3RdIF91c2VzUGFnZUNh
Y2hlXTsKLX0KLQogLSAodm9pZClfcHVyZ2VQYWdlQ2FjaGUKIHsKICAgICAvLyBUaGlzIG1ldGhv
ZCBpbXBsZW1lbnRzIHRoZSBydWxlIGZvciBwdXJnaW5nIHRoZSBwYWdlIGNhY2hlLgpAQCAtOTA5
LDcgKzkwNyw3IEBAIHN0YXRpYyBDRkFic29sdXRlVGltZSBfdGltZU9mTGFzdENvbXBsZXQKICAg
ICByZXR1cm4gX3RpbWVPZkxhc3RDb21wbGV0ZWRMb2FkOwogfQogCi0tIChCT09MKV9jcmVhdGVQ
YWdlQ2FjaGVGb3JJdGVtOihXZWJIaXN0b3J5SXRlbSAqKWl0ZW0KKy0gKEJPT0wpX2NyZWF0ZVBh
Z2VDYWNoZUZvckl0ZW06KFdlYkhpc3RvcnlJdGVtICopaXRlbSB3aXRoRGF0YVNvdXJjZTooV2Vi
RGF0YVNvdXJjZSAqKWRhdGFTb3VyY2Ugd2l0aERvY3VtZW50VmlldzooTlNWaWV3IDxXZWJEb2N1
bWVudFZpZXc+ICopZG9jdW1lbnRWaWV3OwogewogICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnBh
Z2VDYWNoZTsKIApAQCAtOTIyLDggKzkyMCw4IEBAIHN0YXRpYyBDRkFic29sdXRlVGltZSBfdGlt
ZU9mTGFzdENvbXBsZXQKICAgICBlbHNlIHsKICAgICAgICAgcGFnZUNhY2hlID0gW2l0ZW0gcGFn
ZUNhY2hlXTsKICAgICAgICAgW3BhZ2VDYWNoZSBzZXRPYmplY3Q6W05TRGF0ZSBkYXRlXSAgZm9y
S2V5OiBXZWJQYWdlQ2FjaGVFbnRyeURhdGVLZXldOwotICAgICAgICBbcGFnZUNhY2hlIHNldE9i
amVjdDpbc2VsZiBkYXRhU291cmNlXSBmb3JLZXk6IFdlYlBhZ2VDYWNoZURhdGFTb3VyY2VLZXld
OwotICAgICAgICBbcGFnZUNhY2hlIHNldE9iamVjdDpbW3NlbGYgZnJhbWVWaWV3XSBkb2N1bWVu
dFZpZXddIGZvcktleTogV2ViUGFnZUNhY2hlRG9jdW1lbnRWaWV3S2V5XTsKKyAgICAgICAgW3Bh
Z2VDYWNoZSBzZXRPYmplY3Q6ZGF0YVNvdXJjZSBmb3JLZXk6IFdlYlBhZ2VDYWNoZURhdGFTb3Vy
Y2VLZXldOworICAgICAgICBbcGFnZUNhY2hlIHNldE9iamVjdDpkb2N1bWVudFZpZXcgZm9yS2V5
OiBXZWJQYWdlQ2FjaGVEb2N1bWVudFZpZXdLZXldOwogICAgIH0KICAgICByZXR1cm4gWUVTOwog
fQpAQCAtOTQyLDYgKzk0MCwxMSBAQCBzdGF0aWMgQ0ZBYnNvbHV0ZVRpbWUgX3RpbWVPZkxhc3RD
b21wbGV0CiAgICAgCiAgICAgaWYgKF9wcml2YXRlLT5zdGF0ZSA9PSBXZWJGcmFtZVN0YXRlUHJv
dmlzaW9uYWwpIHsKICAgICAgICAgX3ByaXZhdGUtPmZpcnN0TGF5b3V0RG9uZSA9IE5POworCV9w
cml2YXRlLT5wcmV2aW91c0NhbkNhY2hlUGFnZSA9IFtfcHJpdmF0ZS0+YnJpZGdlIGNhbkNhY2hl
UGFnZV07CisJX3ByaXZhdGUtPnByZXZpb3VzRGF0YVNvdXJjZSA9IFtzZWxmIGRhdGFTb3VyY2Vd
OworCVtfcHJpdmF0ZS0+cHJldmlvdXNEYXRhU291cmNlIHJldGFpbl07CisJX3ByaXZhdGUtPnBy
ZXZpb3VzRG9jdW1lbnRWaWV3ID0gW1tzZWxmIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKKwlb
X3ByaXZhdGUtPnByZXZpb3VzRG9jdW1lbnRWaWV3IHJldGFpbl07CiAgICAgICAgIFtfcHJpdmF0
ZS0+YnJpZGdlIHByb3Zpc2lvbmFsTG9hZFN0YXJ0ZWRdOwogICAgIAogICAgICAgICAvLyBGSVhN
RTogVGhpcyBpcyBPSyBhcyBsb25nIGFzIG5vIG9uZSByZXNpemVzIHRoZSB3aW5kb3csCkBAIC05
NDksNiArOTUyLDEwIEBAIHN0YXRpYyBDRkFic29sdXRlVGltZSBfdGltZU9mTGFzdENvbXBsZXQK
ICAgICAgICAgLy8gdGhlIG9jY3VwaWVkIHBhcnQgb2YgdGhlIHNjcm9sbCB2aWV3LgogICAgICAg
ICBbW1tzZWxmIGZyYW1lVmlld10gX3Njcm9sbFZpZXddIHNldERyYXdzQmFja2dyb3VuZDpOT107
CiAKKyAgICB9CisgICAgaWYgKF9wcml2YXRlLT5zdGF0ZSA9PSBXZWJGcmFtZVN0YXRlQ29tbWl0
dGVkUGFnZSkgeworCS8qIERBRzogRGVsYXllZCBjYWNoaW5nIGNvZGUgdW50aWwgdGhlIGxhc3Qg
cG9zc2libGUgbW9tZW50CisJICAgZm9yIG1vcmUgY29uc2lzdGVudCBKYXZhU2NyaXB0IGJlaGF2
aW9yLiAqLwogICAgICAgICAvLyBDYWNoZSB0aGUgcGFnZSwgaWYgcG9zc2libGUuCiAgICAgICAg
IC8vIERvbid0IHdyaXRlIHRvIHRoZSBjYWNoZSBpZiBpbiB0aGUgbWlkZGxlIG9mIGEgcmVkaXJl
Y3QsIHNpbmNlIHdlIHdpbGwgd2FudCB0bwogICAgICAgICAvLyBzdG9yZSB0aGUgZmluYWwgcGFn
ZSB3ZSBlbmQgdXAgb24uCkBAIC05NTYsNDAgKzk2MywzOSBAQCBzdGF0aWMgQ0ZBYnNvbHV0ZVRp
bWUgX3RpbWVPZkxhc3RDb21wbGV0CiAgICAgICAgIC8vIG92ZXIgaXQgYWdhaW4gd2hlbiB3ZSBs
ZWF2ZSB0aGF0IHBhZ2UuCiAgICAgICAgIFdlYkhpc3RvcnlJdGVtICppdGVtID0gW19wcml2YXRl
IGN1cnJlbnRJdGVtXTsKICAgICAgICAgV2ViRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSA9IFtzZWxm
IF9sb2FkVHlwZV07Ci0gICAgICAgIGlmIChbc2VsZiBfY2FuQ2FjaGVQYWdlXQotICAgICAgICAg
ICAgJiYgW19wcml2YXRlLT5icmlkZ2UgY2FuQ2FjaGVQYWdlXQorICAgICAgICBpZiAoW1tbc2Vs
ZiB3ZWJWaWV3XSBiYWNrRm9yd2FyZExpc3RdIF91c2VzUGFnZUNhY2hlXQorICAgICAgICAgICAg
JiYgX3ByaXZhdGUtPnByZXZpb3VzQ2FuQ2FjaGVQYWdlCiAgICAgICAgICAgICAmJiBpdGVtCiAg
ICAgICAgICAgICAmJiAhX3ByaXZhdGUtPnF1aWNrUmVkaXJlY3RDb21pbmcKICAgICAgICAgICAg
ICYmIGxvYWRUeXBlICE9IFdlYkZyYW1lTG9hZFR5cGVSZWxvYWQgCiAgICAgICAgICAgICAmJiBs
b2FkVHlwZSAhPSBXZWJGcmFtZUxvYWRUeXBlUmVsb2FkQWxsb3dpbmdTdGFsZURhdGEKICAgICAg
ICAgICAgICYmIGxvYWRUeXBlICE9IFdlYkZyYW1lTG9hZFR5cGVTYW1lCi0gICAgICAgICAgICAm
JiAhW1tzZWxmIGRhdGFTb3VyY2VdIGlzTG9hZGluZ10KLSAgICAgICAgICAgICYmICFbW3NlbGYg
ZGF0YVNvdXJjZV0gX2lzU3RvcHBpbmddKQorICAgICAgICAgICAgJiYgIVtfcHJpdmF0ZS0+cHJl
dmlvdXNEYXRhU291cmNlIGlzTG9hZGluZyBdCisgICAgICAgICAgICAmJiAhW19wcml2YXRlLT5w
cmV2aW91c0RhdGFTb3VyY2UgX2lzU3RvcHBpbmddKQogICAgICAgICB7Ci0gICAgICAgICAgICBp
ZiAoW1tbc2VsZiBkYXRhU291cmNlXSByZXByZXNlbnRhdGlvbl0gaXNLaW5kT2ZDbGFzczogW1dl
YkhUTUxSZXByZXNlbnRhdGlvbiBjbGFzc11dKSB7CisgICAgICAgICAgICBpZiAoW1tfcHJpdmF0
ZS0+cHJldmlvdXNEYXRhU291cmNlIHJlcHJlc2VudGF0aW9uXSBpc0tpbmRPZkNsYXNzOiBbV2Vi
SFRNTFJlcHJlc2VudGF0aW9uIGNsYXNzXV0pIHsKICAgICAgICAgICAgICAgICBpZiAoIVtpdGVt
IHBhZ2VDYWNoZV0pewotCiAgICAgICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgaXRlbXMgdG8g
dGhpcyBwYWdlJ3MgY2FjaGUuCi0gICAgICAgICAgICAgICAgICAgIGlmIChbc2VsZiBfY3JlYXRl
UGFnZUNhY2hlRm9ySXRlbTppdGVtXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgTE9HKFBh
Z2VDYWNoZSwgIlNhdmluZyBwYWdlIHRvIGJhY2svZm9yd2FyZCBjYWNoZSwgJUBcbiIsIFtbc2Vs
ZiBkYXRhU291cmNlXSBfVVJMXSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChbc2VsZiBfY3Jl
YXRlUGFnZUNhY2hlRm9ySXRlbTppdGVtIHdpdGhEYXRhU291cmNlOl9wcml2YXRlLT5wcmV2aW91
c0RhdGFTb3VyY2Ugd2l0aERvY3VtZW50VmlldzpfcHJpdmF0ZS0+cHJldmlvdXNEb2N1bWVudFZp
ZXddKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBMT0coUGFnZUNhY2hlLCAiU2F2aW5nIHBh
Z2UgdG8gYmFjay9mb3J3YXJkIGNhY2hlLCAlQFxuIiwgW19wcml2YXRlLT5wcmV2aW91c0RhdGFT
b3VyY2UgX1VSTF0pOwogCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZWUgaWYgYW55IHBh
Z2UgY2FjaGVzIG5lZWQgdG8gYmUgcHVyZ2VkIGFmdGVyIHRoZSBhZGRpdGlvbiBvZiB0aGlzCiAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBuZXcgcGFnZSBjYWNoZS4KICAgICAgICAgICAgICAg
ICAgICAgICAgIFtzZWxmIF9wdXJnZVBhZ2VDYWNoZV07Ci0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBMT0co
UGFnZUNhY2hlLCAiTk9UIHNhdmluZyBwYWdlIHRvIGJhY2svZm9yd2FyZCBjYWNoZSwgdW5hYmxl
IHRvIGNyZWF0ZSBpdGVtcywgJUBcbiIsIFtbc2VsZiBkYXRhU291cmNlXSBfVVJMXSk7CisgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBMT0coUGFn
ZUNhY2hlLCAiTk9UIHNhdmluZyBwYWdlIHRvIGJhY2svZm9yd2FyZCBjYWNoZSwgdW5hYmxlIHRv
IGNyZWF0ZSBpdGVtcywgJUBcbiIsIFtfcHJpdmF0ZS0+cHJldmlvdXNEYXRhU291cmNlIF9VUkxd
KTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIFtfcHJpdmF0ZS0+cHJldmlv
dXNEYXRhU291cmNlIHJlbGVhc2VdOworICAgICAgICAgICAgICAgIFtfcHJpdmF0ZS0+cHJldmlv
dXNEb2N1bWVudFZpZXcgcmVsZWFzZV07CisgICAgICAgICAgICAgICAgX3ByaXZhdGUtPnByZXZp
b3VzRGF0YVNvdXJjZSA9IE5VTEw7CisgICAgICAgICAgICAgICAgX3ByaXZhdGUtPnByZXZpb3Vz
RG9jdW1lbnRWaWV3ID0gTlVMTDsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgLy8gUHV0IHRoZSBkb2N1bWVudCBpbnRvIGEgbnVsbCBzdGF0ZSwgc28gaXQgY2FuIGJlIHJl
c3RvcmVkIGNvcnJlY3RseS4KICAgICAgICAgICAgICAgICBbX3ByaXZhdGUtPmJyaWRnZSBjbGVh
cl07CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICBMT0coUGFnZUNhY2hlLCAiTk9UIHNhdmluZyBwYWdlIHRvIGJhY2svZm9yd2FyZCBjYWNoZSwg
JUBcbiIsIFtbc2VsZiBkYXRhU291cmNlXSBfVVJMXSk7Ci0gICAgICAgIH0KKyAgICAgICAgfSBl
bHNlIGlmIChfcHJpdmF0ZS0+cHJldmlvdXNEYXRhU291cmNlKQorICAgICAgICAgICAgTE9HKFBh
Z2VDYWNoZSwgIk5PVCBzYXZpbmcgcGFnZSB0byBiYWNrL2ZvcndhcmQgY2FjaGUsICVAXG4iLCBb
X3ByaXZhdGUtPnByZXZpb3VzRGF0YVNvdXJjZSBfVVJMXSk7CiAgICAgfQogICAgIAogICAgIGlm
IChfcHJpdmF0ZS0+c3RhdGUgPT0gV2ViRnJhbWVTdGF0ZUNvbXBsZXRlKSB7Cg==
</data>
<flag name="review"
          id="2383"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25396</attachid>
            <date>2008-11-23 03:13:59 -0800</date>
            <delta_ts>2008-11-24 22:29:18 -0800</delta_ts>
            <desc>test case</desc>
            <filename>TimeoutTest.txt</filename>
            <type>text/plain</type>
            <size>3043</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDM4Njk0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDgtMTEtMjMgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkw
MDEKKyAgICAgICAgSmF2YXNjcmlwdCBzdG9wcyBydW5uaW5nIGJlZm9yZSByZXBsYWNlbWVudCBw
YWdlIGRhdGEgYXJyaXZlcworCisgICAgICAgIEFkZGluZyBhIHRlc3QgZm9yIGEgYnVnIHRoYXQg
aXMgbG9uZ2VyIHJlcHJvZHVjaWJsZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9yZXNv
dXJjZXMvaGFuZy1jb25uZWN0aW9uLnBocDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9t
aXNjL3RpbWVyLXZzLWxvYWRpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL21pc2MvdGltZXItdnMtbG9hZGluZy5odG1sOiBBZGRlZC4KKwogMjAwOC0xMS0yMSAg
QWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgR2VvZmYgR2FyZW4uCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvdGltZXIt
dnMtbG9hZGluZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9taXNjL3RpbWVyLXZzLWxvYWRpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3RpbWVyLXZzLWxvYWRpbmctZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACitTVUNDRVNTCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvdGltZXItdnMtbG9hZGluZy1leHBlY3RlZC50
eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9wbGFpbgpOYW1lOiBz
dm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
aXNjL3RpbWVyLXZzLWxvYWRpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvdGltZXItdnMtbG9hZGluZy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL3RpbWVyLXZzLWxvYWRpbmcuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwzMiBAQAorPGh0bWw+PGhlYWQ+Cis8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2Ny
aXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0KKworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gdXBkYXRlY2xvY2soKQorICAgIHsKKyAgICAgICAgd2luZG93LnNl
dFRpbWVvdXQoInN1Y2Nlc3MoKSIsIDEwMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3VjY2Vz
cygpCisgICAgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiUkVTVUxUIikuaW5u
ZXJIVE1MID0gIlNVQ0NFU1MiOworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gImRhdGE6dGV4dC9odG1sLFNVQ0NF
U1M8c2NyaXB0PmxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTwvc2NyIiArICJpcHQ+
IjsKKyAgICB9CisKKyAgICB3aW5kb3cuc2V0VGltZW91dCgidXBkYXRlY2xvY2soKSIsIDEwMCk7
CisgICAgc2V0VGltZW91dCgnd2luZG93LmxvY2F0aW9uID0gInJlc291cmNlcy9oYW5nLWNvbm5l
Y3Rpb24ucGhwIicsIDApOworCistLT48L3NjcmlwdD4KKworPC9oZWFkPjxib2R5PgorICAgIDxw
PlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05MDAxIj5idWcgOTAwMTxhPjoKKyAgICBKYXZhc2NyaXB0IHN0b3BzIHJ1bm5pbmcgYmVmb3Jl
IHJlcGxhY2VtZW50IHBhZ2UgZGF0YSBhcnJpdmVzLjwvcD4KKworICAgIDxzcGFuIGlkPSJSRVNV
TFQiPldBSVQ8L3NwYW4+PHA+CisKKzwvYm9keT48L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvdGltZXItdnMtbG9hZGluZy5odG1sCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbAoKSW5kZXg6IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvaGFuZy1jb25uZWN0aW9uLnBocAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2hhbmctY29ubmVj
dGlvbi5waHAJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVz
b3VyY2VzL2hhbmctY29ubmVjdGlvbi5waHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAor
PD9waHAKK3doaWxlICh0cnVlKSB7CisgICAgZWNobyAiYSI7CisgICAgZmx1c2goKTsKKyAgICB1
c2xlZXAoMTAwMDAwKTsKK30KKz8+Cg==
</data>
<flag name="review"
          id="11772"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>