<?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>30535</bug_id>
          
          <creation_ts>2009-10-19 14:17:40 -0700</creation_ts>
          <short_desc>Storage events should use Document::url() rather than documentURI()</short_desc>
          <delta_ts>2009-10-26 13:12:15 -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>New Bugs</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>30640</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>fishd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>155895</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-10-19 14:17:40 -0700</bug_when>
    <thetext>Storage events should use Document::url() rather than Document::documentURI() per http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-October/023703.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155943</commentid>
    <comment_count>1</comment_count>
      <attachid>41458</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-10-19 15:14:31 -0700</bug_when>
    <thetext>Created attachment 41458
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155948</commentid>
    <comment_count>2</comment_count>
      <attachid>41459</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-10-19 15:18:00 -0700</bug_when>
    <thetext>Created attachment 41459
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155999</commentid>
    <comment_count>3</comment_count>
      <attachid>41459</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-19 17:27:52 -0700</bug_when>
    <thetext>Comment on attachment 41459
Patch v1

Patch looks fine, but there are no expected results.

&gt; Index: LayoutTests/fast/js/resources/js-test-pre.js
&gt; ===================================================================
&gt; --- LayoutTests/fast/js/resources/js-test-pre.js	(revision 49807)
&gt; +++ LayoutTests/fast/js/resources/js-test-pre.js	(working copy)
&gt; @@ -76,18 +76,16 @@ function evalAndLog(_a)
&gt;  {
&gt;    if (typeof _a != &quot;string&quot;)
&gt;      debug(&quot;WARN: tryAndLog() expects a string argument&quot;);
&gt; -  var exception;
&gt; +
&gt; +  // Log first in case things go horribly wrong or this causes a sync event.
&gt; +  debug(_a);
&gt; +
&gt;    var _av;
&gt;    try {
&gt;       _av = eval(_a);
&gt;    } catch (e) {
&gt; -     exception = e;
&gt; +    testFailed(_a + &quot; threw exception &quot; + e);
&gt;    }
&gt; -
&gt; -  if (exception)
&gt; -    testFailed(_a + &quot; threw exception &quot; + exception);
&gt; -  else
&gt; -    debug(_a);
&gt;  }
&gt;  
&gt;  function shouldBe(_a, _b)

I believe this will change the results of existing tests that have expected failures. Did you run them to check if that is so?

&gt; Index: LayoutTests/storage/domstorage/localstorage/documentURI.html
&gt; ===================================================================
&gt; --- LayoutTests/storage/domstorage/localstorage/documentURI.html	(revision 0)
&gt; +++ LayoutTests/storage/domstorage/localstorage/documentURI.html	(revision 0)
&gt; @@ -0,0 +1,15 @@
&gt; +&lt;html&gt;
&gt; +&lt;head&gt;
&gt; +&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../fast/js/resources/js-test-style.css&quot;&gt;
&gt; +&lt;script src=&quot;../../../fast/js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&gt; +&lt;script src=&quot;../../../fast/js/resources/js-test-post-function.js&quot;&gt;&lt;/script&gt;
&gt; +&lt;/head&gt;
&gt; +&lt;body&gt;
&gt; +&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
&gt; +&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
&gt; +&lt;script src=&quot;../script-tests/documentURI.js&quot;&gt;&lt;/script&gt;
&gt; +&lt;script&gt;
&gt; +runTest(&quot;window.localStorage&quot;);
&gt; +&lt;/script&gt;
&gt; +&lt;/body&gt;
&gt; +&lt;/html&gt;

You should not make a test in script-tests that requires a non-standard HTML wrapper. Please find a way to make the test work without that. I&apos;m sure you can find some other way to share the tests. How about a single test that checks both using a function call to repeat the tests twice?

&gt; Index: LayoutTests/storage/domstorage/sessionstorage/documentURI.html
&gt; ===================================================================
&gt; --- LayoutTests/storage/domstorage/sessionstorage/documentURI.html	(revision 0)
&gt; +++ LayoutTests/storage/domstorage/sessionstorage/documentURI.html	(revision 0)
&gt; @@ -0,0 +1,15 @@
&gt; +&lt;html&gt;
&gt; +&lt;head&gt;
&gt; +&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../fast/js/resources/js-test-style.css&quot;&gt;
&gt; +&lt;script src=&quot;../../../fast/js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&gt; +&lt;script src=&quot;../../../fast/js/resources/js-test-post-function.js&quot;&gt;&lt;/script&gt;
&gt; +&lt;/head&gt;
&gt; +&lt;body&gt;
&gt; +&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
&gt; +&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
&gt; +&lt;script src=&quot;../script-tests/documentURI.js&quot;&gt;&lt;/script&gt;
&gt; +&lt;script&gt;
&gt; +runTest(&quot;window.localStorage&quot;);
&gt; +&lt;/script&gt;
&gt; +&lt;/body&gt;
&gt; +&lt;/html&gt;

I presume you meant window.sessionStorage here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156005</commentid>
    <comment_count>4</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-10-19 17:49:10 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 41459 [details])
&gt; Patch looks fine, but there are no expected results.
&gt; 
&gt; &gt; Index: LayoutTests/fast/js/resources/js-test-pre.js
&gt; &gt; ===================================================================
&gt; &gt; --- LayoutTests/fast/js/resources/js-test-pre.js	(revision 49807)
&gt; &gt; +++ LayoutTests/fast/js/resources/js-test-pre.js	(working copy)
&gt; &gt; @@ -76,18 +76,16 @@ function evalAndLog(_a)
&gt; &gt;  {
&gt; &gt;    if (typeof _a != &quot;string&quot;)
&gt; &gt;      debug(&quot;WARN: tryAndLog() expects a string argument&quot;);
&gt; &gt; -  var exception;
&gt; &gt; +
&gt; &gt; +  // Log first in case things go horribly wrong or this causes a sync event.
&gt; &gt; +  debug(_a);
&gt; &gt; +
&gt; &gt;    var _av;
&gt; &gt;    try {
&gt; &gt;       _av = eval(_a);
&gt; &gt;    } catch (e) {
&gt; &gt; -     exception = e;
&gt; &gt; +    testFailed(_a + &quot; threw exception &quot; + e);
&gt; &gt;    }
&gt; &gt; -
&gt; &gt; -  if (exception)
&gt; &gt; -    testFailed(_a + &quot; threw exception &quot; + exception);
&gt; &gt; -  else
&gt; &gt; -    debug(_a);
&gt; &gt;  }
&gt; &gt;  
&gt; &gt;  function shouldBe(_a, _b)
&gt; 
&gt; I believe this will change the results of existing tests that have expected
&gt; failures. Did you run them to check if that is so?

Yup.  Btw, I added this recently so only domstorage is using it at this point which is why there wasn&apos;t more fallout.
 
&gt; &gt; Index: LayoutTests/storage/domstorage/localstorage/documentURI.html
&gt; &gt; ===================================================================
&gt; &gt; --- LayoutTests/storage/domstorage/localstorage/documentURI.html	(revision 0)
&gt; &gt; +++ LayoutTests/storage/domstorage/localstorage/documentURI.html	(revision 0)
&gt; &gt; @@ -0,0 +1,15 @@
&gt; &gt; +&lt;html&gt;
&gt; &gt; +&lt;head&gt;
&gt; &gt; +&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../fast/js/resources/js-test-style.css&quot;&gt;
&gt; &gt; +&lt;script src=&quot;../../../fast/js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&gt; &gt; +&lt;script src=&quot;../../../fast/js/resources/js-test-post-function.js&quot;&gt;&lt;/script&gt;
&gt; &gt; +&lt;/head&gt;
&gt; &gt; +&lt;body&gt;
&gt; &gt; +&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
&gt; &gt; +&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
&gt; &gt; +&lt;script src=&quot;../script-tests/documentURI.js&quot;&gt;&lt;/script&gt;
&gt; &gt; +&lt;script&gt;
&gt; &gt; +runTest(&quot;window.localStorage&quot;);
&gt; &gt; +&lt;/script&gt;
&gt; &gt; +&lt;/body&gt;
&gt; &gt; +&lt;/html&gt;
&gt; 
&gt; You should not make a test in script-tests that requires a non-standard HTML
&gt; wrapper. Please find a way to make the test work without that. I&apos;m sure you can
&gt; find some other way to share the tests. How about a single test that checks
&gt; both using a function call to repeat the tests twice?

