<?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>205391</bug_id>
          
          <creation_ts>2019-12-18 06:18:11 -0800</creation_ts>
          <short_desc>Style::Invalidator should be able to invalidate using multiple RuleSets in one pass</short_desc>
          <delta_ts>2019-12-18 09:23:23 -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>1599770</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-18 06:18:11 -0800</bug_when>
    <thetext>Avoid repeated DOM traversals</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599772</commentid>
    <comment_count>1</comment_count>
      <attachid>385966</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-18 06:27:22 -0800</bug_when>
    <thetext>Created attachment 385966
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599778</commentid>
    <comment_count>2</comment_count>
      <attachid>385968</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-18 06:57:16 -0800</bug_when>
    <thetext>Created attachment 385968
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599838</commentid>
    <comment_count>3</comment_count>
      <attachid>385968</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-18 09:22:44 -0800</bug_when>
    <thetext>Comment on attachment 385968
patch

Clearing flags on attachment: 385968

Committed r253690: &lt;https://trac.webkit.org/changeset/253690&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599839</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-18 09:22:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599840</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-18 09:23:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/58045177&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385966</attachid>
            <date>2019-12-18 06:27:22 -0800</date>
            <delta_ts>2019-12-18 06:57:16 -0800</delta_ts>
            <desc>patch</desc>
            <filename>style-invalidator-vector.patch</filename>
            <type>text/plain</type>
            <size>13675</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2YzU3ZWU2ZGIwYS4uOTExNDA3MmNlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAxOS0xMi0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgU3R5bGU6OkludmFsaWRhdG9yIHNob3VsZCBiZSBhYmxlIHRvIGludmFsaWRh
