<?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>132695</bug_id>
          
          <creation_ts>2014-05-08 11:49:42 -0700</creation_ts>
          <short_desc>Base case for get-by-id inline cache doesn&apos;t check for HasImpureGetOwnPropertySlot</short_desc>
          <delta_ts>2014-10-25 09:53:15 -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>
    
    <cc>tobias.netzel</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1007697</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-05-08 11:49:42 -0700</bug_when>
    <thetext>We check in the case where we&apos;re accessing something other than the base object, but we fail to do so for the base object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007770</commentid>
    <comment_count>1</comment_count>
      <attachid>231100</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-05-08 14:22:04 -0700</bug_when>
    <thetext>Created attachment 231100
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007771</commentid>
    <comment_count>2</comment_count>
      <attachid>231100</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-05-08 14:23:07 -0700</bug_when>
    <thetext>Comment on attachment 231100
Patch

Can has test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007816</commentid>
    <comment_count>3</comment_count>
      <attachid>231112</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-05-08 16:45:28 -0700</bug_when>
    <thetext>Created attachment 231112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007818</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-05-08 16:47:16 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=231112) [details]
&gt; Patch

Re-uploaded because test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007830</commentid>
    <comment_count>5</comment_count>
      <attachid>231112</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-08 17:23:06 -0700</bug_when>
    <thetext>Comment on attachment 231112
Patch

Clearing flags on attachment: 231112

Committed r168510: &lt;http://trac.webkit.org/changeset/168510&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007831</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-08 17:23:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044132</commentid>
    <comment_count>7</comment_count>
    <who name="Tobias Netzel">tobias.netzel</who>
    <bug_when>2014-10-25 09:53:15 -0700</bug_when>
    <thetext>I&apos;m seeing a fail in the test added here when running with CLoop interpreter only.
The check for HasImpureGetOwnPropertySlot that was added here seems to be missing in slow_path_get_by_id() in LLIntSlowPaths.cpp .
I experimentally added an equivalent check there and this test now passes.

In case a fix is needed please give feedback whether you&apos;ll fix it yourself or if I should open a new bug and post a patch. As I&apos;m maintaining my own fork of WebKit that&apos;s always somewhat outdated, currently at 600.1.25, posting a patch against the trunk would be difficult for me - so I guess you&apos;d want to fix it yourself.

In fact I the exisiting check for
  &quot;!structure-&gt;typeInfo().newImpurePropertyFiresWatchpoints()&quot;
seems to be wrong to me and I replaced it with
  &quot;!(structure-&gt;typeInfo().hasImpureGetOwnPropertySlot()
     &amp;&amp; !structure-&gt;typeInfo().newImpurePropertyFiresWatchpoints())&quot;,
as this is what is checked for in the JIT compiler. But I have no idea whether this is correct.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231100</attachid>
            <date>2014-05-08 14:22:04 -0700</date>
            <delta_ts>2014-05-08 16:45:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132695-20140508142057.patch</filename>
            <type>text/plain</type>
            <size>2110</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY4NDk1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDE0LTA1LTA4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgQmFzZSBjYXNlIGZvciBnZXQtYnktaWQgaW5saW5lIGNhY2hlIGRvZXNuJ3QgY2hl