That&apos;s quite disheartening.  I&apos;ve been doing a lot to clean these up, but it seems like even after every cleanup, the next reviewer still hates the format.  Here&apos;s one of the cleanup patches: https://bugs.webkit.org/show_bug.cgi?id=28939  I guess maybe I should have run this past webkit-dev or cc&apos;ed people like you, Hyatt, Maciej and such just to be sure?

Anyway, how strongly do you feel about this?  Can I just move all my tests to resources instead of script-tests?  If you want me to change, should I do a webkit-dev mail or just a very large cc list mail to make sure there&apos;s consensus on the format?

&gt; &gt; Index: LayoutTests/storage/domstorage/sessionstorage/documentURI.html
&gt; &gt; ===================================================================
&gt; &gt; --- LayoutTests/storage/domstorage/sessionstorage/documentURI.html	(revision 0)
&gt; &gt; +++ LayoutTests/storage/domstorage/sessionstorage/documentURI.html	(revision 0)
&gt; &gt; @@ -0,0 +1,15 @@
&gt; &gt; +&lt;html&gt;
&gt; &gt; +&lt;head&gt;
&gt; &gt; +&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../fast/js/resources/js-test-style.css&quot;&gt;
&gt; &gt; +&lt;script src=&quot;../../../fast/js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&gt; &gt; +&lt;script src=&quot;../../../fast/js/resources/js-test-post-function.js&quot;&gt;&lt;/script&gt;
&gt; &gt; +&lt;/head&gt;
&gt; &gt; +&lt;body&gt;
&gt; &gt; +&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
&gt; &gt; +&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
&gt; &gt; +&lt;script src=&quot;../script-tests/documentURI.js&quot;&gt;&lt;/script&gt;
&gt; &gt; +&lt;script&gt;
&gt; &gt; +runTest(&quot;window.localStorage&quot;);
&gt; &gt; +&lt;/script&gt;
&gt; &gt; +&lt;/body&gt;
&gt; &gt; +&lt;/html&gt;
&gt; 
&gt; I presume you meant window.sessionStorage here.

Oops!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156007</commentid>
    <comment_count>5</comment_count>
      <attachid>41466</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-10-19 17:52:16 -0700</bug_when>
    <thetext>Created attachment 41466
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156485</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-21 07:33:59 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Can I just move all my tests to resources instead of script-tests?

Sure. The only mechanical problem is that the script to make script test wrappers will overwrite your HTML files unless you do that.

&gt; If you want me to change, should I do a
&gt; webkit-dev mail or just a very large cc list mail to make sure there&apos;s
&gt; consensus on the format?

I don&apos;t really think we need a wider call for consensus here. I was pointing out a specific problem -- your test will be overwritten -- and making some suggestions about how to fit your test into the already-existing test framework. These tests are so close to fitting in as a normal script test that I think it would be easy to make them fit in entirely rather than being a non-standard variant.

I sense your frustration here, and you are welcome to just do the minimum of moving out of the script-tests directory.

I have read the earlier comments, and I don&apos;t agree that this is just more of the same. In fact, I don&apos;t &quot;hate the format&quot; at all. I&apos;m just pushing, gently I hope, you to do that last bit of work so that these fit in with the other script tests. I don&apos;t think a hand-written wrapper is worth it just so you can have these two tests be the same body with a different string argument passed in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156486</commentid>
    <comment_count>7</comment_count>
      <attachid>41466</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-21 07:35:09 -0700</bug_when>
    <thetext>Comment on attachment 41466
Patch v1

review- because the make-script-test-wrappers script will overwrite storage/domstorage/localstorage/documentURI.html and storage/domstorage/sessionstorage/documentURI.html. Please fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156745</commentid>
    <comment_count>8</comment_count>
      <attachid>41626</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-10-21 18:29:17 -0700</bug_when>
    <thetext>Created attachment 41626
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157887</commentid>
    <comment_count>9</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2009-10-26 13:12:15 -0700</bug_when>
    <thetext>Committed r50088: &lt;http://trac.webkit.org/changeset/50088&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41458</attachid>
            <date>2009-10-19 15:14:31 -0700</date>
            <delta_ts>2009-10-19 15:17:51 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-30535-20091019151429.patch</filename>
            <type>text/plain</type>
            <size>7836</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">PyAgICAgIHN2bi1jb21taXQudG1wCj8gICAgICBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNl
cy8uanMtdGVzdC1wcmUuanMuc3dwCj8gICAgICBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2UvbG9jYWxzdG9yYWdlL2RvY3VtZW50VVJJLWV4cGVjdGVkLnR4dAo/ICAgICAgTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2RvY3VtZW50VVJJLWV4cGVjdGVk
LnR4dApJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFu
Z2VMb2cJKHJldmlzaW9uIDQ5ODE1KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwzMyBAQAorMjAwOS0xMC0xOSAgSmVyZW15IE9ybG93ICA8am9ybG93QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTdG9yYWdlIGV2ZW50cyBzaG91bGQgdXNlIERvY3VtZW50Ojp1cmwoKSByYXRoZXIgdGhh
biBkb2N1bWVudFVSSSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMDUzNQorCisgICAgICAgIFN0b3JhZ2UgZXZlbnRzIHNob3VsZCB1c2UgRG9jdW1l
bnQ6OnVybCgpIHJhdGhlciB0aGFuIERvY3VtZW50Ojpkb2N1bWVudFVSSSgpCisgICAgICAgIHBl
ciBodHRwOi8vbGlzdHMud2hhdHdnLm9yZy9odGRpZy5jZ2kvd2hhdHdnLXdoYXR3Zy5vcmcvMjAw
OS1PY3RvYmVyLzAyMzcwMy5odG1sCisKKyAgICAgICAgVGVzdHM6IHN0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvZG9jdW1lbnRVUkkuaHRtbAorICAgICAgICAgICAgICAgc3RvcmFnZS9k
b21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2RvY3VtZW50VVJJLmh0bWwKKworICAgICAgICAqIHN0
b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9y
YWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaCk6CisKKzIwMDktMTAtMTkgIEplcmVteSBPcmxv
dyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKworICAgICAgICBJIGFza2VkIGZvciBjbGFyaWZpY2F0aW9uIG9uIFdoYXRXRyBh
bmQgYXBwYXJlbnRseSBXZWJLaXQgd2FzIHVzaW5nIHRoZQorICAgICAgICB3cm9uZyBwYXJhbWV0
ZXI6CisgICAgICAgIGh0dHA6Ly9saXN0cy53aGF0d2cub3JnL2h0ZGlnLmNnaS93aGF0d2ctd2hh
dHdnLm9yZy8yMDA5LU9jdG9iZXIvMDIzNzAzLmh0bWwKKworICAgICAgICBObyBuZXcgdGVzdHMu
IChPT1BTISkKKworICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaCk6CisK
IDIwMDktMTAtMTkgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpJbmRleDogV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcAkocmV2aXNpb24gNDk4MDcpCisrKyBXZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDcgKzU1LDcgQEAgdm9pZCBTdG9yYWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaChjbwogICAg
ICAgICB9CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyYW1lcy5zaXplKCk7
ICsraSkKLSAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5kb3dF
dmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXks
IG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPmRvY3VtZW50VVJJ
KCksIHNvdXJjZUZyYW1lLT5kb21XaW5kb3coKSwgZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+c2Vz
c2lvblN0b3JhZ2UoKSkpOworICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5kaXNw
YXRjaFdpbmRvd0V2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdl
RXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+
dXJsKCksIHNvdXJjZUZyYW1lLT5kb21XaW5kb3coKSwgZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+
c2Vzc2lvblN0b3JhZ2UoKSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFNlbmQgZXZlbnRz
IHRvIGV2ZXJ5IHBhZ2UuCiAgICAgICAgIGNvbnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9IHBh
Z2UtPmdyb3VwKCkucGFnZXMoKTsKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBTdG9yYWdlRXZlbnRE
aXNwYXRjaGVyOjpkaXNwYXRjaChjbwogICAgICAgICB9CiAKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGZyYW1lcy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGZyYW1lc1tpXS0+
ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5kb3dFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJh
bWUtPmRvY3VtZW50KCktPmRvY3VtZW50VVJJKCksIHNvdXJjZUZyYW1lLT5kb21XaW5kb3coKSwg
ZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+bG9jYWxTdG9yYWdlKCkpKTsKKyAgICAgICAgICAgIGZy
YW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5kb3dFdmVudChTdG9yYWdlRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwg
c291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLCBzb3VyY2VGcmFtZS0+ZG9tV2luZG93KCks
IGZyYW1lc1tpXS0+ZG9tV2luZG93KCktPmxvY2FsU3RvcmFnZSgpKSk7CiAgICAgfQogfQogCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA0OTgxNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDA5LTEwLTE5ICBKZXJlbXkgT3Jsb3cgIDxqb3Js
b3dAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFN0b3JhZ2UgZXZlbnRzIHNob3VsZCB1c2UgRG9jdW1lbnQ6OnVybCgpIHJhdGhl
ciB0aGFuIGRvY3VtZW50VVJJKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMwNTM1CisKKyAgICAgICAgU3RvcmFnZSBldmVudHMgc2hvdWxkIHVzZSBE
b2N1bWVudDo6dXJsKCkgcmF0aGVyIHRoYW4gRG9jdW1lbnQ6OmRvY3VtZW50VVJJKCkKKyAgICAg
ICAgcGVyIGh0dHA6Ly9saXN0cy53aGF0d2cub3JnL2h0ZGlnLmNnaS93aGF0d2ctd2hhdHdnLm9y
Zy8yMDA5LU9jdG9iZXIvMDIzNzAzLmh0bWwKKworICAgICAgICBBZGQgYSB0ZXN0IGZvciB0aGlz
LiAgU2luY2Ugc3RvcmFnZSBldmVudHMgYXJlIHN5bmMsIHJlLW9yZGVyIHdoZW4KKyAgICAgICAg
ZXZhbEFuZExvZyBsb2dzIGFuZCBldmFsdWF0ZXMgaW5zdHJ1Y3Rpb25zLgorCisgICAgICAgICog
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanM6CisgICAgICAgIChldmFsQW5kTG9nKToK
KyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2RvY3VtZW50VVJJLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVzdHMvZG9j
dW1lbnRVUkkuanM6IEFkZGVkLgorICAgICAgICAocnVuVGVzdCk6CisgICAgICAgIChmaXJzdEV2
ZW50KToKKyAgICAgICAgKHNlY29uZEV2ZW50KToKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3Jh
Z2Uvc2Vzc2lvbnN0b3JhZ2UvZG9jdW1lbnRVUkkuaHRtbDogQWRkZWQuCisKIDIwMDktMTAtMTkg
IERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgU2VpZGVsLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMJKHJldmlzaW9uIDQ5ODA3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMJKHdvcmtpbmcgY29weSkKQEAgLTc2LDE4ICs3NiwxNiBAQCBm
dW5jdGlvbiBldmFsQW5kTG9nKF9hKQogewogICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciKQog
ICAgIGRlYnVnKCJXQVJOOiB0cnlBbmRMb2coKSBleHBlY3RzIGEgc3RyaW5nIGFyZ3VtZW50Iik7
Ci0gIHZhciBleGNlcHRpb247CisKKyAgLy8gTG9nIGZpcnN0IGluIGNhc2UgdGhpbmdzIGdvIGhv
cnJpYmx5IHdyb25nIG9yIHRoaXMgY2F1c2VzIGEgc3luYyBldmVudC4KKyAgZGVidWcoX2EpOwor
CiAgIHZhciBfYXY7CiAgIHRyeSB7CiAgICAgIF9hdiA9IGV2YWwoX2EpOwogICB9IGNhdGNoIChl
KSB7Ci0gICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgdGVzdEZhaWxlZChfYSArICIgdGhyZXcgZXhj
ZXB0aW9uICIgKyBlKTsKICAgfQotCi0gIGlmIChleGNlcHRpb24pCi0gICAgdGVzdEZhaWxlZChf
YSArICIgdGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOwotICBlbHNlCi0gICAgZGVidWco
X2EpOwogfQogCiBmdW5jdGlvbiBzaG91bGRCZShfYSwgX2IpCkluZGV4OiBMYXlvdXRUZXN0cy9z
dG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2RvY3VtZW50VVJJLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9kb2N1bWVu
dFVSSS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9kb2N1bWVudFVSSS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1
IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0iLi4vc2NyaXB0LXRlc3RzL2Rv
Y3VtZW50VVJJLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitydW5UZXN0KCJ3aW5kb3cubG9jYWxT
dG9yYWdlIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L3N0b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0cy9kb2N1bWVu
dFVSSS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9z
Y3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAgQEAK
K2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgY2hhbmdpbmcgZG9jdW1lbnRVUkkgaGFzIG5vIGVmZmVj
dHMgb24gc3RvcmFnZSBldmVudHMuIik7CisKK2Z1bmN0aW9uIHJ1blRlc3Qoc3RvcmFnZVN0cmlu
ZykKK3sKKyAgICB3aW5kb3cuc3RvcmFnZSA9IGV2YWwoc3RvcmFnZVN0cmluZyk7CisgICAgaWYg
KCFzdG9yYWdlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoc3RvcmFnZVN0cmluZyArICIgRE9FUyBO
T1QgZXhpc3QiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRlYnVnKCJUZXN0aW5n
ICIgKyBzdG9yYWdlU3RyaW5nKTsKKworICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuY2xlYXIoKSIp
OworICAgIHNob3VsZEJlKCJzdG9yYWdlLmxlbmd0aCIsICIwIik7CisKKyAgICBldmFsQW5kTG9n
KCJ3aW5kb3cub25zdG9yYWdlID0gZmlyc3RFdmVudCIpOworICAgIGV2YWxBbmRMb2coInN0b3Jh
Z2UuZm9vID0gJzEyMyciKTsKK30KKworZnVuY3Rpb24gZmlyc3RFdmVudChlKQoreworICAgIGRl
YnVnKCJGaXJzdCBldmVudCBmaXJlZCIpOworICAgIGRlYnVnKCJTYXZpbmcgVVJJIik7CisgICAg
d2luZG93Lmxhc3RVUkkgPSBlLnVyaTsKKworICAgIGV2YWxBbmRMb2coImRvY3VtZW50LmRvY3Vt
ZW50VVJJID0gJ2FiYyciKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmRv
Y3VtZW50VVJJIiwgImFiYyIpOworCisgICAgZXZhbEFuZExvZygid2luZG93Lm9uc3RvcmFnZSA9
IHNlY29uZEV2ZW50Iik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5mb28gPSAneHl6JyIpOwor
fQorCitmdW5jdGlvbiBzZWNvbmRFdmVudChlKQoreworICAgIGRlYnVnKCJTZWNvbmQgZXZlbnQg
ZmlyZWQiKTsKKyAgICBzaG91bGRCZVRydWUoU3RyaW5nKHdpbmRvdy5sYXN0VVJJID09IGUudXJp
KSk7CisKKyAgICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBpc1N1Y2Nl
c3NmdWxseVBhcnNlZCgpOworfQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L3Nlc3Npb25zdG9yYWdlL2RvY3VtZW50VVJJLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2RvY3VtZW50VVJJLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3Jh
Z2UvZG9jdW1lbnRVUkkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uL3NjcmlwdC10ZXN0cy9kb2N1bWVudFVSSS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorcnVuVGVzdCgid2luZG93LmxvY2FsU3RvcmFnZSIpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41459</attachid>
            <date>2009-10-19 15:18:00 -0700</date>
            <delta_ts>2009-10-19 17:51:53 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-30535-20091019151759.patch</filename>
            <type>text/plain</type>
            <size>7413</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">PyAgICAgIHN2bi1jb21taXQudG1wCj8gICAgICBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNl
