<?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>30772</bug_id>
          
          <creation_ts>2009-10-26 06:16:38 -0700</creation_ts>
          <short_desc>[Qt] Review the API of QWebElementCollection</short_desc>
          <delta_ts>2009-11-09 09:23:01 -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 Qt</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>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>30767</dependson>
          <blocked>29843</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>kenneth</cc>
    
    <cc>vestbo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>157746</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-10-26 06:16:38 -0700</bug_when>
    <thetext>QWebElementCollection has been added back in https://bugs.webkit.org/show_bug.cgi?id=30767. The current API is the original, unreviewed, one.

Here is my suggestions:

1) Give a coherent API using iterator (related to (1)):  
-QWebElement QWebElementCollection::first() const
+iterator QWebElementCollection::begin()
-QWebElement QWebElementCollection::last() const
+iterator QWebElementCollection::end()
To be coherent with QList:
+const_iterator QWebElementCollection::constBegin() const
+const_iterator QWebElementCollection::constEnd() const

2) The API could be modified to enable lazy population in the future.
The following changes would be required:
-changes of (1)
-int QWebElementCollection::count() const;
-QWebElement QWebElementCollection::at(int i) const;
-QWebElement QWebElementCollection::operator[](int i) const


If the changes of (2) are made, it could make sense to remove QWebElement::findFirst() because it would be equivalent to QWebElement::findAll().begin().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157827</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-10-26 10:58:00 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; QWebElementCollection has been added back in
&gt; https://bugs.webkit.org/show_bug.cgi?id=30767. The current API is the original,
&gt; unreviewed, one.
&gt; 
&gt; Here is my suggestions:
&gt; 
&gt; 1) Give a coherent API using iterator (related to (1)):  

1?

&gt; -QWebElement QWebElementCollection::first() const
&gt; +iterator QWebElementCollection::begin()
&gt; -QWebElement QWebElementCollection::last() const
&gt; +iterator QWebElementCollection::end()

True, but QVector/QList actually have first() methods.

&gt; 2) The API could be modified to enable lazy population in the future.
&gt; The following changes would be required:
&gt; -changes of (1)
&gt; -int QWebElementCollection::count() const;
&gt; -QWebElement QWebElementCollection::at(int i) const;
&gt; -QWebElement QWebElementCollection::operator[](int i) const
&gt; 
&gt; 
&gt; If the changes of (2) are made, it could make sense to remove
&gt; QWebElement::findFirst() because it would be equivalent to
&gt; QWebElement::findAll().begin().

True, but it might be a bit harder to find and make the resulting code a bit more obscure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157849</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-10-26 11:57:23 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; (In reply to comment #0)
&gt; &gt; 1) Give a coherent API using iterator (related to (1)):  
&gt; 
&gt; 1?

My bad, I had splitted that in 3 before.

&gt; &gt; -QWebElement QWebElementCollection::first() const
&gt; &gt; +iterator QWebElementCollection::begin()
&gt; &gt; -QWebElement QWebElementCollection::last() const
&gt; &gt; +iterator QWebElementCollection::end()
&gt; 
&gt; True, but QVector/QList actually have first() methods.

I do not have anything against first(), I wanted to avoid last(). :)
If we find the QWebElements on the fly when they are needed, first() is ok, but last() is not.

&gt; &gt; 2) The API could be modified to enable lazy population in the future.
&gt; &gt; The following changes would be required:
&gt; &gt; -changes of (1)
&gt; &gt; -int QWebElementCollection::count() const;
&gt; &gt; -QWebElement QWebElementCollection::at(int i) const;
&gt; &gt; -QWebElement QWebElementCollection::operator[](int i) const
&gt; &gt; 
&gt; &gt; 
&gt; &gt; If the changes of (2) are made, it could make sense to remove
&gt; &gt; QWebElement::findFirst() because it would be equivalent to
&gt; &gt; QWebElement::findAll().begin().
&gt; 
&gt; True, but it might be a bit harder to find and make the resulting code a bit
&gt; more obscure.

The justification I have heard for QWebElement::findFirst() is that findAll() is slow. So my idea was to get the element one by one and avoid the problem altogether.

With QWebElement::findFirst(), I expect something different from QWebElement::nextSibling(). I would expect to be able to write something like this:

    QWebElement element = root.findFirst(&quot;p&quot;);
    while (!element.isNull()) {
      // do something
      element = element.nextSibling(&quot;p&quot;); 
      // or element = element.nextSibling(); ?
    }

But maybe I am biased because I have used jQuery.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157862</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-10-26 12:12:05 -0700</bug_when>
    <thetext>
&gt; I do not have anything against first(), I wanted to avoid last(). :)
&gt; If we find the QWebElements on the fly when they are needed, first() is ok, but
&gt; last() is not.

This is because last actually returns an element? so you mean that you need to load everything. Well, isnt that the same if you use end() and then get the element for that? If so, it could be noted in the documentation that is might be slow, and a similar comment could be added to the info about that class:

&quot;The collection supports lazy loading, thus any access to an element, will force loading all elements before it.&quot;

&gt; The justification I have heard for QWebElement::findFirst() is that findAll()
&gt; is slow. So my idea was to get the element one by one and avoid the problem
&gt; altogether.

Yes, I agree that lazy loading is cool :-) Have you though about unloading as well?


&gt; With QWebElement::findFirst(), I expect something different from
&gt; QWebElement::nextSibling(). I would expect to be able to write something like
&gt; this:
&gt; 
&gt;     QWebElement element = root.findFirst(&quot;p&quot;);
&gt;     while (!element.isNull()) {
&gt;       // do something
&gt;       element = element.nextSibling(&quot;p&quot;); 
&gt;       // or element = element.nextSibling(); ?
&gt;     }

nextSibling should give the real next sibling as the QWebElement represents a tree of the DOM. Thus, I do not like the element.nextSibling(&quot;p&quot;) API. It is confusing. I guess such functionality should only be added to the collection itself.

&gt; 
&gt; But maybe I am biased because I have used jQuery.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158182</commentid>
    <comment_count>4</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-10-27 07:00:52 -0700</bug_when>
    <thetext>Feel free to add patch with non-const iterators, the others i think we should keep and document that they will be slow (when we add lazy init).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161593</commentid>
    <comment_count>5</comment_count>
      <attachid>42758</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-11-09 08:53:42 -0800</bug_when>
    <thetext>Created attachment 42758
Add a non-const iterator to QWebElementCollection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161596</commentid>
    <comment_count>6</comment_count>
      <attachid>42759</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-11-09 09:08:17 -0800</bug_when>
    <thetext>Created attachment 42759
Add a non-const iterator to QWebElementCollection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161598</commentid>
    <comment_count>7</comment_count>
      <attachid>42760</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-11-09 09:13:19 -0800</bug_when>
    <thetext>Created attachment 42760
Add a non-const iterator to QWebElementCollection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161599</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-11-09 09:23:01 -0800</bug_when>
    <thetext>Landed in 50661</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42758</attachid>
            <date>2009-11-09 08:53:42 -0800</date>
            <delta_ts>2009-11-09 09:08:17 -0800</delta_ts>
            <desc>Add a non-const iterator to QWebElementCollection</desc>
            <filename>iterator_qwebelementcollection.patch</filename>
            <type>text/plain</type>
            <size>6602</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYmVsZW1lbnQuaCBiL1dlYktpdC9xdC9BcGkv
