<?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>49514</bug_id>
          
          <creation_ts>2010-11-14 14:03:38 -0800</creation_ts>
          <short_desc>[Gtk]  atk_text_get_selection returns the wrong offsets after a link</short_desc>
          <delta_ts>2010-11-18 06:28:10 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>25531</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Joanmarie Diggs">jdiggs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>apinheiro</cc>
    
    <cc>eric</cc>
    
    <cc>mario</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>309105</commentid>
    <comment_count>0</comment_count>
      <attachid>73857</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-11-14 14:03:38 -0800</bug_when>
    <thetext>Created attachment 73857
test case

Steps to reproduce:

1. Load the test case in Epiphany and launch Accerciser.
2. For each paragraph:
   a. Select the word &apos;test&apos;
   b. Select the paragraph in Accerciser&apos;s object tree.
   c. With the pargraph selected, get the first selection by
      typing &apos;acc.queryText().getSelection(0)&apos; in the iPython
      console.

Expected results: The startOffset and endOffset for the selection would be the same for each paragraph, because the word &apos;test&apos; appears at the same character offsest in each paragraph.

Actual results: The startOffset and endOffset for the selection in each paragraph is different, with offset 0 appearing to be the first character after the link:

  In [1]: acc.queryText().getSelection(0)
  Out[1]: (10, 14)
  In [2]: acc.queryText().getSelection(0)
  Out[2]: (6, 10)
  In [3]: acc.queryText().getSelection(0)
  Out[3]: (3, 7)
  In [4]: acc.queryText().getSelection(0)
  Out[4]: (1, 5)

Impact: Orca incorrectly states that text is not selected when it is selected. In addition, it displays the wrong text as being selected on the braille display.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309106</commentid>
    <comment_count>1</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-11-14 14:04:25 -0800</bug_when>
    <thetext>Note: I&apos;m blocking bug 25531 as correctly indicating text selection is part of the basic functionality users will expect to have in Yelp 3.0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309269</commentid>
    <comment_count>2</comment_count>
      <attachid>73892</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2010-11-15 07:09:12 -0800</bug_when>
    <thetext>Created attachment 73892
Patch proposal

It looks we were not calculating the startOffset value properly, by taking into account the possibility of some embedded objects being present in the paragraph, previous to the currently selected text (my fault).

The attached patch would fix this by checking the startOffset value more carefully. As the patch also fixes a bunch of not-properl-ended-comments (without &apos;.&apos;), I&apos;m pasting here the so simple diff for simplicity of review:

In getSelectionOffsetsForObject(), at AccessibilityObjectWrapperAtk.cpp:

   [...]
        Node* lastLeafNode = node-&gt;lastDescendant();
        if (selRange-&gt;isPointInRange(lastLeafNode, lastOffsetInNode(lastLeafNode), ec))
            nodeRangeEnd = lastPositionInNode(lastLeafNode);
        else
            nodeRangeEnd = selRange-&gt;endPosition();
 
   -    // Set values for start and end offsets
   +  // Calculate position of the selected range inside the object.
   +  Position parentFirstPosition = firstPositionInNode(node);
   +  RefPtr&lt;Range&gt; rangeInParent = Range::create(node-&gt;document(), parentFirstPosition, nodeRangeStart);
   +
   +  // Set values for start and end offsets.
   +  startOffset = TextIterator::rangeLength(rangeInParent.get());
        RefPtr&lt;Range&gt; nodeRange = Range::create(node-&gt;document(), nodeRangeStart, nodeRangeEnd);
   -    startOffset = nodeRangeStart.offsetInContainerNode();
        endOffset = startOffset + TextIterator::rangeLength(nodeRange.get());
   [...]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310367</commentid>
    <comment_count>3</comment_count>
      <attachid>74131</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2010-11-17 10:31:40 -0800</bug_when>
    <thetext>Created attachment 74131
Patch proposal + Unit test

Attaching a new patch adding the needed bits in an already existing test case to check this specific subcase (double checked that this new check fails without this patch, in case you wonder).

So, this is the one to be reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310791</commentid>
    <comment_count>4</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2010-11-18 04:42:49 -0800</bug_when>
    <thetext>Committed r72284: &lt;http://trac.webkit.org/changeset/72284&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310808</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-18 05:31:13 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/72284 might have broken GTK Linux 32-bit Release
The following tests are not passing:
fast/css/line-height-determined-by-primary-font.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310829</commentid>
    <comment_count>6</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2010-11-18 06:28:10 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; http://trac.webkit.org/changeset/72284 might have broken GTK Linux 32-bit Release
&gt; The following tests are not passing:
&gt; fast/css/line-height-determined-by-primary-font.html

I have reviewed both the patch and the layout test and the problem must be somewhere else... Other than that, that test seems to be passing right now. A flaky test perhaps?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>73857</attachid>
            <date>2010-11-14 14:03:38 -0800</date>
            <delta_ts>2010-11-14 14:03:38 -0800</delta_ts>
            <desc>test case</desc>
            <filename>selection.html</filename>
            <type>text/html</type>
            <size>214</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8dGl0bGU+VGVzdDwvdGl0bGU+CjwvaGVhZD4KPGJvZHk+CjxwPlRoaXMg
