<?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>40919</bug_id>
          
          <creation_ts>2010-06-21 08:19:18 -0700</creation_ts>
          <short_desc>beforeload event not sent to document for &lt;img src&gt; added to document using .innerHTML (affects images.google.com)</short_desc>
          <delta_ts>2010-08-05 15:35:09 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>abarth</cc>
    
    <cc>aestes</cc>
    
    <cc>bweinstein</cc>
    
    <cc>hyatt</cc>
    
    <cc>tonyg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>240712</commentid>
    <comment_count>0</comment_count>
      <attachid>59252</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-06-21 08:19:18 -0700</bug_when>
    <thetext>Created attachment 59252
test case

To reproduce:

1. Load attached test case

The document&apos;s beforeload event listener never gets called for the image. This is indicated by the URL of the image not being printed into the page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240713</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-06-21 08:19:58 -0700</bug_when>
    <thetext>images.google.com uses this technique, meaning that beforeload doesn&apos;t work to block many images on images.google.com.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240714</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-06-21 08:20:56 -0700</bug_when>
    <thetext>The problem is that the &lt;img&gt; element&apos;s inDocument() function returns false when the beforeload event is being dispatched. This causes Node::eventAncestors to return 0 ancestors, so the event never gets up to the document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240715</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-06-21 08:21:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/8113003&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240721</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-06-21 08:28:47 -0700</bug_when>
    <thetext>The beforeload event is sent via a call to ImageLoader::dispatchPendingBeforeLoadEvents() at the end of HTMLDocumentParser::write(). Apparently this is before the &lt;img&gt; has actually been added to the document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240816</commentid>
    <comment_count>5</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-06-21 12:40:59 -0700</bug_when>
    <thetext>Technically this is correct behavior.  We need to figure out what we&apos;re going to do with the loads that happen on DOM elements that aren&apos;t in the document yet.  I suspect we may need to do something funky like allow bubbling/capturing from the root of the unattached tree up to the document.

No other event behaves like this, but I can&apos;t think of a better way.  All loads need to be easily observable from a single listener, even ones that occur on elements that aren&apos;t in the document yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240826</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-06-21 12:59:06 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Technically this is correct behavior.  We need to figure out what we&apos;re going to do with the loads that happen on DOM elements that aren&apos;t in the document yet.  I suspect we may need to do something funky like allow bubbling/capturing from the root of the unattached tree up to the document.

Another option is to delay the loading until the element is inserted into the document. But I assume that would cause compatibility problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241380</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-06-22 12:06:30 -0700</bug_when>
    <thetext>The same bug does not affect the following code:

var img = new Image();
img.src = foo;
document.body.appendChild(img);

Setting @src schedules the beforeload event to be sent after a timer fires (via ImageEventSender::dispatchEventSoon). By the time the timer fires, the image is already in the document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241955</commentid>
    <comment_count>8</comment_count>
      <attachid>59536</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-06-23 11:20:07 -0700</bug_when>
    <thetext>Created attachment 59536
Patch

This patch does two things:

(1) It makes beforeload flow up to the document even for nodes that aren&apos;t reachable from the document element.  This lets the document observe orphaned image loads.

(2) It doesn&apos;t bother doing the synchronous beforeload dispatch after parsing document fragments.  This ensures that fragments that then get assigned into the document are in the document at the time beforeload fires.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244995</commentid>
    <comment_count>9</comment_count>
      <attachid>60166</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-06-30 16:17:29 -0700</bug_when>
    <thetext>Created attachment 60166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244998</commentid>
    <comment_count>10</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-06-30 16:18:49 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=60166) [details]
&gt; Patch

This is hyatt&apos;s patch with a layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245017</commentid>
    <comment_count>11</comment_count>
      <attachid>60166</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-30 17:06:21 -0700</bug_when>
    <thetext>Comment on attachment 60166
Patch

&gt; +    // beforeload is always observable by the document, even for elements that are not contained in
&gt; +    // the document.
&gt; +    if (!inDocument() &amp;&amp; event-&gt;type() == eventNames().beforeloadEvent)
&gt; +        ancestors.append(document());

Is this really the design we want for beforeload? It&apos;s very strange! Why would the document need to get the event for a node that&apos;s not in it? What’s the reason for this event to be different from all others in this respect?

