<?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>232261</bug_id>
          
          <creation_ts>2021-10-25 12:51:19 -0700</creation_ts>
          <short_desc>:host::part(foo) selector does not select elements inside shadow roots</short_desc>
          <delta_ts>2021-11-04 19:18:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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>
          
          <blocked>148695</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nolan Lawson">nlawson</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>emilio</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1808538</commentid>
    <comment_count>0</comment_count>
    <who name="Nolan Lawson">nlawson</who>
    <bug_when>2021-10-25 12:51:19 -0700</bug_when>
    <thetext>Using CSS like:

    ::part(foo) {
      color: blue;
    }

Or:

    :host::part(foo) {
      color: blue;
    }

...does not work inside of shadow roots to select CSS shadow parts.

Here are two examples to demonstrate:

- https://codepen.io/nolanlawson-the-selector/pen/GRjxEYZ
- https://codepen.io/nolanlawson-the-selector/pen/jOLBxad

These two examples work in Firefox v93 (i.e. the font color is blue), but not Safari Tech Preview 15.4 release 133.

Incidentally, Chrome also fails this test, and there is a Chrome bug already open: https://crbug.com/980506</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810395</commentid>
    <comment_count>1</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-29 23:12:54 -0700</bug_when>
    <thetext>The first one is clearly wrong, ::part should not match in the current scope. That it works in Firefox seems like a bug.

