<?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>39102</bug_id>
          
          <creation_ts>2010-05-13 19:20:33 -0700</creation_ts>
          <short_desc>[GTK] eventSender.contextClick() should return the contents of the context menu</short_desc>
          <delta_ts>2012-10-08 13:29:11 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, LayoutTestFailure</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>45021</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Chang">tony</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>225619</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-05-13 19:20:33 -0700</bug_when>
    <thetext>I&apos;m adding this in bug 25639 so we can test the context menu items.  This will need to be added to GTK DRT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278142</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-13 05:31:35 -0700</bug_when>
    <thetext>FWIW the DRT mac patch introducing the feature: http://trac.webkit.org/changeset/59585</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278144</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-13 05:32:08 -0700</bug_when>
    <thetext>*** Bug 45641 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278794</commentid>
    <comment_count>3</comment_count>
      <attachid>67534</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-14 03:23:21 -0700</bug_when>
    <thetext>Created attachment 67534
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279541</commentid>
    <comment_count>4</comment_count>
      <attachid>67534</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-09-15 07:50:40 -0700</bug_when>
    <thetext>Comment on attachment 67534
proposed patch

&gt; +    JSValueRef valueRef = JSObjectMakeArray(context, 0, NULL, NULL);
&gt; +    WebKitWebView* view = webkit_web_frame_get_web_view(mainFrame);
&gt; +    GtkMenu* gtkMenu = webkit_web_view_get_context_menu(view);
&gt; +    if (gtkMenu) {
&gt; +        GList* items = gtk_container_get_children(GTK_CONTAINER(gtkMenu));
&gt; +        JSValueRef arrayValues[g_list_length(items)];
&gt; +        int index = 0;
&gt; +        for (GList* item = g_list_first(items); item; item = g_list_next(item)) {
&gt; +            const gchar* label;
&gt; +            if (GTK_IS_SEPARATOR_MENU_ITEM(item-&gt;data))
&gt; +                label = g_strdup(&quot;&lt;separator&gt;&quot;);
&gt; +            else
&gt; +                label = g_strdup(gtk_menu_item_get_label(GTK_MENU_ITEM(item-&gt;data)));
&gt; +
&gt; +            arrayValues[index] = JSValueMakeString(context, JSStringCreateWithUTF8CString(label));
&gt; +            index++;
&gt; +        }
&gt; +        if (index)
&gt; +            valueRef = JSObjectMakeArray(context, index - 1, arrayValues, NULL);

Aren&apos;t you leaking the label string allocated for arrayValues?

I am definitely not a GTK expert so you might want to get another opinion, but this looks correct to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279543</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-15 07:59:21 -0700</bug_when>
    <thetext>Well I don&apos;t think it&apos;s leaked but I&apos;m very new to this JSValue stuff :)

/*!
@function
@abstract       Creates a JavaScript value of the string type.
@param ctx  The execution context to use.
@param string   The JSString to assign to the newly created JSValue. The
 newly created JSValue retains string, and releases it upon garbage collection.
@result         A JSValue of the string type, representing the value of string.
*/
JS_EXPORT JSValueRef JSValueMakeString(JSContextRef ctx, JSStringRef string);

Xan, when you get time can you have a look at the patch please?
A second eye on the patch of bug 45021 would also be very appreciated please ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279562</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-09-15 08:47:34 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Well I don&apos;t think it&apos;s leaked but I&apos;m very new to this JSValue stuff :)
&gt; 
&gt; /*!
&gt; @function
&gt; @abstract       Creates a JavaScript value of the string type.
&gt; @param ctx  The execution context to use.
&gt; @param string   The JSString to assign to the newly created JSValue. The
&gt;  newly created JSValue retains string, and releases it upon garbage collection.
&gt; @result         A JSValue of the string type, representing the value of string.
&gt; */
&gt; JS_EXPORT JSValueRef JSValueMakeString(JSContextRef ctx, JSStringRef string);
&gt; 
Right, I mean the array of gchar*s you allocate with g_strdup:

&gt; +                label = g_strdup(&quot;&lt;separator&gt;&quot;);
&gt; +                label = g_strdup(gtk_menu_item_get_label(GTK_MENU_ITEM(item-&gt;data)));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279576</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-15 09:24:00 -0700</bug_when>
    <thetext>Oh, yes indeed!

A g_free() is missing after the array has been updated. Thanks for spotting this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279954</commentid>
    <comment_count>8</comment_count>
      <attachid>67774</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-15 23:39:10 -0700</bug_when>
    <thetext>Created attachment 67774
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280113</commentid>
    <comment_count>9</comment_count>
      <attachid>67774</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-09-16 08:32:01 -0700</bug_when>
    <thetext>Comment on attachment 67774
