<?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>153893</bug_id>
          
          <creation_ts>2016-02-04 13:50:33 -0800</creation_ts>
          <short_desc>Use scope stack instead of nested TreeResolvers for shadow trees</short_desc>
          <delta_ts>2022-10-25 08:45:54 -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>WebKit Nightly Build</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1162173</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-02-04 13:50:33 -0800</bug_when>
    <thetext>Use more future proof approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162390</commentid>
    <comment_count>1</comment_count>
      <attachid>270745</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-02-05 08:37:41 -0800</bug_when>
    <thetext>Created attachment 270745
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162592</commentid>
    <comment_count>2</comment_count>
      <attachid>270745</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-02-06 03:25:17 -0800</bug_when>
    <thetext>Comment on attachment 270745
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162655</commentid>
    <comment_count>3</comment_count>
      <attachid>270745</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-02-06 12:48:54 -0800</bug_when>
    <thetext>Comment on attachment 270745
patch

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

&gt; Source/WebCore/style/StyleTreeResolver.h:80
&gt; +    struct Scope : RefCounted&lt;Scope&gt; {

Does this really need to be RefCounted?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1908109</commentid>
    <comment_count>4</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-10-25 08:45:54 -0700</bug_when>
    <thetext>landed - https://github.com/WebKit/WebKit/commit/b8cc4b3a7442887470b8c810f1b6dd2c70008e15

and didn&apos;t backed out.

Although @rniwa comment was not addressed.

Marking this as &quot;RESOLVED FIXED&quot; though.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270745</attachid>
            <date>2016-02-05 08:37:41 -0800</date>
            <delta_ts>2016-02-06 03:25:17 -0800</delta_ts>
            <desc>patch</desc>
            <filename>tree-resolver-scope-3.patch</filename>
            <type>text/plain</type>
            <size>13705</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NjE0OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE2LTAyLTA0ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc2NvcGUgc3RhY2sgaW5z
dGVhZCBvZiBuZXN0ZWQgVHJlZVJlc29sdmVycyBmb3Igc2hhZG93IHRyZWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM4OTMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFRyZWVSZXNvbHZlciBw
ZXItZG9jdW1lbnQuIFRoaXMgaXMgYSBzdGVwIHRvd2FyZHMgaXRlcmF0aXZlIHN0eWxlIHJlc29s
dmUuCisKKyAgICAgICAgVGhpcyBpcyBkb25lIHJlcGxhY2luZyB1c2Ugb2YgbmVzdGVkIFRyZWVS
ZXNvbHZlcnMgd2l0aCBhIHNjb3BlIHN0YWNrIHRoYXQgbWFpbnRhaW5zCisgICAgICAgIHRoZSBz
dHlsZSByZXNvbHZlciBhbmQgdGhlIHNlbGVjdG9yIGZpbHRlciBmb3IgdGhlIGN1cnJlbnQgdHJl
ZSBzY29wZS4KKworICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlOjplbnN1cmVQbGFjZWhvbGRlclN0eWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OlNjb3BlOjpTY29wZSk6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpUcmVlUmVzb2x2ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OnNob3VsZENyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
OjpUcmVlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZTo6VHJlZVJlc29sdmVyOjpjcmVhdGVSZW5kZXJUcmVlRm9yU2hhZG93Um9vdCk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpjcmVhdGVSZW5kZXJUcmVlRm9yU2xvdEFz
c2lnbmVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpjcmVhdGVS
ZW5kZXJUcmVlUmVjdXJzaXZlbHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNv
bHZlcjo6cmVzb2x2ZUxvY2FsbHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNv
bHZlcjo6cmVzb2x2ZVNoYWRvd1RyZWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVS
ZXNvbHZlcjo6cmVzb2x2ZUJlZm9yZU9yQWZ0ZXJQc2V1ZG9FbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVDaGlsZHJlbik6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpyZXNvbHZlU2xvdEFzc2lnbmVlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpyZXNvbHZlUmVjdXJzaXZlbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6cmVzb2x2ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6ZGV0YWNoUmVuZGVyVHJlZSk6CisgICAgICAgICogc3R5bGUvU3R5
bGVUcmVlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6
OnNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnB1c2hTY29w
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpwdXNoRW5jbG9zaW5n
U2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6cG9wU2NvcGUp
OgorCiAyMDE2LTAyLTA0ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWJLaXQgZm9yIGlPUyBTaW11bGF0b3IgZmFpbHMgdG8gYnVpbGQgd2l0aCBwdWJsaWMg
aU9TIFNESwpJbmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNw
cAkocmV2aXNpb24gMTk2MDMxKQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVz
b2x2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsMTkgKzExMCw0MCBAQCBzdGF0aWMgdm9p
ZCBlbnN1cmVQbGFjZWhvbGRlclN0eWxlKERvY3VtCiAKIFRyZWVSZXNvbHZlcjo6VHJlZVJlc29s
dmVyKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCi0gICAg
LCBtX3N0eWxlUmVzb2x2ZXIoZG9jdW1lbnQuZW5zdXJlU3R5bGVSZXNvbHZlcigpKQotICAgICwg
bV9zaGFyaW5nUmVzb2x2ZXIoZG9jdW1lbnQsIG1fc3R5bGVSZXNvbHZlci5ydWxlU2V0cygpLCBt
X3NlbGVjdG9yRmlsdGVyKQogewogICAgIGVuc3VyZVBsYWNlaG9sZGVyU3R5bGUoZG9jdW1lbnQp
OworCisgICAgbV9zY29wZVN0YWNrLmFwcGVuZChhZG9wdFJlZigqbmV3IFNjb3BlKGRvY3VtZW50
KSkpOworfQorCitUcmVlUmVzb2x2ZXI6OlNjb3BlOjpTY29wZShEb2N1bWVudCYgZG9jdW1lbnQp
CisgICAgOiBzdHlsZVJlc29sdmVyKGRvY3VtZW50LmVuc3VyZVN0eWxlUmVzb2x2ZXIoKSkKKyAg
ICAsIHNoYXJpbmdSZXNvbHZlcihkb2N1bWVudCwgc3R5bGVSZXNvbHZlci5ydWxlU2V0cygpLCBz
ZWxlY3RvckZpbHRlcikKK3sKK30KKworVHJlZVJlc29sdmVyOjpTY29wZTo6U2NvcGUoU2hhZG93
Um9vdCYgc2hhZG93Um9vdCwgU2NvcGUmIGVuY2xvc2luZ1Njb3BlKQorICAgIDogc3R5bGVSZXNv
bHZlcihzaGFkb3dSb290LnN0eWxlUmVzb2x2ZXIoKSkKKyAgICAsIHNoYXJpbmdSZXNvbHZlcihz
aGFkb3dSb290LmRvY3VtZW50U2NvcGUoKSwgc3R5bGVSZXNvbHZlci5ydWxlU2V0cygpLCBzZWxl
Y3RvckZpbHRlcikKKyAgICAsIHNoYWRvd1Jvb3QoJnNoYWRvd1Jvb3QpCisgICAgLCBlbmNsb3Np
bmdTY29wZSgmZW5jbG9zaW5nU2NvcGUpCit7CiB9CiAKLVRyZWVSZXNvbHZlcjo6VHJlZVJlc29s
dmVyKFNoYWRvd1Jvb3QmIHNoYWRvd1Jvb3QsIFRyZWVSZXNvbHZlciYgc2hhZG93SG9zdFRyZWVS
ZXNvbHZlcikKLSAgICA6IG1fZG9jdW1lbnQoc2hhZG93Um9vdC5kb2N1bWVudCgpKQotICAgICwg
bV9zdHlsZVJlc29sdmVyKHNoYWRvd1Jvb3Quc3R5bGVSZXNvbHZlcigpKQotICAgICwgbV9zaGFk
b3dSb290KCZzaGFkb3dSb290KQotICAgICwgbV9zaGFkb3dIb3N0VHJlZVJlc29sdmVyKCZzaGFk
b3dIb3N0VHJlZVJlc29sdmVyKQotICAgICwgbV9zaGFyaW5nUmVzb2x2ZXIobV9kb2N1bWVudCwg
bV9zdHlsZVJlc29sdmVyLnJ1bGVTZXRzKCksIG1fc2VsZWN0b3JGaWx0ZXIpCit2b2lkIFRyZWVS
ZXNvbHZlcjo6cHVzaFNjb3BlKFNoYWRvd1Jvb3QmIHNoYWRvd1Jvb3QpCiB7CisgICAgbV9zY29w
ZVN0YWNrLmFwcGVuZChhZG9wdFJlZigqbmV3IFNjb3BlKHNoYWRvd1Jvb3QsIHNjb3BlKCkpKSk7
Cit9CisKK3ZvaWQgVHJlZVJlc29sdmVyOjpwdXNoRW5jbG9zaW5nU2NvcGUoKQoreworICAgIEFT
U0VSVChzY29wZSgpLmVuY2xvc2luZ1Njb3BlKTsKKyAgICBtX3Njb3BlU3RhY2suYXBwZW5kKCpz
Y29wZSgpLmVuY2xvc2luZ1Njb3BlKTsKK30KKwordm9pZCBUcmVlUmVzb2x2ZXI6OnBvcFNjb3Bl
KCkKK3sKKyAgICByZXR1cm4gbV9zY29wZVN0YWNrLnJlbW92ZUxhc3QoKTsKIH0KIAogc3RhdGlj
IGJvb2wgc2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3Qg
UmVuZGVyRWxlbWVudCYgcGFyZW50UmVuZGVyZXIpCkBAIC0xNDgsMTAgKzE2OSwxMCBAQCBSZWY8
UmVuZGVyU3R5bGU+IFRyZWVSZXNvbHZlcjo6c3R5bGVGb3JFCiAgICAgICAgICAgICByZXR1cm4g
c3R5bGUucmVsZWFzZU5vbk51bGwoKTsKICAgICB9CiAKLSAgICBpZiAoYXV0byogc2hhcmluZ0Vs
ZW1lbnQgPSBtX3NoYXJpbmdSZXNvbHZlci5yZXNvbHZlKGVsZW1lbnQpKQorICAgIGlmIChhdXRv
KiBzaGFyaW5nRWxlbWVudCA9IHNjb3BlKCkuc2hhcmluZ1Jlc29sdmVyLnJlc29sdmUoZWxlbWVu
dCkpCiAgICAgICAgIHJldHVybiAqc2hhcmluZ0VsZW1lbnQtPnJlbmRlclN0eWxlKCk7CiAKLSAg
ICByZXR1cm4gbV9zdHlsZVJlc29sdmVyLnN0eWxlRm9yRWxlbWVudChlbGVtZW50LCAmaW5oZXJp
dGVkU3R5bGUsIE1hdGNoQWxsUnVsZXMsIG51bGxwdHIsICZtX3NlbGVjdG9yRmlsdGVyKTsKKyAg
ICByZXR1cm4gc2NvcGUoKS5zdHlsZVJlc29sdmVyLnN0eWxlRm9yRWxlbWVudChlbGVtZW50LCAm
aW5oZXJpdGVkU3R5bGUsIE1hdGNoQWxsUnVsZXMsIG51bGxwdHIsICZzY29wZSgpLnNlbGVjdG9y
RmlsdGVyKTsKIH0KIAogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKQEAgLTM2OSwxMSArMzkwLDEz
IEBAIHZvaWQgVHJlZVJlc29sdmVyOjpjcmVhdGVSZW5kZXJUcmVlRm9yU2gKICAgICBBU1NFUlQo
c2hhZG93Um9vdC5ob3N0KCkpOwogICAgIEFTU0VSVChzaGFkb3dSb290Lmhvc3QoKS0+cmVuZGVy
ZXIoKSk7CiAKLSAgICBUcmVlUmVzb2x2ZXIgc2hhZG93VHJlZVJlc29sdmVyKHNoYWRvd1Jvb3Qs
ICp0aGlzKTsKKyAgICBwdXNoU2NvcGUoc2hhZG93Um9vdCk7CiAKICAgICBhdXRvJiByZW5kZXJl
ciA9ICpzaGFkb3dSb290Lmhvc3QoKS0+cmVuZGVyZXIoKTsKICAgICBSZW5kZXJUcmVlUG9zaXRp
b24gcmVuZGVyVHJlZVBvc2l0aW9uKHJlbmRlcmVyKTsKLSAgICBzaGFkb3dUcmVlUmVzb2x2ZXIu
Y3JlYXRlUmVuZGVyVHJlZUZvckNoaWxkcmVuKHNoYWRvd1Jvb3QsIHJlbmRlcmVyLnN0eWxlKCks
IHJlbmRlclRyZWVQb3NpdGlvbik7CisgICAgY3JlYXRlUmVuZGVyVHJlZUZvckNoaWxkcmVuKHNo
YWRvd1Jvb3QsIHJlbmRlcmVyLnN0eWxlKCksIHJlbmRlclRyZWVQb3NpdGlvbik7CisKKyAgICBw
b3BTY29wZSgpOwogCiAgICAgc2hhZG93Um9vdC5jbGVhck5lZWRzU3R5bGVSZWNhbGMoKTsKICAg
ICBzaGFkb3dSb290LmNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CkBAIC00NTcsMTUgKzQ4
MCwxNiBAQCB2b2lkIFRyZWVSZXNvbHZlcjo6Y3JlYXRlUmVuZGVyVHJlZUZvckJlCiB2b2lkIFRy
ZWVSZXNvbHZlcjo6Y3JlYXRlUmVuZGVyVHJlZUZvclNsb3RBc3NpZ25lZXMoSFRNTFNsb3RFbGVt
ZW50JiBzbG90LCBSZW5kZXJTdHlsZSYgaW5oZXJpdGVkU3R5bGUsIFJlbmRlclRyZWVQb3NpdGlv
biYgcmVuZGVyVHJlZVBvc2l0aW9uKQogewogICAgIGlmIChhdXRvKiBhc3NpZ25lZE5vZGVzID0g
c2xvdC5hc3NpZ25lZE5vZGVzKCkpIHsKLSAgICAgICAgQVNTRVJUKG1fc2hhZG93SG9zdFRyZWVS
ZXNvbHZlcik7CisgICAgICAgIHB1c2hFbmNsb3NpbmdTY29wZSgpOwogICAgICAgICBmb3IgKGF1
dG8qIGNoaWxkIDogKmFzc2lnbmVkTm9kZXMpIHsKICAgICAgICAgICAgIGlmIChpczxUZXh0Pigq
Y2hpbGQpKQogICAgICAgICAgICAgICAgIGF0dGFjaFRleHRSZW5kZXJlcihkb3duY2FzdDxUZXh0
PigqY2hpbGQpLCByZW5kZXJUcmVlUG9zaXRpb24pOwogICAgICAgICAgICAgZWxzZSBpZiAoaXM8
RWxlbWVudD4oKmNoaWxkKSkKLSAgICAgICAgICAgICAgICBtX3NoYWRvd0hvc3RUcmVlUmVzb2x2
ZXItPmNyZWF0ZVJlbmRlclRyZWVSZWN1cnNpdmVseShkb3duY2FzdDxFbGVtZW50PigqY2hpbGQp
LCBpbmhlcml0ZWRTdHlsZSwgcmVuZGVyVHJlZVBvc2l0aW9uLCBudWxscHRyKTsKKyAgICAgICAg
ICAgICAgICBjcmVhdGVSZW5kZXJUcmVlUmVjdXJzaXZlbHkoZG93bmNhc3Q8RWxlbWVudD4oKmNo
aWxkKSwgaW5oZXJpdGVkU3R5bGUsIHJlbmRlclRyZWVQb3NpdGlvbiwgbnVsbHB0cik7CiAgICAg
ICAgIH0KKyAgICAgICAgcG9wU2NvcGUoKTsKICAgICB9IGVsc2UgewotICAgICAgICBTZWxlY3Rv
ckZpbHRlclB1c2hlciBzZWxlY3RvckZpbHRlclB1c2hlcihtX3NlbGVjdG9yRmlsdGVyLCBzbG90
KTsKKyAgICAgICAgU2VsZWN0b3JGaWx0ZXJQdXNoZXIgc2VsZWN0b3JGaWx0ZXJQdXNoZXIoc2Nv
cGUoKS5zZWxlY3RvckZpbHRlciwgc2xvdCk7CiAgICAgICAgIGNyZWF0ZVJlbmRlclRyZWVGb3JD
aGlsZHJlbihzbG90LCBpbmhlcml0ZWRTdHlsZSwgcmVuZGVyVHJlZVBvc2l0aW9uKTsKICAgICB9
CiAKQEAgLTQ5Miw3ICs1MTYsNyBAQCB2b2lkIFRyZWVSZXNvbHZlcjo6Y3JlYXRlUmVuZGVyVHJl
ZVJlY3VyCiAgICAgY3JlYXRlUmVuZGVyZXIoY3VycmVudCwgaW5oZXJpdGVkU3R5bGUsIHJlbmRl
clRyZWVQb3NpdGlvbiwgV1RGTW92ZShyZXNvbHZlZFN0eWxlKSk7CiAKICAgICBpZiAoYXV0byog
cmVuZGVyZXIgPSBjdXJyZW50LnJlbmRlcmVyKCkpIHsKLSAgICAgICAgU2VsZWN0b3JGaWx0ZXJQ
dXNoZXIgc2VsZWN0b3JGaWx0ZXJQdXNoZXIobV9zZWxlY3RvckZpbHRlciwgY3VycmVudCwgU2Vs
ZWN0b3JGaWx0ZXJQdXNoZXI6Ok5vUHVzaCk7CisgICAgICAgIFNlbGVjdG9yRmlsdGVyUHVzaGVy
IHNlbGVjdG9yRmlsdGVyUHVzaGVyKHNjb3BlKCkuc2VsZWN0b3JGaWx0ZXIsIGN1cnJlbnQsIFNl
bGVjdG9yRmlsdGVyUHVzaGVyOjpOb1B1c2gpOwogCiAgICAgICAgIFJlbmRlclRyZWVQb3NpdGlv
biBjaGlsZFJlbmRlclRyZWVQb3NpdGlvbigqcmVuZGVyZXIpOwogICAgICAgICBjcmVhdGVSZW5k
ZXJUcmVlRm9yQmVmb3JlT3JBZnRlclBzZXVkb0VsZW1lbnQoY3VycmVudCwgQkVGT1JFLCBjaGls
ZFJlbmRlclRyZWVQb3NpdGlvbik7CkBAIC02NTcsNyArNjgxLDcgQEAgQ2hhbmdlIFRyZWVSZXNv
bHZlcjo6cmVzb2x2ZUxvY2FsbHkoRWxlbQogICAgIC8vIGFsbCB0aGUgd2F5IGRvd24gdGhlIHRy
ZWUuIFRoaXMgaXMgc2ltcGxlciB0aGFuIGhhdmluZyB0byBtYWludGFpbiBhIGNhY2hlIG9mIG9i
amVjdHMgKGFuZCBzdWNoIGZvbnQgc2l6ZSBjaGFuZ2VzIHNob3VsZCBiZSByYXJlIGFueXdheSku
CiAgICAgaWYgKG1fZG9jdW1lbnQuYXV0aG9yU3R5bGVTaGVldHMoKS51c2VzUmVtVW5pdHMoKSAm
JiBtX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpID09ICZjdXJyZW50ICYmIGxvY2FsQ2hhbmdl
ICE9IE5vQ2hhbmdlICYmIGN1cnJlbnRTdHlsZSAmJiBuZXdTdHlsZSAmJiBjdXJyZW50U3R5bGUt
PmZvbnRTaXplKCkgIT0gbmV3U3R5bGUtPmZvbnRTaXplKCkpIHsKICAgICAgICAgLy8gQ2FjaGVk
IFJlbmRlclN0eWxlcyBtYXkgZGVwZW5kIG9uIHRoZSByZSB1bml0cy4KLSAgICAgICAgbV9zdHls
ZVJlc29sdmVyLmludmFsaWRhdGVNYXRjaGVkUHJvcGVydGllc0NhY2hlKCk7CisgICAgICAgIHNj
b3BlKCkuc3R5bGVSZXNvbHZlci5pbnZhbGlkYXRlTWF0Y2hlZFByb3BlcnRpZXNDYWNoZSgpOwog
ICAgICAgICByZXR1cm4gRm9yY2U7CiAgICAgfQogICAgIGlmIChpbmhlcml0ZWRDaGFuZ2UgPT0g
Rm9yY2UpCkBAIC03MDIsMTcgKzcyNiwxNyBAQCB2b2lkIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUNo
aWxkQXRTaGFkb3dCCiAKIHZvaWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlU2hhZG93VHJlZShTdHls
ZTo6Q2hhbmdlIGNoYW5nZSwgUmVuZGVyU3R5bGUmIGluaGVyaXRlZFN0eWxlKQogewotICAgIEFT
U0VSVChtX3NoYWRvd1Jvb3QpOwotICAgIGF1dG8mIGhvc3QgPSAqbV9zaGFkb3dSb290LT5ob3N0
KCk7CisgICAgQVNTRVJUKHNjb3BlKCkuc2hhZG93Um9vdCk7CisgICAgYXV0byYgaG9zdCA9ICpz
Y29wZSgpLnNoYWRvd1Jvb3QtPmhvc3QoKTsKICAgICBBU1NFUlQoaG9zdC5yZW5kZXJlcigpKTsK
LSAgICBpZiAobV9zaGFkb3dSb290LT5zdHlsZUNoYW5nZVR5cGUoKSA+PSBGdWxsU3R5bGVDaGFu
Z2UpCisgICAgaWYgKHNjb3BlKCkuc2hhZG93Um9vdC0+c3R5bGVDaGFuZ2VUeXBlKCkgPj0gRnVs
bFN0eWxlQ2hhbmdlKQogICAgICAgICBjaGFuZ2UgPSBGb3JjZTsKICAgICBSZW5kZXJUcmVlUG9z
aXRpb24gcmVuZGVyVHJlZVBvc2l0aW9uKCpob3N0LnJlbmRlcmVyKCkpOwotICAgIGZvciAoYXV0
byogY2hpbGQgPSBtX3NoYWRvd1Jvb3QtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hp
bGQtPm5leHRTaWJsaW5nKCkpCisgICAgZm9yIChhdXRvKiBjaGlsZCA9IHNjb3BlKCkuc2hhZG93
Um9vdC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkK
ICAgICAgICAgcmVzb2x2ZUNoaWxkQXRTaGFkb3dCb3VuZGFyeSgqY2hpbGQsIGluaGVyaXRlZFN0
eWxlLCByZW5kZXJUcmVlUG9zaXRpb24sIGNoYW5nZSk7CiAKLSAgICBtX3NoYWRvd1Jvb3QtPmNs
ZWFyTmVlZHNTdHlsZVJlY2FsYygpOwotICAgIG1fc2hhZG93Um9vdC0+Y2xlYXJDaGlsZE5lZWRz
U3R5bGVSZWNhbGMoKTsKKyAgICBzY29wZSgpLnNoYWRvd1Jvb3QtPmNsZWFyTmVlZHNTdHlsZVJl
Y2FsYygpOworICAgIHNjb3BlKCkuc2hhZG93Um9vdC0+Y2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNh
bGMoKTsKIH0KIAogdm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVCZWZvcmVPckFmdGVyUHNldWRv
RWxlbWVudChFbGVtZW50JiBjdXJyZW50LCBDaGFuZ2UgY2hhbmdlLCBQc2V1ZG9JZCBwc2V1ZG9J
ZCwgUmVuZGVyVHJlZVBvc2l0aW9uJiByZW5kZXJUcmVlUG9zaXRpb24pCkBAIC03ODcsNyArODEx
LDcgQEAgcHJpdmF0ZToKIAogdm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVDaGlsZHJlbihFbGVt
ZW50JiBjdXJyZW50LCBSZW5kZXJTdHlsZSYgaW5oZXJpdGVkU3R5bGUsIENoYW5nZSBjaGFuZ2Us
IFJlbmRlclRyZWVQb3NpdGlvbiYgY2hpbGRSZW5kZXJUcmVlUG9zaXRpb24pCiB7Ci0gICAgU2Vs
ZWN0b3JGaWx0ZXJQdXNoZXIgc2VsZWN0b3JGaWx0ZXJQdXNoZXIobV9zZWxlY3RvckZpbHRlciwg
Y3VycmVudCwgU2VsZWN0b3JGaWx0ZXJQdXNoZXI6Ok5vUHVzaCk7CisgICAgU2VsZWN0b3JGaWx0
ZXJQdXNoZXIgc2VsZWN0b3JGaWx0ZXJQdXNoZXIoc2NvcGUoKS5zZWxlY3RvckZpbHRlciwgY3Vy
cmVudCwgU2VsZWN0b3JGaWx0ZXJQdXNoZXI6Ok5vUHVzaCk7CiAKICAgICBib29sIGVsZW1lbnRO
ZWVkaW5nU3R5bGVSZWNhbGNBZmZlY3RzTmV4dFNpYmxpbmdFbGVtZW50U3R5bGUgPSBmYWxzZTsK
ICAgICBmb3IgKE5vZGUqIGNoaWxkID0gY3VycmVudC5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CkBAIC04MTgsOSArODQyLDEwIEBAIHZvaWQgVHJl
ZVJlc29sdmVyOjpyZXNvbHZlQ2hpbGRyZW4oRWxlbWUKIHZvaWQgVHJlZVJlc29sdmVyOjpyZXNv
bHZlU2xvdEFzc2lnbmVlcyhIVE1MU2xvdEVsZW1lbnQmIHNsb3QsIFJlbmRlclN0eWxlJiBpbmhl
cml0ZWRTdHlsZSwgUmVuZGVyVHJlZVBvc2l0aW9uJiByZW5kZXJUcmVlUG9zaXRpb24sIENoYW5n
ZSBjaGFuZ2UpCiB7CiAgICAgaWYgKGF1dG8qIGFzc2lnbmVkTm9kZXMgPSBzbG90LmFzc2lnbmVk
Tm9kZXMoKSkgewotICAgICAgICBBU1NFUlQobV9zaGFkb3dIb3N0VHJlZVJlc29sdmVyKTsKKyAg
ICAgICAgcHVzaEVuY2xvc2luZ1Njb3BlKCk7CiAgICAgICAgIGZvciAoYXV0byogY2hpbGQgOiAq
YXNzaWduZWROb2RlcykKLSAgICAgICAgICAgIG1fc2hhZG93SG9zdFRyZWVSZXNvbHZlci0+cmVz
b2x2ZUNoaWxkQXRTaGFkb3dCb3VuZGFyeSgqY2hpbGQsIGluaGVyaXRlZFN0eWxlLCByZW5kZXJU
cmVlUG9zaXRpb24sIGNoYW5nZSk7CisgICAgICAgICAgICByZXNvbHZlQ2hpbGRBdFNoYWRvd0Jv
dW5kYXJ5KCpjaGlsZCwgaW5oZXJpdGVkU3R5bGUsIHJlbmRlclRyZWVQb3NpdGlvbiwgY2hhbmdl
KTsKKyAgICAgICAgcG9wU2NvcGUoKTsKICAgICB9IGVsc2UKICAgICAgICAgcmVzb2x2ZUNoaWxk
cmVuKHNsb3QsIGluaGVyaXRlZFN0eWxlLCBjaGFuZ2UsIHJlbmRlclRyZWVQb3NpdGlvbik7CiAK
QEAgLTg2MCwxMCArODg1LDExIEBAIHZvaWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlUmVjdXJzaXZl
bHkoRWwKICAgICBpZiAoY2hhbmdlICE9IERldGFjaCAmJiByZW5kZXJlcikgewogICAgICAgICBh
dXRvKiBzaGFkb3dSb290ID0gY3VycmVudC5zaGFkb3dSb290KCk7CiAgICAgICAgIGlmIChzaGFk
b3dSb290ICYmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBzaGFkb3dSb290LT5jaGlsZE5lZWRzU3R5
bGVSZWNhbGMoKSB8fCBzaGFkb3dSb290LT5uZWVkc1N0eWxlUmVjYWxjKCkpKSB7Ci0gICAgICAg
ICAgICBTZWxlY3RvckZpbHRlclB1c2hlciBzZWxlY3RvckZpbHRlclB1c2hlcihtX3NlbGVjdG9y
RmlsdGVyLCBjdXJyZW50KTsKKyAgICAgICAgICAgIFNlbGVjdG9yRmlsdGVyUHVzaGVyIHNlbGVj
dG9yRmlsdGVyUHVzaGVyKHNjb3BlKCkuc2VsZWN0b3JGaWx0ZXIsIGN1cnJlbnQpOwogCi0gICAg
ICAgICAgICBUcmVlUmVzb2x2ZXIgc2hhZG93VHJlZVJlc29sdmVyKCpzaGFkb3dSb290LCAqdGhp
cyk7Ci0gICAgICAgICAgICBzaGFkb3dUcmVlUmVzb2x2ZXIucmVzb2x2ZVNoYWRvd1RyZWUoY2hh
bmdlLCByZW5kZXJlci0+c3R5bGUoKSk7CisgICAgICAgICAgICBwdXNoU2NvcGUoKnNoYWRvd1Jv
b3QpOworICAgICAgICAgICAgcmVzb2x2ZVNoYWRvd1RyZWUoY2hhbmdlLCByZW5kZXJlci0+c3R5
bGUoKSk7CisgICAgICAgICAgICBwb3BTY29wZSgpOwogICAgICAgICB9CiAKICAgICAgICAgUmVu
ZGVyVHJlZVBvc2l0aW9uIGNoaWxkUmVuZGVyVHJlZVBvc2l0aW9uKCpyZW5kZXJlcik7CkBAIC04
ODcsNyArOTEzLDcgQEAgdm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVSZWN1cnNpdmVseShFbAog
CiB2b2lkIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZShDaGFuZ2UgY2hhbmdlKQogewotICAgIEFTU0VS
VCghbV9zaGFkb3dSb290KTsKKyAgICBBU1NFUlQoIXNjb3BlKCkuc2hhZG93Um9vdCk7CiAKICAg
ICBhdXRvJiByZW5kZXJWaWV3ID0gKm1fZG9jdW1lbnQucmVuZGVyVmlldygpOwogCkBAIC04OTgs
MTQgKzkyNCwxNCBAQCB2b2lkIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZShDaGFuZ2UgY2hhbmdlCiAg
ICAgICAgIHJldHVybjsKIAogICAgIC8vIFBzZXVkbyBlbGVtZW50IHJlbW92YWwgYW5kIHNpbWls
YXIgbWF5IG9ubHkgd29yayB3aXRoIHRoZXNlIGZsYWdzIHN0aWxsIHNldC4gUmVzZXQgdGhlbSBh
ZnRlciB0aGUgc3R5bGUgcmVjYWxjLgotICAgIHJlbmRlclZpZXcuc2V0VXNlc0ZpcnN0TGluZVJ1
bGVzKHJlbmRlclZpZXcudXNlc0ZpcnN0TGluZVJ1bGVzKCkgfHwgbV9zdHlsZVJlc29sdmVyLnVz
ZXNGaXJzdExpbmVSdWxlcygpKTsKLSAgICByZW5kZXJWaWV3LnNldFVzZXNGaXJzdExldHRlclJ1
bGVzKHJlbmRlclZpZXcudXNlc0ZpcnN0TGV0dGVyUnVsZXMoKSB8fCBtX3N0eWxlUmVzb2x2ZXIu
dXNlc0ZpcnN0TGV0dGVyUnVsZXMoKSk7CisgICAgcmVuZGVyVmlldy5zZXRVc2VzRmlyc3RMaW5l
UnVsZXMocmVuZGVyVmlldy51c2VzRmlyc3RMaW5lUnVsZXMoKSB8fCBzY29wZSgpLnN0eWxlUmVz
b2x2ZXIudXNlc0ZpcnN0TGluZVJ1bGVzKCkpOworICAgIHJlbmRlclZpZXcuc2V0VXNlc0ZpcnN0
TGV0dGVyUnVsZXMocmVuZGVyVmlldy51c2VzRmlyc3RMZXR0ZXJSdWxlcygpIHx8IHNjb3BlKCku
c3R5bGVSZXNvbHZlci51c2VzRmlyc3RMZXR0ZXJSdWxlcygpKTsKIAogICAgIFJlbmRlclRyZWVQ
b3NpdGlvbiByZW5kZXJUcmVlUG9zaXRpb24ocmVuZGVyVmlldyk7CiAgICAgcmVzb2x2ZVJlY3Vy
c2l2ZWx5KCpkb2N1bWVudEVsZW1lbnQsICptX2RvY3VtZW50LnJlbmRlclN0eWxlKCksIHJlbmRl
clRyZWVQb3NpdGlvbiwgY2hhbmdlKTsKIAotICAgIHJlbmRlclZpZXcuc2V0VXNlc0ZpcnN0TGlu
ZVJ1bGVzKG1fc3R5bGVSZXNvbHZlci51c2VzRmlyc3RMaW5lUnVsZXMoKSk7Ci0gICAgcmVuZGVy
Vmlldy5zZXRVc2VzRmlyc3RMZXR0ZXJSdWxlcyhtX3N0eWxlUmVzb2x2ZXIudXNlc0ZpcnN0TGV0
dGVyUnVsZXMoKSk7CisgICAgcmVuZGVyVmlldy5zZXRVc2VzRmlyc3RMaW5lUnVsZXMoc2NvcGUo
KS5zdHlsZVJlc29sdmVyLnVzZXNGaXJzdExpbmVSdWxlcygpKTsKKyAgICByZW5kZXJWaWV3LnNl
dFVzZXNGaXJzdExldHRlclJ1bGVzKHNjb3BlKCkuc3R5bGVSZXNvbHZlci51c2VzRmlyc3RMZXR0
ZXJSdWxlcygpKTsKIH0KIAogdm9pZCBkZXRhY2hSZW5kZXJUcmVlKEVsZW1lbnQmIGVsZW1lbnQp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgJKHJldmlzaW9u
IDE5NjAzMSkKKysrIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTU2LDggKzU2LDYgQEAgcHVibGljOgogICAgIHZvaWQgcmVzb2x2ZShD
aGFuZ2UpOwogCiBwcml2YXRlOgotICAgIFRyZWVSZXNvbHZlcihTaGFkb3dSb290JiwgVHJlZVJl
c29sdmVyJiBzaGFkb3dIb3N0VHJlZVJlc29sdmVyKTsKLQogICAgIHZvaWQgcmVzb2x2ZVNoYWRv
d1RyZWUoQ2hhbmdlLCBSZW5kZXJTdHlsZSYgaW5oZXJpdGVkU3R5bGUpOwogCiAgICAgUmVmPFJl
bmRlclN0eWxlPiBzdHlsZUZvckVsZW1lbnQoRWxlbWVudCYsIFJlbmRlclN0eWxlJiBpbmhlcml0
ZWRTdHlsZSk7CkBAIC03OSwxNCArNzcsMjMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZVJl
bmRlclRyZWVGb3JTbG90QXNzaWduZWVzKEhUTUxTbG90RWxlbWVudCYsIFJlbmRlclN0eWxlJiBp
bmhlcml0ZWRTdHlsZSwgUmVuZGVyVHJlZVBvc2l0aW9uJik7CiAjZW5kaWYKIAotICAgIERvY3Vt
ZW50JiBtX2RvY3VtZW50OwotICAgIFN0eWxlUmVzb2x2ZXImIG1fc3R5bGVSZXNvbHZlcjsKLQot
ICAgIFNoYWRvd1Jvb3QqIG1fc2hhZG93Um9vdCB7IG51bGxwdHIgfTsKLSAgICBUcmVlUmVzb2x2
ZXIqIG1fc2hhZG93SG9zdFRyZWVSZXNvbHZlciB7IG51bGxwdHIgfTsKKyAgICBzdHJ1Y3QgU2Nv
cGUgOiBSZWZDb3VudGVkPFNjb3BlPiB7CisgICAgICAgIFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVz
b2x2ZXI7CisgICAgICAgIFNlbGVjdG9yRmlsdGVyIHNlbGVjdG9yRmlsdGVyOworICAgICAgICBT
aGFyaW5nUmVzb2x2ZXIgc2hhcmluZ1Jlc29sdmVyOworICAgICAgICBTaGFkb3dSb290KiBzaGFk
b3dSb290IHsgbnVsbHB0ciB9OworICAgICAgICBTY29wZSogZW5jbG9zaW5nU2NvcGUgeyBudWxs
cHRyIH07CisKKyAgICAgICAgU2NvcGUoRG9jdW1lbnQmKTsKKyAgICAgICAgU2NvcGUoU2hhZG93
Um9vdCYsIFNjb3BlJiBlbmNsb3NpbmdTY29wZSk7CisgICAgfTsKKyAgICBTY29wZSYgc2NvcGUo
KSB7IHJldHVybiBtX3Njb3BlU3RhY2subGFzdCgpOyB9CisgICAgdm9pZCBwdXNoU2NvcGUoU2hh
ZG93Um9vdCYpOworICAgIHZvaWQgcHVzaEVuY2xvc2luZ1Njb3BlKCk7CisgICAgdm9pZCBwb3BT
Y29wZSgpOwogCi0gICAgU2VsZWN0b3JGaWx0ZXIgbV9zZWxlY3RvckZpbHRlcjsKLSAgICBTaGFy
aW5nUmVzb2x2ZXIgbV9zaGFyaW5nUmVzb2x2ZXI7CisgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7
CisgICAgVmVjdG9yPFJlZjxTY29wZT4sIDQ+IG1fc2NvcGVTdGFjazsKIH07CiAKIHZvaWQgZGV0
YWNoUmVuZGVyVHJlZShFbGVtZW50Jik7Cg==
</data>
<flag name="review"
          id="295584"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>