<?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>15653</bug_id>
          
          <creation_ts>2007-10-23 18:01:40 -0700</creation_ts>
          <short_desc>[GTK] Text editor does not handle common keystrokes</short_desc>
          <delta_ts>2007-11-08 17:16:42 -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>New Bugs</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alp Toker">alp</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mh+webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>59285</commentid>
    <comment_count>0</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-10-23 18:01:40 -0700</bug_when>
    <thetext>EditorClientGtk is missing several cases and its behaviour does not match that of GTK+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59286</commentid>
    <comment_count>1</comment_count>
      <attachid>16823</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-10-23 18:07:34 -0700</bug_when>
    <thetext>Created attachment 16823
Implementation A

This is the first of two possible implementations that should achieve the same thing. Whichever will become part of WebKit/Gtk+ is up to the audience.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59287</commentid>
    <comment_count>2</comment_count>
      <attachid>16824</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-10-23 18:10:17 -0700</bug_when>
    <thetext>Created attachment 16824
Implementation B

This is the second of two possible implementations that should achieve the same thing. Whichever will become part of WebKit/Gtk+ is up to the audience.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59288</commentid>
    <comment_count>3</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-10-23 18:22:54 -0700</bug_when>
    <thetext>Bug #16104 has yet another approach to this problem that&apos;s worth looking at.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59498</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2007-10-25 22:26:11 -0700</bug_when>
    <thetext>Hmmm, I think the windows path is clearer, and broadly nicer

See  WebView::interpretKeyEvent in WebKit/win/WebView.cpp


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59499</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2007-10-25 22:27:21 -0700</bug_when>
    <thetext>IIRC there&apos;s a patch somewhere to make gtk, win, and qt share there interpretKeyEvents implementation for handleKeyPress, though i can&apos;t rememember the number and i suspect it&apos;s been orphaned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59502</commentid>
    <comment_count>6</comment_count>
      <attachid>16823</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2007-10-25 22:45:39 -0700</bug_when>
    <thetext>Comment on attachment 16823
Implementation A

As i said in a previous comment i don&apos;t think either of these approaches is really ideal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59504</commentid>
    <comment_count>7</comment_count>
    <who name="Mike Hommey">mh+webkit</who>
    <bug_when>2007-10-25 22:52:45 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Bug #16104 has yet another approach to this problem that&apos;s worth looking at.

Bug #16104 doesn&apos;t exist.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59509</commentid>
    <comment_count>8</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-10-25 23:41:46 -0700</bug_when>
    <thetext>Sorry, I meant #15057

I came up with the quick solution so we could get more testing for clipboard and tab/focus issues, but if an alternative is ready, that&apos;s great.

I had a feeling at the start that eventually we&apos;re going to use the GDK_KP directly, but maybe it does make sense to share this code instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59569</commentid>
    <comment_count>9</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2007-10-26 13:14:40 -0700</bug_when>
    <thetext>*** Bug 15628 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60434</commentid>
    <comment_count>10</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-06 13:22:45 -0800</bug_when>
    <thetext>To be clear, if we were to do a dynamic lookup table, we would just go and use GtkBindingSet. However, there are no resources to implement this right now and the provided patch works, and there is precedent for this hack to get positive review in the Qt port. Please reconsider this review so users can get basic input support as a temporary measure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60677</commentid>
    <comment_count>11</comment_count>
      <attachid>16824</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-08 14:31:59 -0800</bug_when>
    <thetext>Comment on attachment 16824
Implementation B

While this approach is suboptimal in the long run, the Gtk port is in need of some form of sane input handling so that work on related features can progress.  The ideal approach probably involves using GtkBindingSet which, as I understand it, will respect user-customised key bindings and all that fancy stuff.

r=me if a new bug is filed about switching to GtkBindingSet at some point in the future, and the comment in the patch is updated to a FIXME referencing the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60709</commentid>
    <comment_count>12</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-08 17:16:42 -0800</bug_when>
    <thetext>Landed in r27624.

See also bug #15911 (GtkBindingSet).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16823</attachid>
            <date>2007-10-23 18:07:34 -0700</date>
            <delta_ts>2007-10-25 22:45:39 -0700</delta_ts>
            <desc>Implementation A</desc>
            <filename>editor-a.patch</filename>
            <type>text/plain</type>
            <size>7751</size>
            <attacher name="Alp Toker">alp</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAJ
KHJldmlzaW9uIDI2OTM1KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsNDYgKzIxNSwxNTkgQEAKIHZvaWQgRWRp
dG9yQ2xpZW50OjpoYW5kbGVLZXlwcmVzcyhLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKICAgICBG
cmFtZSogZnJhbWUgPSBjb3JlKG1fcGFnZSktPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JN
YWluRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQorICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5k
b2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBjb25zdCBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQqIGtldmVudCA9IGV2ZW50LT5rZXlFdmVudCgpOwotICAgIGlm
ICgha2V2ZW50LT5pc0tleVVwKCkpIHsKLSAgICAgICAgTm9kZSogc3RhcnQgPSBmcmFtZS0+c2Vs
ZWN0aW9uQ29udHJvbGxlcigpLT5zdGFydCgpLm5vZGUoKTsKLSAgICAgICAgaWYgKHN0YXJ0ICYm
IHN0YXJ0LT5pc0NvbnRlbnRFZGl0YWJsZSgpKSB7Ci0gICAgICAgICAgICBzd2l0Y2ggKGtldmVu
dC0+V2luZG93c0tleUNvZGUoKSkgeworICAgIGlmIChrZXZlbnQtPmlzS2V5VXAoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgTm9kZSogc3RhcnQgPSBmcmFtZS0+c2VsZWN0aW9uQ29udHJvbGxl
cigpLT5zdGFydCgpLm5vZGUoKTsKKyAgICBpZiAoIXN0YXJ0KQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBXZSBtYXkgd2FudCB0byBzaGFyZSBjb2RlIGZvciB0aGlzIGZlYXR1cmUgd2l0aCBX
ZWJLaXQvd2luL1dlYlZpZXcuY3BwCisgICAgLy8gT3Igb3RoZXJ3aXNlLCBtb3ZlIHRvd2FyZHMg
YSBtb3JlIEdUSysgc3R5bGUgKHNlZSBndGsrL2d0ay9ndGt0ZXh0dmlldy5jKSwKKyAgICAvLyB0
byBzdXBwb3J0IEdUSysncyBTZWxlY3Rpb25HcmFudWxhcml0eSBldGMuCisgICAgaWYgKHN0YXJ0
LT5pc0NvbnRlbnRFZGl0YWJsZSgpKSB7CisKKyAgICAgICAgVGV4dEdyYW51bGFyaXR5IGdyYW51
bGFyaXR5OworICAgICAgICBTZWxlY3Rpb25Db250cm9sbGVyOjpFRGlyZWN0aW9uIGRpcmVjdGlv
bjsKKworICAgICAgICBzd2l0Y2goa2V2ZW50LT5XaW5kb3dzS2V5Q29kZSgpKSB7CiAgICAgICAg
ICAgICBjYXNlIFZLX0JBQ0s6Ci0gICAgICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5kZWxl
dGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkNvbnRyb2xsZXI6OkJBQ0tXQVJELAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXJHcmFu
dWxhcml0eSwgZmFsc2UsIHRydWUpOworICAgICAgICAgICAgY2FzZSBWS19VUDoKKyAgICAgICAg
ICAgICAgICBkaXJlY3Rpb24gPSBTZWxlY3Rpb25Db250cm9sbGVyOjpCQUNLV0FSRDsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgVktfREVMRVRFOgotICAgICAgICAg
ICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+ZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25Db250
cm9sbGVyOjpGT1JXQVJELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDaGFyYWN0ZXJHcmFudWxhcml0eSwgZmFsc2UsIHRydWUpOworICAgICAg
ICAgICAgY2FzZSBWS19ET1dOOgorICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IFNlbGVjdGlv
bkNvbnRyb2xsZXI6OkZPUldBUkQ7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICBjYXNlIFZLX0xFRlQ6Ci0gICAgICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5leGVjQ29t
bWFuZCgiTW92ZUxlZnQiKTsKKyAgICAgICAgICAgICAgICAvLyBrZXB0IGRpc3RpbmN0IGZyb20g
QkFDS1dBUkQgZm9yIHBvdGVudGlhbCBSVEwgc3VwcG9ydAorICAgICAgICAgICAgICAgIGRpcmVj
dGlvbiA9IFNlbGVjdGlvbkNvbnRyb2xsZXI6OkxFRlQ7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICBjYXNlIFZLX1JJR0hUOgotICAgICAgICAgICAgICAgIGZyYW1lLT5lZGl0
b3IoKS0+ZXhlY0NvbW1hbmQoIk1vdmVSaWdodCIpOworICAgICAgICAgICAgICAgIC8vIGtlcHQg
ZGlzdGluY3QgZnJvbSBGT1JXQVJEIGZvciBwb3RlbnRpYWwgUlRMIHN1cHBvcnQKKyAgICAgICAg
ICAgICAgICBkaXJlY3Rpb24gPSBTZWxlY3Rpb25Db250cm9sbGVyOjpSSUdIVDsKICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaChrZXZlbnQtPldpbmRv
d3NLZXlDb2RlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgVktfQkFDSzoKKyAgICAgICAgICAgIGNh
c2UgVktfREVMRVRFOgorICAgICAgICAgICAgY2FzZSBWS19MRUZUOgorICAgICAgICAgICAgY2Fz
ZSBWS19SSUdIVDoKKyAgICAgICAgICAgICAgICBncmFudWxhcml0eSA9IGtldmVudC0+Y3RybEtl
eSgpID8gV29yZEdyYW51bGFyaXR5IDogQ2hhcmFjdGVyR3JhbnVsYXJpdHk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFZLX1VQOgorICAgICAgICAgICAgY2FzZSBW
S19ET1dOOgorICAgICAgICAgICAgICAgIGdyYW51bGFyaXR5ID0ga2V2ZW50LT5jdHJsS2V5KCkg
PyBQYXJhZ3JhcGhHcmFudWxhcml0eSA6IExpbmVHcmFudWxhcml0eTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaChrZXZlbnQtPldpbmRvd3NLZXlD
b2RlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgVktfQkFDSzoKKyAgICAgICAgICAgIGNhc2UgVktf
REVMRVRFOgorICAgICAgICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+ZGVsZXRlV2l0aERpcmVj
dGlvbihkaXJlY3Rpb24sIGdyYW51bGFyaXR5LCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFZLX1VQOgorICAgICAgICAgICAgY2FzZSBWS19E
T1dOOgorICAgICAgICAgICAgY2FzZSBWS19MRUZUOgorICAgICAgICAgICAgY2FzZSBWS19SSUdI
VDoKKyAgICAgICAgICAgICAgICBmcmFtZS0+c2VsZWN0aW9uQ29udHJvbGxlcigpLT5tb2RpZnko
a2V2ZW50LT5zaGlmdEtleSgpID8gU2VsZWN0aW9uQ29udHJvbGxlcjo6RVhURU5EIDogU2VsZWN0
aW9uQ29udHJvbGxlcjo6TU9WRSwgZGlyZWN0aW9uLCBncmFudWxhcml0eSwgdHJ1ZSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFZLX1BSSU9SOiAgLy8gUGFnZVVw
CisgICAgICAgICAgICAgICAgLy8gVE9ETzogc2hpZnQgc2hvdWxkIGV4dGVuZCB0aGUgc2VsZWN0
aW9uCisgICAgICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5leGVjQ29tbWFuZCgiTW92ZVVw
QnlQYWdlQW5kTW9kaWZ5Q2FyZXQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgVktfTkVYVDogIC8vIFBhZ2VEb3duCisgICAgICAgICAgICAgICAgLy8gVE9ETzog
c2hpZnQgc2hvdWxkIGV4dGVuZCB0aGUgc2VsZWN0aW9uCisgICAgICAgICAgICAgICAgZnJhbWUt
PmVkaXRvcigpLT5leGVjQ29tbWFuZCgiTW92ZURvd25CeVBhZ2VBbmRNb2RpZnlDYXJldCIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBWS19SRVRVUk46CisgICAg
ICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5leGVjQ29tbWFuZCgiSW5zZXJ0TGluZUJyZWFr
Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFZLX1RBQjoKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
ICAgIGlmICgha2V2ZW50LT5jdHJsS2V5KCkgJiYgIWtldmVudC0+YWx0S2V5KCkgJiYgIWtldmVu
dC0+dGV4dCgpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoa2V2ZW50LT50
ZXh0KCkubGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXIgY2gg
PSBrZXZlbnQtPnRleHQoKVswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGlu
c2VydCBudWxsIG9yIGNvbnRyb2wgY2hhcmFjdGVycyBhcyB0aGV5IGNhbiByZXN1bHQgaW4gdW5l
eHBlY3RlZCBiZWhhdmlvdXIKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8ICcgJykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmluc2VydFRleHQoa2V2ZW50
LT50ZXh0KCksIGV2ZW50KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtldmVudC0+Y3Ry
bEtleSgpKSB7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoa2V2ZW50LT5XaW5kb3dzS2V5
Q29kZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFZLX0E6CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5leGVjQ29tbWFuZCgiU2VsZWN0QWxs
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgICAgICBjYXNlIFZLX0I6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmVk
aXRvcigpLT5leGVjQ29tbWFuZCgiVG9nZ2xlQm9sZCIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBWS19DOgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+ZXhlY0NvbW1hbmQoIkNvcHki
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNhc2UgVktfSToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZWRp
dG9yKCktPmV4ZWNDb21tYW5kKCJUb2dnbGVJdGFsaWMiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgVktfVjoKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmV4ZWNDb21tYW5kKCJQYXN0
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICAgICAgY2FzZSBWS19YOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5l
ZGl0b3IoKS0+ZXhlY0NvbW1hbmQoIkN1dCIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBWS19ZOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+ZXhlY0NvbW1hbmQoIlJlZG8iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNhc2UgVktfWjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCkt
PmV4ZWNDb21tYW5kKCJVbmRvIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0g
ZWxzZSByZXR1cm47CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBzd2l0Y2ggKGtl
dmVudC0+V2luZG93c0tleUNvZGUoKSkgeworICAgICAgICAgICAgY2FzZSBWS19VUDoKICAgICAg
ICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmV4ZWNDb21tYW5kKCJNb3ZlVXAiKTsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgVktfRE9XTjoKICAgICAgICAgICAg
ICAgICBmcmFtZS0+ZWRpdG9yKCktPmV4ZWNDb21tYW5kKCJNb3ZlRG93biIpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBWS19QUklPUjogIC8vIFBhZ2VVcAorICAg
ICAgICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+ZXhlY0NvbW1hbmQoIk1vdmVVcEJ5UGFnZUFu
ZE1vZGlmeUNhcmV0Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IFZLX05FWFQ6ICAvLyBQYWdlRG93bgorICAgICAgICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+
ZXhlY0NvbW1hbmQoIk1vdmVEb3duQnlQYWdlQW5kTW9kaWZ5Q2FyZXQiKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVktfSE9NRToKKyAgICAgICAgICAgICAgICBp
ZiAoa2V2ZW50LT5jdHJsS2V5KCkpCisgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5lZGl0b3Io
KS0+ZXhlY0NvbW1hbmQoIk1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnQiKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVktfRU5EOgorICAgICAgICAgICAgICAgIGlm
IChrZXZlbnQtPmN0cmxLZXkoKSkKKyAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigp
LT5leGVjQ29tbWFuZCgiTW92ZVRvRW5kT2ZEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBpZiAoa2V2ZW50LT50
ZXh0KCkubGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAgICAgICAgICBVQ2hhciBjaCA9IGtl
dmVudC0+dGV4dCgpWzBdOwotICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBpbnNlcnQgbnVs
bCBvciBjb250cm9sIGNoYXJhY3RlcnMgYXMgdGhleSBjYW4gcmVzdWx0IGluIHVuZXhwZWN0ZWQg
YmVoYXZpb3VyCi0gICAgICAgICAgICAgICAgICAgIGlmIChjaCA8ICcgJykKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBm
cmFtZS0+ZWRpdG9yKCktPmluc2VydFRleHQoa2V2ZW50LT50ZXh0KCksIGV2ZW50KTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAg
ICAgICAgICAgIGlmIChrZXZlbnQtPmN0cmxLZXkoKSkgeworICAgICAgICAgICAgICAgICAgICBz
d2l0Y2goa2V2ZW50LT5XaW5kb3dzS2V5Q29kZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBjYXNlIFZLX0E6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigp
LT5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFZLX0M6IGNhc2UgVktfWDoKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmV4ZWNDb21tYW5kKCJD
b3B5Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSByZXR1cm47CiAg
ICAgICAgIH0KICAgICB9CisgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKIAo=
</data>
<flag name="review"
          id="7117"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16824</attachid>
            <date>2007-10-23 18:10:17 -0700</date>
            <delta_ts>2007-11-08 14:31:59 -0800</delta_ts>
            <desc>Implementation B</desc>
            <filename>editor-b.patch</filename>
            <type>text/plain</type>
            <size>7619</size>
            <attacher name="Alp Toker">alp</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAJ
