<?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>144874</bug_id>
          
          <creation_ts>2015-05-11 10:56:31 -0700</creation_ts>
          <short_desc>PropertyNameArray should use a Vector when there are few entries.</short_desc>
          <delta_ts>2015-05-11 14:15:22 -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>JavaScriptCore</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>Performance</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>benjamin</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1093803</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-11 10:56:31 -0700</bug_when>
    <thetext>PropertyNameArray used to switch between Vector and HashMap backing store. It was lost in the for-in refactoring. We can bring it back for a speedup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093804</commentid>
    <comment_count>1</comment_count>
      <attachid>252866</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-11 10:57:45 -0700</bug_when>
    <thetext>Created attachment 252866
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093865</commentid>
    <comment_count>2</comment_count>
      <attachid>252866</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-11 13:00:08 -0700</bug_when>
    <thetext>Comment on attachment 252866
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093888</commentid>
    <comment_count>3</comment_count>
      <attachid>252866</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-11 14:15:18 -0700</bug_when>
    <thetext>Comment on attachment 252866
Patch

Clearing flags on attachment: 252866

Committed r184120: &lt;http://trac.webkit.org/changeset/184120&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093889</commentid>
    <comment_count>4</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-11 14:15:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252866</attachid>
            <date>2015-05-11 10:57:45 -0700</date>
            <delta_ts>2015-05-11 14:15:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144874.diff</filename>
            <type>text/plain</type>
            <size>10965</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3ZmYwNjAxLi45OWEyMDFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MzksNyArNTM5LDYgQEAgc2V0