(I would say &quot;The beforeload event&quot; so you can capitalize the comment sentence.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245123</commentid>
    <comment_count>12</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-06-30 23:20:29 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 60166 [details])
&gt; &gt; +    // beforeload is always observable by the document, even for elements that are not contained in
&gt; &gt; +    // the document.
&gt; &gt; +    if (!inDocument() &amp;&amp; event-&gt;type() == eventNames().beforeloadEvent)
&gt; &gt; +        ancestors.append(document());
&gt; 
&gt; Is this really the design we want for beforeload? It&apos;s very strange! Why would the document need to get the event for a node that&apos;s not in it? What’s the reason for this event to be different from all others in this respect?

I think the problem is that a clever page could bypass document-level beforeload handlers by doing something like this:

var img = new Image();
img.src = ...;
img.onload = function(event) {
    targetNode.appendChild(img);
}

For injected scripts to be able to cancel loads, it sounds like beforeload events from fragments will need to be propagated to somewhere in the DOM.  Sam mentioned in person that perhaps parenting fragments to the window would make more sense.

Since this change isn&apos;t strictly necessary to fix the .innerHTML bug, I think I should file a new bug to track this issue and resubmit the patch with the Node.cpp change removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245141</commentid>
    <comment_count>13</comment_count>
      <attachid>60206</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-06-30 23:59:37 -0700</bug_when>
    <thetext>Created attachment 60206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245580</commentid>
    <comment_count>14</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-07-01 15:17:20 -0700</bug_when>
    <thetext>Committed r62302: &lt;http://trac.webkit.org/changeset/62302&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247273</commentid>
    <comment_count>15</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-07-06 19:29:45 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Since this change isn&apos;t strictly necessary to fix the .innerHTML bug, I think I should file a new bug to track this issue and resubmit the patch with the Node.cpp change removed.

I filed https://bugs.webkit.org/show_bug.cgi?id=41730 to track this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260826</commentid>
    <comment_count>16</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-08-05 13:48:49 -0700</bug_when>
    <thetext>FYI, this caused crashes:

    if (m_noMoreData &amp;&amp; !m_inWrite &amp;&amp; !state.loadingExtScript() &amp;&amp; !m_executingScript &amp;&amp; !m_timer.isActive())
        end(); // this actually causes us to be deleted

    // After parsing, go ahead and dispatch image beforeload events, but only if we&apos;re doing
    // document parsing.  For document fragments we wait, since they&apos;ll likely end up in the document by the time
    // the beforeload events fire.
    if (!m_fragment)
        ImageLoader::dispatchPendingBeforeLoadEvents();

Notice end() might cause this to be deleted and m_fragment is a member. This is a blocker on the Chrome release branch so I&apos;m working on a test and fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260883</commentid>
    <comment_count>17</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-08-05 14:54:28 -0700</bug_when>
    <thetext>&gt; This is a blocker on the Chrome release branch so I&apos;m working on a test and fix.

Scratch that. I&apos;ve just rolled this out on the branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260891</commentid>
    <comment_count>18</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-08-05 15:04:51 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; &gt; This is a blocker on the Chrome release branch so I&apos;m working on a test and fix.
&gt; 
&gt; Scratch that. I&apos;ve just rolled this out on the branch.

Tony, can you attach a test case that reproduces the crash?  This is obviously an issue we&apos;d like to fix in ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260905</commentid>
    <comment_count>19</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-08-05 15:35:09 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; &gt; This is a blocker on the Chrome release branch so I&apos;m working on a test and fix.
&gt; &gt; 
&gt; &gt; Scratch that. I&apos;ve just rolled this out on the branch.
&gt; 
&gt; Tony, can you attach a test case that reproduces the crash?  This is obviously an issue we&apos;d like to fix in ToT.

I don&apos;t have a reduced case. The trick is to reach the branch that triggers end().

FWIW, this reproduces pretty reliably (but not 100%) for me with http://www.mashable.com/

