<?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>134906</bug_id>
          
          <creation_ts>2014-07-14 15:14:35 -0700</creation_ts>
          <short_desc>Flattening dictionaries with oversize backing stores can cause crashes</short_desc>
          <delta_ts>2014-07-14 16:59:41 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1022335</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-07-14 15:14:35 -0700</bug_when>
    <thetext>The collector expects any pointers into CopiedSpace passed to copyLater are within 32 KB of the CopiedBlock header. This was always the case except for when flattening a dictionary caused the size of the Butterfly to decrease. This was equivalent to moving the base of the Butterfly to higher addresses. If the object was reduced sufficiently in size, the base would no longer be within the first 32 KB of the CopiedBlock and the next collection would choke on the Butterfly pointer.

The fix is to detect this situation during flattening and to memmove the Butterfly down to where the old base was.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022336</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-07-14 15:14:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/17556957&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022337</commentid>
    <comment_count>2</comment_count>
      <attachid>234884</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-07-14 15:20:09 -0700</bug_when>
    <thetext>Created attachment 234884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022362</commentid>
    <comment_count>3</comment_count>
      <attachid>234884</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-14 16:59:39 -0700</bug_when>
    <thetext>Comment on attachment 234884
Patch

Clearing flags on attachment: 234884

Committed r171092: &lt;http://trac.webkit.org/changeset/171092&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022363</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-14 16:59:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234884</attachid>
            <date>2014-07-14 15:20:09 -0700</date>
            <delta_ts>2014-07-14 16:59:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134906-20140714151952.patch</filename>
            <type>text/plain</type>
            <size>8084</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTcxMDg3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBA
CisyMDE0LTA3LTE0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgRmxhdHRlbmluZyBkaWN0aW9uYXJpZXMgd2l0aCBvdmVyc2l6ZSBiYWNraW5nIHN0
b3JlcyBjYW4gY2F1c2UgY3Jhc2hlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM0OTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIGNvbGxlY3RvciBleHBlY3RzIGFueSBwb2ludGVycyBpbnRvIENv
cGllZFNwYWNlIHBhc3NlZCB0byBjb3B5TGF0ZXIgYXJlIHdpdGhpbiAzMiBLQiAKKyAgICAgICAg
b2YgdGhlIENvcGllZEJsb2NrIGhlYWRlci4gVGhpcyB3YXMgYWx3YXlzIHRoZSBjYXNlIGV4Y2Vw
dCBmb3Igd2hlbiBmbGF0dGVuaW5nIGEgZGljdGlvbmFyeSAKKyAgICAgICAgY2F1c2VkIHRoZSBz
aXplIG9mIHRoZSBCdXR0ZXJmbHkgdG8gZGVjcmVhc2UuIFRoaXMgd2FzIGVxdWl2YWxlbnQgdG8g
bW92aW5nIHRoZSBiYXNlIG9mIHRoZSAKKyAgICAgICAgQnV0dGVyZmx5IHRvIGhpZ2hlciBhZGRy
ZXNzZXMuIElmIHRoZSBvYmplY3Qgd2FzIHJlZHVjZWQgc3VmZmljaWVudGx5IGluIHNpemUsIHRo
ZSBiYXNlIAorICAgICAgICB3b3VsZCBubyBsb25nZXIgYmUgd2l0aGluIHRoZSBmaXJzdCAzMiBL
QiBvZiB0aGUgQ29waWVkQmxvY2sgYW5kIHRoZSBuZXh0IGNvbGxlY3Rpb24gd291bGQgCisgICAg
ICAgIGNob2tlIG9uIHRoZSBCdXR0ZXJmbHkgcG9pbnRlci4KKworICAgICAgICBUaGlzIHBhdGNo
IGZpeGVzIHRoaXMgaXNzdWUgYnkgZGV0ZWN0IHRoaXMgc2l0dWF0aW9uIGR1cmluZyBmbGF0dGVu
aW5nIGFuZCBtZW1tb3ZlLWluZyAKKyAgICAgICAgdGhlIEJ1dHRlcmZseSBkb3duIHRvIHdoZXJl
IHRoZSBvbGQgYmFzZSB3YXMuCisKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNPYmplY3Q6OnNoaWZ0QnV0dGVyZmx5QWZ0ZXJGbGF0dGVuaW5nKToKKyAg
ICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpidXR0
ZXJmbHlQcmVDYXBhY2l0eSk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpidXR0ZXJmbHlUb3Rh
bFNpemUpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAgICAgICAgKEpTQzo6
U3RydWN0dXJlOjpmbGF0dGVuRGljdGlvbmFyeVN0cnVjdHVyZSk6CisgICAgICAgICogdGVzdHMv
c3RyZXNzL2ZsYXR0ZW4tb3ZlcnNpemUtZGljdGlvbmFyeS1vYmplY3QuanM6IEFkZGVkLgorICAg
ICAgICAoZm9vKToKKwogMjAxNC0wNy0xNCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHNvbWUgZGVhZCBjb2RlIGZyb20gRlRMSklURmlu
YWxpemVyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3Bw
CShyZXZpc2lvbiAxNzEwNjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2OTYsNCArMjY5NiwxNSBAQCBKU09iamVjdCog
dGhyb3dUeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVjCiAgICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhy
b3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsIG1lc3NhZ2UpKTsKIH0KIAor
dm9pZCBKU09iamVjdDo6c2hpZnRCdXR0ZXJmbHlBZnRlckZsYXR0ZW5pbmcoVk0mIHZtLCBzaXpl
X3Qgb3V0T2ZMaW5lQ2FwYWNpdHlCZWZvcmUsIHNpemVfdCBvdXRPZkxpbmVDYXBhY2l0eUFmdGVy
KQoreworICAgIEJ1dHRlcmZseSogYnV0dGVyZmx5ID0gdGhpcy0+YnV0dGVyZmx5KCk7CisgICAg
c2l6ZV90IHByZUNhcGFjaXR5ID0gdGhpcy0+YnV0dGVyZmx5UHJlQ2FwYWNpdHkoKTsKKyAgICB2
b2lkKiBjdXJyZW50QmFzZSA9IGJ1dHRlcmZseS0+YmFzZShwcmVDYXBhY2l0eSwgb3V0T2ZMaW5l
Q2FwYWNpdHlBZnRlcik7CisgICAgdm9pZCogbmV3QmFzZSA9IGJ1dHRlcmZseS0+YmFzZShwcmVD
YXBhY2l0eSwgb3V0T2ZMaW5lQ2FwYWNpdHlCZWZvcmUpOworCisgICAgbWVtbW92ZShuZXdCYXNl
LCBjdXJyZW50QmFzZSwgdGhpcy0+YnV0dGVyZmx5VG90YWxTaXplKCkpOworICAgIHNldEJ1dHRl
cmZseVdpdGhvdXRDaGFuZ2luZ1N0cnVjdHVyZSh2bSwgQnV0dGVyZmx5Ojpmcm9tQmFzZShuZXdC
YXNlLCBwcmVDYXBhY2l0eSwgb3V0T2ZMaW5lQ2FwYWNpdHlBZnRlcikpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aAkocmV2aXNpb24gMTcxMDY3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjM1LDYgKzYzNSw3IEBAIHB1YmxpYzoKICAgICB7
CiAgICAgICAgIHN0cnVjdHVyZSh2bSktPmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKHZtLCB0
aGlzKTsKICAgICB9CisgICAgdm9pZCBzaGlmdEJ1dHRlcmZseUFmdGVyRmxhdHRlbmluZyhWTSYs
IHNpemVfdCBvdXRPZkxpbmVDYXBhY2l0eUJlZm9yZSwgc2l6ZV90IG91dE9mTGluZUNhcGFjaXR5
QWZ0ZXIpOwogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIGNvbnN0CiAgICAg
ewpAQCAtNzcwLDYgKzc3MSw5IEBAIHByb3RlY3RlZDoKICAgICAgICAgfQogICAgIH0KICAgICAg
ICAgCisgICAgc2l6ZV90IGJ1dHRlcmZseVRvdGFsU2l6ZSgpOworICAgIHNpemVfdCBidXR0ZXJm
bHlQcmVDYXBhY2l0eSgpOworCiAgICAgQnV0dGVyZmx5KiBjcmVhdGVJbml0aWFsVW5kZWNpZGVk
KFZNJiwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBDb250aWd1b3VzSlNWYWx1ZXMgY3JlYXRlSW5p
dGlhbEludDMyKFZNJiwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBDb250aWd1b3VzRG91YmxlcyBj
cmVhdGVJbml0aWFsRG91YmxlKFZNJiwgdW5zaWduZWQgbGVuZ3RoKTsKQEAgLTE1MjcsNiArMTUz
MSwzMiBAQCBpbmxpbmUgc2l6ZV90IG9mZnNldEluQnV0dGVyZmx5KFByb3BlcnR5CiAgICAgcmV0
dXJuIG9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZShvZmZzZXQpICsgQnV0dGVyZmx5OjppbmRleE9m
UHJvcGVydHlTdG9yYWdlKCk7CiB9CiAKK2lubGluZSBzaXplX3QgSlNPYmplY3Q6OmJ1dHRlcmZs
eVByZUNhcGFjaXR5KCkKK3sKKyAgICBpZiAoVU5MSUtFTFkoaGFzSW5kZXhpbmdIZWFkZXIoKSkp
CisgICAgICAgIHJldHVybiBidXR0ZXJmbHkoKS0+aW5kZXhpbmdIZWFkZXIoKS0+cHJlQ2FwYWNp
dHkoc3RydWN0dXJlKCkpOworICAgIHJldHVybiAwOworfQorCitpbmxpbmUgc2l6ZV90IEpTT2Jq
ZWN0OjpidXR0ZXJmbHlUb3RhbFNpemUoKQoreworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0g
dGhpcy0+c3RydWN0dXJlKCk7CisgICAgQnV0dGVyZmx5KiBidXR0ZXJmbHkgPSB0aGlzLT5idXR0
ZXJmbHkoKTsKKyAgICBzaXplX3QgcHJlQ2FwYWNpdHk7CisgICAgc2l6ZV90IGluZGV4aW5nUGF5
bG9hZFNpemVJbkJ5dGVzOworICAgIGJvb2wgaGFzSW5kZXhpbmdIZWFkZXIgPSB0aGlzLT5oYXNJ
bmRleGluZ0hlYWRlcigpOworCisgICAgaWYgKFVOTElLRUxZKGhhc0luZGV4aW5nSGVhZGVyKSkg
eworICAgICAgICBwcmVDYXBhY2l0eSA9IGJ1dHRlcmZseS0+aW5kZXhpbmdIZWFkZXIoKS0+cHJl
Q2FwYWNpdHkoc3RydWN0dXJlKTsKKyAgICAgICAgaW5kZXhpbmdQYXlsb2FkU2l6ZUluQnl0ZXMg
PSBidXR0ZXJmbHktPmluZGV4aW5nSGVhZGVyKCktPmluZGV4aW5nUGF5bG9hZFNpemVJbkJ5dGVz
KHN0cnVjdHVyZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHJlQ2FwYWNpdHkgPSAwOworICAg
ICAgICBpbmRleGluZ1BheWxvYWRTaXplSW5CeXRlcyA9IDA7CisgICAgfQorCisgICAgcmV0dXJu
IEJ1dHRlcmZseTo6dG90YWxTaXplKHByZUNhcGFjaXR5LCBzdHJ1Y3R1cmUtPm91dE9mTGluZUNh
cGFjaXR5KCksIGhhc0luZGV4aW5nSGVhZGVyLCBpbmRleGluZ1BheWxvYWRTaXplSW5CeXRlcyk7
Cit9CisKIC8vIEhlbHBlcnMgZm9yIHBhdGNoaW5nIGNvZGUgd2hlcmUgeW91IHdhbnQgdG8gZW1p
dCBhIGxvYWQgb3Igc3RvcmUgYW5kCiAvLyB0aGUgYmFzZSBpczoKIC8vIEZvciBpbmxpbmUgb2Zm
c2V0czogYSBwb2ludGVyIHRvIHRoZSBvdXQtb2YtbGluZSBzdG9yYWdlIHBvaW50ZXIuCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHJldmlzaW9u
IDE3MTA2NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTcyMCw2ICs3MjAsOCBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6
ZmxhdHRlbkRpY3Rpb25hcnlTCiB7CiAgICAgY2hlY2tPZmZzZXRDb25zaXN0ZW5jeSgpOwogICAg
IEFTU0VSVChpc0RpY3Rpb25hcnkoKSk7CisKKyAgICBzaXplX3QgYmVmb3JlT3V0T2ZMaW5lQ2Fw
YWNpdHkgPSB0aGlzLT5vdXRPZkxpbmVDYXBhY2l0eSgpOwogICAgIGlmIChpc1VuY2FjaGVhYmxl
RGljdGlvbmFyeSgpKSB7CiAgICAgICAgIEFTU0VSVChwcm9wZXJ0eVRhYmxlKCkpOwogCkBAIC03
NDgsMTAgKzc1MCwyMCBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6ZmxhdHRlbkRpY3Rpb25hcnlT
CiAgICAgbV9kaWN0aW9uYXJ5S2luZCA9IE5vbmVEaWN0aW9uYXJ5S2luZDsKICAgICBtX2hhc0Jl
ZW5GbGF0dGVuZWRCZWZvcmUgPSB0cnVlOwogCi0gICAgLy8gSWYgdGhlIG9iamVjdCBoYWQgYSBC
dXR0ZXJmbHkgYnV0IGFmdGVyIGZsYXR0ZW5pbmcvY29tcGFjdGluZyB3ZSBubyBsb25nZXIgaGF2
ZSBuZWVkIG9mIGl0LAotICAgIC8vIHdlIG5lZWQgdG8gemVybyBpdCBvdXQgYmVjYXVzZSB0aGUg
Y29sbGVjdG9yIGRlcGVuZHMgb24gdGhlIFN0cnVjdHVyZSB0byBrbm93IHRoZSBzaXplIGZvciBj
b3B5aW5nLgotICAgIGlmIChvYmplY3QtPmJ1dHRlcmZseSgpICYmICF0aGlzLT5vdXRPZkxpbmVD
YXBhY2l0eSgpICYmICF0aGlzLT5oYXNJbmRleGluZ0hlYWRlcihvYmplY3QpKQotICAgICAgICBv
YmplY3QtPnNldFN0cnVjdHVyZUFuZEJ1dHRlcmZseSh2bSwgdGhpcywgMCk7CisgICAgc2l6ZV90
IGFmdGVyT3V0T2ZMaW5lQ2FwYWNpdHkgPSB0aGlzLT5vdXRPZkxpbmVDYXBhY2l0eSgpOworCisg
ICAgaWYgKGJlZm9yZU91dE9mTGluZUNhcGFjaXR5ICE9IGFmdGVyT3V0T2ZMaW5lQ2FwYWNpdHkp
IHsKKyAgICAgICAgQVNTRVJUKGJlZm9yZU91dE9mTGluZUNhcGFjaXR5ID4gYWZ0ZXJPdXRPZkxp
bmVDYXBhY2l0eSk7CisgICAgICAgIC8vIElmIHRoZSBvYmplY3QgaGFkIGEgQnV0dGVyZmx5IGJ1
dCBhZnRlciBmbGF0dGVuaW5nL2NvbXBhY3Rpbmcgd2Ugbm8gbG9uZ2VyIGhhdmUgbmVlZCBvZiBp
dCwKKyAgICAgICAgLy8gd2UgbmVlZCB0byB6ZXJvIGl0IG91dCBiZWNhdXNlIHRoZSBjb2xsZWN0
b3IgZGVwZW5kcyBvbiB0aGUgU3RydWN0dXJlIHRvIGtub3cgdGhlIHNpemUgZm9yIGNvcHlpbmcu
CisgICAgICAgIGlmIChvYmplY3QtPmJ1dHRlcmZseSgpICYmICFhZnRlck91dE9mTGluZUNhcGFj
aXR5ICYmICF0aGlzLT5oYXNJbmRleGluZ0hlYWRlcihvYmplY3QpKQorICAgICAgICAgICAgb2Jq
ZWN0LT5zZXRTdHJ1Y3R1cmVBbmRCdXR0ZXJmbHkodm0sIHRoaXMsIDApOworICAgICAgICAvLyBJ
ZiB0aGUgb2JqZWN0IHdhcyBkb3duLXNpemVkIHRvIHRoZSBwb2ludCB3aGVyZSB0aGUgYmFzZSBv
ZiB0aGUgQnV0dGVyZmx5IGlzIG5vIGxvbmdlciB3aXRoaW4gdGhlIAorICAgICAgICAvLyBmaXJz
dCBDb3BpZWRCbG9jazo6YmxvY2tTaXplIGJ5dGVzLCB3ZSdsbCBnZXQgdGhlIHdyb25nIGFuc3dl
ciBpZiB3ZSB0cnkgdG8gbWFzayB0aGUgYmFzZSBiYWNrIHRvIAorICAgICAgICAvLyB0aGUgQ29w
aWVkQmxvY2sgaGVhZGVyLiBUbyBwcmV2ZW50IHRoaXMgY2FzZSB3ZSBuZWVkIHRvIG1lbW1vdmUg
dGhlIEJ1dHRlcmZseSBkb3duLgorICAgICAgICBlbHNlIGlmIChvYmplY3QtPmJ1dHRlcmZseSgp
KQorICAgICAgICAgICAgb2JqZWN0LT5zaGlmdEJ1dHRlcmZseUFmdGVyRmxhdHRlbmluZyh2bSwg
YmVmb3JlT3V0T2ZMaW5lQ2FwYWNpdHksIGFmdGVyT3V0T2ZMaW5lQ2FwYWNpdHkpOworICAgIH0K
IAogICAgIHJldHVybiB0aGlzOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9mbGF0dGVuLW92ZXJzaXplLWRpY3Rpb25hcnktb2JqZWN0LmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZmxhdHRlbi1vdmVyc2l6ZS1k
aWN0aW9uYXJ5LW9iamVjdC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZmxhdHRlbi1vdmVyc2l6ZS1kaWN0aW9uYXJ5LW9iamVjdC5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDM3IEBACit2YXIgZm9vID0gZnVuY3Rpb24obykgeworICAg
IHJldHVybiBvLmJhYTsKK307CisKK25vSW5saW5lKGZvbyk7CisKKyhmdW5jdGlvbigpIHsKKyAg
ICB2YXIgbGV0dGVycyA9IFsiYSIsICJiIiwgImMiLCAiZCIsICJlIiwgImYiLCAiZyIsICJoIiwg
ImkiLCAiaiIsICJrIiwgImwiLCAibSIsICJuIiwgIm8iLCAicCIsICJxIiwgInIiLCAicyIsICJ0
IiwgInUiLCAidiIsICJ3IiwgIngiLCAieSIsICJ6Il07CisgICAgdmFyIHByb3BlcnRpZXMgPSBb
XTsKKyAgICB2YXIgbyA9IHt9OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGV0dGVycy5sZW5n
dGg7ICsraSkgeworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGxldHRlcnMubGVuZ3RoOyAr
K2opIHsKKyAgICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgbGV0dGVycy5sZW5ndGg7ICsr
aykgeworICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eSA9IGxldHRlcnNbaV0gKyBsZXR0ZXJz
W2pdICsgbGV0dGVyc1trXTsKKyAgICAgICAgICAgICAgICBvW3Byb3BlcnR5XSA9IGk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlz
KG8pOworICAgIGtleXMuc29ydCgpOworICAgIGZvciAodmFyIGkgPSBrZXlzLmxlbmd0aCAtIDE7
IGkgPj0ga2V5cy5sZW5ndGggLSA4MDAwOyBpLS0pIHsKKyAgICAgICAgZGVsZXRlIG9ba2V5c1tp
XV07CisgICAgfQorCisgICAgdmFyIHN1bSA9IDA7CisgICAgdmFyIGlWYWwgPSBsZXR0ZXJzLmlu
ZGV4T2YoImIiKTsKKyAgICB2YXIgbml0ZXJzID0gMTAwMDsKKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IG5pdGVyczsgKytpKSB7CisgICAgICAgIHN1bSArPSBmb28obyk7CisgICAgfQorCisgICAg
aWYgKHN1bSAhPSBpVmFsICogbml0ZXJzKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImluY29y
cmVjdCByZXN1bHQ6ICIgKyBzdW0pOworCisgICAgZnVsbEdDKCk7Cit9KSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>