<?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>40779</bug_id>
          
          <creation_ts>2010-06-17 08:41:38 -0700</creation_ts>
          <short_desc>[Chromium] Perf regression following landing of HTML5 parser</short_desc>
          <delta_ts>2010-06-18 12:39:20 -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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>40849</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Andrei Popescu">andreip</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>bulach</cc>
    
    <cc>chase</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>thakis</cc>
    
    <cc>tonyg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>239407</commentid>
    <comment_count>0</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-06-17 08:41:38 -0700</bug_when>
    <thetext>A new HTML 5 parser landed in WebKit in r61234:

http://trac.webkit.org/changeset/61234

This new parser was turned on in Chromium in

http://src.chromium.org/viewvc/chrome?view=rev&amp;revision=49936

Ever since that change, the Vista and OSX 10.6 perf bots started failing. The Vista bot consistently fails, while the OSX 10.6 one is flaky:

http://build.chromium.org/buildbot/waterfall/builders/Mac10.6%20Perf(1)/builds/4306
http://build.chromium.org/buildbot/waterfall/builders/Vista%20Perf%20(1)/builds/5397

See also the first regression in the following graph:

http://build.chromium.org/buildbot/perf/vista-release-dual-core/intl1/report.html?history=150&amp;rev=-1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239450</commentid>
    <comment_count>1</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-06-17 10:18:47 -0700</bug_when>
    <thetext>Adding some more data to the bug.

First, this only seems to happen on the Vista cycler (XP is fine).

Second, the regression seems to be due to a few outliers, rather than a consistent move across all runs (see below). This is a good thing as it means it is probably a bug rather than something inherently slower about the new parser.

Sample run times:
[68,65,149,41,49,60,14,183,49,139,104,114,230,140,90,224,84,70,191,38,65,69,102,209,77,53,148,137,95,28,43365,39,61398,63,129,170,98,131,38,168,85,43696,84,203,220,143,93,102,403,199,258,306,210,294,122,312,27,10,74,27,24,47,11,111,28,89,69,67,92,64,56,122,72,49,119,30,40,43,69,129,41,34,88,98,76,18,108,48,215,50,76,115,76,78,31,80,47,21389,64,149,168,115,72,60,280,140,216,214,168,214,90,231,28,10,74,28,25,44,10,112,30,90,70,68,96,63,58,123,71,45,119,28,39,40,72,132,41,34,83,97,76,18,108,48,214,52,76,118,75,75,30,79,47,79,65,147,167,117,61,60,278,137,221,203,157,206,89,227,28,11,74,28,25,43,9,112,28,90,69,67,92,64,58,122,69,45,121,28,38,40,70,131,41,34,83,122,77,17,109,48,215,51,77,117,76,77,31,79,47,79,64,148,166,114,61,60,279,135,218,199,175,206,88,229,27,10,73,28,25,44,10,111,29,90,69,70,92,66,58,125,69,45,118,28,38,40,72,130,41,35,83,121,74,18,111,29,216,52,76,116,74,76,31,81,47,79,64,148,167,114,62,60,282,139,231,205,165,206,89,229,28,10,74,28,26,44,10,113,29,90,70,68,96,65,59,123,71,59,129,28,40,41,74,133,42,35,84,97,76,19,110,29,217,53,78,117,76,76,31,80,47,80,67,149,167,114,61,60,283,139,221,207,158,209,89,228,27,13,74,29,26,45,10,113,30,91,69,68,93,63,59,125,70,46,120,27,39,40,73,130,42,37,84,123,75,18,110,47,217,52,77,117,75,76,31,79,47,80,65,150,167,115,62,60,284,139,221,204,161,207,91,231,29,12,77,29,25,44,10,117,29,90,69,69,93,64,60,124,71,46,120,29,39,43,73,132,42,35,84,97,75,18,110,49,218,52,77,118,75,76,32,81,48,80,64,148,167,119,62,61,284,140,222,203,160,208,90,231,28,12,74,29,28,44,10,113,30,92,70,69,94,64,59,125,70,46,122,28,39,41,74,131,43,35,84,98,79,18,43384,26,219,52,77,117,76,76,32,81,48,82,64,149,169,115,62,60,285,140,221,205,162,206,89,231,28,11,74,29,25,44,10,116,28,90,69,69,93,65,60,123,70,46,118,28,39,41,73,130,42,35,84,97,78,19,111,48,220,53,77,118,75,74,31,83,46,80,67,149,168,114,63,60,286,140,223,206,160,217,93,229] ms