KEphdmFTY3JpcHRDb3JlX1JVTlRJTUVfU09VUkNFUwogICAgIHJ1bnRpbWUvT3BlcmF0aW9ucy5j
cHAKICAgICBydW50aW1lL09wdGlvbnMuY3BwCiAgICAgcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0
b3IuY3BwCi0gICAgcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5jcHAKICAgICBydW50aW1lL1By
b3BlcnR5U2xvdC5jcHAKICAgICBydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwCiAgICAgcnVudGlt
ZS9Qcm90b3R5cGVNYXAuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1MTk4MzRiLi5l
ZWJhNzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNS0w
NS0xMSAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUHJvcGVy
dHlOYW1lQXJyYXkgc2hvdWxkIHVzZSBhIFZlY3RvciB3aGVuIHRoZXJlIGFyZSBmZXcgZW50cmll
cy4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE0NDg3ND4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCcmluZyBiYWNrIGFuIG9wdGltaXph
dGlvbiB0aGF0IHdhcyBsb3N0IGluIHRoZSBmb3ItaW4gcmVmYWN0b3JpbmcuCisgICAgICAgIFBy
b3BlcnR5TmFtZUFycmF5IG5vdyBob2xkcyBhIFZlY3RvcjxBdG9taWNTdHJpbmdJbXBsKj4gdW50
aWwgdGhlcmUgYXJlCisgICAgICAgIGVub3VnaCAoMjApIGVudHJpZXMgdG8ganVzdGlmeSBjb252
ZXJ0aW5nIHRvIGEgSGFzaFNldCBmb3IgY29udGFpbnMoKS4KKworICAgICAgICBBbHNvIGlubGlu
ZWQgdGhlIGNvZGUgd2hpbGUgd2UncmUgaGVyZSwgc2luY2UgaXQgaGFzIHNvIGZldyBjbGllbnRz
IGFuZAorICAgICAgICB0aGUgY2FsbCBvdmVyaGVhZCBhZGRzIHVwLgorCisgICAgICAgIH41JSBw
cm9ncmVzc2lvbiBvbiBLcmFrZW4vanNvbi1zdHJpbmdpZnktdGluZGVyYm94LgorCisgICAgICAg
ICogcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcnVu
dGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eU5hbWVBcnJh
eTo6Y2FuQWRkS25vd25VbmlxdWVGb3JTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0
eU5hbWVBcnJheTo6YWRkKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOYW1lQXJyYXk6OmFkZEtu
b3duVW5pcXVlKToKKwogMjAxNS0wNS0xMCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5j
b20+CiAKICAgICAgICAgSlNPTi5zdHJpbmdpZnkgc2hvdWxkbid0IHVzZSBnZW5lcmljIGdldCgp
IHRvIGFjY2VzcyBBcnJheS5sZW5ndGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ogYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qCmluZGV4IGE1NTVhZTkuLjgzNDgxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvagpAQCAtNzk5LDcgKzc5OSw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxydW50aW1lXE9wZXJhdGlvbnMuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cnVudGltZVxPcHRpb25zLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRp
bWVcUHJvcGVydHlEZXNjcmlwdG9yLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcUHJvcGVydHlOYW1lQXJyYXkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxQcm9wZXJ0eVNsb3QuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxQcm9wZXJ0eVRhYmxlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcUHJvdG90eXBlTWFwLmNwcCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ouZmlsdGVycyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA0ZTJhOTc1Li5hODkyNWI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCkBA
IC03ODAsOSArNzgwLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcUHJv
cGVydHlEZXNjcmlwdG9yLmNwcCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAg
ICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcUHJvcGVy
dHlOYW1lQXJyYXkuY3BwIj4KLSAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgotICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxQcm9wZXJ0eVNs
b3QuY3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZjA0ZjM1Li44MzcyMTY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODE5LDcgKzgxOSw2IEBACiAJCTE0NDY5REU0
MTA3RUM3RTcwMDY1MDQ0NiAvKiBOdW1iZXJQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNjgwQzQwRTE2RDRFOTAwQTA2RTkyIC8q
IE51bWJlclByb3RvdHlwZS5jcHAgKi87IH07CiAJCTE0NDY5REU1MTA3RUM3RTcwMDY1MDQ0NiAv
KiBPYmplY3RDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzI2ODBDNjBFMTZENEU5MDBBMDZFOTIgLyogT2JqZWN0Q29uc3RydWN0
b3IuY3BwICovOyB9OwogCQkxNDQ2OURFNjEwN0VDN0U3MDA2NTA0NDYgLyogT2JqZWN0UHJvdG90
eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MjY4MEM4MEUxNkQ0RTkwMEEwNkU5MiAvKiBPYmplY3RQcm90b3R5cGUuY3BwICovOyB9OwotCQkx
NDQ2OURFNzEwN0VDN0U3MDA2NTA0NDYgLyogUHJvcGVydHlOYW1lQXJyYXkuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU0MDBDMEYwQTY5QkFGMjAw
NTA5ODg3IC8qIFByb3BlcnR5TmFtZUFycmF5LmNwcCAqLzsgfTsKIAkJMTQ0NjlERTgxMDdFQzdF
NzAwNjUwNDQ2IC8qIFByb3BlcnR5U2xvdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2NTYyMUU2QjA4OUU4NTk3MDA3NjBGMzUgLyogUHJvcGVydHlT
bG90LmNwcCAqLzsgfTsKIAkJMTQ0NjlERUIxMDdFQzdFNzAwNjUwNDQ2IC8qIFN0cmluZ0NvbnN0
cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMThDM0MwMEUxNkVFMzMwMEIzNDQ2MCAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5jcHAgKi87IH07
CiAJCTE0NDY5REVDMTA3RUM3RTcwMDY1MDQ0NiAvKiBTdHJpbmdPYmplY3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxOEMzQzIwRTE2RUUzMzAw
QjM0NDYwIC8qIFN0cmluZ09iamVjdC5jcHAgKi87IH07CkBAIC0yNjc4LDcgKzI2NzcsNiBAQAog
CQk2NTJBM0EyMjE2NTFDNjk3MDBBODBBRkUgLyogQTY0RE9wY29kZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBNjRET3Bjb2RlLmNwcDsgcGF0aCA9IGRpc2Fzc2Vt
Ymxlci9BUk02NC9BNjRET3Bjb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NjUyQTNBMjMxNjUxQzY5NzAwQTgwQUZFIC8qIEE2NERPcGNvZGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQTY0RE9wY29kZS5oOyBwYXRoID0gZGlzYXNzZW1ibGVyL0FSTTY0
L0E2NERPcGNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjUzMDNENjMxNDQ3
QjlFMTAwRDNGOTA0IC8qIFBhcnNlclRva2Vucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQYXJzZXJUb2tlbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNjU0
MDBDMEYwQTY5QkFGMjAwNTA5ODg3IC8qIFByb3BlcnR5TmFtZUFycmF5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9wZXJ0eU5hbWVBcnJheS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NDAwQzEwMEE2OUJBRjIwMDUwOTg4NyAvKiBQcm9w
ZXJ0eU5hbWVBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvcGVy
dHlOYW1lQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU0NkY1MUYxQTMy
QTU5QzAwNkYwN0Q1IC8qIE51bGxHZXR0ZXJGdW5jdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gTnVsbEdldHRlckZ1bmN0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlm
aWVyID0geGNvZGUubGFuZy5jcHA7IH07CiAJCTY1NDZGNTIwMUEzMkE1OUMwMDZGMDdENSAvKiBO
dWxsR2V0dGVyRnVuY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTnVs
bEdldHRlckZ1bmN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NjM3LDcg
KzQ2MzUsNiBAQAogCQkJCUE3RkI2MDRCMTAzRjVFQUIwMDE3QTI4NiAvKiBQcm9wZXJ0eURlc2Ny
aXB0b3IuaCAqLywKIAkJCQlCQzk1NDM3QzBFQkE3MEZEMDA3MkI2RDMgLyogUHJvcGVydHlNYXBI
YXNoVGFibGUuaCAqLywKIAkJCQk4NjE1OEFCMjE1NUM4QjNGMDBCNDVDOUMgLyogUHJvcGVydHlO
YW1lLmggKi8sCi0JCQkJNjU0MDBDMEYwQTY5QkFGMjAwNTA5ODg3IC8qIFByb3BlcnR5TmFtZUFy
cmF5LmNwcCAqLywKIAkJCQk2NTQwMEMxMDBBNjlCQUYyMDA1MDk4ODcgLyogUHJvcGVydHlOYW1l
QXJyYXkuaCAqLywKIAkJCQkwRkY3MTY4QTE1QTNCMjMxMDA4RjVEQUEgLyogUHJvcGVydHlPZmZz
ZXQuaCAqLywKIAkJCQk2NTYyMUU2QjA4OUU4NTk3MDA3NjBGMzUgLyogUHJvcGVydHlTbG90LmNw
cCAqLywKQEAgLTc0ODYsNyArNzQ4Myw2IEBACiAJCQkJMEZCMTA1OEQxNjc1NDgzNzAwRjhBQjZF
IC8qIFByb2ZpbGVyT1NSRXhpdFNpdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxMzkxMkIx
Njc3MUMzQTAwOUNDQjA3IC8qIFByb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTdGQjYwQTQxMDNGN0RDMjAwMTdBMjg2IC8qIFByb3BlcnR5RGVzY3JpcHRv
ci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxNDQ2OURFNzEwN0VDN0U3MDA2NTA0NDYgLyogUHJv
cGVydHlOYW1lQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERTgxMDdFQzdFNzAw
NjUwNDQ2IC8qIFByb3BlcnR5U2xvdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBREUzOUZGRjE2
REQxNDRCMDAwM0NENEEgLyogUHJvcGVydHlUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2
NUZCNTExNzE4NEVFRTcwMDBDMTJCNzAgLyogUHJvdG9DYWxsRnJhbWUuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5h
bWVBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVB
cnJheS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0OTQwNDEuLjAwMDAwMDAK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKLSAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCi0KLSNp
bmNsdWRlICJKU0NJbmxpbmVzLmgiCi0jaW5jbHVkZSAiSlNPYmplY3QuaCIKLSNpbmNsdWRlICJK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaCIKLSNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKLSNpbmNs
dWRlICJTdHJ1Y3R1cmVDaGFpbi5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotdm9pZCBQcm9wZXJ0
eU5hbWVBcnJheTo6YWRkKEF0b21pY1N0cmluZ0ltcGwqIGlkZW50aWZpZXIpCi17Ci0gICAgQVNT
RVJUKGlkZW50aWZpZXIpOwotCi0gICAgaWYgKCFtX3NldC5hZGQoaWRlbnRpZmllcikuaXNOZXdF
bnRyeSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYWRkS25vd25VbmlxdWUoaWRlbnRpZmllcik7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5TmFtZUFycmF5LmgKaW5kZXggODNhNTBhMC4uZThlYmRmMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oCkBA
IC03MCwxMyArNzAsOSBAQCBwdWJsaWM6CiAgICAgICAgIGFkZChJZGVudGlmaWVyOjpmcm9tKG1f
dm0sIGluZGV4KSk7CiAgICAgfQogCi0gICAgdm9pZCBhZGQoY29uc3QgSWRlbnRpZmllciYgaWRl
bnRpZmllcikgeyBhZGQoaWRlbnRpZmllci5pbXBsKCkpOyB9Ci0gICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBhZGQoQXRvbWljU3RyaW5nSW1wbCopOwotICAgIHZvaWQgYWRkS25vd25VbmlxdWUo
QXRvbWljU3RyaW5nSW1wbCogaWRlbnRpZmllcikKLSAgICB7Ci0gICAgICAgIG1fc2V0LmFkZChp
ZGVudGlmaWVyKTsKLSAgICAgICAgbV9kYXRhLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5hcHBlbmQo
SWRlbnRpZmllcjo6ZnJvbVVpZChtX3ZtLCBpZGVudGlmaWVyKSk7Ci0gICAgfQorICAgIHZvaWQg
YWRkKGNvbnN0IElkZW50aWZpZXImKTsKKyAgICB2b2lkIGFkZChBdG9taWNTdHJpbmdJbXBsKik7
CisgICAgdm9pZCBhZGRLbm93blVuaXF1ZShBdG9taWNTdHJpbmdJbXBsKik7CiAKICAgICBJZGVu
dGlmaWVyJiBvcGVyYXRvcltdKHVuc2lnbmVkIGkpIHsgcmV0dXJuIG1fZGF0YS0+cHJvcGVydHlO
YW1lVmVjdG9yKClbaV07IH0KICAgICBjb25zdCBJZGVudGlmaWVyJiBvcGVyYXRvcltdKHVuc2ln
bmVkIGkpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS0+cHJvcGVydHlOYW1lVmVjdG9yKClbaV07IH0K
QEAgLTg2LDcgKzgyLDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UHJvcGVydHlOYW1lQXJy
YXlEYXRhPiByZWxlYXNlRGF0YSgpIHsgcmV0dXJuIG1fZGF0YS5yZWxlYXNlKCk7IH0KIAogICAg
IC8vIEZJWE1FOiBSZW1vdmUgdGhlc2UgZnVuY3Rpb25zLgotICAgIGJvb2wgY2FuQWRkS25vd25V
bmlxdWVGb3JTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3NldC5pc0VtcHR5KCk7IH0KKyAg
ICBib29sIGNhbkFkZEtub3duVW5pcXVlRm9yU3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9k
YXRhLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5pc0VtcHR5KCk7IH0KICAgICB0eXBlZGVmIFByb3Bl
cnR5TmFtZUFycmF5RGF0YTo6UHJvcGVydHlOYW1lVmVjdG9yOjpjb25zdF9pdGVyYXRvciBjb25z
dF9pdGVyYXRvcjsKICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS0+cHJv
cGVydHlOYW1lVmVjdG9yKCkuc2l6ZSgpOyB9CiAgICAgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBj
b25zdCB7IHJldHVybiBtX2RhdGEtPnByb3BlcnR5TmFtZVZlY3RvcigpLmJlZ2luKCk7IH0KQEAg
LTk4LDYgKzk0LDM3IEBAIHByaXZhdGU6CiAgICAgVk0qIG1fdm07CiB9OwogCitBTFdBWVNfSU5M
SU5FIHZvaWQgUHJvcGVydHlOYW1lQXJyYXk6OmFkZChjb25zdCBJZGVudGlmaWVyJiBpZGVudGlm
aWVyKQoreworICAgIGFkZChpZGVudGlmaWVyLmltcGwoKSk7Cit9CisKK0FMV0FZU19JTkxJTkUg
dm9pZCBQcm9wZXJ0eU5hbWVBcnJheTo6YWRkS25vd25VbmlxdWUoQXRvbWljU3RyaW5nSW1wbCog
aWRlbnRpZmllcikKK3sKKyAgICBtX2RhdGEtPnByb3BlcnR5TmFtZVZlY3RvcigpLmFwcGVuZChJ
ZGVudGlmaWVyOjpmcm9tVWlkKG1fdm0sIGlkZW50aWZpZXIpKTsKK30KKworQUxXQVlTX0lOTElO
RSB2b2lkIFByb3BlcnR5TmFtZUFycmF5OjphZGQoQXRvbWljU3RyaW5nSW1wbCogaWRlbnRpZmll
cikKK3sKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2V0VGhyZXNob2xkID0gMjA7CisKKyAg
ICBBU1NFUlQoaWRlbnRpZmllcik7CisKKyAgICBpZiAoc2l6ZSgpIDwgc2V0VGhyZXNob2xkKSB7
CisgICAgICAgIGlmIChtX2RhdGEtPnByb3BlcnR5TmFtZVZlY3RvcigpLmNvbnRhaW5zKGlkZW50
aWZpZXIpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmICht
X3NldC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGZvciAoSWRlbnRpZmllciYgbmFtZSA6IG1f
ZGF0YS0+cHJvcGVydHlOYW1lVmVjdG9yKCkpCisgICAgICAgICAgICAgICAgbV9zZXQuYWRkKG5h
bWUuaW1wbCgpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIW1fc2V0LmFkZChpZGVudGlmaWVy
KS5pc05ld0VudHJ5KQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGFkZEtub3du
VW5pcXVlKGlkZW50aWZpZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8v
IFByb3BlcnR5TmFtZUFycmF5X2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>