<?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>163354</bug_id>
          
          <creation_ts>2016-10-12 13:46:23 -0700</creation_ts>
          <short_desc>Rename variables in arrayProtoFuncSplice() to match names in the spec.</short_desc>
          <delta_ts>2016-10-12 14:04:13 -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>WebKit Local 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 Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1239471</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-10-12 13:46:23 -0700</bug_when>
    <thetext>This will make it easier to see whether the code matches the spec or not.
Ref: https://tc39.github.io/ecma262/#sec-array.prototype.splice</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239472</commentid>
    <comment_count>1</comment_count>
      <attachid>291389</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-10-12 13:47:42 -0700</bug_when>
    <thetext>Created attachment 291389
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239480</commentid>
    <comment_count>2</comment_count>
      <attachid>291391</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-10-12 13:52:55 -0700</bug_when>
    <thetext>Created attachment 291391
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239483</commentid>
    <comment_count>3</comment_count>
      <attachid>291391</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-12 13:55:20 -0700</bug_when>
    <thetext>Comment on attachment 291391
proposed patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=291391&amp;action=review

&gt; Source/JavaScriptCore/runtime/ArrayPrototype.cpp:972
&gt; +    unsigned itemCount = std::max&lt;unsigned&gt;(exec-&gt;argumentCount() - 2, 0);

this doesn&apos;t seem correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239487</commentid>
    <comment_count>4</comment_count>
      <attachid>291392</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-10-12 13:57:40 -0700</bug_when>
    <thetext>Created attachment 291392
proposed patch.

Thanks for catching the bad cast.  It&apos;s fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239496</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-10-12 14:04:13 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r207241: &lt;http://trac.webkit.org/r207241&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291389</attachid>
            <date>2016-10-12 13:47:42 -0700</date>
            <delta_ts>2016-10-12 13:52:55 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-163354.patch</filename>
            <type>text/plain</type>
            <size>5903</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA3MjM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDE2LTEwLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgdmFyaWFibGVzIGluIGFycmF5UHJvdG9GdW5jU3BsaWNlKCkgdG8gbWF0Y2ggbmFtZXMg