Reference run times:
[679,87,163,46,62,68,17,207,53,154,112,113,269,144,85,259,89,101,199,72,71,66,111,234,56,36,124,105,73,22,163,56,329,64,157,148,79,148,31,144,70,82,81,215,229,153,105,104,375,204,462,328,182,451,124,269,37,13,77,31,29,53,12,117,33,102,75,74,103,64,63,127,75,55,133,32,43,43,82,150,34,34,85,85,67,15,108,25,194,54,79,95,66,68,29,72,49,73,58,146,168,107,69,66,329,124,261,227,206,205,81,201,28,13,75,29,28,48,14,109,34,93,72,72,108,66,61,133,75,49,132,31,43,43,80,153,45,39,99,136,68,20,109,26,203,56,81,115,64,69,28,71,42,72,58,150,152,99,53,56,278,146,261,222,183,251,96,235,34,13,77,31,29,49,12,108,34,103,75,74,107,66,61,125,79,54,134,32,43,43,83,153,37,33,84,84,68,15,109,31,222,50,69,120,67,76,33,80,49,93,71,162,159,120,69,62,334,124,222,188,185,196,75,211,30,12,79,32,28,50,12,116,35,102,76,74,104,65,64,126,68,52,121,29,36,37,68,127,43,41,99,133,85,24,125,31,230,55,81,95,67,66,29,72,47,74,60,147,151,101,69,65,335,119,222,201,197,216,94,220,34,12,77,29,29,49,13,116,33,91,76,78,105,69,60,129,74,51,130,56,44,43,84,159,41,32,83,85,70,22,110,46,199,55,82,121,66,70,29,72,44,74,59,152,166,125,54,57,280,134,265,222,208,225,99,237,34,10,72,27,24,43,10,109,33,103,76,76,105,67,64,125,79,50,135,27,36,37,68,128,46,40,100,136,68,15,108,50,217,55,69,124,79,77,34,80,50,87,72,166,162,99,55,55,278,153,264,223,185,220,94,235,36,14,77,27,24,44,10,117,35,104,76,75,104,64,65,128,76,53,134,27,35,38,68,128,44,41,100,136,84,24,125,31,233,55,73,86,80,76,34,82,53,90,71,169,167,99,55,58,280,116,223,202,219,202,81,195,28,13,75,30,29,47,15,119,36,96,72,73,104,68,62,132,74,50,131,32,43,44,85,152,37,32,84,84,71,20,110,25,209,49,81,114,66,70,29,73,48,73,61,151,152,104,55,57,281,121,223,195,171,194,80,216,28,10,72,27,23,45,11,109,28,103,76,75,104,67,65,126,77,50,134,32,44,44,85,148,37,33,85,86,68,15,122,38,242,56,70,125,82,77,34,81,51,87,72,163,144,119,55,55,280,150,265,229,168,218,95,236] ms

Notice that in the reference run, all times are 3 digits. In the sample run, most times seem to line up with the occasional 5 digit time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239533</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-17 12:46:27 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Ever since that change, the Vista and OSX 10.6 perf bots started failing. The Vista bot consistently fails, while the OSX 10.6 one is flaky:
&gt; 
&gt; http://build.chromium.org/buildbot/waterfall/builders/Mac10.6%20Perf(1)/builds/4306

http://build.chromium.org/buildbot/perf/mac-release-10.6/morejs/report.html?history=150&amp;rev=50051

http://build.chromium.org/buildbot/perf/mac-release-10.6/moz/report.html?history=150&amp;rev=50051

It&apos;s hard to see a regression on these charts, but maybe I&apos;m not great at reading them.

&gt; http://build.chromium.org/buildbot/waterfall/builders/Vista%20Perf%20(1)/builds/5397

Similarly,

http://build.chromium.org/buildbot/perf/vista-release-dual-core/morejs/report.html?history=100&amp;rev=-1

However, intl1 clearly shows something wacky going on:

http://build.chromium.org/buildbot/perf/vista-release-dual-core/intl1/report.html?history=100&amp;rev=-1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239543</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-17 13:10:31 -0700</bug_when>
    <thetext>&gt; Notice that in the reference run, all times are 3 digits. In the sample run, most times seem to line up with the occasional 5 digit time.

Does that correspond to individual pages that we&apos;re bad at?

@tonyg, would you be willing to investigate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239545</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-06-17 13:12:33 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; Notice that in the reference run, all times are 3 digits. In the sample run, most times seem to line up with the occasional 5 digit time.
&gt; 
&gt; Does that correspond to individual pages that we&apos;re bad at?

I talked to chase about this. He was unclear if they should line up or not.

One strange thing is that the number of times is not evenly divisible by the number of urls.

&gt; 
&gt; @tonyg, would you be willing to investigate?

I&apos;m trying to investigate now, but haven&apos;t gotten any solid leads yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239557</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-06-17 13:37:25 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; &gt; Notice that in the reference run, all times are 3 digits. In the sample run, most times seem to line up with the occasional 5 digit time.
&gt; &gt; 
&gt; &gt; Does that correspond to individual pages that we&apos;re bad at?
&gt; 
&gt; I talked to chase about this. He was unclear if they should line up or not.
&gt; 
&gt; One strange thing is that the number of times is not evenly divisible by the number of urls.
&gt; 
&gt; &gt; 
&gt; &gt; @tonyg, would you be willing to investigate?
&gt; 
&gt; I&apos;m trying to investigate now, but haven&apos;t gotten any solid leads yet.

Finally have a solid local repro.

Our local versions of news.163.com and sport24.gr will repro consistently.

I&apos;m still determining where/how we stall.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239577</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-06-17 14:24:29 -0700</bug_when>
    <thetext>I&apos;ve got a test case now. It looks like the bug is caused by an external resource inside a &lt;noscript&gt; tag.