I wasn&apos;t planning on spending time reducing since this is in the legacy parser. We just switched back to the legacy parser for Chrome 6 because of what&apos;s left in https://bugs.webkit.org/show_bug.cgi?id=41115.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>59252</attachid>
            <date>2010-06-21 08:19:18 -0700</date>
            <delta_ts>2010-06-21 08:19:18 -0700</delta_ts>
            <desc>test case</desc>
            <filename>beforeloadInnerHTML.html</filename>
            <type>text/html</type>
            <size>581</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxzY3JpcHQ+CiAgICAgICAgZG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JlbG9hZCIsIGhhbmRsZUJlZm9yZUxvYWQsIHRydWUp
OwogICAgICAgIGZ1bmN0aW9uIGhhbmRsZUJlZm9yZUxvYWQoZXZlbnQpCiAgICAgICAgewogICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKGV2ZW50LnVybCArICJcbiIpKTsKICAgICAgICB9CgogICAg
ICAgIGFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBsb2FkLCBmYWxzZSk7CiAgICAgICAgZnVuY3Rp
b24gbG9hZCgpCiAgICAgICAgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IikuaW5uZXJIVE1MID0gIjxpbWcgc3JjPSdodHRwOi8vd2Via2l0Lm9yZy9pbWFnZXMv
ZG93bmxvYWQucG5nJz4iOwogICAgICAgIH0KICAgIDwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5Pgog
ICAgPGRpdiBpZD10YXJnZXQ+PC9kaXY+CiAgICA8cHJlIGlkPWNvbnNvbGU+PC9wcmU+CjwvYm9k
eT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59536</attachid>
            <date>2010-06-23 11:20:07 -0700</date>
            <delta_ts>2010-06-30 16:17:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>1750</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL05v
ZGUuY3BwCShyZXZpc2lvbiA2MTYyMSkKKysrIFdlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNjMwLDYgKzI2MzAsMTEgQEAgYm9vbCBOb2RlOjpkaXNwYXRjaEdlbmVyaWNF
dmVudChQYXNzUmVmUAogICAgIFZlY3RvcjxSZWZQdHI8Q29udGFpbmVyTm9kZT4gPiBhbmNlc3Rv
cnM7CiAgICAgZXZlbnRBbmNlc3RvcnMoYW5jZXN0b3JzKTsKIAorICAgIC8vIGJlZm9yZWxvYWQg
aXMgYWx3YXlzIG9ic2VydmFibGUgYnkgdGhlIGRvY3VtZW50LCBldmVuIGZvciBlbGVtZW50cyB0
aGF0IGFyZSBub3QgY29udGFpbmVkIGluCisgICAgLy8gdGhlIGRvY3VtZW50LgorICAgIGlmICgh
aW5Eb2N1bWVudCgpICYmIGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmJlZm9yZWxvYWRF
dmVudCkKKyAgICAgICAgYW5jZXN0b3JzLmFwcGVuZChkb2N1bWVudCgpKTsKKwogICAgIC8vIFNl
dCB1cCBhIHBvaW50ZXIgdG8gaW5kaWNhdGUgd2hldGhlciAvIHdoZXJlIHRvIGRpc3BhdGNoIHdp
bmRvdyBldmVudHMuCiAgICAgLy8gV2UgZG9uJ3QgZGlzcGF0Y2ggbG9hZCBldmVudHMgdG8gdGhl
IHdpbmRvdy4gVGhhdCBxdWlyayB3YXMgb3JpZ2luYWxseQogICAgIC8vIGFkZGVkIGJlY2F1c2Ug
TW96aWxsYSBkb2Vzbid0IHByb3BhZ2F0ZSBsb2FkIGV2ZW50cyB0byB0aGUgd2luZG93IG9iamVj
dC4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCShyZXZpc2lvbiA2MTYyMSkK
KysrIFdlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzkwLDggKzE3OTAsMTEgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0
IFNlZwogICAgIGlmIChtX25vTW9yZURhdGEgJiYgIW1faW5Xcml0ZSAmJiAhc3RhdGUubG9hZGlu
Z0V4dFNjcmlwdCgpICYmICFtX2V4ZWN1dGluZ1NjcmlwdCAmJiAhbV90aW1lci5pc0FjdGl2ZSgp
KQogICAgICAgICBlbmQoKTsgLy8gdGhpcyBhY3R1YWxseSBjYXVzZXMgdXMgdG8gYmUgZGVsZXRl
ZAogCi0gICAgLy8gQWZ0ZXIgcGFyc2luZywgZ28gYWhlYWQgYW5kIGRpc3BhdGNoIGltYWdlIGJl
Zm9yZWxvYWQgZXZlbnRzLgotICAgIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVM
b2FkRXZlbnRzKCk7CisgICAgLy8gQWZ0ZXIgcGFyc2luZywgZ28gYWhlYWQgYW5kIGRpc3BhdGNo
IGltYWdlIGJlZm9yZWxvYWQgZXZlbnRzLCBidXQgb25seSBpZiB3ZSdyZSBkb2luZworICAgIC8v
IGRvY3VtZW50IHBhcnNpbmcuICBGb3IgZG9jdW1lbnQgZnJhZ21lbnRzIHdlIHdhaXQsIHNpbmNl
IHRoZXknbGwgbGlrZWx5IGVuZCB1cCBpbiB0aGUgZG9jdW1lbnQgYnkgdGhlIHRpbWUKKyAgICAv
LyB0aGUgYmVmb3JlbG9hZCBldmVudHMgZmlyZS4KKyAgICBpZiAoIW1fZnJhZ21lbnQpCisgICAg
ICAgIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZlbnRzKCk7CiB9CiAK
IHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpzdG9wUGFyc2luZygpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60166</attachid>
            <date>2010-06-30 16:17:29 -0700</date>
            <delta_ts>2010-06-30 23:59:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40919-20100630161728.patch</filename>
            <type>text/plain</type>
            <size>5022</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjIxMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDYtMzAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MTEzMDAzPiBGaXJlIGEgYmVmb3JlbG9hZCBldmVudCBmb3IgaW1hZ2VzIGFk
