<?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>44258</bug_id>
          
          <creation_ts>2010-08-19 07:02:42 -0700</creation_ts>
          <short_desc>[EFL] Webkit-EFL API which returns position of n-th text matches mark.</short_desc>
          <delta_ts>2010-08-31 09:19:03 -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>WebKit EFL</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>44417</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Kamil Blank">k.blank</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>antognolli+webkit</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>leandro</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>266703</commentid>
    <comment_count>0</comment_count>
    <who name="Kamil Blank">k.blank</who>
    <bug_when>2010-08-19 07:02:42 -0700</bug_when>
    <thetext>I need functionality which returns the position of n-th marker so I could be able to show it in browser.

First of all I needed WebCore::Document functionality which returns a vector of IntRects describing text matches markers.
Unfortunately Webcore::Document::renderedRectsForMarkers() returns only rects in the visible part of document.
I added new functionality WebCore::Document::firstRectsForMarkers() which returns needed vector. 
Prefix &quot;first&quot; means that function only return first IntRect for every marker.

I also added functionality to WebKit-EFL port using above functionality which returns the position of n-th text matches marker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266720</commentid>
    <comment_count>1</comment_count>
      <attachid>64848</attachid>
    <who name="Kamil Blank">k.blank</who>
    <bug_when>2010-08-19 07:34:01 -0700</bug_when>
    <thetext>Created attachment 64848
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267061</commentid>
    <comment_count>2</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2010-08-19 16:51:01 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=64848) [details]
&gt; patch

Hello Kamil ,

Please request review and cq for this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267139</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-19 22:56:13 -0700</bug_when>
    <thetext>Attachment 64848 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/efl/ewk/ewk_frame.cpp:56:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267142</commentid>
    <comment_count>4</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2010-08-19 23:06:23 -0700</bug_when>
    <thetext>Hello Kamil,

You can check if your patch has any style errors by &quot;WebKitTools/Scripts/check-webkit-style&quot; or &quot;WebKitTools/Scripts/webkit-patch&quot; scripts.

Current ewk_frame.cpp file has style errors as below,

gyuyoung@gyuyoung-desktop:~/webkit/WebKit-EFL$ WebKitTools/Scripts/check-webkit-style WebKit/efl/ewk/ewk_frame.cpp 
WebKit/efl/ewk/ewk_frame.cpp:48:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit/efl/ewk/ewk_frame.cpp:52:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 1 files

If you can solve this errors, I think it is better to fix the style errors together.

Thanks,
Gyuyoung Kim</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267149</commentid>
    <comment_count>5</comment_count>
      <attachid>64929</attachid>
    <who name="Kamil Blank">k.blank</who>
    <bug_when>2010-08-19 23:42:26 -0700</bug_when>
    <thetext>Created attachment 64929
patch2

Removed style errors from ewk_frame.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267441</commentid>
    <comment_count>6</comment_count>
    <who name="Rafael Antognolli">antognolli+webkit</who>
    <bug_when>2010-08-20 15:11:19 -0700</bug_when>
    <thetext>Hi Kamil. I just did a quick look over the WebCore::Document part, and didn&apos;t see any problem, but I think some reviewer that understands deeply that part of code should take a look at it. So maybe you should find who recently contributed to it and add to cc too.

I&apos;m not sure, but I also think that this should be split into two patches. One adding the Document::firstRectsForMarkers, and another one using this functionality inside WebKit-EFL.

And please, pay attention to the coding style in ewk_frame.cpp. It does use WebKit coding style (as all the c++ files inside ewk/). So the pointers should be declared as:

Evas_Object* o;

instead of

Evas_Object *o;

Regards,
Rafael</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267772</commentid>
    <comment_count>7</comment_count>
      <attachid>65079</attachid>
    <who name="Kamil Blank">k.blank</who>
    <bug_when>2010-08-22 23:41:48 -0700</bug_when>
    <thetext>Created attachment 65079
WebCore::Document patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267773</commentid>
    <comment_count>8</comment_count>
      <attachid>65080</attachid>
    <who name="Kamil Blank">k.blank</who>
    <bug_when>2010-08-22 23:43:12 -0700</bug_when>
    <thetext>Created attachment 65080
WebKit-EFL patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267817</commentid>
    <comment_count>9</comment_count>
      <attachid>65094</attachid>
    <who name="Kamil Blank">k.blank</who>
    <bug_when>2010-08-23 03:12:17 -0700</bug_when>
    <thetext>Created attachment 65094
WebCore:DocumentMarkerController patch

Due to last changes in WebCore::Document I had to move my changes from Document to DocumentMarkerController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267818</commentid>
    <comment_count>10</comment_count>
      <attachid>65095</attachid>
    <who name="Kamil Blank">k.blank</who>
    <bug_when>2010-08-23 03:13:46 -0700</bug_when>
    <thetext>Created attachment 65095
WebKit-EFL patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267831</commentid>
    <comment_count>11</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2010-08-23 03:46:26 -0700</bug_when>
    <thetext>I am not sure if two patches can be reviewed in a bug. In my opinion, it seems that DOM patch needs to be reviewed by other bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267868</commentid>
    <comment_count>12</comment_count>
    <who name="Kamil Blank">k.blank</who>
    <bug_when>2010-08-23 05:34:56 -0700</bug_when>
    <thetext>I&apos;ve created new bug containing changes in WebCore::DocumentMarkerController
https://bugs.webkit.org/show_bug.cgi?id=44417</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267869</commentid>
    <comment_count>13</comment_count>
      <attachid>65094</attachid>
    <who name="Kamil Blank">k.blank</who>
    <bug_when>2010-08-23 05:36:23 -0700</bug_when>
    <thetext>Comment on attachment 65094
WebCore:DocumentMarkerController patch

Patch moved to new bug:
https://bugs.webkit.org/show_bug.cgi?id=44417</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267900</commentid>
    <comment_count>14</comment_count>
      <attachid>65095</attachid>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2010-08-23 07:40:42 -0700</bug_when>
    <thetext>Comment on attachment 65095
WebKit-EFL patch

I&apos;m not a reviewer, just an informal review:

&gt; diff --git a/WebKit/efl/ewk/ewk_frame.cpp b/WebKit/efl/ewk/ewk_frame.cpp
&gt; index 7a2af5a..a52ed19 100644
&gt; --- a/WebKit/efl/ewk/ewk_frame.cpp
&gt; +++ b/WebKit/efl/ewk/ewk_frame.cpp
[..]
&gt; +/** 
&gt; + * Comparison function used by ewk_frame_text_matches_nth_pos_get
&gt; + */
&gt; +static bool compIntRect(WebCore::IntRect i, WebCore::IntRect j)

This name is not good for 2 reasons:

1) It&apos;s meaningless. You are comparing rects for what? Give a name that tells what this function does. Since it&apos;s used by std::sort
2) Naming convention in this file is a bit different. We do not use CamelCase. My suggestion is: _ewk_frame_rect_cmp_less_than

About the arguments, you are missing the consts and you are passing them in stack when you could just use references. So, this is the signature of this function I&apos;d like to see:

static bool _ewk_frame_rect_cmp_less_than(const WebCore::IntRect&amp; i, const WebCore::IntRect&amp; j)

&gt; +{
&gt; +    return (i.y() &lt; j.y() || (i.y() == j.y() &amp;&amp; i.x() &lt; j.x()));
&gt; +}   
&gt; +    
&gt; +/**
&gt; + * Predicate used by ewk_frame_text_matches_nth_pos_get
&gt; + */
&gt; +static bool isNegativeValue(WebCore::IntRect i)

Same comment above for this one.

