<?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>51932</bug_id>
          
          <creation_ts>2011-01-05 10:21:11 -0800</creation_ts>
          <short_desc>GTK: AX: atk tests need to be updated after recent changes</short_desc>
          <delta_ts>2011-01-07 09:34:32 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mario</cc>
    
    <cc>mrobinson</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>329635</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-01-05 10:21:11 -0800</bug_when>
    <thetext>With the change to support WK2 accessibility, the root object of the AX hierarchy may be different from what GTK expects. 

Many of the atktests are failing because 

AtkObject* object = gtk_widget_get_accessible(GTK_WIDGET(webView));

is returning something different.

These tests (or some method) needs to be updated to reflect the new hierarchy

AXScrollView -&gt; AXWebArea -&gt; elements</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329638</commentid>
    <comment_count>1</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-01-05 10:22:45 -0800</bug_when>
    <thetext>I don&apos;t know enough about GTK to fix this on my own. I&apos;m not sure where gtk_widget_get_accessible() gets its result from</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330431</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-06 14:31:52 -0800</bug_when>
    <thetext>I&apos;ll skip all the ATK tests for now, so that we can keep the tree green. Mario is probably the best person to look at these failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330432</commentid>
    <comment_count>3</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-01-06 14:32:43 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; I&apos;ll skip all the ATK tests for now, so that we can keep the tree green. Mario is probably the best person to look at these failures.

Thanks. 

Mario, if you need any help when looking at this, email me right away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330437</commentid>
    <comment_count>4</comment_count>
      <attachid>78165</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-06 14:40:23 -0800</bug_when>
    <thetext>Created attachment 78165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330444</commentid>
    <comment_count>5</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-01-06 14:51:11 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; I&apos;ll skip all the ATK tests for now, so that we can keep the tree green. Mario is probably the best person to look at these failures.
&gt; 
&gt; Thanks. 
&gt; 
&gt; Mario, if you need any help when looking at this, email me right away.

I just came back from holidays and I have to say my plans for tomorrow where more about finishing some paperwork I need to get done soon but suddently all my priorities have changed :-)

I&apos;ll work on this tomorrow morning (in 9 h from now) with top priority, fortunately I think I have an idea of where the problem is and how I could try to fix it... let&apos;s see if I&apos;m right.

Martin, Chris, don&apos;t worry, I&apos;ll keep you informed on this and won&apos;t hesitate to ask you if I need some help, you&apos;ve been warned! :-)

Btw, happy new year, a bit late, but here it is anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330445</commentid>
    <comment_count>6</comment_count>
      <attachid>78165</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-06 14:51:17 -0800</bug_when>
    <thetext>Comment on attachment 78165
Patch

Clearing flags on attachment: 78165

Committed r75201: &lt;http://trac.webkit.org/changeset/75201&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330729</commentid>
    <comment_count>7</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-01-07 04:20:22 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; With the change to support WK2 accessibility, the root object of the AX hierarchy may be different from what GTK expects. 
&gt; 
&gt; Many of the atktests are failing because 
&gt; 
&gt; AtkObject* object = gtk_widget_get_accessible(GTK_WIDGET(webView));
&gt; 
&gt; is returning something different.

Yep, the problem is that now, with the new hierarchy, WebKitGTK is returning an &apos;unknown&apos; object (from the POV of ATK roles) as the wrapper for the AXScrollView AccessibleObject.

In other words, WebKitGTK is returning the parent AtkObject of the object it should be returning instead (that would have the AtkRole ATK_ROLE_DOCUMENT_FRAME, instead of ATK_ROLE_UNKNOWN), so that&apos;s why ATK tests are failing now: the hierarchy is shifted.


&gt; These tests (or some method) needs to be updated to reflect the new hierarchy
&gt; 
&gt; AXScrollView -&gt; AXWebArea -&gt; elements

Yes, however I wonder whether the actual fix for now (at least while WK2 is not supported in the GTK port) would be, instead of changing all the tests to expect such object as the root AtkObject, just to change the implementation of gtk_widget_get_accessible() in WebKitWebView so it actually keeps returning the old, well-known, AtkObject of role ATK_ROLE_DOCUMENT_FRAME.

That way we&apos;d be obviously ignoring the new AXScrollView object in the GTK port, but I guess it could be a good enough solution while WK2 a11y is not supported in this port... or perhaps I&apos;m missing something crucial and I&apos;m just saying a completely stupid thing.

So, opinions?

Btw, a patch that would fix the issue by changing what gtk_widget_get_accessible() returns (tested to make testatk and testatkroles work fine again) would be something like this:

--- a/WebKit/gtk/webkit/webkitwebview.cpp
+++ b/WebKit/gtk/webkit/webkitwebview.cpp
@@ -1452,11 +1452,24 @@ static AtkObject* webkit_web_view_get_accessible(GtkWidget* widget)
     if (!doc)
         return NULL;
 
-    AccessibilityObject* coreAccessible = doc-&gt;axObjectCache()-&gt;rootObject();
-    if (!coreAccessible || !coreAccessible-&gt;wrapper())
+    AccessibilityObject* rootAccessible = doc-&gt;axObjectCache()-&gt;rootObject();
+    if (!rootAccessible)
         return NULL;
 
-    return coreAccessible-&gt;wrapper();
+    // We need to return the root accessibility object&apos;s first child
+    // to get to the actual ATK Object associated with the web view.
+    // See https://bugs.webkit.org/show_bug.cgi?id=51932
+    AtkObject* axRoot = rootAccessible-&gt;wrapper();
+    if (!axRoot || !ATK_IS_OBJECT(axRoot))
+        return NULL;
+
+    AtkObject* axWebView = atk_object_ref_accessible_child(ATK_OBJECT(axRoot), 0);
+    if (!axWebView || !ATK_IS_OBJECT(axWebView))
+        return NULL;
+
+    // We don&apos;t want the extra reference returned by ref_accessible_child.
+    g_object_unref(axWebView);
+    return axWebView;
 }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330731</commentid>
    <comment_count>8</comment_count>
      <attachid>78221</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-01-07 04:51:18 -0800</bug_when>
    <thetext>Created attachment 78221
Patch proposal (change gtk_widget_get_accessible in WebKitWebView)

Attaching the patch just in case we all agree on it, in order to speed things up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330797</commentid>
    <comment_count>9</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-01-07 09:11:12 -0800</bug_when>
    <thetext>
