<?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>19919</bug_id>
          
          <creation_ts>2008-07-06 15:10:50 -0700</creation_ts>
          <short_desc>Add selectors&apos; string parsing in CSSParser</short_desc>
          <delta_ts>2008-07-21 18:44:05 -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 Misc.</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="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hyatt</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>85288</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-06 15:10:50 -0700</bug_when>
    <thetext>For example, the element attribute (from the tag &lt;binding&gt;) takes a string that is a selector. Currently it is not possible to get the Selector represented by such a string.

Patch will follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85289</commentid>
    <comment_count>1</comment_count>
      <attachid>22121</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-06 15:15:53 -0700</bug_when>
    <thetext>Created attachment 22121
First version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85298</commentid>
    <comment_count>2</comment_count>
      <attachid>22121</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-07-06 19:12:41 -0700</bug_when>
    <thetext>Comment on attachment 22121
First version

I&apos;m confused by this patch.  I&apos;m not sure what @-webkit-selector is, or what @selector even is.

I&apos;ve also CC&apos;d hyatt, as he likely knows what&apos;s going on here (and can better comment if your patch is correct or not).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85954</commentid>
    <comment_count>3</comment_count>
      <attachid>22121</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-07-15 13:07:31 -0700</bug_when>
    <thetext>Comment on attachment 22121
First version

r=me, although remove the no-op change to QualifiedName.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85990</commentid>
    <comment_count>4</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-15 16:34:04 -0700</bug_when>
    <thetext>This patch is not required for XBL (querySelector will do the trick) but it would enhance querySelector.

Changing the bug name to match the new need.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85991</commentid>
    <comment_count>5</comment_count>
      <attachid>22294</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-15 16:38:44 -0700</bug_when>
    <thetext>Created attachment 22294
Add CSSGrammar magic and switch querySelector to it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85998</commentid>
    <comment_count>6</comment_count>
      <attachid>22297</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-15 18:20:19 -0700</bug_when>
    <thetext>Created attachment 22297
Same as the previous one, without the memory leak</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86612</commentid>
    <comment_count>7</comment_count>
      <attachid>22297</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-07-21 16:43:27 -0700</bug_when>
    <thetext>Comment on attachment 22297
Same as the previous one, without the memory leak

Sorry for leading you down a bad path, but I think a better and less invasive would to be just to return an auto_ptr and not turn CSSSelector into a RefCounted object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86615</commentid>
    <comment_count>8</comment_count>
      <attachid>22416</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-21 17:27:30 -0700</bug_when>
    <thetext>Created attachment 22416
Updated patch: use auto_ptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86619</commentid>
    <comment_count>9</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-21 18:44:05 -0700</bug_when>
    <thetext>Landed in r35282.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22121</attachid>
            <date>2008-07-06 15:15:53 -0700</date>
            <delta_ts>2008-07-15 16:38:44 -0700</delta_ts>
            <desc>First version</desc>
            <filename>XBLParseSelector.patch</filename>
            <type>text/plain</type>
            <size>5790</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNTAyNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDgtMDctMDYgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQnVnIDE5OTE5OiBbWEJMXSBXZSBuZWVkIHRvIHBhcnNlIHN0cmluZ3MgdGhhdCByZXBy