Y2sgZm9yIEhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY2hlY2sgaW4gdGhlIGNhc2Ugd2hlcmUgd2Un
cmUgYWNjZXNzaW5nIHNvbWV0aGluZyBvdGhlciB0aGFuIHRoZSBiYXNlIG9iamVjdCAoZS5nLiB0
aGUgcHJvdG90eXBlKSwgCisgICAgICAgIGJ1dCB3ZSBmYWlsIHRvIGRvIHNvIGZvciB0aGUgYmFz
ZSBvYmplY3QuCisKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OnRy
eUJ1aWxkR2V0QnlJRExpc3QpOgorCiAyMDE0LTA1LTA4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgU1NBIGNvbnZlcnNpb24gc2hvdWxkIGRlbGV0ZSBQaGFudG9t
TG9jYWxzIGZvciBjYXB0dXJlZCB2YXJpYWJsZXMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMTY4NDM1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQ0LDYgKzc0NCwxMCBAQCBzdGF0
aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0CiAgICAgaWYgKCFzdHJ1Y3R1cmUt
PnByb3BlcnR5QWNjZXNzZXNBcmVDYWNoZWFibGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CisgICAgVHlwZUluZm8gdHlwZUluZm8gPSBzdHJ1Y3R1cmUtPnR5cGVJbmZvKCk7CisgICAgaWYg
KHR5cGVJbmZvLmhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdCgpICYmICF0eXBlSW5mby5uZXdJ
bXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CiAgICAgaWYgKHN0dWJJbmZvLnBhdGNoLnNwaWxsTW9kZSA9PSBOZWVkVG9TcGlsbCkgewogICAg
ICAgICAvLyBXZSBjYW5ub3QgZG8gYXMgbXVjaCBpbmxpbmUgY2FjaGluZyBpZiB0aGUgcmVnaXN0
ZXJzIHdlcmUgbm90IGZsdXNoZWQgcHJpb3IgdG8gdGhpcyBHZXRCeUlkLiBJbiBwYXJ0aWN1bGFy
LAogICAgICAgICAvLyBub24tVmFsdWUgY2FjaGVkIHByb3BlcnRpZXMgcmVxdWlyZSBwbGFudGlu
ZyBjYWxscywgd2hpY2ggcmVxdWlyZXMgcmVnaXN0ZXJzIHRvIGhhdmUgYmVlbiBmbHVzaGVkLiBU
aHVzLApAQCAtNzU3LDggKzc2MSw3IEBAIHN0YXRpYyBib29sIHRyeUJ1aWxkR2V0QnlJRExpc3Qo
RXhlY1N0YXQKICAgICBzaXplX3QgY291bnQgPSAwOwogICAgIAogICAgIGlmIChzbG90LnNsb3RC
YXNlKCkgIT0gYmFzZVZhbHVlKSB7Ci0gICAgICAgIGlmIChiYXNlVmFsdWUuYXNDZWxsKCktPnN0
cnVjdHVyZSgpLT50eXBlSW5mbygpLnByb2hpYml0c1Byb3BlcnR5Q2FjaGluZygpCi0gICAgICAg
ICAgICB8fCBiYXNlVmFsdWUuYXNDZWxsKCktPnN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkK
KyAgICAgICAgaWYgKHR5cGVJbmZvLnByb2hpYml0c1Byb3BlcnR5Q2FjaGluZygpIHx8IHN0cnVj
dHVyZS0+aXNEaWN0aW9uYXJ5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IAogICAgICAgICBjb3VudCA9IG5vcm1hbGl6ZVByb3RvdHlwZUNoYWluRm9yQ2hhaW5BY2Nlc3Mo
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231112</attachid>
            <date>2014-05-08 16:45:28 -0700</date>
            <delta_ts>2014-05-08 17:23:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132695-20140508164417.patch</filename>
            <type>text/plain</type>
            <size>8807</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY4NTA0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDE0LTA1LTA4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgQmFzZSBjYXNlIGZvciBnZXQtYnktaWQgaW5saW5lIGNhY2hlIGRvZXNuJ3QgY2hl
