<?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>27408</bug_id>
          
          <creation_ts>2009-07-18 01:13:32 -0700</creation_ts>
          <short_desc>[V8] Move event listener methods from V8Proxy to V8EventListenerList</short_desc>
          <delta_ts>2009-07-18 08:05:20 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>132880</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-18 01:13:32 -0700</bug_when>
    <thetext>These methods really belong in one place.  Duplicated code sucks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132885</commentid>
    <comment_count>1</comment_count>
      <attachid>33017</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-18 01:39:54 -0700</bug_when>
    <thetext>Created attachment 33017
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132887</commentid>
    <comment_count>2</comment_count>
      <attachid>33018</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-18 01:45:39 -0700</bug_when>
    <thetext>Created attachment 33018
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132909</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-18 08:05:20 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/bindings/v8/V8EventListenerList.cpp
	M	WebCore/bindings/v8/V8EventListenerList.h
	M	WebCore/bindings/v8/V8ObjectEventListener.cpp
	M	WebCore/bindings/v8/V8Proxy.cpp
	M	WebCore/bindings/v8/V8Proxy.h
Committed r46091
	M	WebCore/ChangeLog
	M	WebCore/bindings/v8/V8Proxy.h
	M	WebCore/bindings/v8/V8ObjectEventListener.cpp
	M	WebCore/bindings/v8/V8Proxy.cpp
	M	WebCore/bindings/v8/V8EventListenerList.h
	M	WebCore/bindings/v8/V8EventListenerList.cpp
