<?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>6158</bug_id>
          
          <creation_ts>2005-12-20 02:43:11 -0800</creation_ts>
          <short_desc>Fix leaks in PassRefPtr</short_desc>
          <delta_ts>2005-12-20 12:04:16 -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>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>26245</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-20 02:43:11 -0800</bug_when>
    <thetext>There&apos;s two problems with PassRefPtr that can cause memory problems:

1) The RefPtr assignment from PassRefPtr has an extra ref

2) PassRefPtr doesn&apos;t declare a copy constructor, this means the default is used and that doesn&apos;t properly 
transfer ownership.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26246</commentid>
    <comment_count>1</comment_count>
      <attachid>5172</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-20 02:44:28 -0800</bug_when>
    <thetext>Created attachment 5172
fix the problems</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26254</commentid>
    <comment_count>2</comment_count>
      <attachid>5177</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-20 04:20:50 -0800</bug_when>
    <thetext>Created attachment 5177
fix problem with last attachment

First version had a bug and caused more leaks. This version is better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26266</commentid>
    <comment_count>3</comment_count>
      <attachid>5177</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-12-20 09:11:56 -0800</bug_when>
    <thetext>Comment on attachment 5177
fix problem with last attachment

I think pass should take a const RefPtr&lt;T&gt;&amp; rather than a RefPtr&lt;T&gt; to avoid
reference count churn.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26275</commentid>
    <comment_count>4</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-20 12:04:16 -0800</bug_when>
    <thetext>OK, fixed it to take a const&amp;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5172</attachid>
            <date>2005-12-20 02:44:28 -0800</date>
            <delta_ts>2005-12-20 04:21:03 -0800</delta_ts>
            <desc>fix the problems</desc>
            <filename>passrefptr-fixes.patch.txt</filename>
            <type>text/plain</type>
            <size>12910</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkx
