<?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>205406</bug_id>
          
          <creation_ts>2019-12-18 11:53:33 -0800</creation_ts>
          <short_desc>Optimize Style::Invalidator for multiple RuleSet case</short_desc>
          <delta_ts>2019-12-18 14:05:24 -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>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>204448</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1599904</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-18 11:53:33 -0800</bug_when>
    <thetext>Some basic optimizations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599905</commentid>
    <comment_count>1</comment_count>
      <attachid>385991</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-18 11:57:27 -0800</bug_when>
    <thetext>Created attachment 385991
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599906</commentid>
    <comment_count>2</comment_count>
      <attachid>385992</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-18 12:00:15 -0800</bug_when>
    <thetext>Created attachment 385992
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599956</commentid>
    <comment_count>3</comment_count>
      <attachid>385999</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-18 13:18:03 -0800</bug_when>
    <thetext>Created attachment 385999
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599976</commentid>
    <comment_count>4</comment_count>
      <attachid>385999</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-18 14:04:01 -0800</bug_when>
    <thetext>Comment on attachment 385999
patch

Clearing flags on attachment: 385999

Committed r253717: &lt;https://trac.webkit.org/changeset/253717&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599977</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-18 14:04:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599978</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-18 14:05:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/58056975&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385991</attachid>
            <date>2019-12-18 11:57:27 -0800</date>
            <delta_ts>2019-12-18 12:00:15 -0800</delta_ts>
            <desc>patch</desc>
            <filename>invalidator-optimization.patch</filename>
            <type>text/plain</type>
            <size>6435</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzN2E5ZjdhOGNmOC4uNjgwYTZhMmRlODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxOS0xMi0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgT3B0aW1pemUgU3R5bGU6OkludmFsaWRhdG9yIGZvciBtdWx0aXBsZSBSdWxl