cXdlYmVsZW1lbnQuaAppbmRleCBhMThkMjYyLi4zNzY5OTA0IDEwMDY0NAotLS0gYS9XZWJLaXQv
cXQvQXBpL3F3ZWJlbGVtZW50LmgKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2ViZWxlbWVudC5oCkBA
IC0xNzcsNiArMTc3LDcgQEAgcHVibGljOgogCiAgICAgaW50IGNvdW50KCkgY29uc3Q7CiAgICAg
UVdlYkVsZW1lbnQgYXQoaW50IGkpIGNvbnN0OworICAgIGlubGluZSBRV2ViRWxlbWVudCBvcGVy
YXRvcltdKGludCBpKSBjb25zdCB7IHJldHVybiBhdChpKTsgfQogCiAgICAgaW5saW5lIFFXZWJF
bGVtZW50IGZpcnN0KCkgY29uc3QgeyByZXR1cm4gYXQoMCk7IH0KICAgICBpbmxpbmUgUVdlYkVs
ZW1lbnQgbGFzdCgpIGNvbnN0IHsgcmV0dXJuIGF0KGNvdW50KCkgLSAxKTsgfQpAQCAtMTg1LDkg
KzE4Niw2IEBAIHB1YmxpYzoKIAogICAgIGNsYXNzIGNvbnN0X2l0ZXJhdG9yIHsKICAgICAgICBw
dWJsaWM6Ci0gICAgICAgICAgIGludCBpOwotICAgICAgICAgICBjb25zdCBRV2ViRWxlbWVudENv
bGxlY3Rpb24gKnM7Ci0KICAgICAgICAgICAgaW5saW5lIGNvbnN0X2l0ZXJhdG9yKGNvbnN0IFFX
ZWJFbGVtZW50Q29sbGVjdGlvbiAqY29sbGVjdGlvbiwgaW50IGluZGV4KSA6IGkoaW5kZXgpLCBz
KGNvbGxlY3Rpb24pIHt9CiAgICAgICAgICAgIGlubGluZSBjb25zdF9pdGVyYXRvcihjb25zdCBj
b25zdF9pdGVyYXRvciAmbykgOiBpKG8uaSksIHMoby5zKSB7fQogCkBAIC0yMTAsMTQgKzIwOCw0
NyBAQCBwdWJsaWM6CiAgICAgICAgICAgIGlubGluZSBjb25zdF9pdGVyYXRvciBvcGVyYXRvci0o
aW50IGopIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKHMsIGkgLSBqKTsgfQogICAgICAg
ICAgICBpbmxpbmUgaW50IG9wZXJhdG9yLShjb25zdF9pdGVyYXRvciBqKSBjb25zdCB7IHJldHVy
biBpIC0gai5pOyB9CiAgICAgICAgcHJpdmF0ZToKLSAgICAgICAgICAgIGlubGluZSBjb25zdF9p
dGVyYXRvcigpIDogaSgwKSwgcygwKSB7fQorICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAg
ICBjb25zdCBRV2ViRWxlbWVudENvbGxlY3Rpb24qIGNvbnN0IHM7CiAgICAgfTsKICAgICBmcmll
bmQgY2xhc3MgY29uc3RfaXRlcmF0b3I7CiAKLSAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3IgYmVn
aW4oKSBjb25zdCB7IHJldHVybiBjb25zdF9pdGVyYXRvcih0aGlzLCAwKTsgfQotICAgIGlubGlu
ZSBjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVybiBjb25zdF9pdGVyYXRvcih0aGlz
LCBjb3VudCgpKTsgfQotICAgIGlubGluZSBRV2ViRWxlbWVudCBvcGVyYXRvcltdKGludCBpKSBj
b25zdCB7IHJldHVybiBhdChpKTsgfQorICAgIGlubGluZSBjb25zdF9pdGVyYXRvciBiZWdpbigp
IGNvbnN0IHsgcmV0dXJuIGNvbnN0QmVnaW4oKTsgfQorICAgIGlubGluZSBjb25zdF9pdGVyYXRv
ciBlbmQoKSBjb25zdCB7IHJldHVybiBjb25zdEVuZCgpOyB9CisgICAgaW5saW5lIGNvbnN0X2l0
ZXJhdG9yIGNvbnN0QmVnaW4oKSBjb25zdCB7IHJldHVybiBjb25zdF9pdGVyYXRvcih0aGlzLCAw
KTsgfQorICAgIGlubGluZSBjb25zdF9pdGVyYXRvciBjb25zdEVuZCgpIGNvbnN0IHsgcmV0dXJu
IGNvbnN0X2l0ZXJhdG9yKHRoaXMsIGNvdW50KCkpOyB9OworCisgICAgY2xhc3MgaXRlcmF0b3Ig
eworICAgIHB1YmxpYzoKKyAgICAgICAgaW5saW5lIGl0ZXJhdG9yKGNvbnN0IFFXZWJFbGVtZW50
Q29sbGVjdGlvbiAqY29sbGVjdGlvbiwgaW50IGluZGV4KSA6IGkoaW5kZXgpLCBzKGNvbGxlY3Rp
b24pIHt9CisgICAgICAgIGlubGluZSBpdGVyYXRvcihjb25zdCBpdGVyYXRvciAmbykgOiBpKG8u
aSksIHMoby5zKSB7fQorCisgICAgICAgIGlubGluZSBRV2ViRWxlbWVudCBvcGVyYXRvciooKSBj
b25zdCB7IHJldHVybiBzLT5hdChpKTsgfQorCisgICAgICAgIGlubGluZSBib29sIG9wZXJhdG9y
PT0oY29uc3QgaXRlcmF0b3ImIG8pIGNvbnN0IHsgcmV0dXJuIGkgPT0gby5pICYmIHMgPT0gby5z
OyB9CisgICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG8pIGNv
bnN0IHsgcmV0dXJuIGkgIT0gby5pIHx8IHMgIT0gby5zOyB9CisgICAgICAgIGlubGluZSBib29s
IG9wZXJhdG9yPChjb25zdCBpdGVyYXRvciYgbykgY29uc3QgeyByZXR1cm4gaSA8IG8uaTsgfQor
ICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcjw9KGNvbnN0IGl0ZXJhdG9yJiBvKSBjb25zdCB7
IHJldHVybiBpIDw9IG8uaTsgfQorICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcj4oY29uc3Qg
aXRlcmF0b3ImIG8pIGNvbnN0IHsgcmV0dXJuIGkgPiBvLmk7IH0KKyAgICAgICAgaW5saW5lIGJv
b2wgb3BlcmF0b3I+PShjb25zdCBpdGVyYXRvciYgbykgY29uc3QgeyByZXR1cm4gaSA+PSBvLmk7
IH0KKworICAgICAgICBpbmxpbmUgaXRlcmF0b3IgJm9wZXJhdG9yKysoKSB7ICsraTsgcmV0dXJu
ICp0aGlzOyB9CisgICAgICAgIGlubGluZSBpdGVyYXRvciBvcGVyYXRvcisrKGludCkgeyBpdGVy
YXRvciBuKHMsIGkpOyArK2k7IHJldHVybiBuOyB9CisgICAgICAgIGlubGluZSBpdGVyYXRvciAm
b3BlcmF0b3ItLSgpIHsgaS0tOyByZXR1cm4gKnRoaXM7IH0KKyAgICAgICAgaW5saW5lIGl0ZXJh
dG9yIG9wZXJhdG9yLS0oaW50KSB7IGl0ZXJhdG9yIG4ocywgaSk7IGktLTsgcmV0dXJuIG47IH0K
KyAgICAgICAgaW5saW5lIGl0ZXJhdG9yICZvcGVyYXRvcis9KGludCBqKSB7IGkgKz0gajsgcmV0
dXJuICp0aGlzOyB9CisgICAgICAgIGlubGluZSBpdGVyYXRvciAmb3BlcmF0b3ItPShpbnQgaikg
eyBpIC09IGo7IHJldHVybiAqdGhpczsgfQorICAgICAgICBpbmxpbmUgaXRlcmF0b3Igb3BlcmF0
b3IrKGludCBqKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcihzLCBpICsgaik7IH0KKyAgICAgICAg
aW5saW5lIGl0ZXJhdG9yIG9wZXJhdG9yLShpbnQgaikgY29uc3QgeyByZXR1cm4gaXRlcmF0b3Io
cywgaSAtIGopOyB9CisgICAgICAgIGlubGluZSBpbnQgb3BlcmF0b3ItKGl0ZXJhdG9yIGopIGNv
bnN0IHsgcmV0dXJuIGkgLSBqLmk7IH0KKyAgICBwcml2YXRlOgorICAgICAgICBpbnQgaTsKKyAg
ICAgICAgY29uc3QgUVdlYkVsZW1lbnRDb2xsZWN0aW9uKiBjb25zdCBzOworICAgIH07CisgICAg
ZnJpZW5kIGNsYXNzIGl0ZXJhdG9yOwogCisgICAgaW5saW5lIGl0ZXJhdG9yIGJlZ2luKCkgeyBy
ZXR1cm4gaXRlcmF0b3IodGhpcywgMCk7IH0KKyAgICBpbmxpbmUgaXRlcmF0b3IgZW5kKCkgIHsg
cmV0dXJuIGl0ZXJhdG9yKHRoaXMsIGNvdW50KCkpOyB9CiBwcml2YXRlOgogICAgIFFFeHBsaWNp
dGx5U2hhcmVkRGF0YVBvaW50ZXI8UVdlYkVsZW1lbnRDb2xsZWN0aW9uUHJpdmF0ZT4gZDsKIH07
CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpp
bmRleCAyODZlMDBhLi5jMTYxMDQ0IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAwOS0xMS0wOSAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMDc3MgorICAgICAgICBBZGQgYSBub24tY29uc3QgaXRlcmF0
b3IgdG8gUVdlYkVsZW1lbnRDb2xsZWN0aW9uLgorICAgICAgICBNb3ZlIHRoZSB0d28gYXR0cmli
dXRlcyBvZiB0aGUgaXRlcmF0b3IgdG8gcHJpdmF0ZS4KKworICAgICAgICAqIEFwaS9xd2ViZWxl
bWVudC5oOgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6OmJlZ2luKToKKyAgICAgICAgKGNvbnN0
X2l0ZXJhdG9yOjplbmQpOgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6OmNvbnN0QmVnaW4pOgor
ICAgICAgICAoY29uc3RfaXRlcmF0b3I6OmNvbnN0RW5kKToKKyAgICAgICAgKGNvbnN0X2l0ZXJh
dG9yOjppdGVyYXRvcjo6aXRlcmF0b3IpOgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6Oml0ZXJh
dG9yOjpvcGVyYXRvciopOgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6Oml0ZXJhdG9yOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKGNvbnN0X2l0ZXJhdG9yOjppdGVyYXRvcjo6b3BlcmF0b3IhPSk6
CisgICAgICAgIChjb25zdF9pdGVyYXRvcjo6aXRlcmF0b3I6Om9wZXJhdG9yPCk6CisgICAgICAg
IChjb25zdF9pdGVyYXRvcjo6aXRlcmF0b3I6Om9wZXJhdG9yPD0pOgorICAgICAgICAoY29uc3Rf
aXRlcmF0b3I6Oml0ZXJhdG9yOjpvcGVyYXRvcj4pOgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6
Oml0ZXJhdG9yOjpvcGVyYXRvcj49KToKKyAgICAgICAgKGNvbnN0X2l0ZXJhdG9yOjppdGVyYXRv
cjo6b3BlcmF0b3IrKyk6CisgICAgICAgIChjb25zdF9pdGVyYXRvcjo6aXRlcmF0b3I6Om9wZXJh
dG9yLS0pOgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6Oml0ZXJhdG9yOjpvcGVyYXRvcis9KToK
KyAgICAgICAgKGNvbnN0X2l0ZXJhdG9yOjppdGVyYXRvcjo6b3BlcmF0b3ItPSk6CisgICAgICAg
IChjb25zdF9pdGVyYXRvcjo6aXRlcmF0b3I6Om9wZXJhdG9yKyk6CisgICAgICAgIChjb25zdF9p
dGVyYXRvcjo6aXRlcmF0b3I6Om9wZXJhdG9yLSk6CisgICAgICAgICogdGVzdHMvcXdlYmVsZW1l
bnQvdHN0X3F3ZWJlbGVtZW50LmNwcDoKKyAgICAgICAgKHRzdF9RV2ViRWxlbWVudDo6bm9uQ29u
c3RJdGVyYXRvcik6CisgICAgICAgICh0c3RfUVdlYkVsZW1lbnQ6OmNvbnN0SXRlcmF0b3IpOgor
CiAyMDA5LTExLTA5ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBh
L1dlYktpdC9xdC90ZXN0cy9xd2ViZWxlbWVudC90c3RfcXdlYmVsZW1lbnQuY3BwIGIvV2ViS2l0
L3F0L3Rlc3RzL3F3ZWJlbGVtZW50L3RzdF9xd2ViZWxlbWVudC5jcHAKaW5kZXggY2Y4M2ZlOC4u
MTE3MzkzYSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJlbGVtZW50L3RzdF9xd2Vi
ZWxlbWVudC5jcHAKKysrIGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJlbGVtZW50L3RzdF9xd2ViZWxl
bWVudC5jcHAKQEAgLTcxLDYgKzcxLDggQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIGNsYXNz
ZXMoKTsKICAgICB2b2lkIG5hbWVzcGFjZVVSSSgpOwogICAgIHZvaWQgaXRlcmF0aW9uKCk7Cisg
ICAgdm9pZCBub25Db25zdEl0ZXJhdG9yKCk7CisgICAgdm9pZCBjb25zdEl0ZXJhdG9yKCk7CiAg
ICAgdm9pZCBmb3JlYWNoTWFuaXB1bGF0aW9uKCk7CiAgICAgdm9pZCBlbXB0eUNvbGxlY3Rpb24o
KTsKICAgICB2b2lkIGFwcGVuZENvbGxlY3Rpb24oKTsKQEAgLTMwNSw2ICszMDcsMzcgQEAgdm9p
ZCB0c3RfUVdlYkVsZW1lbnQ6Oml0ZXJhdGlvbigpCiAgICAgUUNPTVBBUkUocGFyYXMuYXQoMSks
IHBhcmFzLmxhc3QoKSk7CiB9CiAKK3ZvaWQgdHN0X1FXZWJFbGVtZW50Ojpub25Db25zdEl0ZXJh
dG9yKCkKK3sKKyAgICBRU3RyaW5nIGh0bWwgPSAiPGJvZHk+PHA+Zmlyc3QgcGFyYTwvcD48cD5z
ZWNvbmQgcGFyYTwvcD48L2JvZHk+IjsKKyAgICBtX21haW5GcmFtZS0+c2V0SHRtbChodG1sKTsK
KyAgICBRV2ViRWxlbWVudCBib2R5ID0gbV9tYWluRnJhbWUtPmRvY3VtZW50RWxlbWVudCgpOwor
ICAgIFFXZWJFbGVtZW50Q29sbGVjdGlvbiBwYXJhcyA9IGJvZHkuZmluZEFsbCgicCIpOworCisg
ICAgUVdlYkVsZW1lbnRDb2xsZWN0aW9uOjppdGVyYXRvciBpdCA9IHBhcmFzLmJlZ2luKCk7Cisg
ICAgUUNPTVBBUkUoKml0LCBwYXJhcy5hdCgwKSk7CisgICAgKytpdDsKKyAgICAoKml0KS5lbmNs
b3NlV2l0aCgiPGRpdj4iKTsKKyAgICBRQ09NUEFSRSgqaXQsIHBhcmFzLmF0KDEpKTsKKyAgICAr
K2l0OworICAgIFFDT01QQVJFKGl0LCAgcGFyYXMuZW5kKCkpOworfQorCit2b2lkIHRzdF9RV2Vi
RWxlbWVudDo6Y29uc3RJdGVyYXRvcigpCit7CisgICAgUVN0cmluZyBodG1sID0gIjxib2R5Pjxw
PmZpcnN0IHBhcmE8L3A+PHA+c2Vjb25kIHBhcmE8L3A+PC9ib2R5PiI7CisgICAgbV9tYWluRnJh
bWUtPnNldEh0bWwoaHRtbCk7CisgICAgUVdlYkVsZW1lbnQgYm9keSA9IG1fbWFpbkZyYW1lLT5k
b2N1bWVudEVsZW1lbnQoKTsKKyAgICBjb25zdCBRV2ViRWxlbWVudENvbGxlY3Rpb24gcGFyYXMg
PSBib2R5LmZpbmRBbGwoInAiKTsKKworICAgIFFXZWJFbGVtZW50Q29sbGVjdGlvbjo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBwYXJhcy5iZWdpbigpOworICAgIFFDT01QQVJFKCppdCwgcGFyYXMuYXQo
MCkpOworICAgICsraXQ7CisgICAgUUNPTVBBUkUoKml0LCBwYXJhcy5hdCgxKSk7CisgICAgKytp
dDsKKyAgICBRQ09NUEFSRShpdCwgIHBhcmFzLmVuZCgpKTsKK30KKwogdm9pZCB0c3RfUVdlYkVs
ZW1lbnQ6OmZvcmVhY2hNYW5pcHVsYXRpb24oKQogewogICAgIFFTdHJpbmcgaHRtbCA9ICI8Ym9k
eT48cD5maXJzdCBwYXJhPC9wPjxwPnNlY29uZCBwYXJhPC9wPjwvYm9keT4iOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42759</attachid>
            <date>2009-11-09 09:08:17 -0800</date>
            <delta_ts>2009-11-09 09:13:19 -0800</delta_ts>
            <desc>Add a non-const iterator to QWebElementCollection</desc>
            <filename>iterator_qwebelementcollection.patch</filename>
            <type>text/plain</type>
            <size>9152</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYmVsZW1lbnQuaCBiL1dlYktpdC9xdC9BcGkv
