<?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>147268</bug_id>
          
          <creation_ts>2015-07-24 11:12:23 -0700</creation_ts>
          <short_desc>Avoid 2 times name iteration in Object.assign</short_desc>
          <delta_ts>2015-07-24 14:46:47 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>146137</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1112016</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-24 11:12:23 -0700</bug_when>
    <thetext>Object.assign calls Object.getOwnPropertyNames &amp; Object.getOwnPropertySymbols to collect all the names.
But exposing the private API that collects both at the same time makes the API efficient when the given Object has so many non-indexed properties.
Since Object.assign is so generic API (some form of utility API), the form of the given Object is not expected.
This is why I think this optimization is required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112065</commentid>
    <comment_count>1</comment_count>
      <attachid>257471</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-24 13:00:44 -0700</bug_when>
    <thetext>Created attachment 257471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112068</commentid>
    <comment_count>2</comment_count>
      <attachid>257471</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-07-24 13:10:21 -0700</bug_when>
    <thetext>Comment on attachment 257471
Patch

r=me

It seems like we might want to add caching for these property name lists. We have caching for enumerable property names, but not for these other varieties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112081</commentid>
    <comment_count>3</comment_count>
      <attachid>257471</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-24 13:57:29 -0700</bug_when>
    <thetext>Comment on attachment 257471
Patch

Thank you for your review.
Your thought is right. (And actually, many `// FIXME: Use the enumeration cache.` exist in ObjectConstructor.cpp)
We need to extend the existing caching system to use it in these enumeration APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112099</commentid>
    <comment_count>4</comment_count>
      <attachid>257471</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-24 14:46:43 -0700</bug_when>
    <thetext>Comment on attachment 257471
Patch

Clearing flags on attachment: 257471

Committed r187363: &lt;http://trac.webkit.org/changeset/187363&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112100</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-24 14:46:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257471</attachid>
            <date>2015-07-24 13:00:44 -0700</date>
            <delta_ts>2015-07-24 14:46:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147268-20150724125927.patch</filename>
            <type>text/plain</type>
            <size>12251</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NGY4ODkzMDc0NWZiNzAwN2JkNDljOGRkMDdkNDQ0MWM4ODExZGU0Li4zZDdjNjc5MDYwYWFhYTQ2