The second one doesn&apos;t work in any browser. It is unclear if it should work since :host is such a poorly defined special case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810406</commentid>
    <comment_count>2</comment_count>
    <who name="Emilio Cobos Álvarez (:emilio)">emilio</who>
    <bug_when>2021-10-30 01:21:00 -0700</bug_when>
    <thetext>Yeah, so `:host::part()` works intentionally in Firefox (https://bugzilla.mozilla.org/show_bug.cgi?id=1624968). I think the fact that bare `::part()` matches in that scope is an accidental change introduced by that bug&apos;s changes, but should probably be considered a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810407</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-30 01:56:14 -0700</bug_when>
    <thetext>Ah right, :host::part does work in FF.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810621</commentid>
    <comment_count>4</comment_count>
    <who name="Nolan Lawson">nlawson</who>
    <bug_when>2021-11-01 08:36:23 -0700</bug_when>
    <thetext>Thanks for the clarification. I can understand the case for having `:host::part(foo)` work, whereas `::part(foo)` shouldn&apos;t work. I suppose `::part(foo)` gets ambiguous if a component contains other components with the same part name.

From a web developer&apos;s perspective, I think having just `:host::part(foo)` is adequate – the main thing is to have some way to reference one&apos;s own parts from within a component. (Of course `[part=&quot;foo&quot;]` also works, but it feels a bit hacky since it&apos;s the part that matters, not the attribute.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810623</commentid>
    <comment_count>5</comment_count>
    <who name="Nolan Lawson">nlawson</who>
    <bug_when>2021-11-01 08:37:49 -0700</bug_when>
    <thetext>Renamed the bug title to focus on `:host::part(foo)`, not `::part(foo)`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810808</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-01 12:52:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/84894922&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811785</commentid>
    <comment_count>7</comment_count>
      <attachid>443283</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-04 01:01:57 -0700</bug_when>
    <thetext>Created attachment 443283
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811860</commentid>
    <comment_count>8</comment_count>
      <attachid>443283</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-04 08:51:04 -0700</bug_when>
    <thetext>Comment on attachment 443283
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=443283&amp;action=review

&gt; Source/WebCore/css/SelectorChecker.cpp:418
&gt; +        MatchResult result = matchRecursively(checkingContext, nextContext, ignoreDynamicPseudo);

auto?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811871</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-04 09:15:21 -0700</bug_when>
    <thetext>Committed r285262 (243873@main): &lt;https://commits.webkit.org/243873@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443283.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811883</commentid>
    <comment_count>10</comment_count>
    <who name="Nolan Lawson">nlawson</who>
    <bug_when>2021-11-04 09:33:11 -0700</bug_when>
    <thetext>This is awesome! Thank you!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811889</commentid>
    <comment_count>11</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-04 09:53:04 -0700</bug_when>
    <thetext>Thanks for reporting!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443283</attachid>
            <date>2021-11-04 01:01:57 -0700</date>
            <delta_ts>2021-11-04 09:15:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232261-20211104100155.patch</filename>
            <type>text/plain</type>
            <size>10664</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzEwM2YwMGEwMTZlZTRh
MzFjNmY0MTNlZWZlMDcwMjM5NmM5ZGYyOS4uMGEzMWE4Njc1Nzk2OTgyMDFjZjMyMjZiMDkyMDYw
MzNhNWEzZTIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTExLTA0ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICA6aG9zdDo6cGFydChmb28p
IHNlbGVjdG9yIGRvZXMgbm90IHNlbGVjdCBlbGVtZW50cyBpbnNpZGUgc2hhZG93IHJvb3RzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyNjEKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0ODk0OTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIG5lZWQgdG8gYWxzbyBsb29rIGZvciA6OnBhcnQg
cnVsZXMgZnJvbSB0aGUgZWxlbWVudCdzIG93biBzY29wZS4KKworICAgICAgICAqIGNzcy9TZWxl
Y3RvckNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjptYXRj
aCBjb25zdCk6CisKKyAgICAgICAgUmVuYW1lIG1heU1hdGNoSG9zdFBzZXVkb0NsYXNzIC0+IG11
c3RNYXRjaEhvc3RQc2V1ZG9DbGFzcyBmb3IgY2xhcml0eS4KKworICAgICAgICAoV2ViQ29yZTo6
bG9jYWxDb250ZXh0Rm9yUGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tl
cjo6bWF0Y2hSZWN1cnNpdmVseSBjb25zdCk6CisKKyAgICAgICAgU3BsaXQgU2hhZG93RGVzY2Vu
ZGFudCBhbmQgU2hhZG93UGFydERlc2NlbmRhbnQgaGFuZGxpbmcgYXMgdGhleSBhcmUgc3VmZmlj
aWVudGx5IGRpZmZlcmVudC4KKyAgICAgICAgU2V0IG5leHRDb250ZXh0Lm11c3RNYXRjaEhvc3RQ
c2V1ZG9DbGFzcyBiaXQgZm9yIDo6cGFydCBydWxlcyBjb21pbmcgZnJvbSB0aGUgRWxlbWVudCdz
IHNjb3BlIGFzCisgICAgICAgIGl0IGlzIHRoZSBvbmx5IHdheSB0aGV5IGNhbiBtYXRjaC4KKwor
ICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZSBjb25zdCk6CisKKyAg
ICAgICAgTm8gbmFtZSBtYXBwaW5nIGZvciBydWxlcyBmcm9tIHRoZSBlbGVtZW50J3Mgb3duIHNj
b3BlLgorCisgICAgICAgICogc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaFBhcnRQc2V1ZG9F
bGVtZW50UnVsZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkVsZW1lbnRSdWxlQ29sbGVj
dG9yOjptYXRjaFBhcnRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTY29wZSk6CisKKyAgICAgICAgQWxz
byBjaGVjayA6OnBhcnQgcnVsZXMgZnJvbSB0aGUgZWxlbWVudCBzY29wZS4KKworICAgICAgICAq
IHN0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmg6CisKIDIwMjEtMTEtMDMgIEFudHRpIEtvaXZp
c3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBTdHlsZTo6U2NvcGVPcmRpbmFs
IGZvciBmaW5kaW5nIHRoZSByaWdodCBzY29wZSBmb3IgOjpwYXJ0IG1hdGNoaW5nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IDIxZDlmYTRjY2UyMDQ3MTMwY2Q5NzFl
MTJmYjYzM2EwMzYyYWRhMWQuLmVhMWIwNGVlMGEyYTU1ODI5ZGZmYWM0NGE2OTQ3YmVmMmYzOTE3
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC03Niw3ICs3Niw3
IEBAIHN0cnVjdCBTZWxlY3RvckNoZWNrZXI6OkxvY2FsQ29udGV4dCB7CiAgICAgYm9vbCBwc2V1
ZG9FbGVtZW50RWZmZWN0aXZlIHsgdHJ1ZSB9OwogICAgIGJvb2wgaGFzU2Nyb2xsYmFyUHNldWRv
IHsgZmFsc2UgfTsKICAgICBib29sIGhhc1NlbGVjdGlvblBzZXVkbyB7IGZhbHNlIH07Ci0gICAg
Ym9vbCBtYXlNYXRjaEhvc3RQc2V1ZG9DbGFzcyB7IGZhbHNlIH07CisgICAgYm9vbCBtdXN0TWF0
Y2hIb3N0UHNldWRvQ2xhc3MgeyBmYWxzZSB9OwogfTsKIAogc3RhdGljIGlubGluZSB2b2lkIGFk
ZFN0eWxlUmVsYXRpb24oU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQmIGNoZWNraW5n
Q29udGV4dCwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwgU3R5bGU6OlJlbGF0aW9uOjpUeXBlIHR5
cGUsIHVuc2lnbmVkIHZhbHVlID0gMSkKQEAgLTE3Nyw3ICsxNzcsNyBAQCBib29sIFNlbGVjdG9y
Q2hlY2tlcjo6bWF0Y2goY29uc3QgQ1NTU2VsZWN0b3ImIHNlbGVjdG9yLCBjb25zdCBFbGVtZW50
JiBlbGVtZW50LAogCiAgICAgaWYgKGNoZWNraW5nQ29udGV4dC5pc01hdGNoaW5nSG9zdFBzZXVk
b0NsYXNzKSB7CiAgICAgICAgIEFTU0VSVChlbGVtZW50LnNoYWRvd1Jvb3QoKSk7Ci0gICAgICAg
IGNvbnRleHQubWF5TWF0Y2hIb3N0UHNldWRvQ2xhc3MgPSB0cnVlOworICAgICAgICBjb250ZXh0
Lm11c3RNYXRjaEhvc3RQc2V1ZG9DbGFzcyA9IHRydWU7CiAgICAgfQogCiAgICAgUHNldWRvSWRT
ZXQgcHNldWRvSWRTZXQ7CkBAIC0yMzYsNyArMjM2LDcgQEAgc3RhdGljIFNlbGVjdG9yQ2hlY2tl
cjo6TG9jYWxDb250ZXh0IGxvY2FsQ29udGV4dEZvclBhcmVudChjb25zdCBTZWxlY3RvckNoZWNr
ZXIKICAgICB1cGRhdGVkQ29udGV4dC5pc01hdGNoRWxlbWVudCA9IGZhbHNlOwogICAgIHVwZGF0
ZWRDb250ZXh0LmlzU3ViamVjdE9yQWRqYWNlbnRFbGVtZW50ID0gZmFsc2U7CiAKLSAgICBpZiAo
dXBkYXRlZENvbnRleHQubWF5TWF0Y2hIb3N0UHNldWRvQ2xhc3MpIHsKKyAgICBpZiAodXBkYXRl
ZENvbnRleHQubXVzdE1hdGNoSG9zdFBzZXVkb0NsYXNzKSB7CiAgICAgICAgIHVwZGF0ZWRDb250
ZXh0LmVsZW1lbnQgPSBudWxscHRyOwogICAgICAgICByZXR1cm4gdXBkYXRlZENvbnRleHQ7CiAg
ICAgfQpAQCAtMjQ0LDcgKzI0NCw3IEBAIHN0YXRpYyBTZWxlY3RvckNoZWNrZXI6OkxvY2FsQ29u
dGV4dCBsb2NhbENvbnRleHRGb3JQYXJlbnQoY29uc3QgU2VsZWN0b3JDaGVja2VyCiAgICAgLy8g
TW92ZSB0byB0aGUgc2hhZG93IGhvc3QgaWYgbWF0Y2hpbmcgOmhvc3QgYW5kIHRoZSBwYXJlbnQg
aXMgdGhlIHNoYWRvdyByb290LgogICAgIGlmIChjb250ZXh0LnNlbGVjdG9yLT5tYXRjaCgpID09
IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyAmJiBjb250ZXh0LnNlbGVjdG9yLT5wc2V1ZG9DbGFz
c1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NIb3N0ICYmIGlzPFNoYWRvd1Jvb3Q+
KGNvbnRleHQuZWxlbWVudC0+cGFyZW50Tm9kZSgpKSkgewogICAgICAgICB1cGRhdGVkQ29udGV4
dC5lbGVtZW50ID0gZG93bmNhc3Q8U2hhZG93Um9vdD4oKmNvbnRleHQuZWxlbWVudC0+cGFyZW50
Tm9kZSgpKS5ob3N0KCk7Ci0gICAgICAgIHVwZGF0ZWRDb250ZXh0Lm1heU1hdGNoSG9zdFBzZXVk
b0NsYXNzID0gdHJ1ZTsKKyAgICAgICAgdXBkYXRlZENvbnRleHQubXVzdE1hdGNoSG9zdFBzZXVk
b0NsYXNzID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuIHVwZGF0ZWRDb250ZXh0OwogICAgIH0KIApA
QCAtNDA2LDE4ICs0MDYsMzIgQEAgU2VsZWN0b3JDaGVja2VyOjpNYXRjaFJlc3VsdCBTZWxlY3Rv
ckNoZWNrZXI6Om1hdGNoUmVjdXJzaXZlbHkoQ2hlY2tpbmdDb250ZXh0JgogCiAgICAgICAgICAg
ICByZXR1cm4gTWF0Y2hSZXN1bHQ6OnVwZGF0ZVdpdGhNYXRjaFR5cGUocmVzdWx0LCBtYXRjaFR5
cGUpOwogICAgICAgICB9Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFudDoK
KyAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50OiAgeworICAgICAgICBhdXRv
KiBob3N0ID0gY29udGV4dC5lbGVtZW50LT5zaGFkb3dIb3N0KCk7CisgICAgICAgIGlmICghaG9z
dCkKKyAgICAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdDo6ZmFpbHMoTWF0Y2g6OlNlbGVjdG9y
RmFpbHNDb21wbGV0ZWx5KTsKKworICAgICAgICBuZXh0Q29udGV4dC5lbGVtZW50ID0gaG9zdDsK
KyAgICAgICAgbmV4dENvbnRleHQuZmlyc3RTZWxlY3Rvck9mVGhlRnJhZ21lbnQgPSBuZXh0Q29u
dGV4dC5zZWxlY3RvcjsKKyAgICAgICAgbmV4dENvbnRleHQuaXNTdWJqZWN0T3JBZGphY2VudEVs
ZW1lbnQgPSBmYWxzZTsKKyAgICAgICAgUHNldWRvSWRTZXQgaWdub3JlRHluYW1pY1BzZXVkbzsK
KyAgICAgICAgTWF0Y2hSZXN1bHQgcmVzdWx0ID0gbWF0Y2hSZWN1cnNpdmVseShjaGVja2luZ0Nv
bnRleHQsIG5leHRDb250ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRvKTsKKworICAgICAgICByZXR1
cm4gTWF0Y2hSZXN1bHQ6OnVwZGF0ZVdpdGhNYXRjaFR5cGUocmVzdWx0LCBtYXRjaFR5cGUpOwor
ICAgIH0KICAgICBjYXNlIENTU1NlbGVjdG9yOjpTaGFkb3dQYXJ0RGVzY2VuZGFudDogewogICAg
ICAgICAvLyBDb250aW51ZSBtYXRjaGluZyBpbiB0aGUgc2NvcGUgd2hlcmUgdGhpcyBydWxlIGNh
bWUgZnJvbS4KLSAgICAgICAgYXV0byogaG9zdCA9IHJlbGF0aW9uID09IENTU1NlbGVjdG9yOjpT
aGFkb3dQYXJ0RGVzY2VuZGFudAotICAgICAgICAgICAgPyBTdHlsZTo6aG9zdEZvclNjb3BlT3Jk
aW5hbCgqY29udGV4dC5lbGVtZW50LCBjaGVja2luZ0NvbnRleHQuc3R5bGVTY29wZU9yZGluYWwp
Ci0gICAgICAgICAgICA6IGNvbnRleHQuZWxlbWVudC0+c2hhZG93SG9zdCgpOworICAgICAgICBh
dXRvKiBob3N0ID0gY2hlY2tpbmdDb250ZXh0LnN0eWxlU2NvcGVPcmRpbmFsID09IFN0eWxlOjpT
Y29wZU9yZGluYWw6OkVsZW1lbnQKKyAgICAgICAgICAgID8gY29udGV4dC5lbGVtZW50LT5zaGFk
b3dIb3N0KCkKKyAgICAgICAgICAgIDogU3R5bGU6Omhvc3RGb3JTY29wZU9yZGluYWwoKmNvbnRl
eHQuZWxlbWVudCwgY2hlY2tpbmdDb250ZXh0LnN0eWxlU2NvcGVPcmRpbmFsKTsKICAgICAgICAg
aWYgKCFob3N0KQogICAgICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0OjpmYWlscyhNYXRjaDo6
U2VsZWN0b3JGYWlsc0NvbXBsZXRlbHkpOwogCiAgICAgICAgIG5leHRDb250ZXh0LmVsZW1lbnQg
PSBob3N0OwogICAgICAgICBuZXh0Q29udGV4dC5maXJzdFNlbGVjdG9yT2ZUaGVGcmFnbWVudCA9
IG5leHRDb250ZXh0LnNlbGVjdG9yOwogICAgICAgICBuZXh0Q29udGV4dC5pc1N1YmplY3RPckFk
amFjZW50RWxlbWVudCA9IGZhbHNlOworICAgICAgICAvLyA6OnBhcnQgcnVsZXMgZnJvbSB0aGUg
ZWxlbWVudCdzIG93biBzY29wZSBjYW4gb25seSBtYXRjaCBpZiB0aGV5IGFwcGx5IHRvIDpob3N0
LgorICAgICAgICBuZXh0Q29udGV4dC5tdXN0TWF0Y2hIb3N0UHNldWRvQ2xhc3MgPSBjaGVja2lu
Z0NvbnRleHQuc3R5bGVTY29wZU9yZGluYWwgPT0gU3R5bGU6OlNjb3BlT3JkaW5hbDo6RWxlbWVu
dDsKICAgICAgICAgUHNldWRvSWRTZXQgaWdub3JlRHluYW1pY1BzZXVkbzsKICAgICAgICAgTWF0
Y2hSZXN1bHQgcmVzdWx0ID0gbWF0Y2hSZWN1cnNpdmVseShjaGVja2luZ0NvbnRleHQsIG5leHRD
b250ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRvKTsKIApAQCAtNjQxLDcgKzY1NSw3IEBAIGJvb2wg
U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZShDaGVja2luZ0NvbnRleHQmIGNoZWNraW5nQ29udGV4
dCwgY29uc3QgTG9jYWxDb250CiAgICAgY29uc3QgRWxlbWVudCYgZWxlbWVudCA9ICpjb250ZXh0
LmVsZW1lbnQ7CiAgICAgY29uc3QgQ1NTU2VsZWN0b3ImIHNlbGVjdG9yID0gKmNvbnRleHQuc2Vs
ZWN0b3I7CiAKLSAgICBpZiAoY29udGV4dC5tYXlNYXRjaEhvc3RQc2V1ZG9DbGFzcykgeworICAg
IGlmIChjb250ZXh0Lm11c3RNYXRjaEhvc3RQc2V1ZG9DbGFzcykgewogICAgICAgICAvLyA6aG9z
dCBkb2Vzbid0IGNvbWJpbmUgd2l0aCBhbnl0aGluZyBleGNlcHQgcHNldWRvIGVsZW1lbnRzLgog
ICAgICAgICBib29sIGlzSG9zdFBzZXVkb0NsYXNzID0gc2VsZWN0b3IubWF0Y2goKSA9PSBDU1NT
ZWxlY3Rvcjo6UHNldWRvQ2xhc3MgJiYgc2VsZWN0b3IucHNldWRvQ2xhc3NUeXBlKCkgPT0gQ1NT
U2VsZWN0b3I6OlBzZXVkb0NsYXNzSG9zdDsKICAgICAgICAgYm9vbCBpc1BzZXVkb0VsZW1lbnQg
PSBzZWxlY3Rvci5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50OwpAQCAtMTA4
OSw3ICsxMTAzLDcgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKENoZWNraW5nQ29u
dGV4dCYgY2hlY2tpbmdDb250ZXh0LCBjb25zdCBMb2NhbENvbnQKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzSG9zdDog
ewotICAgICAgICAgICAgaWYgKCFjb250ZXh0Lm1heU1hdGNoSG9zdFBzZXVkb0NsYXNzKQorICAg
ICAgICAgICAgaWYgKCFjb250ZXh0Lm11c3RNYXRjaEhvc3RQc2V1ZG9DbGFzcykKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICByZXR1cm4gbWF0Y2hIb3N0UHNldWRv
Q2xhc3Moc2VsZWN0b3IsIGVsZW1lbnQsIGNoZWNraW5nQ29udGV4dCk7CiAgICAgICAgIH0KQEAg
LTExNjgsNiArMTE4MiwxMCBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUoQ2hlY2tp
bmdDb250ZXh0JiBjaGVja2luZ0NvbnRleHQsIGNvbnN0IExvY2FsQ29udAogICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50UGFydDogewogICAgICAgICAgICAgYXV0byB0cmFu
c2xhdGVQYXJ0TmFtZVRvUnVsZVNjb3BlID0gWyZdKEF0b21TdHJpbmcgcGFydE5hbWUpIHsKICAg
ICAgICAgICAgICAgICBWZWN0b3I8QXRvbVN0cmluZywgMT4gbWFwcGVkTmFtZXMgeyBwYXJ0TmFt
ZSB9OworCisgICAgICAgICAgICAgICAgaWYgKGNoZWNraW5nQ29udGV4dC5zdHlsZVNjb3BlT3Jk
aW5hbCA9PSBTdHlsZTo6U2NvcGVPcmRpbmFsOjpFbGVtZW50KQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gbWFwcGVkTmFtZXM7CisKICAgICAgICAgICAgICAgICBhdXRvKiBydWxlU2NvcGVI
b3N0ID0gU3R5bGU6Omhvc3RGb3JTY29wZU9yZGluYWwoKmNvbnRleHQuZWxlbWVudCwgY2hlY2tp
bmdDb250ZXh0LnN0eWxlU2NvcGVPcmRpbmFsKTsKIAogICAgICAgICAgICAgICAgIGZvciAoYXV0
byogc2hhZG93Um9vdCA9IGVsZW1lbnQuY29udGFpbmluZ1NoYWRvd1Jvb3QoKTsgc2hhZG93Um9v
dDsgc2hhZG93Um9vdCA9IHNoYWRvd1Jvb3QtPmhvc3QoKS0+Y29udGFpbmluZ1NoYWRvd1Jvb3Qo
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCmlu
ZGV4IDVhOWQ5ZWY5OTM2ODQyM2NlY2MyOGIzNmYxM2ZlMWFiNWJjZGY3ZWUuLjYyZGM1MzMxZTA5
MzEzZjdjZDRmODFiYTViYjJiMGFlNmU1MDhhMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTMwMSwxNiArMzAxLDE2IEBAIHZvaWQgRWxl
bWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoUGFydFBzZXVkb0VsZW1lbnRSdWxlcygpCiAgICAgaWYg
KHBhcnRNYXRjaGluZ0VsZW1lbnQucGFydE5hbWVzKCkuaXNFbXB0eSgpIHx8ICFwYXJ0TWF0Y2hp
bmdFbGVtZW50LmlzSW5TaGFkb3dUcmVlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1hdGNo
UGFydFBzZXVkb0VsZW1lbnRSdWxlc0ZvclNjb3BlKCpwYXJ0TWF0Y2hpbmdFbGVtZW50LmNvbnRh
aW5pbmdTaGFkb3dSb290KCkpOworICAgIG1hdGNoUGFydFBzZXVkb0VsZW1lbnRSdWxlc0ZvclNj
b3BlKHBhcnRNYXRjaGluZ0VsZW1lbnQpOwogfQogCi12b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9y
OjptYXRjaFBhcnRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTY29wZShjb25zdCBTaGFkb3dSb290JiBz
Y29wZVNoYWRvd1Jvb3QpCit2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaFBhcnRQc2V1
ZG9FbGVtZW50UnVsZXNGb3JTY29wZShjb25zdCBFbGVtZW50JiBwYXJ0TWF0Y2hpbmdFbGVtZW50
KQogewotICAgIGF1dG8qIGhvc3QgPSBzY29wZVNoYWRvd1Jvb3QuaG9zdCgpOwotICAgIGF1dG8g
c3R5bGVTY29wZU9yZGluYWwgPSBTY29wZU9yZGluYWw6OkNvbnRhaW5pbmdIb3N0OworICAgIGF1
dG8qIGVsZW1lbnQgPSAmcGFydE1hdGNoaW5nRWxlbWVudDsKKyAgICBhdXRvIHN0eWxlU2NvcGVP
cmRpbmFsID0gU2NvcGVPcmRpbmFsOjpFbGVtZW50OwogCi0gICAgZm9yICg7IGhvc3Q7IGhvc3Qg
PSBob3N0LT5zaGFkb3dIb3N0KCksIC0tc3R5bGVTY29wZU9yZGluYWwpIHsKLSAgICAgICAgYXV0
byYgc3R5bGVTY29wZSA9IFNjb3BlOjpmb3JOb2RlKCpob3N0KTsKKyAgICBmb3IgKDsgZWxlbWVu
dDsgZWxlbWVudCA9IGVsZW1lbnQtPnNoYWRvd0hvc3QoKSwgLS1zdHlsZVNjb3BlT3JkaW5hbCkg
eworICAgICAgICBhdXRvJiBzdHlsZVNjb3BlID0gU2NvcGU6OmZvck5vZGUoY29uc3RfY2FzdDxF
bGVtZW50Jj4oKmVsZW1lbnQpKTsKICAgICAgICAgaWYgKCFzdHlsZVNjb3BlLnJlc29sdmVyKCku
cnVsZVNldHMoKS5pc0F1dGhvclN0eWxlRGVmaW5lZCgpKQogICAgICAgICAgICAgY29udGludWU7
CiAKQEAgLTMyMCw3ICszMjAsNyBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaFBh
cnRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTY29wZShjb25zdCBTaGFkb3dSb290JgogICAgICAgICBj
b2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoJmhvc3RBdXRob3JSdWxlcy5wYXJ0UHNldWRvRWxl
bWVudFJ1bGVzKCksIHNjb3BlTWF0Y2hSZXF1ZXN0KTsKIAogICAgICAgICAvLyBFbGVtZW50IG1h
eSBvbmx5IGJlIGV4cG9zZWQgdG8gc3R5bGluZyBmcm9tIGVuY2xvc2luZyBzY29wZXMgdmlhIGV4
cG9ydHBhcnRzIGF0dHJpYnV0ZXMuCi0gICAgICAgIGlmIChob3N0LT5zaGFkb3dSb290KCktPnBh
cnRNYXBwaW5ncygpLmlzRW1wdHkoKSkKKyAgICAgICAgaWYgKGVsZW1lbnQgIT0gJnBhcnRNYXRj
aGluZ0VsZW1lbnQgJiYgZWxlbWVudC0+c2hhZG93Um9vdCgpLT5wYXJ0TWFwcGluZ3MoKS5pc0Vt
cHR5KCkpCiAgICAgICAgICAgICBicmVhazsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaAppbmRleCBkMDczMzg0N2I0ZDRlZTEzNmYxY2JmYjZi
YzlhMGMxNTgwNjM0YTBlLi41NzNiOGNmODA0OTYzNmE5MTc3NjljMjg0MmZjODYzNjBjY2E1MDM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmgKQEAgLTEz
Miw3ICsxMzIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbWF0Y2hIb3N0UHNldWRvQ2xhc3NSdWxl
cygpOwogICAgIHZvaWQgbWF0Y2hTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKCk7CiAgICAgdm9p
ZCBtYXRjaFBhcnRQc2V1ZG9FbGVtZW50UnVsZXMoKTsKLSAgICB2b2lkIG1hdGNoUGFydFBzZXVk
b0VsZW1lbnRSdWxlc0ZvclNjb3BlKGNvbnN0IFNoYWRvd1Jvb3QmIHNjb3BlU2hhZG93Um9vdCk7
CisgICAgdm9pZCBtYXRjaFBhcnRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTY29wZShjb25zdCBFbGVt
ZW50JiBwYXJ0TWF0Y2hpbmdFbGVtZW50KTsKIAogICAgIHZvaWQgY29sbGVjdE1hdGNoaW5nU2hh
ZG93UHNldWRvRWxlbWVudFJ1bGVzKGNvbnN0IE1hdGNoUmVxdWVzdCYpOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2hh
ZG93LXBhcnRzL2hvc3QtcGFydC0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNoYWRvdy1wYXJ0cy9ob3N0LXBhcnQt
MDAxLWV4cGVjdGVkLnR4dAppbmRleCBhNzhiY2Y3MDUyNGY4YjRiNWQ3MDQyZjk4NWI2NjAzZjhi
MGZkMTY0Li4xNWEzMzFjMmJhODVlNWI2ZGE5MDhlYmFjMDEyZDg4NjYxNzRhYTU4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2hhZG93LXBhcnRzL2hvc3QtcGFydC0wMDEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaGFkb3ctcGFydHMvaG9z
dC1wYXJ0LTAwMS1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgOmhvc3Q6OnBh
cnQgd29ya3MgYXNzZXJ0X2VxdWFsczogOmhvc3Q6OnBhcnQoKSB3b3JrcyBleHBlY3RlZCAicmdi
KDAsIDI1NSwgMCkiIGJ1dCBnb3QgInJnYigwLCAwLCAwKSIKK1BBU1MgOmhvc3Q6OnBhcnQgd29y
a3MKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>