In some of our page cyclers, the paths for resources loaded inside a &lt;noscript&gt; were not re-written to be on the local file system (which is fine). I&apos;m guessing the old preload scanner skipped &lt;noscript&gt; tags whereas the new does not. If so, I&apos;ll put together a patch to make the new preload scanner skip &lt;noscript&gt;s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239602</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-17 15:26:43 -0700</bug_when>
    <thetext>You can put the lexer into the RCDATA state to make it eat everything in the &lt;noscript&gt; tag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239611</commentid>
    <comment_count>8</comment_count>
      <attachid>59042</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-06-17 15:56:43 -0700</bug_when>
    <thetext>Created attachment 59042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239614</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-17 16:02:08 -0700</bug_when>
    <thetext>I see.  We&apos;re wrong both before and after this patch, we&apos;re just changing it to be the most usual case...  Maybe we should just fix the bug?  We need to know whether scripts are enabled to decide whether noscript should enter that state.  (I think frames should always enter because we don&apos;t have a way to disable frames.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239639</commentid>
    <comment_count>10</comment_count>
      <attachid>59047</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-06-17 16:52:02 -0700</bug_when>
    <thetext>Created attachment 59047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239644</commentid>
    <comment_count>11</comment_count>
      <attachid>59047</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-17 16:56:27 -0700</bug_when>
    <thetext>Comment on attachment 59047
Patch

WebCore/html/HTML5TreeBuilder.h:86
 +      static bool isScriptingFlagEnabled(Frame* frame);
No need for the argument name.

WebCore/html/HTML5TreeBuilder.cpp:142
 +      if (tagName == styleTag || tagName == iframeTag || tagName == xmpTag || tagName == noembedTag || tagName == noframesTag || (tagName == noscriptTag &amp;&amp; isScriptingFlagEnabled(frame)))
Can we wrap this line? :)

Looks good to me.  I&apos;d like Adam to look too to make sure scriptController-&gt;canExecuteScripts(NotAboutToExecuteScript) is the right flavor of &quot;can we script now&quot; call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239656</commentid>
    <comment_count>12</comment_count>
      <attachid>59049</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-06-17 17:04:09 -0700</bug_when>
    <thetext>Created attachment 59049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239672</commentid>
    <comment_count>13</comment_count>
      <attachid>59049</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-17 17:25:59 -0700</bug_when>
    <thetext>Comment on attachment 59049
Patch

You didn&apos;t remove the &quot;frame&quot; argument, but it&apos;s not a big deal. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239731</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-17 20:40:54 -0700</bug_when>
    <thetext>Committed r61372: &lt;http://trac.webkit.org/changeset/61372&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240026</commentid>
    <comment_count>15</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-06-18 10:46:37 -0700</bug_when>
    <thetext>I&apos;d like to create a subsequent patch with a LayoutTest for this. The case is something like:

&lt;script src=&quot;slow-script-to-pause-parser-long-enough-for-preload-scanner.js&quot;&gt;&lt;/script&gt;
&lt;noscript&gt;
    &lt;img src=&quot;existent-image.png&quot; onload=&quot;failTest()&quot;&gt;
&lt;/noscript&gt;

However, the PreloadScanner (correctly) doesn&apos;t trigger onload for the image. So I need another way to determine if the image was fetched (not loaded). Is that possible in a LayoutTest? Any suggestions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240029</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-18 10:49:54 -0700</bug_when>
    <thetext>&gt; However, the PreloadScanner (correctly) doesn&apos;t trigger onload for the image. So I need another way to determine if the image was fetched (not loaded). Is that possible in a LayoutTest? Any suggestions?

Yes!  Eric and I found a way to test the preloader:

http://trac.webkit.org/browser/trunk/LayoutTests/fast/preloader</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59042</attachid>
            <date>2010-06-17 15:56:43 -0700</date>
            <delta_ts>2010-06-17 16:51:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40779-20100617155641.patch</filename>
            <type>text/plain</type>
            <size>1727</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjI0NzBjZWE3MDlmNzM5MmY5NTY2YjgyOTRjMDUwOGU5ZDNlMjA1Ny4uYzFlZjAyZTNkODgyYmNi
