<?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>6238</bug_id>
          
          <creation_ts>2005-12-24 22:23:06 -0800</creation_ts>
          <short_desc>make even const PassRefPtrs give transfer of ownership semantics</short_desc>
          <delta_ts>2005-12-25 01:23:50 -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>WebKit Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>26513</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-24 22:23:06 -0800</bug_when>
    <thetext>Make even const PassRefPtrs give transfer of ownership semantics. This is a somewhat cheesy change. 
Having to use PassRefPtr_Ref creates ambiguities in assignment and copy construction. And this makes life 
way easier and removes the need for pass(). It is not really correct, but we pretty much never need a real 
const PassRefPtr, and this takes care of things for PassRefPtr temporaries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26514</commentid>
    <comment_count>1</comment_count>
      <attachid>5277</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-24 22:28:47 -0800</bug_when>
    <thetext>Created attachment 5277
evil hack</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26517</commentid>
    <comment_count>2</comment_count>
      <attachid>5277</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-24 22:39:46 -0800</bug_when>
    <thetext>Comment on attachment 5277
evil hack

Looks sane.  You should at least add a comment in the header referencing this
bug and explaining why you are specifying const on these methods and in the
constructor.

Also, I think you probably want darin to weigh in on this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26522</commentid>
    <comment_count>3</comment_count>
      <attachid>5277</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2005-12-24 23:06:13 -0800</bug_when>
    <thetext>Comment on attachment 5277
evil hack

r=me, agree with Eric&apos;s suggestions.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5277</attachid>
            <date>2005-12-24 22:28:47 -0800</date>
            <delta_ts>2005-12-24 23:06:13 -0800</delta_ts>
            <desc>evil hack</desc>
            <filename>passrefptr-hack.patch.txt</filename>
            <type>text/plain</type>
            <size>17249</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkyNgpkaWZmIC11IC1wIC1y