U2V0IGNhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNTQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6
bV9kaXJ0aWVzQWxsU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkludmFsaWRhdG9y
OjpJbnZhbGlkYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6SW52YWxpZGF0b3I6OmNv
bGxlY3RSdWxlSW5mb3JtYXRpb24pOgorCisgICAgICAgIENvbGxlY3QgYnVuY2ggb2YgYml0cyBz
byB3ZSBkb24ndCBuZWVkIHRvIHRyYXZlcnNlIGFnYWluLgorCisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6SW52YWxpZGF0b3I6OmludmFsaWRhdGVJZk5lZWRlZCk6CisKKyAgICAgICAgQmFpbCBv
dXQgd2hlbiB3ZSBmaW5kIGEgcmVzb24gdG8gaW52YWxpZGF0ZS4KKworICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlU3R5bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlSW5TaGFkb3dUcmVlSWZOZWVkZWQpOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlSW52YWxpZGF0b3IuaDoKKwogMjAxOS0xMi0xOCAgQW50dGkg
S29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgU3R5bGU6OkludmFsaWRhdG9y
IHNob3VsZCBiZSBhYmxlIHRvIGludmFsaWRhdGUgdXNpbmcgbXVsdGlwbGUgUnVsZVNldHMgaW4g
b25lIHBhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHAKaW5kZXgg
ZGY0ZTdhZjQzOWUuLjFiMGNmYTkxMjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUludmFsaWRhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUlu
dmFsaWRhdG9yLmNwcApAQCAtODUsNyArODUsOSBAQCBzdGF0aWMgYm9vbCBzaG91bGREaXJ0eUFs
bFN0eWxlKGNvbnN0IFZlY3RvcjxTdHlsZVNoZWV0Q29udGVudHMqPiYgc2hlZXRzKQogSW52YWxp
ZGF0b3I6OkludmFsaWRhdG9yKGNvbnN0IFZlY3RvcjxTdHlsZVNoZWV0Q29udGVudHMqPiYgc2hl
ZXRzLCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBtZWRpYVF1ZXJ5RXZhbHVhdG9yKQogICAg
IDogbV9vd25lZFJ1bGVTZXQobWFrZVVuaXF1ZTxSdWxlU2V0PigpKQogICAgICwgbV9ydWxlU2V0
cyh7IG1fb3duZWRSdWxlU2V0LmdldCgpIH0pCisgICAgLCBtX3J1bGVJbmZvcm1hdGlvbihjb2xs
ZWN0UnVsZUluZm9ybWF0aW9uKCkpCiAgICAgLCBtX2RpcnRpZXNBbGxTdHlsZShzaG91bGREaXJ0
eUFsbFN0eWxlKHNoZWV0cykpCisKIHsKICAgICBpZiAobV9kaXJ0aWVzQWxsU3R5bGUpCiAgICAg
ICAgIHJldHVybjsKQEAgLTk3LDIyICs5OSwzMiBAQCBJbnZhbGlkYXRvcjo6SW52YWxpZGF0b3Io
Y29uc3QgVmVjdG9yPFN0eWxlU2hlZXRDb250ZW50cyo+JiBzaGVldHMsIGNvbnN0IE1lZGlhUQog
CiBJbnZhbGlkYXRvcjo6SW52YWxpZGF0b3IoY29uc3QgVmVjdG9yPGNvbnN0IFJ1bGVTZXQqLCAx
PiYgcnVsZVNldHMpCiAgICAgOiBtX3J1bGVTZXRzKHJ1bGVTZXRzKQorICAgICwgbV9ydWxlSW5m
b3JtYXRpb24oY29sbGVjdFJ1bGVJbmZvcm1hdGlvbigpKQogewogICAgIEFTU0VSVChtX3J1bGVT
ZXRzLnNpemUoKSk7CiB9CiAKK0ludmFsaWRhdG9yOjpSdWxlSW5mb3JtYXRpb24gSW52YWxpZGF0
b3I6OmNvbGxlY3RSdWxlSW5mb3JtYXRpb24oKQoreworICAgIFJ1bGVJbmZvcm1hdGlvbiBpbmZv
cm1hdGlvbjsKKyAgICBmb3IgKGF1dG8qIHJ1bGVTZXQgOiBtX3J1bGVTZXRzKSB7CisgICAgICAg
IGlmICghcnVsZVNldC0+c2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlcygpLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgIGluZm9ybWF0aW9uLmhhc1Nsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMgPSB0cnVl
OworICAgICAgICBpZiAoIXJ1bGVTZXQtPmhvc3RQc2V1ZG9DbGFzc1J1bGVzKCkuaXNFbXB0eSgp
KQorICAgICAgICAgICAgaW5mb3JtYXRpb24uaGFzSG9zdFBzZXVkb0NsYXNzUnVsZXMgPSB0cnVl
OworICAgICAgICBpZiAocnVsZVNldC0+aGFzU2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKCkpCisg
ICAgICAgICAgICBpbmZvcm1hdGlvbi5oYXNTaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMgPSB0cnVl
OworICAgICAgICBpZiAoIXJ1bGVTZXQtPnBhcnRQc2V1ZG9FbGVtZW50UnVsZXMoKS5pc0VtcHR5
KCkpCisgICAgICAgICAgICBpbmZvcm1hdGlvbi5oYXNQYXJ0UHNldWRvRWxlbWVudFJ1bGVzID0g
dHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGluZm9ybWF0aW9uOworfQorCiBJbnZhbGlkYXRvcjo6
Q2hlY2tEZXNjZW5kYW50cyBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZUlmTmVlZGVkKEVsZW1lbnQm
IGVsZW1lbnQsIGNvbnN0IFNlbGVjdG9yRmlsdGVyKiBmaWx0ZXIpCiB7CiAgICAgaW52YWxpZGF0
ZUluU2hhZG93VHJlZUlmTmVlZGVkKGVsZW1lbnQpOwogCi0gICAgYm9vbCBzaG91bGRDaGVja0Zv
clNsb3RzID0gWyZdIHsKLSAgICAgICAgZm9yIChhdXRvKiBydWxlU2V0IDogbV9ydWxlU2V0cykg
ewotICAgICAgICAgICAgaWYgKCFydWxlU2V0LT5zbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKCku
aXNFbXB0eSgpICYmICFtX2RpZEludmFsaWRhdGVIb3N0Q2hpbGRyZW4pCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0o
KTsKLQorICAgIGJvb2wgc2hvdWxkQ2hlY2tGb3JTbG90cyA9IG1fcnVsZUluZm9ybWF0aW9uLmhh
c1Nsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMgJiYgIW1fZGlkSW52YWxpZGF0ZUhvc3RDaGlsZHJl
bjsKICAgICBpZiAoc2hvdWxkQ2hlY2tGb3JTbG90cyAmJiBpczxIVE1MU2xvdEVsZW1lbnQ+KGVs
ZW1lbnQpKSB7CiAgICAgICAgIGF1dG8qIGNvbnRhaW5pbmdTaGFkb3dSb290ID0gZWxlbWVudC5j
b250YWluaW5nU2hhZG93Um9vdCgpOwogICAgICAgICBpZiAoY29udGFpbmluZ1NoYWRvd1Jvb3Qg
JiYgY29udGFpbmluZ1NoYWRvd1Jvb3QtPmhvc3QoKSkgewpAQCAtMTI5LDggKzE0MSwxMCBAQCBJ
bnZhbGlkYXRvcjo6Q2hlY2tEZXNjZW5kYW50cyBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZUlmTmVl
ZGVkKEVsZW1lbnQmIGVsZW1lbnQsCiAgICAgICAgICAgICBFbGVtZW50UnVsZUNvbGxlY3RvciBy
dWxlQ29sbGVjdG9yKGVsZW1lbnQsICpydWxlU2V0LCBmaWx0ZXIpOwogICAgICAgICAgICAgcnVs
ZUNvbGxlY3Rvci5zZXRNb2RlKFNlbGVjdG9yQ2hlY2tlcjo6TW9kZTo6Q29sbGVjdGluZ1J1bGVz
SWdub3JpbmdWaXJ0dWFsUHNldWRvRWxlbWVudHMpOwogCi0gICAgICAgICAgICBpZiAocnVsZUNv
bGxlY3Rvci5tYXRjaGVzQW55QXV0aG9yUnVsZXMoKSkKKyAgICAgICAgICAgIGlmIChydWxlQ29s
bGVjdG9yLm1hdGNoZXNBbnlBdXRob3JSdWxlcygpKSB7CiAgICAgICAgICAgICAgICAgZWxlbWVu
dC5pbnZhbGlkYXRlU3R5bGVJbnRlcm5hbCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIENoZWNrRGVzY2VuZGFudHM6
OlllczsKQEAgLTIwMCwxMCArMjE0LDggQEAgdm9pZCBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZVN0
eWxlKFNoYWRvd1Jvb3QmIHNoYWRvd1Jvb3QpCiB7CiAgICAgQVNTRVJUKCFtX2RpcnRpZXNBbGxT
dHlsZSk7CiAKLSAgICBmb3IgKGF1dG8qIHJ1bGVTZXQgOiBtX3J1bGVTZXRzKSB7Ci0gICAgICAg
IGlmICghcnVsZVNldC0+aG9zdFBzZXVkb0NsYXNzUnVsZXMoKS5pc0VtcHR5KCkgJiYgc2hhZG93
Um9vdC5ob3N0KCkpCi0gICAgICAgICAgICBzaGFkb3dSb290Lmhvc3QoKS0+aW52YWxpZGF0ZVN0
eWxlSW50ZXJuYWwoKTsKLSAgICB9CisgICAgaWYgKG1fcnVsZUluZm9ybWF0aW9uLmhhc0hvc3RQ
c2V1ZG9DbGFzc1J1bGVzICYmIHNoYWRvd1Jvb3QuaG9zdCgpKQorICAgICAgICBzaGFkb3dSb290
Lmhvc3QoKS0+aW52YWxpZGF0ZVN0eWxlSW50ZXJuYWwoKTsKIAogICAgIGZvciAoYXV0byYgY2hp
bGQgOiBjaGlsZHJlbk9mVHlwZTxFbGVtZW50PihzaGFkb3dSb290KSkgewogICAgICAgICBTZWxl
Y3RvckZpbHRlciBmaWx0ZXI7CkBAIC0yOTcsMTcgKzMwOSwxMyBAQCB2b2lkIEludmFsaWRhdG9y
OjppbnZhbGlkYXRlSW5TaGFkb3dUcmVlSWZOZWVkZWQoRWxlbWVudCYgZWxlbWVudCkKICAgICBp
ZiAoIXNoYWRvd1Jvb3QpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIEZJWE1FOiBUaGlzIGNv
dWxkIGRvIGFjdHVhbCBydWxlIG1hdGNoaW5nIHRvby4KKyAgICBpZiAobV9ydWxlSW5mb3JtYXRp
b24uaGFzU2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKQorICAgICAgICBlbGVtZW50LmludmFsaWRh
dGVTdHlsZUZvclN1YnRyZWVJbnRlcm5hbCgpOwogCi0gICAgZm9yIChhdXRvKiBydWxlU2V0IDog
bV9ydWxlU2V0cykgewotICAgICAgICBpZiAocnVsZVNldC0+aGFzU2hhZG93UHNldWRvRWxlbWVu
dFJ1bGVzKCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvdWxkIGRvIGFjdHVhbCBy
dWxlIG1hdGNoaW5nIHRvby4KLSAgICAgICAgICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0eWxlRm9y
U3VidHJlZUludGVybmFsKCk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBGSVhNRTogTW9yZSBm
aW5lLWdyYWluZWQgaW52YWxpZGF0aW9uIGZvciA6OnBhcnQoKQotICAgICAgICBpZiAoIXJ1bGVT
ZXQtPnBhcnRQc2V1ZG9FbGVtZW50UnVsZXMoKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBpbnZh
bGlkYXRlU2hhZG93UGFydHMoKnNoYWRvd1Jvb3QpOwotICAgIH0KKyAgICAvLyBGSVhNRTogTW9y
ZSBmaW5lLWdyYWluZWQgaW52YWxpZGF0aW9uIGZvciA6OnBhcnQoKQorICAgIGlmIChtX3J1bGVJ
bmZvcm1hdGlvbi5oYXNQYXJ0UHNldWRvRWxlbWVudFJ1bGVzKQorICAgICAgICBpbnZhbGlkYXRl
U2hhZG93UGFydHMoKnNoYWRvd1Jvb3QpOwogfQogCiB2b2lkIEludmFsaWRhdG9yOjphZGRUb01h
dGNoRWxlbWVudFJ1bGVTZXRzKEludmFsaWRhdG9yOjpNYXRjaEVsZW1lbnRSdWxlU2V0cyYgbWF0
Y2hFbGVtZW50UnVsZVNldHMsIGNvbnN0IEludmFsaWRhdGlvblJ1bGVTZXQmIGludmFsaWRhdGlv
blJ1bGVTZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRh
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmgKaW5kZXggM2Zm
YjI5NzQzNzAuLjIzODVkZmM3ZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZUludmFsaWRhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlk
YXRvci5oCkBAIC02OCw3ICs2OCwxOCBAQCBwcml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZVN0
eWxlV2l0aE1hdGNoRWxlbWVudChFbGVtZW50JiwgTWF0Y2hFbGVtZW50KTsKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxSdWxlU2V0PiBtX293bmVkUnVsZVNldDsKLSAgICBWZWN0b3I8Y29uc3QgUnVs
ZVNldCosIDE+IG1fcnVsZVNldHM7CisgICAgY29uc3QgVmVjdG9yPGNvbnN0IFJ1bGVTZXQqLCAx
PiBtX3J1bGVTZXRzOworCisgICAgc3RydWN0IFJ1bGVJbmZvcm1hdGlvbiB7CisgICAgICAgIGJv
b2wgaGFzU2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlcyB7IGZhbHNlIH07CisgICAgICAgIGJvb2wg
aGFzSG9zdFBzZXVkb0NsYXNzUnVsZXMgeyBmYWxzZSB9OworICAgICAgICBib29sIGhhc1NoYWRv
d1BzZXVkb0VsZW1lbnRSdWxlcyB7IGZhbHNlIH07CisgICAgICAgIGJvb2wgaGFzUGFydFBzZXVk
b0VsZW1lbnRSdWxlcyB7IGZhbHNlIH07CisgICAgfTsKKyAgICBSdWxlSW5mb3JtYXRpb24gY29s
bGVjdFJ1bGVJbmZvcm1hdGlvbigpOworCisgICAgY29uc3QgUnVsZUluZm9ybWF0aW9uIG1fcnVs
ZUluZm9ybWF0aW9uOworCiAgICAgYm9vbCBtX2RpcnRpZXNBbGxTdHlsZSB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2RpZEludmFsaWRhdGVIb3N0Q2hpbGRyZW4geyBmYWxzZSB9OwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385992</attachid>
            <date>2019-12-18 12:00:15 -0800</date>
            <delta_ts>2019-12-18 13:18:03 -0800</delta_ts>
            <desc>patch</desc>
            <filename>invalidator-optimization-2.patch</filename>
            <type>text/plain</type>
            <size>6487</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzN2E5ZjdhOGNmOC4uNjgwYTZhMmRlODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxOS0xMi0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgT3B0aW1pemUgU3R5bGU6OkludmFsaWRhdG9yIGZvciBtdWx0aXBsZSBSdWxl
