<?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>3905</bug_id>
          
          <creation_ts>2005-07-08 07:20:39 -0700</creation_ts>
          <short_desc>Missing &lt;/title&gt; makes page blank</short_desc>
          <delta_ts>2007-12-27 23:22:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>6314</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Peter Speck">speck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>annevk</cc>
    
    <cc>ap</cc>
    
    <cc>bugs-webkit</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ian</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>14182</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Speck">speck</who>
    <bug_when>2005-07-08 07:20:39 -0700</bug_when>
    <thetext>The &lt;/title&gt; end-tag is required by the html specification, but if it is missing, the page will be blank. 
Other browsers display the content of the page. WebKit should close the tag at &lt;/head&gt; or other tags 
which cannot be inside the &lt;title&gt; tag (e.g. &lt;meta&gt;).

Example:
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;
   &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;META HTTP-EQUIV=&quot;Content-Type&quot; CONTENT=&quot;text/html; charset=ISO-8859-1&quot;&gt;
&lt;title&gt;My title
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Heading !&lt;/h1&gt;
&lt;p&gt;para&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14183</commentid>
    <comment_count>1</comment_count>
      <attachid>2867</attachid>
    <who name="Peter Speck">speck</who>
    <bug_when>2005-07-08 07:21:50 -0700</bug_when>
    <thetext>Created attachment 2867
File with the above html contents AKA test-case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14210</commentid>
    <comment_count>2</comment_count>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2005-07-08 10:51:56 -0700</bug_when>
    <thetext>Confirmed, i guess &lt;/head&gt; should close an open &lt;title&gt; as well..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26822</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-27 14:29:18 -0800</bug_when>
    <thetext>Should be pretty simple to fix in the html parser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27799</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-01-05 11:00:22 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Should be pretty simple to fix in the html parser.

Looks like it&apos;s currently handled by the tokenizer, so I&apos;m cc:ing Adele per http://wiki.opendarwin.org/
index.php/WebKit:WebKit_Team</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28915</commentid>
    <comment_count>5</comment_count>
    <who name="Christopher Jerome">christopher_jerome</who>
    <bug_when>2006-01-19 09:24:49 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Confirmed, i guess &lt;/head&gt; should close an open &lt;title&gt; as well..

No, No!, I think that &lt;title&gt;this is a title bug report&lt;/title&gt; is the right way. Dont let those pesky non 
conforming webmasters do any non-standard bllllllllugh!

We should stick to the spec!
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28917</commentid>
    <comment_count>6</comment_count>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-01-19 09:56:54 -0800</bug_when>
    <thetext>Though i agree with the previous poster in that we should stick with the spec. However, our main concern 
is the user and not the webmaster. If we can display a page while not creating any other problems, we 
should.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33893</commentid>
    <comment_count>7</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2006-02-24 15:58:28 -0800</bug_when>
    <thetext>HTML5 has specific rules for handling un-closed &lt;/title&gt;.

Basically, what happens is that you parse the contents of &lt;title&gt; in a special tokeniser mode (treating &lt; characters as characters, not tag starts), and then if you get to the end of the document without seeing a &lt;/title&gt;, then you go all the way back to the &lt;title&gt;, and parse it again, as if it was a normal element with no special tokenisation, and the next start tag or end tag is where you close the &lt;title&gt; element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33964</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-25 08:07:05 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Basically, what happens is that you parse the contents of &lt;title&gt; in a special
&gt; tokeniser mode (treating &lt; characters as characters, not tag starts), and then
&gt; if you get to the end of the document without seeing a &lt;/title&gt;, then you go
&gt; all the way back to the &lt;title&gt;, and parse it again, as if it was a normal
&gt; element with no special tokenisation, and the next start tag or end tag is
&gt; where you close the &lt;title&gt; element.

The above method is the way Firefox 1.5.0.1 handles this case.  MSIE 6 currently handles it like Safari does now:  it reads the rest of the document as if it were the title #text, never finding the &lt;/title&gt; tag, then just stops parsing.

I have a patch for this that works.  I just need to make sure the state of the tokenizer is reset properly when backing up and reparsing after initially consuming the rest of the document.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33965</commentid>
    <comment_count>9</comment_count>
      <attachid>6730</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-25 08:17:30 -0800</bug_when>
    <thetext>Created attachment 6730
Torture test

This is a gzip-compressed torture test.  WARNING: It will expand to over 1 MB in size when uncompressed!

Basically, this is a 1 MB file with a missing &lt;/title&gt; tag that causes the tokenizer to consume the entire document.

With my current fix (patch coming soon), the page will render in about 12 seconds on a 1.5 GHz PB G4 with 1 GB RAM.  It spends 2-3 seconds consuming the document looking for &lt;/title&gt; (spinner pauses during this time), then backs up and reparses with no special handling of the title.

Firefox 1.5.0.1 on the same PB G4 takes a few MINUTES to parse the file, but eventually finishes and inserts the missing &lt;/title&gt; tag.  MSIE 6 on a 1.7 GHz IBM ThinkPad T42 with 2 GB RAM takes at least twice as long as Firefox, and just stops parsing after it reaches the end of the document with no &lt;/title&gt; tag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33968</commentid>
    <comment_count>10</comment_count>
      <attachid>6732</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-25 09:38:56 -0800</bug_when>
    <thetext>Created attachment 6732
Patch v1

Patch v1 includes a layout test and code fix.

The code fix is to determine when HTMLTokenizer::parseSpecial() has consumed the rest of the document looking for &lt;/title&gt; from within HTMLTokenizer::parseTag(), then reset the state of the tokenizer and retokenize with no special handling for the title.  The HTML parser will then take care of adding the missing &lt;/title&gt; tag.

NOTE: I&apos;m not sure whether the state of the tokenizer has been reset sufficiently in this patch!  Please verify this when reviewing the patch.  I reset &apos;src&apos; and &apos;lineno&apos;, but didn&apos;t really look at any other state variables.  There may be other tokenizer state variables that need to be reset!

I did run all of the layout tests and they all passed (except fast/js/date-constructor.html which has known issues).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33971</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-25 09:58:30 -0800</bug_when>
    <thetext>Conversation from IRC:

[11:45am] mitzpettel: ddkilzer: i&apos;m wondering if you can&apos;t detect &lt;title&gt; badness before reaching the very end of the document
[11:46am] ddkilzer: mitzpettel: how? 
[11:46am] mitzpettel: ddkilzer: e.g. as early as you see something that looks like a close tag?
[11:47am] mitzpettel: ddkilzer: (i&apos;m sure you&apos;ve given it more thought than i have so you probably can&apos;t do it that way)
[11:47am] ddkilzer: mitzpettel: What about this title:    &lt;title&gt;Using &lt;/junk&gt;&lt;/title&gt;
[11:47am] ddkilzer: mitzpettel: Not much more thought...I was looking for an easy solution that didn&apos;t impact normal parsing much.
[11:48am] ddkilzer: mitzpettel: To do what you&apos;re saying I&apos;d have to add more state variables or code in other parts of the tokenizer.
[11:48am] ddkilzer: s/parsing/tokenizing/
[11:48am] ddkilzer: (I think)
[11:49am] ddkilzer: mitzpettel: This solution does a relatively quick check (state.inTitle() &amp;&amp; src.isEmpty()) exactly after the tokenizer just ate the whole document, and is able to recover if needed.  This is also an exceptional case, so I don&apos;t really think the solution needs to be efficient.    I&apos;m also just doing what Hixie will be suggesting for HTML 5.
[11:50am] mitzpettel: ddkilzer: i see 
[11:50am] ddkilzer: In the normal case, the check will fall through after only state.inTitle() (which is a bit check), and not impact performance.  
[11:50am] ddkilzer: mitzpettel: Of course, reviewers may see it differently, but I understand what you&apos;re saying.
[11:51am] mitzpettel: ddkilzer: i guess the easy solution is the correct one in this case
[11:51am] ddkilzer: I had no idea title-tokenizing was much like tokenizing &lt;script&gt; stuff where &quot;anything goes&quot; until the &lt;/title&gt; tag appears.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33973</commentid>
    <comment_count>12</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-25 10:05:21 -0800</bug_when>
    <thetext>The bug lies in the HTML tokenizer, not the DOM.  Moving bug to &quot;WebKit Misc.&quot; component.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33975</commentid>
    <comment_count>13</comment_count>
      <attachid>6733</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-25 10:16:26 -0800</bug_when>
    <thetext>Created attachment 6733
Patch v2

*PAIN*  There was a curly brace that wasn&apos;t lined up properly in Patch v1.  Fixed in Patch v2.

All of the previous questions still apply, though. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33977</commentid>
    <comment_count>14</comment_count>
      <attachid>6734</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-25 11:11:32 -0800</bug_when>
    <thetext>Created attachment 6734
Test open &lt;title&gt; tag in &lt;body&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34011</commentid>
    <comment_count>15</comment_count>
      <attachid>6741</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-25 18:54:42 -0800</bug_when>
    <thetext>Created attachment 6741
Patch v3

Changes since Patch v2:

- Added a test for an unclosed &lt;title&gt; tag in the &lt;body&gt;, which failed with Patch v1 and v2.
- Added code to HTMLParser::parseToken() to handle condition when no &lt;/title&gt; tag exists.  Patch v1 and v2 handled this implicitly (probably in HTMLParser::handleError() when the &lt;/head&gt; tag was processed) for the first case (missing &lt;/title&gt; in &lt;head&gt;), but not for the second case (in the &lt;body&gt;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34013</commentid>
    <comment_count>16</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-25 18:57:05 -0800</bug_when>
    <thetext>Note that Firefox 1.5.0.1 and MSIE 6 handle an unclosed &lt;title&gt; tag in the body the same way they handle an unclosed &lt;title&gt; tag in the head.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34014</commentid>
    <comment_count>17</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-25 18:58:37 -0800</bug_when>
    <thetext>Finally, note that all layout tests passed (no pixel tests) with Patch v3.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34017</commentid>
    <comment_count>18</comment_count>
      <attachid>6741</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-25 20:03:53 -0800</bug_when>
    <thetext>Comment on attachment 6741
Patch v3

It&apos;s not good that this code calls SegmentedString::toString() before parsing any &lt;title&gt;. This undoes the SegmentedString optimization, by building a giant string out of all the separate pieces. And it&apos;s going to happen often since many documents have a &lt;title&gt; tag.

Instead, we should simply assign savedSrc to src, without calling toString. We will presumably have to write our own copy constructor because the m_currentChar field might be pointing to m_pushedChar1 or m_pushedChar2.

This code also relies on the assignment operator of SegmentedString working. Since we&apos;re using the compiler-generated one in that case we could have the same trouble, except that we&apos;re in the special case of a SegmentedString that was just created so we know that m_currentChar is not pointing to m_pushedChar1 or 2. So I think we need to implement operator= as well for SegmentedString.

This copy constructor and assignment operator should not be too terribly difficult, since m_currentChar is the only case where I think we need to do anything special.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34091</commentid>
    <comment_count>19</comment_count>
      <attachid>6753</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-26 22:08:31 -0800</bug_when>
    <thetext>Created attachment 6753
Patch v4

Changes since Patch v3:

- After further review the copy constructor and assignment operator mentioned in Comment #18 were not needed.  It was sufficient to save the state simply by using the default assignment operator in HTMLTokenizer::parseTag().
- Moved the code in HTMLParser::parseToken() into HTMLParser::handleError() [part 2] since that&apos;s where all the other cleanup code lives.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34176</commentid>
    <comment_count>20</comment_count>
      <attachid>6753</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-27 08:26:37 -0800</bug_when>
    <thetext>Comment on attachment 6753
Patch v4

In htmlParser.cpp, I don&apos;t know why the check n-&gt;isHTMLElement() is appropriate; it seems too strict. What about a non-HTML element after a &lt;title&gt; like a custom tag? It seems that the code could be simpler, more like the handling of addressTag, fontTag, dlTag, and dtTag.

I think it&apos;s OK to land the patch like this, but probably even better to simplify it more.

r=me anyway</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34237</commentid>
    <comment_count>21</comment_count>
      <attachid>6753</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-27 18:10:21 -0800</bug_when>
    <thetext>Comment on attachment 6753
Patch v4

I will simplify the patch and repost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34261</commentid>
    <comment_count>22</comment_count>
      <attachid>6769</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-27 21:05:11 -0800</bug_when>
    <thetext>Created attachment 6769
Patch v5

Changes since Patch v4:

- Removed unnecessary code from HTMLParser::handleError() per Comment #20.  If execution reaches this block of code, we know that the &apos;current&apos; element is &lt;title&gt; and that the next element to be inserted is not &lt;/title&gt; or a #text node (since we&apos;re in handleError()) so we can always pop &lt;title&gt; off the block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34275</commentid>
    <comment_count>23</comment_count>
      <attachid>6769</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-27 22:35:30 -0800</bug_when>
    <thetext>Comment on attachment 6769
Patch v5

We talked about it a little more and decided that we really do need to write a copy constructor and assignment operator for SegmentedString.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34421</commentid>
    <comment_count>24</comment_count>
      <attachid>6773</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-28 06:56:37 -0800</bug_when>
    <thetext>Created attachment 6773
Patch v6

Updates from Patch v5:

- Removed verbose comments from htmlparser.cpp patch.
- Added copy constructor and assignment operator to SegmentedString class.

Notes:

- In the SegmentedString class, I can&apos;t find any code where &quot;m_currentChar = &amp;m_pushedChar2&quot;, so I&apos;m not sure the middle else-if logic is really necessary in the copy constructor and assignment operator.
- I did not put the operator=() prototype next to the other operator prototypes in SegmentedString.h.  I thought it best to leave it by the copy constructor.  Let me know if this needs to be moved.
- All layout tests passed with this new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34432</commentid>
    <comment_count>25</comment_count>
      <attachid>6773</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-28 09:38:37 -0800</bug_when>
    <thetext>Comment on attachment 6773
Patch v6

I don&apos;t understand why we save lineno + src.lineCount() but then restore it into lineno; it seems like this will make lineno higher than it should be. I&apos;d like to see a test that checks that the line numbers are correct. To do that you&apos;ll have to figure out what the line numbers are used for.

I don&apos;t think the SegmentedString copy constructor should be in the header file and the assignment operator not. Either both should be inlined or neither. I&apos;d lean toward neither.

Because of the line number issue, I&apos;m going to mark this review-, but this looks nearly perfect!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34435</commentid>
    <comment_count>26</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-28 10:53:29 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; - In the SegmentedString class, I can&apos;t find any code where &quot;m_currentChar =
&gt; &amp;m_pushedChar2&quot;, so I&apos;m not sure the middle else-if logic is really necessary
&gt; in the copy constructor and assignment operator.

Good point. Probably OK to leave it out.

&gt; - I did not put the operator=() prototype next to the other operator prototypes
&gt; in SegmentedString.h.  I thought it best to leave it by the copy constructor. 
&gt; Let me know if this needs to be moved.

I think it&apos;s fine where it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34449</commentid>
    <comment_count>27</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-28 12:42:09 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 6773 [edit])
&gt; I don&apos;t understand why we save lineno + src.lineCount() but then restore it
&gt; into lineno; it seems like this will make lineno higher than it should be. I&apos;d
&gt; like to see a test that checks that the line numbers are correct. To do that
&gt; you&apos;ll have to figure out what the line numbers are used for.

The reason I used &quot;lineno + src.lineCount()&quot; was because the line numbers were off (confirmed via the debugger originally) when I was using &quot;SegmentedString savedSrc = SegmentedString(src.toString())&quot; instead of the copy constructor or assignment operator.  I&apos;ll verify that &quot;savedLineno = lineno&quot; works via the debugger again.

I&apos;ll also try to write a test for checking line numbers in the file, but I kind of doubt that the DOM or JavaScript has the concept of &quot;__LINE__&quot; for the file that&apos;s loaded, does it?  Hmm...maybe I can catch a JavaScript exception and get a line number for the script source in it, but that may only be relative to the script source, not the HTML source.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34654</commentid>
    <comment_count>28</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-03-01 10:37:43 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; Hmm...maybe I can catch a JavaScript exception and get
&gt; a line number for the script source in it,

Yes, that&apos;s the way to do it.

&gt; but that may only be relative to the script source, not the HTML source.

It should be relative to the HTML source. In fact, that&apos;s the only reason the tokenizer has a line number.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34922</commentid>
    <comment_count>29</comment_count>
      <attachid>6820</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-03-02 21:08:32 -0800</bug_when>
    <thetext>Created attachment 6820
Test case (bad DOM in &lt;script&gt;)

While writing a line-number test, I found a test document that did not parse correctly.  The &lt;script&gt; tag in the &lt;head&gt; has the entire contents of the file after &quot;&lt;title&gt;&quot; as its contents.  My guess is that some internal state of the tokenizer (or parser?) needs to be saved and restored, or the cleanup code in HTMLParser::handleError() isn&apos;t quite right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35162</commentid>
    <comment_count>30</comment_count>
      <attachid>6873</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-03-05 11:03:34 -0800</bug_when>
    <thetext>Created attachment 6873
Patch v7

Updates from Patch v6:

- Added fast/js/exception-linenums-in-html-1.html and fast/js/exception-linenums-in-html-2.html tests to verify correct line numbers in HTML per Comment #25.
- Added fast/js/missing-title-end-tag-js.html to cover issue found in Comment #29 (Attachment #6820).
- Moved SegmentedString copy constructor to .cpp file from .h file per Comment #25.
- In HTMLTokenizer::parseTag() when &lt;/title&gt; is missing:
  * Save and restore the whole State (not just the TagState).
  * Save and restore &quot;lineno&quot;, not &quot;lineno + src.lineCount()&quot;, per Comment #25.
  * Reset scriptCodeSize to zero when resetting state (due to code in an unconditional else clause at the end of the while loop of parseSpecial() which accumulates every character in the document in QChar* scriptCode while looking for &quot;&lt;/title&quot;).  This fixes the issue in Comment #29 (Attachment #6820).

Notes:

- I tried fixing the issue in Comment #29 (Attachment #6820) by adding conditions to the unconditional else clause near the end of the while loop in parseSpecial(), but everything I tried caused Safari to simply hang when tokenizing/parsing a document.  (&quot;Everything&quot; was &quot;if (!state.inTitle())&quot; and &quot;if (state.inScript())&quot;.)  It seems like a waste to me to update scriptCode unnecessarily if it&apos;s never used later (since it grows automatically), but I&apos;m not sure how to fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35169</commentid>
    <comment_count>31</comment_count>
      <attachid>6873</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-03-05 12:05:35 -0800</bug_when>
    <thetext>Comment on attachment 6873
