<?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>134828</bug_id>
          
          <creation_ts>2014-07-11 01:39:15 -0700</creation_ts>
          <short_desc>Partition the CSS rules based on the most specific filter of the rightmost fragment</short_desc>
          <delta_ts>2014-07-11 22:09:25 -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>New Bugs</component>
          <version>528+ (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="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1021794</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-07-11 01:39:15 -0700</bug_when>
    <thetext>Partition the CSS rules based on the most specific filter of the rightmost fragment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021797</commentid>
    <comment_count>1</comment_count>
      <attachid>234748</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-07-11 01:49:13 -0700</bug_when>
    <thetext>Created attachment 234748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021934</commentid>
    <comment_count>2</comment_count>
      <attachid>234748</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-07-11 16:27:33 -0700</bug_when>
    <thetext>Comment on attachment 234748
Patch

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

Pretty clever! r=me

&gt; Source/WebCore/css/RuleSet.cpp:218
&gt; +            } else {

This should be else if (classBucketSize)... since a completely empty class bucket is strongly preferable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021955</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-07-11 22:09:25 -0700</bug_when>
    <thetext>Committed r171020: &lt;http://trac.webkit.org/changeset/171020&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234748</attachid>
            <date>2014-07-11 01:49:13 -0700</date>
            <delta_ts>2014-07-11 16:27:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134828-20140711014855.patch</filename>
            <type>text/plain</type>
            <size>14590</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwOTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDI1MTc1OGVjN2JhOGIx
MDY5YzU2YjRjMzFiYjhhYjEyYWI5YjY2MS4uZjc2NDUyOTlhYjE0YzI2Njc3OGY4MmY1NWU5YWRh
MTFkOTJhYzY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTA3LTExICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQYXJ0aXRpb24g
dGhlIENTUyBydWxlcyBiYXNlZCBvbiB0aGUgbW9zdCBzcGVjaWZpYyBmaWx0ZXIgb2YgdGhlIHJp
Z2h0bW9zdCBmcmFnbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM0ODI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUHJldmlvdXNseSwgUnVsZVNldCB3YXMgcGFydGl0aW9uaW5nIGVhY2ggcnVsZSBi
YXNlZCBvbiB0aGUgcmlnaHRtb3N0IGZpbHRlci4KKyAgICAgICAgV2hpbGUgZmFzdCwgdGhpcyBo
YWQgdGhlIHNpZGUgZWZmZWN0IG9mIHB1dHRpbmcgbWFueSBzZWxlY3RvcnMgd2l0aCBJRCBtYXRj
aCBpbiB0aGUgY2xhc3MKKyAgICAgICAgYnVja2V0IChiZWNhdXNlIHRoZSBzZWxlY3RvcnMgYXJl
IGdlbmVyYWxseSB3cml0dGVuIHN0YXJ0aW5nIHdpdGggdGhlIElEKS4KKworICAgICAgICBUaGlz
IHBhdGNoIHJlcGxhY2UgdGhlIGNvZGUgb2YgZmluZEJlc3RSdWxlU2V0QW5kQWRkKCkgYnkgYSBz
aW1wbGUgbG9vcCBnb2luZyBvdmVyIGFsbAorICAgICAgICB0aGUgc2ltcGxlIHNlbGVjdG9ycyBp
biB0aGUgcmlnaHRtb3N0IGZyYWdtZW50IHRvIGZpbmQgdGhlIGJlc3QgYnVja2V0LgorCisgICAg
ICAgICogY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyk6CisgICAgICAgICogY3NzL1J1bGVTZXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNTZWxlY3Rvck1hdGNoaW5nSFRNTEJhc2VkT25SdWxl
SGFzaCk6CisgICAgICAgIEkgdW5pZmllZCBydWxlRGF0YS5oYXNSaWdodG1vc3RTZWxlY3Rvck1h
dGNoaW5nSFRNTEJhc2VkT25SdWxlSGFzaCgpIGFuZCBoYXNNdWx0aXBhcnRTZWxlY3RvcigpLgor
CisgICAgICAgIChXZWJDb3JlOjpSdWxlRGF0YTo6UnVsZURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6cnVsZXNDb3VudEZvck5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6UnVsZVNldDo6YWRkUnVs
ZSk6CisgICAgICAgIEkgcmVtb3ZlZCB0aGUgcmVjdXJzaXZlIHBhcnQgb2YgZmluZEJlc3RSdWxl
U2V0QW5kQWRkKCkgKHdoaWNoIHdhcyB3cm9uZyBhbnl3YXkpLiBUaGUgZnVuY3Rpb24KKyAgICAg
ICAgd2FzIHVzZWxlc3Mgc28gSSBqdXN0IG1vdmVkIHRoZSBhbGdvcml0aG0gdG8gYWRkUnVsZSgp
IGRpcmVjdGx5LgorCisgICAgICAgIFdlIGZpcnN0IGxvb3Agb3ZlciBhbGwgdGhlIENTU1NlbGVj
dG9ycyByZWxhdGVkIGJ5IFN1YlNlbGVjdG9yLCB0aGlzIGNvcnJlc3BvbmQgdG8gdGhlIHJpZ2h0
bW9zdCBmcmFnbWVudC4KKyAgICAgICAgSWYgYSBmaWx0ZXIgd2l0aCBoaWdoIHNwZWNpZmljaXR5
IGlzIGZvdW5kLCB3ZSBhZGQgdGhlIHJ1bGUgaW1tZWRpYXRlbHkgYW5kIGVuZCB0aGVyZS4KKyAg
ICAgICAgSWYgYSBmaWx0ZXIgdGhhdCBpcyBub3QgdmVyeSBzcGVjaWZpYyBpcyBmb3VuZCwgd2Ug
a2VlcCBhIHBvaW50ZXIgdG8gdGhlIHNlbGVjdG9yIHRvIHVzZSBpdCBsYXRlci4KKworICAgICAg
ICAoV2ViQ29yZTo6UnVsZVNldDo6ZmluZEJlc3RSdWxlU2V0QW5kQWRkKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBjc3MvUnVsZVNldC5oOgorICAgICAgICAoV2ViQ29yZTo6UnVsZURhdGE6Omhhc011
bHRpcGFydFNlbGVjdG9yKTogRGVsZXRlZC4KKwogMjAxNC0wNy0wOCAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRE9NV2luZG93cyBzaG91bGQgcmVnaXN0ZXIg
dGhlbXNlbHZlcyB3aXRoIHRoZSBHYW1lcGFkTWFuYWdlciB3aGVuIHRoZXkgaGF2ZSBldmVudCBs
aXN0ZW5lcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxl
Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCmlu
ZGV4IDVkYjUyMmZkYTZhMGRjNmIzZWQ4OTdjNTY3NzVkODU4MDUwN2JkNDMuLmI4ZGNhNjk4ZTEy
ZTJkZWIwOGQyMDAwZDg2OTYxZjRiYTM3NzQ1ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0Vs
ZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApAQCAtMjgwLDEwICsyODAsOCBAQCBpbmxpbmUgYm9vbCBF
bGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRh
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAvLyBXZSBrbm93IGEgc3VmZmlj
aWVudGx5IHNpbXBsZSBzaW5nbGUgcGFydCBzZWxlY3RvciBtYXRjaGVzIHNpbXBseSBiZWNhdXNl
IHdlIGZvdW5kIGl0IGZyb20gdGhlIHJ1bGUgaGFzaC4KICAgICAgICAgLy8gVGhpcyBpcyBsaW1p
dGVkIHRvIEhUTUwgb25seSBzbyB3ZSBkb24ndCBuZWVkIHRvIGNoZWNrIHRoZSBuYW1lc3BhY2Uu
Ci0gICAgICAgIGlmIChydWxlRGF0YS5oYXNSaWdodG1vc3RTZWxlY3Rvck1hdGNoaW5nSFRNTEJh
c2VkT25SdWxlSGFzaCgpICYmIG1fZWxlbWVudC5pc0hUTUxFbGVtZW50KCkpIHsKLSAgICAgICAg
ICAgIGlmICghcnVsZURhdGEuaGFzTXVsdGlwYXJ0U2VsZWN0b3IoKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgICAgICBpZiAocnVsZURhdGEuaGFzUmlnaHRt
b3N0U2VsZWN0b3JNYXRjaGluZ0hUTUxCYXNlZE9uUnVsZUhhc2goKSAmJiBtX2VsZW1lbnQuaXNI
VE1MRWxlbWVudCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAjaWYgRU5B
QkxFKENTU19TRUxFQ1RPUl9KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVs
ZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKaW5kZXggNzc3ZTcyZTli
NjE0ZTQxNWNlYzgxNzVlMzU4NjY0MjkwNjkwZTE5MS4uNmVkMzYzMTIxMTJhNmUzYWE5M2ViY2Zk
YzU0OGYyNTM3Zjg3MTZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcApAQCAtMiw3ICsyLDcgQEAK
ICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAg
ICAgICAgIChDKSAyMDA0LTIwMDUgQWxsYW4gU2FuZGZlbGQgSmVuc2VuIChrZGVAY2FyZXdvbGYu
Y29tKQogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IE5pY2hvbGFzIFNoYW5rcyAod2Via2l0
QG5pY2tzaGFua3MuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4
LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAwNyBBbGV4ZXkgUHJvc2t1cnlha292IDxhcEB3ZWJraXQu
b3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtp
dC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKQEAgLTU0LDIw
ICs1NCwxOCBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1z
dGF0aWMgaW5saW5lIGJvb2wgaXNTZWxlY3Rvck1hdGNoaW5nSFRNTEJhc2VkT25SdWxlSGFzaChj
b25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCitzdGF0aWMgaW5saW5lIGJvb2wgaXNTZWxlY3Rv
ck1hdGNoaW5nSFRNTEJhc2VkT25SdWxlSGFzaChjb25zdCBDU1NTZWxlY3RvciYgc2VsZWN0b3Ip
CiB7Ci0gICAgQVNTRVJUKHNlbGVjdG9yKTsKLSAgICBpZiAoc2VsZWN0b3ItPm1fbWF0Y2ggPT0g
Q1NTU2VsZWN0b3I6OlRhZykgewotICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdG9y
TmFtZXNwYWNlID0gc2VsZWN0b3ItPnRhZ1FOYW1lKCkubmFtZXNwYWNlVVJJKCk7Ci0gICAgICAg
IGlmIChzZWxlY3Rvck5hbWVzcGFjZSAhPSBzdGFyQXRvbSAmJiBzZWxlY3Rvck5hbWVzcGFjZSAh
PSB4aHRtbE5hbWVzcGFjZVVSSSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
aWYgKHNlbGVjdG9yLT5yZWxhdGlvbigpID09IENTU1NlbGVjdG9yOjpTdWJTZWxlY3RvcikKLSAg
ICAgICAgICAgIHJldHVybiBpc1NlbGVjdG9yTWF0Y2hpbmdIVE1MQmFzZWRPblJ1bGVIYXNoKHNl
bGVjdG9yLT50YWdIaXN0b3J5KCkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoc2Vs
ZWN0b3IudGFnSGlzdG9yeSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoc2Vs
ZWN0b3IubV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6VGFnKSB7CisgICAgICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgc2VsZWN0b3JOYW1lc3BhY2UgPSBzZWxlY3Rvci50YWdRTmFtZSgpLm5hbWVzcGFj
ZVVSSSgpOworICAgICAgICByZXR1cm4gc2VsZWN0b3JOYW1lc3BhY2UgPT0gc3RhckF0b20gfHwg
c2VsZWN0b3JOYW1lc3BhY2UgPT0geGh0bWxOYW1lc3BhY2VVUkk7CiAgICAgfQotICAgIGlmIChT
ZWxlY3RvckNoZWNrZXI6OmlzQ29tbW9uUHNldWRvQ2xhc3NTZWxlY3RvcihzZWxlY3RvcikpCisg
ICAgaWYgKFNlbGVjdG9yQ2hlY2tlcjo6aXNDb21tb25Qc2V1ZG9DbGFzc1NlbGVjdG9yKCZzZWxl
Y3RvcikpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBzZWxlY3Rvci0+bV9tYXRj
aCA9PSBDU1NTZWxlY3Rvcjo6SWQgfHwgc2VsZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6
OkNsYXNzOworICAgIHJldHVybiBzZWxlY3Rvci5tX21hdGNoID09IENTU1NlbGVjdG9yOjpJZCB8
fCBzZWxlY3Rvci5tX21hdGNoID09IENTU1NlbGVjdG9yOjpDbGFzczsKIH0KIAogc3RhdGljIGlu
bGluZSBib29sIHNlbGVjdG9yTGlzdENvbnRhaW5zVW5jb21tb25BdHRyaWJ1dGVTZWxlY3Rvcihj
b25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCkBAIC0xMzQsOCArMTMyLDcgQEAgUnVsZURhdGE6
OlJ1bGVEYXRhKFN0eWxlUnVsZSogcnVsZSwgdW5zaWduZWQgc2VsZWN0b3JJbmRleCwgdW5zaWdu
ZWQgcG9zaXRpb24sIEEKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgLCBtX2hhc0Zh
c3RDaGVja2FibGVTZWxlY3RvcigoYWRkUnVsZUZsYWdzICYgUnVsZUNhblVzZUZhc3RDaGVja1Nl
bGVjdG9yKSAmJiBTZWxlY3RvckNoZWNrZXJGYXN0UGF0aDo6Y2FuVXNlKHNlbGVjdG9yKCkpKQog
ICAgICwgbV9zcGVjaWZpY2l0eShzZWxlY3RvcigpLT5zcGVjaWZpY2l0eSgpKQotICAgICwgbV9o
YXNNdWx0aXBhcnRTZWxlY3RvcighIXNlbGVjdG9yKCktPnRhZ0hpc3RvcnkoKSkKLSAgICAsIG1f
aGFzUmlnaHRtb3N0U2VsZWN0b3JNYXRjaGluZ0hUTUxCYXNlZE9uUnVsZUhhc2goaXNTZWxlY3Rv
ck1hdGNoaW5nSFRNTEJhc2VkT25SdWxlSGFzaChzZWxlY3RvcigpKSkKKyAgICAsIG1faGFzUmln
aHRtb3N0U2VsZWN0b3JNYXRjaGluZ0hUTUxCYXNlZE9uUnVsZUhhc2goaXNTZWxlY3Rvck1hdGNo
aW5nSFRNTEJhc2VkT25SdWxlSGFzaCgqc2VsZWN0b3IoKSkpCiAgICAgLCBtX2NvbnRhaW5zVW5j
b21tb25BdHRyaWJ1dGVTZWxlY3RvcihXZWJDb3JlOjpjb250YWluc1VuY29tbW9uQXR0cmlidXRl
U2VsZWN0b3Ioc2VsZWN0b3IoKSkpCiAgICAgLCBtX2xpbmtNYXRjaFR5cGUoU2VsZWN0b3JDaGVj
a2VyOjpkZXRlcm1pbmVMaW5rTWF0Y2hUeXBlKHNlbGVjdG9yKCkpKQogICAgICwgbV9oYXNEb2N1
bWVudFNlY3VyaXR5T3JpZ2luKGFkZFJ1bGVGbGFncyAmIFJ1bGVIYXNEb2N1bWVudFNlY3VyaXR5
T3JpZ2luKQpAQCAtMTY2LDcgKzE2Myw3IEBAIHN0YXRpYyB2b2lkIGNvbGxlY3RGZWF0dXJlc0Zy
b21SdWxlRGF0YShSdWxlRmVhdHVyZVNldCYgZmVhdHVyZXMsIGNvbnN0IFJ1bGVEYXRhCiAgICAg
aWYgKHJ1bGVEYXRhLmNvbnRhaW5zVW5jb21tb25BdHRyaWJ1dGVTZWxlY3RvcigpKQogICAgICAg
ICBmZWF0dXJlcy51bmNvbW1vbkF0dHJpYnV0ZVJ1bGVzLmFwcGVuZChSdWxlRmVhdHVyZShydWxl
RGF0YS5ydWxlKCksIHJ1bGVEYXRhLnNlbGVjdG9ySW5kZXgoKSwgcnVsZURhdGEuaGFzRG9jdW1l
bnRTZWN1cml0eU9yaWdpbigpKSk7CiB9Ci0gICAgCisKIHZvaWQgUnVsZVNldDo6YWRkVG9SdWxl
U2V0KEF0b21pY1N0cmluZ0ltcGwqIGtleSwgQXRvbVJ1bGVNYXAmIG1hcCwgY29uc3QgUnVsZURh
dGEmIHJ1bGVEYXRhKQogewogICAgIGlmICgha2V5KQpAQCAtMTc3LDY4ICsxNzQsMTAxIEBAIHZv
aWQgUnVsZVNldDo6YWRkVG9SdWxlU2V0KEF0b21pY1N0cmluZ0ltcGwqIGtleSwgQXRvbVJ1bGVN
YXAmIG1hcCwgY29uc3QgUnVsZURhCiAgICAgcnVsZXMtPmFwcGVuZChydWxlRGF0YSk7CiB9CiAK
LWJvb2wgUnVsZVNldDo6ZmluZEJlc3RSdWxlU2V0QW5kQWRkKGNvbnN0IENTU1NlbGVjdG9yKiBj
b21wb25lbnQsIFJ1bGVEYXRhJiBydWxlRGF0YSkKK3N0YXRpYyB1bnNpZ25lZCBydWxlc0NvdW50
Rm9yTmFtZShjb25zdCBSdWxlU2V0OjpBdG9tUnVsZU1hcCYgbWFwLCBBdG9taWNTdHJpbmdJbXBs
KiBuYW1lKQogewotICAgIGlmIChjb21wb25lbnQtPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6Oklk
KSB7Ci0gICAgICAgIGFkZFRvUnVsZVNldChjb21wb25lbnQtPnZhbHVlKCkuaW1wbCgpLCBtX2lk
UnVsZXMsIHJ1bGVEYXRhKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChj
b21wb25lbnQtPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OkNsYXNzKSB7Ci0gICAgICAgIGFkZFRv
UnVsZVNldChjb21wb25lbnQtPnZhbHVlKCkuaW1wbCgpLCBtX2NsYXNzUnVsZXMsIHJ1bGVEYXRh
KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChjb21wb25lbnQtPmlzQ3Vz
dG9tUHNldWRvRWxlbWVudCgpKSB7Ci0gICAgICAgIGFkZFRvUnVsZVNldChjb21wb25lbnQtPnZh
bHVlKCkuaW1wbCgpLCBtX3NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcywgcnVsZURhdGEpOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CisgICAgaWYgKGNvbnN0IFZlY3RvcjxSdWxlRGF0YT4q
IHJ1bGVzID0gbWFwLmdldChuYW1lKSkKKyAgICAgICAgcmV0dXJuIHJ1bGVzLT5zaXplKCk7Cisg
ICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgUnVsZVNldDo6YWRkUnVsZShTdHlsZVJ1bGUqIHJ1bGUs
IHVuc2lnbmVkIHNlbGVjdG9ySW5kZXgsIEFkZFJ1bGVGbGFncyBhZGRSdWxlRmxhZ3MpCit7Cisg
ICAgUnVsZURhdGEgcnVsZURhdGEocnVsZSwgc2VsZWN0b3JJbmRleCwgbV9ydWxlQ291bnQrKywg
YWRkUnVsZUZsYWdzKTsKKyAgICBjb2xsZWN0RmVhdHVyZXNGcm9tUnVsZURhdGEobV9mZWF0dXJl
cywgcnVsZURhdGEpOworCisgICAgdW5zaWduZWQgY2xhc3NCdWNrZXRTaXplID0gMDsKKyAgICBj
b25zdCBDU1NTZWxlY3RvciogdGFnU2VsZWN0b3IgPSBudWxscHRyOworICAgIGNvbnN0IENTU1Nl
bGVjdG9yKiBjbGFzc1NlbGVjdG9yID0gbnVsbHB0cjsKKyAgICBjb25zdCBDU1NTZWxlY3Rvciog
bGlua1NlbGVjdG9yID0gbnVsbHB0cjsKKyAgICBjb25zdCBDU1NTZWxlY3RvciogZm9jdXNTZWxl
Y3RvciA9IG51bGxwdHI7CisgICAgY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gcnVsZURh
dGEuc2VsZWN0b3IoKTsKKyAgICBkbyB7CisgICAgICAgIGlmIChzZWxlY3Rvci0+bV9tYXRjaCA9
PSBDU1NTZWxlY3Rvcjo6SWQpIHsKKyAgICAgICAgICAgIGFkZFRvUnVsZVNldChzZWxlY3Rvci0+
dmFsdWUoKS5pbXBsKCksIG1faWRSdWxlcywgcnVsZURhdGEpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgaWYgKGNvbXBvbmVu
dC0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudCAmJiBjb21wb25lbnQtPnBz
ZXVkb0VsZW1lbnRUeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRDdWUpIHsKLSAg
ICAgICAgbV9jdWVQc2V1ZG9SdWxlcy5hcHBlbmQocnVsZURhdGEpOwotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICB9CisgICAgICAgIGlmIChzZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rv
cjo6UHNldWRvRWxlbWVudCAmJiBzZWxlY3Rvci0+cHNldWRvRWxlbWVudFR5cGUoKSA9PSBDU1NT
ZWxlY3Rvcjo6UHNldWRvRWxlbWVudEN1ZSkgeworICAgICAgICAgICAgbV9jdWVQc2V1ZG9SdWxl
cy5hcHBlbmQocnVsZURhdGEpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAjZW5k
aWYKLSAgICBpZiAoU2VsZWN0b3JDaGVja2VyOjppc0NvbW1vblBzZXVkb0NsYXNzU2VsZWN0b3Io
Y29tcG9uZW50KSkgewotICAgICAgICBzd2l0Y2ggKGNvbXBvbmVudC0+cHNldWRvQ2xhc3NUeXBl
KCkpIHsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMaW5rOgotICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1Zpc2l0ZWQ6Ci0gICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0NsYXNzQW55TGluazoKLSAgICAgICAgICAgIG1fbGlua1BzZXVkb0Ns
YXNzUnVsZXMuYXBwZW5kKHJ1bGVEYXRhKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0ZvY3VzOgotICAgICAgICAgICAgbV9m
b2N1c1BzZXVkb0NsYXNzUnVsZXMuYXBwZW5kKHJ1bGVEYXRhKTsKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBpZiAoc2VsZWN0b3ItPmlz
Q3VzdG9tUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgICAgICBhZGRUb1J1bGVTZXQoc2VsZWN0
b3ItPnZhbHVlKCkuaW1wbCgpLCBtX3NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcywgcnVsZURhdGEp
OworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgfQogCi0gICAgaWYgKGNvbXBv
bmVudC0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6VGFnKSB7Ci0gICAgICAgIC8vIElmIHRoaXMg
aXMgcGFydCBvZiBhIHN1YnNlbGVjdG9yIGNoYWluLCByZWN1cnNlIGFoZWFkIHRvIGZpbmQgYSBu
YXJyb3dlciBzZXQgKElEL2NsYXNzLzpwc2V1ZG8pCi0gICAgICAgIGlmIChjb21wb25lbnQtPnJl
bGF0aW9uKCkgPT0gQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9yKSB7Ci0gICAgICAgICAgICBjb25z
dCBDU1NTZWxlY3RvciogbmV4dENvbXBvbmVudCA9IGNvbXBvbmVudC0+dGFnSGlzdG9yeSgpOwot
ICAgICAgICAgICAgaWYgKG5leHRDb21wb25lbnQtPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OkNs
YXNzIHx8IG5leHRDb21wb25lbnQtPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OklkIHx8IFNlbGVj
dG9yQ2hlY2tlcjo6aXNDb21tb25Qc2V1ZG9DbGFzc1NlbGVjdG9yKG5leHRDb21wb25lbnQpKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKGZpbmRCZXN0UnVsZVNldEFuZEFkZChuZXh0Q29tcG9uZW50
LCBydWxlRGF0YSkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBp
ZiAoc2VsZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OkNsYXNzKSB7CisgICAgICAgICAg
ICBBdG9taWNTdHJpbmdJbXBsKiBjbGFzc05hbWUgPSBzZWxlY3Rvci0+dmFsdWUoKS5pbXBsKCk7
CisgICAgICAgICAgICBpZiAoIWNsYXNzU2VsZWN0b3IpIHsKKyAgICAgICAgICAgICAgICBjbGFz
c1NlbGVjdG9yID0gc2VsZWN0b3I7CisgICAgICAgICAgICAgICAgY2xhc3NCdWNrZXRTaXplID0g
cnVsZXNDb3VudEZvck5hbWUobV9jbGFzc1J1bGVzLCBjbGFzc05hbWUpOworICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBuZXdDbGFzc0J1Y2tldFNpemUgPSBy
dWxlc0NvdW50Rm9yTmFtZShtX2NsYXNzUnVsZXMsIGNsYXNzTmFtZSk7CisgICAgICAgICAgICAg
ICAgaWYgKG5ld0NsYXNzQnVja2V0U2l6ZSA8IGNsYXNzQnVja2V0U2l6ZSkgeworICAgICAgICAg
ICAgICAgICAgICBjbGFzc1NlbGVjdG9yID0gc2VsZWN0b3I7CisgICAgICAgICAgICAgICAgICAg
IGNsYXNzQnVja2V0U2l6ZSA9IG5ld0NsYXNzQnVja2V0U2l6ZTsKKyAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGNvbXBvbmVudC0+dGFnUU5h
bWUoKS5sb2NhbE5hbWUoKSAhPSBzdGFyQXRvbSkgewotICAgICAgICAgICAgYWRkVG9SdWxlU2V0
KGNvbXBvbmVudC0+dGFnUU5hbWUoKS5sb2NhbE5hbWUoKS5pbXBsKCksIG1fdGFnUnVsZXMsIHJ1
bGVEYXRhKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIGlmIChzZWxlY3Rv
ci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6VGFnICYmIHNlbGVjdG9yLT50YWdRTmFtZSgpLmxv
Y2FsTmFtZSgpICE9IHN0YXJBdG9tKQorICAgICAgICAgICAgdGFnU2VsZWN0b3IgPSBzZWxlY3Rv
cjsKKworICAgICAgICBpZiAoU2VsZWN0b3JDaGVja2VyOjppc0NvbW1vblBzZXVkb0NsYXNzU2Vs
ZWN0b3Ioc2VsZWN0b3IpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHNlbGVjdG9yLT5wc2V1ZG9D
bGFzc1R5cGUoKSkgeworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NM
aW5rOgorICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NWaXNpdGVkOgor
ICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NBbnlMaW5rOgorICAgICAg
ICAgICAgICAgIGxpbmtTZWxlY3RvciA9IHNlbGVjdG9yOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NGb2N1czoKKyAgICAg
ICAgICAgICAgICBmb2N1c1NlbGVjdG9yID0gc2VsZWN0b3I7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICAgICAgfQogICAgICAgICB9CisKKyAgICAgICAgaWYgKHNlbGVjdG9y
LT5yZWxhdGlvbigpICE9IENTU1NlbGVjdG9yOjpTdWJTZWxlY3RvcikKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBzZWxlY3RvciA9IHNlbGVjdG9yLT50YWdIaXN0b3J5KCk7CisgICAgfSB3
aGlsZSAoc2VsZWN0b3IpOworCisgICAgaWYgKGNsYXNzU2VsZWN0b3IpIHsKKyAgICAgICAgYWRk
VG9SdWxlU2V0KGNsYXNzU2VsZWN0b3ItPnZhbHVlKCkuaW1wbCgpLCBtX2NsYXNzUnVsZXMsIHJ1
bGVEYXRhKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19CiAK
LXZvaWQgUnVsZVNldDo6YWRkUnVsZShTdHlsZVJ1bGUqIHJ1bGUsIHVuc2lnbmVkIHNlbGVjdG9y
SW5kZXgsIEFkZFJ1bGVGbGFncyBhZGRSdWxlRmxhZ3MpCi17Ci0gICAgUnVsZURhdGEgcnVsZURh
dGEocnVsZSwgc2VsZWN0b3JJbmRleCwgbV9ydWxlQ291bnQrKywgYWRkUnVsZUZsYWdzKTsKLSAg
ICBjb2xsZWN0RmVhdHVyZXNGcm9tUnVsZURhdGEobV9mZWF0dXJlcywgcnVsZURhdGEpOworICAg
IGlmIChsaW5rU2VsZWN0b3IpIHsKKyAgICAgICAgbV9saW5rUHNldWRvQ2xhc3NSdWxlcy5hcHBl
bmQocnVsZURhdGEpOworICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgaWYgKCFmaW5kQmVz
dFJ1bGVTZXRBbmRBZGQocnVsZURhdGEuc2VsZWN0b3IoKSwgcnVsZURhdGEpKSB7Ci0gICAgICAg
IC8vIElmIHdlIGRpZG4ndCBmaW5kIGEgc3BlY2lhbGl6ZWQgbWFwIHRvIHN0aWNrIGl0IGluLCBm
aWxlIHVuZGVyIHVuaXZlcnNhbCBydWxlcy4KLSAgICAgICAgbV91bml2ZXJzYWxSdWxlcy5hcHBl
bmQocnVsZURhdGEpOworICAgIGlmIChmb2N1c1NlbGVjdG9yKSB7CisgICAgICAgIG1fZm9jdXNQ
c2V1ZG9DbGFzc1J1bGVzLmFwcGVuZChydWxlRGF0YSk7CisgICAgICAgIHJldHVybjsKICAgICB9
CisKKyAgICBpZiAodGFnU2VsZWN0b3IpIHsKKyAgICAgICAgYWRkVG9SdWxlU2V0KHRhZ1NlbGVj
dG9yLT50YWdRTmFtZSgpLmxvY2FsTmFtZSgpLmltcGwoKSwgbV90YWdSdWxlcywgcnVsZURhdGEp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gSWYgd2UgZGlkbid0IGZpbmQgYSBz
cGVjaWFsaXplZCBtYXAgdG8gc3RpY2sgaXQgaW4sIGZpbGUgdW5kZXIgdW5pdmVyc2FsIHJ1bGVz
LgorICAgIG1fdW5pdmVyc2FsUnVsZXMuYXBwZW5kKHJ1bGVEYXRhKTsKIH0KIAogdm9pZCBSdWxl
U2V0OjphZGRQYWdlUnVsZShTdHlsZVJ1bGVQYWdlKiBydWxlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1J1bGVTZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgKaW5k
ZXggNzIwMTdiYjRiNzkzM2Q1Y2RhZjM3MzU2NmVjMDJiYjgyYTk0NGIwNS4uYjFhOTljNjRmM2M3
ZWZjN2YwN2EwZGY1MjY0ZDFhYzVmOGU3MTdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1J1bGVTZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCkBAIC0xLDYg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUu
b3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4
LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwMy0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtNjYsNyArNjYsNiBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQg
c2VsZWN0b3JJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0b3JJbmRleDsgfQogCiAgICAg
Ym9vbCBoYXNGYXN0Q2hlY2thYmxlU2VsZWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2hhc0Zhc3RD
aGVja2FibGVTZWxlY3RvcjsgfQotICAgIGJvb2wgaGFzTXVsdGlwYXJ0U2VsZWN0b3IoKSBjb25z
dCB7IHJldHVybiBtX2hhc011bHRpcGFydFNlbGVjdG9yOyB9CiAgICAgYm9vbCBoYXNSaWdodG1v
c3RTZWxlY3Rvck1hdGNoaW5nSFRNTEJhc2VkT25SdWxlSGFzaCgpIGNvbnN0IHsgcmV0dXJuIG1f
aGFzUmlnaHRtb3N0U2VsZWN0b3JNYXRjaGluZ0hUTUxCYXNlZE9uUnVsZUhhc2g7IH0KICAgICBi
b29sIGNvbnRhaW5zVW5jb21tb25BdHRyaWJ1dGVTZWxlY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1f
Y29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9yOyB9CiAgICAgdW5zaWduZWQgc3BlY2lm
aWNpdHkoKSBjb25zdCB7IHJldHVybiBtX3NwZWNpZmljaXR5OyB9CkBAIC05NSw3ICs5NCw2IEBA
IHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9wb3NpdGlvbiA6IDE4OwogICAgIHVuc2lnbmVkIG1f
aGFzRmFzdENoZWNrYWJsZVNlbGVjdG9yIDogMTsKICAgICB1bnNpZ25lZCBtX3NwZWNpZmljaXR5
IDogMjQ7Ci0gICAgdW5zaWduZWQgbV9oYXNNdWx0aXBhcnRTZWxlY3RvciA6IDE7CiAgICAgdW5z
aWduZWQgbV9oYXNSaWdodG1vc3RTZWxlY3Rvck1hdGNoaW5nSFRNTEJhc2VkT25SdWxlSGFzaCA6
IDE7CiAgICAgdW5zaWduZWQgbV9jb250YWluc1VuY29tbW9uQXR0cmlidXRlU2VsZWN0b3IgOiAx
OwogICAgIHVuc2lnbmVkIG1fbGlua01hdGNoVHlwZSA6IDI7IC8vICBTZWxlY3RvckNoZWNrZXI6
OkxpbmtNYXRjaE1hc2sKQEAgLTE3MCw3ICsxNjgsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgdm9pZCBhZGRDaGlsZFJ1bGVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+
JiwgY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgbWVkaXVtLCBTdHlsZVJlc29sdmVyKiwgYm9v
bCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBBZGRSdWxlRmxhZ3MpOwotICAgIGJvb2wgZmlu
ZEJlc3RSdWxlU2V0QW5kQWRkKGNvbnN0IENTU1NlbGVjdG9yKiwgUnVsZURhdGEmKTsKIAogICAg
IEF0b21SdWxlTWFwIG1faWRSdWxlczsKICAgICBBdG9tUnVsZU1hcCBtX2NsYXNzUnVsZXM7Cg==
</data>
<flag name="review"
          id="259288"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>