cy8uanMtdGVzdC1wcmUuanMuc3dwCj8gICAgICBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2UvbG9jYWxzdG9yYWdlL2RvY3VtZW50VVJJLWV4cGVjdGVkLnR4dAo/ICAgICAgTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2RvY3VtZW50VVJJLWV4cGVjdGVk
LnR4dApJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFu
Z2VMb2cJKHJldmlzaW9uIDQ5ODE1KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxOSBAQAorMjAwOS0xMC0xOSAgSmVyZW15IE9ybG93ICA8am9ybG93QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTdG9yYWdlIGV2ZW50cyBzaG91bGQgdXNlIERvY3VtZW50Ojp1cmwoKSByYXRoZXIgdGhh
biBkb2N1bWVudFVSSSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMDUzNQorCisgICAgICAgIFN0b3JhZ2UgZXZlbnRzIHNob3VsZCB1c2UgRG9jdW1l
bnQ6OnVybCgpIHJhdGhlciB0aGFuIERvY3VtZW50Ojpkb2N1bWVudFVSSSgpCisgICAgICAgIHBl
ciBodHRwOi8vbGlzdHMud2hhdHdnLm9yZy9odGRpZy5jZ2kvd2hhdHdnLXdoYXR3Zy5vcmcvMjAw
OS1PY3RvYmVyLzAyMzcwMy5odG1sCisKKyAgICAgICAgVGVzdHM6IHN0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvZG9jdW1lbnRVUkkuaHRtbAorICAgICAgICAgICAgICAgc3RvcmFnZS9k
b21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2RvY3VtZW50VVJJLmh0bWwKKworICAgICAgICAqIHN0
b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9y
YWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaCk6CisKIDIwMDktMTAtMTkgIFBhdmVsIEZlbGRt
YW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3Ro
eSBIYXRjaGVyLgpJbmRleDogV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVy
LmNwcAkocmV2aXNpb24gNDk4MDcpCisrKyBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlz
cGF0Y2hlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBTdG9yYWdl
RXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaChjbwogICAgICAgICB9CiAKICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGZyYW1lcy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGZyYW1l
c1tpXS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5kb3dFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291
cmNlRnJhbWUtPmRvY3VtZW50KCktPmRvY3VtZW50VVJJKCksIHNvdXJjZUZyYW1lLT5kb21XaW5k
b3coKSwgZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+c2Vzc2lvblN0b3JhZ2UoKSkpOworICAgICAg
ICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5kaXNwYXRjaFdpbmRvd0V2ZW50KFN0b3JhZ2VF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5l
d1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHNvdXJjZUZyYW1lLT5kb21X
aW5kb3coKSwgZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+c2Vzc2lvblN0b3JhZ2UoKSkpOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIC8vIFNlbmQgZXZlbnRzIHRvIGV2ZXJ5IHBhZ2UuCiAgICAgICAg
IGNvbnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9IHBhZ2UtPmdyb3VwKCkucGFnZXMoKTsKQEAg
LTY4LDcgKzY4LDcgQEAgdm9pZCBTdG9yYWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaChjbwog
ICAgICAgICB9CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyYW1lcy5zaXpl
KCk7ICsraSkKLSAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5k
b3dFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBr
ZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPmRvY3VtZW50
VVJJKCksIHNvdXJjZUZyYW1lLT5kb21XaW5kb3coKSwgZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+
bG9jYWxTdG9yYWdlKCkpKTsKKyAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZGlz
cGF0Y2hXaW5kb3dFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFn
ZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCkt
PnVybCgpLCBzb3VyY2VGcmFtZS0+ZG9tV2luZG93KCksIGZyYW1lc1tpXS0+ZG9tV2luZG93KCkt
PmxvY2FsU3RvcmFnZSgpKSk7CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0OTgxNSkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDA5LTEwLTE5ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3JhZ2UgZXZlbnRz
IHNob3VsZCB1c2UgRG9jdW1lbnQ6OnVybCgpIHJhdGhlciB0aGFuIGRvY3VtZW50VVJJKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTM1CisKKyAg
ICAgICAgU3RvcmFnZSBldmVudHMgc2hvdWxkIHVzZSBEb2N1bWVudDo6dXJsKCkgcmF0aGVyIHRo
YW4gRG9jdW1lbnQ6OmRvY3VtZW50VVJJKCkKKyAgICAgICAgcGVyIGh0dHA6Ly9saXN0cy53aGF0
d2cub3JnL2h0ZGlnLmNnaS93aGF0d2ctd2hhdHdnLm9yZy8yMDA5LU9jdG9iZXIvMDIzNzAzLmh0
bWwKKworICAgICAgICBBZGQgYSB0ZXN0IGZvciB0aGlzLiAgU2luY2Ugc3RvcmFnZSBldmVudHMg
YXJlIHN5bmMsIHJlLW9yZGVyIHdoZW4KKyAgICAgICAgZXZhbEFuZExvZyBsb2dzIGFuZCBldmFs
dWF0ZXMgaW5zdHJ1Y3Rpb25zLgorCisgICAgICAgICogZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanM6CisgICAgICAgIChldmFsQW5kTG9nKToKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0
b3JhZ2UvbG9jYWxzdG9yYWdlL2RvY3VtZW50VVJJLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0
b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanM6IEFkZGVkLgorICAg
ICAgICAocnVuVGVzdCk6CisgICAgICAgIChmaXJzdEV2ZW50KToKKyAgICAgICAgKHNlY29uZEV2
ZW50KToKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvZG9jdW1l
bnRVUkkuaHRtbDogQWRkZWQuCisKIDIwMDktMTAtMTkgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMJKHJldmlzaW9uIDQ5
ODA3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMJKHdv
cmtpbmcgY29weSkKQEAgLTc2LDE4ICs3NiwxNiBAQCBmdW5jdGlvbiBldmFsQW5kTG9nKF9hKQog
ewogICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciKQogICAgIGRlYnVnKCJXQVJOOiB0cnlBbmRM
b2coKSBleHBlY3RzIGEgc3RyaW5nIGFyZ3VtZW50Iik7Ci0gIHZhciBleGNlcHRpb247CisKKyAg
Ly8gTG9nIGZpcnN0IGluIGNhc2UgdGhpbmdzIGdvIGhvcnJpYmx5IHdyb25nIG9yIHRoaXMgY2F1
c2VzIGEgc3luYyBldmVudC4KKyAgZGVidWcoX2EpOworCiAgIHZhciBfYXY7CiAgIHRyeSB7CiAg
ICAgIF9hdiA9IGV2YWwoX2EpOwogICB9IGNhdGNoIChlKSB7Ci0gICAgIGV4Y2VwdGlvbiA9IGU7
CisgICAgdGVzdEZhaWxlZChfYSArICIgdGhyZXcgZXhjZXB0aW9uICIgKyBlKTsKICAgfQotCi0g
IGlmIChleGNlcHRpb24pCi0gICAgdGVzdEZhaWxlZChfYSArICIgdGhyZXcgZXhjZXB0aW9uICIg
KyBleGNlcHRpb24pOwotICBlbHNlCi0gICAgZGVidWcoX2EpOwogfQogCiBmdW5jdGlvbiBzaG91
bGRCZShfYSwgX2IpCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxz
dG9yYWdlL2RvY3VtZW50VVJJLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9kb2N1bWVudFVSSS5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9kb2N1bWVudFVS
SS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0IHNyYz0iLi4vc2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitydW5UZXN0KCJ3aW5kb3cubG9jYWxTdG9yYWdlIik7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zY3Jp
cHQtdGVzdHMvZG9jdW1lbnRVUkkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0cy9kb2N1bWVudFVSSS5qcwkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkku
anMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQg
Y2hhbmdpbmcgZG9jdW1lbnRVUkkgaGFzIG5vIGVmZmVjdHMgb24gc3RvcmFnZSBldmVudHMuIik7
CisKK2Z1bmN0aW9uIHJ1blRlc3Qoc3RvcmFnZVN0cmluZykKK3sKKyAgICB3aW5kb3cuc3RvcmFn
ZSA9IGV2YWwoc3RvcmFnZVN0cmluZyk7CisgICAgaWYgKCFzdG9yYWdlKSB7CisgICAgICAgIHRl
c3RGYWlsZWQoc3RvcmFnZVN0cmluZyArICIgRE9FUyBOT1QgZXhpc3QiKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGRlYnVnKCJUZXN0aW5nICIgKyBzdG9yYWdlU3RyaW5nKTsKKwor
ICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuY2xlYXIoKSIpOworICAgIHNob3VsZEJlKCJzdG9yYWdl
Lmxlbmd0aCIsICIwIik7CisKKyAgICBldmFsQW5kTG9nKCJ3aW5kb3cub25zdG9yYWdlID0gZmly
c3RFdmVudCIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuZm9vID0gJzEyMyciKTsKK30KKwor
ZnVuY3Rpb24gZmlyc3RFdmVudChlKQoreworICAgIGRlYnVnKCJGaXJzdCBldmVudCBmaXJlZCIp
OworICAgIGRlYnVnKCJTYXZpbmcgVVJJIik7CisgICAgd2luZG93Lmxhc3RVUkkgPSBlLnVyaTsK
KworICAgIGV2YWxBbmRMb2coImRvY3VtZW50LmRvY3VtZW50VVJJID0gJ2FiYyciKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmRvY3VtZW50VVJJIiwgImFiYyIpOworCisg
ICAgZXZhbEFuZExvZygid2luZG93Lm9uc3RvcmFnZSA9IHNlY29uZEV2ZW50Iik7CisgICAgZXZh
bEFuZExvZygic3RvcmFnZS5mb28gPSAneHl6JyIpOworfQorCitmdW5jdGlvbiBzZWNvbmRFdmVu
dChlKQoreworICAgIGRlYnVnKCJTZWNvbmQgZXZlbnQgZmlyZWQiKTsKKyAgICBzaG91bGRCZVRy
dWUoU3RyaW5nKHdpbmRvdy5sYXN0VVJJID09IGUudXJpKSk7CisKKyAgICB3aW5kb3cuc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworfQpJbmRl
eDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2RvY3VtZW50
VVJJLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nl
c3Npb25zdG9yYWdlL2RvY3VtZW50VVJJLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvZG9jdW1lbnRVUkkuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBz
cmM9Ii4uL3NjcmlwdC10ZXN0cy9kb2N1bWVudFVSSS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
cnVuVGVzdCgid2luZG93LmxvY2FsU3RvcmFnZSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41466</attachid>
            <date>2009-10-19 17:52:16 -0700</date>
            <delta_ts>2009-10-21 18:29:12 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-30535-20091019175214.patch</filename>
            <type>text/plain</type>
            <size>8918</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">PyAgICAgIHN2bi1jb21taXQudG1wCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNDk4MTUpCisrKyBXZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDA5LTEwLTE5ICBKZXJlbXkg