KHJldmlzaW9uIDI2OTM1KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsNDYgKzIxNSwxNDIgQEAKIHZvaWQgRWRp
dG9yQ2xpZW50OjpoYW5kbGVLZXlwcmVzcyhLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKICAgICBG
cmFtZSogZnJhbWUgPSBjb3JlKG1fcGFnZSktPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JN
YWluRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQorICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5k
b2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBjb25zdCBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQqIGtldmVudCA9IGV2ZW50LT5rZXlFdmVudCgpOwotICAgIGlm
ICgha2V2ZW50LT5pc0tleVVwKCkpIHsKLSAgICAgICAgTm9kZSogc3RhcnQgPSBmcmFtZS0+c2Vs
ZWN0aW9uQ29udHJvbGxlcigpLT5zdGFydCgpLm5vZGUoKTsKLSAgICAgICAgaWYgKHN0YXJ0ICYm
IHN0YXJ0LT5pc0NvbnRlbnRFZGl0YWJsZSgpKSB7Ci0gICAgICAgICAgICBzd2l0Y2ggKGtldmVu
dC0+V2luZG93c0tleUNvZGUoKSkgeworICAgIGlmIChrZXZlbnQtPmlzS2V5VXAoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgTm9kZSogc3RhcnQgPSBmcmFtZS0+c2VsZWN0aW9uQ29udHJvbGxl
cigpLT5zdGFydCgpLm5vZGUoKTsKKyAgICBpZiAoIXN0YXJ0KQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBXZSBtYXkgd2FudCB0byBzaGFyZSBjb2RlIGZvciB0aGlzIGZlYXR1cmUgd2l0aCBX
ZWJLaXQvd2luL1dlYlZpZXcuY3BwCisgICAgLy8gT3Igb3RoZXJ3aXNlLCBtb3ZlIHRvd2FyZHMg
YSBtb3JlIEdUSysgc3R5bGUgKHNlZSBndGsrL2d0ay9ndGt0ZXh0dmlldy5jKSwKKyAgICAvLyB0
byBzdXBwb3J0IEdUSysncyBTZWxlY3Rpb25HcmFudWxhcml0eSBldGMuCisgICAgaWYgKHN0YXJ0
LT5pc0NvbnRlbnRFZGl0YWJsZSgpKSB7CisgICAgICAgIHN3aXRjaChrZXZlbnQtPldpbmRvd3NL
ZXlDb2RlKCkpIHsKICAgICAgICAgICAgIGNhc2UgVktfQkFDSzoKICAgICAgICAgICAgICAgICBm
cmFtZS0+ZWRpdG9yKCktPmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uQ29udHJvbGxlcjo6
QkFDS1dBUkQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENoYXJhY3RlckdyYW51bGFyaXR5LCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBrZXZlbnQtPmN0cmxLZXkoKSA/IFdvcmRHcmFudWxhcml0eSA6IENoYXJhY3Rl
ckdyYW51bGFyaXR5LCBmYWxzZSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICBjYXNlIFZLX0RFTEVURToKICAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCkt
PmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uQ29udHJvbGxlcjo6Rk9SV0FSRCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVy
R3JhbnVsYXJpdHksIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGtldmVu
dC0+Y3RybEtleSgpID8gV29yZEdyYW51bGFyaXR5IDogQ2hhcmFjdGVyR3JhbnVsYXJpdHksIGZh
bHNlLCB0cnVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgVktf
TEVGVDoKLSAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmV4ZWNDb21tYW5kKCJNb3Zl
TGVmdCIpOworICAgICAgICAgICAgICAgIGZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCktPm1v
ZGlmeShrZXZlbnQtPnNoaWZ0S2V5KCkgPyBTZWxlY3Rpb25Db250cm9sbGVyOjpFWFRFTkQgOiBT
ZWxlY3Rpb25Db250cm9sbGVyOjpNT1ZFLAorICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0
aW9uQ29udHJvbGxlcjo6TEVGVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGtldmVudC0+Y3Ry
bEtleSgpID8gV29yZEdyYW51bGFyaXR5IDogQ2hhcmFjdGVyR3JhbnVsYXJpdHksCisgICAgICAg
ICAgICAgICAgICAgICAgICB0cnVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIGNhc2UgVktfUklHSFQ6Ci0gICAgICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5leGVj
Q29tbWFuZCgiTW92ZVJpZ2h0Iik7CisgICAgICAgICAgICAgICAgZnJhbWUtPnNlbGVjdGlvbkNv
bnRyb2xsZXIoKS0+bW9kaWZ5KGtldmVudC0+c2hpZnRLZXkoKSA/IFNlbGVjdGlvbkNvbnRyb2xs
ZXI6OkVYVEVORCA6IFNlbGVjdGlvbkNvbnRyb2xsZXI6Ok1PVkUsCisgICAgICAgICAgICAgICAg
ICAgICAgICBTZWxlY3Rpb25Db250cm9sbGVyOjpSSUdIVCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGtldmVudC0+Y3RybEtleSgpID8gV29yZEdyYW51bGFyaXR5IDogQ2hhcmFjdGVyR3JhbnVs
YXJpdHksCisgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGNhc2UgVktfVVA6CisgICAgICAgICAgICAgICAgZnJhbWUtPnNl
bGVjdGlvbkNvbnRyb2xsZXIoKS0+bW9kaWZ5KGtldmVudC0+c2hpZnRLZXkoKSA/IFNlbGVjdGlv
bkNvbnRyb2xsZXI6OkVYVEVORCA6IFNlbGVjdGlvbkNvbnRyb2xsZXI6Ok1PVkUsCisgICAgICAg
ICAgICAgICAgICAgICAgICBTZWxlY3Rpb25Db250cm9sbGVyOjpCQUNLV0FSRCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGtldmVudC0+Y3RybEtleSgpID8gUGFyYWdyYXBoR3JhbnVsYXJpdHkg
OiBMaW5lR3JhbnVsYXJpdHksCisgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsKKyAgICAg
ICAgICAgIGNhc2UgVktfRE9XTjoKKyAgICAgICAgICAgICAgICBmcmFtZS0+c2VsZWN0aW9uQ29u
dHJvbGxlcigpLT5tb2RpZnkoa2V2ZW50LT5zaGlmdEtleSgpID8gU2VsZWN0aW9uQ29udHJvbGxl
cjo6RVhURU5EIDogU2VsZWN0aW9uQ29udHJvbGxlcjo6TU9WRSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIFNlbGVjdGlvbkNvbnRyb2xsZXI6OkZPUldBUkQsCisgICAgICAgICAgICAgICAgICAg
ICAgICBrZXZlbnQtPmN0cmxLZXkoKSA/IFBhcmFncmFwaEdyYW51bGFyaXR5IDogTGluZUdyYW51
bGFyaXR5LAorICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIFZLX1BSSU9SOiAgLy8gUGFnZVVwCisgICAgICAgICAg
ICAgICAgZnJhbWUtPmVkaXRvcigpLT5leGVjQ29tbWFuZCgiTW92ZVVwQnlQYWdlQW5kTW9kaWZ5
Q2FyZXQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVktfTkVY
VDogIC8vIFBhZ2VEb3duCisgICAgICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5leGVjQ29t
bWFuZCgiTW92ZURvd25CeVBhZ2VBbmRNb2RpZnlDYXJldCIpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBWS19SRVRVUk46CisgICAgICAgICAgICAgICAgZnJhbWUt
PmVkaXRvcigpLT5leGVjQ29tbWFuZCgiSW5zZXJ0TGluZUJyZWFrIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFZLX1RBQjoKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGlmICgha2V2ZW50LT5j
dHJsS2V5KCkgJiYgIWtldmVudC0+YWx0S2V5KCkgJiYgIWtldmVudC0+dGV4dCgpLmlzRW1wdHko
KSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoa2V2ZW50LT50ZXh0KCkubGVuZ3RoKCkgPT0g
MSkgeworICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXIgY2ggPSBrZXZlbnQtPnRleHQoKVsw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGluc2VydCBudWxsIG9yIGNvbnRy
b2wgY2hhcmFjdGVycyBhcyB0aGV5IGNhbiByZXN1bHQgaW4gdW5leHBlY3RlZCBiZWhhdmlvdXIK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8ICcgJykKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICBmcmFtZS0+ZWRpdG9yKCktPmluc2VydFRleHQoa2V2ZW50LT50ZXh0KCksIGV2ZW50KTsK
KyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtldmVudC0+Y3RybEtleSgpKSB7CisgICAgICAg
ICAgICAgICAgICAgIHN3aXRjaCAoa2V2ZW50LT5XaW5kb3dzS2V5Q29kZSgpKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBjYXNlIFZLX0E6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnJhbWUtPmVkaXRvcigpLT5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFZLX0I6
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5leGVjQ29tbWFu
ZCgiVG9nZ2xlQm9sZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICAgICAgY2FzZSBWS19DOgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZyYW1lLT5lZGl0b3IoKS0+ZXhlY0NvbW1hbmQoIkNvcHkiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgVktfSToK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmV4ZWNDb21tYW5k
KCJUb2dnbGVJdGFsaWMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNhc2UgVktfVjoKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmcmFtZS0+ZWRpdG9yKCktPmV4ZWNDb21tYW5kKCJQYXN0ZSIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBWS19Y
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+ZXhlY0NvbW1h
bmQoIkN1dCIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICAgICAgY2FzZSBWS19ZOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZy
YW1lLT5lZGl0b3IoKS0+ZXhlY0NvbW1hbmQoIlJlZG8iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgVktfWjoKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmV4ZWNDb21tYW5kKCJVbmRv
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSByZXR1cm47CisgICAg
ICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBzd2l0Y2ggKGtldmVudC0+V2luZG93c0tleUNv
ZGUoKSkgeworICAgICAgICAgICAgY2FzZSBWS19VUDoKICAgICAgICAgICAgICAgICBmcmFtZS0+
ZWRpdG9yKCktPmV4ZWNDb21tYW5kKCJNb3ZlVXAiKTsKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIGNhc2UgVktfRE9XTjoKICAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9y
KCktPmV4ZWNDb21tYW5kKCJNb3ZlRG93biIpOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBWS19QUklPUjogIC8vIFBhZ2VVcAorICAgICAgICAgICAgICAgIGZyYW1l
LT5lZGl0b3IoKS0+ZXhlY0NvbW1hbmQoIk1vdmVVcEJ5UGFnZUFuZE1vZGlmeUNhcmV0Iik7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFZLX05FWFQ6ICAvLyBQYWdl
RG93bgorICAgICAgICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+ZXhlY0NvbW1hbmQoIk1vdmVE
b3duQnlQYWdlQW5kTW9kaWZ5Q2FyZXQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgVktfSE9NRToKKyAgICAgICAgICAgICAgICBpZiAoa2V2ZW50LT5jdHJsS2V5
KCkpCisgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+ZXhlY0NvbW1hbmQoIk1v
dmVUb0JlZ2lubmluZ09mRG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgVktfRU5EOgorICAgICAgICAgICAgICAgIGlmIChrZXZlbnQtPmN0cmxLZXko
KSkKKyAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5leGVjQ29tbWFuZCgiTW92
ZVRvRW5kT2ZEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBpZiAoa2V2ZW50LT50ZXh0KCkubGVuZ3RoKCkgPT0g
MSkgewotICAgICAgICAgICAgICAgICAgICBVQ2hhciBjaCA9IGtldmVudC0+dGV4dCgpWzBdOwot
ICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBpbnNlcnQgbnVsbCBvciBjb250cm9sIGNoYXJh
Y3RlcnMgYXMgdGhleSBjYW4gcmVzdWx0IGluIHVuZXhwZWN0ZWQgYmVoYXZpb3VyCi0gICAgICAg
ICAgICAgICAgICAgIGlmIChjaCA8ICcgJykKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmlu
c2VydFRleHQoa2V2ZW50LT50ZXh0KCksIGV2ZW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICAgICAgICAgIGlmIChrZXZl
bnQtPmN0cmxLZXkoKSkgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2goa2V2ZW50LT5XaW5k
b3dzS2V5Q29kZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFZLX0E6CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5leGVjQ29tbWFuZCgiU2Vs
ZWN0QWxsIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgICAgICAgICBjYXNlIFZLX0M6IGNhc2UgVktfWDoKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmV4ZWNDb21tYW5kKCJDb3B5Iik7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSByZXR1cm47CiAgICAgICAgIH0KICAgICB9Cisg
ICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKIAo=
</data>
<flag name="review"
          id="7118"
          type_id="1"
          status="+"
          setter="mrowe"
    />
          </attachment>
      

    </bug>

</bugzilla>