Patch v7

Nice tests!

The part here that seems tricky is knowing how much of the tokenizer state we need to save and restore. In theory, all the state of both the tokenizer and the parser might have to be saved.

I&apos;m sure for individual fields we can prove why they don&apos;t need to be saved. But I&apos;m concerned that there are *so* many that we aren&apos;t saving and restoring.

Just to pick a couple of example, what about &quot;scriptCodeResync&quot;, &quot;pendingSrc&quot;, and &quot;currentPrependingSrc&quot;?

I&apos;m going to mark this review+, but I&apos;m concerned there are some new edge cases we&apos;re introducing here. Maybe more testing is the right thing to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35183</commentid>
    <comment_count>32</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-03-05 16:13:04 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; The part here that seems tricky is knowing how much of the tokenizer state we
&gt; need to save and restore. In theory, all the state of both the tokenizer and
&gt; the parser might have to be saved.
&gt; 
&gt; I&apos;m sure for individual fields we can prove why they don&apos;t need to be saved.
&gt; But I&apos;m concerned that there are *so* many that we aren&apos;t saving and restoring.
&gt; 
&gt; Just to pick a couple of example, what about &quot;scriptCodeResync&quot;, &quot;pendingSrc&quot;,
&gt; and &quot;currentPrependingSrc&quot;?

Within all of htmltokenizer.cpp, the only time that &quot;scriptCodeResync&quot; is set to a non-zero is in parseSpecial() when the end tag is found in the while() loop.  Since we know that &lt;/title&gt; is never found in the special case, we don&apos;t have to worry about resetting &quot;scriptCodeResync&quot;.

Also, &quot;pendingSrc&quot; and &quot;currentPrependingSrc&quot; (along with similarly-named variables) are used primarily in HTMLTokenizer::scriptHandler() and scriptExecution().  Since we&apos;re searching for a &lt;/title&gt; tag, this code is never run from parseSpecial() since state.inScript() is never true for this case.

I feel reasonably confident that we&apos;re not missing any state information, although &quot;saveState()&quot; and &quot;restoreState()&quot; methods on the tokenizer would have been nice to have for this patch.  :)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35478</commentid>
    <comment_count>33</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-03-07 20:28:26 -0800</bug_when>
    <thetext>Verified fixed as of r13202 (locally built).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36944</commentid>
    <comment_count>34</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-03-19 10:48:47 -0800</bug_when>
    <thetext>This fix needs to be backed out Bug 6314, Comment #19.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36952</commentid>
    <comment_count>35</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-03-19 12:00:24 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; This fix needs to be backed out Bug 6314, Comment #19.

While I did back out the fix for bug 6314, since this one doesn&apos;t have affects on major sites I think we could probably just fix this a new way without the intermediate step of backing this one&apos;s out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45417</commentid>
    <comment_count>36</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-06-12 08:32:03 -0700</bug_when>
    <thetext>Reassigning this bug back to webkit-unassigned in case anyone else is interested in fixing it.  I plan to look at it in a couple weeks.