T3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN0b3JhZ2UgZXZlbnRzIHNob3VsZCB1c2UgRG9jdW1lbnQ6
OnVybCgpIHJhdGhlciB0aGFuIGRvY3VtZW50VVJJKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTM1CisKKyAgICAgICAgU3RvcmFnZSBldmVudHMg
c2hvdWxkIHVzZSBEb2N1bWVudDo6dXJsKCkgcmF0aGVyIHRoYW4gRG9jdW1lbnQ6OmRvY3VtZW50
VVJJKCkKKyAgICAgICAgcGVyIGh0dHA6Ly9saXN0cy53aGF0d2cub3JnL2h0ZGlnLmNnaS93aGF0
d2ctd2hhdHdnLm9yZy8yMDA5LU9jdG9iZXIvMDIzNzAzLmh0bWwKKworICAgICAgICBUZXN0czog
c3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9kb2N1bWVudFVSSS5odG1sCisgICAgICAg
ICAgICAgICBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvZG9jdW1lbnRVUkkuaHRt
bAorCisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0b3JhZ2VFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKToKKwogMjAwOS0x
MC0xOSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZUV2ZW50RGlzcGF0Y2hlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VFdmVudERpc3BhdGNoZXIuY3BwCShyZXZpc2lvbiA0OTgwNykKKysrIFdlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUs
NyBAQCB2b2lkIFN0b3JhZ2VFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKGNvCiAgICAgICAgIH0K
IAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJhbWVzLnNpemUoKTsgKytpKQot
ICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5kaXNwYXRjaFdpbmRvd0V2ZW50KFN0
b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFs
dWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRVUkkoKSwgc291
cmNlRnJhbWUtPmRvbVdpbmRvdygpLCBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5zZXNzaW9uU3Rv
cmFnZSgpKSk7CisgICAgICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCktPmRpc3BhdGNoV2lu
ZG93RXZlbnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwg
a2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwg
c291cmNlRnJhbWUtPmRvbVdpbmRvdygpLCBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5zZXNzaW9u
U3RvcmFnZSgpKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gU2VuZCBldmVudHMgdG8gZXZl
cnkgcGFnZS4KICAgICAgICAgY29uc3QgSGFzaFNldDxQYWdlKj4mIHBhZ2VzID0gcGFnZS0+Z3Jv
dXAoKS5wYWdlcygpOwpAQCAtNjgsNyArNjgsNyBAQCB2b2lkIFN0b3JhZ2VFdmVudERpc3BhdGNo
ZXI6OmRpc3BhdGNoKGNvCiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgZnJhbWVzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1bWVu
dCgpLT5kaXNwYXRjaFdpbmRvd0V2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9j
dW1lbnQoKS0+ZG9jdW1lbnRVUkkoKSwgc291cmNlRnJhbWUtPmRvbVdpbmRvdygpLCBmcmFtZXNb
aV0tPmRvbVdpbmRvdygpLT5sb2NhbFN0b3JhZ2UoKSkpOworICAgICAgICAgICAgZnJhbWVzW2ld
LT5kb2N1bWVudCgpLT5kaXNwYXRjaFdpbmRvd0V2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VG
cmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHNvdXJjZUZyYW1lLT5kb21XaW5kb3coKSwgZnJhbWVz
W2ldLT5kb21XaW5kb3coKS0+bG9jYWxTdG9yYWdlKCkpKTsKICAgICB9CiB9CiAKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDQ5ODE1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTAtMTkgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3RvcmFnZSBldmVudHMgc2hvdWxkIHVzZSBEb2N1bWVudDo6dXJsKCkgcmF0aGVyIHRoYW4g
ZG9jdW1lbnRVUkkoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzA1MzUKKworICAgICAgICBTdG9yYWdlIGV2ZW50cyBzaG91bGQgdXNlIERvY3VtZW50
Ojp1cmwoKSByYXRoZXIgdGhhbiBEb2N1bWVudDo6ZG9jdW1lbnRVUkkoKQorICAgICAgICBwZXIg
aHR0cDovL2xpc3RzLndoYXR3Zy5vcmcvaHRkaWcuY2dpL3doYXR3Zy13aGF0d2cub3JnLzIwMDkt
T2N0b2Jlci8wMjM3MDMuaHRtbAorCisgICAgICAgIEFkZCBhIHRlc3QgZm9yIHRoaXMuICBTaW5j
ZSBzdG9yYWdlIGV2ZW50cyBhcmUgc3luYywgcmUtb3JkZXIgd2hlbgorICAgICAgICBldmFsQW5k
TG9nIGxvZ3MgYW5kIGV2YWx1YXRlcyBpbnN0cnVjdGlvbnMuCisKKyAgICAgICAgKiBmYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qczoKKyAgICAgICAgKGV2YWxBbmRMb2cpOgorICAgICAg
ICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvZG9jdW1lbnRVUkkuaHRtbDogQWRk
ZWQuCisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0cy9kb2N1bWVudFVS
SS5qczogQWRkZWQuCisgICAgICAgIChydW5UZXN0KToKKyAgICAgICAgKGZpcnN0RXZlbnQpOgor
ICAgICAgICAoc2Vjb25kRXZlbnQpOgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9zZXNz
aW9uc3RvcmFnZS9kb2N1bWVudFVSSS5odG1sOiBBZGRlZC4KKwogMjAwOS0xMC0xOSAgRGFuaWVs
IEJhdGVzICA8ZGJhdGVzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBT
ZWlkZWwuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcwkocmV2aXNpb24gNDk4MDcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcwkod29ya2luZyBjb3B5KQpAQCAtNzYsMTggKzc2LDE2IEBAIGZ1bmN0aW9u
IGV2YWxBbmRMb2coX2EpCiB7CiAgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIpCiAgICAgZGVi
dWcoIldBUk46IHRyeUFuZExvZygpIGV4cGVjdHMgYSBzdHJpbmcgYXJndW1lbnQiKTsKLSAgdmFy
IGV4Y2VwdGlvbjsKKworICAvLyBMb2cgZmlyc3QgaW4gY2FzZSB0aGluZ3MgZ28gaG9ycmlibHkg
d3Jvbmcgb3IgdGhpcyBjYXVzZXMgYSBzeW5jIGV2ZW50LgorICBkZWJ1ZyhfYSk7CisKICAgdmFy
IF9hdjsKICAgdHJ5IHsKICAgICAgX2F2ID0gZXZhbChfYSk7CiAgIH0gY2F0Y2ggKGUpIHsKLSAg
ICAgZXhjZXB0aW9uID0gZTsKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiB0aHJldyBleGNlcHRpb24g
IiArIGUpOwogICB9Ci0KLSAgaWYgKGV4Y2VwdGlvbikKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiB0
aHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7Ci0gIGVsc2UKLSAgICBkZWJ1ZyhfYSk7CiB9
CiAKIGZ1bmN0aW9uIHNob3VsZEJlKF9hLCBfYikKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvZG9jdW1lbnRVUkktZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvZG9jdW1l
bnRVUkktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9kb2N1bWVudFVSSS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMjIgQEAKK1Rlc3QgdGhhdCBjaGFuZ2luZyBkb2N1bWVudFVSSSBoYXMg
bm8gZWZmZWN0cyBvbiBzdG9yYWdlIGV2ZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1Rlc3Rpbmcgd2luZG93LmxvY2FsU3RvcmFnZQorc3RvcmFnZS5jbGVhcigpCitQQVNT
IHN0b3JhZ2UubGVuZ3RoIGlzIDAKK3dpbmRvdy5vbnN0b3JhZ2UgPSBmaXJzdEV2ZW50CitzdG9y
YWdlLmZvbyA9ICcxMjMnCitGaXJzdCBldmVudCBmaXJlZAorU2F2aW5nIFVSSQorZG9jdW1lbnQu
ZG9jdW1lbnRVUkkgPSAnYWJjJworUEFTUyBkb2N1bWVudC5kb2N1bWVudFVSSSBpcyAiYWJjIgor
d2luZG93Lm9uc3RvcmFnZSA9IHNlY29uZEV2ZW50CitzdG9yYWdlLmZvbyA9ICd4eXonCitTZWNv
bmQgZXZlbnQgZmlyZWQKK1BBU1MgdHJ1ZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9kb2N1bWVudFVSSS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvZG9jdW1lbnRVUkkuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0
b3JhZ2UvZG9jdW1lbnRVUkkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uL3NjcmlwdC10ZXN0cy9kb2N1bWVudFVS
SS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorcnVuVGVzdCgid2luZG93LmxvY2FsU3RvcmFnZSIp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanMJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2NyaXB0LXRl
c3RzL2RvY3VtZW50VVJJLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACitkZXNjcmlw
dGlvbigiVGVzdCB0aGF0IGNoYW5naW5nIGRvY3VtZW50VVJJIGhhcyBubyBlZmZlY3RzIG9uIHN0
b3JhZ2UgZXZlbnRzLiIpOworCitmdW5jdGlvbiBydW5UZXN0KHN0b3JhZ2VTdHJpbmcpCit7Cisg
ICAgd2luZG93LnN0b3JhZ2UgPSBldmFsKHN0b3JhZ2VTdHJpbmcpOworICAgIGlmICghc3RvcmFn
ZSkgeworICAgICAgICB0ZXN0RmFpbGVkKHN0b3JhZ2VTdHJpbmcgKyAiIERPRVMgTk9UIGV4aXN0
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkZWJ1ZygiVGVzdGluZyAiICsgc3Rv
cmFnZVN0cmluZyk7CisKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmNsZWFyKCkiKTsKKyAgICBz
aG91bGRCZSgic3RvcmFnZS5sZW5ndGgiLCAiMCIpOworCisgICAgZXZhbEFuZExvZygid2luZG93
Lm9uc3RvcmFnZSA9IGZpcnN0RXZlbnQiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yYWdlLmZvbyA9
ICcxMjMnIik7Cit9CisKK2Z1bmN0aW9uIGZpcnN0RXZlbnQoZSkKK3sKKyAgICBkZWJ1ZygiRmly
c3QgZXZlbnQgZmlyZWQiKTsKKyAgICBkZWJ1ZygiU2F2aW5nIFVSSSIpOworICAgIHdpbmRvdy5s
YXN0VVJJID0gZS51cmk7CisKKyAgICBldmFsQW5kTG9nKCJkb2N1bWVudC5kb2N1bWVudFVSSSA9
ICdhYmMnIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5kb2N1bWVudFVS
SSIsICJhYmMiKTsKKworICAgIGV2YWxBbmRMb2coIndpbmRvdy5vbnN0b3JhZ2UgPSBzZWNvbmRF
dmVudCIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuZm9vID0gJ3h5eiciKTsKK30KKworZnVu
Y3Rpb24gc2Vjb25kRXZlbnQoZSkKK3sKKyAgICBkZWJ1ZygiU2Vjb25kIGV2ZW50IGZpcmVkIik7
CisgICAgc2hvdWxkQmVUcnVlKFN0cmluZyh3aW5kb3cubGFzdFVSSSA9PSBlLnVyaSkpOworCisg
ICAgd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgaXNTdWNjZXNzZnVsbHlQ
YXJzZWQoKTsKK30KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9u
c3RvcmFnZS9kb2N1bWVudFVSSS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2RvY3VtZW50VVJJLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNz
aW9uc3RvcmFnZS9kb2N1bWVudFVSSS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMjIgQEAKK1Rlc3QgdGhhdCBjaGFuZ2luZyBkb2N1bWVudFVSSSBoYXMgbm8gZWZmZWN0cyBv
biBzdG9yYWdlIGV2ZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3Rp
bmcgd2luZG93LmxvY2FsU3RvcmFnZQorc3RvcmFnZS5jbGVhcigpCitQQVNTIHN0b3JhZ2UubGVu
Z3RoIGlzIDAKK3dpbmRvdy5vbnN0b3JhZ2UgPSBmaXJzdEV2ZW50CitzdG9yYWdlLmZvbyA9ICcx
MjMnCitGaXJzdCBldmVudCBmaXJlZAorU2F2aW5nIFVSSQorZG9jdW1lbnQuZG9jdW1lbnRVUkkg
PSAnYWJjJworUEFTUyBkb2N1bWVudC5kb2N1bWVudFVSSSBpcyAiYWJjIgord2luZG93Lm9uc3Rv
cmFnZSA9IHNlY29uZEV2ZW50CitzdG9yYWdlLmZvbyA9ICd4eXonCitTZWNvbmQgZXZlbnQgZmly
ZWQKK1BBU1MgdHJ1ZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nl
c3Npb25zdG9yYWdlL2RvY3VtZW50VVJJLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2RvY3VtZW50VVJJLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uv
ZG9jdW1lbnRVUkkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uL3NjcmlwdC10ZXN0cy9kb2N1bWVudFVSSS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorcnVuVGVzdCgid2luZG93LnNlc3Npb25TdG9yYWdlIik7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41626</attachid>
            <date>2009-10-21 18:29:17 -0700</date>
            <delta_ts>2009-10-25 12:04:30 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-30535-20091021182915.patch</filename>
            <type>text/plain</type>
            <size>7398</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">PyAgICAgIHN2bi1jb21taXQudG1wCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNDk5MjkpCisrKyBXZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDA5LTEwLTIxICBKZXJlbXkg