dGUgdXNpbmcgbXVsdGlwbGUgUnVsZVNldHMgaW4gb25lIHBhc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTM5MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGluZWZmaWNpZW50IHRvIGRvIG11
bHRpcGxlIHBhc3NlcyBvdmVyIERPTSBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgUnVsZVNldHMgdG8g
aW52YWxpZGF0ZSB3aXRoLgorCisgICAgICAgICogc3R5bGUvQXR0cmlidXRlQ2hhbmdlSW52YWxp
ZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpBdHRyaWJ1dGVDaGFuZ2VJbnZh
bGlkYXRpb246OmludmFsaWRhdGVTdHlsZSk6CisKKyAgICAgICAgQ29sbGVjdCB0byBhIEhhc2hN
YXAgcGVyIE1hdGNoRWxlbWVudC4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkF0dHJpYnV0
ZUNoYW5nZUludmFsaWRhdGlvbjo6aW52YWxpZGF0ZVN0eWxlV2l0aFJ1bGVTZXRzKToKKworICAg
ICAgICBDYWxsIHRvIGNvbW1vbiBpbnZhbGlkYXRpb24gZnVuY3Rpb24gaW4gU3R5bGU6OkludmFs
aWRhdG9yLgorCisgICAgICAgICogc3R5bGUvQXR0cmlidXRlQ2hhbmdlSW52YWxpZGF0aW9uLmg6
CisgICAgICAgICogc3R5bGUvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OkNsYXNzQ2hhbmdlSW52YWxpZGF0aW9uOjpjb21wdXRlSW52YWxpZGF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpDbGFzc0NoYW5nZUludmFsaWRhdGlvbjo6
aW52YWxpZGF0ZVN0eWxlV2l0aFJ1bGVTZXRzKToKKworICAgICAgICBTYW1lIGZvciBjbGFzc2Vz
LgorCisgICAgICAgICogc3R5bGUvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaDoKKyAgICAgICAg
KiBzdHlsZS9TdHlsZUludmFsaWRhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpJ
bnZhbGlkYXRvcjo6SW52YWxpZGF0b3IpOgorCisgICAgICAgIFRha2UgYSBWZWN0b3Igb2YgUnVs
ZVNldHMuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpJbnZhbGlkYXRvcjo6aW52YWxpZGF0
ZUlmTmVlZGVkKToKKworICAgICAgICBMb29wIGFzIG5lZWRlZC4KKworICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlU3R5bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlSW5TaGFkb3dUcmVlSWZOZWVkZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlV2l0aE1hdGNo
RWxlbWVudFJ1bGVTZXRzKToKKworICAgICAgICBGYWN0b3IgdGhlIGludmFsaWRhdGlvbiBsb29w
IGFuZCBIYXNoTWFwIHRvIEludmFsaWRhdG9yLgorCisgICAgICAgICogc3R5bGUvU3R5bGVJbnZh
bGlkYXRvci5oOgorCiAyMDE5LTEyLTE3ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXNvbHZlIGR5bmFtaWMgbWVkaWEgcXVlcmllcyB3aXRob3V0IHJlY29u
c3RydWN0aW5nIFJ1bGVTZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9BdHRy
aWJ1dGVDaGFuZ2VJbnZhbGlkYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQXR0cmli
dXRlQ2hhbmdlSW52YWxpZGF0aW9uLmNwcAppbmRleCA0ODM0ZmQwMGFjMS4uODViOGE5NTI4ODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0F0dHJpYnV0ZUNoYW5nZUludmFsaWRh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQXR0cmlidXRlQ2hhbmdlSW52YWxp
ZGF0aW9uLmNwcApAQCAtMjgsOCArMjgsNiBAQAogCiAjaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiU3R5bGVJbnZhbGlkYXRpb25GdW5jdGlvbnMuaCIKLSNpbmNsdWRlICJT
dHlsZUludmFsaWRhdG9yLmgiCi0jaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBTdHlsZSB7CkBAIC04MCw3ICs3OCw5IEBAIHZvaWQg
QXR0cmlidXRlQ2hhbmdlSW52YWxpZGF0aW9uOjppbnZhbGlkYXRlU3R5bGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlCiAgICAgICAgICAgICBib29sIG9sZE1hdGNoZXMgPSAhb2xkVmFs
dWUuaXNOdWxsKCkgJiYgU2VsZWN0b3JDaGVja2VyOjphdHRyaWJ1dGVTZWxlY3Rvck1hdGNoZXMo
bV9lbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBvbGRWYWx1ZSwgKnNlbGVjdG9yKTsKICAgICAgICAg
ICAgIGJvb2wgbmV3TWF0Y2hlcyA9ICFuZXdWYWx1ZS5pc051bGwoKSAmJiBTZWxlY3RvckNoZWNr
ZXI6OmF0dHJpYnV0ZVNlbGVjdG9yTWF0Y2hlcyhtX2VsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIG5l
d1ZhbHVlLCAqc2VsZWN0b3IpOwogICAgICAgICAgICAgaWYgKG9sZE1hdGNoZXMgIT0gbmV3TWF0
Y2hlcykgewotICAgICAgICAgICAgICAgIG1faW52YWxpZGF0aW9uUnVsZVNldHMuYXBwZW5kKCZp
bnZhbGlkYXRpb25SdWxlU2V0KTsKKyAgICAgICAgICAgICAgICBtX21hdGNoRWxlbWVudFJ1bGVT
ZXRzLmVuc3VyZShpbnZhbGlkYXRpb25SdWxlU2V0Lm1hdGNoRWxlbWVudCwgW10geworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gVmVjdG9yPGNvbnN0IFJ1bGVTZXQqLCAxPiB7IH07CisgICAg
ICAgICAgICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlLmFwcGVuZChpbnZhbGlkYXRpb25SdWxlU2V0
LnJ1bGVTZXQuZ2V0KCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CkBAIC04OSwxMiArODksNyBAQCB2b2lkIEF0dHJpYnV0ZUNoYW5nZUludmFsaWRh
dGlvbjo6aW52YWxpZGF0ZVN0eWxlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZQogCiB2
b2lkIEF0dHJpYnV0ZUNoYW5nZUludmFsaWRhdGlvbjo6aW52YWxpZGF0ZVN0eWxlV2l0aFJ1bGVT
ZXRzKCkKIHsKLSAgICBTZXRGb3JTY29wZTxib29sPiBpc0ludmFsaWRhdGluZyhtX2VsZW1lbnQu
c3R5bGVSZXNvbHZlcigpLnJ1bGVTZXRzKCkuaXNJbnZhbGlkYXRpbmdTdHlsZVdpdGhSdWxlU2V0
cygpLCB0cnVlKTsKLQotICAgIGZvciAoYXV0byogaW52YWxpZGF0aW9uUnVsZVNldCA6IG1faW52
YWxpZGF0aW9uUnVsZVNldHMpIHsKLSAgICAgICAgSW52YWxpZGF0b3IgaW52YWxpZGF0b3IoKmlu
dmFsaWRhdGlvblJ1bGVTZXQtPnJ1bGVTZXQpOwotICAgICAgICBpbnZhbGlkYXRvci5pbnZhbGlk
YXRlU3R5bGVXaXRoTWF0Y2hFbGVtZW50KG1fZWxlbWVudCwgaW52YWxpZGF0aW9uUnVsZVNldC0+
bWF0Y2hFbGVtZW50KTsKLSAgICB9CisgICAgSW52YWxpZGF0b3I6OmludmFsaWRhdGVXaXRoTWF0
Y2hFbGVtZW50UnVsZVNldHMobV9lbGVtZW50LCBtX21hdGNoRWxlbWVudFJ1bGVTZXRzKTsKIH0K
IAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9BdHRyaWJ1dGVDaGFuZ2VJbnZh
bGlkYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0F0dHJpYnV0ZUNoYW5nZUludmFsaWRh
dGlvbi5oCmluZGV4IGM0ZGViNzNjNjk3Li5mMzIzZTAwM2YxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvQXR0cmlidXRlQ2hhbmdlSW52YWxpZGF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvQXR0cmlidXRlQ2hhbmdlSW52YWxpZGF0aW9uLmgKQEAgLTI2LDEyICsy
NiwxMSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAi
U3R5bGVJbnZhbGlkYXRvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgU3R5
bGUgewogCi1zdHJ1Y3QgSW52YWxpZGF0aW9uUnVsZVNldDsKLQogY2xhc3MgQXR0cmlidXRlQ2hh
bmdlSW52YWxpZGF0aW9uIHsKIHB1YmxpYzoKICAgICBBdHRyaWJ1dGVDaGFuZ2VJbnZhbGlkYXRp
b24oRWxlbWVudCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUpOwpAQCAtNDQsNyArNDMsNyBAQCBwcml2
YXRlOgogICAgIGNvbnN0IGJvb2wgbV9pc0VuYWJsZWQ7CiAgICAgRWxlbWVudCYgbV9lbGVtZW50
OwogCi0gICAgVmVjdG9yPGNvbnN0IEludmFsaWRhdGlvblJ1bGVTZXQqLCA0PiBtX2ludmFsaWRh
dGlvblJ1bGVTZXRzOworICAgIEludmFsaWRhdG9yOjpNYXRjaEVsZW1lbnRSdWxlU2V0cyBtX21h
dGNoRWxlbWVudFJ1bGVTZXRzOwogfTsKIAogaW5saW5lIEF0dHJpYnV0ZUNoYW5nZUludmFsaWRh
dGlvbjo6QXR0cmlidXRlQ2hhbmdlSW52YWxpZGF0aW9uKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmNwcAppbmRleCA4M2FhOWNmYjE1Mi4uOTBiNmQ2MWRh
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NsYXNzQ2hhbmdlSW52YWxpZGF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DbGFzc0NoYW5nZUludmFsaWRhdGlv
bi5jcHAKQEAgLTI5LDkgKzI5LDcgQEAKICNpbmNsdWRlICJFbGVtZW50Q2hpbGRJdGVyYXRvci5o
IgogI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJpbmcuaCIKICNpbmNsdWRlICJTdHlsZUludmFsaWRh
dGlvbkZ1bmN0aW9ucy5oIgotI2luY2x1ZGUgIlN0eWxlSW52YWxpZGF0b3IuaCIKICNpbmNsdWRl
IDx3dGYvQml0VmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBTdHlsZSB7CkBAIC0xMTIsMjAgKzExMCwxOCBAQCB2
b2lkIENsYXNzQ2hhbmdlSW52YWxpZGF0aW9uOjpjb21wdXRlSW52YWxpZGF0aW9uKGNvbnN0IFNw
YWNlU3BsaXRTdHJpbmcmIG9sZENsYQogCiAgICAgZm9yIChhdXRvKiBjaGFuZ2VkQ2xhc3MgOiBj
aGFuZ2VkQ2xhc3NlcykgewogICAgICAgICBpZiAoYXV0byogaW52YWxpZGF0aW9uUnVsZVNldHMg
PSBydWxlU2V0cy5jbGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzKGNoYW5nZWRDbGFzcykpIHsKLSAg
ICAgICAgICAgIGZvciAoYXV0byYgaW52YWxpZGF0aW9uUnVsZVNldCA6ICppbnZhbGlkYXRpb25S
dWxlU2V0cykKLSAgICAgICAgICAgICAgICBtX2ludmFsaWRhdGlvblJ1bGVTZXRzLmFwcGVuZCgm
aW52YWxpZGF0aW9uUnVsZVNldCk7CisgICAgICAgICAgICBmb3IgKGF1dG8mIGludmFsaWRhdGlv
blJ1bGVTZXQgOiAqaW52YWxpZGF0aW9uUnVsZVNldHMpIHsKKyAgICAgICAgICAgICAgICBtX21h
dGNoRWxlbWVudFJ1bGVTZXRzLmVuc3VyZShpbnZhbGlkYXRpb25SdWxlU2V0Lm1hdGNoRWxlbWVu
dCwgW10geworICAgICAgICAgICAgICAgICAgICByZXR1cm4gVmVjdG9yPGNvbnN0IFJ1bGVTZXQq
LCAxPiB7IH07CisgICAgICAgICAgICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlLmFwcGVuZChpbnZh
bGlkYXRpb25SdWxlU2V0LnJ1bGVTZXQuZ2V0KCkpOworICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgfQogfQogCiB2b2lkIENsYXNzQ2hhbmdlSW52YWxpZGF0aW9uOjppbnZhbGlkYXRlU3R5
bGVXaXRoUnVsZVNldHMoKQogewotICAgIFNldEZvclNjb3BlPGJvb2w+IGlzSW52YWxpZGF0aW5n
KG1fZWxlbWVudC5zdHlsZVJlc29sdmVyKCkucnVsZVNldHMoKS5pc0ludmFsaWRhdGluZ1N0eWxl
V2l0aFJ1bGVTZXRzKCksIHRydWUpOwotCi0gICAgZm9yIChhdXRvKiBpbnZhbGlkYXRpb25SdWxl
U2V0IDogbV9pbnZhbGlkYXRpb25SdWxlU2V0cykgewotICAgICAgICBJbnZhbGlkYXRvciBpbnZh
bGlkYXRvcigqaW52YWxpZGF0aW9uUnVsZVNldC0+cnVsZVNldCk7Ci0gICAgICAgIGludmFsaWRh
dG9yLmludmFsaWRhdGVTdHlsZVdpdGhNYXRjaEVsZW1lbnQobV9lbGVtZW50LCBpbnZhbGlkYXRp
b25SdWxlU2V0LT5tYXRjaEVsZW1lbnQpOwotICAgIH0KKyAgICBJbnZhbGlkYXRvcjo6aW52YWxp
ZGF0ZVdpdGhNYXRjaEVsZW1lbnRSdWxlU2V0cyhtX2VsZW1lbnQsIG1fbWF0Y2hFbGVtZW50UnVs
ZVNldHMpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DbGFzc0No
YW5nZUludmFsaWRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2xhc3NDaGFuZ2VJbnZh
bGlkYXRpb24uaAppbmRleCA3NmY5NDQ5YjNmYi4uNzY5MGJiMDY3ZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaApAQCAtMjYsMTcgKzI2LDE1
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJTdHls
ZUludmFsaWRhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIFJ1bGVTZXQ7CiBjbGFzcyBTcGFjZVNwbGl0U3RyaW5nOwogCiBuYW1l
c3BhY2UgU3R5bGUgewogCi1zdHJ1Y3QgSW52YWxpZGF0aW9uUnVsZVNldDsKLQogY2xhc3MgQ2xh
c3NDaGFuZ2VJbnZhbGlkYXRpb24gewogcHVibGljOgogICAgIENsYXNzQ2hhbmdlSW52YWxpZGF0
aW9uKEVsZW1lbnQmLCBjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBvbGRDbGFzc2VzLCBjb25zdCBT
cGFjZVNwbGl0U3RyaW5nJiBuZXdDbGFzc2VzKTsKQEAgLTQ5LDcgKzQ3LDcgQEAgcHJpdmF0ZToK
ICAgICBjb25zdCBib29sIG1faXNFbmFibGVkOwogICAgIEVsZW1lbnQmIG1fZWxlbWVudDsKIAot
ICAgIFZlY3Rvcjxjb25zdCBJbnZhbGlkYXRpb25SdWxlU2V0KiwgND4gbV9pbnZhbGlkYXRpb25S
dWxlU2V0czsKKyAgICBJbnZhbGlkYXRvcjo6TWF0Y2hFbGVtZW50UnVsZVNldHMgbV9tYXRjaEVs
ZW1lbnRSdWxlU2V0czsKIH07CiAKIGlubGluZSBDbGFzc0NoYW5nZUludmFsaWRhdGlvbjo6Q2xh
c3NDaGFuZ2VJbnZhbGlkYXRpb24oRWxlbWVudCYgZWxlbWVudCwgY29uc3QgU3BhY2VTcGxpdFN0
cmluZyYgb2xkQ2xhc3NlcywgY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgbmV3Q2xhc3NlcykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHAKaW5kZXggYzgyMTM1ZTU4OWEu
LjFmMDRmM2E0M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFs
aWRhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmNw
cApAQCAtMzUsOCArMzUsMTAgQEAKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgi
CiAjaW5jbHVkZSAiU2VsZWN0b3JGaWx0ZXIuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisj
aW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZUltcG9ydC5oIgog
I2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29w
ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgU3R5bGUgewpAQCAtODEsNyAr
ODMsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGREaXJ0eUFsbFN0eWxlKGNvbnN0IFZlY3RvcjxTdHls
ZVNoZWV0Q29udGVudHMqPiYgc2hlZXRzKQogCiBJbnZhbGlkYXRvcjo6SW52YWxpZGF0b3IoY29u
c3QgVmVjdG9yPFN0eWxlU2hlZXRDb250ZW50cyo+JiBzaGVldHMsIGNvbnN0IE1lZGlhUXVlcnlF
dmFsdWF0b3ImIG1lZGlhUXVlcnlFdmFsdWF0b3IpCiAgICAgOiBtX293bmVkUnVsZVNldChtYWtl
VW5pcXVlPFJ1bGVTZXQ+KCkpCi0gICAgLCBtX3J1bGVTZXQoKm1fb3duZWRSdWxlU2V0KQorICAg
ICwgbV9ydWxlU2V0cyh7IG1fb3duZWRSdWxlU2V0LmdldCgpIH0pCiAgICAgLCBtX2RpcnRpZXNB
bGxTdHlsZShzaG91bGREaXJ0eUFsbFN0eWxlKHNoZWV0cykpCiB7CiAgICAgaWYgKG1fZGlydGll
c0FsbFN0eWxlKQpAQCAtOTIsMTYgKzk0LDI0IEBAIEludmFsaWRhdG9yOjpJbnZhbGlkYXRvcihj
b25zdCBWZWN0b3I8U3R5bGVTaGVldENvbnRlbnRzKj4mIHNoZWV0cywgY29uc3QgTWVkaWFRCiAg
ICAgICAgIG1fb3duZWRSdWxlU2V0LT5hZGRSdWxlc0Zyb21TaGVldCgqc2hlZXQsIG1lZGlhUXVl
cnlFdmFsdWF0b3IpOwogfQogCi1JbnZhbGlkYXRvcjo6SW52YWxpZGF0b3IoY29uc3QgUnVsZVNl
dCYgcnVsZVNldCkKLSAgICA6IG1fcnVsZVNldChydWxlU2V0KQorSW52YWxpZGF0b3I6OkludmFs
aWRhdG9yKGNvbnN0IFZlY3Rvcjxjb25zdCBSdWxlU2V0KiwgMT4mIHJ1bGVTZXRzKQorICAgIDog
bV9ydWxlU2V0cyhydWxlU2V0cykKIHsKKyAgICBBU1NFUlQobV9ydWxlU2V0cy5zaXplKCkpOwog
fQogCiBJbnZhbGlkYXRvcjo6Q2hlY2tEZXNjZW5kYW50cyBJbnZhbGlkYXRvcjo6aW52YWxpZGF0
ZUlmTmVlZGVkKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFNlbGVjdG9yRmlsdGVyKiBmaWx0ZXIp
CiB7CiAgICAgaW52YWxpZGF0ZUluU2hhZG93VHJlZUlmTmVlZGVkKGVsZW1lbnQpOwogCi0gICAg
Ym9vbCBzaG91bGRDaGVja0ZvclNsb3RzID0gIW1fcnVsZVNldC5zbG90dGVkUHNldWRvRWxlbWVu
dFJ1bGVzKCkuaXNFbXB0eSgpICYmICFtX2RpZEludmFsaWRhdGVIb3N0Q2hpbGRyZW47CisgICAg
Ym9vbCBzaG91bGRDaGVja0ZvclNsb3RzID0gWyZdIHsKKyAgICAgICAgZm9yIChhdXRvKiBydWxl
U2V0IDogbV9ydWxlU2V0cykgeworICAgICAgICAgICAgaWYgKCFydWxlU2V0LT5zbG90dGVkUHNl
dWRvRWxlbWVudFJ1bGVzKCkuaXNFbXB0eSgpICYmICFtX2RpZEludmFsaWRhdGVIb3N0Q2hpbGRy
ZW4pCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0oKTsKKwogICAgIGlmIChzaG91bGRDaGVja0ZvclNsb3RzICYmIGlz
PEhUTUxTbG90RWxlbWVudD4oZWxlbWVudCkpIHsKICAgICAgICAgYXV0byogY29udGFpbmluZ1No
YWRvd1Jvb3QgPSBlbGVtZW50LmNvbnRhaW5pbmdTaGFkb3dSb290KCk7CiAgICAgICAgIGlmIChj
b250YWluaW5nU2hhZG93Um9vdCAmJiBjb250YWluaW5nU2hhZG93Um9vdC0+aG9zdCgpKSB7CkBA
IC0xMTQsMTEgKzEyNCwxMyBAQCBJbnZhbGlkYXRvcjo6Q2hlY2tEZXNjZW5kYW50cyBJbnZhbGlk
YXRvcjo6aW52YWxpZGF0ZUlmTmVlZGVkKEVsZW1lbnQmIGVsZW1lbnQsCiAKICAgICBzd2l0Y2gg
KGVsZW1lbnQuc3R5bGVWYWxpZGl0eSgpKSB7CiAgICAgY2FzZSBTdHlsZTo6VmFsaWRpdHk6OlZh
bGlkOiB7Ci0gICAgICAgIEVsZW1lbnRSdWxlQ29sbGVjdG9yIHJ1bGVDb2xsZWN0b3IoZWxlbWVu
dCwgbV9ydWxlU2V0LCBmaWx0ZXIpOwotICAgICAgICBydWxlQ29sbGVjdG9yLnNldE1vZGUoU2Vs
ZWN0b3JDaGVja2VyOjpNb2RlOjpDb2xsZWN0aW5nUnVsZXNJZ25vcmluZ1ZpcnR1YWxQc2V1ZG9F
bGVtZW50cyk7CisgICAgICAgIGZvciAoYXV0byogcnVsZVNldCA6IG1fcnVsZVNldHMpIHsKKyAg
ICAgICAgICAgIEVsZW1lbnRSdWxlQ29sbGVjdG9yIHJ1bGVDb2xsZWN0b3IoZWxlbWVudCwgKnJ1
bGVTZXQsIGZpbHRlcik7CisgICAgICAgICAgICBydWxlQ29sbGVjdG9yLnNldE1vZGUoU2VsZWN0
b3JDaGVja2VyOjpNb2RlOjpDb2xsZWN0aW5nUnVsZXNJZ25vcmluZ1ZpcnR1YWxQc2V1ZG9FbGVt
ZW50cyk7CiAKLSAgICAgICAgaWYgKHJ1bGVDb2xsZWN0b3IubWF0Y2hlc0FueUF1dGhvclJ1bGVz
KCkpCi0gICAgICAgICAgICBlbGVtZW50LmludmFsaWRhdGVTdHlsZUludGVybmFsKCk7CisgICAg
ICAgICAgICBpZiAocnVsZUNvbGxlY3Rvci5tYXRjaGVzQW55QXV0aG9yUnVsZXMoKSkKKyAgICAg
ICAgICAgICAgICBlbGVtZW50LmludmFsaWRhdGVTdHlsZUludGVybmFsKCk7CisgICAgICAgIH0K
IAogICAgICAgICByZXR1cm4gQ2hlY2tEZXNjZW5kYW50czo6WWVzOwogICAgIH0KQEAgLTE4Nyw4
ICsxOTksMTAgQEAgdm9pZCBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZVN0eWxlKFNoYWRvd1Jvb3Qm
IHNoYWRvd1Jvb3QpCiB7CiAgICAgQVNTRVJUKCFtX2RpcnRpZXNBbGxTdHlsZSk7CiAKLSAgICBp
ZiAoIW1fcnVsZVNldC5ob3N0UHNldWRvQ2xhc3NSdWxlcygpLmlzRW1wdHkoKSAmJiBzaGFkb3dS
b290Lmhvc3QoKSkKLSAgICAgICAgc2hhZG93Um9vdC5ob3N0KCktPmludmFsaWRhdGVTdHlsZUlu
dGVybmFsKCk7CisgICAgZm9yIChhdXRvKiBydWxlU2V0IDogbV9ydWxlU2V0cykgeworICAgICAg
ICBpZiAoIXJ1bGVTZXQtPmhvc3RQc2V1ZG9DbGFzc1J1bGVzKCkuaXNFbXB0eSgpICYmIHNoYWRv
d1Jvb3QuaG9zdCgpKQorICAgICAgICAgICAgc2hhZG93Um9vdC5ob3N0KCktPmludmFsaWRhdGVT
dHlsZUludGVybmFsKCk7CisgICAgfQogCiAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVu
T2ZUeXBlPEVsZW1lbnQ+KHNoYWRvd1Jvb3QpKSB7CiAgICAgICAgIFNlbGVjdG9yRmlsdGVyIGZp
bHRlcjsKQEAgLTI4MiwxNCArMjk2LDI3IEBAIHZvaWQgSW52YWxpZGF0b3I6OmludmFsaWRhdGVJ
blNoYWRvd1RyZWVJZk5lZWRlZChFbGVtZW50JiBlbGVtZW50KQogICAgIGlmICghc2hhZG93Um9v
dCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fcnVsZVNldC5oYXNTaGFkb3dQc2V1ZG9F
bGVtZW50UnVsZXMoKSkgewotICAgICAgICAvLyBGSVhNRTogVGhpcyBjb3VsZCBkbyBhY3R1YWwg
cnVsZSBtYXRjaGluZyB0b28uCi0gICAgICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0eWxlRm9yU3Vi
dHJlZUludGVybmFsKCk7CisKKyAgICBmb3IgKGF1dG8qIHJ1bGVTZXQgOiBtX3J1bGVTZXRzKSB7
CisgICAgICAgIGlmIChydWxlU2V0LT5oYXNTaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMoKSkgewor
ICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY291bGQgZG8gYWN0dWFsIHJ1bGUgbWF0Y2hpbmcg
dG9vLgorICAgICAgICAgICAgZWxlbWVudC5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50ZXJu
YWwoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBNb3JlIGZpbmUtZ3JhaW5lZCBp
bnZhbGlkYXRpb24gZm9yIDo6cGFydCgpCisgICAgICAgIGlmICghcnVsZVNldC0+cGFydFBzZXVk
b0VsZW1lbnRSdWxlcygpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGludmFsaWRhdGVTaGFkb3dQ
YXJ0cygqc2hhZG93Um9vdCk7CiAgICAgfQorfQogCi0gICAgLy8gRklYTUU6IE1vcmUgZmluZS1n
cmFpbmVkIGludmFsaWRhdGlvbiBmb3IgOjpwYXJ0KCkKLSAgICBpZiAoIW1fcnVsZVNldC5wYXJ0
UHNldWRvRWxlbWVudFJ1bGVzKCkuaXNFbXB0eSgpKQotICAgICAgICBpbnZhbGlkYXRlU2hhZG93
UGFydHMoKnNoYWRvd1Jvb3QpOwordm9pZCBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZVdpdGhNYXRj
aEVsZW1lbnRSdWxlU2V0cyhFbGVtZW50JiBlbGVtZW50LCBjb25zdCBNYXRjaEVsZW1lbnRSdWxl
U2V0cyYgbWF0Y2hFbGVtZW50UnVsZVNldHMpCit7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNJ
bnZhbGlkYXRpbmcoZWxlbWVudC5zdHlsZVJlc29sdmVyKCkucnVsZVNldHMoKS5pc0ludmFsaWRh
dGluZ1N0eWxlV2l0aFJ1bGVTZXRzKCksIHRydWUpOworCisgICAgZm9yIChhdXRvJiBtYXRjaEVs
ZW1lbnRBbmRSdWxlU2V0IDogbWF0Y2hFbGVtZW50UnVsZVNldHMpIHsKKyAgICAgICAgSW52YWxp
ZGF0b3IgaW52YWxpZGF0b3IobWF0Y2hFbGVtZW50QW5kUnVsZVNldC52YWx1ZSk7CisgICAgICAg
IGludmFsaWRhdG9yLmludmFsaWRhdGVTdHlsZVdpdGhNYXRjaEVsZW1lbnQoZWxlbWVudCwgbWF0
Y2hFbGVtZW50QW5kUnVsZVNldC5rZXkpOworICAgIH0KIH0KIAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUludmFsaWRhdG9yLmgKaW5kZXggMmVmZjQ0YTgwOWMuLjVjYWJmMzU0NjEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5oCkBAIC0yNyw2ICsyNyw3IEBACiAK
ICNpbmNsdWRlICJSdWxlRmVhdHVyZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NCw3ICs0
NSw3IEBAIGNsYXNzIFJ1bGVTZXQ7CiBjbGFzcyBJbnZhbGlkYXRvciB7CiBwdWJsaWM6CiAgICAg
SW52YWxpZGF0b3IoY29uc3QgVmVjdG9yPFN0eWxlU2hlZXRDb250ZW50cyo+JiwgY29uc3QgTWVk
aWFRdWVyeUV2YWx1YXRvciYpOwotICAgIEludmFsaWRhdG9yKGNvbnN0IFJ1bGVTZXQmKTsKKyAg
ICBJbnZhbGlkYXRvcihjb25zdCBWZWN0b3I8Y29uc3QgUnVsZVNldCosIDE+Jik7CiAKICAgICBi
b29sIGRpcnRpZXNBbGxTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlydGllc0FsbFN0eWxlOyB9
CiAgICAgdm9pZCBpbnZhbGlkYXRlU3R5bGUoRG9jdW1lbnQmKTsKQEAgLTU0LDYgKzU1LDkgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZVNoYWRvd1BhcnRzKFNoYWRvd1Jv
b3QmKTsKIAorICAgIHVzaW5nIE1hdGNoRWxlbWVudFJ1bGVTZXRzID0gSGFzaE1hcDxNYXRjaEVs
ZW1lbnQsIFZlY3Rvcjxjb25zdCBSdWxlU2V0KiwgMT4sIFdURjo6SW50SGFzaDxNYXRjaEVsZW1l
bnQ+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPE1hdGNoRWxlbWVudD4+OworICAgIHN0YXRp
YyB2b2lkIGludmFsaWRhdGVXaXRoTWF0Y2hFbGVtZW50UnVsZVNldHMoRWxlbWVudCYsIGNvbnN0
IE1hdGNoRWxlbWVudFJ1bGVTZXRzJik7CisKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBDaGVj
a0Rlc2NlbmRhbnRzIHsgWWVzLCBObyB9OwogICAgIENoZWNrRGVzY2VuZGFudHMgaW52YWxpZGF0
ZUlmTmVlZGVkKEVsZW1lbnQmLCBjb25zdCBTZWxlY3RvckZpbHRlciopOwpAQCAtNjIsNyArNjYs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZUluU2hhZG93VHJlZUlmTmVlZGVkKEVs
ZW1lbnQmKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSdWxlU2V0PiBtX293bmVkUnVsZVNldDsK
LSAgICBjb25zdCBSdWxlU2V0JiBtX3J1bGVTZXQ7CisgICAgVmVjdG9yPGNvbnN0IFJ1bGVTZXQq
LCAxPiBtX3J1bGVTZXRzOwogICAgIGJvb2wgbV9kaXJ0aWVzQWxsU3R5bGUgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9kaWRJbnZhbGlkYXRlSG9zdENoaWxkcmVuIHsgZmFsc2UgfTsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385968</attachid>
            <date>2019-12-18 06:57:16 -0800</date>
            <delta_ts>2019-12-18 09:22:44 -0800</delta_ts>
            <desc>patch</desc>
            <filename>style-invalidator-vector-2.patch</filename>
            <type>text/plain</type>
            <size>14200</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2YzU3ZWU2ZGIwYS4uOTExNDA3MmNlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAxOS0xMi0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgU3R5bGU6OkludmFsaWRhdG9yIHNob3VsZCBiZSBhYmxlIHRvIGludmFsaWRh