ZGVkIHRvIHRoZQorICAgICAgICBET00gdXNpbmcgaW5uZXJIVE1MLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA5MTkKKworICAgICAgICBUZXN0OiBm
YXN0L2RvbS9iZWZvcmVsb2FkL2ltYWdlLWJlZm9yZS1sb2FkLWlubmVySFRNTC5odG1sCisKKyAg
ICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpkaXNwYXRjaEdl
bmVyaWNFdmVudCk6IFByb3BvZ2F0ZSBiZWZvcmVsb2FkIGV2ZW50cyB1cCB0bworICAgICAgICB0
aGUgZG9jdW1lbnQsIGV2ZW4gaWYgdGhlIG5vZGUgaXNuJ3QgeWV0IHJlYWNoYWJsZSBmcm9tIHRo
ZSBkb2N1bWVudAorICAgICAgICBlbGVtZW50LgorICAgICAgICAqIGh0bWwvTGVnYWN5SFRNTERv
Y3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUhUTUxEb2N1bWVudFBh
cnNlcjo6d3JpdGUpOiBEbyBub3QgZmlyZSBhIHN5bmNocm9ub3VzCisgICAgICAgIGJlZm9yZWxv
YWQgZXZlbnQgYWZ0ZXIgcGFyc2luZyBkb2N1bWVudCBmcmFnbWVudHMuICBUaGlzIGVuc3VyZXMK
KyAgICAgICAgZnJhZ21lbnRzIHRoYXQgYXJlIGNyZWF0ZWQgdGhlbiBpbnNlcnRlZCBpbnRvIHRo
ZSBkb2N1bWVudCBhcmUgYWN0dWFsbHkKKyAgICAgICAgaW4gdGhlIGRvY3VtZW50IHdoZW4gYmVm
b3JlbG9hZCBmaXJlcy4KKwogMjAxMC0wNi0zMCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FA
cGFyb2dhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdl
YkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL05vZGUuY3BwCShy
ZXZpc2lvbiA2MjE1NykKKysrIFdlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNjUwLDYgKzI2NTAsMTEgQEAgYm9vbCBOb2RlOjpkaXNwYXRjaEdlbmVyaWNFdmVudChQYXNz
UmVmUAogICAgIFZlY3RvcjxSZWZQdHI8Q29udGFpbmVyTm9kZT4gPiBhbmNlc3RvcnM7CiAgICAg
ZXZlbnRBbmNlc3RvcnMoYW5jZXN0b3JzKTsKIAorICAgIC8vIGJlZm9yZWxvYWQgaXMgYWx3YXlz
IG9ic2VydmFibGUgYnkgdGhlIGRvY3VtZW50LCBldmVuIGZvciBlbGVtZW50cyB0aGF0IGFyZSBu
b3QgY29udGFpbmVkIGluCisgICAgLy8gdGhlIGRvY3VtZW50LgorICAgIGlmICghaW5Eb2N1bWVu
dCgpICYmIGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmJlZm9yZWxvYWRFdmVudCkKKyAg
ICAgICAgYW5jZXN0b3JzLmFwcGVuZChkb2N1bWVudCgpKTsKKwogICAgIC8vIFNldCB1cCBhIHBv
aW50ZXIgdG8gaW5kaWNhdGUgd2hldGhlciAvIHdoZXJlIHRvIGRpc3BhdGNoIHdpbmRvdyBldmVu
dHMuCiAgICAgLy8gV2UgZG9uJ3QgZGlzcGF0Y2ggbG9hZCBldmVudHMgdG8gdGhlIHdpbmRvdy4g
VGhhdCBxdWlyayB3YXMgb3JpZ2luYWxseQogICAgIC8vIGFkZGVkIGJlY2F1c2UgTW96aWxsYSBk
b2Vzbid0IHByb3BhZ2F0ZSBsb2FkIGV2ZW50cyB0byB0aGUgd2luZG93IG9iamVjdC4KSW5kZXg6
IFdlYkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuY3BwCShyZXZpc2lvbiA2MjE1
NykKKysrIFdlYkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzg3LDggKzE3ODcsMTEgQEAgdm9pZCBMZWdhY3lIVE1MRG9jdW1lbnRQYXJz
ZXI6OndyaXRlKGNvbgogICAgIGlmIChtX25vTW9yZURhdGEgJiYgIW1faW5Xcml0ZSAmJiAhc3Rh
dGUubG9hZGluZ0V4dFNjcmlwdCgpICYmICFtX2V4ZWN1dGluZ1NjcmlwdCAmJiAhbV90aW1lci5p
c0FjdGl2ZSgpKQogICAgICAgICBlbmQoKTsgLy8gdGhpcyBhY3R1YWxseSBjYXVzZXMgdXMgdG8g
YmUgZGVsZXRlZAogCi0gICAgLy8gQWZ0ZXIgcGFyc2luZywgZ28gYWhlYWQgYW5kIGRpc3BhdGNo
IGltYWdlIGJlZm9yZWxvYWQgZXZlbnRzLgotICAgIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRp
bmdCZWZvcmVMb2FkRXZlbnRzKCk7CisgICAgLy8gQWZ0ZXIgcGFyc2luZywgZ28gYWhlYWQgYW5k
IGRpc3BhdGNoIGltYWdlIGJlZm9yZWxvYWQgZXZlbnRzLCBidXQgb25seSBpZiB3ZSdyZSBkb2lu
ZworICAgIC8vIGRvY3VtZW50IHBhcnNpbmcuICBGb3IgZG9jdW1lbnQgZnJhZ21lbnRzIHdlIHdh
aXQsIHNpbmNlIHRoZXknbGwgbGlrZWx5IGVuZCB1cCBpbiB0aGUgZG9jdW1lbnQgYnkgdGhlIHRp
bWUKKyAgICAvLyB0aGUgYmVmb3JlbG9hZCBldmVudHMgZmlyZS4KKyAgICBpZiAoIW1fZnJhZ21l
bnQpCisgICAgICAgIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZlbnRz
KCk7CiB9CiAKIHZvaWQgTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyOjppbnNlcnQoY29uc3QgU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2MjIxMikKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA2
LTMwICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKyAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxMTMwMDM+IFRl
c3QgdGhhdCBiZWZvcmVsb2FkIGZpcmVzIG9uIGltYWdlcyBpbnNlcnRlZAorICAgICAgICBpbnRv
IHRoZSBET00gdXNpbmcgaW5uZXJIVE1MLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDA5MTkKKworICAgICAgICAqIGZhc3QvZG9tL2JlZm9yZWxvYWQv
aW1hZ2UtYmVmb3JlLWxvYWQtaW5uZXJIVE1MLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vYmVmb3JlbG9hZC9pbWFnZS1iZWZvcmUtbG9hZC1pbm5lckhUTUwuaHRtbDog
QWRkZWQuCisKIDIwMTAtMDYtMzAgIEFsYmVydCBKLiBXb25nICA8YWp3b25nQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQuIENocm9taXVtOiBEaXNhYmxlIGZsYWt5IHRlc3Qu
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9iZWZvcmVsb2FkL2ltYWdlLWJlZm9yZS1sb2Fk
LWlubmVySFRNTC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vYmVmb3JlbG9hZC9pbWFnZS1iZWZvcmUtbG9hZC1pbm5lckhUTUwtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vYmVmb3JlbG9hZC9pbWFnZS1iZWZv
cmUtbG9hZC1pbm5lckhUTUwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIg
QEAKKworUEFTUwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vYmVmb3JlbG9hZC9pbWFnZS1i
ZWZvcmUtbG9hZC1pbm5lckhUTUwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9iZWZvcmVsb2FkL2ltYWdlLWJlZm9yZS1sb2FkLWlubmVySFRNTC5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vYmVmb3JlbG9hZC9pbWFnZS1iZWZvcmUtbG9h
ZC1pbm5lckhUTUwuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNSBAQAorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3ByaW50LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIGRv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZWxvYWQiLCBmdW5jdGlvbihldmVudCkgewor
ICAgICAgICAgICAgcHJpbnQoIlBBU1MiLCAiZ3JlZW4iKTsKKyAgICAgICAgICAgIGV2ZW50LnBy
ZXZlbnREZWZhdWx0KCk7CisgICAgICAgIH0sIHRydWUpOworICAgICAgICAKKyAgICAgICAgZG9j
dW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAg
ICAgICBwcmludCgiRkFJTCIsICJyZWQiKTsKKyAgICAgICAgfSwgdHJ1ZSk7CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorICAgIDxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5pbm5lckhUTUwgPSAiPGltZyBzcmM9Jy4uLy4uL2ltYWdl
cy9yZXNvdXJjZXMvdGVzdC1sb2FkLmpwZyc+IjsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60206</attachid>
            <date>2010-06-30 23:59:37 -0700</date>
            <delta_ts>2010-07-01 11:08:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40919-20100630235936.patch</filename>
            <type>text/plain</type>
            <size>4030</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjIxMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDYtMzAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MTEzMDAzPiBDb3JyZWN0bHkgZmlyZSBiZWZvcmVsb2FkIGV2ZW50cyBmb3Ig
