<?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>103599</bug_id>
          
          <creation_ts>2012-11-28 21:15:27 -0800</creation_ts>
          <short_desc>Node::compareDocumentPosition should return either FOLLOWING OR PRECEDING for nodes which are not in the same tree.</short_desc>
          <delta_ts>2013-01-06 20:15:31 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          
          <blocked>72352</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hayato Ito">hayato</reporter>
          <assigned_to name="Takashi Sakamoto">tasak</assigned_to>
          <cc>ojan</cc>
    
    <cc>tasak</cc>
    
    <cc>webcomponents-bugzilla</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>778655</commentid>
    <comment_count>0</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-11-28 21:15:27 -0800</bug_when>
    <thetext>According to the spec (http://dom.spec.whatwg.org/#dom-node-document_position_disconnected): 

&gt; If other and reference are not in the same tree, return the result of adding DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, and either DOCUMENT_POSITION_PRECEDING or DOCUMENT_POSITION_FOLLOWING, with the constraint that this is to be consistent, together and terminate these steps.

&gt; Whether to return DOCUMENT_POSITION_PRECEDING or DOCUMENT_POSITION_FOLLOWING is typically implemented via pointer comparison. In JavaScript implementations Math.random() can be used.


We should return the value which has either DOCUMENT_POSITION_PRECEDING or DOCUMENT_POSITION_FOLLOWING flag with the constraint to be consistent.

Since Node.compareDocumentPosition is a web facing API, we should be careful about whether it&apos;s okay to add flag to the return value.
If users checks the return value using bitwise operation (e.g if ((return value &amp; Node.DOCUMENT_POSITION_DISCONNECTED) != 0)), it&apos;s okay. But I am afraid most users don&apos;t do that.


I am adding tasak@ to cc since he needs a kind of total order for nodes in the different shadow tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778742</commentid>
    <comment_count>1</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-11-28 23:47:48 -0800</bug_when>
    <thetext>*** Bug 103600 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784539</commentid>
    <comment_count>2</comment_count>
      <attachid>177919</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-05 20:54:23 -0800</bug_when>
    <thetext>Created attachment 177919
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787101</commentid>
    <comment_count>3</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-10 01:45:05 -0800</bug_when>
    <thetext>Shadow DOM spec was updated. It says:
----
For the purposes of the cascade order, the CSS rules for shadow trees that have the apply-author-styles flag set must be treated as scoped selectors with shadow root as their scope. In this context, for shadow trees A and B, the A&apos;s shadow root is treated as descendant of B&apos;s shadow root if A is enclosed by B.
----
c.f. http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles

and
----
Scope
If a declaration belongs to a ruleset with a scoped selector, the element it is scoped to can affect the cascade. For the purpose of this step, declarations from style attributes [CSSSTYLEATTR] are considered to be scoped to the element with the attribute, and all other declarations are considered to be scoped to the root element.
If the scoping elements of two declarations have an ancestor/descendant relationship, the declaration whose scoping element is the descendant wins. If one declaration is from a style attribute on an element and the other is from a ruleset scoped to that element, the declaration in the style attribute wins.
----

So we don&apos;t need to compare style elements in different tree scopes by using &quot;document position&quot;, because an inner one, i.e. the declaration whose scoping element is the descendant, wins.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177919</attachid>
            <date>2012-12-05 20:54:23 -0800</date>
            <delta_ts>2012-12-05 20:54:23 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-103599-20121206135147.patch</filename>
            <type>text/plain</type>
            <size>10915</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRiYzBmNzdmMzhhZTU3
ZDllYjcyMmQzMTkwZTZiYTExOGNiYzM3Ny4uNDY3MWY3NTM5MGU2ZTM5Zjk2NGZlOTM3MzM2NTIz
NGEzZGNlNTE4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTExLTI4ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBOb2RlOjpjb21wYXJl
RG9jdW1lbnRQb3NpdGlvbiBzaG91bGQgcmV0dXJuIGVpdGhlciBGT0xMT1dJTkcgT1IgUFJFQ0VE
SU5HIGZvciBub2RlcyB3aGljaCBhcmUgbm90IGluIHRoZSBzYW1lIHRyZWUuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM1OTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb2RlOjpjb21wYXJlRG9jdW1l
bnRQb3NpdGlvbiBzaG91bGQgc3VwcG9ydCB0byBjb21wYXJlIG5vZGVzIGluCisgICAgICAgIGRp
ZmZlcmVudCB0cmVlIHNjb3Blcy4gTGFjayBvZiB0aGlzIGZlYXR1cmUsIHdlIGNhbm5vdCBhcHBs
eSBzdHlsZXMKKyAgICAgICAgaW4gZG9jdW1lbnQgdG8gZWxlbWVudHMgaW4gc2hhZG93IGRvbSB0
cmVlcyB3aG9zZSBzaGFkb3cgcm9vdHMgaGF2ZQorICAgICAgICBhcHBseS1hdXRob3Itc3R5bGVz
IHRydWUuCisgICAgICAgIGMuZi4gc2hhZG93IGRvbSBzcGVjOgorICAgICAgICBodHRwOi8vZHZj
cy53My5vcmcvaGcvd2ViY29tcG9uZW50cy9yYXctZmlsZS90aXAvc3BlYy9zaGFkb3cvaW5kZXgu
aHRtbAorICAgICAgICBhYm91dCBkb2N1bWVudCBwb3NpdGlvbnMgb2Ygbm9kZXMgaW4gZGlmZmVy
ZW50IHRyZWUgc2NvcGVzOgorICAgICAgICBodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMv
c2hvd19idWcuY2dpP2lkPTIwMTQ5CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBJbnN0ZWFkLCB1
cGRhdGluZyB0aGUgZXhpc3RpbmcgdGVzdCwKKyAgICAgICAgZmFzdC9kb20vc2hhZG93L2NvbXBh
cmUtZG9jdW1lbnQtcG9zaXRpb24uaHRtbC4KKworICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbXBhcmVBbmNlc3Rvck5vZGVDaGFpbik6CisgICAgICAgIChXZWJD
b3JlOjpOb2RlOjpjb21wYXJlRG9jdW1lbnRQb3NpdGlvbik6CisKIDIwMTItMTItMDUgIERhbiBC
ZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBUZXh0IGRlY29yYXRpb25zIGFy
ZSByb3RhdGVkIHdoZW4gdGV4dC1jb21iaW5lIHRha2VzIGVmZmVjdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmlu
ZGV4IDU4NGRiZTlmZTI0ZDVjOTdhYzg5ODU1YTI2OGU1NDkwNDczMDNkYjguLmFhZGY5Zjc1NGRh
ZmE3MWEyNWJiYTkwNThhODJkOTA4NDc2NzQxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTE4Nzks
NiArMTg3OSw1NiBAQCBib29sIE5vZGU6Om9mZnNldEluQ2hhcmFjdGVycygpIGNvbnN0CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgdW5zaWduZWQgY29tcGFyZUFuY2VzdG9yTm9kZUNo
YWluKGNvbnN0IFZlY3RvcjxOb2RlKiwgMTY+JiBjaGFpbjEsIGNvbnN0IFZlY3RvcjxOb2RlKiwg
MTY+JiBjaGFpbjIpCit7CisgICAgLy8gV2FsayB0aGUgdHdvIGNoYWlucyBiYWNrd2FyZHMgYW5k
IGxvb2sgZm9yIHRoZSBmaXJzdCBkaWZmZXJlbmNlLgorICAgIHVuc2lnbmVkIGluZGV4MSA9IGNo
YWluMS5zaXplKCk7CisgICAgdW5zaWduZWQgaW5kZXgyID0gY2hhaW4yLnNpemUoKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSBtaW4oaW5kZXgxLCBpbmRleDIpOyBpOyAtLWkpIHsKKyAgICAgICAg
Tm9kZSogY2hpbGQxID0gY2hhaW4xWy0taW5kZXgxXTsKKyAgICAgICAgTm9kZSogY2hpbGQyID0g
Y2hhaW4yWy0taW5kZXgyXTsKKyAgICAgICAgaWYgKGNoaWxkMSAhPSBjaGlsZDIpIHsKKyAgICAg
ICAgICAgIC8vIElmIG9uZSBvZiB0aGUgY2hpbGRyZW4gaXMgYW4gYXR0cmlidXRlLCBpdCB3aW5z
LgorICAgICAgICAgICAgaWYgKGNoaWxkMS0+bm9kZVR5cGUoKSA9PSBOb2RlOjpBVFRSSUJVVEVf
Tk9ERSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9kZTo6RE9DVU1FTlRfUE9TSVRJT05fRk9M
TE9XSU5HOworICAgICAgICAgICAgaWYgKGNoaWxkMi0+bm9kZVR5cGUoKSA9PSBOb2RlOjpBVFRS
SUJVVEVfTk9ERSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9kZTo6RE9DVU1FTlRfUE9TSVRJ
T05fUFJFQ0VESU5HOworICAgICAgICAgICAgCisjaWYgRU5BQkxFKFNIQURPV19ET00pCisgICAg
ICAgICAgICBpZiAoY2hpbGQxLT5pc1NoYWRvd1Jvb3QoKSB8fCBjaGlsZDItPmlzU2hhZG93Um9v
dCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFjaGlsZDItPmlzU2hhZG93Um9vdCgpKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gTm9kZTo6RE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5H
OworICAgICAgICAgICAgICAgIGlmICghY2hpbGQxLT5pc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIE5vZGU6OkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORzsKKwor
ICAgICAgICAgICAgICAgIGZvciAoU2hhZG93Um9vdCogY2hpbGQgPSB0b1NoYWRvd1Jvb3QoY2hp
bGQyKS0+b2xkZXJTaGFkb3dSb290KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5vbGRlclNoYWRv
d1Jvb3QoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQgPT0gY2hpbGQxKQorICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vZGU6OkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExP
V0lORzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vZGU6OkRP
Q1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORzsKKyAgICAgICAgICAgIH0KKyNlbmRpZgorICAgICAg
ICAgICAgaWYgKCFjaGlsZDItPm5leHRTaWJsaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IE5vZGU6OkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORzsKKyAgICAgICAgICAgIGlmICghY2hp
bGQxLT5uZXh0U2libGluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBOb2RlOjpET0NVTUVO
VF9QT1NJVElPTl9QUkVDRURJTkc7CisKKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSB3ZSBuZWVk
IHRvIHNlZSB3aGljaCBub2RlIG9jY3VycyBmaXJzdC4gQ3Jhd2wgYmFja3dhcmRzIGZyb20gY2hp
bGQyIGxvb2tpbmcgZm9yIGNoaWxkMS4KKyAgICAgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBj
aGlsZDItPnByZXZpb3VzU2libGluZygpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+cHJldmlvdXNT
aWJsaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2hpbGQgPT0gY2hpbGQxKQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gTm9kZTo6RE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIE5vZGU6OkRPQ1VNRU5UX1BPU0lUSU9O
X1BSRUNFRElORzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBUaGVyZSB3YXMgbm8g
ZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB0d28gcGFyZW50IGNoYWlucywKKyAgICAvLyBpLmUuLCBv
bmUgd2FzIGEgc3Vic2V0IG9mIHRoZSBvdGhlci4gVGhlIHNob3J0ZXIgY2hhaW4gaXMgdGhlIGFu
Y2VzdG9yLgorICAgIHJldHVybiBpbmRleDEgPCBpbmRleDIgPyAKKyAgICAgICAgTm9kZTo6RE9D
VU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HIHwgTm9kZTo6RE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJ
TkVEX0JZIDoKKyAgICAgICAgTm9kZTo6RE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HIHwgTm9k
ZTo6RE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlM7Cit9CisKIHVuc2lnbmVkIHNob3J0IE5vZGU6
OmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKE5vZGUqIG90aGVyTm9kZSkKIHsKICAgICAvLyBJdCBp
cyBub3QgY2xlYXIgd2hhdCBzaG91bGQgYmUgZG9uZSBpZiB8b3RoZXJOb2RlfCBpcyAwLgpAQCAt
MTkzMiw0OCArMTk4MiwyMCBAQCB1bnNpZ25lZCBzaG9ydCBOb2RlOjpjb21wYXJlRG9jdW1lbnRQ
b3NpdGlvbihOb2RlKiBvdGhlck5vZGUpCiAgICAgLy8gSWYgdGhlIG5vZGVzIGhhdmUgZGlmZmVy
ZW50IG93bmluZyBkb2N1bWVudHMsIHRoZXkgbXVzdCBiZSBkaXNjb25uZWN0ZWQuICBOb3RlIHRo
YXQgd2UgYXZvaWQKICAgICAvLyBjb21wYXJpbmcgQXR0ciBub2RlcyBoZXJlLCBzaW5jZSB0aGV5
IHJldHVybiBmYWxzZSBmcm9tIGluRG9jdW1lbnQoKSBhbGwgdGhlIHRpbWUgKHdoaWNoIHNlZW1z
IGxpa2UgYSBidWcpLgogICAgIGlmIChzdGFydDEtPmluRG9jdW1lbnQoKSAhPSBzdGFydDItPmlu
RG9jdW1lbnQoKSB8fAotICAgICAgICBzdGFydDEtPnRyZWVTY29wZSgpICE9IHN0YXJ0Mi0+dHJl
ZVNjb3BlKCkpCisgICAgICAgIHN0YXJ0MS0+ZG9jdW1lbnQoKSAhPSBzdGFydDItPmRvY3VtZW50
KCkpCiAgICAgICAgIHJldHVybiBET0NVTUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQgfCBET0NV
TUVOVF9QT1NJVElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQzsKIAogICAgIC8vIFdlIG5lZWQg
dG8gZmluZCBhIGNvbW1vbiBhbmNlc3RvciBjb250YWluZXIsIGFuZCB0aGVuIGNvbXBhcmUgdGhl
IGluZGljZXMgb2YgdGhlIHR3byBpbW1lZGlhdGUgY2hpbGRyZW4uCiAgICAgTm9kZSogY3VycmVu
dDsKLSAgICBmb3IgKGN1cnJlbnQgPSBzdGFydDE7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50
LT5wYXJlbnROb2RlKCkpCisgICAgZm9yIChjdXJyZW50ID0gc3RhcnQxOyBjdXJyZW50OyBjdXJy
ZW50ID0gY3VycmVudC0+cGFyZW50T3JIb3N0Tm9kZSgpKQogICAgICAgICBjaGFpbjEuYXBwZW5k
KGN1cnJlbnQpOwotICAgIGZvciAoY3VycmVudCA9IHN0YXJ0MjsgY3VycmVudDsgY3VycmVudCA9
IGN1cnJlbnQtPnBhcmVudE5vZGUoKSkKKyAgICBmb3IgKGN1cnJlbnQgPSBzdGFydDI7IGN1cnJl
bnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5wYXJlbnRPckhvc3ROb2RlKCkpCiAgICAgICAgIGNoYWlu
Mi5hcHBlbmQoY3VycmVudCk7CiAgICAKLSAgICAvLyBXYWxrIHRoZSB0d28gY2hhaW5zIGJhY2t3
YXJkcyBhbmQgbG9vayBmb3IgdGhlIGZpcnN0IGRpZmZlcmVuY2UuCi0gICAgdW5zaWduZWQgaW5k
ZXgxID0gY2hhaW4xLnNpemUoKTsKLSAgICB1bnNpZ25lZCBpbmRleDIgPSBjaGFpbjIuc2l6ZSgp
OwotICAgIGZvciAodW5zaWduZWQgaSA9IG1pbihpbmRleDEsIGluZGV4Mik7IGk7IC0taSkgewot
ICAgICAgICBOb2RlKiBjaGlsZDEgPSBjaGFpbjFbLS1pbmRleDFdOwotICAgICAgICBOb2RlKiBj
aGlsZDIgPSBjaGFpbjJbLS1pbmRleDJdOwotICAgICAgICBpZiAoY2hpbGQxICE9IGNoaWxkMikg
ewotICAgICAgICAgICAgLy8gSWYgb25lIG9mIHRoZSBjaGlsZHJlbiBpcyBhbiBhdHRyaWJ1dGUs
IGl0IHdpbnMuCi0gICAgICAgICAgICBpZiAoY2hpbGQxLT5ub2RlVHlwZSgpID09IEFUVFJJQlVU
RV9OT0RFKQotICAgICAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJ
Tkc7Ci0gICAgICAgICAgICBpZiAoY2hpbGQyLT5ub2RlVHlwZSgpID09IEFUVFJJQlVURV9OT0RF
KQotICAgICAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkc7Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghY2hpbGQyLT5uZXh0U2libGluZygpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkc7Ci0gICAgICAg
ICAgICBpZiAoIWNoaWxkMS0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
RE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HOwotCi0gICAgICAgICAgICAvLyBPdGhlcndpc2Ug
d2UgbmVlZCB0byBzZWUgd2hpY2ggbm9kZSBvY2N1cnMgZmlyc3QuICBDcmF3bCBiYWNrd2FyZHMg
ZnJvbSBjaGlsZDIgbG9va2luZyBmb3IgY2hpbGQxLgotICAgICAgICAgICAgZm9yIChOb2RlKiBj
aGlsZCA9IGNoaWxkMi0+cHJldmlvdXNTaWJsaW5nKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5w
cmV2aW91c1NpYmxpbmcoKSkgewotICAgICAgICAgICAgICAgIGlmIChjaGlsZCA9PSBjaGlsZDEp
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkc7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gRE9DVU1FTlRfUE9TSVRJT05fUFJF
Q0VESU5HOwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIC8vIFRoZXJlIHdhcyBubyBkaWZm
ZXJlbmNlIGJldHdlZW4gdGhlIHR3byBwYXJlbnQgY2hhaW5zLCBpLmUuLCBvbmUgd2FzIGEgc3Vi
c2V0IG9mIHRoZSBvdGhlci4gIFRoZSBzaG9ydGVyCi0gICAgLy8gY2hhaW4gaXMgdGhlIGFuY2Vz
dG9yLgotICAgIHJldHVybiBpbmRleDEgPCBpbmRleDIgPyAKLSAgICAgICAgICAgICAgIERPQ1VN
RU5UX1BPU0lUSU9OX0ZPTExPV0lORyB8IERPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSA6
Ci0gICAgICAgICAgICAgICBET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkcgfCBET0NVTUVOVF9Q
T1NJVElPTl9DT05UQUlOUzsKKyAgICB1bnNpZ25lZCBkb2N1bWVudFBvc2l0aW9uID0gY29tcGFy
ZUFuY2VzdG9yTm9kZUNoYWluKGNoYWluMSwgY2hhaW4yKTsKKyAgICBpZiAoc3RhcnQxLT50cmVl
U2NvcGUoKSAhPSBzdGFydDItPnRyZWVTY29wZSgpKQorICAgICAgICBkb2N1bWVudFBvc2l0aW9u
IHw9IERPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRCB8IERPQ1VNRU5UX1BPU0lUSU9OX0lN
UExFTUVOVEFUSU9OX1NQRUNJRklDOworICAgIHJldHVybiBkb2N1bWVudFBvc2l0aW9uOwogfQog
CiBGbG9hdFBvaW50IE5vZGU6OmNvbnZlcnRUb1BhZ2UoY29uc3QgRmxvYXRQb2ludCYgcCkgY29u
c3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA1ZWJmOTAyMzQxZDA3MjYyZTYxNjU0YmMxN2MxODk0NzgzYzY1ZWUwLi4xOWE5
ODIwOWQzNzJkNjNkYzkxNDFhZGQ5NDQ2ODAzNjM2OTNjZjY3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTItMTEtMjggIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisg
ICAgICAgIE5vZGU6OmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIHNob3VsZCByZXR1cm4gZWl0aGVy
IEZPTExPV0lORyBPUiBQUkVDRURJTkcgZm9yIG5vZGVzIHdoaWNoIGFyZSBub3QgaW4gdGhlIHNh
bWUgdHJlZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMzU5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZmFzdC9kb20vc2hhZG93L2NvbXBhcmUtZG9jdW1lbnQtcG9zaXRpb24tZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9jb21wYXJlLWRvY3VtZW50LXBvc2l0aW9uLmh0
bWw6CisgICAgICAgIFJlbW92ZWQgbWFza3MgdG8gc2VlIE5vZGUuRE9DVU1FTlRfUE9TVElPTl9G
T0xMT1dJTkcgYW5kIFBSRUNFRElORy4KKwogMjAxMi0xMi0wNSAgRGFuIEJlcm5zdGVpbiAgPG1p
dHpAYXBwbGUuY29tPgogCiAgICAgICAgIFRleHQgZGVjb3JhdGlvbnMgYXJlIHJvdGF0ZWQgd2hl
biB0ZXh0LWNvbWJpbmUgdGFrZXMgZWZmZWN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvY29tcGFyZS1kb2N1bWVudC1wb3NpdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29tcGFyZS1kb2N1bWVudC1wb3NpdGlvbi1leHBlY3Rl
ZC50eHQKaW5kZXggNWQwY2Q3ZTc0NjlkOTE5OGU2MDRiMzUwYmEwNmRiN2Y4NzU3MzkxZC4uYzE5
YjMzNWU5MjgyN2Q2OGExMjZkOGRkZTc4YjJmMTMzZWE0MjE1NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBhcmUtZG9jdW1lbnQtcG9zaXRpb24tZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb21wYXJlLWRvY3VtZW50LXBv
c2l0aW9uLWV4cGVjdGVkLnR4dApAQCAtOSw4ICs5LDggQEAgUEFTUyBhMi5jb21wYXJlRG9jdW1l
bnRQb3NpdGlvbihhMykgaXMgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcKIFBBU1Mg
YjEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYjIpIGlzIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05f
Q09OVEFJTkVEX0JZIHwgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcKIFBBU1MgYjIu
Y29tcGFyZURvY3VtZW50UG9zaXRpb24oYjEpIGlzIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09O
VEFJTlMgfCBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORwogUEFTUyBiMi5jb21wYXJl
RG9jdW1lbnRQb3NpdGlvbihiMykgaXMgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcK
LVBBU1MgYTEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYjEpIGlzIE5vZGUuRE9DVU1FTlRfUE9T
SVRJT05fRElTQ09OTkVDVEVEIHwgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9JTVBMRU1FTlRBVElP
Tl9TUEVDSUZJQwotUEFTUyBiMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihjMSkgaXMgTm9kZS5E
T0NVTUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQgfCBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0lN
UExFTUVOVEFUSU9OX1NQRUNJRklDCitQQVNTIGExLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIx
KSBpcyBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRCB8IE5vZGUuRE9DVU1FTlRf
UE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMgfCBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9O
X0NPTlRBSU5FRF9CWSB8IE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HCitQQVNTIGIx
LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGMxKSBpcyBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0RJ
U0NPTk5FQ1RFRCB8IE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lG
SUMgfCBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORwogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvY29tcGFyZS1kb2N1bWVudC1wb3NpdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2NvbXBhcmUtZG9jdW1lbnQtcG9zaXRpb24uaHRtbAppbmRleCAw
OTllNTY0YjdhYWVlODZkZGY0YjE3MGViYjI4NjgwNWRlNTNmMWFmLi4wNjk0ZDhiODY3NGI2MzQ4
NzE0Mzg5ZjEwNDZiMzZlMmJkMmZmNWE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvY29tcGFyZS1kb2N1bWVudC1wb3NpdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9jb21wYXJlLWRvY3VtZW50LXBvc2l0aW9uLmh0bWwKQEAgLTQ1LDEw
ICs0NSwxMCBAQCBmdW5jdGlvbiB0ZXN0Q29tcGFyZURvY3VtZW50UG9zaXRpb24oKQogICAgIHNo
b3VsZEJlKCdiMi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiMSknLCAnTm9kZS5ET0NVTUVOVF9Q
T1NJVElPTl9DT05UQUlOUyB8IE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HJyk7CiAg
ICAgc2hvdWxkQmUoJ2IyLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIzKScsICdOb2RlLkRPQ1VN
RU5UX1BPU0lUSU9OX0ZPTExPV0lORycpOwogCi0gICAgLy8gVGhlIGN1cnJlbnQgaW1wbGVtZW50
YXRpb24gZG9lcyBub3QgcmV0dXJuIEZPTExPV0lORyBPUiBQUkVDRURJTkcgZmxhZy4KLSAgICAv
LyBXZSBuZWVkIGEgc3RhYmxlIGltcGxlbWVudGF0aW9uIHdoaWNoIGRlY2lkZXMgdGhlIHRvdGFs
IG9yZGVyIGJldHdlZW4gbm9kZXMgaW4gZGlmZmVyZW50IHNoYWRvdyB0cmVlcy4KLSAgICBzaG91
bGRCZSgnYTEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYjEpJywgJ05vZGUuRE9DVU1FTlRfUE9T
SVRJT05fRElTQ09OTkVDVEVEIHwgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9JTVBMRU1FTlRBVElP
Tl9TUEVDSUZJQycpOwotICAgIHNob3VsZEJlKCdiMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihj
MSknLCAnTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQgfCBOb2RlLkRPQ1VNRU5U
X1BPU0lUSU9OX0lNUExFTUVOVEFUSU9OX1NQRUNJRklDJyk7CisgICAgc2hvdWxkQmUoJ2ExLmNv
bXBhcmVEb2N1bWVudFBvc2l0aW9uKGIxKScsCisgICAgICAgICAgICAgJ05vZGUuRE9DVU1FTlRf
UE9TSVRJT05fRElTQ09OTkVDVEVEIHwgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9JTVBMRU1FTlRB
VElPTl9TUEVDSUZJQyB8IE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZIHwgTm9k
ZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcnKTsKKyAgICBzaG91bGRCZSgnYjEuY29tcGFy
ZURvY3VtZW50UG9zaXRpb24oYzEpJywKKyAgICAgICAgICAgICAnTm9kZS5ET0NVTUVOVF9QT1NJ
VElPTl9ESVNDT05ORUNURUQgfCBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0lNUExFTUVOVEFUSU9O
X1NQRUNJRklDIHwgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcnKTsKIH0KIAogdGVz
dENvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>