<?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>141856</bug_id>
          
          <creation_ts>2015-02-20 16:12:24 -0800</creation_ts>
          <short_desc>Refactor JSWrapperMap.mm to defer creation of the ObjC JSValue until the latest possible moment</short_desc>
          <delta_ts>2015-02-20 16:37:27 -0800</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 Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1070859</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-02-20 16:12:24 -0800</bug_when>
    <thetext>Following thru with some refactoring opportunity observed in https://bugs.webkit.org/show_bug.cgi?id=141809.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070864</commentid>
    <comment_count>1</comment_count>
      <attachid>247008</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-02-20 16:21:02 -0800</bug_when>
    <thetext>Created attachment 247008
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070874</commentid>
    <comment_count>2</comment_count>
      <attachid>247008</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-02-20 16:33:48 -0800</bug_when>
    <thetext>Comment on attachment 247008
the patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070879</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-02-20 16:37:27 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r180467: &lt;http://trac.webkit.org/r180467&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247008</attachid>
            <date>2015-02-20 16:21:02 -0800</date>
            <delta_ts>2015-02-20 16:33:48 -0800</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-141856.patch</filename>
            <type>text/plain</type>
            <size>11224</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgwNDY1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDE1LTAyLTIwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZWZhY3RvciBKU1dyYXBwZXJNYXAubW0gdG8gZGVmZXIgY3JlYXRpb24gb2YgdGhlIE9iakMgSlNW