Y2sgZm9yIEhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY2hlY2sgaW4gdGhlIGNhc2Ugd2hlcmUgd2Un
cmUgYWNjZXNzaW5nIHNvbWV0aGluZyBvdGhlciB0aGFuIHRoZSBiYXNlIG9iamVjdCAoZS5nLiB0
aGUgcHJvdG90eXBlKSwgCisgICAgICAgIGJ1dCB3ZSBmYWlsIHRvIGRvIHNvIGZvciB0aGUgYmFz
ZSBvYmplY3QuCisKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OnRy
eUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OnRyeUJ1aWxkR2V0QnlJRExpc3QpOgorICAg
ICAgICAqIGpzYy5jcHA6IEFkZGVkIHNvbWUgaW5mcmFzdHJ1Y3R1cmUgdG8gc3VwcG9ydCB0aGlz
IHRlc3QuIFdlIGRvbid0IGN1cnJlbnRseSB0cmlnZ2VyIHRoaXMgYnVnIGFueXdoZXJlIGluIFdl
YktpdAorICAgICAgICBiZWNhdXNlIGFsbCBvZiB0aGUgdmFsdWVzIHRoYXQgYXJlIHJldHVybmVk
IHRoYXQgY291bGQgYmUgaW1wdXJlIGFyZSBzZXQgdG8gdW5jYWNoZWFibGUgYW55d2F5cy4KKyAg
ICAgICAgKFdURjo6SW1wdXJlR2V0dGVyOjpJbXB1cmVHZXR0ZXIpOgorICAgICAgICAoV1RGOjpJ
bXB1cmVHZXR0ZXI6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChXVEY6OkltcHVyZUdldHRl
cjo6Y3JlYXRlKToKKyAgICAgICAgKFdURjo6SW1wdXJlR2V0dGVyOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgIChXVEY6OkltcHVyZUdldHRlcjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAg
ICAgKFdURjo6SW1wdXJlR2V0dGVyOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKFdURjo6SW1w
dXJlR2V0dGVyOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChHbG9iYWxPYmplY3Q6OmZpbmlzaENy
ZWF0aW9uKToKKyAgICAgICAgKGZ1bmN0aW9uQ3JlYXRlSW1wdXJlR2V0dGVyKToKKyAgICAgICAg
KGZ1bmN0aW9uU2V0SW1wdXJlR2V0dGVyRGVsZWdhdGUpOgorICAgICAgICAqIHRlc3RzL3N0cmVz
cy9pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LWlubGluZS1jYWNoZS5qczogQWRkZWQuCisg
ICAgICAgIChmb28pOgorCiAyMDE0LTA1LTA4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5j
b20+CiAKICAgICAgICAgZGVsZXRlQWxsQ29tcGlsZWRDb2RlKCkgc2hvdWxkbid0IHVzZSB0aGUg
c3VzcGVuc2lvbiB3b3JrbGlzdApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHJldmlzaW9uIDE2
ODQzNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMTksOSArMjE5LDY3IEBAIHByaXZhdGU6CiAgICAgV2VhazxFbGVtZW50PiBtX2VsZW1lbnQ7
CiB9OwogCitjbGFzcyBJbXB1cmVHZXR0ZXIgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7Citw
dWJsaWM6CisgICAgSW1wdXJlR2V0dGVyKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisg
ICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIHsKKyAgICB9CisKKyAgICBERUNMQVJF
X0lORk87CisgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CisKKyAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSW1wdXJl
R2V0dGVyKiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNPYmplY3QqIGRl
bGVnYXRlKQorICAgIHsKKyAgICAgICAgSW1wdXJlR2V0dGVyKiBnZXR0ZXIgPSBuZXcgKE5vdE51
bGwsIGFsbG9jYXRlQ2VsbDxJbXB1cmVHZXR0ZXI+KHZtLmhlYXAsIHNpemVvZihJbXB1cmVHZXR0
ZXIpKSkgSW1wdXJlR2V0dGVyKHZtLCBzdHJ1Y3R1cmUpOworICAgICAgICBnZXR0ZXItPmZpbmlz
aENyZWF0aW9uKHZtLCBkZWxlZ2F0ZSk7CisgICAgICAgIHJldHVybiBnZXR0ZXI7CisgICAgfQor
CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTT2JqZWN0KiBkZWxlZ2F0ZSkKKyAg
ICB7CisgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICAgICAgaWYgKGRlbGVn
YXRlKQorICAgICAgICAgICAgbV9kZWxlZ2F0ZS5zZXQodm0sIHRoaXMsIGRlbGVnYXRlKTsKKyAg
ICB9CisKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Okhh
c0ltcHVyZUdldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgSlNDOjpPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7
CisKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgbmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQor
ICAgIHsKKyAgICAgICAgSW1wdXJlR2V0dGVyKiB0aGlzT2JqZWN0ID0ganNDYXN0PEltcHVyZUdl
dHRlcio+KG9iamVjdCk7CisgICAgICAgIAorICAgICAgICBpZiAodGhpc09iamVjdC0+bV9kZWxl
Z2F0ZSAmJiB0aGlzT2JqZWN0LT5tX2RlbGVnYXRlLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgbmFt
ZSwgc2xvdCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICByZXR1cm4gQmFz
ZTo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgZXhlYywgbmFtZSwgc2xvdCk7CisgICAgfQor
CisgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQorICAgIHsKKyAgICAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbihjZWxsLCB2aXNp
dG9yKTsKKyAgICAgICAgSW1wdXJlR2V0dGVyKiB0aGlzT2JqZWN0ID0ganNDYXN0PEltcHVyZUdl
dHRlcio+KGNlbGwpOworICAgICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9kZWxl
Z2F0ZSk7CisgICAgfQorCisgICAgdm9pZCBzZXREZWxlZ2F0ZShWTSYgdm0sIEpTT2JqZWN0KiBk
ZWxlZ2F0ZSkKKyAgICB7CisgICAgICAgIG1fZGVsZWdhdGUuc2V0KHZtLCB0aGlzLCBkZWxlZ2F0
ZSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFdyaXRlQmFycmllcjxKU09iamVjdD4gbV9kZWxl
Z2F0ZTsKK307CisKIGNvbnN0IENsYXNzSW5mbyBFbGVtZW50OjpzX2luZm8gPSB7ICJFbGVtZW50
IiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShFbGVtZW50KSB9Owog
Y29uc3QgQ2xhc3NJbmZvIE1hc3F1ZXJhZGVyOjpzX2luZm8gPSB7ICJNYXNxdWVyYWRlciIsICZC
YXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoTWFzcXVlcmFkZXIpIH07CiBj
b25zdCBDbGFzc0luZm8gUm9vdDo6c19pbmZvID0geyAiUm9vdCIsICZCYXNlOjpzX2luZm8sIDAs
IDAsIENSRUFURV9NRVRIT0RfVEFCTEUoUm9vdCkgfTsKK2NvbnN0IENsYXNzSW5mbyBJbXB1cmVH
ZXR0ZXI6OnNfaW5mbyA9IHsgIkltcHVyZUdldHRlciIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENS
RUFURV9NRVRIT0RfVEFCTEUoSW1wdXJlR2V0dGVyKSB9OwogCiBFbGVtZW50SGFuZGxlT3duZXIq
IEVsZW1lbnQ6OmhhbmRsZU93bmVyKCkKIHsKQEAgLTI0Miw2ICszMDAsOCBAQCB2b2lkIEVsZW1l
bnQ6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHN0YXRpYyBib29sIGZpbGxCdWZmZXJXaXRoQ29u
dGVudHNPZkZpbGUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgVmVjdG9yPGNoYXI+JiBidWZmZXIp
OwogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZVBy
b3h5KEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25DcmVhdGVJbXB1cmVHZXR0ZXIoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldEltcHVyZUdldHRlckRlbGVnYXRlKEV4ZWNTdGF0
ZSopOwogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldEVs
ZW1lbnRSb290KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25DcmVhdGVSb290KEV4ZWNTdGF0ZSopOwpAQCAtNDIxLDYgKzQ4MSw5IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJtYWtlTWFzcXVlcmFkZXIiLCBmdW5j
dGlvbk1ha2VNYXNxdWVyYWRlciwgMCk7CiAKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjcmVh
dGVQcm94eSIsIGZ1bmN0aW9uQ3JlYXRlUHJveHksIDEpOworCisgICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAiY3JlYXRlSW1wdXJlR2V0dGVyIiwgZnVuY3Rpb25DcmVhdGVJbXB1cmVHZXR0ZXIsIDEp
OworICAgICAgICBhZGRGdW5jdGlvbih2bSwgInNldEltcHVyZUdldHRlckRlbGVnYXRlIiwgZnVu
Y3Rpb25TZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0ZSwgMik7CiAgICAgICAgIAogICAgICAgICBKU0Fy
cmF5KiBhcnJheSA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZ2xvYmFsRXhlYygpLCAwKTsKICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1bWVudHMuc2l6ZSgpOyArK2kpCkBAIC01OTEs
NiArNjU0LDMyIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmUKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb3h5KTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUltcHVyZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMpCit7
CisgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CisgICAgSlNWYWx1ZSB0YXJnZXQgPSBleGVj
LT5hcmd1bWVudCgwKTsKKyAgICBKU09iamVjdCogZGVsZWdhdGUgPSBudWxscHRyOworICAgIGlm
ICh0YXJnZXQuaXNPYmplY3QoKSkKKyAgICAgICAgZGVsZWdhdGUgPSBhc09iamVjdCh0YXJnZXQu
YXNDZWxsKCkpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gSW1wdXJlR2V0dGVyOjpjcmVh
dGVTdHJ1Y3R1cmUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBqc051
bGwoKSk7CisgICAgSW1wdXJlR2V0dGVyKiByZXN1bHQgPSBJbXB1cmVHZXR0ZXI6OmNyZWF0ZShl
eGVjLT52bSgpLCBzdHJ1Y3R1cmUsIGRlbGVnYXRlKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25T
ZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0ZShFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNMb2NrSG9s
ZGVyIGxvY2soZXhlYyk7CisgICAgSlNWYWx1ZSBiYXNlID0gZXhlYy0+YXJndW1lbnQoMCk7Cisg
ICAgaWYgKCFiYXNlLmlzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CisgICAgSlNWYWx1ZSBkZWxlZ2F0ZSA9IGV4ZWMtPmFyZ3VtZW50KDEp
OworICAgIGlmICghZGVsZWdhdGUuaXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBJbXB1cmVHZXR0ZXIqIGltcHVyZUdldHRlciA9
IGpzQ2FzdDxJbXB1cmVHZXR0ZXIqPihhc09iamVjdChiYXNlLmFzQ2VsbCgpKSk7CisgICAgaW1w
dXJlR2V0dGVyLT5zZXREZWxlZ2F0ZShleGVjLT52bSgpLCBhc09iamVjdChkZWxlZ2F0ZS5hc0Nl
bGwoKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HQ0FuZFN3ZWVwKEV4ZWNTdGF0
ZSogZXhlYykKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMTY4NDM1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjg1LDYgKzY4
NSw5IEBAIHN0YXRpYyBib29sIHRyeUNhY2hlR2V0QnlJRChFeGVjU3RhdGUqIGUKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIGlmICghc3RydWN0dXJlLT5wcm9wZXJ0eUFjY2Vzc2VzQXJlQ2Fj
aGVhYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBUeXBlSW5mbyB0eXBlSW5mbyA9
IHN0cnVjdHVyZS0+dHlwZUluZm8oKTsKKyAgICBpZiAodHlwZUluZm8uaGFzSW1wdXJlR2V0T3du
UHJvcGVydHlTbG90KCkgJiYgIXR5cGVJbmZvLm5ld0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBv
aW50cygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBPcHRpbWl6ZSBzZWxmIGFj
Y2Vzcy4KICAgICBpZiAoc2xvdC5zbG90QmFzZSgpID09IGJhc2VWYWx1ZQpAQCAtNzQ0LDYgKzc0
NywxMCBAQCBzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0CiAgICAgaWYg
KCFzdHJ1Y3R1cmUtPnByb3BlcnR5QWNjZXNzZXNBcmVDYWNoZWFibGUoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCisgICAgVHlwZUluZm8gdHlwZUluZm8gPSBzdHJ1Y3R1cmUtPnR5cGVJbmZv
KCk7CisgICAgaWYgKHR5cGVJbmZvLmhhc0ltcHVyZUdldE93blByb3BlcnR5U2xvdCgpICYmICF0
eXBlSW5mby5uZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCiAgICAgaWYgKHN0dWJJbmZvLnBhdGNoLnNwaWxsTW9kZSA9PSBOZWVkVG9T
cGlsbCkgewogICAgICAgICAvLyBXZSBjYW5ub3QgZG8gYXMgbXVjaCBpbmxpbmUgY2FjaGluZyBp
ZiB0aGUgcmVnaXN0ZXJzIHdlcmUgbm90IGZsdXNoZWQgcHJpb3IgdG8gdGhpcyBHZXRCeUlkLiBJ
biBwYXJ0aWN1bGFyLAogICAgICAgICAvLyBub24tVmFsdWUgY2FjaGVkIHByb3BlcnRpZXMgcmVx
dWlyZSBwbGFudGluZyBjYWxscywgd2hpY2ggcmVxdWlyZXMgcmVnaXN0ZXJzIHRvIGhhdmUgYmVl
biBmbHVzaGVkLiBUaHVzLApAQCAtNzU3LDggKzc2NCw3IEBAIHN0YXRpYyBib29sIHRyeUJ1aWxk
R2V0QnlJRExpc3QoRXhlY1N0YXQKICAgICBzaXplX3QgY291bnQgPSAwOwogICAgIAogICAgIGlm
IChzbG90LnNsb3RCYXNlKCkgIT0gYmFzZVZhbHVlKSB7Ci0gICAgICAgIGlmIChiYXNlVmFsdWUu
YXNDZWxsKCktPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLnByb2hpYml0c1Byb3BlcnR5Q2FjaGlu
ZygpCi0gICAgICAgICAgICB8fCBiYXNlVmFsdWUuYXNDZWxsKCktPnN0cnVjdHVyZSgpLT5pc0Rp
Y3Rpb25hcnkoKSkKKyAgICAgICAgaWYgKHR5cGVJbmZvLnByb2hpYml0c1Byb3BlcnR5Q2FjaGlu
ZygpIHx8IHN0cnVjdHVyZS0+aXNEaWN0aW9uYXJ5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIAogICAgICAgICBjb3VudCA9IG5vcm1hbGl6ZVByb3RvdHlwZUNoYWluRm9y
Q2hhaW5BY2Nlc3MoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lt
cHVyZS1nZXQtb3duLXByb3BlcnR5LXNsb3QtaW5saW5lLWNhY2hlLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW1wdXJlLWdldC1vd24tcHJvcGVy
dHktc2xvdC1pbmxpbmUtY2FjaGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2ltcHVyZS1nZXQtb3duLXByb3BlcnR5LXNsb3QtaW5saW5lLWNh
Y2hlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKKworCit2YXIgaWcgPSBjcmVh
dGVJbXB1cmVHZXR0ZXIobnVsbCk7CitpZy54ID0gNDI7CisKK3ZhciBmb28gPSBmdW5jdGlvbihv
KSB7CisgICAgcmV0dXJuIG8ueDsKK307CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBmb28oaWcpOworCitzZXRJbXB1cmVHZXR0ZXJEZWxl
Z2F0ZShpZywge3g6IngifSk7CisKK2lmIChmb28oaWcpICE9PSAieCIpCisgICAgdGhyb3cgbmV3
IEVycm9yKCJJbmNvcnJlY3QgcmVzdWx0ISIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>