T3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN0b3JhZ2UgZXZlbnRzIHNob3VsZCB1c2UgRG9jdW1lbnQ6
OnVybCgpIHJhdGhlciB0aGFuIGRvY3VtZW50VVJJKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTM1CisKKyAgICAgICAgU3RvcmFnZSBldmVudHMg
c2hvdWxkIHVzZSBEb2N1bWVudDo6dXJsKCkgcmF0aGVyIHRoYW4gRG9jdW1lbnQ6OmRvY3VtZW50
VVJJKCkKKyAgICAgICAgcGVyIGh0dHA6Ly9saXN0cy53aGF0d2cub3JnL2h0ZGlnLmNnaS93aGF0
d2ctd2hhdHdnLm9yZy8yMDA5LU9jdG9iZXIvMDIzNzAzLmh0bWwKKworICAgICAgICBUZXN0OiBz
dG9yYWdlL2RvbXN0b3JhZ2UvZG9jdW1lbnRVUkkuaHRtbAorCisgICAgICAgICogc3RvcmFnZS9T
dG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VFdmVu
dERpc3BhdGNoZXI6OmRpc3BhdGNoKToKKwogMjAwOS0xMC0yMSAgRHVtaXRydSBEYW5pbGl1YyAg
PGR1bWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtv
di4KSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAJKHJl
dmlzaW9uIDQ5OTI5KQorKysgV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgU3RvcmFnZUV2ZW50RGlz
cGF0Y2hlcjo6ZGlzcGF0Y2goY28KICAgICAgICAgfQogCiAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBmcmFtZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBmcmFtZXNbaV0tPmRv
Y3VtZW50KCktPmRpc3BhdGNoV2luZG93RXZlbnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJjZUZyYW1l
LT5kb2N1bWVudCgpLT5kb2N1bWVudFVSSSgpLCBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5zZXNz
aW9uU3RvcmFnZSgpKSk7CisgICAgICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCktPmRpc3Bh
dGNoV2luZG93RXZlbnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VF
dmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51
cmwoKSwgZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+c2Vzc2lvblN0b3JhZ2UoKSkpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIC8vIFNlbmQgZXZlbnRzIHRvIGV2ZXJ5IHBhZ2UuCiAgICAgICAgIGNv
bnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9IHBhZ2UtPmdyb3VwKCkucGFnZXMoKTsKQEAgLTY4
LDcgKzY4LDcgQEAgdm9pZCBTdG9yYWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaChjbwogICAg
ICAgICB9CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyYW1lcy5zaXplKCk7
ICsraSkKLSAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5kb3dF
dmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXks
IG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPmRvY3VtZW50VVJJ
KCksIGZyYW1lc1tpXS0+ZG9tV2luZG93KCktPmxvY2FsU3RvcmFnZSgpKSk7CisgICAgICAgICAg
ICBmcmFtZXNbaV0tPmRvY3VtZW50KCktPmRpc3BhdGNoV2luZG93RXZlbnQoU3RvcmFnZUV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFs
dWUsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgZnJhbWVzW2ldLT5kb21XaW5kb3co
KS0+bG9jYWxTdG9yYWdlKCkpKTsKICAgICB9CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ5OTI5
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMDktMTAtMjEgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgU3RvcmFnZSBldmVudHMgc2hvdWxkIHVzZSBEb2N1bWVudDo6dXJsKCkgcmF0aGVyIHRo
YW4gZG9jdW1lbnRVUkkoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzA1MzUKKworICAgICAgICBTdG9yYWdlIGV2ZW50cyBzaG91bGQgdXNlIERvY3Vt
ZW50Ojp1cmwoKSByYXRoZXIgdGhhbiBEb2N1bWVudDo6ZG9jdW1lbnRVUkkoKQorICAgICAgICBw
ZXIgaHR0cDovL2xpc3RzLndoYXR3Zy5vcmcvaHRkaWcuY2dpL3doYXR3Zy13aGF0d2cub3JnLzIw
MDktT2N0b2Jlci8wMjM3MDMuaHRtbAorCisgICAgICAgIEFkZCBhIHRlc3QgZm9yIHRoaXMuICBT
aW5jZSBzdG9yYWdlIGV2ZW50cyBhcmUgc3luYywgcmUtb3JkZXIgd2hlbgorICAgICAgICBldmFs
QW5kTG9nIGxvZ3MgYW5kIGV2YWx1YXRlcyBpbnN0cnVjdGlvbnMuCisKKyAgICAgICAgKiBmYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qczoKKyAgICAgICAgKGV2YWxBbmRMb2cpOgorICAg
ICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVudFVSSS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVudFVSSS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAoZmlyc3RFdmVudCk6CisgICAgICAg
IChzZWNvbmRFdmVudCk6CisKIDIwMDktMTAtMjEgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcwkocmV2aXNpb24gNDk5
MjkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcwkod29y
a2luZyBjb3B5KQpAQCAtNzYsMTggKzc2LDE2IEBAIGZ1bmN0aW9uIGV2YWxBbmRMb2coX2EpCiB7
CiAgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIpCiAgICAgZGVidWcoIldBUk46IHRyeUFuZExv
ZygpIGV4cGVjdHMgYSBzdHJpbmcgYXJndW1lbnQiKTsKLSAgdmFyIGV4Y2VwdGlvbjsKKworICAv
LyBMb2cgZmlyc3QgaW4gY2FzZSB0aGluZ3MgZ28gaG9ycmlibHkgd3Jvbmcgb3IgdGhpcyBjYXVz
ZXMgYSBzeW5jIGV2ZW50LgorICBkZWJ1ZyhfYSk7CisKICAgdmFyIF9hdjsKICAgdHJ5IHsKICAg
ICAgX2F2ID0gZXZhbChfYSk7CiAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgZXhjZXB0aW9uID0gZTsK
KyAgICB0ZXN0RmFpbGVkKF9hICsgIiB0aHJldyBleGNlcHRpb24gIiArIGUpOwogICB9Ci0KLSAg
aWYgKGV4Y2VwdGlvbikKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiB0aHJldyBleGNlcHRpb24gIiAr
IGV4Y2VwdGlvbik7Ci0gIGVsc2UKLSAgICBkZWJ1ZyhfYSk7CiB9CiAKIGZ1bmN0aW9uIHNob3Vs
ZEJlKF9hLCBfYikKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVu
dFVSSS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL2RvY3VtZW50VVJJLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVudFVSSS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzcgQEAKK1Rlc3QgdGhhdCBjaGFuZ2luZyBkb2N1bWVudFVSSSBoYXMg
bm8gZWZmZWN0cyBvbiBzdG9yYWdlIGV2ZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1Rlc3Rpbmcgc2Vzc2lvblN0b3JhZ2UKK3N0b3JhZ2UuY2xlYXIoKQorUEFTUyBzdG9y
YWdlLmxlbmd0aCBpcyAwCit3aW5kb3cub25zdG9yYWdlID0gZmlyc3RFdmVudAorc3RvcmFnZS5m
b28gPSAnMTIzJworRmlyc3QgZXZlbnQgZmlyZWQKK1NhdmluZyBVUkkKK2RvY3VtZW50LmRvY3Vt
ZW50VVJJID0gJ2FiYycKK1BBU1MgZG9jdW1lbnQuZG9jdW1lbnRVUkkgaXMgImFiYyIKK3dpbmRv
dy5vbnN0b3JhZ2UgPSBzZWNvbmRFdmVudAorc3RvcmFnZS5mb28gPSAneHl6JworU2Vjb25kIGV2
ZW50IGZpcmVkCitQQVNTIHRydWUgaXMgdHJ1ZQorCisKK1Rlc3RpbmcgbG9jYWxTdG9yYWdlCitz
dG9yYWdlLmNsZWFyKCkKK1BBU1Mgc3RvcmFnZS5sZW5ndGggaXMgMAord2luZG93Lm9uc3RvcmFn
ZSA9IGZpcnN0RXZlbnQKK3N0b3JhZ2UuZm9vID0gJzEyMycKK0ZpcnN0IGV2ZW50IGZpcmVkCitT
YXZpbmcgVVJJCitkb2N1bWVudC5kb2N1bWVudFVSSSA9ICdhYmMnCitQQVNTIGRvY3VtZW50LmRv
Y3VtZW50VVJJIGlzICJhYmMiCit3aW5kb3cub25zdG9yYWdlID0gc2Vjb25kRXZlbnQKK3N0b3Jh
Z2UuZm9vID0gJ3h5eicKK1NlY29uZCBldmVudCBmaXJlZAorUEFTUyB0cnVlIGlzIHRydWUKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBM
YXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZG9jdW1lbnRVUkkuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZG9jdW1lbnRVUkkuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9kb2N1bWVudFVSSS5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL2RvY3VtZW50VVJJLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVzdHMvZG9j
dW1lbnRVUkkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L3NjcmlwdC10ZXN0cy9kb2N1bWVudFVSSS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3N0b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVzdHMvZG9jdW1lbnRVUkkuanMJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNTAgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgY2hhbmdpbmcgZG9j
dW1lbnRVUkkgaGFzIG5vIGVmZmVjdHMgb24gc3RvcmFnZSBldmVudHMuIik7CisKK2Z1bmN0aW9u
IHRlc3Qoc3RvcmFnZVN0cmluZykKK3sKKyAgICB3aW5kb3cuc3RvcmFnZSA9IGV2YWwoc3RvcmFn
ZVN0cmluZyk7CisgICAgaWYgKCFzdG9yYWdlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoc3RvcmFn
ZVN0cmluZyArICIgRE9FUyBOT1QgZXhpc3QiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGRlYnVnKCJUZXN0aW5nICIgKyBzdG9yYWdlU3RyaW5nKTsKKworICAgIHdpbmRvdy5vbnN0
b3JhZ2UgPSBudWxsOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuY2xlYXIoKSIpOworICAgIHNo
b3VsZEJlKCJzdG9yYWdlLmxlbmd0aCIsICIwIik7CisKKyAgICBldmFsQW5kTG9nKCJ3aW5kb3cu
b25zdG9yYWdlID0gZmlyc3RFdmVudCIpOworICAgIGV2YWxBbmRMb2coInN0b3JhZ2UuZm9vID0g
JzEyMyciKTsKK30KKworZnVuY3Rpb24gZmlyc3RFdmVudChlKQoreworICAgIGRlYnVnKCJGaXJz
dCBldmVudCBmaXJlZCIpOworICAgIGRlYnVnKCJTYXZpbmcgVVJJIik7CisgICAgd2luZG93Lmxh
c3RVUkkgPSBlLnVyaTsKKworICAgIGV2YWxBbmRMb2coImRvY3VtZW50LmRvY3VtZW50VVJJID0g
J2FiYyciKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmRvY3VtZW50VVJJ
IiwgImFiYyIpOworCisgICAgZXZhbEFuZExvZygid2luZG93Lm9uc3RvcmFnZSA9IHNlY29uZEV2
ZW50Iik7CisgICAgZXZhbEFuZExvZygic3RvcmFnZS5mb28gPSAneHl6JyIpOworfQorCitmdW5j
dGlvbiBzZWNvbmRFdmVudChlKQoreworICAgIGRlYnVnKCJTZWNvbmQgZXZlbnQgZmlyZWQiKTsK
KyAgICBzaG91bGRCZVRydWUoU3RyaW5nKHdpbmRvdy5sYXN0VVJJID09IGUudXJpKSk7CisKKyAg
ICBpZiAoZG9uZSkgeworICAgICAgICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
KyAgICAgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICB9Cit9CisKK3dpbmRvdy5kb25l
ID0gZmFsc2U7Cit0ZXN0KCJzZXNzaW9uU3RvcmFnZSIpOworZGVidWcoIiIpOworZGVidWcoIiIp
Oword2luZG93LmRvbmUgPSB0cnVlOwordGVzdCgibG9jYWxTdG9yYWdlIik7
</data>
<flag name="review"
          id="23052"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>