MmNhNWU2MjdlN2IwNTY1YmE1MzU5MjFiZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNi0xNyAgVG9u
eSBHZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZlbnQgSFRNTDVQcmVsb2FkU2Nhbm5lciBm
cm9tIGxvYWRpbmcgcmVzb3VyY2VzIGluIDxub3NjcmlwdD4gdGFncy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNzc5CisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLiBXaWxsIGNyZWF0ZSBhIGxheW91dCB0ZXN0IGluIGEgc3Vic2VxdWVudCBwYXRjaC4K
KworICAgICAgICAqIGh0bWwvSFRNTDVUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MNVRyZWVCdWlsZGVyOjphZGp1c3RlZExleGVyU3RhdGUpOgorCiAyMDEwLTA2LTE3ICBL
ZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
aW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRl
ci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5jcHAKaW5kZXggMmQzYWZiMjIz
NmIzYTNjMDk0NTljOTQ1NGFjNDA4MDA5NTRlMGU2NC4uMmIzOGNkMzMzNmI2NjQ0ZjRiMzBiNWJj
ODI4MTg3MDY4ODZjNzRiNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1aWxk
ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmNwcApAQCAtMTM3LDEw
ICsxMzcsOSBAQCBIVE1MNUxleGVyOjpTdGF0ZSBIVE1MNVRyZWVCdWlsZGVyOjphZGp1c3RlZExl
eGVyU3RhdGUoSFRNTDVMZXhlcjo6U3RhdGUgc3RhdGUsCiAgICAgaWYgKHRhZ05hbWUgPT0gdGV4
dGFyZWFUYWcgfHwgdGFnTmFtZSA9PSB0aXRsZVRhZykKICAgICAgICAgcmV0dXJuIEhUTUw1TGV4
ZXI6OlJDREFUQVN0YXRlOwogCi0gICAgaWYgKHRhZ05hbWUgPT0gc3R5bGVUYWcgfHwgdGFnTmFt
ZSA9PSBpZnJhbWVUYWcgfHwgdGFnTmFtZSA9PSB4bXBUYWcgfHwgdGFnTmFtZSA9PSBub2VtYmVk
VGFnKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBub3NjcmlwdCBhbmQgbm9mcmFtZXMgbWF5IGNvbmRp
dGlvbmFsbHkgZW50ZXIgdGhpcyBzdGF0ZSBhcyB3ZWxsLgorICAgIC8vIEZJWE1FOiBub3Njcmlw
dCBhbmQgbm9mcmFtZXMgc2hvdWxkIG9ubHkgZW50ZXIgdGhpcyBzdGF0ZSBpZiB0aGUgc2NyaXB0
aW5nIGZsYWcgaXMgZW5hYmxlZC4KKyAgICBpZiAodGFnTmFtZSA9PSBzdHlsZVRhZyB8fCB0YWdO
YW1lID09IGlmcmFtZVRhZyB8fCB0YWdOYW1lID09IHhtcFRhZyB8fCB0YWdOYW1lID09IG5vZW1i
ZWRUYWcgfHwgdGFnTmFtZSA9PSBub3NjcmlwdFRhZyB8fCB0YWdOYW1lID09IG5vZnJhbWVzVGFn
KQogICAgICAgICByZXR1cm4gSFRNTDVMZXhlcjo6UkFXVEVYVFN0YXRlOwotICAgIH0KIAogICAg
IGlmICh0YWdOYW1lID09IHBsYWludGV4dFRhZykKICAgICAgICAgcmV0dXJuIEhUTUw1TGV4ZXI6
OlBMQUlOVEVYVFN0YXRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59047</attachid>
            <date>2010-06-17 16:52:02 -0700</date>
            <delta_ts>2010-06-17 17:04:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40779-20100617165201.patch</filename>
            <type>text/plain</type>
            <size>5320</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjI0NzBjZWE3MDlmNzM5MmY5NTY2YjgyOTRjMDUwOGU5ZDNlMjA1Ny4uMmJhNDI1YzMyYzZlNTAw