&gt; 
&gt; &gt; These tests (or some method) needs to be updated to reflect the new hierarchy
&gt; &gt; 
&gt; &gt; AXScrollView -&gt; AXWebArea -&gt; elements
&gt; 
&gt; Yes, however I wonder whether the actual fix for now (at least while WK2 is not supported in the GTK port) would be, instead of changing all the tests to expect such object as the root AtkObject, just to change the implementation of gtk_widget_get_accessible() in WebKitWebView so it actually keeps returning the old, well-known, AtkObject of role ATK_ROLE_DOCUMENT_FRAME.
&gt; 
&gt; That way we&apos;d be obviously ignoring the new AXScrollView object in the GTK port, but I guess it could be a good enough solution while WK2 a11y is not supported in this port... or perhaps I&apos;m missing something crucial and I&apos;m just saying a completely stupid thing.
&gt; 
&gt; So, opinions?
&gt; 

My question is, does GTK need to support an AXScrollView in the AX hierarchy? If they don&apos;t, then your patch looks fine because it just ignores what it doesn&apos;t need to know about

if however, GTK, should have a scroll view around the web areas in accessibility, then the correct fix is to incorporate the scroll view in to the tests as the root object, or add a method to return the root web area that is used instead of the root scroll view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330799</commentid>
    <comment_count>10</comment_count>
      <attachid>78242</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-01-07 09:16:39 -0800</bug_when>
    <thetext>Created attachment 78242
Patch proposal (change gtk_widget_get_accessible in WebKitWebView + fix bottom up navigation)

Attaching a new patch, this time seriously asking for revision after having checked with Joanmarie Diggs a couple of issues I was missing before (bottom up navigation through the get_parent() method), and confirming that returning the WebArea object when calling gtk_widget_get_accessible(webView) is the right thing to do (opposite to returning the scrollArea).

The patch also unskip the tests, I guess it&apos;s fine that way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330801</commentid>
    <comment_count>11</comment_count>
      <attachid>78242</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-01-07 09:19:21 -0800</bug_when>
    <thetext>Comment on attachment 78242
Patch proposal (change gtk_widget_get_accessible in WebKitWebView + fix bottom up navigation)

looks good</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330802</commentid>
    <comment_count>12</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-01-07 09:21:53 -0800</bug_when>
    <thetext>Sorry Chris, I didn&apos;t see your reply before attaching my last patch

