<?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>5264</bug_id>
          
          <creation_ts>2005-10-04 14:37:30 -0700</creation_ts>
          <short_desc>document.createElementNS() should not allow to insert a second &lt;html&gt; element</short_desc>
          <delta_ts>2019-02-06 09:04:07 -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>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Richard Vermillion">rvermillion</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>21365</commentid>
    <comment_count>0</comment_count>
    <who name="Richard Vermillion">rvermillion</who>
    <bug_when>2005-10-04 14:37:30 -0700</bug_when>
    <thetext>According to the DOM Level 3 specification, the createDocument method of the DOMImplementation 
interface should create the root element (i.e. the documentElement) of the Document unless the first 
two arguments are both null.

See: http://www.w3.org/TR/DOM-Level-3-Core/core.html#Level-2-Core-DOM-createDocument

In Safari, the new Document does not have a root element and it must be created.  The following script 
produces the problem:


  var d = document.implementation.createDocument(&quot;http://www.w3.org/1999/xhtml&quot;, &quot;html&quot;, null);

  alert(&quot;In Firefox, this is not null: &quot; + d.documentElement);

  try {
    d.appendChild(d.createElementNS(&quot;http://www.w3.org/1999/xhtml&quot;, &quot;html&quot;));
  }
  catch (e) {
    alert(&quot;In Firefox, we correctly get a node hierarchy error: &quot; + e);
  }

  alert(&quot;Now we have: &quot; + d.documentElement);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31738</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-07 11:41:45 -0800</bug_when>
    <thetext>The original issue reported here has been fixed as bug 5728. However, the test case still fails, because the code creates two &lt;html&gt; elements.

I&apos;m leaving the bug open to track this additional issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31739</commentid>
    <comment_count>2</comment_count>
      <attachid>6332</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-07 11:42:19 -0800</bug_when>
    <thetext>Created attachment 6332
new test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42317</commentid>
    <comment_count>3</comment_count>
      <attachid>8310</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-05-14 14:04:32 -0700</bug_when>
    <thetext>Created attachment 8310
Proposed patch

First stab at fixing this.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42321</commentid>
    <comment_count>4</comment_count>
      <attachid>8310</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-14 17:28:00 -0700</bug_when>
    <thetext>Comment on attachment 8310
Proposed patch

Despite its name, I don&apos;t think it&apos;s good to reuse the parsing function, childAllowed, for uses other than in the parser.

This change alone would leave the code in a very confused state about when childAllowed is called, when checkAddChild is called, and when childTypeAllowed is called.

For clarity we should probably rename at least some of the three functions.

On the other hand, the code in Document::childAllowed is clearly good to run even when not parsing. If we decide we want that logic all the time, then we should change that logic to be type-based and move it into Document::childTypeAllowed. Since all the code does is check if the new child is an element, and then if its type is DOCUMENT_TYPE_NODE, I think the code could be adapted that way.

Also need a layout test, of course, and some documentation about what WinIE and Firefox do in these cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42398</commentid>
    <comment_count>5</comment_count>
      <attachid>8328</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-05-15 13:37:06 -0700</bug_when>
    <thetext>Created attachment 8328
Different approach

Hi Darin,

I think it will be hard to merge some of the functions. For instance HTMLElement::childAllowed
really seems to be useful only for parsing, not for dom usage. In the new patch I move the two checks
from Document::childallowed to Document::childTypeAllowed. That means for calling childAllowed
on Document it behaves as before, for Document::childTypeAllowed it adds the two checks.
The changed test results are official dom cases that now pass, except documentnormalizedocument10.xhtml, which also &quot;fails&quot; in firefox. I think that test is broken though,
the others probably need updated test results.
Firefox behaves correctly, it throws the exception.
Win IE does not run the testcase, it says:

Line 3
Char 3
Error: Object doesn&apos;t support this property or method

Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42405</commentid>
    <comment_count>6</comment_count>
      <attachid>8328</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-15 14:39:29 -0700</bug_when>
    <thetext>Comment on attachment 8328
Different approach

Looks great.

(In reply to comment #5)
&gt; I think it will be hard to merge some of the functions. For instance
&gt; HTMLElement::childAllowed
&gt; really seems to be useful only for parsing, not for dom usage.

Right. Sorry, I didn&apos;t mean that we should merge them all. I was requesting that you move the checks in Document, not all of the other parser-specific checks. But I think that childAllowed also (eventually) needs a name that makes it clear it&apos;s for parsing only.

&gt; The changed test results are official dom cases that now pass, except
&gt; documentnormalizedocument10.xhtml, which also &quot;fails&quot; in firefox. I think that
&gt; test is broken though,
&gt; the others probably need updated test results.
&gt; Firefox behaves correctly, it throws the exception.

Sounds good. The patch should include the updated results for the DOM test cases.

We should add a new test for document type, since we&apos;re changing the behavior of that too.

r=me on the code change, but please post a patch that includes the test result changes and a change log for LayoutTests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42461</commentid>
    <comment_count>7</comment_count>
      <attachid>8349</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-05-16 02:34:57 -0700</bug_when>
    <thetext>Created attachment 8349
More complete patch

Hi Darin,

This patch does include the changed results, and two instead of just one
testcase. In fact the old testcase was not suited, having alert() in them.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42496</commentid>
    <comment_count>8</comment_count>
      <attachid>8349</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-16 10:12:05 -0700</bug_when>
    <thetext>Comment on attachment 8349
More complete patch

Getting better!

ChangeLog for LayoutTests needs to mention changes to test results, not just newly added tests. Patch should include expected results for new tests as well as the tests themselves.

And as long as I&apos;m looking at this code for the third time, I suggest tightening it a tiny bit:

+        case ELEMENT_NODE: {
+            // Documents may contain a maximum of one Element child
+            Node *c;
+            for (c = firstChild(); c; c = c-&gt;nextSibling()) {
+                if (c-&gt;isElementNode())
+                    return false;
+            }
+            return true;
+        }
+        case DOCUMENT_TYPE_NODE: {
+            // Documents may contain a maximum of one DocumentType child
+            Node *c;
+            for (c = firstChild(); c; c = c-&gt;nextSibling()) {
+                if (c-&gt;nodeType() == DOCUMENT_TYPE_NODE)
+                    return false;
+            }
+            return true;
+        }

Like this:

        case DOCUMENT_TYPE_NODE:
        case ELEMENT_NODE:
            // Documents may contain a maximum of one child of each of these types.
            // (One Element child and one DocumentType child.)
            for (Node* c = firstChild(); c; c = c-&gt;nextSibling())
                if (c-&gt;nodeType() == type)
                    return false;
            return true;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42508</commentid>
    <comment_count>9</comment_count>
      <attachid>8353</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-05-16 11:47:07 -0700</bug_when>
    <thetext>Created attachment 8353
Even better patch

I love the tweak to combine the two code sections :)
I improved the test cases and have tried to fix all the
remaining issues.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42523</commentid>
    <comment_count>10</comment_count>
      <attachid>8353</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-16 13:03:20 -0700</bug_when>
    <thetext>Comment on attachment 8353
Even better patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42674</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-16 20:25:13 -0700</bug_when>
    <thetext>Looking at createDocumentType2, I see that it adds the same DocumentType element twice. That&apos;s not the same thing as adding two DocumentType elements! In fact, it tests a behavior which I&apos;m not sure is correct. If you&apos;re appending a child that&apos;s already in the document I don&apos;t think it should fail, because appendChild removes the child from its old location first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42679</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-16 23:30:01 -0700</bug_when>
    <thetext>Committed revision 14430.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503105</commentid>
    <comment_count>13</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:04:07 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6332</attachid>
            <date>2006-02-07 11:42:19 -0800</date>
            <delta_ts>2006-02-07 11:42:19 -0800</delta_ts>
            <desc>new test case</desc>
            <filename>5264.html</filename>
            <type>text/html</type>
            <size>397</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PGJvZHk+CjxzY3JpcHQ+CiAgdmFyIGQgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVE
b2N1bWVudCgiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJodG1sIiwgbnVsbCk7Cgog
IHRyeSB7CiAgICBkLmFwcGVuZENoaWxkKGQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIiwgImh0bWwiKSk7CiAgICBhbGVydCgiTm8gZXhjZXB0aW9uIHJhaXNl
ZCBmb3I6ICIgKyAobmV3IFhNTFNlcmlhbGl6ZXIoKSkuc2VyaWFsaXplVG9TdHJpbmcoZCkpOwog
IH0KICBjYXRjaCAoZSkgewogICAgYWxlcnQoIkluIEZpcmVmb3gsIHdlIGNvcnJlY3RseSBnZXQg
YSBub2RlIGhpZXJhcmNoeSBlcnJvcjogIiArIGUpOwogIH0KCjwvc2NyaXB0Pgo8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8310</attachid>
            <date>2006-05-14 14:04:32 -0700</date>
            <delta_ts>2006-05-15 13:37:06 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>5624.diff</filename>
            <type>text/plain</type>
            <size>1259</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNDM2NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDYtMDUtMTQgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBmb3IgaHR0
cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD01NjI0CisgICAgICAg
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygpIHNob3VsZCBub3QgYWxsb3cgdG8gaW5zZXJ0IGEg
c2Vjb25kIDxodG1sPiBlbGVtZW50CisKKyAgICAgICAgRG8gYW4gZXh0cmEgY2hlY2sgZm9yIGRv
Y3VtZW50IG5vZGVzIHRvIGRldGVjdCBtdWx0aXBsZSBkb2N1bWVudCBlbGVtZW50cy4KKworICAg
ICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNoZWNrQWRkQ2hp
bGQpOgorCiAyMDA2LTA1LTE0ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAg
ICAgICBCdWcgODg5NS4gIFJld29yayBmb250IHN1YnN0aXR1dGlvbiBhbmQgZmFsbGJhY2suICBM
aWZ0IHRoZSBjb25jZXB0IG9mCkluZGV4OiBXZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMTQzNjYpCisrKyBXZWJDb3JlL2Rv
bS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgxLDcgKzU4MSw3IEBAIHZvaWQgTm9kZTo6
Y2hlY2tBZGRDaGlsZChOb2RlICpuZXdDaGlsZCwKICAgICB9CiAgICAgCiAgICAgaWYgKG5ld0No
aWxkLT5ub2RlVHlwZSgpICE9IERPQ1VNRU5UX0ZSQUdNRU5UX05PREUpIHsKLSAgICAgICAgaWYg
KCFjaGlsZFR5cGVBbGxvd2VkKG5ld0NoaWxkLT5ub2RlVHlwZSgpKSkgeworICAgICAgICBpZiAo
IWNoaWxkVHlwZUFsbG93ZWQobmV3Q2hpbGQtPm5vZGVUeXBlKCkpIHx8IChub2RlVHlwZSgpID09
IERPQ1VNRU5UX05PREUgJiYgIWNoaWxkQWxsb3dlZChuZXdDaGlsZCkpKSB7CiAgICAgICAgICAg
ICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQo=
</data>
<flag name="review"
          id="2337"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8328</attachid>
            <date>2006-05-15 13:37:06 -0700</date>
            <delta_ts>2006-05-16 02:34:57 -0700</delta_ts>
            <desc>Different approach</desc>
            <filename>5624-2.diff</filename>
            <type>text/plain</type>
            <size>4218</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE0Mzg2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsOSBAQAorMjAwNi0wNS0xNSAgUm9iIEJ1aXMgIDxidWlzQGtk
ZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBmYXN0L2RvbS9jcmVhdGVFbGVtZW50TlMueGh0bWw6IEFkZGVkLgorCiAyMDA2LTA1LTE0ICBN
aXR6IFBldHRlbCAgPG9wZW5kYXJ3aW4ub3JnQG1pdHpwZXR0ZWwuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEh5YXR0LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vY3JlYXRlRWxlbWVu
dE5TLnhodG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL2NyZWF0ZUVsZW1l
bnROUy54aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2NyZWF0ZUVs
ZW1lbnROUy54aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPGJvZHk+Cis8c2Ny
aXB0PgorICB2YXIgZCA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwgImh0bWwiLCBudWxsKTsKK2FsZXJ0KGQuZG9j
dW1lbnRFbGVtZW50KTsKKworICB0cnkgeworICAgIGQuYXBwZW5kQ2hpbGQoZC5jcmVhdGVFbGVt
ZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCAiaHRtbCIpKTsKKyAgICBhbGVy
dCgiTm8gZXhjZXB0aW9uIHJhaXNlZCBmb3I6ICIgKyAobmV3IFhNTFNlcmlhbGl6ZXIoKSkuc2Vy
aWFsaXplVG9TdHJpbmcoZCkpOworICB9CisgIGNhdGNoIChlKSB7CisgICAgYWxlcnQoIkluIEZp
cmVmb3gsIHdlIGNvcnJlY3RseSBnZXQgYSBub2RlIGhpZXJhcmNoeSBlcnJvcjogIiArIGUpOwor
ICB9CisKKzwvc2NyaXB0PgorPC9ib2R5PgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Mzg2KQorKysgV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAwNi0wNS0xNSAgUm9i
IEJ1aXMgIDxidWlzQGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRml4IGZvciBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hv
d19idWcuY2dpP2lkPTU2MjQKKyAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCkgc2hv
dWxkIG5vdCBhbGxvdyB0byBpbnNlcnQgYSBzZWNvbmQgPGh0bWw+IGVsZW1lbnQKKworICAgICAg
ICBEbyBleHRyYSBjaGVja3MgZm9yIGRvY3VtZW50IG5vZGVzIHRvIGRldGVjdCBtdWx0aXBsZSBk
b2N1bWVudCBlbGVtZW50cworICAgICAgICBhbmQgZG9jdW1lbnQgdHlwZXMuCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNoaWxkVHlw
ZUFsbG93ZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorCiAyMDA2LTA1LTE1ICBTYW0g
V2VpbmlnICA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgZXNl
aWRlbC4KSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDE0Mzg2KQorKysgV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQ2LDM2ICsxNjQ2LDI5IEBAIE1vdXNlRXZl
bnRXaXRoSGl0VGVzdFJlc3VsdHMgRG9jdW1lbnQ6OnAKIH0KIAogLy8gRE9NIFNlY3Rpb24gMS4x
LjEKLWJvb2wgRG9jdW1lbnQ6OmNoaWxkQWxsb3dlZChOb2RlICpuZXdDaGlsZCkKLXsKLSAgICAv
LyBEb2N1bWVudHMgbWF5IGNvbnRhaW4gYSBtYXhpbXVtIG9mIG9uZSBFbGVtZW50IGNoaWxkCi0g
ICAgaWYgKG5ld0NoaWxkLT5pc0VsZW1lbnROb2RlKCkpIHsKLSAgICAgICAgTm9kZSAqYzsKLSAg
ICAgICAgZm9yIChjID0gZmlyc3RDaGlsZCgpOyBjOyBjID0gYy0+bmV4dFNpYmxpbmcoKSkgewot
ICAgICAgICAgICAgaWYgKGMtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBEb2N1bWVudHMgbWF5IGNvbnRh
aW4gYSBtYXhpbXVtIG9mIG9uZSBEb2N1bWVudFR5cGUgY2hpbGQKLSAgICBpZiAobmV3Q2hpbGQt
Pm5vZGVUeXBlKCkgPT0gRE9DVU1FTlRfVFlQRV9OT0RFKSB7Ci0gICAgICAgIE5vZGUgKmM7Ci0g
ICAgICAgIGZvciAoYyA9IGZpcnN0Q2hpbGQoKTsgYzsgYyA9IGMtPm5leHRTaWJsaW5nKCkpIHsK
LSAgICAgICAgICAgIGlmIChjLT5ub2RlVHlwZSgpID09IERPQ1VNRU5UX1RZUEVfTk9ERSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1
cm4gY2hpbGRUeXBlQWxsb3dlZChuZXdDaGlsZC0+bm9kZVR5cGUoKSk7Ci19Ci0KIGJvb2wgRG9j
dW1lbnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5
cGUpIHsKLSAgICAgICAgY2FzZSBFTEVNRU5UX05PREU6CisgICAgICAgIGNhc2UgRUxFTUVOVF9O
T0RFOiB7CisgICAgICAgICAgICAvLyBEb2N1bWVudHMgbWF5IGNvbnRhaW4gYSBtYXhpbXVtIG9m
IG9uZSBFbGVtZW50IGNoaWxkCisgICAgICAgICAgICBOb2RlICpjOworICAgICAgICAgICAgZm9y
IChjID0gZmlyc3RDaGlsZCgpOyBjOyBjID0gYy0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAg
ICAgICAgIGlmIChjLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICB9CisgICAgICAgIGNhc2UgRE9DVU1FTlRfVFlQRV9OT0RFOiB7CisgICAgICAgICAgICAvLyBE
b2N1bWVudHMgbWF5IGNvbnRhaW4gYSBtYXhpbXVtIG9mIG9uZSBEb2N1bWVudFR5cGUgY2hpbGQK
KyAgICAgICAgICAgIE5vZGUgKmM7CisgICAgICAgICAgICBmb3IgKGMgPSBmaXJzdENoaWxkKCk7
IGM7IGMgPSBjLT5uZXh0U2libGluZygpKSB7CisgICAgICAgICAgICAgICAgaWYgKGMtPm5vZGVU
eXBlKCkgPT0gRE9DVU1FTlRfVFlQRV9OT0RFKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
fQogICAgICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAgY2Fz
ZSBDT01NRU5UX05PREU6Ci0gICAgICAgIGNhc2UgRE9DVU1FTlRfVFlQRV9OT0RFOgogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDE0Mzg2KQorKysgV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzY3LDcgKzM2Nyw2IEBAIHB1YmxpYzoKICAgICAKICAg
ICBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIHByZXBhcmVNb3VzZUV2ZW50KGJvb2wgcmVh
ZG9ubHksIGJvb2wgYWN0aXZlLCBib29sIG1vdXNlTW92ZSwgY29uc3QgSW50UG9pbnQmIHBvaW50
LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKIAotICAgIHZpcnR1YWwgYm9vbCBjaGlsZEFs
bG93ZWQoTm9kZSopOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBl
KTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlKGJvb2wgZGVlcCk7CiAK
</data>
<flag name="review"
          id="2344"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8349</attachid>
            <date>2006-05-16 02:34:57 -0700</date>
            <delta_ts>2006-05-16 11:47:07 -0700</delta_ts>
            <desc>More complete patch</desc>
            <filename>5264.diff</filename>
            <type>text/plain</type>
            <size>8439</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudG5vcm1hbGl6
ZWRvY3VtZW50MTAtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudG5vcm1hbGl6ZWRvY3VtZW50MTAtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxNDQxMSkKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9k
b2N1bWVudG5vcm1hbGl6ZWRvY3VtZW50MTAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL2RvY3VtZW50bm9ybWFsaXplZG9jdW1lbnQxMAogU3RhdHVzCWVycm9yCi1N
ZXNzYWdlCVR5cGVFcnJvcjogVW5kZWZpbmVkIHZhbHVlCitNZXNzYWdlCUVycm9yOiBISUVSQVJD
SFlfUkVRVUVTVF9FUlI6IERPTSBFeGNlcHRpb24gMwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVhcHBlbmRjaGlsZDAyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWFwcGVuZGNoaWxkMDIt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNDQxMSkKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlYXBwZW5kY2hpbGQwMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsNCArMSwzIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZWFwcGVuZGNoaWxkMDIKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdl
CXRocm93X0hJRVJBUkNIWV9SRVFVRVNUX09SX05PVF9TVVBQT1JURUQ6IGZhaWwKK1N0YXR1cwlT
dWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5z
ZXJ0YmVmb3JlMDYtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMDYtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxNDQxMSkKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0
YmVmb3JlMDYtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xICsxLDIgQEAKLQorVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVp
bnNlcnRiZWZvcmUwNgorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzkt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNDQxMSkKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzOQotU3RhdHVzCWZhaWx1cmUKLU1lc3Nh
Z2UJdGhyb3dfSElFUkFSQ0hZX1JFUVVFU1RfT1JfTk9UX1NVUFBPUlRFRDogZmFpbAorU3RhdHVz
CVN1Y2Nlc3MKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ0MTEpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMCBAQAorMjAwNi0wNS0xNiAgUm9iIEJ1
aXMgIDxidWlzQGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBmYXN0L2RvbS9jcmVhdGVEb2N1bWVudFR5cGUyLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL2NyZWF0ZUVsZW1lbnROUy5odG1sOiBBZGRlZC4KKwogMjAwNi0w
NS0xNSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIC0gVGVz
dHMgZm9yIEphdmFTY3JpcHQgcmVzZXJ2ZWQgd29yZHMgYW5kIHRoZSAnZGVidWdnZXInIHN0YXRl
bWVudApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vY3JlYXRlRWxlbWVudE5TLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vY3JlYXRlRWxlbWVudE5TLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9jcmVhdGVFbGVtZW50TlMuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+Citm
dW5jdGlvbiBkZWJ1ZyhzdHIpIHsKKyAgICBwcmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29uc29sZScpOworICAgIHR4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikKKyAgICBw
cmUuYXBwZW5kQ2hpbGQodHh0KQorfQorZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgIAorICAgIHRyeSB7CisgICAgICAgIGRvY3VtZW50LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCIsICJodG1sIikpOworICAgICAgICBkZWJ1ZygiRkFJTFVSRTogc2hvdWxkIHRocm93IG5vZGUg
aGllcmFyY2h5IGVycm9yOiAiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXRjaCAo
ZSkgeworICAgICAgICBpZiAoZS5jb2RlICE9IDMpIHsKKyAgICAgICAgICAgIGRlYnVnKCJGQUlM
VVJFOiBzaG91bGQgdGhyb3cgbm9kZSBoaWVyYXJjaHkgZXJyb3I6ICIpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGRlYnVnKCdTVUNDRVNTIScpCit9
CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpOyI+CitUaGlz
IHRlc3RzIHRoYXQgYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IGhhcyBhIGRv
Y3VtZW50IGVsZW1lbnQsIGFuZCB0aGF0IHRoZSBkb2N1bWVudCBlbGVtZW50IGhhcyB0aGUgY29y
cmVjdCBuYW1lIGFuZCBuYW1lc3BhY2UgVVJJLiBJZiB0aGUgdGVzdCBpcyBzdWNjZXNzZnVsbCwg
J1NVQ0NFU1MnIHdpbGwgYmUgZGlzcGxheWVkIGJlbG93LCBvdGhlcndpc2UgJ0ZBSUxVUkUnIGFu
ZCBhIHJlYXNvbiB3aWxsIGJlIGRpc3BsYXllZC4KKzxwcmUgaWQ9ImNvbnNvbGUiPgorPC9wcmU+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9jcmVhdGVEb2N1
bWVudFR5cGUyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vY3JlYXRl
RG9jdW1lbnRUeXBlMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
Y3JlYXRlRG9jdW1lbnRUeXBlMi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGRlYnVnKHN0cikgeworICAgIHByZSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyk7CisgICAgdHh0ID0gZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoc3RyKQorICAgIHByZS5hcHBlbmRDaGlsZCh0eHQpCit9CitmdW5jdGlv
biBydW5UZXN0cygpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICB0cnkgeworICAg
ICAgICB2YXIgZG9jVHlwZSA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50
VHlwZSgiZXhhbXBsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJteURvYy5kdGQiKTsKKyAgICAgICAgLy8gbmVlZCB0byB0ZXN0IGZvciBtdWx0aXBsZSBh
ZGRpdGlvbiBvZiBkb2NUeXBlcywgdGhlIGRvY3VtZW50IGhhcyBubyBkb2NUeXBlIGluaXRpYWxs
eQorICAgICAgICBkb2N1bWVudC5hcHBlbmRDaGlsZChkb2NUeXBlKTsKKyAgICAgICAgZG9jdW1l
bnQuYXBwZW5kQ2hpbGQoZG9jVHlwZSk7CisgICAgICAgIGRlYnVnKCJGQUlMVVJFOiBzaG91bGQg
dGhyb3cgbm9kZSBoaWVyYXJjaHkgZXJyb3I6ICIpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIGNhdGNoIChlKSB7CisgICAgICAgIGlmIChlLmNvZGUgIT0gMykgeworICAgICAgICAgICAg
ZGVidWcoIkZBSUxVUkU6IHNob3VsZCB0aHJvdyBub2RlIGhpZXJhcmNoeSBlcnJvcjogIik7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZGVidWcoJ1NV
Q0NFU1MhJykKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3Rz
KCk7Ij4KK1RoaXMgdGVzdHMgdGhhdCBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1l
bnQgaGFzIGEgZG9jdW1lbnQgZWxlbWVudCwgYW5kIHRoYXQgdGhlIGRvY3VtZW50IGVsZW1lbnQg
aGFzIHRoZSBjb3JyZWN0IG5hbWUgYW5kIG5hbWVzcGFjZSBVUkkuIElmIHRoZSB0ZXN0IGlzIHN1
Y2Nlc3NmdWxsLCAnU1VDQ0VTUycgd2lsbCBiZSBkaXNwbGF5ZWQgYmVsb3csIG90aGVyd2lzZSAn
RkFJTFVSRScgYW5kIGEgcmVhc29uIHdpbGwgYmUgZGlzcGxheWVkLgorPHByZSBpZD0iY29uc29s
ZSI+Cis8L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDQxMSkKKysrIFdlYkNv
cmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDYtMDUtMTYg
IFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZpeCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NjI0CisgICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygp
IHNob3VsZCBub3QgYWxsb3cgdG8gaW5zZXJ0IGEgc2Vjb25kIDxodG1sPiBlbGVtZW50CisKKyAg
ICAgICAgRG8gZXh0cmEgY2hlY2tzIGZvciBkb2N1bWVudCBub2RlcyB0byBkZXRlY3QgbXVsdGlw
bGUgZG9jdW1lbnQgZWxlbWVudHMKKyAgICAgICAgYW5kIGRvY3VtZW50IHR5cGVzLgorCisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjaGls
ZFR5cGVBbGxvd2VkKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKwogMjAwNi0wNS0xNiAg
RXJpYyBTZWlkZWwgIDxlc2VpZGVsQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBh
bmRlcnNjYS4KSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDE0NDExKQorKysgV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQ5LDM2ICsxNjQ5LDI5IEBAIE1vdXNl
RXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMgRG9jdW1lbnQ6OnAKIH0KIAogLy8gRE9NIFNlY3Rpb24g
MS4xLjEKLWJvb2wgRG9jdW1lbnQ6OmNoaWxkQWxsb3dlZChOb2RlICpuZXdDaGlsZCkKLXsKLSAg
ICAvLyBEb2N1bWVudHMgbWF5IGNvbnRhaW4gYSBtYXhpbXVtIG9mIG9uZSBFbGVtZW50IGNoaWxk
Ci0gICAgaWYgKG5ld0NoaWxkLT5pc0VsZW1lbnROb2RlKCkpIHsKLSAgICAgICAgTm9kZSAqYzsK
LSAgICAgICAgZm9yIChjID0gZmlyc3RDaGlsZCgpOyBjOyBjID0gYy0+bmV4dFNpYmxpbmcoKSkg
ewotICAgICAgICAgICAgaWYgKGMtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBEb2N1bWVudHMgbWF5IGNv
bnRhaW4gYSBtYXhpbXVtIG9mIG9uZSBEb2N1bWVudFR5cGUgY2hpbGQKLSAgICBpZiAobmV3Q2hp
bGQtPm5vZGVUeXBlKCkgPT0gRE9DVU1FTlRfVFlQRV9OT0RFKSB7Ci0gICAgICAgIE5vZGUgKmM7
Ci0gICAgICAgIGZvciAoYyA9IGZpcnN0Q2hpbGQoKTsgYzsgYyA9IGMtPm5leHRTaWJsaW5nKCkp
IHsKLSAgICAgICAgICAgIGlmIChjLT5ub2RlVHlwZSgpID09IERPQ1VNRU5UX1RZUEVfTk9ERSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBy
ZXR1cm4gY2hpbGRUeXBlQWxsb3dlZChuZXdDaGlsZC0+bm9kZVR5cGUoKSk7Ci19Ci0KIGJvb2wg
RG9jdW1lbnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2gg
KHR5cGUpIHsKLSAgICAgICAgY2FzZSBFTEVNRU5UX05PREU6CisgICAgICAgIGNhc2UgRUxFTUVO
VF9OT0RFOiB7CisgICAgICAgICAgICAvLyBEb2N1bWVudHMgbWF5IGNvbnRhaW4gYSBtYXhpbXVt
IG9mIG9uZSBFbGVtZW50IGNoaWxkCisgICAgICAgICAgICBOb2RlICpjOworICAgICAgICAgICAg
Zm9yIChjID0gZmlyc3RDaGlsZCgpOyBjOyBjID0gYy0+bmV4dFNpYmxpbmcoKSkgeworICAgICAg
ICAgICAgICAgIGlmIChjLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CisgICAgICAgIGNhc2UgRE9DVU1FTlRfVFlQRV9OT0RFOiB7CisgICAgICAgICAgICAv
LyBEb2N1bWVudHMgbWF5IGNvbnRhaW4gYSBtYXhpbXVtIG9mIG9uZSBEb2N1bWVudFR5cGUgY2hp
bGQKKyAgICAgICAgICAgIE5vZGUgKmM7CisgICAgICAgICAgICBmb3IgKGMgPSBmaXJzdENoaWxk
KCk7IGM7IGMgPSBjLT5uZXh0U2libGluZygpKSB7CisgICAgICAgICAgICAgICAgaWYgKGMtPm5v
ZGVUeXBlKCkgPT0gRE9DVU1FTlRfVFlQRV9OT0RFKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQogICAgICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAgICAgICAg
Y2FzZSBDT01NRU5UX05PREU6Ci0gICAgICAgIGNhc2UgRE9DVU1FTlRfVFlQRV9OT0RFOgogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDE0NDExKQorKysgV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzY3LDcgKzM2Nyw2IEBAIHB1YmxpYzoKICAgICAK
ICAgICBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIHByZXBhcmVNb3VzZUV2ZW50KGJvb2wg
cmVhZG9ubHksIGJvb2wgYWN0aXZlLCBib29sIG1vdXNlTW92ZSwgY29uc3QgSW50UG9pbnQmIHBv
aW50LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKIAotICAgIHZpcnR1YWwgYm9vbCBjaGls
ZEFsbG93ZWQoTm9kZSopOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVU
eXBlKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlKGJvb2wgZGVlcCk7
CiAK
</data>
<flag name="review"
          id="2359"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8353</attachid>
            <date>2006-05-16 11:47:07 -0700</date>
            <delta_ts>2006-05-16 13:03:20 -0700</delta_ts>
            <desc>Even better patch</desc>
            <filename>5264-2.diff</filename>
            <type>text/plain</type>
            <size>9300</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudG5vcm1hbGl6
ZWRvY3VtZW50MTAtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudG5vcm1hbGl6ZWRvY3VtZW50MTAtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxNDQxNikKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9k
b2N1bWVudG5vcm1hbGl6ZWRvY3VtZW50MTAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMy9jb3JlL2RvY3VtZW50bm9ybWFsaXplZG9jdW1lbnQxMAogU3RhdHVzCWVycm9yCi1N
ZXNzYWdlCVR5cGVFcnJvcjogVW5kZWZpbmVkIHZhbHVlCitNZXNzYWdlCUVycm9yOiBISUVSQVJD
SFlfUkVRVUVTVF9FUlI6IERPTSBFeGNlcHRpb24gMwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVhcHBlbmRjaGlsZDAyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWFwcGVuZGNoaWxkMDIt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNDQxNikKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlYXBwZW5kY2hpbGQwMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsNCArMSwzIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3Vp
dGUvbGV2ZWwzL2NvcmUvbm9kZWFwcGVuZGNoaWxkMDIKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdl
CXRocm93X0hJRVJBUkNIWV9SRVFVRVNUX09SX05PVF9TVVBQT1JURUQ6IGZhaWwKK1N0YXR1cwlT
dWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5z
ZXJ0YmVmb3JlMDYtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0YmVmb3JlMDYtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxNDQxNikKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlaW5zZXJ0
YmVmb3JlMDYtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xICsxLDIgQEAKLQorVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMy9jb3JlL25vZGVp
bnNlcnRiZWZvcmUwNgorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzkt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNDQxNikKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9ub2RlcmVwbGFjZWNoaWxkMzktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMy9jb3JlL25vZGVyZXBsYWNlY2hpbGQzOQotU3RhdHVzCWZhaWx1cmUKLU1lc3Nh
Z2UJdGhyb3dfSElFUkFSQ0hZX1JFUVVFU1RfT1JfTk9UX1NVUFBPUlRFRDogZmFpbAorU3RhdHVz
CVN1Y2Nlc3MKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ0MTYpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAwNi0wNS0xNiAgUm9iIEJ1
aXMgIDxidWlzQGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRml4IGZvciBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19i
dWcuY2dpP2lkPTU2MjQKKyAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCkgc2hvdWxk
IG5vdCBhbGxvdyB0byBpbnNlcnQgYSBzZWNvbmQgPGh0bWw+IGVsZW1lbnQKKworICAgICAgICAq
IGRvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudG5vcm1hbGl6ZWRvY3VtZW50MTAtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlYXBwZW5kY2hpbGQw
Mi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVpbnNl
cnRiZWZvcmUwNi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMy9jb3Jl
L25vZGVyZXBsYWNlY2hpbGQzOS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vY3Jl
YXRlRG9jdW1lbnRUeXBlMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9jcmVhdGVF
bGVtZW50TlMuaHRtbDogQWRkZWQuCisKIDIwMDYtMDUtMTYgIEFuZGVycyBDYXJsc3NvbiAgPGFj
YXJsc3NvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqLgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vY3JlYXRlRWxlbWVudE5TLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9jcmVhdGVFbGVtZW50TlMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vY3JlYXRlRWxlbWVudE5TLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitUaGlzIHRlc3RzIHRoYXQg
YSBkb2N1bWVudCBvbmx5IHN1cHBvcnRzIG9uZSBkb2N1bWVudCBlbGVtZW50LiBJZiB0aGUgdGVz
dCBpcyBzdWNjZXNzZnVsbCwgJ1NVQ0NFU1MnIHdpbGwgYmUgZGlzcGxheWVkIGJlbG93LCBvdGhl
cndpc2UgJ0ZBSUxVUkUnIGFuZCBhIHJlYXNvbiB3aWxsIGJlIGRpc3BsYXllZC4KK1NVQ0NFU1Mh
CisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL2NyZWF0ZUVsZW1lbnROUy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL2NyZWF0ZUVsZW1lbnROUy5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vY3JlYXRlRWxlbWVudE5TLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gZGVidWcoc3RyKSB7CisgICAgcHJlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nv
bnNvbGUnKTsKKyAgICB0eHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpCisgICAgcHJl
LmFwcGVuZENoaWxkKHR4dCkKK30KK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICAKKyAgICB0cnkgeworICAgICAgICBkb2N1bWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
LCAiaHRtbCIpKTsKKyAgICAgICAgZGVidWcoIkZBSUxVUkU6IHNob3VsZCB0aHJvdyBub2RlIGhp
ZXJhcmNoeSBlcnJvcjogIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2F0Y2ggKGUp
IHsKKyAgICAgICAgaWYgKGUuY29kZSAhPSAzKSB7CisgICAgICAgICAgICBkZWJ1ZygiRkFJTFVS
RTogc2hvdWxkIHRocm93IG5vZGUgaGllcmFyY2h5IGVycm9yOiAiKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBkZWJ1ZygnU1VDQ0VTUyEnKQorfQor
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKTsiPgorVGhpcyB0
ZXN0cyB0aGF0IGEgZG9jdW1lbnQgb25seSBzdXBwb3J0cyBvbmUgZG9jdW1lbnQgZWxlbWVudC4g
SWYgdGhlIHRlc3QgaXMgc3VjY2Vzc2Z1bGwsICdTVUNDRVNTJyB3aWxsIGJlIGRpc3BsYXllZCBi
ZWxvdywgb3RoZXJ3aXNlICdGQUlMVVJFJyBhbmQgYSByZWFzb24gd2lsbCBiZSBkaXNwbGF5ZWQu
Cis8cHJlIGlkPSJjb25zb2xlIj4KKzwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vY3JlYXRlRG9jdW1lbnRUeXBlMi1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vY3JlYXRlRG9jdW1lbnRUeXBlMi1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9jcmVhdGVEb2N1bWVu
dFR5cGUyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitUaGlzIHRl
c3RzIHRoYXQgYSBkb2N1bWVudCBvbmx5IHN1cG9vcnRzIGhhdmluZyBvbmUgZG9jdHlwZS4gSWYg
dGhlIHRlc3QgaXMgc3VjY2Vzc2Z1bGwsICdTVUNDRVNTJyB3aWxsIGJlIGRpc3BsYXllZCBiZWxv
dywgb3RoZXJ3aXNlICdGQUlMVVJFJyBhbmQgYSByZWFzb24gd2lsbCBiZSBkaXNwbGF5ZWQuCitT
VUNDRVNTIQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9jcmVhdGVEb2N1bWVudFR5cGUy
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vY3JlYXRlRG9jdW1lbnRU
eXBlMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vY3JlYXRlRG9j
dW1lbnRUeXBlMi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGRlYnVnKHN0cikgeworICAgIHByZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyk7CisgICAgdHh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoc3RyKQorICAgIHByZS5hcHBlbmRDaGlsZCh0eHQpCit9CitmdW5jdGlvbiBydW5UZXN0
cygpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICB0cnkgeworICAgICAgICB2YXIg
ZG9jVHlwZSA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50VHlwZSgiZXhh
bXBsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJteURv
Yy5kdGQiKTsKKyAgICAgICAgLy8gbmVlZCB0byB0ZXN0IGZvciBtdWx0aXBsZSBhZGRpdGlvbiBv
ZiBkb2NUeXBlcywgdGhlIGRvY3VtZW50IGhhcyBubyBkb2NUeXBlIGluaXRpYWxseQorICAgICAg
ICBkb2N1bWVudC5hcHBlbmRDaGlsZChkb2NUeXBlKTsKKyAgICAgICAgZG9jdW1lbnQuYXBwZW5k
Q2hpbGQoZG9jVHlwZSk7CisgICAgICAgIGRlYnVnKCJGQUlMVVJFOiBzaG91bGQgdGhyb3cgbm9k
ZSBoaWVyYXJjaHkgZXJyb3I6ICIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhdGNo
IChlKSB7CisgICAgICAgIGlmIChlLmNvZGUgIT0gMykgeworICAgICAgICAgICAgZGVidWcoIkZB
SUxVUkU6IHNob3VsZCB0aHJvdyBub2RlIGhpZXJhcmNoeSBlcnJvcjogIik7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZGVidWcoJ1NVQ0NFU1MhJykK
K30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCk7Ij4KK1Ro
aXMgdGVzdHMgdGhhdCBhIGRvY3VtZW50IG9ubHkgc3Vwb29ydHMgaGF2aW5nIG9uZSBkb2N0eXBl
LiBJZiB0aGUgdGVzdCBpcyBzdWNjZXNzZnVsbCwgJ1NVQ0NFU1MnIHdpbGwgYmUgZGlzcGxheWVk
IGJlbG93LCBvdGhlcndpc2UgJ0ZBSUxVUkUnIGFuZCBhIHJlYXNvbiB3aWxsIGJlIGRpc3BsYXll
ZC4KKzxwcmUgaWQ9ImNvbnNvbGUiPgorPC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBX
ZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNp
b24gMTQ0MTYpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE3IEBACisyMDA2LTA1LTE2ICBSb2IgQnVpcyAgPGJ1aXNAa2RlLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9yIGh0dHA6Ly9idWd6
aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyNAorICAgICAgICBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50TlMoKSBzaG91bGQgbm90IGFsbG93IHRvIGluc2VydCBhIHNlY29uZCA8
aHRtbD4gZWxlbWVudAorCisgICAgICAgIERvIGV4dHJhIGNoZWNrcyBmb3IgZG9jdW1lbnQgbm9k
ZXMgdG8gZGV0ZWN0IG11bHRpcGxlIGRvY3VtZW50IGVsZW1lbnRzCisgICAgICAgIGFuZCBkb2N1
bWVudCB0eXBlcy4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6Y2hpbGRUeXBlQWxsb3dlZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50
Lmg6CisKIDIwMDYtMDUtMTYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEh5YXR0LgpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMTQ0MTYpCisr
KyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NDksMzYgKzE2
NDksMjAgQEAgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyBEb2N1bWVudDo6cAogfQogCiAv
LyBET00gU2VjdGlvbiAxLjEuMQotYm9vbCBEb2N1bWVudDo6Y2hpbGRBbGxvd2VkKE5vZGUgKm5l
d0NoaWxkKQotewotICAgIC8vIERvY3VtZW50cyBtYXkgY29udGFpbiBhIG1heGltdW0gb2Ygb25l
IEVsZW1lbnQgY2hpbGQKLSAgICBpZiAobmV3Q2hpbGQtPmlzRWxlbWVudE5vZGUoKSkgewotICAg
ICAgICBOb2RlICpjOwotICAgICAgICBmb3IgKGMgPSBmaXJzdENoaWxkKCk7IGM7IGMgPSBjLT5u
ZXh0U2libGluZygpKSB7Ci0gICAgICAgICAgICBpZiAoYy0+aXNFbGVtZW50Tm9kZSgpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIERv
Y3VtZW50cyBtYXkgY29udGFpbiBhIG1heGltdW0gb2Ygb25lIERvY3VtZW50VHlwZSBjaGlsZAot
ICAgIGlmIChuZXdDaGlsZC0+bm9kZVR5cGUoKSA9PSBET0NVTUVOVF9UWVBFX05PREUpIHsKLSAg
ICAgICAgTm9kZSAqYzsKLSAgICAgICAgZm9yIChjID0gZmlyc3RDaGlsZCgpOyBjOyBjID0gYy0+
bmV4dFNpYmxpbmcoKSkgewotICAgICAgICAgICAgaWYgKGMtPm5vZGVUeXBlKCkgPT0gRE9DVU1F
TlRfVFlQRV9OT0RFKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQot
ICAgIH0KLQotICAgIHJldHVybiBjaGlsZFR5cGVBbGxvd2VkKG5ld0NoaWxkLT5ub2RlVHlwZSgp
KTsKLX0KLQogYm9vbCBEb2N1bWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKQog
ewogICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIERPQ1VNRU5UX1RZUEVfTk9ERToK
ICAgICAgICAgY2FzZSBFTEVNRU5UX05PREU6CisgICAgICAgICAgICAvLyBEb2N1bWVudHMgbWF5
IGNvbnRhaW4gYSBtYXhpbXVtIG9mIGVhY2ggb2YgdGhlc2UgdHlwZXMuCisgICAgICAgICAgICAv
LyAoT25lIEVsZW1lbnQgY2hpbGQgYW5kIG9uZSBEb2N1bWVudFR5cGUgY2hpbGQuKQorICAgICAg
ICAgICAgZm9yIChOb2RlICpjID0gZmlyc3RDaGlsZCgpOyBjOyBjID0gYy0+bmV4dFNpYmxpbmco
KSkgeworICAgICAgICAgICAgICAgIGlmIChjLT5ub2RlVHlwZSgpID09IHR5cGUpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKICAg
ICAgICAgY2FzZSBDT01NRU5UX05PREU6Ci0gICAgICAgIGNhc2UgRE9DVU1FTlRfVFlQRV9OT0RF
OgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDE0NDE2KQorKysgV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzY3LDcgKzM2Nyw2IEBAIHB1YmxpYzoK
ICAgICAKICAgICBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIHByZXBhcmVNb3VzZUV2ZW50
KGJvb2wgcmVhZG9ubHksIGJvb2wgYWN0aXZlLCBib29sIG1vdXNlTW92ZSwgY29uc3QgSW50UG9p
bnQmIHBvaW50LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKIAotICAgIHZpcnR1YWwgYm9v
bCBjaGlsZEFsbG93ZWQoTm9kZSopOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2Vk
KE5vZGVUeXBlKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlKGJvb2wg
ZGVlcCk7CiAK
</data>
<flag name="review"
          id="2362"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>