aXMgYSB0ZXN0LjwvcD4KPHA+PGEgaHJlZj0iZm9vIj5UaGlzPC9hPiBpcyBhIHRlc3QuPC9wPgo8
cD5UaGlzIDxhIGhyZWY9ImJhciI+aXM8L2E+IGEgdGVzdC48L3A+CjxwPlRoaXMgaXMgPGEgaHJl
Zj0iZm9vYmFyIj5hPC9hPiB0ZXN0LjwvcD4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73892</attachid>
            <date>2010-11-15 07:09:12 -0800</date>
            <delta_ts>2010-11-17 10:31:40 -0800</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-2010-11-15-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>5736</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBiYzM1ZDc5MmI2ZDk2MmUzOWY5ZWE5NzZjZTFlMTY5MjY5OTQzZTUwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBNb24sIDE1IE5vdiAyMDEwIDE2OjAzOjIwICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMC0xMS0xNSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR3RrXSAgYXRr
X3RleHRfZ2V0X3NlbGVjdGlvbiByZXR1cm5zIHRoZSB3cm9uZyBvZmZzZXRzIGFmdGVyIGEgbGlu
awogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTUxNAoK
ICAgICAgICBDb25zaWRlciBwb3NzaWJsZSBlbWJlZGRlZCBvYmplY3RzIHRvIGNhbGN1bGF0ZSBz
dGFydE9mZnNldC4KCiAgICAgICAgU28gZmFyIHdlIHdlcmUgdXNpbmcgb2Zmc2V0SW5Db250YWlu
ZXJOb2RlKCkgdG8gY2FsY3VsYXRlIHRoZQogICAgICAgIHZhbHVlIG9mIHN0YXJ0T2Zmc2V0IHdo
ZW4gY2hlY2tpbmcgdGhlIG9mZnNldHMgZm9yIHRoZSBjdXJyZW50CiAgICAgICAgc2VsZWN0aW9u
LCB3aGljaCB3YXMgd3JvbmcgYmVjYXVzZSB0aGF0IHdvdWxkbid0IHdvcmsgb2sgaWYgYW55CiAg
ICAgICAgZW1iZWRkZWQgb2JqZWN0IHdhcyBwcmVzZW50IGluIHRoZSBwYXJhZ3JhcGggYmVmb3Jl
IHRoZQogICAgICAgIHNlbGVjdGlvbi4gVGh1cywgd2UgbmVlZCB0byBjb25zaWRlciB0aGlzIGZh
Y3Qgd2hlbiBjYWxjdWxhdGluZwogICAgICAgIHRoZSBzdGFydE9mZnNldCBmcm9tIHRoZSBwb2lu
dCBvZiB2aWV3IG9mIHRoZSBvYmplY3QgdGhpcyBmdW5jdGlvbgogICAgICAgIGlzIGNhbGxlZCBv
biwgaW4gb3JkZXIgdG8gcmV0dXJuIHRoZSByaWdodCBhbmQgYWN0dWFsIHZhbHVlcy4KCiAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6
CiAgICAgICAgKGdldFNlbGVjdGlvbk9mZnNldHNGb3JPYmplY3QpOiBDaGVjayByYW5nZSBsZW5n
dGggZnJvbSB0aGUgZmlyc3QKICAgICAgICBwb3NpdGlvbiBpbiB0aGUgb2JqZWN0IHRoZSBmdW5j
dGlvbiBpcyBjYWxsZWQgb24gdW50aWwgdGhlIGZpcnN0CiAgICAgICAgcG9zaXRpb24gb2YgY3Vy
cmVudCBzZWxlY3Rpb24sIGFuZCB1c2UgaXQgYXMgc3RhcnRPZmZzZXQuCi0tLQogV2ViQ29yZS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIyICsrKysrKysr
KysrKysrKysrKysrCiAuLi4vZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCAg
ICAgICAgICB8ICAgMTYgKysrKysrKysrLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0
aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGVkNWYyZTAuLmQ4OTA5NzQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTAtMTEtMTUgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHdGtdICBh
dGtfdGV4dF9nZXRfc2VsZWN0aW9uIHJldHVybnMgdGhlIHdyb25nIG9mZnNldHMgYWZ0ZXIgYSBs
aW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTUx
NAorCisgICAgICAgIENvbnNpZGVyIHBvc3NpYmxlIGVtYmVkZGVkIG9iamVjdHMgdG8gY2FsY3Vs
YXRlIHN0YXJ0T2Zmc2V0LgorCisgICAgICAgIFNvIGZhciB3ZSB3ZXJlIHVzaW5nIG9mZnNldElu
Q29udGFpbmVyTm9kZSgpIHRvIGNhbGN1bGF0ZSB0aGUKKyAgICAgICAgdmFsdWUgb2Ygc3RhcnRP
ZmZzZXQgd2hlbiBjaGVja2luZyB0aGUgb2Zmc2V0cyBmb3IgdGhlIGN1cnJlbnQKKyAgICAgICAg
c2VsZWN0aW9uLCB3aGljaCB3YXMgd3JvbmcgYmVjYXVzZSB0aGF0IHdvdWxkbid0IHdvcmsgb2sg
aWYgYW55CisgICAgICAgIGVtYmVkZGVkIG9iamVjdCB3YXMgcHJlc2VudCBpbiB0aGUgcGFyYWdy
YXBoIGJlZm9yZSB0aGUKKyAgICAgICAgc2VsZWN0aW9uLiBUaHVzLCB3ZSBuZWVkIHRvIGNvbnNp
ZGVyIHRoaXMgZmFjdCB3aGVuIGNhbGN1bGF0aW5nCisgICAgICAgIHRoZSBzdGFydE9mZnNldCBm
cm9tIHRoZSBwb2ludCBvZiB2aWV3IG9mIHRoZSBvYmplY3QgdGhpcyBmdW5jdGlvbgorICAgICAg
ICBpcyBjYWxsZWQgb24sIGluIG9yZGVyIHRvIHJldHVybiB0aGUgcmlnaHQgYW5kIGFjdHVhbCB2
YWx1ZXMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckF0ay5jcHA6CisgICAgICAgIChnZXRTZWxlY3Rpb25PZmZzZXRzRm9yT2JqZWN0KTog
Q2hlY2sgcmFuZ2UgbGVuZ3RoIGZyb20gdGhlIGZpcnN0CisgICAgICAgIHBvc2l0aW9uIGluIHRo
ZSBvYmplY3QgdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiB1bnRpbCB0aGUgZmlyc3QKKyAgICAg
ICAgcG9zaXRpb24gb2YgY3VycmVudCBzZWxlY3Rpb24sIGFuZCB1c2UgaXQgYXMgc3RhcnRPZmZz
ZXQuCisKIDIwMTAtMTEtMDkgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0
ay5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQXRrLmNwcAppbmRleCA3MjZjZGIxLi4zZDQzNDVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAorKysgYi9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNw
cApAQCAtMTQzMywxMyArMTQzMywxMyBAQCBzdGF0aWMgdm9pZCBnZXRTZWxlY3Rpb25PZmZzZXRz
Rm9yT2JqZWN0KEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QsIFZpc2libAogICAgIGlm
ICghY29yZU9iamVjdC0+aXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIC8vIEVhcmx5IHJldHVybiBpZiB0aGUgc2VsZWN0aW9uIGRvZXNuJ3QgYWZm
ZWN0IHRoZSBzZWxlY3RlZCBub2RlCisgICAgLy8gRWFybHkgcmV0dXJuIGlmIHRoZSBzZWxlY3Rp
b24gZG9lc24ndCBhZmZlY3QgdGhlIHNlbGVjdGVkIG5vZGUuCiAgICAgaWYgKCFzZWxlY3Rpb25C
ZWxvbmdzVG9PYmplY3QoY29yZU9iamVjdCwgc2VsZWN0aW9uKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgLy8gV2UgbmVlZCB0byBmaW5kIHRoZSBleGFjdCBzdGFydCBhbmQgZW5kIHBvc2l0aW9u
cyBpbiB0aGUKICAgICAvLyBzZWxlY3RlZCBub2RlIHRoYXQgaW50ZXJzZWN0cyB0aGUgc2VsZWN0
aW9uLCB0byBsYXRlciBvbiBnZXQKLSAgICAvLyB0aGUgcmlnaHQgdmFsdWVzIGZvciB0aGUgZWZm
ZWN0aXZlIHN0YXJ0IGFuZCBlbmQgb2Zmc2V0cworICAgIC8vIHRoZSByaWdodCB2YWx1ZXMgZm9y
IHRoZSBlZmZlY3RpdmUgc3RhcnQgYW5kIGVuZCBvZmZzZXRzLgogICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwogICAgIFBvc2l0aW9uIG5vZGVSYW5nZVN0YXJ0OwogICAgIFBvc2l0aW9uIG5vZGVS
YW5nZUVuZDsKQEAgLTE0NDksNyArMTQ0OSw3IEBAIHN0YXRpYyB2b2lkIGdldFNlbGVjdGlvbk9m
ZnNldHNGb3JPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgVmlzaWJsCiAg
ICAgLy8gSWYgdGhlIHNlbGVjdGlvbiBhZmZlY3RzIHRoZSBzZWxlY3RlZCBub2RlIGFuZCBpdHMg
Zmlyc3QKICAgICAvLyBwb3NzaWJsZSBwb3NpdGlvbiBpcyBhbHNvIGluIHRoZSBzZWxlY3Rpb24s
IHdlIG11c3Qgc2V0CiAgICAgLy8gbm9kZVJhbmdlU3RhcnQgdG8gdGhhdCBwb3NpdGlvbiwgb3Ro
ZXJ3aXNlIHRvIHRoZSBzZWxlY3Rpb24ncwotICAgIC8vIHN0YXJ0IHBvc2l0aW9uIChpdCB3b3Vs
ZCBiZWxvbmcgdG8gdGhlIG5vZGUgYW55d2F5KQorICAgIC8vIHN0YXJ0IHBvc2l0aW9uIChpdCB3
b3VsZCBiZWxvbmcgdG8gdGhlIG5vZGUgYW55d2F5KS4KICAgICBOb2RlKiBmaXJzdExlYWZOb2Rl
ID0gbm9kZS0+Zmlyc3REZXNjZW5kYW50KCk7CiAgICAgaWYgKHNlbFJhbmdlLT5pc1BvaW50SW5S
YW5nZShmaXJzdExlYWZOb2RlLCAwLCBlYykpCiAgICAgICAgIG5vZGVSYW5nZVN0YXJ0ID0gZmly
c3RQb3NpdGlvbkluTm9kZShmaXJzdExlYWZOb2RlKTsKQEAgLTE0NTksMTYgKzE0NTksMjAgQEAg
c3RhdGljIHZvaWQgZ2V0U2VsZWN0aW9uT2Zmc2V0c0Zvck9iamVjdChBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBjb3JlT2JqZWN0LCBWaXNpYmwKICAgICAvLyBJZiB0aGUgc2VsZWN0aW9uIGFmZmVjdHMg
dGhlIHNlbGVjdGVkIG5vZGUgYW5kIGl0cyBsYXN0CiAgICAgLy8gcG9zc2libGUgcG9zaXRpb24g
aXMgYWxzbyBpbiB0aGUgc2VsZWN0aW9uLCB3ZSBtdXN0IHNldAogICAgIC8vIG5vZGVSYW5nZUVu
ZCB0byB0aGF0IHBvc2l0aW9uLCBvdGhlcndpc2UgdG8gdGhlIHNlbGVjdGlvbidzCi0gICAgLy8g
ZW5kIHBvc2l0aW9uIChpdCB3b3VsZCBiZWxvbmcgdG8gdGhlIG5vZGUgYW55d2F5KQorICAgIC8v
IGVuZCBwb3NpdGlvbiAoaXQgd291bGQgYmVsb25nIHRvIHRoZSBub2RlIGFueXdheSkuCiAgICAg
Tm9kZSogbGFzdExlYWZOb2RlID0gbm9kZS0+bGFzdERlc2NlbmRhbnQoKTsKICAgICBpZiAoc2Vs
UmFuZ2UtPmlzUG9pbnRJblJhbmdlKGxhc3RMZWFmTm9kZSwgbGFzdE9mZnNldEluTm9kZShsYXN0
TGVhZk5vZGUpLCBlYykpCiAgICAgICAgIG5vZGVSYW5nZUVuZCA9IGxhc3RQb3NpdGlvbkluTm9k
ZShsYXN0TGVhZk5vZGUpOwogICAgIGVsc2UKICAgICAgICAgbm9kZVJhbmdlRW5kID0gc2VsUmFu
Z2UtPmVuZFBvc2l0aW9uKCk7CiAKLSAgICAvLyBTZXQgdmFsdWVzIGZvciBzdGFydCBhbmQgZW5k
IG9mZnNldHMKKyAgICAvLyBDYWxjdWxhdGUgcG9zaXRpb24gb2YgdGhlIHNlbGVjdGVkIHJhbmdl
IGluc2lkZSB0aGUgb2JqZWN0LgorICAgIFBvc2l0aW9uIHBhcmVudEZpcnN0UG9zaXRpb24gPSBm
aXJzdFBvc2l0aW9uSW5Ob2RlKG5vZGUpOworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2VJblBhcmVu
dCA9IFJhbmdlOjpjcmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwgcGFyZW50Rmlyc3RQb3NpdGlvbiwg
bm9kZVJhbmdlU3RhcnQpOworCisgICAgLy8gU2V0IHZhbHVlcyBmb3Igc3RhcnQgYW5kIGVuZCBv
ZmZzZXRzLgorICAgIHN0YXJ0T2Zmc2V0ID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aChyYW5n
ZUluUGFyZW50LmdldCgpKTsKICAgICBSZWZQdHI8UmFuZ2U+IG5vZGVSYW5nZSA9IFJhbmdlOjpj
cmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZVJhbmdlU3RhcnQsIG5vZGVSYW5nZUVuZCk7Ci0g
ICAgc3RhcnRPZmZzZXQgPSBub2RlUmFuZ2VTdGFydC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKTsK
ICAgICBlbmRPZmZzZXQgPSBzdGFydE9mZnNldCArIFRleHRJdGVyYXRvcjo6cmFuZ2VMZW5ndGgo
bm9kZVJhbmdlLmdldCgpKTsKIH0KIAotLSAKMS43LjMuMgoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74131</attachid>
            <date>2010-11-17 10:31:40 -0800</date>
            <delta_ts>2010-11-17 10:44:57 -0800</delta_ts>
            <desc>Patch proposal + Unit test</desc>
            <filename>0001-2010-11-17-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>8787</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA5OTU5YTdmMTQxZTAyYWM4NjRjYjlmMDYyZmVlNDRjOWI1OTVjZjYyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBNb24sIDE1IE5vdiAyMDEwIDE2OjAzOjIwICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMC0xMS0xNyAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR3RrXSAgYXRr