ZDIwMDczZDIwNGRiMzQ0YTdjN2VjZTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzOCBAQAogMjAxNS0wNy0yNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBBdm9pZCAyIHRpbWVzIG5hbWUgaXRlcmF0aW9uIGluIE9iamVjdC5h
c3NpZ24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NzI2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9i
amVjdC5hc3NpZ24gY2FsbHMgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgJiBPYmplY3QuZ2V0
T3duUHJvcGVydHlTeW1ib2xzIHRvIGNvbGxlY3QgYWxsIHRoZSBuYW1lcy4KKyAgICAgICAgQnV0
IGV4cG9zaW5nIHRoZSBwcml2YXRlIEFQSSB0aGF0IGNvbGxlY3RzIGJvdGggYXQgdGhlIHNhbWUg
dGltZSBtYWtlcyB0aGUgQVBJIGVmZmljaWVudCB3aGVuIHRoZSBnaXZlbiBPYmplY3QgaGFzIHNv
IG1hbnkgbm9uLWluZGV4ZWQgcHJvcGVydGllcy4KKyAgICAgICAgU2luY2UgT2JqZWN0LmFzc2ln
biBpcyBzbyBnZW5lcmljIEFQSSAoc29tZSBmb3JtIG9mIHV0aWxpdHkgQVBJKSwgdGhlIGZvcm0g
b2YgdGhlIGdpdmVuIE9iamVjdCBpcyBub3QgZXhwZWN0ZWQuCisgICAgICAgIFNvIHRoZSB0YWtl
biBvYmplY3QgbWF5IGhhdmUgc28gbWFueSBub24taW5kZXhlZCBwcm9wZXJ0aWVzLgorCisgICAg
ICAgIEluIHRoaXMgcGF0Y2gsIHdlIGludHJvZHVjZSBgb3duRW51bWVyYWJsZVByb3BlcnR5S2V5
c2AgcHJpdmF0ZSBmdW5jdGlvbi4KKyAgICAgICAgSXQgaXMgbWlub3IgY2hhbmdlZCB2ZXJzaW9u
IG9mIGBbW093blByb3BlcnR5S2V5c11dYCBpbiB0aGUgRVM2IHNwZWM7CisgICAgICAgIEl0IG9u
bHkgaW5jbHVkZXMgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLgorCisgICAgICAgIEJ5IGZpbHRlcmlu
ZyBvdXQgdGhlIG5vbi1lbnVtZXJhYmxlIHByb3BlcnRpZXMgaW4gdGhlIGV4cG9zZWQgcHJpdmF0
ZSBmdW5jdGlvbiwKKyAgICAgICAgd2UgYXZvaWQgY2FsbGluZyBAb2JqZWN0R2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yIGZvciBlYWNoIHByb3BlcnR5IGF0IHRoZSBzYW1lIHRpbWUuCisKKyAgICAg
ICAgKiBidWlsdGlucy9PYmplY3RDb25zdHJ1Y3Rvci5qczoKKyAgICAgICAgKGFzc2lnbik6Cisg
ICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUv
RW51bWVyYXRpb25Nb2RlLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKiBydW50aW1l
L09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6b3duRW51bWVyYWJsZVByb3Bl
cnR5S2V5cyk6CisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAg
ICAqIHRlc3RzL3N0cmVzcy9vYmplY3QtYXNzaWduLWVudW1lcmFibGUuanM6IEFkZGVkLgorICAg
ICAgICAoc2hvdWxkQmUpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9vYmplY3QtYXNzaWduLW9y
ZGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKworMjAxNS0wNy0yNCAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwogICAgICAgICBSZW1vdmUgcnVudGlt
ZSBmbGFncyBmb3Igc3ltYm9scwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ3MjQ2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9PYmplY3RDb25zdHJ1Y3Rvci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWls
dGlucy9PYmplY3RDb25zdHJ1Y3Rvci5qcwppbmRleCBlZWVjMTk2N2U1MzQ1OTRkYTNkNThkNTFi
OWEyM2I0Y2QxN2EyNzNkLi42YjdhYzE5OTY3YzZmMDdiMDFmODNhY2ZhOWVhZTBiNDM0MTAyYjBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT2JqZWN0Q29uc3Ry
dWN0b3IuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL09iamVjdENvbnN0
cnVjdG9yLmpzCkBAIC0zMCwyNyArMzAsMTQgQEAgZnVuY3Rpb24gYXNzaWduKHRhcmdldC8qWyov
LCAvKi4uLiovc291cmNlcy8qXSAqLykgewogICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigi
Y2FuJ3QgY29udmVydCAiICsgdGFyZ2V0ICsgIiB0byBvYmplY3QiKTsKIAogICAgIHZhciBvYmpU
YXJnZXQgPSBAT2JqZWN0KHRhcmdldCk7Ci0gICAgdmFyIHMsIG5leHRTb3VyY2UsIGZyb20sIGks
IGtleXMsIG5leHRLZXksIGRlc2M7Ci0gICAgZm9yIChzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5n
dGg7ICsrcykgewotICAgICAgICBuZXh0U291cmNlID0gYXJndW1lbnRzW3NdOworICAgIGZvciAo
dmFyIHMgPSAxLCBhcmd1bWVudHNMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoOyBzIDwgYXJndW1l
bnRzTGVuZ3RoOyArK3MpIHsKKyAgICAgICAgdmFyIG5leHRTb3VyY2UgPSBhcmd1bWVudHNbc107
CiAgICAgICAgIGlmIChuZXh0U291cmNlICE9IG51bGwpIHsKLSAgICAgICAgICAgIGZyb20gPSBA
T2JqZWN0KG5leHRTb3VyY2UpOwotICAgICAgICAgICAgLy8gVE9ETzogcmVwbGFjZSBAb2JqZWN0
S2V5cyArIEBvYmplY3RHZXRPd25Qcm9wZXJ0eVN5bWJvbHMgd2l0aCBzaW5nbGUgQE93blByb3Bl
cnR5S2V5cyBjKysgb3BlcmF0aW9uCi0gICAgICAgICAgICBrZXlzID0gQG9iamVjdEtleXMoZnJv
bSk7Ci0gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7ICsraSkgewotICAg
ICAgICAgICAgICAgIG5leHRLZXkgPSBrZXlzW2ldOwotICAgICAgICAgICAgICAgIGRlc2MgPSBA
b2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGZyb20sIG5leHRLZXkpOwotICAgICAgICAg
ICAgICAgIGlmICh0eXBlb2YgZGVzYyAhPT0gInVuZGVmaW5lZCIgJiYgZGVzYy5lbnVtZXJhYmxl
KSB7Ci0gICAgICAgICAgICAgICAgICAgIG9ialRhcmdldFtuZXh0S2V5XSA9IGZyb21bbmV4dEtl
eV07Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAga2V5cyA9
IEBvYmplY3RHZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZnJvbSk7Ci0gICAgICAgICAgICBmb3IgKGkg
PSAwOyBpIDwga2V5cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIG5leHRLZXkgPSBr
ZXlzW2ldOwotICAgICAgICAgICAgICAgIGRlc2MgPSBAb2JqZWN0R2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGZyb20sIG5leHRLZXkpOwotICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGVzYyAh
PT0gInVuZGVmaW5lZCIgJiYgZGVzYy5lbnVtZXJhYmxlKSB7Ci0gICAgICAgICAgICAgICAgICAg
IG9ialRhcmdldFtuZXh0S2V5XSA9IGZyb21bbmV4dEtleV07Ci0gICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgdmFyIGZyb20gPSBAT2JqZWN0KG5leHRTb3VyY2UpOworICAgICAgICAgICAg
dmFyIGtleXMgPSBAb3duRW51bWVyYWJsZVByb3BlcnR5S2V5cyhmcm9tKTsKKyAgICAgICAgICAg
IGZvciAodmFyIGkgPSAwLCBrZXlzTGVuZ3RoID0ga2V5cy5sZW5ndGg7IGkgPCBrZXlzTGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgICAgICAgICB2YXIgbmV4dEtleSA9IGtleXNbaV07CisgICAgICAg
ICAgICAgICAgb2JqVGFyZ2V0W25leHRLZXldID0gZnJvbVtuZXh0S2V5XTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25JZGVudGlmaWVycy5oCmluZGV4IDliOTM5ODdiMWIxNmRiNTNlYzk1YTQzNzYxNzFi
N2NkZjBjOTUzYmEuLmExZWEzMjhkN2M1NGNkM2FlNDcxOWRjMzU5MmIyYWVjZjhjNzZlZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMu
aApAQCAtMjcwLDkgKzI3MCw3IEBACiAgICAgbWFjcm8oZGVmZXJyZWQpIFwKICAgICBtYWNybyhj
b3VudGRvd25Ib2xkZXIpIFwKICAgICBtYWNybyhPYmplY3QpIFwKLSAgICBtYWNybyhvYmplY3RL
ZXlzKSBcCi0gICAgbWFjcm8ob2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKSBcCi0gICAg
bWFjcm8ob2JqZWN0R2V0T3duUHJvcGVydHlTeW1ib2xzKSBcCisgICAgbWFjcm8ob3duRW51bWVy
YWJsZVByb3BlcnR5S2V5cykgXAogICAgIG1hY3JvKE51bWJlcikgXAogICAgIG1hY3JvKEFycmF5
KSBcCiAgICAgbWFjcm8oU3RyaW5nKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FbnVtZXJhdGlvbk1vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0VudW1lcmF0aW9uTW9kZS5oCmluZGV4IDgzYzA1Njg5OTZmYjliYWNlNTEyNmQ1MDc1ZDZi
M2Y3YTg5ZWU1MDIuLmU4NDJkZWIyZjVlMTQwY2YxNTdlODJlN2VlOTE1ZDc0YjIzNzRiZDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0VudW1lcmF0aW9uTW9kZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0VudW1lcmF0aW9uTW9kZS5oCkBA
IC0zOSwxMSArMzksNiBAQCBlbnVtIGNsYXNzIERvbnRFbnVtUHJvcGVydGllc01vZGUgewogICAg
IEV4Y2x1ZGUKIH07CiAKLWVudW0gY2xhc3MgU3ltYm9sUHJvcGVydGllc01vZGUgewotICAgIElu
Y2x1ZGUsCi0gICAgRXhjbHVkZQotfTsKLQogZW51bSBjbGFzcyBKU09iamVjdFByb3BlcnRpZXNN
b2RlIHsKICAgICBJbmNsdWRlLAogICAgIEV4Y2x1ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA0MTA0NTI0NmJlNDU2ZTA1YTBi
YWUwNThiMTA2NzlmYjJkMTg5Mjk1Li43Zjc0MWFkZjVkNzk4MWUzOTVkZTEzOTRmNTQzNTRmNzI3
YTM5Mzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCkBAIC00NTgsOSArNDU4LDYgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAg
ICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0Zsb29yID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0
aGlzLCAwLCBTdHJpbmcoKSwgbWF0aFByb3RvRnVuY0Zsb29yLCBGbG9vckludHJpbnNpYyk7CiAg
ICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNJc0Zpbml0ZSA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2
bSwgdGhpcywgMCwgU3RyaW5nKCksIGdsb2JhbEZ1bmNJc0Zpbml0ZSk7CiAKLSAgICBKU0Z1bmN0
aW9uKiBwcml2YXRlRnVuY09iamVjdEtleXMgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMs
IDAsIFN0cmluZygpLCBvYmplY3RDb25zdHJ1Y3RvcktleXMpOwotICAgIEpTRnVuY3Rpb24qIHBy
aXZhdGVGdW5jT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gSlNGdW5jdGlvbjo6Y3Jl
YXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IpOwotICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jT2JqZWN0R2V0T3duUHJv
cGVydHlTeW1ib2xzID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwg
b2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eVN5bWJvbHMpOwogICAgIEpTRnVuY3Rpb24q
IHByaXZhdGVGdW5jR2V0VGVtcGxhdGVPYmplY3QgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRo
aXMsIDAsIFN0cmluZygpLCBnZXRUZW1wbGF0ZU9iamVjdCk7CiAgICAgSlNGdW5jdGlvbiogcHJp
dmF0ZUZ1bmNUb0xlbmd0aCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwg
Z2xvYmFsT2JqZWN0VG9MZW5ndGhDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyk7CiAgICAgSlNGdW5j
dGlvbiogcHJpdmF0ZUZ1bmNUb0ludGVnZXIgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVu
Y3Rpb24odm0sIGdsb2JhbE9iamVjdFRvSW50ZWdlckNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsK
QEAgLTQ3MSw5ICs0NjgsNyBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJv
cGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkS2V5d29yZCwganNVbmRl
ZmluZWQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkUHJpdmF0ZU5hbWUsIGpz
VW5kZWZpbmVkKCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPk9iamVjdFByaXZhdGVOYW1lLCBv
YmplY3RDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+b2JqZWN0S2V5c1ByaXZh
dGVOYW1lLCBwcml2YXRlRnVuY09iamVjdEtleXMsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPm9i
amVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvclByaXZhdGVOYW1lLCBwcml2YXRlRnVuY09iamVj
dEdldE93blByb3BlcnR5RGVzY3JpcHRvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+b2JqZWN0
R2V0T3duUHJvcGVydHlTeW1ib2xzUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jT2JqZWN0R2V0T3du
UHJvcGVydHlTeW1ib2xzLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5vd25FbnVtZXJhYmxlUHJv
cGVydHlLZXlzUHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3Ry
aW5nKCksIG93bkVudW1lcmFibGVQcm9wZXJ0eUtleXMpLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5nZXRUZW1wbGF0ZU9iamVjdFByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0dldFRlbXBsYXRlT2Jq
ZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5lbnF1ZXVlSm9iUHJpdmF0ZU5hbWUsIEpTRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIGVucXVldWVKb2IpLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5UeXBlRXJyb3JQcml2YXRlTmFtZSwgbV90eXBlRXJyb3JDb25zdHJ1
Y3Rvci5nZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4
IDI0MDA4NmY1OTI0MTY0YTAxNGQ5YTg3YzEyMGRmNDkwNGUwMWEyOTkuLmQ1M2Y2NTI3MjBjNTU1
OWIwM2IzNmVhZGJlYTVhMjIwZmUyZjcyZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTI5Myw2ICsyOTMsMzMgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcktleXMoRXhlY1N0
YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoa2V5cyk7CiB9CiAKK0VuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb3duRW51bWVyYWJsZVByb3BlcnR5S2V5cyhFeGVjU3Rh
dGUqIGV4ZWMpCit7CisgICAgSlNPYmplY3QqIG9iamVjdCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRv
T2JqZWN0KGV4ZWMpOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7CisgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJv
cGVydGllcyhleGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpCb3RoKTsKKyAgICBvYmplY3QtPm1ldGhv
ZFRhYmxlKGV4ZWMtPnZtKCkpLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgZXhlYywgcHJv
cGVydGllcywgRW51bWVyYXRpb25Nb2RlKCkpOworCisgICAgSlNBcnJheSoga2V5cyA9IGNvbnN0
cnVjdEVtcHR5QXJyYXkoZXhlYywgMCk7CisgICAgVmVjdG9yPElkZW50aWZpZXIsIDE2PiBwcm9w
ZXJ0eVN5bWJvbHM7CisgICAgc2l6ZV90IG51bVByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLnNpemUo
KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bVByb3BlcnRpZXM7IGkrKykgeworICAg
ICAgICBjb25zdCBhdXRvJiBpZGVudGlmaWVyID0gcHJvcGVydGllc1tpXTsKKyAgICAgICAgaWYg
KGlkZW50aWZpZXIuaXNTeW1ib2woKSkgeworICAgICAgICAgICAgaWYgKCFleGVjLT5wcm9wZXJ0
eU5hbWVzKCkuaXNQcml2YXRlTmFtZShpZGVudGlmaWVyKSkKKyAgICAgICAgICAgICAgICBwcm9w
ZXJ0eVN5bWJvbHMuYXBwZW5kKGlkZW50aWZpZXIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIGtleXMtPnB1c2goZXhlYywganNPd25lZFN0cmluZyhleGVjLCBpZGVudGlmaWVyLnN0cmlu
ZygpKSk7CisgICAgfQorCisgICAgLy8gVG8gZW5zdXJlIHRoZSBvcmRlciBkZWZpbmVkIGluIHRo
ZSBzcGVjICg5LjEuMTIpLCB3ZSBhcHBlbmQgc3ltYm9scyBhdCB0aGUgbGFzdCBlbGVtZW50cyBv
ZiBrZXlzLgorICAgIGZvciAoY29uc3QgYXV0byYgaWRlbnRpZmllciA6IHByb3BlcnR5U3ltYm9s
cykKKyAgICAgICAga2V5cy0+cHVzaChleGVjLCBTeW1ib2w6OmNyZWF0ZShleGVjLT52bSgpLCBz
dGF0aWNfY2FzdDxTeW1ib2xJbXBsJj4oKmlkZW50aWZpZXIuaW1wbCgpKSkpOworCisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShrZXlzKTsKK30KKwogLy8gRVM1IDguMTAuNSBUb1Byb3BlcnR5
RGVzY3JpcHRvcgogc3RhdGljIGJvb2wgdG9Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIGluLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2MpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAppbmRleCA4ZmM1
YzczMjI1ODI2NjNjOGJlMjQzNjU1ZGQ3YjllODI2NDZmYWJlLi4yYWEyYzllYzAwNGMwMTQ5YTIy
ZjhlYzVhYTgzNDJmZTM4NzVkZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKQEAgLTMwLDYgKzMwLDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5U3ltYm9scyhFeGVjU3RhdGUqKTsK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JLZXlzKEV4ZWNT
dGF0ZSopOworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvd25FbnVtZXJhYmxlUHJvcGVy
dHlLZXlzKEV4ZWNTdGF0ZSopOwogCiBjbGFzcyBPYmplY3RQcm90b3R5cGU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb2JqZWN0LWFzc2lnbi1lbnVt
ZXJhYmxlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vYmplY3QtYXNz
aWduLWVudW1lcmFibGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIyM2EwZGY1OWRhMTJjZmFjMDEwZDUzMTNm
NTk3NDRiZjVmNjEyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3Mvb2JqZWN0LWFzc2lnbi1lbnVtZXJhYmxlLmpzCkBAIC0wLDAgKzEsMTQgQEAK
K2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9
PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1
YWwpOworfQorCit2YXIgb2JqZWN0ID0gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoe30sIHsKKyAg
ICBub25FbnVtZXJhYmxlOiB7CisgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAorICAgICAgICB2
YWx1ZTogNDIKKyAgICB9Cit9KTsKKwordmFyIHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oe30sIG9i
amVjdCk7CitzaG91bGRCZShyZXN1bHQubm9uRW51bWVyYWJsZSwgdW5kZWZpbmVkKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb2JqZWN0LWFzc2lnbi1v
cmRlci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb2JqZWN0LWFzc2ln
bi1vcmRlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWYzZWQ2M2MxMDMwZmZlMjgxMDkxMDg5ZjUwYTQyNjMy
YmZmZDRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9vYmplY3QtYXNzaWduLW9yZGVyLmpzCkBAIC0wLDAgKzEsNDAgQEAKK2Z1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCit2
YXIgc3ltYm9sID0gU3ltYm9sKCdDb2NvYScpOworCit2YXIgb2JqZWN0ID0geworICAgIFtzeW1i
b2xdOiAzLAorICAgIDA6IDAsCisgICAgaGVsbG86IDIsCisgICAgMTogMSwKK307CisKK3ZhciBj
b3VudCA9IDA7CisKK3ZhciB0ZXN0ZXIgPSBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh7fSwgewor
ICAgIDA6IHsKKyAgICAgICAgc2V0OiAoKSA9PiB7CisgICAgICAgICAgICBzaG91bGRCZShjb3Vu
dCsrLCAwKTsKKyAgICAgICAgfQorICAgIH0sCisgICAgMTogeworICAgICAgICBzZXQ6ICgpID0+
IHsKKyAgICAgICAgICAgIHNob3VsZEJlKGNvdW50KyssIDEpOworICAgICAgICB9CisgICAgfSwK
KyAgICAnaGVsbG8nOiB7CisgICAgICAgIHNldDogKCkgPT4geworICAgICAgICAgICAgc2hvdWxk
QmUoY291bnQrKywgMik7CisgICAgICAgIH0KKyAgICB9LAorICAgIFtzeW1ib2xdOiB7CisgICAg
ICAgIHNldDogKCkgPT4geworICAgICAgICAgICAgc2hvdWxkQmUoY291bnQrKywgMyk7CisgICAg
ICAgIH0KKyAgICB9LAorfSk7CisKK09iamVjdC5hc3NpZ24odGVzdGVyLCBvYmplY3QpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>