cXdlYmVsZW1lbnQuaAppbmRleCBhMThkMjYyLi45Y2IxZWExIDEwMDY0NAotLS0gYS9XZWJLaXQv
cXQvQXBpL3F3ZWJlbGVtZW50LmgKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2ViZWxlbWVudC5oCkBA
IC0xNzcsNiArMTc3LDcgQEAgcHVibGljOgogCiAgICAgaW50IGNvdW50KCkgY29uc3Q7CiAgICAg
UVdlYkVsZW1lbnQgYXQoaW50IGkpIGNvbnN0OworICAgIGlubGluZSBRV2ViRWxlbWVudCBvcGVy
YXRvcltdKGludCBpKSBjb25zdCB7IHJldHVybiBhdChpKTsgfQogCiAgICAgaW5saW5lIFFXZWJF
bGVtZW50IGZpcnN0KCkgY29uc3QgeyByZXR1cm4gYXQoMCk7IH0KICAgICBpbmxpbmUgUVdlYkVs
ZW1lbnQgbGFzdCgpIGNvbnN0IHsgcmV0dXJuIGF0KGNvdW50KCkgLSAxKTsgfQpAQCAtMTg1LDM5
ICsxODYsNjkgQEAgcHVibGljOgogCiAgICAgY2xhc3MgY29uc3RfaXRlcmF0b3IgewogICAgICAg
IHB1YmxpYzoKLSAgICAgICAgICAgaW50IGk7Ci0gICAgICAgICAgIGNvbnN0IFFXZWJFbGVtZW50
Q29sbGVjdGlvbiAqczsKLQotICAgICAgICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3IoY29uc3Qg
UVdlYkVsZW1lbnRDb2xsZWN0aW9uICpjb2xsZWN0aW9uLCBpbnQgaW5kZXgpIDogaShpbmRleCks
IHMoY29sbGVjdGlvbikge30KLSAgICAgICAgICAgaW5saW5lIGNvbnN0X2l0ZXJhdG9yKGNvbnN0
IGNvbnN0X2l0ZXJhdG9yICZvKSA6IGkoby5pKSwgcyhvLnMpIHt9CisgICAgICAgICAgIGlubGlu
ZSBjb25zdF9pdGVyYXRvcihjb25zdCBRV2ViRWxlbWVudENvbGxlY3Rpb24qIGNvbGxlY3Rpb24s
IGludCBpbmRleCkgOiBpKGluZGV4KSwgY29sbGVjdGlvbihjb2xsZWN0aW9uKSB7fQorICAgICAg
ICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3IoY29uc3QgY29uc3RfaXRlcmF0b3ImIG8pIDogaShv
LmkpLCBjb2xsZWN0aW9uKG8uY29sbGVjdGlvbikge30KIAotICAgICAgICAgICBpbmxpbmUgY29u
c3QgUVdlYkVsZW1lbnQgb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gcy0+YXQoaSk7IH0KKyAg
ICAgICAgICAgaW5saW5lIGNvbnN0IFFXZWJFbGVtZW50IG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0
dXJuIGNvbGxlY3Rpb24tPmF0KGkpOyB9CiAKLSAgICAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBjb25zdF9pdGVyYXRvciYgbykgY29uc3QgeyByZXR1cm4gaSA9PSBvLmkgJiYg
cyA9PSBvLnM7IH0KLSAgICAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBjb25z
dF9pdGVyYXRvciYgbykgY29uc3QgeyByZXR1cm4gaSAhPSBvLmkgfHwgcyAhPSBvLnM7IH0KKyAg
ICAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBjb25zdF9pdGVyYXRvciYgbykg
Y29uc3QgeyByZXR1cm4gaSA9PSBvLmkgJiYgY29sbGVjdGlvbiA9PSBvLmNvbGxlY3Rpb247IH0K
KyAgICAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBjb25zdF9pdGVyYXRvciYg
bykgY29uc3QgeyByZXR1cm4gaSAhPSBvLmkgfHwgY29sbGVjdGlvbiAhPSBvLmNvbGxlY3Rpb247
IH0KICAgICAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I8KGNvbnN0IGNvbnN0X2l0ZXJhdG9y
JiBvKSBjb25zdCB7IHJldHVybiBpIDwgby5pOyB9CiAgICAgICAgICAgIGlubGluZSBib29sIG9w
ZXJhdG9yPD0oY29uc3QgY29uc3RfaXRlcmF0b3ImIG8pIGNvbnN0IHsgcmV0dXJuIGkgPD0gby5p
OyB9CiAgICAgICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yPihjb25zdCBjb25zdF9pdGVyYXRv
ciYgbykgY29uc3QgeyByZXR1cm4gaSA+IG8uaTsgfQogICAgICAgICAgICBpbmxpbmUgYm9vbCBv
cGVyYXRvcj49KGNvbnN0IGNvbnN0X2l0ZXJhdG9yJiBvKSBjb25zdCB7IHJldHVybiBpID49IG8u
aTsgfQogCi0gICAgICAgICAgIGlubGluZSBjb25zdF9pdGVyYXRvciAmb3BlcmF0b3IrKygpIHsg
KytpOyByZXR1cm4gKnRoaXM7IH0KLSAgICAgICAgICAgaW5saW5lIGNvbnN0X2l0ZXJhdG9yIG9w
ZXJhdG9yKysoaW50KSB7IGNvbnN0X2l0ZXJhdG9yIG4ocywgaSk7ICsraTsgcmV0dXJuIG47IH0K
LSAgICAgICAgICAgaW5saW5lIGNvbnN0X2l0ZXJhdG9yICZvcGVyYXRvci0tKCkgeyBpLS07IHJl
dHVybiAqdGhpczsgfQotICAgICAgICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3Igb3BlcmF0b3It
LShpbnQpIHsgY29uc3RfaXRlcmF0b3IgbihzLCBpKTsgaS0tOyByZXR1cm4gbjsgfQotICAgICAg
ICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3IgJm9wZXJhdG9yKz0oaW50IGopIHsgaSArPSBqOyBy
ZXR1cm4gKnRoaXM7IH0KLSAgICAgICAgICAgaW5saW5lIGNvbnN0X2l0ZXJhdG9yICZvcGVyYXRv
ci09KGludCBqKSB7IGkgLT0gajsgcmV0dXJuICp0aGlzOyB9Ci0gICAgICAgICAgIGlubGluZSBj
b25zdF9pdGVyYXRvciBvcGVyYXRvcisoaW50IGopIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2l0ZXJh
dG9yKHMsIGkgKyBqKTsgfQotICAgICAgICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3Igb3BlcmF0
b3ItKGludCBqKSBjb25zdCB7IHJldHVybiBjb25zdF9pdGVyYXRvcihzLCBpIC0gaik7IH0KKyAg
ICAgICAgICAgaW5saW5lIGNvbnN0X2l0ZXJhdG9yJiBvcGVyYXRvcisrKCkgeyArK2k7IHJldHVy
biAqdGhpczsgfQorICAgICAgICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3Igb3BlcmF0b3IrKyhp
bnQpIHsgY29uc3RfaXRlcmF0b3Igbihjb2xsZWN0aW9uLCBpKTsgKytpOyByZXR1cm4gbjsgfQor
ICAgICAgICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3ImIG9wZXJhdG9yLS0oKSB7IGktLTsgcmV0
dXJuICp0aGlzOyB9CisgICAgICAgICAgIGlubGluZSBjb25zdF9pdGVyYXRvciBvcGVyYXRvci0t
KGludCkgeyBjb25zdF9pdGVyYXRvciBuKGNvbGxlY3Rpb24sIGkpOyBpLS07IHJldHVybiBuOyB9
CisgICAgICAgICAgIGlubGluZSBjb25zdF9pdGVyYXRvciYgb3BlcmF0b3IrPShpbnQgaikgeyBp
ICs9IGo7IHJldHVybiAqdGhpczsgfQorICAgICAgICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3Im
IG9wZXJhdG9yLT0oaW50IGopIHsgaSAtPSBqOyByZXR1cm4gKnRoaXM7IH0KKyAgICAgICAgICAg
aW5saW5lIGNvbnN0X2l0ZXJhdG9yIG9wZXJhdG9yKyhpbnQgaikgY29uc3QgeyByZXR1cm4gY29u
c3RfaXRlcmF0b3IoY29sbGVjdGlvbiwgaSArIGopOyB9CisgICAgICAgICAgIGlubGluZSBjb25z
dF9pdGVyYXRvciBvcGVyYXRvci0oaW50IGopIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2l0ZXJhdG9y
KGNvbGxlY3Rpb24sIGkgLSBqKTsgfQogICAgICAgICAgICBpbmxpbmUgaW50IG9wZXJhdG9yLShj
b25zdF9pdGVyYXRvciBqKSBjb25zdCB7IHJldHVybiBpIC0gai5pOyB9CiAgICAgICAgcHJpdmF0
ZToKLSAgICAgICAgICAgIGlubGluZSBjb25zdF9pdGVyYXRvcigpIDogaSgwKSwgcygwKSB7fQor
ICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICBjb25zdCBRV2ViRWxlbWVudENvbGxlY3Rp
b24qIGNvbnN0IGNvbGxlY3Rpb247CiAgICAgfTsKICAgICBmcmllbmQgY2xhc3MgY29uc3RfaXRl
cmF0b3I7CiAKLSAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVy
biBjb25zdF9pdGVyYXRvcih0aGlzLCAwKTsgfQotICAgIGlubGluZSBjb25zdF9pdGVyYXRvciBl
bmQoKSBjb25zdCB7IHJldHVybiBjb25zdF9pdGVyYXRvcih0aGlzLCBjb3VudCgpKTsgfQotICAg
IGlubGluZSBRV2ViRWxlbWVudCBvcGVyYXRvcltdKGludCBpKSBjb25zdCB7IHJldHVybiBhdChp
KTsgfQorICAgIGlubGluZSBjb25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIGNv
bnN0QmVnaW4oKTsgfQorICAgIGlubGluZSBjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdCB7IHJl
dHVybiBjb25zdEVuZCgpOyB9CisgICAgaW5saW5lIGNvbnN0X2l0ZXJhdG9yIGNvbnN0QmVnaW4o
KSBjb25zdCB7IHJldHVybiBjb25zdF9pdGVyYXRvcih0aGlzLCAwKTsgfQorICAgIGlubGluZSBj
b25zdF9pdGVyYXRvciBjb25zdEVuZCgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKHRo
aXMsIGNvdW50KCkpOyB9OworCisgICAgY2xhc3MgaXRlcmF0b3IgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgaW5saW5lIGl0ZXJhdG9yKGNvbnN0IFFXZWJFbGVtZW50Q29sbGVjdGlvbiogY29sbGVj
dGlvbiwgaW50IGluZGV4KSA6IGkoaW5kZXgpLCBjb2xsZWN0aW9uKGNvbGxlY3Rpb24pIHt9Cisg
ICAgICAgIGlubGluZSBpdGVyYXRvcihjb25zdCBpdGVyYXRvciYgbykgOiBpKG8uaSksIGNvbGxl
Y3Rpb24oby5jb2xsZWN0aW9uKSB7fQorCisgICAgICAgIGlubGluZSBRV2ViRWxlbWVudCBvcGVy
YXRvciooKSBjb25zdCB7IHJldHVybiBjb2xsZWN0aW9uLT5hdChpKTsgfQorCisgICAgICAgIGlu
bGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgaXRlcmF0b3ImIG8pIGNvbnN0IHsgcmV0dXJuIGkg
PT0gby5pICYmIGNvbGxlY3Rpb24gPT0gby5jb2xsZWN0aW9uOyB9CisgICAgICAgIGlubGluZSBi
b29sIG9wZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG8pIGNvbnN0IHsgcmV0dXJuIGkgIT0gby5p
IHx8IGNvbGxlY3Rpb24gIT0gby5jb2xsZWN0aW9uOyB9CisgICAgICAgIGlubGluZSBib29sIG9w
ZXJhdG9yPChjb25zdCBpdGVyYXRvciYgbykgY29uc3QgeyByZXR1cm4gaSA8IG8uaTsgfQorICAg
ICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcjw9KGNvbnN0IGl0ZXJhdG9yJiBvKSBjb25zdCB7IHJl
dHVybiBpIDw9IG8uaTsgfQorICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcj4oY29uc3QgaXRl
cmF0b3ImIG8pIGNvbnN0IHsgcmV0dXJuIGkgPiBvLmk7IH0KKyAgICAgICAgaW5saW5lIGJvb2wg
b3BlcmF0b3I+PShjb25zdCBpdGVyYXRvciYgbykgY29uc3QgeyByZXR1cm4gaSA+PSBvLmk7IH0K
KworICAgICAgICBpbmxpbmUgaXRlcmF0b3ImIG9wZXJhdG9yKysoKSB7ICsraTsgcmV0dXJuICp0
aGlzOyB9CisgICAgICAgIGlubGluZSBpdGVyYXRvciBvcGVyYXRvcisrKGludCkgeyBpdGVyYXRv
ciBuKGNvbGxlY3Rpb24sIGkpOyArK2k7IHJldHVybiBuOyB9CisgICAgICAgIGlubGluZSBpdGVy
YXRvciYgb3BlcmF0b3ItLSgpIHsgaS0tOyByZXR1cm4gKnRoaXM7IH0KKyAgICAgICAgaW5saW5l
IGl0ZXJhdG9yIG9wZXJhdG9yLS0oaW50KSB7IGl0ZXJhdG9yIG4oY29sbGVjdGlvbiwgaSk7IGkt
LTsgcmV0dXJuIG47IH0KKyAgICAgICAgaW5saW5lIGl0ZXJhdG9yJiBvcGVyYXRvcis9KGludCBq
KSB7IGkgKz0gajsgcmV0dXJuICp0aGlzOyB9CisgICAgICAgIGlubGluZSBpdGVyYXRvciYgb3Bl
cmF0b3ItPShpbnQgaikgeyBpIC09IGo7IHJldHVybiAqdGhpczsgfQorICAgICAgICBpbmxpbmUg
aXRlcmF0b3Igb3BlcmF0b3IrKGludCBqKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcihjb2xsZWN0
aW9uLCBpICsgaik7IH0KKyAgICAgICAgaW5saW5lIGl0ZXJhdG9yIG9wZXJhdG9yLShpbnQgaikg
Y29uc3QgeyByZXR1cm4gaXRlcmF0b3IoY29sbGVjdGlvbiwgaSAtIGopOyB9CisgICAgICAgIGlu
bGluZSBpbnQgb3BlcmF0b3ItKGl0ZXJhdG9yIGopIGNvbnN0IHsgcmV0dXJuIGkgLSBqLmk7IH0K
KyAgICBwcml2YXRlOgorICAgICAgICBpbnQgaTsKKyAgICAgICAgY29uc3QgUVdlYkVsZW1lbnRD
b2xsZWN0aW9uKiBjb25zdCBjb2xsZWN0aW9uOworICAgIH07CisgICAgZnJpZW5kIGNsYXNzIGl0
ZXJhdG9yOwogCisgICAgaW5saW5lIGl0ZXJhdG9yIGJlZ2luKCkgeyByZXR1cm4gaXRlcmF0b3Io
dGhpcywgMCk7IH0KKyAgICBpbmxpbmUgaXRlcmF0b3IgZW5kKCkgIHsgcmV0dXJuIGl0ZXJhdG9y
KHRoaXMsIGNvdW50KCkpOyB9CiBwcml2YXRlOgogICAgIFFFeHBsaWNpdGx5U2hhcmVkRGF0YVBv
aW50ZXI8UVdlYkVsZW1lbnRDb2xsZWN0aW9uUHJpdmF0ZT4gZDsKIH07CmRpZmYgLS1naXQgYS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAyODZlMDBhLi5j
MTYxMDQ0IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAwOS0xMS0wOSAgQmVuamFtaW4gUG91bGFpbiAg
PGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMDc3MgorICAgICAgICBBZGQgYSBub24tY29uc3QgaXRlcmF0b3IgdG8gUVdlYkVsZW1l
bnRDb2xsZWN0aW9uLgorICAgICAgICBNb3ZlIHRoZSB0d28gYXR0cmlidXRlcyBvZiB0aGUgaXRl
cmF0b3IgdG8gcHJpdmF0ZS4KKworICAgICAgICAqIEFwaS9xd2ViZWxlbWVudC5oOgorICAgICAg
ICAoY29uc3RfaXRlcmF0b3I6OmJlZ2luKToKKyAgICAgICAgKGNvbnN0X2l0ZXJhdG9yOjplbmQp
OgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6OmNvbnN0QmVnaW4pOgorICAgICAgICAoY29uc3Rf
aXRlcmF0b3I6OmNvbnN0RW5kKToKKyAgICAgICAgKGNvbnN0X2l0ZXJhdG9yOjppdGVyYXRvcjo6
aXRlcmF0b3IpOgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6Oml0ZXJhdG9yOjpvcGVyYXRvciop
OgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6Oml0ZXJhdG9yOjpvcGVyYXRvcj09KToKKyAgICAg
ICAgKGNvbnN0X2l0ZXJhdG9yOjppdGVyYXRvcjo6b3BlcmF0b3IhPSk6CisgICAgICAgIChjb25z
dF9pdGVyYXRvcjo6aXRlcmF0b3I6Om9wZXJhdG9yPCk6CisgICAgICAgIChjb25zdF9pdGVyYXRv
cjo6aXRlcmF0b3I6Om9wZXJhdG9yPD0pOgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6Oml0ZXJh
dG9yOjpvcGVyYXRvcj4pOgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6Oml0ZXJhdG9yOjpvcGVy
YXRvcj49KToKKyAgICAgICAgKGNvbnN0X2l0ZXJhdG9yOjppdGVyYXRvcjo6b3BlcmF0b3IrKyk6
CisgICAgICAgIChjb25zdF9pdGVyYXRvcjo6aXRlcmF0b3I6Om9wZXJhdG9yLS0pOgorICAgICAg
ICAoY29uc3RfaXRlcmF0b3I6Oml0ZXJhdG9yOjpvcGVyYXRvcis9KToKKyAgICAgICAgKGNvbnN0
X2l0ZXJhdG9yOjppdGVyYXRvcjo6b3BlcmF0b3ItPSk6CisgICAgICAgIChjb25zdF9pdGVyYXRv
cjo6aXRlcmF0b3I6Om9wZXJhdG9yKyk6CisgICAgICAgIChjb25zdF9pdGVyYXRvcjo6aXRlcmF0
b3I6Om9wZXJhdG9yLSk6CisgICAgICAgICogdGVzdHMvcXdlYmVsZW1lbnQvdHN0X3F3ZWJlbGVt
ZW50LmNwcDoKKyAgICAgICAgKHRzdF9RV2ViRWxlbWVudDo6bm9uQ29uc3RJdGVyYXRvcik6Cisg
ICAgICAgICh0c3RfUVdlYkVsZW1lbnQ6OmNvbnN0SXRlcmF0b3IpOgorCiAyMDA5LTExLTA5ICBM
YXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBLZW5uZXRoIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC90ZXN0
cy9xd2ViZWxlbWVudC90c3RfcXdlYmVsZW1lbnQuY3BwIGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJl
bGVtZW50L3RzdF9xd2ViZWxlbWVudC5jcHAKaW5kZXggY2Y4M2ZlOC4uMTE3MzkzYSAxMDA2NDQK
LS0tIGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJlbGVtZW50L3RzdF9xd2ViZWxlbWVudC5jcHAKKysr
IGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJlbGVtZW50L3RzdF9xd2ViZWxlbWVudC5jcHAKQEAgLTcx
LDYgKzcxLDggQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIGNsYXNzZXMoKTsKICAgICB2b2lk
IG5hbWVzcGFjZVVSSSgpOwogICAgIHZvaWQgaXRlcmF0aW9uKCk7CisgICAgdm9pZCBub25Db25z
dEl0ZXJhdG9yKCk7CisgICAgdm9pZCBjb25zdEl0ZXJhdG9yKCk7CiAgICAgdm9pZCBmb3JlYWNo
TWFuaXB1bGF0aW9uKCk7CiAgICAgdm9pZCBlbXB0eUNvbGxlY3Rpb24oKTsKICAgICB2b2lkIGFw
cGVuZENvbGxlY3Rpb24oKTsKQEAgLTMwNSw2ICszMDcsMzcgQEAgdm9pZCB0c3RfUVdlYkVsZW1l
bnQ6Oml0ZXJhdGlvbigpCiAgICAgUUNPTVBBUkUocGFyYXMuYXQoMSksIHBhcmFzLmxhc3QoKSk7
CiB9CiAKK3ZvaWQgdHN0X1FXZWJFbGVtZW50Ojpub25Db25zdEl0ZXJhdG9yKCkKK3sKKyAgICBR
U3RyaW5nIGh0bWwgPSAiPGJvZHk+PHA+Zmlyc3QgcGFyYTwvcD48cD5zZWNvbmQgcGFyYTwvcD48
L2JvZHk+IjsKKyAgICBtX21haW5GcmFtZS0+c2V0SHRtbChodG1sKTsKKyAgICBRV2ViRWxlbWVu
dCBib2R5ID0gbV9tYWluRnJhbWUtPmRvY3VtZW50RWxlbWVudCgpOworICAgIFFXZWJFbGVtZW50
Q29sbGVjdGlvbiBwYXJhcyA9IGJvZHkuZmluZEFsbCgicCIpOworCisgICAgUVdlYkVsZW1lbnRD
b2xsZWN0aW9uOjppdGVyYXRvciBpdCA9IHBhcmFzLmJlZ2luKCk7CisgICAgUUNPTVBBUkUoKml0
LCBwYXJhcy5hdCgwKSk7CisgICAgKytpdDsKKyAgICAoKml0KS5lbmNsb3NlV2l0aCgiPGRpdj4i
KTsKKyAgICBRQ09NUEFSRSgqaXQsIHBhcmFzLmF0KDEpKTsKKyAgICArK2l0OworICAgIFFDT01Q
QVJFKGl0LCAgcGFyYXMuZW5kKCkpOworfQorCit2b2lkIHRzdF9RV2ViRWxlbWVudDo6Y29uc3RJ
dGVyYXRvcigpCit7CisgICAgUVN0cmluZyBodG1sID0gIjxib2R5PjxwPmZpcnN0IHBhcmE8L3A+
PHA+c2Vjb25kIHBhcmE8L3A+PC9ib2R5PiI7CisgICAgbV9tYWluRnJhbWUtPnNldEh0bWwoaHRt
bCk7CisgICAgUVdlYkVsZW1lbnQgYm9keSA9IG1fbWFpbkZyYW1lLT5kb2N1bWVudEVsZW1lbnQo
KTsKKyAgICBjb25zdCBRV2ViRWxlbWVudENvbGxlY3Rpb24gcGFyYXMgPSBib2R5LmZpbmRBbGwo
InAiKTsKKworICAgIFFXZWJFbGVtZW50Q29sbGVjdGlvbjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBw
YXJhcy5iZWdpbigpOworICAgIFFDT01QQVJFKCppdCwgcGFyYXMuYXQoMCkpOworICAgICsraXQ7
CisgICAgUUNPTVBBUkUoKml0LCBwYXJhcy5hdCgxKSk7CisgICAgKytpdDsKKyAgICBRQ09NUEFS
RShpdCwgIHBhcmFzLmVuZCgpKTsKK30KKwogdm9pZCB0c3RfUVdlYkVsZW1lbnQ6OmZvcmVhY2hN
YW5pcHVsYXRpb24oKQogewogICAgIFFTdHJpbmcgaHRtbCA9ICI8Ym9keT48cD5maXJzdCBwYXJh
PC9wPjxwPnNlY29uZCBwYXJhPC9wPjwvYm9keT4iOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42760</attachid>
            <date>2009-11-09 09:13:19 -0800</date>
            <delta_ts>2009-11-09 09:19:08 -0800</delta_ts>
            <desc>Add a non-const iterator to QWebElementCollection</desc>
            <filename>iterator_qwebelementcollection.patch</filename>
            <type>text/plain</type>
            <size>9152</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYmVsZW1lbnQuaCBiL1dlYktpdC9xdC9BcGkv