U2V0IGNhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNTQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6
bV9kaXJ0aWVzQWxsU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkludmFsaWRhdG9y
OjpJbnZhbGlkYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6SW52YWxpZGF0b3I6OmNv
bGxlY3RSdWxlSW5mb3JtYXRpb24pOgorCisgICAgICAgIENvbGxlY3QgYnVuY2ggb2YgYml0cyBz
byB3ZSBkb24ndCBuZWVkIHRvIHRyYXZlcnNlIGFnYWluLgorCisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6SW52YWxpZGF0b3I6OmludmFsaWRhdGVJZk5lZWRlZCk6CisKKyAgICAgICAgQmFpbCBv
dXQgd2hlbiB3ZSBmaW5kIGEgcmVzb24gdG8gaW52YWxpZGF0ZS4KKworICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlU3R5bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlSW5TaGFkb3dUcmVlSWZOZWVkZWQpOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlSW52YWxpZGF0b3IuaDoKKwogMjAxOS0xMi0xOCAgQW50dGkg
S29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgU3R5bGU6OkludmFsaWRhdG9y
IHNob3VsZCBiZSBhYmxlIHRvIGludmFsaWRhdGUgdXNpbmcgbXVsdGlwbGUgUnVsZVNldHMgaW4g
b25lIHBhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHAKaW5kZXgg
ZGY0ZTdhZjQzOWUuLjFiMGNmYTkxMjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUludmFsaWRhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUlu
dmFsaWRhdG9yLmNwcApAQCAtODUsNyArODUsOSBAQCBzdGF0aWMgYm9vbCBzaG91bGREaXJ0eUFs
bFN0eWxlKGNvbnN0IFZlY3RvcjxTdHlsZVNoZWV0Q29udGVudHMqPiYgc2hlZXRzKQogSW52YWxp
ZGF0b3I6OkludmFsaWRhdG9yKGNvbnN0IFZlY3RvcjxTdHlsZVNoZWV0Q29udGVudHMqPiYgc2hl
ZXRzLCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBtZWRpYVF1ZXJ5RXZhbHVhdG9yKQogICAg
IDogbV9vd25lZFJ1bGVTZXQobWFrZVVuaXF1ZTxSdWxlU2V0PigpKQogICAgICwgbV9ydWxlU2V0
cyh7IG1fb3duZWRSdWxlU2V0LmdldCgpIH0pCisgICAgLCBtX3J1bGVJbmZvcm1hdGlvbihjb2xs
ZWN0UnVsZUluZm9ybWF0aW9uKCkpCiAgICAgLCBtX2RpcnRpZXNBbGxTdHlsZShzaG91bGREaXJ0
eUFsbFN0eWxlKHNoZWV0cykpCisKIHsKICAgICBpZiAobV9kaXJ0aWVzQWxsU3R5bGUpCiAgICAg
ICAgIHJldHVybjsKQEAgLTk3LDIyICs5OSwzMiBAQCBJbnZhbGlkYXRvcjo6SW52YWxpZGF0b3Io
Y29uc3QgVmVjdG9yPFN0eWxlU2hlZXRDb250ZW50cyo+JiBzaGVldHMsIGNvbnN0IE1lZGlhUQog
CiBJbnZhbGlkYXRvcjo6SW52YWxpZGF0b3IoY29uc3QgVmVjdG9yPGNvbnN0IFJ1bGVTZXQqLCAx
PiYgcnVsZVNldHMpCiAgICAgOiBtX3J1bGVTZXRzKHJ1bGVTZXRzKQorICAgICwgbV9ydWxlSW5m
b3JtYXRpb24oY29sbGVjdFJ1bGVJbmZvcm1hdGlvbigpKQogewogICAgIEFTU0VSVChtX3J1bGVT
ZXRzLnNpemUoKSk7CiB9CiAKK0ludmFsaWRhdG9yOjpSdWxlSW5mb3JtYXRpb24gSW52YWxpZGF0
b3I6OmNvbGxlY3RSdWxlSW5mb3JtYXRpb24oKQoreworICAgIFJ1bGVJbmZvcm1hdGlvbiBpbmZv
cm1hdGlvbjsKKyAgICBmb3IgKGF1dG8qIHJ1bGVTZXQgOiBtX3J1bGVTZXRzKSB7CisgICAgICAg
IGlmICghcnVsZVNldC0+c2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlcygpLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgIGluZm9ybWF0aW9uLmhhc1Nsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMgPSB0cnVl
OworICAgICAgICBpZiAoIXJ1bGVTZXQtPmhvc3RQc2V1ZG9DbGFzc1J1bGVzKCkuaXNFbXB0eSgp
KQorICAgICAgICAgICAgaW5mb3JtYXRpb24uaGFzSG9zdFBzZXVkb0NsYXNzUnVsZXMgPSB0cnVl
OworICAgICAgICBpZiAocnVsZVNldC0+aGFzU2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKCkpCisg
ICAgICAgICAgICBpbmZvcm1hdGlvbi5oYXNTaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMgPSB0cnVl
OworICAgICAgICBpZiAoIXJ1bGVTZXQtPnBhcnRQc2V1ZG9FbGVtZW50UnVsZXMoKS5pc0VtcHR5
KCkpCisgICAgICAgICAgICBpbmZvcm1hdGlvbi5oYXNQYXJ0UHNldWRvRWxlbWVudFJ1bGVzID0g
dHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGluZm9ybWF0aW9uOworfQorCiBJbnZhbGlkYXRvcjo6
Q2hlY2tEZXNjZW5kYW50cyBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZUlmTmVlZGVkKEVsZW1lbnQm
IGVsZW1lbnQsIGNvbnN0IFNlbGVjdG9yRmlsdGVyKiBmaWx0ZXIpCiB7CiAgICAgaW52YWxpZGF0
ZUluU2hhZG93VHJlZUlmTmVlZGVkKGVsZW1lbnQpOwogCi0gICAgYm9vbCBzaG91bGRDaGVja0Zv
clNsb3RzID0gWyZdIHsKLSAgICAgICAgZm9yIChhdXRvKiBydWxlU2V0IDogbV9ydWxlU2V0cykg
ewotICAgICAgICAgICAgaWYgKCFydWxlU2V0LT5zbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKCku
aXNFbXB0eSgpICYmICFtX2RpZEludmFsaWRhdGVIb3N0Q2hpbGRyZW4pCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0o
KTsKLQorICAgIGJvb2wgc2hvdWxkQ2hlY2tGb3JTbG90cyA9IG1fcnVsZUluZm9ybWF0aW9uLmhh
c1Nsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMgJiYgIW1fZGlkSW52YWxpZGF0ZUhvc3RDaGlsZHJl
bjsKICAgICBpZiAoc2hvdWxkQ2hlY2tGb3JTbG90cyAmJiBpczxIVE1MU2xvdEVsZW1lbnQ+KGVs
ZW1lbnQpKSB7CiAgICAgICAgIGF1dG8qIGNvbnRhaW5pbmdTaGFkb3dSb290ID0gZWxlbWVudC5j
b250YWluaW5nU2hhZG93Um9vdCgpOwogICAgICAgICBpZiAoY29udGFpbmluZ1NoYWRvd1Jvb3Qg
JiYgY29udGFpbmluZ1NoYWRvd1Jvb3QtPmhvc3QoKSkgewpAQCAtMTI5LDggKzE0MSwxMCBAQCBJ
bnZhbGlkYXRvcjo6Q2hlY2tEZXNjZW5kYW50cyBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZUlmTmVl
ZGVkKEVsZW1lbnQmIGVsZW1lbnQsCiAgICAgICAgICAgICBFbGVtZW50UnVsZUNvbGxlY3RvciBy
dWxlQ29sbGVjdG9yKGVsZW1lbnQsICpydWxlU2V0LCBmaWx0ZXIpOwogICAgICAgICAgICAgcnVs
ZUNvbGxlY3Rvci5zZXRNb2RlKFNlbGVjdG9yQ2hlY2tlcjo6TW9kZTo6Q29sbGVjdGluZ1J1bGVz
SWdub3JpbmdWaXJ0dWFsUHNldWRvRWxlbWVudHMpOwogCi0gICAgICAgICAgICBpZiAocnVsZUNv
bGxlY3Rvci5tYXRjaGVzQW55QXV0aG9yUnVsZXMoKSkKKyAgICAgICAgICAgIGlmIChydWxlQ29s
bGVjdG9yLm1hdGNoZXNBbnlBdXRob3JSdWxlcygpKSB7CiAgICAgICAgICAgICAgICAgZWxlbWVu
dC5pbnZhbGlkYXRlU3R5bGVJbnRlcm5hbCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIENoZWNrRGVzY2VuZGFudHM6
OlllczsKQEAgLTIwMCwxMCArMjE0LDggQEAgdm9pZCBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZVN0
eWxlKFNoYWRvd1Jvb3QmIHNoYWRvd1Jvb3QpCiB7CiAgICAgQVNTRVJUKCFtX2RpcnRpZXNBbGxT
dHlsZSk7CiAKLSAgICBmb3IgKGF1dG8qIHJ1bGVTZXQgOiBtX3J1bGVTZXRzKSB7Ci0gICAgICAg
IGlmICghcnVsZVNldC0+aG9zdFBzZXVkb0NsYXNzUnVsZXMoKS5pc0VtcHR5KCkgJiYgc2hhZG93
Um9vdC5ob3N0KCkpCi0gICAgICAgICAgICBzaGFkb3dSb290Lmhvc3QoKS0+aW52YWxpZGF0ZVN0
eWxlSW50ZXJuYWwoKTsKLSAgICB9CisgICAgaWYgKG1fcnVsZUluZm9ybWF0aW9uLmhhc0hvc3RQ
c2V1ZG9DbGFzc1J1bGVzICYmIHNoYWRvd1Jvb3QuaG9zdCgpKQorICAgICAgICBzaGFkb3dSb290
Lmhvc3QoKS0+aW52YWxpZGF0ZVN0eWxlSW50ZXJuYWwoKTsKIAogICAgIGZvciAoYXV0byYgY2hp
bGQgOiBjaGlsZHJlbk9mVHlwZTxFbGVtZW50PihzaGFkb3dSb290KSkgewogICAgICAgICBTZWxl
Y3RvckZpbHRlciBmaWx0ZXI7CkBAIC0yOTcsMTcgKzMwOSwxMyBAQCB2b2lkIEludmFsaWRhdG9y
OjppbnZhbGlkYXRlSW5TaGFkb3dUcmVlSWZOZWVkZWQoRWxlbWVudCYgZWxlbWVudCkKICAgICBp
ZiAoIXNoYWRvd1Jvb3QpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIEZJWE1FOiBUaGlzIGNv
dWxkIGRvIGFjdHVhbCBydWxlIG1hdGNoaW5nIHRvby4KKyAgICBpZiAobV9ydWxlSW5mb3JtYXRp
b24uaGFzU2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKQorICAgICAgICBlbGVtZW50LmludmFsaWRh
dGVTdHlsZUZvclN1YnRyZWVJbnRlcm5hbCgpOwogCi0gICAgZm9yIChhdXRvKiBydWxlU2V0IDog
bV9ydWxlU2V0cykgewotICAgICAgICBpZiAocnVsZVNldC0+aGFzU2hhZG93UHNldWRvRWxlbWVu
dFJ1bGVzKCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvdWxkIGRvIGFjdHVhbCBy
dWxlIG1hdGNoaW5nIHRvby4KLSAgICAgICAgICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0eWxlRm9y
U3VidHJlZUludGVybmFsKCk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBGSVhNRTogTW9yZSBm
aW5lLWdyYWluZWQgaW52YWxpZGF0aW9uIGZvciA6OnBhcnQoKQotICAgICAgICBpZiAoIXJ1bGVT
ZXQtPnBhcnRQc2V1ZG9FbGVtZW50UnVsZXMoKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBpbnZh
bGlkYXRlU2hhZG93UGFydHMoKnNoYWRvd1Jvb3QpOwotICAgIH0KKyAgICAvLyBGSVhNRTogTW9y
ZSBmaW5lLWdyYWluZWQgaW52YWxpZGF0aW9uIGZvciA6OnBhcnQoKQorICAgIGlmIChtX3J1bGVJ
bmZvcm1hdGlvbi5oYXNQYXJ0UHNldWRvRWxlbWVudFJ1bGVzKQorICAgICAgICBpbnZhbGlkYXRl
U2hhZG93UGFydHMoKnNoYWRvd1Jvb3QpOwogfQogCiB2b2lkIEludmFsaWRhdG9yOjphZGRUb01h
dGNoRWxlbWVudFJ1bGVTZXRzKEludmFsaWRhdG9yOjpNYXRjaEVsZW1lbnRSdWxlU2V0cyYgbWF0
Y2hFbGVtZW50UnVsZVNldHMsIGNvbnN0IEludmFsaWRhdGlvblJ1bGVTZXQmIGludmFsaWRhdGlv
blJ1bGVTZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRh
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmgKaW5kZXggM2Zm
YjI5NzQzNzAuLjY5MDc0NDc4NjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZUludmFsaWRhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlk
YXRvci5oCkBAIC02Nyw4ICs2NywxOSBAQCBwcml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZUlu
U2hhZG93VHJlZUlmTmVlZGVkKEVsZW1lbnQmKTsKICAgICB2b2lkIGludmFsaWRhdGVTdHlsZVdp
dGhNYXRjaEVsZW1lbnQoRWxlbWVudCYsIE1hdGNoRWxlbWVudCk7CiAKKyAgICBzdHJ1Y3QgUnVs
ZUluZm9ybWF0aW9uIHsKKyAgICAgICAgYm9vbCBoYXNTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVz
IHsgZmFsc2UgfTsKKyAgICAgICAgYm9vbCBoYXNIb3N0UHNldWRvQ2xhc3NSdWxlcyB7IGZhbHNl
IH07CisgICAgICAgIGJvb2wgaGFzU2hhZG93UHNldWRvRWxlbWVudFJ1bGVzIHsgZmFsc2UgfTsK
KyAgICAgICAgYm9vbCBoYXNQYXJ0UHNldWRvRWxlbWVudFJ1bGVzIHsgZmFsc2UgfTsKKyAgICB9
OworICAgIFJ1bGVJbmZvcm1hdGlvbiBjb2xsZWN0UnVsZUluZm9ybWF0aW9uKCk7CisKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8UnVsZVNldD4gbV9vd25lZFJ1bGVTZXQ7Ci0gICAgVmVjdG9yPGNvbnN0
IFJ1bGVTZXQqLCAxPiBtX3J1bGVTZXRzOworICAgIGNvbnN0IFZlY3Rvcjxjb25zdCBSdWxlU2V0
KiwgMT4gbV9ydWxlU2V0czsKKworICAgIGNvbnN0IFJ1bGVJbmZvcm1hdGlvbiBtX3J1bGVJbmZv
cm1hdGlvbjsKKwogICAgIGJvb2wgbV9kaXJ0aWVzQWxsU3R5bGUgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9kaWRJbnZhbGlkYXRlSG9zdENoaWxkcmVuIHsgZmFsc2UgfTsKIH07Cg==
</data>
<flag name="review"
          id="401801"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385999</attachid>
            <date>2019-12-18 13:18:03 -0800</date>
            <delta_ts>2019-12-18 14:04:01 -0800</delta_ts>
            <desc>patch</desc>
            <filename>invalidator-optimization-3.patch</filename>
            <type>text/plain</type>
            <size>6233</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzN2E5ZjdhOGNmOC4uNmMzNGQzOTMwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxOS0xMi0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgT3B0aW1pemUgU3R5bGU6OkludmFsaWRhdG9yIGZvciBtdWx0aXBsZSBSdWxl