MwpkaWZmIC11IC1wIC1yMS45MTMgSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCi0tLSBKYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJMTkgRGVjIDIwMDUgMjA6NDg6MjEgLTAwMDAJMS45MTMKKysrIEph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkyMCBEZWMgMjAwNSAxMDo0NDo1NiAtMDAwMApAQCAtMSwz
ICsxLDM4IEBACisyMDA1LTEyLTE5ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKwktIGZpeGVkIGEgbGVh
ayBpbiB0aGUgYXNzaWdubWVudCBvcGVyYXRvciBmcm9tIFBhc3NSZWZQdHIgdG8gUmVmUHRyCisK
KyAgICAgICAgKiBreG1sY29yZS9SZWZQdHIuaDoKKyAgICAgICAgKEtYTUxDb3JlOjpSZWZQdHI6
Om9wZXJhdG9yPSk6CisKKwktIGZpeCBwcm9ibGVtIHdpdGggUGFzc1JlZlB0ciB0aGF0IGRhcmlu
IHNwb3R0ZWQgLSBpdCBsYWNrZWQgYSBjb3B5IGNvbnN0cnVjdG9yCisJYW5kIHRoZXJlZm9yZSB3
YXMgdXNpbmcgdGhlIGRlZmF1bHQgb25lLCB3aGljaCBjYW4gbGVhZCB0byBleGNlc3MgZGVyZWZz
CisKKwlJIGZpeGVkIHRoaXMgYnkgYWRkaW5nIGEgY29weSBjb25zdHJ1Y3RvciBmcm9tIG5vbi1j
b25zdAorCXJlZmVyZW5jZSwgYW5kIGJ5IGFkZGluZyBhIHRlbXBsYXRlIHBhc3MoKSBmdW5jdGlv
biB0aGF0IHlvdSBoYXZlCisJdG8gdXNlIHdoZW4gcmF3IHBvaW50ZXIgb3IgUmVmUHRyIGFyZSBw
YXNzZWQgd2hlcmUgUGFzc1JlZlB0ciBpcworCWV4cGVjdGVkLgorCisgICAgICAgICoga2pzL2lk
ZW50aWZpZXIuY3BwOgorICAgICAgICAoS0pTOjpJZGVudGlmaWVyOjphZGQpOiBDaGFuZ2VkIHRv
IGhhdmUgUGFzc1JlZlB0ciByZXR1cm4gdHlwZSBhbmQKKwlwYXNzKCkgdGhlIHJlc3VsdHMuCQor
ICAgICAgICAqIGtqcy9pZGVudGlmaWVyLmg6CisgICAgICAgICoga2pzL3Byb3BlcnR5X21hcC5j
cHA6CisgICAgICAgIChLSlM6OlByb3BlcnR5TWFwOjphZGRTcGFyc2VBcnJheVByb3BlcnRpZXNU
b1JlZmVyZW5jZUxpc3QpOiBVc2UgcGFzcygpCisJd2hlcmUgcmVxdWlyZWQuCisgICAgICAgICog
a2pzL3VzdHJpbmcuY3BwOgorICAgICAgICAoS0pTOjpVU3RyaW5nOjpVU3RyaW5nKTogVXNlIHBh
c3MoKSBhcyBuZWVkZWQuCisgICAgICAgIChLSlM6OlVTdHJpbmc6OmFwcGVuZCk6IGRpdHRvCisg
ICAgICAgIChLSlM6OlVTdHJpbmc6OnN1YnN0cik6IGRpdHRvCisgICAgICAgICoga2pzL3VzdHJp
bmcuaDoKKyAgICAgICAgKEtKUzo6VVN0cmluZzo6VVN0cmluZyk6IFVzZSBpbml0aWFsaXplciBp
bnN0ZWFkIG9mIGFzc2lnbm1lbnQKKyAgICAgICAgKiBreG1sY29yZS9QYXNzUmVmUHRyLmg6Cisg
ICAgICAgIChLWE1MQ29yZTo6UGFzc1JlZlB0cjo6UGFzc1JlZlB0cik6IEFkZGVkIGNvcHkgY29u
c3RydWN0b3IKKyAgICAgICAgKEtYTUxDb3JlOjpwYXNzKTogbmV3IHRlbXBsYXRlIGZ1bmN0aW9u
IHRvIG1ha2UgaXQgY29udmVuaWVudCB0byBwYXNzCisJYSBQYXNzUmVmUHRyCisKIDIwMDUtMTIt
MTkgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE9yaWdpbmFsbHkg
ZG9uZSBieSBib3RoIEdlb3JnZSBTdGFpa29zIGFuZCBBbGV4ZXkgUHJvc2t1cnlha292LgpJbmRl
eDogSmF2YVNjcmlwdENvcmUva2pzL2lkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvaWRlbnRpZmllci5jcHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMjQKZGlmZiAtdSAtcCAtcjEuMjQgSmF2YVNjcmlwdENvcmUva2pzL2lkZW50
aWZpZXIuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvaWRlbnRpZmllci5jcHAJMTkgRGVjIDIw
MDUgMTA6Mzg6MDcgLTAwMDAJMS4yNAorKysgSmF2YVNjcmlwdENvcmUva2pzL2lkZW50aWZpZXIu
Y3BwCTIwIERlYyAyMDA1IDEwOjQ0OjU2IC0wMDAwCkBAIC0xMjMsMTUgKzEyMywxNSBAQCBpbmxp
bmUgVVN0cmluZzo6UmVwICpjb252ZXJ0KGNvbnN0IGNoYXIqCiAgICAgcmV0dXJuIHI7IAogfQog
Ci1VU3RyaW5nOjpSZXAgKklkZW50aWZpZXI6OmFkZChjb25zdCBjaGFyICpjKQorUGFzc1JlZlB0
cjxVU3RyaW5nOjpSZXA+IElkZW50aWZpZXI6OmFkZChjb25zdCBjaGFyICpjKQogewogICAgIGlm
ICghYykKLSAgICAgICAgcmV0dXJuICZVU3RyaW5nOjpSZXA6Om51bGw7CisgICAgICAgIHJldHVy
biBwYXNzKCZVU3RyaW5nOjpSZXA6Om51bGwpOwogICAgIGludCBsZW5ndGggPSBzdHJsZW4oYyk7
CiAgICAgaWYgKGxlbmd0aCA9PSAwKQotICAgICAgICByZXR1cm4gJlVTdHJpbmc6OlJlcDo6ZW1w
dHk7CisgICAgICAgIHJldHVybiBwYXNzKCZVU3RyaW5nOjpSZXA6OmVtcHR5KTsKICAgICAKLSAg
ICByZXR1cm4gKmlkZW50aWZpZXJUYWJsZSgpLmluc2VydDxjb25zdCBjaGFyICosIGhhc2gsIEtK
Uzo6ZXF1YWwsIGNvbnZlcnQ+KGMpLmZpcnN0OworICAgIHJldHVybiBwYXNzKCppZGVudGlmaWVy
VGFibGUoKS5pbnNlcnQ8Y29uc3QgY2hhciAqLCBoYXNoLCBLSlM6OmVxdWFsLCBjb252ZXJ0Pihj
KS5maXJzdCk7CiB9CiAKIHN0cnVjdCBVQ2hhckJ1ZmZlciB7CkBAIC0xNjMsMjcgKzE2MywyNyBA
QCBpbmxpbmUgVVN0cmluZzo6UmVwICpjb252ZXJ0KGNvbnN0IFVDaGFyCiAgICAgcmV0dXJuIHI7
IAogfQogCi1VU3RyaW5nOjpSZXAgKklkZW50aWZpZXI6OmFkZChjb25zdCBVQ2hhciAqcywgaW50
IGxlbmd0aCkKK1Bhc3NSZWZQdHI8VVN0cmluZzo6UmVwPiBJZGVudGlmaWVyOjphZGQoY29uc3Qg
VUNoYXIgKnMsIGludCBsZW5ndGgpCiB7CiAgICAgaWYgKGxlbmd0aCA9PSAwKQotICAgICAgICBy
ZXR1cm4gJlVTdHJpbmc6OlJlcDo6ZW1wdHk7CisgICAgICAgIHJldHVybiBwYXNzKCZVU3RyaW5n
OjpSZXA6OmVtcHR5KTsKICAgICAKICAgICBVQ2hhckJ1ZmZlciBidWYgPSB7cywgbGVuZ3RofTsg
Ci0gICAgcmV0dXJuICppZGVudGlmaWVyVGFibGUoKS5pbnNlcnQ8VUNoYXJCdWZmZXIsIGhhc2gs
IEtKUzo6ZXF1YWwsIGNvbnZlcnQ+KGJ1ZikuZmlyc3Q7CisgICAgcmV0dXJuIHBhc3MoKmlkZW50
aWZpZXJUYWJsZSgpLmluc2VydDxVQ2hhckJ1ZmZlciwgaGFzaCwgS0pTOjplcXVhbCwgY29udmVy
dD4oYnVmKS5maXJzdCk7CiB9CiAKLVVTdHJpbmc6OlJlcCAqSWRlbnRpZmllcjo6YWRkKFVTdHJp
bmc6OlJlcCAqcikKK1Bhc3NSZWZQdHI8VVN0cmluZzo6UmVwPiBJZGVudGlmaWVyOjphZGQoVVN0
cmluZzo6UmVwICpyKQogewogICAgIGlmIChyLT5pc0lkZW50aWZpZXIpCi0gICAgICAgIHJldHVy
biByOworICAgICAgICByZXR1cm4gcGFzcyhyKTsKIAogICAgIGlmIChyLT5sZW4gPT0gMCkKLSAg
ICAgICAgcmV0dXJuICZVU3RyaW5nOjpSZXA6OmVtcHR5OworICAgICAgICByZXR1cm4gcGFzcygm
VVN0cmluZzo6UmVwOjplbXB0eSk7CiAKICAgICBVU3RyaW5nOjpSZXAgKnJlc3VsdCA9ICppZGVu
dGlmaWVyVGFibGUoKS5pbnNlcnQocikuZmlyc3Q7CiAgICAgaWYgKHJlc3VsdCA9PSByKQogICAg
ICAgICByLT5pc0lkZW50aWZpZXIgPSB0cnVlOwotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0
dXJuIHBhc3MocmVzdWx0KTsKIH0KIAogdm9pZCBJZGVudGlmaWVyOjpyZW1vdmUoVVN0cmluZzo6
UmVwICpyKQpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2lkZW50aWZpZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL2lkZW50aWZpZXIuaCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4yMQpkaWZmIC11IC1wIC1yMS4yMSBKYXZhU2NyaXB0Q29yZS9r
anMvaWRlbnRpZmllci5oCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvaWRlbnRpZmllci5oCTE5IERl
YyAyMDA1IDEwOjM4OjA3IC0wMDAwCTEuMjEKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9pZGVudGlm
aWVyLmgJMjAgRGVjIDIwMDUgMTA6NDQ6NTYgLTAwMDAKQEAgLTc3LDkgKzc3LDkgQEAgbmFtZXNw
YWNlIEtKUyB7CiAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IElkZW50aWZpZXIgJmEs
IGNvbnN0IGNoYXIgKmIpCiAgICAgICAgICAgICB7IHJldHVybiBlcXVhbChhLl91c3RyaW5nLnJl
cCgpLCBiKTsgfQogICAgICAgICAKLSAgICAgICAgc3RhdGljIFVTdHJpbmc6OlJlcCAqYWRkKGNv
bnN0IGNoYXIgKik7Ci0gICAgICAgIHN0YXRpYyBVU3RyaW5nOjpSZXAgKmFkZChjb25zdCBVQ2hh
ciAqLCBpbnQgbGVuZ3RoKTsKLSAgICAgICAgc3RhdGljIFVTdHJpbmc6OlJlcCAqYWRkKFVTdHJp
bmc6OlJlcCAqKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VVN0cmluZzo6UmVwPiBhZGQo
Y29uc3QgY2hhciAqKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VVN0cmluZzo6UmVwPiBh
ZGQoY29uc3QgVUNoYXIgKiwgaW50IGxlbmd0aCk7CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFVTdHJpbmc6OlJlcD4gYWRkKFVTdHJpbmc6OlJlcCAqKTsKICAgICB9OwogICAgIAogI2lmICFL
SlNfSURFTlRJRklFUl9ISURFX0dMT0JBTFMKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9wcm9w
ZXJ0eV9tYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29y
ZS9ranMvcHJvcGVydHlfbWFwLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41NApkaWZmIC11
IC1wIC1yMS41NCBKYXZhU2NyaXB0Q29yZS9ranMvcHJvcGVydHlfbWFwLmNwcAotLS0gSmF2YVNj
cmlwdENvcmUva2pzL3Byb3BlcnR5X21hcC5jcHAJMTEgRGVjIDIwMDUgMDI6MDU6NDcgLTAwMDAJ
MS41NAorKysgSmF2YVNjcmlwdENvcmUva2pzL3Byb3BlcnR5X21hcC5jcHAJMjAgRGVjIDIwMDUg
MTA6NDQ6NTYgLTAwMDAKQEAgLTYxNCwxMSArNjE0LDExIEBAIHZvaWQgUHJvcGVydHlNYXA6OmFk
ZFNwYXJzZUFycmF5UHJvcGVydGkKICNpZiBVU0VfU0lOR0xFX0VOVFJZCiAgICAgICAgIFVTdHJp
bmc6OlJlcCAqa2V5ID0gX3NpbmdsZUVudHJ5LmtleTsKICAgICAgICAgaWYgKGtleSkgewotICAg
ICAgICAgICAgVVN0cmluZyBrKGtleSk7CisgICAgICAgICAgICBVU3RyaW5nIGsocGFzcyhrZXkp
KTsKICAgICAgICAgICAgIGJvb2wgZml0c0luVUludDMyOwogICAgICAgICAgICAgay50b1VJbnQz
MigmZml0c0luVUludDMyKTsKICAgICAgICAgICAgIGlmIChmaXRzSW5VSW50MzIpCi0gICAgICAg
ICAgICAgICAgbGlzdC5hcHBlbmQoUmVmZXJlbmNlKGJhc2UsIElkZW50aWZpZXIoa2V5KSkpOwor
ICAgICAgICAgICAgICAgIGxpc3QuYXBwZW5kKFJlZmVyZW5jZShiYXNlLCBJZGVudGlmaWVyKHBh
c3Moa2V5KSkpKTsKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIHJldHVybjsKQEAgLTYyOSwx
MSArNjI5LDExIEBAIHZvaWQgUHJvcGVydHlNYXA6OmFkZFNwYXJzZUFycmF5UHJvcGVydGkKICAg
ICBmb3IgKGludCBpID0gMDsgaSAhPSBzaXplOyArK2kpIHsKICAgICAgICAgVVN0cmluZzo6UmVw
ICprZXkgPSBlbnRyaWVzW2ldLmtleTsKICAgICAgICAgaWYgKGtleSAmJiBrZXkgIT0gJlVTdHJp
bmc6OlJlcDo6bnVsbCkgewotICAgICAgICAgICAgVVN0cmluZyBrKGtleSk7CisgICAgICAgICAg
ICBVU3RyaW5nIGsocGFzcyhrZXkpKTsKICAgICAgICAgICAgIGJvb2wgZml0c0luVUludDMyOwog
ICAgICAgICAgICAgay50b1VJbnQzMigmZml0c0luVUludDMyKTsKICAgICAgICAgICAgIGlmIChm
aXRzSW5VSW50MzIpCi0gICAgICAgICAgICAgICAgbGlzdC5hcHBlbmQoUmVmZXJlbmNlKGJhc2Us
IElkZW50aWZpZXIoa2V5KSkpOworICAgICAgICAgICAgICAgIGxpc3QuYXBwZW5kKFJlZmVyZW5j
ZShiYXNlLCBJZGVudGlmaWVyKHBhc3Moa2V5KSkpKTsKICAgICAgICAgfQogICAgIH0KIH0KSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL2tqcy91c3RyaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL3VzdHJpbmcuY3BwLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjY1CmRpZmYgLXUgLXAgLXIxLjY1IEphdmFTY3JpcHRDb3JlL2tqcy91c3RyaW5nLmNw
cAotLS0gSmF2YVNjcmlwdENvcmUva2pzL3VzdHJpbmcuY3BwCTE2IERlYyAyMDA1IDIyOjQ4OjE5
IC0wMDAwCTEuNjUKKysrIEphdmFTY3JpcHRDb3JlL2tqcy91c3RyaW5nLmNwcAkyMCBEZWMgMjAw
NSAxMDo0NDo1NyAtMDAwMApAQCAtNDU3LDcgKzQ1Nyw3IEBAIFVTdHJpbmc6OlVTdHJpbmcoY29u
c3QgVVN0cmluZyAmYSwgY29uc3QKICAgICBVU3RyaW5nIHgoYSk7CiAgICAgeC5leHBhbmRDYXBh
Y2l0eShhT2Zmc2V0ICsgbGVuZ3RoKTsKICAgICBtZW1jcHkoY29uc3RfY2FzdDxVQ2hhciAqPihh
LmRhdGEoKSArIGFTaXplKSwgYi5kYXRhKCksIGJTaXplICogc2l6ZW9mKFVDaGFyKSk7Ci0gICAg
bV9yZXAgPSBSZXA6OmNyZWF0ZShhLm1fcmVwLCAwLCBsZW5ndGgpOworICAgIG1fcmVwID0gUmVw
OjpjcmVhdGUocGFzcyhhLm1fcmVwKSwgMCwgbGVuZ3RoKTsKICAgfSBlbHNlIGlmICgtYk9mZnNl
dCA9PSBiLnVzZWRQcmVDYXBhY2l0eSgpICYmIDQgKiBiU2l6ZSA+PSBhU2l6ZSkgewogICAgIC8v
IC0gYiByZWFjaGVzIHRoZSBiZWdpbm5pbmcgb2YgaXRzIGJ1ZmZlciBzbyBpdCBxdWFsaWZpZXMg
Zm9yIHNoYXJlZCBwcmVwZW5kCiAgICAgLy8gLSBhbHNvLCBpdCdzIGF0IGxlYXN0IGEgcXVhcnRl
ciB0aGUgbGVuZ3RoIG9mIGEgLSBwcmVwZW5kaW5nIHRvIGEgbXVjaCBzaG9ydGVyCkBAIC00NjUs
NyArNDY1LDcgQEAgVVN0cmluZzo6VVN0cmluZyhjb25zdCBVU3RyaW5nICZhLCBjb25zdAogICAg
IFVTdHJpbmcgeShiKTsKICAgICB5LmV4cGFuZFByZUNhcGFjaXR5KC1iT2Zmc2V0ICsgYVNpemUp
OwogICAgIG1lbWNweShjb25zdF9jYXN0PFVDaGFyICo+KGIuZGF0YSgpIC0gYVNpemUpLCBhLmRh
dGEoKSwgYVNpemUgKiBzaXplb2YoVUNoYXIpKTsKLSAgICBtX3JlcCA9IFJlcDo6Y3JlYXRlKGIu
bV9yZXAsIC1hU2l6ZSwgbGVuZ3RoKTsKKyAgICBtX3JlcCA9IFJlcDo6Y3JlYXRlKHBhc3MoYi5t
X3JlcCksIC1hU2l6ZSwgbGVuZ3RoKTsKICAgfSBlbHNlIHsKICAgICAvLyBhIGRvZXMgbm90IHF1
YWxpZnkgZm9yIGFwcGVuZCwgYW5kIGIgZG9lcyBub3QgcXVhbGlmeSBmb3IgcHJlcGVuZCwgZ290
dGEgbWFrZSBhIHdob2xlIG5ldyBzdHJpbmcKICAgICBpbnQgbmV3Q2FwYWNpdHkgPSBleHBhbmRl
ZFNpemUobGVuZ3RoLCAwKTsKQEAgLTY4Myw3ICs2ODMsNyBAQCBVU3RyaW5nICZVU3RyaW5nOjph
cHBlbmQoY29uc3QgVVN0cmluZyAmCiAgICAgLy8gdGhpcyByZWFjaGVzIHRoZSBlbmQgb2YgdGhl
IGJ1ZmZlciAtIGV4dGVuZCBpdAogICAgIGV4cGFuZENhcGFjaXR5KHRoaXNPZmZzZXQgKyBsZW5n
dGgpOwogICAgIG1lbWNweShjb25zdF9jYXN0PFVDaGFyICo+KGRhdGEoKSArIHRoaXNTaXplKSwg
dC5kYXRhKCksIHRTaXplICogc2l6ZW9mKFVDaGFyKSk7Ci0gICAgbV9yZXAgPSBSZXA6OmNyZWF0
ZShtX3JlcCwgMCwgbGVuZ3RoKTsKKyAgICBtX3JlcCA9IFJlcDo6Y3JlYXRlKHBhc3MobV9yZXAp
LCAwLCBsZW5ndGgpOwogICB9IGVsc2UgewogICAgIC8vIHRoaXMgaXMgc2hhcmVkIHdpdGggc29t
ZW9uZSB1c2luZyBtb3JlIGNhcGFjaXR5LCBnb3R0YSBtYWtlIGEgd2hvbGUgbmV3IHN0cmluZwog
ICAgIGludCBuZXdDYXBhY2l0eSA9IGV4cGFuZGVkU2l6ZShsZW5ndGgsIDApOwpAQCAtNzI0LDcg
KzcyNCw3IEBAIFVTdHJpbmcgJlVTdHJpbmc6OmFwcGVuZChjb25zdCBjaGFyICp0KQogICAgIFVD
aGFyICpkID0gY29uc3RfY2FzdDxVQ2hhciAqPihkYXRhKCkpOwogICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgdFNpemU7ICsraSkKICAgICAgIGRbdGhpc1NpemUraV0gPSB0W2ldOwotICAgIG1fcmVw
ID0gUmVwOjpjcmVhdGUobV9yZXAsIDAsIGxlbmd0aCk7CisgICAgbV9yZXAgPSBSZXA6OmNyZWF0
ZShwYXNzKG1fcmVwKSwgMCwgbGVuZ3RoKTsKICAgfSBlbHNlIHsKICAgICAvLyB0aGlzIGlzIHNo
YXJlZCB3aXRoIHNvbWVvbmUgdXNpbmcgbW9yZSBjYXBhY2l0eSwgZ290dGEgbWFrZSBhIHdob2xl
IG5ldyBzdHJpbmcKICAgICBpbnQgbmV3Q2FwYWNpdHkgPSBleHBhbmRlZFNpemUobGVuZ3RoLCAw
KTsKQEAgLTc2NCw3ICs3NjQsNyBAQCBVU3RyaW5nICZVU3RyaW5nOjphcHBlbmQodW5zaWduZWQg
c2hvcnQgCiAgICAgZXhwYW5kQ2FwYWNpdHkodGhpc09mZnNldCArIGxlbmd0aCArIDEpOwogICAg
IFVDaGFyICpkID0gY29uc3RfY2FzdDxVQ2hhciAqPihkYXRhKCkpOwogICAgIGRbbGVuZ3RoXSA9
IGM7Ci0gICAgbV9yZXAgPSBSZXA6OmNyZWF0ZShtX3JlcCwgMCwgbGVuZ3RoICsgMSk7CisgICAg
bV9yZXAgPSBSZXA6OmNyZWF0ZShwYXNzKG1fcmVwKSwgMCwgbGVuZ3RoICsgMSk7CiAgIH0gZWxz
ZSB7CiAgICAgLy8gdGhpcyBpcyBzaGFyZWQgd2l0aCBzb21lb25lIHVzaW5nIG1vcmUgY2FwYWNp
dHksIGdvdHRhIG1ha2UgYSB3aG9sZSBuZXcgc3RyaW5nCiAgICAgaW50IG5ld0NhcGFjaXR5ID0g
ZXhwYW5kZWRTaXplKChsZW5ndGggKyAxKSwgMCk7CkBAIC0xMTIwLDcgKzExMjAsNyBAQCBVU3Ry
aW5nIFVTdHJpbmc6OnN1YnN0cihpbnQgcG9zLCBpbnQgbGVuCiAgIGlmIChwb3MgPT0gMCAmJiBs
ZW4gPT0gcykKICAgICByZXR1cm4gKnRoaXM7CiAKLSAgcmV0dXJuIFVTdHJpbmcoUmVwOjpjcmVh
dGUobV9yZXAsIHBvcywgbGVuKSk7CisgIHJldHVybiBVU3RyaW5nKFJlcDo6Y3JlYXRlKHBhc3Mo
bV9yZXApLCBwb3MsIGxlbikpOwogfQogCiB2b2lkIFVTdHJpbmc6OmNvcHlGb3JXcml0aW5nKCkK
SW5kZXg6IEphdmFTY3JpcHRDb3JlL2t4bWxjb3JlL1Bhc3NSZWZQdHIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva3htbGNvcmUvUGFzc1JlZlB0ci5oLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjMKZGlmZiAtdSAtcCAtcjEuMyBKYXZhU2NyaXB0Q29yZS9r
eG1sY29yZS9QYXNzUmVmUHRyLmgKLS0tIEphdmFTY3JpcHRDb3JlL2t4bWxjb3JlL1Bhc3NSZWZQ
dHIuaAk4IERlYyAyMDA1IDE4OjE5OjI4IC0wMDAwCTEuMworKysgSmF2YVNjcmlwdENvcmUva3ht
bGNvcmUvUGFzc1JlZlB0ci5oCTIwIERlYyAyMDA1IDEwOjQ0OjU3IC0wMDAwCkBAIC00NCw2ICs0
NCw3IEBAIG5hbWVzcGFjZSBLWE1MQ29yZSB7CiAgICAgICAgIFBhc3NSZWZQdHIoKSA6IG1fcHRy
KE5VTEwpIHt9CiAgICAgICAgIFBhc3NSZWZQdHIoVCAqcHRyKSA6IG1fcHRyKHB0cikgeyBpZiAo
cHRyKSBwdHItPnJlZigpOyB9CiAgICAgICAgIFBhc3NSZWZQdHIoY29uc3QgUmVmUHRyPFQ+JiBv
KSA6IG1fcHRyKG8uZ2V0KCkpIHsgaWYgKFQgKnB0ciA9IG1fcHRyKSBwdHItPnJlZigpOyB9Cisg
ICAgICAgIFBhc3NSZWZQdHIoUGFzc1JlZlB0ciYgbykgOiBtX3B0cihvLnJlbGVhc2UoKSkge30K
IAogICAgICAgICB+UGFzc1JlZlB0cigpIHsgaWYgKFQgKnB0ciA9IG1fcHRyKSBwdHItPmRlcmVm
KCk7IH0KICAgICAgICAgCkBAIC04OCw3ICs4OSw3IEBAIG5hbWVzcGFjZSBLWE1MQ29yZSB7CiAg
ICAgICAgICAgICBtX3B0ciA9IHJlZi5tX3B0cjsKICAgICAgICAgICAgIHJldHVybiAqdGhpczsK
ICAgICAgICAgfQotICAgICAgCisKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KICAgICAg
ICAgb3BlcmF0b3IgUGFzc1JlZlB0cl9SZWY8VT4oKQogICAgICAgICB7IApAQCAtMTk1LDEwICsx
OTYsMjMgQEAgbmFtZXNwYWNlIEtYTUxDb3JlIHsKICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8
VD46OmFkb3B0KGNvbnN0X2Nhc3Q8VCAqPihwLnJlbGVhc2UoKSkpOyAKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFBhc3NSZWZQdHI8VD4gcGFzcyhUICpwdHIpCisg
ICAgeworICAgICAgICBwdHItPnJlZigpOworICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxUPihw
dHIpOworICAgIH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgUGFzc1JlZlB0
cjxUPiBwYXNzKFJlZlB0cjxUPiBwdHIpCisgICAgeworICAgICAgICBwdHItPnJlZigpOworICAg
ICAgICByZXR1cm4gUGFzc1JlZlB0cjxUPihwdHIpOworICAgIH0KKwogfSAvLyBuYW1lc3BhY2Ug
S1hNTENvcmUKIAogdXNpbmcgS1hNTENvcmU6OlBhc3NSZWZQdHI7CiB1c2luZyBLWE1MQ29yZTo6
c3RhdGljX3BvaW50ZXJfY2FzdDsKIHVzaW5nIEtYTUxDb3JlOjpjb25zdF9wb2ludGVyX2Nhc3Q7
Cit1c2luZyBLWE1MQ29yZTo6cGFzczsKIAogI2VuZGlmIC8vIEtYTUxDT1JFX1BBU1NfUkVGX1BU
Ul9ICkluZGV4OiBKYXZhU2NyaXB0Q29yZS9reG1sY29yZS9SZWZQdHIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva3htbGNvcmUvUmVmUHRyLmgsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuNQpkaWZmIC11IC1wIC1yMS41IEphdmFTY3JpcHRDb3JlL2t4bWxj
b3JlL1JlZlB0ci5oCi0tLSBKYXZhU2NyaXB0Q29yZS9reG1sY29yZS9SZWZQdHIuaAkxNiBEZWMg
MjAwNSAyMjoyNzoyNiAtMDAwMAkxLjUKKysrIEphdmFTY3JpcHRDb3JlL2t4bWxjb3JlL1JlZlB0
ci5oCTIwIERlYyAyMDA1IDEwOjQ0OjU3IC0wMDAwCkBAIC05NiwxMiArOTYsOSBAQCBuYW1lc3Bh
Y2UgS1hNTENvcmUgewogICAgIAogICAgIHRlbXBsYXRlIDxjbGFzcyBUPiBpbmxpbmUgUmVmUHRy
PFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShQYXNzUmVmUHRyPFQ+JiBvKSAKICAgICB7Ci0gICAg
ICAgIFQgKm9wdHIgPSBvLnJlbGVhc2UoKTsKLSAgICAgICAgaWYgKG9wdHIpCi0gICAgICAgICAg
ICBvcHRyLT5yZWYoKTsKICAgICAgICAgaWYgKFQgKnB0ciA9IG1fcHRyKQogICAgICAgICAgICAg
cHRyLT5kZXJlZigpOwotICAgICAgICBtX3B0ciA9IG9wdHI7CisgICAgICAgIG1fcHRyID0gby5y
ZWxlYXNlKCk7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKSW5kZXg6IFdlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL0NoYW5nZUxv
Zyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45CmRpZmYgLXUgLXAgLXIxLjkgV2ViQ29yZS9DaGFu
Z2VMb2cKLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCTIwIERlYyAyMDA1IDA5OjMwOjIzIC0wMDAwCTEu
OQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJMjAgRGVjIDIwMDUgMTA6NDU6MDAgLTAwMDAKQEAgLTEs
MyArMSwxMyBAQAorMjAwNS0xMi0yMCAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gY2hh
bmdlIGFuIGFzc2lnbm1lbnQgdG8gYSBjb250cnVjdG9yIGRlY2xhcmF0aW9uIHRvIGJ1aWxkIHdp
dGggUGFzc1JlZlB0cgorCWxlYWsgZml4IGNoYW5nZXMKKworICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdUcmFuc2Zvcm1hYmxlSW1wbC5jcHA6CisgICAgICAgIChTVkdUcmFuc2Zvcm1hYmxlSW1wbDo6
cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUpOgorCiAyMDA1LTEyLTIwICBFcmljIFNlaWRlbCAgPGVz
ZWlkZWxAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IG1qcy4KSW5kZXg6IFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGVJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtYWJsZUltcGwuY3BwLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjkKZGlmZiAtdSAtcCAtcjEuOSBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdUcmFuc2Zvcm1hYmxlSW1wbC5jcHAKLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5z
Zm9ybWFibGVJbXBsLmNwcAkxMyBEZWMgMjAwNSAyMToyNToxMyAtMDAwMAkxLjkKKysrIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGVJbXBsLmNwcAkyMCBEZWMgMjAwNSAxMDo0NTow
MiAtMDAwMApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFNWR1RyYW5zZm9ybWFibGVJbXBsOjpwYXJz
ZVRyYW5zZm9yCiAgICAgICAgICAgICBzdWJ0cmFuc2Zvcm1bMF0gPSBzdWJ0cmFuc2Zvcm1bMF0u
cmlnaHQoc3VidHJhbnNmb3JtWzBdLmxlbmd0aCgpIC0gMSk7CiAgICAgICAgIH0KIAotICAgICAg
ICBQYXNzUmVmUHRyPFNWR1RyYW5zZm9ybUltcGw+IHQgPSBuZXcgU1ZHVHJhbnNmb3JtSW1wbCgp
OworICAgICAgICBQYXNzUmVmUHRyPFNWR1RyYW5zZm9ybUltcGw+IHQobmV3IFNWR1RyYW5zZm9y
bUltcGwoKSk7CiAKICAgICAgICAgaWYoc3VidHJhbnNmb3JtWzBdID09IFFTdHJpbmc6OmZyb21M
YXRpbjEoInJvdGF0ZSIpKQogICAgICAgICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5177</attachid>
            <date>2005-12-20 04:20:50 -0800</date>
            <delta_ts>2005-12-20 09:11:56 -0800</delta_ts>
            <desc>fix problem with last attachment</desc>
            <filename>passrefptr-fixes.patch.txt</filename>
            <type>text/plain</type>
            <size>13330</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkx
MwpkaWZmIC11IC1wIC1yMS45MTMgSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCi0tLSBKYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJMTkgRGVjIDIwMDUgMjA6NDg6MjEgLTAwMDAJMS45MTMKKysrIEph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkyMCBEZWMgMjAwNSAxMjoyMToyNCAtMDAwMApAQCAtMSwz
ICsxLDM4IEBACisyMDA1LTEyLTE5ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKwktIGZpeGVkIGEgbGVh
ayBpbiB0aGUgYXNzaWdubWVudCBvcGVyYXRvciBmcm9tIFBhc3NSZWZQdHIgdG8gUmVmUHRyCisK
KyAgICAgICAgKiBreG1sY29yZS9SZWZQdHIuaDoKKyAgICAgICAgKEtYTUxDb3JlOjpSZWZQdHI6
Om9wZXJhdG9yPSk6CisKKwktIGZpeCBwcm9ibGVtIHdpdGggUGFzc1JlZlB0ciB0aGF0IGRhcmlu
IHNwb3R0ZWQgLSBpdCBsYWNrZWQgYSBjb3B5IGNvbnN0cnVjdG9yCisJYW5kIHRoZXJlZm9yZSB3
YXMgdXNpbmcgdGhlIGRlZmF1bHQgb25lLCB3aGljaCBjYW4gbGVhZCB0byBleGNlc3MgZGVyZWZz
CisKKwlJIGZpeGVkIHRoaXMgYnkgYWRkaW5nIGEgY29weSBjb25zdHJ1Y3RvciBmcm9tIG5vbi1j
b25zdAorCXJlZmVyZW5jZSwgYW5kIGJ5IGFkZGluZyBhIHRlbXBsYXRlIHBhc3MoKSBmdW5jdGlv
biB0aGF0IHlvdSBoYXZlCisJdG8gdXNlIHdoZW4gcmF3IHBvaW50ZXIgb3IgUmVmUHRyIGFyZSBw
YXNzZWQgd2hlcmUgUGFzc1JlZlB0ciBpcworCWV4cGVjdGVkLgorCisgICAgICAgICoga2pzL2lk
ZW50aWZpZXIuY3BwOgorICAgICAgICAoS0pTOjpJZGVudGlmaWVyOjphZGQpOiBDaGFuZ2VkIHRv
IGhhdmUgUGFzc1JlZlB0ciByZXR1cm4gdHlwZSBhbmQKKwlwYXNzKCkgdGhlIHJlc3VsdHMuCQor
ICAgICAgICAqIGtqcy9pZGVudGlmaWVyLmg6CisgICAgICAgICoga2pzL3Byb3BlcnR5X21hcC5j
cHA6CisgICAgICAgIChLSlM6OlByb3BlcnR5TWFwOjphZGRTcGFyc2VBcnJheVByb3BlcnRpZXNU
b1JlZmVyZW5jZUxpc3QpOiBVc2UgcGFzcygpCisJd2hlcmUgcmVxdWlyZWQuCisgICAgICAgICog
a2pzL3VzdHJpbmcuY3BwOgorICAgICAgICAoS0pTOjpVU3RyaW5nOjpVU3RyaW5nKTogVXNlIHBh
c3MoKSBhcyBuZWVkZWQuCisgICAgICAgIChLSlM6OlVTdHJpbmc6OmFwcGVuZCk6IGRpdHRvCisg
ICAgICAgIChLSlM6OlVTdHJpbmc6OnN1YnN0cik6IGRpdHRvCisgICAgICAgICoga2pzL3VzdHJp
bmcuaDoKKyAgICAgICAgKEtKUzo6VVN0cmluZzo6VVN0cmluZyk6IFVzZSBpbml0aWFsaXplciBp
bnN0ZWFkIG9mIGFzc2lnbm1lbnQKKyAgICAgICAgKiBreG1sY29yZS9QYXNzUmVmUHRyLmg6Cisg
ICAgICAgIChLWE1MQ29yZTo6UGFzc1JlZlB0cjo6UGFzc1JlZlB0cik6IEFkZGVkIGNvcHkgY29u
c3RydWN0b3IKKyAgICAgICAgKEtYTUxDb3JlOjpwYXNzKTogbmV3IHRlbXBsYXRlIGZ1bmN0aW9u
IHRvIG1ha2UgaXQgY29udmVuaWVudCB0byBwYXNzCisJYSBQYXNzUmVmUHRyCisKIDIwMDUtMTIt
MTkgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE9yaWdpbmFsbHkg
ZG9uZSBieSBib3RoIEdlb3JnZSBTdGFpa29zIGFuZCBBbGV4ZXkgUHJvc2t1cnlha292LgpJbmRl
eDogSmF2YVNjcmlwdENvcmUva2pzL2lkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvaWRlbnRpZmllci5jcHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMjQKZGlmZiAtdSAtcCAtcjEuMjQgSmF2YVNjcmlwdENvcmUva2pzL2lkZW50
aWZpZXIuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvaWRlbnRpZmllci5jcHAJMTkgRGVjIDIw
MDUgMTA6Mzg6MDcgLTAwMDAJMS4yNAorKysgSmF2YVNjcmlwdENvcmUva2pzL2lkZW50aWZpZXIu
Y3BwCTIwIERlYyAyMDA1IDEyOjIxOjI0IC0wMDAwCkBAIC0xMjMsMTUgKzEyMywxNSBAQCBpbmxp
bmUgVVN0cmluZzo6UmVwICpjb252ZXJ0KGNvbnN0IGNoYXIqCiAgICAgcmV0dXJuIHI7IAogfQog
Ci1VU3RyaW5nOjpSZXAgKklkZW50aWZpZXI6OmFkZChjb25zdCBjaGFyICpjKQorUGFzc1JlZlB0
cjxVU3RyaW5nOjpSZXA+IElkZW50aWZpZXI6OmFkZChjb25zdCBjaGFyICpjKQogewogICAgIGlm
ICghYykKLSAgICAgICAgcmV0dXJuICZVU3RyaW5nOjpSZXA6Om51bGw7CisgICAgICAgIHJldHVy
biBwYXNzKCZVU3RyaW5nOjpSZXA6Om51bGwpOwogICAgIGludCBsZW5ndGggPSBzdHJsZW4oYyk7
CiAgICAgaWYgKGxlbmd0aCA9PSAwKQotICAgICAgICByZXR1cm4gJlVTdHJpbmc6OlJlcDo6ZW1w
dHk7CisgICAgICAgIHJldHVybiBwYXNzKCZVU3RyaW5nOjpSZXA6OmVtcHR5KTsKICAgICAKLSAg
ICByZXR1cm4gKmlkZW50aWZpZXJUYWJsZSgpLmluc2VydDxjb25zdCBjaGFyICosIGhhc2gsIEtK
Uzo6ZXF1YWwsIGNvbnZlcnQ+KGMpLmZpcnN0OworICAgIHJldHVybiBwYXNzKCppZGVudGlmaWVy
VGFibGUoKS5pbnNlcnQ8Y29uc3QgY2hhciAqLCBoYXNoLCBLSlM6OmVxdWFsLCBjb252ZXJ0Pihj
KS5maXJzdCk7CiB9CiAKIHN0cnVjdCBVQ2hhckJ1ZmZlciB7CkBAIC0xNjMsMjcgKzE2MywyNyBA
QCBpbmxpbmUgVVN0cmluZzo6UmVwICpjb252ZXJ0KGNvbnN0IFVDaGFyCiAgICAgcmV0dXJuIHI7
IAogfQogCi1VU3RyaW5nOjpSZXAgKklkZW50aWZpZXI6OmFkZChjb25zdCBVQ2hhciAqcywgaW50
IGxlbmd0aCkKK1Bhc3NSZWZQdHI8VVN0cmluZzo6UmVwPiBJZGVudGlmaWVyOjphZGQoY29uc3Qg
VUNoYXIgKnMsIGludCBsZW5ndGgpCiB7CiAgICAgaWYgKGxlbmd0aCA9PSAwKQotICAgICAgICBy
ZXR1cm4gJlVTdHJpbmc6OlJlcDo6ZW1wdHk7CisgICAgICAgIHJldHVybiBwYXNzKCZVU3RyaW5n
OjpSZXA6OmVtcHR5KTsKICAgICAKICAgICBVQ2hhckJ1ZmZlciBidWYgPSB7cywgbGVuZ3RofTsg
Ci0gICAgcmV0dXJuICppZGVudGlmaWVyVGFibGUoKS5pbnNlcnQ8VUNoYXJCdWZmZXIsIGhhc2gs
IEtKUzo6ZXF1YWwsIGNvbnZlcnQ+KGJ1ZikuZmlyc3Q7CisgICAgcmV0dXJuIHBhc3MoKmlkZW50
aWZpZXJUYWJsZSgpLmluc2VydDxVQ2hhckJ1ZmZlciwgaGFzaCwgS0pTOjplcXVhbCwgY29udmVy
dD4oYnVmKS5maXJzdCk7CiB9CiAKLVVTdHJpbmc6OlJlcCAqSWRlbnRpZmllcjo6YWRkKFVTdHJp
bmc6OlJlcCAqcikKK1Bhc3NSZWZQdHI8VVN0cmluZzo6UmVwPiBJZGVudGlmaWVyOjphZGQoVVN0
cmluZzo6UmVwICpyKQogewogICAgIGlmIChyLT5pc0lkZW50aWZpZXIpCi0gICAgICAgIHJldHVy
biByOworICAgICAgICByZXR1cm4gcGFzcyhyKTsKIAogICAgIGlmIChyLT5sZW4gPT0gMCkKLSAg
ICAgICAgcmV0dXJuICZVU3RyaW5nOjpSZXA6OmVtcHR5OworICAgICAgICByZXR1cm4gcGFzcygm
VVN0cmluZzo6UmVwOjplbXB0eSk7CiAKICAgICBVU3RyaW5nOjpSZXAgKnJlc3VsdCA9ICppZGVu
dGlmaWVyVGFibGUoKS5pbnNlcnQocikuZmlyc3Q7CiAgICAgaWYgKHJlc3VsdCA9PSByKQogICAg
ICAgICByLT5pc0lkZW50aWZpZXIgPSB0cnVlOwotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0
dXJuIHBhc3MocmVzdWx0KTsKIH0KIAogdm9pZCBJZGVudGlmaWVyOjpyZW1vdmUoVVN0cmluZzo6
UmVwICpyKQpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2lkZW50aWZpZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL2lkZW50aWZpZXIuaCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4yMQpkaWZmIC11IC1wIC1yMS4yMSBKYXZhU2NyaXB0Q29yZS9r
anMvaWRlbnRpZmllci5oCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvaWRlbnRpZmllci5oCTE5IERl
YyAyMDA1IDEwOjM4OjA3IC0wMDAwCTEuMjEKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9pZGVudGlm
aWVyLmgJMjAgRGVjIDIwMDUgMTI6MjE6MjQgLTAwMDAKQEAgLTc3LDkgKzc3LDkgQEAgbmFtZXNw
YWNlIEtKUyB7CiAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IElkZW50aWZpZXIgJmEs
IGNvbnN0IGNoYXIgKmIpCiAgICAgICAgICAgICB7IHJldHVybiBlcXVhbChhLl91c3RyaW5nLnJl
cCgpLCBiKTsgfQogICAgICAgICAKLSAgICAgICAgc3RhdGljIFVTdHJpbmc6OlJlcCAqYWRkKGNv
bnN0IGNoYXIgKik7Ci0gICAgICAgIHN0YXRpYyBVU3RyaW5nOjpSZXAgKmFkZChjb25zdCBVQ2hh
ciAqLCBpbnQgbGVuZ3RoKTsKLSAgICAgICAgc3RhdGljIFVTdHJpbmc6OlJlcCAqYWRkKFVTdHJp
bmc6OlJlcCAqKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VVN0cmluZzo6UmVwPiBhZGQo
Y29uc3QgY2hhciAqKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VVN0cmluZzo6UmVwPiBh
ZGQoY29uc3QgVUNoYXIgKiwgaW50IGxlbmd0aCk7CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFVTdHJpbmc6OlJlcD4gYWRkKFVTdHJpbmc6OlJlcCAqKTsKICAgICB9OwogICAgIAogI2lmICFL
SlNfSURFTlRJRklFUl9ISURFX0dMT0JBTFMKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9wcm9w
ZXJ0eV9tYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29y
ZS9ranMvcHJvcGVydHlfbWFwLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41NApkaWZmIC11
IC1wIC1yMS41NCBKYXZhU2NyaXB0Q29yZS9ranMvcHJvcGVydHlfbWFwLmNwcAotLS0gSmF2YVNj
cmlwdENvcmUva2pzL3Byb3BlcnR5X21hcC5jcHAJMTEgRGVjIDIwMDUgMDI6MDU6NDcgLTAwMDAJ
MS41NAorKysgSmF2YVNjcmlwdENvcmUva2pzL3Byb3BlcnR5X21hcC5jcHAJMjAgRGVjIDIwMDUg
MTI6MjE6MjQgLTAwMDAKQEAgLTYxNCwxMSArNjE0LDExIEBAIHZvaWQgUHJvcGVydHlNYXA6OmFk
ZFNwYXJzZUFycmF5UHJvcGVydGkKICNpZiBVU0VfU0lOR0xFX0VOVFJZCiAgICAgICAgIFVTdHJp
bmc6OlJlcCAqa2V5ID0gX3NpbmdsZUVudHJ5LmtleTsKICAgICAgICAgaWYgKGtleSkgewotICAg
ICAgICAgICAgVVN0cmluZyBrKGtleSk7CisgICAgICAgICAgICBVU3RyaW5nIGsocGFzcyhrZXkp
KTsKICAgICAgICAgICAgIGJvb2wgZml0c0luVUludDMyOwogICAgICAgICAgICAgay50b1VJbnQz
MigmZml0c0luVUludDMyKTsKICAgICAgICAgICAgIGlmIChmaXRzSW5VSW50MzIpCi0gICAgICAg
ICAgICAgICAgbGlzdC5hcHBlbmQoUmVmZXJlbmNlKGJhc2UsIElkZW50aWZpZXIoa2V5KSkpOwor
ICAgICAgICAgICAgICAgIGxpc3QuYXBwZW5kKFJlZmVyZW5jZShiYXNlLCBJZGVudGlmaWVyKHBh
c3Moa2V5KSkpKTsKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIHJldHVybjsKQEAgLTYyOSwx
MSArNjI5LDExIEBAIHZvaWQgUHJvcGVydHlNYXA6OmFkZFNwYXJzZUFycmF5UHJvcGVydGkKICAg
ICBmb3IgKGludCBpID0gMDsgaSAhPSBzaXplOyArK2kpIHsKICAgICAgICAgVVN0cmluZzo6UmVw
ICprZXkgPSBlbnRyaWVzW2ldLmtleTsKICAgICAgICAgaWYgKGtleSAmJiBrZXkgIT0gJlVTdHJp
bmc6OlJlcDo6bnVsbCkgewotICAgICAgICAgICAgVVN0cmluZyBrKGtleSk7CisgICAgICAgICAg
ICBVU3RyaW5nIGsocGFzcyhrZXkpKTsKICAgICAgICAgICAgIGJvb2wgZml0c0luVUludDMyOwog
ICAgICAgICAgICAgay50b1VJbnQzMigmZml0c0luVUludDMyKTsKICAgICAgICAgICAgIGlmIChm
aXRzSW5VSW50MzIpCi0gICAgICAgICAgICAgICAgbGlzdC5hcHBlbmQoUmVmZXJlbmNlKGJhc2Us
IElkZW50aWZpZXIoa2V5KSkpOworICAgICAgICAgICAgICAgIGxpc3QuYXBwZW5kKFJlZmVyZW5j
ZShiYXNlLCBJZGVudGlmaWVyKHBhc3Moa2V5KSkpKTsKICAgICAgICAgfQogICAgIH0KIH0KSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL2tqcy91c3RyaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL3VzdHJpbmcuY3BwLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjY1CmRpZmYgLXUgLXAgLXIxLjY1IEphdmFTY3JpcHRDb3JlL2tqcy91c3RyaW5nLmNw
cAotLS0gSmF2YVNjcmlwdENvcmUva2pzL3VzdHJpbmcuY3BwCTE2IERlYyAyMDA1IDIyOjQ4OjE5
IC0wMDAwCTEuNjUKKysrIEphdmFTY3JpcHRDb3JlL2tqcy91c3RyaW5nLmNwcAkyMCBEZWMgMjAw
NSAxMjoyMToyNSAtMDAwMApAQCAtMTk5LDYgKzE5OSw3IEBAIFBhc3NSZWZQdHI8VVN0cmluZzo6
UmVwPiBVU3RyaW5nOjpSZXA6OmMKICAgci0+Y2FwYWNpdHkgPSBsOwogICByLT51c2VkUHJlQ2Fw
YWNpdHkgPSAwOwogICByLT5wcmVDYXBhY2l0eSA9IDA7CisKICAgLy8gc3RlYWwgdGhlIHNpbmds
ZSByZWZlcmVuY2UgdGhpcyBSZXAgd2FzIGNyZWF0ZWQgd2l0aAogICByZXR1cm4gUGFzc1JlZlB0
cjxSZXA+OjphZG9wdChyKTsKIH0KQEAgLTIyOCw2ICsyMjksNyBAQCBQYXNzUmVmUHRyPFVTdHJp
bmc6OlJlcD4gVVN0cmluZzo6UmVwOjpjCiAgIHItPmNhcGFjaXR5ID0gMDsKICAgci0+dXNlZFBy
ZUNhcGFjaXR5ID0gMDsKICAgci0+cHJlQ2FwYWNpdHkgPSAwOworCiAgIC8vIHN0ZWFsIHRoZSBz
aW5nbGUgcmVmZXJlbmNlIHRoaXMgUmVwIHdhcyBjcmVhdGVkIHdpdGgKICAgcmV0dXJuIFBhc3NS
ZWZQdHI8UmVwPjo6YWRvcHQocik7CiB9CkBAIC00NTcsNyArNDU5LDcgQEAgVVN0cmluZzo6VVN0
cmluZyhjb25zdCBVU3RyaW5nICZhLCBjb25zdAogICAgIFVTdHJpbmcgeChhKTsKICAgICB4LmV4
cGFuZENhcGFjaXR5KGFPZmZzZXQgKyBsZW5ndGgpOwogICAgIG1lbWNweShjb25zdF9jYXN0PFVD
aGFyICo+KGEuZGF0YSgpICsgYVNpemUpLCBiLmRhdGEoKSwgYlNpemUgKiBzaXplb2YoVUNoYXIp
KTsKLSAgICBtX3JlcCA9IFJlcDo6Y3JlYXRlKGEubV9yZXAsIDAsIGxlbmd0aCk7CisgICAgbV9y
ZXAgPSBSZXA6OmNyZWF0ZShwYXNzKGEubV9yZXApLCAwLCBsZW5ndGgpOwogICB9IGVsc2UgaWYg
KC1iT2Zmc2V0ID09IGIudXNlZFByZUNhcGFjaXR5KCkgJiYgNCAqIGJTaXplID49IGFTaXplKSB7
CiAgICAgLy8gLSBiIHJlYWNoZXMgdGhlIGJlZ2lubmluZyBvZiBpdHMgYnVmZmVyIHNvIGl0IHF1
YWxpZmllcyBmb3Igc2hhcmVkIHByZXBlbmQKICAgICAvLyAtIGFsc28sIGl0J3MgYXQgbGVhc3Qg
YSBxdWFydGVyIHRoZSBsZW5ndGggb2YgYSAtIHByZXBlbmRpbmcgdG8gYSBtdWNoIHNob3J0ZXIK
QEAgLTQ2NSw3ICs0NjcsNyBAQCBVU3RyaW5nOjpVU3RyaW5nKGNvbnN0IFVTdHJpbmcgJmEsIGNv
bnN0CiAgICAgVVN0cmluZyB5KGIpOwogICAgIHkuZXhwYW5kUHJlQ2FwYWNpdHkoLWJPZmZzZXQg
KyBhU2l6ZSk7CiAgICAgbWVtY3B5KGNvbnN0X2Nhc3Q8VUNoYXIgKj4oYi5kYXRhKCkgLSBhU2l6
ZSksIGEuZGF0YSgpLCBhU2l6ZSAqIHNpemVvZihVQ2hhcikpOwotICAgIG1fcmVwID0gUmVwOjpj
cmVhdGUoYi5tX3JlcCwgLWFTaXplLCBsZW5ndGgpOworICAgIG1fcmVwID0gUmVwOjpjcmVhdGUo
cGFzcyhiLm1fcmVwKSwgLWFTaXplLCBsZW5ndGgpOwogICB9IGVsc2UgewogICAgIC8vIGEgZG9l
cyBub3QgcXVhbGlmeSBmb3IgYXBwZW5kLCBhbmQgYiBkb2VzIG5vdCBxdWFsaWZ5IGZvciBwcmVw
ZW5kLCBnb3R0YSBtYWtlIGEgd2hvbGUgbmV3IHN0cmluZwogICAgIGludCBuZXdDYXBhY2l0eSA9
IGV4cGFuZGVkU2l6ZShsZW5ndGgsIDApOwpAQCAtNjgzLDcgKzY4NSw3IEBAIFVTdHJpbmcgJlVT
dHJpbmc6OmFwcGVuZChjb25zdCBVU3RyaW5nICYKICAgICAvLyB0aGlzIHJlYWNoZXMgdGhlIGVu
ZCBvZiB0aGUgYnVmZmVyIC0gZXh0ZW5kIGl0CiAgICAgZXhwYW5kQ2FwYWNpdHkodGhpc09mZnNl
dCArIGxlbmd0aCk7CiAgICAgbWVtY3B5KGNvbnN0X2Nhc3Q8VUNoYXIgKj4oZGF0YSgpICsgdGhp
c1NpemUpLCB0LmRhdGEoKSwgdFNpemUgKiBzaXplb2YoVUNoYXIpKTsKLSAgICBtX3JlcCA9IFJl
cDo6Y3JlYXRlKG1fcmVwLCAwLCBsZW5ndGgpOworICAgIG1fcmVwID0gUmVwOjpjcmVhdGUocGFz
cyhtX3JlcCksIDAsIGxlbmd0aCk7CiAgIH0gZWxzZSB7CiAgICAgLy8gdGhpcyBpcyBzaGFyZWQg
d2l0aCBzb21lb25lIHVzaW5nIG1vcmUgY2FwYWNpdHksIGdvdHRhIG1ha2UgYSB3aG9sZSBuZXcg
c3RyaW5nCiAgICAgaW50IG5ld0NhcGFjaXR5ID0gZXhwYW5kZWRTaXplKGxlbmd0aCwgMCk7CkBA
IC03MjQsNyArNzI2LDcgQEAgVVN0cmluZyAmVVN0cmluZzo6YXBwZW5kKGNvbnN0IGNoYXIgKnQp
CiAgICAgVUNoYXIgKmQgPSBjb25zdF9jYXN0PFVDaGFyICo+KGRhdGEoKSk7CiAgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCB0U2l6ZTsgKytpKQogICAgICAgZFt0aGlzU2l6ZStpXSA9IHRbaV07Ci0g
ICAgbV9yZXAgPSBSZXA6OmNyZWF0ZShtX3JlcCwgMCwgbGVuZ3RoKTsKKyAgICBtX3JlcCA9IFJl
cDo6Y3JlYXRlKHBhc3MobV9yZXApLCAwLCBsZW5ndGgpOwogICB9IGVsc2UgewogICAgIC8vIHRo
aXMgaXMgc2hhcmVkIHdpdGggc29tZW9uZSB1c2luZyBtb3JlIGNhcGFjaXR5LCBnb3R0YSBtYWtl
IGEgd2hvbGUgbmV3IHN0cmluZwogICAgIGludCBuZXdDYXBhY2l0eSA9IGV4cGFuZGVkU2l6ZShs
ZW5ndGgsIDApOwpAQCAtNzY0LDcgKzc2Niw3IEBAIFVTdHJpbmcgJlVTdHJpbmc6OmFwcGVuZCh1
bnNpZ25lZCBzaG9ydCAKICAgICBleHBhbmRDYXBhY2l0eSh0aGlzT2Zmc2V0ICsgbGVuZ3RoICsg
MSk7CiAgICAgVUNoYXIgKmQgPSBjb25zdF9jYXN0PFVDaGFyICo+KGRhdGEoKSk7CiAgICAgZFts
ZW5ndGhdID0gYzsKLSAgICBtX3JlcCA9IFJlcDo6Y3JlYXRlKG1fcmVwLCAwLCBsZW5ndGggKyAx
KTsKKyAgICBtX3JlcCA9IFJlcDo6Y3JlYXRlKHBhc3MobV9yZXApLCAwLCBsZW5ndGggKyAxKTsK
ICAgfSBlbHNlIHsKICAgICAvLyB0aGlzIGlzIHNoYXJlZCB3aXRoIHNvbWVvbmUgdXNpbmcgbW9y
ZSBjYXBhY2l0eSwgZ290dGEgbWFrZSBhIHdob2xlIG5ldyBzdHJpbmcKICAgICBpbnQgbmV3Q2Fw
YWNpdHkgPSBleHBhbmRlZFNpemUoKGxlbmd0aCArIDEpLCAwKTsKQEAgLTExMjAsNyArMTEyMiw3
IEBAIFVTdHJpbmcgVVN0cmluZzo6c3Vic3RyKGludCBwb3MsIGludCBsZW4KICAgaWYgKHBvcyA9
PSAwICYmIGxlbiA9PSBzKQogICAgIHJldHVybiAqdGhpczsKIAotICByZXR1cm4gVVN0cmluZyhS
ZXA6OmNyZWF0ZShtX3JlcCwgcG9zLCBsZW4pKTsKKyAgcmV0dXJuIFVTdHJpbmcoUmVwOjpjcmVh
dGUocGFzcyhtX3JlcCksIHBvcywgbGVuKSk7CiB9CiAKIHZvaWQgVVN0cmluZzo6Y29weUZvcldy
aXRpbmcoKQpJbmRleDogSmF2YVNjcmlwdENvcmUva3htbGNvcmUvUGFzc1JlZlB0ci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9reG1sY29yZS9QYXNzUmVm
UHRyLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZmIC11IC1wIC1yMS40IEphdmFTY3Jp
cHRDb3JlL2t4bWxjb3JlL1Bhc3NSZWZQdHIuaAotLS0gSmF2YVNjcmlwdENvcmUva3htbGNvcmUv
UGFzc1JlZlB0ci5oCTE5IERlYyAyMDA1IDIwOjQ4OjIzIC0wMDAwCTEuNAorKysgSmF2YVNjcmlw
dENvcmUva3htbGNvcmUvUGFzc1JlZlB0ci5oCTIwIERlYyAyMDA1IDEyOjIxOjI1IC0wMDAwCkBA
IC00NCw2ICs0NCw3IEBAIG5hbWVzcGFjZSBLWE1MQ29yZSB7CiAgICAgICAgIFBhc3NSZWZQdHIo
KSA6IG1fcHRyKDApIHt9CiAgICAgICAgIFBhc3NSZWZQdHIoVCAqcHRyKSA6IG1fcHRyKHB0cikg
eyBpZiAocHRyKSBwdHItPnJlZigpOyB9CiAgICAgICAgIFBhc3NSZWZQdHIoY29uc3QgUmVmUHRy
PFQ+JiBvKSA6IG1fcHRyKG8uZ2V0KCkpIHsgaWYgKFQgKnB0ciA9IG1fcHRyKSBwdHItPnJlZigp
OyB9CisgICAgICAgIFBhc3NSZWZQdHIoUGFzc1JlZlB0ciYgbykgOiBtX3B0cihvLnJlbGVhc2Uo
KSkge30KIAogICAgICAgICB+UGFzc1JlZlB0cigpIHsgaWYgKFQgKnB0ciA9IG1fcHRyKSBwdHIt
PmRlcmVmKCk7IH0KICAgICAgICAgCkBAIC04Myw3ICs4NCw3IEBAIG5hbWVzcGFjZSBLWE1MQ29y
ZSB7CiAgICAgICAgICAgICBtX3B0ciA9IHJlZi5tX3B0cjsKICAgICAgICAgICAgIHJldHVybiAq
dGhpczsKICAgICAgICAgfQotICAgICAgCisKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4K
ICAgICAgICAgb3BlcmF0b3IgUGFzc1JlZlB0cl9SZWY8VT4oKQogICAgICAgICB7IApAQCAtMTkw
LDEwICsxOTEsMjEgQEAgbmFtZXNwYWNlIEtYTUxDb3JlIHsKICAgICAgICAgcmV0dXJuIFBhc3NS
ZWZQdHI8VD46OmFkb3B0KGNvbnN0X2Nhc3Q8VCAqPihwLnJlbGVhc2UoKSkpOyAKICAgICB9CiAK
KyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFBhc3NSZWZQdHI8VD4gcGFzcyhUICpw
dHIpCisgICAgeworICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxUPihwdHIpOworICAgIH0KKwor
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgUGFzc1JlZlB0cjxUPiBwYXNzKFJlZlB0
cjxUPiBwdHIpCisgICAgeworICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxUPihwdHIpOworICAg
IH0KKwogfSAvLyBuYW1lc3BhY2UgS1hNTENvcmUKIAogdXNpbmcgS1hNTENvcmU6OlBhc3NSZWZQ
dHI7CiB1c2luZyBLWE1MQ29yZTo6c3RhdGljX3BvaW50ZXJfY2FzdDsKIHVzaW5nIEtYTUxDb3Jl
Ojpjb25zdF9wb2ludGVyX2Nhc3Q7Cit1c2luZyBLWE1MQ29yZTo6cGFzczsKIAogI2VuZGlmIC8v
IEtYTUxDT1JFX1BBU1NfUkVGX1BUUl9ICkluZGV4OiBKYXZhU2NyaXB0Q29yZS9reG1sY29yZS9S
ZWZQdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva3ht
bGNvcmUvUmVmUHRyLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNgpkaWZmIC11IC1wIC1yMS42
IEphdmFTY3JpcHRDb3JlL2t4bWxjb3JlL1JlZlB0ci5oCi0tLSBKYXZhU2NyaXB0Q29yZS9reG1s
Y29yZS9SZWZQdHIuaAkxOSBEZWMgMjAwNSAyMDo0ODoyMyAtMDAwMAkxLjYKKysrIEphdmFTY3Jp
cHRDb3JlL2t4bWxjb3JlL1JlZlB0ci5oCTIwIERlYyAyMDA1IDEyOjIxOjI1IC0wMDAwCkBAIC05
MCwxMiArOTAsOSBAQCBuYW1lc3BhY2UgS1hNTENvcmUgewogICAgIAogICAgIHRlbXBsYXRlIDxj
bGFzcyBUPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShQYXNzUmVmUHRy
PFQ+JiBvKSAKICAgICB7Ci0gICAgICAgIFQgKm9wdHIgPSBvLnJlbGVhc2UoKTsKLSAgICAgICAg
aWYgKG9wdHIpCi0gICAgICAgICAgICBvcHRyLT5yZWYoKTsKICAgICAgICAgaWYgKFQgKnB0ciA9
IG1fcHRyKQogICAgICAgICAgICAgcHRyLT5kZXJlZigpOwotICAgICAgICBtX3B0ciA9IG9wdHI7
CisgICAgICAgIG1fcHRyID0gby5yZWxlYXNlKCk7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAg
ICB9CiAKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9XZWJDb3JlL0NoYW5nZUxvZyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45CmRpZmYgLXUg
LXAgLXIxLjkgV2ViQ29yZS9DaGFuZ2VMb2cKLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCTIwIERlYyAy
MDA1IDA5OjMwOjIzIC0wMDAwCTEuOQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJMjAgRGVjIDIwMDUg
MTI6MjE6MjcgLTAwMDAKQEAgLTEsMyArMSwxMyBAQAorMjAwNS0xMi0yMCAgTWFjaWVqIFN0YWNo
b3dpYWsgIDxtanNAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gY2hhbmdlIGFuIGFzc2lnbm1lbnQgdG8gYSBjb250cnVjdG9yIGRl
Y2xhcmF0aW9uIHRvIGJ1aWxkIHdpdGggUGFzc1JlZlB0cgorCWxlYWsgZml4IGNoYW5nZXMKKwor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlSW1wbC5jcHA6CisgICAgICAgIChT
VkdUcmFuc2Zvcm1hYmxlSW1wbDo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUpOgorCiAyMDA1LTEy
LTIwICBFcmljIFNlaWRlbCAgPGVzZWlkZWxAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IG1qcy4KSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGVJbXBsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVHJh
bnNmb3JtYWJsZUltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkKZGlmZiAtdSAtcCAt
cjEuOSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlSW1wbC5jcHAKLS0tIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGVJbXBsLmNwcAkxMyBEZWMgMjAwNSAyMToyNTox
MyAtMDAwMAkxLjkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGVJbXBsLmNw
cAkyMCBEZWMgMjAwNSAxMjoyMToyOCAtMDAwMApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFNWR1Ry
YW5zZm9ybWFibGVJbXBsOjpwYXJzZVRyYW5zZm9yCiAgICAgICAgICAgICBzdWJ0cmFuc2Zvcm1b
MF0gPSBzdWJ0cmFuc2Zvcm1bMF0ucmlnaHQoc3VidHJhbnNmb3JtWzBdLmxlbmd0aCgpIC0gMSk7
CiAgICAgICAgIH0KIAotICAgICAgICBQYXNzUmVmUHRyPFNWR1RyYW5zZm9ybUltcGw+IHQgPSBu
ZXcgU1ZHVHJhbnNmb3JtSW1wbCgpOworICAgICAgICBQYXNzUmVmUHRyPFNWR1RyYW5zZm9ybUlt
cGw+IHQobmV3IFNWR1RyYW5zZm9ybUltcGwoKSk7CiAKICAgICAgICAgaWYoc3VidHJhbnNmb3Jt
WzBdID09IFFTdHJpbmc6OmZyb21MYXRpbjEoInJvdGF0ZSIpKQogICAgICAgICB7Cg==
</data>
<flag name="review"
          id="1050"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>