MjFhZDBkZmQ2NTAzYWJiN2NiMmM4ZGM1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNi0xNyAgVG9u
eSBHZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZlbnQgSFRNTDVQcmVsb2FkU2Nhbm5lciBm
cm9tIGxvYWRpbmcgcmVzb3VyY2VzIGluIDxub3NjcmlwdD4gdGFncy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNzc5CisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLiBXaWxsIGNyZWF0ZSBhIGxheW91dCB0ZXN0IGluIGEgc3Vic2VxdWVudCBwYXRjaC4K
KworICAgICAgICAqIGh0bWwvSFRNTDVQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MNVByZWxvYWRTY2FubmVyOjpwcm9jZXNzVG9rZW4pOgorICAgICAgICAqIGh0bWwv
SFRNTDVUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRyZWVCdWlsZGVy
OjphZGp1c3RlZExleGVyU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVUcmVlQnVpbGRl
cjo6cGFzc1Rva2VuVG9MZWdhY3lQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVUcmVl
QnVpbGRlcjo6aXNTY3JpcHRpbmdGbGFnRW5hYmxlZCk6CisgICAgICAgICogaHRtbC9IVE1MNVRy
ZWVCdWlsZGVyLmg6CisKIDIwMTAtMDYtMTcgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MNVByZWxvYWRTY2FubmVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1M
NVByZWxvYWRTY2FubmVyLmNwcAppbmRleCAwZmRjOGYzMDljM2RmNDhkNjNlZWQ4MTQ4ZjlmODBl
Y2Q5NzliMjMxLi5hMTE0YTFiZTczNGE5NzIxOWIzZTk2Y2RhMGQzZTc4MmRiMDJlNjAxIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVQcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvV2ViQ29y
ZS9odG1sL0hUTUw1UHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBI
VE1MNVByZWxvYWRTY2FubmVyOjpwcm9jZXNzVG9rZW4oKQogICAgICAgICByZXR1cm47CiAKICAg
ICBQcmVsb2FkVGFzayB0YXNrKG1fdG9rZW4pOwotICAgIG1fbGV4ZXIuc2V0U3RhdGUoSFRNTDVU
cmVlQnVpbGRlcjo6YWRqdXN0ZWRMZXhlclN0YXRlKG1fbGV4ZXIuc3RhdGUoKSwgdGFzay50YWdO
YW1lKCkpKTsKKyAgICBtX2xleGVyLnNldFN0YXRlKEhUTUw1VHJlZUJ1aWxkZXI6OmFkanVzdGVk
TGV4ZXJTdGF0ZShtX2xleGVyLnN0YXRlKCksIHRhc2sudGFnTmFtZSgpLCBtX2RvY3VtZW50LT5m
cmFtZSgpKSk7CiAKICAgICBpZiAodGFzay50YWdOYW1lKCkgPT0gYm9keVRhZykKICAgICAgICAg
bV9ib2R5U2VlbiA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVp
bGRlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5jcHAKaW5kZXggMmQzYWZi
MjIzNmIzYTNjMDk0NTljOTQ1NGFjNDA4MDA5NTRlMGU2NC4uN2FmZmQ2N2E1OWQwZTliODIwODA2
MjllMDhiY2FhNzQ4YjdmYzE3MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1
aWxkZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmNwcApAQCAtMjcs
NiArMjcsNyBAQAogI2luY2x1ZGUgIkhUTUw1VHJlZUJ1aWxkZXIuaCIKIAogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUw1TGV4ZXIuaCIKICNp
bmNsdWRlICJIVE1MNVRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCkBAIC0zNCw2
ICszNSw3IEBACiAjaW5jbHVkZSAiTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3Rvci5oIgogI2luY2x1
ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisj
aW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMzIsMTUgKzEzNCwxMyBAQCBQYXNzUmVmUHRy
PEVsZW1lbnQ+IEhUTUw1VHJlZUJ1aWxkZXI6OnRha2VTY3JpcHRUb1Byb2Nlc3MoaW50JiBzY3Jp
cHRTdGFydExpbmUpCiAgICAgcmV0dXJuIG1fc2NyaXB0VG9Qcm9jZXNzLnJlbGVhc2UoKTsKIH0K
IAotSFRNTDVMZXhlcjo6U3RhdGUgSFRNTDVUcmVlQnVpbGRlcjo6YWRqdXN0ZWRMZXhlclN0YXRl
KEhUTUw1TGV4ZXI6OlN0YXRlIHN0YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIHRhZ05hbWUpCitI
VE1MNUxleGVyOjpTdGF0ZSBIVE1MNVRyZWVCdWlsZGVyOjphZGp1c3RlZExleGVyU3RhdGUoSFRN
TDVMZXhlcjo6U3RhdGUgc3RhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFtZSwgRnJhbWUq
IGZyYW1lKQogewogICAgIGlmICh0YWdOYW1lID09IHRleHRhcmVhVGFnIHx8IHRhZ05hbWUgPT0g
dGl0bGVUYWcpCiAgICAgICAgIHJldHVybiBIVE1MNUxleGVyOjpSQ0RBVEFTdGF0ZTsKIAotICAg
IGlmICh0YWdOYW1lID09IHN0eWxlVGFnIHx8IHRhZ05hbWUgPT0gaWZyYW1lVGFnIHx8IHRhZ05h
bWUgPT0geG1wVGFnIHx8IHRhZ05hbWUgPT0gbm9lbWJlZFRhZykgewotICAgICAgICAvLyBGSVhN
RTogbm9zY3JpcHQgYW5kIG5vZnJhbWVzIG1heSBjb25kaXRpb25hbGx5IGVudGVyIHRoaXMgc3Rh
dGUgYXMgd2VsbC4KKyAgICBpZiAodGFnTmFtZSA9PSBzdHlsZVRhZyB8fCB0YWdOYW1lID09IGlm
cmFtZVRhZyB8fCB0YWdOYW1lID09IHhtcFRhZyB8fCB0YWdOYW1lID09IG5vZW1iZWRUYWcgfHwg
dGFnTmFtZSA9PSBub2ZyYW1lc1RhZyB8fCAodGFnTmFtZSA9PSBub3NjcmlwdFRhZyAmJiBpc1Nj
cmlwdGluZ0ZsYWdFbmFibGVkKGZyYW1lKSkpCiAgICAgICAgIHJldHVybiBIVE1MNUxleGVyOjpS
QVdURVhUU3RhdGU7Ci0gICAgfQogCiAgICAgaWYgKHRhZ05hbWUgPT0gcGxhaW50ZXh0VGFnKQog
ICAgICAgICByZXR1cm4gSFRNTDVMZXhlcjo6UExBSU5URVhUU3RhdGU7CkBAIC0xNzYsNyArMTc2
LDcgQEAgUGFzc1JlZlB0cjxOb2RlPiBIVE1MNVRyZWVCdWlsZGVyOjpwYXNzVG9rZW5Ub0xlZ2Fj
eVBhcnNlcihIVE1MNVRva2VuJiB0b2tlbikKICAgICAgICAgfSBlbHNlIGlmIChvbGRTdHlsZVRv
a2VuLnRhZ05hbWUgPT0gcHJlVGFnIHx8IG9sZFN0eWxlVG9rZW4udGFnTmFtZSA9PSBsaXN0aW5n
VGFnKQogICAgICAgICAgICAgbV9sZXhlci0+c2tpcExlYWRpbmdOZXdMaW5lRm9yTGlzdGluZygp
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2xleGVyLT5zZXRTdGF0ZShhZGp1c3RlZExl
eGVyU3RhdGUobV9sZXhlci0+c3RhdGUoKSwgb2xkU3R5bGVUb2tlbi50YWdOYW1lKSk7CisgICAg
ICAgICAgICBtX2xleGVyLT5zZXRTdGF0ZShhZGp1c3RlZExleGVyU3RhdGUobV9sZXhlci0+c3Rh
dGUoKSwgb2xkU3R5bGVUb2tlbi50YWdOYW1lLCBtX2RvY3VtZW50LT5mcmFtZSgpKSk7CiAgICAg
fSBlbHNlIGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTDVUb2tlbjo6RW5kVGFnKSB7CiAgICAgICAg
IGlmIChvbGRTdHlsZVRva2VuLnRhZ05hbWUgPT0gc2NyaXB0VGFnICYmIGluc2VydGlvbk1vZGUo
KSAhPSBBZnRlckZyYW1lc2V0KSB7CiAgICAgICAgICAgICBpZiAobV9sYXN0U2NyaXB0RWxlbWVu
dCkgewpAQCAtMjI2LDQgKzIyNiwxMyBAQCB2b2lkIEhUTUw1VHJlZUJ1aWxkZXI6OmZpbmlzaGVk
KCkKICAgICBtX2xlZ2FjeVRyZWVDb25zdHJ1Y3Rvci0+ZmluaXNoZWQoKTsKIH0KIAorYm9vbCBI
VE1MNVRyZWVCdWlsZGVyOjppc1NjcmlwdGluZ0ZsYWdFbmFibGVkKEZyYW1lKiBmcmFtZSkKK3sK
KyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKFNjcmlwdENv
bnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXIgPSBmcmFtZS0+c2NyaXB0KCkpCisgICAgICAgIHJl
dHVybiBzY3JpcHRDb250cm9sbGVyLT5jYW5FeGVjdXRlU2NyaXB0cyhOb3RBYm91dFRvRXhlY3V0
ZVNjcmlwdCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTDVUcmVlQnVpbGRlci5oIGIvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1aWxkZXIu
aAppbmRleCBiYjIyMzIzNDI2ODYwYzM0MWZhNWVhNWFiM2VhOGFkMGEyNzE0NTMxLi4wODM5NmEw
ZmRmYTAwZGM2OWNlMGZkMmE4YjgzYzIwMmNjM2ViYzQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvSFRNTDVUcmVlQnVpbGRlci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVy
LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIC8vIERvbmUsIGNsb3NlIGFueSBvcGVu
IHRhZ3MsIGV0Yy4KICAgICB2b2lkIGZpbmlzaGVkKCk7CiAKLSAgICBzdGF0aWMgSFRNTDVMZXhl
cjo6U3RhdGUgYWRqdXN0ZWRMZXhlclN0YXRlKEhUTUw1TGV4ZXI6OlN0YXRlLCBjb25zdCBBdG9t
aWNTdHJpbmcmIHRhZ05hbWUpOworICAgIHN0YXRpYyBIVE1MNUxleGVyOjpTdGF0ZSBhZGp1c3Rl
ZExleGVyU3RhdGUoSFRNTDVMZXhlcjo6U3RhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFt
ZSwgRnJhbWUqIGZyYW1lKTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgZGlydHksIHJvdHRl
biBoYWNrIHRvIGtlZXAgSFRNTEZvcm1Db250cm9sRWxlbWVudCBoYXBweQogICAgIC8vIHVudGls
IHdlIHN0b3AgdXNpbmcgdGhlIGxlZ2FjeSBwYXJzZXIuIERPIE5PVCBDQUxMIFRISVMgTUVUSE9E
LgpAQCAtODMsNiArODMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0SW5zZXJ0aW9uTW9kZShJ
bnNlcnRpb25Nb2RlIHZhbHVlKSB7IG1faW5zZXJ0aW9uTW9kZSA9IHZhbHVlOyB9CiAgICAgSW5z
ZXJ0aW9uTW9kZSBpbnNlcnRpb25Nb2RlKCkgY29uc3QgeyByZXR1cm4gbV9pbnNlcnRpb25Nb2Rl
OyB9CiAKKyAgICBzdGF0aWMgYm9vbCBpc1NjcmlwdGluZ0ZsYWdFbmFibGVkKEZyYW1lKiBmcmFt
ZSk7CisKICAgICBEb2N1bWVudCogbV9kb2N1bWVudDsgLy8gVGhpcyBpcyBvbmx5IHVzZWQgYnkg
dGhlIG1fbGVnYWN5UGFyc2VyIGZvciBub3cuCiAgICAgYm9vbCBtX3JlcG9ydEVycm9yczsKICAg
ICBib29sIG1faXNQYXVzZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59049</attachid>
            <date>2010-06-17 17:04:09 -0700</date>
            <delta_ts>2010-06-17 17:25:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40779-20100617170408.patch</filename>
            <type>text/plain</type>
            <size>5323</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjI0NzBjZWE3MDlmNzM5MmY5NTY2YjgyOTRjMDUwOGU5ZDNlMjA1Ny4uMmJhNDI1YzMyYzZlNTAw