MS45MjYgQ2hhbmdlTG9nCi0tLSBDaGFuZ2VMb2cJMjQgRGVjIDIwMDUgMjI6MDY6NTUgLTAwMDAJ
MS45MjYKKysrIENoYW5nZUxvZwkyNSBEZWMgMjAwNSAwNjoyNTozMiAtMDAwMApAQCAtMSwzICsx
LDM2IEBACisyMDA1LTEyLTI0ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKwktIG1ha2UgZXZlbiBjb25z
dCBQYXNzUmVmUHRycyBnaXZlIHRyYW5zZmVyIG9mIG93bmVyc2hpcCBzZW1hbnRpY3MKKwlodHRw
Oi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzgKKwkKKwlUaGlz
IGlzIGEgc29tZXdoYXQgY2hlZXN5IGNoYW5nZS4gSGF2aW5nIHRvIHVzZSBQYXNzUmVmUHRyX1Jl
ZiBjcmVhdGVzIGFtYmlndWl0aWVzCisJaW4gYXNzaWdubWVudCBhbmQgY29weSBjb25zdHJ1Y3Rp
b24uIEFuZCB0aGlzIG1ha2VzIGxpZmUgd2F5IGVhc2llciBhbmQgcmVtb3ZlcworCXRoZSBuZWVk
IGZvciBwYXNzKCkuIEl0IGlzIG5vdCByZWFsbHkgY29ycmVjdCwgYnV0IHdlIHByZXR0eSBtdWNo
IG5ldmVyIG5lZWQgYSByZWFsCisJY29uc3QgUGFzc1JlZlB0ciwgYW5kIHRoaXMgdGFrZXMgY2Fy
ZSBvZiB0aGluZ3MgZm9yIFBhc3NSZWZQdHIgdGVtcG9yYXJpZXMuCisJCisgICAgICAgICoga2pz
L2lkZW50aWZpZXIuY3BwOgorICAgICAgICAoS0pTOjpJZGVudGlmaWVyOjphZGQpOiBObyBtb3Jl
IG5lZWQgZm9yIHBhc3MoKQorICAgICAgICAqIGtqcy9wcm9wZXJ0eV9tYXAuY3BwOgorICAgICAg
ICAoS0pTOjpQcm9wZXJ0eU1hcDo6YWRkU3BhcnNlQXJyYXlQcm9wZXJ0aWVzVG9SZWZlcmVuY2VM
aXN0KTogTm8gbW9yZSBuZWVkIGZvciBwYXNzKCkKKyAgICAgICAgKiBranMvdXN0cmluZy5jcHA6
CisgICAgICAgIChLSlM6OlVTdHJpbmc6OlJlcDo6Y3JlYXRlKTogVXNlIGFkb3B0UmVmCisgICAg
ICAgIChLSlM6OlVTdHJpbmc6OlVTdHJpbmcpOiBObyBtb3JlIG5lZWQgZm9yIHBhc3MKKyAgICAg
ICAgKEtKUzo6VVN0cmluZzo6YXBwZW5kKTogTm8gbW9yZSBuZWVkIGZvciBwYXNzCisgICAgICAg
IChLSlM6OlVTdHJpbmc6OnN1YnN0cik6IE5vIG1vcmUgbmVlZCBmb3IgcGFzcworICAgICAgICAq
IGt4bWxjb3JlL1Bhc3NSZWZQdHIuaDogbWFkZSBtX3B0ciBtdXRhYmxlICh1Z2gpCisgICAgICAg
IChLWE1MQ29yZTo6UGFzc1JlZlB0cjo6UGFzc1JlZlB0cik6IFRha2UgYSBjb25zdCBQYXNzUmVm
UHRyIHJlZmVyZW5jZQorICAgICAgICAoS1hNTENvcmU6OlBhc3NSZWZQdHI6OnJlbGVhc2UpOiBN
YWRlIHRoaXMgYSBjb25zdCBtZXRob2QgKHVnaCkKKyAgICAgICAgKEtYTUxDb3JlOjpQYXNzUmVm
UHRyOjpvcGVyYXRvcj0pOiBjbGVhbiB1cCBhcHByb3ByaWF0ZWx5CisgICAgICAgIChLWE1MQ29y
ZTo6YWRvcHRSZWYpOiBBZGRlZCB0aGlzIHRvIHVzZSBpbnN0ZWFkIG9mIFBhc3NSZWZQdHI8VD46
OmFkb3B0LCBJIHRoaW5rCisJaXQgbWFrZXMgdGhlIGJlaGF2aW9yIG1vcmUgY2xlYXIgYW5kIGl0
IGlzIGxlc3MgdmVyYm9zZS4KKyAgICAgICAgKEtYTUxDb3JlOjpzdGF0aWNfcG9pbnRlcl9jYXN0
KTogdXNlIGFkb3B0UmVmCisgICAgICAgIChLWE1MQ29yZTo6Y29uc3RfcG9pbnRlcl9jYXN0KTog
dXNlIGFkb3B0UmVmCisgICAgICAgICoga3htbGNvcmUvUmVmUHRyLmg6CisgICAgICAgIChLWE1M
Q29yZTo6UmVmUHRyOjpSZWZQdHIpOiB0YWtlIGNvbnN0IFBhc3NSZWZQdHImCisgICAgICAgIChL
WE1MQ29yZTo6UGFzc1JlZlB0cjo6b3BlcmF0b3I9KTogdGFrZSBjb25zdCBQYXNzUmVmUHRyJgor
CiAyMDA1LTEyLTIzICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYy4KSW5kZXg6IGtqcy9pZGVudGlmaWVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL2lkZW50aWZpZXIuY3BwLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjI2CmRpZmYgLXUgLXAgLXIxLjI2IGtqcy9pZGVudGlmaWVy
LmNwcAotLS0ga2pzL2lkZW50aWZpZXIuY3BwCTIzIERlYyAyMDA1IDAxOjUyOjQyIC0wMDAwCTEu
MjYKKysrIGtqcy9pZGVudGlmaWVyLmNwcAkyNSBEZWMgMjAwNSAwNjoyNTozMiAtMDAwMApAQCAt
MTI5LDEyICsxMjksMTIgQEAgc3RydWN0IENTdHJpbmdUcmFuc2xhdG9yCiBQYXNzUmVmUHRyPFVT
dHJpbmc6OlJlcD4gSWRlbnRpZmllcjo6YWRkKGNvbnN0IGNoYXIgKmMpCiB7CiAgICAgaWYgKCFj
KQotICAgICAgICByZXR1cm4gcGFzcygmVVN0cmluZzo6UmVwOjpudWxsKTsKKyAgICAgICAgcmV0
dXJuICZVU3RyaW5nOjpSZXA6Om51bGw7CiAgICAgaW50IGxlbmd0aCA9IHN0cmxlbihjKTsKICAg
ICBpZiAobGVuZ3RoID09IDApCi0gICAgICAgIHJldHVybiBwYXNzKCZVU3RyaW5nOjpSZXA6OmVt
cHR5KTsKKyAgICAgICAgcmV0dXJuICZVU3RyaW5nOjpSZXA6OmVtcHR5OwogICAgIAotICAgIHJl
dHVybiBwYXNzKCppZGVudGlmaWVyVGFibGUoKS5pbnNlcnQ8Y29uc3QgY2hhciAqLCBDU3RyaW5n
VHJhbnNsYXRvcj4oYykuZmlyc3QpOworICAgIHJldHVybiAqaWRlbnRpZmllclRhYmxlKCkuaW5z
ZXJ0PGNvbnN0IGNoYXIgKiwgQ1N0cmluZ1RyYW5zbGF0b3I+KGMpLmZpcnN0OwogfQogCiBzdHJ1
Y3QgVUNoYXJCdWZmZXIgewpAQCAtMTcyLDI0ICsxNzIsMjQgQEAgc3RydWN0IFVDaGFyQnVmZmVy
VHJhbnNsYXRvcgogUGFzc1JlZlB0cjxVU3RyaW5nOjpSZXA+IElkZW50aWZpZXI6OmFkZChjb25z
dCBVQ2hhciAqcywgaW50IGxlbmd0aCkKIHsKICAgICBpZiAobGVuZ3RoID09IDApCi0gICAgICAg
IHJldHVybiBwYXNzKCZVU3RyaW5nOjpSZXA6OmVtcHR5KTsKKyAgICAgICAgcmV0dXJuICZVU3Ry
aW5nOjpSZXA6OmVtcHR5OwogICAgIAogICAgIFVDaGFyQnVmZmVyIGJ1ZiA9IHtzLCBsZW5ndGh9
OyAKLSAgICByZXR1cm4gcGFzcygqaWRlbnRpZmllclRhYmxlKCkuaW5zZXJ0PFVDaGFyQnVmZmVy
LCBVQ2hhckJ1ZmZlclRyYW5zbGF0b3I+KGJ1ZikuZmlyc3QpOworICAgIHJldHVybiAqaWRlbnRp
ZmllclRhYmxlKCkuaW5zZXJ0PFVDaGFyQnVmZmVyLCBVQ2hhckJ1ZmZlclRyYW5zbGF0b3I+KGJ1
ZikuZmlyc3Q7CiB9CiAKIFBhc3NSZWZQdHI8VVN0cmluZzo6UmVwPiBJZGVudGlmaWVyOjphZGQo
VVN0cmluZzo6UmVwICpyKQogewogICAgIGlmIChyLT5pc0lkZW50aWZpZXIpCi0gICAgICAgIHJl
dHVybiBwYXNzKHIpOworICAgICAgICByZXR1cm4gcjsKIAogICAgIGlmIChyLT5sZW4gPT0gMCkK
LSAgICAgICAgcmV0dXJuIHBhc3MoJlVTdHJpbmc6OlJlcDo6ZW1wdHkpOworICAgICAgICByZXR1
cm4gJlVTdHJpbmc6OlJlcDo6ZW1wdHk7CiAKICAgICBVU3RyaW5nOjpSZXAgKnJlc3VsdCA9ICpp
ZGVudGlmaWVyVGFibGUoKS5pbnNlcnQocikuZmlyc3Q7CiAgICAgaWYgKHJlc3VsdCA9PSByKQog
ICAgICAgICByLT5pc0lkZW50aWZpZXIgPSB0cnVlOwotICAgIHJldHVybiBwYXNzKHJlc3VsdCk7
CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogdm9pZCBJZGVudGlmaWVyOjpyZW1vdmUoVVN0cmlu
Zzo6UmVwICpyKQpJbmRleDoga2pzL3Byb3BlcnR5X21hcC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9wcm9wZXJ0eV9tYXAuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjU1CmRpZmYgLXUgLXAgLXIxLjU1IGtqcy9wcm9wZXJ0eV9tYXAuY3Bw
Ci0tLSBranMvcHJvcGVydHlfbWFwLmNwcAkyMCBEZWMgMjAwNSAyMDoxMjo0NyAtMDAwMAkxLjU1
CisrKyBranMvcHJvcGVydHlfbWFwLmNwcAkyNSBEZWMgMjAwNSAwNjoyNTozNSAtMDAwMApAQCAt
NjE0LDExICs2MTQsMTEgQEAgdm9pZCBQcm9wZXJ0eU1hcDo6YWRkU3BhcnNlQXJyYXlQcm9wZXJ0
aQogI2lmIFVTRV9TSU5HTEVfRU5UUlkKICAgICAgICAgVVN0cmluZzo6UmVwICprZXkgPSBfc2lu
Z2xlRW50cnkua2V5OwogICAgICAgICBpZiAoa2V5KSB7Ci0gICAgICAgICAgICBVU3RyaW5nIGso
cGFzcyhrZXkpKTsKKyAgICAgICAgICAgIFVTdHJpbmcgayhrZXkpOwogICAgICAgICAgICAgYm9v
bCBmaXRzSW5VSW50MzI7CiAgICAgICAgICAgICBrLnRvVUludDMyKCZmaXRzSW5VSW50MzIpOwog
ICAgICAgICAgICAgaWYgKGZpdHNJblVJbnQzMikKLSAgICAgICAgICAgICAgICBsaXN0LmFwcGVu
ZChSZWZlcmVuY2UoYmFzZSwgSWRlbnRpZmllcihwYXNzKGtleSkpKSk7CisgICAgICAgICAgICAg
ICAgbGlzdC5hcHBlbmQoUmVmZXJlbmNlKGJhc2UsIElkZW50aWZpZXIoa2V5KSkpOwogICAgICAg
ICB9CiAjZW5kaWYKICAgICAgICAgcmV0dXJuOwpAQCAtNjI5LDExICs2MjksMTEgQEAgdm9pZCBQ
cm9wZXJ0eU1hcDo6YWRkU3BhcnNlQXJyYXlQcm9wZXJ0aQogICAgIGZvciAoaW50IGkgPSAwOyBp
ICE9IHNpemU7ICsraSkgewogICAgICAgICBVU3RyaW5nOjpSZXAgKmtleSA9IGVudHJpZXNbaV0u
a2V5OwogICAgICAgICBpZiAoa2V5ICYmIGtleSAhPSAmVVN0cmluZzo6UmVwOjpudWxsKSB7Ci0g
ICAgICAgICAgICBVU3RyaW5nIGsocGFzcyhrZXkpKTsKKyAgICAgICAgICAgIFVTdHJpbmcgayhr
ZXkpOwogICAgICAgICAgICAgYm9vbCBmaXRzSW5VSW50MzI7CiAgICAgICAgICAgICBrLnRvVUlu
dDMyKCZmaXRzSW5VSW50MzIpOwogICAgICAgICAgICAgaWYgKGZpdHNJblVJbnQzMikKLSAgICAg
ICAgICAgICAgICBsaXN0LmFwcGVuZChSZWZlcmVuY2UoYmFzZSwgSWRlbnRpZmllcihwYXNzKGtl
eSkpKSk7CisgICAgICAgICAgICAgICAgbGlzdC5hcHBlbmQoUmVmZXJlbmNlKGJhc2UsIElkZW50
aWZpZXIoa2V5KSkpOwogICAgICAgICB9CiAgICAgfQogfQpJbmRleDoga2pzL3VzdHJpbmcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvdXN0cmlu
Zy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNjYKZGlmZiAtdSAtcCAtcjEuNjYga2pzL3Vz
dHJpbmcuY3BwCi0tLSBranMvdXN0cmluZy5jcHAJMjAgRGVjIDIwMDUgMjA6MTI6NDcgLTAwMDAJ
MS42NgorKysga2pzL3VzdHJpbmcuY3BwCTI1IERlYyAyMDA1IDA2OjI1OjM3IC0wMDAwCkBAIC0y
MDEsNyArMjAxLDcgQEAgUGFzc1JlZlB0cjxVU3RyaW5nOjpSZXA+IFVTdHJpbmc6OlJlcDo6Ywog
ICByLT5wcmVDYXBhY2l0eSA9IDA7CiAKICAgLy8gc3RlYWwgdGhlIHNpbmdsZSByZWZlcmVuY2Ug
dGhpcyBSZXAgd2FzIGNyZWF0ZWQgd2l0aAotICByZXR1cm4gUGFzc1JlZlB0cjxSZXA+OjphZG9w
dChyKTsKKyAgcmV0dXJuIGFkb3B0UmVmKHIpOwogfQogCiBQYXNzUmVmUHRyPFVTdHJpbmc6OlJl
cD4gVVN0cmluZzo6UmVwOjpjcmVhdGUoUGFzc1JlZlB0cjxSZXA+IGJhc2UsIGludCBvZmZzZXQs
IGludCBsZW5ndGgpCkBAIC0yMzEsNyArMjMxLDcgQEAgUGFzc1JlZlB0cjxVU3RyaW5nOjpSZXA+
IFVTdHJpbmc6OlJlcDo6YwogICByLT5wcmVDYXBhY2l0eSA9IDA7CiAKICAgLy8gc3RlYWwgdGhl
IHNpbmdsZSByZWZlcmVuY2UgdGhpcyBSZXAgd2FzIGNyZWF0ZWQgd2l0aAotICByZXR1cm4gUGFz
c1JlZlB0cjxSZXA+OjphZG9wdChyKTsKKyAgcmV0dXJuIGFkb3B0UmVmKHIpOwogfQogCiB2b2lk
IFVTdHJpbmc6OlJlcDo6ZGVzdHJveSgpCkBAIC00NTksNyArNDU5LDcgQEAgVVN0cmluZzo6VVN0
cmluZyhjb25zdCBVU3RyaW5nICZhLCBjb25zdAogICAgIFVTdHJpbmcgeChhKTsKICAgICB4LmV4
cGFuZENhcGFjaXR5KGFPZmZzZXQgKyBsZW5ndGgpOwogICAgIG1lbWNweShjb25zdF9jYXN0PFVD
aGFyICo+KGEuZGF0YSgpICsgYVNpemUpLCBiLmRhdGEoKSwgYlNpemUgKiBzaXplb2YoVUNoYXIp
KTsKLSAgICBtX3JlcCA9IFJlcDo6Y3JlYXRlKHBhc3MoYS5tX3JlcCksIDAsIGxlbmd0aCk7Cisg
ICAgbV9yZXAgPSBSZXA6OmNyZWF0ZShhLm1fcmVwLCAwLCBsZW5ndGgpOwogICB9IGVsc2UgaWYg
KC1iT2Zmc2V0ID09IGIudXNlZFByZUNhcGFjaXR5KCkgJiYgNCAqIGJTaXplID49IGFTaXplKSB7
CiAgICAgLy8gLSBiIHJlYWNoZXMgdGhlIGJlZ2lubmluZyBvZiBpdHMgYnVmZmVyIHNvIGl0IHF1
YWxpZmllcyBmb3Igc2hhcmVkIHByZXBlbmQKICAgICAvLyAtIGFsc28sIGl0J3MgYXQgbGVhc3Qg
YSBxdWFydGVyIHRoZSBsZW5ndGggb2YgYSAtIHByZXBlbmRpbmcgdG8gYSBtdWNoIHNob3J0ZXIK
QEAgLTQ2Nyw3ICs0NjcsNyBAQCBVU3RyaW5nOjpVU3RyaW5nKGNvbnN0IFVTdHJpbmcgJmEsIGNv
bnN0CiAgICAgVVN0cmluZyB5KGIpOwogICAgIHkuZXhwYW5kUHJlQ2FwYWNpdHkoLWJPZmZzZXQg
KyBhU2l6ZSk7CiAgICAgbWVtY3B5KGNvbnN0X2Nhc3Q8VUNoYXIgKj4oYi5kYXRhKCkgLSBhU2l6
ZSksIGEuZGF0YSgpLCBhU2l6ZSAqIHNpemVvZihVQ2hhcikpOwotICAgIG1fcmVwID0gUmVwOjpj
cmVhdGUocGFzcyhiLm1fcmVwKSwgLWFTaXplLCBsZW5ndGgpOworICAgIG1fcmVwID0gUmVwOjpj
cmVhdGUoYi5tX3JlcCwgLWFTaXplLCBsZW5ndGgpOwogICB9IGVsc2UgewogICAgIC8vIGEgZG9l
cyBub3QgcXVhbGlmeSBmb3IgYXBwZW5kLCBhbmQgYiBkb2VzIG5vdCBxdWFsaWZ5IGZvciBwcmVw
ZW5kLCBnb3R0YSBtYWtlIGEgd2hvbGUgbmV3IHN0cmluZwogICAgIGludCBuZXdDYXBhY2l0eSA9
IGV4cGFuZGVkU2l6ZShsZW5ndGgsIDApOwpAQCAtNjg1LDcgKzY4NSw3IEBAIFVTdHJpbmcgJlVT
dHJpbmc6OmFwcGVuZChjb25zdCBVU3RyaW5nICYKICAgICAvLyB0aGlzIHJlYWNoZXMgdGhlIGVu
ZCBvZiB0aGUgYnVmZmVyIC0gZXh0ZW5kIGl0CiAgICAgZXhwYW5kQ2FwYWNpdHkodGhpc09mZnNl
dCArIGxlbmd0aCk7CiAgICAgbWVtY3B5KGNvbnN0X2Nhc3Q8VUNoYXIgKj4oZGF0YSgpICsgdGhp
c1NpemUpLCB0LmRhdGEoKSwgdFNpemUgKiBzaXplb2YoVUNoYXIpKTsKLSAgICBtX3JlcCA9IFJl
cDo6Y3JlYXRlKHBhc3MobV9yZXApLCAwLCBsZW5ndGgpOworICAgIG1fcmVwID0gUmVwOjpjcmVh
dGUobV9yZXAsIDAsIGxlbmd0aCk7CiAgIH0gZWxzZSB7CiAgICAgLy8gdGhpcyBpcyBzaGFyZWQg
d2l0aCBzb21lb25lIHVzaW5nIG1vcmUgY2FwYWNpdHksIGdvdHRhIG1ha2UgYSB3aG9sZSBuZXcg
c3RyaW5nCiAgICAgaW50IG5ld0NhcGFjaXR5ID0gZXhwYW5kZWRTaXplKGxlbmd0aCwgMCk7CkBA
IC03MjYsNyArNzI2LDcgQEAgVVN0cmluZyAmVVN0cmluZzo6YXBwZW5kKGNvbnN0IGNoYXIgKnQp
CiAgICAgVUNoYXIgKmQgPSBjb25zdF9jYXN0PFVDaGFyICo+KGRhdGEoKSk7CiAgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCB0U2l6ZTsgKytpKQogICAgICAgZFt0aGlzU2l6ZStpXSA9IHRbaV07Ci0g
ICAgbV9yZXAgPSBSZXA6OmNyZWF0ZShwYXNzKG1fcmVwKSwgMCwgbGVuZ3RoKTsKKyAgICBtX3Jl
cCA9IFJlcDo6Y3JlYXRlKG1fcmVwLCAwLCBsZW5ndGgpOwogICB9IGVsc2UgewogICAgIC8vIHRo
aXMgaXMgc2hhcmVkIHdpdGggc29tZW9uZSB1c2luZyBtb3JlIGNhcGFjaXR5LCBnb3R0YSBtYWtl
IGEgd2hvbGUgbmV3IHN0cmluZwogICAgIGludCBuZXdDYXBhY2l0eSA9IGV4cGFuZGVkU2l6ZShs
ZW5ndGgsIDApOwpAQCAtNzY2LDcgKzc2Niw3IEBAIFVTdHJpbmcgJlVTdHJpbmc6OmFwcGVuZCh1
bnNpZ25lZCBzaG9ydCAKICAgICBleHBhbmRDYXBhY2l0eSh0aGlzT2Zmc2V0ICsgbGVuZ3RoICsg
MSk7CiAgICAgVUNoYXIgKmQgPSBjb25zdF9jYXN0PFVDaGFyICo+KGRhdGEoKSk7CiAgICAgZFts
ZW5ndGhdID0gYzsKLSAgICBtX3JlcCA9IFJlcDo6Y3JlYXRlKHBhc3MobV9yZXApLCAwLCBsZW5n
dGggKyAxKTsKKyAgICBtX3JlcCA9IFJlcDo6Y3JlYXRlKG1fcmVwLCAwLCBsZW5ndGggKyAxKTsK
ICAgfSBlbHNlIHsKICAgICAvLyB0aGlzIGlzIHNoYXJlZCB3aXRoIHNvbWVvbmUgdXNpbmcgbW9y
ZSBjYXBhY2l0eSwgZ290dGEgbWFrZSBhIHdob2xlIG5ldyBzdHJpbmcKICAgICBpbnQgbmV3Q2Fw
YWNpdHkgPSBleHBhbmRlZFNpemUoKGxlbmd0aCArIDEpLCAwKTsKQEAgLTExMjIsNyArMTEyMiw3
IEBAIFVTdHJpbmcgVVN0cmluZzo6c3Vic3RyKGludCBwb3MsIGludCBsZW4KICAgaWYgKHBvcyA9
PSAwICYmIGxlbiA9PSBzKQogICAgIHJldHVybiAqdGhpczsKIAotICByZXR1cm4gVVN0cmluZyhS
ZXA6OmNyZWF0ZShwYXNzKG1fcmVwKSwgcG9zLCBsZW4pKTsKKyAgcmV0dXJuIFVTdHJpbmcoUmVw
OjpjcmVhdGUobV9yZXAsIHBvcywgbGVuKSk7CiB9CiAKIHZvaWQgVVN0cmluZzo6Y29weUZvcldy
aXRpbmcoKQpJbmRleDoga2pzL3VzdHJpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvSmF2YVNjcmlwdENvcmUva2pzL3VzdHJpbmcuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40
NgpkaWZmIC11IC1wIC1yMS40NiBranMvdXN0cmluZy5oCi0tLSBranMvdXN0cmluZy5oCTYgRGVj
IDIwMDUgMTk6Mzg6NTEgLTAwMDAJMS40NgorKysga2pzL3VzdHJpbmcuaAkyNSBEZWMgMjAwNSAw
NjoyNTozOCAtMDAwMApAQCAtNDYyLDcgKzQ2Miw3IEBAIG5hbWVzcGFjZSBLSlMgewogI2VuZGlm
CiAKICAgICBSZXAgKnJlcCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwLmdldCgpOyB9Ci0gICAgVVN0
cmluZyhQYXNzUmVmUHRyPFJlcD4gcikgeyBtX3JlcCA9IHI7IH0KKyAgICBVU3RyaW5nKFBhc3NS
ZWZQdHI8UmVwPiByKSA6IG1fcmVwKHIpIHsgfQogCiAgICAgdm9pZCBjb3B5Rm9yV3JpdGluZygp
OwogCkluZGV4OiBreG1sY29yZS9QYXNzUmVmUHRyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L0phdmFTY3JpcHRDb3JlL2t4bWxjb3JlL1Bhc3NSZWZQdHIuaCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS42CmRpZmYgLXUgLXAgLXIxLjYga3htbGNvcmUvUGFzc1JlZlB0ci5oCi0tLSBr
eG1sY29yZS9QYXNzUmVmUHRyLmgJMjIgRGVjIDIwMDUgMTY6NDg6MDggLTAwMDAJMS42CisrKyBr
eG1sY29yZS9QYXNzUmVmUHRyLmgJMjUgRGVjIDIwMDUgMDY6MjU6MzggLTAwMDAKQEAgLTI3LDE1
ICsyNyw3IEBAIG5hbWVzcGFjZSBLWE1MQ29yZSB7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjbGFzcyBSZWZQdHI7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUGFzc1JlZlB0
cjsKLQotICAgIC8vIFBhc3NSZWZQdHJfUmVmIGNsYXNzIGlzIGEgaGVscGVyIHRvIGFsbG93IHBy
b3BlciBwYXNzaW5nIG9mIFBhc3NSZWZQdHIgYnkgdmFsdWUgYnV0IG5vdCBieSBjb25zdAotICAg
IC8vIHJlZmVyZW5jZQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IAotICAgIHN0cnVjdCBQYXNz
UmVmUHRyX1JlZgotICAgIHsKLSAgICAgICAgVCogbV9wdHI7Ci0gICAgICAgIGV4cGxpY2l0IFBh
c3NSZWZQdHJfUmVmKFQqIHApIDogbV9wdHIocCkge30KLSAgICB9OworICAgIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPiBQYXNzUmVmUHRyPFQ+IGFkb3B0UmVmKFQgKnApOwogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gCiAgICAgY2xhc3MgUGFzc1JlZlB0cgpAQCAtNDMsOCArMzUsOCBAQCBuYW1l
c3BhY2UgS1hNTENvcmUgewogICAgIHB1YmxpYzoKICAgICAgICAgUGFzc1JlZlB0cigpIDogbV9w
dHIoMCkge30KICAgICAgICAgUGFzc1JlZlB0cihUICpwdHIpIDogbV9wdHIocHRyKSB7IGlmIChw
dHIpIHB0ci0+cmVmKCk7IH0KLSAgICAgICAgUGFzc1JlZlB0cihQYXNzUmVmUHRyJiBvKSA6IG1f
cHRyKG8ucmVsZWFzZSgpKSB7fQotICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gUGFzc1Jl
ZlB0cihQYXNzUmVmUHRyPFU+JiBvKSA6IG1fcHRyKG8ucmVsZWFzZSgpKSB7IH0KKyAgICAgICAg
UGFzc1JlZlB0cihjb25zdCBQYXNzUmVmUHRyJiBvKSA6IG1fcHRyKG8ucmVsZWFzZSgpKSB7fQor
ICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gUGFzc1JlZlB0cihjb25zdCBQYXNzUmVmUHRy
PFU+JiBvKSA6IG1fcHRyKG8ucmVsZWFzZSgpKSB7IH0KIAogICAgICAgICB+UGFzc1JlZlB0cigp
IHsgaWYgKFQgKnB0ciA9IG1fcHRyKSBwdHItPmRlcmVmKCk7IH0KICAgICAgICAgCkBAIC01Mywx
NCArNDUsOCBAQCBuYW1lc3BhY2UgS1hNTENvcmUgewogICAgICAgICAKICAgICAgICAgVCAqZ2V0
KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KIAotICAgICAgICBUICpyZWxlYXNlKCkgeyBUICp0
bXAgPSBtX3B0cjsgbV9wdHIgPSAwOyByZXR1cm4gdG1wOyB9CisgICAgICAgIFQgKnJlbGVhc2Uo
KSBjb25zdCB7IFQgKnRtcCA9IG1fcHRyOyBtX3B0ciA9IDA7IHJldHVybiB0bXA7IH0KIAotICAg
ICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gc3RhdGljIFBhc3NSZWZQdHI8VD4gYWRvcHQoVSog
cHRyKQotICAgICAgICB7Ci0gICAgICAgICAgICBQYXNzUmVmUHRyIHJlc3VsdCgoUGFzc1JlZlB0
cl9SZWY8VD4ocHRyKSkpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQot
ICAgICAgICAKICAgICAgICAgVCYgb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gKm1fcHRyOyB9
CiAgICAgICAgIFQgKm9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiBtX3B0cjsgfQogICAgICAg
ICAKQEAgLTcxLDI1ICs1NywxNSBAQCBuYW1lc3BhY2UgS1hNTENvcmUgewogICAgICAgICBvcGVy
YXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9wdHIgPyAmUGFzc1Jl
ZlB0cjo6Z2V0IDogMDsgfQogICAgICAgICAKICAgICAgICAgUGFzc1JlZlB0ciYgb3BlcmF0b3I9
KFQgKik7Ci0gICAgICAgIFBhc3NSZWZQdHImIG9wZXJhdG9yPShQYXNzUmVmUHRyJik7Ci0gICAg
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBQYXNzUmVmUHRyJiBvcGVyYXRvcj0oUGFzc1JlZlB0
cjxVPiYpOworICAgICAgICBQYXNzUmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUGFzc1JlZlB0ciYp
OworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gUGFzc1JlZlB0ciYgb3BlcmF0b3I9KGNv
bnN0IFBhc3NSZWZQdHI8VT4mKTsKICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IFBhc3NS
ZWZQdHImIG9wZXJhdG9yPShjb25zdCBSZWZQdHI8VT4mKTsKIAotICAgICAgICBQYXNzUmVmUHRy
KFBhc3NSZWZQdHJfUmVmPFQ+IHJlZikgOiBtX3B0cihyZWYubV9wdHIpIHsgfQotICAgICAgCi0g
ICAgICAgIFBhc3NSZWZQdHImIG9wZXJhdG9yPShQYXNzUmVmUHRyX1JlZjxUPiByZWYpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGlmIChtX3B0cikKLSAgICAgICAgICAgICAgICBtX3B0ci0+ZGVy
ZWYoKTsKLSAgICAgICAgICAgIG1fcHRyID0gcmVmLm1fcHRyOwotICAgICAgICAgICAgcmV0dXJu
ICp0aGlzOwotICAgICAgICB9Ci0KLSAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IG9wZXJh
dG9yIFBhc3NSZWZQdHJfUmVmPFU+KCkgeyByZXR1cm4gUGFzc1JlZlB0cl9SZWY8VT4ocmVsZWFz
ZSgpKTsgfQotICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gb3BlcmF0b3IgUGFzc1JlZlB0
cjxVPigpIHsgcmV0dXJuIFBhc3NSZWZQdHJfUmVmPFU+KHJlbGVhc2UoKSk7IH0KLSAgICAgICAg
CisgICAgICAgIGZyaWVuZCBQYXNzUmVmUHRyIGFkb3B0UmVmPFQ+KFQgKik7CiAgICAgcHJpdmF0
ZToKLSAgICAgICAgVCAqbV9wdHI7CisgICAgICAgIC8vIGFkb3B0aW5nIGNvbnN0cnVjdG9yCisg
ICAgICAgIFBhc3NSZWZQdHIoVCAqcHRyLCBib29sKSA6IG1fcHRyKHB0cikge30KKyAgICAgICAg
bXV0YWJsZSBUICptX3B0cjsKICAgICB9OwogICAgIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gaW5saW5lIFBhc3NSZWZQdHI8VD4mIFBhc3NSZWZQdHI8
VD46Om9wZXJhdG9yPShjb25zdCBSZWZQdHI8VT4mIG8pIApAQCAtMTEzLDcgKzg5LDcgQEAgbmFt
ZXNwYWNlIEtYTUxDb3JlIHsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAotICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgUGFzc1JlZlB0cjxUPiYgUGFzc1JlZlB0cjxUPjo6
b3BlcmF0b3I9KFBhc3NSZWZQdHI8VD4mIHJlZikKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4g
aW5saW5lIFBhc3NSZWZQdHI8VD4mIFBhc3NSZWZQdHI8VD46Om9wZXJhdG9yPShjb25zdCBQYXNz
UmVmUHRyPFQ+JiByZWYpCiAgICAgewogICAgICAgICBUICpvcHRyID0gcmVmLnJlbGVhc2UoKTsK
ICAgICAgICAgaWYgKFQgKnB0ciA9IG1fcHRyKQpAQCAtMTIyLDcgKzk4LDcgQEAgbmFtZXNwYWNl
IEtYTUxDb3JlIHsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KICAgICAKLSAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4gdGVtcGxhdGUgPHR5cGVuYW1lIFU+IGlubGluZSBQYXNzUmVmUHRy
PFQ+JiBQYXNzUmVmUHRyPFQ+OjpvcGVyYXRvcj0oUGFzc1JlZlB0cjxVPiYgcmVmKQorICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBUPiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gaW5saW5lIFBhc3NSZWZQ
dHI8VD4mIFBhc3NSZWZQdHI8VD46Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFU+JiByZWYp
CiAgICAgewogICAgICAgICBUICpvcHRyID0gcmVmLnJlbGVhc2UoKTsKICAgICAgICAgaWYgKFQg
KnB0ciA9IG1fcHRyKQpAQCAtMTgxLDMxICsxNTcsMjYgQEAgbmFtZXNwYWNlIEtYTUxDb3JlIHsK
ICAgICAgICAgcmV0dXJuIGEgIT0gYi5nZXQoKTsgCiAgICAgfQogICAgIAorICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPiBpbmxpbmUgUGFzc1JlZlB0cjxUPiBhZG9wdFJlZihUICpwKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8VD4ocCwgdHJ1ZSk7CisgICAgfQorCiAgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBQYXNzUmVmUHRyPFQ+IHN0YXRp
Y19wb2ludGVyX2Nhc3QoY29uc3QgUGFzc1JlZlB0cjxVPiYgcCkgCiAgICAgeyAKLSAgICAgICAg
cmV0dXJuIFBhc3NSZWZQdHI8VD46OmFkb3B0KHN0YXRpY19jYXN0PFQgKj4ocC5yZWxlYXNlKCkp
KTsgCisgICAgICAgIHJldHVybiBhZG9wdFJlZihzdGF0aWNfY2FzdDxUICo+KHAucmVsZWFzZSgp
KSk7IAogICAgIH0KIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxp
bmUgUGFzc1JlZlB0cjxUPiBjb25zdF9wb2ludGVyX2Nhc3QoY29uc3QgUGFzc1JlZlB0cjxVPiYg
cCkgCiAgICAgeyAKLSAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8VD46OmFkb3B0KGNvbnN0X2Nh
c3Q8VCAqPihwLnJlbGVhc2UoKSkpOyAKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4gaW5saW5lIFBhc3NSZWZQdHI8VD4gcGFzcyhUICpwdHIpCi0gICAgewotICAgICAgICByZXR1
cm4gUGFzc1JlZlB0cjxUPihwdHIpOwotICAgIH0KLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PiBpbmxpbmUgUGFzc1JlZlB0cjxUPiBwYXNzKGNvbnN0IFJlZlB0cjxUPiYgcHRyKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8VD4ocHRyKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKGNvbnN0X2Nhc3Q8VCAqPihwLnJlbGVhc2UoKSkpOyAKICAgICB9CiAKIH0gLy8gbmFtZXNw
YWNlIEtYTUxDb3JlCiAKIHVzaW5nIEtYTUxDb3JlOjpQYXNzUmVmUHRyOwordXNpbmcgS1hNTENv
cmU6OmFkb3B0UmVmOwogdXNpbmcgS1hNTENvcmU6OnN0YXRpY19wb2ludGVyX2Nhc3Q7CiB1c2lu
ZyBLWE1MQ29yZTo6Y29uc3RfcG9pbnRlcl9jYXN0OwotdXNpbmcgS1hNTENvcmU6OnBhc3M7CiAK
ICNlbmRpZiAvLyBLWE1MQ09SRV9QQVNTX1JFRl9QVFJfSApJbmRleDoga3htbGNvcmUvUmVmUHRy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2t4bWxjb3Jl
L1JlZlB0ci5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjExCmRpZmYgLXUgLXAgLXIxLjExIGt4
bWxjb3JlL1JlZlB0ci5oCi0tLSBreG1sY29yZS9SZWZQdHIuaAkyMyBEZWMgMjAwNSAwODozNDo0
MiAtMDAwMAkxLjExCisrKyBreG1sY29yZS9SZWZQdHIuaAkyNSBEZWMgMjAwNSAwNjoyNTo0MCAt
MDAwMApAQCAtMjgsNyArMjgsNiBAQAogbmFtZXNwYWNlIEtYTUxDb3JlIHsKIAogICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBQYXNzUmVmUHRyOwotICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPiBjbGFzcyBQYXNzUmVmUHRyX1JlZjsKIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBj
bGFzcyBSZWZQdHIKICAgICB7CkBAIC0zNiw4ICszNSw3IEBAIG5hbWVzcGFjZSBLWE1MQ29yZSB7
CiAgICAgICAgIFJlZlB0cigpIDogbV9wdHIoMCkge30KICAgICAgICAgUmVmUHRyKFQgKnB0cikg
OiBtX3B0cihwdHIpIHsgaWYgKHB0cikgcHRyLT5yZWYoKTsgfQogICAgICAgICBSZWZQdHIoY29u
c3QgUmVmUHRyJiBvKSA6IG1fcHRyKG8ubV9wdHIpIHsgaWYgKFQgKnB0ciA9IG1fcHRyKSBwdHIt
PnJlZigpOyB9Ci0gICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBSZWZQdHIoUGFzc1JlZlB0
cjxVPiYpOwotICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gUmVmUHRyKFBhc3NSZWZQdHJf
UmVmPFU+KTsKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IFJlZlB0cihjb25zdCBQYXNz
UmVmUHRyPFU+Jik7CiAKICAgICAgICAgflJlZlB0cigpIHsgaWYgKFQgKnB0ciA9IG1fcHRyKSBw
dHItPmRlcmVmKCk7IH0KICAgICAgICAgCkBAIC01NiwxMSArNTQsOSBAQCBuYW1lc3BhY2UgS1hN
TENvcmUgewogICAgICAgICAKICAgICAgICAgUmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUmVmUHRy
Jik7CiAgICAgICAgIFJlZlB0ciYgb3BlcmF0b3I9KFQgKik7Ci0gICAgICAgIFJlZlB0ciYgb3Bl
cmF0b3I9KFBhc3NSZWZQdHI8VD4mKTsKLSAgICAgICAgUmVmUHRyJiBvcGVyYXRvcj0oUGFzc1Jl
ZlB0cl9SZWY8VD4pOworICAgICAgICBSZWZQdHImIG9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRy
PFQ+Jik7CiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBSZWZQdHImIG9wZXJhdG9yPShj
b25zdCBSZWZQdHI8VT4mKTsKLSAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IFJlZlB0ciYg
b3BlcmF0b3I9KFBhc3NSZWZQdHI8VT4mKTsKLSAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+
IFJlZlB0ciYgb3BlcmF0b3I9KFBhc3NSZWZQdHJfUmVmPFU+KTsKKyAgICAgICAgdGVtcGxhdGUg
PHR5cGVuYW1lIFU+IFJlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8VT4mKTsKIAog
ICAgICAgICB2b2lkIHN3YXAoUmVmUHRyJik7CiAKQEAgLTY4LDEyICs2NCw3IEBAIG5hbWVzcGFj
ZSBLWE1MQ29yZSB7CiAgICAgICAgIFQgKm1fcHRyOwogICAgIH07CiAgICAgCi0gICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBpbmxpbmUgUmVmUHRyPFQ+OjpS
ZWZQdHIoUGFzc1JlZlB0cl9SZWY8VT4gcmVmKQotICAgICAgICA6IG1fcHRyKHJlZi5tX3B0cikK
LSAgICB7Ci0gICAgfQotICAgIAotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVT4gaW5saW5lIFJlZlB0cjxUPjo6UmVmUHRyKFBhc3NSZWZQdHI8VT4mIG8pCisg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBpbmxpbmUgUmVm
UHRyPFQ+OjpSZWZQdHIoY29uc3QgUGFzc1JlZlB0cjxVPiYgbykKICAgICAgICAgOiBtX3B0cihv
LnJlbGVhc2UoKSkKICAgICB7CiAgICAgfQpAQCAtMTEwLDE1ICsxMDEsNyBAQCBuYW1lc3BhY2Ug
S1hNTENvcmUgewogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCi0gICAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+IHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQ
dHI8VD46Om9wZXJhdG9yPShQYXNzUmVmUHRyX1JlZjxVPiByZWYpCi0gICAgewotICAgICAgICBp
ZiAobV9wdHIpCi0gICAgICAgICAgICBtX3B0ci0+ZGVyZWYoKTsKLSAgICAgICAgbV9wdHIgPSBy
ZWYubV9wdHI7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0gICAgCi0gICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3BlcmF0b3I9KFBh
c3NSZWZQdHI8VD4mIG8pCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8
VD4mIFJlZlB0cjxUPjo6b3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8VD4mIG8pCiAgICAgewog
ICAgICAgICBpZiAobV9wdHIpCiAgICAgICAgICAgICBtX3B0ci0+ZGVyZWYoKTsKQEAgLTEyNiwx
NSArMTA5LDcgQEAgbmFtZXNwYWNlIEtYTUxDb3JlIHsKICAgICAgICAgcmV0dXJuICp0aGlzOwog
ICAgIH0KIAotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQ
dHI8VD46Om9wZXJhdG9yPShQYXNzUmVmUHRyX1JlZjxUPiByZWYpCi0gICAgewotICAgICAgICBp
ZiAobV9wdHIpCi0gICAgICAgICAgICBtX3B0ci0+ZGVyZWYoKTsKLSAgICAgICAgbV9wdHIgPSBy
ZWYubV9wdHI7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0gICAgCi0gICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBpbmxpbmUgUmVmUHRyPFQ+JiBS
ZWZQdHI8VD46Om9wZXJhdG9yPShQYXNzUmVmUHRyPFU+JiBvKQorICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gaW5saW5lIFJlZlB0cjxUPiYgUmVmUHRyPFQ+
OjpvcGVyYXRvcj0oY29uc3QgUGFzc1JlZlB0cjxVPiYgbykKICAgICB7CiAgICAgICAgIGlmICht
X3B0cikKICAgICAgICAgICAgIG1fcHRyLT5kZXJlZigpOwo=
</data>
<flag name="review"
          id="1092"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>