Before this is fixed, an http test needs to be created that reliably reproduces the latest problem found (see Comment #34).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6061</commentid>
    <comment_count>37</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2007-06-27 13:57:58 -0700</bug_when>
    <thetext>Firefox does show a blank page and HTML5 currently requires that. Anything else would require some type of reparsing which is potentially dangerous in case of &lt;title&gt; iirc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65439</commentid>
    <comment_count>38</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2007-12-27 23:22:38 -0800</bug_when>
    <thetext>I believe this is INVALID. Reparsing is a security risk and HTML5 says not to. Other browsers are converging on that behaviour too.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>2867</attachid>
            <date>2005-07-08 07:21:50 -0700</date>
            <delta_ts>2005-07-08 07:21:50 -0700</delta_ts>
            <desc>File with the above html contents AKA test-case.</desc>
            <filename>missing-title-endtag.html</filename>
            <type>text/html</type>
            <size>271</size>
            <attacher name="Peter Speck">speck</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIKICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjxodG1sPgo8
aGVhZD4KPE1FVEEgSFRUUC1FUVVJVj0iQ29udGVudC1UeXBlIiBDT05URU5UPSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cjx0aXRsZT5NeSB0aXRsZQo8L2hlYWQ+Cjxib2R5Pgo8aDE+
SGVhZGluZyAhPC9oMT4KPHA+cGFyYTwvcD4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6730</attachid>
            <date>2006-02-25 08:17:30 -0800</date>
            <delta_ts>2006-02-25 08:19:16 -0800</delta_ts>
            <desc>Torture test</desc>
            <filename>bug-3905-torture-test.html.gz</filename>
            <type>application/x-gzip</type>
            <size>3675</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">H4sICFluAEQCA2J1Zy0zOTA1LXRvcnR1cmUtdGVzdC5odG1sAO3KQQrCMAAEwHtfUfqB3jXm5g/8
QEsCKUQrNAj9vVXwAd7nsgu7E0q719iFkqcUQ1tazfGbYfxOXZjXtB+Vlle/tb3my5CW7Vmn/dSX
JaX8OA8xjMcNQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAE
QRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQdAf
KN5K7q+P9JvGeU37p0u719i9AUbW6b1LgBIA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6732</attachid>
            <date>2006-02-25 09:38:56 -0800</date>
            <delta_ts>2006-02-25 10:16:26 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-3905-v1.diff</filename>
            <type>text/plain</type>
            <size>5605</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyOTg4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDYtMDItMjUgIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGtpbHplci5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgLSBUZXN0IGZvciBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hv
d19idWcuY2dpP2lkPTM5MDUKKyAgICAgICAgTWlzc2luZyA8L3RpdGxlPiBtYWtlcyBwYWdlIGJs
YW5rCisKKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvbWlzc2luZy10
aXRsZS1lbmR0YWctZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXpl
ci9taXNzaW5nLXRpdGxlLWVuZHRhZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLmh0bWw6IEFkZGVkLgorCiAyMDA2LTAy
LTI0ICBBbnR0aSBLb2l2aXN0byAgPGtvaXZpc3RvQGlraS5maT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBIeWF0dC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0
bGUtZW5kdGFnLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0
YWctZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKzg1M2RlMDA1
NjdkMTIxYmVhMGI3YmVjZTY2YTVkNjFjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3Npbmct
dGl0bGUtZW5kdGFnLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNiBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRl
ckNhbnZhcyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDUy
CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg1MgorICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDM2CisgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDc4NHgzNgorICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBz
aXplIDc3OXgzNgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI1ODogIlRoaXMg
ZG9jdW1lbnQgaXMgbWlzc2luZyBpdHMgPC90aXRsZT4gdGFnLiAiCisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDI1OCwwKSB3aWR0aCA1MjE6ICJUaGUgdG9rZW5pemVyIHNob3VsZCByZXRva2VuaXpl
IHRoaXMgZG9jdW1lbnQgYWZ0ZXIgY29uc3VtaW5nIGFsbCBvZiBpdCBsb29raW5nIGZvciIKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggNDAzOiAidGhlIG1pc3NpbmcgZW5kIHRh
ZywgdGhlbiBsZXQgdGhlIHBhcnNlciBjbGVhbiB1cCB0aGUgbWlzc2luZyB0YWcuICIKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNDAzLDE4KSB3aWR0aCAyNzogIlNlZSAiCisgICAgICAgIFJlbmRl
cklubGluZSB7QX0gYXQgKDAsMCkgc2l6ZSAxMjB4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAg
ICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDQzMCwxOCkgc2l6ZSAxMjB4MTgKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg0MzAsMTgpIHdpZHRoIDEyMDogIkJ1Z3ppbGxhIEJ1ZyAzOTA1IgorICAg
ICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoNTUwLDE4KSBzaXplIDR4MTgKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoNTUwLDE4KSB3aWR0aCA0OiAiLiIKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
dG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWcuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+
TXkgdGl0bGUKKzwvaGVhZD4KKzxib2R5PgorPGRpdj5UaGlzIGRvY3VtZW50IGlzIG1pc3Npbmcg
aXRzICZsdDsvdGl0bGUmZ3Q7IHRhZy4gIFRoZSB0b2tlbml6ZXIgc2hvdWxkIHJldG9rZW5pemUg
dGhpcyBkb2N1bWVudAorYWZ0ZXIgY29uc3VtaW5nIGFsbCBvZiBpdCBsb29raW5nIGZvciB0aGUg
bWlzc2luZyBlbmQgdGFnLCB0aGVuIGxldCB0aGUgcGFyc2VyIGNsZWFuIHVwIHRoZSBtaXNzaW5n
Cit0YWcuICBTZWUgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3df
YnVnLmNnaT9pZD0zOTA1Ij5CdWd6aWxsYSBCdWcgMzkwNTwvYT4uPC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVu
ZHRhZy1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQg
YXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoKUHJvcGVydHkgY2hh
bmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWct
ZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIGltYWdlL3Bu
ZwoKSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sdG9rZW5pemVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbHRva2VuaXplci5jcHAJKHJldmlzaW9uIDEyOTg4
KQorKysgV2ViQ29yZS9raHRtbC9odG1sL2h0bWx0b2tlbml6ZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjY5LDggKzEyNjksMTkgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXpl
cjo6cGFycwogICAgICAgICAgICAgICAgICAgICBzZWFyY2hTdG9wcGVyID0gdGl0bGVFbmQ7CiAg
ICAgICAgICAgICAgICAgICAgIHNlYXJjaFN0b3BwZXJMZW4gPSA3OwogICAgICAgICAgICAgICAg
ICAgICBzdGF0ZS5zZXRJblRpdGxlKHRydWUpOworICAgICAgICAgICAgICAgICAgICBTZWdtZW50
ZWRTdHJpbmcgc2F2ZWRTcmMgPSBTZWdtZW50ZWRTdHJpbmcoc3JjLnRvU3RyaW5nKCkpOworICAg
ICAgICAgICAgICAgICAgICBsb25nIHNhdmVkTGluZW5vID0gbGluZW5vICsgc3JjLmxpbmVDb3Vu
dCgpOwogICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlU3BlY2lhbChzcmMsIHN0YXRl
KTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5pblRp
dGxlKCkgJiYgc3JjLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ug
anVzdCBhdGUgdGhlIHJlc3Qgb2YgdGhlIGRvY3VtZW50IGFzIHRoZSB0aXRsZSAjdGV4dCBub2Rl
IQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gR28gYmFjayBhbmQgcmV0b2tlbml6ZSBpdCB3
aXRob3V0IHNwZWNpYWwgdGl0bGUgaGFuZGxpbmcgYW5kCisgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBsZXQgdGhlIGh0bWwgcGFyc2VyIGNsZWFuIHVwIHRoZSBtaXNzaW5nIDwvdGl0bGU+IHRh
Zy4KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluVGl0bGUoZmFsc2UpOworICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0VGFnU3RhdGUoTm9UYWcpOworICAgICAgICAg
ICAgICAgICAgICAgICAgc3JjID0gc2F2ZWRTcmM7CisgICAgICAgICAgICAgICAgICAgICAgICBs
aW5lbm8gPSBzYXZlZExpbmVubzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmICh0YWdOYW1lID09IHhtcFRhZykgewogICAgICAg
ICAgICAgICAgIGlmIChiZWdpblRhZykgewogICAgICAgICAgICAgICAgICAgICBzZWFyY2hTdG9w
cGVyID0geG1wRW5kOwpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyOTg4KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAwNi0wMi0yNSAgRGF2aWQgS2lsemVyICA8
ZGRraWx6ZXJAa2lsemVyLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAtIEZpeCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3No
b3dfYnVnLmNnaT9pZD0zOTA1CisgICAgICAgIE1pc3NpbmcgPC90aXRsZT4gbWFrZXMgcGFnZSBi
bGFuaworCisgICAgICAgIFRlc3Q6IGZhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFn
Lmh0bWwKKworICAgICAgICAqIGtodG1sL2h0bWwvaHRtbHRva2VuaXplci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpwYXJzZVRhZyk6IElmIHBhcnNlU3BlY2lhbCgpIGNv
bnN1bWVzIHRoZSByZXN0IG9mIHRoZQorICAgICAgICBkb2N1bWVudCBsb29raW5nIGZvciBhIDwv
dGl0bGU+IHRhZywgcmVzZXQgdGhlIHN0YXRlIG9mIHRoZSB0b2tlbml6ZXIgYW5kCisgICAgICAg
IHJldG9rZW5pemUgd2l0aCBubyBzcGVjaWFsIGhhbmRsaW5nIGZvciB0aGUgdGl0bGUuICBUaGUg
cGFyc2VyIHdpbGwgaGFuZGxlIHRoZQorICAgICAgICBtaXNzaW5nIDwvdGl0bGU+IHRhZy4KKwog
MjAwNi0wMi0yNCAgQW50dGkgS29pdmlzdG8gIDxrb2l2aXN0b0Bpa2kuZmk+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgSHlhdHQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6733</attachid>
            <date>2006-02-25 10:16:26 -0800</date>
            <delta_ts>2006-02-25 18:54:42 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-3905-v2.diff</filename>
            <type>text/plain</type>
            <size>5542</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyOTg4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDYtMDItMjUgIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGtpbHplci5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgLSBUZXN0IGZvciBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hv
d19idWcuY2dpP2lkPTM5MDUKKyAgICAgICAgTWlzc2luZyA8L3RpdGxlPiBtYWtlcyBwYWdlIGJs
YW5rCisKKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvbWlzc2luZy10
aXRsZS1lbmR0YWctZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXpl
ci9taXNzaW5nLXRpdGxlLWVuZHRhZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLmh0bWw6IEFkZGVkLgorCiAyMDA2LTAy
LTI0ICBBbnR0aSBLb2l2aXN0byAgPGtvaXZpc3RvQGlraS5maT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBIeWF0dC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0
bGUtZW5kdGFnLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0
YWctZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKzg1M2RlMDA1
NjdkMTIxYmVhMGI3YmVjZTY2YTVkNjFjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3Npbmct
dGl0bGUtZW5kdGFnLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNiBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRl
ckNhbnZhcyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDUy
CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg1MgorICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDM2CisgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDc4NHgzNgorICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBz
aXplIDc3OXgzNgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI1ODogIlRoaXMg
ZG9jdW1lbnQgaXMgbWlzc2luZyBpdHMgPC90aXRsZT4gdGFnLiAiCisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDI1OCwwKSB3aWR0aCA1MjE6ICJUaGUgdG9rZW5pemVyIHNob3VsZCByZXRva2VuaXpl
IHRoaXMgZG9jdW1lbnQgYWZ0ZXIgY29uc3VtaW5nIGFsbCBvZiBpdCBsb29raW5nIGZvciIKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggNDAzOiAidGhlIG1pc3NpbmcgZW5kIHRh
ZywgdGhlbiBsZXQgdGhlIHBhcnNlciBjbGVhbiB1cCB0aGUgbWlzc2luZyB0YWcuICIKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNDAzLDE4KSB3aWR0aCAyNzogIlNlZSAiCisgICAgICAgIFJlbmRl
cklubGluZSB7QX0gYXQgKDAsMCkgc2l6ZSAxMjB4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAg
ICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDQzMCwxOCkgc2l6ZSAxMjB4MTgKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg0MzAsMTgpIHdpZHRoIDEyMDogIkJ1Z3ppbGxhIEJ1ZyAzOTA1IgorICAg
ICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoNTUwLDE4KSBzaXplIDR4MTgKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoNTUwLDE4KSB3aWR0aCA0OiAiLiIKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
dG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWcuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+
TXkgdGl0bGUKKzwvaGVhZD4KKzxib2R5PgorPGRpdj5UaGlzIGRvY3VtZW50IGlzIG1pc3Npbmcg
aXRzICZsdDsvdGl0bGUmZ3Q7IHRhZy4gIFRoZSB0b2tlbml6ZXIgc2hvdWxkIHJldG9rZW5pemUg
dGhpcyBkb2N1bWVudAorYWZ0ZXIgY29uc3VtaW5nIGFsbCBvZiBpdCBsb29raW5nIGZvciB0aGUg
bWlzc2luZyBlbmQgdGFnLCB0aGVuIGxldCB0aGUgcGFyc2VyIGNsZWFuIHVwIHRoZSBtaXNzaW5n
Cit0YWcuICBTZWUgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3df
YnVnLmNnaT9pZD0zOTA1Ij5CdWd6aWxsYSBCdWcgMzkwNTwvYT4uPC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVu
ZHRhZy1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQg
YXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoKUHJvcGVydHkgY2hh
bmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWct
ZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIGltYWdlL3Bu
ZwoKSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sdG9rZW5pemVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbHRva2VuaXplci5jcHAJKHJldmlzaW9uIDEyOTg4
KQorKysgV2ViQ29yZS9raHRtbC9odG1sL2h0bWx0b2tlbml6ZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjY5LDcgKzEyNjksMTggQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXpl
cjo6cGFycwogICAgICAgICAgICAgICAgICAgICBzZWFyY2hTdG9wcGVyID0gdGl0bGVFbmQ7CiAg
ICAgICAgICAgICAgICAgICAgIHNlYXJjaFN0b3BwZXJMZW4gPSA3OwogICAgICAgICAgICAgICAg
ICAgICBzdGF0ZS5zZXRJblRpdGxlKHRydWUpOworICAgICAgICAgICAgICAgICAgICBTZWdtZW50
ZWRTdHJpbmcgc2F2ZWRTcmMgPSBTZWdtZW50ZWRTdHJpbmcoc3JjLnRvU3RyaW5nKCkpOworICAg
ICAgICAgICAgICAgICAgICBsb25nIHNhdmVkTGluZW5vID0gbGluZW5vICsgc3JjLmxpbmVDb3Vu
dCgpOwogICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlU3BlY2lhbChzcmMsIHN0YXRl
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLmluVGl0bGUoKSAmJiBzcmMuaXNFbXB0
eSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBqdXN0IGF0ZSB0aGUgcmVzdCBv
ZiB0aGUgZG9jdW1lbnQgYXMgdGhlIHRpdGxlICN0ZXh0IG5vZGUhCisgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBHbyBiYWNrIGFuZCByZXRva2VuaXplIGl0IHdpdGhvdXQgc3BlY2lhbCB0aXRs
ZSBoYW5kbGluZyBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxldCB0aGUgaHRtbCBw
YXJzZXIgY2xlYW4gdXAgdGhlIG1pc3NpbmcgPC90aXRsZT4gdGFnLgorICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhdGUuc2V0SW5UaXRsZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0ZS5zZXRUYWdTdGF0ZShOb1RhZyk7CisgICAgICAgICAgICAgICAgICAgICAgICBzcmMg
PSBzYXZlZFNyYzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVubyA9IHNhdmVkTGluZW5v
OworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fSBlbHNlIGlmICh0YWdOYW1lID09IHhtcFRhZykgewogICAgICAgICAgICAgICAgIGlmIChiZWdp
blRhZykgewpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyOTg4KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAwNi0wMi0yNSAgRGF2aWQgS2lsemVyICA8ZGRraWx6
ZXJAa2lsemVyLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAtIEZpeCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVn
LmNnaT9pZD0zOTA1CisgICAgICAgIE1pc3NpbmcgPC90aXRsZT4gbWFrZXMgcGFnZSBibGFuawor
CisgICAgICAgIFRlc3Q6IGZhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLmh0bWwK
KworICAgICAgICAqIGtodG1sL2h0bWwvaHRtbHRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVG9rZW5pemVyOjpwYXJzZVRhZyk6IElmIHBhcnNlU3BlY2lhbCgpIGNvbnN1bWVz
IHRoZSByZXN0IG9mIHRoZQorICAgICAgICBkb2N1bWVudCBsb29raW5nIGZvciBhIDwvdGl0bGU+
IHRhZywgcmVzZXQgdGhlIHN0YXRlIG9mIHRoZSB0b2tlbml6ZXIgYW5kCisgICAgICAgIHJldG9r
ZW5pemUgd2l0aCBubyBzcGVjaWFsIGhhbmRsaW5nIGZvciB0aGUgdGl0bGUuICBUaGUgcGFyc2Vy
IHdpbGwgaGFuZGxlIHRoZQorICAgICAgICBtaXNzaW5nIDwvdGl0bGU+IHRhZy4KKwogMjAwNi0w
Mi0yNCAgQW50dGkgS29pdmlzdG8gIDxrb2l2aXN0b0Bpa2kuZmk+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgSHlhdHQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6734</attachid>
            <date>2006-02-25 11:11:32 -0800</date>
            <delta_ts>2006-02-25 11:11:32 -0800</delta_ts>
            <desc>Test open &lt;title&gt; tag in &lt;body&gt;</desc>
            <filename>missing-title-endtag-2.html</filename>
            <type>text/html</type>
            <size>363</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8L2hlYWQ+Cjxib2R5Pgo8dGl0bGU+TXkgdGl0bGUKPGRpdj5UaGlzIGRv
Y3VtZW50IGlzIG1pc3NpbmcgaXRzICZsdDsvdGl0bGUmZ3Q7IHRhZy4gIFRoZSB0b2tlbml6ZXIg
c2hvdWxkIHJldG9rZW5pemUgdGhpcyBkb2N1bWVudAphZnRlciBjb25zdW1pbmcgYWxsIG9mIGl0
IGxvb2tpbmcgZm9yIHRoZSBtaXNzaW5nIGVuZCB0YWcsIHRoZW4gbGV0IHRoZSBwYXJzZXIgY2xl
YW4gdXAgdGhlIG1pc3NpbmcKdGFnLiAgU2VlIDxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5vcGVu
ZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkwNSI+QnVnemlsbGEgQnVnIDM5MDU8L2E+Ljwv
ZGl2Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6741</attachid>
            <date>2006-02-25 18:54:42 -0800</date>
            <delta_ts>2006-02-26 22:08:31 -0800</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-3905-v3.diff</filename>
            <type>text/plain</type>
            <size>9798</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyOTg5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDYtMDItMjUgIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGtpbHplci5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgLSBUZXN0cyBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3No
b3dfYnVnLmNnaT9pZD0zOTA1CisgICAgICAgIE1pc3NpbmcgPC90aXRsZT4gbWFrZXMgcGFnZSBi
bGFuaworCisgICAgICAgIFRoZSBmaXJzdCB0ZXN0IGNvbnRhaW5zIGFuIHVuY2xvc2VkIDx0aXRs
ZT4gdGFnIGluIDxoZWFkPiwgd2hpbGUKKyAgICAgICAgdGhlIHNlY29uZCB0ZXN0IGNvbnRhaW5z
IGFuIHVuY2xvc2VkIDx0aXRsZT4gdGFnIGluIDxib2R5Pi4KKworICAgICAgICAqIGZhc3QvdG9r
ZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTEtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTEtZXhwZWN0ZWQu
cG5nOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRh
Zy0xLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvbWlzc2lu
Zy10aXRsZS1lbmR0YWctMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9t
aXNzaW5nLXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLnBuZzogQWRk
ZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUt
ZW5kdGFnLTIuaHRtbDogQWRkZWQuCisKIDIwMDYtMDItMjUgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSUyBieSBtanMuCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0xLWV4cGVjdGVkLmNoZWNrc3VtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5k
dGFnLTEtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0xLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxIEBACis3OTIwNmM5Mzc5ZDJhZTA1MTBhMDIxZDk3NjM4NTJjNApc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9rZW5p
emVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTItZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMi1leHBl
Y3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVy
L21pc3NpbmctdGl0bGUtZW5kdGFnLTItZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEgQEAKKzc5YWNlZTk0NTVhMjc0MDFiNjQ3ZjAyNjZiYzg4ZWMxClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2lu
Zy10aXRsZS1lbmR0YWctMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdG9r
ZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTIuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxMSBAQAorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5Pgor
PHRpdGxlPk15IHRpdGxlCis8ZGl2PlRoaXMgZG9jdW1lbnQgaXMgbWlzc2luZyBpdHMgJmx0Oy90
aXRsZSZndDsgdGFnIGluIGl0cyBib2R5LiAgVGhlIHRva2VuaXplciBzaG91bGQgcmV0b2tlbml6
ZQordGhpcyBkb2N1bWVudCBhZnRlciBjb25zdW1pbmcgYWxsIG9mIGl0IGxvb2tpbmcgZm9yIHRo
ZSBtaXNzaW5nIGVuZCB0YWcsIHRoZW4gbGV0IHRoZSBwYXJzZXIgY2xlYW4KK3VwIHRoZSBtaXNz
aW5nIHRhZy4KK1NlZSA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hv
d19idWcuY2dpP2lkPTM5MDUiPkJ1Z3ppbGxhIEJ1ZyAzOTA1PC9hPi48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUt
ZW5kdGFnLTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdG9r
ZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMS1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJDYW52YXMgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg1MgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4NTIKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgzNgorICAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MzYKKyAgICAgICAgUmVuZGVyVGV4
dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSA3NzN4MzYKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAzMjY6ICJUaGlzIGRvY3VtZW50IGlzIG1pc3NpbmcgaXRzIDwvdGl0bGU+IHRhZyBp
biBpdHMgaGVhZC4gIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgzMjYsMCkgd2lkdGggNDQ3OiAi
VGhlIHRva2VuaXplciBzaG91bGQgcmV0b2tlbml6ZSB0aGlzIGRvY3VtZW50IGFmdGVyIGNvbnN1
bWluZyBhbGwgb2YgaXQiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDUwNDog
Imxvb2tpbmcgZm9yIHRoZSBtaXNzaW5nIGVuZCB0YWcsIHRoZW4gbGV0IHRoZSBwYXJzZXIgY2xl
YW4gdXAgdGhlIG1pc3NpbmcgdGFnLiBTZWUgIgorICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0
ICgwLDApIHNpemUgMTIweDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAgIFJlbmRlclRleHQg
e1RFWFR9IGF0ICg1MDQsMTgpIHNpemUgMTIweDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
NTA0LDE4KSB3aWR0aCAxMjA6ICJCdWd6aWxsYSBCdWcgMzkwNSIKKyAgICAgICAgUmVuZGVyVGV4
dCB7VEVYVH0gYXQgKDYyNCwxOCkgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDYy
NCwxOCkgd2lkdGggNDogIi4iCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNz
aW5nLXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5
OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5n
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5n
LXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5
cGUKICAgKyBpbWFnZS9wbmcKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNz
aW5nLXRpdGxlLWVuZHRhZy0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90
b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMS5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDExIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPk15IHRpdGxl
Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXY+VGhpcyBkb2N1bWVudCBpcyBtaXNzaW5nIGl0cyAmbHQ7
L3RpdGxlJmd0OyB0YWcgaW4gaXRzIGhlYWQuICBUaGUgdG9rZW5pemVyIHNob3VsZCByZXRva2Vu
aXplCit0aGlzIGRvY3VtZW50IGFmdGVyIGNvbnN1bWluZyBhbGwgb2YgaXQgbG9va2luZyBmb3Ig
dGhlIG1pc3NpbmcgZW5kIHRhZywgdGhlbiBsZXQgdGhlIHBhcnNlciBjbGVhbgordXAgdGhlIG1p
c3NpbmcgdGFnLgorU2VlIDxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzkwNSI+QnVnemlsbGEgQnVnIDM5MDU8L2E+LjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRs
ZS1lbmR0YWctMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90
b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0yLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlckNhbnZhcyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Cisg
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHgzNgorICAgICAgICBSZW5k
ZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDc3NXgzNgorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDMyODogIlRoaXMgZG9jdW1lbnQgaXMgbWlzc2luZyBpdHMgPC90aXRsZT4g
dGFnIGluIGl0cyBib2R5LiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDMyOCwwKSB3aWR0aCA0
NDc6ICJUaGUgdG9rZW5pemVyIHNob3VsZCByZXRva2VuaXplIHRoaXMgZG9jdW1lbnQgYWZ0ZXIg
Y29uc3VtaW5nIGFsbCBvZiBpdCIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGgg
NTA0OiAibG9va2luZyBmb3IgdGhlIG1pc3NpbmcgZW5kIHRhZywgdGhlbiBsZXQgdGhlIHBhcnNl
ciBjbGVhbiB1cCB0aGUgbWlzc2luZyB0YWcuIFNlZSAiCisgICAgICAgIFJlbmRlcklubGluZSB7
QX0gYXQgKDAsMCkgc2l6ZSAxMjB4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAgICAgUmVuZGVy
VGV4dCB7VEVYVH0gYXQgKDUwNCwxOCkgc2l6ZSAxMjB4MTgKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICg1MDQsMTgpIHdpZHRoIDEyMDogIkJ1Z3ppbGxhIEJ1ZyAzOTA1IgorICAgICAgICBSZW5k
ZXJUZXh0IHtURVhUfSBhdCAoNjI0LDE4KSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNjI0LDE4KSB3aWR0aCA0OiAiLiIKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVy
L21pc3NpbmctdGl0bGUtZW5kdGFnLTEtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRp
c3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFn
ZS9wbmcKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21p
c3NpbmctdGl0bGUtZW5kdGFnLTEtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1p
bWUtdHlwZQogICArIGltYWdlL3BuZwoKSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1scGFy
c2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbHBhcnNlci5jcHAJ
KHJldmlzaW9uIDEyOTg4KQorKysgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxwYXJzZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xODMsNiArMTgzLDEyIEBAIFBhc3NSZWZQdHI8Tm9kZUltcGw+IEhU
TUxQYXJzZXI6OnBhcnNlVG8KICAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAorICAgIC8v
IFRoZSB0b2tlbml6ZXIgd2lsbCBvbmx5IHNlbmQgYWRkaXRpb25hbCBIVE1MIHRhZ3MgYWZ0ZXIg
YSA8dGl0bGU+CisgICAgLy8gYmVnaW4gdGFnIGlmIG5vIGNsb3NpbmcgPC90aXRsZT4gdGFnIHdh
cyBmb3VuZCwgc28gd2UgbXVzdCBjbG9zZQorICAgIC8vIGl0IG91cnNlbHZlcyBpZiB0aGlzIGNv
bmRpdGlvbiBvY2N1cnMuCisgICAgaWYgKGN1cnJlbnQtPmxvY2FsTmFtZSgpID09IHRpdGxlVGFn
ICYmIHQtPnRhZ05hbWUgIT0gdGV4dEF0b20gJiYgdC0+dGFnTmFtZSAhPSBjdXJyZW50LT5sb2Nh
bE5hbWUoKSkKKyAgICAgICAgcG9wQmxvY2soY3VycmVudC0+bG9jYWxOYW1lKCkpOworCiAgICAg
Ly8gQXBwYXJlbnRseSBzb21lIHNpdGVzIHVzZSA8L2JyPiBpbnN0ZWFkIG9mIDxicj4uICBCZSBj
b21wYXRpYmxlIHdpdGggSUUgYW5kIEZpcmVmb3ggYW5kIHRyZWF0IHRoaXMgbGlrZSA8YnI+Lgog
ICAgIGlmICh0LT5pc0Nsb3NlVGFnKGJyVGFnKSAmJiBkb2MoKS0+aW5Db21wYXRNb2RlKCkpCiAg
ICAgICAgIHQtPmJlZ2luVGFnID0gdHJ1ZTsKSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1s
dG9rZW5pemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbHRva2Vu
aXplci5jcHAJKHJldmlzaW9uIDEyOTg4KQorKysgV2ViQ29yZS9raHRtbC9odG1sL2h0bWx0b2tl
bml6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjY5LDcgKzEyNjksMTkgQEAgSFRNTFRva2Vu
aXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFycwogICAgICAgICAgICAgICAgICAgICBzZWFy
Y2hTdG9wcGVyID0gdGl0bGVFbmQ7CiAgICAgICAgICAgICAgICAgICAgIHNlYXJjaFN0b3BwZXJM
ZW4gPSA3OwogICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJblRpdGxlKHRydWUpOworICAg
ICAgICAgICAgICAgICAgICBUYWdTdGF0ZSBzYXZlZFRhZ1N0YXRlID0gc3RhdGUudGFnU3RhdGUo
KTsKKyAgICAgICAgICAgICAgICAgICAgU2VnbWVudGVkU3RyaW5nIHNhdmVkU3JjID0gU2VnbWVu
dGVkU3RyaW5nKHNyYy50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgbG9uZyBzYXZl
ZExpbmVubyA9IGxpbmVubyArIHNyYy5saW5lQ291bnQoKTsKICAgICAgICAgICAgICAgICAgICAg
c3RhdGUgPSBwYXJzZVNwZWNpYWwoc3JjLCBzdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgIGlm
IChzdGF0ZS5pblRpdGxlKCkgJiYgc3JjLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gV2UganVzdCBhdGUgdGhlIHJlc3Qgb2YgdGhlIGRvY3VtZW50IGFzIHRoZSB0aXRs
ZSAjdGV4dCBub2RlIQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gR28gYmFjayBhbmQgcmV0
b2tlbml6ZSBpdCB3aXRob3V0IHNwZWNpYWwgdGl0bGUgaGFuZGxpbmcgYW5kCisgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBsZXQgdGhlIGh0bWwgcGFyc2VyIGNsZWFuIHVwIHRoZSBtaXNzaW5n
IDwvdGl0bGU+IHRhZy4KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluVGl0bGUo
ZmFsc2UpOworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0VGFnU3RhdGUoc2F2ZWRU
YWdTdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzcmMgPSBzYXZlZFNyYzsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxpbmVubyA9IHNhdmVkTGluZW5vOworICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmICh0YWdOYW1l
ID09IHhtcFRhZykgewogICAgICAgICAgICAgICAgIGlmIChiZWdpblRhZykgewpJbmRleDogV2Vi
Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDEyOTg5KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwy
MiBAQAorMjAwNi0wMi0yNSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAa2lsemVyLm5ldD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIEZpeCBmb3Ig
aHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTA1CisgICAg
ICAgIE1pc3NpbmcgPC90aXRsZT4gbWFrZXMgcGFnZSBibGFuaworCisgICAgICAgIFRlc3Q6IGZh
c3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTEuaHRtbAorICAgICAgICBUZXN0OiBm
YXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0yLmh0bWwKKworICAgICAgICAqIGto
dG1sL2h0bWwvaHRtbHBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGFyc2VyOjpw
YXJzZVRva2VuKTogQWRkIGNoZWNrIGZvciBtaXNzaW5nIDwvdGl0bGU+IHRhZyBhbmQgaGFuZGxl
CisgICAgICAgIHRoaXMgY29uZGl0aW9uIGlmIGlkZW50aWZpZWQuCisgICAgICAgICoga2h0bWwv
aHRtbC9odG1sdG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6
OnBhcnNlVGFnKTogSWYgcGFyc2VTcGVjaWFsKCkgY29uc3VtZXMgdGhlIHJlc3Qgb2YgdGhlCisg
ICAgICAgIGRvY3VtZW50IGxvb2tpbmcgZm9yIGEgPC90aXRsZT4gdGFnLCByZXNldCB0aGUgc3Rh
dGUgb2YgdGhlIHRva2VuaXplciBhbmQKKyAgICAgICAgcmV0b2tlbml6ZSB3aXRoIG5vIHNwZWNp
YWwgaGFuZGxpbmcgZm9yIHRoZSB0aXRsZS4gIFRoZSBwYXJzZXIgd2lsbCBoYW5kbGUgdGhlCisg
ICAgICAgIG1pc3NpbmcgPC90aXRsZT4gdGFnLgorCiAyMDA2LTAyLTI0ICBBbnR0aSBLb2l2aXN0
byAgPGtvaXZpc3RvQGlraS5maT4KIAogICAgICAgICBSZXZpZXdlZCBieSBIeWF0dC4K
</data>
<flag name="review"
          id="1711"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6753</attachid>
            <date>2006-02-26 22:08:31 -0800</date>
            <delta_ts>2006-02-27 21:05:35 -0800</delta_ts>
            <desc>Patch v4</desc>
            <filename>bug-3905-v4.diff</filename>
            <type>text/plain</type>
            <size>9864</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyOTkwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDYtMDItMjUgIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGtpbHplci5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgLSBUZXN0cyBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3No
b3dfYnVnLmNnaT9pZD0zOTA1CisgICAgICAgIE1pc3NpbmcgPC90aXRsZT4gbWFrZXMgcGFnZSBi
bGFuaworCisgICAgICAgIFRoZSBmaXJzdCB0ZXN0IGNvbnRhaW5zIGFuIHVuY2xvc2VkIDx0aXRs
ZT4gdGFnIGluIDxoZWFkPiwgd2hpbGUKKyAgICAgICAgdGhlIHNlY29uZCB0ZXN0IGNvbnRhaW5z
IGFuIHVuY2xvc2VkIDx0aXRsZT4gdGFnIGluIDxib2R5Pi4KKworICAgICAgICAqIGZhc3QvdG9r
ZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTEtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTEtZXhwZWN0ZWQu
cG5nOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRh
Zy0xLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvbWlzc2lu
Zy10aXRsZS1lbmR0YWctMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9t
aXNzaW5nLXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLnBuZzogQWRk
ZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUt
ZW5kdGFnLTIuaHRtbDogQWRkZWQuCisKIDIwMDYtMDItMjUgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSUyBieSBtanMuCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0xLWV4cGVjdGVkLmNoZWNrc3VtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5k
dGFnLTEtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0xLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxIEBACis3OTIwNmM5Mzc5ZDJhZTA1MTBhMDIxZDk3NjM4NTJjNApc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9rZW5p
emVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTItZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMi1leHBl
Y3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVy
L21pc3NpbmctdGl0bGUtZW5kdGFnLTItZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEgQEAKKzc5YWNlZTk0NTVhMjc0MDFiNjQ3ZjAyNjZiYzg4ZWMxClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2lu
Zy10aXRsZS1lbmR0YWctMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdG9r
ZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTIuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxMSBAQAorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5Pgor
PHRpdGxlPk15IHRpdGxlCis8ZGl2PlRoaXMgZG9jdW1lbnQgaXMgbWlzc2luZyBpdHMgJmx0Oy90
aXRsZSZndDsgdGFnIGluIGl0cyBib2R5LiAgVGhlIHRva2VuaXplciBzaG91bGQgcmV0b2tlbml6
ZQordGhpcyBkb2N1bWVudCBhZnRlciBjb25zdW1pbmcgYWxsIG9mIGl0IGxvb2tpbmcgZm9yIHRo
ZSBtaXNzaW5nIGVuZCB0YWcsIHRoZW4gbGV0IHRoZSBwYXJzZXIgY2xlYW4KK3VwIHRoZSBtaXNz
aW5nIHRhZy4KK1NlZSA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hv
d19idWcuY2dpP2lkPTM5MDUiPkJ1Z3ppbGxhIEJ1ZyAzOTA1PC9hPi48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUt
ZW5kdGFnLTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdG9r
ZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMS1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJDYW52YXMgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg1MgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4NTIKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgzNgorICAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MzYKKyAgICAgICAgUmVuZGVyVGV4
dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSA3NzN4MzYKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAzMjY6ICJUaGlzIGRvY3VtZW50IGlzIG1pc3NpbmcgaXRzIDwvdGl0bGU+IHRhZyBp
biBpdHMgaGVhZC4gIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgzMjYsMCkgd2lkdGggNDQ3OiAi
VGhlIHRva2VuaXplciBzaG91bGQgcmV0b2tlbml6ZSB0aGlzIGRvY3VtZW50IGFmdGVyIGNvbnN1
bWluZyBhbGwgb2YgaXQiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDUwNDog
Imxvb2tpbmcgZm9yIHRoZSBtaXNzaW5nIGVuZCB0YWcsIHRoZW4gbGV0IHRoZSBwYXJzZXIgY2xl
YW4gdXAgdGhlIG1pc3NpbmcgdGFnLiBTZWUgIgorICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0
ICgwLDApIHNpemUgMTIweDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAgIFJlbmRlclRleHQg
e1RFWFR9IGF0ICg1MDQsMTgpIHNpemUgMTIweDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
NTA0LDE4KSB3aWR0aCAxMjA6ICJCdWd6aWxsYSBCdWcgMzkwNSIKKyAgICAgICAgUmVuZGVyVGV4
dCB7VEVYVH0gYXQgKDYyNCwxOCkgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDYy
NCwxOCkgd2lkdGggNDogIi4iCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNz
aW5nLXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5
OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5n
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5n
LXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5
cGUKICAgKyBpbWFnZS9wbmcKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNz
aW5nLXRpdGxlLWVuZHRhZy0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90
b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMS5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDExIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPk15IHRpdGxl
Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXY+VGhpcyBkb2N1bWVudCBpcyBtaXNzaW5nIGl0cyAmbHQ7
L3RpdGxlJmd0OyB0YWcgaW4gaXRzIGhlYWQuICBUaGUgdG9rZW5pemVyIHNob3VsZCByZXRva2Vu
aXplCit0aGlzIGRvY3VtZW50IGFmdGVyIGNvbnN1bWluZyBhbGwgb2YgaXQgbG9va2luZyBmb3Ig
dGhlIG1pc3NpbmcgZW5kIHRhZywgdGhlbiBsZXQgdGhlIHBhcnNlciBjbGVhbgordXAgdGhlIG1p
c3NpbmcgdGFnLgorU2VlIDxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzkwNSI+QnVnemlsbGEgQnVnIDM5MDU8L2E+LjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRs
ZS1lbmR0YWctMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90
b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0yLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlckNhbnZhcyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Cisg
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHgzNgorICAgICAgICBSZW5k
ZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDc3NXgzNgorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDMyODogIlRoaXMgZG9jdW1lbnQgaXMgbWlzc2luZyBpdHMgPC90aXRsZT4g
dGFnIGluIGl0cyBib2R5LiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDMyOCwwKSB3aWR0aCA0
NDc6ICJUaGUgdG9rZW5pemVyIHNob3VsZCByZXRva2VuaXplIHRoaXMgZG9jdW1lbnQgYWZ0ZXIg
Y29uc3VtaW5nIGFsbCBvZiBpdCIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGgg
NTA0OiAibG9va2luZyBmb3IgdGhlIG1pc3NpbmcgZW5kIHRhZywgdGhlbiBsZXQgdGhlIHBhcnNl
ciBjbGVhbiB1cCB0aGUgbWlzc2luZyB0YWcuIFNlZSAiCisgICAgICAgIFJlbmRlcklubGluZSB7
QX0gYXQgKDAsMCkgc2l6ZSAxMjB4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAgICAgUmVuZGVy
VGV4dCB7VEVYVH0gYXQgKDUwNCwxOCkgc2l6ZSAxMjB4MTgKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICg1MDQsMTgpIHdpZHRoIDEyMDogIkJ1Z3ppbGxhIEJ1ZyAzOTA1IgorICAgICAgICBSZW5k
ZXJUZXh0IHtURVhUfSBhdCAoNjI0LDE4KSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNjI0LDE4KSB3aWR0aCA0OiAiLiIKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVy
L21pc3NpbmctdGl0bGUtZW5kdGFnLTEtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRp
c3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFn
ZS9wbmcKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21p
c3NpbmctdGl0bGUtZW5kdGFnLTEtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1p
bWUtdHlwZQogICArIGltYWdlL3BuZwoKSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1scGFy
c2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbHBhcnNlci5jcHAJ
KHJldmlzaW9uIDEyOTkwKQorKysgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxwYXJzZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NjcsNiArNDY3LDE0IEBAIGJvb2wgSFRNTFBhcnNlcjo6aGFuZGxl
RXJyb3IoTm9kZUltcGwqIG4KICAgICAgICAgICAgICAgICAgICAgaGFuZGxlZCA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGgtPmhh
c0xvY2FsTmFtZSh0aXRsZVRhZykpIHsKKyAgICAgICAgICAgIC8vIFRoZSB0b2tlbml6ZXIgd2ls
bCBvbmx5IHNlbmQgYWRkaXRpb25hbCBIVE1MIHRhZ3MgYWZ0ZXIgYSA8dGl0bGU+CisgICAgICAg
ICAgICAvLyBiZWdpbiB0YWcgaWYgbm8gY2xvc2luZyA8L3RpdGxlPiB0YWcgd2FzIGZvdW5kLCBz
byB3ZSBtdXN0IGNsb3NlCisgICAgICAgICAgICAvLyBpdCBvdXJzZWx2ZXMgaWYgdGhpcyBjb25k
aXRpb24gb2NjdXJzLgorICAgICAgICAgICAgaWYgKG4tPmlzSFRNTEVsZW1lbnQoKSAmJiAhaC0+
aGFzTG9jYWxOYW1lKG4tPmxvY2FsTmFtZSgpKSkgeworICAgICAgICAgICAgICAgIHBvcEJsb2Nr
KGgtPmxvY2FsTmFtZSgpKTsKKyAgICAgICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChoLT5oYXNMb2NhbE5hbWUoY2FwdGlvblRhZykp
IHsKICAgICAgICAgICAgIC8vIElsbGVnYWwgY29udGVudCBpbiBhIGNhcHRpb24uIENsb3NlIHRo
ZSBjYXB0aW9uIGFuZCB0cnkgYWdhaW4uCiAgICAgICAgICAgICBwb3BCbG9jayhjdXJyZW50VGFn
TmFtZSk7CkluZGV4OiBXZWJDb3JlL2todG1sL2h0bWwvaHRtbHRva2VuaXplci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0bWx0b2tlbml6ZXIuY3BwCShyZXZpc2lvbiAx
Mjk5MCkKKysrIFdlYkNvcmUva2h0bWwvaHRtbC9odG1sdG9rZW5pemVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTI2OSw3ICsxMjY5LDE5IEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tl
bml6ZXI6OnBhcnMKICAgICAgICAgICAgICAgICAgICAgc2VhcmNoU3RvcHBlciA9IHRpdGxlRW5k
OwogICAgICAgICAgICAgICAgICAgICBzZWFyY2hTdG9wcGVyTGVuID0gNzsKICAgICAgICAgICAg
ICAgICAgICAgc3RhdGUuc2V0SW5UaXRsZSh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgVGFn
U3RhdGUgc2F2ZWRUYWdTdGF0ZSA9IHN0YXRlLnRhZ1N0YXRlKCk7CisgICAgICAgICAgICAgICAg
ICAgIFNlZ21lbnRlZFN0cmluZyBzYXZlZFNyYyA9IHNyYzsKKyAgICAgICAgICAgICAgICAgICAg
bG9uZyBzYXZlZExpbmVubyA9IGxpbmVubyArIHNyYy5saW5lQ291bnQoKTsKICAgICAgICAgICAg
ICAgICAgICAgc3RhdGUgPSBwYXJzZVNwZWNpYWwoc3JjLCBzdGF0ZSk7CisgICAgICAgICAgICAg
ICAgICAgIGlmIChzdGF0ZS5pblRpdGxlKCkgJiYgc3JjLmlzRW1wdHkoKSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gV2UganVzdCBhdGUgdGhlIHJlc3Qgb2YgdGhlIGRvY3VtZW50IGFz
IHRoZSB0aXRsZSAjdGV4dCBub2RlIQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gR28gYmFj
ayBhbmQgcmV0b2tlbml6ZSBpdCB3aXRob3V0IHNwZWNpYWwgdGl0bGUgaGFuZGxpbmcgYW5kCisg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBsZXQgdGhlIGh0bWwgcGFyc2VyIGNsZWFuIHVwIHRo
ZSBtaXNzaW5nIDwvdGl0bGU+IHRhZy4KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNl
dEluVGl0bGUoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0VGFnU3Rh
dGUoc2F2ZWRUYWdTdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzcmMgPSBzYXZlZFNy
YzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVubyA9IHNhdmVkTGluZW5vOworICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlm
ICh0YWdOYW1lID09IHhtcFRhZykgewogICAgICAgICAgICAgICAgIGlmIChiZWdpblRhZykgewpJ
bmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDEyOTkwKQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwyMiBAQAorMjAwNi0wMi0yNSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAa2lsemVy
Lm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAt
IEZpeCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0z
OTA1CisgICAgICAgIE1pc3NpbmcgPC90aXRsZT4gbWFrZXMgcGFnZSBibGFuaworCisgICAgICAg
IFRlc3Q6IGZhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTEuaHRtbAorICAgICAg
ICBUZXN0OiBmYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0yLmh0bWwKKworICAg
ICAgICAqIGtodG1sL2h0bWwvaHRtbHBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
UGFyc2VyOjpwYXJzZVRva2VuKTogQWRkIGNoZWNrIGZvciBtaXNzaW5nIDwvdGl0bGU+IHRhZyBh
bmQgaGFuZGxlCisgICAgICAgIHRoaXMgY29uZGl0aW9uIGlmIGlkZW50aWZpZWQuCisgICAgICAg
ICoga2h0bWwvaHRtbC9odG1sdG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxU
b2tlbml6ZXI6OnBhcnNlVGFnKTogSWYgcGFyc2VTcGVjaWFsKCkgY29uc3VtZXMgdGhlIHJlc3Qg
b2YgdGhlCisgICAgICAgIGRvY3VtZW50IGxvb2tpbmcgZm9yIGEgPC90aXRsZT4gdGFnLCByZXNl
dCB0aGUgc3RhdGUgb2YgdGhlIHRva2VuaXplciBhbmQKKyAgICAgICAgcmV0b2tlbml6ZSB3aXRo
IG5vIHNwZWNpYWwgaGFuZGxpbmcgZm9yIHRoZSB0aXRsZS4gIFRoZSBwYXJzZXIgd2lsbCBoYW5k
bGUgdGhlCisgICAgICAgIG1pc3NpbmcgPC90aXRsZT4gdGFnLgorCiAyMDA2LTAyLTI0ICBBbnR0
aSBLb2l2aXN0byAgPGtvaXZpc3RvQGlraS5maT4KIAogICAgICAgICBSZXZpZXdlZCBieSBIeWF0
dC4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6769</attachid>
            <date>2006-02-27 21:05:11 -0800</date>
            <delta_ts>2006-02-28 06:56:37 -0800</delta_ts>
            <desc>Patch v5</desc>
            <filename>bug-3905-v5.diff</filename>
            <type>text/plain</type>
            <size>9776</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEzMDM5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDYtMDItMjcgIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGtpbHplci5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgLSBUZXN0cyBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3No
b3dfYnVnLmNnaT9pZD0zOTA1CisgICAgICAgIE1pc3NpbmcgPC90aXRsZT4gbWFrZXMgcGFnZSBi
bGFuaworCisgICAgICAgIFRoZSBmaXJzdCB0ZXN0IGNvbnRhaW5zIGFuIHVuY2xvc2VkIDx0aXRs
ZT4gdGFnIGluIDxoZWFkPiwgd2hpbGUKKyAgICAgICAgdGhlIHNlY29uZCB0ZXN0IGNvbnRhaW5z
IGFuIHVuY2xvc2VkIDx0aXRsZT4gdGFnIGluIDxib2R5Pi4KKworICAgICAgICAqIGZhc3QvdG9r
ZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTEtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTEtZXhwZWN0ZWQu
cG5nOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRh
Zy0xLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvbWlzc2lu
Zy10aXRsZS1lbmR0YWctMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9t
aXNzaW5nLXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLnBuZzogQWRk
ZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUt
ZW5kdGFnLTIuaHRtbDogQWRkZWQuCisKIDIwMDYtMDItMjcgIEp1c3RpbiBHYXJjaWEgIDxqdXN0
aW4uZ2FyY2lhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBkYXJpbgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMS1leHBlY3Rl
ZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNz
aW5nLXRpdGxlLWVuZHRhZy0xLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMS1leHBlY3RlZC5j
aGVja3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorNzkyMDZjOTM3OWQyYWUwNTEwYTAy
MWQ5NzYzODUyYzQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLmNoZWNrc3Vt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUt
ZW5kdGFnLTItZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLmNoZWNrc3VtCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACis3OWFjZWU5NDU1YTI3NDAxYjY0N2YwMjY2YmM4OGVj
MQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9r
ZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0yLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0y
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEgQEAKKzxodG1sPgorPGhlYWQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzx0aXRsZT5NeSB0aXRsZQorPGRpdj5UaGlzIGRvY3VtZW50IGlzIG1pc3Np
bmcgaXRzICZsdDsvdGl0bGUmZ3Q7IHRhZyBpbiBpdHMgYm9keS4gIFRoZSB0b2tlbml6ZXIgc2hv
dWxkIHJldG9rZW5pemUKK3RoaXMgZG9jdW1lbnQgYWZ0ZXIgY29uc3VtaW5nIGFsbCBvZiBpdCBs
b29raW5nIGZvciB0aGUgbWlzc2luZyBlbmQgdGFnLCB0aGVuIGxldCB0aGUgcGFyc2VyIGNsZWFu
Cit1cCB0aGUgbWlzc2luZyB0YWcuCitTZWUgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5k
YXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTA1Ij5CdWd6aWxsYSBCdWcgMzkwNTwvYT4uPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9t
aXNzaW5nLXRpdGxlLWVuZHRhZy0xLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0xLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUt
ZW5kdGFnLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQ2FudmFzIGF0ICgwLDApIHNpemUgODAw
eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTIKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgODAweDUyCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3
ODR4MzYKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDM2CisgICAg
ICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgNzczeDM2CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggMzI2OiAiVGhpcyBkb2N1bWVudCBpcyBtaXNzaW5nIGl0cyA8
L3RpdGxlPiB0YWcgaW4gaXRzIGhlYWQuICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzI2LDAp
IHdpZHRoIDQ0NzogIlRoZSB0b2tlbml6ZXIgc2hvdWxkIHJldG9rZW5pemUgdGhpcyBkb2N1bWVu
dCBhZnRlciBjb25zdW1pbmcgYWxsIG9mIGl0IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4
KSB3aWR0aCA1MDQ6ICJsb29raW5nIGZvciB0aGUgbWlzc2luZyBlbmQgdGFnLCB0aGVuIGxldCB0
aGUgcGFyc2VyIGNsZWFuIHVwIHRoZSBtaXNzaW5nIHRhZy4gU2VlICIKKyAgICAgICAgUmVuZGVy
SW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDEyMHgxOCBbY29sb3I9IzAwMDBFRV0KKyAgICAgICAg
ICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoNTA0LDE4KSBzaXplIDEyMHgxOAorICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDUwNCwxOCkgd2lkdGggMTIwOiAiQnVnemlsbGEgQnVnIDM5MDUiCisgICAg
ICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICg2MjQsMTgpIHNpemUgNHgxOAorICAgICAgICAgIHRl
eHQgcnVuIGF0ICg2MjQsMTgpIHdpZHRoIDQ6ICIuIgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90
b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMi1leHBlY3RlZC5wbmcKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpD
YW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlw
ZSA9IGltYWdlL3BuZwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC90b2tl
bml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMi1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1l
OiBzdm46bWltZS10eXBlCiAgICsgaW1hZ2UvcG5nCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90
b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTEuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFn
LTEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorPGh0bWw+Cis8aGVhZD4KKzx0
aXRsZT5NeSB0aXRsZQorPC9oZWFkPgorPGJvZHk+Cis8ZGl2PlRoaXMgZG9jdW1lbnQgaXMgbWlz
c2luZyBpdHMgJmx0Oy90aXRsZSZndDsgdGFnIGluIGl0cyBoZWFkLiAgVGhlIHRva2VuaXplciBz
aG91bGQgcmV0b2tlbml6ZQordGhpcyBkb2N1bWVudCBhZnRlciBjb25zdW1pbmcgYWxsIG9mIGl0
IGxvb2tpbmcgZm9yIHRoZSBtaXNzaW5nIGVuZCB0YWcsIHRoZW4gbGV0IHRoZSBwYXJzZXIgY2xl
YW4KK3VwIHRoZSBtaXNzaW5nIHRhZy4KK1NlZSA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3Bl
bmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTM5MDUiPkJ1Z3ppbGxhIEJ1ZyAzOTA1PC9hPi48
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVy
L21pc3NpbmctdGl0bGUtZW5kdGFnLTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTItZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRs
ZS1lbmR0YWctMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKK2xh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJDYW52YXMgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNp
emUgNzg0eDU4NAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MzYK
KyAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSA3NzV4MzYKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMjg6ICJUaGlzIGRvY3VtZW50IGlzIG1pc3Npbmcg
aXRzIDwvdGl0bGU+IHRhZyBpbiBpdHMgYm9keS4gIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgz
MjgsMCkgd2lkdGggNDQ3OiAiVGhlIHRva2VuaXplciBzaG91bGQgcmV0b2tlbml6ZSB0aGlzIGRv
Y3VtZW50IGFmdGVyIGNvbnN1bWluZyBhbGwgb2YgaXQiCisgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMTgpIHdpZHRoIDUwNDogImxvb2tpbmcgZm9yIHRoZSBtaXNzaW5nIGVuZCB0YWcsIHRoZW4g
bGV0IHRoZSBwYXJzZXIgY2xlYW4gdXAgdGhlIG1pc3NpbmcgdGFnLiBTZWUgIgorICAgICAgICBS
ZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgMTIweDE4IFtjb2xvcj0jMDAwMEVFXQorICAg
ICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICg1MDQsMTgpIHNpemUgMTIweDE4CisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNTA0LDE4KSB3aWR0aCAxMjA6ICJCdWd6aWxsYSBCdWcgMzkwNSIK
KyAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDYyNCwxOCkgc2l6ZSA0eDE4CisgICAgICAg
ICAgdGV4dCBydW4gYXQgKDYyNCwxOCkgd2lkdGggNDogIi4iCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0xLWV4cGVjdGVkLnBuZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWlt
ZS10eXBlID0gaW1hZ2UvcG5nCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0
L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0xLWV4cGVjdGVkLnBuZwpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBpbWFnZS9wbmcKCkluZGV4OiBXZWJDb3JlL2todG1s
L2h0bWwvaHRtbHBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0
bWxwYXJzZXIuY3BwCShyZXZpc2lvbiAxMzAzOSkKKysrIFdlYkNvcmUva2h0bWwvaHRtbC9odG1s
cGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDY3LDYgKzQ2NywxMiBAQCBib29sIEhUTUxQ
YXJzZXI6OmhhbmRsZUVycm9yKE5vZGVJbXBsKiBuCiAgICAgICAgICAgICAgICAgICAgIGhhbmRs
ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KKyAgICAgICAgfSBl
bHNlIGlmIChoLT5oYXNMb2NhbE5hbWUodGl0bGVUYWcpKSB7CisgICAgICAgICAgICAvLyBUaGUg
dG9rZW5pemVyIHdpbGwgb25seSBzZW5kIGFkZGl0aW9uYWwgSFRNTCB0YWdzIGFmdGVyIGEgPHRp
dGxlPgorICAgICAgICAgICAgLy8gYmVnaW4gdGFnIGlmIG5vIGNsb3NpbmcgPC90aXRsZT4gdGFn
IHdhcyBmb3VuZCwgc28gd2UgbXVzdCBjbG9zZQorICAgICAgICAgICAgLy8gaXQgb3Vyc2VsdmVz
IGlmIHRoaXMgY29uZGl0aW9uIG9jY3Vycy4KKyAgICAgICAgICAgIHBvcEJsb2NrKGgtPmxvY2Fs
TmFtZSgpKTsKKyAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlOwogICAgICAgICB9IGVsc2UgaWYg
KGgtPmhhc0xvY2FsTmFtZShjYXB0aW9uVGFnKSkgewogICAgICAgICAgICAgLy8gSWxsZWdhbCBj
b250ZW50IGluIGEgY2FwdGlvbi4gQ2xvc2UgdGhlIGNhcHRpb24gYW5kIHRyeSBhZ2Fpbi4KICAg
ICAgICAgICAgIHBvcEJsb2NrKGN1cnJlbnRUYWdOYW1lKTsKSW5kZXg6IFdlYkNvcmUva2h0bWwv
aHRtbC9odG1sdG9rZW5pemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2todG1sL2h0bWwv
aHRtbHRva2VuaXplci5jcHAJKHJldmlzaW9uIDEzMDM5KQorKysgV2ViQ29yZS9raHRtbC9odG1s
L2h0bWx0b2tlbml6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjY5LDcgKzEyNjksMTkgQEAg
SFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFycwogICAgICAgICAgICAgICAg
ICAgICBzZWFyY2hTdG9wcGVyID0gdGl0bGVFbmQ7CiAgICAgICAgICAgICAgICAgICAgIHNlYXJj
aFN0b3BwZXJMZW4gPSA3OwogICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJblRpdGxlKHRy
dWUpOworICAgICAgICAgICAgICAgICAgICBUYWdTdGF0ZSBzYXZlZFRhZ1N0YXRlID0gc3RhdGUu
dGFnU3RhdGUoKTsKKyAgICAgICAgICAgICAgICAgICAgU2VnbWVudGVkU3RyaW5nIHNhdmVkU3Jj
ID0gc3JjOworICAgICAgICAgICAgICAgICAgICBsb25nIHNhdmVkTGluZW5vID0gbGluZW5vICsg
c3JjLmxpbmVDb3VudCgpOwogICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlU3BlY2lh
bChzcmMsIHN0YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLmluVGl0bGUoKSAm
JiBzcmMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBqdXN0IGF0
ZSB0aGUgcmVzdCBvZiB0aGUgZG9jdW1lbnQgYXMgdGhlIHRpdGxlICN0ZXh0IG5vZGUhCisgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBHbyBiYWNrIGFuZCByZXRva2VuaXplIGl0IHdpdGhvdXQg
c3BlY2lhbCB0aXRsZSBoYW5kbGluZyBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxl
dCB0aGUgaHRtbCBwYXJzZXIgY2xlYW4gdXAgdGhlIG1pc3NpbmcgPC90aXRsZT4gdGFnLgorICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5UaXRsZShmYWxzZSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBzdGF0ZS5zZXRUYWdTdGF0ZShzYXZlZFRhZ1N0YXRlKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNyYyA9IHNhdmVkU3JjOworICAgICAgICAgICAgICAgICAgICAgICAg
bGluZW5vID0gc2F2ZWRMaW5lbm87CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZ05hbWUgPT0geG1wVGFnKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKGJlZ2luVGFnKSB7CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMwMzkpCisrKyBXZWJDb3Jl
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDA2LTAyLTI3ICBE
YXZpZCBLaWx6ZXIgIDxkZGtpbHplckBraWx6ZXIubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gRml4IGZvciBodHRwOi8vYnVnemlsbGEub3Bl
bmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTM5MDUKKyAgICAgICAgTWlzc2luZyA8L3RpdGxl
PiBtYWtlcyBwYWdlIGJsYW5rCisKKyAgICAgICAgVGVzdDogZmFzdC90b2tlbml6ZXIvbWlzc2lu
Zy10aXRsZS1lbmR0YWctMS5odG1sCisgICAgICAgIFRlc3Q6IGZhc3QvdG9rZW5pemVyL21pc3Np
bmctdGl0bGUtZW5kdGFnLTIuaHRtbAorCisgICAgICAgICoga2h0bWwvaHRtbC9odG1scGFyc2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXI6OnBhcnNlVG9rZW4pOiBBZGQgY2hl
Y2sgZm9yIG1pc3NpbmcgPC90aXRsZT4gdGFnIGFuZCBoYW5kbGUKKyAgICAgICAgdGhpcyBjb25k
aXRpb24gaWYgaWRlbnRpZmllZC4KKyAgICAgICAgKiBraHRtbC9odG1sL2h0bWx0b2tlbml6ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6cGFyc2VUYWcpOiBJZiBwYXJz
ZVNwZWNpYWwoKSBjb25zdW1lcyB0aGUgcmVzdCBvZiB0aGUKKyAgICAgICAgZG9jdW1lbnQgbG9v
a2luZyBmb3IgYSA8L3RpdGxlPiB0YWcsIHJlc2V0IHRoZSBzdGF0ZSBvZiB0aGUgdG9rZW5pemVy
IGFuZAorICAgICAgICByZXRva2VuaXplIHdpdGggbm8gc3BlY2lhbCBoYW5kbGluZyBmb3IgdGhl
IHRpdGxlLiAgVGhlIHBhcnNlciB3aWxsIGhhbmRsZSB0aGUKKyAgICAgICAgbWlzc2luZyA8L3Rp
dGxlPiB0YWcuCisKIDIwMDYtMDItMjcgIEVyaWMgU2VpZGVsICA8ZXNlaWRlbEBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgbWpzLgo=
</data>
<flag name="review"
          id="1727"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6773</attachid>
            <date>2006-02-28 06:56:37 -0800</date>
            <delta_ts>2006-03-02 21:08:32 -0800</delta_ts>
            <desc>Patch v6</desc>
            <filename>bug-3905-v6.diff</filename>
            <type>text/plain</type>
            <size>12232</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEzMDU0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDYtMDItMjggIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGtpbHplci5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgLSBUZXN0cyBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3No
b3dfYnVnLmNnaT9pZD0zOTA1CisgICAgICAgIE1pc3NpbmcgPC90aXRsZT4gbWFrZXMgcGFnZSBi
bGFuaworCisgICAgICAgIFRoZSBmaXJzdCB0ZXN0IGNvbnRhaW5zIGFuIHVuY2xvc2VkIDx0aXRs
ZT4gdGFnIGluIDxoZWFkPiwgd2hpbGUKKyAgICAgICAgdGhlIHNlY29uZCB0ZXN0IGNvbnRhaW5z
IGFuIHVuY2xvc2VkIDx0aXRsZT4gdGFnIGluIDxib2R5Pi4KKworICAgICAgICAqIGZhc3QvdG9r
ZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTEtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTEtZXhwZWN0ZWQu
cG5nOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRh
Zy0xLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvbWlzc2lu
Zy10aXRsZS1lbmR0YWctMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9t
aXNzaW5nLXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLnBuZzogQWRk
ZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUt
ZW5kdGFnLTIuaHRtbDogQWRkZWQuCisKIDIwMDYtMDItMjcgIEp1c3RpbiBHYXJjaWEgIDxqdXN0
aW4uZ2FyY2lhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBkYXJpbgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMS1leHBlY3Rl
ZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNz
aW5nLXRpdGxlLWVuZHRhZy0xLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMS1leHBlY3RlZC5j
aGVja3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorNzkyMDZjOTM3OWQyYWUwNTEwYTAy
MWQ5NzYzODUyYzQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLmNoZWNrc3Vt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUt
ZW5kdGFnLTItZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0yLWV4cGVjdGVkLmNoZWNrc3VtCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACis3OWFjZWU5NDU1YTI3NDAxYjY0N2YwMjY2YmM4OGVj
MQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9r
ZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0yLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0y
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEgQEAKKzxodG1sPgorPGhlYWQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzx0aXRsZT5NeSB0aXRsZQorPGRpdj5UaGlzIGRvY3VtZW50IGlzIG1pc3Np
bmcgaXRzICZsdDsvdGl0bGUmZ3Q7IHRhZyBpbiBpdHMgYm9keS4gIFRoZSB0b2tlbml6ZXIgc2hv
dWxkIHJldG9rZW5pemUKK3RoaXMgZG9jdW1lbnQgYWZ0ZXIgY29uc3VtaW5nIGFsbCBvZiBpdCBs
b29raW5nIGZvciB0aGUgbWlzc2luZyBlbmQgdGFnLCB0aGVuIGxldCB0aGUgcGFyc2VyIGNsZWFu
Cit1cCB0aGUgbWlzc2luZyB0YWcuCitTZWUgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5k
YXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTA1Ij5CdWd6aWxsYSBCdWcgMzkwNTwvYT4uPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9t
aXNzaW5nLXRpdGxlLWVuZHRhZy0xLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0xLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUt
ZW5kdGFnLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQ2FudmFzIGF0ICgwLDApIHNpemUgODAw
eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTIKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgODAweDUyCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3
ODR4MzYKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDM2CisgICAg
ICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgNzczeDM2CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggMzI2OiAiVGhpcyBkb2N1bWVudCBpcyBtaXNzaW5nIGl0cyA8
L3RpdGxlPiB0YWcgaW4gaXRzIGhlYWQuICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzI2LDAp
IHdpZHRoIDQ0NzogIlRoZSB0b2tlbml6ZXIgc2hvdWxkIHJldG9rZW5pemUgdGhpcyBkb2N1bWVu
dCBhZnRlciBjb25zdW1pbmcgYWxsIG9mIGl0IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4
KSB3aWR0aCA1MDQ6ICJsb29raW5nIGZvciB0aGUgbWlzc2luZyBlbmQgdGFnLCB0aGVuIGxldCB0
aGUgcGFyc2VyIGNsZWFuIHVwIHRoZSBtaXNzaW5nIHRhZy4gU2VlICIKKyAgICAgICAgUmVuZGVy
SW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDEyMHgxOCBbY29sb3I9IzAwMDBFRV0KKyAgICAgICAg
ICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoNTA0LDE4KSBzaXplIDEyMHgxOAorICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDUwNCwxOCkgd2lkdGggMTIwOiAiQnVnemlsbGEgQnVnIDM5MDUiCisgICAg
ICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICg2MjQsMTgpIHNpemUgNHgxOAorICAgICAgICAgIHRl
eHQgcnVuIGF0ICg2MjQsMTgpIHdpZHRoIDQ6ICIuIgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90
b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMi1leHBlY3RlZC5wbmcKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpD
YW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlw
ZSA9IGltYWdlL3BuZwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC90b2tl
bml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMi1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1l
OiBzdm46bWltZS10eXBlCiAgICsgaW1hZ2UvcG5nCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90
b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTEuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFn
LTEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorPGh0bWw+Cis8aGVhZD4KKzx0
aXRsZT5NeSB0aXRsZQorPC9oZWFkPgorPGJvZHk+Cis8ZGl2PlRoaXMgZG9jdW1lbnQgaXMgbWlz
c2luZyBpdHMgJmx0Oy90aXRsZSZndDsgdGFnIGluIGl0cyBoZWFkLiAgVGhlIHRva2VuaXplciBz
aG91bGQgcmV0b2tlbml6ZQordGhpcyBkb2N1bWVudCBhZnRlciBjb25zdW1pbmcgYWxsIG9mIGl0
IGxvb2tpbmcgZm9yIHRoZSBtaXNzaW5nIGVuZCB0YWcsIHRoZW4gbGV0IHRoZSBwYXJzZXIgY2xl
YW4KK3VwIHRoZSBtaXNzaW5nIHRhZy4KK1NlZSA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3Bl
bmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTM5MDUiPkJ1Z3ppbGxhIEJ1ZyAzOTA1PC9hPi48
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVy
L21pc3NpbmctdGl0bGUtZW5kdGFnLTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTItZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRs
ZS1lbmR0YWctMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKK2xh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJDYW52YXMgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNp
emUgNzg0eDU4NAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MzYK
KyAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSA3NzV4MzYKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMjg6ICJUaGlzIGRvY3VtZW50IGlzIG1pc3Npbmcg
aXRzIDwvdGl0bGU+IHRhZyBpbiBpdHMgYm9keS4gIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgz
MjgsMCkgd2lkdGggNDQ3OiAiVGhlIHRva2VuaXplciBzaG91bGQgcmV0b2tlbml6ZSB0aGlzIGRv
Y3VtZW50IGFmdGVyIGNvbnN1bWluZyBhbGwgb2YgaXQiCisgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMTgpIHdpZHRoIDUwNDogImxvb2tpbmcgZm9yIHRoZSBtaXNzaW5nIGVuZCB0YWcsIHRoZW4g
bGV0IHRoZSBwYXJzZXIgY2xlYW4gdXAgdGhlIG1pc3NpbmcgdGFnLiBTZWUgIgorICAgICAgICBS
ZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgMTIweDE4IFtjb2xvcj0jMDAwMEVFXQorICAg
ICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICg1MDQsMTgpIHNpemUgMTIweDE4CisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNTA0LDE4KSB3aWR0aCAxMjA6ICJCdWd6aWxsYSBCdWcgMzkwNSIK
KyAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDYyNCwxOCkgc2l6ZSA0eDE4CisgICAgICAg
ICAgdGV4dCBydW4gYXQgKDYyNCwxOCkgd2lkdGggNDogIi4iCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0xLWV4cGVjdGVkLnBuZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWlt
ZS10eXBlID0gaW1hZ2UvcG5nCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0
L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZHRhZy0xLWV4cGVjdGVkLnBuZwpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBpbWFnZS9wbmcKCkluZGV4OiBXZWJDb3JlL2todG1s
L2h0bWwvaHRtbHBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0
bWxwYXJzZXIuY3BwCShyZXZpc2lvbiAxMzA1NCkKKysrIFdlYkNvcmUva2h0bWwvaHRtbC9odG1s
cGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcwLDYgKzQ3MCw5IEBAIGJvb2wgSFRNTFBh
cnNlcjo6aGFuZGxlRXJyb3IoTm9kZUltcGwqIG4KICAgICAgICAgICAgICAgICAgICAgaGFuZGxl
ZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQorICAgICAgICB9IGVs
c2UgaWYgKGgtPmhhc0xvY2FsTmFtZSh0aXRsZVRhZykpIHsKKyAgICAgICAgICAgIHBvcEJsb2Nr
KGN1cnJlbnRUYWdOYW1lKTsKKyAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlOwogICAgICAgICB9
IGVsc2UgaWYgKGgtPmhhc0xvY2FsTmFtZShjYXB0aW9uVGFnKSkgewogICAgICAgICAgICAgLy8g
SWxsZWdhbCBjb250ZW50IGluIGEgY2FwdGlvbi4gQ2xvc2UgdGhlIGNhcHRpb24gYW5kIHRyeSBh
Z2Fpbi4KICAgICAgICAgICAgIHBvcEJsb2NrKGN1cnJlbnRUYWdOYW1lKTsKSW5kZXg6IFdlYkNv
cmUva2h0bWwvaHRtbC9odG1sdG9rZW5pemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2to
dG1sL2h0bWwvaHRtbHRva2VuaXplci5jcHAJKHJldmlzaW9uIDEzMDU0KQorKysgV2ViQ29yZS9r
aHRtbC9odG1sL2h0bWx0b2tlbml6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjY5LDcgKzEy
NjksMTkgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFycwogICAgICAg
ICAgICAgICAgICAgICBzZWFyY2hTdG9wcGVyID0gdGl0bGVFbmQ7CiAgICAgICAgICAgICAgICAg
ICAgIHNlYXJjaFN0b3BwZXJMZW4gPSA3OwogICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJ
blRpdGxlKHRydWUpOworICAgICAgICAgICAgICAgICAgICBUYWdTdGF0ZSBzYXZlZFRhZ1N0YXRl
ID0gc3RhdGUudGFnU3RhdGUoKTsKKyAgICAgICAgICAgICAgICAgICAgU2VnbWVudGVkU3RyaW5n
IHNhdmVkU3JjID0gc3JjOworICAgICAgICAgICAgICAgICAgICBsb25nIHNhdmVkTGluZW5vID0g
bGluZW5vICsgc3JjLmxpbmVDb3VudCgpOwogICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBh
cnNlU3BlY2lhbChzcmMsIHN0YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLmlu
VGl0bGUoKSAmJiBzcmMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBX
ZSBqdXN0IGF0ZSB0aGUgcmVzdCBvZiB0aGUgZG9jdW1lbnQgYXMgdGhlIHRpdGxlICN0ZXh0IG5v
ZGUhCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBHbyBiYWNrIGFuZCByZXRva2VuaXplIGl0
IHdpdGhvdXQgc3BlY2lhbCB0aXRsZSBoYW5kbGluZyBhbmQKKyAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIGxldCB0aGUgaHRtbCBwYXJzZXIgY2xlYW4gdXAgdGhlIG1pc3NpbmcgPC90aXRsZT4g
dGFnLgorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5UaXRsZShmYWxzZSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRUYWdTdGF0ZShzYXZlZFRhZ1N0YXRlKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHNyYyA9IHNhdmVkU3JjOworICAgICAgICAgICAgICAg
ICAgICAgICAgbGluZW5vID0gc2F2ZWRMaW5lbm87CisgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZ05hbWUgPT0geG1wVGFn
KSB7CiAgICAgICAgICAgICAgICAgaWYgKGJlZ2luVGFnKSB7CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL1NlZ21lbnRlZFN0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9T
ZWdtZW50ZWRTdHJpbmcuY3BwCShyZXZpc2lvbiAxMzA1NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
U2VnbWVudGVkU3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsMjMgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitjb25zdCBTZWdtZW50ZWRTdHJpbmcmIFNlZ21lbnRlZFN0
cmluZzo6b3BlcmF0b3I9KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgb3RoZXIpCit7CisgICAgbV9w
dXNoZWRDaGFyMSA9IG90aGVyLm1fcHVzaGVkQ2hhcjE7CisgICAgbV9wdXNoZWRDaGFyMiA9IG90
aGVyLm1fcHVzaGVkQ2hhcjI7CisgICAgbV9jdXJyZW50U3RyaW5nID0gb3RoZXIubV9jdXJyZW50
U3RyaW5nOworICAgIG1fc3Vic3RyaW5ncyA9IG90aGVyLm1fc3Vic3RyaW5nczsKKyAgICBtX2xp
bmVzID0gb3RoZXIubV9saW5lczsKKyAgICBtX2NvbXBvc2l0ZSA9IG90aGVyLm1fY29tcG9zaXRl
OworICAgIGlmIChvdGhlci5tX2N1cnJlbnRDaGFyID09ICZvdGhlci5tX3B1c2hlZENoYXIxKQor
ICAgICAgICBtX2N1cnJlbnRDaGFyID0gJm1fcHVzaGVkQ2hhcjE7CisgICAgZWxzZSBpZiAob3Ro
ZXIubV9jdXJyZW50Q2hhciA9PSAmb3RoZXIubV9wdXNoZWRDaGFyMikKKyAgICAgICAgbV9jdXJy
ZW50Q2hhciA9ICZtX3B1c2hlZENoYXIyOworICAgIGVsc2UKKyAgICAgICAgbV9jdXJyZW50Q2hh
ciA9IG90aGVyLm1fY3VycmVudENoYXI7CisgICAgcmV0dXJuICp0aGlzOworfQorCiB1aW50IFNl
Z21lbnRlZFN0cmluZzo6bGVuZ3RoKCkgY29uc3QKIHsKICAgICB1aW50IGxlbmd0aCA9IG1fY3Vy
cmVudFN0cmluZy5tX2xlbmd0aDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vU2VnbWVudGVkU3Ry
aW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9TZWdtZW50ZWRTdHJpbmcuaAko
cmV2aXNpb24gMTMwNTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1NlZ21lbnRlZFN0cmluZy5oCSh3
b3JraW5nIGNvcHkpCkBAIC03Myw2ICs3MywxOSBAQCBwdWJsaWM6CiAgICAgU2VnbWVudGVkU3Ry
aW5nKCkgOiBtX2N1cnJlbnRDaGFyKDApLCBtX2xpbmVzKDApLCBtX2NvbXBvc2l0ZShmYWxzZSkg
e30KICAgICBTZWdtZW50ZWRTdHJpbmcoY29uc3QgUUNoYXIgKnN0ciwgaW50IGxlbmd0aCkgOiBt
X2N1cnJlbnRTdHJpbmcoc3RyLCBsZW5ndGgpLCBtX2N1cnJlbnRDaGFyKG1fY3VycmVudFN0cmlu
Zy5tX2N1cnJlbnQpLCBtX2xpbmVzKDApLCBtX2NvbXBvc2l0ZShmYWxzZSkge30KICAgICBTZWdt
ZW50ZWRTdHJpbmcoY29uc3QgUVN0cmluZyAmc3RyKSA6IG1fY3VycmVudFN0cmluZyhzdHIpLCBt
X2N1cnJlbnRDaGFyKG1fY3VycmVudFN0cmluZy5tX2N1cnJlbnQpLCBtX2xpbmVzKDApLCBtX2Nv
bXBvc2l0ZShmYWxzZSkge30KKyAgICBTZWdtZW50ZWRTdHJpbmcoY29uc3QgU2VnbWVudGVkU3Ry
aW5nICZvdGhlcikgOgorICAgICAgICBtX3B1c2hlZENoYXIxKG90aGVyLm1fcHVzaGVkQ2hhcjEp
LCBtX3B1c2hlZENoYXIyKG90aGVyLm1fcHVzaGVkQ2hhcjIpLCBtX2N1cnJlbnRTdHJpbmcob3Ro
ZXIubV9jdXJyZW50U3RyaW5nKSwKKyAgICAgICAgbV9zdWJzdHJpbmdzKG90aGVyLm1fc3Vic3Ry
aW5ncyksIG1fbGluZXMob3RoZXIubV9saW5lcyksIG1fY29tcG9zaXRlKG90aGVyLm1fY29tcG9z
aXRlKQorICAgIHsKKyAgICAgICAgaWYgKG90aGVyLm1fY3VycmVudENoYXIgPT0gJm90aGVyLm1f
cHVzaGVkQ2hhcjEpCisgICAgICAgICAgICBtX2N1cnJlbnRDaGFyID0gJm1fcHVzaGVkQ2hhcjE7
CisgICAgICAgIGVsc2UgaWYgKG90aGVyLm1fY3VycmVudENoYXIgPT0gJm90aGVyLm1fcHVzaGVk
Q2hhcjIpCisgICAgICAgICAgICBtX2N1cnJlbnRDaGFyID0gJm1fcHVzaGVkQ2hhcjI7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIG1fY3VycmVudENoYXIgPSBvdGhlci5tX2N1cnJlbnRDaGFy
OworICAgIH0KKworICAgIGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgb3BlcmF0b3I9KGNvbnN0IFNl
Z21lbnRlZFN0cmluZyYpOwogCiAgICAgdm9pZCBjbGVhcigpOwogCkluZGV4OiBXZWJDb3JlL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMwNTQp
CisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisy
MDA2LTAyLTI4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBraWx6ZXIubmV0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gRml4IGZvciBodHRwOi8v
YnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTM5MDUKKyAgICAgICAgTWlz
c2luZyA8L3RpdGxlPiBtYWtlcyBwYWdlIGJsYW5rCisKKyAgICAgICAgVGVzdDogZmFzdC90b2tl
bml6ZXIvbWlzc2luZy10aXRsZS1lbmR0YWctMS5odG1sCisgICAgICAgIFRlc3Q6IGZhc3QvdG9r
ZW5pemVyL21pc3NpbmctdGl0bGUtZW5kdGFnLTIuaHRtbAorCisgICAgICAgICoga2h0bWwvaHRt
bC9odG1scGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXI6OmhhbmRsZUVy
cm9yKTogQWRkIGNoZWNrIGZvciBtaXNzaW5nIDwvdGl0bGU+IHRhZyBhbmQgaGFuZGxlCisgICAg
ICAgIHRoaXMgY29uZGl0aW9uIGlmIGlkZW50aWZpZWQuCisgICAgICAgICoga2h0bWwvaHRtbC9o
dG1sdG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OnBhcnNl
VGFnKTogSWYgcGFyc2VTcGVjaWFsKCkgY29uc3VtZXMgdGhlIHJlc3Qgb2YgdGhlCisgICAgICAg
IGRvY3VtZW50IGxvb2tpbmcgZm9yIGEgPC90aXRsZT4gdGFnLCByZXNldCB0aGUgc3RhdGUgb2Yg
dGhlIHRva2VuaXplciBhbmQKKyAgICAgICAgcmV0b2tlbml6ZSB3aXRoIG5vIHNwZWNpYWwgaGFu
ZGxpbmcgZm9yIDx0aXRsZT4uICBUaGUgcGFyc2VyIHdpbGwgaGFuZGxlIHRoZQorICAgICAgICBt
aXNzaW5nIDwvdGl0bGU+IHRhZyBpbiBIVE1MUGFyc2VyOjpoYW5kbGVFcnJvcigpLgorICAgICAg
ICAqIHBsYXRmb3JtL1NlZ21lbnRlZFN0cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWdt
ZW50ZWRTdHJpbmc6Om9wZXJhdG9yPSk6IEFkZGVkIHRoZSBhc3NpZ25tZW50IG9wZXJhdG9yLiAg
UHJldmlvdXNseQorICAgICAgICB0aGUgY29tcGlsZXIgd2FzIGdlbmVyYXRpbmcgYSBkZWZhdWx0
IG1ldGhvZCBmb3IgdXMsIGJ1dCBpdCBkaWQgbm90IGhhbmRsZQorICAgICAgICBtX2N1cnJlbnRD
aGFyIHByb3Blcmx5LgorICAgICAgICAqIHBsYXRmb3JtL1NlZ21lbnRlZFN0cmluZy5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjpTZWdtZW50ZWRTdHJpbmcpOiBBZGRlZCBh
IGNvcHkgY29uc3RydWN0b3IgYW5kIGEKKyAgICAgICAgcHJvdG90eXBlIGZvciB0aGUgYXNzaWdu
bWVudCBvcGVyYXRvci4KKwogMjAwNi0wMi0yNyAgRXJpYyBTZWlkZWwgIDxlc2VpZGVsQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBtanMuCg==
</data>
<flag name="review"
          id="1730"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6820</attachid>
            <date>2006-03-02 21:08:32 -0800</date>
            <delta_ts>2006-03-02 21:08:32 -0800</delta_ts>
            <desc>Test case (bad DOM in &lt;script&gt;)</desc>
            <filename>title-foo-link.html</filename>
            <type>text/html</type>
            <size>82</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPjx0aXRsZT50aXRsZQo8bGluaz4KPHNjcmlwdD48L3NjcmlwdD4KPC9oZWFk
Pgo8Ym9keT4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6873</attachid>
            <date>2006-03-05 11:03:34 -0800</date>
            <delta_ts>2006-03-19 12:00:40 -0800</delta_ts>
            <desc>Patch v7</desc>
            <filename>bug-3905-v7.diff</filename>
            <type>text/plain</type>
            <size>22481</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEzMTQ1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMDYtMDMtMDUgIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGtpbHplci5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgLSBUZXN0cyBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3No
b3dfYnVnLmNnaT9pZD0zOTA1CisgICAgICAgIE1pc3NpbmcgPC90aXRsZT4gbWFrZXMgcGFnZSBi
bGFuaworCisgICAgICAgICogZmFzdC9qcy9leGNlcHRpb24tbGluZW51bXMtaW4taHRtbC0xLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9leGNlcHRpb24tbGluZW51bXMt
aW4taHRtbC0xLmh0bWw6IEFkZGVkLgorCisgICAgICAgIFRlc3RzIGxpbmUgbnVtYmVycyBmcm9t
IEhUTUwgc291cmNlIGZpbGVzIGluc3RlYWQgb2YgSmF2YVNjcmlwdCBzb3VyY2UgZmlsZXMKKyAg
ICAgICAgd2hpY2ggaXMgdGVzdGVkIGJ5IGZhc3QvanMvZXhjZXB0aW9uLWxpbmVudW1zLmh0bWwu
ICBUaGlzIHRlc3QgZG9lcyBub3QgdGVzdAorICAgICAgICBjaGFuZ2VzIG1hZGUgZm9yIEJ1ZyAz
OTA1LCBidXQgd2FzIGFkZGVkIGZvciBiZXR0ZXIgY292ZXJhZ2UuCisKKyAgICAgICAgKiBmYXN0
L2pzL2V4Y2VwdGlvbi1saW5lbnVtcy1pbi1odG1sLTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2pzL2V4Y2VwdGlvbi1saW5lbnVtcy1pbi1odG1sLTIuaHRtbDogQWRkZWQu
CisKKyAgICAgICAgSWRlbnRpY2FsIHRvIGZhc3QvanMvZXhjZXB0aW9uLWxpbmVudW1zLWluLWh0
bWwtMS5odG1sIGV4Y2VwdCB0aGF0IGl0IGNvbnRhaW5zCisgICAgICAgIGFuIHVuY2xvc2VkIDx0
aXRsZT4gdGFnLCB3aGljaCBjYXVzZXMgdGhlIGNvZGUgcGF0aCBmb3IgQnVnIDM5MDUgdG8gYmUg
dGVzdGVkLgorCisgICAgICAgICogZmFzdC9qcy9taXNzaW5nLXRpdGxlLWVuZC10YWctanMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL21pc3NpbmctdGl0bGUtZW5kLXRh
Zy1qcy5odG1sOiBBZGRlZC4KKworICAgICAgICBXaGlsZSBkZXZlbG9waW5nIGEgZml4IGZvciBC
dWcgMzkwNSwgYSBzdGF0ZSB2YXJpYWJsZSAoc2NyaXB0Q29kZVNpemUpIHdhcyBub3QKKyAgICAg
ICAgcmVzZXQgaW4gdGhlIHRva2VuaXplciBjYXVzaW5nIHRoZSBuZXh0IDxzY3JpcHQ+PC9zY3Jp
cHQ+IHRhZ3MgdG8gY29udGFpbiB0aGUKKyAgICAgICAgZW50aXJlIGNvbnRlbnRzIG9mIHRoZSBk
b2N1bWVudCBhZnRlciB0aGUgb3BlbiA8dGl0bGU+IHRhZy4gIFRoaXMgdGVzdCBjYXNlCisgICAg
ICAgIHRlc3RzIGZvciB0aGF0IGNvbmRpdGlvbi4KKworICAgICAgICAqIGZhc3QvdG9rZW5pemVy
L21pc3NpbmctdGl0bGUtZW5kLXRhZy0xLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZC10YWctMS1leHBlY3RlZC5wbmc6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kLXRhZy0x
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvbWlzc2luZy10
aXRsZS1lbmQtdGFnLTEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvbWlz
c2luZy10aXRsZS1lbmQtdGFnLTItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAq
IGZhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kLXRhZy0yLWV4cGVjdGVkLnBuZzogQWRk
ZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmQtdGFnLTItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxl
LWVuZC10YWctMi5odG1sOiBBZGRlZC4KKworICAgICAgICBUaGUgZmlyc3QgdGVzdCBjYXNlIGNv
bnRhaW5zIGFuIHVuY2xvc2VkIDx0aXRsZT4gdGFnIGluIDxoZWFkPiwgd2hpbGUgdGhlCisgICAg
ICAgIHNlY29uZCB0ZXN0IGNhc2UgY29udGFpbnMgYW4gdW5jbG9zZWQgPHRpdGxlPiB0YWcgaW4g
PGJvZHk+LiAgVGhlc2UgdHdvIHRlc3QKKyAgICAgICAgY2FzZXMgcmVzdWx0IGluIGRpZmZlcmVu
dCBjb2RlIHBhdGhzIGJlaW5nIHRha2VuLgorCiAyMDA2LTAzLTA1ICBBbGV4YW5kZXIgS2VsbGV0
dCAgPGx5cGFub3ZAa2RlLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljLgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmQtdGFnLTItZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3Npbmct
dGl0bGUtZW5kLXRhZy0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kLXRhZy0yLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
IFJlbmRlckNhbnZhcyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHgzNgorICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBh
dCAoMCwwKSBzaXplIDc3NXgzNgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMy
ODogIlRoaXMgZG9jdW1lbnQgaXMgbWlzc2luZyBpdHMgPC90aXRsZT4gdGFnIGluIGl0cyBib2R5
LiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDMyOCwwKSB3aWR0aCA0NDc6ICJUaGUgdG9rZW5p
emVyIHNob3VsZCByZXRva2VuaXplIHRoaXMgZG9jdW1lbnQgYWZ0ZXIgY29uc3VtaW5nIGFsbCBv
ZiBpdCIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggNTA0OiAibG9va2luZyBm
b3IgdGhlIG1pc3NpbmcgZW5kIHRhZywgdGhlbiBsZXQgdGhlIHBhcnNlciBjbGVhbiB1cCB0aGUg
bWlzc2luZyB0YWcuIFNlZSAiCisgICAgICAgIFJlbmRlcklubGluZSB7QX0gYXQgKDAsMCkgc2l6
ZSAxMjB4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQg
KDUwNCwxOCkgc2l6ZSAxMjB4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg1MDQsMTgpIHdp
ZHRoIDEyMDogIkJ1Z3ppbGxhIEJ1ZyAzOTA1IgorICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBh
dCAoNjI0LDE4KSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjI0LDE4KSB3aWR0
aCA0OiAiLiIKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUt
ZW5kLXRhZy0xLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1h
cmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVu
ZC10YWctMS1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsg
aW1hZ2UvcG5nCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRs
ZS1lbmQtdGFnLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXpl
ci9taXNzaW5nLXRpdGxlLWVuZC10YWctMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmQtdGFnLTIuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMSBAQAorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPHRp
dGxlPk15IHRpdGxlCis8ZGl2PlRoaXMgZG9jdW1lbnQgaXMgbWlzc2luZyBpdHMgJmx0Oy90aXRs
ZSZndDsgdGFnIGluIGl0cyBib2R5LiAgVGhlIHRva2VuaXplciBzaG91bGQgcmV0b2tlbml6ZQor
dGhpcyBkb2N1bWVudCBhZnRlciBjb25zdW1pbmcgYWxsIG9mIGl0IGxvb2tpbmcgZm9yIHRoZSBt
aXNzaW5nIGVuZCB0YWcsIHRoZW4gbGV0IHRoZSBwYXJzZXIgY2xlYW4KK3VwIHRoZSBtaXNzaW5n
IHRhZy4KK1NlZSA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19i
dWcuY2dpP2lkPTM5MDUiPkJ1Z3ppbGxhIEJ1ZyAzOTA1PC9hPi48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5k
LXRhZy0xLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Rva2Vu
aXplci9taXNzaW5nLXRpdGxlLWVuZC10YWctMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZC10YWctMS1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJDYW52YXMgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg1MgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4NTIKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgzNgorICAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MzYKKyAgICAgICAgUmVuZGVyVGV4
dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSA3NzN4MzYKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAzMjY6ICJUaGlzIGRvY3VtZW50IGlzIG1pc3NpbmcgaXRzIDwvdGl0bGU+IHRhZyBp
biBpdHMgaGVhZC4gIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgzMjYsMCkgd2lkdGggNDQ3OiAi
VGhlIHRva2VuaXplciBzaG91bGQgcmV0b2tlbml6ZSB0aGlzIGRvY3VtZW50IGFmdGVyIGNvbnN1
bWluZyBhbGwgb2YgaXQiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDUwNDog
Imxvb2tpbmcgZm9yIHRoZSBtaXNzaW5nIGVuZCB0YWcsIHRoZW4gbGV0IHRoZSBwYXJzZXIgY2xl
YW4gdXAgdGhlIG1pc3NpbmcgdGFnLiBTZWUgIgorICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0
ICgwLDApIHNpemUgMTIweDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAgIFJlbmRlclRleHQg
e1RFWFR9IGF0ICg1MDQsMTgpIHNpemUgMTIweDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
NTA0LDE4KSB3aWR0aCAxMjA6ICJCdWd6aWxsYSBCdWcgMzkwNSIKKyAgICAgICAgUmVuZGVyVGV4
dCB7VEVYVH0gYXQgKDYyNCwxOCkgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDYy
NCwxOCkgd2lkdGggNDogIi4iCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNz
aW5nLXRpdGxlLWVuZC10YWctMi1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxh
eTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3Bu
ZwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2lu
Zy10aXRsZS1lbmQtdGFnLTItZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUt
dHlwZQogICArIGltYWdlL3BuZwoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21p
c3NpbmctdGl0bGUtZW5kLXRhZy0xLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21pc3NpbmctdGl0bGUtZW5kLXRhZy0xLWV4cGVjdGVk
LmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlz
c2luZy10aXRsZS1lbmQtdGFnLTEtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEgQEAKKzc5MjA2YzkzNzlkMmFlMDUxMGEwMjFkOTc2Mzg1MmM0ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10
aXRsZS1lbmQtdGFnLTItZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmQtdGFnLTItZXhwZWN0ZWQuY2hlY2tz
dW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRp
dGxlLWVuZC10YWctMi1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBA
QAorNzlhY2VlOTQ1NWEyNzQwMWI2NDdmMDI2NmJjODhlYzEKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVu
ZC10YWctMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL21p
c3NpbmctdGl0bGUtZW5kLXRhZy0xLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZC10YWctMS5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDExIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPk15IHRpdGxlCis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXY+VGhpcyBkb2N1bWVudCBpcyBtaXNzaW5nIGl0cyAmbHQ7L3RpdGxlJmd0
OyB0YWcgaW4gaXRzIGhlYWQuICBUaGUgdG9rZW5pemVyIHNob3VsZCByZXRva2VuaXplCit0aGlz
IGRvY3VtZW50IGFmdGVyIGNvbnN1bWluZyBhbGwgb2YgaXQgbG9va2luZyBmb3IgdGhlIG1pc3Np
bmcgZW5kIHRhZywgdGhlbiBsZXQgdGhlIHBhcnNlciBjbGVhbgordXAgdGhlIG1pc3NpbmcgdGFn
LgorU2VlIDxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzkwNSI+QnVnemlsbGEgQnVnIDM5MDU8L2E+LjwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9leGNlcHRpb24tbGluZW51bXMtaW4taHRtbC0y
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9leGNlcHRpb24tbGluZW51
bXMtaW4taHRtbC0yLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2V4
Y2VwdGlvbi1saW5lbnVtcy1pbi1odG1sLTIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3
MyBAQAorPGh0bWw+Cis8aGVhZD48dGl0bGU+dGl0bGUKKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0icmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCdUaGlzIHRlc3QgZXhlcmNpc2VzIHRoZSBzb3VyY2UgVVJMIGFuZCBsaW5lIG51bWJl
ciB0aGF0IGlzIGVtYmVkZGVkIGluIEphdmFTY3JpcHQgZXhjZXB0aW9ucywgd2hpY2ggaXMgZGlz
cGxheWVkIGluIHBsYWNlcyBsaWtlIHRoZSBKYXZhU2NyaXB0IGNvbnNvbGUuICBJdCBkaWZmZXJz
IGZyb20gPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Ij5leGNlcHRpb24tbGlu
ZW51bXMtaW4taHRtbC0xLmh0bWw8L3NwYW4+IGluIHRoYXQgaXQgb25seSB3b3JrcyBpZiA8YSBo
cmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTM5MDUi
PkJ1Z3ppbGxhIEJ1ZyAzOTA1PC9hPiBoYXMgYmVlbiBmaXhlZC4nKTsKKworZnVuY3Rpb24gZXhj
ZXB0aW9uSW5GdW5jdGlvbigpCit7CisgICAgdGhyb3cgRXhjZXB0aW9uKCk7Cit9CisKK3ZhciBl
ID0gdW5kZWZpbmVkOworCit0cnkgeworICAgIC8vIFJhaXNlcyBhbiBleGNlcHRpb24gdGhhdCBn
ZXRzIHBpY2tlZCB1cCBieSBLSlNfQ0hFQ0tFWENFUFRJT04KKyAgICBkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQuaW5uZXJIVE1MKGZvbyk7Cit9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICBlID0g
ZXhjZXB0aW9uOworfQorc2hvdWxkQmUoInR5cGVvZiBlLnNvdXJjZVVSTCIsICcic3RyaW5nIicp
Oworc2hvdWxkQmUoImUubGluZSIsICcyMScpOworCitlID0gdW5kZWZpbmVkOwordHJ5IHsKKyAg
ICAvLyBSYWlzZXMgYW4gZXhjZXB0aW9uIHRoYXQgZ2V0cyBwaWNrZWQgdXAgYnkgS0pTX0NIRUNL
RVhDRVBUSU9OVkFMVUUKKyAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQo
JycpLnByZWZpeCA9ICcnOworfSBjYXRjaCAoZXhjZXB0aW9uKSB7CisgICAgZSA9IGV4Y2VwdGlv
bjsKK30KK3Nob3VsZEJlKCJ0eXBlb2YgZS5zb3VyY2VVUkwiLCAnInN0cmluZyInKTsKK3Nob3Vs
ZEJlKCJlLmxpbmUiLCAnMzEnKTsKKworZSA9IHVuZGVmaW5lZDsKK3RyeSB7CisgICAgLy8gUmFp
c2VzIGFuIGV4Y2VwdGlvbiB0aGF0IGdldHMgcGlja2VkIHVwIGJ5IEtKU19DSEVDS0VYQ0VQVElP
TlJFRkVSRU5DRQorICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZCgnJyku
aW5uZXJIVE1MID0gJyc7Cit9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICBlID0gZXhjZXB0aW9u
OworfQorc2hvdWxkQmUoInR5cGVvZiBlLnNvdXJjZVVSTCIsICcic3RyaW5nIicpOworc2hvdWxk
QmUoImUubGluZSIsICc0MScpOworCitlID0gdW5kZWZpbmVkOwordHJ5IHsKKyAgICAvLyBSYWlz
ZXMgYW4gZXhjZXB0aW9uIHRoYXQgZ2V0cyBwaWNrZWQgdXAgYnkgS0pTX0NIRUNLRVhDRVBUSU9O
TElTVAorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKDEoKSk7Cit9IGNhdGNoIChleGNlcHRp
b24pIHsKKyAgICBlID0gZXhjZXB0aW9uOworfQorc2hvdWxkQmUoInR5cGVvZiBlLnNvdXJjZVVS
TCIsICcic3RyaW5nIicpOworc2hvdWxkQmUoImUubGluZSIsICc1MScpOworCitlID0gdW5kZWZp
bmVkOworLy8gUmFpc2VzIGFuIGV4Y2VwdGlvbiBpbnNpZGUgYSBmdW5jdGlvbiB0byBjaGVjayB0
aGF0IGl0cyBsaW5lIG51bWJlcgorLy8gaXNuJ3Qgb3ZlcndyaXR0ZW4gaW4gdGhlIGFzc2lnbm1l
bnQgbm9kZS4KK3RyeSB7CisgICAgdmFyIGEgPSBleGNlcHRpb25JbkZ1bmN0aW9uKCk7Cit9IGNh
dGNoIChleGNlcHRpb24pIHsKKyAgICBlID0gZXhjZXB0aW9uOworfQorc2hvdWxkQmUoInR5cGVv
ZiBlLnNvdXJjZVVSTCIsICcic3RyaW5nIicpOworc2hvdWxkQmUoImUubGluZSIsICcxNCcpOwor
Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9taXNzaW5nLXRpdGxlLWVuZC10YWctanMtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvbWlzc2luZy10aXRsZS1l
bmQtdGFnLWpzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
anMvbWlzc2luZy10aXRsZS1lbmQtdGFnLWpzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw5IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIGZpcnN0IDxzY3JpcHQ+IHRh
ZyBhZnRlciBhbiB1bmNsb3NlZCA8dGl0bGU+IHRhZyBpcyBwYXJzZWQgY29ycmVjdGx5LiBFYXJs
eSB2ZXJzaW9ucyBvZiB0aGUgcGF0Y2ggZm9yIEJ1Z3ppbGxhIEJ1ZyAzOTA1IGRpZCBub3QgcmVz
ZXQgYSBzdGF0ZSB2YXJpYWJsZSBwcm9wZXJseSwgY2F1c2luZyB0aGUgZmlyc3QgPHNjcmlwdD48
L3NjcmlwdD4gdGFnIGluIHRoZSBkb2N1bWVudCB0byBjb250YWluIGV2ZXJ5dGhpbmcgYWZ0ZXIg
dGhlIDx0aXRsZT4gdGFnLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvanMvbWlzc2luZy10aXRsZS1lbmQtdGFnLWpzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9taXNzaW5nLXRpdGxlLWVuZC10YWctanMuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvbWlzc2luZy10aXRsZS1lbmQtdGFnLWpz
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcgQEAKKzxodG1sPgorPGhlYWQ+PHRpdGxl
PnRpdGxlCis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0PgorICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IGNoZWNrcyB0
aGF0IHRoZSBmaXJzdCAmbHQ7c2NyaXB0Jmd0OyB0YWcgYWZ0ZXIgYW4gdW5jbG9zZWQgJmx0O3Rp
dGxlJmd0OyB0YWcgaXMgcGFyc2VkIGNvcnJlY3RseS4gIEVhcmx5IHZlcnNpb25zIG9mIHRoZSBw
YXRjaCBmb3IgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVn
LmNnaT9pZD0zOTA1Ij5CdWd6aWxsYSBCdWcgMzkwNTwvYT4gZGlkIG5vdCByZXNldCBhIHN0YXRl
IHZhcmlhYmxlIHByb3Blcmx5LCBjYXVzaW5nIHRoZSBmaXJzdCAmbHQ7c2NyaXB0Jmd0OyZsdDsv
c2NyaXB0Jmd0OyB0YWcgaW4gdGhlIGRvY3VtZW50IHRvIGNvbnRhaW4gZXZlcnl0aGluZyBhZnRl
ciB0aGUgJmx0O3RpdGxlJmd0OyB0YWcuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvanMvZXhjZXB0aW9uLWxpbmVudW1zLWluLWh0bWwtMS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9leGNlcHRpb24tbGluZW51
bXMtaW4taHRtbC0xLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvanMvZXhjZXB0aW9uLWxpbmVudW1zLWluLWh0bWwtMS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTkgQEAKK1RoaXMgdGVzdCBleGVyY2lzZXMgdGhlIHNvdXJjZSBVUkwg
YW5kIGxpbmUgbnVtYmVyIHRoYXQgaXMgZW1iZWRkZWQgaW4gSmF2YVNjcmlwdCBleGNlcHRpb25z
LCB3aGljaCBpcyBkaXNwbGF5ZWQgaW4gcGxhY2VzIGxpa2UgdGhlIEphdmFTY3JpcHQgY29uc29s
ZS4gSXQgZGlmZmVycyBmcm9tIGV4Y2VwdGlvbi1saW5lbnVtcy5odG1sIGluIHRoYXQgdGhlIGxp
bmUgbnVtYmVycyBhcmUgZGVyaXZlZCBmcm9tIHdpdGhpbiB0aGUgSFRNTCBzb3VyY2UsIG5vdCBh
IEphdmFTY3JpcHQgc291cmNlIGZpbGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHR5cGVvZiBlLnNvdXJjZVVSTCBpcyAic3RyaW5nIgorUEFTUyBlLmxpbmUgaXMgMjEK
K1BBU1MgdHlwZW9mIGUuc291cmNlVVJMIGlzICJzdHJpbmciCitQQVNTIGUubGluZSBpcyAzMQor
UEFTUyB0eXBlb2YgZS5zb3VyY2VVUkwgaXMgInN0cmluZyIKK1BBU1MgZS5saW5lIGlzIDQxCitQ
QVNTIHR5cGVvZiBlLnNvdXJjZVVSTCBpcyAic3RyaW5nIgorUEFTUyBlLmxpbmUgaXMgNTEKK1BB
U1MgdHlwZW9mIGUuc291cmNlVVJMIGlzICJzdHJpbmciCitQQVNTIGUubGluZSBpcyAxNAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvanMvZXhjZXB0aW9uLWxpbmVudW1zLWluLWh0bWwtMS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvZXhjZXB0aW9uLWxpbmVudW1zLWluLWh0bWwt
MS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9leGNlcHRpb24tbGlu
ZW51bXMtaW4taHRtbC0xLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzMgQEAKKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IGV4ZXJj
aXNlcyB0aGUgc291cmNlIFVSTCBhbmQgbGluZSBudW1iZXIgdGhhdCBpcyBlbWJlZGRlZCBpbiBK
YXZhU2NyaXB0IGV4Y2VwdGlvbnMsIHdoaWNoIGlzIGRpc3BsYXllZCBpbiBwbGFjZXMgbGlrZSB0
aGUgSmF2YVNjcmlwdCBjb25zb2xlLiAgSXQgZGlmZmVycyBmcm9tIDxzcGFuIHN0eWxlPSJmb250
LWZhbWlseTogbW9ub3NwYWNlOyI+ZXhjZXB0aW9uLWxpbmVudW1zLmh0bWw8L3NwYW4+IGluIHRo
YXQgdGhlIGxpbmUgbnVtYmVycyBhcmUgZGVyaXZlZCBmcm9tIHdpdGhpbiB0aGUgSFRNTCBzb3Vy
Y2UsIG5vdCBhIEphdmFTY3JpcHQgc291cmNlIGZpbGUuJyk7CisKK2Z1bmN0aW9uIGV4Y2VwdGlv
bkluRnVuY3Rpb24oKQoreworICAgIHRocm93IEV4Y2VwdGlvbigpOworfQorCit2YXIgZSA9IHVu
ZGVmaW5lZDsKKwordHJ5IHsKKyAgICAvLyBSYWlzZXMgYW4gZXhjZXB0aW9uIHRoYXQgZ2V0cyBw
aWNrZWQgdXAgYnkgS0pTX0NIRUNLRVhDRVBUSU9OCisgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50LmlubmVySFRNTChmb28pOworfSBjYXRjaCAoZXhjZXB0aW9uKSB7CisgICAgZSA9IGV4Y2Vw
dGlvbjsKK30KK3Nob3VsZEJlKCJ0eXBlb2YgZS5zb3VyY2VVUkwiLCAnInN0cmluZyInKTsKK3No
b3VsZEJlKCJlLmxpbmUiLCAnMjEnKTsKKworZSA9IHVuZGVmaW5lZDsKK3RyeSB7CisgICAgLy8g
UmFpc2VzIGFuIGV4Y2VwdGlvbiB0aGF0IGdldHMgcGlja2VkIHVwIGJ5IEtKU19DSEVDS0VYQ0VQ
VElPTlZBTFVFCisgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKCcnKS5w
cmVmaXggPSAnJzsKK30gY2F0Y2ggKGV4Y2VwdGlvbikgeworICAgIGUgPSBleGNlcHRpb247Cit9
CitzaG91bGRCZSgidHlwZW9mIGUuc291cmNlVVJMIiwgJyJzdHJpbmciJyk7CitzaG91bGRCZSgi
ZS5saW5lIiwgJzMxJyk7CisKK2UgPSB1bmRlZmluZWQ7Cit0cnkgeworICAgIC8vIFJhaXNlcyBh
biBleGNlcHRpb24gdGhhdCBnZXRzIHBpY2tlZCB1cCBieSBLSlNfQ0hFQ0tFWENFUFRJT05SRUZF
UkVOQ0UKKyAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoJycpLmlubmVy
SFRNTCA9ICcnOworfSBjYXRjaCAoZXhjZXB0aW9uKSB7CisgICAgZSA9IGV4Y2VwdGlvbjsKK30K
K3Nob3VsZEJlKCJ0eXBlb2YgZS5zb3VyY2VVUkwiLCAnInN0cmluZyInKTsKK3Nob3VsZEJlKCJl
LmxpbmUiLCAnNDEnKTsKKworZSA9IHVuZGVmaW5lZDsKK3RyeSB7CisgICAgLy8gUmFpc2VzIGFu
IGV4Y2VwdGlvbiB0aGF0IGdldHMgcGlja2VkIHVwIGJ5IEtKU19DSEVDS0VYQ0VQVElPTkxJU1QK
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgxKCkpOworfSBjYXRjaCAoZXhjZXB0aW9uKSB7
CisgICAgZSA9IGV4Y2VwdGlvbjsKK30KK3Nob3VsZEJlKCJ0eXBlb2YgZS5zb3VyY2VVUkwiLCAn
InN0cmluZyInKTsKK3Nob3VsZEJlKCJlLmxpbmUiLCAnNTEnKTsKKworZSA9IHVuZGVmaW5lZDsK
Ky8vIFJhaXNlcyBhbiBleGNlcHRpb24gaW5zaWRlIGEgZnVuY3Rpb24gdG8gY2hlY2sgdGhhdCBp
dHMgbGluZSBudW1iZXIKKy8vIGlzbid0IG92ZXJ3cml0dGVuIGluIHRoZSBhc3NpZ25tZW50IG5v
ZGUuCit0cnkgeworICAgIHZhciBhID0gZXhjZXB0aW9uSW5GdW5jdGlvbigpOworfSBjYXRjaCAo
ZXhjZXB0aW9uKSB7CisgICAgZSA9IGV4Y2VwdGlvbjsKK30KK3Nob3VsZEJlKCJ0eXBlb2YgZS5z
b3VyY2VVUkwiLCAnInN0cmluZyInKTsKK3Nob3VsZEJlKCJlLmxpbmUiLCAnMTQnKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvanMvZXhjZXB0aW9uLWxpbmVudW1zLWluLWh0bWwtMi1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9leGNlcHRpb24tbGluZW51
bXMtaW4taHRtbC0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvanMvZXhjZXB0aW9uLWxpbmVudW1zLWluLWh0bWwtMi1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTkgQEAKK1RoaXMgdGVzdCBleGVyY2lzZXMgdGhlIHNvdXJjZSBVUkwg
YW5kIGxpbmUgbnVtYmVyIHRoYXQgaXMgZW1iZWRkZWQgaW4gSmF2YVNjcmlwdCBleGNlcHRpb25z
LCB3aGljaCBpcyBkaXNwbGF5ZWQgaW4gcGxhY2VzIGxpa2UgdGhlIEphdmFTY3JpcHQgY29uc29s
ZS4gSXQgZGlmZmVycyBmcm9tIGV4Y2VwdGlvbi1saW5lbnVtcy1pbi1odG1sLTEuaHRtbCBpbiB0
aGF0IGl0IG9ubHkgd29ya3MgaWYgQnVnemlsbGEgQnVnIDM5MDUgaGFzIGJlZW4gZml4ZWQuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHR5cGVvZiBlLnNvdXJjZVVSTCBp
cyAic3RyaW5nIgorUEFTUyBlLmxpbmUgaXMgMjEKK1BBU1MgdHlwZW9mIGUuc291cmNlVVJMIGlz
ICJzdHJpbmciCitQQVNTIGUubGluZSBpcyAzMQorUEFTUyB0eXBlb2YgZS5zb3VyY2VVUkwgaXMg
InN0cmluZyIKK1BBU1MgZS5saW5lIGlzIDQxCitQQVNTIHR5cGVvZiBlLnNvdXJjZVVSTCBpcyAi
c3RyaW5nIgorUEFTUyBlLmxpbmUgaXMgNTEKK1BBU1MgdHlwZW9mIGUuc291cmNlVVJMIGlzICJz
dHJpbmciCitQQVNTIGUubGluZSBpcyAxNAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1scGFyc2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbHBhcnNlci5jcHAJKHJl
dmlzaW9uIDEzMTMzKQorKysgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxwYXJzZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NzAsNiArNDcwLDkgQEAgYm9vbCBIVE1MUGFyc2VyOjpoYW5kbGVFcnJv
cihOb2RlSW1wbCogbgogICAgICAgICAgICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoaC0+aGFzTG9j
YWxOYW1lKHRpdGxlVGFnKSkgeworICAgICAgICAgICAgcG9wQmxvY2soY3VycmVudFRhZ05hbWUp
OworICAgICAgICAgICAgaGFuZGxlZCA9IHRydWU7CiAgICAgICAgIH0gZWxzZSBpZiAoaC0+aGFz
TG9jYWxOYW1lKGNhcHRpb25UYWcpKSB7CiAgICAgICAgICAgICAvLyBJbGxlZ2FsIGNvbnRlbnQg
aW4gYSBjYXB0aW9uLiBDbG9zZSB0aGUgY2FwdGlvbiBhbmQgdHJ5IGFnYWluLgogICAgICAgICAg
ICAgcG9wQmxvY2soY3VycmVudFRhZ05hbWUpOwpJbmRleDogV2ViQ29yZS9raHRtbC9odG1sL2h0
bWx0b2tlbml6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva2h0bWwvaHRtbC9odG1sdG9r
ZW5pemVyLmNwcAkocmV2aXNpb24gMTMxMzMpCisrKyBXZWJDb3JlL2todG1sL2h0bWwvaHRtbHRv
a2VuaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNjQsMTEgKzEyNjQsMjMgQEAgSFRNTFRv
a2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFycwogICAgICAgICAgICAgICAgICAgICBz
dGF0ZSA9IHBhcnNlU3BlY2lhbChzcmMsIHN0YXRlKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9IGVsc2UgaWYgKHRhZ05hbWUgPT0gdGl0bGVUYWcpIHsKLSAgICAgICAgICAgICAg
ICAgaWYgKGJlZ2luVGFnKSB7CisgICAgICAgICAgICAgICAgaWYgKGJlZ2luVGFnKSB7CiAgICAg
ICAgICAgICAgICAgICAgIHNlYXJjaFN0b3BwZXIgPSB0aXRsZUVuZDsKICAgICAgICAgICAgICAg
ICAgICAgc2VhcmNoU3RvcHBlckxlbiA9IDc7CisgICAgICAgICAgICAgICAgICAgIFN0YXRlIHNh
dmVkU3RhdGUgPSBzdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgU2VnbWVudGVkU3RyaW5nIHNh
dmVkU3JjID0gc3JjOworICAgICAgICAgICAgICAgICAgICBsb25nIHNhdmVkTGluZW5vID0gbGlu
ZW5vOwogICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJblRpdGxlKHRydWUpOwogICAgICAg
ICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlU3BlY2lhbChzcmMsIHN0YXRlKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKHN0YXRlLmluVGl0bGUoKSAmJiBzcmMuaXNFbXB0eSgpKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBXZSBqdXN0IGF0ZSB0aGUgcmVzdCBvZiB0aGUgZG9jdW1l
bnQgYXMgdGhlIHRpdGxlICN0ZXh0IG5vZGUhCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBS
ZXNldCB0aGUgc3RhdGUgdGhlbiByZXRva2VuaXplIHdpdGhvdXQgc3BlY2lhbCB0aXRsZSBoYW5k
bGluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIExldCB0aGUgaHRtbCBwYXJzZXIgY2xl
YW4gdXAgdGhlIG1pc3NpbmcgPC90aXRsZT4gdGFnLgorICAgICAgICAgICAgICAgICAgICAgICAg
c3RhdGUgPSBzYXZlZFN0YXRlOworICAgICAgICAgICAgICAgICAgICAgICAgc3JjID0gc2F2ZWRT
cmM7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lbm8gPSBzYXZlZExpbmVubzsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHNjcmlwdENvZGVTaXplID0gMDsKKyAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSBpZiAodGFnTmFtZSA9
PSB4bXBUYWcpIHsKICAgICAgICAgICAgICAgICBpZiAoYmVnaW5UYWcpIHsKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vU2VnbWVudGVkU3RyaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL1NlZ21lbnRlZFN0cmluZy5jcHAJKHJldmlzaW9uIDEzMTMzKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9TZWdtZW50ZWRTdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCwz
NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1NlZ21lbnRlZFN0cmluZzo6U2VnbWVudGVk
U3RyaW5nKGNvbnN0IFNlZ21lbnRlZFN0cmluZyAmb3RoZXIpIDoKKyAgICBtX3B1c2hlZENoYXIx
KG90aGVyLm1fcHVzaGVkQ2hhcjEpLCBtX3B1c2hlZENoYXIyKG90aGVyLm1fcHVzaGVkQ2hhcjIp
LCBtX2N1cnJlbnRTdHJpbmcob3RoZXIubV9jdXJyZW50U3RyaW5nKSwKKyAgICBtX3N1YnN0cmlu
Z3Mob3RoZXIubV9zdWJzdHJpbmdzKSwgbV9saW5lcyhvdGhlci5tX2xpbmVzKSwgbV9jb21wb3Np
dGUob3RoZXIubV9jb21wb3NpdGUpCit7CisgICAgaWYgKG90aGVyLm1fY3VycmVudENoYXIgPT0g
Jm90aGVyLm1fcHVzaGVkQ2hhcjEpCisgICAgICAgIG1fY3VycmVudENoYXIgPSAmbV9wdXNoZWRD
aGFyMTsKKyAgICBlbHNlIGlmIChvdGhlci5tX2N1cnJlbnRDaGFyID09ICZvdGhlci5tX3B1c2hl
ZENoYXIyKQorICAgICAgICBtX2N1cnJlbnRDaGFyID0gJm1fcHVzaGVkQ2hhcjI7CisgICAgZWxz
ZQorICAgICAgICBtX2N1cnJlbnRDaGFyID0gb3RoZXIubV9jdXJyZW50Q2hhcjsKK30KKworY29u
c3QgU2VnbWVudGVkU3RyaW5nJiBTZWdtZW50ZWRTdHJpbmc6Om9wZXJhdG9yPShjb25zdCBTZWdt
ZW50ZWRTdHJpbmcgJm90aGVyKQoreworICAgIG1fcHVzaGVkQ2hhcjEgPSBvdGhlci5tX3B1c2hl
ZENoYXIxOworICAgIG1fcHVzaGVkQ2hhcjIgPSBvdGhlci5tX3B1c2hlZENoYXIyOworICAgIG1f
Y3VycmVudFN0cmluZyA9IG90aGVyLm1fY3VycmVudFN0cmluZzsKKyAgICBtX3N1YnN0cmluZ3Mg
PSBvdGhlci5tX3N1YnN0cmluZ3M7CisgICAgbV9saW5lcyA9IG90aGVyLm1fbGluZXM7CisgICAg
bV9jb21wb3NpdGUgPSBvdGhlci5tX2NvbXBvc2l0ZTsKKyAgICBpZiAob3RoZXIubV9jdXJyZW50
Q2hhciA9PSAmb3RoZXIubV9wdXNoZWRDaGFyMSkKKyAgICAgICAgbV9jdXJyZW50Q2hhciA9ICZt
X3B1c2hlZENoYXIxOworICAgIGVsc2UgaWYgKG90aGVyLm1fY3VycmVudENoYXIgPT0gJm90aGVy
Lm1fcHVzaGVkQ2hhcjIpCisgICAgICAgIG1fY3VycmVudENoYXIgPSAmbV9wdXNoZWRDaGFyMjsK
KyAgICBlbHNlCisgICAgICAgIG1fY3VycmVudENoYXIgPSBvdGhlci5tX2N1cnJlbnRDaGFyOwor
ICAgIHJldHVybiAqdGhpczsKK30KKwogdWludCBTZWdtZW50ZWRTdHJpbmc6Omxlbmd0aCgpIGNv
bnN0CiB7CiAgICAgdWludCBsZW5ndGggPSBtX2N1cnJlbnRTdHJpbmcubV9sZW5ndGg7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL1NlZ21lbnRlZFN0cmluZy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vU2VnbWVudGVkU3RyaW5nLmgJKHJldmlzaW9uIDEzMTMzKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9TZWdtZW50ZWRTdHJpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNiArNzMs
OSBAQCBwdWJsaWM6CiAgICAgU2VnbWVudGVkU3RyaW5nKCkgOiBtX2N1cnJlbnRDaGFyKDApLCBt
X2xpbmVzKDApLCBtX2NvbXBvc2l0ZShmYWxzZSkge30KICAgICBTZWdtZW50ZWRTdHJpbmcoY29u
c3QgUUNoYXIgKnN0ciwgaW50IGxlbmd0aCkgOiBtX2N1cnJlbnRTdHJpbmcoc3RyLCBsZW5ndGgp
LCBtX2N1cnJlbnRDaGFyKG1fY3VycmVudFN0cmluZy5tX2N1cnJlbnQpLCBtX2xpbmVzKDApLCBt
X2NvbXBvc2l0ZShmYWxzZSkge30KICAgICBTZWdtZW50ZWRTdHJpbmcoY29uc3QgUVN0cmluZyAm
c3RyKSA6IG1fY3VycmVudFN0cmluZyhzdHIpLCBtX2N1cnJlbnRDaGFyKG1fY3VycmVudFN0cmlu
Zy5tX2N1cnJlbnQpLCBtX2xpbmVzKDApLCBtX2NvbXBvc2l0ZShmYWxzZSkge30KKyAgICBTZWdt
ZW50ZWRTdHJpbmcoY29uc3QgU2VnbWVudGVkU3RyaW5nJik7CisKKyAgICBjb25zdCBTZWdtZW50
ZWRTdHJpbmcmIG9wZXJhdG9yPShjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsKIAogICAgIHZvaWQg
Y2xlYXIoKTsKIApJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMTQ1KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwzMiBAQAorMjAwNi0wMy0wNSAgRGF2aWQgS2lsemVyICA8ZGRr
aWx6ZXJAa2lsemVyLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAtIEZpeCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3df
YnVnLmNnaT9pZD0zOTA1CisgICAgICAgIE1pc3NpbmcgPC90aXRsZT4gbWFrZXMgcGFnZSBibGFu
aworCisgICAgICAgIFRlc3Q6IGZhc3QvanMvZXhjZXB0aW9uLWxpbmVudW1zLWluLWh0bWwtMS5o
dG1sCisgICAgICAgIFRlc3Q6IGZhc3QvanMvZXhjZXB0aW9uLWxpbmVudW1zLWluLWh0bWwtMi5o
dG1sCisgICAgICAgIFRlc3Q6IGZhc3QvanMvbWlzc2luZy10aXRsZS1lbmQtdGFnLWpzLmh0bWwK
KyAgICAgICAgVGVzdDogZmFzdC90b2tlbml6ZXIvbWlzc2luZy10aXRsZS1lbmQtdGFnLTEuaHRt
bAorICAgICAgICBUZXN0OiBmYXN0L3Rva2VuaXplci9taXNzaW5nLXRpdGxlLWVuZC10YWctMi5o
dG1sCisKKyAgICAgICAgKiBraHRtbC9odG1sL2h0bWxwYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFBhcnNlcjo6aGFuZGxlRXJyb3IpOiBBZGQgY2hlY2sgZm9yIG1pc3NpbmcgPC90
aXRsZT4gdGFnIGFuZCBoYW5kbGUKKyAgICAgICAgdGhpcyBjb25kaXRpb24gaWYgaWRlbnRpZmll
ZC4KKyAgICAgICAgKiBraHRtbC9odG1sL2h0bWx0b2tlbml6ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRva2VuaXplcjo6cGFyc2VUYWcpOiBJZiBwYXJzZVNwZWNpYWwoKSBjb25zdW1l
cyB0aGUgcmVzdCBvZiB0aGUKKyAgICAgICAgZG9jdW1lbnQgbG9va2luZyBmb3IgYSA8L3RpdGxl
PiB0YWcsIHJlc2V0IHRoZSBzdGF0ZSBvZiB0aGUgdG9rZW5pemVyIGFuZAorICAgICAgICByZXRv
a2VuaXplIHdpdGggbm8gc3BlY2lhbCBoYW5kbGluZyBmb3IgPHRpdGxlPi4gIFRoZSBwYXJzZXIg
d2lsbCBoYW5kbGUgdGhlCisgICAgICAgIG1pc3NpbmcgPC90aXRsZT4gdGFnIGluIEhUTUxQYXJz
ZXI6OmhhbmRsZUVycm9yKCkuCisgICAgICAgICogcGxhdGZvcm0vU2VnbWVudGVkU3RyaW5nLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6U2VnbWVudGVkU3RyaW5nKTog
QWRkZWQgY29weSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmlu
Zzo6b3BlcmF0b3I9KTogQWRkZWQgYXNzaWdubWVudCBvcGVyYXRvci4gIFByZXZpb3VzbHkgdGhl
CisgICAgICAgIGNvbXBpbGVyIHdhcyBnZW5lcmF0aW5nIGEgZGVmYXVsdCBtZXRob2QgZm9yIHRo
ZSBhc3NpZ25tZW50IG9wZXJhdG9yLCBidXQgaXQgZGlkCisgICAgICAgIG5vdCBoYW5kbGUgbV9j
dXJyZW50Q2hhciBwcm9wZXJseS4KKyAgICAgICAgKiBwbGF0Zm9ybS9TZWdtZW50ZWRTdHJpbmcu
aDogQWRkZWQgcHJvdG90eXBlcyBmb3IgY29weSBjb25zdHJ1Y3RvciBhbmQKKyAgICAgICAgYXNz
aWdubWVudCBvcGVyYXRvci4KKwogMjAwNi0wMy0wNSAgRXJpYyBTZWlkZWwgIDxlc2VpZGVsQGFw
cGxlLmNvbT4KIAogICAgICAgICBNb3ZlIGltcHJvcGVybHkgcGxhY2VkICNlbmRpZiBjYXVzaW5n
IG5vLXN2ZyBidWlsZCB0byBmYWlsLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>