(In reply to comment #9)
&gt; [...]
&gt; 
&gt; My question is, does GTK need to support an AXScrollView in the AX hierarchy? 
&gt; If they don&apos;t, then your patch looks fine because it just ignores what it 
&gt; doesn&apos;t need to know about

After talking through IRC with Joanmarie, it seems the right thing is to keep returning the WebArea role in that case, so my patch would actually make sense. However, some additional work was still needed to fix bottom up navigation through the get_parent() method of AtkObject, since there&apos;s always a point where there&apos;s apparently no parent and we need to manually work it around by checking that (1) we&apos;re in the root a11y object of webCore and (2) getting the accessible object from GAIL associated to the GtkWidget acting as the container of the WebView.

&gt; if however, GTK, should have a scroll view around the web areas in 
&gt; accessibility, then the correct fix is to incorporate the scroll view in to 
&gt; the tests as the root object, or add a method to return the root web area
&gt; that is used instead of the root scroll view.

AFAIK after talking to Joanmarie, this is not actually needed, at least for the moment, so I guess the correct approach is the already proposed one.

Thanks a lot for the feedback, even if I read it *after* attaching the last patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330812</commentid>
    <comment_count>13</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-01-07 09:34:32 -0800</bug_when>
    <thetext>Committed r75250: &lt;http://trac.webkit.org/changeset/75250&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78165</attachid>
            <date>2011-01-06 14:40:23 -0800</date>
            <delta_ts>2011-01-06 14:51:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51932-20110106144024.patch</filename>
            <type>text/plain</type>
            <size>2940</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggMzc5OWQ5NThlMjAwYjBmZDU4YWI5YTUyNjg4MDk5NzM1ZmI4MmE3MS4uYTBkZTdlYWQy
MWIyYmZhOGZlYWExNzcyMjBiMjIyNDFlYzM0MDcxNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAx
MS0wMS0wNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR1RLOiBBWDogYXRrIHRl
c3RzIG5lZWQgdG8gYmUgdXBkYXRlZCBhZnRlciByZWNlbnQgY2hhbmdlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE5MzIKKworICAgICAgICBTa2lw
IEFUSyB1bml0IHRlc3RzIHVudGlsIHdlIGNhbiBsb29rIGludG8gd2hhdCBpcyBjYXVzaW5nIHRo
ZXNlIGZhaWx1cmVzLgorCisgICAgICAgICogdGVzdHMvdGVzdGF0ay5jOgorICAgICAgICAobWFp
bik6IFNraXAgYWxsIHRlc3RzLgorICAgICAgICAqIHRlc3RzL3Rlc3RhdGtyb2xlcy5jOgorICAg
ICAgICAobWFpbik6IERpdHRvLgorCisyMDExLTAxLTA2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25AaWdhbGlhLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCiAKICAg
ICAgICAgSW5jbHVkZSBhIG5ldyBoZWFkZXIgaW4gdGhlIHN0YXRpYyBoZWFkZXJzIGxpc3QuIFRo
aXMgaXMgbmVjZXNzYXJ5CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYyBi
L1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jCmluZGV4IDFlZTZjNTU2ZjYwZGVjNWNjYWExYjFl
M2RlOTlkZjk3MTE0MDhjYWYuLjA0NmM2NDBhZGEwOWY2YWI0ZDE2OGM1YmU3MjFjZjJlYTJjNWEy
NzggMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jCisrKyBiL1dlYktpdC9n
dGsvdGVzdHMvdGVzdGF0ay5jCkBAIC0xMzEzLDYgKzEzMTMsNyBAQCBpbnQgbWFpbihpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCiAgICAgZ190aHJlYWRfaW5pdCgwKTsKICAgICBndGtfdGVzdF9pbml0
KCZhcmdjLCAmYXJndiwgMCk7CiAKKyAgICAvKiBTZWU6IGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MTkzMgogICAgIGdfdGVzdF9idWdfYmFzZSgiaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvIik7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9jb21ib0Jv
eCIsIHRlc3RXZWJraXRBdGtDb21ib0JveCk7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0
L2F0ay9nZXRUZXh0QXRPZmZzZXQiLCB0ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zmc2V0KTsKQEAg
LTEzMzIsNiArMTMzMyw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICBn
X3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL2xpbmtzV2l0aElubGluZUltYWdlcyIsIHRlc3RX
ZWJraXRBdGtMaW5rc1dpdGhJbmxpbmVJbWFnZXMpOwogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dl
YmtpdC9hdGsvbGlzdHNPZkl0ZW1zIiwgdGVzdFdlYmtpdEF0a0xpc3RzT2ZJdGVtcyk7CiAgICAg
Z190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay90ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbnMiLCB0
ZXN0V2Via2l0QXRrVGV4dENoYW5nZWROb3RpZmljYXRpb25zKTsKKyAgICAqLwogICAgIHJldHVy
biBnX3Rlc3RfcnVuICgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3Rh
dGtyb2xlcy5jIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrcm9sZXMuYwppbmRleCA1YWQ2YjVm
MWFmODRiM2VkZTAwMGY5NTZlMWE4MjRkMzA3MWE2N2VhLi45OWM2YzkyYzUxNjk5MWViMTNmZTY4
ZGQxMThkYTFmNDg0MTc1YzVjIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGty
b2xlcy5jCisrKyBiL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMKQEAgLTMwNyw2ICsz
MDcsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAKICAgICBnX3Rlc3RfYnVn
X2Jhc2UoImh0dHBzOi8vYnVncy53ZWJraXQub3JnLyIpOwogCisgICAgLyogU2VlOiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE5MzIKICAgICBnX3Rlc3RfYWRkKCIv
d2Via2l0L2F0ay90ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfZG9jdW1lbnRfZnJhbWUiLAogICAg
ICAgICAgICAgICAgQXRrUm9sZXNGaXh0dXJlLCBIVE1MX0RPQ1VNRU5UX0ZSQU1FLAogICAgICAg
ICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfc2V0dXAsCkBAIC0zNjcsNyArMzY4LDcgQEAgaW50
IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgdGVzdF93ZWJraXRf
YXRrX2dldF9yb2xlX2NvbWJvYm94LAogICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVf
dGVhcmRvd24pOwogCi0gICAgLyogRm9ybSByb2xlcyAqLworICAgIC8vIEZvcm0gcm9sZXMKICAg
ICBnX3Rlc3RfYWRkKCIvd2Via2l0L2F0ay90ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfZm9ybSIs
CiAgICAgICAgICAgICAgICBBdGtSb2xlc0ZpeHR1cmUsIEhUTUxfRk9STSwKICAgICAgICAgICAg
ICAgIGF0a19yb2xlc19maXh0dXJlX3NldHVwLApAQCAtNDE0LDYgKzQxNSw3IEBAIGludCBtYWlu
KGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAgIGF0a19yb2xlc19maXh0dXJl
X3NldHVwLAogICAgICAgICAgICAgICAgdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX3JhZGlvX2J1
dHRvbiwKICAgICAgICAgICAgICAgIGF0a19yb2xlc19maXh0dXJlX3RlYXJkb3duKTsKKyAgICAq
LwogCiAgICAgcmV0dXJuIGdfdGVzdF9ydW4oKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78221</attachid>
            <date>2011-01-07 04:51:18 -0800</date>
            <delta_ts>2011-01-07 09:16:39 -0800</delta_ts>
            <desc>Patch proposal (change gtk_widget_get_accessible in WebKitWebView)</desc>
            <filename>0001-2011-01-07-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>3680</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBjOGE0ZDBjNjdkMjJjMWMyNzdmNmQzMWM5MzhiNjZiNDFiYzg1ZWE2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBGcmksIDcgSmFuIDIwMTEgMTM6MjU6NDIgKzAxMDAKU3ViamVjdDogW1BBVENI
XSAyMDExLTAxLTA3ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIEdUSzogQVg6IGF0
ayB0ZXN0cyBuZWVkIHRvIGJlIHVwZGF0ZWQgYWZ0ZXIgcmVjZW50IGNoYW5nZXMKICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE5MzIKCiAgICAgICAgRml4
IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoKSBpbiBXZWJLaXRXZWJWaWV3IHRvIGtlZXAgcmV0
dXJuaW5nCiAgICAgICAgdGhlIEF0a09iamVjdCBvZiByb2xlIEFUS19ST0xFX0RPQ1VNRU5UX0ZS
QU1FLgoKICAgICAgICBXaXRoIHRoZSBjaGFuZ2UgdG8gc3VwcG9ydCBXSzIgYWNjZXNzaWJpbGl0
eSwgdGhlIHJvb3Qgb2JqZWN0IG9mCiAgICAgICAgdGhlIEFYIGhpZXJhcmNoeSBpcyBkaWZmZXJl
bnQgZnJvbSB3aGF0IEdUSyBleHBlY3RzIGFzIHRoZSBjdXJyZW50CiAgICAgICAgaGlyYXJjaHkg
cmlnaHQgbm93IGluY2x1ZGVzIGEgbmV3IGFjY2Vzc2libGUgb2JqZWN0IGFzIHRoZSBwYXJlbnQK
ICAgICAgICBvZiB0aGUgYWNjZXNzaWJsZSB3ZWIgYXJlYSAoQVhTY3JvbGxWaWV3KS4KCiAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CiAgICAgICAgKHdlYmtpdF93ZWJfdmlld19n
ZXRfYWNjZXNzaWJsZSk6IFJldHVybiB0aGUgZmlyc3QgY2hpbGQgb2YgdGhlCiAgICAgICAgd3Jh
cHBlciBhc3NvY2lhdGVkIHRvIHRoZSByb290IGFjY2Vzc2libGUgb2JqZWN0IGluIHRoZSBkb2N1
bWVudCwKICAgICAgICB0byBrZWVwIGV2ZXJ5dGhpbmcgaW4gdGhlIEdUSyBwb3J0IHdvcmtpbmcg
YXMgaXQgdXNlZCB0byBiZS4KLS0tCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICB8ICAgMjAgKysrKysrKysrKysrKysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwIHwgICAxOSArKysrKysrKysrKysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDM2
IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAzNzk5ZDk1Li45MTVlOTg0IDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTAxLTA3ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNh
bmNoZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBHVEs6IEFYOiBhdGsgdGVzdHMgbmVlZCB0byBiZSB1cGRhdGVkIGFmdGVyIHJl
Y2VudCBjaGFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01MTkzMgorCisgICAgICAgIEZpeCBndGtfd2lkZ2V0X2dldF9hY2Nlc3NpYmxlKCkgaW4g
V2ViS2l0V2ViVmlldyB0byBrZWVwIHJldHVybmluZworICAgICAgICB0aGUgQXRrT2JqZWN0IG9m
IHJvbGUgQVRLX1JPTEVfRE9DVU1FTlRfRlJBTUUuCisKKyAgICAgICAgV2l0aCB0aGUgY2hhbmdl
IHRvIHN1cHBvcnQgV0syIGFjY2Vzc2liaWxpdHksIHRoZSByb290IG9iamVjdCBvZgorICAgICAg
ICB0aGUgQVggaGllcmFyY2h5IGlzIGRpZmZlcmVudCBmcm9tIHdoYXQgR1RLIGV4cGVjdHMgYXMg
dGhlIGN1cnJlbnQKKyAgICAgICAgaGlyYXJjaHkgcmlnaHQgbm93IGluY2x1ZGVzIGEgbmV3IGFj
Y2Vzc2libGUgb2JqZWN0IGFzIHRoZSBwYXJlbnQKKyAgICAgICAgb2YgdGhlIGFjY2Vzc2libGUg
d2ViIGFyZWEgKEFYU2Nyb2xsVmlldykuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmll
dy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2FjY2Vzc2libGUpOiBSZXR1cm4g
dGhlIGZpcnN0IGNoaWxkIG9mIHRoZQorICAgICAgICB3cmFwcGVyIGFzc29jaWF0ZWQgdG8gdGhl
IHJvb3QgYWNjZXNzaWJsZSBvYmplY3QgaW4gdGhlIGRvY3VtZW50LAorICAgICAgICB0byBrZWVw
IGV2ZXJ5dGhpbmcgaW4gdGhlIEdUSyBwb3J0IHdvcmtpbmcgYXMgaXQgdXNlZCB0byBiZS4KKwog
MjAxMS0wMS0wNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cAppbmRleCBkZWY0MWNkLi5mOGRlZjczIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cApAQCAtMTQ1MiwxMSArMTQ1MiwyNCBAQCBzdGF0aWMgQXRrT2JqZWN0KiB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X2FjY2Vzc2libGUoR3RrV2lkZ2V0KiB3aWRnZXQpCiAgICAgaWYgKCFkb2MpCiAgICAg
ICAgIHJldHVybiBOVUxMOwogCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZUFjY2Vzc2li
bGUgPSBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+cm9vdE9iamVjdCgpOwotICAgIGlmICghY29yZUFj
Y2Vzc2libGUgfHwgIWNvcmVBY2Nlc3NpYmxlLT53cmFwcGVyKCkpCisgICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogcm9vdEFjY2Vzc2libGUgPSBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+cm9vdE9iamVj
dCgpOworICAgIGlmICghcm9vdEFjY2Vzc2libGUpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0g
ICAgcmV0dXJuIGNvcmVBY2Nlc3NpYmxlLT53cmFwcGVyKCk7CisgICAgLy8gV2UgbmVlZCB0byBy
ZXR1cm4gdGhlIHJvb3QgYWNjZXNzaWJpbGl0eSBvYmplY3QncyBmaXJzdCBjaGlsZAorICAgIC8v
IHRvIGdldCB0byB0aGUgYWN0dWFsIEFUSyBPYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSB3ZWIg
dmlldy4KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUxOTMyCisgICAgQXRrT2JqZWN0KiBheFJvb3QgPSByb290QWNjZXNzaWJsZS0+d3JhcHBlcigp
OworICAgIGlmICghYXhSb290IHx8ICFBVEtfSVNfT0JKRUNUKGF4Um9vdCkpCisgICAgICAgIHJl
dHVybiBOVUxMOworCisgICAgQXRrT2JqZWN0KiBheFdlYlZpZXcgPSBhdGtfb2JqZWN0X3JlZl9h
Y2Nlc3NpYmxlX2NoaWxkKEFUS19PQkpFQ1QoYXhSb290KSwgMCk7CisgICAgaWYgKCFheFdlYlZp
ZXcgfHwgIUFUS19JU19PQkpFQ1QoYXhXZWJWaWV3KSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisK
KyAgICAvLyBXZSBkb24ndCB3YW50IHRoZSBleHRyYSByZWZlcmVuY2UgcmV0dXJuZWQgYnkgcmVm
X2FjY2Vzc2libGVfY2hpbGQuCisgICAgZ19vYmplY3RfdW5yZWYoYXhXZWJWaWV3KTsKKyAgICBy
ZXR1cm4gYXhXZWJWaWV3OwogfQogCiBzdGF0aWMgZ2RvdWJsZSB3ZWJWaWV3R2V0RFBJKFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcpCi0tIAoxLjcuMy40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78242</attachid>
            <date>2011-01-07 09:16:39 -0800</date>
            <delta_ts>2011-01-07 09:19:21 -0800</delta_ts>
            <desc>Patch proposal (change gtk_widget_get_accessible in WebKitWebView + fix bottom up navigation)</desc>
            <filename>0001-2011-01-07-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>12492</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBjNzFkOGE3M2FmMDlmM2U3NWI0OTFiNzc5MWY0NmU3NTRmMDI2NmE4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBGcmksIDcgSmFuIDIwMTEgMTM6MjU6NDIgKzAxMDAKU3ViamVjdDogW1BBVENI
XSAyMDExLTAxLTA3ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIEdUSzogQVg6IGF0
ayB0ZXN0cyBuZWVkIHRvIGJlIHVwZGF0ZWQgYWZ0ZXIgcmVjZW50IGNoYW5nZXMKICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE5MzIKCiAgICAgICAgRml4
IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoKSBpbiBXZWJLaXRXZWJWaWV3IHRvIGtlZXAgcmV0
dXJuaW5nCiAgICAgICAgdGhlIEF0a09iamVjdCBvZiByb2xlIEFUS19ST0xFX0RPQ1VNRU5UX0ZS
QU1FLgoKICAgICAgICBXaXRoIHRoZSBjaGFuZ2UgdG8gc3VwcG9ydCBXSzIgYWNjZXNzaWJpbGl0
eSwgdGhlIHJvb3Qgb2JqZWN0IG9mCiAgICAgICAgdGhlIEFYIGhpZXJhcmNoeSBpcyBkaWZmZXJl
bnQgZnJvbSB3aGF0IEdUSyBleHBlY3RzIGFzIHRoZSBjdXJyZW50CiAgICAgICAgaGlyYXJjaHkg
cmlnaHQgbm93IGluY2x1ZGVzIGEgbmV3IGFjY2Vzc2libGUgb2JqZWN0IGFzIHRoZSBwYXJlbnQK
ICAgICAgICBvZiB0aGUgYWNjZXNzaWJsZSB3ZWIgYXJlYSAoQVhTY3JvbGxWaWV3KS4KCiAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CiAgICAgICAgKHdlYmtpdF93ZWJfdmlld19n
ZXRfYWNjZXNzaWJsZSk6IFJldHVybiB0aGUgZmlyc3QgY2hpbGQgb2YgdGhlCiAgICAgICAgd3Jh
cHBlciBhc3NvY2lhdGVkIHRvIHRoZSByb290IGFjY2Vzc2libGUgb2JqZWN0IGluIHRoZSBkb2N1
bWVudCwKICAgICAgICB0byBrZWVwIGV2ZXJ5dGhpbmcgaW4gdGhlIEdUSyBwb3J0IHdvcmtpbmcg
YXMgaXQgdXNlZCB0byBiZS4KCiAgICAgICAgTWFrZSBzdXJlIHdlIGNhbiBhbHdheXMgZ2V0IHRo
ZSByaWdodCBhY2Nlc3NzaWJsZSBwYXJlbnQgZm9yIGFuCiAgICAgICAgQXRrT2JqZWN0IHdoZW4g
dHJhdmVyc2luZyB0aGUgaGllcmFyY2h5IGJvdHRvbSB1cC4KCiAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CiAgICAgICAgKGlzUm9v
dE9iamVjdCk6IE5ldyBmdW5jdGlvbiB0byBjaGVjayB3aGV0aGVyIGFuCiAgICAgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCBpcyB0aGUgcm9vdCBvbmUgb3Igbm90LCBhY2NvcmRpbmcgdG8gdGhlCiAg
ICAgICAgbGF0ZXN0IGNoYW5nZXMgaW4gdGhlIGhpZXJhcmNoeS4KICAgICAgICAoYXRrUGFyZW50
T2ZSb290T2JqZWN0KTogR2V0cyB0aGUgYXBwcm9wcmlhdGUgQXRrT2JqZWN0IGZyb20gR1RLJ3MK
ICAgICAgICBHQUlMIGFzIHRoZSBwYXJlbnQgb2YgdGhlIHJvb3QgQXRrT2JqZWN0IGZyb20gV2Vi
Q29yZS4KICAgICAgICAod2Via2l0X2FjY2Vzc2libGVfZ2V0X3BhcmVudCk6IFVzZSBhdGtQYXJl
bnRPZlJvb3RPYmplY3QuCiAgICAgICAgKHdlYmtpdF9hY2Nlc3NpYmxlX2dldF9pbmRleF9pbl9w
YXJlbnQpOiBEaXR0by4KICAgICAgICAoYXRrUm9sZSk6IEV4cG9zZSBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0cyB3aXRoIFNjcm9sbEFyZWFSb2xlIGFzCiAgICAgICAgQXRrT2JqZWN0J3Mgb2Ygcm9sZSBB
VEtfUk9MRV9TQ1JPTExFRF9QQU5FLgoKICAgICAgICBSZS1lbmFibGUgc2tpcHBlZCBBVEsgdW5p
dCB0ZXN0cyBub3cgdGhleSBhcmUgcGFzc2luZyBhZ2Fpbi4KCiAgICAgICAgKiB0ZXN0cy90ZXN0
YXRrLmM6CiAgICAgICAgKG1haW4pOiBSZS1lbmFibGUgc2tpcHBlZCB0ZXN0cy4KICAgICAgICAq
IHRlc3RzL3Rlc3RhdGtyb2xlcy5jOgogICAgICAgIChtYWluKTogRGl0dG8uCi0tLQogV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIxICsrKysr
KysrKwogLi4uL2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgICAgICAgICAg
fCAgIDQ4ICsrKysrKysrKysrKystLS0tLS0KIFdlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAyNyArKysrKysrKysrKwogV2ViS2l0L2d0ay90ZXN0
cy90ZXN0YXRrLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyIC0KIFdlYktpdC9ndGsv
dGVzdHMvdGVzdGF0a3JvbGVzLmMgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgICAgICAgICAgICAgICAgfCAgIDMxICsrKysr
KysrKy0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgMTA0IGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggMzRhNjAwZi4uNzc1NDBmZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMS0wMS0wNyAgTWFyaW8g
U2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR1RLOiBBWDogYXRrIHRlc3RzIG5lZWQgdG8g
YmUgdXBkYXRlZCBhZnRlciByZWNlbnQgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE5MzIKKworICAgICAgICBNYWtlIHN1cmUgd2UgY2Fu
IGFsd2F5cyBnZXQgdGhlIHJpZ2h0IGFjY2Vzc3NpYmxlIHBhcmVudCBmb3IgYW4KKyAgICAgICAg
QXRrT2JqZWN0IHdoZW4gdHJhdmVyc2luZyB0aGUgaGllcmFyY2h5IGJvdHRvbSB1cC4KKworICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNw
cDoKKyAgICAgICAgKGlzUm9vdE9iamVjdCk6IE5ldyBmdW5jdGlvbiB0byBjaGVjayB3aGV0aGVy
IGFuCisgICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3QgaXMgdGhlIHJvb3Qgb25lIG9yIG5vdCwg
YWNjb3JkaW5nIHRvIHRoZQorICAgICAgICBsYXRlc3QgY2hhbmdlcyBpbiB0aGUgaGllcmFyY2h5
LgorICAgICAgICAoYXRrUGFyZW50T2ZSb290T2JqZWN0KTogR2V0cyB0aGUgYXBwcm9wcmlhdGUg
QXRrT2JqZWN0IGZyb20gR1RLJ3MKKyAgICAgICAgR0FJTCBhcyB0aGUgcGFyZW50IG9mIHRoZSBy
b290IEF0a09iamVjdCBmcm9tIFdlYkNvcmUuCisgICAgICAgICh3ZWJraXRfYWNjZXNzaWJsZV9n
ZXRfcGFyZW50KTogVXNlIGF0a1BhcmVudE9mUm9vdE9iamVjdC4KKyAgICAgICAgKHdlYmtpdF9h
Y2Nlc3NpYmxlX2dldF9pbmRleF9pbl9wYXJlbnQpOiBEaXR0by4KKyAgICAgICAgKGF0a1JvbGUp
OiBFeHBvc2UgQWNjZXNzaWJpbGl0eU9iamVjdHMgd2l0aCBTY3JvbGxBcmVhUm9sZSBhcworICAg
ICAgICBBdGtPYmplY3QncyBvZiByb2xlIEFUS19ST0xFX1NDUk9MTEVEX1BBTkUuCisKIDIwMTEt
MDEtMDYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsv
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKaW5kZXggNWJlZmZkMi4uNzQ4
OTAzNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckF0ay5jcHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKQEAgLTIzNCwyMSArMjM0LDM2IEBAIHN0YXRp
YyB2b2lkIHNldEF0a1JlbGF0aW9uU2V0RnJvbUNvcmVPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVj
dCogY29yZU9iamVjdCwgQXRrCiAKIHN0YXRpYyBncG9pbnRlciB3ZWJraXRfYWNjZXNzaWJsZV9w
YXJlbnRfY2xhc3MgPSAwOwogCi1zdGF0aWMgQXRrT2JqZWN0KiBhdGtQYXJlbnRPZldlYlZpZXco
QXRrT2JqZWN0KiBvYmplY3QpCitzdGF0aWMgYm9vbCBpc1Jvb3RPYmplY3QoQWNjZXNzaWJpbGl0
eU9iamVjdCogY29yZU9iamVjdCkKIHsKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlUGFy
ZW50ID0gY29yZShvYmplY3QpLT5wYXJlbnRPYmplY3RVbmlnbm9yZWQoKTsKKyAgICAvLyBUaGUg
cm9vdCBhY2Nlc3NpYmxlIG9iamVjdCBpbiBXZWJDb3JlIGlzIGFsd2F5cyBhbiBvYmplY3Qgd2l0
aAorICAgIC8vIHRoZSBTY3JvbGxlZEFyZWEgcm9sZSB3aXRoIG9uZSBjaGlsZCB3aXRoIHRoZSBX
ZWJBcmVhIHJvbGUuCisgICAgaWYgKCFjb3JlT2JqZWN0IHx8ICFjb3JlT2JqZWN0LT5pc1Njcm9s
bFZpZXcoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogZmlyc3RDaGlsZCA9IGNvcmVPYmplY3QtPmZpcnN0Q2hpbGQoKTsKKyAgICBpZiAoIWZpcnN0
Q2hpbGQgfHwgIWZpcnN0Q2hpbGQtPmlzV2ViQXJlYSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAotICAgIC8vIFRoZSB0b3AgbGV2ZWwgd2ViIHZpZXcg
Y2xhaW1zIHRvIG5vdCBoYXZlIGEgcGFyZW50LiBUaGlzIG1ha2VzIGl0CitzdGF0aWMgQXRrT2Jq
ZWN0KiBhdGtQYXJlbnRPZlJvb3RPYmplY3QoQXRrT2JqZWN0KiBvYmplY3QpCit7CisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCA9IGNvcmUob2JqZWN0KTsKKyAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBjb3JlUGFyZW50ID0gY29yZU9iamVjdC0+cGFyZW50T2JqZWN0VW5pZ25v
cmVkKCk7CisKKyAgICAvLyBUaGUgdG9wIGxldmVsIG9iamVjdCBjbGFpbXMgdG8gbm90IGhhdmUg
YSBwYXJlbnQuIFRoaXMgbWFrZXMgaXQKICAgICAvLyBpbXBvc3NpYmxlIGZvciBhc3Npc3RpdmUg
dGVjaG5vbG9naWVzIHRvIGFzY2VuZCB0aGUgYWNjZXNzaWJsZQogICAgIC8vIGhpZXJhcmNoeSBh
bGwgdGhlIHdheSB0byB0aGUgYXBwbGljYXRpb24uIChCdWcgMzA0ODkpCi0gICAgaWYgKCFjb3Jl
UGFyZW50ICYmIGNvcmUob2JqZWN0KS0+aXNXZWJBcmVhKCkpIHsKLSAgICAgICAgSG9zdFdpbmRv
dyogaG9zdFdpbmRvdyA9IGNvcmUob2JqZWN0KS0+ZG9jdW1lbnQoKS0+dmlldygpLT5ob3N0V2lu
ZG93KCk7CisgICAgaWYgKCFjb3JlUGFyZW50ICYmIGlzUm9vdE9iamVjdChjb3JlT2JqZWN0KSkg
eworICAgICAgICBIb3N0V2luZG93KiBob3N0V2luZG93ID0gY29yZU9iamVjdC0+ZG9jdW1lbnQo
KS0+dmlldygpLT5ob3N0V2luZG93KCk7CiAgICAgICAgIGlmIChob3N0V2luZG93KSB7Ci0gICAg
ICAgICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgd2ViVmlldyA9IGhvc3RXaW5kb3ctPnBsYXRmb3Jt
UGFnZUNsaWVudCgpOwotICAgICAgICAgICAgaWYgKHdlYlZpZXcpIHsKLSAgICAgICAgICAgICAg
ICBHdGtXaWRnZXQqIHdlYlZpZXdQYXJlbnQgPSBndGtfd2lkZ2V0X2dldF9wYXJlbnQod2ViVmll
dyk7Ci0gICAgICAgICAgICAgICAgaWYgKHdlYlZpZXdQYXJlbnQpCi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiBndGtfd2lkZ2V0X2dldF9hY2Nlc3NpYmxlKHdlYlZpZXdQYXJlbnQpOworICAg
ICAgICAgICAgUGxhdGZvcm1QYWdlQ2xpZW50IHNjcm9sbFZpZXcgPSBob3N0V2luZG93LT5wbGF0
Zm9ybVBhZ2VDbGllbnQoKTsKKyAgICAgICAgICAgIGlmIChzY3JvbGxWaWV3KSB7CisgICAgICAg
ICAgICAgICAgR3RrV2lkZ2V0KiBzY3JvbGxWaWV3UGFyZW50ID0gZ3RrX3dpZGdldF9nZXRfcGFy
ZW50KHNjcm9sbFZpZXcpOworICAgICAgICAgICAgICAgIGlmIChzY3JvbGxWaWV3UGFyZW50KQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ3RrX3dpZGdldF9nZXRfYWNjZXNzaWJsZShzY3Jv
bGxWaWV3UGFyZW50KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTI2MSw5
ICsyNzYsMTAgQEAgc3RhdGljIEF0a09iamVjdCogYXRrUGFyZW50T2ZXZWJWaWV3KEF0a09iamVj
dCogb2JqZWN0KQogCiBzdGF0aWMgQXRrT2JqZWN0KiB3ZWJraXRfYWNjZXNzaWJsZV9nZXRfcGFy
ZW50KEF0a09iamVjdCogb2JqZWN0KQogewotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVQ
YXJlbnQgPSBjb3JlKG9iamVjdCktPnBhcmVudE9iamVjdFVuaWdub3JlZCgpOwotICAgIGlmICgh
Y29yZVBhcmVudCAmJiBjb3JlKG9iamVjdCktPmlzV2ViQXJlYSgpKQotICAgICAgICByZXR1cm4g
YXRrUGFyZW50T2ZXZWJWaWV3KG9iamVjdCk7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogY29y
ZU9iamVjdCA9IGNvcmUob2JqZWN0KTsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlUGFy
ZW50ID0gY29yZU9iamVjdC0+cGFyZW50T2JqZWN0VW5pZ25vcmVkKCk7CisgICAgaWYgKCFjb3Jl
UGFyZW50ICYmIGlzUm9vdE9iamVjdChjb3JlT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGF0a1Bh
cmVudE9mUm9vdE9iamVjdChvYmplY3QpOwogCiAgICAgaWYgKCFjb3JlUGFyZW50KQogICAgICAg
ICByZXR1cm4gMDsKQEAgLTMwMCw4ICszMTYsOCBAQCBzdGF0aWMgZ2ludCB3ZWJraXRfYWNjZXNz
aWJsZV9nZXRfaW5kZXhfaW5fcGFyZW50KEF0a09iamVjdCogb2JqZWN0KQogICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIGNvcmVPYmplY3QgPSBjb3JlKG9iamVjdCk7CiAgICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogcGFyZW50ID0gY29yZU9iamVjdC0+cGFyZW50T2JqZWN0VW5pZ25vcmVkKCk7CiAK
LSAgICBpZiAoIXBhcmVudCAmJiBjb3JlKG9iamVjdCktPmlzV2ViQXJlYSgpKSB7Ci0gICAgICAg
IEF0a09iamVjdCogYXRrUGFyZW50ID0gYXRrUGFyZW50T2ZXZWJWaWV3KG9iamVjdCk7CisgICAg
aWYgKCFwYXJlbnQgJiYgaXNSb290T2JqZWN0KGNvcmVPYmplY3QpKSB7CisgICAgICAgIEF0a09i
amVjdCogYXRrUGFyZW50ID0gYXRrUGFyZW50T2ZSb290T2JqZWN0KG9iamVjdCk7CiAgICAgICAg
IGlmICghYXRrUGFyZW50KQogICAgICAgICAgICAgcmV0dXJuIC0xOwogCkBAIC00MTYsNiArNDMy
LDggQEAgc3RhdGljIEF0a1JvbGUgYXRrUm9sZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogICAg
ICAgICByZXR1cm4gQVRLX1JPTEVfTElTVDsKICAgICBjYXNlIFNjcm9sbEJhclJvbGU6CiAgICAg
ICAgIHJldHVybiBBVEtfUk9MRV9TQ1JPTExfQkFSOworICAgIGNhc2UgU2Nyb2xsQXJlYVJvbGU6
CisgICAgICAgIHJldHVybiBBVEtfUk9MRV9TQ1JPTExfUEFORTsKICAgICBjYXNlIEdyaWRSb2xl
OiAvLyBJcyB0aGlzIHJpZ2h0PwogICAgIGNhc2UgVGFibGVSb2xlOgogICAgICAgICByZXR1cm4g
QVRLX1JPTEVfVEFCTEU7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCmluZGV4IDNjYmIzNTEuLjQyNGIyOWMgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTEtMDEtMDcgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdUSzog
QVg6IGF0ayB0ZXN0cyBuZWVkIHRvIGJlIHVwZGF0ZWQgYWZ0ZXIgcmVjZW50IGNoYW5nZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxOTMyCisKKyAg
ICAgICAgRml4IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoKSBpbiBXZWJLaXRXZWJWaWV3IHRv
IGtlZXAgcmV0dXJuaW5nCisgICAgICAgIHRoZSBBdGtPYmplY3Qgb2Ygcm9sZSBBVEtfUk9MRV9E
T0NVTUVOVF9GUkFNRS4KKworICAgICAgICBXaXRoIHRoZSBjaGFuZ2UgdG8gc3VwcG9ydCBXSzIg
YWNjZXNzaWJpbGl0eSwgdGhlIHJvb3Qgb2JqZWN0IG9mCisgICAgICAgIHRoZSBBWCBoaWVyYXJj
aHkgaXMgZGlmZmVyZW50IGZyb20gd2hhdCBHVEsgZXhwZWN0cyBhcyB0aGUgY3VycmVudAorICAg
ICAgICBoaXJhcmNoeSByaWdodCBub3cgaW5jbHVkZXMgYSBuZXcgYWNjZXNzaWJsZSBvYmplY3Qg
YXMgdGhlIHBhcmVudAorICAgICAgICBvZiB0aGUgYWNjZXNzaWJsZSB3ZWIgYXJlYSAoQVhTY3Jv
bGxWaWV3KS4KKworICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19nZXRfYWNjZXNzaWJsZSk6IFJldHVybiB0aGUgZmlyc3QgY2hpbGQg
b2YgdGhlCisgICAgICAgIHdyYXBwZXIgYXNzb2NpYXRlZCB0byB0aGUgcm9vdCBhY2Nlc3NpYmxl
IG9iamVjdCBpbiB0aGUgZG9jdW1lbnQsCisgICAgICAgIHRvIGtlZXAgZXZlcnl0aGluZyBpbiB0
aGUgR1RLIHBvcnQgd29ya2luZyBhcyBpdCB1c2VkIHRvIGJlLgorCisgICAgICAgIFJlLWVuYWJs
ZSBza2lwcGVkIEFUSyB1bml0IHRlc3RzIG5vdyB0aGV5IGFyZSBwYXNzaW5nIGFnYWluLgorCisg
ICAgICAgICogdGVzdHMvdGVzdGF0ay5jOgorICAgICAgICAobWFpbik6IFJlLWVuYWJsZSBza2lw
cGVkIHRlc3RzLgorICAgICAgICAqIHRlc3RzL3Rlc3RhdGtyb2xlcy5jOgorICAgICAgICAobWFp
bik6IERpdHRvLgorCiAyMDExLTAxLTA2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdh
bGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCmRpZmYgLS1naXQgYS9X
ZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYyBiL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jCmlu
ZGV4IDA0NmM2NDAuLjFlZTZjNTUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0
ay5jCisrKyBiL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jCkBAIC0xMzEzLDcgKzEzMTMsNiBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgZ190aHJlYWRfaW5pdCgwKTsK
ICAgICBndGtfdGVzdF9pbml0KCZhcmdjLCAmYXJndiwgMCk7CiAKLSAgICAvKiBTZWU6IGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTkzMgogICAgIGdfdGVzdF9idWdf
YmFzZSgiaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvIik7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIv
d2Via2l0L2F0ay9jb21ib0JveCIsIHRlc3RXZWJraXRBdGtDb21ib0JveCk7CiAgICAgZ190ZXN0
X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9nZXRUZXh0QXRPZmZzZXQiLCB0ZXN0V2Via2l0QXRrR2V0
VGV4dEF0T2Zmc2V0KTsKQEAgLTEzMzMsNyArMTMzMiw2IEBAIGludCBtYWluKGludCBhcmdjLCBj
aGFyKiogYXJndikKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL2xpbmtzV2l0aElu
bGluZUltYWdlcyIsIHRlc3RXZWJraXRBdGtMaW5rc1dpdGhJbmxpbmVJbWFnZXMpOwogICAgIGdf
dGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvbGlzdHNPZkl0ZW1zIiwgdGVzdFdlYmtpdEF0a0xp
c3RzT2ZJdGVtcyk7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay90ZXh0Q2hhbmdl
ZE5vdGlmaWNhdGlvbnMiLCB0ZXN0V2Via2l0QXRrVGV4dENoYW5nZWROb3RpZmljYXRpb25zKTsK
LSAgICAqLwogICAgIHJldHVybiBnX3Rlc3RfcnVuICgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrcm9s
ZXMuYwppbmRleCA5OWM2YzkyLi41YWQ2YjVmIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3Rlc3Rz
L3Rlc3RhdGtyb2xlcy5jCisrKyBiL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMKQEAg
LTMwNyw3ICszMDcsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAKICAgICBn
X3Rlc3RfYnVnX2Jhc2UoImh0dHBzOi8vYnVncy53ZWJraXQub3JnLyIpOwogCi0gICAgLyogU2Vl
OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE5MzIKICAgICBnX3Rl
c3RfYWRkKCIvd2Via2l0L2F0ay90ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfZG9jdW1lbnRfZnJh
bWUiLAogICAgICAgICAgICAgICAgQXRrUm9sZXNGaXh0dXJlLCBIVE1MX0RPQ1VNRU5UX0ZSQU1F
LAogICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfc2V0dXAsCkBAIC0zNjgsNyArMzY3
LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgdGVz
dF93ZWJraXRfYXRrX2dldF9yb2xlX2NvbWJvYm94LAogICAgICAgICAgICAgICAgYXRrX3JvbGVz
X2ZpeHR1cmVfdGVhcmRvd24pOwogCi0gICAgLy8gRm9ybSByb2xlcworICAgIC8qIEZvcm0gcm9s
ZXMgKi8KICAgICBnX3Rlc3RfYWRkKCIvd2Via2l0L2F0ay90ZXN0X3dlYmtpdF9hdGtfZ2V0X3Jv
bGVfZm9ybSIsCiAgICAgICAgICAgICAgICBBdGtSb2xlc0ZpeHR1cmUsIEhUTUxfRk9STSwKICAg
ICAgICAgICAgICAgIGF0a19yb2xlc19maXh0dXJlX3NldHVwLApAQCAtNDE1LDcgKzQxNCw2IEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAgIGF0a19yb2xl
c19maXh0dXJlX3NldHVwLAogICAgICAgICAgICAgICAgdGVzdF93ZWJraXRfYXRrX2dldF9yb2xl
X3JhZGlvX2J1dHRvbiwKICAgICAgICAgICAgICAgIGF0a19yb2xlc19maXh0dXJlX3RlYXJkb3du
KTsKLSAgICAqLwogCiAgICAgcmV0dXJuIGdfdGVzdF9ydW4oKTsKIH0KZGlmZiAtLWdpdCBhL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHAKaW5kZXggZGVmNDFjZC4uYmQzNTM4YyAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHAKQEAgLTE0NDAsMjMgKzE0NDAsMzYgQEAgc3RhdGljIEF0a09iamVjdCog
d2Via2l0X3dlYl92aWV3X2dldF9hY2Nlc3NpYmxlKEd0a1dpZGdldCogd2lkZ2V0KQogewogICAg
IFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KTsKICAgICBp
ZiAoIWNvcmUod2ViVmlldykpCi0gICAgICAgIHJldHVybiBOVUxMOworICAgICAgICByZXR1cm4g
MDsKIAogICAgIEFYT2JqZWN0Q2FjaGU6OmVuYWJsZUFjY2Vzc2liaWxpdHkoKTsKIAogICAgIEZy
YW1lKiBjb3JlRnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5tYWluRnJhbWUoKTsKICAgICBpZiAoIWNv
cmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJldHVybiAwOwogCiAgICAg
RG9jdW1lbnQqIGRvYyA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvYykKLSAg
ICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJldHVybiAwOworCisgICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogcm9vdEFjY2Vzc2libGUgPSBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+cm9vdE9iamVj
dCgpOworICAgIGlmICghcm9vdEFjY2Vzc2libGUpCisgICAgICAgIHJldHVybiAwOworCisgICAg
Ly8gV2UgbmVlZCB0byByZXR1cm4gdGhlIHJvb3QgYWNjZXNzaWJpbGl0eSBvYmplY3QncyBmaXJz
dCBjaGlsZAorICAgIC8vIHRvIGdldCB0byB0aGUgYWN0dWFsIEFUSyBPYmplY3QgYXNzb2NpYXRl
ZCB3aXRoIHRoZSB3ZWIgdmlldy4KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUxOTMyCisgICAgQXRrT2JqZWN0KiBheFJvb3QgPSByb290QWNjZXNz
aWJsZS0+d3JhcHBlcigpOworICAgIGlmICghYXhSb290IHx8ICFBVEtfSVNfT0JKRUNUKGF4Um9v
dCkpCisgICAgICAgIHJldHVybiAwOwogCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZUFj
Y2Vzc2libGUgPSBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+cm9vdE9iamVjdCgpOwotICAgIGlmICgh
Y29yZUFjY2Vzc2libGUgfHwgIWNvcmVBY2Nlc3NpYmxlLT53cmFwcGVyKCkpCi0gICAgICAgIHJl
dHVybiBOVUxMOworICAgIEF0a09iamVjdCogYXhXZWJWaWV3ID0gYXRrX29iamVjdF9yZWZfYWNj
ZXNzaWJsZV9jaGlsZChBVEtfT0JKRUNUKGF4Um9vdCksIDApOworICAgIGlmICghYXhXZWJWaWV3
IHx8ICFBVEtfSVNfT0JKRUNUKGF4V2ViVmlldykpCisgICAgICAgIHJldHVybiAwOwogCi0gICAg
cmV0dXJuIGNvcmVBY2Nlc3NpYmxlLT53cmFwcGVyKCk7CisgICAgLy8gV2UgZG9uJ3Qgd2FudCB0
aGUgZXh0cmEgcmVmZXJlbmNlIHJldHVybmVkIGJ5IHJlZl9hY2Nlc3NpYmxlX2NoaWxkLgorICAg
IGdfb2JqZWN0X3VucmVmKGF4V2ViVmlldyk7CisgICAgcmV0dXJuIGF4V2ViVmlldzsKIH0KIAog
c3RhdGljIGdkb3VibGUgd2ViVmlld0dldERQSShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotLSAK
MS43LjMuNAoK
</data>
<flag name="review"
          id="69525"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
          </attachment>
      

    </bug>

</bugzilla>