<?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>16764</bug_id>
          
          <creation_ts>2008-01-06 03:32:25 -0800</creation_ts>
          <short_desc>DOMRange doesn&apos;t correctly re-size when inserting items (Acid3)</short_desc>
          <delta_ts>2019-02-06 09:03:05 -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>528+ (Nightly build)</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrew Wellington">andrew</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>66370</commentid>
    <comment_count>0</comment_count>
    <who name="Andrew Wellington">andrew</who>
    <bug_when>2008-01-06 03:32:25 -0800</bug_when>
    <thetext>(Follows on from http://bugs.webkit.org/show_bug.cgi?id=16748)

    // DOM Range
    function () {
      // test 11: basic ranges tests
      var r = document.createRange();
      assert(r, &quot;range not created&quot;);
      assert(r.collapsed, &quot;new range wasn&apos;t collapsed&quot;);
      assert(r.commonAncestorContainer == document, &quot;new range&apos;s common
ancestor wasn&apos;t the document&quot;);
      assert(r.startContainer == document, &quot;new range&apos;s start container wasn&apos;t
the document&quot;);
      assert(r.startOffset == 0, &quot;new range&apos;s start offset wasn&apos;t zero&quot;);
      assert(r.endContainer == document, &quot;new range&apos;s end container wasn&apos;t the
document&quot;);
      assert(r.endOffset == 0, &quot;new range&apos;s end offset wasn&apos;t zero&quot;);
      assert(r.cloneContents(), &quot;cloneContents() didn&apos;t return an object&quot;);
      assert(r.cloneContents().childNodes.length == 0, &quot;nothing cloned was more
than nothing&quot;);
      assert(r.cloneRange().toString() == &quot;&quot;, &quot;nothing cloned stringifed to
more than nothing&quot;);
      r.collapse(true); // no effect
      assert(r.compareBoundaryPoints(r.START_TO_END, r.cloneRange()) == 0,
&quot;starting boundary point of range wasn&apos;t the same as the end boundary point of
the clone range&quot;);
      r.deleteContents(); // no effect
      assert(r.extractContents().childNodes.length == 0, &quot;nothing removed was
more than nothing&quot;);
      r.insertNode(document.createComment(&quot;commented inserted to test
ranges&quot;));
      assert(!r.collapsed, &quot;range with inserted comment isn&apos;t collapsed&quot;);
      assert(r.commonAncestorContainer == document, &quot;range with inserted
comment has common ancestor that isn&apos;t the document&quot;);
      assert(r.startContainer == document, &quot;range with inserted comment has
start container that isn&apos;t the document&quot;);
      assert(r.startOffset == 0, &quot;range with inserted comment has start offset
that isn&apos;t zero&quot;);
      assert(r.endContainer == document, &quot;range with inserted comment has end
container that isn&apos;t the document&quot;);
      assert(r.endOffset == 1, &quot;range with inserted comment has end offset that
isn&apos;t after the comment&quot;);
      return 1;
    },



Fails at:
      assert(!r.collapsed, &quot;range with inserted comment isn&apos;t collapsed&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66371</commentid>
    <comment_count>1</comment_count>
      <attachid>18299</attachid>
    <who name="Andrew Wellington">andrew</who>
    <bug_when>2008-01-06 04:31:16 -0800</bug_when>
    <thetext>Created attachment 18299
Proposed patch

Move the endOffset as required when new items are inserted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66376</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-01-06 08:51:38 -0800</bug_when>
    <thetext>I&apos;m not sure that this is right approach - ranges should be fixed for any DOM mutations, not just those that happen to be made via DOMRange interface. See &lt;http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Mutation&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66380</commentid>
    <comment_count>3</comment_count>
      <attachid>18299</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-06 11:23:31 -0800</bug_when>
    <thetext>Comment on attachment 18299
Proposed patch

Usually a count would be named with a noun. The word &quot;move&quot; is more like a verb, so &quot;offsetMove&quot; is not a great variable name. Maybe offsetDelta or endOffsetAdjustment?

+    if (m_startContainer == m_endContainer)
+        m_endOffset += offsetMove;

There&apos;s no if statement needed here -- you already ensured that the variable will be 0 in the case where the two are not equal.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66387</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-06 12:09:41 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; I&apos;m not sure that this is right approach - ranges should be fixed for any DOM
&gt; mutations, not just those that happen to be made via DOMRange interface. See
&gt; &lt;http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Mutation&gt;.

I agree with Alexey. This approach is incorrect.

However, I see no major harm in having this code which fixes only one particular case checked in, in the mean time. We can do the real fix later and remove this one special case -- the test case here will ensure we don&apos;t break this particular case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66399</commentid>
    <comment_count>5</comment_count>
      <attachid>18299</attachid>
    <who name="Andrew Wellington">andrew</who>
    <bug_when>2008-01-06 14:39:00 -0800</bug_when>
    <thetext>Comment on attachment 18299
Proposed patch

Landed in r29214

I agree with Alexy on this, so I&apos;ll leave this bug open and clear the review flag on this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66424</commentid>
    <comment_count>6</comment_count>
    <who name="Andrew Wellington">andrew</who>
    <bug_when>2008-01-06 17:54:59 -0800</bug_when>
    <thetext>Calling this one fixed as I made a more general bug for this at http://bugs.webkit.org/show_bug.cgi?id=16766</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502899</commentid>
    <comment_count>7</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:03:05 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18299</attachid>
            <date>2008-01-06 04:31:16 -0800</date>
            <delta_ts>2008-01-06 14:39:24 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>16764-patch-1.txt</filename>
            <type>text/plain</type>
            <size>8701</size>
            <attacher name="Andrew Wellington">andrew</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyOTIwOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDgtMDEtMDYgIEFuZHJldyBXZWxsaW5ndG9uICA8cHJvdG9uQHdp
cmV0YXBwZWQubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAg
ICAgICAKKyAgICAgICAgRE9NUmFuZ2UgZG9lc24ndCBjb3JyZWN0bHkgcmUtc2l6ZSB3aGVuIGlu
c2VydGluZyBpdGVtcyAoQWNpZDMpCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NzY0CisgICAgICAgIAorICAgICAgICBVcGRhdGUgdGhlIG9mZnNldCBm
b3IgdGhlIHJhbmdlIHdoZW4gaW5zZXJ0aW5nIGl0ZW1zIGludG8gdGhlIHJhbmdlLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL1JhbmdlL3JhbmdlLW1vZGlmeWNvbnRlbnRzLmh0bWwKKworICAg
ICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6aW5zZXJ0Tm9k
ZSk6CisKIDIwMDgtMDEtMDYgIEFuZHJldyBXZWxsaW5ndG9uICA8cHJvdG9uQHdpcmV0YXBwZWQu
bmV0PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluLgpJbmRleDogV2ViQ29yZS9kb20vUmFu
Z2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL1JhbmdlLmNwcAkocmV2aXNpb24gMjky
MDgpCisrKyBXZWJDb3JlL2RvbS9SYW5nZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNTQsNiAr
MTA1NCwxMiBAQCB2b2lkIFJhbmdlOjppbnNlcnROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKKyAgICB1bnNpZ25lZCBvZmZzZXRNb3ZlID0gMDsKKyAgICBp
ZiAobV9zdGFydENvbnRhaW5lciA9PSBtX2VuZENvbnRhaW5lcikgeworICAgICAgICBib29sIGlz
RnJhZ21lbnQgPSBuZXdOb2RlLT5ub2RlVHlwZSgpID09IE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5U
X05PREU7CisgICAgICAgIG9mZnNldE1vdmUgPSBpc0ZyYWdtZW50ID8gbmV3Tm9kZS0+Y2hpbGRO
b2RlQ291bnQoKSA6IDE7CisgICAgfQorICAgIAogICAgIGlmKG1fc3RhcnRDb250YWluZXItPm5v
ZGVUeXBlKCkgPT0gTm9kZTo6VEVYVF9OT0RFIHx8CiAgICAgICAgbV9zdGFydENvbnRhaW5lci0+
bm9kZVR5cGUoKSA9PSBOb2RlOjpDREFUQV9TRUNUSU9OX05PREUpIHsKICAgICAgICAgZWMgPSAw
OwpAQCAtMTA2NCw2ICsxMDcwLDkgQEAgdm9pZCBSYW5nZTo6aW5zZXJ0Tm9kZShQYXNzUmVmUHRy
PE5vZGU+IAogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fc3RhcnRDb250YWluZXItPmluc2VydEJl
Zm9yZShuZXdOb2RlLCBtX3N0YXJ0Q29udGFpbmVyLT5jaGlsZE5vZGUobV9zdGFydE9mZnNldCks
IGVjKTsKICAgICB9CisgICAgCisgICAgaWYgKG1fc3RhcnRDb250YWluZXIgPT0gbV9lbmRDb250
YWluZXIpCisgICAgICAgIG1fZW5kT2Zmc2V0ICs9IG9mZnNldE1vdmU7CiB9CiAKIFN0cmluZyBS
YW5nZTo6dG9TdHJpbmcoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biAyOTIwOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE2IEBACisyMDA4LTAxLTA2ICBBbmRyZXcgV2VsbGluZ3RvbiAgPHByb3RvbkB3aXJldGFw
cGVkLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAg
CisgICAgICAgIERPTVJhbmdlIGRvZXNuJ3QgY29ycmVjdGx5IHJlLXNpemUgd2hlbiBpbnNlcnRp
bmcgaXRlbXMgKEFjaWQzKQorICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjc2NAorICAgICAgICAKKyAgICAgICAgVXBkYXRlIHRoZSBvZmZzZXQgZm9yIHRo
ZSByYW5nZSB3aGVuIGluc2VydGluZyBpdGVtcyBpbnRvIHRoZSByYW5nZS4KKworICAgICAgICAq
IGZhc3QvZG9tL1JhbmdlL3JhbmdlLW1vZGlmeWNvbnRlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vUmFuZ2UvcmFuZ2UtbW9kaWZ5Y29udGVudHMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vUmFuZ2UvcmVzb3VyY2VzL3JhbmdlLW1vZGlmeWNvbnRl
bnRzLmpzOiBBZGRlZC4KKwogMjAwOC0wMS0wNiAgQW5kcmV3IFdlbGxpbmd0b24gIDxwcm90b25A
d2lyZXRhcHBlZC5uZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9yYW5nZS1tb2RpZnljb250ZW50cy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvcmFuZ2UtbW9kaWZ5Y29u
dGVudHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
UmFuZ2UvcmFuZ2UtbW9kaWZ5Y29udGVudHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDY1IEBACitUZXN0IG1vZGlmaWNhdGlvbiBvZiBjb250ZW50cyBvZiBhIHJhbmdlCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTdGFydCB0ZXN0IDEKK1BBU1Mgci5zdGFy
dE9mZnNldCBpcyAwCitQQVNTIHIuZW5kT2Zmc2V0IGlzIDAKK1BBU1Mgci5zdGFydENvbnRhaW5l
ciBpcyBkb2N1bWVudAorUEFTUyByLmVuZENvbnRhaW5lciBpcyBkb2N1bWVudAorUEFTUyByLmNv
bGxhcHNlZCBpcyB0cnVlCitQQVNTIHIuY29tbW9uQW5jZXN0b3JDb250YWluZXIgaXMgZG9jdW1l
bnQKK1N0YXJ0IHRlc3QgMgorUEFTUyByLnN0YXJ0T2Zmc2V0IGlzIDAKK1BBU1Mgci5lbmRPZmZz
ZXQgaXMgMQorUEFTUyByLnN0YXJ0Q29udGFpbmVyIGlzIGRvY3VtZW50CitQQVNTIHIuZW5kQ29u
dGFpbmVyIGlzIGRvY3VtZW50CitQQVNTIHIuY29sbGFwc2VkIGlzIGZhbHNlCitQQVNTIHIuY29t
bW9uQW5jZXN0b3JDb250YWluZXIgaXMgZG9jdW1lbnQKK1N0YXJ0IHRlc3QgMworUEFTUyByLnN0
YXJ0T2Zmc2V0IGlzIDAKK1BBU1Mgci5lbmRPZmZzZXQgaXMgMAorUEFTUyByLnN0YXJ0Q29udGFp
bmVyIGlzIGRvY3VtZW50CitQQVNTIHIuZW5kQ29udGFpbmVyIGlzIGRvY3VtZW50CitQQVNTIHIu
Y29sbGFwc2VkIGlzIHRydWUKK1BBU1Mgci5jb21tb25BbmNlc3RvckNvbnRhaW5lciBpcyBkb2N1
bWVudAorU3RhcnQgdGVzdCA0CitQQVNTIHIuc3RhcnRPZmZzZXQgaXMgMAorUEFTUyByLmVuZE9m
ZnNldCBpcyAzCitQQVNTIHIuc3RhcnRDb250YWluZXIgaXMgYworUEFTUyByLmVuZENvbnRhaW5l
ciBpcyBjCitQQVNTIHIuY29sbGFwc2VkIGlzIGZhbHNlCitQQVNTIHIuY29tbW9uQW5jZXN0b3JD
b250YWluZXIgaXMgYworU3RhcnQgdGVzdCA1CitQQVNTIHIuc3RhcnRPZmZzZXQgaXMgMAorUEFT
UyByLmVuZE9mZnNldCBpcyAwCitQQVNTIHIuc3RhcnRDb250YWluZXIgaXMgYworUEFTUyByLmVu
ZENvbnRhaW5lciBpcyBjCitQQVNTIHIuY29sbGFwc2VkIGlzIHRydWUKK1BBU1Mgci5jb21tb25B
bmNlc3RvckNvbnRhaW5lciBpcyBjCitTdGFydCB0ZXN0IDYKK1BBU1Mgci5zdGFydE9mZnNldCBp
cyAwCitQQVNTIHIuZW5kT2Zmc2V0IGlzIDAKK1BBU1Mgci5zdGFydENvbnRhaW5lciBpcyBjCitQ
QVNTIHIuZW5kQ29udGFpbmVyIGlzIGMKK1BBU1Mgci5jb2xsYXBzZWQgaXMgdHJ1ZQorUEFTUyBy
LmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyIGlzIGMKK1N0YXJ0IHRlc3QgNworUEFTUyByLnN0YXJ0
T2Zmc2V0IGlzIDAKK1BBU1Mgci5lbmRPZmZzZXQgaXMgMQorUEFTUyByLnN0YXJ0Q29udGFpbmVy
IGlzIGMKK1BBU1Mgci5lbmRDb250YWluZXIgaXMgYworUEFTUyByLmNvbGxhcHNlZCBpcyBmYWxz
ZQorUEFTUyByLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyIGlzIGMKK1N0YXJ0IHRlc3QgOAorUEFT
UyByLnN0YXJ0T2Zmc2V0IGlzIDAKK1BBU1Mgci5lbmRPZmZzZXQgaXMgMAorUEFTUyByLnN0YXJ0
Q29udGFpbmVyIGlzIGMKK1BBU1Mgci5lbmRDb250YWluZXIgaXMgYworUEFTUyByLmNvbGxhcHNl
ZCBpcyB0cnVlCitQQVNTIHIuY29tbW9uQW5jZXN0b3JDb250YWluZXIgaXMgYworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL1JhbmdlL3JhbmdlLW1vZGlmeWNvbnRlbnRzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvcmFuZ2UtbW9kaWZ5Y29udGVudHMuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3JhbmdlLW1vZGlmeWNv
bnRlbnRzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmFuZ2UtbW9kaWZ5Y29u
dGVudHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vUmFuZ2UvcmVzb3VyY2VzL3JhbmdlLW1vZGlmeWNvbnRlbnRzLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3Jlc291cmNlcy9yYW5nZS1tb2Rp
Znljb250ZW50cy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1Jhbmdl
L3Jlc291cmNlcy9yYW5nZS1tb2RpZnljb250ZW50cy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw5OSBAQAorZGVzY3JpcHRpb24oCisiVGVzdCBtb2RpZmljYXRpb24gb2YgY29udGVudHMgb2Yg
YSByYW5nZSIKKyk7CisKK3ZhciByOworCisvLyBURVNUIDE6IEluaXRpYWwgdmFsdWVzCitkZWJ1
ZygnPHNwYW4+U3RhcnQgdGVzdCAxPC9zcGFuPicpOwordmFyIHIgPSBkb2N1bWVudC5jcmVhdGVS
YW5nZSgpOworc2hvdWxkQmUoInIuc3RhcnRPZmZzZXQiLCAiMCIpOworc2hvdWxkQmUoInIuZW5k
T2Zmc2V0IiwgIjAiKTsKK3Nob3VsZEJlKCJyLnN0YXJ0Q29udGFpbmVyIiwgImRvY3VtZW50Iik7
CitzaG91bGRCZSgici5lbmRDb250YWluZXIiLCAiZG9jdW1lbnQiKTsKK3Nob3VsZEJlVHJ1ZSgi
ci5jb2xsYXBzZWQiKTsKK3Nob3VsZEJlKCJyLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyIiwgImRv
Y3VtZW50Iik7CisKKy8vIFRFU1QgMjogSW5zZXJ0IGEgY29tbWVudCBpbnRvIHRoZSBkb2N1bWVu
dAorZGVidWcoJzxzcGFuPlN0YXJ0IHRlc3QgMjwvc3Bhbj4nKTsKK3IuaW5zZXJ0Tm9kZShkb2N1
bWVudC5jcmVhdGVDb21tZW50KCJ0ZXN0IGNvbW1lbnQiKSk7CitzaG91bGRCZSgici5zdGFydE9m
ZnNldCIsICIwIik7CitzaG91bGRCZSgici5lbmRPZmZzZXQiLCAiMSIpOworc2hvdWxkQmUoInIu
c3RhcnRDb250YWluZXIiLCAiZG9jdW1lbnQiKTsKK3Nob3VsZEJlKCJyLmVuZENvbnRhaW5lciIs
ICJkb2N1bWVudCIpOworc2hvdWxkQmVGYWxzZSgici5jb2xsYXBzZWQiKTsKK3Nob3VsZEJlKCJy
LmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyIiwgImRvY3VtZW50Iik7CisKKy8vIFRFU1QgMzogUmVt
b3ZlIHRoZSBjb21tZW50IGFnYWluCitkZWJ1ZygnPHNwYW4+U3RhcnQgdGVzdCAzPC9zcGFuPicp
Oworci5kZWxldGVDb250ZW50cygpOworc2hvdWxkQmUoInIuc3RhcnRPZmZzZXQiLCAiMCIpOwor
c2hvdWxkQmUoInIuZW5kT2Zmc2V0IiwgIjAiKTsKK3Nob3VsZEJlKCJyLnN0YXJ0Q29udGFpbmVy
IiwgImRvY3VtZW50Iik7CitzaG91bGRCZSgici5lbmRDb250YWluZXIiLCAiZG9jdW1lbnQiKTsK
K3Nob3VsZEJlVHJ1ZSgici5jb2xsYXBzZWQiKTsKK3Nob3VsZEJlKCJyLmNvbW1vbkFuY2VzdG9y
Q29udGFpbmVyIiwgImRvY3VtZW50Iik7CisKKy8vIFRFU1QgNDogSW5zZXJ0IGEgZG9jdW1lbnQg
ZnJhZ21lbnQKK2RlYnVnKCc8c3Bhbj5TdGFydCB0ZXN0IDQ8L3NwYW4+Jyk7Cit2YXIgZiA9IGRv
Y3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKK3ZhciBjID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImRlc2NyaXB0aW9uIik7CityLnNldFN0YXJ0KGMsIDApOworZi5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgidGVzdCB0ZXh0IG5vZGUiKSk7CitmLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFub3RoZXIgdGV4dCBjb21tZW50IikpOworZi5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYW5vdGhlciB0ZXN0IHRleHQgbm9k
ZSIpKTsKK3IuaW5zZXJ0Tm9kZShmKTsKK3Nob3VsZEJlKCJyLnN0YXJ0T2Zmc2V0IiwgIjAiKTsK
K3Nob3VsZEJlKCJyLmVuZE9mZnNldCIsICIzIik7CitzaG91bGRCZSgici5zdGFydENvbnRhaW5l
ciIsICJjIik7CitzaG91bGRCZSgici5lbmRDb250YWluZXIiLCAiYyIpOworc2hvdWxkQmVGYWxz
ZSgici5jb2xsYXBzZWQiKTsKK3Nob3VsZEJlKCJyLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyIiwg
ImMiKTsKKworLy8gVEVTVCA1OiBSZW1vdmUgdGhlIGZyYWdtZW50IGFnYWluCitkZWJ1ZygnPHNw
YW4+U3RhcnQgdGVzdCA1PC9zcGFuPicpOworci5kZWxldGVDb250ZW50cygpOworc2hvdWxkQmUo
InIuc3RhcnRPZmZzZXQiLCAiMCIpOworc2hvdWxkQmUoInIuZW5kT2Zmc2V0IiwgIjAiKTsKK3No
b3VsZEJlKCJyLnN0YXJ0Q29udGFpbmVyIiwgImMiKTsKK3Nob3VsZEJlKCJyLmVuZENvbnRhaW5l
ciIsICJjIik7CitzaG91bGRCZVRydWUoInIuY29sbGFwc2VkIik7CitzaG91bGRCZSgici5jb21t
b25BbmNlc3RvckNvbnRhaW5lciIsICJjIik7CisKKy8vIFRFU1QgNjogSW5zZXJ0IGFuIGVtcHR5
IGRvY3VtZW50IGZyYWdtZW50CitkZWJ1ZygnPHNwYW4+U3RhcnQgdGVzdCA2PC9zcGFuPicpOwor
ZiA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKK3IuaW5zZXJ0Tm9kZShmKTsK
K3Nob3VsZEJlKCJyLnN0YXJ0T2Zmc2V0IiwgIjAiKTsKK3Nob3VsZEJlKCJyLmVuZE9mZnNldCIs
ICIwIik7CitzaG91bGRCZSgici5zdGFydENvbnRhaW5lciIsICJjIik7CitzaG91bGRCZSgici5l
bmRDb250YWluZXIiLCAiYyIpOworc2hvdWxkQmVUcnVlKCJyLmNvbGxhcHNlZCIpOworc2hvdWxk
QmUoInIuY29tbW9uQW5jZXN0b3JDb250YWluZXIiLCAiYyIpOworCisvLyBURVNUIDc6IEluc2Vy
dCBhIGRpdgorZGVidWcoJzxzcGFuPlN0YXJ0IHRlc3QgNzwvc3Bhbj4nKTsKK3ZhciBkID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CitkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCJ0ZXN0IHRleHQgbm9kZSIpKTsKK2QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlQ29tbWVudCgiYW5vdGhlciB0ZXh0IGNvbW1lbnQiKSk7CitkLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJhbm90aGVyIHRlc3QgdGV4dCBub2RlIikpOworci5pbnNlcnRO
b2RlKGQpOworc2hvdWxkQmUoInIuc3RhcnRPZmZzZXQiLCAiMCIpOworc2hvdWxkQmUoInIuZW5k
T2Zmc2V0IiwgIjEiKTsKK3Nob3VsZEJlKCJyLnN0YXJ0Q29udGFpbmVyIiwgImMiKTsKK3Nob3Vs
ZEJlKCJyLmVuZENvbnRhaW5lciIsICJjIik7CitzaG91bGRCZUZhbHNlKCJyLmNvbGxhcHNlZCIp
Oworc2hvdWxkQmUoInIuY29tbW9uQW5jZXN0b3JDb250YWluZXIiLCAiYyIpOworCisvLyBURVNU
IDg6IFJlbW92ZSB0aGUgZGl2CitkZWJ1ZygnPHNwYW4+U3RhcnQgdGVzdCA4PC9zcGFuPicpOwor
ci5kZWxldGVDb250ZW50cygpOworc2hvdWxkQmUoInIuc3RhcnRPZmZzZXQiLCAiMCIpOworc2hv
dWxkQmUoInIuZW5kT2Zmc2V0IiwgIjAiKTsKK3Nob3VsZEJlKCJyLnN0YXJ0Q29udGFpbmVyIiwg
ImMiKTsKK3Nob3VsZEJlKCJyLmVuZENvbnRhaW5lciIsICJjIik7CitzaG91bGRCZVRydWUoInIu
Y29sbGFwc2VkIik7CitzaG91bGRCZSgici5jb21tb25BbmNlc3RvckNvbnRhaW5lciIsICJjIik7
CisKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>