&gt; +{
[...]

&gt; +/**
&gt; + * Get x, y position of n-th text match in frame
&gt; + *
&gt; + * @param o frame object where matches are highlighted.
&gt; + * @param n index of element 
&gt; + * @param x where to return x position 
&gt; + * @param y where to return y position 
&gt; + *
&gt; + * @return @c EINA_TRUE on success, @c EINA_FALSE for failure - when no matches found or 
&gt; + *         n bigger than search results.
&gt; + */
&gt; +Eina_Bool ewk_frame_text_matches_nth_pos_get(Evas_Object* o, int n, int* x, int* y)
&gt; +{
&gt; +    EWK_FRAME_SD_GET_OR_RETURN(o, sd, EINA_FALSE);
&gt; +    EINA_SAFETY_ON_NULL_RETURN_VAL(sd-&gt;frame, EINA_FALSE);

In exported function you must check all incoming pointers if you are going to modify their content. So:
    EINA_SAFETY_ON_NULL_RETURN_VAL(x, EINA_FALSE);
    EINA_SAFETY_ON_NULL_RETURN_VAL(y, EINA_FALSE);

&gt; +
&gt; +    Vector&lt;WebCore::IntRect&gt; intRects = sd-&gt;frame-&gt;document()-&gt;markers()-&gt;firstRectsForMarkers(WebCore::DocumentMarker::TextMatch);
&gt; +
&gt; +    /* remove useless values */
&gt; +    std::remove_if(intRects.begin(), intRects.end(), isNegativeValue);
&gt; +
&gt; +    if (intRects.isEmpty() || n &gt; intRects.size())
&gt; +      return EINA_FALSE;
&gt; +
&gt; +    std::sort(intRects.begin(), intRects.end(), compIntRect);
&gt; +
&gt; +    *x = intRects[n - 1].x();
Otherwise, you could receive a segv here.

&gt; +    *y = intRects[n - 1].y();
and here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267951</commentid>
    <comment_count>15</comment_count>
    <who name="Rafael Antognolli">antognolli+webkit</who>
    <bug_when>2010-08-23 09:28:06 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; In exported function you must check all incoming pointers if you are going to modify their content. So:
&gt;     EINA_SAFETY_ON_NULL_RETURN_VAL(x, EINA_FALSE);
&gt;     EINA_SAFETY_ON_NULL_RETURN_VAL(y, EINA_FALSE);
&gt; 
&gt; &gt; +
&gt; &gt; +    Vector&lt;WebCore::IntRect&gt; intRects = sd-&gt;frame-&gt;document()-&gt;markers()-&gt;firstRectsForMarkers(WebCore::DocumentMarker::TextMatch);
&gt; &gt; +
&gt; &gt; +    /* remove useless values */
&gt; &gt; +    std::remove_if(intRects.begin(), intRects.end(), isNegativeValue);
&gt; &gt; +
&gt; &gt; +    if (intRects.isEmpty() || n &gt; intRects.size())
&gt; &gt; +      return EINA_FALSE;
&gt; &gt; +
&gt; &gt; +    std::sort(intRects.begin(), intRects.end(), compIntRect);
&gt; &gt; +
&gt; &gt; +    *x = intRects[n - 1].x();
&gt; Otherwise, you could receive a segv here.
&gt; 
&gt; &gt; +    *y = intRects[n - 1].y();
&gt; and here.

Alternatively, you can check if the pointer is not NULL before assigning to it. This would make the parameters not obligatory:

if (x)
    *x = intRects[n - 1].x();

Same for y.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268385</commentid>
    <comment_count>16</comment_count>
      <attachid>65228</attachid>
    <who name="Kamil Blank">k.blank</who>
    <bug_when>2010-08-24 01:20:35 -0700</bug_when>
    <thetext>Created attachment 65228
patch

Modified regarding to Lucas and Rafael comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268476</commentid>
    <comment_count>17</comment_count>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2010-08-24 04:20:34 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Created an attachment (id=65228) [details]
&gt; patch
&gt; 
&gt; Modified regarding to Lucas and Rafael comments.

lgtm, although I&apos;m wondering if this shouldn&apos;t go to WebCore so other platforms benefit from it. 

Antonio, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271748</commentid>
    <comment_count>18</comment_count>
      <attachid>65228</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-30 16:35:17 -0700</bug_when>
    <thetext>Comment on attachment 65228
patch

&gt; WebKit/efl/ewk/ewk_frame.cpp:830
&gt; +static bool _ewk_frame_rect_cmp_less_than(const WebCore::IntRect&amp; i, const WebCore::IntRect&amp; j)
&gt; +{
&gt; +    return (i.y() &lt; j.y() || (i.y() == j.y() &amp;&amp; i.x() &lt; j.x()));
&gt; +}   
We generally frown upon one letter variable names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271929</commentid>
    <comment_count>19</comment_count>
      <attachid>65228</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-30 22:06:49 -0700</bug_when>
    <thetext>Comment on attachment 65228
patch

Clearing flags on attachment: 65228

Committed r66454: &lt;http://trac.webkit.org/changeset/66454&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271930</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-30 22:06:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272129</commentid>
    <comment_count>21</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-08-31 09:15:36 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; All reviewed patches have been landed.  Closing bug.

Does not it broke the EFL build  since the WebCore part of the patch/feature did not land yet?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272132</commentid>
    <comment_count>22</comment_count>
    <who name="Rafael Antognolli">antognolli+webkit</who>
    <bug_when>2010-08-31 09:19:03 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; All reviewed patches have been landed.  Closing bug.
&gt; 
&gt; Does not it broke the EFL build  since the WebCore part of the patch/feature did not land yet?

Yes, it was broken, but the fix in http://trac.webkit.org/changeset/66488 fixes the build. I&apos;m looking at the implementation right now, but it seems that the functionality in both functions is almost the same.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64848</attachid>
            <date>2010-08-19 07:34:01 -0700</date>
            <delta_ts>2010-08-19 23:42:26 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch_efl_nth_pos_of_marker.diff</filename>
            <type>text/plain</type>
            <size>6404</size>
            <attacher name="Kamil Blank">k.blank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTkzNGZiZi4uYWI1NGZlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wOC0xOSAgS2FtaWwgQmxhbmsg
IDxrLmJsYW5rQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtFRkxdIEFkZGVkIEFQSSB3aGljaCByZXR1cm5zIHBvc2l0aW9uIG9m
IG4tdGggdGV4dCBtYXRjaGVzIG1hcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ0MjU4CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmZpcnN0UmVjdHNGb3JNYXJrZXJzKTogQWRkZWQuIEZ1
bmN0aW9uIHJldHVybnMgdmVjdG9yCisgICAgICAgIG9mIEludFJlY3RzIGNvbnRhaW5pbmcgZmly
c3QgcmVjdCBmb3IgZXZlcnkgbWFya2VyLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorCiAy
MDEwLTA4LTE5ICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bub2tpYS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggYjg2ZGI1Yi4uZmNhODM0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDA3Nyw2ICs0MDc3LDM3IEBAIFZl
Y3RvcjxJbnRSZWN0PiBEb2N1bWVudDo6cmVuZGVyZWRSZWN0c0Zvck1hcmtlcnMoRG9jdW1lbnRN
YXJrZXI6Ok1hcmtlclR5cGUgbWFyCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorVmVjdG9yPElu
dFJlY3Q+IERvY3VtZW50OjpmaXJzdFJlY3RzRm9yTWFya2VycyhEb2N1bWVudE1hcmtlcjo6TWFy
a2VyVHlwZSBtYXJrZXJUeXBlKQoreworICAgIFZlY3RvcjxJbnRSZWN0PiByZXN1bHQ7CisgICAg
CisgICAgLy8gb3V0ZXIgbG9vcDogcHJvY2VzcyBlYWNoIG5vZGUKKyAgICBNYXJrZXJNYXA6Oml0
ZXJhdG9yIGVuZCA9IG1fbWFya2Vycy5lbmQoKTsKKyAgICBmb3IgKE1hcmtlck1hcDo6aXRlcmF0
b3Igbm9kZUl0ZXJhdG9yID0gbV9tYXJrZXJzLmJlZ2luKCk7IG5vZGVJdGVyYXRvciAhPSBlbmQ7
ICsrbm9kZUl0ZXJhdG9yKSB7CisgICAgICAgIC8vIGlubmVyIGxvb3A7IHByb2Nlc3MgZWFjaCBt
YXJrZXIgaW4gdGhpcyBub2RlCisgICAgICAgIE5vZGUqIG5vZGUgPSBub2RlSXRlcmF0b3ItPmZp
cnN0LmdldCgpOworICAgICAgICBNYXJrZXJNYXBWZWN0b3JQYWlyKiB2ZWN0b3JQYWlyID0gbm9k
ZUl0ZXJhdG9yLT5zZWNvbmQ7CisgICAgICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcj4mIG1hcmtl
cnMgPSB2ZWN0b3JQYWlyLT5maXJzdDsKKyAgICAgICAgdW5zaWduZWQgbWFya2VyQ291bnQgPSBt
YXJrZXJzLnNpemUoKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBtYXJrZXJJbmRleCA9IDA7IG1h
cmtlckluZGV4IDwgbWFya2VyQ291bnQ7ICsrbWFya2VySW5kZXgpIHsKKyAgICAgICAgICAgIERv
Y3VtZW50TWFya2VyIG1hcmtlciA9IG1hcmtlcnNbbWFya2VySW5kZXhdOworICAgICAgICAgICAK
KyAgICAgICAgICAgIC8vIHNraXAgbWFya2VyIHRoYXQgaXMgd3JvbmcgdHlwZQorICAgICAgICAg
ICAgaWYgKG1hcmtlci50eXBlICE9IG1hcmtlclR5cGUgJiYgbWFya2VyVHlwZSAhPSBEb2N1bWVu
dE1hcmtlcjo6QWxsTWFya2VycykKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgV2ViQ29yZTo6UmVuZGVyVGV4dCogdGV4dCA9IHN0YXRpY19jYXN0
PFdlYkNvcmU6OlJlbmRlclRleHQqPihub2RlLT5yZW5kZXJlcigpKTsKKyAgICAgICAgICAgIFZl
Y3RvcjxJbnRSZWN0PiBhYnNvbHV0ZVJlY3RzOworICAgICAgICAgICAgdGV4dC0+YWJzb2x1dGVS
ZWN0c0ZvclJhbmdlKGFic29sdXRlUmVjdHMsIG1hcmtlci5zdGFydE9mZnNldCwgbWFya2VyLmVu
ZE9mZnNldCk7CisKKyAgICAgICAgICAgIGlmIChhYnNvbHV0ZVJlY3RzLnNpemUoKSA+IDApCisg
ICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChhYnNvbHV0ZVJlY3RzWzBdKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OnJlbW92
ZU1hcmtlcnMoTm9kZSogbm9kZSkKIHsKICAgICBNYXJrZXJNYXA6Oml0ZXJhdG9yIGkgPSBtX21h
cmtlcnMuZmluZChub2RlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGUyOTEyY2QuLjQ0ZWQ3YWUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
ODM1LDYgKzgzNSw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudE1hcmtlciogbWFya2VyQ29udGFp
bmluZ1BvaW50KGNvbnN0IEludFBvaW50JiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgPSBE
b2N1bWVudE1hcmtlcjo6QWxsTWFya2Vycyk7CiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyPiBt
YXJrZXJzRm9yTm9kZShOb2RlKik7CiAgICAgVmVjdG9yPEludFJlY3Q+IHJlbmRlcmVkUmVjdHNG
b3JNYXJrZXJzKERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlID0gRG9jdW1lbnRNYXJrZXI6OkFs
bE1hcmtlcnMpOworICAgIFZlY3RvcjxJbnRSZWN0PiBmaXJzdFJlY3RzRm9yTWFya2VycyhEb2N1
bWVudE1hcmtlcjo6TWFya2VyVHlwZSA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJrZXJzKTsKICAg
ICAKICAgICAvLyBkZXNpZ25Nb2RlIHN1cHBvcnQKICAgICBlbnVtIEluaGVyaXRlZEJvb2wgeyBv
ZmYgPSBmYWxzZSwgb24gPSB0cnVlLCBpbmhlcml0IH07ICAgIApkaWZmIC0tZ2l0IGEvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBkZTY1ODg1Li5lZDVh
MzljIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTA4LTE5ICBLYW1pbCBCbGFuayAgPGsuYmxh
bmtAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW0VGTF0gQWRkZWQgQVBJIHdoaWNoIHJldHVybnMgcG9zaXRpb24gb2Ygbi10aCB0
ZXh0IG1hdGNoZXMgbWFyaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDQyNTgKKworICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAo
Y29tcEludFJlY3QpOiBQcml2YXRlLgorICAgICAgICAoaXNOZWdhdGl2ZVZhbHVlKTogUHJpdmF0
ZS4KKyAgICAgICAgKGV3a19mcmFtZV90ZXh0X21hdGNoZXNfbnRoX3Bvc19nZXQpOiBBZGRlZC4g
RnVuY3Rpb24gcmV0dXJucyBwb3NpdGlvbiBvZgorICAgICAgICBuLXRoIHRleHQgbWF0Y2ggaW4g
ZnJhbWUuCisgICAgICAgICogZXdrL2V3a19mcmFtZS5oOgorCiAyMDEwLTA4LTE1ICBHeXV5b3Vu
ZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAg
Yi9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCmluZGV4IDI5NmMyNjEuLmZlMjUwNGEgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKKysrIGIvV2ViS2l0L2VmbC9l
d2svZXdrX2ZyYW1lLmNwcApAQCAtNTMsNiArNTMsOCBAQAogI2luY2x1ZGUgPEV2YXMuaD4KICNp
bmNsdWRlIDxlaW5hX3NhZmV0eV9jaGVja3MuaD4KIAorI2luY2x1ZGUgPGFsZ29yaXRobT4KKwog
c3RhdGljIGNvbnN0IGNoYXIgRVdLX0ZSQU1FX1RZUEVfU1RSW10gPSAiRVdLX0ZyYW1lIjsKIAog
c3RydWN0IEV3a19GcmFtZV9TbWFydF9EYXRhIHsKQEAgLTgyMCw2ICs4MjIsNTMgQEAgRWluYV9C
b29sIGV3a19mcmFtZV90ZXh0X21hdGNoZXNfaGlnaGxpZ2h0X2dldChjb25zdCBFdmFzX09iamVj
dCogbykKICAgICByZXR1cm4gc2QtPmZyYW1lLT5tYXJrZWRUZXh0TWF0Y2hlc0FyZUhpZ2hsaWdo
dGVkKCk7CiB9CiAKKy8qKiAKKyAqIENvbXBhcmlzb24gZnVuY3Rpb24gdXNlZCBieSBld2tfZnJh
bWVfdGV4dF9tYXRjaGVzX250aF9wb3NfZ2V0CisgKi8KK3N0YXRpYyBib29sIGNvbXBJbnRSZWN0
KFdlYkNvcmU6OkludFJlY3QgaSwgV2ViQ29yZTo6SW50UmVjdCBqKQoreworICAgIHJldHVybiAo
aS55KCkgPCBqLnkoKSB8fCAoaS55KCkgPT0gai55KCkgJiYgaS54KCkgPCBqLngoKSkpOworfSAg
IAorICAgIAorLyoqCisgKiBQcmVkaWNhdGUgdXNlZCBieSBld2tfZnJhbWVfdGV4dF9tYXRjaGVz
X250aF9wb3NfZ2V0CisgKi8KK3N0YXRpYyBib29sIGlzTmVnYXRpdmVWYWx1ZShXZWJDb3JlOjpJ
bnRSZWN0IGkpCit7CisgICAgcmV0dXJuIChpLngoKSA8IDAgfHwgaS55KCkgPCAwKTsKK30KKwor
LyoqCisgKiBHZXQgeCwgeSBwb3NpdGlvbiBvZiBuLXRoIHRleHQgbWF0Y2ggaW4gZnJhbWUKKyAq
CisgKiBAcGFyYW0gbyBmcmFtZSBvYmplY3Qgd2hlcmUgbWF0Y2hlcyBhcmUgaGlnaGxpZ2h0ZWQu
CisgKiBAcGFyYW0gbiBpbmRleCBvZiBlbGVtZW50IAorICogQHBhcmFtIHggd2hlcmUgdG8gcmV0
dXJuIHggcG9zaXRpb24gCisgKiBAcGFyYW0geSB3aGVyZSB0byByZXR1cm4geSBwb3NpdGlvbiAK
KyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzLCBAYyBFSU5BX0ZBTFNFIGZv
ciBmYWlsdXJlIC0gd2hlbiBubyBtYXRjaGVzIGZvdW5kIG9yIAorICogICAgICAgICBuIGJpZ2dl
ciB0aGFuIHNlYXJjaCByZXN1bHRzLgorICovCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX3RleHRfbWF0
Y2hlc19udGhfcG9zX2dldChFdmFzX09iamVjdCAqbywgaW50IG4sIGludCAqeCwgaW50ICp5KQor
eworICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKKyAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNFKTsK
KworICAgIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiBpbnRSZWN0cyA9IHNkLT5mcmFtZS0+ZG9j
dW1lbnQoKS0+Zmlyc3RSZWN0c0Zvck1hcmtlcnMoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6OlRl
eHRNYXRjaCk7CisKKyAgICAvKiByZW1vdmUgdXNlbGVzcyB2YWx1ZXMgKi8KKyAgICBzdGQ6OnJl
bW92ZV9pZihpbnRSZWN0cy5iZWdpbigpLCBpbnRSZWN0cy5lbmQoKSwgaXNOZWdhdGl2ZVZhbHVl
KTsKKworICAgIGlmIChpbnRSZWN0cy5pc0VtcHR5KCkgfHwgbiA+IGludFJlY3RzLnNpemUoKSkK
KyAgICAgIHJldHVybiBFSU5BX0ZBTFNFOworCisgICAgc3RkOjpzb3J0KGludFJlY3RzLmJlZ2lu
KCksIGludFJlY3RzLmVuZCgpLCBjb21wSW50UmVjdCk7CisKKyAgICAqeCA9IGludFJlY3RzW24g
LSAxXS54KCk7CisgICAgKnkgPSBpbnRSZWN0c1tuIC0gMV0ueSgpOworICAgIHJldHVybiBFSU5B
X1RSVUU7Cit9CisKIC8qKgogICogQXNrIGZyYW1lIHRvIHN0b3AgbG9hZGluZy4KICAqCmRpZmYg
LS1naXQgYS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaCBiL1dlYktpdC9lZmwvZXdrL2V3a19m
cmFtZS5oCmluZGV4IDFhOWZlODEuLjkzOTQ0NDYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvZXdr
L2V3a19mcmFtZS5oCisrKyBiL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCkBAIC0xNjAsNiAr
MTYwLDcgQEAgRUFQSSB1bnNpZ25lZCBpbnQgZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc19tYXJrKEV2
YXNfT2JqZWN0ICpvLCBjb25zdCBjaGFyICpzdHJpbmcKIEVBUEkgRWluYV9Cb29sICAgIGV3a19m
cmFtZV90ZXh0X21hdGNoZXNfdW5tYXJrX2FsbChFdmFzX09iamVjdCAqbyk7CiBFQVBJIEVpbmFf
Qm9vbCAgICBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX2hpZ2hsaWdodF9zZXQoRXZhc19PYmplY3Qg
Km8sIEVpbmFfQm9vbCBoaWdobGlnaHQpOwogRUFQSSBFaW5hX0Jvb2wgICAgZXdrX2ZyYW1lX3Rl
eHRfbWF0Y2hlc19oaWdobGlnaHRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKK0VBUEkgRWlu
YV9Cb29sICAgIGV3a19mcmFtZV90ZXh0X21hdGNoZXNfbnRoX3Bvc19nZXQoRXZhc19PYmplY3Qg
Km8sIGludCBuLCBpbnQgKngsIGludCAqeSk7CiAKIEVBUEkgRWluYV9Cb29sICAgIGV3a19mcmFt
ZV9zdG9wKEV2YXNfT2JqZWN0ICpvKTsKIEVBUEkgRWluYV9Cb29sICAgIGV3a19mcmFtZV9yZWxv
YWQoRXZhc19PYmplY3QgKm8pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64929</attachid>
            <date>2010-08-19 23:42:26 -0700</date>
            <delta_ts>2010-08-22 23:41:48 -0700</delta_ts>
            <desc>patch2</desc>
            <filename>patch_efl_nth_pos_of_marker_2.diff</filename>
            <type>text/plain</type>
            <size>6645</size>
            <attacher name="Kamil Blank">k.blank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTkzNGZiZi4uYWI1NGZlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wOC0xOSAgS2FtaWwgQmxhbmsg
IDxrLmJsYW5rQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtFRkxdIEFkZGVkIEFQSSB3aGljaCByZXR1cm5zIHBvc2l0aW9uIG9m
IG4tdGggdGV4dCBtYXRjaGVzIG1hcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ0MjU4CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmZpcnN0UmVjdHNGb3JNYXJrZXJzKTogQWRkZWQuIEZ1
bmN0aW9uIHJldHVybnMgdmVjdG9yCisgICAgICAgIG9mIEludFJlY3RzIGNvbnRhaW5pbmcgZmly
c3QgcmVjdCBmb3IgZXZlcnkgbWFya2VyLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorCiAy
MDEwLTA4LTE5ICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bub2tpYS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggYjg2ZGI1Yi4uZmNhODM0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDA3Nyw2ICs0MDc3LDM3IEBAIFZl
Y3RvcjxJbnRSZWN0PiBEb2N1bWVudDo6cmVuZGVyZWRSZWN0c0Zvck1hcmtlcnMoRG9jdW1lbnRN
YXJrZXI6Ok1hcmtlclR5cGUgbWFyCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorVmVjdG9yPElu
dFJlY3Q+IERvY3VtZW50OjpmaXJzdFJlY3RzRm9yTWFya2VycyhEb2N1bWVudE1hcmtlcjo6TWFy
a2VyVHlwZSBtYXJrZXJUeXBlKQoreworICAgIFZlY3RvcjxJbnRSZWN0PiByZXN1bHQ7CisgICAg
CisgICAgLy8gb3V0ZXIgbG9vcDogcHJvY2VzcyBlYWNoIG5vZGUKKyAgICBNYXJrZXJNYXA6Oml0
ZXJhdG9yIGVuZCA9IG1fbWFya2Vycy5lbmQoKTsKKyAgICBmb3IgKE1hcmtlck1hcDo6aXRlcmF0
b3Igbm9kZUl0ZXJhdG9yID0gbV9tYXJrZXJzLmJlZ2luKCk7IG5vZGVJdGVyYXRvciAhPSBlbmQ7
ICsrbm9kZUl0ZXJhdG9yKSB7CisgICAgICAgIC8vIGlubmVyIGxvb3A7IHByb2Nlc3MgZWFjaCBt
YXJrZXIgaW4gdGhpcyBub2RlCisgICAgICAgIE5vZGUqIG5vZGUgPSBub2RlSXRlcmF0b3ItPmZp
cnN0LmdldCgpOworICAgICAgICBNYXJrZXJNYXBWZWN0b3JQYWlyKiB2ZWN0b3JQYWlyID0gbm9k
ZUl0ZXJhdG9yLT5zZWNvbmQ7CisgICAgICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcj4mIG1hcmtl
cnMgPSB2ZWN0b3JQYWlyLT5maXJzdDsKKyAgICAgICAgdW5zaWduZWQgbWFya2VyQ291bnQgPSBt
YXJrZXJzLnNpemUoKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBtYXJrZXJJbmRleCA9IDA7IG1h
cmtlckluZGV4IDwgbWFya2VyQ291bnQ7ICsrbWFya2VySW5kZXgpIHsKKyAgICAgICAgICAgIERv
Y3VtZW50TWFya2VyIG1hcmtlciA9IG1hcmtlcnNbbWFya2VySW5kZXhdOworICAgICAgICAgICAK
KyAgICAgICAgICAgIC8vIHNraXAgbWFya2VyIHRoYXQgaXMgd3JvbmcgdHlwZQorICAgICAgICAg
ICAgaWYgKG1hcmtlci50eXBlICE9IG1hcmtlclR5cGUgJiYgbWFya2VyVHlwZSAhPSBEb2N1bWVu
dE1hcmtlcjo6QWxsTWFya2VycykKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgV2ViQ29yZTo6UmVuZGVyVGV4dCogdGV4dCA9IHN0YXRpY19jYXN0
PFdlYkNvcmU6OlJlbmRlclRleHQqPihub2RlLT5yZW5kZXJlcigpKTsKKyAgICAgICAgICAgIFZl
Y3RvcjxJbnRSZWN0PiBhYnNvbHV0ZVJlY3RzOworICAgICAgICAgICAgdGV4dC0+YWJzb2x1dGVS
ZWN0c0ZvclJhbmdlKGFic29sdXRlUmVjdHMsIG1hcmtlci5zdGFydE9mZnNldCwgbWFya2VyLmVu
ZE9mZnNldCk7CisKKyAgICAgICAgICAgIGlmIChhYnNvbHV0ZVJlY3RzLnNpemUoKSA+IDApCisg
ICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChhYnNvbHV0ZVJlY3RzWzBdKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OnJlbW92
ZU1hcmtlcnMoTm9kZSogbm9kZSkKIHsKICAgICBNYXJrZXJNYXA6Oml0ZXJhdG9yIGkgPSBtX21h
cmtlcnMuZmluZChub2RlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGUyOTEyY2QuLjQ0ZWQ3YWUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
ODM1LDYgKzgzNSw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudE1hcmtlciogbWFya2VyQ29udGFp
bmluZ1BvaW50KGNvbnN0IEludFBvaW50JiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgPSBE
b2N1bWVudE1hcmtlcjo6QWxsTWFya2Vycyk7CiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyPiBt
YXJrZXJzRm9yTm9kZShOb2RlKik7CiAgICAgVmVjdG9yPEludFJlY3Q+IHJlbmRlcmVkUmVjdHNG
b3JNYXJrZXJzKERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlID0gRG9jdW1lbnRNYXJrZXI6OkFs
bE1hcmtlcnMpOworICAgIFZlY3RvcjxJbnRSZWN0PiBmaXJzdFJlY3RzRm9yTWFya2VycyhEb2N1
bWVudE1hcmtlcjo6TWFya2VyVHlwZSA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJrZXJzKTsKICAg
ICAKICAgICAvLyBkZXNpZ25Nb2RlIHN1cHBvcnQKICAgICBlbnVtIEluaGVyaXRlZEJvb2wgeyBv
ZmYgPSBmYWxzZSwgb24gPSB0cnVlLCBpbmhlcml0IH07ICAgIApkaWZmIC0tZ2l0IGEvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBkZTY1ODg1Li5lZDVh
MzljIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTA4LTE5ICBLYW1pbCBCbGFuayAgPGsuYmxh
bmtAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW0VGTF0gQWRkZWQgQVBJIHdoaWNoIHJldHVybnMgcG9zaXRpb24gb2Ygbi10aCB0
ZXh0IG1hdGNoZXMgbWFyaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDQyNTgKKworICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAo
Y29tcEludFJlY3QpOiBQcml2YXRlLgorICAgICAgICAoaXNOZWdhdGl2ZVZhbHVlKTogUHJpdmF0
ZS4KKyAgICAgICAgKGV3a19mcmFtZV90ZXh0X21hdGNoZXNfbnRoX3Bvc19nZXQpOiBBZGRlZC4g
RnVuY3Rpb24gcmV0dXJucyBwb3NpdGlvbiBvZgorICAgICAgICBuLXRoIHRleHQgbWF0Y2ggaW4g
ZnJhbWUuCisgICAgICAgICogZXdrL2V3a19mcmFtZS5oOgorCiAyMDEwLTA4LTE1ICBHeXV5b3Vu
ZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAg
Yi9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCmluZGV4IDI5NmMyNjEuLjk3NjNjMjAgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKKysrIGIvV2ViS2l0L2VmbC9l
d2svZXdrX2ZyYW1lLmNwcApAQCAtNDQsMTQgKzQ0LDE1IEBACiAjaW5jbHVkZSAiU2NyaXB0VmFs
dWUuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTdWJzdGl0dXRlRGF0
YS5oIgotI2luY2x1ZGUgIlpvb21Nb2RlLmgiCiAjaW5jbHVkZSAiV2luZG93c0tleWJvYXJkQ29k
ZXMuaCIKKyNpbmNsdWRlICJab29tTW9kZS5oIgogI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCi0j
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaW5jbHVkZSA8RWluYS5oPgogI2luY2x1
ZGUgPEV2YXMuaD4KKyNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8ZWluYV9zYWZldHlf
Y2hlY2tzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBzdGF0aWMgY29uc3Qg
Y2hhciBFV0tfRlJBTUVfVFlQRV9TVFJbXSA9ICJFV0tfRnJhbWUiOwogCkBAIC04MjAsNiArODIx
LDUzIEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX2hpZ2hsaWdodF9nZXQoY29u
c3QgRXZhc19PYmplY3QqIG8pCiAgICAgcmV0dXJuIHNkLT5mcmFtZS0+bWFya2VkVGV4dE1hdGNo
ZXNBcmVIaWdobGlnaHRlZCgpOwogfQogCisvKiogCisgKiBDb21wYXJpc29uIGZ1bmN0aW9uIHVz
ZWQgYnkgZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc19udGhfcG9zX2dldAorICovCitzdGF0aWMgYm9v
bCBjb21wSW50UmVjdChXZWJDb3JlOjpJbnRSZWN0IGksIFdlYkNvcmU6OkludFJlY3QgaikKK3sK
KyAgICByZXR1cm4gKGkueSgpIDwgai55KCkgfHwgKGkueSgpID09IGoueSgpICYmIGkueCgpIDwg
ai54KCkpKTsKK30gICAKKyAgICAKKy8qKgorICogUHJlZGljYXRlIHVzZWQgYnkgZXdrX2ZyYW1l
X3RleHRfbWF0Y2hlc19udGhfcG9zX2dldAorICovCitzdGF0aWMgYm9vbCBpc05lZ2F0aXZlVmFs
dWUoV2ViQ29yZTo6SW50UmVjdCBpKQoreworICAgIHJldHVybiAoaS54KCkgPCAwIHx8IGkueSgp
IDwgMCk7Cit9CisKKy8qKgorICogR2V0IHgsIHkgcG9zaXRpb24gb2Ygbi10aCB0ZXh0IG1hdGNo
IGluIGZyYW1lCisgKgorICogQHBhcmFtIG8gZnJhbWUgb2JqZWN0IHdoZXJlIG1hdGNoZXMgYXJl
IGhpZ2hsaWdodGVkLgorICogQHBhcmFtIG4gaW5kZXggb2YgZWxlbWVudCAKKyAqIEBwYXJhbSB4
IHdoZXJlIHRvIHJldHVybiB4IHBvc2l0aW9uIAorICogQHBhcmFtIHkgd2hlcmUgdG8gcmV0dXJu
IHkgcG9zaXRpb24gCisgKgorICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcywgQGMg
RUlOQV9GQUxTRSBmb3IgZmFpbHVyZSAtIHdoZW4gbm8gbWF0Y2hlcyBmb3VuZCBvciAKKyAqICAg
ICAgICAgbiBiaWdnZXIgdGhhbiBzZWFyY2ggcmVzdWx0cy4KKyAqLworRWluYV9Cb29sIGV3a19m
cmFtZV90ZXh0X21hdGNoZXNfbnRoX3Bvc19nZXQoRXZhc19PYmplY3QgKm8sIGludCBuLCBpbnQg
KngsIGludCAqeSkKK3sKKyAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlO
QV9GQUxTRSk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwg
RUlOQV9GQUxTRSk7CisKKyAgICBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gaW50UmVjdHMgPSBz
ZC0+ZnJhbWUtPmRvY3VtZW50KCktPmZpcnN0UmVjdHNGb3JNYXJrZXJzKFdlYkNvcmU6OkRvY3Vt
ZW50TWFya2VyOjpUZXh0TWF0Y2gpOworCisgICAgLyogcmVtb3ZlIHVzZWxlc3MgdmFsdWVzICov
CisgICAgc3RkOjpyZW1vdmVfaWYoaW50UmVjdHMuYmVnaW4oKSwgaW50UmVjdHMuZW5kKCksIGlz
TmVnYXRpdmVWYWx1ZSk7CisKKyAgICBpZiAoaW50UmVjdHMuaXNFbXB0eSgpIHx8IG4gPiBpbnRS
ZWN0cy5zaXplKCkpCisgICAgICByZXR1cm4gRUlOQV9GQUxTRTsKKworICAgIHN0ZDo6c29ydChp
bnRSZWN0cy5iZWdpbigpLCBpbnRSZWN0cy5lbmQoKSwgY29tcEludFJlY3QpOworCisgICAgKngg
PSBpbnRSZWN0c1tuIC0gMV0ueCgpOworICAgICp5ID0gaW50UmVjdHNbbiAtIDFdLnkoKTsKKyAg
ICByZXR1cm4gRUlOQV9UUlVFOworfQorCiAvKioKICAqIEFzayBmcmFtZSB0byBzdG9wIGxvYWRp
bmcuCiAgKgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmggYi9XZWJLaXQv
ZWZsL2V3ay9ld2tfZnJhbWUuaAppbmRleCAxYTlmZTgxLi45Mzk0NDQ2IDEwMDY0NAotLS0gYS9X
ZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAorKysgYi9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUu
aApAQCAtMTYwLDYgKzE2MCw3IEBAIEVBUEkgdW5zaWduZWQgaW50IGV3a19mcmFtZV90ZXh0X21h
dGNoZXNfbWFyayhFdmFzX09iamVjdCAqbywgY29uc3QgY2hhciAqc3RyaW5nCiBFQVBJIEVpbmFf
Qm9vbCAgICBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX3VubWFya19hbGwoRXZhc19PYmplY3QgKm8p
OwogRUFQSSBFaW5hX0Jvb2wgICAgZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc19oaWdobGlnaHRfc2V0
KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgaGlnaGxpZ2h0KTsKIEVBUEkgRWluYV9Cb29sICAg
IGV3a19mcmFtZV90ZXh0X21hdGNoZXNfaGlnaGxpZ2h0X2dldChjb25zdCBFdmFzX09iamVjdCAq
byk7CitFQVBJIEVpbmFfQm9vbCAgICBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX250aF9wb3NfZ2V0
KEV2YXNfT2JqZWN0ICpvLCBpbnQgbiwgaW50ICp4LCBpbnQgKnkpOwogCiBFQVBJIEVpbmFfQm9v
bCAgICBld2tfZnJhbWVfc3RvcChFdmFzX09iamVjdCAqbyk7CiBFQVBJIEVpbmFfQm9vbCAgICBl
d2tfZnJhbWVfcmVsb2FkKEV2YXNfT2JqZWN0ICpvKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65079</attachid>
            <date>2010-08-22 23:41:48 -0700</date>
            <delta_ts>2010-08-23 03:12:17 -0700</delta_ts>
            <desc>WebCore::Document patch</desc>
            <filename>patch_webcore.diff</filename>
            <type>text/plain</type>
            <size>3002</size>
            <attacher name="Kamil Blank">k.blank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTkzNGZiZi4uYWI1NGZlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wOC0xOSAgS2FtaWwgQmxhbmsg
IDxrLmJsYW5rQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtFRkxdIEFkZGVkIEFQSSB3aGljaCByZXR1cm5zIHBvc2l0aW9uIG9m
IG4tdGggdGV4dCBtYXRjaGVzIG1hcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ0MjU4CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmZpcnN0UmVjdHNGb3JNYXJrZXJzKTogQWRkZWQuIEZ1
bmN0aW9uIHJldHVybnMgdmVjdG9yCisgICAgICAgIG9mIEludFJlY3RzIGNvbnRhaW5pbmcgZmly
c3QgcmVjdCBmb3IgZXZlcnkgbWFya2VyLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorCiAy
MDEwLTA4LTE5ICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bub2tpYS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggYjg2ZGI1Yi4uZmNhODM0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDA3Nyw2ICs0MDc3LDM3IEBAIFZl
Y3RvcjxJbnRSZWN0PiBEb2N1bWVudDo6cmVuZGVyZWRSZWN0c0Zvck1hcmtlcnMoRG9jdW1lbnRN
YXJrZXI6Ok1hcmtlclR5cGUgbWFyCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorVmVjdG9yPElu
dFJlY3Q+IERvY3VtZW50OjpmaXJzdFJlY3RzRm9yTWFya2VycyhEb2N1bWVudE1hcmtlcjo6TWFy
a2VyVHlwZSBtYXJrZXJUeXBlKQoreworICAgIFZlY3RvcjxJbnRSZWN0PiByZXN1bHQ7CisgICAg
CisgICAgLy8gb3V0ZXIgbG9vcDogcHJvY2VzcyBlYWNoIG5vZGUKKyAgICBNYXJrZXJNYXA6Oml0
ZXJhdG9yIGVuZCA9IG1fbWFya2Vycy5lbmQoKTsKKyAgICBmb3IgKE1hcmtlck1hcDo6aXRlcmF0
b3Igbm9kZUl0ZXJhdG9yID0gbV9tYXJrZXJzLmJlZ2luKCk7IG5vZGVJdGVyYXRvciAhPSBlbmQ7
ICsrbm9kZUl0ZXJhdG9yKSB7CisgICAgICAgIC8vIGlubmVyIGxvb3A7IHByb2Nlc3MgZWFjaCBt
YXJrZXIgaW4gdGhpcyBub2RlCisgICAgICAgIE5vZGUqIG5vZGUgPSBub2RlSXRlcmF0b3ItPmZp
cnN0LmdldCgpOworICAgICAgICBNYXJrZXJNYXBWZWN0b3JQYWlyKiB2ZWN0b3JQYWlyID0gbm9k
ZUl0ZXJhdG9yLT5zZWNvbmQ7CisgICAgICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcj4mIG1hcmtl
cnMgPSB2ZWN0b3JQYWlyLT5maXJzdDsKKyAgICAgICAgdW5zaWduZWQgbWFya2VyQ291bnQgPSBt
YXJrZXJzLnNpemUoKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBtYXJrZXJJbmRleCA9IDA7IG1h
cmtlckluZGV4IDwgbWFya2VyQ291bnQ7ICsrbWFya2VySW5kZXgpIHsKKyAgICAgICAgICAgIERv
Y3VtZW50TWFya2VyIG1hcmtlciA9IG1hcmtlcnNbbWFya2VySW5kZXhdOworICAgICAgICAgICAK
KyAgICAgICAgICAgIC8vIHNraXAgbWFya2VyIHRoYXQgaXMgd3JvbmcgdHlwZQorICAgICAgICAg
ICAgaWYgKG1hcmtlci50eXBlICE9IG1hcmtlclR5cGUgJiYgbWFya2VyVHlwZSAhPSBEb2N1bWVu
dE1hcmtlcjo6QWxsTWFya2VycykKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgV2ViQ29yZTo6UmVuZGVyVGV4dCogdGV4dCA9IHN0YXRpY19jYXN0
PFdlYkNvcmU6OlJlbmRlclRleHQqPihub2RlLT5yZW5kZXJlcigpKTsKKyAgICAgICAgICAgIFZl
Y3RvcjxJbnRSZWN0PiBhYnNvbHV0ZVJlY3RzOworICAgICAgICAgICAgdGV4dC0+YWJzb2x1dGVS
ZWN0c0ZvclJhbmdlKGFic29sdXRlUmVjdHMsIG1hcmtlci5zdGFydE9mZnNldCwgbWFya2VyLmVu
ZE9mZnNldCk7CisKKyAgICAgICAgICAgIGlmIChhYnNvbHV0ZVJlY3RzLnNpemUoKSA+IDApCisg
ICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChhYnNvbHV0ZVJlY3RzWzBdKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OnJlbW92
ZU1hcmtlcnMoTm9kZSogbm9kZSkKIHsKICAgICBNYXJrZXJNYXA6Oml0ZXJhdG9yIGkgPSBtX21h
cmtlcnMuZmluZChub2RlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGUyOTEyY2QuLjQ0ZWQ3YWUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
ODM1LDYgKzgzNSw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudE1hcmtlciogbWFya2VyQ29udGFp
bmluZ1BvaW50KGNvbnN0IEludFBvaW50JiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgPSBE
b2N1bWVudE1hcmtlcjo6QWxsTWFya2Vycyk7CiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyPiBt
YXJrZXJzRm9yTm9kZShOb2RlKik7CiAgICAgVmVjdG9yPEludFJlY3Q+IHJlbmRlcmVkUmVjdHNG
b3JNYXJrZXJzKERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlID0gRG9jdW1lbnRNYXJrZXI6OkFs
bE1hcmtlcnMpOworICAgIFZlY3RvcjxJbnRSZWN0PiBmaXJzdFJlY3RzRm9yTWFya2VycyhEb2N1
bWVudE1hcmtlcjo6TWFya2VyVHlwZSA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJrZXJzKTsKICAg
ICAKICAgICAvLyBkZXNpZ25Nb2RlIHN1cHBvcnQKICAgICBlbnVtIEluaGVyaXRlZEJvb2wgeyBv
ZmYgPSBmYWxzZSwgb24gPSB0cnVlLCBpbmhlcml0IH07ICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65080</attachid>
            <date>2010-08-22 23:43:12 -0700</date>
            <delta_ts>2010-08-23 03:12:17 -0700</delta_ts>
            <desc>WebKit-EFL patch</desc>
            <filename>patch_efl.diff</filename>
            <type>text/plain</type>
            <size>3643</size>
            <attacher name="Kamil Blank">k.blank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
aW5kZXggZGU2NTg4NS4uZWQ1YTM5YyAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOC0xOSAg
S2FtaWwgQmxhbmsgIDxrLmJsYW5rQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtFRkxdIEFkZGVkIEFQSSB3aGljaCByZXR1cm5z
IHBvc2l0aW9uIG9mIG4tdGggdGV4dCBtYXRjaGVzIG1hcmsKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MjU4CisKKyAgICAgICAgKiBld2svZXdrX2Zy
YW1lLmNwcDoKKyAgICAgICAgKGNvbXBJbnRSZWN0KTogUHJpdmF0ZS4KKyAgICAgICAgKGlzTmVn
YXRpdmVWYWx1ZSk6IFByaXZhdGUuCisgICAgICAgIChld2tfZnJhbWVfdGV4dF9tYXRjaGVzX250
aF9wb3NfZ2V0KTogQWRkZWQuIEZ1bmN0aW9uIHJldHVybnMgcG9zaXRpb24gb2YKKyAgICAgICAg
bi10aCB0ZXh0IG1hdGNoIGluIGZyYW1lLgorICAgICAgICAqIGV3ay9ld2tfZnJhbWUuaDoKKwog
MjAxMC0wOC0xNSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZs
L2V3ay9ld2tfZnJhbWUuY3BwIGIvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCAy
OTZjMjYxLi4xODJiMDkyIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3Bw
CisrKyBiL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAgLTQ0LDE0ICs0NCwxNSBAQAog
I2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5j
bHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKLSNpbmNsdWRlICJab29tTW9kZS5oIgogI2luY2x1ZGUg
IldpbmRvd3NLZXlib2FyZENvZGVzLmgiCisjaW5jbHVkZSAiWm9vbU1vZGUuaCIKICNpbmNsdWRl
ICJld2tfcHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2luY2x1
ZGUgPEVpbmEuaD4KICNpbmNsdWRlIDxFdmFzLmg+CisjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2lu
Y2x1ZGUgPGVpbmFfc2FmZXR5X2NoZWNrcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogc3RhdGljIGNvbnN0IGNoYXIgRVdLX0ZSQU1FX1RZUEVfU1RSW10gPSAiRVdLX0ZyYW1l
IjsKIApAQCAtODIwLDYgKzgyMSw1MyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX3RleHRfbWF0Y2hl
c19oaWdobGlnaHRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBvKQogICAgIHJldHVybiBzZC0+ZnJh
bWUtPm1hcmtlZFRleHRNYXRjaGVzQXJlSGlnaGxpZ2h0ZWQoKTsKIH0KIAorLyoqIAorICogQ29t
cGFyaXNvbiBmdW5jdGlvbiB1c2VkIGJ5IGV3a19mcmFtZV90ZXh0X21hdGNoZXNfbnRoX3Bvc19n
ZXQKKyAqLworc3RhdGljIGJvb2wgY29tcEludFJlY3QoV2ViQ29yZTo6SW50UmVjdCBpLCBXZWJD
b3JlOjpJbnRSZWN0IGopCit7CisgICAgcmV0dXJuIChpLnkoKSA8IGoueSgpIHx8IChpLnkoKSA9
PSBqLnkoKSAmJiBpLngoKSA8IGoueCgpKSk7Cit9ICAgCisgICAgCisvKioKKyAqIFByZWRpY2F0
ZSB1c2VkIGJ5IGV3a19mcmFtZV90ZXh0X21hdGNoZXNfbnRoX3Bvc19nZXQKKyAqLworc3RhdGlj
IGJvb2wgaXNOZWdhdGl2ZVZhbHVlKFdlYkNvcmU6OkludFJlY3QgaSkKK3sKKyAgICByZXR1cm4g
KGkueCgpIDwgMCB8fCBpLnkoKSA8IDApOworfQorCisvKioKKyAqIEdldCB4LCB5IHBvc2l0aW9u
IG9mIG4tdGggdGV4dCBtYXRjaCBpbiBmcmFtZQorICoKKyAqIEBwYXJhbSBvIGZyYW1lIG9iamVj
dCB3aGVyZSBtYXRjaGVzIGFyZSBoaWdobGlnaHRlZC4KKyAqIEBwYXJhbSBuIGluZGV4IG9mIGVs
ZW1lbnQgCisgKiBAcGFyYW0geCB3aGVyZSB0byByZXR1cm4geCBwb3NpdGlvbiAKKyAqIEBwYXJh
bSB5IHdoZXJlIHRvIHJldHVybiB5IHBvc2l0aW9uIAorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9U
UlVFIG9uIHN1Y2Nlc3MsIEBjIEVJTkFfRkFMU0UgZm9yIGZhaWx1cmUgLSB3aGVuIG5vIG1hdGNo
ZXMgZm91bmQgb3IgCisgKiAgICAgICAgIG4gYmlnZ2VyIHRoYW4gc2VhcmNoIHJlc3VsdHMuCisg
Ki8KK0VpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX250aF9wb3NfZ2V0KEV2YXNfT2Jq
ZWN0KiBvLCBpbnQgbiwgaW50KiB4LCBpbnQqIHkpCit7CisgICAgRVdLX0ZSQU1FX1NEX0dFVF9P
Ul9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0UpOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFfRkFMU0UpOworCisgICAgVmVjdG9yPFdlYkNvcmU6Oklu
dFJlY3Q+IGludFJlY3RzID0gc2QtPmZyYW1lLT5kb2N1bWVudCgpLT5maXJzdFJlY3RzRm9yTWFy
a2VycyhXZWJDb3JlOjpEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoKTsKKworICAgIC8qIHJlbW92
ZSB1c2VsZXNzIHZhbHVlcyAqLworICAgIHN0ZDo6cmVtb3ZlX2lmKGludFJlY3RzLmJlZ2luKCks
IGludFJlY3RzLmVuZCgpLCBpc05lZ2F0aXZlVmFsdWUpOworCisgICAgaWYgKGludFJlY3RzLmlz
RW1wdHkoKSB8fCBuID4gaW50UmVjdHMuc2l6ZSgpKQorICAgICAgcmV0dXJuIEVJTkFfRkFMU0U7
CisKKyAgICBzdGQ6OnNvcnQoaW50UmVjdHMuYmVnaW4oKSwgaW50UmVjdHMuZW5kKCksIGNvbXBJ
bnRSZWN0KTsKKworICAgICp4ID0gaW50UmVjdHNbbiAtIDFdLngoKTsKKyAgICAqeSA9IGludFJl
Y3RzW24gLSAxXS55KCk7CisgICAgcmV0dXJuIEVJTkFfVFJVRTsKK30KKwogLyoqCiAgKiBBc2sg
ZnJhbWUgdG8gc3RvcCBsb2FkaW5nLgogICoKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvZXdrL2V3
a19mcmFtZS5oIGIvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKaW5kZXggMWE5ZmU4MS4uOTM5
NDQ0NiAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKKysrIGIvV2ViS2l0
L2VmbC9ld2svZXdrX2ZyYW1lLmgKQEAgLTE2MCw2ICsxNjAsNyBAQCBFQVBJIHVuc2lnbmVkIGlu
dCBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX21hcmsoRXZhc19PYmplY3QgKm8sIGNvbnN0IGNoYXIg
KnN0cmluZwogRUFQSSBFaW5hX0Jvb2wgICAgZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc191bm1hcmtf
YWxsKEV2YXNfT2JqZWN0ICpvKTsKIEVBUEkgRWluYV9Cb29sICAgIGV3a19mcmFtZV90ZXh0X21h
dGNoZXNfaGlnaGxpZ2h0X3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIGhpZ2hsaWdodCk7
CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX2hpZ2hsaWdodF9nZXQo
Y29uc3QgRXZhc19PYmplY3QgKm8pOworRUFQSSBFaW5hX0Jvb2wgICAgZXdrX2ZyYW1lX3RleHRf
bWF0Y2hlc19udGhfcG9zX2dldChFdmFzX09iamVjdCAqbywgaW50IG4sIGludCAqeCwgaW50ICp5
KTsKIAogRUFQSSBFaW5hX0Jvb2wgICAgZXdrX2ZyYW1lX3N0b3AoRXZhc19PYmplY3QgKm8pOwog
RUFQSSBFaW5hX0Jvb2wgICAgZXdrX2ZyYW1lX3JlbG9hZChFdmFzX09iamVjdCAqbyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65094</attachid>
            <date>2010-08-23 03:12:17 -0700</date>
            <delta_ts>2010-08-23 05:36:23 -0700</delta_ts>
            <desc>WebCore:DocumentMarkerController patch</desc>
            <filename>patch_dom.diff</filename>
            <type>text/plain</type>
            <size>3189</size>
            <attacher name="Kamil Blank">k.blank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjYxYmM4Zi4uY2E2OGFkNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wOC0yMyAgS2FtaWwgQmxhbmsg
IDxrLmJsYW5rQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtFRkxdIEFkZGVkIEFQSSB3aGljaCByZXR1cm5zIHBvc2l0aW9uIG9m
IG4tdGggdGV4dCBtYXRjaGVzIG1hcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ0MjU4CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6
Zmlyc3RSZWN0c0Zvck1hcmtlcnMpOiBBZGRlZC4gCisgICAgICAgIEZ1bmN0aW9uIHJldHVybnMg
dmVjdG9yIG9mIEludFJlY3RzIGNvbnRhaW5pbmcgZmlyc3QgcmVjdCBmb3IgZXZlcnkgbWFya2Vy
LgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaDoKKwogMjAxMC0wOC0y
MyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5j
cHAKaW5kZXggMmI3ZmQ4NS4uZWJkMTlkZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNv
bnRyb2xsZXIuY3BwCkBAIC0zMjEsNiArMzIxLDM3IEBAIFZlY3RvcjxJbnRSZWN0PiBEb2N1bWVu
dE1hcmtlckNvbnRyb2xsZXI6OnJlbmRlcmVkUmVjdHNGb3JNYXJrZXJzKERvY3VtZW50TWFya2Vy
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorVmVjdG9yPEludFJlY3Q+IERvY3VtZW50TWFya2Vy
Q29udHJvbGxlcjo6Zmlyc3RSZWN0c0Zvck1hcmtlcnMoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5
cGUgbWFya2VyVHlwZSkKK3sKKyAgICBWZWN0b3I8SW50UmVjdD4gcmVzdWx0OworICAgIAorICAg
IC8vIG91dGVyIGxvb3A6IHByb2Nlc3MgZWFjaCBub2RlCisgICAgTWFya2VyTWFwOjppdGVyYXRv
ciBlbmQgPSBtX21hcmtlcnMuZW5kKCk7CisgICAgZm9yIChNYXJrZXJNYXA6Oml0ZXJhdG9yIG5v
ZGVJdGVyYXRvciA9IG1fbWFya2Vycy5iZWdpbigpOyBub2RlSXRlcmF0b3IgIT0gZW5kOyArK25v
ZGVJdGVyYXRvcikgeworICAgICAgICAvLyBpbm5lciBsb29wOyBwcm9jZXNzIGVhY2ggbWFya2Vy
IGluIHRoaXMgbm9kZQorICAgICAgICBOb2RlKiBub2RlID0gbm9kZUl0ZXJhdG9yLT5maXJzdC5n
ZXQoKTsKKyAgICAgICAgTWFya2VyTWFwVmVjdG9yUGFpciogdmVjdG9yUGFpciA9IG5vZGVJdGVy
YXRvci0+c2Vjb25kOworICAgICAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXI+JiBtYXJrZXJzID0g
dmVjdG9yUGFpci0+Zmlyc3Q7CisgICAgICAgIHVuc2lnbmVkIG1hcmtlckNvdW50ID0gbWFya2Vy
cy5zaXplKCk7CisgICAgICAgIGZvciAodW5zaWduZWQgbWFya2VySW5kZXggPSAwOyBtYXJrZXJJ
bmRleCA8IG1hcmtlckNvdW50OyArK21hcmtlckluZGV4KSB7CisgICAgICAgICAgICBEb2N1bWVu
dE1hcmtlciBtYXJrZXIgPSBtYXJrZXJzW21hcmtlckluZGV4XTsKKyAgICAgICAgICAgCisgICAg
ICAgICAgICAvLyBza2lwIG1hcmtlciB0aGF0IGlzIHdyb25nIHR5cGUKKyAgICAgICAgICAgIGlm
IChtYXJrZXIudHlwZSAhPSBtYXJrZXJUeXBlICYmIG1hcmtlclR5cGUgIT0gRG9jdW1lbnRNYXJr
ZXI6OkFsbE1hcmtlcnMpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIFdlYkNvcmU6OlJlbmRlclRleHQqIHRleHQgPSBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpSZW5kZXJUZXh0Kj4obm9kZS0+cmVuZGVyZXIoKSk7CisgICAgICAgICAgICBWZWN0b3I8
SW50UmVjdD4gYWJzb2x1dGVSZWN0czsKKyAgICAgICAgICAgIHRleHQtPmFic29sdXRlUmVjdHNG
b3JSYW5nZShhYnNvbHV0ZVJlY3RzLCBtYXJrZXIuc3RhcnRPZmZzZXQsIG1hcmtlci5lbmRPZmZz
ZXQpOworCisgICAgICAgICAgICBpZiAoYWJzb2x1dGVSZWN0cy5zaXplKCkgPiAwKQorICAgICAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYWJzb2x1dGVSZWN0c1swXSk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB2b2lkIERvY3VtZW50TWFya2VyQ29udHJv
bGxlcjo6cmVtb3ZlTWFya2VycyhOb2RlKiBub2RlKQogewogICAgIE1hcmtlck1hcDo6aXRlcmF0
b3IgaSA9IG1fbWFya2Vycy5maW5kKG5vZGUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuaAppbmRleCA4OTIxYmFhLi4yODAwMjdlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9E
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtl
ckNvbnRyb2xsZXIuaApAQCAtNjAsNiArNjAsNyBAQCBwdWJsaWM6CiAgICAgRG9jdW1lbnRNYXJr
ZXIqIG1hcmtlckNvbnRhaW5pbmdQb2ludChjb25zdCBJbnRQb2ludCYsIERvY3VtZW50TWFya2Vy
OjpNYXJrZXJUeXBlID0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnMpOwogICAgIFZlY3RvcjxE
b2N1bWVudE1hcmtlcj4gbWFya2Vyc0Zvck5vZGUoTm9kZSopOwogICAgIFZlY3RvcjxJbnRSZWN0
PiByZW5kZXJlZFJlY3RzRm9yTWFya2VycyhEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSA9IERv
Y3VtZW50TWFya2VyOjpBbGxNYXJrZXJzKTsKKyAgICBWZWN0b3I8SW50UmVjdD4gZmlyc3RSZWN0
c0Zvck1hcmtlcnMoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgPSBEb2N1bWVudE1hcmtlcjo6
QWxsTWFya2Vycyk7CiAKIHByaXZhdGU6CiAgICAgdHlwZWRlZiBzdGQ6OnBhaXI8VmVjdG9yPERv
Y3VtZW50TWFya2VyPiwgVmVjdG9yPEludFJlY3Q+ID4gTWFya2VyTWFwVmVjdG9yUGFpcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65095</attachid>
            <date>2010-08-23 03:13:46 -0700</date>
            <delta_ts>2010-08-24 01:20:35 -0700</delta_ts>
            <desc>WebKit-EFL patch</desc>
            <filename>patch_efl.diff</filename>
            <type>text/plain</type>
            <size>3660</size>
            <attacher name="Kamil Blank">k.blank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
aW5kZXggNjlhNDViYy4uYzZkZDFjMCAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOC0yMyAg
S2FtaWwgQmxhbmsgIDxrLmJsYW5rQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtFRkxdIEFkZGVkIEFQSSB3aGljaCByZXR1cm5z
IHBvc2l0aW9uIG9mIG4tdGggdGV4dCBtYXRjaGVzIG1hcmsKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MjU4CisKKyAgICAgICAgKiBld2svZXdrX2Zy
YW1lLmNwcDoKKyAgICAgICAgKGNvbXBJbnRSZWN0KTogUHJpdmF0ZS4KKyAgICAgICAgKGlzTmVn
YXRpdmVWYWx1ZSk6IFByaXZhdGUuCisgICAgICAgIChld2tfZnJhbWVfdGV4dF9tYXRjaGVzX250
aF9wb3NfZ2V0KTogQWRkZWQuIEZ1bmN0aW9uIHJldHVybnMgcG9zaXRpb24gb2YKKyAgICAgICAg
bi10aCB0ZXh0IG1hdGNoIGluIGZyYW1lLgorICAgICAgICAqIGV3ay9ld2tfZnJhbWUuaDoKKwog
MjAxMC0wOC0yMiAgUmFmYWVsIEFudG9nbm9sbGkgIDxhbnRvZ25vbGxpQHByb2Z1c2lvbi5tb2Jp
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCmRpZmYgLS1naXQgYS9XZWJL
aXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwIGIvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApp
bmRleCA3YTJhZjVhLi5hNTJlZDE5IDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJh
bWUuY3BwCisrKyBiL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAgLTQ0LDE0ICs0NCwx
NSBAQAogI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgi
CiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKLSNpbmNsdWRlICJab29tTW9kZS5oIgogI2lu
Y2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCisjaW5jbHVkZSAiWm9vbU1vZGUuaCIKICNp
bmNsdWRlICJld2tfcHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAog
I2luY2x1ZGUgPEVpbmEuaD4KICNpbmNsdWRlIDxFdmFzLmg+CisjaW5jbHVkZSA8YWxnb3JpdGht
PgogI2luY2x1ZGUgPGVpbmFfc2FmZXR5X2NoZWNrcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIAogc3RhdGljIGNvbnN0IGNoYXIgRVdLX0ZSQU1FX1RZUEVfU1RSW10gPSAiRVdL
X0ZyYW1lIjsKIApAQCAtODIwLDYgKzgyMSw1MyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX3RleHRf
bWF0Y2hlc19oaWdobGlnaHRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBvKQogICAgIHJldHVybiBz
ZC0+ZnJhbWUtPm1hcmtlZFRleHRNYXRjaGVzQXJlSGlnaGxpZ2h0ZWQoKTsKIH0KIAorLyoqIAor
ICogQ29tcGFyaXNvbiBmdW5jdGlvbiB1c2VkIGJ5IGV3a19mcmFtZV90ZXh0X21hdGNoZXNfbnRo
X3Bvc19nZXQKKyAqLworc3RhdGljIGJvb2wgY29tcEludFJlY3QoV2ViQ29yZTo6SW50UmVjdCBp
LCBXZWJDb3JlOjpJbnRSZWN0IGopCit7CisgICAgcmV0dXJuIChpLnkoKSA8IGoueSgpIHx8IChp
LnkoKSA9PSBqLnkoKSAmJiBpLngoKSA8IGoueCgpKSk7Cit9ICAgCisgICAgCisvKioKKyAqIFBy
ZWRpY2F0ZSB1c2VkIGJ5IGV3a19mcmFtZV90ZXh0X21hdGNoZXNfbnRoX3Bvc19nZXQKKyAqLwor
c3RhdGljIGJvb2wgaXNOZWdhdGl2ZVZhbHVlKFdlYkNvcmU6OkludFJlY3QgaSkKK3sKKyAgICBy
ZXR1cm4gKGkueCgpIDwgMCB8fCBpLnkoKSA8IDApOworfQorCisvKioKKyAqIEdldCB4LCB5IHBv
c2l0aW9uIG9mIG4tdGggdGV4dCBtYXRjaCBpbiBmcmFtZQorICoKKyAqIEBwYXJhbSBvIGZyYW1l
IG9iamVjdCB3aGVyZSBtYXRjaGVzIGFyZSBoaWdobGlnaHRlZC4KKyAqIEBwYXJhbSBuIGluZGV4
IG9mIGVsZW1lbnQgCisgKiBAcGFyYW0geCB3aGVyZSB0byByZXR1cm4geCBwb3NpdGlvbiAKKyAq
IEBwYXJhbSB5IHdoZXJlIHRvIHJldHVybiB5IHBvc2l0aW9uIAorICoKKyAqIEByZXR1cm4gQGMg
RUlOQV9UUlVFIG9uIHN1Y2Nlc3MsIEBjIEVJTkFfRkFMU0UgZm9yIGZhaWx1cmUgLSB3aGVuIG5v
IG1hdGNoZXMgZm91bmQgb3IgCisgKiAgICAgICAgIG4gYmlnZ2VyIHRoYW4gc2VhcmNoIHJlc3Vs
dHMuCisgKi8KK0VpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX250aF9wb3NfZ2V0KEV2
YXNfT2JqZWN0KiBvLCBpbnQgbiwgaW50KiB4LCBpbnQqIHkpCit7CisgICAgRVdLX0ZSQU1FX1NE
X0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0UpOworICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFfRkFMU0UpOworCisgICAgVmVjdG9yPFdlYkNv
cmU6OkludFJlY3Q+IGludFJlY3RzID0gc2QtPmZyYW1lLT5kb2N1bWVudCgpLT5tYXJrZXJzKCkt
PmZpcnN0UmVjdHNGb3JNYXJrZXJzKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2gp
OworCisgICAgLyogcmVtb3ZlIHVzZWxlc3MgdmFsdWVzICovCisgICAgc3RkOjpyZW1vdmVfaWYo
aW50UmVjdHMuYmVnaW4oKSwgaW50UmVjdHMuZW5kKCksIGlzTmVnYXRpdmVWYWx1ZSk7CisKKyAg
ICBpZiAoaW50UmVjdHMuaXNFbXB0eSgpIHx8IG4gPiBpbnRSZWN0cy5zaXplKCkpCisgICAgICBy
ZXR1cm4gRUlOQV9GQUxTRTsKKworICAgIHN0ZDo6c29ydChpbnRSZWN0cy5iZWdpbigpLCBpbnRS
ZWN0cy5lbmQoKSwgY29tcEludFJlY3QpOworCisgICAgKnggPSBpbnRSZWN0c1tuIC0gMV0ueCgp
OworICAgICp5ID0gaW50UmVjdHNbbiAtIDFdLnkoKTsKKyAgICByZXR1cm4gRUlOQV9UUlVFOwor
fQorCiAvKioKICAqIEFzayBmcmFtZSB0byBzdG9wIGxvYWRpbmcuCiAgKgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmggYi9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaApp
bmRleCAxYTlmZTgxLi45Mzk0NDQ2IDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJh
bWUuaAorKysgYi9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaApAQCAtMTYwLDYgKzE2MCw3IEBA
IEVBUEkgdW5zaWduZWQgaW50IGV3a19mcmFtZV90ZXh0X21hdGNoZXNfbWFyayhFdmFzX09iamVj
dCAqbywgY29uc3QgY2hhciAqc3RyaW5nCiBFQVBJIEVpbmFfQm9vbCAgICBld2tfZnJhbWVfdGV4
dF9tYXRjaGVzX3VubWFya19hbGwoRXZhc19PYmplY3QgKm8pOwogRUFQSSBFaW5hX0Jvb2wgICAg
ZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc19oaWdobGlnaHRfc2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5h
X0Jvb2wgaGlnaGxpZ2h0KTsKIEVBUEkgRWluYV9Cb29sICAgIGV3a19mcmFtZV90ZXh0X21hdGNo
ZXNfaGlnaGxpZ2h0X2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CitFQVBJIEVpbmFfQm9vbCAg
ICBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX250aF9wb3NfZ2V0KEV2YXNfT2JqZWN0ICpvLCBpbnQg
biwgaW50ICp4LCBpbnQgKnkpOwogCiBFQVBJIEVpbmFfQm9vbCAgICBld2tfZnJhbWVfc3RvcChF
dmFzX09iamVjdCAqbyk7CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfZnJhbWVfcmVsb2FkKEV2YXNf
T2JqZWN0ICpvKTsK
</data>
<flag name="commit-queue"
          id="53779"
          type_id="3"
          status="-"
          setter="lucas.de.marchi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65228</attachid>
            <date>2010-08-24 01:20:35 -0700</date>
            <delta_ts>2010-08-30 22:06:49 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch_efl_2.diff</filename>
            <type>text/plain</type>
            <size>3851</size>
            <attacher name="Kamil Blank">k.blank</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
aW5kZXggNjlhNDViYy4uNDQ0YzA0NyAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOC0yNCAg
S2FtaWwgQmxhbmsgIDxrLmJsYW5rQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtFRkxdIEFkZGVkIEFQSSB3aGljaCByZXR1cm5z
IHBvc2l0aW9uIG9mIG4tdGggdGV4dCBtYXRjaGVzIG1hcmsKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MjU4CisKKyAgICAgICAgKiBld2svZXdrX2Zy
YW1lLmNwcDogCisgICAgICAgIChfZXdrX2ZyYW1lX3JlY3RfY21wX2xlc3NfdGhhbik6IFByaXZh
dGUuCisgICAgICAgIChfZXdrX2ZyYW1lX3JlY3RfaXNfbmVnYXRpdmVfdmFsdWUpOiBQcml2YXRl
LgorICAgICAgICAoZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc19udGhfcG9zX2dldCk6IEFkZGVkLiBG
dW5jdGlvbiByZXR1cm5zIHBvc2l0aW9uIG9mCisgICAgICAgIG4tdGggdGV4dCBtYXRjaCBpbiBm
cmFtZS4KKyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmg6CisKIDIwMTAtMDgtMjIgIFJhZmFlbCBB
bnRvZ25vbGxpICA8YW50b2dub2xsaUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1l
LmNwcCBiL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5kZXggN2EyYWY1YS4uZTk1Y2Ri
MyAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9XZWJLaXQv
ZWZsL2V3ay9ld2tfZnJhbWUuY3BwCkBAIC00NCwxNCArNDQsMTUgQEAKICNpbmNsdWRlICJTY3Jp
cHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN1YnN0aXR1
dGVEYXRhLmgiCi0jaW5jbHVkZSAiWm9vbU1vZGUuaCIKICNpbmNsdWRlICJXaW5kb3dzS2V5Ym9h
cmRDb2Rlcy5oIgorI2luY2x1ZGUgIlpvb21Nb2RlLmgiCiAjaW5jbHVkZSAiZXdrX3ByaXZhdGUu
aCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpbmNsdWRlIDxFaW5hLmg+CiAj
aW5jbHVkZSA8RXZhcy5oPgorI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDxlaW5hX3Nh
ZmV0eV9jaGVja3MuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHN0YXRpYyBj
b25zdCBjaGFyIEVXS19GUkFNRV9UWVBFX1NUUltdID0gIkVXS19GcmFtZSI7CiAKQEAgLTgyMCw2
ICs4MjEsNTUgQEAgRWluYV9Cb29sIGV3a19mcmFtZV90ZXh0X21hdGNoZXNfaGlnaGxpZ2h0X2dl
dChjb25zdCBFdmFzX09iamVjdCogbykKICAgICByZXR1cm4gc2QtPmZyYW1lLT5tYXJrZWRUZXh0
TWF0Y2hlc0FyZUhpZ2hsaWdodGVkKCk7CiB9CiAKKy8qKiAKKyAqIENvbXBhcmlzb24gZnVuY3Rp
b24gdXNlZCBieSBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX250aF9wb3NfZ2V0CisgKi8KK3N0YXRp
YyBib29sIF9ld2tfZnJhbWVfcmVjdF9jbXBfbGVzc190aGFuKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIGksIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGopCit7CisgICAgcmV0dXJuIChpLnkoKSA8
IGoueSgpIHx8IChpLnkoKSA9PSBqLnkoKSAmJiBpLngoKSA8IGoueCgpKSk7Cit9ICAgCisgICAg
CisvKioKKyAqIFByZWRpY2F0ZSB1c2VkIGJ5IGV3a19mcmFtZV90ZXh0X21hdGNoZXNfbnRoX3Bv
c19nZXQKKyAqLworc3RhdGljIGJvb2wgX2V3a19mcmFtZV9yZWN0X2lzX25lZ2F0aXZlX3ZhbHVl
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGkpCit7CisgICAgcmV0dXJuIChpLngoKSA8IDAgfHwg
aS55KCkgPCAwKTsKK30KKworLyoqCisgKiBHZXQgeCwgeSBwb3NpdGlvbiBvZiBuLXRoIHRleHQg
bWF0Y2ggaW4gZnJhbWUKKyAqCisgKiBAcGFyYW0gbyBmcmFtZSBvYmplY3Qgd2hlcmUgbWF0Y2hl
cyBhcmUgaGlnaGxpZ2h0ZWQuCisgKiBAcGFyYW0gbiBpbmRleCBvZiBlbGVtZW50IAorICogQHBh
cmFtIHggd2hlcmUgdG8gcmV0dXJuIHggcG9zaXRpb24uIE1heSBiZSBAYyBOVUxMLiAKKyAqIEBw
YXJhbSB5IHdoZXJlIHRvIHJldHVybiB5IHBvc2l0aW9uLiBNYXkgYmUgQGMgTlVMTC4KKyAqCisg
KiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzLCBAYyBFSU5BX0ZBTFNFIGZvciBmYWls
dXJlIC0gd2hlbiBubyBtYXRjaGVzIGZvdW5kIG9yIAorICogICAgICAgICBuIGJpZ2dlciB0aGFu
IHNlYXJjaCByZXN1bHRzLgorICovCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc19u
dGhfcG9zX2dldChFdmFzX09iamVjdCogbywgaW50IG4sIGludCogeCwgaW50KiB5KQoreworICAg
IEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKKyAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNFKTsKKworICAg
IFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiBpbnRSZWN0cyA9IHNkLT5mcmFtZS0+ZG9jdW1lbnQo
KS0+bWFya2VycygpLT5maXJzdFJlY3RzRm9yTWFya2VycyhXZWJDb3JlOjpEb2N1bWVudE1hcmtl
cjo6VGV4dE1hdGNoKTsKKworICAgIC8qIHJlbW92ZSB1c2VsZXNzIHZhbHVlcyAqLworICAgIHN0
ZDo6cmVtb3ZlX2lmKGludFJlY3RzLmJlZ2luKCksIGludFJlY3RzLmVuZCgpLCBfZXdrX2ZyYW1l
X3JlY3RfaXNfbmVnYXRpdmVfdmFsdWUpOworCisgICAgaWYgKGludFJlY3RzLmlzRW1wdHkoKSB8
fCBuID4gaW50UmVjdHMuc2l6ZSgpKQorICAgICAgcmV0dXJuIEVJTkFfRkFMU0U7CisKKyAgICBz
dGQ6OnNvcnQoaW50UmVjdHMuYmVnaW4oKSwgaW50UmVjdHMuZW5kKCksIF9ld2tfZnJhbWVfcmVj
dF9jbXBfbGVzc190aGFuKTsKKworICAgIGlmICh4KQorICAgICAgKnggPSBpbnRSZWN0c1tuIC0g
MV0ueCgpOworICAgIGlmICh5KQorICAgICAgKnkgPSBpbnRSZWN0c1tuIC0gMV0ueSgpOworICAg
IHJldHVybiBFSU5BX1RSVUU7Cit9CisKIC8qKgogICogQXNrIGZyYW1lIHRvIHN0b3AgbG9hZGlu
Zy4KICAqCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaCBiL1dlYktpdC9l
ZmwvZXdrL2V3a19mcmFtZS5oCmluZGV4IDFhOWZlODEuLjkzOTQ0NDYgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCisrKyBiL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5o
CkBAIC0xNjAsNiArMTYwLDcgQEAgRUFQSSB1bnNpZ25lZCBpbnQgZXdrX2ZyYW1lX3RleHRfbWF0
Y2hlc19tYXJrKEV2YXNfT2JqZWN0ICpvLCBjb25zdCBjaGFyICpzdHJpbmcKIEVBUEkgRWluYV9C
b29sICAgIGV3a19mcmFtZV90ZXh0X21hdGNoZXNfdW5tYXJrX2FsbChFdmFzX09iamVjdCAqbyk7
CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX2hpZ2hsaWdodF9zZXQo
RXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBoaWdobGlnaHQpOwogRUFQSSBFaW5hX0Jvb2wgICAg
ZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc19oaWdobGlnaHRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpv
KTsKK0VBUEkgRWluYV9Cb29sICAgIGV3a19mcmFtZV90ZXh0X21hdGNoZXNfbnRoX3Bvc19nZXQo
RXZhc19PYmplY3QgKm8sIGludCBuLCBpbnQgKngsIGludCAqeSk7CiAKIEVBUEkgRWluYV9Cb29s
ICAgIGV3a19mcmFtZV9zdG9wKEV2YXNfT2JqZWN0ICpvKTsKIEVBUEkgRWluYV9Cb29sICAgIGV3
a19mcmFtZV9yZWxvYWQoRXZhc19PYmplY3QgKm8pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>