X3RleHRfZ2V0X3NlbGVjdGlvbiByZXR1cm5zIHRoZSB3cm9uZyBvZmZzZXRzIGFmdGVyIGEgbGlu
awogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTUxNAoK
ICAgICAgICBDb25zaWRlciBwb3NzaWJsZSBlbWJlZGRlZCBvYmplY3RzIHRvIGNhbGN1bGF0ZSBz
dGFydE9mZnNldC4KCiAgICAgICAgU28gZmFyIHdlIHdlcmUgdXNpbmcgb2Zmc2V0SW5Db250YWlu
ZXJOb2RlKCkgdG8gY2FsY3VsYXRlIHRoZQogICAgICAgIHZhbHVlIG9mIHN0YXJ0T2Zmc2V0IHdo
ZW4gY2hlY2tpbmcgdGhlIG9mZnNldHMgZm9yIHRoZSBjdXJyZW50CiAgICAgICAgc2VsZWN0aW9u
LCB3aGljaCB3YXMgd3JvbmcgYmVjYXVzZSB0aGF0IHdvdWxkbid0IHdvcmsgb2sgaWYgYW55CiAg
ICAgICAgZW1iZWRkZWQgb2JqZWN0IHdhcyBwcmVzZW50IGluIHRoZSBwYXJhZ3JhcGggYmVmb3Jl
IHRoZQogICAgICAgIHNlbGVjdGlvbi4gVGh1cywgd2UgbmVlZCB0byBjb25zaWRlciB0aGlzIGZh
Y3Qgd2hlbiBjYWxjdWxhdGluZwogICAgICAgIHRoZSBzdGFydE9mZnNldCBmcm9tIHRoZSBwb2lu
dCBvZiB2aWV3IG9mIHRoZSBvYmplY3QgdGhpcyBmdW5jdGlvbgogICAgICAgIGlzIGNhbGxlZCBv
biwgaW4gb3JkZXIgdG8gcmV0dXJuIHRoZSByaWdodCBhbmQgYWN0dWFsIHZhbHVlcy4KCiAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6
CiAgICAgICAgKGdldFNlbGVjdGlvbk9mZnNldHNGb3JPYmplY3QpOiBDaGVjayByYW5nZSBsZW5n
dGggZnJvbSB0aGUgZmlyc3QKICAgICAgICBwb3NpdGlvbiBpbiB0aGUgb2JqZWN0IHRoZSBmdW5j
dGlvbiBpcyBjYWxsZWQgb24gdW50aWwgdGhlIGZpcnN0CiAgICAgICAgcG9zaXRpb24gb2YgY3Vy
cmVudCBzZWxlY3Rpb24sIGFuZCB1c2UgaXQgYXMgc3RhcnRPZmZzZXQuCgoyMDEwLTExLTE3ICBN
YXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KCiAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHdGtdICBhdGtfdGV4dF9nZXRfc2VsZWN0
aW9uIHJldHVybnMgdGhlIHdyb25nIG9mZnNldHMgYWZ0ZXIgYSBsaW5rCiAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NTE0CgogICAgICAgIFVwZGF0ZWQg
dGVzdCBjYXNlIHRvIGFsc28gY2hlY2ggdGhpcyBzcGVjaWZpYyBzdWJjYXNlLgoKICAgICAgICBX
ZSBuZWVkIHRvIGV4cGxpY2l0bHkgY2hlY2sgdGhlIGNhc2Ugb2YgaGF2aW5nIGEgc2VsZWN0aW9u
IGluIGEKICAgICAgICBwYXJhZ3JhcGggYWZ0ZXIgYW4gZW1iZWRkZWQgb2JqZWN0IChpLmUuIGEg
bGluaykgdG8gbWFrZSBzdXJlIHRoZQogICAgICAgIHJpZ2h0IGNhbGN1bGF0aW9ucyBhcmUgYmVp
bmcgZG9uZSB3aGVuIHRoZSBwYXJhZ3JhcGggaXMgY29tcG9zZWQKICAgICAgICBvZiBtb3JlIHRo
YW4ganVzdCBvbmUgdGV4dCBvYmplY3QsIGFuZCB0aGUgY3VycmVudCBzZWxlY3Rpb24gaXMKICAg
ICAgICBtYWRlIG9ubHkgaW4gb25lIG9mIHRoZW0uCgogICAgICAgICogdGVzdHMvdGVzdGF0ay5j
OgogICAgICAgICh0ZXN0V2Via2l0QXRrVGV4dFNlbGVjdGlvbnMpOiBNYWtlIHN1cmUgdGhhdCBh
IHNlbGVjdGlvbiBhZnRlciBhCiAgICAgICAgbGluayBpbiBhIHBhcmFncmFwaCBpcyB3b3JraW5n
IG9rIHdoZW4gYXNraW5nIGZvciB0aGUgdGV4dAogICAgICAgIHNlbGVjdGlvbiBmcm9tIHRoZSBw
b2ludCBvZiB2aWV3IG9mIHRoZSBwYXJhZ3JhcGguCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIyICsrKysrKysrKysrKysrKysrKysr
CiAuLi4vZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCAgICAgICAgICB8ICAg
MTYgKysrKysrKysrLS0tLS0KIFdlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAyMCArKysrKysrKysrKysrKysrKysKIFdlYktpdC9ndGsvdGVzdHMv
dGVzdGF0ay5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArKysrKysrKysKIDQgZmls
ZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGVkNWYyZTAuLmRi
ZGQ4YTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMTEtMTcgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxt
c2FuY2hlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtHdGtdICBhdGtfdGV4dF9nZXRfc2VsZWN0aW9uIHJldHVybnMgdGhlIHdy
b25nIG9mZnNldHMgYWZ0ZXIgYSBsaW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00OTUxNAorCisgICAgICAgIENvbnNpZGVyIHBvc3NpYmxlIGVtYmVk
ZGVkIG9iamVjdHMgdG8gY2FsY3VsYXRlIHN0YXJ0T2Zmc2V0LgorCisgICAgICAgIFNvIGZhciB3
ZSB3ZXJlIHVzaW5nIG9mZnNldEluQ29udGFpbmVyTm9kZSgpIHRvIGNhbGN1bGF0ZSB0aGUKKyAg
ICAgICAgdmFsdWUgb2Ygc3RhcnRPZmZzZXQgd2hlbiBjaGVja2luZyB0aGUgb2Zmc2V0cyBmb3Ig
dGhlIGN1cnJlbnQKKyAgICAgICAgc2VsZWN0aW9uLCB3aGljaCB3YXMgd3JvbmcgYmVjYXVzZSB0
aGF0IHdvdWxkbid0IHdvcmsgb2sgaWYgYW55CisgICAgICAgIGVtYmVkZGVkIG9iamVjdCB3YXMg
cHJlc2VudCBpbiB0aGUgcGFyYWdyYXBoIGJlZm9yZSB0aGUKKyAgICAgICAgc2VsZWN0aW9uLiBU
aHVzLCB3ZSBuZWVkIHRvIGNvbnNpZGVyIHRoaXMgZmFjdCB3aGVuIGNhbGN1bGF0aW5nCisgICAg
ICAgIHRoZSBzdGFydE9mZnNldCBmcm9tIHRoZSBwb2ludCBvZiB2aWV3IG9mIHRoZSBvYmplY3Qg
dGhpcyBmdW5jdGlvbgorICAgICAgICBpcyBjYWxsZWQgb24sIGluIG9yZGVyIHRvIHJldHVybiB0
aGUgcmlnaHQgYW5kIGFjdHVhbCB2YWx1ZXMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0
ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CisgICAgICAgIChnZXRTZWxlY3Rp
b25PZmZzZXRzRm9yT2JqZWN0KTogQ2hlY2sgcmFuZ2UgbGVuZ3RoIGZyb20gdGhlIGZpcnN0Cisg
ICAgICAgIHBvc2l0aW9uIGluIHRoZSBvYmplY3QgdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiB1
bnRpbCB0aGUgZmlyc3QKKyAgICAgICAgcG9zaXRpb24gb2YgY3VycmVudCBzZWxlY3Rpb24sIGFu
ZCB1c2UgaXQgYXMgc3RhcnRPZmZzZXQuCisKIDIwMTAtMTEtMDkgIEFuZHJlYXMgS2xpbmcgIDxr
bGluZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hy
aXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0Fj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAppbmRleCA3MjZjZGIxLi4zZDQzNDVhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQXRrLmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyQXRrLmNwcApAQCAtMTQzMywxMyArMTQzMywxMyBAQCBzdGF0aWMgdm9p
ZCBnZXRTZWxlY3Rpb25PZmZzZXRzRm9yT2JqZWN0KEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVP
YmplY3QsIFZpc2libAogICAgIGlmICghY29yZU9iamVjdC0+aXNBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEVhcmx5IHJldHVybiBpZiB0aGUg
c2VsZWN0aW9uIGRvZXNuJ3QgYWZmZWN0IHRoZSBzZWxlY3RlZCBub2RlCisgICAgLy8gRWFybHkg
cmV0dXJuIGlmIHRoZSBzZWxlY3Rpb24gZG9lc24ndCBhZmZlY3QgdGhlIHNlbGVjdGVkIG5vZGUu
CiAgICAgaWYgKCFzZWxlY3Rpb25CZWxvbmdzVG9PYmplY3QoY29yZU9iamVjdCwgc2VsZWN0aW9u
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gV2UgbmVlZCB0byBmaW5kIHRoZSBleGFjdCBz
dGFydCBhbmQgZW5kIHBvc2l0aW9ucyBpbiB0aGUKICAgICAvLyBzZWxlY3RlZCBub2RlIHRoYXQg
aW50ZXJzZWN0cyB0aGUgc2VsZWN0aW9uLCB0byBsYXRlciBvbiBnZXQKLSAgICAvLyB0aGUgcmln
aHQgdmFsdWVzIGZvciB0aGUgZWZmZWN0aXZlIHN0YXJ0IGFuZCBlbmQgb2Zmc2V0cworICAgIC8v
IHRoZSByaWdodCB2YWx1ZXMgZm9yIHRoZSBlZmZlY3RpdmUgc3RhcnQgYW5kIGVuZCBvZmZzZXRz
LgogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFBvc2l0aW9uIG5vZGVSYW5nZVN0YXJ0
OwogICAgIFBvc2l0aW9uIG5vZGVSYW5nZUVuZDsKQEAgLTE0NDksNyArMTQ0OSw3IEBAIHN0YXRp
YyB2b2lkIGdldFNlbGVjdGlvbk9mZnNldHNGb3JPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdCog
Y29yZU9iamVjdCwgVmlzaWJsCiAgICAgLy8gSWYgdGhlIHNlbGVjdGlvbiBhZmZlY3RzIHRoZSBz
ZWxlY3RlZCBub2RlIGFuZCBpdHMgZmlyc3QKICAgICAvLyBwb3NzaWJsZSBwb3NpdGlvbiBpcyBh
bHNvIGluIHRoZSBzZWxlY3Rpb24sIHdlIG11c3Qgc2V0CiAgICAgLy8gbm9kZVJhbmdlU3RhcnQg
dG8gdGhhdCBwb3NpdGlvbiwgb3RoZXJ3aXNlIHRvIHRoZSBzZWxlY3Rpb24ncwotICAgIC8vIHN0
YXJ0IHBvc2l0aW9uIChpdCB3b3VsZCBiZWxvbmcgdG8gdGhlIG5vZGUgYW55d2F5KQorICAgIC8v
IHN0YXJ0IHBvc2l0aW9uIChpdCB3b3VsZCBiZWxvbmcgdG8gdGhlIG5vZGUgYW55d2F5KS4KICAg
ICBOb2RlKiBmaXJzdExlYWZOb2RlID0gbm9kZS0+Zmlyc3REZXNjZW5kYW50KCk7CiAgICAgaWYg
KHNlbFJhbmdlLT5pc1BvaW50SW5SYW5nZShmaXJzdExlYWZOb2RlLCAwLCBlYykpCiAgICAgICAg
IG5vZGVSYW5nZVN0YXJ0ID0gZmlyc3RQb3NpdGlvbkluTm9kZShmaXJzdExlYWZOb2RlKTsKQEAg
LTE0NTksMTYgKzE0NTksMjAgQEAgc3RhdGljIHZvaWQgZ2V0U2VsZWN0aW9uT2Zmc2V0c0Zvck9i
amVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0LCBWaXNpYmwKICAgICAvLyBJZiB0
aGUgc2VsZWN0aW9uIGFmZmVjdHMgdGhlIHNlbGVjdGVkIG5vZGUgYW5kIGl0cyBsYXN0CiAgICAg
Ly8gcG9zc2libGUgcG9zaXRpb24gaXMgYWxzbyBpbiB0aGUgc2VsZWN0aW9uLCB3ZSBtdXN0IHNl
dAogICAgIC8vIG5vZGVSYW5nZUVuZCB0byB0aGF0IHBvc2l0aW9uLCBvdGhlcndpc2UgdG8gdGhl
IHNlbGVjdGlvbidzCi0gICAgLy8gZW5kIHBvc2l0aW9uIChpdCB3b3VsZCBiZWxvbmcgdG8gdGhl
IG5vZGUgYW55d2F5KQorICAgIC8vIGVuZCBwb3NpdGlvbiAoaXQgd291bGQgYmVsb25nIHRvIHRo
ZSBub2RlIGFueXdheSkuCiAgICAgTm9kZSogbGFzdExlYWZOb2RlID0gbm9kZS0+bGFzdERlc2Nl
bmRhbnQoKTsKICAgICBpZiAoc2VsUmFuZ2UtPmlzUG9pbnRJblJhbmdlKGxhc3RMZWFmTm9kZSwg
bGFzdE9mZnNldEluTm9kZShsYXN0TGVhZk5vZGUpLCBlYykpCiAgICAgICAgIG5vZGVSYW5nZUVu
ZCA9IGxhc3RQb3NpdGlvbkluTm9kZShsYXN0TGVhZk5vZGUpOwogICAgIGVsc2UKICAgICAgICAg
bm9kZVJhbmdlRW5kID0gc2VsUmFuZ2UtPmVuZFBvc2l0aW9uKCk7CiAKLSAgICAvLyBTZXQgdmFs
dWVzIGZvciBzdGFydCBhbmQgZW5kIG9mZnNldHMKKyAgICAvLyBDYWxjdWxhdGUgcG9zaXRpb24g
b2YgdGhlIHNlbGVjdGVkIHJhbmdlIGluc2lkZSB0aGUgb2JqZWN0LgorICAgIFBvc2l0aW9uIHBh
cmVudEZpcnN0UG9zaXRpb24gPSBmaXJzdFBvc2l0aW9uSW5Ob2RlKG5vZGUpOworICAgIFJlZlB0
cjxSYW5nZT4gcmFuZ2VJblBhcmVudCA9IFJhbmdlOjpjcmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwg
cGFyZW50Rmlyc3RQb3NpdGlvbiwgbm9kZVJhbmdlU3RhcnQpOworCisgICAgLy8gU2V0IHZhbHVl
cyBmb3Igc3RhcnQgYW5kIGVuZCBvZmZzZXRzLgorICAgIHN0YXJ0T2Zmc2V0ID0gVGV4dEl0ZXJh
dG9yOjpyYW5nZUxlbmd0aChyYW5nZUluUGFyZW50LmdldCgpKTsKICAgICBSZWZQdHI8UmFuZ2U+
IG5vZGVSYW5nZSA9IFJhbmdlOjpjcmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZVJhbmdlU3Rh
cnQsIG5vZGVSYW5nZUVuZCk7Ci0gICAgc3RhcnRPZmZzZXQgPSBub2RlUmFuZ2VTdGFydC5vZmZz
ZXRJbkNvbnRhaW5lck5vZGUoKTsKICAgICBlbmRPZmZzZXQgPSBzdGFydE9mZnNldCArIFRleHRJ
dGVyYXRvcjo6cmFuZ2VMZW5ndGgobm9kZVJhbmdlLmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA2ZDlhNjUy
Li5lZWVlYjk2IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTExLTE3ICBNYXJpbyBTYW5jaGV6
IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbR3RrXSAgYXRrX3RleHRfZ2V0X3NlbGVjdGlvbiByZXR1
cm5zIHRoZSB3cm9uZyBvZmZzZXRzIGFmdGVyIGEgbGluaworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk1MTQKKworICAgICAgICBVcGRhdGVkIHRlc3Qg
Y2FzZSB0byBhbHNvIGNoZWNoIHRoaXMgc3BlY2lmaWMgc3ViY2FzZS4KKworICAgICAgICBXZSBu
ZWVkIHRvIGV4cGxpY2l0bHkgY2hlY2sgdGhlIGNhc2Ugb2YgaGF2aW5nIGEgc2VsZWN0aW9uIGlu
IGEKKyAgICAgICAgcGFyYWdyYXBoIGFmdGVyIGFuIGVtYmVkZGVkIG9iamVjdCAoaS5lLiBhIGxp
bmspIHRvIG1ha2Ugc3VyZSB0aGUKKyAgICAgICAgcmlnaHQgY2FsY3VsYXRpb25zIGFyZSBiZWlu
ZyBkb25lIHdoZW4gdGhlIHBhcmFncmFwaCBpcyBjb21wb3NlZAorICAgICAgICBvZiBtb3JlIHRo
YW4ganVzdCBvbmUgdGV4dCBvYmplY3QsIGFuZCB0aGUgY3VycmVudCBzZWxlY3Rpb24gaXMKKyAg
ICAgICAgbWFkZSBvbmx5IGluIG9uZSBvZiB0aGVtLgorCisgICAgICAgICogdGVzdHMvdGVzdGF0
ay5jOgorICAgICAgICAodGVzdFdlYmtpdEF0a1RleHRTZWxlY3Rpb25zKTogTWFrZSBzdXJlIHRo
YXQgYSBzZWxlY3Rpb24gYWZ0ZXIgYQorICAgICAgICBsaW5rIGluIGEgcGFyYWdyYXBoIGlzIHdv
cmtpbmcgb2sgd2hlbiBhc2tpbmcgZm9yIHRoZSB0ZXh0CisgICAgICAgIHNlbGVjdGlvbiBmcm9t
IHRoZSBwb2ludCBvZiB2aWV3IG9mIHRoZSBwYXJhZ3JhcGguCisKIDIwMTAtMTEtMDggIE5pY29s
YXMgRHVmcmVzbmUgIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3Rl
c3RzL3Rlc3RhdGsuYyBiL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jCmluZGV4IDUwOWNiODYu
LmYwOThmNjIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jCisrKyBiL1dl
YktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jCkBAIC03NzYsNiArNzc2LDE2IEBAIHN0YXRpYyB2b2lk
IHRlc3RXZWJraXRBdGtUZXh0U2VsZWN0aW9ucygpCiAgICAgZ19hc3NlcnRfY21wc3RyKHNlbGVj
dGVkVGV4dCwgPT0sICJhIGxpIik7CiAgICAgZ19mcmVlIChzZWxlY3RlZFRleHQpOwogCisgICAg
LyogTWFrZSBhIHNlbGVjdGlvbiBhZnRlciB0aGUgbGluayBhbmQgY2hlY2sgc2VsZWN0aW9uIGZv
ciB0aGUgd2hvbGUgcGFyYWdyYXBoLiAqLworICAgIHJlc3VsdCA9IGF0a190ZXh0X3NldF9zZWxl
Y3Rpb24ocGFyYWdyYXBoMiwgMCwgMjcsIDM3KTsKKyAgICBnX2Fzc2VydChyZXN1bHQpOworICAg
IGdfYXNzZXJ0X2NtcGludChhdGtfdGV4dF9nZXRfbl9zZWxlY3Rpb25zKHBhcmFncmFwaDIpLCA9
PSwgMSk7CisgICAgc2VsZWN0ZWRUZXh0ID0gYXRrX3RleHRfZ2V0X3NlbGVjdGlvbihwYXJhZ3Jh
cGgyLCAwLCAmc3RhcnRPZmZzZXQsICZlbmRPZmZzZXQpOworICAgIGdfYXNzZXJ0X2NtcGludChz
dGFydE9mZnNldCwgPT0sIDI3KTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZW5kT2Zmc2V0LCA9PSwg
MzcpOworICAgIGdfYXNzZXJ0X2NtcHN0cihzZWxlY3RlZFRleHQsID09LCAidGhlIG1pZGRsZSIp
OworICAgIGdfZnJlZSAoc2VsZWN0ZWRUZXh0KTsKKwogICAgIC8qIFJlbW92ZSBzZWxlY3Rpb25z
IGFuZCB0ZXh0IGV2ZXJ5dGhpbmcgYWdhaW4uICovCiAgICAgcmVzdWx0ID0gYXRrX3RleHRfcmVt
b3ZlX3NlbGVjdGlvbihwYXJhZ3JhcGgyLCAwKTsKICAgICBnX2Fzc2VydChyZXN1bHQpOwotLSAK
MS43LjMuMgoK
</data>
<flag name="review"
          id="64673"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>