aW4gdGhlIHNwZWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjMzNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjphcnJheVBy
b3RvRnVuY1NwbGljZSk6CisKIDIwMTYtMTAtMTIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgSGFuZGxlIG5vbi1mdW5jdGlvbiwgbm9uLXVuZGVmaW5l
ZCBjb21wYXJhdG9yIGluIEFycmF5LnByb3RvdHlwZS5zb3J0CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAyMDcy
MjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTkyMSwzMyArOTIxLDMzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlQcm90b0YKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogICAgIH0KIAotICAgIHVuc2lnbmVkIGJlZ2luID0gYXJndW1lbnRDbGFtcGVkSW5kZXhG
cm9tU3RhcnRPckVuZChleGVjLCAwLCBsZW5ndGgpOworICAgIHVuc2lnbmVkIGFjdHVhbFN0YXJ0
ID0gYXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVuZChleGVjLCAwLCBsZW5ndGgpOwog
Ci0gICAgdW5zaWduZWQgZGVsZXRlQ291bnQgPSBsZW5ndGggLSBiZWdpbjsKKyAgICB1bnNpZ25l
ZCBhY3R1YWxEZWxldGVDb3VudCA9IGxlbmd0aCAtIGFjdHVhbFN0YXJ0OwogICAgIGlmIChleGVj
LT5hcmd1bWVudENvdW50KCkgPiAxKSB7Ci0gICAgICAgIGRvdWJsZSBkZWxldGVEb3VibGUgPSBl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludGVnZXIoZXhlYyk7Ci0gICAgICAgIGlmIChk
ZWxldGVEb3VibGUgPCAwKQotICAgICAgICAgICAgZGVsZXRlQ291bnQgPSAwOwotICAgICAgICBl
bHNlIGlmIChkZWxldGVEb3VibGUgPiBsZW5ndGggLSBiZWdpbikKLSAgICAgICAgICAgIGRlbGV0
ZUNvdW50ID0gbGVuZ3RoIC0gYmVnaW47CisgICAgICAgIGRvdWJsZSBkZWxldGVDb3VudCA9IGV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50ZWdlcihleGVjKTsKKyAgICAgICAgaWYgKGRl
bGV0ZUNvdW50IDwgMCkKKyAgICAgICAgICAgIGFjdHVhbERlbGV0ZUNvdW50ID0gMDsKKyAgICAg
ICAgZWxzZSBpZiAoZGVsZXRlQ291bnQgPiBsZW5ndGggLSBhY3R1YWxTdGFydCkKKyAgICAgICAg
ICAgIGFjdHVhbERlbGV0ZUNvdW50ID0gbGVuZ3RoIC0gYWN0dWFsU3RhcnQ7CiAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlbGV0
ZURvdWJsZSk7CisgICAgICAgICAgICBhY3R1YWxEZWxldGVDb3VudCA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihkZWxldGVDb3VudCk7CiAgICAgfQogCi0gICAgc3RkOjpwYWlyPFNwZWNpZXNDb25z
dHJ1Y3RSZXN1bHQsIEpTT2JqZWN0Kj4gc3BlY2llc1Jlc3VsdCA9IHNwZWNpZXNDb25zdHJ1Y3RB
cnJheShleGVjLCB0aGlzT2JqLCBkZWxldGVDb3VudCk7CisgICAgc3RkOjpwYWlyPFNwZWNpZXND
b25zdHJ1Y3RSZXN1bHQsIEpTT2JqZWN0Kj4gc3BlY2llc1Jlc3VsdCA9IHNwZWNpZXNDb25zdHJ1
Y3RBcnJheShleGVjLCB0aGlzT2JqLCBhY3R1YWxEZWxldGVDb3VudCk7CiAgICAgaWYgKHNwZWNp
ZXNSZXN1bHQuZmlyc3QgPT0gU3BlY2llc0NvbnN0cnVjdFJlc3VsdDo6RXhjZXB0aW9uKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCiAgICAgSlNPYmpl
Y3QqIHJlc3VsdCA9IG51bGxwdHI7CiAgICAgaWYgKHNwZWNpZXNSZXN1bHQuZmlyc3QgPT0gU3Bl
Y2llc0NvbnN0cnVjdFJlc3VsdDo6RmFzdFBhdGggJiYgaXNKU0FycmF5KHRoaXNPYmopICYmIGxl
bmd0aCA9PSBnZXRMZW5ndGgoZXhlYywgdGhpc09iaikpCi0gICAgICAgIHJlc3VsdCA9IGFzQXJy
YXkodGhpc09iaiktPmZhc3RTbGljZSgqZXhlYywgYmVnaW4sIGRlbGV0ZUNvdW50KTsKKyAgICAg
ICAgcmVzdWx0ID0gYXNBcnJheSh0aGlzT2JqKS0+ZmFzdFNsaWNlKCpleGVjLCBhY3R1YWxTdGFy
dCwgYWN0dWFsRGVsZXRlQ291bnQpOwogCiAgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAgaWYg
KHNwZWNpZXNSZXN1bHQuZmlyc3QgPT0gU3BlY2llc0NvbnN0cnVjdFJlc3VsdDo6Q3JlYXRlZE9i
amVjdCkgewogICAgICAgICAgICAgcmVzdWx0ID0gc3BlY2llc1Jlc3VsdC5zZWNvbmQ7CiAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgayA9IDA7IGsgPCBkZWxldGVDb3Vu
dDsgKytrKSB7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZSB2ID0gZ2V0UHJvcGVydHkoZXhlYywg
dGhpc09iaiwgayArIGJlZ2luKTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgayA9IDA7IGsg
PCBhY3R1YWxEZWxldGVDb3VudDsgKytrKSB7CisgICAgICAgICAgICAgICAgSlNWYWx1ZSB2ID0g
Z2V0UHJvcGVydHkoZXhlYywgdGhpc09iaiwgayArIGFjdHVhbFN0YXJ0KTsKICAgICAgICAgICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICAg
ICAgICAgICAgICBpZiAoVU5MSUtFTFkoIXYpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKQEAgLTk1NSwzNSArOTU1LDM4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJy
YXlQcm90b0YKICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIHJlc3VsdCA9IEpTQXJyYXk6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQodm0sIGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKS0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdB
bGxvY2F0aW9uKEFycmF5V2l0aFVuZGVjaWRlZCksIGRlbGV0ZUNvdW50KTsKKyAgICAgICAgICAg
IHJlc3VsdCA9IEpTQXJyYXk6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQodm0sIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxv
Y2F0aW9uKEFycmF5V2l0aFVuZGVjaWRlZCksIGFjdHVhbERlbGV0ZUNvdW50KTsKICAgICAgICAg
ICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
dGhyb3dPdXRPZk1lbW9yeUVycm9yKGV4ZWMsIHNjb3BlKSk7CiAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgayA9IDA7IGsgPCBkZWxldGVDb3VudDsgKytrKSB7Ci0gICAg
ICAgICAgICAgICAgSlNWYWx1ZSB2ID0gZ2V0UHJvcGVydHkoZXhlYywgdGhpc09iaiwgayArIGJl
Z2luKTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgayA9IDA7IGsgPCBhY3R1YWxEZWxldGVD
b3VudDsgKytrKSB7CisgICAgICAgICAgICAgICAgSlNWYWx1ZSB2ID0gZ2V0UHJvcGVydHkoZXhl
YywgdGhpc09iaiwgayArIGFjdHVhbFN0YXJ0KTsKICAgICAgICAgICAgICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICAgICAgICAgICAgICBpZiAo
VU5MSUtFTFkoIXYpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
ICAgICByZXN1bHQtPmluaXRpYWxpemVJbmRleCh2bSwgaywgdik7CiAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBBU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpKTsKICAgICAgICAgfQorICAgICAg
ICBzZXRMZW5ndGgoZXhlYywgdm0sIHJlc3VsdCwgYWN0dWFsRGVsZXRlQ291bnQpOworICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICB9CiAK
LSAgICB1bnNpZ25lZCBhZGRpdGlvbmFsQXJncyA9IHN0ZDo6bWF4PGludD4oZXhlYy0+YXJndW1l
bnRDb3VudCgpIC0gMiwgMCk7Ci0gICAgaWYgKGFkZGl0aW9uYWxBcmdzIDwgZGVsZXRlQ291bnQp
IHsKLSAgICAgICAgc2hpZnQ8SlNBcnJheTo6U2hpZnRDb3VudEZvclNwbGljZT4oZXhlYywgdGhp
c09iaiwgYmVnaW4sIGRlbGV0ZUNvdW50LCBhZGRpdGlvbmFsQXJncywgbGVuZ3RoKTsKKyAgICB1
bnNpZ25lZCBpdGVtQ291bnQgPSBzdGQ6Om1heDx1bnNpZ25lZD4oZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIC0gMiwgMCk7CisgICAgaWYgKGl0ZW1Db3VudCA8IGFjdHVhbERlbGV0ZUNvdW50KSB7Cisg
ICAgICAgIHNoaWZ0PEpTQXJyYXk6OlNoaWZ0Q291bnRGb3JTcGxpY2U+KGV4ZWMsIHRoaXNPYmos
IGFjdHVhbFN0YXJ0LCBhY3R1YWxEZWxldGVDb3VudCwgaXRlbUNvdW50LCBsZW5ndGgpOwogICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICB9
IGVsc2UgaWYgKGFkZGl0aW9uYWxBcmdzID4gZGVsZXRlQ291bnQpIHsKLSAgICAgICAgdW5zaGlm
dDxKU0FycmF5OjpTaGlmdENvdW50Rm9yU3BsaWNlPihleGVjLCB0aGlzT2JqLCBiZWdpbiwgZGVs
ZXRlQ291bnQsIGFkZGl0aW9uYWxBcmdzLCBsZW5ndGgpOworICAgIH0gZWxzZSBpZiAoaXRlbUNv
dW50ID4gYWN0dWFsRGVsZXRlQ291bnQpIHsKKyAgICAgICAgdW5zaGlmdDxKU0FycmF5OjpTaGlm
dENvdW50Rm9yU3BsaWNlPihleGVjLCB0aGlzT2JqLCBhY3R1YWxTdGFydCwgYWN0dWFsRGVsZXRl
Q291bnQsIGl0ZW1Db3VudCwgbGVuZ3RoKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgfQotICAgIGZvciAodW5zaWduZWQgayA9IDA7
IGsgPCBhZGRpdGlvbmFsQXJnczsgKytrKSB7Ci0gICAgICAgIHRoaXNPYmotPnB1dEJ5SW5kZXhJ
bmxpbmUoZXhlYywgayArIGJlZ2luLCBleGVjLT51bmNoZWNrZWRBcmd1bWVudChrICsgMiksIHRy
dWUpOworICAgIGZvciAodW5zaWduZWQgayA9IDA7IGsgPCBpdGVtQ291bnQ7ICsraykgeworICAg
ICAgICB0aGlzT2JqLT5wdXRCeUluZGV4SW5saW5lKGV4ZWMsIGsgKyBhY3R1YWxTdGFydCwgZXhl
Yy0+dW5jaGVja2VkQXJndW1lbnQoayArIDIpLCB0cnVlKTsKICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgfQogICAgIAogICAgIHNjb3Bl
LnJlbGVhc2UoKTsKLSAgICBzZXRMZW5ndGgoZXhlYywgdm0sIHRoaXNPYmosIGxlbmd0aCAtIGRl
bGV0ZUNvdW50ICsgYWRkaXRpb25hbEFyZ3MpOworICAgIHNldExlbmd0aChleGVjLCB2bSwgdGhp
c09iaiwgbGVuZ3RoIC0gYWN0dWFsRGVsZXRlQ291bnQgKyBpdGVtQ291bnQpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291391</attachid>
            <date>2016-10-12 13:52:55 -0700</date>
            <delta_ts>2016-10-12 13:57:40 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-163354.patch</filename>
            <type>text/plain</type>
            <size>5904</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA3MjM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDE2LTEwLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgdmFyaWFibGVzIGluIGFycmF5UHJvdG9GdW5jU3BsaWNlKCkgdG8gbWF0Y2ggbmFtZXMg