U2V0IGNhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNTQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IFphbGFuIEJ1anRhcy4KKworICAgICAgICAq
IHN0eWxlL1N0eWxlSW52YWxpZGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6Om1f
ZGlydGllc0FsbFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpJbnZhbGlkYXRvcjo6
SW52YWxpZGF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkludmFsaWRhdG9yOjpjb2xs
ZWN0UnVsZUluZm9ybWF0aW9uKToKKworICAgICAgICBDb2xsZWN0IGJ1bmNoIG9mIGJpdHMgc28g
d2UgZG9uJ3QgbmVlZCB0byB0cmF2ZXJzZSBhZ2Fpbi4KKworICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlSWZOZWVkZWQpOgorCisgICAgICAgIEJhaWwgb3V0
IHdoZW4gd2UgZmluZCBhIHJlc29uIHRvIGludmFsaWRhdGUuCisKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZUluU2hhZG93VHJlZUlmTmVlZGVkKToKKyAg
ICAgICAgKiBzdHlsZS9TdHlsZUludmFsaWRhdG9yLmg6CisKIDIwMTktMTItMTggIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFN0eWxlOjpJbnZhbGlkYXRvciBz
aG91bGQgYmUgYWJsZSB0byBpbnZhbGlkYXRlIHVzaW5nIG11bHRpcGxlIFJ1bGVTZXRzIGluIG9u
ZSBwYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuY3BwCmluZGV4IGRm
NGU3YWY0MzllLi5mYWM4ZjE5MjY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVJbnZhbGlkYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZh
bGlkYXRvci5jcHAKQEAgLTkzLDI2ICs5MywzOCBAQCBJbnZhbGlkYXRvcjo6SW52YWxpZGF0b3Io
Y29uc3QgVmVjdG9yPFN0eWxlU2hlZXRDb250ZW50cyo+JiBzaGVldHMsIGNvbnN0IE1lZGlhUQog
ICAgIG1fb3duZWRSdWxlU2V0LT5kaXNhYmxlQXV0b1Nocmlua1RvRml0KCk7CiAgICAgZm9yIChh
dXRvJiBzaGVldCA6IHNoZWV0cykKICAgICAgICAgbV9vd25lZFJ1bGVTZXQtPmFkZFJ1bGVzRnJv
bVNoZWV0KCpzaGVldCwgbWVkaWFRdWVyeUV2YWx1YXRvcik7CisKKyAgICBtX3J1bGVJbmZvcm1h
dGlvbiA9IGNvbGxlY3RSdWxlSW5mb3JtYXRpb24oKTsKIH0KIAogSW52YWxpZGF0b3I6OkludmFs
aWRhdG9yKGNvbnN0IFZlY3Rvcjxjb25zdCBSdWxlU2V0KiwgMT4mIHJ1bGVTZXRzKQogICAgIDog
bV9ydWxlU2V0cyhydWxlU2V0cykKKyAgICAsIG1fcnVsZUluZm9ybWF0aW9uKGNvbGxlY3RSdWxl
SW5mb3JtYXRpb24oKSkKIHsKICAgICBBU1NFUlQobV9ydWxlU2V0cy5zaXplKCkpOwogfQogCitJ
bnZhbGlkYXRvcjo6UnVsZUluZm9ybWF0aW9uIEludmFsaWRhdG9yOjpjb2xsZWN0UnVsZUluZm9y
bWF0aW9uKCkKK3sKKyAgICBSdWxlSW5mb3JtYXRpb24gaW5mb3JtYXRpb247CisgICAgZm9yIChh
dXRvKiBydWxlU2V0IDogbV9ydWxlU2V0cykgeworICAgICAgICBpZiAoIXJ1bGVTZXQtPnNsb3R0
ZWRQc2V1ZG9FbGVtZW50UnVsZXMoKS5pc0VtcHR5KCkpCisgICAgICAgICAgICBpbmZvcm1hdGlv
bi5oYXNTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFydWxl
U2V0LT5ob3N0UHNldWRvQ2xhc3NSdWxlcygpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGluZm9y
bWF0aW9uLmhhc0hvc3RQc2V1ZG9DbGFzc1J1bGVzID0gdHJ1ZTsKKyAgICAgICAgaWYgKHJ1bGVT
ZXQtPmhhc1NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcygpKQorICAgICAgICAgICAgaW5mb3JtYXRp
b24uaGFzU2hhZG93UHNldWRvRWxlbWVudFJ1bGVzID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFydWxl
U2V0LT5wYXJ0UHNldWRvRWxlbWVudFJ1bGVzKCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgaW5m
b3JtYXRpb24uaGFzUGFydFBzZXVkb0VsZW1lbnRSdWxlcyA9IHRydWU7CisgICAgfQorICAgIHJl
dHVybiBpbmZvcm1hdGlvbjsKK30KKwogSW52YWxpZGF0b3I6OkNoZWNrRGVzY2VuZGFudHMgSW52
YWxpZGF0b3I6OmludmFsaWRhdGVJZk5lZWRlZChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTZWxl
Y3RvckZpbHRlciogZmlsdGVyKQogewogICAgIGludmFsaWRhdGVJblNoYWRvd1RyZWVJZk5lZWRl
ZChlbGVtZW50KTsKIAotICAgIGJvb2wgc2hvdWxkQ2hlY2tGb3JTbG90cyA9IFsmXSB7Ci0gICAg
ICAgIGZvciAoYXV0byogcnVsZVNldCA6IG1fcnVsZVNldHMpIHsKLSAgICAgICAgICAgIGlmICgh
cnVsZVNldC0+c2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlcygpLmlzRW1wdHkoKSAmJiAhbV9kaWRJ
bnZhbGlkYXRlSG9zdENoaWxkcmVuKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9KCk7Ci0KKyAgICBib29sIHNob3Vs
ZENoZWNrRm9yU2xvdHMgPSBtX3J1bGVJbmZvcm1hdGlvbi5oYXNTbG90dGVkUHNldWRvRWxlbWVu
dFJ1bGVzICYmICFtX2RpZEludmFsaWRhdGVIb3N0Q2hpbGRyZW47CiAgICAgaWYgKHNob3VsZENo
ZWNrRm9yU2xvdHMgJiYgaXM8SFRNTFNsb3RFbGVtZW50PihlbGVtZW50KSkgewogICAgICAgICBh
dXRvKiBjb250YWluaW5nU2hhZG93Um9vdCA9IGVsZW1lbnQuY29udGFpbmluZ1NoYWRvd1Jvb3Qo
KTsKICAgICAgICAgaWYgKGNvbnRhaW5pbmdTaGFkb3dSb290ICYmIGNvbnRhaW5pbmdTaGFkb3dS
b290LT5ob3N0KCkpIHsKQEAgLTEyOSw4ICsxNDEsMTAgQEAgSW52YWxpZGF0b3I6OkNoZWNrRGVz
Y2VuZGFudHMgSW52YWxpZGF0b3I6OmludmFsaWRhdGVJZk5lZWRlZChFbGVtZW50JiBlbGVtZW50
LAogICAgICAgICAgICAgRWxlbWVudFJ1bGVDb2xsZWN0b3IgcnVsZUNvbGxlY3RvcihlbGVtZW50
LCAqcnVsZVNldCwgZmlsdGVyKTsKICAgICAgICAgICAgIHJ1bGVDb2xsZWN0b3Iuc2V0TW9kZShT
ZWxlY3RvckNoZWNrZXI6Ok1vZGU6OkNvbGxlY3RpbmdSdWxlc0lnbm9yaW5nVmlydHVhbFBzZXVk
b0VsZW1lbnRzKTsKIAotICAgICAgICAgICAgaWYgKHJ1bGVDb2xsZWN0b3IubWF0Y2hlc0FueUF1
dGhvclJ1bGVzKCkpCisgICAgICAgICAgICBpZiAocnVsZUNvbGxlY3Rvci5tYXRjaGVzQW55QXV0
aG9yUnVsZXMoKSkgewogICAgICAgICAgICAgICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0eWxlSW50
ZXJuYWwoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAg
fQogCiAgICAgICAgIHJldHVybiBDaGVja0Rlc2NlbmRhbnRzOjpZZXM7CkBAIC0yMDAsMTAgKzIx
NCw4IEBAIHZvaWQgSW52YWxpZGF0b3I6OmludmFsaWRhdGVTdHlsZShTaGFkb3dSb290JiBzaGFk
b3dSb290KQogewogICAgIEFTU0VSVCghbV9kaXJ0aWVzQWxsU3R5bGUpOwogCi0gICAgZm9yIChh
dXRvKiBydWxlU2V0IDogbV9ydWxlU2V0cykgewotICAgICAgICBpZiAoIXJ1bGVTZXQtPmhvc3RQ
c2V1ZG9DbGFzc1J1bGVzKCkuaXNFbXB0eSgpICYmIHNoYWRvd1Jvb3QuaG9zdCgpKQotICAgICAg
ICAgICAgc2hhZG93Um9vdC5ob3N0KCktPmludmFsaWRhdGVTdHlsZUludGVybmFsKCk7Ci0gICAg
fQorICAgIGlmIChtX3J1bGVJbmZvcm1hdGlvbi5oYXNIb3N0UHNldWRvQ2xhc3NSdWxlcyAmJiBz
aGFkb3dSb290Lmhvc3QoKSkKKyAgICAgICAgc2hhZG93Um9vdC5ob3N0KCktPmludmFsaWRhdGVT
dHlsZUludGVybmFsKCk7CiAKICAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5cGU8
RWxlbWVudD4oc2hhZG93Um9vdCkpIHsKICAgICAgICAgU2VsZWN0b3JGaWx0ZXIgZmlsdGVyOwpA
QCAtMjk3LDE3ICszMDksMTMgQEAgdm9pZCBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZUluU2hhZG93
VHJlZUlmTmVlZGVkKEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgaWYgKCFzaGFkb3dSb290KQogICAg
ICAgICByZXR1cm47CiAKKyAgICAvLyBGSVhNRTogVGhpcyBjb3VsZCBkbyBhY3R1YWwgcnVsZSBt
YXRjaGluZyB0b28uCisgICAgaWYgKG1fcnVsZUluZm9ybWF0aW9uLmhhc1NoYWRvd1BzZXVkb0Vs
ZW1lbnRSdWxlcykKKyAgICAgICAgZWxlbWVudC5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50
ZXJuYWwoKTsKIAotICAgIGZvciAoYXV0byogcnVsZVNldCA6IG1fcnVsZVNldHMpIHsKLSAgICAg
ICAgaWYgKHJ1bGVTZXQtPmhhc1NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcygpKSB7Ci0gICAgICAg
ICAgICAvLyBGSVhNRTogVGhpcyBjb3VsZCBkbyBhY3R1YWwgcnVsZSBtYXRjaGluZyB0b28uCi0g
ICAgICAgICAgICBlbGVtZW50LmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWVJbnRlcm5hbCgpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgLy8gRklYTUU6IE1vcmUgZmluZS1ncmFpbmVkIGludmFsaWRh
dGlvbiBmb3IgOjpwYXJ0KCkKLSAgICAgICAgaWYgKCFydWxlU2V0LT5wYXJ0UHNldWRvRWxlbWVu
dFJ1bGVzKCkuaXNFbXB0eSgpKQotICAgICAgICAgICAgaW52YWxpZGF0ZVNoYWRvd1BhcnRzKCpz
aGFkb3dSb290KTsKLSAgICB9CisgICAgLy8gRklYTUU6IE1vcmUgZmluZS1ncmFpbmVkIGludmFs
aWRhdGlvbiBmb3IgOjpwYXJ0KCkKKyAgICBpZiAobV9ydWxlSW5mb3JtYXRpb24uaGFzUGFydFBz
ZXVkb0VsZW1lbnRSdWxlcykKKyAgICAgICAgaW52YWxpZGF0ZVNoYWRvd1BhcnRzKCpzaGFkb3dS
b290KTsKIH0KIAogdm9pZCBJbnZhbGlkYXRvcjo6YWRkVG9NYXRjaEVsZW1lbnRSdWxlU2V0cyhJ
bnZhbGlkYXRvcjo6TWF0Y2hFbGVtZW50UnVsZVNldHMmIG1hdGNoRWxlbWVudFJ1bGVTZXRzLCBj
b25zdCBJbnZhbGlkYXRpb25SdWxlU2V0JiBpbnZhbGlkYXRpb25SdWxlU2V0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5oIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5oCmluZGV4IDNmZmIyOTc0MzcwLi5lZDMxM2EyNTA4
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuaApAQCAtNjcsOCArNjcs
MTkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGludmFsaWRhdGVJblNoYWRvd1RyZWVJZk5lZWRlZChF
bGVtZW50Jik7CiAgICAgdm9pZCBpbnZhbGlkYXRlU3R5bGVXaXRoTWF0Y2hFbGVtZW50KEVsZW1l
bnQmLCBNYXRjaEVsZW1lbnQpOwogCisgICAgc3RydWN0IFJ1bGVJbmZvcm1hdGlvbiB7CisgICAg
ICAgIGJvb2wgaGFzU2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlcyB7IGZhbHNlIH07CisgICAgICAg
IGJvb2wgaGFzSG9zdFBzZXVkb0NsYXNzUnVsZXMgeyBmYWxzZSB9OworICAgICAgICBib29sIGhh
c1NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyB7IGZhbHNlIH07CisgICAgICAgIGJvb2wgaGFzUGFy
dFBzZXVkb0VsZW1lbnRSdWxlcyB7IGZhbHNlIH07CisgICAgfTsKKyAgICBSdWxlSW5mb3JtYXRp
b24gY29sbGVjdFJ1bGVJbmZvcm1hdGlvbigpOworCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJ1bGVT
ZXQ+IG1fb3duZWRSdWxlU2V0OwotICAgIFZlY3Rvcjxjb25zdCBSdWxlU2V0KiwgMT4gbV9ydWxl
U2V0czsKKyAgICBjb25zdCBWZWN0b3I8Y29uc3QgUnVsZVNldCosIDE+IG1fcnVsZVNldHM7CisK
KyAgICBSdWxlSW5mb3JtYXRpb24gbV9ydWxlSW5mb3JtYXRpb247CisKICAgICBib29sIG1fZGly
dGllc0FsbFN0eWxlIHsgZmFsc2UgfTsKICAgICBib29sIG1fZGlkSW52YWxpZGF0ZUhvc3RDaGls
ZHJlbiB7IGZhbHNlIH07CiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>