cXdlYmVsZW1lbnQuaAppbmRleCBhMThkMjYyLi45Y2IxZWExIDEwMDY0NAotLS0gYS9XZWJLaXQv
cXQvQXBpL3F3ZWJlbGVtZW50LmgKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2ViZWxlbWVudC5oCkBA
IC0xNzcsNiArMTc3LDcgQEAgcHVibGljOgogCiAgICAgaW50IGNvdW50KCkgY29uc3Q7CiAgICAg
UVdlYkVsZW1lbnQgYXQoaW50IGkpIGNvbnN0OworICAgIGlubGluZSBRV2ViRWxlbWVudCBvcGVy
YXRvcltdKGludCBpKSBjb25zdCB7IHJldHVybiBhdChpKTsgfQogCiAgICAgaW5saW5lIFFXZWJF
bGVtZW50IGZpcnN0KCkgY29uc3QgeyByZXR1cm4gYXQoMCk7IH0KICAgICBpbmxpbmUgUVdlYkVs
ZW1lbnQgbGFzdCgpIGNvbnN0IHsgcmV0dXJuIGF0KGNvdW50KCkgLSAxKTsgfQpAQCAtMTg1LDM5
ICsxODYsNjkgQEAgcHVibGljOgogCiAgICAgY2xhc3MgY29uc3RfaXRlcmF0b3IgewogICAgICAg
IHB1YmxpYzoKLSAgICAgICAgICAgaW50IGk7Ci0gICAgICAgICAgIGNvbnN0IFFXZWJFbGVtZW50
Q29sbGVjdGlvbiAqczsKLQotICAgICAgICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3IoY29uc3Qg
UVdlYkVsZW1lbnRDb2xsZWN0aW9uICpjb2xsZWN0aW9uLCBpbnQgaW5kZXgpIDogaShpbmRleCks
IHMoY29sbGVjdGlvbikge30KLSAgICAgICAgICAgaW5saW5lIGNvbnN0X2l0ZXJhdG9yKGNvbnN0
IGNvbnN0X2l0ZXJhdG9yICZvKSA6IGkoby5pKSwgcyhvLnMpIHt9CisgICAgICAgICAgIGlubGlu
ZSBjb25zdF9pdGVyYXRvcihjb25zdCBRV2ViRWxlbWVudENvbGxlY3Rpb24qIGNvbGxlY3Rpb24s
IGludCBpbmRleCkgOiBpKGluZGV4KSwgY29sbGVjdGlvbihjb2xsZWN0aW9uKSB7fQorICAgICAg
ICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3IoY29uc3QgY29uc3RfaXRlcmF0b3ImIG8pIDogaShv
LmkpLCBjb2xsZWN0aW9uKG8uY29sbGVjdGlvbikge30KIAotICAgICAgICAgICBpbmxpbmUgY29u
c3QgUVdlYkVsZW1lbnQgb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gcy0+YXQoaSk7IH0KKyAg
ICAgICAgICAgaW5saW5lIGNvbnN0IFFXZWJFbGVtZW50IG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0
dXJuIGNvbGxlY3Rpb24tPmF0KGkpOyB9CiAKLSAgICAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBjb25zdF9pdGVyYXRvciYgbykgY29uc3QgeyByZXR1cm4gaSA9PSBvLmkgJiYg
cyA9PSBvLnM7IH0KLSAgICAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBjb25z
dF9pdGVyYXRvciYgbykgY29uc3QgeyByZXR1cm4gaSAhPSBvLmkgfHwgcyAhPSBvLnM7IH0KKyAg
ICAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBjb25zdF9pdGVyYXRvciYgbykg
Y29uc3QgeyByZXR1cm4gaSA9PSBvLmkgJiYgY29sbGVjdGlvbiA9PSBvLmNvbGxlY3Rpb247IH0K
KyAgICAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBjb25zdF9pdGVyYXRvciYg
bykgY29uc3QgeyByZXR1cm4gaSAhPSBvLmkgfHwgY29sbGVjdGlvbiAhPSBvLmNvbGxlY3Rpb247
IH0KICAgICAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I8KGNvbnN0IGNvbnN0X2l0ZXJhdG9y
JiBvKSBjb25zdCB7IHJldHVybiBpIDwgby5pOyB9CiAgICAgICAgICAgIGlubGluZSBib29sIG9w
ZXJhdG9yPD0oY29uc3QgY29uc3RfaXRlcmF0b3ImIG8pIGNvbnN0IHsgcmV0dXJuIGkgPD0gby5p
OyB9CiAgICAgICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yPihjb25zdCBjb25zdF9pdGVyYXRv
ciYgbykgY29uc3QgeyByZXR1cm4gaSA+IG8uaTsgfQogICAgICAgICAgICBpbmxpbmUgYm9vbCBv
cGVyYXRvcj49KGNvbnN0IGNvbnN0X2l0ZXJhdG9yJiBvKSBjb25zdCB7IHJldHVybiBpID49IG8u
aTsgfQogCi0gICAgICAgICAgIGlubGluZSBjb25zdF9pdGVyYXRvciAmb3BlcmF0b3IrKygpIHsg
KytpOyByZXR1cm4gKnRoaXM7IH0KLSAgICAgICAgICAgaW5saW5lIGNvbnN0X2l0ZXJhdG9yIG9w
ZXJhdG9yKysoaW50KSB7IGNvbnN0X2l0ZXJhdG9yIG4ocywgaSk7ICsraTsgcmV0dXJuIG47IH0K
LSAgICAgICAgICAgaW5saW5lIGNvbnN0X2l0ZXJhdG9yICZvcGVyYXRvci0tKCkgeyBpLS07IHJl
dHVybiAqdGhpczsgfQotICAgICAgICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3Igb3BlcmF0b3It
LShpbnQpIHsgY29uc3RfaXRlcmF0b3IgbihzLCBpKTsgaS0tOyByZXR1cm4gbjsgfQotICAgICAg
ICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3IgJm9wZXJhdG9yKz0oaW50IGopIHsgaSArPSBqOyBy
ZXR1cm4gKnRoaXM7IH0KLSAgICAgICAgICAgaW5saW5lIGNvbnN0X2l0ZXJhdG9yICZvcGVyYXRv
ci09KGludCBqKSB7IGkgLT0gajsgcmV0dXJuICp0aGlzOyB9Ci0gICAgICAgICAgIGlubGluZSBj
b25zdF9pdGVyYXRvciBvcGVyYXRvcisoaW50IGopIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2l0ZXJh
dG9yKHMsIGkgKyBqKTsgfQotICAgICAgICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3Igb3BlcmF0
b3ItKGludCBqKSBjb25zdCB7IHJldHVybiBjb25zdF9pdGVyYXRvcihzLCBpIC0gaik7IH0KKyAg
ICAgICAgICAgaW5saW5lIGNvbnN0X2l0ZXJhdG9yJiBvcGVyYXRvcisrKCkgeyArK2k7IHJldHVy
biAqdGhpczsgfQorICAgICAgICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3Igb3BlcmF0b3IrKyhp
bnQpIHsgY29uc3RfaXRlcmF0b3Igbihjb2xsZWN0aW9uLCBpKTsgKytpOyByZXR1cm4gbjsgfQor
ICAgICAgICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3ImIG9wZXJhdG9yLS0oKSB7IGktLTsgcmV0
dXJuICp0aGlzOyB9CisgICAgICAgICAgIGlubGluZSBjb25zdF9pdGVyYXRvciBvcGVyYXRvci0t
KGludCkgeyBjb25zdF9pdGVyYXRvciBuKGNvbGxlY3Rpb24sIGkpOyBpLS07IHJldHVybiBuOyB9
CisgICAgICAgICAgIGlubGluZSBjb25zdF9pdGVyYXRvciYgb3BlcmF0b3IrPShpbnQgaikgeyBp
ICs9IGo7IHJldHVybiAqdGhpczsgfQorICAgICAgICAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3Im
IG9wZXJhdG9yLT0oaW50IGopIHsgaSAtPSBqOyByZXR1cm4gKnRoaXM7IH0KKyAgICAgICAgICAg
aW5saW5lIGNvbnN0X2l0ZXJhdG9yIG9wZXJhdG9yKyhpbnQgaikgY29uc3QgeyByZXR1cm4gY29u
c3RfaXRlcmF0b3IoY29sbGVjdGlvbiwgaSArIGopOyB9CisgICAgICAgICAgIGlubGluZSBjb25z
dF9pdGVyYXRvciBvcGVyYXRvci0oaW50IGopIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2l0ZXJhdG9y
KGNvbGxlY3Rpb24sIGkgLSBqKTsgfQogICAgICAgICAgICBpbmxpbmUgaW50IG9wZXJhdG9yLShj
b25zdF9pdGVyYXRvciBqKSBjb25zdCB7IHJldHVybiBpIC0gai5pOyB9CiAgICAgICAgcHJpdmF0
ZToKLSAgICAgICAgICAgIGlubGluZSBjb25zdF9pdGVyYXRvcigpIDogaSgwKSwgcygwKSB7fQor
ICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICBjb25zdCBRV2ViRWxlbWVudENvbGxlY3Rp
b24qIGNvbnN0IGNvbGxlY3Rpb247CiAgICAgfTsKICAgICBmcmllbmQgY2xhc3MgY29uc3RfaXRl
cmF0b3I7CiAKLSAgICBpbmxpbmUgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVy
biBjb25zdF9pdGVyYXRvcih0aGlzLCAwKTsgfQotICAgIGlubGluZSBjb25zdF9pdGVyYXRvciBl
bmQoKSBjb25zdCB7IHJldHVybiBjb25zdF9pdGVyYXRvcih0aGlzLCBjb3VudCgpKTsgfQotICAg
IGlubGluZSBRV2ViRWxlbWVudCBvcGVyYXRvcltdKGludCBpKSBjb25zdCB7IHJldHVybiBhdChp
KTsgfQorICAgIGlubGluZSBjb25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIGNv
bnN0QmVnaW4oKTsgfQorICAgIGlubGluZSBjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdCB7IHJl
dHVybiBjb25zdEVuZCgpOyB9CisgICAgaW5saW5lIGNvbnN0X2l0ZXJhdG9yIGNvbnN0QmVnaW4o
KSBjb25zdCB7IHJldHVybiBjb25zdF9pdGVyYXRvcih0aGlzLCAwKTsgfQorICAgIGlubGluZSBj
b25zdF9pdGVyYXRvciBjb25zdEVuZCgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKHRo
aXMsIGNvdW50KCkpOyB9OworCisgICAgY2xhc3MgaXRlcmF0b3IgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgaW5saW5lIGl0ZXJhdG9yKGNvbnN0IFFXZWJFbGVtZW50Q29sbGVjdGlvbiogY29sbGVj
dGlvbiwgaW50IGluZGV4KSA6IGkoaW5kZXgpLCBjb2xsZWN0aW9uKGNvbGxlY3Rpb24pIHt9Cisg
ICAgICAgIGlubGluZSBpdGVyYXRvcihjb25zdCBpdGVyYXRvciYgbykgOiBpKG8uaSksIGNvbGxl
Y3Rpb24oby5jb2xsZWN0aW9uKSB7fQorCisgICAgICAgIGlubGluZSBRV2ViRWxlbWVudCBvcGVy
YXRvciooKSBjb25zdCB7IHJldHVybiBjb2xsZWN0aW9uLT5hdChpKTsgfQorCisgICAgICAgIGlu
bGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgaXRlcmF0b3ImIG8pIGNvbnN0IHsgcmV0dXJuIGkg
PT0gby5pICYmIGNvbGxlY3Rpb24gPT0gby5jb2xsZWN0aW9uOyB9CisgICAgICAgIGlubGluZSBi
b29sIG9wZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG8pIGNvbnN0IHsgcmV0dXJuIGkgIT0gby5p
IHx8IGNvbGxlY3Rpb24gIT0gby5jb2xsZWN0aW9uOyB9CisgICAgICAgIGlubGluZSBib29sIG9w
ZXJhdG9yPChjb25zdCBpdGVyYXRvciYgbykgY29uc3QgeyByZXR1cm4gaSA8IG8uaTsgfQorICAg
ICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcjw9KGNvbnN0IGl0ZXJhdG9yJiBvKSBjb25zdCB7IHJl
dHVybiBpIDw9IG8uaTsgfQorICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcj4oY29uc3QgaXRl
cmF0b3ImIG8pIGNvbnN0IHsgcmV0dXJuIGkgPiBvLmk7IH0KKyAgICAgICAgaW5saW5lIGJvb2wg
b3BlcmF0b3I+PShjb25zdCBpdGVyYXRvciYgbykgY29uc3QgeyByZXR1cm4gaSA+PSBvLmk7IH0K
KworICAgICAgICBpbmxpbmUgaXRlcmF0b3ImIG9wZXJhdG9yKysoKSB7ICsraTsgcmV0dXJuICp0
aGlzOyB9CisgICAgICAgIGlubGluZSBpdGVyYXRvciBvcGVyYXRvcisrKGludCkgeyBpdGVyYXRv
ciBuKGNvbGxlY3Rpb24sIGkpOyArK2k7IHJldHVybiBuOyB9CisgICAgICAgIGlubGluZSBpdGVy
YXRvciYgb3BlcmF0b3ItLSgpIHsgaS0tOyByZXR1cm4gKnRoaXM7IH0KKyAgICAgICAgaW5saW5l
IGl0ZXJhdG9yIG9wZXJhdG9yLS0oaW50KSB7IGl0ZXJhdG9yIG4oY29sbGVjdGlvbiwgaSk7IGkt
LTsgcmV0dXJuIG47IH0KKyAgICAgICAgaW5saW5lIGl0ZXJhdG9yJiBvcGVyYXRvcis9KGludCBq
KSB7IGkgKz0gajsgcmV0dXJuICp0aGlzOyB9CisgICAgICAgIGlubGluZSBpdGVyYXRvciYgb3Bl
cmF0b3ItPShpbnQgaikgeyBpIC09IGo7IHJldHVybiAqdGhpczsgfQorICAgICAgICBpbmxpbmUg
aXRlcmF0b3Igb3BlcmF0b3IrKGludCBqKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcihjb2xsZWN0
aW9uLCBpICsgaik7IH0KKyAgICAgICAgaW5saW5lIGl0ZXJhdG9yIG9wZXJhdG9yLShpbnQgaikg
Y29uc3QgeyByZXR1cm4gaXRlcmF0b3IoY29sbGVjdGlvbiwgaSAtIGopOyB9CisgICAgICAgIGlu
bGluZSBpbnQgb3BlcmF0b3ItKGl0ZXJhdG9yIGopIGNvbnN0IHsgcmV0dXJuIGkgLSBqLmk7IH0K
KyAgICBwcml2YXRlOgorICAgICAgICBpbnQgaTsKKyAgICAgICAgY29uc3QgUVdlYkVsZW1lbnRD
b2xsZWN0aW9uKiBjb25zdCBjb2xsZWN0aW9uOworICAgIH07CisgICAgZnJpZW5kIGNsYXNzIGl0
ZXJhdG9yOwogCisgICAgaW5saW5lIGl0ZXJhdG9yIGJlZ2luKCkgeyByZXR1cm4gaXRlcmF0b3Io
dGhpcywgMCk7IH0KKyAgICBpbmxpbmUgaXRlcmF0b3IgZW5kKCkgIHsgcmV0dXJuIGl0ZXJhdG9y
KHRoaXMsIGNvdW50KCkpOyB9CiBwcml2YXRlOgogICAgIFFFeHBsaWNpdGx5U2hhcmVkRGF0YVBv
aW50ZXI8UVdlYkVsZW1lbnRDb2xsZWN0aW9uUHJpdmF0ZT4gZDsKIH07CmRpZmYgLS1naXQgYS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAyODZlMDBhLi5j
MTYxMDQ0IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAwOS0xMS0wOSAgQmVuamFtaW4gUG91bGFpbiAg
PGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMDc3MgorICAgICAgICBBZGQgYSBub24tY29uc3QgaXRlcmF0b3IgdG8gUVdlYkVsZW1l
bnRDb2xsZWN0aW9uLgorICAgICAgICBNb3ZlIHRoZSB0d28gYXR0cmlidXRlcyBvZiB0aGUgaXRl
cmF0b3IgdG8gcHJpdmF0ZS4KKworICAgICAgICAqIEFwaS9xd2ViZWxlbWVudC5oOgorICAgICAg
ICAoY29uc3RfaXRlcmF0b3I6OmJlZ2luKToKKyAgICAgICAgKGNvbnN0X2l0ZXJhdG9yOjplbmQp
OgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6OmNvbnN0QmVnaW4pOgorICAgICAgICAoY29uc3Rf
aXRlcmF0b3I6OmNvbnN0RW5kKToKKyAgICAgICAgKGNvbnN0X2l0ZXJhdG9yOjppdGVyYXRvcjo6
aXRlcmF0b3IpOgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6Oml0ZXJhdG9yOjpvcGVyYXRvciop
OgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6Oml0ZXJhdG9yOjpvcGVyYXRvcj09KToKKyAgICAg
ICAgKGNvbnN0X2l0ZXJhdG9yOjppdGVyYXRvcjo6b3BlcmF0b3IhPSk6CisgICAgICAgIChjb25z
dF9pdGVyYXRvcjo6aXRlcmF0b3I6Om9wZXJhdG9yPCk6CisgICAgICAgIChjb25zdF9pdGVyYXRv
cjo6aXRlcmF0b3I6Om9wZXJhdG9yPD0pOgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6Oml0ZXJh
dG9yOjpvcGVyYXRvcj4pOgorICAgICAgICAoY29uc3RfaXRlcmF0b3I6Oml0ZXJhdG9yOjpvcGVy
YXRvcj49KToKKyAgICAgICAgKGNvbnN0X2l0ZXJhdG9yOjppdGVyYXRvcjo6b3BlcmF0b3IrKyk6
CisgICAgICAgIChjb25zdF9pdGVyYXRvcjo6aXRlcmF0b3I6Om9wZXJhdG9yLS0pOgorICAgICAg
ICAoY29uc3RfaXRlcmF0b3I6Oml0ZXJhdG9yOjpvcGVyYXRvcis9KToKKyAgICAgICAgKGNvbnN0
X2l0ZXJhdG9yOjppdGVyYXRvcjo6b3BlcmF0b3ItPSk6CisgICAgICAgIChjb25zdF9pdGVyYXRv
cjo6aXRlcmF0b3I6Om9wZXJhdG9yKyk6CisgICAgICAgIChjb25zdF9pdGVyYXRvcjo6aXRlcmF0
b3I6Om9wZXJhdG9yLSk6CisgICAgICAgICogdGVzdHMvcXdlYmVsZW1lbnQvdHN0X3F3ZWJlbGVt
ZW50LmNwcDoKKyAgICAgICAgKHRzdF9RV2ViRWxlbWVudDo6bm9uQ29uc3RJdGVyYXRvcik6Cisg
ICAgICAgICh0c3RfUVdlYkVsZW1lbnQ6OmNvbnN0SXRlcmF0b3IpOgorCiAyMDA5LTExLTA5ICBM
YXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBLZW5uZXRoIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC90ZXN0
cy9xd2ViZWxlbWVudC90c3RfcXdlYmVsZW1lbnQuY3BwIGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJl
bGVtZW50L3RzdF9xd2ViZWxlbWVudC5jcHAKaW5kZXggY2Y4M2ZlOC4uMTE3MzkzYSAxMDA2NDQK
LS0tIGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJlbGVtZW50L3RzdF9xd2ViZWxlbWVudC5jcHAKKysr
IGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJlbGVtZW50L3RzdF9xd2ViZWxlbWVudC5jcHAKQEAgLTcx
LDYgKzcxLDggQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIGNsYXNzZXMoKTsKICAgICB2b2lk
IG5hbWVzcGFjZVVSSSgpOwogICAgIHZvaWQgaXRlcmF0aW9uKCk7CisgICAgdm9pZCBub25Db25z
dEl0ZXJhdG9yKCk7CisgICAgdm9pZCBjb25zdEl0ZXJhdG9yKCk7CiAgICAgdm9pZCBmb3JlYWNo
TWFuaXB1bGF0aW9uKCk7CiAgICAgdm9pZCBlbXB0eUNvbGxlY3Rpb24oKTsKICAgICB2b2lkIGFw
cGVuZENvbGxlY3Rpb24oKTsKQEAgLTMwNSw2ICszMDcsMzcgQEAgdm9pZCB0c3RfUVdlYkVsZW1l
bnQ6Oml0ZXJhdGlvbigpCiAgICAgUUNPTVBBUkUocGFyYXMuYXQoMSksIHBhcmFzLmxhc3QoKSk7
CiB9CiAKK3ZvaWQgdHN0X1FXZWJFbGVtZW50Ojpub25Db25zdEl0ZXJhdG9yKCkKK3sKKyAgICBR
U3RyaW5nIGh0bWwgPSAiPGJvZHk+PHA+Zmlyc3QgcGFyYTwvcD48cD5zZWNvbmQgcGFyYTwvcD48
L2JvZHk+IjsKKyAgICBtX21haW5GcmFtZS0+c2V0SHRtbChodG1sKTsKKyAgICBRV2ViRWxlbWVu
dCBib2R5ID0gbV9tYWluRnJhbWUtPmRvY3VtZW50RWxlbWVudCgpOworICAgIFFXZWJFbGVtZW50
Q29sbGVjdGlvbiBwYXJhcyA9IGJvZHkuZmluZEFsbCgicCIpOworCisgICAgUVdlYkVsZW1lbnRD
b2xsZWN0aW9uOjppdGVyYXRvciBpdCA9IHBhcmFzLmJlZ2luKCk7CisgICAgUUNPTVBBUkUoKml0
LCBwYXJhcy5hdCgwKSk7CisgICAgKytpdDsKKyAgICAoKml0KS5lbmNsb3NlV2l0aCgiPGRpdj4i
KTsKKyAgICBRQ09NUEFSRSgqaXQsIHBhcmFzLmF0KDEpKTsKKyAgICArK2l0OworICAgIFFDT01Q
QVJFKGl0LCAgcGFyYXMuZW5kKCkpOworfQorCit2b2lkIHRzdF9RV2ViRWxlbWVudDo6Y29uc3RJ
dGVyYXRvcigpCit7CisgICAgUVN0cmluZyBodG1sID0gIjxib2R5PjxwPmZpcnN0IHBhcmE8L3A+
PHA+c2Vjb25kIHBhcmE8L3A+PC9ib2R5PiI7CisgICAgbV9tYWluRnJhbWUtPnNldEh0bWwoaHRt
bCk7CisgICAgUVdlYkVsZW1lbnQgYm9keSA9IG1fbWFpbkZyYW1lLT5kb2N1bWVudEVsZW1lbnQo
KTsKKyAgICBjb25zdCBRV2ViRWxlbWVudENvbGxlY3Rpb24gcGFyYXMgPSBib2R5LmZpbmRBbGwo
InAiKTsKKworICAgIFFXZWJFbGVtZW50Q29sbGVjdGlvbjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBw
YXJhcy5iZWdpbigpOworICAgIFFDT01QQVJFKCppdCwgcGFyYXMuYXQoMCkpOworICAgICsraXQ7
CisgICAgUUNPTVBBUkUoKml0LCBwYXJhcy5hdCgxKSk7CisgICAgKytpdDsKKyAgICBRQ09NUEFS
RShpdCwgIHBhcmFzLmVuZCgpKTsKK30KKwogdm9pZCB0c3RfUVdlYkVsZW1lbnQ6OmZvcmVhY2hN
YW5pcHVsYXRpb24oKQogewogICAgIFFTdHJpbmcgaHRtbCA9ICI8Ym9keT48cD5maXJzdCBwYXJh
PC9wPjxwPnNlY29uZCBwYXJhPC9wPjwvYm9keT4iOwo=
</data>
<flag name="review"
          id="24325"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
      

    </bug>

</bugzilla>