r46091 = 93b96c980acbb736a206f185a1e4d85be139a0f5 (trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
http://trac.webkit.org/changeset/46091</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33017</attachid>
            <date>2009-07-18 01:39:54 -0700</date>
            <delta_ts>2009-07-18 01:45:32 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-27408-20090718013953.patch</filename>
            <type>text/plain</type>
            <size>9744</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvVjhFdmVudExpc3RlbmVyTGlzdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9WOEV2ZW50TGlzdGVuZXJMaXN0LmNwcAkocmV2
aXNpb24gNDYwMDUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RXZlbnRMaXN0ZW5lckxpc3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODIsNCArMTgyLDE0IEBAIFY4RXZlbnRMaXN0ZW5lciog
VjhFdmVudExpc3RlbmVyTGlzdDo6ZmkKICAgICByZXR1cm4gMDsKIH0KIAorUGFzc1JlZlB0cjxW
OEV2ZW50TGlzdGVuZXI+IFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRXcmFwcGVyKHY4OjpMb2Nh
bDx2ODo6VmFsdWU+IG9iamVjdCwgYm9vbCBpc0F0dHJpYnV0ZSkKK3sKKyAgICBBU1NFUlQodjg6
OkNvbnRleHQ6OkluQ29udGV4dCgpKTsKKyAgICBpZiAoIW9iamVjdC0+SXNPYmplY3QoKSkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBGSVhNRTogU2hvdWxkIHRoaXMgYmUgdjg6OkxvY2Fs
PHY4OjpPYmplY3Q+OjpDYXN0IGluc3RlYWQ/CisgICAgcmV0dXJuIGZpbmQob2JqZWN0LT5Ub09i
amVjdCgpLCBpc0F0dHJpYnV0ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvdjgvVjhFdmVudExpc3RlbmVyTGlzdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvdjgvVjhFdmVudExpc3RlbmVyTGlzdC5oCShyZXZpc2lvbiA0NjAw
NSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhFdmVudExpc3RlbmVyTGlzdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw3ICszNSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogCisjaW5jbHVkZSAiUGFzc1JlZlB0ci5oIgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CisgICAgY2xhc3MgRnJhbWU7CiAgICAgY2xhc3MgVjhFdmVudExpc3RlbmVy
OwogICAgIGNsYXNzIFY4RXZlbnRMaXN0ZW5lckxpc3RJdGVyYXRvcjsKIApAQCAtNjcsNiArNzAs
MTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGNsZWFyKCk7CiAgICAgICAg
IHNpemVfdCBzaXplKCkgeyByZXR1cm4gbV90YWJsZS5zaXplKCk7IH0KIAorICAgICAgICBQYXNz
UmVmUHRyPFY4RXZlbnRMaXN0ZW5lcj4gZmluZFdyYXBwZXIodjg6OkxvY2FsPHY4OjpWYWx1ZT4s
IGJvb2wgaXNBdHRyaWJ1dGUpOworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyVHlw
ZT4KKyAgICAgICAgUGFzc1JlZlB0cjxWOEV2ZW50TGlzdGVuZXI+IGZpbmRPckNyZWF0ZVdyYXBw
ZXIoRnJhbWUqLCB2ODo6TG9jYWw8djg6OlZhbHVlPiwgYm9vbCBpc0F0dHJpYnV0ZSk7CisKICAg
ICBwcml2YXRlOgogICAgICAgICBMaXN0ZW5lck11bHRpTWFwIG1fdGFibGU7CiAKQEAgLTkzLDYg
KzEwMCwyNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHNpemVfdCBtX3ZlY3Rvcklu
ZGV4OwogICAgIH07CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyVHlwZT4KKyAgICBQ
YXNzUmVmUHRyPFY4RXZlbnRMaXN0ZW5lcj4gVjhFdmVudExpc3RlbmVyTGlzdDo6ZmluZE9yQ3Jl
YXRlV3JhcHBlcihGcmFtZSogZnJhbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IG9iamVjdCwgYm9v
bCBpc0F0dHJpYnV0ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVCh2ODo6Q29udGV4dDo6SW5Db250
ZXh0KCkpOworICAgICAgICBpZiAoIW9iamVjdC0+SXNPYmplY3QoKSkKKyAgICAgICAgICAgIHJl
dHVybiAwOworCisgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgdGhpcyBiZSB2ODo6TG9jYWw8djg6
Ok9iamVjdD46OkNhc3QgaW5zdGVhZD8KKyAgICAgICAgVjhFdmVudExpc3RlbmVyKiB3cmFwcGVy
ID0gZmluZChvYmplY3QtPlRvT2JqZWN0KCksIGlzQXR0cmlidXRlKTsKKyAgICAgICAgaWYgKHdy
YXBwZXIpCisgICAgICAgICAgICByZXR1cm4gd3JhcHBlcjsKKworICAgICAgICAvLyBDcmVhdGUg
YSBuZXcgb25lLCBhbmQgYWRkIHRvIGNhY2hlLgorICAgICAgICBSZWZQdHI8V3JhcHBlclR5cGU+
IG5ld0xpc3RlbmVyID0gV3JhcHBlclR5cGU6OmNyZWF0ZShmcmFtZSwgdjg6OkxvY2FsPHY4OjpP
YmplY3Q+OjpDYXN0KG9iamVjdCksIGlzQXR0cmlidXRlKTsKKyAgICAgICAgYWRkKG5ld0xpc3Rl
bmVyLmdldCgpKTsKKworICAgICAgICByZXR1cm4gbmV3TGlzdGVuZXI7CisgICAgfTsKKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVjhFdmVudExpc3RlbmVyTGlzdF9oCklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4T2JqZWN0RXZlbnRMaXN0ZW5lci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9WOE9iamVjdEV2ZW50TGlzdGVuZXIuY3BwCShy
ZXZpc2lvbiA0NjAwNSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhPYmplY3RFdmVudExpc3Rl
bmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsMjUgQEAgc3RhdGljIHZvaWQgd2Vh
a09iamVjdEV2ZW50TGlzdGVuZXJDYWxsYgogICAgIGxpc3RlbmVyLT5kaXNwb3NlTGlzdGVuZXJP
YmplY3QoKTsKIH0KIAorLy8gT2JqZWN0IGV2ZW50IGxpc3RlbmVycyAoc3VjaCBhcyBYbWxIdHRw
UmVxdWVzdCBhbmQgTWVzc2FnZVBvcnQpIGFyZQorLy8gZGlmZmVyZW50IGZyb20gbGlzdGVuZXJz
IG9uIERPTSBub2Rlcy4gQW4gb2JqZWN0IGV2ZW50IGxpc3RlbmVyIHdyYXBwZXIKKy8vIG9ubHkg
aG9sZHMgYSB3ZWFrIHJlZmVyZW5jZSB0byB0aGUgSlMgZnVuY3Rpb24uIEEgc3Ryb25nIHJlZmVy
ZW5jZSBjYW4KKy8vIGNyZWF0ZSBhIGN5Y2xlLgorLy8KKy8vIFRoZSBsaWZldGltZSBvZiB0aGVz
ZSBvYmplY3RzIGlzIGJvdW5kZWQgYnkgdGhlIGxpZmUgdGltZSBvZiBpdHMgSlMKKy8vIHdyYXBw
ZXIuIFNvIHdlIGNhbiBjcmVhdGUgYSBoaWRkZW4gcmVmZXJlbmNlIGZyb20gdGhlIEpTIHdyYXBw
ZXIgdG8KKy8vIHRvIGl0cyBKUyBmdW5jdGlvbi4KKy8vCisvLyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKG1hcCkKKy8vICAgICAgICAgICAgICBYSFIgICAgICA8LS0tLS0tLS0tLSAgSlNfd3Jh
cHBlcgorLy8gICAgICAgICAgICAgICB8ICAgICAgICAgICAgIChoaWRkZW4pIDogIF4KKy8vICAg
ICAgICAgICAgICAgViAgICAgICAgICAgICAgICAgICAgICBWICA6IChtYXkgcmVhY2hhYmxlIGJ5
IGNsb3N1cmUpCisvLyAgICAgICAgICAgVjhfbGlzdGVuZXIgIC0tLS0tLS0tPiBKU19mdW5jdGlv
bgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgKHdlYWspICA8LS0gbWF5IGNyZWF0ZSBhIGN5
Y2xlIGlmIGl0IGlzIHN0cm9uZworLy8KKy8vIFRoZSBwZXJzaXN0ZW50IHJlZmVyZW5jZSBpcyBt
YWRlIHdlYWsgaW4gdGhlIGNvbnN0cnVjdG9yCisvLyBvZiBWOE9iamVjdEV2ZW50TGlzdGVuZXIu
CisKIFY4T2JqZWN0RXZlbnRMaXN0ZW5lcjo6VjhPYmplY3RFdmVudExpc3RlbmVyKEZyYW1lKiBm
cmFtZSwgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlzSW5saW5lKQogICAg
IDogVjhFdmVudExpc3RlbmVyKGZyYW1lLCBsaXN0ZW5lciwgaXNJbmxpbmUpCiB7CkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhQcm94eS5jcHAJKHJldmlzaW9uIDQ2MDA1KQorKysgV2ViQ29yZS9iaW5kaW5n
cy92OC9WOFByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYxLDEwMCArMzYxLDM0IEBAIHZv
aWQgVjhQcm94eTo6ZGVzdHJveUdsb2JhbCgpCiAgICAgfQogfQogCi0KLS8vIEV2ZW50IGxpc3Rl
bmVycwotCi1zdGF0aWMgVjhFdmVudExpc3RlbmVyKiBmaW5kRXZlbnRMaXN0ZW5lckluTGlzdChW
OEV2ZW50TGlzdGVuZXJMaXN0JiBsaXN0LCB2ODo6TG9jYWw8djg6OlZhbHVlPiBsaXN0ZW5lciwg
Ym9vbCBpc0lubGluZSkKLXsKLSAgICBBU1NFUlQodjg6OkNvbnRleHQ6OkluQ29udGV4dCgpKTsK
LQotICAgIGlmICghbGlzdGVuZXItPklzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0g
ICAgcmV0dXJuIGxpc3QuZmluZChsaXN0ZW5lci0+VG9PYmplY3QoKSwgaXNJbmxpbmUpOwotfQot
Ci0vLyBGaW5kIGFuIGV4aXN0aW5nIHdyYXBwZXIgZm9yIGEgSlMgZXZlbnQgbGlzdGVuZXIgaW4g
dGhlIG1hcC4KLVBhc3NSZWZQdHI8VjhFdmVudExpc3RlbmVyPiBWOFByb3h5OjpmaW5kVjhFdmVu
dExpc3RlbmVyKHY4OjpMb2NhbDx2ODo6VmFsdWU+IGxpc3RlbmVyLCBib29sIGlzSW5saW5lKQor
UGFzc1JlZlB0cjxWOEV2ZW50TGlzdGVuZXI+IFY4UHJveHk6OmZpbmRWOEV2ZW50TGlzdGVuZXIo
djg6OkxvY2FsPHY4OjpWYWx1ZT4gb2JqZWN0LCBib29sIGlzQXR0cmlidXRlKQogewotICAgIHJl
dHVybiBmaW5kRXZlbnRMaXN0ZW5lckluTGlzdChtX2V2ZW50TGlzdGVuZXJzLCBsaXN0ZW5lciwg
aXNJbmxpbmUpOwotfQotCi1QYXNzUmVmUHRyPFY4RXZlbnRMaXN0ZW5lcj4gVjhQcm94eTo6Zmlu
ZE9yQ3JlYXRlVjhFdmVudExpc3RlbmVyKHY4OjpMb2NhbDx2ODo6VmFsdWU+IG9iamVjdCwgYm9v
bCBpc0lubGluZSkKLXsKLSAgICBBU1NFUlQodjg6OkNvbnRleHQ6OkluQ29udGV4dCgpKTsKLQot
ICAgIGlmICghb2JqZWN0LT5Jc09iamVjdCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIFY4
RXZlbnRMaXN0ZW5lciogd3JhcHBlciA9IGZpbmRFdmVudExpc3RlbmVySW5MaXN0KG1fZXZlbnRM
aXN0ZW5lcnMsIG9iamVjdCwgaXNJbmxpbmUpOwotICAgIGlmICh3cmFwcGVyKQotICAgICAgICBy
ZXR1cm4gd3JhcHBlcjsKLQotICAgIC8vIENyZWF0ZSBhIG5ldyBvbmUsIGFuZCBhZGQgdG8gY2Fj
aGUuCi0gICAgUmVmUHRyPFY4RXZlbnRMaXN0ZW5lcj4gbmV3TGlzdGVuZXIgPSBWOEV2ZW50TGlz
dGVuZXI6OmNyZWF0ZShtX2ZyYW1lLCB2ODo6TG9jYWw8djg6Ok9iamVjdD46OkNhc3Qob2JqZWN0
KSwgaXNJbmxpbmUpOwotICAgIG1fZXZlbnRMaXN0ZW5lcnMuYWRkKG5ld0xpc3RlbmVyLmdldCgp
KTsKLQotICAgIHJldHVybiBuZXdMaXN0ZW5lcjsKKyAgICByZXR1cm4gbV9ldmVudExpc3RlbmVy
cy5maW5kV3JhcHBlcihvYmplY3QsIGlzQXR0cmlidXRlKTsKIH0KIAotLy8gT2JqZWN0IGV2ZW50
IGxpc3RlbmVycyAoc3VjaCBhcyBYbWxIdHRwUmVxdWVzdCBhbmQgTWVzc2FnZVBvcnQpIGFyZQot
Ly8gZGlmZmVyZW50IGZyb20gbGlzdGVuZXJzIG9uIERPTSBub2Rlcy4gQW4gb2JqZWN0IGV2ZW50
IGxpc3RlbmVyIHdyYXBwZXIKLS8vIG9ubHkgaG9sZHMgYSB3ZWFrIHJlZmVyZW5jZSB0byB0aGUg
SlMgZnVuY3Rpb24uIEEgc3Ryb25nIHJlZmVyZW5jZSBjYW4KLS8vIGNyZWF0ZSBhIGN5Y2xlLgot
Ly8KLS8vIFRoZSBsaWZldGltZSBvZiB0aGVzZSBvYmplY3RzIGlzIGJvdW5kZWQgYnkgdGhlIGxp
ZmUgdGltZSBvZiBpdHMgSlMKLS8vIHdyYXBwZXIuIFNvIHdlIGNhbiBjcmVhdGUgYSBoaWRkZW4g
cmVmZXJlbmNlIGZyb20gdGhlIEpTIHdyYXBwZXIgdG8KLS8vIHRvIGl0cyBKUyBmdW5jdGlvbi4K
LS8vCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcCkKLS8vICAgICAgICAgICAgICBY
SFIgICAgICA8LS0tLS0tLS0tLSAgSlNfd3JhcHBlcgotLy8gICAgICAgICAgICAgICB8ICAgICAg
ICAgICAgIChoaWRkZW4pIDogIF4KLS8vICAgICAgICAgICAgICAgViAgICAgICAgICAgICAgICAg
ICAgICBWICA6IChtYXkgcmVhY2hhYmxlIGJ5IGNsb3N1cmUpCi0vLyAgICAgICAgICAgVjhfbGlz
dGVuZXIgIC0tLS0tLS0tPiBKU19mdW5jdGlvbgotLy8gICAgICAgICAgICAgICAgICAgICAgICAg
KHdlYWspICA8LS0gbWF5IGNyZWF0ZSBhIGN5Y2xlIGlmIGl0IGlzIHN0cm9uZwotLy8KLS8vIFRo
ZSBwZXJzaXN0ZW50IHJlZmVyZW5jZSBpcyBtYWRlIHdlYWsgaW4gdGhlIGNvbnN0cnVjdG9yCi0v
LyBvZiBWOE9iamVjdEV2ZW50TGlzdGVuZXIuCi0KLVBhc3NSZWZQdHI8VjhFdmVudExpc3RlbmVy
PiBWOFByb3h5OjpmaW5kT2JqZWN0RXZlbnRMaXN0ZW5lciggdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
bGlzdGVuZXIsIGJvb2wgaXNJbmxpbmUpCitQYXNzUmVmUHRyPFY4RXZlbnRMaXN0ZW5lcj4gVjhQ
cm94eTo6ZmluZE9yQ3JlYXRlVjhFdmVudExpc3RlbmVyKHY4OjpMb2NhbDx2ODo6VmFsdWU+IG9i
amVjdCwgYm9vbCBpc0F0dHJpYnV0ZSkKIHsKLSAgICByZXR1cm4gZmluZEV2ZW50TGlzdGVuZXJJ
bkxpc3QobV94aHJMaXN0ZW5lcnMsIGxpc3RlbmVyLCBpc0lubGluZSk7CisgICAgcmV0dXJuIG1f
ZXZlbnRMaXN0ZW5lcnMuZmluZE9yQ3JlYXRlV3JhcHBlcjxWOEV2ZW50TGlzdGVuZXI+KG1fZnJh
bWUsIG9iamVjdCwgaXNBdHRyaWJ1dGUpOwogfQogCi1QYXNzUmVmUHRyPFY4RXZlbnRMaXN0ZW5l
cj4gVjhQcm94eTo6ZmluZE9yQ3JlYXRlT2JqZWN0RXZlbnRMaXN0ZW5lcih2ODo6TG9jYWw8djg6
OlZhbHVlPiBvYmplY3QsIGJvb2wgaXNJbmxpbmUpCit2b2lkIFY4UHJveHk6OnJlbW92ZVY4RXZl
bnRMaXN0ZW5lcihWOEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKQogewotICAgIEFTU0VSVCh2ODo6
Q29udGV4dDo6SW5Db250ZXh0KCkpOwotCi0gICAgaWYgKCFvYmplY3QtPklzT2JqZWN0KCkpCi0g
ICAgICAgIHJldHVybiAwOwotCi0gICAgVjhFdmVudExpc3RlbmVyKiB3cmFwcGVyID0gZmluZEV2
ZW50TGlzdGVuZXJJbkxpc3QobV94aHJMaXN0ZW5lcnMsIG9iamVjdCwgaXNJbmxpbmUpOwotICAg
IGlmICh3cmFwcGVyKQotICAgICAgICByZXR1cm4gd3JhcHBlcjsKLQotICAgIC8vIENyZWF0ZSBh
IG5ldyBvbmUsIGFuZCBhZGQgdG8gY2FjaGUuCi0gICAgUmVmUHRyPFY4RXZlbnRMaXN0ZW5lcj4g
bmV3TGlzdGVuZXIgPSBWOE9iamVjdEV2ZW50TGlzdGVuZXI6OmNyZWF0ZShtX2ZyYW1lLCB2ODo6
TG9jYWw8djg6Ok9iamVjdD46OkNhc3Qob2JqZWN0KSwgaXNJbmxpbmUpOwotICAgIG1feGhyTGlz
dGVuZXJzLmFkZChuZXdMaXN0ZW5lci5nZXQoKSk7Ci0KLSAgICByZXR1cm4gbmV3TGlzdGVuZXIu
cmVsZWFzZSgpOworICAgIG1fZXZlbnRMaXN0ZW5lcnMucmVtb3ZlKGxpc3RlbmVyKTsKIH0KIAot
Ci1zdGF0aWMgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyRnJvbUxpc3QoVjhFdmVudExpc3RlbmVy
TGlzdCYgbGlzdCwgVjhFdmVudExpc3RlbmVyKiBsaXN0ZW5lcikKK1Bhc3NSZWZQdHI8VjhFdmVu
dExpc3RlbmVyPiBWOFByb3h5OjpmaW5kT2JqZWN0RXZlbnRMaXN0ZW5lciggdjg6OkxvY2FsPHY4
OjpWYWx1ZT4gb2JqZWN0LCBib29sIGlzQXR0cmlidXRlKQogewotICAgIGxpc3QucmVtb3ZlKGxp
c3RlbmVyKTsKKyAgICByZXR1cm4gbV94aHJMaXN0ZW5lcnMuZmluZFdyYXBwZXIob2JqZWN0LCBp
c0F0dHJpYnV0ZSk7CiB9CiAKLXZvaWQgVjhQcm94eTo6cmVtb3ZlVjhFdmVudExpc3RlbmVyKFY4
RXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpCitQYXNzUmVmUHRyPFY4RXZlbnRMaXN0ZW5lcj4gVjhQ
cm94eTo6ZmluZE9yQ3JlYXRlT2JqZWN0RXZlbnRMaXN0ZW5lcih2ODo6TG9jYWw8djg6OlZhbHVl
PiBvYmplY3QsIGJvb2wgaXNBdHRyaWJ1dGUpCiB7Ci0gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lckZy
b21MaXN0KG1fZXZlbnRMaXN0ZW5lcnMsIGxpc3RlbmVyKTsKKyAgICByZXR1cm4gbV94aHJMaXN0
ZW5lcnMuZmluZE9yQ3JlYXRlV3JhcHBlcjxWOE9iamVjdEV2ZW50TGlzdGVuZXI+KG1fZnJhbWUs
IG9iamVjdCwgaXNBdHRyaWJ1dGUpOwogfQogCi0KIHZvaWQgVjhQcm94eTo6cmVtb3ZlT2JqZWN0
RXZlbnRMaXN0ZW5lcihWOE9iamVjdEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKQogewotICAgIHJl
bW92ZUV2ZW50TGlzdGVuZXJGcm9tTGlzdChtX3hockxpc3RlbmVycywgbGlzdGVuZXIpOworICAg
IG1feGhyTGlzdGVuZXJzLnJlbW92ZShsaXN0ZW5lcik7CiB9CiAKIHN0YXRpYyB2b2lkIGRpc2Nv
bm5lY3RFdmVudExpc3RlbmVyc0luTGlzdChWOEV2ZW50TGlzdGVuZXJMaXN0JiBsaXN0KQpAQCAt
NDY3LDE0ICs0MDEsMTIgQEAgc3RhdGljIHZvaWQgZGlzY29ubmVjdEV2ZW50TGlzdGVuZXJzSW5M
aQogICAgIGxpc3QuY2xlYXIoKTsKIH0KIAotCiB2b2lkIFY4UHJveHk6OmRpc2Nvbm5lY3RFdmVu
dExpc3RlbmVycygpCiB7CiAgICAgZGlzY29ubmVjdEV2ZW50TGlzdGVuZXJzSW5MaXN0KG1fZXZl
bnRMaXN0ZW5lcnMpOwogICAgIGRpc2Nvbm5lY3RFdmVudExpc3RlbmVyc0luTGlzdChtX3hockxp
c3RlbmVycyk7CiB9CiAKLQogdjg6OkhhbmRsZTx2ODo6U2NyaXB0PiBWOFByb3h5Ojpjb21waWxl
U2NyaXB0KHY4OjpIYW5kbGU8djg6OlN0cmluZz4gY29kZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSwgaW50IGJhc2VMaW5lKQogewogICAgIGNvbnN0IHVpbnQxNl90KiBmaWxlTmFtZVN0cmluZyA9
IGZyb21XZWJDb3JlU3RyaW5nKGZpbGVOYW1lKTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvdjgv
VjhQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCShy
ZXZpc2lvbiA0NjAwNSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xOTYsMTQgKzE5NiwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAg
ICAgYm9vbCBpc0VuYWJsZWQoKTsKIAotICAgICAgICAvLyBGaW5kL0NyZWF0ZS9SZW1vdmUgZXZl
bnQgbGlzdGVuZXIgd3JhcHBlcnMuCisgICAgICAgIC8vIEZJWE1FOiBSZXBsYWNlIHRoZXNlIEFQ
SXMgd2l0aCBhIGdldHRlciBmb3IgbV9ldmVudExpc3RlbmVycwogICAgICAgICBQYXNzUmVmUHRy
PFY4RXZlbnRMaXN0ZW5lcj4gZmluZFY4RXZlbnRMaXN0ZW5lcih2ODo6TG9jYWw8djg6OlZhbHVl
PiBsaXN0ZW5lciwgYm9vbCBpc0h0bWwpOwogICAgICAgICBQYXNzUmVmUHRyPFY4RXZlbnRMaXN0
ZW5lcj4gZmluZE9yQ3JlYXRlVjhFdmVudExpc3RlbmVyKHY4OjpMb2NhbDx2ODo6VmFsdWU+IGxp
c3RlbmVyLCBib29sIGlzSHRtbCk7CisgICAgICAgIHZvaWQgcmVtb3ZlVjhFdmVudExpc3RlbmVy
KFY4RXZlbnRMaXN0ZW5lciopOwogCisgICAgICAgIC8vIEZJWE1FOiBSZXBsYWNlIHRoZXNlIEFQ
SXMgd2l0aCBhIGdldHRlciBmb3IgbV94aHJMaXN0ZW5lcnMKICAgICAgICAgUGFzc1JlZlB0cjxW
OEV2ZW50TGlzdGVuZXI+IGZpbmRPYmplY3RFdmVudExpc3RlbmVyKHY4OjpMb2NhbDx2ODo6VmFs
dWU+IGxpc3RlbmVyLCBib29sIGlzSHRtbCk7CiAgICAgICAgIFBhc3NSZWZQdHI8VjhFdmVudExp
c3RlbmVyPiBmaW5kT3JDcmVhdGVPYmplY3RFdmVudExpc3RlbmVyKHY4OjpMb2NhbDx2ODo6VmFs
dWU+IGxpc3RlbmVyLCBib29sIGlzSHRtbCk7Ci0KLSAgICAgICAgdm9pZCByZW1vdmVWOEV2ZW50
TGlzdGVuZXIoVjhFdmVudExpc3RlbmVyKik7CiAgICAgICAgIHZvaWQgcmVtb3ZlT2JqZWN0RXZl
bnRMaXN0ZW5lcihWOE9iamVjdEV2ZW50TGlzdGVuZXIqKTsKIAogI2lmIEVOQUJMRShTVkcp
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33018</attachid>
            <date>2009-07-18 01:45:39 -0700</date>
            <delta_ts>2009-07-18 07:30:01 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-27408-20090718014537.patch</filename>
            <type>text/plain</type>
            <size>11177</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjA4OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDktMDctMTggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbVjhd
IE1vdmUgZXZlbnQgbGlzdGVuZXIgbWV0aG9kcyBmcm9tIFY4UHJveHkgdG8gVjhFdmVudExpc3Rl
bmVyTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mjc0MDgKKworICAgICAgICBNb3ZlIHNvbWUgZXZlbnQgbGlzdGVuZXIgY29kZSBvdXQgb2YgVjhQ
cm94eSBhbmQgaW50byB0aGUgZXZlbnQKKyAgICAgICAgbGlzdGVuZXIgbGlzdC4KKworICAgICAg
ICBJJ2QgbGlrZSB0byByZW1vdmUgdGhlc2UgbWV0aG9kcyBmcm9tIFY4UHJveHkgZW50aXJlbHkg
YW5kIGp1c3QgZXhwb3NlCisgICAgICAgIGdldHRlcnMgZm9yIHRoZSBsaXN0cyB0aGVtc2VsdmVz
LCBidXQgSSdsbCBkbyB0aGF0IGluIGEgZm9sbG93IHVwCisgICAgICAgIHBhdGNoLgorCisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhFdmVudExpc3RlbmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpWOEV2ZW50TGlzdGVuZXJMaXN0OjpmaW5kV3JhcHBlcik6CisgICAgICAgICogYmluZGlu
Z3MvdjgvVjhFdmVudExpc3RlbmVyTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6VjhFdmVudExp
c3RlbmVyTGlzdDo6ZmluZE9yQ3JlYXRlV3JhcHBlcik6CisgICAgICAgICogYmluZGluZ3Mvdjgv
VjhPYmplY3RFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OmZpbmRWOEV2ZW50TGlzdGVuZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6VjhQcm94eTo6ZmluZE9yQ3JlYXRlVjhFdmVudExpc3RlbmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OnJlbW92ZVY4RXZlbnRMaXN0ZW5lcik6CisgICAg
ICAgIChXZWJDb3JlOjpWOFByb3h5OjpmaW5kT2JqZWN0RXZlbnRMaXN0ZW5lcik6CisgICAgICAg
IChXZWJDb3JlOjpWOFByb3h5OjpmaW5kT3JDcmVhdGVPYmplY3RFdmVudExpc3RlbmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OnJlbW92ZU9iamVjdEV2ZW50TGlzdGVuZXIpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuaDoKKwogMjAwOS0wNy0xOCAgSmVyZW15IE9ybG93
ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBBZGFt
IEJhcnRoLgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9WOEV2ZW50TGlzdGVuZXJMaXN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RXZlbnRMaXN0ZW5lckxpc3Qu
Y3BwCShyZXZpc2lvbiA0NjAwNSkKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhFdmVudExpc3Rl
bmVyTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Miw0ICsxODIsMTQgQEAgVjhFdmVudExp
c3RlbmVyKiBWOEV2ZW50TGlzdGVuZXJMaXN0OjpmaQogICAgIHJldHVybiAwOwogfQogCitQYXNz
UmVmUHRyPFY4RXZlbnRMaXN0ZW5lcj4gVjhFdmVudExpc3RlbmVyTGlzdDo6ZmluZFdyYXBwZXIo
djg6OkxvY2FsPHY4OjpWYWx1ZT4gb2JqZWN0LCBib29sIGlzQXR0cmlidXRlKQoreworICAgIEFT
U0VSVCh2ODo6Q29udGV4dDo6SW5Db250ZXh0KCkpOworICAgIGlmICghb2JqZWN0LT5Jc09iamVj
dCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIEZJWE1FOiBTaG91bGQgdGhpcyBiZSB2
ODo6TG9jYWw8djg6Ok9iamVjdD46OkNhc3QgaW5zdGVhZD8KKyAgICByZXR1cm4gZmluZChvYmpl
Y3QtPlRvT2JqZWN0KCksIGlzQXR0cmlidXRlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9WOEV2ZW50TGlzdGVuZXJMaXN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9WOEV2ZW50TGlzdGVuZXJMaXN0LmgJKHJldmlz
aW9uIDQ2MDA1KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9WOEV2ZW50TGlzdGVuZXJMaXN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDEwIEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKKyNpbmNsdWRlICJQYXNzUmVmUHRyLmgiCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBGcmFtZTsKICAgICBjbGFzcyBWOEV2ZW50
TGlzdGVuZXI7CiAgICAgY2xhc3MgVjhFdmVudExpc3RlbmVyTGlzdEl0ZXJhdG9yOwogCkBAIC02
Nyw2ICs3MCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgY2xlYXIoKTsK
ICAgICAgICAgc2l6ZV90IHNpemUoKSB7IHJldHVybiBtX3RhYmxlLnNpemUoKTsgfQogCisgICAg
ICAgIFBhc3NSZWZQdHI8VjhFdmVudExpc3RlbmVyPiBmaW5kV3JhcHBlcih2ODo6TG9jYWw8djg6
OlZhbHVlPiwgYm9vbCBpc0F0dHJpYnV0ZSk7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFdy
YXBwZXJUeXBlPgorICAgICAgICBQYXNzUmVmUHRyPFY4RXZlbnRMaXN0ZW5lcj4gZmluZE9yQ3Jl
YXRlV3JhcHBlcihGcmFtZSosIHY4OjpMb2NhbDx2ODo6VmFsdWU+LCBib29sIGlzQXR0cmlidXRl
KTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIExpc3RlbmVyTXVsdGlNYXAgbV90YWJsZTsKIApA
QCAtOTMsNiArMTAwLDI1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc2l6ZV90IG1f
dmVjdG9ySW5kZXg7CiAgICAgfTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJUeXBl
PgorICAgIFBhc3NSZWZQdHI8VjhFdmVudExpc3RlbmVyPiBWOEV2ZW50TGlzdGVuZXJMaXN0Ojpm
aW5kT3JDcmVhdGVXcmFwcGVyKEZyYW1lKiBmcmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gb2Jq
ZWN0LCBib29sIGlzQXR0cmlidXRlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHY4OjpDb250ZXh0
OjpJbkNvbnRleHQoKSk7CisgICAgICAgIGlmICghb2JqZWN0LT5Jc09iamVjdCgpKQorICAgICAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIGJlIHY4OjpM
b2NhbDx2ODo6T2JqZWN0Pjo6Q2FzdCBpbnN0ZWFkPworICAgICAgICBWOEV2ZW50TGlzdGVuZXIq
IHdyYXBwZXIgPSBmaW5kKG9iamVjdC0+VG9PYmplY3QoKSwgaXNBdHRyaWJ1dGUpOworICAgICAg
ICBpZiAod3JhcHBlcikKKyAgICAgICAgICAgIHJldHVybiB3cmFwcGVyOworCisgICAgICAgIC8v
IENyZWF0ZSBhIG5ldyBvbmUsIGFuZCBhZGQgdG8gY2FjaGUuCisgICAgICAgIFJlZlB0cjxXcmFw
cGVyVHlwZT4gbmV3TGlzdGVuZXIgPSBXcmFwcGVyVHlwZTo6Y3JlYXRlKGZyYW1lLCB2ODo6TG9j
YWw8djg6Ok9iamVjdD46OkNhc3Qob2JqZWN0KSwgaXNBdHRyaWJ1dGUpOworICAgICAgICBhZGQo
bmV3TGlzdGVuZXIuZ2V0KCkpOworCisgICAgICAgIHJldHVybiBuZXdMaXN0ZW5lcjsKKyAgICB9
OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBWOEV2ZW50TGlzdGVuZXJM
aXN0X2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvVjhPYmplY3RFdmVudExpc3RlbmVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4T2JqZWN0RXZlbnRMaXN0ZW5l
ci5jcHAJKHJldmlzaW9uIDQ2MDA1KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9WOE9iamVjdEV2
ZW50TGlzdGVuZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCwyNSBAQCBzdGF0aWMg
dm9pZCB3ZWFrT2JqZWN0RXZlbnRMaXN0ZW5lckNhbGxiCiAgICAgbGlzdGVuZXItPmRpc3Bvc2VM
aXN0ZW5lck9iamVjdCgpOwogfQogCisvLyBPYmplY3QgZXZlbnQgbGlzdGVuZXJzIChzdWNoIGFz
IFhtbEh0dHBSZXF1ZXN0IGFuZCBNZXNzYWdlUG9ydCkgYXJlCisvLyBkaWZmZXJlbnQgZnJvbSBs
aXN0ZW5lcnMgb24gRE9NIG5vZGVzLiBBbiBvYmplY3QgZXZlbnQgbGlzdGVuZXIgd3JhcHBlcgor
Ly8gb25seSBob2xkcyBhIHdlYWsgcmVmZXJlbmNlIHRvIHRoZSBKUyBmdW5jdGlvbi4gQSBzdHJv
bmcgcmVmZXJlbmNlIGNhbgorLy8gY3JlYXRlIGEgY3ljbGUuCisvLworLy8gVGhlIGxpZmV0aW1l
IG9mIHRoZXNlIG9iamVjdHMgaXMgYm91bmRlZCBieSB0aGUgbGlmZSB0aW1lIG9mIGl0cyBKUwor
Ly8gd3JhcHBlci4gU28gd2UgY2FuIGNyZWF0ZSBhIGhpZGRlbiByZWZlcmVuY2UgZnJvbSB0aGUg
SlMgd3JhcHBlciB0bworLy8gdG8gaXRzIEpTIGZ1bmN0aW9uLgorLy8KKy8vICAgICAgICAgICAg
ICAgICAgICAgICAgICAobWFwKQorLy8gICAgICAgICAgICAgIFhIUiAgICAgIDwtLS0tLS0tLS0t
ICBKU193cmFwcGVyCisvLyAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgKGhpZGRlbikgOiAg
XgorLy8gICAgICAgICAgICAgICBWICAgICAgICAgICAgICAgICAgICAgIFYgIDogKG1heSByZWFj
aGFibGUgYnkgY2xvc3VyZSkKKy8vICAgICAgICAgICBWOF9saXN0ZW5lciAgLS0tLS0tLS0+IEpT
X2Z1bmN0aW9uCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAod2VhaykgIDwtLSBtYXkgY3Jl
YXRlIGEgY3ljbGUgaWYgaXQgaXMgc3Ryb25nCisvLworLy8gVGhlIHBlcnNpc3RlbnQgcmVmZXJl
bmNlIGlzIG1hZGUgd2VhayBpbiB0aGUgY29uc3RydWN0b3IKKy8vIG9mIFY4T2JqZWN0RXZlbnRM
aXN0ZW5lci4KKwogVjhPYmplY3RFdmVudExpc3RlbmVyOjpWOE9iamVjdEV2ZW50TGlzdGVuZXIo
RnJhbWUqIGZyYW1lLCB2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlzdGVuZXIsIGJvb2wgaXNJbmxp
bmUpCiAgICAgOiBWOEV2ZW50TGlzdGVuZXIoZnJhbWUsIGxpc3RlbmVyLCBpc0lubGluZSkKIHsK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAkocmV2aXNpb24gNDYwMDUpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjEsMTAwICszNjEs
MzQgQEAgdm9pZCBWOFByb3h5OjpkZXN0cm95R2xvYmFsKCkKICAgICB9CiB9CiAKLQotLy8gRXZl
bnQgbGlzdGVuZXJzCi0KLXN0YXRpYyBWOEV2ZW50TGlzdGVuZXIqIGZpbmRFdmVudExpc3RlbmVy
SW5MaXN0KFY4RXZlbnRMaXN0ZW5lckxpc3QmIGxpc3QsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGxp
c3RlbmVyLCBib29sIGlzSW5saW5lKQotewotICAgIEFTU0VSVCh2ODo6Q29udGV4dDo6SW5Db250
ZXh0KCkpOwotCi0gICAgaWYgKCFsaXN0ZW5lci0+SXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJu
IDA7Ci0KLSAgICByZXR1cm4gbGlzdC5maW5kKGxpc3RlbmVyLT5Ub09iamVjdCgpLCBpc0lubGlu
ZSk7Ci19Ci0KLS8vIEZpbmQgYW4gZXhpc3Rpbmcgd3JhcHBlciBmb3IgYSBKUyBldmVudCBsaXN0
ZW5lciBpbiB0aGUgbWFwLgotUGFzc1JlZlB0cjxWOEV2ZW50TGlzdGVuZXI+IFY4UHJveHk6OmZp
bmRWOEV2ZW50TGlzdGVuZXIodjg6OkxvY2FsPHY4OjpWYWx1ZT4gbGlzdGVuZXIsIGJvb2wgaXNJ
bmxpbmUpCitQYXNzUmVmUHRyPFY4RXZlbnRMaXN0ZW5lcj4gVjhQcm94eTo6ZmluZFY4RXZlbnRM
aXN0ZW5lcih2ODo6TG9jYWw8djg6OlZhbHVlPiBvYmplY3QsIGJvb2wgaXNBdHRyaWJ1dGUpCiB7
Ci0gICAgcmV0dXJuIGZpbmRFdmVudExpc3RlbmVySW5MaXN0KG1fZXZlbnRMaXN0ZW5lcnMsIGxp
c3RlbmVyLCBpc0lubGluZSk7Ci19Ci0KLVBhc3NSZWZQdHI8VjhFdmVudExpc3RlbmVyPiBWOFBy
b3h5OjpmaW5kT3JDcmVhdGVWOEV2ZW50TGlzdGVuZXIodjg6OkxvY2FsPHY4OjpWYWx1ZT4gb2Jq
ZWN0LCBib29sIGlzSW5saW5lKQotewotICAgIEFTU0VSVCh2ODo6Q29udGV4dDo6SW5Db250ZXh0
KCkpOwotCi0gICAgaWYgKCFvYmplY3QtPklzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiAwOwot
Ci0gICAgVjhFdmVudExpc3RlbmVyKiB3cmFwcGVyID0gZmluZEV2ZW50TGlzdGVuZXJJbkxpc3Qo
bV9ldmVudExpc3RlbmVycywgb2JqZWN0LCBpc0lubGluZSk7Ci0gICAgaWYgKHdyYXBwZXIpCi0g
ICAgICAgIHJldHVybiB3cmFwcGVyOwotCi0gICAgLy8gQ3JlYXRlIGEgbmV3IG9uZSwgYW5kIGFk
ZCB0byBjYWNoZS4KLSAgICBSZWZQdHI8VjhFdmVudExpc3RlbmVyPiBuZXdMaXN0ZW5lciA9IFY4
RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKG1fZnJhbWUsIHY4OjpMb2NhbDx2ODo6T2JqZWN0Pjo6Q2Fz
dChvYmplY3QpLCBpc0lubGluZSk7Ci0gICAgbV9ldmVudExpc3RlbmVycy5hZGQobmV3TGlzdGVu
ZXIuZ2V0KCkpOwotCi0gICAgcmV0dXJuIG5ld0xpc3RlbmVyOworICAgIHJldHVybiBtX2V2ZW50
TGlzdGVuZXJzLmZpbmRXcmFwcGVyKG9iamVjdCwgaXNBdHRyaWJ1dGUpOwogfQogCi0vLyBPYmpl
Y3QgZXZlbnQgbGlzdGVuZXJzIChzdWNoIGFzIFhtbEh0dHBSZXF1ZXN0IGFuZCBNZXNzYWdlUG9y
dCkgYXJlCi0vLyBkaWZmZXJlbnQgZnJvbSBsaXN0ZW5lcnMgb24gRE9NIG5vZGVzLiBBbiBvYmpl
Y3QgZXZlbnQgbGlzdGVuZXIgd3JhcHBlcgotLy8gb25seSBob2xkcyBhIHdlYWsgcmVmZXJlbmNl
IHRvIHRoZSBKUyBmdW5jdGlvbi4gQSBzdHJvbmcgcmVmZXJlbmNlIGNhbgotLy8gY3JlYXRlIGEg
Y3ljbGUuCi0vLwotLy8gVGhlIGxpZmV0aW1lIG9mIHRoZXNlIG9iamVjdHMgaXMgYm91bmRlZCBi
eSB0aGUgbGlmZSB0aW1lIG9mIGl0cyBKUwotLy8gd3JhcHBlci4gU28gd2UgY2FuIGNyZWF0ZSBh
IGhpZGRlbiByZWZlcmVuY2UgZnJvbSB0aGUgSlMgd3JhcHBlciB0bwotLy8gdG8gaXRzIEpTIGZ1
bmN0aW9uLgotLy8KLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwKQotLy8gICAgICAg
ICAgICAgIFhIUiAgICAgIDwtLS0tLS0tLS0tICBKU193cmFwcGVyCi0vLyAgICAgICAgICAgICAg
IHwgICAgICAgICAgICAgKGhpZGRlbikgOiAgXgotLy8gICAgICAgICAgICAgICBWICAgICAgICAg
ICAgICAgICAgICAgIFYgIDogKG1heSByZWFjaGFibGUgYnkgY2xvc3VyZSkKLS8vICAgICAgICAg
ICBWOF9saXN0ZW5lciAgLS0tLS0tLS0+IEpTX2Z1bmN0aW9uCi0vLyAgICAgICAgICAgICAgICAg
ICAgICAgICAod2VhaykgIDwtLSBtYXkgY3JlYXRlIGEgY3ljbGUgaWYgaXQgaXMgc3Ryb25nCi0v
LwotLy8gVGhlIHBlcnNpc3RlbnQgcmVmZXJlbmNlIGlzIG1hZGUgd2VhayBpbiB0aGUgY29uc3Ry
dWN0b3IKLS8vIG9mIFY4T2JqZWN0RXZlbnRMaXN0ZW5lci4KLQotUGFzc1JlZlB0cjxWOEV2ZW50
TGlzdGVuZXI+IFY4UHJveHk6OmZpbmRPYmplY3RFdmVudExpc3RlbmVyKCB2ODo6TG9jYWw8djg6
OlZhbHVlPiBsaXN0ZW5lciwgYm9vbCBpc0lubGluZSkKK1Bhc3NSZWZQdHI8VjhFdmVudExpc3Rl
bmVyPiBWOFByb3h5OjpmaW5kT3JDcmVhdGVWOEV2ZW50TGlzdGVuZXIodjg6OkxvY2FsPHY4OjpW
YWx1ZT4gb2JqZWN0LCBib29sIGlzQXR0cmlidXRlKQogewotICAgIHJldHVybiBmaW5kRXZlbnRM
aXN0ZW5lckluTGlzdChtX3hockxpc3RlbmVycywgbGlzdGVuZXIsIGlzSW5saW5lKTsKKyAgICBy
ZXR1cm4gbV9ldmVudExpc3RlbmVycy5maW5kT3JDcmVhdGVXcmFwcGVyPFY4RXZlbnRMaXN0ZW5l
cj4obV9mcmFtZSwgb2JqZWN0LCBpc0F0dHJpYnV0ZSk7CiB9CiAKLVBhc3NSZWZQdHI8VjhFdmVu
dExpc3RlbmVyPiBWOFByb3h5OjpmaW5kT3JDcmVhdGVPYmplY3RFdmVudExpc3RlbmVyKHY4OjpM
b2NhbDx2ODo6VmFsdWU+IG9iamVjdCwgYm9vbCBpc0lubGluZSkKK3ZvaWQgVjhQcm94eTo6cmVt
b3ZlVjhFdmVudExpc3RlbmVyKFY4RXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpCiB7Ci0gICAgQVNT
RVJUKHY4OjpDb250ZXh0OjpJbkNvbnRleHQoKSk7Ci0KLSAgICBpZiAoIW9iamVjdC0+SXNPYmpl
Y3QoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBWOEV2ZW50TGlzdGVuZXIqIHdyYXBwZXIg
PSBmaW5kRXZlbnRMaXN0ZW5lckluTGlzdChtX3hockxpc3RlbmVycywgb2JqZWN0LCBpc0lubGlu
ZSk7Ci0gICAgaWYgKHdyYXBwZXIpCi0gICAgICAgIHJldHVybiB3cmFwcGVyOwotCi0gICAgLy8g
Q3JlYXRlIGEgbmV3IG9uZSwgYW5kIGFkZCB0byBjYWNoZS4KLSAgICBSZWZQdHI8VjhFdmVudExp
c3RlbmVyPiBuZXdMaXN0ZW5lciA9IFY4T2JqZWN0RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKG1fZnJh
bWUsIHY4OjpMb2NhbDx2ODo6T2JqZWN0Pjo6Q2FzdChvYmplY3QpLCBpc0lubGluZSk7Ci0gICAg
bV94aHJMaXN0ZW5lcnMuYWRkKG5ld0xpc3RlbmVyLmdldCgpKTsKLQotICAgIHJldHVybiBuZXdM
aXN0ZW5lci5yZWxlYXNlKCk7CisgICAgbV9ldmVudExpc3RlbmVycy5yZW1vdmUobGlzdGVuZXIp
OwogfQogCi0KLXN0YXRpYyB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXJGcm9tTGlzdChWOEV2ZW50
TGlzdGVuZXJMaXN0JiBsaXN0LCBWOEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKQorUGFzc1JlZlB0
cjxWOEV2ZW50TGlzdGVuZXI+IFY4UHJveHk6OmZpbmRPYmplY3RFdmVudExpc3RlbmVyKCB2ODo6
TG9jYWw8djg6OlZhbHVlPiBvYmplY3QsIGJvb2wgaXNBdHRyaWJ1dGUpCiB7Ci0gICAgbGlzdC5y
ZW1vdmUobGlzdGVuZXIpOworICAgIHJldHVybiBtX3hockxpc3RlbmVycy5maW5kV3JhcHBlcihv
YmplY3QsIGlzQXR0cmlidXRlKTsKIH0KIAotdm9pZCBWOFByb3h5OjpyZW1vdmVWOEV2ZW50TGlz
dGVuZXIoVjhFdmVudExpc3RlbmVyKiBsaXN0ZW5lcikKK1Bhc3NSZWZQdHI8VjhFdmVudExpc3Rl
bmVyPiBWOFByb3h5OjpmaW5kT3JDcmVhdGVPYmplY3RFdmVudExpc3RlbmVyKHY4OjpMb2NhbDx2
ODo6VmFsdWU+IG9iamVjdCwgYm9vbCBpc0F0dHJpYnV0ZSkKIHsKLSAgICByZW1vdmVFdmVudExp
c3RlbmVyRnJvbUxpc3QobV9ldmVudExpc3RlbmVycywgbGlzdGVuZXIpOworICAgIHJldHVybiBt
X3hockxpc3RlbmVycy5maW5kT3JDcmVhdGVXcmFwcGVyPFY4T2JqZWN0RXZlbnRMaXN0ZW5lcj4o
bV9mcmFtZSwgb2JqZWN0LCBpc0F0dHJpYnV0ZSk7CiB9CiAKLQogdm9pZCBWOFByb3h5OjpyZW1v
dmVPYmplY3RFdmVudExpc3RlbmVyKFY4T2JqZWN0RXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpCiB7
Ci0gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lckZyb21MaXN0KG1feGhyTGlzdGVuZXJzLCBsaXN0ZW5l
cik7CisgICAgbV94aHJMaXN0ZW5lcnMucmVtb3ZlKGxpc3RlbmVyKTsKIH0KIAogc3RhdGljIHZv
aWQgZGlzY29ubmVjdEV2ZW50TGlzdGVuZXJzSW5MaXN0KFY4RXZlbnRMaXN0ZW5lckxpc3QmIGxp
c3QpCkBAIC00NjcsMTQgKzQwMSwxMiBAQCBzdGF0aWMgdm9pZCBkaXNjb25uZWN0RXZlbnRMaXN0
ZW5lcnNJbkxpCiAgICAgbGlzdC5jbGVhcigpOwogfQogCi0KIHZvaWQgVjhQcm94eTo6ZGlzY29u
bmVjdEV2ZW50TGlzdGVuZXJzKCkKIHsKICAgICBkaXNjb25uZWN0RXZlbnRMaXN0ZW5lcnNJbkxp
c3QobV9ldmVudExpc3RlbmVycyk7CiAgICAgZGlzY29ubmVjdEV2ZW50TGlzdGVuZXJzSW5MaXN0
KG1feGhyTGlzdGVuZXJzKTsKIH0KIAotCiB2ODo6SGFuZGxlPHY4OjpTY3JpcHQ+IFY4UHJveHk6
OmNvbXBpbGVTY3JpcHQodjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBjb2RlLCBjb25zdCBTdHJpbmcm
IGZpbGVOYW1lLCBpbnQgYmFzZUxpbmUpCiB7CiAgICAgY29uc3QgdWludDE2X3QqIGZpbGVOYW1l
U3RyaW5nID0gZnJvbVdlYkNvcmVTdHJpbmcoZmlsZU5hbWUpOwpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBy
b3h5LmgJKHJldmlzaW9uIDQ2MDA1KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE5NiwxNCArMTk2LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgICAgICBib29sIGlzRW5hYmxlZCgpOwogCi0gICAgICAgIC8vIEZpbmQvQ3JlYXRlL1Jl
bW92ZSBldmVudCBsaXN0ZW5lciB3cmFwcGVycy4KKyAgICAgICAgLy8gRklYTUU6IFJlcGxhY2Ug
dGhlc2UgQVBJcyB3aXRoIGEgZ2V0dGVyIGZvciBtX2V2ZW50TGlzdGVuZXJzCiAgICAgICAgIFBh
c3NSZWZQdHI8VjhFdmVudExpc3RlbmVyPiBmaW5kVjhFdmVudExpc3RlbmVyKHY4OjpMb2NhbDx2
ODo6VmFsdWU+IGxpc3RlbmVyLCBib29sIGlzSHRtbCk7CiAgICAgICAgIFBhc3NSZWZQdHI8VjhF
dmVudExpc3RlbmVyPiBmaW5kT3JDcmVhdGVWOEV2ZW50TGlzdGVuZXIodjg6OkxvY2FsPHY4OjpW
YWx1ZT4gbGlzdGVuZXIsIGJvb2wgaXNIdG1sKTsKKyAgICAgICAgdm9pZCByZW1vdmVWOEV2ZW50
TGlzdGVuZXIoVjhFdmVudExpc3RlbmVyKik7CiAKKyAgICAgICAgLy8gRklYTUU6IFJlcGxhY2Ug
dGhlc2UgQVBJcyB3aXRoIGEgZ2V0dGVyIGZvciBtX3hockxpc3RlbmVycwogICAgICAgICBQYXNz
UmVmUHRyPFY4RXZlbnRMaXN0ZW5lcj4gZmluZE9iamVjdEV2ZW50TGlzdGVuZXIodjg6OkxvY2Fs
PHY4OjpWYWx1ZT4gbGlzdGVuZXIsIGJvb2wgaXNIdG1sKTsKICAgICAgICAgUGFzc1JlZlB0cjxW
OEV2ZW50TGlzdGVuZXI+IGZpbmRPckNyZWF0ZU9iamVjdEV2ZW50TGlzdGVuZXIodjg6OkxvY2Fs
PHY4OjpWYWx1ZT4gbGlzdGVuZXIsIGJvb2wgaXNIdG1sKTsKLQotICAgICAgICB2b2lkIHJlbW92
ZVY4RXZlbnRMaXN0ZW5lcihWOEV2ZW50TGlzdGVuZXIqKTsKICAgICAgICAgdm9pZCByZW1vdmVP
YmplY3RFdmVudExpc3RlbmVyKFY4T2JqZWN0RXZlbnRMaXN0ZW5lciopOwogCiAjaWYgRU5BQkxF
KFNWRyk=
</data>
<flag name="review"
          id="17359"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>