aW4gdGhlIHNwZWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjMzNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIHdpbGwgbWFrZSBpdCBlYXNpZXIgdG8gc2VlIHdoZXRoZXIgdGhlIGNvZGUgbWF0
Y2hlcyB0aGUgc3BlYyBvciBub3QuCisgICAgICAgIFJlZjogaHR0cHM6Ly90YzM5LmdpdGh1Yi5p
by9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnNwbGljZQorCisgICAgICAgICogcnVudGlt
ZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jU3BsaWNl
KToKKwogMjAxNi0xMC0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4K
IAogICAgICAgICBIYW5kbGUgbm9uLWZ1bmN0aW9uLCBub24tdW5kZWZpbmVkIGNvbXBhcmF0b3Ig
aW4gQXJyYXkucHJvdG90eXBlLnNvcnQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5UHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDIwNzIyNikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTIxLDMzICs5MjEsMzMgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJh
eVByb3RvRgogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAgICAgfQog
Ci0gICAgdW5zaWduZWQgYmVnaW4gPSBhcmd1bWVudENsYW1wZWRJbmRleEZyb21TdGFydE9yRW5k
KGV4ZWMsIDAsIGxlbmd0aCk7CisgICAgdW5zaWduZWQgYWN0dWFsU3RhcnQgPSBhcmd1bWVudENs
YW1wZWRJbmRleEZyb21TdGFydE9yRW5kKGV4ZWMsIDAsIGxlbmd0aCk7CiAKLSAgICB1bnNpZ25l
ZCBkZWxldGVDb3VudCA9IGxlbmd0aCAtIGJlZ2luOworICAgIHVuc2lnbmVkIGFjdHVhbERlbGV0
ZUNvdW50ID0gbGVuZ3RoIC0gYWN0dWFsU3RhcnQ7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSA+IDEpIHsKLSAgICAgICAgZG91YmxlIGRlbGV0ZURvdWJsZSA9IGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDEpLnRvSW50ZWdlcihleGVjKTsKLSAgICAgICAgaWYgKGRlbGV0ZURvdWJsZSA8
IDApCi0gICAgICAgICAgICBkZWxldGVDb3VudCA9IDA7Ci0gICAgICAgIGVsc2UgaWYgKGRlbGV0
ZURvdWJsZSA+IGxlbmd0aCAtIGJlZ2luKQotICAgICAgICAgICAgZGVsZXRlQ291bnQgPSBsZW5n
dGggLSBiZWdpbjsKKyAgICAgICAgZG91YmxlIGRlbGV0ZUNvdW50ID0gZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoMSkudG9JbnRlZ2VyKGV4ZWMpOworICAgICAgICBpZiAoZGVsZXRlQ291bnQgPCAw
KQorICAgICAgICAgICAgYWN0dWFsRGVsZXRlQ291bnQgPSAwOworICAgICAgICBlbHNlIGlmIChk
ZWxldGVDb3VudCA+IGxlbmd0aCAtIGFjdHVhbFN0YXJ0KQorICAgICAgICAgICAgYWN0dWFsRGVs
ZXRlQ291bnQgPSBsZW5ndGggLSBhY3R1YWxTdGFydDsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgZGVsZXRlQ291bnQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVsZXRlRG91YmxlKTsKKyAg
ICAgICAgICAgIGFjdHVhbERlbGV0ZUNvdW50ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlbGV0
ZUNvdW50KTsKICAgICB9CiAKLSAgICBzdGQ6OnBhaXI8U3BlY2llc0NvbnN0cnVjdFJlc3VsdCwg
SlNPYmplY3QqPiBzcGVjaWVzUmVzdWx0ID0gc3BlY2llc0NvbnN0cnVjdEFycmF5KGV4ZWMsIHRo
aXNPYmosIGRlbGV0ZUNvdW50KTsKKyAgICBzdGQ6OnBhaXI8U3BlY2llc0NvbnN0cnVjdFJlc3Vs
dCwgSlNPYmplY3QqPiBzcGVjaWVzUmVzdWx0ID0gc3BlY2llc0NvbnN0cnVjdEFycmF5KGV4ZWMs
IHRoaXNPYmosIGFjdHVhbERlbGV0ZUNvdW50KTsKICAgICBpZiAoc3BlY2llc1Jlc3VsdC5maXJz
dCA9PSBTcGVjaWVzQ29uc3RydWN0UmVzdWx0OjpFeGNlcHRpb24pCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKICAgICBKU09iamVjdCogcmVzdWx0ID0g
bnVsbHB0cjsKICAgICBpZiAoc3BlY2llc1Jlc3VsdC5maXJzdCA9PSBTcGVjaWVzQ29uc3RydWN0
UmVzdWx0OjpGYXN0UGF0aCAmJiBpc0pTQXJyYXkodGhpc09iaikgJiYgbGVuZ3RoID09IGdldExl
bmd0aChleGVjLCB0aGlzT2JqKSkKLSAgICAgICAgcmVzdWx0ID0gYXNBcnJheSh0aGlzT2JqKS0+
ZmFzdFNsaWNlKCpleGVjLCBiZWdpbiwgZGVsZXRlQ291bnQpOworICAgICAgICByZXN1bHQgPSBh
c0FycmF5KHRoaXNPYmopLT5mYXN0U2xpY2UoKmV4ZWMsIGFjdHVhbFN0YXJ0LCBhY3R1YWxEZWxl
dGVDb3VudCk7CiAKICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICBpZiAoc3BlY2llc1Jlc3Vs
dC5maXJzdCA9PSBTcGVjaWVzQ29uc3RydWN0UmVzdWx0OjpDcmVhdGVkT2JqZWN0KSB7CiAgICAg
ICAgICAgICByZXN1bHQgPSBzcGVjaWVzUmVzdWx0LnNlY29uZDsKICAgICAgICAgICAgIAotICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gMDsgayA8IGRlbGV0ZUNvdW50OyArK2spIHsKLSAg
ICAgICAgICAgICAgICBKU1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBrICsg
YmVnaW4pOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gMDsgayA8IGFjdHVhbERlbGV0
ZUNvdW50OyArK2spIHsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShl
eGVjLCB0aGlzT2JqLCBrICsgYWN0dWFsU3RhcnQpOwogICAgICAgICAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgICAgICAgICAgICAgIGlm
IChVTkxJS0VMWSghdikpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtOTU1LDEy
ICs5NTUsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRgogICAg
ICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkp
OwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0ID0g
SlNBcnJheTo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZCh2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpLT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oQXJy
YXlXaXRoVW5kZWNpZGVkKSwgZGVsZXRlQ291bnQpOworICAgICAgICAgICAgcmVzdWx0ID0gSlNB
cnJheTo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZCh2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oQXJyYXlX
aXRoVW5kZWNpZGVkKSwgYWN0dWFsRGVsZXRlQ291bnQpOwogICAgICAgICAgICAgaWYgKCFyZXN1
bHQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd091dE9mTWVt
b3J5RXJyb3IoZXhlYywgc2NvcGUpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBrID0gMDsgayA8IGRlbGV0ZUNvdW50OyArK2spIHsKLSAgICAgICAgICAgICAgICBK
U1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBrICsgYmVnaW4pOworICAgICAg
ICAgICAgZm9yICh1bnNpZ25lZCBrID0gMDsgayA8IGFjdHVhbERlbGV0ZUNvdW50OyArK2spIHsK
KyAgICAgICAgICAgICAgICBKU1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBr
ICsgYWN0dWFsU3RhcnQpOwogICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgICAgICAgICAgICAgIGlmIChVTkxJS0VMWSghdikp
CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtOTY5LDIxICs5NjksMjEgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRgogICAgICAgICB9CiAgICAgfQog
Ci0gICAgdW5zaWduZWQgYWRkaXRpb25hbEFyZ3MgPSBzdGQ6Om1heDxpbnQ+KGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSAtIDIsIDApOwotICAgIGlmIChhZGRpdGlvbmFsQXJncyA8IGRlbGV0ZUNvdW50
KSB7Ci0gICAgICAgIHNoaWZ0PEpTQXJyYXk6OlNoaWZ0Q291bnRGb3JTcGxpY2U+KGV4ZWMsIHRo
aXNPYmosIGJlZ2luLCBkZWxldGVDb3VudCwgYWRkaXRpb25hbEFyZ3MsIGxlbmd0aCk7CisgICAg
dW5zaWduZWQgaXRlbUNvdW50ID0gc3RkOjptYXg8dW5zaWduZWQ+KGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSAtIDIsIDApOworICAgIGlmIChpdGVtQ291bnQgPCBhY3R1YWxEZWxldGVDb3VudCkgewor
ICAgICAgICBzaGlmdDxKU0FycmF5OjpTaGlmdENvdW50Rm9yU3BsaWNlPihleGVjLCB0aGlzT2Jq
LCBhY3R1YWxTdGFydCwgYWN0dWFsRGVsZXRlQ291bnQsIGl0ZW1Db3VudCwgbGVuZ3RoKTsKICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAg
fSBlbHNlIGlmIChhZGRpdGlvbmFsQXJncyA+IGRlbGV0ZUNvdW50KSB7Ci0gICAgICAgIHVuc2hp
ZnQ8SlNBcnJheTo6U2hpZnRDb3VudEZvclNwbGljZT4oZXhlYywgdGhpc09iaiwgYmVnaW4sIGRl
bGV0ZUNvdW50LCBhZGRpdGlvbmFsQXJncywgbGVuZ3RoKTsKKyAgICB9IGVsc2UgaWYgKGl0ZW1D
b3VudCA+IGFjdHVhbERlbGV0ZUNvdW50KSB7CisgICAgICAgIHVuc2hpZnQ8SlNBcnJheTo6U2hp
ZnRDb3VudEZvclNwbGljZT4oZXhlYywgdGhpc09iaiwgYWN0dWFsU3RhcnQsIGFjdHVhbERlbGV0
ZUNvdW50LCBpdGVtQ291bnQsIGxlbmd0aCk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIH0KLSAgICBmb3IgKHVuc2lnbmVkIGsgPSAw
OyBrIDwgYWRkaXRpb25hbEFyZ3M7ICsraykgewotICAgICAgICB0aGlzT2JqLT5wdXRCeUluZGV4
SW5saW5lKGV4ZWMsIGsgKyBiZWdpbiwgZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoayArIDIpLCB0
cnVlKTsKKyAgICBmb3IgKHVuc2lnbmVkIGsgPSAwOyBrIDwgaXRlbUNvdW50OyArK2spIHsKKyAg
ICAgICAgdGhpc09iai0+cHV0QnlJbmRleElubGluZShleGVjLCBrICsgYWN0dWFsU3RhcnQsIGV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGsgKyAyKSwgdHJ1ZSk7CiAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIH0KICAgICAKICAgICBzY29w
ZS5yZWxlYXNlKCk7Ci0gICAgc2V0TGVuZ3RoKGV4ZWMsIHZtLCB0aGlzT2JqLCBsZW5ndGggLSBk
ZWxldGVDb3VudCArIGFkZGl0aW9uYWxBcmdzKTsKKyAgICBzZXRMZW5ndGgoZXhlYywgdm0sIHRo
aXNPYmosIGxlbmd0aCAtIGFjdHVhbERlbGV0ZUNvdW50ICsgaXRlbUNvdW50KTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAK
</data>
<flag name="review"
          id="314533"
          type_id="1"
          status="-"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291392</attachid>
            <date>2016-10-12 13:57:40 -0700</date>
            <delta_ts>2016-10-12 14:01:36 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-163354.patch</filename>
            <type>text/plain</type>
            <size>5899</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA3MjM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDE2LTEwLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgdmFyaWFibGVzIGluIGFycmF5UHJvdG9GdW5jU3BsaWNlKCkgdG8gbWF0Y2ggbmFtZXMg