YWx1ZSB1bnRpbCB0aGUgbGF0ZXN0IHBvc3NpYmxlIG1vbWVudC4KKyAgICAgICAgPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzE0MTg1Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAxLiBNYWtlIEpTT2JqQ0NsYXNzSW5mbydzIC1jb25zdHJ1Y3RvciBhbmQg
LXdyYXBwZXJGb3JPYmplY3QgcmV0dXJuIGEKKyAgICAgICAgICAgSlNDOjpKU09iamVjdCoganVz
dCBsaWtlIC1wcm90b3R5cGUuCisgICAgICAgIDIuIERlZmVyIHRoZSBjcmVhdGlvbiBvZiB0aGUg
T2JqQyBKU1ZhbHVlIGZyb20gSlNDOjpKU09iamVjdCogdW50aWwKKyAgICAgICAgICAgdGhlIGxh
dGVzdCBtb21lbnQgd2hlbiBpdCBpcyBuZWVkZWQuICBUaGlzIGFsbG93cyB1cyB0byBub3QgaGF2
ZSB0bworICAgICAgICAgICBrZWVwIGNvbnZlcnRpbmcgYmFjayB0byBhIEpTQzo6SlNPYmplY3Qq
IGluIGludGVybWVkaWF0ZSBjb2RlLgorCisgICAgICAgICogQVBJL0pTV3JhcHBlck1hcC5tbToK
KyAgICAgICAgKG1ha2VXcmFwcGVyKToKKyAgICAgICAgKG9iamVjdFdpdGhDdXN0b21CcmFuZCk6
CisgICAgICAgIChjb25zdHJ1Y3RvcldpdGhDdXN0b21CcmFuZCk6CisgICAgICAgIChhbGxvY2F0
ZUNvbnN0cnVjdG9yRm9yQ3VzdG9tQ2xhc3MpOgorICAgICAgICAoLVtKU09iakNDbGFzc0luZm8g
YWxsb2NhdGVDb25zdHJ1Y3RvckFuZFByb3RvdHlwZV0pOgorICAgICAgICAoLVtKU09iakNDbGFz
c0luZm8gd3JhcHBlckZvck9iamVjdDpdKToKKyAgICAgICAgKC1bSlNPYmpDQ2xhc3NJbmZvIGNv
bnN0cnVjdG9yXSk6CisgICAgICAgICgtW0pTV3JhcHBlck1hcCBqc1dyYXBwZXJGb3JPYmplY3Q6
XSk6CisKIDIwMTUtMDItMjAgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBCdWlsZCBmaXggZm9yIGdjYy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNXcmFwcGVyTWFwLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNXcmFwcGVyTWFwLm1tCShyZXZpc2lvbiAxODA0NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTV3JhcHBlck1hcC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA4LDcgKzEwOCw3IEBA
IHN0YXRpYyBib29sIGNvbnN0cnVjdG9ySGFzSW5zdGFuY2UoSlNDb24KICAgICByZXR1cm4gSlND
OjpKU09iamVjdDo6ZGVmYXVsdEhhc0luc3RhbmNlKGV4ZWMsIGluc3RhbmNlLCBjb25zdHJ1Y3Rv
ci0+Z2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUpKTsKIH0KIAotc3Rh
dGljIEpTT2JqZWN0UmVmIG1ha2VXcmFwcGVyKEpTQ29udGV4dFJlZiBjdHgsIEpTQ2xhc3NSZWYg
anNDbGFzcywgaWQgd3JhcHBlZE9iamVjdCkKK3N0YXRpYyBKU0M6OkpTT2JqZWN0KiBtYWtlV3Jh
cHBlcihKU0NvbnRleHRSZWYgY3R4LCBKU0NsYXNzUmVmIGpzQ2xhc3MsIGlkIHdyYXBwZWRPYmpl
Y3QpCiB7CiAgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGN0eCk7CiAgICAgSlNDOjpK
U0xvY2tIb2xkZXIgbG9ja2VyKGV4ZWMpOwpAQCAtMTE5LDMzICsxMTksMzMgQEAgc3RhdGljIEpT
T2JqZWN0UmVmIG1ha2VXcmFwcGVyKEpTQ29udGV4dAogICAgIGlmIChKU0M6OkpTT2JqZWN0KiBw
cm90b3R5cGUgPSBqc0NsYXNzLT5wcm90b3R5cGUoZXhlYykpCiAgICAgICAgIG9iamVjdC0+c2V0
UHJvdG90eXBlKGV4ZWMtPnZtKCksIHByb3RvdHlwZSk7CiAKLSAgICByZXR1cm4gdG9SZWYob2Jq
ZWN0KTsKKyAgICByZXR1cm4gb2JqZWN0OwogfQogCiAvLyBNYWtlIGFuIG9iamVjdCB0aGF0IGlz
IGluIGFsbCB3YXlzIGEgY29tcGxldGVseSB2YW5pbGxhIEphdmFTY3JpcHQgb2JqZWN0LAogLy8g
b3RoZXIgdGhhbiB0aGF0IGl0IGhhcyBhIG5hdGl2ZSBicmFuZCBzZXQgdGhhdCB3aWxsIGJlIGRp
c3BsYXllZCBieSB0aGUgZGVmYXVsdAogLy8gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyBjb252
ZXJzaW9uLgotc3RhdGljIEpTVmFsdWUgKm9iamVjdFdpdGhDdXN0b21CcmFuZChKU0NvbnRleHQg
KmNvbnRleHQsIE5TU3RyaW5nICpicmFuZCwgQ2xhc3MgY2xzID0gMCkKK3N0YXRpYyBKU0M6OkpT
T2JqZWN0ICpvYmplY3RXaXRoQ3VzdG9tQnJhbmQoSlNDb250ZXh0ICpjb250ZXh0LCBOU1N0cmlu
ZyAqYnJhbmQsIENsYXNzIGNscyA9IDApCiB7CiAgICAgSlNDbGFzc0RlZmluaXRpb24gZGVmaW5p
dGlvbjsKICAgICBkZWZpbml0aW9uID0ga0pTQ2xhc3NEZWZpbml0aW9uRW1wdHk7CiAgICAgZGVm
aW5pdGlvbi5jbGFzc05hbWUgPSBbYnJhbmQgVVRGOFN0cmluZ107CiAgICAgSlNDbGFzc1JlZiBj
bGFzc1JlZiA9IEpTQ2xhc3NDcmVhdGUoJmRlZmluaXRpb24pOwotICAgIEpTT2JqZWN0UmVmIHJl
c3VsdCA9IG1ha2VXcmFwcGVyKFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0sIGNsYXNzUmVm
LCBjbHMpOworICAgIEpTQzo6SlNPYmplY3QqIHJlc3VsdCA9IG1ha2VXcmFwcGVyKFtjb250ZXh0
IEpTR2xvYmFsQ29udGV4dFJlZl0sIGNsYXNzUmVmLCBjbHMpOwogICAgIEpTQ2xhc3NSZWxlYXNl
KGNsYXNzUmVmKTsKLSAgICByZXR1cm4gW0pTVmFsdWUgdmFsdWVXaXRoSlNWYWx1ZVJlZjpyZXN1
bHQgaW5Db250ZXh0OmNvbnRleHRdOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBK
U1ZhbHVlICpjb25zdHJ1Y3RvcldpdGhDdXN0b21CcmFuZChKU0NvbnRleHQgKmNvbnRleHQsIE5T
U3RyaW5nICpicmFuZCwgQ2xhc3MgY2xzKQorc3RhdGljIEpTQzo6SlNPYmplY3QgKmNvbnN0cnVj
dG9yV2l0aEN1c3RvbUJyYW5kKEpTQ29udGV4dCAqY29udGV4dCwgTlNTdHJpbmcgKmJyYW5kLCBD
bGFzcyBjbHMpCiB7CiAgICAgSlNDbGFzc0RlZmluaXRpb24gZGVmaW5pdGlvbjsKICAgICBkZWZp
bml0aW9uID0ga0pTQ2xhc3NEZWZpbml0aW9uRW1wdHk7CiAgICAgZGVmaW5pdGlvbi5jbGFzc05h
bWUgPSBbYnJhbmQgVVRGOFN0cmluZ107CiAgICAgZGVmaW5pdGlvbi5oYXNJbnN0YW5jZSA9IGNv
bnN0cnVjdG9ySGFzSW5zdGFuY2U7CiAgICAgSlNDbGFzc1JlZiBjbGFzc1JlZiA9IEpTQ2xhc3ND
cmVhdGUoJmRlZmluaXRpb24pOwotICAgIEpTT2JqZWN0UmVmIHJlc3VsdCA9IG1ha2VXcmFwcGVy
KFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0sIGNsYXNzUmVmLCBjbHMpOworICAgIEpTQzo6
SlNPYmplY3QqIHJlc3VsdCA9IG1ha2VXcmFwcGVyKFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJl
Zl0sIGNsYXNzUmVmLCBjbHMpOwogICAgIEpTQ2xhc3NSZWxlYXNlKGNsYXNzUmVmKTsKLSAgICBy
ZXR1cm4gW0pTVmFsdWUgdmFsdWVXaXRoSlNWYWx1ZVJlZjpyZXN1bHQgaW5Db250ZXh0OmNvbnRl
eHRdOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIC8vIExvb2sgZm9yIEBvcHRpb25hbCBwcm9w
ZXJ0aWVzIGluIHRoZSBwcm90b3R5cGUgY29udGFpbmluZyBhIHNlbGVjdG9yIHRvIHByb3BlcnR5
CkBAIC0zNjUsOCArMzY1LDggQEAgQGludGVyZmFjZSBKU09iakNDbGFzc0luZm8gOiBOU09iamVj
dCB7CiB9CiAKIC0gKGlkKWluaXRXaXRoQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dCBmb3JD
bGFzczooQ2xhc3MpY2xzOwotLSAoSlNWYWx1ZSAqKXdyYXBwZXJGb3JPYmplY3Q6KGlkKW9iamVj
dDsKLS0gKEpTVmFsdWUgKiljb25zdHJ1Y3RvcjsKKy0gKEpTQzo6SlNPYmplY3QgKil3cmFwcGVy
Rm9yT2JqZWN0OihpZClvYmplY3Q7CistIChKU0M6OkpTT2JqZWN0ICopY29uc3RydWN0b3I7CiAt
IChKU0M6OkpTT2JqZWN0ICopcHJvdG90eXBlOwogCiBAZW5kCkBAIC0zOTcsNyArMzk3LDcgQEAg
LSAodm9pZClkZWFsbG9jCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCi1zdGF0aWMgSlNWYWx1
ZSAqYWxsb2NhdGVDb25zdHJ1Y3RvckZvckN1c3RvbUNsYXNzKEpTQ29udGV4dCAqY29udGV4dCwg
Y29uc3QgY2hhciogY2xhc3NOYW1lLCBDbGFzcyBjbHMpCitzdGF0aWMgSlNDOjpKU09iamVjdCog
YWxsb2NhdGVDb25zdHJ1Y3RvckZvckN1c3RvbUNsYXNzKEpTQ29udGV4dCAqY29udGV4dCwgY29u
c3QgY2hhciogY2xhc3NOYW1lLCBDbGFzcyBjbHMpCiB7CiAgICAgaWYgKCFzdXBwb3J0c0luaXRN
ZXRob2RDb25zdHJ1Y3RvcnMoKSkKICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yV2l0aEN1c3Rv
bUJyYW5kKGNvbnRleHQsIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJXNDb25zdHJ1Y3Rv
ciIsIGNsYXNzTmFtZV0sIGNscyk7CkBAIC00NDQsNyArNDQ0LDcgQEAgICAgICAgICAgICAgICAg
IGluaXRUYWJsZS5zZXQobmFtZSwgcHJvdAogICAgICAgICB9CiAKICAgICAgICAgSlNPYmplY3RS
ZWYgbWV0aG9kID0gb2JqQ0NhbGxiYWNrRnVuY3Rpb25Gb3JJbml0KGNvbnRleHQsIGNscywgaW5p
dFByb3RvY29sLCBpbml0TWV0aG9kLCB0eXBlcyk7Ci0gICAgICAgIHJldHVybiBbSlNWYWx1ZSB2
YWx1ZVdpdGhKU1ZhbHVlUmVmOm1ldGhvZCBpbkNvbnRleHQ6Y29udGV4dF07CisgICAgICAgIHJl
dHVybiB0b0pTKG1ldGhvZCk7CiAgICAgfQogICAgIHJldHVybiBjb25zdHJ1Y3RvcldpdGhDdXN0
b21CcmFuZChjb250ZXh0LCBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVzQ29uc3RydWN0
b3IiLCBjbGFzc05hbWVdLCBjbHMpOwogfQpAQCAtNDU3LDM2ICs0NTcsMzIgQEAgLSAoQ29uc3Ry
dWN0b3JQcm90b3R5cGVQYWlyKWFsbG9jYXRlQ29ucwogCiAgICAgQVNTRVJUKCFtX2NvbnN0cnVj
dG9yIHx8ICFtX3Byb3RvdHlwZSk7CiAgICAgQVNTRVJUKChtX2NsYXNzID09IFtOU09iamVjdCBj
bGFzc10pID09ICFzdXBlckNsYXNzSW5mbyk7CisKKyAgICBKU0M6OkpTT2JqZWN0KiBqc1Byb3Rv
dHlwZSA9IG1fcHJvdG90eXBlLmdldCgpOworICAgIEpTQzo6SlNPYmplY3QqIGpzQ29uc3RydWN0
b3IgPSBtX2NvbnN0cnVjdG9yLmdldCgpOworCiAgICAgaWYgKCFzdXBlckNsYXNzSW5mbykgewog
ICAgICAgICBKU0NvbnRleHRSZWYgY0NvbnRleHQgPSBbbV9jb250ZXh0IEpTR2xvYmFsQ29udGV4
dFJlZl07CiAgICAgICAgIEpTVmFsdWUgKmNvbnN0cnVjdG9yID0gbV9jb250ZXh0W0AiT2JqZWN0
Il07Ci0gICAgICAgIGlmICghbV9jb25zdHJ1Y3RvcikKLSAgICAgICAgICAgIG1fY29uc3RydWN0
b3IgPSB0b0pTKEpTVmFsdWVUb09iamVjdChjQ29udGV4dCwgdmFsdWVJbnRlcm5hbFZhbHVlKGNv
bnN0cnVjdG9yKSwgMCkpOworICAgICAgICBpZiAoIWpzQ29uc3RydWN0b3IpCisgICAgICAgICAg
ICBqc0NvbnN0cnVjdG9yID0gdG9KUyhKU1ZhbHVlVG9PYmplY3QoY0NvbnRleHQsIHZhbHVlSW50
ZXJuYWxWYWx1ZShjb25zdHJ1Y3RvciksIDApKTsKIAotICAgICAgICBpZiAoIW1fcHJvdG90eXBl
KSB7CisgICAgICAgIGlmICghanNQcm90b3R5cGUpIHsKICAgICAgICAgICAgIEpTVmFsdWUgKnBy
b3RvdHlwZSA9IGNvbnN0cnVjdG9yW0AicHJvdG90eXBlIl07Ci0gICAgICAgICAgICBtX3Byb3Rv
dHlwZSA9IHRvSlMoSlNWYWx1ZVRvT2JqZWN0KGNDb250ZXh0LCB2YWx1ZUludGVybmFsVmFsdWUo
cHJvdG90eXBlKSwgMCkpOworICAgICAgICAgICAganNQcm90b3R5cGUgPSB0b0pTKEpTVmFsdWVU
b09iamVjdChjQ29udGV4dCwgdmFsdWVJbnRlcm5hbFZhbHVlKHByb3RvdHlwZSksIDApKTsKICAg
ICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGNsYXNzTmFtZSA9IGNs
YXNzX2dldE5hbWUobV9jbGFzcyk7CiAKICAgICAgICAgLy8gQ3JlYXRlIG9yIGdyYWIgdGhlIHBy
b3RvdHlwZS9jb25zdHJ1Y3RvciBwYWlyLgotICAgICAgICBKU1ZhbHVlICpwcm90b3R5cGU7Ci0g
ICAgICAgIEpTVmFsdWUgKmNvbnN0cnVjdG9yOwotICAgICAgICBpZiAobV9wcm90b3R5cGUpCi0g
ICAgICAgICAgICBwcm90b3R5cGUgPSBbSlNWYWx1ZSB2YWx1ZVdpdGhKU1ZhbHVlUmVmOnRvUmVm
KG1fcHJvdG90eXBlLmdldCgpKSBpbkNvbnRleHQ6bV9jb250ZXh0XTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgcHJvdG90eXBlID0gb2JqZWN0V2l0aEN1c3RvbUJyYW5kKG1fY29udGV4dCwg
W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlc1Byb3RvdHlwZSIsIGNsYXNzTmFtZV0pOwot
Ci0gICAgICAgIGlmIChtX2NvbnN0cnVjdG9yKQotICAgICAgICAgICAgY29uc3RydWN0b3IgPSBb
SlNWYWx1ZSB2YWx1ZVdpdGhKU1ZhbHVlUmVmOnRvUmVmKG1fY29uc3RydWN0b3IuZ2V0KCkpIGlu
Q29udGV4dDptX2NvbnRleHRdOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb25zdHJ1Y3Rv
ciA9IGFsbG9jYXRlQ29uc3RydWN0b3JGb3JDdXN0b21DbGFzcyhtX2NvbnRleHQsIGNsYXNzTmFt
ZSwgbV9jbGFzcyk7CisgICAgICAgIGlmICghanNQcm90b3R5cGUpCisgICAgICAgICAgICBqc1By
b3RvdHlwZSA9IG9iamVjdFdpdGhDdXN0b21CcmFuZChtX2NvbnRleHQsIFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiJXNQcm90b3R5cGUiLCBjbGFzc05hbWVdKTsKIAotICAgICAgICBKU0Nv
bnRleHRSZWYgY0NvbnRleHQgPSBbbV9jb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl07Ci0gICAg
ICAgIG1fcHJvdG90eXBlID0gdG9KUyhKU1ZhbHVlVG9PYmplY3QoY0NvbnRleHQsIHZhbHVlSW50
ZXJuYWxWYWx1ZShwcm90b3R5cGUpLCAwKSk7Ci0gICAgICAgIG1fY29uc3RydWN0b3IgPSB0b0pT
KEpTVmFsdWVUb09iamVjdChjQ29udGV4dCwgdmFsdWVJbnRlcm5hbFZhbHVlKGNvbnN0cnVjdG9y
KSwgMCkpOworICAgICAgICBpZiAoIWpzQ29uc3RydWN0b3IpCisgICAgICAgICAgICBqc0NvbnN0
cnVjdG9yID0gYWxsb2NhdGVDb25zdHJ1Y3RvckZvckN1c3RvbUNsYXNzKG1fY29udGV4dCwgY2xh
c3NOYW1lLCBtX2NsYXNzKTsKIAorICAgICAgICBKU1ZhbHVlKiBwcm90b3R5cGUgPSBbSlNWYWx1
ZSB2YWx1ZVdpdGhKU1ZhbHVlUmVmOnRvUmVmKGpzUHJvdG90eXBlKSBpbkNvbnRleHQ6bV9jb250
ZXh0XTsKKyAgICAgICAgSlNWYWx1ZSogY29uc3RydWN0b3IgPSBbSlNWYWx1ZSB2YWx1ZVdpdGhK
U1ZhbHVlUmVmOnRvUmVmKGpzQ29uc3RydWN0b3IpIGluQ29udGV4dDptX2NvbnRleHRdOwogICAg
ICAgICBwdXROb25FbnVtZXJhYmxlKHByb3RvdHlwZSwgQCJjb25zdHJ1Y3RvciIsIGNvbnN0cnVj
dG9yKTsKICAgICAgICAgcHV0Tm9uRW51bWVyYWJsZShjb25zdHJ1Y3RvciwgQCJwcm90b3R5cGUi
LCBwcm90b3R5cGUpOwogCkBAIC00OTgsMTIgKzQ5NCwxNSBAQCAgICAgICAgIGZvckVhY2hQcm90
b2NvbEltcGxlbWVudGluZ1Byb3RvCiAKICAgICAgICAgLy8gU2V0IFtQcm90b3R5cGVdLgogICAg
ICAgICBKU0M6OkpTT2JqZWN0KiBzdXBlckNsYXNzUHJvdG90eXBlID0gW3N1cGVyQ2xhc3NJbmZv
IHByb3RvdHlwZV07Ci0gICAgICAgIEpTT2JqZWN0U2V0UHJvdG90eXBlKFttX2NvbnRleHQgSlNH
bG9iYWxDb250ZXh0UmVmXSwgdG9SZWYobV9wcm90b3R5cGUuZ2V0KCkpLCB0b1JlZihzdXBlckNs
YXNzUHJvdG90eXBlKSk7CisgICAgICAgIEpTT2JqZWN0U2V0UHJvdG90eXBlKFttX2NvbnRleHQg
SlNHbG9iYWxDb250ZXh0UmVmXSwgdG9SZWYoanNQcm90b3R5cGUpLCB0b1JlZihzdXBlckNsYXNz
UHJvdG90eXBlKSk7CiAgICAgfQotICAgIHJldHVybiBDb25zdHJ1Y3RvclByb3RvdHlwZVBhaXIo
bV9jb25zdHJ1Y3Rvci5nZXQoKSwgbV9wcm90b3R5cGUuZ2V0KCkpOworCisgICAgbV9wcm90b3R5
cGUgPSBqc1Byb3RvdHlwZTsKKyAgICBtX2NvbnN0cnVjdG9yID0ganNDb25zdHJ1Y3RvcjsKKyAg
ICByZXR1cm4gQ29uc3RydWN0b3JQcm90b3R5cGVQYWlyKGpzQ29uc3RydWN0b3IsIGpzUHJvdG90
eXBlKTsKIH0KIAotLSAoSlNWYWx1ZSAqKXdyYXBwZXJGb3JPYmplY3Q6KGlkKW9iamVjdAorLSAo
SlNDOjpKU09iamVjdCopd3JhcHBlckZvck9iamVjdDooaWQpb2JqZWN0CiB7CiAgICAgQVNTRVJU
KFtvYmplY3QgaXNLaW5kT2ZDbGFzczptX2NsYXNzXSk7CiAgICAgQVNTRVJUKG1fYmxvY2sgPT0g
W29iamVjdCBpc0tpbmRPZkNsYXNzOmdldE5TQmxvY2tDbGFzcygpXSk7CkBAIC01MTMsMjQgKzUx
MiwyNCBAQCAtIChKU1ZhbHVlICopd3JhcHBlckZvck9iamVjdDooaWQpb2JqZWN0CiAgICAgICAg
ICAgICBKU1ZhbHVlICpwcm90b3R5cGUgPSBbSlNWYWx1ZSB2YWx1ZVdpdGhOZXdPYmplY3RJbkNv
bnRleHQ6bV9jb250ZXh0XTsKICAgICAgICAgICAgIHB1dE5vbkVudW1lcmFibGUoY29uc3RydWN0
b3IsIEAicHJvdG90eXBlIiwgcHJvdG90eXBlKTsKICAgICAgICAgICAgIHB1dE5vbkVudW1lcmFi
bGUocHJvdG90eXBlLCBAImNvbnN0cnVjdG9yIiwgY29uc3RydWN0b3IpOwotICAgICAgICAgICAg
cmV0dXJuIGNvbnN0cnVjdG9yOworICAgICAgICAgICAgcmV0dXJuIHRvSlMobWV0aG9kKTsKICAg
ICAgICAgfQogICAgIH0KIAogICAgIEpTQzo6SlNPYmplY3QqIHByb3RvdHlwZSA9IFtzZWxmIHBy
b3RvdHlwZV07CiAKLSAgICBKU09iamVjdFJlZiB3cmFwcGVyID0gbWFrZVdyYXBwZXIoW21fY29u
dGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBtX2NsYXNzUmVmLCBvYmplY3QpOwotICAgIEpTT2Jq
ZWN0U2V0UHJvdG90eXBlKFttX2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgd3JhcHBlciwg
dG9SZWYocHJvdG90eXBlKSk7Ci0gICAgcmV0dXJuIFtKU1ZhbHVlIHZhbHVlV2l0aEpTVmFsdWVS
ZWY6d3JhcHBlciBpbkNvbnRleHQ6bV9jb250ZXh0XTsKKyAgICBKU0M6OkpTT2JqZWN0KiB3cmFw
cGVyID0gbWFrZVdyYXBwZXIoW21fY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBtX2NsYXNz
UmVmLCBvYmplY3QpOworICAgIEpTT2JqZWN0U2V0UHJvdG90eXBlKFttX2NvbnRleHQgSlNHbG9i
YWxDb250ZXh0UmVmXSwgdG9SZWYod3JhcHBlciksIHRvUmVmKHByb3RvdHlwZSkpOworICAgIHJl
dHVybiB3cmFwcGVyOwogfQogCi0tIChKU1ZhbHVlICopY29uc3RydWN0b3IKKy0gKEpTQzo6SlNP
YmplY3QqKWNvbnN0cnVjdG9yCiB7CiAgICAgSlNDOjpKU09iamVjdCogY29uc3RydWN0b3IgPSBt
X2NvbnN0cnVjdG9yLmdldCgpOwogICAgIGlmICghY29uc3RydWN0b3IpCiAgICAgICAgIGNvbnN0
cnVjdG9yID0gW3NlbGYgYWxsb2NhdGVDb25zdHJ1Y3RvckFuZFByb3RvdHlwZV0uZmlyc3Q7CiAg
ICAgQVNTRVJUKCEhY29uc3RydWN0b3IpOwotICAgIHJldHVybiBbSlNWYWx1ZSB2YWx1ZVdpdGhK
U1ZhbHVlUmVmOnRvUmVmKGNvbnN0cnVjdG9yKSBpbkNvbnRleHQ6bV9jb250ZXh0XTsKKyAgICBy
ZXR1cm4gY29uc3RydWN0b3I7CiB9CiAKIC0gKEpTQzo6SlNPYmplY3QqKXByb3RvdHlwZQpAQCAt
NTk1LDEyICs1OTQsMTEgQEAgLSAoSlNWYWx1ZSAqKWpzV3JhcHBlckZvck9iamVjdDooaWQpb2Jq
ZQogICAgIGlmIChqc1dyYXBwZXIpCiAgICAgICAgIHJldHVybiBbSlNWYWx1ZSB2YWx1ZVdpdGhK
U1ZhbHVlUmVmOnRvUmVmKGpzV3JhcHBlcikgaW5Db250ZXh0Om1fY29udGV4dF07CiAKLSAgICBK
U1ZhbHVlICp3cmFwcGVyOwogICAgIGlmIChjbGFzc19pc01ldGFDbGFzcyhvYmplY3RfZ2V0Q2xh
c3Mob2JqZWN0KSkpCi0gICAgICAgIHdyYXBwZXIgPSBbW3NlbGYgY2xhc3NJbmZvRm9yQ2xhc3M6
KENsYXNzKW9iamVjdF0gY29uc3RydWN0b3JdOworICAgICAgICBqc1dyYXBwZXIgPSBbW3NlbGYg
Y2xhc3NJbmZvRm9yQ2xhc3M6KENsYXNzKW9iamVjdF0gY29uc3RydWN0b3JdOwogICAgIGVsc2Ug
ewogICAgICAgICBKU09iakNDbGFzc0luZm8qIGNsYXNzSW5mbyA9IFtzZWxmIGNsYXNzSW5mb0Zv
ckNsYXNzOltvYmplY3QgY2xhc3NdXTsKLSAgICAgICAgd3JhcHBlciA9IFtjbGFzc0luZm8gd3Jh
cHBlckZvck9iamVjdDpvYmplY3RdOworICAgICAgICBqc1dyYXBwZXIgPSBbY2xhc3NJbmZvIHdy
YXBwZXJGb3JPYmplY3Q6b2JqZWN0XTsKICAgICB9CiAKICAgICAvLyBGSVhNRTogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTg5MQpAQCAtNjA4LDEwICs2MDYsOCBA
QCAtIChKU1ZhbHVlICopanNXcmFwcGVyRm9yT2JqZWN0OihpZClvYmplCiAgICAgLy8gKDEpIEZv
ciBpbW1vcnRhbCBvYmplY3RzIEpTVmFsdWVzIHdpbGwgZWZmZWN0aXZlbHkgbGVhayBhbmQgdGhp
cyByZXN1bHRzIGluIGVycm9yIG91dHB1dCBiZWluZyBsb2dnZWQgLSB3ZSBzaG91bGQgYXZvaWQg
YWRkaW5nIGFzc29jaWF0ZWQgb2JqZWN0cyB0byBpbW1vcnRhbCBvYmplY3RzLgogICAgIC8vICgy
KSBBIGxvbmcgbGl2ZWQgb2JqZWN0IG1heSByYWNrIHVwIG1hbnkgSlNWYWx1ZXMuIFdoZW4gdGhl
IGNvbnRleHRzIGFyZSByZWxlYXNlZCB0aGVzZSB3aWxsIHVucHJvdGVjdCB0aGUgYXNzb2NpYXRl
ZCBKYXZhU2NyaXB0IG9iamVjdHMsCiAgICAgLy8gICAgIGJ1dCBzdGlsbCwgd291bGQgcHJvYmFi
bHkgbmljZXIgaWYgd2UgbWFkZSBpdCBzbyB0aGF0IG9ubHkgb25lIGFzc29jaWF0ZWQgb2JqZWN0
IHdhcyByZXF1aXJlZCwgYnJvYWRjYXN0aW5nIG9iamVjdCBkZWFsbG9jLgotICAgIEpTQzo6RXhl
Y1N0YXRlKiBleGVjID0gdG9KUyhbbV9jb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0pOwotICAg
IGpzV3JhcHBlciA9IHRvSlMoZXhlYywgdmFsdWVJbnRlcm5hbFZhbHVlKHdyYXBwZXIpKS50b09i
amVjdChleGVjKTsKICAgICBtX2NhY2hlZEpTV3JhcHBlcnMuc2V0KG9iamVjdCwganNXcmFwcGVy
KTsKLSAgICByZXR1cm4gd3JhcHBlcjsKKyAgICByZXR1cm4gW0pTVmFsdWUgdmFsdWVXaXRoSlNW
YWx1ZVJlZjp0b1JlZihqc1dyYXBwZXIpIGluQ29udGV4dDptX2NvbnRleHRdOwogfQogCiAtIChK
U1ZhbHVlICopb2JqY1dyYXBwZXJGb3JKU1ZhbHVlUmVmOihKU1ZhbHVlUmVmKXZhbHVlCg==
</data>
<flag name="review"
          id="271952"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>