proposed patch

View in context: https://bugs.webkit.org/attachment.cgi?id=67774&amp;action=prettypatch

Thank you, thank you, thank you for implementing this missing DRT feature. I just have a few small issues.

&gt; WebKit/gtk/webkit/webkitwebview.cpp:4812
&gt; +    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL);

This should be a 0.

&gt; WebKit/gtk/webkit/webkitwebview.cpp:4817
&gt; +    ContextMenu* menu = menuController-&gt;contextMenu();

I think it will be a lot cleaner to not cache these: ContextMenu* menu = page(webView)-&gt;menuController();

&gt; WebKit/gtk/webkit/webkitwebview.cpp:4822
&gt; +    return NULL;

This should be a 0.

&gt; WebKitTools/DumpRenderTree/gtk/EventSender.cpp:154
&gt; +        return JSObjectMakeArray(context, 0, NULL, NULL);

These should be 0 per the style guidelines.

&gt; WebKitTools/DumpRenderTree/gtk/EventSender.cpp:162
&gt; +    if (gtkMenu) {

I think this deserves to be it&apos;s own function. We can use an early return that way as well.

&gt; WebKitTools/DumpRenderTree/gtk/EventSender.cpp:167
&gt; +            gchar* label;

I think we should use CString here, if we can. If not GOwnPtr.

&gt; WebKitTools/DumpRenderTree/gtk/EventSender.cpp:178
&gt; +            valueRef = JSObjectMakeArray(context, index - 1, arrayValues, NULL);

Also should be 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280126</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-16 09:07:57 -0700</bug_when>
    <thetext>Committed r67626: &lt;http://trac.webkit.org/changeset/67626&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280127</commentid>
    <comment_count>11</comment_count>
      <attachid>67774</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-09-16 09:09:44 -0700</bug_when>
    <thetext>Comment on attachment 67774
proposed patch

Clearing flags as this landed in r67626.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280179</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-16 10:17:18 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67626 might have broken Chromium Win Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/67626
http://trac.webkit.org/changeset/67627
http://trac.webkit.org/changeset/67628
http://trac.webkit.org/changeset/67629
http://trac.webkit.org/changeset/67630
http://trac.webkit.org/changeset/67631</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67534</attachid>
            <date>2010-09-14 03:23:21 -0700</date>
            <delta_ts>2010-09-15 23:39:10 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>9841</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA5ZWU4Nzg4Yzg5ZGUwNzY0MDM5NmEwMzEyOGVlYTczNWI5MDk2MzRmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDE0IFNlcCAyMDEwIDEyOjE5OjE5ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cHJvcG9zZWQgcGF0Y2gKCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrKysrKysKIC4uLi9zZWxlY3Rpb24vY29udGV4dC1t
ZW51LW9uLXRleHQtZXhwZWN0ZWQudHh0ICAgIHwgICAgNCArKysKIC4uLi9lZGl0aW5nL3NlbGVj
dGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5odG1sICAgIHwgICAyOSArKysrKysrKysrKysrKysr
KysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCAgICAgICAgICAgICAgICAgICAg
fCAgICAzICsrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCAgICAgICAgICAgICAg
ICAgICB8ICAgIDMgKysKIFdlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAxNCArKysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZh
dGUuaCAgICAgICAgICAgICAgICAgIHwgICAgMyArKwogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2Vidmlldy5jcHAgICAgICAgICAgICAgICAgfCAgIDE2ICsrKysrKysrKysrCiBXZWJLaXRUb29s
cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKysrKysr
CiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwICAgICB8ICAg
MjkgKysrKysrKysrKysrKysrKystLQogMTAgZmlsZXMgY2hhbmdlZCwgMTI2IGluc2VydGlvbnMo
KyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRleHQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRl
eHQuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAxYWM5YzM2Li45NjQ1MDliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMDktMTQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGV2ZW50
U2VuZGVyLmNvbnRleHRDbGljaygpIHNob3VsZCByZXR1cm4gdGhlIGNvbnRlbnRzIG9mIHRoZSBj
b250ZXh0IG1lbnUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM5MTAyCisKKyAgICAgICAgTmV3IHRlc3QgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZSBv
ZiBldmVudFNlbmRlci5jb250ZXh0Q2xpY2soKQorICAgICAgICBvbiBhIG5vbi1lZGl0YWJsZSBl
bGVtZW50LiBTa2lwcGVkIG9uIHF0IGFuZCB3aW4uCisKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS1vbi10ZXh0Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBw
ZWQ6CisKIDIwMTAtMDktMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZlcnQgbWlzdGFrZW4gY2hhbmdlcyB0byB0ZXN0IGJhc2VsaW5lcy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS1vbi10ZXh0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS1v
bi10ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y
ZTNhNjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
Y29udGV4dC1tZW51LW9uLXRleHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0
ZXN0IGNoZWNrcyB0aGF0IHRoZSBjb250ZXh0IG1lbnUgaXMgc2hvd24gb3ZlciBhIHNpbXBsZSBu
b24tZWRpdGFibGUgdGV4dC4KKworTG9yZW0gaXBzdW0KK1NVQ0NFU1MKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS1vbi10ZXh0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1NzhhMGYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5o
dG1sCkBAIC0wLDAgKzEsMjkgQEAKKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxwPlRoaXMgdGVz
dCBjaGVja3MgdGhhdCB0aGUgY29udGV4dCBtZW51IGlzIHNob3duIG92ZXIgYSBzaW1wbGUgbm9u
LWVkaXRhYmxlIHRleHQuPC9wPgorPGRpdiBpZD0idGV4dCI+TG9yZW0gaXBzdW08L2Rpdj4KKzxk
aXYgaWQ9InJlc3VsdCI+RkFJTDwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciB0ZXh0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRleHQiKTsKKworICAgIHZhciB4ID0gdGV4dC5vZmZzZXRQYXJl
bnQub2Zmc2V0TGVmdCArIHRleHQub2Zmc2V0TGVmdCArIDQ7CisgICAgdmFyIHkgPSB0ZXh0Lm9m
ZnNldFBhcmVudC5vZmZzZXRUb3AgKyB0ZXh0Lm9mZnNldFRvcCArIHRleHQub2Zmc2V0SGVpZ2h0
IC8gMjsKKworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICByZXR1cm47CisK
KyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKworICAgIHZhciBpdGVtcyA9IGV2
ZW50U2VuZGVyLmNvbnRleHRDbGljaygpOworCisgICAgaWYgKGl0ZW1zLmxlbmd0aCA+IDApCisg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSAnU1VD
Q0VTUyc7CisgICAgZWxzZQorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0
JykuaW5uZXJIVE1MID0gJ0ZBSUxVUkU6IE5vIGNvbnRleHQgbWVudSc7Cit9Cis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGZlMzA0ODQuLjJiYmI1YzQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvU2tpcHBlZApAQCAtMjI3MCw2ICsyMjcwLDkgQEAgZWRpdGluZy9zZWxlY3Rpb24vd3Jh
cHBlZC1saW5lLWNhcmV0LTIuaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDE5MTgKIGVkaXRpbmcvc2VsZWN0aW9uLzUxOTUxNjYtMS5odG1sCiAKKyMgbWlz
c2luZyBEUlQgZmVhdHVyZSwgc2VlIGFsc28gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM5MTAyCitlZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5o
dG1sCisKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwogIyBGYWlsaW5nIGVkaXRpbmcvc3BlbGxp
bmcgdGVzdHMKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBl
ZAppbmRleCBhMWMzOGVlLi45ZDI0NGRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAt
Mjk1LDYgKzI5NSw5IEBAIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3RoYWktYmFodC1zcGFjZS5o
dG1sCiAjIFNlbnNpdGl2ZSB0byBsb2FkIHRpbWluZyBvciBQSFAgYmVoYXZpb3IgKGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDg3MykgCiBodHRwL3Rlc3RzL2Nzcy9j
c3MtaW1hZ2UtbG9hZGluZy5odG1sCiAKKyMgbWlzc2luZyBEUlQgZmVhdHVyZSwgc2VlIGFsc28g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5MTAyCitlZGl0aW5nL3Nl
bGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5odG1sCisKICMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBObyBidWdzIGZpbGVkIGFib3V0IHRoZSBiZWxv
dyB5ZXQjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5k
ZXggNWFmYjkxMS4uMDY3ZDVhNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOS0xNCAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gZXZlbnRTZW5kZXIuY29udGV4dENs
aWNrKCkgc2hvdWxkIHJldHVybiB0aGUgY29udGVudHMgb2YgdGhlIGNvbnRleHQgbWVudQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkxMDIKKworICAg
ICAgICBOZXcgcHJpdmF0ZSBXZWJWaWV3IEFQSSB0byByZXRyaWV2ZSB0aGUgY29udGV4dC1tZW51
IHdpZGdldC4gVGhpcworICAgICAgICBpcyB1c2VkIGJ5IERSVCBvbmx5LgorCisgICAgICAgICog
d2Via2l0L3dlYmtpdHByaXZhdGUuaDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5j
cHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvbnRleHRfbWVudSk6CisKIDIwMTAt
MDktMTEgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHByaXZhdGUuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAppbmRleCBhYmEz
ZWJhLi5kMzNkOTU5IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRl
LmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCkBAIC0yODcsNiArMjg3
LDkgQEAgZXh0ZXJuICJDIiB7CiAgICAgdm9pZAogICAgIHdlYmtpdF93ZWJfdmlld19zZXRfdG9v
bHRpcF90ZXh0KFdlYktpdFdlYlZpZXcqLCBjb25zdCBjaGFyKik7CiAKKyAgICBHdGtNZW51Kgor
ICAgIHdlYmtpdF93ZWJfdmlld19nZXRfY29udGV4dF9tZW51KFdlYktpdFdlYlZpZXcqKTsKKwog
ICAgIFdFQktJVF9BUEkgdm9pZAogICAgIHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2NvcmVfY29t
bWFuZF9ieV9uYW1lKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiBuYW1lLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4
IDkwMjAwNjQuLjFlY2QxNmMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC00
ODA2LDMgKzQ4MDYsMTkgQEAgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2lzX2NvbW1hbmRfZW5h
YmxlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhcioKIAogICAgIHJldHVybiBj
b3JlKHdlYlZpZXcpLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmVk
aXRvcigpLT5jb21tYW5kKG5hbWUpLmlzRW5hYmxlZCgpOwogfQorCitHdGtNZW51KiB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X2NvbnRleHRfbWVudShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgTlVMTCk7
CisKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICBQYWdlKiBwYWdlID0gY29yZSh3ZWJW
aWV3KTsKKyAgICBDb250ZXh0TWVudUNvbnRyb2xsZXIqIG1lbnVDb250cm9sbGVyKHBhZ2UtPmNv
bnRleHRNZW51Q29udHJvbGxlcigpKTsKKyAgICBDb250ZXh0TWVudSogbWVudSA9IG1lbnVDb250
cm9sbGVyLT5jb250ZXh0TWVudSgpOworICAgIGlmICghbWVudSkKKyAgICAgICAgcmV0dXJuIE5V
TEw7CisgICAgcmV0dXJuIG1lbnUtPnBsYXRmb3JtRGVzY3JpcHRpb24oKTsKKyNlbHNlCisgICAg
cmV0dXJuIE5VTEw7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCA2YTU2NjY5Li5lODVmMTU1IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMDktMTQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFtHVEtdIGV2ZW50U2VuZGVyLmNvbnRleHRDbGljaygpIHNob3VsZCByZXR1cm4gdGhlIGNv
bnRlbnRzIG9mIHRoZSBjb250ZXh0IG1lbnUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM5MTAyCisKKyAgICAgICAgTWFrZSB0aGUgZXZlbnRTZW5kZXIg
dXNlIHRoZSBuZXcgcHJpdmF0ZSBXZWJLaXRHdGsrIEFQSSB0bworICAgICAgICByZXRyaWV2ZSB0
aGUgY29udGV4dC1tZW51IGl0ZW0gdGl0bGVzIGFuZCBzdG9yZSB0aGVtIGluIGFuIGFycmF5Lgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAg
KGNvbnRleHRDbGlja0NhbGxiYWNrKToKKwogMjAxMC0wOS0xMiAgS2VudCBUYW11cmEgIDx0a2Vu
dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRlci5jcHAgYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwCmluZGV4IGZjMTE4
YmMuLjBkMjMyYjcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9F
dmVudFNlbmRlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50
U2VuZGVyLmNwcApAQCAtNDksNiArNDksNyBAQAogCiBleHRlcm4gIkMiIHsKICAgICBleHRlcm4g
dm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2xheW91dChXZWJLaXRXZWJGcmFtZSogZnJhbWUpOworICAg
IGV4dGVybiBHdGtNZW51KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvbnRleHRfbWVudShXZWJLaXRX
ZWJWaWV3Kik7CiB9CiAKIHN0YXRpYyBib29sIGRyYWdNb2RlOwpAQCAtMTQ4LDE1ICsxNDksMzcg
QEAgYm9vbCBwcmVwYXJlTW91c2VCdXR0b25FdmVudChHZGtFdmVudCogZXZlbnQsIGludCBldmVu
dFNlbmRlckJ1dHRvbk51bWJlciwgZ3VpbnQKIHN0YXRpYyBKU1ZhbHVlUmVmIGNvbnRleHRDbGlj
a0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNP
YmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVS
ZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBHZGtFdmVudCog
cHJlc3NFdmVudCA9IGdka19ldmVudF9uZXcoR0RLX0JVVFRPTl9QUkVTUyk7CisKICAgICBpZiAo
IXByZXBhcmVNb3VzZUJ1dHRvbkV2ZW50KHByZXNzRXZlbnQsIDIsIDApKQotICAgICAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisgICAgICAgIHJldHVybiBKU09iamVj
dE1ha2VBcnJheShjb250ZXh0LCAwLCBOVUxMLCBOVUxMKTsKIAogICAgIEdka0V2ZW50KiByZWxl
YXNlRXZlbnQgPSBnZGtfZXZlbnRfY29weShwcmVzc0V2ZW50KTsKICAgICBzZW5kT3JRdWV1ZUV2
ZW50KHByZXNzRXZlbnQpOworCisgICAgSlNWYWx1ZVJlZiB2YWx1ZVJlZiA9IEpTT2JqZWN0TWFr
ZUFycmF5KGNvbnRleHQsIDAsIE5VTEwsIE5VTEwpOworICAgIFdlYktpdFdlYlZpZXcqIHZpZXcg
PSB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpOworICAgIEd0a01lbnUq
IGd0a01lbnUgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvbnRleHRfbWVudSh2aWV3KTsKKyAgICBp
ZiAoZ3RrTWVudSkgeworICAgICAgICBHTGlzdCogaXRlbXMgPSBndGtfY29udGFpbmVyX2dldF9j
aGlsZHJlbihHVEtfQ09OVEFJTkVSKGd0a01lbnUpKTsKKyAgICAgICAgSlNWYWx1ZVJlZiBhcnJh
eVZhbHVlc1tnX2xpc3RfbGVuZ3RoKGl0ZW1zKV07CisgICAgICAgIGludCBpbmRleCA9IDA7Cisg
ICAgICAgIGZvciAoR0xpc3QqIGl0ZW0gPSBnX2xpc3RfZmlyc3QoaXRlbXMpOyBpdGVtOyBpdGVt
ID0gZ19saXN0X25leHQoaXRlbSkpIHsKKyAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBsYWJlbDsK
KyAgICAgICAgICAgIGlmIChHVEtfSVNfU0VQQVJBVE9SX01FTlVfSVRFTShpdGVtLT5kYXRhKSkK
KyAgICAgICAgICAgICAgICBsYWJlbCA9IGdfc3RyZHVwKCI8c2VwYXJhdG9yPiIpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxhYmVsID0gZ19zdHJkdXAoZ3RrX21lbnVfaXRl
bV9nZXRfbGFiZWwoR1RLX01FTlVfSVRFTShpdGVtLT5kYXRhKSkpOworCisgICAgICAgICAgICBh
cnJheVZhbHVlc1tpbmRleF0gPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyhsYWJlbCkpOworICAgICAgICAgICAgaW5kZXgrKzsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoaW5kZXgpCisgICAgICAgICAgICB2YWx1ZVJlZiA9IEpTT2JqZWN0
TWFrZUFycmF5KGNvbnRleHQsIGluZGV4IC0gMSwgYXJyYXlWYWx1ZXMsIE5VTEwpOworICAgIH0K
KwogICAgIHJlbGVhc2VFdmVudC0+dHlwZSA9IEdES19CVVRUT05fUkVMRUFTRTsKICAgICBzZW5k
T3JRdWV1ZUV2ZW50KHJlbGVhc2VFdmVudCk7Ci0KLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7CisgICAgcmV0dXJuIHZhbHVlUmVmOwogfQogCiBzdGF0aWMgdm9pZCB1
cGRhdGVDbGlja0NvdW50KGludCBidXR0b24pCi0tIAoxLjcuMQ==
</data>
<flag name="review"
          id="56860"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67774</attachid>
            <date>2010-09-15 23:39:10 -0700</date>
            <delta_ts>2010-09-16 09:09:43 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>9868</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA1YjA4ZGJjYWJhYzA1ZjczYzllYTdkZDE2ZTYwZTliODVkNDM5MjZmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDE0IFNlcCAyMDEwIDEyOjE5OjE5ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cHJvcG9zZWQgcGF0Y2gKCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrKysrKysKIC4uLi9zZWxlY3Rpb24vY29udGV4dC1t
ZW51LW9uLXRleHQtZXhwZWN0ZWQudHh0ICAgIHwgICAgNCArKwogLi4uL2VkaXRpbmcvc2VsZWN0
aW9uL2NvbnRleHQtbWVudS1vbi10ZXh0Lmh0bWwgICAgfCAgIDI5ICsrKysrKysrKysrKysrKysr
KysKIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgICAgICAgICAgICAgICAgICAgIHwg
ICAgMyArKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgICAgICAgICAgICAgICAg
ICAgfCAgICAzICsrCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTQgKysrKysrKysrCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRl
LmggICAgICAgICAgICAgICAgICB8ICAgIDMgKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwICAgICAgICAgICAgICAgIHwgICAxNiArKysrKysrKysrCiBXZWJLaXRUb29scy9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKysrKysKIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRlci5jcHAgICAgIHwgICAzMCAr
KysrKysrKysrKysrKysrKystLQogMTAgZmlsZXMgY2hhbmdlZCwgMTI3IGluc2VydGlvbnMoKyks
IDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRleHQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRleHQu
aHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBlZjVlNWQxLi5kMjU5YTY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTAtMDktMTQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGV2ZW50U2Vu
ZGVyLmNvbnRleHRDbGljaygpIHNob3VsZCByZXR1cm4gdGhlIGNvbnRlbnRzIG9mIHRoZSBjb250
ZXh0IG1lbnUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM5MTAyCisKKyAgICAgICAgTmV3IHRlc3QgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZSBvZiBl
dmVudFNlbmRlci5jb250ZXh0Q2xpY2soKQorICAgICAgICBvbiBhIG5vbi1lZGl0YWJsZSBlbGVt
ZW50LiBTa2lwcGVkIG9uIHF0IGFuZCB3aW4uCisKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlv
bi9jb250ZXh0LW1lbnUtb24tdGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVk
aXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS1vbi10ZXh0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6
CisKIDIwMTAtMDktMTQgIEpvaG4gR3JlZ2cgIDxqb2hubnlnQGdvb2dsZS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgY2hyb21pdW0gcmViYXNlbGluZSB0byBmaXggYnVpbGQuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUt
b24tdGV4dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MmUzYTY5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2NvbnRleHQtbWVudS1vbi10ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMg
dGVzdCBjaGVja3MgdGhhdCB0aGUgY29udGV4dCBtZW51IGlzIHNob3duIG92ZXIgYSBzaW1wbGUg
bm9uLWVkaXRhYmxlIHRleHQuCisKK0xvcmVtIGlwc3VtCitTVUNDRVNTCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5odG1sIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRleHQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTc4YTBmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRleHQu
aHRtbApAQCAtMCwwICsxLDI5IEBACis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8cD5UaGlzIHRl
c3QgY2hlY2tzIHRoYXQgdGhlIGNvbnRleHQgbWVudSBpcyBzaG93biBvdmVyIGEgc2ltcGxlIG5v
bi1lZGl0YWJsZSB0ZXh0LjwvcD4KKzxkaXYgaWQ9InRleHQiPkxvcmVtIGlwc3VtPC9kaXY+Cis8
ZGl2IGlkPSJyZXN1bHQiPkZBSUw8L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIgdGV4dCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Iik7CisKKyAgICB2YXIgeCA9IHRleHQub2Zmc2V0UGFy
ZW50Lm9mZnNldExlZnQgKyB0ZXh0Lm9mZnNldExlZnQgKyA0OworICAgIHZhciB5ID0gdGV4dC5v
ZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgdGV4dC5vZmZzZXRUb3AgKyB0ZXh0Lm9mZnNldEhlaWdo
dCAvIDI7CisKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisKKyAgICB2YXIgaXRlbXMgPSBl
dmVudFNlbmRlci5jb250ZXh0Q2xpY2soKTsKKworICAgIGlmIChpdGVtcy5sZW5ndGggPiAwKQor
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gJ1NV
Q0NFU1MnOworICAgIGVsc2UKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3Vs
dCcpLmlubmVySFRNTCA9ICdGQUlMVVJFOiBObyBjb250ZXh0IG1lbnUnOworfQorPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCAxMDJmZjdkLi42YzdlYmQ3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1NraXBwZWQKQEAgLTIyNzAsNiArMjI3MCw5IEBAIGVkaXRpbmcvc2VsZWN0aW9uL3dy
YXBwZWQtbGluZS1jYXJldC0yLmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxOTE4CiBlZGl0aW5nL3NlbGVjdGlvbi81MTk1MTY2LTEuaHRtbAogCisjIG1p
c3NpbmcgRFJUIGZlYXR1cmUsIHNlZSBhbHNvIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zOTEwMgorZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRleHQu
aHRtbAorCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKICMgRmFpbGluZyBlZGl0aW5nL3NwZWxs
aW5nIHRlc3RzCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQKaW5kZXggYTQ2MTY2Ny4uODQ2MGNmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAg
LTI5NSw2ICsyOTUsOSBAQCBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC90aGFpLWJhaHQtc3BhY2Uu
aHRtbAogIyBTZW5zaXRpdmUgdG8gbG9hZCB0aW1pbmcgb3IgUEhQIGJlaGF2aW9yIChodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ4NzMpIAogaHR0cC90ZXN0cy9jc3Mv
Y3NzLWltYWdlLWxvYWRpbmcuaHRtbAogCisjIG1pc3NpbmcgRFJUIGZlYXR1cmUsIHNlZSBhbHNv
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTEwMgorZWRpdGluZy9z
ZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRleHQuaHRtbAorCiAjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgTm8gYnVncyBmaWxlZCBhYm91dCB0aGUgYmVs
b3cgeWV0IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRp
ZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmlu
ZGV4IDkzNzE1MjMuLjA1NzJhYWUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDktMTQgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGV2ZW50U2VuZGVyLmNvbnRleHRD
bGljaygpIHNob3VsZCByZXR1cm4gdGhlIGNvbnRlbnRzIG9mIHRoZSBjb250ZXh0IG1lbnUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5MTAyCisKKyAg
ICAgICAgTmV3IHByaXZhdGUgV2ViVmlldyBBUEkgdG8gcmV0cmlldmUgdGhlIGNvbnRleHQtbWVu
dSB3aWRnZXQuIFRoaXMKKyAgICAgICAgaXMgdXNlZCBieSBEUlQgb25seS4KKworICAgICAgICAq
IHdlYmtpdC93ZWJraXRwcml2YXRlLmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcu
Y3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9jb250ZXh0X21lbnUpOgorCiAyMDEw
LTA5LTEzICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHByaXZhdGUuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAppbmRleCBhYmEz
ZWJhLi5kMzNkOTU5IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRl
LmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCkBAIC0yODcsNiArMjg3
LDkgQEAgZXh0ZXJuICJDIiB7CiAgICAgdm9pZAogICAgIHdlYmtpdF93ZWJfdmlld19zZXRfdG9v
bHRpcF90ZXh0KFdlYktpdFdlYlZpZXcqLCBjb25zdCBjaGFyKik7CiAKKyAgICBHdGtNZW51Kgor
ICAgIHdlYmtpdF93ZWJfdmlld19nZXRfY29udGV4dF9tZW51KFdlYktpdFdlYlZpZXcqKTsKKwog
ICAgIFdFQktJVF9BUEkgdm9pZAogICAgIHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2NvcmVfY29t
bWFuZF9ieV9uYW1lKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiBuYW1lLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4
IDkwMjAwNjQuLjFlY2QxNmMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC00
ODA2LDMgKzQ4MDYsMTkgQEAgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2lzX2NvbW1hbmRfZW5h
YmxlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhcioKIAogICAgIHJldHVybiBj
b3JlKHdlYlZpZXcpLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmVk
aXRvcigpLT5jb21tYW5kKG5hbWUpLmlzRW5hYmxlZCgpOwogfQorCitHdGtNZW51KiB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X2NvbnRleHRfbWVudShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgTlVMTCk7
CisKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICBQYWdlKiBwYWdlID0gY29yZSh3ZWJW
aWV3KTsKKyAgICBDb250ZXh0TWVudUNvbnRyb2xsZXIqIG1lbnVDb250cm9sbGVyKHBhZ2UtPmNv
bnRleHRNZW51Q29udHJvbGxlcigpKTsKKyAgICBDb250ZXh0TWVudSogbWVudSA9IG1lbnVDb250
cm9sbGVyLT5jb250ZXh0TWVudSgpOworICAgIGlmICghbWVudSkKKyAgICAgICAgcmV0dXJuIE5V
TEw7CisgICAgcmV0dXJuIG1lbnUtPnBsYXRmb3JtRGVzY3JpcHRpb24oKTsKKyNlbHNlCisgICAg
cmV0dXJuIE5VTEw7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCAzNDk3ZDMzLi5jYzA0MThjIDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMDktMTQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFtHVEtdIGV2ZW50U2VuZGVyLmNvbnRleHRDbGljaygpIHNob3VsZCByZXR1cm4gdGhlIGNv
bnRlbnRzIG9mIHRoZSBjb250ZXh0IG1lbnUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM5MTAyCisKKyAgICAgICAgTWFrZSB0aGUgZXZlbnRTZW5kZXIg
dXNlIHRoZSBuZXcgcHJpdmF0ZSBXZWJLaXRHdGsrIEFQSSB0bworICAgICAgICByZXRyaWV2ZSB0
aGUgY29udGV4dC1tZW51IGl0ZW0gdGl0bGVzIGFuZCBzdG9yZSB0aGVtIGluIGFuIGFycmF5Lgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAg
KGNvbnRleHRDbGlja0NhbGxiYWNrKToKKwogMjAxMC0wOS0xNCAgTWloYWkgUGFycGFyaXRhICA8
bWloYWlwQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNw
cCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRlci5jcHAKaW5kZXgg
ZmMxMThiYy4uNWI1MjM4ZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL0V2ZW50U2VuZGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsv
RXZlbnRTZW5kZXIuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAKIGV4dGVybiAiQyIgewogICAgIGV4
dGVybiB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfbGF5b3V0KFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7
CisgICAgZXh0ZXJuIEd0a01lbnUqIHdlYmtpdF93ZWJfdmlld19nZXRfY29udGV4dF9tZW51KFdl
YktpdFdlYlZpZXcqKTsKIH0KIAogc3RhdGljIGJvb2wgZHJhZ01vZGU7CkBAIC0xNDgsMTUgKzE0
OSwzOCBAQCBib29sIHByZXBhcmVNb3VzZUJ1dHRvbkV2ZW50KEdka0V2ZW50KiBldmVudCwgaW50
IGV2ZW50U2VuZGVyQnV0dG9uTnVtYmVyLCBndWludAogc3RhdGljIEpTVmFsdWVSZWYgY29udGV4
dENsaWNrQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIEdka0V2
ZW50KiBwcmVzc0V2ZW50ID0gZ2RrX2V2ZW50X25ldyhHREtfQlVUVE9OX1BSRVNTKTsKKwogICAg
IGlmICghcHJlcGFyZU1vdXNlQnV0dG9uRXZlbnQocHJlc3NFdmVudCwgMiwgMCkpCi0gICAgICAg
IHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIEpT
T2JqZWN0TWFrZUFycmF5KGNvbnRleHQsIDAsIE5VTEwsIE5VTEwpOwogCiAgICAgR2RrRXZlbnQq
IHJlbGVhc2VFdmVudCA9IGdka19ldmVudF9jb3B5KHByZXNzRXZlbnQpOwogICAgIHNlbmRPclF1
ZXVlRXZlbnQocHJlc3NFdmVudCk7CisKKyAgICBKU1ZhbHVlUmVmIHZhbHVlUmVmID0gSlNPYmpl
Y3RNYWtlQXJyYXkoY29udGV4dCwgMCwgTlVMTCwgTlVMTCk7CisgICAgV2ViS2l0V2ViVmlldyog
dmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSk7CisgICAgR3Rr
TWVudSogZ3RrTWVudSA9IHdlYmtpdF93ZWJfdmlld19nZXRfY29udGV4dF9tZW51KHZpZXcpOwor
ICAgIGlmIChndGtNZW51KSB7CisgICAgICAgIEdMaXN0KiBpdGVtcyA9IGd0a19jb250YWluZXJf
Z2V0X2NoaWxkcmVuKEdUS19DT05UQUlORVIoZ3RrTWVudSkpOworICAgICAgICBKU1ZhbHVlUmVm
IGFycmF5VmFsdWVzW2dfbGlzdF9sZW5ndGgoaXRlbXMpXTsKKyAgICAgICAgaW50IGluZGV4ID0g
MDsKKyAgICAgICAgZm9yIChHTGlzdCogaXRlbSA9IGdfbGlzdF9maXJzdChpdGVtcyk7IGl0ZW07
IGl0ZW0gPSBnX2xpc3RfbmV4dChpdGVtKSkgeworICAgICAgICAgICAgZ2NoYXIqIGxhYmVsOwor
ICAgICAgICAgICAgaWYgKEdUS19JU19TRVBBUkFUT1JfTUVOVV9JVEVNKGl0ZW0tPmRhdGEpKQor
ICAgICAgICAgICAgICAgIGxhYmVsID0gZ19zdHJkdXAoIjxzZXBhcmF0b3I+Iik7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGFiZWwgPSBnX3N0cmR1cChndGtfbWVudV9pdGVt
X2dldF9sYWJlbChHVEtfTUVOVV9JVEVNKGl0ZW0tPmRhdGEpKSk7CisKKyAgICAgICAgICAgIGFy
cmF5VmFsdWVzW2luZGV4XSA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKGxhYmVsKSk7CisgICAgICAgICAgICBnX2ZyZWUobGFiZWwpOwor
ICAgICAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5kZXgpCisgICAg
ICAgICAgICB2YWx1ZVJlZiA9IEpTT2JqZWN0TWFrZUFycmF5KGNvbnRleHQsIGluZGV4IC0gMSwg
YXJyYXlWYWx1ZXMsIE5VTEwpOworICAgIH0KKwogICAgIHJlbGVhc2VFdmVudC0+dHlwZSA9IEdE
S19CVVRUT05fUkVMRUFTRTsKICAgICBzZW5kT3JRdWV1ZUV2ZW50KHJlbGVhc2VFdmVudCk7Ci0K
LSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisgICAgcmV0dXJuIHZh
bHVlUmVmOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVDbGlja0NvdW50KGludCBidXR0b24pCi0t
IAoxLjcuMQ==
</data>

          </attachment>
      

    </bug>

</bugzilla>