aW4gdGhlIHNwZWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjMzNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIHdpbGwgbWFrZSBpdCBlYXNpZXIgdG8gc2VlIHdoZXRoZXIgdGhlIGNvZGUgbWF0
Y2hlcyB0aGUgc3BlYyBvciBub3QuCisgICAgICAgIFJlZjogaHR0cHM6Ly90YzM5LmdpdGh1Yi5p
by9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnNwbGljZQorCisgICAgICAgICogcnVudGlt
ZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jU3BsaWNl
KToKKwogMjAxNi0xMC0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4K
IAogICAgICAgICBIYW5kbGUgbm9uLWZ1bmN0aW9uLCBub24tdW5kZWZpbmVkIGNvbXBhcmF0b3Ig
aW4gQXJyYXkucHJvdG90eXBlLnNvcnQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5UHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDIwNzIyNikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTIxLDMzICs5MjEsMzMgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJh
eVByb3RvRgogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAgICAgfQog
Ci0gICAgdW5zaWduZWQgYmVnaW4gPSBhcmd1bWVudENsYW1wZWRJbmRleEZyb21TdGFydE9yRW5k
KGV4ZWMsIDAsIGxlbmd0aCk7CisgICAgdW5zaWduZWQgYWN0dWFsU3RhcnQgPSBhcmd1bWVudENs
YW1wZWRJbmRleEZyb21TdGFydE9yRW5kKGV4ZWMsIDAsIGxlbmd0aCk7CiAKLSAgICB1bnNpZ25l
ZCBkZWxldGVDb3VudCA9IGxlbmd0aCAtIGJlZ2luOworICAgIHVuc2lnbmVkIGFjdHVhbERlbGV0
ZUNvdW50ID0gbGVuZ3RoIC0gYWN0dWFsU3RhcnQ7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSA+IDEpIHsKLSAgICAgICAgZG91YmxlIGRlbGV0ZURvdWJsZSA9IGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDEpLnRvSW50ZWdlcihleGVjKTsKLSAgICAgICAgaWYgKGRlbGV0ZURvdWJsZSA8
IDApCi0gICAgICAgICAgICBkZWxldGVDb3VudCA9IDA7Ci0gICAgICAgIGVsc2UgaWYgKGRlbGV0
ZURvdWJsZSA+IGxlbmd0aCAtIGJlZ2luKQotICAgICAgICAgICAgZGVsZXRlQ291bnQgPSBsZW5n
dGggLSBiZWdpbjsKKyAgICAgICAgZG91YmxlIGRlbGV0ZUNvdW50ID0gZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoMSkudG9JbnRlZ2VyKGV4ZWMpOworICAgICAgICBpZiAoZGVsZXRlQ291bnQgPCAw
KQorICAgICAgICAgICAgYWN0dWFsRGVsZXRlQ291bnQgPSAwOworICAgICAgICBlbHNlIGlmIChk
ZWxldGVDb3VudCA+IGxlbmd0aCAtIGFjdHVhbFN0YXJ0KQorICAgICAgICAgICAgYWN0dWFsRGVs
ZXRlQ291bnQgPSBsZW5ndGggLSBhY3R1YWxTdGFydDsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgZGVsZXRlQ291bnQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVsZXRlRG91YmxlKTsKKyAg
ICAgICAgICAgIGFjdHVhbERlbGV0ZUNvdW50ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlbGV0
ZUNvdW50KTsKICAgICB9CiAKLSAgICBzdGQ6OnBhaXI8U3BlY2llc0NvbnN0cnVjdFJlc3VsdCwg
SlNPYmplY3QqPiBzcGVjaWVzUmVzdWx0ID0gc3BlY2llc0NvbnN0cnVjdEFycmF5KGV4ZWMsIHRo
aXNPYmosIGRlbGV0ZUNvdW50KTsKKyAgICBzdGQ6OnBhaXI8U3BlY2llc0NvbnN0cnVjdFJlc3Vs
dCwgSlNPYmplY3QqPiBzcGVjaWVzUmVzdWx0ID0gc3BlY2llc0NvbnN0cnVjdEFycmF5KGV4ZWMs
IHRoaXNPYmosIGFjdHVhbERlbGV0ZUNvdW50KTsKICAgICBpZiAoc3BlY2llc1Jlc3VsdC5maXJz
dCA9PSBTcGVjaWVzQ29uc3RydWN0UmVzdWx0OjpFeGNlcHRpb24pCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKICAgICBKU09iamVjdCogcmVzdWx0ID0g
bnVsbHB0cjsKICAgICBpZiAoc3BlY2llc1Jlc3VsdC5maXJzdCA9PSBTcGVjaWVzQ29uc3RydWN0
UmVzdWx0OjpGYXN0UGF0aCAmJiBpc0pTQXJyYXkodGhpc09iaikgJiYgbGVuZ3RoID09IGdldExl
bmd0aChleGVjLCB0aGlzT2JqKSkKLSAgICAgICAgcmVzdWx0ID0gYXNBcnJheSh0aGlzT2JqKS0+
ZmFzdFNsaWNlKCpleGVjLCBiZWdpbiwgZGVsZXRlQ291bnQpOworICAgICAgICByZXN1bHQgPSBh
c0FycmF5KHRoaXNPYmopLT5mYXN0U2xpY2UoKmV4ZWMsIGFjdHVhbFN0YXJ0LCBhY3R1YWxEZWxl
dGVDb3VudCk7CiAKICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICBpZiAoc3BlY2llc1Jlc3Vs
dC5maXJzdCA9PSBTcGVjaWVzQ29uc3RydWN0UmVzdWx0OjpDcmVhdGVkT2JqZWN0KSB7CiAgICAg
ICAgICAgICByZXN1bHQgPSBzcGVjaWVzUmVzdWx0LnNlY29uZDsKICAgICAgICAgICAgIAotICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gMDsgayA8IGRlbGV0ZUNvdW50OyArK2spIHsKLSAg
ICAgICAgICAgICAgICBKU1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBrICsg
YmVnaW4pOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gMDsgayA8IGFjdHVhbERlbGV0
ZUNvdW50OyArK2spIHsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShl
eGVjLCB0aGlzT2JqLCBrICsgYWN0dWFsU3RhcnQpOwogICAgICAgICAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgICAgICAgICAgICAgIGlm
IChVTkxJS0VMWSghdikpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtOTU1LDEy
ICs5NTUsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRgogICAg
ICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkp
OwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0ID0g
SlNBcnJheTo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZCh2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpLT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oQXJy
YXlXaXRoVW5kZWNpZGVkKSwgZGVsZXRlQ291bnQpOworICAgICAgICAgICAgcmVzdWx0ID0gSlNB
cnJheTo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZCh2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oQXJyYXlX
aXRoVW5kZWNpZGVkKSwgYWN0dWFsRGVsZXRlQ291bnQpOwogICAgICAgICAgICAgaWYgKCFyZXN1
bHQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd091dE9mTWVt
b3J5RXJyb3IoZXhlYywgc2NvcGUpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBrID0gMDsgayA8IGRlbGV0ZUNvdW50OyArK2spIHsKLSAgICAgICAgICAgICAgICBK
U1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBrICsgYmVnaW4pOworICAgICAg
ICAgICAgZm9yICh1bnNpZ25lZCBrID0gMDsgayA8IGFjdHVhbERlbGV0ZUNvdW50OyArK2spIHsK
KyAgICAgICAgICAgICAgICBKU1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBr
ICsgYWN0dWFsU3RhcnQpOwogICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgICAgICAgICAgICAgIGlmIChVTkxJS0VMWSghdikp
CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtOTY5LDIxICs5NjksMjEgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRgogICAgICAgICB9CiAgICAgfQog
Ci0gICAgdW5zaWduZWQgYWRkaXRpb25hbEFyZ3MgPSBzdGQ6Om1heDxpbnQ+KGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSAtIDIsIDApOwotICAgIGlmIChhZGRpdGlvbmFsQXJncyA8IGRlbGV0ZUNvdW50
KSB7Ci0gICAgICAgIHNoaWZ0PEpTQXJyYXk6OlNoaWZ0Q291bnRGb3JTcGxpY2U+KGV4ZWMsIHRo
aXNPYmosIGJlZ2luLCBkZWxldGVDb3VudCwgYWRkaXRpb25hbEFyZ3MsIGxlbmd0aCk7CisgICAg
dW5zaWduZWQgaXRlbUNvdW50ID0gc3RkOjptYXg8aW50PihleGVjLT5hcmd1bWVudENvdW50KCkg
LSAyLCAwKTsKKyAgICBpZiAoaXRlbUNvdW50IDwgYWN0dWFsRGVsZXRlQ291bnQpIHsKKyAgICAg
ICAgc2hpZnQ8SlNBcnJheTo6U2hpZnRDb3VudEZvclNwbGljZT4oZXhlYywgdGhpc09iaiwgYWN0
dWFsU3RhcnQsIGFjdHVhbERlbGV0ZUNvdW50LCBpdGVtQ291bnQsIGxlbmd0aCk7CiAgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIH0gZWxz
ZSBpZiAoYWRkaXRpb25hbEFyZ3MgPiBkZWxldGVDb3VudCkgewotICAgICAgICB1bnNoaWZ0PEpT
QXJyYXk6OlNoaWZ0Q291bnRGb3JTcGxpY2U+KGV4ZWMsIHRoaXNPYmosIGJlZ2luLCBkZWxldGVD
b3VudCwgYWRkaXRpb25hbEFyZ3MsIGxlbmd0aCk7CisgICAgfSBlbHNlIGlmIChpdGVtQ291bnQg
PiBhY3R1YWxEZWxldGVDb3VudCkgeworICAgICAgICB1bnNoaWZ0PEpTQXJyYXk6OlNoaWZ0Q291
bnRGb3JTcGxpY2U+KGV4ZWMsIHRoaXNPYmosIGFjdHVhbFN0YXJ0LCBhY3R1YWxEZWxldGVDb3Vu
dCwgaXRlbUNvdW50LCBsZW5ndGgpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICB9Ci0gICAgZm9yICh1bnNpZ25lZCBrID0gMDsgayA8
IGFkZGl0aW9uYWxBcmdzOyArK2spIHsKLSAgICAgICAgdGhpc09iai0+cHV0QnlJbmRleElubGlu
ZShleGVjLCBrICsgYmVnaW4sIGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGsgKyAyKSwgdHJ1ZSk7
CisgICAgZm9yICh1bnNpZ25lZCBrID0gMDsgayA8IGl0ZW1Db3VudDsgKytrKSB7CisgICAgICAg
IHRoaXNPYmotPnB1dEJ5SW5kZXhJbmxpbmUoZXhlYywgayArIGFjdHVhbFN0YXJ0LCBleGVjLT51
bmNoZWNrZWRBcmd1bWVudChrICsgMiksIHRydWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICB9CiAgICAgCiAgICAgc2NvcGUucmVs
ZWFzZSgpOwotICAgIHNldExlbmd0aChleGVjLCB2bSwgdGhpc09iaiwgbGVuZ3RoIC0gZGVsZXRl
Q291bnQgKyBhZGRpdGlvbmFsQXJncyk7CisgICAgc2V0TGVuZ3RoKGV4ZWMsIHZtLCB0aGlzT2Jq
LCBsZW5ndGggLSBhY3R1YWxEZWxldGVDb3VudCArIGl0ZW1Db3VudCk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCg==
</data>
<flag name="review"
          id="314535"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>