ZXNlbnQgYSBzZWxlY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk5MTkKKworICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnk6IEFkZGVkIGVudHJ5
IGZvciBwYXJzaW5nIG9ubHkgYSBzZWxlY3Rvci4KKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpDU1NQYXJzZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVNlbGVjdG9yKTogU3RhdGljIG1ldGhvZCB0aGF0Cisg
ICAgICAgIHBhcnNlIHRoZSBzdHJpbmcgcGFyYW1ldGVyIGFzIGlmIGl0IHdhcyBhIHNlbGVjdG9y
IGFuZAorICAgICAgICByZXR1cm4gdGhlIGFzc29jaWF0ZWQgU2VsZWN0b3IuCisKKyAgICAgICAg
KiBjc3MvQ1NTUGFyc2VyLmg6IEFkZGVkIG1fZmxvYXRpbmdTZWxlY3RvciB0byBob2xkIHRoZQor
ICAgICAgICBTZWxlY3RvciBwYXJzZWQgaW4gcGFyc2VTZWxlY3Rvci4KKworICAgICAgICAqIGNz
cy90b2tlbml6ZXIuZmxleDogQWRkZWQgIkAtd2Via2l0LXNlbGVjdG9yIiB0b2tlbi4KKworICAg
ICAgICAqIGRvbS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlF1YWxpZmll
ZE5hbWU6OlF1YWxpZmllZE5hbWUpOiBSZW1vdmVkIHdoaXRlc3BhY2UuCisKIDIwMDgtMDYtMjgg
IEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYy4KSW5kZXg6IFdlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkJKHJldmlzaW9uIDM0OTA5KQorKysgV2ViQ29y
ZS9jc3MvQ1NTR3JhbW1hci55CSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsNiArMTIwLDcgQEAgc3Rh
dGljIGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWwsIHZvaQogJXRva2VuIFdFQktJVF9ERUNM
U19TWU0KICV0b2tlbiBXRUJLSVRfVkFMVUVfU1lNCiAldG9rZW4gV0VCS0lUX01FRElBUVVFUllf
U1lNCisldG9rZW4gV0VCS0lUX1NFTEVDVE9SX1NZTQogJXRva2VuIFdFQktJVF9WQVJJQUJMRVNf
U1lNCiAldG9rZW4gV0VCS0lUX1ZBUklBQkxFU19ERUNMU19TWU0KIApAQCAtMjM3LDYgKzIzOCw3
IEBAIHN0eWxlc2hlZXQ6CiAgIHwgd2Via2l0X2RlY2xzIG1heWJlX3NwYWNlCiAgIHwgd2Via2l0
X3ZhbHVlIG1heWJlX3NwYWNlCiAgIHwgd2Via2l0X21lZGlhcXVlcnkgbWF5YmVfc3BhY2UKKyAg
fCB3ZWJraXRfc2VsZWN0b3IgbWF5YmVfc3BhY2UKICAgfCB3ZWJraXRfdmFyaWFibGVzX2RlY2xz
IG1heWJlX3NwYWNlCiAgIDsKIApAQCAtMjg0LDYgKzI4NiwxMyBAQCB3ZWJraXRfbWVkaWFxdWVy
eToKICAgICAgfQogOwogCit3ZWJraXRfc2VsZWN0b3I6CisgICAgV0VCS0lUX1NFTEVDVE9SX1NZ
TSAneycgbWF5YmVfc3BhY2Ugc2VsZWN0b3JfbGlzdCAnfScgeworICAgICAgICBDU1NQYXJzZXIq
IHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBwLT5tX2Zsb2F0
aW5nU2VsZWN0b3IgPSBwLT5zaW5rRmxvYXRpbmdTZWxlY3RvcigkNCk7CisgICAgfQorOworCiBt
YXliZV9zcGFjZToKICAgICAvKiBlbXB0eSAqLyAlcHJlYyBVTklNUE9SVEFOVF9UT0sKICAgfCBt
YXliZV9zcGFjZSBXSElURVNQQUNFCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHJldmlzaW9uIDM0OTA5KQor
KysgV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM4LDYgKzEz
OCw3IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2luZykKICAgICAsIG1f
ZGVmYXVsdE5hbWVzcGFjZShzdGFyQXRvbSkKICAgICAsIG1fZGF0YSgwKQogICAgICwgeXlfc3Rh
cnQoMSkKKyAgICAsIG1fZmxvYXRpbmdTZWxlY3RvcigwKQogICAgICwgbV9mbG9hdGluZ01lZGlh
UXVlcnkoMCkKICAgICAsIG1fZmxvYXRpbmdNZWRpYVF1ZXJ5RXhwKDApCiAgICAgLCBtX2Zsb2F0
aW5nTWVkaWFRdWVyeUV4cExpc3QoMCkKQEAgLTI5MCw3ICsyOTEsMjEgQEAgYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlQ29sb3IoQ1NTTXV0YWJsZVN0eQogICAgIHJldHVybiAobV9udW1QYXJzZWRQcm9w
ZXJ0aWVzICYmIG1fcGFyc2VkUHJvcGVydGllc1swXS0+bV9pZCA9PSBDU1NQcm9wZXJ0eUNvbG9y
KTsKIH0KIAotYm9vbCBDU1NQYXJzZXI6OnBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24qIGRlY2xhcmF0aW9uLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK0NTU1NlbGVj
dG9yKiBDU1NQYXJzZXI6OnBhcnNlU2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7Cisg
ICAgQ1NTUGFyc2VyIHBhcnNlcih0cnVlKTsKKworICAgIFJlZlB0cjxDU1NTdHlsZVNoZWV0PiBk
dW1teVN0eWxlU2hlZXQgPSBDU1NTdHlsZVNoZWV0OjpjcmVhdGUoKTsKKyAgICBwYXJzZXIubV9z
dHlsZVNoZWV0ID0gZHVtbXlTdHlsZVNoZWV0LmdldCgpOworCisgICAgcGFyc2VyLnNldHVwUGFy
c2VyKCJALXdlYmtpdC1zZWxlY3RvcnsiLCBzdHJpbmcsICJ9Iik7CisKKyAgICBjc3N5eXBhcnNl
KCZwYXJzZXIpOworCisgICAgcmV0dXJuIHBhcnNlci5tX2Zsb2F0aW5nU2VsZWN0b3I7Cit9CisK
K2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uICpkZWNsYXJhdGlvbiwgY29uc3QgU3RyaW5nICZzdHJpbmcpCiB7CiAgICAgQVNTRVJUKCFk
ZWNsYXJhdGlvbi0+c3R5bGVzaGVldCgpIHx8IGRlY2xhcmF0aW9uLT5zdHlsZXNoZWV0KCktPmlz
Q1NTU3R5bGVTaGVldCgpKTsKICAgICBtX3N0eWxlU2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NTdHls
ZVNoZWV0Kj4oZGVjbGFyYXRpb24tPnN0eWxlc2hlZXQoKSk7CkluZGV4OiBXZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAkocmV2aXNp
b24gMzQ5MDkpCisrKyBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
NDgsNiArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU3R5bGVMaXN0Owog
CiAgICAgY2xhc3MgQ1NTUGFyc2VyIHsKKyAgICAgICAgZnJpZW5kIENTU1NlbGVjdG9yKiBwYXJz
ZVNlbGVjdG9yKGNvbnN0IFN0cmluZyYpOwogICAgIHB1YmxpYzoKICAgICAgICAgQ1NTUGFyc2Vy
KGJvb2wgc3RyaWN0UGFyc2luZyA9IHRydWUpOwogICAgICAgICB+Q1NTUGFyc2VyKCk7CkBAIC0x
MDcsNiArMTA4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQYXNzUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBwYXJzZUNvbG9yKENTU1BhcnNlclZhbHVlKiA9IDApOwogICAgICAg
ICBib29sIHBhcnNlQ29sb3JGcm9tVmFsdWUoQ1NTUGFyc2VyVmFsdWUqLCBSR0JBMzImLCBib29s
ID0gZmFsc2UpOwogCisgICAgICAgIHN0YXRpYyBDU1NTZWxlY3RvciogcGFyc2VTZWxlY3Rvcihj
b25zdCBTdHJpbmcmKTsKKwogICAgICAgICBzdGF0aWMgYm9vbCBwYXJzZUNvbG9yKGNvbnN0IFN0
cmluZyYsIFJHQkEzMiYgcmdiLCBib29sIHN0cmljdCk7CiAKICAgICAgICAgYm9vbCBwYXJzZUZv
bnRGYWNlU3JjKCk7CkBAIC0xNzgsNiArMTgxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBNZWRpYVF1ZXJ5KiBtX21lZGlhUXVlcnk7CiAgICAgICAgIENTU1BhcnNlclZhbHVlTGlz
dCogbV92YWx1ZUxpc3Q7CiAgICAgICAgIENTU1Byb3BlcnR5KiogbV9wYXJzZWRQcm9wZXJ0aWVz
OworICAgICAgICBDU1NTZWxlY3RvciogbV9mbG9hdGluZ1NlbGVjdG9yOwogICAgICAgICBpbnQg
bV9udW1QYXJzZWRQcm9wZXJ0aWVzOwogICAgICAgICBpbnQgbV9tYXhQYXJzZWRQcm9wZXJ0aWVz
OwogCkluZGV4OiBXZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2Nzcy90b2tlbml6ZXIuZmxleAkocmV2aXNpb24gMzQ5MDkpCisrKyBXZWJDb3JlL2Nzcy90
b2tlbml6ZXIuZmxleAkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTksNyBAQCBudGggICAgICAg
ICAgICAgKC0/WzAtOV0qbltcKy1dWzAtOV0rKXwoCiAiQC13ZWJraXQtZGVjbHMiICAgICAgICB7
eXlUb2sgPSBXRUJLSVRfREVDTFNfU1lNOyByZXR1cm4geXlUb2s7IH0KICJALXdlYmtpdC12YWx1
ZSIgICAgICAgIHt5eVRvayA9IFdFQktJVF9WQUxVRV9TWU07IHJldHVybiB5eVRvazsgfQogIkAt
d2Via2l0LW1lZGlhcXVlcnkiICAge0JFR0lOKG1lZGlhcXVlcnkpOyB5eVRvayA9IFdFQktJVF9N
RURJQVFVRVJZX1NZTTsgcmV0dXJuIHl5VG9rOyB9CisiQC13ZWJraXQtc2VsZWN0b3IiICAgICB7
eXlUb2sgPSBXRUJLSVRfU0VMRUNUT1JfU1lNOyByZXR1cm4geXlUb2s7IH0KICJALXdlYmtpdC12
YXJpYWJsZXMiICAgIHt5eVRvayA9IFdFQktJVF9WQVJJQUJMRVNfU1lNOyByZXR1cm4geXlUb2s7
IH0KICJALXdlYmtpdC12YXJpYWJsZXMtZGVjbHMiIHsgeXlUb2sgPSBXRUJLSVRfVkFSSUFCTEVT
X0RFQ0xTX1NZTTsgcmV0dXJuIHl5VG9rOyB9CiAKSW5kZXg6IFdlYkNvcmUvZG9tL1F1YWxpZmll
ZE5hbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwCShy
ZXZpc2lvbiAzNDkwOSkKKysrIFdlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTAsNyArMTEwLDcgQEAgUXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZShj
b25zdCBBdG9taQogICAgICAgICBnTmFtZUNhY2hlID0gbmV3IFFOYW1lU2V0OwogICAgIFF1YWxp
ZmllZE5hbWVDb21wb25lbnRzIGNvbXBvbmVudHMgPSB7IHAuaW1wbCgpLCBsLmltcGwoKSwgbi5p
bXBsKCkgfTsKICAgICBwYWlyPFFOYW1lU2V0OjppdGVyYXRvciwgYm9vbD4gYWRkUmVzdWx0ID0g
Z05hbWVDYWNoZS0+YWRkPFF1YWxpZmllZE5hbWVDb21wb25lbnRzLCBRTmFtZUNvbXBvbmVudHNU
cmFuc2xhdG9yPihjb21wb25lbnRzKTsKLSAgICBtX2ltcGwgPSAqYWRkUmVzdWx0LmZpcnN0OyAg
ICAKKyAgICBtX2ltcGwgPSAqYWRkUmVzdWx0LmZpcnN0OwogICAgIGlmICghYWRkUmVzdWx0LnNl
Y29uZCkKICAgICAgICAgbV9pbXBsLT5yZWYoKTsKIH0K
</data>
<flag name="review"
          id="9742"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22294</attachid>
            <date>2008-07-15 16:38:44 -0700</date>
            <delta_ts>2008-07-15 18:20:19 -0700</delta_ts>
            <desc>Add CSSGrammar magic and switch querySelector to it</desc>
            <filename>QuerySelectorCSSParser.patch</filename>
            <type>text/plain</type>
            <size>6885</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNTE4NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMDgtMDctMTUgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQnVnIDE5OTE5OiBBZGQgc2VsZWN0b3JzJyBzdHJpbmcgcGFyc2luZyBpbiBDU1NQYXJz
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTE5
CisKKyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCisKKyAgICAgICAgKiBjc3MvQ1NTR3Jh
bW1hci55OiBBZGRlZCBlbnRyeSBmb3IgcGFyc2luZyBvbmx5IGEgc2VsZWN0b3IuCisgICAgICAg
ICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OkNTU1Bh
cnNlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU2VsZWN0b3IpOgorICAg
ICAgICAqIGNzcy9DU1NQYXJzZXIuaDogQWRkZWQgbV9mbG9hdGluZ1NlbGVjdG9yIHRvIGhvbGQg
dGhlCisgICAgICAgIFNlbGVjdG9yIHBhcnNlZCBpbiBwYXJzZVNlbGVjdG9yLgorCisgICAgICAg
ICogY3NzL3Rva2VuaXplci5mbGV4OiBBZGRlZCAiQC13ZWJraXQtc2VsZWN0b3IiIHRva2VuLgor
CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cXVlcnlT
ZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpxdWVyeVNlbGVjdG9yQWxsKTogU3dp
dGNoZWQgdG8gcGFyc2VTZWxlY3RvcgorICAgICAgICBtZXRob2QuCisKKwogMjAwOC0wNy0xNCAg
RGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgPHN0eWxlPiBh
bmQgPGxpbms+IHByZXR0eSBtdWNoIGFueXdoZXJlLiAgVGhleSB3aWxsIHN0aWxsIGJlIG1vdmVk
IHRvIHRoZSA8aGVhZD4gaWYKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkJKHJldmlzaW9uIDM1MTg1KQorKysgV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55CSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsNiArMTIwLDcgQEAg
c3RhdGljIGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWwsIHZvaQogJXRva2VuIFdFQktJVF9E
RUNMU19TWU0KICV0b2tlbiBXRUJLSVRfVkFMVUVfU1lNCiAldG9rZW4gV0VCS0lUX01FRElBUVVF
UllfU1lNCisldG9rZW4gV0VCS0lUX1NFTEVDVE9SX1NZTQogJXRva2VuIFdFQktJVF9WQVJJQUJM
RVNfU1lNCiAldG9rZW4gV0VCS0lUX1ZBUklBQkxFU19ERUNMU19TWU0KIApAQCAtMjM3LDYgKzIz
OCw3IEBAIHN0eWxlc2hlZXQ6CiAgIHwgd2Via2l0X2RlY2xzIG1heWJlX3NwYWNlCiAgIHwgd2Vi
a2l0X3ZhbHVlIG1heWJlX3NwYWNlCiAgIHwgd2Via2l0X21lZGlhcXVlcnkgbWF5YmVfc3BhY2UK
KyAgfCB3ZWJraXRfc2VsZWN0b3IgbWF5YmVfc3BhY2UKICAgfCB3ZWJraXRfdmFyaWFibGVzX2Rl
Y2xzIG1heWJlX3NwYWNlCiAgIDsKIApAQCAtMjg0LDYgKzI4NiwxMyBAQCB3ZWJraXRfbWVkaWFx
dWVyeToKICAgICAgfQogOwogCit3ZWJraXRfc2VsZWN0b3I6CisgICAgV0VCS0lUX1NFTEVDVE9S
X1NZTSAneycgbWF5YmVfc3BhY2Ugc2VsZWN0b3JfbGlzdCAnfScgeworICAgICAgICBDU1NQYXJz
ZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBwLT5tX2Zs
b2F0aW5nU2VsZWN0b3IgPSBwLT5zaW5rRmxvYXRpbmdTZWxlY3RvcigkNCk7CisgICAgfQorOwor
CiBtYXliZV9zcGFjZToKICAgICAvKiBlbXB0eSAqLyAlcHJlYyBVTklNUE9SVEFOVF9UT0sKICAg
fCBtYXliZV9zcGFjZSBXSElURVNQQUNFCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHJldmlzaW9uIDM1MTg1
KQorKysgV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDYg
KzEzMCw3IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2luZykKICAgICAs
IG1fbWVkaWFRdWVyeSgwKQogICAgICwgbV92YWx1ZUxpc3QoMCkKICAgICAsIG1fcGFyc2VkUHJv
cGVydGllcyhzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eSoqPihmYXN0TWFsbG9jKDMyICogc2l6ZW9m
KENTU1Byb3BlcnR5KikpKSkKKyAgICAsIG1fZmxvYXRpbmdTZWxlY3RvcigwKQogICAgICwgbV9u
dW1QYXJzZWRQcm9wZXJ0aWVzKDApCiAgICAgLCBtX21heFBhcnNlZFByb3BlcnRpZXMoMzIpCiAg
ICAgLCBtX2luUGFyc2VTaG9ydGhhbmQoMCkKQEAgLTI5Myw2ICsyOTQsMTkgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlQ29sb3IoQ1NTTXV0YWJsZVN0eQogICAgIHJldHVybiAobV9udW1QYXJzZWRQ
cm9wZXJ0aWVzICYmIG1fcGFyc2VkUHJvcGVydGllc1swXS0+bV9pZCA9PSBDU1NQcm9wZXJ0eUNv
bG9yKTsKIH0KIAorQ1NTU2VsZWN0b3IqIENTU1BhcnNlcjo6cGFyc2VTZWxlY3Rvcihjb25zdCBT
dHJpbmcmIHN0cmluZykKK3sKKyAgICBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gZHVtbXlTdHlsZVNo
ZWV0ID0gQ1NTU3R5bGVTaGVldDo6Y3JlYXRlKCk7CisKKyAgICBtX3N0eWxlU2hlZXQgPSBkdW1t
eVN0eWxlU2hlZXQuZ2V0KCk7CisKKyAgICBzZXR1cFBhcnNlcigiQC13ZWJraXQtc2VsZWN0b3J7
Iiwgc3RyaW5nLCAifSIpOworCisgICAgY3NzeXlwYXJzZSh0aGlzKTsKKworICAgIHJldHVybiBt
X2Zsb2F0aW5nU2VsZWN0b3I7Cit9CisKIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZURlY2xhcmF0aW9u
KENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBkZWNsYXJhdGlvbiwgY29uc3QgU3RyaW5nJiBz
dHJpbmcpCiB7CiAgICAgQVNTRVJUKCFkZWNsYXJhdGlvbi0+c3R5bGVzaGVldCgpIHx8IGRlY2xh
cmF0aW9uLT5zdHlsZXNoZWV0KCktPmlzQ1NTU3R5bGVTaGVldCgpKTsKSW5kZXg6IFdlYkNvcmUv
Y3NzL0NTU1BhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5oCShy
ZXZpc2lvbiAzNTE4NSkKKysrIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDYsNiArMTA2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHBh
cnNlSFNMUGFyYW1ldGVycyhDU1NQYXJzZXJWYWx1ZSosIGRvdWJsZSogY29sb3JWYWx1ZXMsIGJv
b2wgcGFyc2VBbHBoYSk7CiAgICAgICAgIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBh
cnNlQ29sb3IoQ1NTUGFyc2VyVmFsdWUqID0gMCk7CiAgICAgICAgIGJvb2wgcGFyc2VDb2xvckZy
b21WYWx1ZShDU1NQYXJzZXJWYWx1ZSosIFJHQkEzMiYsIGJvb2wgPSBmYWxzZSk7CisgICAgICAg
IENTU1NlbGVjdG9yKiBwYXJzZVNlbGVjdG9yKGNvbnN0IFN0cmluZyYpOwogCiAgICAgICAgIHN0
YXRpYyBib29sIHBhcnNlQ29sb3IoY29uc3QgU3RyaW5nJiwgUkdCQTMyJiByZ2IsIGJvb2wgc3Ry
aWN0KTsKIApAQCAtMTgxLDYgKzE4Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
TWVkaWFRdWVyeSogbV9tZWRpYVF1ZXJ5OwogICAgICAgICBDU1NQYXJzZXJWYWx1ZUxpc3QqIG1f
dmFsdWVMaXN0OwogICAgICAgICBDU1NQcm9wZXJ0eSoqIG1fcGFyc2VkUHJvcGVydGllczsKKyAg
ICAgICAgQ1NTU2VsZWN0b3IqIG1fZmxvYXRpbmdTZWxlY3RvcjsKICAgICAgICAgaW50IG1fbnVt
UGFyc2VkUHJvcGVydGllczsKICAgICAgICAgaW50IG1fbWF4UGFyc2VkUHJvcGVydGllczsKIApJ
bmRleDogV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9j
c3MvdG9rZW5pemVyLmZsZXgJKHJldmlzaW9uIDM1MTg1KQorKysgV2ViQ29yZS9jc3MvdG9rZW5p
emVyLmZsZXgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDcgQEAgbnRoICAgICAgICAgICAg
ICgtP1swLTldKm5bXCstXVswLTldKyl8KAogIkAtd2Via2l0LWRlY2xzIiAgICAgICAge3l5VG9r
ID0gV0VCS0lUX0RFQ0xTX1NZTTsgcmV0dXJuIHl5VG9rOyB9CiAiQC13ZWJraXQtdmFsdWUiICAg
ICAgICB7eXlUb2sgPSBXRUJLSVRfVkFMVUVfU1lNOyByZXR1cm4geXlUb2s7IH0KICJALXdlYmtp
dC1tZWRpYXF1ZXJ5IiAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBXRUJLSVRfTUVESUFR
VUVSWV9TWU07IHJldHVybiB5eVRvazsgfQorIkAtd2Via2l0LXNlbGVjdG9yIiAgICAge3l5VG9r
ID0gV0VCS0lUX1NFTEVDVE9SX1NZTTsgcmV0dXJuIHl5VG9rOyB9CiAiQC13ZWJraXQtdmFyaWFi
bGVzIiAgICB7eXlUb2sgPSBXRUJLSVRfVkFSSUFCTEVTX1NZTTsgcmV0dXJuIHl5VG9rOyB9CiAi
QC13ZWJraXQtdmFyaWFibGVzLWRlY2xzIiB7IHl5VG9rID0gV0VCS0lUX1ZBUklBQkxFU19ERUNM
U19TWU07IHJldHVybiB5eVRvazsgfQogCkluZGV4OiBXZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMzUxODUpCisrKyBXZWJD
b3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMyOSw3ICsxMzI5LDYgQEAgUGFz
c1JlZlB0cjxFbGVtZW50PiBOb2RlOjpxdWVyeVNlbGVjdG9yKAogICAgICAgICBlYyA9IFNZTlRB
WF9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICBSZWZQdHI8Q1NTU3R5bGVTaGVl
dD4gdGVtcFN0eWxlU2hlZXQgPSBDU1NTdHlsZVNoZWV0OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAg
ICAgQ1NTUGFyc2VyIHAoZG9jdW1lbnQoKS0+aW5TdHJpY3RNb2RlKCkpOwogICAgIGlmIChyZXNv
bHZlcikgewogICAgICAgICBTdHJpbmcgZGVmYXVsdE5hbWVzcGFjZSA9IHJlc29sdmVyLT5sb29r
dXBOYW1lc3BhY2VVUkkoZXhlYywgU3RyaW5nKCkpOwpAQCAtMTMzOSwxNCArMTMzOCwxMiBAQCBQ
YXNzUmVmUHRyPEVsZW1lbnQ+IE5vZGU6OnF1ZXJ5U2VsZWN0b3IoCiAgICAgICAgICAgICBwLm1f
ZGVmYXVsdE5hbWVzcGFjZSA9IGRlZmF1bHROYW1lc3BhY2U7CiAgICAgfQogCi0gICAgUmVmUHRy
PENTU1J1bGU+IHJ1bGUgPSBwLnBhcnNlUnVsZSh0ZW1wU3R5bGVTaGVldC5nZXQoKSwgc2VsZWN0
b3JzICsgInt9Iik7Ci0gICAgaWYgKCFydWxlIHx8ICFydWxlLT5pc1N0eWxlUnVsZSgpKSB7Cisg
ICAgQ1NTU2VsZWN0b3IqIHF1ZXJ5U2VsZWN0b3IgPSBwLnBhcnNlU2VsZWN0b3Ioc2VsZWN0b3Jz
KTsKKyAgICBpZiAoIXF1ZXJ5U2VsZWN0b3IpIHsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwog
ICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBDU1NTZWxlY3RvciogcXVlcnlTZWxlY3Rv
ciA9IHN0YXRpY19jYXN0PENTU1N0eWxlUnVsZSo+KHJ1bGUuZ2V0KCkpLT5zZWxlY3RvcigpOwot
CiAgICAgaWYgKHJlc29sdmVyKSB7CiAgICAgICAgIGlmIChyZXNvbHZlTmFtZXNwYWNlc0ZvclNl
bGVjdG9yKHF1ZXJ5U2VsZWN0b3IsIHJlc29sdmVyLCBlYywgZXhlYykpCiAgICAgICAgICAgICBy
ZXR1cm4gMDsKQEAgLTEzOTAsNyArMTM4Nyw2IEBAIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IE5vZGU6
OnF1ZXJ5U2VsZWN0b3IKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwogICAgICAgICByZXR1cm4g
MDsKICAgICB9Ci0gICAgUmVmUHRyPENTU1N0eWxlU2hlZXQ+IHRlbXBTdHlsZVNoZWV0ID0gQ1NT
U3R5bGVTaGVldDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgIENTU1BhcnNlciBwKGRvY3VtZW50
KCktPmluU3RyaWN0TW9kZSgpKTsKICAgICBpZiAocmVzb2x2ZXIpIHsKICAgICAgICAgU3RyaW5n
IGRlZmF1bHROYW1lc3BhY2UgPSByZXNvbHZlci0+bG9va3VwTmFtZXNwYWNlVVJJKGV4ZWMsIFN0
cmluZygpKTsKQEAgLTE0MDAsMTQgKzEzOTYsMTMgQEAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gTm9k
ZTo6cXVlcnlTZWxlY3RvcgogICAgICAgICAgICAgcC5tX2RlZmF1bHROYW1lc3BhY2UgPSBkZWZh
dWx0TmFtZXNwYWNlOwogICAgIH0KIAotICAgIFJlZlB0cjxDU1NSdWxlPiBydWxlID0gcC5wYXJz
ZVJ1bGUodGVtcFN0eWxlU2hlZXQuZ2V0KCksIHNlbGVjdG9ycyArICJ7fSIpOwotICAgIGlmICgh
cnVsZSB8fCAhcnVsZS0+aXNTdHlsZVJ1bGUoKSkgeworICAgIENTU1NlbGVjdG9yKiBxdWVyeVNl
bGVjdG9yID0gcC5wYXJzZVNlbGVjdG9yKHNlbGVjdG9ycyk7CisKKyAgICBpZiAoIXF1ZXJ5U2Vs
ZWN0b3IpIHsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAg
ICB9CiAKLSAgICBDU1NTZWxlY3RvciogcXVlcnlTZWxlY3RvciA9IHN0YXRpY19jYXN0PENTU1N0
eWxlUnVsZSo+KHJ1bGUuZ2V0KCkpLT5zZWxlY3RvcigpOwotCiAgICAgaWYgKHJlc29sdmVyKSB7
CiAgICAgICAgIGlmIChyZXNvbHZlTmFtZXNwYWNlc0ZvclNlbGVjdG9yKHF1ZXJ5U2VsZWN0b3Is
IHJlc29sdmVyLCBlYywgZXhlYykpCiAgICAgICAgICAgICByZXR1cm4gMDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22297</attachid>
            <date>2008-07-15 18:20:19 -0700</date>
            <delta_ts>2008-07-21 17:27:30 -0700</delta_ts>
            <desc>Same as the previous one, without the memory leak</desc>
            <filename>QuerySelectorCSSParser.patch</filename>
            <type>text/plain</type>
            <size>9038</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNTE4OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMDgtMDctMTUgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQnVnIDE5OTE5OiBBZGQgc2VsZWN0b3JzJyBzdHJpbmcgcGFyc2luZyBpbiBDU1NQYXJz
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTE5
CisKKyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCisKKyAgICAgICAgKiBjc3MvQ1NTR3Jh
bW1hci55OiBBZGRlZCBlbnRyeSBmb3IgcGFyc2luZyBvbmx5IGEgc2VsZWN0b3IuCisgICAgICAg
ICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OkNTU1Bh
cnNlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU2VsZWN0b3IpOgorICAg
ICAgICAqIGNzcy9DU1NQYXJzZXIuaDogQWRkZWQgbV9mbG9hdGluZ1NlbGVjdG9yIHRvIGhvbGQg
dGhlCisgICAgICAgIFNlbGVjdG9yIHBhcnNlZCBpbiBwYXJzZVNlbGVjdG9yLgorCisgICAgICAg
ICogY3NzL0NTU1NlbGVjdG9yLmg6IE1hZGUgaXQgUmVmQ291bnRlZCB0byByZXR1cm4gUGFzc1Jl
ZlB0cgorICAgICAgICBpbiBwYXJzZVNlbGVjdG9yLgorCisgICAgICAgICogY3NzL3Rva2VuaXpl
ci5mbGV4OiBBZGRlZCAiQC13ZWJraXQtc2VsZWN0b3IiIHRva2VuLgorICAgICAgICAqIGRvbS9O
b2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnF1ZXJ5U2VsZWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6cXVlcnlTZWxlY3RvckFsbCk6IFN3aXRjaGVkIHRvIHBhcnNlU2Vs
ZWN0b3IKKyAgICAgICAgbWV0aG9kLgorCiAyMDA4LTA3LTE1ICBLZXZpbiBNY0N1bGxvdWdoICA8
a21jY3VsbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbi4KSW5kZXg6
IFdlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NH
cmFtbWFyLnkJKHJldmlzaW9uIDM1MTg1KQorKysgV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CSh3
b3JraW5nIGNvcHkpCkBAIC0xMjAsNiArMTIwLDcgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNU
WVBFKiB5eWx2YWwsIHZvaQogJXRva2VuIFdFQktJVF9ERUNMU19TWU0KICV0b2tlbiBXRUJLSVRf
VkFMVUVfU1lNCiAldG9rZW4gV0VCS0lUX01FRElBUVVFUllfU1lNCisldG9rZW4gV0VCS0lUX1NF
TEVDVE9SX1NZTQogJXRva2VuIFdFQktJVF9WQVJJQUJMRVNfU1lNCiAldG9rZW4gV0VCS0lUX1ZB
UklBQkxFU19ERUNMU19TWU0KIApAQCAtMjM3LDYgKzIzOCw3IEBAIHN0eWxlc2hlZXQ6CiAgIHwg
d2Via2l0X2RlY2xzIG1heWJlX3NwYWNlCiAgIHwgd2Via2l0X3ZhbHVlIG1heWJlX3NwYWNlCiAg
IHwgd2Via2l0X21lZGlhcXVlcnkgbWF5YmVfc3BhY2UKKyAgfCB3ZWJraXRfc2VsZWN0b3IgbWF5
YmVfc3BhY2UKICAgfCB3ZWJraXRfdmFyaWFibGVzX2RlY2xzIG1heWJlX3NwYWNlCiAgIDsKIApA
QCAtMjg0LDYgKzI4NiwxMyBAQCB3ZWJraXRfbWVkaWFxdWVyeToKICAgICAgfQogOwogCit3ZWJr
aXRfc2VsZWN0b3I6CisgICAgV0VCS0lUX1NFTEVDVE9SX1NZTSAneycgbWF5YmVfc3BhY2Ugc2Vs
ZWN0b3JfbGlzdCAnfScgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQ
YXJzZXIqPihwYXJzZXIpOworICAgICAgICBwLT5tX3NlbGVjdG9yID0gcC0+c2lua0Zsb2F0aW5n
U2VsZWN0b3IoJDQpOworICAgIH0KKzsKKwogbWF5YmVfc3BhY2U6CiAgICAgLyogZW1wdHkgKi8g
JXByZWMgVU5JTVBPUlRBTlRfVE9LCiAgIHwgbWF5YmVfc3BhY2UgV0hJVEVTUEFDRQpJbmRleDog
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCShyZXZpc2lvbiAzNTE4NSkKKysrIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzMCw2ICsxMzAsNyBAQCBDU1NQYXJzZXI6OkNTU1BhcnNlcihi
b29sIHN0cmljdFBhcnNpbmcpCiAgICAgLCBtX21lZGlhUXVlcnkoMCkKICAgICAsIG1fdmFsdWVM
aXN0KDApCiAgICAgLCBtX3BhcnNlZFByb3BlcnRpZXMoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHkq
Kj4oZmFzdE1hbGxvYygzMiAqIHNpemVvZihDU1NQcm9wZXJ0eSopKSkpCisgICAgLCBtX3NlbGVj
dG9yKDApCiAgICAgLCBtX251bVBhcnNlZFByb3BlcnRpZXMoMCkKICAgICAsIG1fbWF4UGFyc2Vk
UHJvcGVydGllcygzMikKICAgICAsIG1faW5QYXJzZVNob3J0aGFuZCgwKQpAQCAtMjkzLDYgKzI5
NCwxOSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VDb2xvcihDU1NNdXRhYmxlU3R5CiAgICAgcmV0
dXJuIChtX251bVBhcnNlZFByb3BlcnRpZXMgJiYgbV9wYXJzZWRQcm9wZXJ0aWVzWzBdLT5tX2lk
ID09IENTU1Byb3BlcnR5Q29sb3IpOwogfQogCitQYXNzUmVmUHRyPENTU1NlbGVjdG9yPiBDU1NQ
YXJzZXI6OnBhcnNlU2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgUmVmUHRy
PENTU1N0eWxlU2hlZXQ+IGR1bW15U3R5bGVTaGVldCA9IENTU1N0eWxlU2hlZXQ6OmNyZWF0ZSgp
OworCisgICAgbV9zdHlsZVNoZWV0ID0gZHVtbXlTdHlsZVNoZWV0LmdldCgpOworCisgICAgc2V0
dXBQYXJzZXIoIkAtd2Via2l0LXNlbGVjdG9yeyIsIHN0cmluZywgIn0iKTsKKworICAgIGNzc3l5
cGFyc2UodGhpcyk7CisKKyAgICByZXR1cm4gbV9zZWxlY3Rvci5yZWxlYXNlKCk7Cit9CisKIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
KiBkZWNsYXJhdGlvbiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAgQVNTRVJUKCFkZWNs
YXJhdGlvbi0+c3R5bGVzaGVldCgpIHx8IGRlY2xhcmF0aW9uLT5zdHlsZXNoZWV0KCktPmlzQ1NT
U3R5bGVTaGVldCgpKTsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1BhcnNlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5oCShyZXZpc2lvbiAzNTE4NSkKKysrIFdlYkNvcmUv
Y3NzL0NTU1BhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHBhcnNlSFNMUGFyYW1ldGVycyhDU1NQYXJzZXJW
YWx1ZSosIGRvdWJsZSogY29sb3JWYWx1ZXMsIGJvb2wgcGFyc2VBbHBoYSk7CiAgICAgICAgIFBh
c3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBhcnNlQ29sb3IoQ1NTUGFyc2VyVmFsdWUqID0g
MCk7CiAgICAgICAgIGJvb2wgcGFyc2VDb2xvckZyb21WYWx1ZShDU1NQYXJzZXJWYWx1ZSosIFJH
QkEzMiYsIGJvb2wgPSBmYWxzZSk7CisgICAgICAgIFBhc3NSZWZQdHI8Q1NTU2VsZWN0b3I+IHBh
cnNlU2VsZWN0b3IoY29uc3QgU3RyaW5nJik7CiAKICAgICAgICAgc3RhdGljIGJvb2wgcGFyc2VD
b2xvcihjb25zdCBTdHJpbmcmLCBSR0JBMzImIHJnYiwgYm9vbCBzdHJpY3QpOwogCkBAIC0xODEs
NiArMTgyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBNZWRpYVF1ZXJ5KiBtX21l
ZGlhUXVlcnk7CiAgICAgICAgIENTU1BhcnNlclZhbHVlTGlzdCogbV92YWx1ZUxpc3Q7CiAgICAg
ICAgIENTU1Byb3BlcnR5KiogbV9wYXJzZWRQcm9wZXJ0aWVzOworICAgICAgICBSZWZQdHI8Q1NT
U2VsZWN0b3I+IG1fc2VsZWN0b3I7CiAgICAgICAgIGludCBtX251bVBhcnNlZFByb3BlcnRpZXM7
CiAgICAgICAgIGludCBtX21heFBhcnNlZFByb3BlcnRpZXM7CiAKSW5kZXg6IFdlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAko
cmV2aXNpb24gMzUxODUpCisrKyBXZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSwxMSArMjUsMTIgQEAKICNkZWZpbmUgQ1NTU2VsZWN0b3JfaAogCiAjaW5jbHVk
ZSAiUXVhbGlmaWVkTmFtZS5oIgorI2luY2x1ZGUgInd0Zi9SZWZDb3VudGVkLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIC8vIHRoaXMgY2xhc3MgcmVwcmVzZW50cyBhIHNlbGVjdG9y
IGZvciBhIFN0eWxlUnVsZQotICAgIGNsYXNzIENTU1NlbGVjdG9yIHsKKyAgICBjbGFzcyBDU1NT
ZWxlY3RvciA6IHB1YmxpYyBSZWZDb3VudGVkPENTU1NlbGVjdG9yPiB7CiAgICAgcHVibGljOgog
ICAgICAgICBDU1NTZWxlY3RvcigpCiAgICAgICAgICAgICA6IG1fdGFnSGlzdG9yeSgwKQpJbmRl
eDogV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3Mv
dG9rZW5pemVyLmZsZXgJKHJldmlzaW9uIDM1MTg1KQorKysgV2ViQ29yZS9jc3MvdG9rZW5pemVy
LmZsZXgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDcgQEAgbnRoICAgICAgICAgICAgICgt
P1swLTldKm5bXCstXVswLTldKyl8KAogIkAtd2Via2l0LWRlY2xzIiAgICAgICAge3l5VG9rID0g
V0VCS0lUX0RFQ0xTX1NZTTsgcmV0dXJuIHl5VG9rOyB9CiAiQC13ZWJraXQtdmFsdWUiICAgICAg
ICB7eXlUb2sgPSBXRUJLSVRfVkFMVUVfU1lNOyByZXR1cm4geXlUb2s7IH0KICJALXdlYmtpdC1t
ZWRpYXF1ZXJ5IiAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBXRUJLSVRfTUVESUFRVUVS
WV9TWU07IHJldHVybiB5eVRvazsgfQorIkAtd2Via2l0LXNlbGVjdG9yIiAgICAge3l5VG9rID0g
V0VCS0lUX1NFTEVDVE9SX1NZTTsgcmV0dXJuIHl5VG9rOyB9CiAiQC13ZWJraXQtdmFyaWFibGVz
IiAgICB7eXlUb2sgPSBXRUJLSVRfVkFSSUFCTEVTX1NZTTsgcmV0dXJuIHl5VG9rOyB9CiAiQC13
ZWJraXQtdmFyaWFibGVzLWRlY2xzIiB7IHl5VG9rID0gV0VCS0lUX1ZBUklBQkxFU19ERUNMU19T
WU07IHJldHVybiB5eVRvazsgfQogCkluZGV4OiBXZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMzUxODUpCisrKyBXZWJDb3Jl
L2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMyOSw3ICsxMzI5LDYgQEAgUGFzc1Jl
ZlB0cjxFbGVtZW50PiBOb2RlOjpxdWVyeVNlbGVjdG9yKAogICAgICAgICBlYyA9IFNZTlRBWF9F
UlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICBSZWZQdHI8Q1NTU3R5bGVTaGVldD4g
dGVtcFN0eWxlU2hlZXQgPSBDU1NTdHlsZVNoZWV0OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAg
Q1NTUGFyc2VyIHAoZG9jdW1lbnQoKS0+aW5TdHJpY3RNb2RlKCkpOwogICAgIGlmIChyZXNvbHZl
cikgewogICAgICAgICBTdHJpbmcgZGVmYXVsdE5hbWVzcGFjZSA9IHJlc29sdmVyLT5sb29rdXBO
YW1lc3BhY2VVUkkoZXhlYywgU3RyaW5nKCkpOwpAQCAtMTMzOSwyMSArMTMzOCwxOSBAQCBQYXNz
UmVmUHRyPEVsZW1lbnQ+IE5vZGU6OnF1ZXJ5U2VsZWN0b3IoCiAgICAgICAgICAgICBwLm1fZGVm
YXVsdE5hbWVzcGFjZSA9IGRlZmF1bHROYW1lc3BhY2U7CiAgICAgfQogCi0gICAgUmVmUHRyPENT
U1J1bGU+IHJ1bGUgPSBwLnBhcnNlUnVsZSh0ZW1wU3R5bGVTaGVldC5nZXQoKSwgc2VsZWN0b3Jz
ICsgInt9Iik7Ci0gICAgaWYgKCFydWxlIHx8ICFydWxlLT5pc1N0eWxlUnVsZSgpKSB7CisgICAg
UmVmUHRyPENTU1NlbGVjdG9yPiBxdWVyeVNlbGVjdG9yID0gcC5wYXJzZVNlbGVjdG9yKHNlbGVj
dG9ycyk7CisgICAgaWYgKCFxdWVyeVNlbGVjdG9yKSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VS
UjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgQ1NTU2VsZWN0b3IqIHF1ZXJ5U2Vs
ZWN0b3IgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVJ1bGUqPihydWxlLmdldCgpKS0+c2VsZWN0b3Io
KTsKLQogICAgIGlmIChyZXNvbHZlcikgewotICAgICAgICBpZiAocmVzb2x2ZU5hbWVzcGFjZXNG
b3JTZWxlY3RvcihxdWVyeVNlbGVjdG9yLCByZXNvbHZlciwgZWMsIGV4ZWMpKQorICAgICAgICBp
ZiAocmVzb2x2ZU5hbWVzcGFjZXNGb3JTZWxlY3RvcihxdWVyeVNlbGVjdG9yLmdldCgpLCByZXNv
bHZlciwgZWMsIGV4ZWMpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgLy8gTm8gTlNSZXNvbHZlciB3YXMgcGFzc2VkLCBzbyB0aHJvdyBhIE5BTUVTUEFDRV9F
UlIgaWYgdGhlIHNlbGVjdG9yIGluY2x1ZGVzIGFueSAKICAgICAgICAgLy8gbmFtZXNwYWNlIHBy
ZWZpeGVzLgotICAgICAgICBpZiAoc2VsZWN0b3JOZWVkc05hbWVzcGFjZVJlc29sdXRpb24ocXVl
cnlTZWxlY3RvcikpIHsKKyAgICAgICAgaWYgKHNlbGVjdG9yTmVlZHNOYW1lc3BhY2VSZXNvbHV0
aW9uKHF1ZXJ5U2VsZWN0b3IuZ2V0KCkpKSB7CiAgICAgICAgICAgICBlYyA9IE5BTUVTUEFDRV9F
UlI7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQpAQCAtMTM3NCw3ICsxMzcxLDcg
QEAgUGFzc1JlZlB0cjxFbGVtZW50PiBOb2RlOjpxdWVyeVNlbGVjdG9yKAogICAgIGZvciAoTm9k
ZSogbiA9IGZpcnN0Q2hpbGQoKTsgbjsgbiA9IG4tPnRyYXZlcnNlTmV4dE5vZGUodGhpcykpIHsK
ICAgICAgICAgaWYgKG4tPmlzRWxlbWVudE5vZGUoKSkgewogICAgICAgICAgICAgRWxlbWVudCog
ZWxlbWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihuKTsKLSAgICAgICAgICAgIGZvciAoQ1NT
U2VsZWN0b3IqIHNlbGVjdG9yID0gcXVlcnlTZWxlY3Rvcjsgc2VsZWN0b3I7IHNlbGVjdG9yID0g
c2VsZWN0b3ItPm5leHQoKSkgeworICAgICAgICAgICAgZm9yIChDU1NTZWxlY3Rvciogc2VsZWN0
b3IgPSBxdWVyeVNlbGVjdG9yLmdldCgpOyBzZWxlY3Rvcjsgc2VsZWN0b3IgPSBzZWxlY3Rvci0+
bmV4dCgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdG9yQ2hlY2tlci5jaGVja1NlbGVj
dG9yKHNlbGVjdG9yLCBlbGVtZW50KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1l
bnQ7CiAgICAgICAgICAgICB9CkBAIC0xMzkwLDcgKzEzODcsNiBAQCBQYXNzUmVmUHRyPE5vZGVM
aXN0PiBOb2RlOjpxdWVyeVNlbGVjdG9yCiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQotICAgIFJlZlB0cjxDU1NTdHlsZVNoZWV0PiB0ZW1wU3R5bGVT
aGVldCA9IENTU1N0eWxlU2hlZXQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAgICBDU1NQYXJzZXIg
cChkb2N1bWVudCgpLT5pblN0cmljdE1vZGUoKSk7CiAgICAgaWYgKHJlc29sdmVyKSB7CiAgICAg
ICAgIFN0cmluZyBkZWZhdWx0TmFtZXNwYWNlID0gcmVzb2x2ZXItPmxvb2t1cE5hbWVzcGFjZVVS
SShleGVjLCBTdHJpbmcoKSk7CkBAIC0xNDAwLDI3ICsxMzk2LDI2IEBAIFBhc3NSZWZQdHI8Tm9k
ZUxpc3Q+IE5vZGU6OnF1ZXJ5U2VsZWN0b3IKICAgICAgICAgICAgIHAubV9kZWZhdWx0TmFtZXNw
YWNlID0gZGVmYXVsdE5hbWVzcGFjZTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q1NTUnVsZT4gcnVs
ZSA9IHAucGFyc2VSdWxlKHRlbXBTdHlsZVNoZWV0LmdldCgpLCBzZWxlY3RvcnMgKyAie30iKTsK
LSAgICBpZiAoIXJ1bGUgfHwgIXJ1bGUtPmlzU3R5bGVSdWxlKCkpIHsKKyAgICBSZWZQdHI8Q1NT
U2VsZWN0b3I+IHF1ZXJ5U2VsZWN0b3IgPSBwLnBhcnNlU2VsZWN0b3Ioc2VsZWN0b3JzKTsKKwor
ICAgIGlmICghcXVlcnlTZWxlY3RvcikgewogICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CiAgICAg
ICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIENTU1NlbGVjdG9yKiBxdWVyeVNlbGVjdG9yID0g
c3RhdGljX2Nhc3Q8Q1NTU3R5bGVSdWxlKj4ocnVsZS5nZXQoKSktPnNlbGVjdG9yKCk7Ci0KICAg
ICBpZiAocmVzb2x2ZXIpIHsKLSAgICAgICAgaWYgKHJlc29sdmVOYW1lc3BhY2VzRm9yU2VsZWN0
b3IocXVlcnlTZWxlY3RvciwgcmVzb2x2ZXIsIGVjLCBleGVjKSkKKyAgICAgICAgaWYgKHJlc29s
dmVOYW1lc3BhY2VzRm9yU2VsZWN0b3IocXVlcnlTZWxlY3Rvci5nZXQoKSwgcmVzb2x2ZXIsIGVj
LCBleGVjKSkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8v
IE5vIE5TUmVzb2x2ZXIgd2FzIHBhc3NlZCwgc28gdGhyb3cgYSBOQU1FU1BBQ0VfRVJSIGlmIHRo
ZSBzZWxlY3RvciBpbmNsdWRlcyBhbnkgCiAgICAgICAgIC8vIG5hbWVzcGFjZSBwcmVmaXhlcy4K
LSAgICAgICAgaWYgKHNlbGVjdG9yTmVlZHNOYW1lc3BhY2VSZXNvbHV0aW9uKHF1ZXJ5U2VsZWN0
b3IpKSB7CisgICAgICAgIGlmIChzZWxlY3Rvck5lZWRzTmFtZXNwYWNlUmVzb2x1dGlvbihxdWVy
eVNlbGVjdG9yLmdldCgpKSkgewogICAgICAgICAgICAgZWMgPSBOQU1FU1BBQ0VfRVJSOwogICAg
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gY3JlYXRl
U2VsZWN0b3JOb2RlTGlzdCh0aGlzLCBxdWVyeVNlbGVjdG9yKTsKKyAgICByZXR1cm4gY3JlYXRl
U2VsZWN0b3JOb2RlTGlzdCh0aGlzLCBxdWVyeVNlbGVjdG9yLmdldCgpKTsKIH0KIAogRG9jdW1l
bnQgKk5vZGU6Om93bmVyRG9jdW1lbnQoKSBjb25zdAo=
</data>
<flag name="review"
          id="9811"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22416</attachid>
            <date>2008-07-21 17:27:30 -0700</date>
            <delta_ts>2008-07-21 17:29:13 -0700</delta_ts>
            <desc>Updated patch: use auto_ptr</desc>
            <filename>QuerySelectorCSSParser-updated.Patch</filename>
            <type>text/plain</type>
            <size>8505</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNTI3NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDgtMDctMjEgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQnVnIDE5OTE5OiBBZGQgc2VsZWN0b3JzJyBzdHJpbmcgcGFyc2luZyBpbiBDU1NQYXJz
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTE5
CisKKyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCisKKyAgICAgICAgKiBjc3MvQ1NTR3Jh
bW1hci55OiBBZGRlZCBlbnRyeSBmb3IgcGFyc2luZyBvbmx5IGEgc2VsZWN0b3IuCisgICAgICAg
ICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OkNTU1Bh
cnNlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU2VsZWN0b3IpOgorICAg
ICAgICAqIGNzcy9DU1NQYXJzZXIuaDogQWRkZWQgbV9mbG9hdGluZ1NlbGVjdG9yIHRvIGhvbGQg
dGhlCisgICAgICAgIFNlbGVjdG9yIHBhcnNlZCBpbiBwYXJzZVNlbGVjdG9yLgorCisgICAgICAg
ICogY3NzL3Rva2VuaXplci5mbGV4OiBBZGRlZCAiQC13ZWJraXQtc2VsZWN0b3IiIHRva2VuLgor
ICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnF1ZXJ5U2Vs
ZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cXVlcnlTZWxlY3RvckFsbCk6IFN3aXRj
aGVkIHRvIHBhcnNlU2VsZWN0b3IKKyAgICAgICAgbWV0aG9kLgorCiAyMDA4LTA3LTIwICBNYXhp
bWUgQnJpdHRvICA8YnJpdHRvQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2hu
IFN1bGxpdmFuLgpJbmRleDogV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQkocmV2aXNpb24gMzUyNzUpCisrKyBXZWJDb3JlL2Nz
cy9DU1NHcmFtbWFyLnkJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw2ICsxMjAsNyBAQCBzdGF0aWMg
aW50IGNzc3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pCiAldG9rZW4gV0VCS0lUX0RFQ0xTX1NZ
TQogJXRva2VuIFdFQktJVF9WQUxVRV9TWU0KICV0b2tlbiBXRUJLSVRfTUVESUFRVUVSWV9TWU0K
KyV0b2tlbiBXRUJLSVRfU0VMRUNUT1JfU1lNCiAldG9rZW4gV0VCS0lUX1ZBUklBQkxFU19TWU0K
ICV0b2tlbiBXRUJLSVRfVkFSSUFCTEVTX0RFQ0xTX1NZTQogJXRva2VuIEFUS0VZV09SRApAQCAt
MjM4LDYgKzIzOSw3IEBAIHN0eWxlc2hlZXQ6CiAgIHwgd2Via2l0X2RlY2xzIG1heWJlX3NwYWNl
CiAgIHwgd2Via2l0X3ZhbHVlIG1heWJlX3NwYWNlCiAgIHwgd2Via2l0X21lZGlhcXVlcnkgbWF5
YmVfc3BhY2UKKyAgfCB3ZWJraXRfc2VsZWN0b3IgbWF5YmVfc3BhY2UKICAgfCB3ZWJraXRfdmFy
aWFibGVzX2RlY2xzIG1heWJlX3NwYWNlCiAgIDsKIApAQCAtMjg1LDYgKzI4NywxMyBAQCB3ZWJr
aXRfbWVkaWFxdWVyeToKICAgICAgfQogOwogCit3ZWJraXRfc2VsZWN0b3I6CisgICAgV0VCS0lU
X1NFTEVDVE9SX1NZTSAneycgbWF5YmVfc3BhY2Ugc2VsZWN0b3JfbGlzdCAnfScgeworICAgICAg
ICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAg
ICBwLT5tX2Zsb2F0aW5nU2VsZWN0b3IgPSBwLT5zaW5rRmxvYXRpbmdTZWxlY3RvcigkNCk7Cisg
ICAgfQorOworCiBtYXliZV9zcGFjZToKICAgICAvKiBlbXB0eSAqLyAlcHJlYyBVTklNUE9SVEFO
VF9UT0sKICAgfCBtYXliZV9zcGFjZSBXSElURVNQQUNFCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHJldmlz
aW9uIDM1Mjc1KQorKysgV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTMwLDYgKzEzMCw3IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2lu
ZykKICAgICAsIG1fbWVkaWFRdWVyeSgwKQogICAgICwgbV92YWx1ZUxpc3QoMCkKICAgICAsIG1f
cGFyc2VkUHJvcGVydGllcyhzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eSoqPihmYXN0TWFsbG9jKDMy
ICogc2l6ZW9mKENTU1Byb3BlcnR5KikpKSkKKyAgICAsIG1fZmxvYXRpbmdTZWxlY3RvcigwKQog
ICAgICwgbV9udW1QYXJzZWRQcm9wZXJ0aWVzKDApCiAgICAgLCBtX21heFBhcnNlZFByb3BlcnRp
ZXMoMzIpCiAgICAgLCBtX2luUGFyc2VTaG9ydGhhbmQoMCkKQEAgLTI5Myw2ICsyOTQsMTkgQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlQ29sb3IoQ1NTTXV0YWJsZVN0eQogICAgIHJldHVybiAobV9u
dW1QYXJzZWRQcm9wZXJ0aWVzICYmIG1fcGFyc2VkUHJvcGVydGllc1swXS0+bV9pZCA9PSBDU1NQ
cm9wZXJ0eUNvbG9yKTsKIH0KIAorc3RkOjphdXRvX3B0cjxDU1NTZWxlY3Rvcj4gQ1NTUGFyc2Vy
OjpwYXJzZVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIFJlZlB0cjxDU1NT
dHlsZVNoZWV0PiBkdW1teVN0eWxlU2hlZXQgPSBDU1NTdHlsZVNoZWV0OjpjcmVhdGUoKTsKKwor
ICAgIG1fc3R5bGVTaGVldCA9IGR1bW15U3R5bGVTaGVldC5nZXQoKTsKKworICAgIHNldHVwUGFy
c2VyKCJALXdlYmtpdC1zZWxlY3RvcnsiLCBzdHJpbmcsICJ9Iik7CisKKyAgICBjc3N5eXBhcnNl
KHRoaXMpOworCisgICAgcmV0dXJuIHN0ZDo6YXV0b19wdHI8Q1NTU2VsZWN0b3I+KG1fZmxvYXRp
bmdTZWxlY3Rvcik7Cit9CisKIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZURlY2xhcmF0aW9uKENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uKiBkZWNsYXJhdGlvbiwgY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiB7CiAgICAgQVNTRVJUKCFkZWNsYXJhdGlvbi0+c3R5bGVzaGVldCgpIHx8IGRlY2xhcmF0aW9u
LT5zdHlsZXNoZWV0KCktPmlzQ1NTU3R5bGVTaGVldCgpKTsKSW5kZXg6IFdlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5oCShyZXZpc2lv
biAzNTI3NSkKKysrIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDYsNiArMTA2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHBhcnNlSFNM
UGFyYW1ldGVycyhDU1NQYXJzZXJWYWx1ZSosIGRvdWJsZSogY29sb3JWYWx1ZXMsIGJvb2wgcGFy
c2VBbHBoYSk7CiAgICAgICAgIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBhcnNlQ29s
b3IoQ1NTUGFyc2VyVmFsdWUqID0gMCk7CiAgICAgICAgIGJvb2wgcGFyc2VDb2xvckZyb21WYWx1
ZShDU1NQYXJzZXJWYWx1ZSosIFJHQkEzMiYsIGJvb2wgPSBmYWxzZSk7CisgICAgICAgIHN0ZDo6
YXV0b19wdHI8Q1NTU2VsZWN0b3I+IHBhcnNlU2VsZWN0b3IoY29uc3QgU3RyaW5nJik7CiAKICAg
ICAgICAgc3RhdGljIGJvb2wgcGFyc2VDb2xvcihjb25zdCBTdHJpbmcmLCBSR0JBMzImIHJnYiwg
Ym9vbCBzdHJpY3QpOwogCkBAIC0xODEsNiArMTgyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBNZWRpYVF1ZXJ5KiBtX21lZGlhUXVlcnk7CiAgICAgICAgIENTU1BhcnNlclZhbHVl
TGlzdCogbV92YWx1ZUxpc3Q7CiAgICAgICAgIENTU1Byb3BlcnR5KiogbV9wYXJzZWRQcm9wZXJ0
aWVzOworICAgICAgICBDU1NTZWxlY3RvciogbV9mbG9hdGluZ1NlbGVjdG9yOwogICAgICAgICBp
bnQgbV9udW1QYXJzZWRQcm9wZXJ0aWVzOwogICAgICAgICBpbnQgbV9tYXhQYXJzZWRQcm9wZXJ0
aWVzOwogCkluZGV4OiBXZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAkocmV2aXNpb24gMzUyNzUpCisrKyBXZWJDb3JlL2Nz
cy90b2tlbml6ZXIuZmxleAkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTksNyBAQCBudGggICAg
ICAgICAgICAgKC0/WzAtOV0qbltcKy1dWzAtOV0rKXwoCiAiQC13ZWJraXQtZGVjbHMiICAgICAg
ICB7eXlUb2sgPSBXRUJLSVRfREVDTFNfU1lNOyByZXR1cm4geXlUb2s7IH0KICJALXdlYmtpdC12
YWx1ZSIgICAgICAgIHt5eVRvayA9IFdFQktJVF9WQUxVRV9TWU07IHJldHVybiB5eVRvazsgfQog
IkAtd2Via2l0LW1lZGlhcXVlcnkiICAge0JFR0lOKG1lZGlhcXVlcnkpOyB5eVRvayA9IFdFQktJ
VF9NRURJQVFVRVJZX1NZTTsgcmV0dXJuIHl5VG9rOyB9CisiQC13ZWJraXQtc2VsZWN0b3IiICAg
ICB7eXlUb2sgPSBXRUJLSVRfU0VMRUNUT1JfU1lNOyByZXR1cm4geXlUb2s7IH0KICJALXdlYmtp
dC12YXJpYWJsZXMiICAgIHt5eVRvayA9IFdFQktJVF9WQVJJQUJMRVNfU1lNOyByZXR1cm4geXlU
b2s7IH0KICJALXdlYmtpdC12YXJpYWJsZXMtZGVjbHMiIHsgeXlUb2sgPSBXRUJLSVRfVkFSSUFC
TEVTX0RFQ0xTX1NZTTsgcmV0dXJuIHl5VG9rOyB9CiAKSW5kZXg6IFdlYkNvcmUvZG9tL05vZGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL05vZGUuY3BwCShyZXZpc2lvbiAzNTI3NSkK
KysrIFdlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzI5LDcgKzEzMjks
NiBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IE5vZGU6OnF1ZXJ5U2VsZWN0b3IoCiAgICAgICAgIGVj
ID0gU1lOVEFYX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIFJlZlB0cjxDU1NT
dHlsZVNoZWV0PiB0ZW1wU3R5bGVTaGVldCA9IENTU1N0eWxlU2hlZXQ6OmNyZWF0ZShkb2N1bWVu
dCgpKTsKICAgICBDU1NQYXJzZXIgcChkb2N1bWVudCgpLT5pblN0cmljdE1vZGUoKSk7CiAgICAg
aWYgKHJlc29sdmVyKSB7CiAgICAgICAgIFN0cmluZyBkZWZhdWx0TmFtZXNwYWNlID0gcmVzb2x2
ZXItPmxvb2t1cE5hbWVzcGFjZVVSSShleGVjLCBTdHJpbmcoKSk7CkBAIC0xMzM5LDIxICsxMzM4
LDE5IEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gTm9kZTo6cXVlcnlTZWxlY3RvcigKICAgICAgICAg
ICAgIHAubV9kZWZhdWx0TmFtZXNwYWNlID0gZGVmYXVsdE5hbWVzcGFjZTsKICAgICB9CiAKLSAg
ICBSZWZQdHI8Q1NTUnVsZT4gcnVsZSA9IHAucGFyc2VSdWxlKHRlbXBTdHlsZVNoZWV0LmdldCgp
LCBzZWxlY3RvcnMgKyAie30iKTsKLSAgICBpZiAoIXJ1bGUgfHwgIXJ1bGUtPmlzU3R5bGVSdWxl
KCkpIHsKKyAgICBzdGQ6OmF1dG9fcHRyPENTU1NlbGVjdG9yPiBxdWVyeVNlbGVjdG9yID0gcC5w
YXJzZVNlbGVjdG9yKHNlbGVjdG9ycyk7CisgICAgaWYgKCFxdWVyeVNlbGVjdG9yLmdldCgpKSB7
CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0g
ICAgQ1NTU2VsZWN0b3IqIHF1ZXJ5U2VsZWN0b3IgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVJ1bGUq
PihydWxlLmdldCgpKS0+c2VsZWN0b3IoKTsKLQogICAgIGlmIChyZXNvbHZlcikgewotICAgICAg
ICBpZiAocmVzb2x2ZU5hbWVzcGFjZXNGb3JTZWxlY3RvcihxdWVyeVNlbGVjdG9yLCByZXNvbHZl
ciwgZWMsIGV4ZWMpKQorICAgICAgICBpZiAocmVzb2x2ZU5hbWVzcGFjZXNGb3JTZWxlY3Rvcihx
dWVyeVNlbGVjdG9yLmdldCgpLCByZXNvbHZlciwgZWMsIGV4ZWMpKQogICAgICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gTm8gTlNSZXNvbHZlciB3YXMgcGFzc2Vk
LCBzbyB0aHJvdyBhIE5BTUVTUEFDRV9FUlIgaWYgdGhlIHNlbGVjdG9yIGluY2x1ZGVzIGFueSAK
ICAgICAgICAgLy8gbmFtZXNwYWNlIHByZWZpeGVzLgotICAgICAgICBpZiAoc2VsZWN0b3JOZWVk
c05hbWVzcGFjZVJlc29sdXRpb24ocXVlcnlTZWxlY3RvcikpIHsKKyAgICAgICAgaWYgKHNlbGVj
dG9yTmVlZHNOYW1lc3BhY2VSZXNvbHV0aW9uKHF1ZXJ5U2VsZWN0b3IuZ2V0KCkpKSB7CiAgICAg
ICAgICAgICBlYyA9IE5BTUVTUEFDRV9FUlI7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgfQpAQCAtMTM3NCw3ICsxMzcxLDcgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBOb2RlOjpxdWVy
eVNlbGVjdG9yKAogICAgIGZvciAoTm9kZSogbiA9IGZpcnN0Q2hpbGQoKTsgbjsgbiA9IG4tPnRy
YXZlcnNlTmV4dE5vZGUodGhpcykpIHsKICAgICAgICAgaWYgKG4tPmlzRWxlbWVudE5vZGUoKSkg
ewogICAgICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihu
KTsKLSAgICAgICAgICAgIGZvciAoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gcXVlcnlTZWxlY3Rv
cjsgc2VsZWN0b3I7IHNlbGVjdG9yID0gc2VsZWN0b3ItPm5leHQoKSkgeworICAgICAgICAgICAg
Zm9yIChDU1NTZWxlY3Rvciogc2VsZWN0b3IgPSBxdWVyeVNlbGVjdG9yLmdldCgpOyBzZWxlY3Rv
cjsgc2VsZWN0b3IgPSBzZWxlY3Rvci0+bmV4dCgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHNl
bGVjdG9yQ2hlY2tlci5jaGVja1NlbGVjdG9yKHNlbGVjdG9yLCBlbGVtZW50KSkKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICAgICAgICAgICB9CkBAIC0xMzkwLDcgKzEz
ODcsNiBAQCBQYXNzUmVmUHRyPE5vZGVMaXN0PiBOb2RlOjpxdWVyeVNlbGVjdG9yCiAgICAgICAg
IGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIFJlZlB0cjxD
U1NTdHlsZVNoZWV0PiB0ZW1wU3R5bGVTaGVldCA9IENTU1N0eWxlU2hlZXQ6OmNyZWF0ZShkb2N1
bWVudCgpKTsKICAgICBDU1NQYXJzZXIgcChkb2N1bWVudCgpLT5pblN0cmljdE1vZGUoKSk7CiAg
ICAgaWYgKHJlc29sdmVyKSB7CiAgICAgICAgIFN0cmluZyBkZWZhdWx0TmFtZXNwYWNlID0gcmVz
b2x2ZXItPmxvb2t1cE5hbWVzcGFjZVVSSShleGVjLCBTdHJpbmcoKSk7CkBAIC0xNDAwLDI3ICsx
Mzk2LDI2IEBAIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IE5vZGU6OnF1ZXJ5U2VsZWN0b3IKICAgICAg
ICAgICAgIHAubV9kZWZhdWx0TmFtZXNwYWNlID0gZGVmYXVsdE5hbWVzcGFjZTsKICAgICB9CiAK
LSAgICBSZWZQdHI8Q1NTUnVsZT4gcnVsZSA9IHAucGFyc2VSdWxlKHRlbXBTdHlsZVNoZWV0Lmdl
dCgpLCBzZWxlY3RvcnMgKyAie30iKTsKLSAgICBpZiAoIXJ1bGUgfHwgIXJ1bGUtPmlzU3R5bGVS
dWxlKCkpIHsKKyAgICBzdGQ6OmF1dG9fcHRyPENTU1NlbGVjdG9yPiBxdWVyeVNlbGVjdG9yID0g
cC5wYXJzZVNlbGVjdG9yKHNlbGVjdG9ycyk7CisKKyAgICBpZiAoIXF1ZXJ5U2VsZWN0b3IuZ2V0
KCkpIHsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9
CiAKLSAgICBDU1NTZWxlY3RvciogcXVlcnlTZWxlY3RvciA9IHN0YXRpY19jYXN0PENTU1N0eWxl
UnVsZSo+KHJ1bGUuZ2V0KCkpLT5zZWxlY3RvcigpOwotCiAgICAgaWYgKHJlc29sdmVyKSB7Ci0g
ICAgICAgIGlmIChyZXNvbHZlTmFtZXNwYWNlc0ZvclNlbGVjdG9yKHF1ZXJ5U2VsZWN0b3IsIHJl
c29sdmVyLCBlYywgZXhlYykpCisgICAgICAgIGlmIChyZXNvbHZlTmFtZXNwYWNlc0ZvclNlbGVj
dG9yKHF1ZXJ5U2VsZWN0b3IuZ2V0KCksIHJlc29sdmVyLCBlYywgZXhlYykpCiAgICAgICAgICAg
ICByZXR1cm4gMDsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBObyBOU1Jlc29sdmVyIHdhcyBw
YXNzZWQsIHNvIHRocm93IGEgTkFNRVNQQUNFX0VSUiBpZiB0aGUgc2VsZWN0b3IgaW5jbHVkZXMg
YW55IAogICAgICAgICAvLyBuYW1lc3BhY2UgcHJlZml4ZXMuCi0gICAgICAgIGlmIChzZWxlY3Rv
ck5lZWRzTmFtZXNwYWNlUmVzb2x1dGlvbihxdWVyeVNlbGVjdG9yKSkgeworICAgICAgICBpZiAo
c2VsZWN0b3JOZWVkc05hbWVzcGFjZVJlc29sdXRpb24ocXVlcnlTZWxlY3Rvci5nZXQoKSkpIHsK
ICAgICAgICAgICAgIGVjID0gTkFNRVNQQUNFX0VSUjsKICAgICAgICAgICAgIHJldHVybiAwOwog
ICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yTm9kZUxpc3QodGhp
cywgcXVlcnlTZWxlY3Rvcik7CisgICAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yTm9kZUxpc3QodGhp
cywgcXVlcnlTZWxlY3Rvci5nZXQoKSk7CiB9CiAKIERvY3VtZW50ICpOb2RlOjpvd25lckRvY3Vt
ZW50KCkgY29uc3QK
</data>
<flag name="review"
          id="9884"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>