dGUgdXNpbmcgbXVsdGlwbGUgUnVsZVNldHMgaW4gb25lIHBhc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTM5MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGluZWZmaWNpZW50IHRvIGRvIG11
bHRpcGxlIHBhc3NlcyBvdmVyIERPTSBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgUnVsZVNldHMgdG8g
aW52YWxpZGF0ZSB3aXRoLgorCisgICAgICAgICogc3R5bGUvQXR0cmlidXRlQ2hhbmdlSW52YWxp
ZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpBdHRyaWJ1dGVDaGFuZ2VJbnZh
bGlkYXRpb246OmludmFsaWRhdGVTdHlsZSk6CisKKyAgICAgICAgQ29sbGVjdCB0byBhIEhhc2hN
YXAgcGVyIE1hdGNoRWxlbWVudC4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkF0dHJpYnV0
ZUNoYW5nZUludmFsaWRhdGlvbjo6aW52YWxpZGF0ZVN0eWxlV2l0aFJ1bGVTZXRzKToKKworICAg
ICAgICBDYWxsIHRvIGNvbW1vbiBpbnZhbGlkYXRpb24gZnVuY3Rpb24gaW4gU3R5bGU6OkludmFs
aWRhdG9yLgorCisgICAgICAgICogc3R5bGUvQXR0cmlidXRlQ2hhbmdlSW52YWxpZGF0aW9uLmg6
CisgICAgICAgICogc3R5bGUvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OkNsYXNzQ2hhbmdlSW52YWxpZGF0aW9uOjpjb21wdXRlSW52YWxpZGF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpDbGFzc0NoYW5nZUludmFsaWRhdGlvbjo6
aW52YWxpZGF0ZVN0eWxlV2l0aFJ1bGVTZXRzKToKKworICAgICAgICBTYW1lIGZvciBjbGFzc2Vz
LgorCisgICAgICAgICogc3R5bGUvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaDoKKyAgICAgICAg
KiBzdHlsZS9TdHlsZUludmFsaWRhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpJ
bnZhbGlkYXRvcjo6SW52YWxpZGF0b3IpOgorCisgICAgICAgIFRha2UgYSBWZWN0b3Igb2YgUnVs
ZVNldHMuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpJbnZhbGlkYXRvcjo6aW52YWxpZGF0
ZUlmTmVlZGVkKToKKworICAgICAgICBMb29wIGFzIG5lZWRlZC4KKworICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlU3R5bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlSW5TaGFkb3dUcmVlSWZOZWVkZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlV2l0aE1hdGNo
RWxlbWVudFJ1bGVTZXRzKToKKworICAgICAgICBGYWN0b3IgdGhlIGludmFsaWRhdGlvbiBsb29w
IGFuZCBIYXNoTWFwIHRvIEludmFsaWRhdG9yLgorCisgICAgICAgICogc3R5bGUvU3R5bGVJbnZh
bGlkYXRvci5oOgorCiAyMDE5LTEyLTE3ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXNvbHZlIGR5bmFtaWMgbWVkaWEgcXVlcmllcyB3aXRob3V0IHJlY29u
c3RydWN0aW5nIFJ1bGVTZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9BdHRy
aWJ1dGVDaGFuZ2VJbnZhbGlkYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQXR0cmli
dXRlQ2hhbmdlSW52YWxpZGF0aW9uLmNwcAppbmRleCA0ODM0ZmQwMGFjMS4uNmFmNmRjNzhhYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0F0dHJpYnV0ZUNoYW5nZUludmFsaWRh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQXR0cmlidXRlQ2hhbmdlSW52YWxp
ZGF0aW9uLmNwcApAQCAtMjgsOCArMjgsNiBAQAogCiAjaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiU3R5bGVJbnZhbGlkYXRpb25GdW5jdGlvbnMuaCIKLSNpbmNsdWRlICJT
dHlsZUludmFsaWRhdG9yLmgiCi0jaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBTdHlsZSB7CkBAIC04MCw3ICs3OCw3IEBAIHZvaWQg
QXR0cmlidXRlQ2hhbmdlSW52YWxpZGF0aW9uOjppbnZhbGlkYXRlU3R5bGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlCiAgICAgICAgICAgICBib29sIG9sZE1hdGNoZXMgPSAhb2xkVmFs
dWUuaXNOdWxsKCkgJiYgU2VsZWN0b3JDaGVja2VyOjphdHRyaWJ1dGVTZWxlY3Rvck1hdGNoZXMo
bV9lbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBvbGRWYWx1ZSwgKnNlbGVjdG9yKTsKICAgICAgICAg
ICAgIGJvb2wgbmV3TWF0Y2hlcyA9ICFuZXdWYWx1ZS5pc051bGwoKSAmJiBTZWxlY3RvckNoZWNr
ZXI6OmF0dHJpYnV0ZVNlbGVjdG9yTWF0Y2hlcyhtX2VsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIG5l
d1ZhbHVlLCAqc2VsZWN0b3IpOwogICAgICAgICAgICAgaWYgKG9sZE1hdGNoZXMgIT0gbmV3TWF0
Y2hlcykgewotICAgICAgICAgICAgICAgIG1faW52YWxpZGF0aW9uUnVsZVNldHMuYXBwZW5kKCZp
bnZhbGlkYXRpb25SdWxlU2V0KTsKKyAgICAgICAgICAgICAgICBJbnZhbGlkYXRvcjo6YWRkVG9N
YXRjaEVsZW1lbnRSdWxlU2V0cyhtX21hdGNoRWxlbWVudFJ1bGVTZXRzLCBpbnZhbGlkYXRpb25S
dWxlU2V0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQpAQCAtODksMTIgKzg3LDcgQEAgdm9pZCBBdHRyaWJ1dGVDaGFuZ2VJbnZhbGlkYXRpb246Omlu
dmFsaWRhdGVTdHlsZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGUKIAogdm9pZCBBdHRy
aWJ1dGVDaGFuZ2VJbnZhbGlkYXRpb246OmludmFsaWRhdGVTdHlsZVdpdGhSdWxlU2V0cygpCiB7
Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNJbnZhbGlkYXRpbmcobV9lbGVtZW50LnN0eWxlUmVz
b2x2ZXIoKS5ydWxlU2V0cygpLmlzSW52YWxpZGF0aW5nU3R5bGVXaXRoUnVsZVNldHMoKSwgdHJ1
ZSk7Ci0KLSAgICBmb3IgKGF1dG8qIGludmFsaWRhdGlvblJ1bGVTZXQgOiBtX2ludmFsaWRhdGlv
blJ1bGVTZXRzKSB7Ci0gICAgICAgIEludmFsaWRhdG9yIGludmFsaWRhdG9yKCppbnZhbGlkYXRp
b25SdWxlU2V0LT5ydWxlU2V0KTsKLSAgICAgICAgaW52YWxpZGF0b3IuaW52YWxpZGF0ZVN0eWxl
V2l0aE1hdGNoRWxlbWVudChtX2VsZW1lbnQsIGludmFsaWRhdGlvblJ1bGVTZXQtPm1hdGNoRWxl
bWVudCk7Ci0gICAgfQorICAgIEludmFsaWRhdG9yOjppbnZhbGlkYXRlV2l0aE1hdGNoRWxlbWVu
dFJ1bGVTZXRzKG1fZWxlbWVudCwgbV9tYXRjaEVsZW1lbnRSdWxlU2V0cyk7CiB9CiAKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQXR0cmlidXRlQ2hhbmdlSW52YWxpZGF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9BdHRyaWJ1dGVDaGFuZ2VJbnZhbGlkYXRpb24uaApp
bmRleCBjNGRlYjczYzY5Ny4uZjMyM2UwMDNmMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL0F0dHJpYnV0ZUNoYW5nZUludmFsaWRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL0F0dHJpYnV0ZUNoYW5nZUludmFsaWRhdGlvbi5oCkBAIC0yNiwxMiArMjYsMTEgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIlN0eWxlSW52
YWxpZGF0b3IuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIFN0eWxlIHsKIAot
c3RydWN0IEludmFsaWRhdGlvblJ1bGVTZXQ7Ci0KIGNsYXNzIEF0dHJpYnV0ZUNoYW5nZUludmFs
aWRhdGlvbiB7CiBwdWJsaWM6CiAgICAgQXR0cmlidXRlQ2hhbmdlSW52YWxpZGF0aW9uKEVsZW1l
bnQmLCBjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIG5ld1ZhbHVlKTsKQEAgLTQ0LDcgKzQzLDcgQEAgcHJpdmF0ZToKICAg
ICBjb25zdCBib29sIG1faXNFbmFibGVkOwogICAgIEVsZW1lbnQmIG1fZWxlbWVudDsKIAotICAg
IFZlY3Rvcjxjb25zdCBJbnZhbGlkYXRpb25SdWxlU2V0KiwgND4gbV9pbnZhbGlkYXRpb25SdWxl
U2V0czsKKyAgICBJbnZhbGlkYXRvcjo6TWF0Y2hFbGVtZW50UnVsZVNldHMgbV9tYXRjaEVsZW1l
bnRSdWxlU2V0czsKIH07CiAKIGlubGluZSBBdHRyaWJ1dGVDaGFuZ2VJbnZhbGlkYXRpb246OkF0
dHJpYnV0ZUNoYW5nZUludmFsaWRhdGlvbihFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgbmV3VmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9D
bGFzc0NoYW5nZUludmFsaWRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DbGFzc0No
YW5nZUludmFsaWRhdGlvbi5jcHAKaW5kZXggODNhYTljZmIxNTIuLjI5YzhmYjEwYWRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uY3BwCkBA
IC0yOSw5ICsyOSw3IEBACiAjaW5jbHVkZSAiRWxlbWVudENoaWxkSXRlcmF0b3IuaCIKICNpbmNs
dWRlICJTcGFjZVNwbGl0U3RyaW5nLmgiCiAjaW5jbHVkZSAiU3R5bGVJbnZhbGlkYXRpb25GdW5j
dGlvbnMuaCIKLSNpbmNsdWRlICJTdHlsZUludmFsaWRhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0Jp
dFZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBuYW1lc3BhY2UgU3R5bGUgewpAQCAtMTEzLDE5ICsxMTEsMTQgQEAgdm9pZCBDbGFz
c0NoYW5nZUludmFsaWRhdGlvbjo6Y29tcHV0ZUludmFsaWRhdGlvbihjb25zdCBTcGFjZVNwbGl0
U3RyaW5nJiBvbGRDbGEKICAgICBmb3IgKGF1dG8qIGNoYW5nZWRDbGFzcyA6IGNoYW5nZWRDbGFz
c2VzKSB7CiAgICAgICAgIGlmIChhdXRvKiBpbnZhbGlkYXRpb25SdWxlU2V0cyA9IHJ1bGVTZXRz
LmNsYXNzSW52YWxpZGF0aW9uUnVsZVNldHMoY2hhbmdlZENsYXNzKSkgewogICAgICAgICAgICAg
Zm9yIChhdXRvJiBpbnZhbGlkYXRpb25SdWxlU2V0IDogKmludmFsaWRhdGlvblJ1bGVTZXRzKQot
ICAgICAgICAgICAgICAgIG1faW52YWxpZGF0aW9uUnVsZVNldHMuYXBwZW5kKCZpbnZhbGlkYXRp
b25SdWxlU2V0KTsKKyAgICAgICAgICAgICAgICBJbnZhbGlkYXRvcjo6YWRkVG9NYXRjaEVsZW1l
bnRSdWxlU2V0cyhtX21hdGNoRWxlbWVudFJ1bGVTZXRzLCBpbnZhbGlkYXRpb25SdWxlU2V0KTsK
ICAgICAgICAgfQogICAgIH0KIH0KIAogdm9pZCBDbGFzc0NoYW5nZUludmFsaWRhdGlvbjo6aW52
YWxpZGF0ZVN0eWxlV2l0aFJ1bGVTZXRzKCkKIHsKLSAgICBTZXRGb3JTY29wZTxib29sPiBpc0lu
dmFsaWRhdGluZyhtX2VsZW1lbnQuc3R5bGVSZXNvbHZlcigpLnJ1bGVTZXRzKCkuaXNJbnZhbGlk
YXRpbmdTdHlsZVdpdGhSdWxlU2V0cygpLCB0cnVlKTsKLQotICAgIGZvciAoYXV0byogaW52YWxp
ZGF0aW9uUnVsZVNldCA6IG1faW52YWxpZGF0aW9uUnVsZVNldHMpIHsKLSAgICAgICAgSW52YWxp
ZGF0b3IgaW52YWxpZGF0b3IoKmludmFsaWRhdGlvblJ1bGVTZXQtPnJ1bGVTZXQpOwotICAgICAg
ICBpbnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5bGVXaXRoTWF0Y2hFbGVtZW50KG1fZWxlbWVudCwg
aW52YWxpZGF0aW9uUnVsZVNldC0+bWF0Y2hFbGVtZW50KTsKLSAgICB9CisgICAgSW52YWxpZGF0
b3I6OmludmFsaWRhdGVXaXRoTWF0Y2hFbGVtZW50UnVsZVNldHMobV9lbGVtZW50LCBtX21hdGNo
RWxlbWVudFJ1bGVTZXRzKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NsYXNz
Q2hhbmdlSW52YWxpZGF0aW9uLmgKaW5kZXggNzZmOTQ0OWIzZmIuLjc2OTBiYjA2N2U2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmgKQEAgLTI2
LDE3ICsyNiwxNSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5j
bHVkZSAiU3R5bGVJbnZhbGlkYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBSdWxlU2V0OwogY2xhc3MgU3BhY2VTcGxpdFN0cmlu
ZzsKIAogbmFtZXNwYWNlIFN0eWxlIHsKIAotc3RydWN0IEludmFsaWRhdGlvblJ1bGVTZXQ7Ci0K
IGNsYXNzIENsYXNzQ2hhbmdlSW52YWxpZGF0aW9uIHsKIHB1YmxpYzoKICAgICBDbGFzc0NoYW5n
ZUludmFsaWRhdGlvbihFbGVtZW50JiwgY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgb2xkQ2xhc3Nl
cywgY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgbmV3Q2xhc3Nlcyk7CkBAIC00OSw3ICs0Nyw3IEBA
IHByaXZhdGU6CiAgICAgY29uc3QgYm9vbCBtX2lzRW5hYmxlZDsKICAgICBFbGVtZW50JiBtX2Vs
ZW1lbnQ7CiAKLSAgICBWZWN0b3I8Y29uc3QgSW52YWxpZGF0aW9uUnVsZVNldCosIDQ+IG1faW52
YWxpZGF0aW9uUnVsZVNldHM7CisgICAgSW52YWxpZGF0b3I6Ok1hdGNoRWxlbWVudFJ1bGVTZXRz
IG1fbWF0Y2hFbGVtZW50UnVsZVNldHM7CiB9OwogCiBpbmxpbmUgQ2xhc3NDaGFuZ2VJbnZhbGlk
YXRpb246OkNsYXNzQ2hhbmdlSW52YWxpZGF0aW9uKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFNw
YWNlU3BsaXRTdHJpbmcmIG9sZENsYXNzZXMsIGNvbnN0IFNwYWNlU3BsaXRTdHJpbmcmIG5ld0Ns
YXNzZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuY3BwCmluZGV4IGM4
MjEzNWU1ODlhLi5kZjRlN2FmNDM5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVJbnZhbGlkYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZh
bGlkYXRvci5jcHAKQEAgLTM1LDggKzM1LDExIEBACiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNlbGVjdG9yRmlsdGVyLmgiCiAjaW5jbHVkZSAiU2hhZG93
Um9vdC5oIgorI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJTdHlsZVJ1bGVJ
bXBvcnQuaCIKKyNpbmNsdWRlICJTdHlsZVNjb3BlUnVsZVNldHMuaCIKICNpbmNsdWRlICJTdHls
ZVNoZWV0Q29udGVudHMuaCIKKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIFN0eWxlIHsKQEAgLTgxLDcgKzg0LDcgQEAgc3RhdGlj
IGJvb2wgc2hvdWxkRGlydHlBbGxTdHlsZShjb25zdCBWZWN0b3I8U3R5bGVTaGVldENvbnRlbnRz
Kj4mIHNoZWV0cykKIAogSW52YWxpZGF0b3I6OkludmFsaWRhdG9yKGNvbnN0IFZlY3RvcjxTdHls
ZVNoZWV0Q29udGVudHMqPiYgc2hlZXRzLCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBtZWRp
YVF1ZXJ5RXZhbHVhdG9yKQogICAgIDogbV9vd25lZFJ1bGVTZXQobWFrZVVuaXF1ZTxSdWxlU2V0
PigpKQotICAgICwgbV9ydWxlU2V0KCptX293bmVkUnVsZVNldCkKKyAgICAsIG1fcnVsZVNldHMo
eyBtX293bmVkUnVsZVNldC5nZXQoKSB9KQogICAgICwgbV9kaXJ0aWVzQWxsU3R5bGUoc2hvdWxk
RGlydHlBbGxTdHlsZShzaGVldHMpKQogewogICAgIGlmIChtX2RpcnRpZXNBbGxTdHlsZSkKQEAg
LTkyLDE2ICs5NSwyNCBAQCBJbnZhbGlkYXRvcjo6SW52YWxpZGF0b3IoY29uc3QgVmVjdG9yPFN0
eWxlU2hlZXRDb250ZW50cyo+JiBzaGVldHMsIGNvbnN0IE1lZGlhUQogICAgICAgICBtX293bmVk
UnVsZVNldC0+YWRkUnVsZXNGcm9tU2hlZXQoKnNoZWV0LCBtZWRpYVF1ZXJ5RXZhbHVhdG9yKTsK
IH0KIAotSW52YWxpZGF0b3I6OkludmFsaWRhdG9yKGNvbnN0IFJ1bGVTZXQmIHJ1bGVTZXQpCi0g
ICAgOiBtX3J1bGVTZXQocnVsZVNldCkKK0ludmFsaWRhdG9yOjpJbnZhbGlkYXRvcihjb25zdCBW
ZWN0b3I8Y29uc3QgUnVsZVNldCosIDE+JiBydWxlU2V0cykKKyAgICA6IG1fcnVsZVNldHMocnVs
ZVNldHMpCiB7CisgICAgQVNTRVJUKG1fcnVsZVNldHMuc2l6ZSgpKTsKIH0KIAogSW52YWxpZGF0
b3I6OkNoZWNrRGVzY2VuZGFudHMgSW52YWxpZGF0b3I6OmludmFsaWRhdGVJZk5lZWRlZChFbGVt
ZW50JiBlbGVtZW50LCBjb25zdCBTZWxlY3RvckZpbHRlciogZmlsdGVyKQogewogICAgIGludmFs
aWRhdGVJblNoYWRvd1RyZWVJZk5lZWRlZChlbGVtZW50KTsKIAotICAgIGJvb2wgc2hvdWxkQ2hl
Y2tGb3JTbG90cyA9ICFtX3J1bGVTZXQuc2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlcygpLmlzRW1w
dHkoKSAmJiAhbV9kaWRJbnZhbGlkYXRlSG9zdENoaWxkcmVuOworICAgIGJvb2wgc2hvdWxkQ2hl
Y2tGb3JTbG90cyA9IFsmXSB7CisgICAgICAgIGZvciAoYXV0byogcnVsZVNldCA6IG1fcnVsZVNl
dHMpIHsKKyAgICAgICAgICAgIGlmICghcnVsZVNldC0+c2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxl
cygpLmlzRW1wdHkoKSAmJiAhbV9kaWRJbnZhbGlkYXRlSG9zdENoaWxkcmVuKQorICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9KCk7CisKICAgICBpZiAoc2hvdWxkQ2hlY2tGb3JTbG90cyAmJiBpczxIVE1MU2xvdEVsZW1l
bnQ+KGVsZW1lbnQpKSB7CiAgICAgICAgIGF1dG8qIGNvbnRhaW5pbmdTaGFkb3dSb290ID0gZWxl
bWVudC5jb250YWluaW5nU2hhZG93Um9vdCgpOwogICAgICAgICBpZiAoY29udGFpbmluZ1NoYWRv
d1Jvb3QgJiYgY29udGFpbmluZ1NoYWRvd1Jvb3QtPmhvc3QoKSkgewpAQCAtMTE0LDExICsxMjUs
MTMgQEAgSW52YWxpZGF0b3I6OkNoZWNrRGVzY2VuZGFudHMgSW52YWxpZGF0b3I6OmludmFsaWRh
dGVJZk5lZWRlZChFbGVtZW50JiBlbGVtZW50LAogCiAgICAgc3dpdGNoIChlbGVtZW50LnN0eWxl
VmFsaWRpdHkoKSkgewogICAgIGNhc2UgU3R5bGU6OlZhbGlkaXR5OjpWYWxpZDogewotICAgICAg
ICBFbGVtZW50UnVsZUNvbGxlY3RvciBydWxlQ29sbGVjdG9yKGVsZW1lbnQsIG1fcnVsZVNldCwg
ZmlsdGVyKTsKLSAgICAgICAgcnVsZUNvbGxlY3Rvci5zZXRNb2RlKFNlbGVjdG9yQ2hlY2tlcjo6
TW9kZTo6Q29sbGVjdGluZ1J1bGVzSWdub3JpbmdWaXJ0dWFsUHNldWRvRWxlbWVudHMpOworICAg
ICAgICBmb3IgKGF1dG8qIHJ1bGVTZXQgOiBtX3J1bGVTZXRzKSB7CisgICAgICAgICAgICBFbGVt
ZW50UnVsZUNvbGxlY3RvciBydWxlQ29sbGVjdG9yKGVsZW1lbnQsICpydWxlU2V0LCBmaWx0ZXIp
OworICAgICAgICAgICAgcnVsZUNvbGxlY3Rvci5zZXRNb2RlKFNlbGVjdG9yQ2hlY2tlcjo6TW9k
ZTo6Q29sbGVjdGluZ1J1bGVzSWdub3JpbmdWaXJ0dWFsUHNldWRvRWxlbWVudHMpOwogCi0gICAg
ICAgIGlmIChydWxlQ29sbGVjdG9yLm1hdGNoZXNBbnlBdXRob3JSdWxlcygpKQotICAgICAgICAg
ICAgZWxlbWVudC5pbnZhbGlkYXRlU3R5bGVJbnRlcm5hbCgpOworICAgICAgICAgICAgaWYgKHJ1
bGVDb2xsZWN0b3IubWF0Y2hlc0FueUF1dGhvclJ1bGVzKCkpCisgICAgICAgICAgICAgICAgZWxl
bWVudC5pbnZhbGlkYXRlU3R5bGVJbnRlcm5hbCgpOworICAgICAgICB9CiAKICAgICAgICAgcmV0
dXJuIENoZWNrRGVzY2VuZGFudHM6OlllczsKICAgICB9CkBAIC0xODcsOCArMjAwLDEwIEBAIHZv
aWQgSW52YWxpZGF0b3I6OmludmFsaWRhdGVTdHlsZShTaGFkb3dSb290JiBzaGFkb3dSb290KQog
ewogICAgIEFTU0VSVCghbV9kaXJ0aWVzQWxsU3R5bGUpOwogCi0gICAgaWYgKCFtX3J1bGVTZXQu
aG9zdFBzZXVkb0NsYXNzUnVsZXMoKS5pc0VtcHR5KCkgJiYgc2hhZG93Um9vdC5ob3N0KCkpCi0g
ICAgICAgIHNoYWRvd1Jvb3QuaG9zdCgpLT5pbnZhbGlkYXRlU3R5bGVJbnRlcm5hbCgpOworICAg
IGZvciAoYXV0byogcnVsZVNldCA6IG1fcnVsZVNldHMpIHsKKyAgICAgICAgaWYgKCFydWxlU2V0
LT5ob3N0UHNldWRvQ2xhc3NSdWxlcygpLmlzRW1wdHkoKSAmJiBzaGFkb3dSb290Lmhvc3QoKSkK
KyAgICAgICAgICAgIHNoYWRvd1Jvb3QuaG9zdCgpLT5pbnZhbGlkYXRlU3R5bGVJbnRlcm5hbCgp
OworICAgIH0KIAogICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxFbGVtZW50
PihzaGFkb3dSb290KSkgewogICAgICAgICBTZWxlY3RvckZpbHRlciBmaWx0ZXI7CkBAIC0yODIs
MTYgKzI5NywzNSBAQCB2b2lkIEludmFsaWRhdG9yOjppbnZhbGlkYXRlSW5TaGFkb3dUcmVlSWZO
ZWVkZWQoRWxlbWVudCYgZWxlbWVudCkKICAgICBpZiAoIXNoYWRvd1Jvb3QpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGlmIChtX3J1bGVTZXQuaGFzU2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKCkp
IHsKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgY291bGQgZG8gYWN0dWFsIHJ1bGUgbWF0Y2hpbmcg
dG9vLgotICAgICAgICBlbGVtZW50LmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWVJbnRlcm5hbCgp
OworCisgICAgZm9yIChhdXRvKiBydWxlU2V0IDogbV9ydWxlU2V0cykgeworICAgICAgICBpZiAo
cnVsZVNldC0+aGFzU2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKCkpIHsKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBUaGlzIGNvdWxkIGRvIGFjdHVhbCBydWxlIG1hdGNoaW5nIHRvby4KKyAgICAgICAg
ICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZUludGVybmFsKCk7CisgICAgICAg
IH0KKworICAgICAgICAvLyBGSVhNRTogTW9yZSBmaW5lLWdyYWluZWQgaW52YWxpZGF0aW9uIGZv
ciA6OnBhcnQoKQorICAgICAgICBpZiAoIXJ1bGVTZXQtPnBhcnRQc2V1ZG9FbGVtZW50UnVsZXMo
KS5pc0VtcHR5KCkpCisgICAgICAgICAgICBpbnZhbGlkYXRlU2hhZG93UGFydHMoKnNoYWRvd1Jv
b3QpOwogICAgIH0KK30KIAotICAgIC8vIEZJWE1FOiBNb3JlIGZpbmUtZ3JhaW5lZCBpbnZhbGlk
YXRpb24gZm9yIDo6cGFydCgpCi0gICAgaWYgKCFtX3J1bGVTZXQucGFydFBzZXVkb0VsZW1lbnRS
dWxlcygpLmlzRW1wdHkoKSkKLSAgICAgICAgaW52YWxpZGF0ZVNoYWRvd1BhcnRzKCpzaGFkb3dS
b290KTsKK3ZvaWQgSW52YWxpZGF0b3I6OmFkZFRvTWF0Y2hFbGVtZW50UnVsZVNldHMoSW52YWxp
ZGF0b3I6Ok1hdGNoRWxlbWVudFJ1bGVTZXRzJiBtYXRjaEVsZW1lbnRSdWxlU2V0cywgY29uc3Qg
SW52YWxpZGF0aW9uUnVsZVNldCYgaW52YWxpZGF0aW9uUnVsZVNldCkKK3sKKyAgICBtYXRjaEVs
ZW1lbnRSdWxlU2V0cy5lbnN1cmUoaW52YWxpZGF0aW9uUnVsZVNldC5tYXRjaEVsZW1lbnQsIFtd
IHsKKyAgICAgICAgcmV0dXJuIFZlY3Rvcjxjb25zdCBSdWxlU2V0KiwgMT4geyB9OworICAgIH0p
Lml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQoaW52YWxpZGF0aW9uUnVsZVNldC5ydWxlU2V0LmdldCgp
KTsKIH0KIAordm9pZCBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZVdpdGhNYXRjaEVsZW1lbnRSdWxl
U2V0cyhFbGVtZW50JiBlbGVtZW50LCBjb25zdCBNYXRjaEVsZW1lbnRSdWxlU2V0cyYgbWF0Y2hF
bGVtZW50UnVsZVNldHMpCit7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNJbnZhbGlkYXRpbmco
ZWxlbWVudC5zdHlsZVJlc29sdmVyKCkucnVsZVNldHMoKS5pc0ludmFsaWRhdGluZ1N0eWxlV2l0
aFJ1bGVTZXRzKCksIHRydWUpOworCisgICAgZm9yIChhdXRvJiBtYXRjaEVsZW1lbnRBbmRSdWxl
U2V0IDogbWF0Y2hFbGVtZW50UnVsZVNldHMpIHsKKyAgICAgICAgSW52YWxpZGF0b3IgaW52YWxp
ZGF0b3IobWF0Y2hFbGVtZW50QW5kUnVsZVNldC52YWx1ZSk7CisgICAgICAgIGludmFsaWRhdG9y
LmludmFsaWRhdGVTdHlsZVdpdGhNYXRjaEVsZW1lbnQoZWxlbWVudCwgbWF0Y2hFbGVtZW50QW5k
UnVsZVNldC5rZXkpOworICAgIH0KK30KIAogfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJ
bnZhbGlkYXRvci5oCmluZGV4IDJlZmY0NGE4MDljLi4zZmZiMjk3NDM3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVk
ZSAiUnVsZUZlYXR1cmUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsMjkgKzQxLDM0IEBA
IGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKIG5hbWVzcGFjZSBTdHlsZSB7CiAKIGNsYXNzIFJ1
bGVTZXQ7CitzdHJ1Y3QgSW52YWxpZGF0aW9uUnVsZVNldDsKIAogY2xhc3MgSW52YWxpZGF0b3Ig
ewogcHVibGljOgogICAgIEludmFsaWRhdG9yKGNvbnN0IFZlY3RvcjxTdHlsZVNoZWV0Q29udGVu
dHMqPiYsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKLSAgICBJbnZhbGlkYXRvcihjb25z
dCBSdWxlU2V0Jik7CisgICAgSW52YWxpZGF0b3IoY29uc3QgVmVjdG9yPGNvbnN0IFJ1bGVTZXQq
LCAxPiYpOwogCiAgICAgYm9vbCBkaXJ0aWVzQWxsU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2Rp
cnRpZXNBbGxTdHlsZTsgfQogICAgIHZvaWQgaW52YWxpZGF0ZVN0eWxlKERvY3VtZW50Jik7CiAg
ICAgdm9pZCBpbnZhbGlkYXRlU3R5bGUoU2hhZG93Um9vdCYpOwogICAgIHZvaWQgaW52YWxpZGF0
ZVN0eWxlKEVsZW1lbnQmKTsKLSAgICB2b2lkIGludmFsaWRhdGVTdHlsZVdpdGhNYXRjaEVsZW1l
bnQoRWxlbWVudCYsIE1hdGNoRWxlbWVudCk7CiAKICAgICBzdGF0aWMgdm9pZCBpbnZhbGlkYXRl
U2hhZG93UGFydHMoU2hhZG93Um9vdCYpOwogCisgICAgdXNpbmcgTWF0Y2hFbGVtZW50UnVsZVNl
dHMgPSBIYXNoTWFwPE1hdGNoRWxlbWVudCwgVmVjdG9yPGNvbnN0IFJ1bGVTZXQqLCAxPiwgV1RG
OjpJbnRIYXNoPE1hdGNoRWxlbWVudD4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8TWF0Y2hF
bGVtZW50Pj47CisgICAgc3RhdGljIHZvaWQgYWRkVG9NYXRjaEVsZW1lbnRSdWxlU2V0cyhJbnZh
bGlkYXRvcjo6TWF0Y2hFbGVtZW50UnVsZVNldHMmLCBjb25zdCBJbnZhbGlkYXRpb25SdWxlU2V0
Jik7CisgICAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZVdpdGhNYXRjaEVsZW1lbnRSdWxlU2V0cyhF
bGVtZW50JiwgY29uc3QgTWF0Y2hFbGVtZW50UnVsZVNldHMmKTsKKwogcHJpdmF0ZToKICAgICBl
bnVtIGNsYXNzIENoZWNrRGVzY2VuZGFudHMgeyBZZXMsIE5vIH07CiAgICAgQ2hlY2tEZXNjZW5k
YW50cyBpbnZhbGlkYXRlSWZOZWVkZWQoRWxlbWVudCYsIGNvbnN0IFNlbGVjdG9yRmlsdGVyKik7
CiAgICAgdm9pZCBpbnZhbGlkYXRlU3R5bGVGb3JUcmVlKEVsZW1lbnQmLCBTZWxlY3RvckZpbHRl
ciopOwogICAgIHZvaWQgaW52YWxpZGF0ZVN0eWxlRm9yRGVzY2VuZGFudHMoRWxlbWVudCYsIFNl
bGVjdG9yRmlsdGVyKik7CiAgICAgdm9pZCBpbnZhbGlkYXRlSW5TaGFkb3dUcmVlSWZOZWVkZWQo
RWxlbWVudCYpOworICAgIHZvaWQgaW52YWxpZGF0ZVN0eWxlV2l0aE1hdGNoRWxlbWVudChFbGVt
ZW50JiwgTWF0Y2hFbGVtZW50KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSdWxlU2V0PiBtX293
bmVkUnVsZVNldDsKLSAgICBjb25zdCBSdWxlU2V0JiBtX3J1bGVTZXQ7CisgICAgVmVjdG9yPGNv
bnN0IFJ1bGVTZXQqLCAxPiBtX3J1bGVTZXRzOwogICAgIGJvb2wgbV9kaXJ0aWVzQWxsU3R5bGUg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9kaWRJbnZhbGlkYXRlSG9zdENoaWxkcmVuIHsgZmFsc2Ug
fTsKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>