aW1hZ2VzCisgICAgICAgIGFkZGVkIHRvIHRoZSBET00gdXNpbmcgLmlubmVySFRNTC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwOTE5CisKKyAgICAg
ICAgVGVzdDogZmFzdC9kb20vYmVmb3JlbG9hZC9pbWFnZS1iZWZvcmUtbG9hZC1pbm5lckhUTUwu
aHRtbAorCisgICAgICAgICogaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGVnYWN5SFRNTERvY3VtZW50UGFyc2VyOjp3cml0ZSk6IERvIG5vdCBm
aXJlIHN5bmNocm9ub3VzCisgICAgICAgIGltYWdlIGJlZm9yZWxvYWQgZXZlbnRzIGltbWVkaWF0
ZWx5IGFmdGVyIHBhcnNpbmcgYSBkb2N1bWVudCBmcmFnbWVudC4KKyAgICAgICAgTGV0IHRoZSBl
dmVudHMgZmlyZSBsYXRlciwgZ2l2aW5nIHRoZSBmcmFnbWVudCB0aW1lIHRvIHBvdGVudGlhbGx5
IGJlCisgICAgICAgIGluc2VydGVkIGludG8gdGhlIGRvY3VtZW50LgorCiAyMDEwLTA2LTMwICBQ
YXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxEb2N1bWVudFBh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxEb2N1bWVudFBh
cnNlci5jcHAJKHJldmlzaW9uIDYyMTU3KQorKysgV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxEb2N1
bWVudFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3ODcsOCArMTc4NywxMSBAQCB2b2lk
IExlZ2FjeUhUTUxEb2N1bWVudFBhcnNlcjo6d3JpdGUoY29uCiAgICAgaWYgKG1fbm9Nb3JlRGF0
YSAmJiAhbV9pbldyaXRlICYmICFzdGF0ZS5sb2FkaW5nRXh0U2NyaXB0KCkgJiYgIW1fZXhlY3V0
aW5nU2NyaXB0ICYmICFtX3RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIGVuZCgpOyAvLyB0aGlz
IGFjdHVhbGx5IGNhdXNlcyB1cyB0byBiZSBkZWxldGVkCiAKLSAgICAvLyBBZnRlciBwYXJzaW5n
LCBnbyBhaGVhZCBhbmQgZGlzcGF0Y2ggaW1hZ2UgYmVmb3JlbG9hZCBldmVudHMuCi0gICAgSW1h
Z2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudHMoKTsKKyAgICAvLyBBZnRl
ciBwYXJzaW5nLCBnbyBhaGVhZCBhbmQgZGlzcGF0Y2ggaW1hZ2UgYmVmb3JlbG9hZCBldmVudHMs
IGJ1dCBvbmx5IGlmIHdlJ3JlIGRvaW5nCisgICAgLy8gZG9jdW1lbnQgcGFyc2luZy4gIEZvciBk
b2N1bWVudCBmcmFnbWVudHMgd2Ugd2FpdCwgc2luY2UgdGhleSdsbCBsaWtlbHkgZW5kIHVwIGlu
IHRoZSBkb2N1bWVudCBieSB0aGUgdGltZQorICAgIC8vIHRoZSBiZWZvcmVsb2FkIGV2ZW50cyBm
aXJlLgorICAgIGlmICghbV9mcmFnbWVudCkKKyAgICAgICAgSW1hZ2VMb2FkZXI6OmRpc3BhdGNo
UGVuZGluZ0JlZm9yZUxvYWRFdmVudHMoKTsKIH0KIAogdm9pZCBMZWdhY3lIVE1MRG9jdW1lbnRQ
YXJzZXI6Omluc2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDYyMjEyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTAtMDYtMzAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorIAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODExMzAwMz4gVGVzdCB0aGF0IGJlZm9yZWxvYWQgZmlyZXMgY29ycmVjdGx5
IG9uIGltYWdlcworICAgICAgICBpbnNlcnRlZCBpbnRvIHRoZSBET00gdXNpbmcgLmlubmVySFRN
TC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwOTE5
CisKKyAgICAgICAgKiBmYXN0L2RvbS9iZWZvcmVsb2FkL2ltYWdlLWJlZm9yZS1sb2FkLWlubmVy
SFRNTC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL2JlZm9yZWxvYWQv
aW1hZ2UtYmVmb3JlLWxvYWQtaW5uZXJIVE1MLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA2LTMwICBB
bGJlcnQgSi4gV29uZyAgPGFqd29uZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90IHJldmll
d2VkLiBDaHJvbWl1bTogRGlzYWJsZSBmbGFreSB0ZXN0LgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vYmVmb3JlbG9hZC9pbWFnZS1iZWZvcmUtbG9hZC1pbm5lckhUTUwtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL2JlZm9yZWxvYWQvaW1hZ2UtYmVm
b3JlLWxvYWQtaW5uZXJIVE1MLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL2JlZm9yZWxvYWQvaW1hZ2UtYmVmb3JlLWxvYWQtaW5uZXJIVE1MLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACisKK1BBU1MKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL2JlZm9yZWxvYWQvaW1hZ2UtYmVmb3JlLWxvYWQtaW5uZXJIVE1MLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vYmVmb3JlbG9hZC9pbWFnZS1i
ZWZvcmUtbG9hZC1pbm5lckhUTUwuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL2JlZm9yZWxvYWQvaW1hZ2UtYmVmb3JlLWxvYWQtaW5uZXJIVE1MLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMjUgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wcmludC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVy
KCJiZWZvcmVsb2FkIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHByaW50KCJQQVNT
IiwgImdyZWVuIik7CisgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAg
ICB9LCB0cnVlKTsKKyAgICAgICAgCisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgcHJpbnQoIkZBSUwiLCAicmVk
Iik7CisgICAgICAgIH0sIHRydWUpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cisg
ICAgPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KyAgICA8c2NyaXB0PgorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iiku
aW5uZXJIVE1MID0gIjxpbWcgc3JjPScuLi8uLi9pbWFnZXMvcmVzb3VyY2VzL3Rlc3QtbG9hZC5q
cGcnPiI7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="47560"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>