<?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>308549</bug_id>
          
          <creation_ts>2026-02-24 06:08:46 -0800</creation_ts>
          <short_desc>Range.deleteContents() and extractContents() collapse range after mutations, can produce invalid position</short_desc>
          <delta_ts>2026-03-06 11:56:04 -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>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>steven</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annevk</cc>
    
    <cc>cdumez</cc>
    
    <cc>rniwa</cc>
    
    <cc>steven</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2184407</commentid>
    <comment_count>0</comment_count>
    <who name="">steven</who>
    <bug_when>2026-02-24 06:08:46 -0800</bug_when>
    <thetext>`Range.deleteContents()` and the `extract` algorithm compute the collapse target `(newNode, newOffset)` before mutations but apply it after all DOM mutations complete. Script running during `remove` (via &quot;removing steps&quot; hooks) could modify the DOM and make those pre-computed values point to an invalid position.

The DOM spec is being fixed to move the collapse step before mutations, relying on the built-in `live range pre-remove steps` and `replace data` range adjustments to maintain validity.

Steps to reproduce:
1. Create a Range spanning multiple child nodes of a container element
2. Call range.deleteContents() or range.extractContents()
3. Inspect the range&apos;s startContainer, startOffset, endContainer, endOffset

All current browsers pass the attached conformance tests today because no removing step currently fires synchronous script, but the code path is latently incorrect.

Spec issue: https://github.com/whatwg/dom/issues/1446
Chromium bug: https://issues.chromium.org/issues/486922855
Gecko bug: https://bugzilla.mozilla.org/show_bug.cgi?id=2018839</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2184410</commentid>
    <comment_count>1</comment_count>
      <attachid>478460</attachid>
    <who name="">steven</who>
    <bug_when>2026-02-24 06:13:26 -0800</bug_when>
    <thetext>Created attachment 478460