MjFhZDBkZmQ2NTAzYWJiN2NiMmM4ZGM1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNi0xNyAgVG9u
eSBHZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZlbnQgSFRNTDVQcmVsb2FkU2Nhbm5lciBm
cm9tIGxvYWRpbmcgcmVzb3VyY2VzIGluIDxub3NjcmlwdD4gdGFncy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNzc5CisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLiBXaWxsIGNyZWF0ZSBhIGxheW91dCB0ZXN0IGluIGEgc3Vic2VxdWVudCBwYXRjaC4K
KworICAgICAgICAqIGh0bWwvSFRNTDVQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MNVByZWxvYWRTY2FubmVyOjpwcm9jZXNzVG9rZW4pOgorICAgICAgICAqIGh0bWwv
SFRNTDVUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRyZWVCdWlsZGVy
OjphZGp1c3RlZExleGVyU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVUcmVlQnVpbGRl
cjo6cGFzc1Rva2VuVG9MZWdhY3lQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVUcmVl
QnVpbGRlcjo6aXNTY3JpcHRpbmdGbGFnRW5hYmxlZCk6CisgICAgICAgICogaHRtbC9IVE1MNVRy
ZWVCdWlsZGVyLmg6CisKIDIwMTAtMDYtMTcgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MNVByZWxvYWRTY2FubmVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1M
NVByZWxvYWRTY2FubmVyLmNwcAppbmRleCAwZmRjOGYzMDljM2RmNDhkNjNlZWQ4MTQ4ZjlmODBl
Y2Q5NzliMjMxLi5hMTE0YTFiZTczNGE5NzIxOWIzZTk2Y2RhMGQzZTc4MmRiMDJlNjAxIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVQcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvV2ViQ29y
ZS9odG1sL0hUTUw1UHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBI
VE1MNVByZWxvYWRTY2FubmVyOjpwcm9jZXNzVG9rZW4oKQogICAgICAgICByZXR1cm47CiAKICAg
ICBQcmVsb2FkVGFzayB0YXNrKG1fdG9rZW4pOwotICAgIG1fbGV4ZXIuc2V0U3RhdGUoSFRNTDVU
cmVlQnVpbGRlcjo6YWRqdXN0ZWRMZXhlclN0YXRlKG1fbGV4ZXIuc3RhdGUoKSwgdGFzay50YWdO
YW1lKCkpKTsKKyAgICBtX2xleGVyLnNldFN0YXRlKEhUTUw1VHJlZUJ1aWxkZXI6OmFkanVzdGVk
TGV4ZXJTdGF0ZShtX2xleGVyLnN0YXRlKCksIHRhc2sudGFnTmFtZSgpLCBtX2RvY3VtZW50LT5m
cmFtZSgpKSk7CiAKICAgICBpZiAodGFzay50YWdOYW1lKCkgPT0gYm9keVRhZykKICAgICAgICAg
bV9ib2R5U2VlbiA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVp
bGRlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5jcHAKaW5kZXggMmQzYWZi
MjIzNmIzYTNjMDk0NTljOTQ1NGFjNDA4MDA5NTRlMGU2NC4uMzMyMDM5MzRjMTYwZmNjNmJkYWNk
MDg4ZjA1ODgyYTRjMGM2MzZhZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1
aWxkZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmNwcApAQCAtMjcs
NiArMjcsNyBAQAogI2luY2x1ZGUgIkhUTUw1VHJlZUJ1aWxkZXIuaCIKIAogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUw1TGV4ZXIuaCIKICNp
bmNsdWRlICJIVE1MNVRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCkBAIC0zNCw2
ICszNSw3IEBACiAjaW5jbHVkZSAiTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3Rvci5oIgogI2luY2x1
ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisj
aW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMzIsMTUgKzEzNCwxNCBAQCBQYXNzUmVmUHRy
PEVsZW1lbnQ+IEhUTUw1VHJlZUJ1aWxkZXI6OnRha2VTY3JpcHRUb1Byb2Nlc3MoaW50JiBzY3Jp
cHRTdGFydExpbmUpCiAgICAgcmV0dXJuIG1fc2NyaXB0VG9Qcm9jZXNzLnJlbGVhc2UoKTsKIH0K
IAotSFRNTDVMZXhlcjo6U3RhdGUgSFRNTDVUcmVlQnVpbGRlcjo6YWRqdXN0ZWRMZXhlclN0YXRl
KEhUTUw1TGV4ZXI6OlN0YXRlIHN0YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIHRhZ05hbWUpCitI
VE1MNUxleGVyOjpTdGF0ZSBIVE1MNVRyZWVCdWlsZGVyOjphZGp1c3RlZExleGVyU3RhdGUoSFRN
TDVMZXhlcjo6U3RhdGUgc3RhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFtZSwgRnJhbWUq
IGZyYW1lKQogewogICAgIGlmICh0YWdOYW1lID09IHRleHRhcmVhVGFnIHx8IHRhZ05hbWUgPT0g
dGl0bGVUYWcpCiAgICAgICAgIHJldHVybiBIVE1MNUxleGVyOjpSQ0RBVEFTdGF0ZTsKIAotICAg
IGlmICh0YWdOYW1lID09IHN0eWxlVGFnIHx8IHRhZ05hbWUgPT0gaWZyYW1lVGFnIHx8IHRhZ05h
bWUgPT0geG1wVGFnIHx8IHRhZ05hbWUgPT0gbm9lbWJlZFRhZykgewotICAgICAgICAvLyBGSVhN
RTogbm9zY3JpcHQgYW5kIG5vZnJhbWVzIG1heSBjb25kaXRpb25hbGx5IGVudGVyIHRoaXMgc3Rh
dGUgYXMgd2VsbC4KKyAgICBpZiAodGFnTmFtZSA9PSBzdHlsZVRhZyB8fCB0YWdOYW1lID09IGlm
cmFtZVRhZyB8fCB0YWdOYW1lID09IHhtcFRhZyB8fCB0YWdOYW1lID09IG5vZW1iZWRUYWcKKyAg
ICAgICAgfHwgdGFnTmFtZSA9PSBub2ZyYW1lc1RhZyB8fCAodGFnTmFtZSA9PSBub3NjcmlwdFRh
ZyAmJiBpc1NjcmlwdGluZ0ZsYWdFbmFibGVkKGZyYW1lKSkpCiAgICAgICAgIHJldHVybiBIVE1M
NUxleGVyOjpSQVdURVhUU3RhdGU7Ci0gICAgfQogCiAgICAgaWYgKHRhZ05hbWUgPT0gcGxhaW50
ZXh0VGFnKQogICAgICAgICByZXR1cm4gSFRNTDVMZXhlcjo6UExBSU5URVhUU3RhdGU7CkBAIC0x
NzYsNyArMTc3LDcgQEAgUGFzc1JlZlB0cjxOb2RlPiBIVE1MNVRyZWVCdWlsZGVyOjpwYXNzVG9r
ZW5Ub0xlZ2FjeVBhcnNlcihIVE1MNVRva2VuJiB0b2tlbikKICAgICAgICAgfSBlbHNlIGlmIChv
bGRTdHlsZVRva2VuLnRhZ05hbWUgPT0gcHJlVGFnIHx8IG9sZFN0eWxlVG9rZW4udGFnTmFtZSA9
PSBsaXN0aW5nVGFnKQogICAgICAgICAgICAgbV9sZXhlci0+c2tpcExlYWRpbmdOZXdMaW5lRm9y
TGlzdGluZygpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2xleGVyLT5zZXRTdGF0ZShh
ZGp1c3RlZExleGVyU3RhdGUobV9sZXhlci0+c3RhdGUoKSwgb2xkU3R5bGVUb2tlbi50YWdOYW1l
KSk7CisgICAgICAgICAgICBtX2xleGVyLT5zZXRTdGF0ZShhZGp1c3RlZExleGVyU3RhdGUobV9s
ZXhlci0+c3RhdGUoKSwgb2xkU3R5bGVUb2tlbi50YWdOYW1lLCBtX2RvY3VtZW50LT5mcmFtZSgp
KSk7CiAgICAgfSBlbHNlIGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTDVUb2tlbjo6RW5kVGFnKSB7
CiAgICAgICAgIGlmIChvbGRTdHlsZVRva2VuLnRhZ05hbWUgPT0gc2NyaXB0VGFnICYmIGluc2Vy
dGlvbk1vZGUoKSAhPSBBZnRlckZyYW1lc2V0KSB7CiAgICAgICAgICAgICBpZiAobV9sYXN0U2Ny
aXB0RWxlbWVudCkgewpAQCAtMjI2LDQgKzIyNywxMyBAQCB2b2lkIEhUTUw1VHJlZUJ1aWxkZXI6
OmZpbmlzaGVkKCkKICAgICBtX2xlZ2FjeVRyZWVDb25zdHJ1Y3Rvci0+ZmluaXNoZWQoKTsKIH0K
IAorYm9vbCBIVE1MNVRyZWVCdWlsZGVyOjppc1NjcmlwdGluZ0ZsYWdFbmFibGVkKEZyYW1lKiBm
cmFtZSkKK3sKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXIgPSBmcmFtZS0+c2NyaXB0KCkpCisg
ICAgICAgIHJldHVybiBzY3JpcHRDb250cm9sbGVyLT5jYW5FeGVjdXRlU2NyaXB0cyhOb3RBYm91
dFRvRXhlY3V0ZVNjcmlwdCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5oIGIvV2ViQ29yZS9odG1sL0hUTUw1VHJl
ZUJ1aWxkZXIuaAppbmRleCBiYjIyMzIzNDI2ODYwYzM0MWZhNWVhNWFiM2VhOGFkMGEyNzE0NTMx
Li5iYjI2YWQzNWI3Nzk4ZTdmYWYyMmE5OTY4MDBkYWE2Yzk4NGU3ZTIxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNVRy
ZWVCdWlsZGVyLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIC8vIERvbmUsIGNsb3Nl
IGFueSBvcGVuIHRhZ3MsIGV0Yy4KICAgICB2b2lkIGZpbmlzaGVkKCk7CiAKLSAgICBzdGF0aWMg
SFRNTDVMZXhlcjo6U3RhdGUgYWRqdXN0ZWRMZXhlclN0YXRlKEhUTUw1TGV4ZXI6OlN0YXRlLCBj
b25zdCBBdG9taWNTdHJpbmcmIHRhZ05hbWUpOworICAgIHN0YXRpYyBIVE1MNUxleGVyOjpTdGF0
ZSBhZGp1c3RlZExleGVyU3RhdGUoSFRNTDVMZXhlcjo6U3RhdGUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdGFnTmFtZSwgRnJhbWUqKTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgZGlydHksIHJv
dHRlbiBoYWNrIHRvIGtlZXAgSFRNTEZvcm1Db250cm9sRWxlbWVudCBoYXBweQogICAgIC8vIHVu
dGlsIHdlIHN0b3AgdXNpbmcgdGhlIGxlZ2FjeSBwYXJzZXIuIERPIE5PVCBDQUxMIFRISVMgTUVU
SE9ELgpAQCAtODMsNiArODMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0SW5zZXJ0aW9uTW9k
ZShJbnNlcnRpb25Nb2RlIHZhbHVlKSB7IG1faW5zZXJ0aW9uTW9kZSA9IHZhbHVlOyB9CiAgICAg
SW5zZXJ0aW9uTW9kZSBpbnNlcnRpb25Nb2RlKCkgY29uc3QgeyByZXR1cm4gbV9pbnNlcnRpb25N
b2RlOyB9CiAKKyAgICBzdGF0aWMgYm9vbCBpc1NjcmlwdGluZ0ZsYWdFbmFibGVkKEZyYW1lKiBm
cmFtZSk7CisKICAgICBEb2N1bWVudCogbV9kb2N1bWVudDsgLy8gVGhpcyBpcyBvbmx5IHVzZWQg
YnkgdGhlIG1fbGVnYWN5UGFyc2VyIGZvciBub3cuCiAgICAgYm9vbCBtX3JlcG9ydEVycm9yczsK
ICAgICBib29sIG1faXNQYXVzZWQ7Cg==
</data>
<flag name="review"
          id="45655"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="45660"
          type_id="3"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>