Conformance test verifying Range collapse position after deleteContents/extractContents</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2186532</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-03-03 06:09:11 -0800</bug_when>
    <thetext>&lt;rdar://problem/171618174&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2187818</commentid>
    <comment_count>3</comment_count>
    <who name="">steven</who>
    <bug_when>2026-03-06 10:01:49 -0800</bug_when>
    <thetext>Follow-up from empirical testing (whatwg/dom#1452 comment):

My original &quot;latent bug&quot; characterization was based on a mistaken assumption that no
removing step currently fires synchronous script. That was wrong. Safari 18 already
produces `startOffset: 0` (collapse-before-mutations) when a `disconnectedCallback`
or iframe `pagehide`/`unload` removes a sibling node mid-operation.

The spec change (whatwg/dom#1452) is a clarification aligning the algorithm with
existing browser behavior, not a fix for a shipping bug. I apologize for the noise.
Please close as appropriate.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>478460</attachid>
            <date>2026-02-24 06:13:26 -0800</date>
            <delta_ts>2026-02-24 06:13:26 -0800</delta_ts>
            <desc>Conformance test verifying Range collapse position after deleteContents/extractContents</desc>
            <filename>range-collapse-repro.html</filename>
            <type>text/html</type>
            <size>9213</size>
            <attacher>steven</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAg
PHRpdGxlPlJhbmdlIGNvbGxhcHNlIHBvc2l0aW9uIHRlc3Qg4oCUIHdoYXR3Zy9kb20jMTQ0Njwv
dGl0bGU+CiAgPHN0eWxlPgogICAgYm9keSB7IGZvbnQtZmFtaWx5OiBzeXN0ZW0tdWksIHNhbnMt
c2VyaWY7IG1heC13aWR0aDogNzIwcHg7IG1hcmdpbjogMmVtIGF1dG87IGxpbmUtaGVpZ2h0OiAx
LjY7IH0KICAgIGgxIHsgZm9udC1zaXplOiAxLjNlbTsgfQogICAgLnBhc3MgeyBjb2xvcjogZ3Jl
ZW47IGZvbnQtd2VpZ2h0OiBib2xkOyB9CiAgICAuZmFpbCB7IGNvbG9yOiByZWQ7IGZvbnQtd2Vp
Z2h0OiBib2xkOyB9CiAgICAudGVzdCB7IG1hcmdpbjogMS41ZW0gMDsgcGFkZGluZzogMWVtOyBi
b3JkZXI6IDFweCBzb2xpZCAjZGRkOyBib3JkZXItcmFkaXVzOiA2cHg7IH0KICAgIC50ZXN0IGgz
IHsgbWFyZ2luOiAwIDAgMC41ZW07IGZvbnQtc2l6ZTogMWVtOyB9CiAgICAuc2V0dXAsIC5leHBl
Y3QsIC5yZXN1bHQgeyBtYXJnaW46IDAuM2VtIDA7IH0KICAgIC5sYWJlbCB7IGNvbG9yOiAjNjY2
OyBmb250LXNpemU6IDAuODVlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNw
YWNpbmc6IDAuMDVlbTsgfQogICAgcHJlIHsgYmFja2dyb3VuZDogI2Y1ZjVmNTsgcGFkZGluZzog
MC44ZW07IGJvcmRlci1yYWRpdXM6IDRweDsgb3ZlcmZsb3cteDogYXV0bzsgZm9udC1zaXplOiAw
LjllbTsgfQogICAgI3N1bW1hcnkgeyBtYXJnaW4tdG9wOiAyZW07IHBhZGRpbmc6IDFlbTsgYmFj
a2dyb3VuZDogI2Y5ZjlmOTsgYm9yZGVyLXJhZGl1czogNnB4OyB9CiAgPC9zdHlsZT4KPC9oZWFk
Pgo8Ym9keT4KCjxoMT5SYW5nZS5kZWxldGVDb250ZW50cygpIC8gZXh0cmFjdENvbnRlbnRzKCkg
4oCUIGNvbGxhcHNlIHBvc2l0aW9uIHZlcmlmaWNhdGlvbjwvaDE+CjxwPgogIFNwZWMgaXNzdWU6
IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvZG9tL2lzc3Vlcy8xNDQ2Ij53aGF0
d2cvZG9tIzE0NDY8L2E+PGJyPgogIFRoZXNlIHRlc3RzIHZlcmlmeSB0aGF0IHRoZSByYW5nZSBj
b2xsYXBzZXMgdG8gdGhlIGNvcnJlY3QgcG9zaXRpb24gYWZ0ZXIgZWFjaCBvcGVyYXRpb24uCiAg
QWxsIGN1cnJlbnQgYnJvd3NlcnMgc2hvdWxkIHBhc3Mg4oCUIHRoZSBidWcgaXMgYSBzcGVjLWxl
dmVsIHN0ZXAtb3JkZXJpbmcgaXNzdWUuCjwvcD4KCjxkaXYgaWQ9InRlc3RzIj48L2Rpdj4KPGRp
diBpZD0ic3VtbWFyeSI+PC9kaXY+Cgo8c2NyaXB0PgoidXNlIHN0cmljdCI7Cgp2YXIgcGFzc2Vk
ID0gMDsKdmFyIGZhaWxlZCA9IDA7CgpmdW5jdGlvbiBydW5UZXN0KG5hbWUsIGRlc2NyaXB0aW9u
LCBzZXR1cEhUTUwsIGZuKSB7CiAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOwogIGNvbnRhaW5lci5jbGFzc05hbWUgPSAidGVzdCI7CgogIHZhciBoZWFkaW5n
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaDMiKTsKICBoZWFkaW5nLnRleHRDb250ZW50ID0g
bmFtZTsKICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaGVhZGluZyk7CgogIHZhciBkZXNjID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwogIGRlc2MuY2xhc3NOYW1lID0gInNldHVwIjsKICBk
ZXNjLmlubmVySFRNTCA9ICc8c3BhbiBjbGFzcz0ibGFiZWwiPlNldHVwOiA8L3NwYW4+JyArIGRl
c2NyaXB0aW9uOwogIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkZXNjKTsKCiAgdmFyIHJlc3VsdCA9
IGZuKCk7CgogIHZhciBleHBlY3RFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKICBl
eHBlY3RFbC5jbGFzc05hbWUgPSAiZXhwZWN0IjsKICBleHBlY3RFbC5pbm5lckhUTUwgPSAnPHNw
YW4gY2xhc3M9ImxhYmVsIj5FeHBlY3RlZDogPC9zcGFuPicgKyByZXN1bHQuZXhwZWN0ZWQ7CiAg
Y29udGFpbmVyLmFwcGVuZENoaWxkKGV4cGVjdEVsKTsKCiAgdmFyIGFjdHVhbCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInAiKTsKICBhY3R1YWwuY2xhc3NOYW1lID0gInJlc3VsdCI7CiAgdmFy
IG9rID0gcmVzdWx0LnBhc3M7CiAgYWN0dWFsLmlubmVySFRNTCA9CiAgICAnPHNwYW4gY2xhc3M9
ImxhYmVsIj5BY3R1YWw6IDwvc3Bhbj4nICsgcmVzdWx0LmFjdHVhbCArCiAgICAnIOKAlCA8c3Bh
biBjbGFzcz0iJyArIChvayA/ICJwYXNzIiA6ICJmYWlsIikgKyAnIj4nICsgKG9rID8gIlBBU1Mi
IDogIkZBSUwiKSArICI8L3NwYW4+IjsKICBjb250YWluZXIuYXBwZW5kQ2hpbGQoYWN0dWFsKTsK
CiAgaWYgKG9rKSBwYXNzZWQrKzsgZWxzZSBmYWlsZWQrKzsKICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdHMiKS5hcHBlbmRDaGlsZChjb250YWluZXIpOwp9CgoKLy8g4pSA4pSAIFRlc3Qg
MSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIAKcnVuVGVzdCgKICAiVGVzdCAxOiBkZWxldGVDb250ZW50cyDigJQgc3RhcnQgaXMgaW5j
bHVzaXZlIGFuY2VzdG9yIG9mIGVuZCIsCgogICJBICZsdDtkaXYmZ3Q7IHdpdGggNSAmbHQ7c3Bh
biZndDsgY2hpbGRyZW4uICIgKwogICJSYW5nZSBzZXQgZnJvbSAoZGl2LCAyKSB0byAoZGl2LCA1
KSwgY292ZXJpbmcgY2hpbGRyZW4gYXQgaW5kaWNlcyAyLCAzLCA0LiAiICsKICAiVGhlbiBjYWxs
IDxjb2RlPnJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk8L2NvZGU+LiIsCgogIG51bGwsCiAgZnVuY3Rp
b24oKSB7CiAgICAvLyBCdWlsZDogPGRpdj4gPHNwYW4vPiA8c3Bhbi8+IDxzcGFuLz4gPHNwYW4v
PiA8c3Bhbi8+IDwvZGl2PgogICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeLS0t
IHJhbmdlIHN0YXJ0ICAgIHJhbmdlIGVuZCAtLS1eCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDU7IGkrKykgZGl2LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7CgogICAgdmFyIHJhbmdl
ID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKICAgIHJhbmdlLnNldFN0YXJ0KGRpdiwgMik7CiAg
ICByYW5nZS5zZXRFbmQoZGl2LCA1KTsKCiAgICByYW5nZS5kZWxldGVDb250ZW50cygpOwoKICAg
IC8vIG5ld05vZGUgPSBkaXYgKG9yaWdpbmFsU3RhcnROb2RlKSwgbmV3T2Zmc2V0ID0gMiAob3Jp
Z2luYWxTdGFydE9mZnNldCkKICAgIHJldHVybiB7CiAgICAgIGV4cGVjdGVkOiAiY29sbGFwc2Vk
IHRvIChESVYsIDIpLCBkaXYgaGFzIDIgY2hpbGRyZW4gcmVtYWluaW5nIiwKICAgICAgYWN0dWFs
OiAgICJjb2xsYXBzZWQ9IiArIHJhbmdlLmNvbGxhcHNlZCArCiAgICAgICAgICAgICAgICAiLCBj
b250YWluZXI9IiArIHJhbmdlLnN0YXJ0Q29udGFpbmVyLm5vZGVOYW1lICsKICAgICAgICAgICAg
ICAgICIsIG9mZnNldD0iICsgcmFuZ2Uuc3RhcnRPZmZzZXQgKwogICAgICAgICAgICAgICAgIiwg
Y2hpbGRyZW49IiArIGRpdi5jaGlsZE5vZGVzLmxlbmd0aCwKICAgICAgcGFzczogICAgIHJhbmdl
LmNvbGxhcHNlZCAmJgogICAgICAgICAgICAgICAgcmFuZ2Uuc3RhcnRDb250YWluZXIgPT09IGRp
diAmJgogICAgICAgICAgICAgICAgcmFuZ2Uuc3RhcnRPZmZzZXQgPT09IDIgJiYKICAgICAgICAg
ICAgICAgIGRpdi5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMgogICAgfTsKICB9Cik7CgoKLy8g4pSA
4pSAIFRlc3QgMiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIAKcnVuVGVzdCgKICAiVGVzdCAyOiBkZWxldGVDb250ZW50cyDigJQgc3Rh
cnQgaXMgTk9UIGluY2x1c2l2ZSBhbmNlc3RvciBvZiBlbmQiLAoKICAiQSAmbHQ7ZGl2Jmd0OyB3
aXRoIGNoaWxkcmVuIFtyZWZTcGFuLCBuMSwgbjIsIG4zLCBlbmRTcGFuXS4gIiArCiAgIlJhbmdl
IHNldCBmcm9tIChyZWZTcGFuL3RleHQsIDIpIHRvIChlbmRTcGFuL3RleHQsIDEpLiAiICsKICAi
bjEsIG4yLCBuMyBhcmUgZnVsbHkgY29udGFpbmVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIiwKCiAg
bnVsbCwKICBmdW5jdGlvbigpIHsKICAgIC8vIEJ1aWxkOiA8ZGl2PiA8c3Bhbj4ic3RhcnQiPC9z
cGFuPiA8c3Bhbi8+IDxzcGFuLz4gPHNwYW4vPiA8c3Bhbj4iZW5kIjwvc3Bhbj4gPC9kaXY+CiAg
ICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBeLS0tIHJhbmdlIHN0YXJ0ICAgICAgICAgICAg
ICAgICAgICAgICByYW5nZSBlbmQgLS0tXgogICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOwogICAgdmFyIHJlZiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4i
KTsKICAgIHZhciBuMSAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICB2YXIg
bjIgID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgdmFyIG4zICA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgIHZhciBlbmQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzcGFuIik7CiAgICBkaXYuYXBwZW5kKHJlZiwgbjEsIG4yLCBuMywgZW5kKTsKICAg
IHJlZi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgic3RhcnQiKSk7CiAgICBl
bmQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImVuZCIpKTsKCiAgICB2YXIg
cmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOwogICAgcmFuZ2Uuc2V0U3RhcnQocmVmLmZp
cnN0Q2hpbGQsIDIpOwogICAgcmFuZ2Uuc2V0RW5kKGVuZC5maXJzdENoaWxkLCAxKTsKCiAgICBy
YW5nZS5kZWxldGVDb250ZW50cygpOwoKICAgIC8vIHJlZmVyZW5jZU5vZGUgPSByZWYgKGl0cyBw
YXJlbnQgZGl2IElTIGFuIGFuY2VzdG9yIG9mIGVuZFNwYW4pCiAgICAvLyBuZXdOb2RlID0gZGl2
LCBuZXdPZmZzZXQgPSByZWYuaW5kZXggKyAxID0gMQogICAgcmV0dXJuIHsKICAgICAgZXhwZWN0
ZWQ6ICJjb2xsYXBzZWQgdG8gKERJViwgMSkiLAogICAgICBhY3R1YWw6ICAgImNvbGxhcHNlZD0i
ICsgcmFuZ2UuY29sbGFwc2VkICsKICAgICAgICAgICAgICAgICIsIGNvbnRhaW5lcj0iICsgcmFu
Z2Uuc3RhcnRDb250YWluZXIubm9kZU5hbWUgKwogICAgICAgICAgICAgICAgIiwgb2Zmc2V0PSIg
KyByYW5nZS5zdGFydE9mZnNldCwKICAgICAgcGFzczogICAgIHJhbmdlLmNvbGxhcHNlZCAmJgog
ICAgICAgICAgICAgICAgcmFuZ2Uuc3RhcnRDb250YWluZXIgPT09IGRpdiAmJgogICAgICAgICAg
ICAgICAgcmFuZ2Uuc3RhcnRPZmZzZXQgPT09IDEKICAgIH07CiAgfQopOwoKCi8vIOKUgOKUgCBU
ZXN0IDMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSACnJ1blRlc3QoCiAgIlRlc3QgMzogZXh0cmFjdENvbnRlbnRzIOKAlCBzdGFydCBp
cyBpbmNsdXNpdmUgYW5jZXN0b3Igb2YgZW5kIiwKCiAgIlNhbWUgc2V0dXAgYXMgVGVzdCAxIGJ1
dCB1c2luZyA8Y29kZT5yYW5nZS5leHRyYWN0Q29udGVudHMoKTwvY29kZT4uICIgKwogICJTaG91
bGQgcmV0dXJuIGEgZnJhZ21lbnQgd2l0aCAzIGNoaWxkcmVuLiIsCgogIG51bGwsCiAgZnVuY3Rp
b24oKSB7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDU7IGkrKykgZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKSk7CgogICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2Uo
KTsKICAgIHJhbmdlLnNldFN0YXJ0KGRpdiwgMik7CiAgICByYW5nZS5zZXRFbmQoZGl2LCA1KTsK
CiAgICB2YXIgZnJhZyA9IHJhbmdlLmV4dHJhY3RDb250ZW50cygpOwoKICAgIHJldHVybiB7CiAg
ICAgIGV4cGVjdGVkOiAiY29sbGFwc2VkIHRvIChESVYsIDIpLCBmcmFnbWVudCBoYXMgMyBjaGls
ZHJlbiwgZGl2IGhhcyAyIHJlbWFpbmluZyIsCiAgICAgIGFjdHVhbDogICAiY29sbGFwc2VkPSIg
KyByYW5nZS5jb2xsYXBzZWQgKwogICAgICAgICAgICAgICAgIiwgY29udGFpbmVyPSIgKyByYW5n
ZS5zdGFydENvbnRhaW5lci5ub2RlTmFtZSArCiAgICAgICAgICAgICAgICAiLCBvZmZzZXQ9IiAr
IHJhbmdlLnN0YXJ0T2Zmc2V0ICsKICAgICAgICAgICAgICAgICIsIGZyYWdtZW50PSIgKyBmcmFn
LmNoaWxkTm9kZXMubGVuZ3RoICsKICAgICAgICAgICAgICAgICIsIHJlbWFpbmluZz0iICsgZGl2
LmNoaWxkTm9kZXMubGVuZ3RoLAogICAgICBwYXNzOiAgICAgcmFuZ2UuY29sbGFwc2VkICYmCiAg
ICAgICAgICAgICAgICByYW5nZS5zdGFydENvbnRhaW5lciA9PT0gZGl2ICYmCiAgICAgICAgICAg
ICAgICByYW5nZS5zdGFydE9mZnNldCA9PT0gMiAmJgogICAgICAgICAgICAgICAgZnJhZy5jaGls
ZE5vZGVzLmxlbmd0aCA9PT0gMyAmJgogICAgICAgICAgICAgICAgZGl2LmNoaWxkTm9kZXMubGVu
Z3RoID09PSAyCiAgICB9OwogIH0KKTsKCgovLyDilIDilIAgVGVzdCA0IOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgApydW5UZXN0KAog
ICJUZXN0IDQ6IGV4dHJhY3RDb250ZW50cyDigJQgQ2hhcmFjdGVyRGF0YSBib3VuZGFyeSBub2Rl
cyIsCgogICJBICZsdDtkaXYmZ3Q7IHdpdGggY2hpbGRyZW4gW1wiSGVsbG9cIiwgJmx0O3NwYW4v
Jmd0OywgXCJXb3JsZFwiXS4gIiArCiAgIlJhbmdlIGZyb20gKFwiSGVsbG9cIiwgMikgdG8gKFwi
V29ybGRcIiwgMykuICIgKwogICJFeHRyYWN0cyBcImxsb1wiLCB0aGUgc3BhbiwgYW5kIFwiV29y
XCI7IHRydW5jYXRlcyB0ZXh0IG5vZGVzLiIsCgogIG51bGwsCiAgZnVuY3Rpb24oKSB7CiAgICAv
LyAgQnVpbGQ6IDxkaXY+ICJIZWxsbyIgPHNwYW4vPiAiV29ybGQiIDwvZGl2PgogICAgLy8gICAg
ICAgICAgICAgICAgICBeLS0gcmFuZ2Ugc3RhcnQgIHJhbmdlIGVuZCAtLV4KICAgIHZhciBkaXYg
ICAgICAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgIHZhciBzdGFydFRleHQg
PSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiSGVsbG8iKTsKICAgIHZhciBtaWRTcGFuICAgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICB2YXIgZW5kVGV4dCAgID0gZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoIldvcmxkIik7CiAgICBkaXYuYXBwZW5kKHN0YXJ0VGV4dCwgbWlk
U3BhbiwgZW5kVGV4dCk7CgogICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsK
ICAgIHJhbmdlLnNldFN0YXJ0KHN0YXJ0VGV4dCwgMik7ICAvLyAiSGV8bGxvIgogICAgcmFuZ2Uu
c2V0RW5kKGVuZFRleHQsIDMpOyAgICAgIC8vICJXb3J8bGQiCgogICAgdmFyIGZyYWcgPSByYW5n
ZS5leHRyYWN0Q29udGVudHMoKTsKCiAgICAvLyByZWZlcmVuY2VOb2RlID0gc3RhcnRUZXh0LCBw
YXJlbnQgPSBkaXYgKGFuY2VzdG9yIG9mIGVuZFRleHQpCiAgICAvLyBuZXdOb2RlID0gZGl2LCBu
ZXdPZmZzZXQgPSBzdGFydFRleHQuaW5kZXggKyAxID0gMQogICAgcmV0dXJuIHsKICAgICAgZXhw
ZWN0ZWQ6ICdjb2xsYXBzZWQgdG8gKERJViwgMSksIHN0YXJ0VGV4dD0iSGUiLCBlbmRUZXh0PSJs
ZCInLAogICAgICBhY3R1YWw6ICAgImNvbGxhcHNlZD0iICsgcmFuZ2UuY29sbGFwc2VkICsKICAg
ICAgICAgICAgICAgICIsIGNvbnRhaW5lcj0iICsgcmFuZ2Uuc3RhcnRDb250YWluZXIubm9kZU5h
bWUgKwogICAgICAgICAgICAgICAgIiwgb2Zmc2V0PSIgKyByYW5nZS5zdGFydE9mZnNldCArCiAg
ICAgICAgICAgICAgICAnLCBzdGFydFRleHQ9IicgKyBzdGFydFRleHQuZGF0YSArCiAgICAgICAg
ICAgICAgICAnIiwgZW5kVGV4dD0iJyArIGVuZFRleHQuZGF0YSArICciJywKICAgICAgcGFzczog
ICAgIHJhbmdlLmNvbGxhcHNlZCAmJgogICAgICAgICAgICAgICAgcmFuZ2Uuc3RhcnRDb250YWlu
ZXIgPT09IGRpdiAmJgogICAgICAgICAgICAgICAgcmFuZ2Uuc3RhcnRPZmZzZXQgPT09IDEgJiYK
ICAgICAgICAgICAgICAgIHN0YXJ0VGV4dC5kYXRhID09PSAiSGUiICYmCiAgICAgICAgICAgICAg
ICBlbmRUZXh0LmRhdGEgPT09ICJsZCIKICAgIH07CiAgfQopOwoKCi8vIOKUgOKUgCBTdW1tYXJ5
IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gAp2YXIgc3VtbWFyeSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdW1tYXJ5Iik7CnN1bW1h
cnkuaW5uZXJIVE1MID0KICAiPHN0cm9uZz5SZXN1bHRzOiAiICsgcGFzc2VkICsgIiBwYXNzZWQs
ICIgKyBmYWlsZWQgKyAiIGZhaWxlZDwvc3Ryb25nPiIgKwogICI8YnI+PGJyPiIgKwogICI8ZW0+
QWxsIGN1cnJlbnQgYnJvd3NlcnMgc2hvdWxkIHBhc3MgdGhlc2UgdGVzdHMuICIgKwogICJUaGUg
YnVnIGlzIGEgc3BlYy1sZXZlbCBzdGVwLW9yZGVyaW5nIGlzc3VlOiB0aGUgYWxnb3JpdGhtcyBj
b2xsYXBzZSB0aGUgcmFuZ2UgIiArCiAgImFmdGVyIG11dGF0aW9ucyBpbnN0ZWFkIG9mIGJlZm9y
ZS4gVGhpcyBiZWNvbWVzIGV4cGxvaXRhYmxlIG9ubHkgaWYgYSBmdXR1cmUgIiArCiAgIlwicmVt
b3Zpbmcgc3RlcFwiIGZpcmVzIHN5bmNocm9ub3VzIHNjcmlwdCBkdXJpbmcgbm9kZSByZW1vdmFs
LjwvZW0+IjsKPC9zY3JpcHQ+Cgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>