<?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>16092</bug_id>
          
          <creation_ts>2007-11-22 03:51:35 -0800</creation_ts>
          <short_desc>[GTK] Middle-mouse click should allow opening a URL in a new tab</short_desc>
          <delta_ts>2008-12-21 06:51:04 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>16562</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nigel Tao">nigel.tao.gnome</reporter>
          <assigned_to name="Alp Toker">alp</assigned_to>
          <cc>alp</cc>
    
    <cc>christian</cc>
    
    <cc>cosimoc</cc>
    
    <cc>gustavo</cc>
    
    <cc>jakub.rusinek</cc>
    
    <cc>jasper</cc>
    
    <cc>martin.sourada</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>xclaesse</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>61987</commentid>
    <comment_count>0</comment_count>
    <who name="Nigel Tao">nigel.tao.gnome</who>
    <bug_when>2007-11-22 03:51:35 -0800</bug_when>
    <thetext>Middle-clicking (or Control-clicking) on a link should enable the program that embeds a WebKitPage to open that link in a new tab, or otherwise presented however the program sees appropriate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61988</commentid>
    <comment_count>1</comment_count>
      <attachid>17441</attachid>
    <who name="Nigel Tao">nigel.tao.gnome</who>
    <bug_when>2007-11-22 03:59:21 -0800</bug_when>
    <thetext>Created attachment 17441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62030</commentid>
    <comment_count>2</comment_count>
      <attachid>17441</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-11-22 16:09:45 -0800</bug_when>
    <thetext>Comment on attachment 17441
Patch

The concept of tabs is only relevant at the application level.

It&apos;s true we don&apos;t have the necessary way to support new window creation and tabs, but this isn&apos;t the way.

Need to do something similar to the other public APIs instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63327</commentid>
    <comment_count>3</comment_count>
      <attachid>17717</attachid>
    <who name="Nigel Tao">nigel.tao.gnome</who>
    <bug_when>2007-12-05 02:41:21 -0800</bug_when>
    <thetext>Created attachment 17717
Patch

Second attempt, now passing a dictionary with the navigation-requested signal, which AFAICT is similar to what the Mac and Win ports do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63763</commentid>
    <comment_count>4</comment_count>
    <who name="Nigel Tao">nigel.tao.gnome</who>
    <bug_when>2007-12-09 14:41:21 -0800</bug_when>
    <thetext>Any comments from a reviewer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63838</commentid>
    <comment_count>5</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2007-12-10 10:23:08 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=17717) [edit]
&gt; Patch
&gt; 
&gt; Second attempt, now passing a dictionary with the navigation-requested signal,
&gt; which AFAICT is similar to what the Mac and Win ports do.
&gt; 

Hi, so thinking out loud here. This looks pretty good to me, just one comment:

- Having to connect to the signal with _after looks really ugly to me, so I think we should try something else instead. One solution is to decouple the WebKitNavigationResponse from the fact of whether we want to block or not the default handler. We can put the NavigationResponse in the signal arguments, and make it return a boolean value (+ a boolean accumulator). If you want to block the default handler, you simply return TRUE from your callback (and put the response as something different than IGNORE I guess); otherwise, you return FALSE.

Would this be feasible? How does it sound?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63840</commentid>
    <comment_count>6</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2007-12-10 10:26:46 -0800</bug_when>
    <thetext>With being feasible I mean that I guess we&apos;d need to change other code somewhere that depends on the action being passed as return value. The change I described is entirely possible on its own :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63904</commentid>
    <comment_count>7</comment_count>
      <attachid>17840</attachid>
    <who name="Nigel Tao">nigel.tao.gnome</who>
    <bug_when>2007-12-10 23:24:36 -0800</bug_when>
    <thetext>Created attachment 17840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63905</commentid>
    <comment_count>8</comment_count>
      <attachid>17840</attachid>
    <who name="Nigel Tao">nigel.tao.gnome</who>
    <bug_when>2007-12-10 23:25:16 -0800</bug_when>
    <thetext>Comment on attachment 17840
Patch

Same patch, synced to head</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63912</commentid>
    <comment_count>9</comment_count>
      <attachid>17841</attachid>
    <who name="Nigel Tao">nigel.tao.gnome</who>
    <bug_when>2007-12-11 00:11:17 -0800</bug_when>
    <thetext>Created attachment 17841
Patch

Patch version 4 removes the need to connect *with _after* to the &quot;navigation-requested&quot; signal.  This involved removing the default handler, webkit_web_view_real_navigation_requested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64040</commentid>
    <comment_count>10</comment_count>
      <attachid>17841</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-12 10:28:24 -0800</bug_when>
    <thetext>Comment on attachment 17841
Patch

I asked Anders for his thoughts on this and he suggested a different API with a  NavigationAction/NavigationInfo object.

The discussion was on IRC Wed 12 Dec 6:20ish, but will summarise here later if you missed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64068</commentid>
    <comment_count>11</comment_count>
      <attachid>17871</attachid>
    <who name="Nigel Tao">nigel.tao.gnome</who>
    <bug_when>2007-12-12 21:25:15 -0800</bug_when>
    <thetext>Created attachment 17871
IRC log

This is the IRC log (as far as I can tell) that Alp referred to in the previous comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64069</commentid>
    <comment_count>12</comment_count>
    <who name="Nigel Tao">nigel.tao.gnome</who>
    <bug_when>2007-12-12 21:34:16 -0800</bug_when>
    <thetext>Was the patch rejected just because the navigation action signal parameter is a GHashTable instead of a separate GObject subclass with a nice, readable API like
const char *url = webkit_web_navigation_action_get_original_url(action)
or is it deeper (i.e. the &quot;listen to the navigation-action signal and return ACCEPT, IGNORE or DOWNLOAD&quot; design is flawed, perhaps because it doesn&apos;t allow popping a dialog box for downloads or something)?

I suppose that the answer is simply &quot;look at what the other ports do&quot;.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74496</commentid>
    <comment_count>13</comment_count>
      <attachid>19892</attachid>
    <who name="Jasper Bryant-Greene">jasper</who>
    <bug_when>2008-03-19 19:56:49 -0700</bug_when>
    <thetext>Created attachment 19892
Implement WebKitNavigationAction object in GTK API

Implements a WebKitNavigationAction object in the GTK API providing the context for the navigation request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74499</commentid>
    <comment_count>14</comment_count>
      <attachid>19893</attachid>
    <who name="Jasper Bryant-Greene">jasper</who>
    <bug_when>2008-03-19 20:43:16 -0700</bug_when>
    <thetext>Created attachment 19893
less verbose duplication of string, return const gchar* through api, correct code style issues

This corrects all issues raised about the patch with the exception of making the NavigationResponse be provided asynchronously. This patch provides much-needed functionality so perhaps it could be committed and improved to be asynchronous later? I&apos;m happy to continue working on this to make it async.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74501</commentid>
    <comment_count>15</comment_count>
      <attachid>19893</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2008-03-19 21:00:26 -0700</bug_when>
    <thetext>Comment on attachment 19893
less verbose duplication of string, return const gchar* through api, correct code style issues

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74823</commentid>
    <comment_count>16</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-03-22 15:19:44 -0700</bug_when>
    <thetext>This was landed in r31183 but rolled out in r31184.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74824</commentid>
    <comment_count>17</comment_count>
      <attachid>19893</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-03-22 15:19:57 -0700</bug_when>
    <thetext>Comment on attachment 19893
less verbose duplication of string, return const gchar* through api, correct code style issues

Clearing + flag since the patch was rolled out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74825</commentid>
    <comment_count>18</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-03-22 15:20:27 -0700</bug_when>
    <thetext>Alp, can you please provide some info on why the patch was rolled out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85766</commentid>
    <comment_count>19</comment_count>
    <who name="Pierre-Luc Beaudoin">pierre-luc.beaudoin</who>
    <bug_when>2008-07-11 02:06:56 -0700</bug_when>
    <thetext>This bug and its patches look like Bug #16562</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85941</commentid>
    <comment_count>20</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2008-07-15 07:02:50 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; This bug and its patches look like Bug #16562

I think this is essentially a less complete implementation of the NavigationAction and could be discussed only as an enhancement. I suggest this proposal should be revisited after #16562 is resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103074</commentid>
    <comment_count>21</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2008-12-20 06:58:27 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; This bug and its patches look like Bug #16562
&gt; 
&gt; I think this is essentially a less complete implementation of the
&gt; NavigationAction and could be discussed only as an enhancement. I suggest this
&gt; proposal should be revisited after #16562 is resolved.
&gt; 

I think it still makes a lot of sense to get the code in this patch getting the button and modifier state from action.event to add it to our navigation action in #16562. It&apos;s needed for browsers to be able to do different things in response to actions (the most common one being the one mentioned in this bug topic :))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103076</commentid>
    <comment_count>22</comment_count>
      <attachid>26169</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2008-12-20 07:36:47 -0800</bug_when>
    <thetext>Created attachment 26169
0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch

Something like this is good enough for Epiphany, for instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103077</commentid>
    <comment_count>23</comment_count>
      <attachid>26170</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2008-12-20 07:43:20 -0800</bug_when>
    <thetext>Created attachment 26170
0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch

Fix return values for getters in case of error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103078</commentid>
    <comment_count>24</comment_count>
      <attachid>26171</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2008-12-20 08:02:46 -0800</bug_when>
    <thetext>Created attachment 26171
0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch

Improve the wording of the modifier keys state property per discussion on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103086</commentid>
    <comment_count>25</comment_count>
      <attachid>26171</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2008-12-20 17:24:24 -0800</bug_when>
    <thetext>Comment on attachment 26171
0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch

Two minor style nitpicks.


&gt; -    // TODO: use action.event().
&gt; +    gint button = -1, modifierFlags = 0;

From what I know we put that on two different lines.


&gt; +
&gt; +    const Event* event = action.event();
&gt; +        const MouseEvent* mouseEvent = static_cast&lt;const MouseEvent*&gt;(event);
&gt; +    const UIEventWithKeyState* keyStateEvent = findEventWithKeyState(const_cast&lt;Event*&gt;(event));

I&apos;m just the messenger here, but we omit this const in WebKit.org.


Besides that, did you see the WebActionPropertyBag.cpp of the Windows port? I think it is fine to export this information here and if there is no need for further API discussion I will say r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103103</commentid>
    <comment_count>26</comment_count>
      <attachid>26180</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2008-12-21 02:25:18 -0800</bug_when>
    <thetext>Created attachment 26180
0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch

Address both comments by Holger.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103104</commentid>
    <comment_count>27</comment_count>
      <attachid>26181</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2008-12-21 02:26:29 -0800</bug_when>
    <thetext>Created attachment 26181
0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch

And remove another const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103111</commentid>
    <comment_count>28</comment_count>
      <attachid>26183</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2008-12-21 05:00:55 -0800</bug_when>
    <thetext>Created attachment 26183
0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch

Re-add const for Events, you need it and it&apos;s used in the other ports too.

Also add +1 to the mouse button value to use the same values than GTK+ does (DOM starts in 0, GTK+ in 1).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103113</commentid>
    <comment_count>29</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2008-12-21 06:51:04 -0800</bug_when>
    <thetext>2008-12-21  Xan Lopez  &lt;xan@gnome.org&gt;

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=16092
        [GTK] Middle-mouse click should allow opening a URL in a new tab

        Add mouse button and keyboard state modifiers info to navigation action.

        * WebCoreSupport/FrameLoaderClientGtk.cpp:
        (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction):
        * webkit/webkitwebnavigationaction.cpp:
        (_WebKitWebNavigationActionPrivate::):
        (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_get_property):
        (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_set_property):
        (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_class_init):
        (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_get_button):
        (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_get_modifier_state):
        * webkit/webkitwebnavigationaction.h:</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17441</attachid>
            <date>2007-11-22 03:59:21 -0800</date>
            <delta_ts>2007-12-05 02:41:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>webkit-middle-click.diff</filename>
            <type>text/plain</type>
            <size>3586</size>
            <attacher name="Nigel Tao">nigel.tao.gnome</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzk3MCkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDctMTEtMjIgIE5pZ2VsIFRhbyAgPG5pZ2VsdGFv
QGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5MgorICAgICAg
ICBbR1RLXSBNaWRkbGUtbW91c2UgY2xpY2sgc2hvdWxkIGFsbG93IG9wZW5pbmcgYSBVUkwgaW4g
YSBuZXcgdGFiCisKKyAgICAgICAgTWlkZGxlLWNsaWNrIG9yIENvbnRyb2wtY2xpY2sgY2F1c2lu
ZyBhIE5hdmlnYXRpb25BY3Rpb24gbm93IGZpcmVzIGFuCisgICAgICAgIG9wZW4tdXJsLWluLW5l
dy10YWIgc2lnbmFsIG9uIGEgV2ViS2l0UGFnZSAoYW5kIGlzc3VlcyBQb2xpY3lJZ25vcmUsCisg
ICAgICAgIHJhdGhlciB0aGFuIFBvbGljeVVzZSkuCisKKyAgICAgICAgKiBBcGkvd2Via2l0Z3Rr
cGFnZS5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKwogMjAwNy0xMS0xOCAgQ2hyaXN0aWFuIER5d2Fu
ICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbHAuCklu
ZGV4OiBXZWJLaXQvZ3RrL0FwaS93ZWJraXRndGtwYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvZ3RrL0FwaS93ZWJraXRndGtwYWdlLmNwcAkocmV2aXNpb24gMjc5MTkpCisrKyBXZWJLaXQv
Z3RrL0FwaS93ZWJraXRndGtwYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjksNyBA
QCBlbnVtIHsKICAgICBTQ1JJUFRfQUxFUlQsCiAgICAgU0NSSVBUX0NPTkZJUk0sCiAgICAgU0NS
SVBUX1BST01QVCwKKyAgICBPUEVOX1VSTF9JTl9ORVdfVEFCLAogICAgIExBU1RfU0lHTkFMCiB9
OwogCkBAIC01MTIsNiArNTEzLDE1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9wYWdlX2NsYXNzX2lu
aXQoV2ViS2kKICAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCA0LAogICAgICAgICAgICAgR19U
WVBFX09CSkVDVCwgR19UWVBFX1NUUklORywgR19UWVBFX1NUUklORywgR19UWVBFX1BPSU5URVIp
OwogCisgICAgd2Via2l0X3BhZ2Vfc2lnbmFsc1tPUEVOX1VSTF9JTl9ORVdfVEFCXSA9IGdfc2ln
bmFsX25ldygib3Blbl91cmxfaW5fbmV3X3RhYiIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9D
TEFTUyhwYWdlQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVO
X0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5V
TEwsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZP
SURfX1NUUklORywKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAxLAorICAgICAgICAgICAgR19U
WVBFX1NUUklORyk7CiAKICAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFs
IG1ldGhvZHMKSW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwCShyZXZpc2lvbiAyNzkxOSkKKysrIFdlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2
ICs0Myw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIK
ICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTW91c2VFdmVudC5oIgog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKQEAgLTI0MywxMiArMjQ0LDIzIEBAIHZvaWQg
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG8KICAgICAoY29yZShtX2ZyYW1lKS0+
bG9hZGVyKCktPipwb2xpY3lGdW5jdGlvbikoUG9saWN5SWdub3JlKTsKIH0KIAotdm9pZCBGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKEZy
YW1lUG9saWN5RnVuY3Rpb24gcG9saWN5RnVuY3Rpb24sIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQordm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKEZyYW1lUG9saWN5RnVuY3Rpb24gcG9s
aWN5RnVuY3Rpb24sIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JikKIHsKICAgICBBU1NFUlQocG9saWN5RnVuY3Rpb24pOwogICAgIGlmICghcG9s
aWN5RnVuY3Rpb24pCiAgICAgICAgIHJldHVybjsKLSAgICAoY29yZShtX2ZyYW1lKS0+bG9hZGVy
KCktPipwb2xpY3lGdW5jdGlvbikoUG9saWN5VXNlKTsKKyAgICBQb2xpY3lBY3Rpb24gcG9saWN5
QWN0aW9uID0gUG9saWN5VXNlOworICAgIGNvbnN0IEV2ZW50KiBldmVudCA9IGFjdGlvbi5ldmVu
dCgpOworICAgIGlmIChldmVudCAmJiBldmVudC0+aXNNb3VzZUV2ZW50KCkpIHsKKyAgICAgICAg
Y29uc3QgTW91c2VFdmVudCogbW91c2VFdmVudCA9IHN0YXRpY19jYXN0PGNvbnN0IE1vdXNlRXZl
bnQqPihldmVudCk7CisgICAgICAgIC8vIGJ1dHRvbigpID09IDEgbWVhbnMgbWlkZGxlLW1vdXNl
IGNsaWNrLgorICAgICAgICBpZiAobW91c2VFdmVudC0+YnV0dG9uKCkgPT0gMSB8fCBtb3VzZUV2
ZW50LT5jdHJsS2V5KCkpIHsKKyAgICAgICAgICAgIHBvbGljeUFjdGlvbiA9IFBvbGljeUlnbm9y
ZTsKKyAgICAgICAgICAgIFdlYktpdFBhZ2UqIHBhZ2UgPSBnZXRQYWdlRnJvbUZyYW1lKG1fZnJh
bWUpOworICAgICAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHBhZ2UsICJvcGVuX3VybF9p
bl9uZXdfdGFiIiwgYWN0aW9uLlVSTCgpLnVybCgpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICB9
CisgICAgfQorICAgIChjb3JlKG1fZnJhbWUpLT5sb2FkZXIoKS0+KnBvbGljeUZ1bmN0aW9uKShw
b2xpY3lBY3Rpb24pOwogfQogCiBXaWRnZXQqIEZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVn
aW4oY29uc3QgSW50U2l6ZSYsIEVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0
cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wpCg==
</data>
<flag name="review"
          id="7486"
          type_id="1"
          status="-"
          setter="alp"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17717</attachid>
            <date>2007-12-05 02:41:21 -0800</date>
            <delta_ts>2007-12-10 23:24:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>webkit-gtk-navigation-action-context.patch</filename>
            <type>text/plain</type>
            <size>12916</size>
            <attacher name="Nigel Tao">nigel.tao.gnome</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyODQzNikKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDctMTItMDUgIE5pZ2VsIFRhbyAgPG5pZ2VsdGFv
QGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5MgorICAgICAg
ICBbR1RLXSBNaWRkbGUtbW91c2UgY2xpY2sgc2hvdWxkIGFsbG93IG9wZW5pbmcgYSBVUkwgaW4g
YSBuZXcgdGFiCisKKyAgICAgICAgVGhlIG5hdmlnYXRpb24tcmVxdWVzdGVkIHNpZ25hbCBvbiBh
IFdlYktpdFdlYlZpZXcgbm93IHByb3ZpZGVzIG1vcmUKKyAgICAgICAgY29udGV4dCAoaW4gdGhl
IGZvcm0gb2YgYSBHSGFzaFRhYmxlKSwgc3VjaCBhcyB3aGljaCBtb3VzZSBidXR0b24gKGlmCisg
ICAgICAgIGFueSkgdHJpZ2dlcmVkIHRoZSBuYXZpZ2F0aW9uIGFjdGlvbiwgYW5kIGtleWJvYXJk
IHN0YXRlIChTaGlmdCwKKyAgICAgICAgQ29udHJvbCBhbmQgQWx0KS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
Y3JlYXRlR1ZhbHVlRnJvbUludCk6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZUdWYWx1ZUZyb21T
dHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVIYXNoVGFibGVGcm9tTmF2aWdhdGlvbkFj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OmNsZWFudXBOYXZpZ2F0aW9uQWN0aW9uSGFzaFRhYmxl
KToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogV2ViVmlldy93ZWJraXQtbWFyc2hh
bC5saXN0OgorICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICog
V2ViVmlldy93ZWJraXR3ZWJ2aWV3Lmg6CisKIDIwMDctMTItMDQgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtldmluIERlY2tlci4KSW5kZXg6
IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsu
Y3BwCShyZXZpc2lvbiAyODM3OCkKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBACiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJNSU1F
VHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJSZXNv
dXJjZVJlcXVlc3QuaCIKQEAgLTE0Niw2ICsxNDcsNTYgQEAgc3RhdGljIFN0cmluZyBjb21wb3Nl
VXNlckFnZW50KCkKICAgICByZXR1cm4gdWE7CiB9CiAKK3N0YXRpYyBHVmFsdWUqIGNyZWF0ZUdW
YWx1ZUZyb21JbnQoY29uc3QgaW50IGkpCit7CisgICAgR1ZhbHVlKiB2YWx1ZSA9IGdfbmV3MChH
VmFsdWUsIDEpOworICAgIGdfdmFsdWVfaW5pdCh2YWx1ZSwgR19UWVBFX0lOVCk7CisgICAgZ192
YWx1ZV9zZXRfaW50KHZhbHVlLCBpKTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK3N0YXRpYyBH
VmFsdWUqIGNyZWF0ZUdWYWx1ZUZyb21TdHJpbmcoY29uc3QgZ2NoYXIqIHMpCit7CisgICAgR1Zh
bHVlKiB2YWx1ZSA9IGdfbmV3MChHVmFsdWUsIDEpOworICAgIGdfdmFsdWVfaW5pdCh2YWx1ZSwg
R19UWVBFX1NUUklORyk7CisgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCBzKTsKKyAgICBy
ZXR1cm4gdmFsdWU7Cit9CisKK3N0YXRpYyBHSGFzaFRhYmxlKiBjcmVhdGVIYXNoVGFibGVGcm9t
TmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24pCit7CisgICAg
R0hhc2hUYWJsZSogaGFzaFRhYmxlID0gZ19oYXNoX3RhYmxlX25ldyhnX3N0cl9oYXNoLCBnX3N0
cl9lcXVhbCk7CisgICAgY29uc3QgRXZlbnQqIGV2ZW50ID0gYWN0aW9uLmV2ZW50KCk7CisgICAg
aWYgKGV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSkgeworICAgICAgICBjb25zdCBNb3Vz
ZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgTW91c2VFdmVudCo+KGV2ZW50
KTsKKyAgICAgICAgZ19oYXNoX3RhYmxlX2luc2VydChoYXNoVGFibGUsIGNvbnN0X2Nhc3Q8Z2No
YXIqPihXRUJfQUNUSU9OX0JVVFRPTl9LRVkpLCBjcmVhdGVHVmFsdWVGcm9tSW50KG1vdXNlRXZl
bnQtPmJ1dHRvbigpKSk7CisgICAgfQorICAgIGlmIChjb25zdCBVSUV2ZW50V2l0aEtleVN0YXRl
KiBrZXlTdGF0ZUV2ZW50ID0gZmluZEV2ZW50V2l0aEtleVN0YXRlKGNvbnN0X2Nhc3Q8RXZlbnQq
PihldmVudCkpKSB7CisgICAgICAgIGludCBtb2RpZmllckZsYWdzID0gMDsKKyAgICAgICAgaWYg
KGtleVN0YXRlRXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9
IEdES19TSElGVF9NQVNLOworICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+Y3RybEtleSgpKQor
ICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBHREtfQ09OVFJPTF9NQVNLOworICAgICAgICBp
ZiAoa2V5U3RhdGVFdmVudC0+YWx0S2V5KCkpCisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9
IEdES19NT0QxX01BU0s7CisgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5tZXRhS2V5KCkpCisg
ICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IEdES19NT0QyX01BU0s7CisgICAgICAgIGdfaGFz
aF90YWJsZV9pbnNlcnQoaGFzaFRhYmxlLCBjb25zdF9jYXN0PGdjaGFyKj4oV0VCX0FDVElPTl9N
T0RJRklFUl9GTEFHU19LRVkpLCBjcmVhdGVHVmFsdWVGcm9tSW50KG1vZGlmaWVyRmxhZ3MpKTsK
KyAgICB9CisgICAgZ19oYXNoX3RhYmxlX2luc2VydChoYXNoVGFibGUsIGNvbnN0X2Nhc3Q8Z2No
YXIqPihXRUJfQUNUSU9OX05BVklHQVRJT05fVFlQRV9LRVkpLCBjcmVhdGVHVmFsdWVGcm9tSW50
KGFjdGlvbi50eXBlKCkpKTsKKyAgICBnX2hhc2hfdGFibGVfaW5zZXJ0KGhhc2hUYWJsZSwgY29u
c3RfY2FzdDxnY2hhcio+KFdFQl9BQ1RJT05fT1JJR0lOQUxfVVJMX0tFWSksIGNyZWF0ZUdWYWx1
ZUZyb21TdHJpbmcoYWN0aW9uLlVSTCgpLnVybCgpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICByZXR1
cm4gaGFzaFRhYmxlOworfQorCitzdGF0aWMgdm9pZCBjbGVhbnVwTmF2aWdhdGlvbkFjdGlvbkhh
c2hUYWJsZShncG9pbnRlciwgZ3BvaW50ZXIgdmFsdWUsIGdwb2ludGVyKQoreworICAgIC8vIFRo
ZSBrZXlzIGFyZSBzdGF0aWMgc3RyaW5ncywgc28gd2UgZG8gbm90IGRlLWFsbG9jYXRlIHRoZW0u
ICBXZSBvbmx5CisgICAgLy8gY2xlYW4gdXAgdGhlIHZhbHVlcy4KKyAgICBHVmFsdWUqIHYgPSBz
dGF0aWNfY2FzdDxHVmFsdWUqPih2YWx1ZSk7CisgICAgZ192YWx1ZV91bnNldCh2KTsKKyAgICBn
X2ZyZWUodik7Cit9CisKIFN0cmluZyBGcmFtZUxvYWRlckNsaWVudDo6dXNlckFnZW50KGNvbnN0
IEtVUkwmKQogewogICAgIGlmIChtX3VzZXJBZ2VudC5pc0VtcHR5KCkpCkBAIC0yNTQsMTMgKzMw
NSwxNiBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvCiAgICAgaWYg
KCFwb2xpY3lGdW5jdGlvbikKICAgICAgICAgcmV0dXJuOwogCisgICAgR0hhc2hUYWJsZSogYWN0
aW9uSW5mb3JtYXRpb24gPSBjcmVhdGVIYXNoVGFibGVGcm9tTmF2aWdhdGlvbkFjdGlvbihhY3Rp
b24pOwogICAgIFdlYktpdFdlYlZpZXcqIHBhZ2UgPSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUp
OwogICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0ID0gd2Via2l0X25ldHdvcmtfcmVx
dWVzdF9uZXcocmVzb3VyY2VSZXF1ZXN0LnVybCgpLnVybCgpLnV0ZjgoKS5kYXRhKCkpOwotICAg
IFdlYktpdE5hdmlnYXRpb25SZXNwb25zZSByZXNwb25zZTsKKyAgICBXZWJLaXROYXZpZ2F0aW9u
UmVzcG9uc2UgcmVzcG9uc2UgPSBXRUJLSVRfTkFWSUdBVElPTl9SRVNQT05TRV9BQ0NFUFQ7CiAK
LSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUocGFnZSwgIm5hdmlnYXRpb25fcmVxdWVzdGVkIiwg
bV9mcmFtZSwgcmVxdWVzdCwgJnJlc3BvbnNlKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
cGFnZSwgIm5hdmlnYXRpb25fcmVxdWVzdGVkIiwgYWN0aW9uSW5mb3JtYXRpb24sIG1fZnJhbWUs
IHJlcXVlc3QsICZyZXNwb25zZSk7CiAKICAgICBnX29iamVjdF91bnJlZihyZXF1ZXN0KTsKKyAg
ICBnX2hhc2hfdGFibGVfZm9yZWFjaChhY3Rpb25JbmZvcm1hdGlvbiwgY2xlYW51cE5hdmlnYXRp
b25BY3Rpb25IYXNoVGFibGUsIE5VTEwpOworICAgIGdfaGFzaF90YWJsZV9kZXN0cm95KGFjdGlv
bkluZm9ybWF0aW9uKTsKIAogICAgIGlmIChyZXNwb25zZSA9PSBXRUJLSVRfTkFWSUdBVElPTl9S
RVNQT05TRV9JR05PUkUpIHsKICAgICAgICAgKGNvcmUobV9mcmFtZSktPmxvYWRlcigpLT4qcG9s
aWN5RnVuY3Rpb24pKFBvbGljeUlnbm9yZSk7CkluZGV4OiBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Vi
a2l0LW1hcnNoYWwubGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0
LW1hcnNoYWwubGlzdAkocmV2aXNpb24gMjgzNzgpCisrKyBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Vi
a2l0LW1hcnNoYWwubGlzdAkod29ya2luZyBjb3B5KQpAQCAtNiw0ICs2LDQgQEAgQk9PTEVBTjpT
VFJJTkcsSU5ULFNUUklORwogQk9PTEVBTjpPQkpFQ1QsU1RSSU5HCiBCT09MRUFOOk9CSkVDVCxT
VFJJTkcsQk9PTEVBTgogQk9PTEVBTjpPQkpFQ1QsU1RSSU5HLFNUUklORyxTVFJJTkcKLUlOVDpP
QkpFQ1QsT0JKRUNUCitJTlQ6UE9JTlRFUixPQkpFQ1QsT0JKRUNUCkluZGV4OiBXZWJLaXQvZ3Rr
L1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJW
aWV3L3dlYmtpdHdlYnZpZXcuY3BwCShyZXZpc2lvbiAyODM3OCkKKysrIFdlYktpdC9ndGsvV2Vi
Vmlldy93ZWJraXR3ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQzLDkgKzI0Myw4IEBA
IHN0YXRpYyBXZWJLaXRXZWJWaWV3KiB3ZWJraXRfd2ViX3ZpZXdfcmUKICAgICByZXR1cm4gMDsK
IH0KIAotc3RhdGljIFdlYktpdE5hdmlnYXRpb25SZXNwb25zZSB3ZWJraXRfd2ViX3ZpZXdfcmVh
bF9uYXZpZ2F0aW9uX3JlcXVlc3RlZChXZWJLaXRXZWJWaWV3KiwgV2ViS2l0V2ViRnJhbWUqIGZy
YW1lLCBXZWJLaXROZXR3b3JrUmVxdWVzdCopCitzdGF0aWMgV2ViS2l0TmF2aWdhdGlvblJlc3Bv
bnNlIHdlYmtpdF93ZWJfdmlld19yZWFsX25hdmlnYXRpb25fcmVxdWVzdGVkKFdlYktpdFdlYlZp
ZXcqLCBHSGFzaFRhYmxlKiwgV2ViS2l0V2ViRnJhbWUqLCBXZWJLaXROZXR3b3JrUmVxdWVzdCop
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gV0VCS0lUX05BVklHQVRJT05f
UkVTUE9OU0VfQUNDRVBUOwogfQogCkBAIC0zODEsMTQgKzM4MCwzOSBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXCiAgICAgICogU2lnbmFscwogICAgICAqLwogCisg
ICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzo6bmF2aWdhdGlvbi1yZXF1ZXN0ZWQ6CisgICAg
ICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAor
ICAgICAqIEBhY3Rpb25JbmZvcm1hdGlvbjogYSBHSGFzaFRhYmxlKiBvZiBzdHJpbmctPkdWYWx1
ZSoga2V5LXZhbHVlIHBhaXJzIHRoYXQKKyAgICAgKiBwcm92aWRlIHRoZSBjb250ZXh0IGZvciB0
aGlzIG5hdmlnYXRpb24gcmVxdWVzdCwgc3VjaCBhcyBtb3VzZSBidXR0b24sCisgICAgICogYW5k
IGtleWJvYXJkIHN0YXRlIChTaGlmdCwgQ29udHJvbCwgQWx0KS4KKyAgICAgKiBAZnJhbWU6IHRo
ZSAjV2ViS2l0V2ViRnJhbWUgdG8gZG8gdGhlIG5hdmlnYXRpb24gYWN0aW9uCisgICAgICogQG5l
dHdvcmtSZXF1ZXN0OiB0aGUgV2ViS2l0TmV0d29ya1JlcXVlc3QKKyAgICAgKiBAcmV0dXJuOiBh
IFdlYktpdE5hdmlnYXRpb25SZXNwb25zZSwgc3VjaCBhcworICAgICAqIFdFQktJVF9OQVZJR0FU
SU9OX1JFU1BPTlNFX0FDQ0VQVC4KKyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiBhICNXZWJL
aXRXZWJGcmFtZSBvZiB0aGlzICNXZWJLaXRXZWJWaWV3IGlzIG1vdmluZyB0byBhIG5ldworICAg
ICAqIGxvY2F0aW9uLCBzdWNoIGFzIHdoZW4gYSBIVE1MIGFuY2hvciBpcyBjbGlja2VkLiAgVGhl
IGFjdGlvbkluZm9ybWF0aW9uCisgICAgICogR0hhc2hUYWJsZSBwcm92aWRlcyBjb250ZXh0IChz
dWNoIGFzLCB3YXMgdGhlIGFuY2hvciBjbGlja2VkIG9uIGJ5IHRoZQorICAgICAqIG1pZGRsZSBt
b3VzZSBidXR0b24pLCBhbmQgdGhlIGFwcGxpY2F0aW9uIGNhbiByZXR1cm4KKyAgICAgKiBXRUJL
SVRfTkFWSUdBVElPTl9SRVNQT05TRV9JR05PUkUgKHRvIGluc3RydWN0IHRoaXMgI1dlYktpdFdl
YlZpZXcgdG8gbm90CisgICAgICogb3BlbiB0aGUgVVJMIGluIHRoaXMgI1dlYktpdFdlYlZpZXcp
IGlmIHRoZSBhcHBsaWNhdGlvbiB3b3VsZCByYXRoZXIgb3BlbgorICAgICAqIHRoZSBVUkwgaW4g
YSBuZXcgdGFiLCBmb3IgZXhhbXBsZS4KKyAgICAgKgorICAgICAqIE5vdGUgdGhhdCB5b3Ugc2hv
dWxkIGNvbm5lY3QgdmlhIGdfc2lnbmFsX2Nvbm5lY3RfYWZ0ZXIsIG5vdAorICAgICAqIGdfc2ln
bmFsX2Nvbm5lY3QsIG9yIGVsc2UgdGhlIHJldHVybiB2YWx1ZSBmb3IgeW91ciBzaWduYWwgaGFu
ZGxlciB3aWxsCisgICAgICogYmUgb3Zlci1yaWRkZW4gYnkgdGhlIGRlZmF1bHQgb25lICh3aGlj
aCBhbHdheXMgcmV0dXJucworICAgICAqIFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0FDQ0VQ
VCkuCisgICAgICovCiAgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbTkFWSUdBVElPTl9SRVFV
RVNURURdID0gZ19zaWduYWxfbmV3KCJuYXZpZ2F0aW9uX3JlcXVlc3RlZCIsCiAgICAgICAgICAg
ICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAogICAgICAgICAgICAgKEdTaWduYWxG
bGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAogICAgICAgICAgICAg
R19TVFJVQ1RfT0ZGU0VUIChXZWJLaXRXZWJWaWV3Q2xhc3MsIG5hdmlnYXRpb25fcmVxdWVzdGVk
KSwKICAgICAgICAgICAgIE5VTEwsCiAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgd2Vi
a2l0X21hcnNoYWxfSU5UX19PQkpFQ1RfT0JKRUNULAotICAgICAgICAgICAgR19UWVBFX0lOVCwg
MiwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX0lOVF9fUE9JTlRFUl9PQkpFQ1RfT0JKRUNU
LAorICAgICAgICAgICAgR19UWVBFX0lOVCwgMywKKyAgICAgICAgICAgIEdfVFlQRV9QT0lOVEVS
LAogICAgICAgICAgICAgR19UWVBFX09CSkVDVCwKICAgICAgICAgICAgIEdfVFlQRV9PQkpFQ1Qp
OwogCkBAIC0zOTksNyArNDIzLDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNz
X2luaXQoVwogICAgICAqIEBjb250ZXh0OiB0aGUgI0pTR2xvYmFsQ29udGV4dFJlZiBob2xkaW5n
IHRoZSBnbG9iYWwgb2JqZWN0IGFuZCBvdGhlcgogICAgICAqIGV4ZWN1dGlvbiBzdGF0ZTsgZXF1
aXZhbGVudCB0byB0aGUgcmV0dXJuIHZhbHVlIG9mCiAgICAgICogd2Via2l0X3dlYl9mcmFtZV9n
ZXRfZ2xvYmFsX2NvbnRleHQoQGZyYW1lKQotICAgICAqCiAgICAgICogQHdpbmRvd19vYmplY3Q6
IHRoZSAjSlNPYmplY3RSZWYgcmVwcmVzZW50aW5nIHRoZSBmcmFtZSdzIEphdmFTY3JpcHQKICAg
ICAgKiB3aW5kb3cgb2JqZWN0CiAgICAgICoKSW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJr
aXR3ZWJ2aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZp
ZXcuaAkocmV2aXNpb24gMjgzNzgpCisrKyBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmll
dy5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSwxMiBAQCB0eXBlZGVmIGVudW0gewogfSBX
ZWJLaXROYXZpZ2F0aW9uUmVzcG9uc2U7CiAKIAorLy8gVGhlc2UgYXJlIHRoZSBrZXlzIGZvciB0
aGUgR0hhc2hUYWJsZSBwYXNzZWQgZHVyaW5nIGEgbmF2aWdhdGlvbl9yZXF1ZXN0ZWQgc2lnbmFs
LgorI2RlZmluZSBXRUJfQUNUSU9OX0JVVFRPTl9LRVkgICAgICAgICAgIldlYkFjdGlvbkJ1dHRv
bktleSIKKyNkZWZpbmUgV0VCX0FDVElPTl9NT0RJRklFUl9GTEFHU19LRVkgICJXZWJBY3Rpb25N
b2RpZmllckZsYWdzS2V5IgorI2RlZmluZSBXRUJfQUNUSU9OX05BVklHQVRJT05fVFlQRV9LRVkg
IldlYkFjdGlvbk5hdmlnYXRpb25UeXBlS2V5IgorI2RlZmluZSBXRUJfQUNUSU9OX09SSUdJTkFM
X1VSTF9LRVkgICAgIldlYkFjdGlvbk9yaWdpbmFsVVJMS2V5IgorCiAKIHN0cnVjdCBfV2ViS2l0
V2ViVmlldyB7CiAgICAgR3RrQ29udGFpbmVyIHBhcmVudDsKQEAgLTcwLDcgKzc2LDcgQEAgc3Ry
dWN0IF9XZWJLaXRXZWJWaWV3Q2xhc3MgewogICAgIC8qCiAgICAgICogVE9ETzogRklYTUU6IENy
ZWF0ZSBzb21ldGhpbmcgbGlrZSBXZWJQb2xpY3lEZWNpc2lvbkxpc3RlbmVyX1Byb3RvY29sIGlu
c3RlYWQKICAgICAgKi8KLSAgICBXZWJLaXROYXZpZ2F0aW9uUmVzcG9uc2UgKCpuYXZpZ2F0aW9u
X3JlcXVlc3RlZCkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBXZWJLaXRXZWJGcmFtZSogZnJh
bWUsIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KTsKKyAgICBXZWJLaXROYXZpZ2F0aW9u
UmVzcG9uc2UgKCpuYXZpZ2F0aW9uX3JlcXVlc3RlZCkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3
LCBHSGFzaFRhYmxlKiBhY3Rpb25faW5mb3JtYXRpb24sIFdlYktpdFdlYkZyYW1lKiBmcmFtZSwg
V2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpOwogCiAgICAgdm9pZCAoKndpbmRvd19vYmpl
Y3RfY2xlYXJlZCkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBXZWJLaXRXZWJGcmFtZSogZnJh
bWUsIEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB3aW5kb3dfb2JqZWN0
KTsKICAgICBnY2hhciogICAoKmNob29zZV9maWxlKSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcs
IFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG9sZF9maWxlKTsKSW5kZXg6IFdl
YktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI4NDM2KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMDctMTItMDUgIE5pZ2VsIFRhbyAgPG5pZ2VsdGFvQGdub21l
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
dHViIGNvZGUgZm9yIGhvdyB0byByZWNvZ25pemUgY29udHJvbC1jbGlja3MgYW5kIG1pZGRsZS1j
bGlja3Mgb24KKyAgICAgICAgYW5jaG9ycyAod2hpY2ggdHJhZGl0aW9uYWxseSBtZWFuICJvcGVu
IGluIGEgbmV3IHRhYiIpLgorCisgICAgICAgIFdoaXRlc3BhY2UgZml4IGluIGNyZWF0ZV9zdGF0
dXNiYXIuCisKKyAgICAgICAgKiBHdGtMYXVuY2hlci9tYWluLmM6CisgICAgICAgIChuYXZpZ2F0
aW9uX3JlcXVlc3RlZF9jYik6CisgICAgICAgIChjcmVhdGVfYnJvd3Nlcik6CisgICAgICAgIChj
cmVhdGVfc3RhdHVzYmFyKToKKwogMjAwNy0xMi0wNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJz
Y2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBJV2ViU2NyaXB0U2NvcGUgaW5jbHVkZS4K
SW5kZXg6IFdlYktpdFRvb2xzL0d0a0xhdW5jaGVyL21haW4uYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXRUb29scy9HdGtMYXVuY2hlci9tYWluLmMJKHJldmlzaW9uIDI4Mzc4KQorKysgV2ViS2l0VG9v
bHMvR3RrTGF1bmNoZXIvbWFpbi5jCSh3b3JraW5nIGNvcHkpCkBAIC04Miw2ICs4MiwzMSBAQCBw
cm9ncmVzc19jaGFuZ2VfY2IgKFdlYktpdFdlYlZpZXcqIHBhZ2UsCiAgICAgdXBkYXRlX3RpdGxl
IChHVEtfV0lORE9XIChtYWluX3dpbmRvdykpOwogfQogCitzdGF0aWMgV2ViS2l0TmF2aWdhdGlv
blJlc3BvbnNlCituYXZpZ2F0aW9uX3JlcXVlc3RlZF9jYiAoV2ViS2l0V2ViVmlldyogcGFnZSwg
R0hhc2hUYWJsZSogYWN0aW9uX2luZm9ybWF0aW9uLCBXZWJLaXRXZWJGcmFtZSogZnJhbWUsIFdl
YktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIC8vIEkgZG9uJ3Qgc3VnZ2VzdCB0
aGF0IHlvdSAodGhlIHJldmlld2VyLCBhbHA/PywgYmRhc2g/PykgY29tbWl0IHRoaXMKKyAgICAv
LyBpbXBsZW1lbnRhdGlvbiBvZiBuYXZpZ2F0aW9uX3JlcXVlc3RlZF9jYiwgYnV0IGl0J3MgaGVy
ZSBpbiBjYXNlIHlvdQorICAgIC8vIHdhbnQgdG8gdGVzdCB0aGF0IHRoZSBwYXRjaCB3b3Jrcy4K
KyAgICAvLyBJZiB5b3UgZG9uJ3QgY29tbWl0IHRoaXMsIHRoZW4geW91IHdvdWxkbid0IHdhbnQg
dG8gY29tbWl0IHRoZQorICAgIC8vIFdlYktpdFRvb2xzL0NoYW5nZUxvZyBkaWZmIGVpdGhlci4K
KworICAgIEdWYWx1ZSogYnV0dG9uID0gKEdWYWx1ZSopIGdfaGFzaF90YWJsZV9sb29rdXAgKGFj
dGlvbl9pbmZvcm1hdGlvbiwgV0VCX0FDVElPTl9CVVRUT05fS0VZKTsKKyAgICBnYm9vbGVhbiBt
aWRkbGVfbW91c2VfYnV0dG9uID0gYnV0dG9uICYmIEdfVkFMVUVfSE9MRFMoYnV0dG9uLCBHX1RZ
UEVfSU5UKSAmJiAoZ192YWx1ZV9nZXRfaW50IChidXR0b24pID09IDEpOworCisgICAgR1ZhbHVl
KiBtb2RpZmllcl9mbGFncyA9IChHVmFsdWUqKSBnX2hhc2hfdGFibGVfbG9va3VwIChhY3Rpb25f
aW5mb3JtYXRpb24sIFdFQl9BQ1RJT05fTU9ESUZJRVJfRkxBR1NfS0VZKTsKKyAgICBnYm9vbGVh
biBjb250cm9sX2tleSA9IG1vZGlmaWVyX2ZsYWdzICYmIEdfVkFMVUVfSE9MRFMobW9kaWZpZXJf
ZmxhZ3MsIEdfVFlQRV9JTlQpICYmIChnX3ZhbHVlX2dldF9pbnQgKG1vZGlmaWVyX2ZsYWdzKSAm
IEdES19DT05UUk9MX01BU0spOworCisgICAgaWYgKG1pZGRsZV9tb3VzZV9idXR0b24gfHwgY29u
dHJvbF9rZXkpIHsKKyAgICAgICAgR1ZhbHVlKiBvcmlnaW5hbF91cmwgPSAoR1ZhbHVlKikgZ19o
YXNoX3RhYmxlX2xvb2t1cCAoYWN0aW9uX2luZm9ybWF0aW9uLCBXRUJfQUNUSU9OX09SSUdJTkFM
X1VSTF9LRVkpOworICAgICAgICBpZiAob3JpZ2luYWxfdXJsICYmIEdfVkFMVUVfSE9MRFMob3Jp
Z2luYWxfdXJsLCBHX1RZUEVfU1RSSU5HKSkgeworICAgICAgICAgICAgZ19wcmludCAoIlRPRE8g
LSBvcGVuIGluIGEgbmV3IHRhYjogJXNcbiIsIGdfdmFsdWVfZ2V0X3N0cmluZyAob3JpZ2luYWxf
dXJsKSk7CisgICAgICAgICAgICByZXR1cm4gV0VCS0lUX05BVklHQVRJT05fUkVTUE9OU0VfSUdO
T1JFOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBXRUJLSVRfTkFWSUdBVElPTl9SRVNQ
T05TRV9BQ0NFUFQ7Cit9CisKIHN0YXRpYyB2b2lkCiBkZXN0cm95X2NiIChHdGtXaWRnZXQqIHdp
ZGdldCwgZ3BvaW50ZXIgZGF0YSkKIHsKQEAgLTExMiw2ICsxMzcsNyBAQCBjcmVhdGVfYnJvd3Nl
ciAoKQogICAgIGdfc2lnbmFsX2Nvbm5lY3QgKEdfT0JKRUNUICh3ZWJfdmlldyksICJ0aXRsZS1j
aGFuZ2VkIiwgR19DQUxMQkFDSyAodGl0bGVfY2hhbmdlX2NiKSwgd2ViX3ZpZXcpOwogICAgIGdf
c2lnbmFsX2Nvbm5lY3QgKEdfT0JKRUNUICh3ZWJfdmlldyksICJsb2FkLXByb2dyZXNzLWNoYW5n
ZWQiLCBHX0NBTExCQUNLIChwcm9ncmVzc19jaGFuZ2VfY2IpLCB3ZWJfdmlldyk7CiAgICAgZ19z
aWduYWxfY29ubmVjdCAoR19PQkpFQ1QgKHdlYl92aWV3KSwgImhvdmVyaW5nLW92ZXItbGluayIs
IEdfQ0FMTEJBQ0sgKGxpbmtfaG92ZXJfY2IpLCB3ZWJfdmlldyk7CisgICAgZ19zaWduYWxfY29u
bmVjdF9hZnRlciAoR19PQkpFQ1QgKHdlYl92aWV3KSwgIm5hdmlnYXRpb24tcmVxdWVzdGVkIiwg
R19DQUxMQkFDSyAobmF2aWdhdGlvbl9yZXF1ZXN0ZWRfY2IpLCB3ZWJfdmlldyk7CiAKICAgICBy
ZXR1cm4gc2Nyb2xsZWRfd2luZG93OwogfQpAQCAtMTIyLDcgKzE0OCw3IEBAIGNyZWF0ZV9zdGF0
dXNiYXIgKCkKICAgICBtYWluX3N0YXR1c2JhciA9IEdUS19TVEFUVVNCQVIgKGd0a19zdGF0dXNi
YXJfbmV3ICgpKTsKICAgICBzdGF0dXNfY29udGV4dF9pZCA9IGd0a19zdGF0dXNiYXJfZ2V0X2Nv
bnRleHRfaWQgKG1haW5fc3RhdHVzYmFyLCAiTGluayBIb3ZlciIpOwogCi0gICAgcmV0dXJuIChH
dGtXaWRnZXQqKW1haW5fc3RhdHVzYmFyOworICAgIHJldHVybiAoR3RrV2lkZ2V0KikgbWFpbl9z
dGF0dXNiYXI7CiB9CiAKIHN0YXRpYyBHdGtXaWRnZXQqCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17840</attachid>
            <date>2007-12-10 23:24:36 -0800</date>
            <delta_ts>2007-12-11 00:11:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>webkit-gtk-navigation-action-context.patch</filename>
            <type>text/plain</type>
            <size>12910</size>
            <attacher name="Nigel Tao">nigel.tao.gnome</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyODYwOSkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDctMTItMDUgIE5pZ2VsIFRhbyAgPG5pZ2VsdGFv
QGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5MgorICAgICAg
ICBbR1RLXSBNaWRkbGUtbW91c2UgY2xpY2sgc2hvdWxkIGFsbG93IG9wZW5pbmcgYSBVUkwgaW4g
YSBuZXcgdGFiCisKKyAgICAgICAgVGhlIG5hdmlnYXRpb24tcmVxdWVzdGVkIHNpZ25hbCBvbiBh
IFdlYktpdFdlYlZpZXcgbm93IHByb3ZpZGVzIG1vcmUKKyAgICAgICAgY29udGV4dCAoaW4gdGhl
IGZvcm0gb2YgYSBHSGFzaFRhYmxlKSwgc3VjaCBhcyB3aGljaCBtb3VzZSBidXR0b24gKGlmCisg
ICAgICAgIGFueSkgdHJpZ2dlcmVkIHRoZSBuYXZpZ2F0aW9uIGFjdGlvbiwgYW5kIGtleWJvYXJk
IHN0YXRlIChTaGlmdCwKKyAgICAgICAgQ29udHJvbCBhbmQgQWx0KS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
Y3JlYXRlR1ZhbHVlRnJvbUludCk6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZUdWYWx1ZUZyb21T
dHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVIYXNoVGFibGVGcm9tTmF2aWdhdGlvbkFj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OmNsZWFudXBOYXZpZ2F0aW9uQWN0aW9uSGFzaFRhYmxl
KToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogV2ViVmlldy93ZWJraXQtbWFyc2hh
bC5saXN0OgorICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICog
V2ViVmlldy93ZWJraXR3ZWJ2aWV3Lmg6CisKIDIwMDctMTItMDggIEx1Y2EgQnJ1bm8gIDxsZXRo
YWxtYW44OEBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2VyLgpJbmRl
eDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHAJKHJldmlzaW9uIDI4NjA5KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIk1J
TUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdC5oIgpAQCAtMTQ2LDYgKzE0Nyw1NiBAQCBzdGF0aWMgU3RyaW5nIGNvbXBv
c2VVc2VyQWdlbnQoKQogICAgIHJldHVybiB1YTsKIH0KIAorc3RhdGljIEdWYWx1ZSogY3JlYXRl
R1ZhbHVlRnJvbUludChjb25zdCBpbnQgaSkKK3sKKyAgICBHVmFsdWUqIHZhbHVlID0gZ19uZXcw
KEdWYWx1ZSwgMSk7CisgICAgZ192YWx1ZV9pbml0KHZhbHVlLCBHX1RZUEVfSU5UKTsKKyAgICBn
X3ZhbHVlX3NldF9pbnQodmFsdWUsIGkpOworICAgIHJldHVybiB2YWx1ZTsKK30KKworc3RhdGlj
IEdWYWx1ZSogY3JlYXRlR1ZhbHVlRnJvbVN0cmluZyhjb25zdCBnY2hhciogcykKK3sKKyAgICBH
VmFsdWUqIHZhbHVlID0gZ19uZXcwKEdWYWx1ZSwgMSk7CisgICAgZ192YWx1ZV9pbml0KHZhbHVl
LCBHX1RZUEVfU1RSSU5HKTsKKyAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHMpOworICAg
IHJldHVybiB2YWx1ZTsKK30KKworc3RhdGljIEdIYXNoVGFibGUqIGNyZWF0ZUhhc2hUYWJsZUZy
b21OYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbikKK3sKKyAg
ICBHSGFzaFRhYmxlKiBoYXNoVGFibGUgPSBnX2hhc2hfdGFibGVfbmV3KGdfc3RyX2hhc2gsIGdf
c3RyX2VxdWFsKTsKKyAgICBjb25zdCBFdmVudCogZXZlbnQgPSBhY3Rpb24uZXZlbnQoKTsKKyAg
ICBpZiAoZXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7CisgICAgICAgIGNvbnN0IE1v
dXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBNb3VzZUV2ZW50Kj4oZXZl
bnQpOworICAgICAgICBnX2hhc2hfdGFibGVfaW5zZXJ0KGhhc2hUYWJsZSwgY29uc3RfY2FzdDxn
Y2hhcio+KFdFQl9BQ1RJT05fQlVUVE9OX0tFWSksIGNyZWF0ZUdWYWx1ZUZyb21JbnQobW91c2VF
dmVudC0+YnV0dG9uKCkpKTsKKyAgICB9CisgICAgaWYgKGNvbnN0IFVJRXZlbnRXaXRoS2V5U3Rh
dGUqIGtleVN0YXRlRXZlbnQgPSBmaW5kRXZlbnRXaXRoS2V5U3RhdGUoY29uc3RfY2FzdDxFdmVu
dCo+KGV2ZW50KSkpIHsKKyAgICAgICAgaW50IG1vZGlmaWVyRmxhZ3MgPSAwOworICAgICAgICBp
ZiAoa2V5U3RhdGVFdmVudC0+c2hpZnRLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gR0RLX1NISUZUX01BU0s7CisgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5jdHJsS2V5KCkp
CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IEdES19DT05UUk9MX01BU0s7CisgICAgICAg
IGlmIChrZXlTdGF0ZUV2ZW50LT5hbHRLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gR0RLX01PRDFfTUFTSzsKKyAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPm1ldGFLZXkoKSkK
KyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gR0RLX01PRDJfTUFTSzsKKyAgICAgICAgZ19o
YXNoX3RhYmxlX2luc2VydChoYXNoVGFibGUsIGNvbnN0X2Nhc3Q8Z2NoYXIqPihXRUJfQUNUSU9O
X01PRElGSUVSX0ZMQUdTX0tFWSksIGNyZWF0ZUdWYWx1ZUZyb21JbnQobW9kaWZpZXJGbGFncykp
OworICAgIH0KKyAgICBnX2hhc2hfdGFibGVfaW5zZXJ0KGhhc2hUYWJsZSwgY29uc3RfY2FzdDxn
Y2hhcio+KFdFQl9BQ1RJT05fTkFWSUdBVElPTl9UWVBFX0tFWSksIGNyZWF0ZUdWYWx1ZUZyb21J
bnQoYWN0aW9uLnR5cGUoKSkpOworICAgIGdfaGFzaF90YWJsZV9pbnNlcnQoaGFzaFRhYmxlLCBj
b25zdF9jYXN0PGdjaGFyKj4oV0VCX0FDVElPTl9PUklHSU5BTF9VUkxfS0VZKSwgY3JlYXRlR1Zh
bHVlRnJvbVN0cmluZyhhY3Rpb24uVVJMKCkudXJsKCkudXRmOCgpLmRhdGEoKSkpOworICAgIHJl
dHVybiBoYXNoVGFibGU7Cit9CisKK3N0YXRpYyB2b2lkIGNsZWFudXBOYXZpZ2F0aW9uQWN0aW9u
SGFzaFRhYmxlKGdwb2ludGVyLCBncG9pbnRlciB2YWx1ZSwgZ3BvaW50ZXIpCit7CisgICAgLy8g
VGhlIGtleXMgYXJlIHN0YXRpYyBzdHJpbmdzLCBzbyB3ZSBkbyBub3QgZGUtYWxsb2NhdGUgdGhl
bS4gIFdlIG9ubHkKKyAgICAvLyBjbGVhbiB1cCB0aGUgdmFsdWVzLgorICAgIEdWYWx1ZSogdiA9
IHN0YXRpY19jYXN0PEdWYWx1ZSo+KHZhbHVlKTsKKyAgICBnX3ZhbHVlX3Vuc2V0KHYpOworICAg
IGdfZnJlZSh2KTsKK30KKwogU3RyaW5nIEZyYW1lTG9hZGVyQ2xpZW50Ojp1c2VyQWdlbnQoY29u
c3QgS1VSTCYpCiB7CiAgICAgaWYgKG1fdXNlckFnZW50LmlzRW1wdHkoKSkKQEAgLTI1NCwxMyAr
MzA1LDE2IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG8KICAgICBp
ZiAoIXBvbGljeUZ1bmN0aW9uKQogICAgICAgICByZXR1cm47CiAKKyAgICBHSGFzaFRhYmxlKiBh
Y3Rpb25JbmZvcm1hdGlvbiA9IGNyZWF0ZUhhc2hUYWJsZUZyb21OYXZpZ2F0aW9uQWN0aW9uKGFj
dGlvbik7CiAgICAgV2ViS2l0V2ViVmlldyogcGFnZSA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFt
ZSk7CiAgICAgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QgPSB3ZWJraXRfbmV0d29ya19y
ZXF1ZXN0X25ldyhyZXNvdXJjZVJlcXVlc3QudXJsKCkudXJsKCkudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgV2ViS2l0TmF2aWdhdGlvblJlc3BvbnNlIHJlc3BvbnNlOworICAgIFdlYktpdE5hdmlnYXRp
b25SZXNwb25zZSByZXNwb25zZSA9IFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0FDQ0VQVDsK
IAotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShwYWdlLCAibmF2aWdhdGlvbi1yZXF1ZXN0ZWQi
LCBtX2ZyYW1lLCByZXF1ZXN0LCAmcmVzcG9uc2UpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFt
ZShwYWdlLCAibmF2aWdhdGlvbi1yZXF1ZXN0ZWQiLCBhY3Rpb25JbmZvcm1hdGlvbiwgbV9mcmFt
ZSwgcmVxdWVzdCwgJnJlc3BvbnNlKTsKIAogICAgIGdfb2JqZWN0X3VucmVmKHJlcXVlc3QpOwor
ICAgIGdfaGFzaF90YWJsZV9mb3JlYWNoKGFjdGlvbkluZm9ybWF0aW9uLCBjbGVhbnVwTmF2aWdh
dGlvbkFjdGlvbkhhc2hUYWJsZSwgTlVMTCk7CisgICAgZ19oYXNoX3RhYmxlX2Rlc3Ryb3koYWN0
aW9uSW5mb3JtYXRpb24pOwogCiAgICAgaWYgKHJlc3BvbnNlID09IFdFQktJVF9OQVZJR0FUSU9O
X1JFU1BPTlNFX0lHTk9SRSkgewogICAgICAgICAoY29yZShtX2ZyYW1lKS0+bG9hZGVyKCktPipw
b2xpY3lGdW5jdGlvbikoUG9saWN5SWdub3JlKTsKSW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93
ZWJraXQtbWFyc2hhbC5saXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViVmlldy93ZWJr
aXQtbWFyc2hhbC5saXN0CShyZXZpc2lvbiAyODYwOSkKKysrIFdlYktpdC9ndGsvV2ViVmlldy93
ZWJraXQtbWFyc2hhbC5saXN0CSh3b3JraW5nIGNvcHkpCkBAIC02LDQgKzYsNCBAQCBCT09MRUFO
OlNUUklORyxJTlQsU1RSSU5HCiBCT09MRUFOOk9CSkVDVCxTVFJJTkcKIEJPT0xFQU46T0JKRUNU
LFNUUklORyxCT09MRUFOCiBCT09MRUFOOk9CSkVDVCxTVFJJTkcsU1RSSU5HLFNUUklORwotSU5U
Ok9CSkVDVCxPQkpFQ1QKK0lOVDpQT0lOVEVSLE9CSkVDVCxPQkpFQ1QKSW5kZXg6IFdlYktpdC9n
dGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dl
YlZpZXcvd2Via2l0d2Vidmlldy5jcHAJKHJldmlzaW9uIDI4NjA5KQorKysgV2ViS2l0L2d0ay9X
ZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzAsOSArMjcwLDgg
QEAgc3RhdGljIFdlYktpdFdlYlZpZXcqIHdlYmtpdF93ZWJfdmlld19yZQogICAgIHJldHVybiAw
OwogfQogCi1zdGF0aWMgV2ViS2l0TmF2aWdhdGlvblJlc3BvbnNlIHdlYmtpdF93ZWJfdmlld19y
ZWFsX25hdmlnYXRpb25fcmVxdWVzdGVkKFdlYktpdFdlYlZpZXcqLCBXZWJLaXRXZWJGcmFtZSog
ZnJhbWUsIFdlYktpdE5ldHdvcmtSZXF1ZXN0KikKK3N0YXRpYyBXZWJLaXROYXZpZ2F0aW9uUmVz
cG9uc2Ugd2Via2l0X3dlYl92aWV3X3JlYWxfbmF2aWdhdGlvbl9yZXF1ZXN0ZWQoV2ViS2l0V2Vi
VmlldyosIEdIYXNoVGFibGUqLCBXZWJLaXRXZWJGcmFtZSosIFdlYktpdE5ldHdvcmtSZXF1ZXN0
KikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBXRUJLSVRfTkFWSUdBVElP
Tl9SRVNQT05TRV9BQ0NFUFQ7CiB9CiAKQEAgLTQzNCwxNCArNDMzLDM5IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFcKICAgICAgKiBTaWduYWxzCiAgICAgICovCiAK
KyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJWaWV3OjpuYXZpZ2F0aW9uLXJlcXVlc3RlZDoKKyAg
ICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVk
CisgICAgICogQGFjdGlvbkluZm9ybWF0aW9uOiBhIEdIYXNoVGFibGUqIG9mIHN0cmluZy0+R1Zh
bHVlKiBrZXktdmFsdWUgcGFpcnMgdGhhdAorICAgICAqIHByb3ZpZGUgdGhlIGNvbnRleHQgZm9y
IHRoaXMgbmF2aWdhdGlvbiByZXF1ZXN0LCBzdWNoIGFzIG1vdXNlIGJ1dHRvbiwKKyAgICAgKiBh
bmQga2V5Ym9hcmQgc3RhdGUgKFNoaWZ0LCBDb250cm9sLCBBbHQpLgorICAgICAqIEBmcmFtZTog
dGhlICNXZWJLaXRXZWJGcmFtZSB0byBkbyB0aGUgbmF2aWdhdGlvbiBhY3Rpb24KKyAgICAgKiBA
bmV0d29ya1JlcXVlc3Q6IHRoZSBXZWJLaXROZXR3b3JrUmVxdWVzdAorICAgICAqIEByZXR1cm46
IGEgV2ViS2l0TmF2aWdhdGlvblJlc3BvbnNlLCBzdWNoIGFzCisgICAgICogV0VCS0lUX05BVklH
QVRJT05fUkVTUE9OU0VfQUNDRVBULgorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIGEgI1dl
YktpdFdlYkZyYW1lIG9mIHRoaXMgI1dlYktpdFdlYlZpZXcgaXMgbW92aW5nIHRvIGEgbmV3Cisg
ICAgICogbG9jYXRpb24sIHN1Y2ggYXMgd2hlbiBhIEhUTUwgYW5jaG9yIGlzIGNsaWNrZWQuICBU
aGUgYWN0aW9uSW5mb3JtYXRpb24KKyAgICAgKiBHSGFzaFRhYmxlIHByb3ZpZGVzIGNvbnRleHQg
KHN1Y2ggYXMsIHdhcyB0aGUgYW5jaG9yIGNsaWNrZWQgb24gYnkgdGhlCisgICAgICogbWlkZGxl
IG1vdXNlIGJ1dHRvbiksIGFuZCB0aGUgYXBwbGljYXRpb24gY2FuIHJldHVybgorICAgICAqIFdF
QktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0lHTk9SRSAodG8gaW5zdHJ1Y3QgdGhpcyAjV2ViS2l0
V2ViVmlldyB0byBub3QKKyAgICAgKiBvcGVuIHRoZSBVUkwgaW4gdGhpcyAjV2ViS2l0V2ViVmll
dykgaWYgdGhlIGFwcGxpY2F0aW9uIHdvdWxkIHJhdGhlciBvcGVuCisgICAgICogdGhlIFVSTCBp
biBhIG5ldyB0YWIsIGZvciBleGFtcGxlLgorICAgICAqCisgICAgICogTm90ZSB0aGF0IHlvdSBz
aG91bGQgY29ubmVjdCB2aWEgZ19zaWduYWxfY29ubmVjdF9hZnRlciwgbm90CisgICAgICogZ19z
aWduYWxfY29ubmVjdCwgb3IgZWxzZSB0aGUgcmV0dXJuIHZhbHVlIGZvciB5b3VyIHNpZ25hbCBo
YW5kbGVyIHdpbGwKKyAgICAgKiBiZSBvdmVyLXJpZGRlbiBieSB0aGUgZGVmYXVsdCBvbmUgKHdo
aWNoIGFsd2F5cyByZXR1cm5zCisgICAgICogV0VCS0lUX05BVklHQVRJT05fUkVTUE9OU0VfQUND
RVBUKS4KKyAgICAgKi8KICAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tOQVZJR0FUSU9OX1JF
UVVFU1RFRF0gPSBnX3NpZ25hbF9uZXcoIm5hdmlnYXRpb24tcmVxdWVzdGVkIiwKICAgICAgICAg
ICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCiAgICAgICAgICAgICAoR1NpZ25h
bEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCiAgICAgICAgICAg
ICBHX1NUUlVDVF9PRkZTRVQgKFdlYktpdFdlYlZpZXdDbGFzcywgbmF2aWdhdGlvbl9yZXF1ZXN0
ZWQpLAogICAgICAgICAgICAgTlVMTCwKICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICB3
ZWJraXRfbWFyc2hhbF9JTlRfX09CSkVDVF9PQkpFQ1QsCi0gICAgICAgICAgICBHX1RZUEVfSU5U
LCAyLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfSU5UX19QT0lOVEVSX09CSkVDVF9PQkpF
Q1QsCisgICAgICAgICAgICBHX1RZUEVfSU5ULCAzLAorICAgICAgICAgICAgR19UWVBFX1BPSU5U
RVIsCiAgICAgICAgICAgICBHX1RZUEVfT0JKRUNULAogICAgICAgICAgICAgR19UWVBFX09CSkVD
VCk7CiAKQEAgLTQ1Miw3ICs0NzYsNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xh
c3NfaW5pdChXCiAgICAgICogQGNvbnRleHQ6IHRoZSAjSlNHbG9iYWxDb250ZXh0UmVmIGhvbGRp
bmcgdGhlIGdsb2JhbCBvYmplY3QgYW5kIG90aGVyCiAgICAgICogZXhlY3V0aW9uIHN0YXRlOyBl
cXVpdmFsZW50IHRvIHRoZSByZXR1cm4gdmFsdWUgb2YKICAgICAgKiB3ZWJraXRfd2ViX2ZyYW1l
X2dldF9nbG9iYWxfY29udGV4dChAZnJhbWUpCi0gICAgICoKICAgICAgKiBAd2luZG93X29iamVj
dDogdGhlICNKU09iamVjdFJlZiByZXByZXNlbnRpbmcgdGhlIGZyYW1lJ3MgSmF2YVNjcmlwdAog
ICAgICAqIHdpbmRvdyBvYmplY3QKICAgICAgKgpJbmRleDogV2ViS2l0L2d0ay9XZWJWaWV3L3dl
YmtpdHdlYnZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vi
dmlldy5oCShyZXZpc2lvbiAyODYwOSkKKysrIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2
aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDEyIEBAIHR5cGVkZWYgZW51bSB7CiB9
IFdlYktpdE5hdmlnYXRpb25SZXNwb25zZTsKIAogCisvLyBUaGVzZSBhcmUgdGhlIGtleXMgZm9y
IHRoZSBHSGFzaFRhYmxlIHBhc3NlZCBkdXJpbmcgYSBuYXZpZ2F0aW9uX3JlcXVlc3RlZCBzaWdu
YWwuCisjZGVmaW5lIFdFQl9BQ1RJT05fQlVUVE9OX0tFWSAgICAgICAgICAiV2ViQWN0aW9uQnV0
dG9uS2V5IgorI2RlZmluZSBXRUJfQUNUSU9OX01PRElGSUVSX0ZMQUdTX0tFWSAgIldlYkFjdGlv
bk1vZGlmaWVyRmxhZ3NLZXkiCisjZGVmaW5lIFdFQl9BQ1RJT05fTkFWSUdBVElPTl9UWVBFX0tF
WSAiV2ViQWN0aW9uTmF2aWdhdGlvblR5cGVLZXkiCisjZGVmaW5lIFdFQl9BQ1RJT05fT1JJR0lO
QUxfVVJMX0tFWSAgICAiV2ViQWN0aW9uT3JpZ2luYWxVUkxLZXkiCisKIAogc3RydWN0IF9XZWJL
aXRXZWJWaWV3IHsKICAgICBHdGtDb250YWluZXIgcGFyZW50OwpAQCAtNjEsNyArNjcsNyBAQCBz
dHJ1Y3QgX1dlYktpdFdlYlZpZXdDbGFzcyB7CiAgICAgLyoKICAgICAgKiBUT0RPOiBGSVhNRTog
Q3JlYXRlIHNvbWV0aGluZyBsaWtlIFdlYlBvbGljeURlY2lzaW9uTGlzdGVuZXJfUHJvdG9jb2wg
aW5zdGVhZAogICAgICAqLwotICAgIFdlYktpdE5hdmlnYXRpb25SZXNwb25zZSAoKm5hdmlnYXRp
b25fcmVxdWVzdGVkKSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIFdlYktpdFdlYkZyYW1lKiBm
cmFtZSwgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpOworICAgIFdlYktpdE5hdmlnYXRp
b25SZXNwb25zZSAoKm5hdmlnYXRpb25fcmVxdWVzdGVkKSAoV2ViS2l0V2ViVmlldyogd2ViX3Zp
ZXcsIEdIYXNoVGFibGUqIGFjdGlvbl9pbmZvcm1hdGlvbiwgV2ViS2l0V2ViRnJhbWUqIGZyYW1l
LCBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCk7CiAKICAgICB2b2lkICgqd2luZG93X29i
amVjdF9jbGVhcmVkKSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIFdlYktpdFdlYkZyYW1lKiBm
cmFtZSwgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHdpbmRvd19vYmpl
Y3QpOwogICAgIGdjaGFyKiAgICgqY2hvb3NlX2ZpbGUpIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmll
dywgV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogb2xkX2ZpbGUpOwpJbmRleDog
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjg2MDkpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNyBAQAorMjAwNy0xMi0wNSAgTmlnZWwgVGFvICA8bmlnZWx0YW9AZ25v
bWUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN0dWIgY29kZSBmb3IgaG93IHRvIHJlY29nbml6ZSBjb250cm9sLWNsaWNrcyBhbmQgbWlkZGxl
LWNsaWNrcyBvbgorICAgICAgICBhbmNob3JzICh3aGljaCB0cmFkaXRpb25hbGx5IG1lYW4gIm9w
ZW4gaW4gYSBuZXcgdGFiIikuCisKKyAgICAgICAgV2hpdGVzcGFjZSBmaXggaW4gY3JlYXRlX3N0
YXR1c2Jhci4KKworICAgICAgICAqIEd0a0xhdW5jaGVyL21haW4uYzoKKyAgICAgICAgKG5hdmln
YXRpb25fcmVxdWVzdGVkX2NiKToKKyAgICAgICAgKGNyZWF0ZV9icm93c2VyKToKKyAgICAgICAg
KGNyZWF0ZV9zdGF0dXNiYXIpOgorCiAyMDA3LTEyLTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXJzdGFtcGVkIGJ5IFNhbSBXZWluaWcKSW5kZXg6
IFdlYktpdFRvb2xzL0d0a0xhdW5jaGVyL21haW4uYwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29s
cy9HdGtMYXVuY2hlci9tYWluLmMJKHJldmlzaW9uIDI4NjA5KQorKysgV2ViS2l0VG9vbHMvR3Rr
TGF1bmNoZXIvbWFpbi5jCSh3b3JraW5nIGNvcHkpCkBAIC04Miw2ICs4MiwzMSBAQCBwcm9ncmVz
c19jaGFuZ2VfY2IgKFdlYktpdFdlYlZpZXcqIHBhZ2UsCiAgICAgdXBkYXRlX3RpdGxlIChHVEtf
V0lORE9XIChtYWluX3dpbmRvdykpOwogfQogCitzdGF0aWMgV2ViS2l0TmF2aWdhdGlvblJlc3Bv
bnNlCituYXZpZ2F0aW9uX3JlcXVlc3RlZF9jYiAoV2ViS2l0V2ViVmlldyogcGFnZSwgR0hhc2hU
YWJsZSogYWN0aW9uX2luZm9ybWF0aW9uLCBXZWJLaXRXZWJGcmFtZSogZnJhbWUsIFdlYktpdE5l
dHdvcmtSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIC8vIEkgZG9uJ3Qgc3VnZ2VzdCB0aGF0IHlv
dSAodGhlIHJldmlld2VyLCBhbHA/PywgYmRhc2g/PykgY29tbWl0IHRoaXMKKyAgICAvLyBpbXBs
ZW1lbnRhdGlvbiBvZiBuYXZpZ2F0aW9uX3JlcXVlc3RlZF9jYiwgYnV0IGl0J3MgaGVyZSBpbiBj
YXNlIHlvdQorICAgIC8vIHdhbnQgdG8gdGVzdCB0aGF0IHRoZSBwYXRjaCB3b3Jrcy4KKyAgICAv
LyBJZiB5b3UgZG9uJ3QgY29tbWl0IHRoaXMsIHRoZW4geW91IHdvdWxkbid0IHdhbnQgdG8gY29t
bWl0IHRoZQorICAgIC8vIFdlYktpdFRvb2xzL0NoYW5nZUxvZyBkaWZmIGVpdGhlci4KKworICAg
IEdWYWx1ZSogYnV0dG9uID0gKEdWYWx1ZSopIGdfaGFzaF90YWJsZV9sb29rdXAgKGFjdGlvbl9p
bmZvcm1hdGlvbiwgV0VCX0FDVElPTl9CVVRUT05fS0VZKTsKKyAgICBnYm9vbGVhbiBtaWRkbGVf
bW91c2VfYnV0dG9uID0gYnV0dG9uICYmIEdfVkFMVUVfSE9MRFMoYnV0dG9uLCBHX1RZUEVfSU5U
KSAmJiAoZ192YWx1ZV9nZXRfaW50IChidXR0b24pID09IDEpOworCisgICAgR1ZhbHVlKiBtb2Rp
Zmllcl9mbGFncyA9IChHVmFsdWUqKSBnX2hhc2hfdGFibGVfbG9va3VwIChhY3Rpb25faW5mb3Jt
YXRpb24sIFdFQl9BQ1RJT05fTU9ESUZJRVJfRkxBR1NfS0VZKTsKKyAgICBnYm9vbGVhbiBjb250
cm9sX2tleSA9IG1vZGlmaWVyX2ZsYWdzICYmIEdfVkFMVUVfSE9MRFMobW9kaWZpZXJfZmxhZ3Ms
IEdfVFlQRV9JTlQpICYmIChnX3ZhbHVlX2dldF9pbnQgKG1vZGlmaWVyX2ZsYWdzKSAmIEdES19D
T05UUk9MX01BU0spOworCisgICAgaWYgKG1pZGRsZV9tb3VzZV9idXR0b24gfHwgY29udHJvbF9r
ZXkpIHsKKyAgICAgICAgR1ZhbHVlKiBvcmlnaW5hbF91cmwgPSAoR1ZhbHVlKikgZ19oYXNoX3Rh
YmxlX2xvb2t1cCAoYWN0aW9uX2luZm9ybWF0aW9uLCBXRUJfQUNUSU9OX09SSUdJTkFMX1VSTF9L
RVkpOworICAgICAgICBpZiAob3JpZ2luYWxfdXJsICYmIEdfVkFMVUVfSE9MRFMob3JpZ2luYWxf
dXJsLCBHX1RZUEVfU1RSSU5HKSkgeworICAgICAgICAgICAgZ19wcmludCAoIlRPRE8gLSBvcGVu
IGluIGEgbmV3IHRhYjogJXNcbiIsIGdfdmFsdWVfZ2V0X3N0cmluZyAob3JpZ2luYWxfdXJsKSk7
CisgICAgICAgICAgICByZXR1cm4gV0VCS0lUX05BVklHQVRJT05fUkVTUE9OU0VfSUdOT1JFOwor
ICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBXRUJLSVRfTkFWSUdBVElPTl9SRVNQT05TRV9B
Q0NFUFQ7Cit9CisKIHN0YXRpYyB2b2lkCiBkZXN0cm95X2NiIChHdGtXaWRnZXQqIHdpZGdldCwg
Z3BvaW50ZXIgZGF0YSkKIHsKQEAgLTExMiw2ICsxMzcsNyBAQCBjcmVhdGVfYnJvd3NlciAoKQog
ICAgIGdfc2lnbmFsX2Nvbm5lY3QgKEdfT0JKRUNUICh3ZWJfdmlldyksICJ0aXRsZS1jaGFuZ2Vk
IiwgR19DQUxMQkFDSyAodGl0bGVfY2hhbmdlX2NiKSwgd2ViX3ZpZXcpOwogICAgIGdfc2lnbmFs
X2Nvbm5lY3QgKEdfT0JKRUNUICh3ZWJfdmlldyksICJsb2FkLXByb2dyZXNzLWNoYW5nZWQiLCBH
X0NBTExCQUNLIChwcm9ncmVzc19jaGFuZ2VfY2IpLCB3ZWJfdmlldyk7CiAgICAgZ19zaWduYWxf
Y29ubmVjdCAoR19PQkpFQ1QgKHdlYl92aWV3KSwgImhvdmVyaW5nLW92ZXItbGluayIsIEdfQ0FM
TEJBQ0sgKGxpbmtfaG92ZXJfY2IpLCB3ZWJfdmlldyk7CisgICAgZ19zaWduYWxfY29ubmVjdF9h
ZnRlciAoR19PQkpFQ1QgKHdlYl92aWV3KSwgIm5hdmlnYXRpb24tcmVxdWVzdGVkIiwgR19DQUxM
QkFDSyAobmF2aWdhdGlvbl9yZXF1ZXN0ZWRfY2IpLCB3ZWJfdmlldyk7CiAKICAgICByZXR1cm4g
c2Nyb2xsZWRfd2luZG93OwogfQpAQCAtMTIyLDcgKzE0OCw3IEBAIGNyZWF0ZV9zdGF0dXNiYXIg
KCkKICAgICBtYWluX3N0YXR1c2JhciA9IEdUS19TVEFUVVNCQVIgKGd0a19zdGF0dXNiYXJfbmV3
ICgpKTsKICAgICBzdGF0dXNfY29udGV4dF9pZCA9IGd0a19zdGF0dXNiYXJfZ2V0X2NvbnRleHRf
aWQgKG1haW5fc3RhdHVzYmFyLCAiTGluayBIb3ZlciIpOwogCi0gICAgcmV0dXJuIChHdGtXaWRn
ZXQqKW1haW5fc3RhdHVzYmFyOworICAgIHJldHVybiAoR3RrV2lkZ2V0KikgbWFpbl9zdGF0dXNi
YXI7CiB9CiAKIHN0YXRpYyBHdGtXaWRnZXQqCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17841</attachid>
            <date>2007-12-11 00:11:17 -0800</date>
            <delta_ts>2007-12-12 10:28:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>webkit-gtk-navigation-action-context.patch</filename>
            <type>text/plain</type>
            <size>13199</size>
            <attacher name="Nigel Tao">nigel.tao.gnome</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyODYwNSkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDctMTItMDUgIE5pZ2VsIFRhbyAgPG5pZ2VsdGFv
QGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5MgorICAgICAg
ICBbR1RLXSBNaWRkbGUtbW91c2UgY2xpY2sgc2hvdWxkIGFsbG93IG9wZW5pbmcgYSBVUkwgaW4g
YSBuZXcgdGFiCisKKyAgICAgICAgVGhlIG5hdmlnYXRpb24tcmVxdWVzdGVkIHNpZ25hbCBvbiBh
IFdlYktpdFdlYlZpZXcgbm93IHByb3ZpZGVzIG1vcmUKKyAgICAgICAgY29udGV4dCAoaW4gdGhl
IGZvcm0gb2YgYSBHSGFzaFRhYmxlKSwgc3VjaCBhcyB3aGljaCBtb3VzZSBidXR0b24gKGlmCisg
ICAgICAgIGFueSkgdHJpZ2dlcmVkIHRoZSBuYXZpZ2F0aW9uIGFjdGlvbiwgYW5kIGtleWJvYXJk
IHN0YXRlIChTaGlmdCwKKyAgICAgICAgQ29udHJvbCBhbmQgQWx0KS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
Y3JlYXRlR1ZhbHVlRnJvbUludCk6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZUdWYWx1ZUZyb21T
dHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVIYXNoVGFibGVGcm9tTmF2aWdhdGlvbkFj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OmNsZWFudXBOYXZpZ2F0aW9uQWN0aW9uSGFzaFRhYmxl
KToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogV2ViVmlldy93ZWJraXQtbWFyc2hh
bC5saXN0OgorICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICog
V2ViVmlldy93ZWJraXR3ZWJ2aWV3Lmg6CisKIDIwMDctMTItMDggIEx1Y2EgQnJ1bm8gIDxsZXRo
YWxtYW44OEBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2VyLgpJbmRl
eDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHAJKHJldmlzaW9uIDI4NjA1KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIk1J
TUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdC5oIgpAQCAtMTQ2LDYgKzE0Nyw1NiBAQCBzdGF0aWMgU3RyaW5nIGNvbXBv
c2VVc2VyQWdlbnQoKQogICAgIHJldHVybiB1YTsKIH0KIAorc3RhdGljIEdWYWx1ZSogY3JlYXRl
R1ZhbHVlRnJvbUludChjb25zdCBpbnQgaSkKK3sKKyAgICBHVmFsdWUqIHZhbHVlID0gZ19uZXcw
KEdWYWx1ZSwgMSk7CisgICAgZ192YWx1ZV9pbml0KHZhbHVlLCBHX1RZUEVfSU5UKTsKKyAgICBn
X3ZhbHVlX3NldF9pbnQodmFsdWUsIGkpOworICAgIHJldHVybiB2YWx1ZTsKK30KKworc3RhdGlj
IEdWYWx1ZSogY3JlYXRlR1ZhbHVlRnJvbVN0cmluZyhjb25zdCBnY2hhciogcykKK3sKKyAgICBH
VmFsdWUqIHZhbHVlID0gZ19uZXcwKEdWYWx1ZSwgMSk7CisgICAgZ192YWx1ZV9pbml0KHZhbHVl
LCBHX1RZUEVfU1RSSU5HKTsKKyAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHMpOworICAg
IHJldHVybiB2YWx1ZTsKK30KKworc3RhdGljIEdIYXNoVGFibGUqIGNyZWF0ZUhhc2hUYWJsZUZy
b21OYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbikKK3sKKyAg
ICBHSGFzaFRhYmxlKiBoYXNoVGFibGUgPSBnX2hhc2hfdGFibGVfbmV3KGdfc3RyX2hhc2gsIGdf
c3RyX2VxdWFsKTsKKyAgICBjb25zdCBFdmVudCogZXZlbnQgPSBhY3Rpb24uZXZlbnQoKTsKKyAg
ICBpZiAoZXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7CisgICAgICAgIGNvbnN0IE1v
dXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBNb3VzZUV2ZW50Kj4oZXZl
bnQpOworICAgICAgICBnX2hhc2hfdGFibGVfaW5zZXJ0KGhhc2hUYWJsZSwgY29uc3RfY2FzdDxn
Y2hhcio+KFdFQl9BQ1RJT05fQlVUVE9OX0tFWSksIGNyZWF0ZUdWYWx1ZUZyb21JbnQobW91c2VF
dmVudC0+YnV0dG9uKCkpKTsKKyAgICB9CisgICAgaWYgKGNvbnN0IFVJRXZlbnRXaXRoS2V5U3Rh
dGUqIGtleVN0YXRlRXZlbnQgPSBmaW5kRXZlbnRXaXRoS2V5U3RhdGUoY29uc3RfY2FzdDxFdmVu
dCo+KGV2ZW50KSkpIHsKKyAgICAgICAgaW50IG1vZGlmaWVyRmxhZ3MgPSAwOworICAgICAgICBp
ZiAoa2V5U3RhdGVFdmVudC0+c2hpZnRLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gR0RLX1NISUZUX01BU0s7CisgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5jdHJsS2V5KCkp
CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IEdES19DT05UUk9MX01BU0s7CisgICAgICAg
IGlmIChrZXlTdGF0ZUV2ZW50LT5hbHRLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gR0RLX01PRDFfTUFTSzsKKyAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPm1ldGFLZXkoKSkK
KyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gR0RLX01PRDJfTUFTSzsKKyAgICAgICAgZ19o
YXNoX3RhYmxlX2luc2VydChoYXNoVGFibGUsIGNvbnN0X2Nhc3Q8Z2NoYXIqPihXRUJfQUNUSU9O
X01PRElGSUVSX0ZMQUdTX0tFWSksIGNyZWF0ZUdWYWx1ZUZyb21JbnQobW9kaWZpZXJGbGFncykp
OworICAgIH0KKyAgICBnX2hhc2hfdGFibGVfaW5zZXJ0KGhhc2hUYWJsZSwgY29uc3RfY2FzdDxn
Y2hhcio+KFdFQl9BQ1RJT05fTkFWSUdBVElPTl9UWVBFX0tFWSksIGNyZWF0ZUdWYWx1ZUZyb21J
bnQoYWN0aW9uLnR5cGUoKSkpOworICAgIGdfaGFzaF90YWJsZV9pbnNlcnQoaGFzaFRhYmxlLCBj
b25zdF9jYXN0PGdjaGFyKj4oV0VCX0FDVElPTl9PUklHSU5BTF9VUkxfS0VZKSwgY3JlYXRlR1Zh
bHVlRnJvbVN0cmluZyhhY3Rpb24uVVJMKCkudXJsKCkudXRmOCgpLmRhdGEoKSkpOworICAgIHJl
dHVybiBoYXNoVGFibGU7Cit9CisKK3N0YXRpYyB2b2lkIGNsZWFudXBOYXZpZ2F0aW9uQWN0aW9u
SGFzaFRhYmxlKGdwb2ludGVyLCBncG9pbnRlciB2YWx1ZSwgZ3BvaW50ZXIpCit7CisgICAgLy8g
VGhlIGtleXMgYXJlIHN0YXRpYyBzdHJpbmdzLCBzbyB3ZSBkbyBub3QgZGUtYWxsb2NhdGUgdGhl
bS4gIFdlIG9ubHkKKyAgICAvLyBjbGVhbiB1cCB0aGUgdmFsdWVzLgorICAgIEdWYWx1ZSogdiA9
IHN0YXRpY19jYXN0PEdWYWx1ZSo+KHZhbHVlKTsKKyAgICBnX3ZhbHVlX3Vuc2V0KHYpOworICAg
IGdfZnJlZSh2KTsKK30KKwogU3RyaW5nIEZyYW1lTG9hZGVyQ2xpZW50Ojp1c2VyQWdlbnQoY29u
c3QgS1VSTCYpCiB7CiAgICAgaWYgKG1fdXNlckFnZW50LmlzRW1wdHkoKSkKQEAgLTI1NCwxMyAr
MzA1LDE2IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG8KICAgICBp
ZiAoIXBvbGljeUZ1bmN0aW9uKQogICAgICAgICByZXR1cm47CiAKKyAgICBHSGFzaFRhYmxlKiBh
Y3Rpb25JbmZvcm1hdGlvbiA9IGNyZWF0ZUhhc2hUYWJsZUZyb21OYXZpZ2F0aW9uQWN0aW9uKGFj
dGlvbik7CiAgICAgV2ViS2l0V2ViVmlldyogcGFnZSA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFt
ZSk7CiAgICAgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QgPSB3ZWJraXRfbmV0d29ya19y
ZXF1ZXN0X25ldyhyZXNvdXJjZVJlcXVlc3QudXJsKCkudXJsKCkudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgV2ViS2l0TmF2aWdhdGlvblJlc3BvbnNlIHJlc3BvbnNlOworICAgIFdlYktpdE5hdmlnYXRp
b25SZXNwb25zZSByZXNwb25zZSA9IFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0FDQ0VQVDsK
IAotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShwYWdlLCAibmF2aWdhdGlvbi1yZXF1ZXN0ZWQi
LCBtX2ZyYW1lLCByZXF1ZXN0LCAmcmVzcG9uc2UpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFt
ZShwYWdlLCAibmF2aWdhdGlvbi1yZXF1ZXN0ZWQiLCBhY3Rpb25JbmZvcm1hdGlvbiwgbV9mcmFt
ZSwgcmVxdWVzdCwgJnJlc3BvbnNlKTsKIAogICAgIGdfb2JqZWN0X3VucmVmKHJlcXVlc3QpOwor
ICAgIGdfaGFzaF90YWJsZV9mb3JlYWNoKGFjdGlvbkluZm9ybWF0aW9uLCBjbGVhbnVwTmF2aWdh
dGlvbkFjdGlvbkhhc2hUYWJsZSwgTlVMTCk7CisgICAgZ19oYXNoX3RhYmxlX2Rlc3Ryb3koYWN0
aW9uSW5mb3JtYXRpb24pOwogCiAgICAgaWYgKHJlc3BvbnNlID09IFdFQktJVF9OQVZJR0FUSU9O
X1JFU1BPTlNFX0lHTk9SRSkgewogICAgICAgICAoY29yZShtX2ZyYW1lKS0+bG9hZGVyKCktPipw
b2xpY3lGdW5jdGlvbikoUG9saWN5SWdub3JlKTsKSW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93
ZWJraXQtbWFyc2hhbC5saXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViVmlldy93ZWJr
aXQtbWFyc2hhbC5saXN0CShyZXZpc2lvbiAyODYwNSkKKysrIFdlYktpdC9ndGsvV2ViVmlldy93
ZWJraXQtbWFyc2hhbC5saXN0CSh3b3JraW5nIGNvcHkpCkBAIC02LDQgKzYsNCBAQCBCT09MRUFO
OlNUUklORyxJTlQsU1RSSU5HCiBCT09MRUFOOk9CSkVDVCxTVFJJTkcKIEJPT0xFQU46T0JKRUNU
LFNUUklORyxCT09MRUFOCiBCT09MRUFOOk9CSkVDVCxTVFJJTkcsU1RSSU5HLFNUUklORwotSU5U
Ok9CSkVDVCxPQkpFQ1QKK0lOVDpQT0lOVEVSLE9CSkVDVCxPQkpFQ1QKSW5kZXg6IFdlYktpdC9n
dGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dl
YlZpZXcvd2Via2l0d2Vidmlldy5jcHAJKHJldmlzaW9uIDI4NjA1KQorKysgV2ViS2l0L2d0ay9X
ZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzAsMTIgKzI3MCw2
IEBAIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiB3ZWJraXRfd2ViX3ZpZXdfcmUKICAgICByZXR1cm4g
MDsKIH0KIAotc3RhdGljIFdlYktpdE5hdmlnYXRpb25SZXNwb25zZSB3ZWJraXRfd2ViX3ZpZXdf
cmVhbF9uYXZpZ2F0aW9uX3JlcXVlc3RlZChXZWJLaXRXZWJWaWV3KiwgV2ViS2l0V2ViRnJhbWUq
IGZyYW1lLCBXZWJLaXROZXR3b3JrUmVxdWVzdCopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gV0VCS0lUX05BVklHQVRJT05fUkVTUE9OU0VfQUNDRVBUOwotfQotCiBzdGF0
aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbF93aW5kb3dfb2JqZWN0X2NsZWFyZWQoV2ViS2l0
V2ViVmlldyosIFdlYktpdFdlYkZyYW1lKiwgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQsIEpT
T2JqZWN0UmVmIHdpbmRvd19vYmplY3QpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTQz
NCwxNCArNDI4LDM0IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFcK
ICAgICAgKiBTaWduYWxzCiAgICAgICovCiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJWaWV3
OjpuYXZpZ2F0aW9uLXJlcXVlc3RlZDoKKyAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgb24g
d2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCisgICAgICogQGFjdGlvbkluZm9ybWF0aW9uOiBh
IEdIYXNoVGFibGUqIG9mIHN0cmluZy0+R1ZhbHVlKiBrZXktdmFsdWUgcGFpcnMgdGhhdAorICAg
ICAqIHByb3ZpZGUgdGhlIGNvbnRleHQgZm9yIHRoaXMgbmF2aWdhdGlvbiByZXF1ZXN0LCBzdWNo
IGFzIG1vdXNlIGJ1dHRvbiwKKyAgICAgKiBhbmQga2V5Ym9hcmQgc3RhdGUgKFNoaWZ0LCBDb250
cm9sLCBBbHQpLgorICAgICAqIEBmcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB0byBkbyB0aGUg
bmF2aWdhdGlvbiBhY3Rpb24KKyAgICAgKiBAbmV0d29ya1JlcXVlc3Q6IHRoZSBXZWJLaXROZXR3
b3JrUmVxdWVzdAorICAgICAqIEByZXR1cm46IGEgV2ViS2l0TmF2aWdhdGlvblJlc3BvbnNlLCBz
dWNoIGFzCisgICAgICogV0VCS0lUX05BVklHQVRJT05fUkVTUE9OU0VfQUNDRVBULgorICAgICAq
CisgICAgICogRW1pdHRlZCB3aGVuIGEgI1dlYktpdFdlYkZyYW1lIG9mIHRoaXMgI1dlYktpdFdl
YlZpZXcgaXMgbW92aW5nIHRvIGEgbmV3CisgICAgICogbG9jYXRpb24sIHN1Y2ggYXMgd2hlbiBh
IEhUTUwgYW5jaG9yIGlzIGNsaWNrZWQuICBUaGUgYWN0aW9uSW5mb3JtYXRpb24KKyAgICAgKiBH
SGFzaFRhYmxlIHByb3ZpZGVzIGNvbnRleHQgKHN1Y2ggYXMsIHdhcyB0aGUgYW5jaG9yIGNsaWNr
ZWQgb24gYnkgdGhlCisgICAgICogbWlkZGxlIG1vdXNlIGJ1dHRvbiksIGFuZCB0aGUgYXBwbGlj
YXRpb24gY2FuIHJldHVybgorICAgICAqIFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0lHTk9S
RSAodG8gaW5zdHJ1Y3QgdGhpcyAjV2ViS2l0V2ViVmlldyB0byBub3QKKyAgICAgKiBvcGVuIHRo
ZSBVUkwgaW4gdGhpcyAjV2ViS2l0V2ViVmlldykgaWYgdGhlIGFwcGxpY2F0aW9uIHdvdWxkIHJh
dGhlciBvcGVuCisgICAgICogdGhlIFVSTCBpbiBhIG5ldyB0YWIsIGZvciBleGFtcGxlLgorICAg
ICAqLwogICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW05BVklHQVRJT05fUkVRVUVTVEVEXSA9
IGdfc2lnbmFsX25ldygibmF2aWdhdGlvbi1yZXF1ZXN0ZWQiLAogICAgICAgICAgICAgR19UWVBF
X0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKICAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdf
U0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKLSAgICAgICAgICAgIEdfU1RSVUNU
X09GRlNFVCAoV2ViS2l0V2ViVmlld0NsYXNzLCBuYXZpZ2F0aW9uX3JlcXVlc3RlZCksCisgICAg
ICAgICAgICAwLAogICAgICAgICAgICAgTlVMTCwKICAgICAgICAgICAgIE5VTEwsCi0gICAgICAg
ICAgICB3ZWJraXRfbWFyc2hhbF9JTlRfX09CSkVDVF9PQkpFQ1QsCi0gICAgICAgICAgICBHX1RZ
UEVfSU5ULCAyLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfSU5UX19QT0lOVEVSX09CSkVD
VF9PQkpFQ1QsCisgICAgICAgICAgICBHX1RZUEVfSU5ULCAzLAorICAgICAgICAgICAgR19UWVBF
X1BPSU5URVIsCiAgICAgICAgICAgICBHX1RZUEVfT0JKRUNULAogICAgICAgICAgICAgR19UWVBF
X09CSkVDVCk7CiAKQEAgLTQ1Miw3ICs0NjYsNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Zp
ZXdfY2xhc3NfaW5pdChXCiAgICAgICogQGNvbnRleHQ6IHRoZSAjSlNHbG9iYWxDb250ZXh0UmVm
IGhvbGRpbmcgdGhlIGdsb2JhbCBvYmplY3QgYW5kIG90aGVyCiAgICAgICogZXhlY3V0aW9uIHN0
YXRlOyBlcXVpdmFsZW50IHRvIHRoZSByZXR1cm4gdmFsdWUgb2YKICAgICAgKiB3ZWJraXRfd2Vi
X2ZyYW1lX2dldF9nbG9iYWxfY29udGV4dChAZnJhbWUpCi0gICAgICoKICAgICAgKiBAd2luZG93
X29iamVjdDogdGhlICNKU09iamVjdFJlZiByZXByZXNlbnRpbmcgdGhlIGZyYW1lJ3MgSmF2YVNj
cmlwdAogICAgICAqIHdpbmRvdyBvYmplY3QKICAgICAgKgpAQCAtNzE1LDcgKzcyOCw2IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFcKICAgICAgKiBpbXBsZW1lbnRh
dGlvbnMgb2YgdmlydHVhbCBtZXRob2RzCiAgICAgICovCiAgICAgd2ViVmlld0NsYXNzLT5jcmVh
dGVfd2ViX3ZpZXcgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jcmVhdGVfd2ViX3ZpZXc7Ci0gICAg
d2ViVmlld0NsYXNzLT5uYXZpZ2F0aW9uX3JlcXVlc3RlZCA9IHdlYmtpdF93ZWJfdmlld19yZWFs
X25hdmlnYXRpb25fcmVxdWVzdGVkOwogICAgIHdlYlZpZXdDbGFzcy0+d2luZG93X29iamVjdF9j
bGVhcmVkID0gd2Via2l0X3dlYl92aWV3X3JlYWxfd2luZG93X29iamVjdF9jbGVhcmVkOwogICAg
IHdlYlZpZXdDbGFzcy0+Y2hvb3NlX2ZpbGUgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jaG9vc2Vf
ZmlsZTsKICAgICB3ZWJWaWV3Q2xhc3MtPnNjcmlwdF9hbGVydCA9IHdlYmtpdF93ZWJfdmlld19y
ZWFsX3NjcmlwdF9hbGVydDsKSW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuaAkocmV2
aXNpb24gMjg2MDUpCisrKyBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Miw2ICs0MiwxMiBAQCB0eXBlZGVmIGVudW0gewogfSBXZWJLaXROYXZp
Z2F0aW9uUmVzcG9uc2U7CiAKIAorLy8gVGhlc2UgYXJlIHRoZSBrZXlzIGZvciB0aGUgR0hhc2hU
YWJsZSBwYXNzZWQgZHVyaW5nIGEgbmF2aWdhdGlvbl9yZXF1ZXN0ZWQgc2lnbmFsLgorI2RlZmlu
ZSBXRUJfQUNUSU9OX0JVVFRPTl9LRVkgICAgICAgICAgIldlYkFjdGlvbkJ1dHRvbktleSIKKyNk
ZWZpbmUgV0VCX0FDVElPTl9NT0RJRklFUl9GTEFHU19LRVkgICJXZWJBY3Rpb25Nb2RpZmllckZs
YWdzS2V5IgorI2RlZmluZSBXRUJfQUNUSU9OX05BVklHQVRJT05fVFlQRV9LRVkgIldlYkFjdGlv
bk5hdmlnYXRpb25UeXBlS2V5IgorI2RlZmluZSBXRUJfQUNUSU9OX09SSUdJTkFMX1VSTF9LRVkg
ICAgIldlYkFjdGlvbk9yaWdpbmFsVVJMS2V5IgorCiAKIHN0cnVjdCBfV2ViS2l0V2ViVmlldyB7
CiAgICAgR3RrQ29udGFpbmVyIHBhcmVudDsKQEAgLTU4LDExICs2NCw2IEBAIHN0cnVjdCBfV2Vi
S2l0V2ViVmlld0NsYXNzIHsKICAgICAgKi8KICAgICBXZWJLaXRXZWJWaWV3KiAgKCpjcmVhdGVf
d2ViX3ZpZXcpICAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOwogCi0gICAgLyoKLSAgICAgKiBU
T0RPOiBGSVhNRTogQ3JlYXRlIHNvbWV0aGluZyBsaWtlIFdlYlBvbGljeURlY2lzaW9uTGlzdGVu
ZXJfUHJvdG9jb2wgaW5zdGVhZAotICAgICAqLwotICAgIFdlYktpdE5hdmlnYXRpb25SZXNwb25z
ZSAoKm5hdmlnYXRpb25fcmVxdWVzdGVkKSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIFdlYktp
dFdlYkZyYW1lKiBmcmFtZSwgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpOwotCiAgICAg
dm9pZCAoKndpbmRvd19vYmplY3RfY2xlYXJlZCkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBX
ZWJLaXRXZWJGcmFtZSogZnJhbWUsIEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiB3aW5kb3dfb2JqZWN0KTsKICAgICBnY2hhciogICAoKmNob29zZV9maWxlKSAoV2ViS2l0
V2ViVmlldyogd2ViX3ZpZXcsIFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG9s
ZF9maWxlKTsKICAgICBnYm9vbGVhbiAoKnNjcmlwdF9hbGVydCkgKFdlYktpdFdlYlZpZXcqIHdl
Yl92aWV3LCBXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBhbGVydF9tZXNzYWdl
KTsKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29s
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NjA1KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDctMTItMDUgIE5pZ2VsIFRhbyAgPG5p
Z2VsdGFvQGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTdHViIGNvZGUgZm9yIGhvdyB0byByZWNvZ25pemUgY29udHJvbC1jbGlja3Mg
YW5kIG1pZGRsZS1jbGlja3Mgb24KKyAgICAgICAgYW5jaG9ycyAod2hpY2ggdHJhZGl0aW9uYWxs
eSBtZWFuICJvcGVuIGluIGEgbmV3IHRhYiIpLgorCisgICAgICAgIFdoaXRlc3BhY2UgZml4IGlu
IGNyZWF0ZV9zdGF0dXNiYXIuCisKKyAgICAgICAgKiBHdGtMYXVuY2hlci9tYWluLmM6CisgICAg
ICAgIChuYXZpZ2F0aW9uX3JlcXVlc3RlZF9jYik6CisgICAgICAgIChjcmVhdGVfYnJvd3Nlcik6
CisgICAgICAgIChjcmVhdGVfc3RhdHVzYmFyKToKKwogMjAwNy0xMi0xMCAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVyc3RhbXBlZCBieSBTYW0gV2Vp
bmlnCkluZGV4OiBXZWJLaXRUb29scy9HdGtMYXVuY2hlci9tYWluLmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0VG9vbHMvR3RrTGF1bmNoZXIvbWFpbi5jCShyZXZpc2lvbiAyODYwNSkKKysrIFdlYktp
dFRvb2xzL0d0a0xhdW5jaGVyL21haW4uYwkod29ya2luZyBjb3B5KQpAQCAtODIsNiArODIsMzEg
QEAgcHJvZ3Jlc3NfY2hhbmdlX2NiIChXZWJLaXRXZWJWaWV3KiBwYWdlLAogICAgIHVwZGF0ZV90
aXRsZSAoR1RLX1dJTkRPVyAobWFpbl93aW5kb3cpKTsKIH0KIAorc3RhdGljIFdlYktpdE5hdmln
YXRpb25SZXNwb25zZQorbmF2aWdhdGlvbl9yZXF1ZXN0ZWRfY2IgKFdlYktpdFdlYlZpZXcqIHBh
Z2UsIEdIYXNoVGFibGUqIGFjdGlvbl9pbmZvcm1hdGlvbiwgV2ViS2l0V2ViRnJhbWUqIGZyYW1l
LCBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICAvLyBJIGRvbid0IHN1Z2dl
c3QgdGhhdCB5b3UgKHRoZSByZXZpZXdlciwgYWxwPz8sIGJkYXNoPz8pIGNvbW1pdCB0aGlzCisg
ICAgLy8gaW1wbGVtZW50YXRpb24gb2YgbmF2aWdhdGlvbl9yZXF1ZXN0ZWRfY2IsIGJ1dCBpdCdz
IGhlcmUgaW4gY2FzZSB5b3UKKyAgICAvLyB3YW50IHRvIHRlc3QgdGhhdCB0aGUgcGF0Y2ggd29y
a3MuCisgICAgLy8gSWYgeW91IGRvbid0IGNvbW1pdCB0aGlzLCB0aGVuIHlvdSB3b3VsZG4ndCB3
YW50IHRvIGNvbW1pdCB0aGUKKyAgICAvLyBXZWJLaXRUb29scy9DaGFuZ2VMb2cgZGlmZiBlaXRo
ZXIuCisKKyAgICBHVmFsdWUqIGJ1dHRvbiA9IChHVmFsdWUqKSBnX2hhc2hfdGFibGVfbG9va3Vw
IChhY3Rpb25faW5mb3JtYXRpb24sIFdFQl9BQ1RJT05fQlVUVE9OX0tFWSk7CisgICAgZ2Jvb2xl
YW4gbWlkZGxlX21vdXNlX2J1dHRvbiA9IGJ1dHRvbiAmJiBHX1ZBTFVFX0hPTERTKGJ1dHRvbiwg
R19UWVBFX0lOVCkgJiYgKGdfdmFsdWVfZ2V0X2ludCAoYnV0dG9uKSA9PSAxKTsKKworICAgIEdW
YWx1ZSogbW9kaWZpZXJfZmxhZ3MgPSAoR1ZhbHVlKikgZ19oYXNoX3RhYmxlX2xvb2t1cCAoYWN0
aW9uX2luZm9ybWF0aW9uLCBXRUJfQUNUSU9OX01PRElGSUVSX0ZMQUdTX0tFWSk7CisgICAgZ2Jv
b2xlYW4gY29udHJvbF9rZXkgPSBtb2RpZmllcl9mbGFncyAmJiBHX1ZBTFVFX0hPTERTKG1vZGlm
aWVyX2ZsYWdzLCBHX1RZUEVfSU5UKSAmJiAoZ192YWx1ZV9nZXRfaW50IChtb2RpZmllcl9mbGFn
cykgJiBHREtfQ09OVFJPTF9NQVNLKTsKKworICAgIGlmIChtaWRkbGVfbW91c2VfYnV0dG9uIHx8
IGNvbnRyb2xfa2V5KSB7CisgICAgICAgIEdWYWx1ZSogb3JpZ2luYWxfdXJsID0gKEdWYWx1ZSop
IGdfaGFzaF90YWJsZV9sb29rdXAgKGFjdGlvbl9pbmZvcm1hdGlvbiwgV0VCX0FDVElPTl9PUklH
SU5BTF9VUkxfS0VZKTsKKyAgICAgICAgaWYgKG9yaWdpbmFsX3VybCAmJiBHX1ZBTFVFX0hPTERT
KG9yaWdpbmFsX3VybCwgR19UWVBFX1NUUklORykpIHsKKyAgICAgICAgICAgIGdfcHJpbnQgKCJU
T0RPIC0gb3BlbiBpbiBhIG5ldyB0YWI6ICVzXG4iLCBnX3ZhbHVlX2dldF9zdHJpbmcgKG9yaWdp
bmFsX3VybCkpOworICAgICAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNF
X0lHTk9SRTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gV0VCS0lUX05BVklHQVRJT05f
UkVTUE9OU0VfQUNDRVBUOworfQorCiBzdGF0aWMgdm9pZAogZGVzdHJveV9jYiAoR3RrV2lkZ2V0
KiB3aWRnZXQsIGdwb2ludGVyIGRhdGEpCiB7CkBAIC0xMTIsNiArMTM3LDcgQEAgY3JlYXRlX2Jy
b3dzZXIgKCkKICAgICBnX3NpZ25hbF9jb25uZWN0IChHX09CSkVDVCAod2ViX3ZpZXcpLCAidGl0
bGUtY2hhbmdlZCIsIEdfQ0FMTEJBQ0sgKHRpdGxlX2NoYW5nZV9jYiksIHdlYl92aWV3KTsKICAg
ICBnX3NpZ25hbF9jb25uZWN0IChHX09CSkVDVCAod2ViX3ZpZXcpLCAibG9hZC1wcm9ncmVzcy1j
aGFuZ2VkIiwgR19DQUxMQkFDSyAocHJvZ3Jlc3NfY2hhbmdlX2NiKSwgd2ViX3ZpZXcpOwogICAg
IGdfc2lnbmFsX2Nvbm5lY3QgKEdfT0JKRUNUICh3ZWJfdmlldyksICJob3ZlcmluZy1vdmVyLWxp
bmsiLCBHX0NBTExCQUNLIChsaW5rX2hvdmVyX2NiKSwgd2ViX3ZpZXcpOworICAgIGdfc2lnbmFs
X2Nvbm5lY3QgKEdfT0JKRUNUICh3ZWJfdmlldyksICJuYXZpZ2F0aW9uLXJlcXVlc3RlZCIsIEdf
Q0FMTEJBQ0sgKG5hdmlnYXRpb25fcmVxdWVzdGVkX2NiKSwgd2ViX3ZpZXcpOwogCiAgICAgcmV0
dXJuIHNjcm9sbGVkX3dpbmRvdzsKIH0KQEAgLTEyMiw3ICsxNDgsNyBAQCBjcmVhdGVfc3RhdHVz
YmFyICgpCiAgICAgbWFpbl9zdGF0dXNiYXIgPSBHVEtfU1RBVFVTQkFSIChndGtfc3RhdHVzYmFy
X25ldyAoKSk7CiAgICAgc3RhdHVzX2NvbnRleHRfaWQgPSBndGtfc3RhdHVzYmFyX2dldF9jb250
ZXh0X2lkIChtYWluX3N0YXR1c2JhciwgIkxpbmsgSG92ZXIiKTsKIAotICAgIHJldHVybiAoR3Rr
V2lkZ2V0KiltYWluX3N0YXR1c2JhcjsKKyAgICByZXR1cm4gKEd0a1dpZGdldCopIG1haW5fc3Rh
dHVzYmFyOwogfQogCiBzdGF0aWMgR3RrV2lkZ2V0Kgo=
</data>
<flag name="review"
          id="7702"
          type_id="1"
          status="-"
          setter="alp"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>17871</attachid>
            <date>2007-12-12 21:25:15 -0800</date>
            <delta_ts>2007-12-12 21:25:15 -0800</delta_ts>
            <desc>IRC log</desc>
            <filename>bug-16092-irc-discussion.txt</filename>
            <type>text/plain</type>
            <size>3495</size>
            <attacher name="Nigel Tao">nigel.tao.gnome</attacher>
            
              <data encoding="base64">PGFscD4gYW5kZXJzY2E6IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MDkyIGlzIGFuIGludGVyZXN0aW5nIG9uZS4gd2UgbmVlZCB0byBkZWNpZGUgaWYgdGhpcyBraW5k
IG9mIEFQSSBpcyBzb21ldGhpbmcgdGhhdCBjYW4gYmUgc3VwcG9ydGVkIGxvbmctdGVybSwgd2hl
dGhlciBpdCBtaWdodCBibG9jayBmdXR1cmUgZGVzaWduIGRlY2lzaW9ucyB0byBzcGxpdCB0aGUg
dmlldyBmcm9tIHRoZSBtb2RlbCwgZXRjLgo8YW5kZXJzY2E+IGFscDogSSB0aG91Z2h0IHRoYXQg
QVBJIHdhcyBwcmV0dHkgYmFkCjxhbHA+IGFuZCB3aGV0aGVyIGl0IG1pZ2h0IG1ha2UgaXQgbW9y
ZSBkaWZmaWN1bHQgdG8gc3VwcG9ydCBkaWZmZXJlbnQgbG9hZGVyL2VkaXRvciBjbGllbnRzIGlu
IGZ1dHVyZQo8YW5kZXJzY2E+IGFscDogSSdkIHJhdGhlciBoYXZlIGEgTmF2aWdhdGlvbkFjdGlv
bi9OYXZpZ2F0aW9uSW5mbyBHT2JqZWN0CjxhbmRlcnNjYT4gaW5zdGVhZCBvZiBhIEdIYXNoVGFi
bGUgd2l0aCBHVmFsdWVzCjxhbHA+IGFuZGVyc2NhOiBpcyB0aGVyZSBhbiBlcXVpdmFsZW50IGlu
IG90aGVyIHBvcnRzPwo8YW5kZXJzY2E+IGFscDogb24gTWFjIHdlIHVzZSBhbiBOU0RpY3Rpb25h
cnkgd2hpY2ggaXMga2luZGEgbmljZXIgc2luY2UgaXQncyBhbiBvYmplY3QKPGFscD4gYWgKPGFu
ZGVyc2NhPiBhbHA6IGZvciBleGFtcGxlLCBJIHRoaW5rCjxhbmRlcnNjYT4gY29uc3QgY2hhciAq
dXJsID0gd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfb3JpZ2luYWxfdXJsKGFjdGlv
bikKPGFuZGVyc2NhPiBpcyBuaWNlciB0aGFuCjxhbmRlcnNjYT4gIDEwMSAgICAgICAgIEdWYWx1
ZSogb3JpZ2luYWxfdXJsID0gKEdWYWx1ZSopIGdfaGFzaF90YWJsZV9sb29rdXAgKGFjdGlvbl9p
bmZvcm1hdGlvbiwgV0VCX0FDVElPTl9PUklHSU5BTF9VUkxfS0VZKTsKPGFuZGVyc2NhPiAgMTAy
ICAgICAgICAgaWYgKG9yaWdpbmFsX3VybCAmJiBHX1ZBTFVFX0hPTERTKG9yaWdpbmFsX3VybCwg
R19UWVBFX1NUUklORykpIHsKPGFscD4gYW5kZXJzY2E6IHllcC4gZG9lcyBpdCBuZWVkIHRvIGJl
IGFibGUgdG8gc3VwcG9ydCBhcmJpdHJhcnkga2V5L3ZhbHVlIHBhaXJzIHRob3VnaD8KPGFuZGVy
c2NhPiBhbHA6IG5vCjxhbmRlcnNjYT4gYWxwOiBpdCdzIGNyZWF0ZWQgZnJvbSB0aGUgV2ViQ29y
ZSBOYXZpZ2F0aW9uQWN0aW9uIHN0cnVjdAo8YWxwPiBhbmRlcnNjYTogc2hvdWxkIGl0IHByb3Zp
ZGUgYWNjZXNzIHRvIHRoZSB0cmlnZ2VyaW5nIEdka0V2ZW50IG9yIGlzIHRoYXQgaW5mb3JtYXRp
b24gbG9zdCBieSB0aGlzIHBvaW50Pwo8YWxwPiBub3QgdG9vIGZhbWlsaWFyIHdpdGggVUlFdmVu
dC9VSUV2ZW50V2l0aEtleVN0YXRlCjxhbmRlcnNjYT4gYWxwOiB5b3UgY2FuIGdldCBwYXJ0cyBv
ZiB0aGUgZXZlbnQgSSB0aGluaywgc3VjaCBhcyB0aGUgYnV0dG9uIG51bWJlcgo8YmRhc2g+IG9u
IHRoZSBNYWMgSSBiZWxpZXZlIHRoZSBkZWxlZ2F0ZSBjYW4gYWxzbyByZXRyaWV2ZSB0aGUgTlNF
dmVudCBpdHNlbGYgYnkgcXVlcnlpbmcgTlNBcHBsaWNhdGlvbgo8YWxwPiBhbmQgZG8geW91IHRo
aW5rIGl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8ganVzdCBnZXQgdGhlIGNhbGxlZSB0byB0byBnZGtf
Z2V0X2N1cnJlbnRfZXZlbnQoKSBpbnN0ZWFkIGFzIGl0IHNlZW1zIHRvIGJlIGEgc3luY2hyb25v
dXMgQVBJPwo8YW5kZXJzY2E+IGFscDogbm90IGFsbCBvZiB0aGUgYWN0aW9ucyBtaWdodCBiZSBz
eW5jaHJvbm91cyBJIHRoaW5rCjxhbmRlcnNjYT4gYWxwOiBhbnl3YXksIHlvdSBjYW4gZ2V0IHRo
ZSBldmVudCBmcm9tIHRoZSBOYXZpZ2F0aW9uQWN0aW9uIHNvIHRoYXQgd291bGQgYmUgZWFzeSB0
byB3cmFwCjxhbHA+IGlmIG5hdmlnYXRpb24gZXZlbnRzIGdldCBjYXVzZWQgYnkgc3ludGhlc2lz
ZWQgZXZlbnRzLCB0aGVyZSBtaWdodCBiZSBubyBiYWNraW5nIEdka0V2ZW50IGkgZ3Vlc3MgKGlz
IHRoYXQgcG9zc2libGU/KQo8YW5kZXJzY2E+IGFscDogdGhlcmUgd2lsbCBzdGlsbCBiZSBhbiBF
dmVudCBvYmplY3QgYnV0IHllcywgaXQgbWlnaHQgbm90IGhhdmUgYSBiYWNraW5nIEdka0V2ZW50
CjxhbHA+IGFuZGVyc2NhOiBpIHdhcyB0aGlua2luZyBhIHdoaWxlIGJhY2sgaWYgaXQnZCBiZSB3
b3J0aCB3cml0aW5nIGNvZGUgdG8gcm91bmQtdHJpcCBiYWNrIGZyb20gZnJvbSBXZWJDb3JlIGV2
ZW50cyBieSBjb25zdHJ1Y3RpbmcgZmFrZSBHZGtFdmVudHMuLiBkbyBNYWMgb3IgV2luIGRvIHRo
YXQ/CjxhbmRlcnNjYT4gYWxwOiBsZXQgbWUgc2VlCjxhbmRlcnNjYT4gYWxwOiBJIHRoaW5rIHdl
IG1pZ2h0IHByb3ZpZGUgcGFydHMgb2YgdGhlIGV2ZW50LCBzdWNoIGFzIHdoaWNoIG1vdXNlIGJ1
dHRvbiB3YXMgdXNlZAo8YW5kZXJzY2E+IGFscDogYW5kIHRoZSBrZXlib2FyZCBzaGlmdCBzdGF0
ZQo8YW5kZXJzY2E+IGFscDogCjxhbmRlcnNjYT4gNTggZXh0ZXJuIE5TU3RyaW5nICpXZWJBY3Rp
b25OYXZpZ2F0aW9uVHlwZUtleTsgLy8gTlNOdW1iZXIgKFdlYk5hdmlnYXRpb25UeXBlKQo8YW5k
ZXJzY2E+IDU5IGV4dGVybiBOU1N0cmluZyAqV2ViQWN0aW9uRWxlbWVudEtleTsgLy8gTlNEaWN0
aW9uYXJ5IG9mIGVsZW1lbnQgaW5mbwo8YW5kZXJzY2E+IDYwIGV4dGVybiBOU1N0cmluZyAqV2Vi
QWN0aW9uQnV0dG9uS2V5OyAvLyBOU051bWJlciAoMCBmb3IgbGVmdCBidXR0b24sIDEgZm9yIG1p
ZGRsZSBidXR0b24sIDIgZm9yIHJpZ2h0IGJ1dHRvbikKPGFuZGVyc2NhPiA2MSBleHRlcm4gTlNT
dHJpbmcgKldlYkFjdGlvbk1vZGlmaWVyRmxhZ3NLZXk7IC8vIE5TTnVtYmVyICh1bnNpZ25lZCkK
PGFuZGVyc2NhPiA2MiBleHRlcm4gTlNTdHJpbmcgKldlYkFjdGlvbk9yaWdpbmFsVVJMS2V5OyAv
LyBOU1VSTAo8YW5kZXJzY2E+IDYzIAo8YWxwPiBhbmRlcnNjYTogdGhlIGNsZXZlciB0aGluZyBh
Ym91dCB0aGF0IGFwcHJvYWNoIGlzIHRoYXQgaXQgbGV0cyBXZWJBY3Rpb24gc3RheSBpbmRlcGVu
ZGVudCBvZiB0aGUgVUkgKGZvciBHVEsrIHRoYXQgd291bGQgbWVhbiB1c2luZyBvbmx5IGdsaWIt
b2JqZWN0LmgpCjxhbmRlcnNjYT4gYWxwOiAqc2hydWcqIC0gSSdkIHByb2JhYmx5IHVzZSBodHRw
Oi8vbGlicmFyeS5nbm9tZS5vcmcvZGV2ZWwvZ2RrL3Vuc3RhYmxlL2dkay1XaW5kb3dzLmh0bWwj
R2RrTW9kaWZpZXJUeXBlIAo8YWxwPiBhbmRlcnNjYTogcmlnaHQuIEdka01vZGlmaWVyVHlwZSwg
c2FtZSBlbnVtIHRoYXQgR2RrRXZlbnRLZXkgdXNlcy4gdGhpbmsgaXQncyB3b3J0aCB0cnlpbmcg
dG8gcHJvdmlkZSBzZXBhcmF0aW9uIG9mIFVJIGFuZCBiYWNrZW5kIGluIHBsYWNlcyBsaWtlIHRo
aXM/CjxhbmRlcnNjYT4gYWxwOiBub3QgcmVhbGx5IDopCjxhbmRlcnNjYT4gYWxwOiBlc3BlY2lh
bGx5IHNpbmNlIHRoaXMgaXMgYW4gb2JqZWN0IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBhIHVzZXIg
aW50ZXJmYWNlIGFjdGlvbgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19892</attachid>
            <date>2008-03-19 19:56:49 -0700</date>
            <delta_ts>2008-03-19 20:43:16 -0700</delta_ts>
            <desc>Implement WebKitNavigationAction object in GTK API</desc>
            <filename>16092-implement-navigation-action-object.patch</filename>
            <type>text/plain</type>
            <size>21001</size>
            <attacher name="Jasper Bryant-Greene">jasper</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMxMTY4
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDgtMDMt
MTkgIEphc3BlciBCcnlhbnQtR3JlZW5lICA8amFzcGVyQHVuaXguZ2Vlay5uej4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXNvbHZlcyBodHRwOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5MgorICAgICAgICAiW0dUS10gTWlk
ZGxlLW1vdXNlIGNsaWNrIHNob3VsZCBhbGxvdyBvcGVuaW5nIGEgVVJMIGluIGEgbmV3IHRhYiIK
KworICAgICAgICBBZGRlZCBXZWJLaXROYXZpZ2F0aW9uQWN0aW9uIG9iamVjdCB0byBHVEsgQVBJ
CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKwogMjAwOC0wMy0xMiAgWGFuIExvcGV6ICA8
eGFuQGdub21lLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCkluZGV4OiBH
TlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBHTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMzEx
NjgpCisrKyBHTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMjgyLDYgKzI4Miw3IEBA
IHdlYmtpdGd0a19jcHBmbGFncyArPSBcCiB3ZWJraXRndGtfaF9hcGkgKz0gXAogCVdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdC5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgg
XAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5hdmlnYXRpb25hY3Rpb24uaCBcCiAJV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmZyYW1lLmggXApAQCAtMzA0LDYgKzMwNSw3IEBAIHdlYmtpdGd0a19oZWFkZXJzICs9IFwKIAlX
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuaAogCiB3ZWJraXRn
dGtfc291cmNlcyArPSBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmF2aWdhdGlvbmFjdGlv
bi5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcCBcCiAJ
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAgXApJbmRleDogV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDMxMTY4KQor
KysgV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzOCBAQAor
MjAwOC0wMy0xOSAgSmFzcGVyIEJyeWFudC1HcmVlbmUgIDxqYXNwZXJAdW5peC5nZWVrLm56Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc29sdmVz
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDkyCisgICAgICAgICJb
R1RLXSBNaWRkbGUtbW91c2UgY2xpY2sgc2hvdWxkIGFsbG93IG9wZW5pbmcgYSBVUkwgaW4gYSBu
ZXcgdGFiIgorCisgICAgICAgIENyZWF0ZWQgV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiBvYmplY3Qg
ZXhwb3J0ZWQgdGhyb3VnaCB0aGUgQVBJLiBUaGUKKyAgICAgICAgbmF2aWdhdGlvbi1yZXF1ZXN0
ZWQgc2lnbmFsIHByb3ZpZGVzIHRoaXMgb2JqZWN0IGFzIGNvbnRleHQgZm9yIHRoZQorICAgICAg
ICByZXF1ZXN0ZWQgbmF2aWdhdGlvbiwgYWxsb3dpbmcgdGhlIGFwcGxpY2F0aW9uIHRvIGRlY2lk
ZSB3aGF0IHRvIGRvCisgICAgICAgIHdpdGggdGhlIG5hdmlnYXRpb24gYmFzZWQgb24gd2hpY2gg
bW91c2UgYnV0dG9uIHdhcyB1c2VkLCB3aGljaAorICAgICAgICBtb2RpZmllciBrZXlzIHdlcmUg
aGVsZCBkb3duLCBldGMuIFRoaXMgYWxsb3dzLCBmb3IgZXhhbXBsZSwgdGhlCisgICAgICAgIGFw
cGxpY2F0aW9uIHRvIG9wZW4gbGlua3MgaW4gYSBuZXcgdGFiIHdoZW4gZWl0aGVyIG1pZGRsZS1j
bGljayBvcgorICAgICAgICBjb250cm9sLWNsaWNrIGFyZSB1c2VkIHRvIGluaXRpYXRlIHRoZSBu
YXZpZ2F0aW9uLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiB3ZWJraXQvaGVhZGVycy5w
cmk6CisgICAgICAgICogd2Via2l0L3dlYmtpdC1tYXJzaGFsLmxpc3Q6CisgICAgICAgICogd2Vi
a2l0L3dlYmtpdGRlZmluZXMuaDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0bmF2aWdhdGlvbmFj
dGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAod2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2ZpbmFs
aXplKToKKyAgICAgICAgKHdlYmtpdF9uYXZpZ2F0aW9uX2FjdGlvbl9jbGFzc19pbml0KToKKyAg
ICAgICAgKHdlYmtpdF9uYXZpZ2F0aW9uX2FjdGlvbl9pbml0KToKKyAgICAgICAgKHdlYmtpdF9u
YXZpZ2F0aW9uX2FjdGlvbl9nZXRfYnV0dG9uKToKKyAgICAgICAgKHdlYmtpdF9uYXZpZ2F0aW9u
X2FjdGlvbl9nZXRfbW9kaWZpZXJfZmxhZ3MpOgorICAgICAgICAod2Via2l0X25hdmlnYXRpb25f
YWN0aW9uX2dldF9uYXZpZ2F0aW9uX3R5cGUpOgorICAgICAgICAod2Via2l0X25hdmlnYXRpb25f
YWN0aW9uX2dldF9vcmlnaW5hbF91cmwpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRuYXZpZ2F0
aW9uYWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6a2l0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5o
OgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2Vidmlldy5oOgorCiAyMDA4LTAzLTE4ICBSb2RuZXkgRGF3ZXMgIDxkb2JleUB3YXlv
ZnRoZW1vbmtleS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYW5kIGxhbmRlZCBieSBqaG9uZXlj
dXR0LgpJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDMxMTY4KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQw
LDcgQEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJranNfYmluZGlu
Zy5oIgogI2luY2x1ZGUgImtqc19wcm94eS5oIgorI2luY2x1ZGUgIndlYmtpdG5hdmlnYXRpb25h
Y3Rpb24uaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCiAjaW5jbHVkZSAid2Via2l0d2Vi
ZnJhbWUuaCIKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCkBAIC0yNDUsOSArMjQ2LDkgQEAg
dm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQbwogCiAgICAgV2ViS2l0V2Vi
Vmlldyogd2ViVmlldyA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7CiAgICAgV2ViS2l0TmV0
d29ya1JlcXVlc3QqIHJlcXVlc3QgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X25ldyhyZXNvdXJj
ZVJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgV2ViS2l0TmF2aWdh
dGlvblJlc3BvbnNlIHJlc3BvbnNlOworICAgIFdlYktpdE5hdmlnYXRpb25SZXNwb25zZSByZXNw
b25zZSA9IFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0FDQ0VQVDsKIAotICAgIGdfc2lnbmFs
X2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAibmF2aWdhdGlvbi1yZXF1ZXN0ZWQiLCBtX2ZyYW1lLCBy
ZXF1ZXN0LCAmcmVzcG9uc2UpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAi
bmF2aWdhdGlvbi1yZXF1ZXN0ZWQiLCBraXQoYWN0aW9uKSwgbV9mcmFtZSwgcmVxdWVzdCwgJnJl
c3BvbnNlKTsKIAogICAgIGdfb2JqZWN0X3VucmVmKHJlcXVlc3QpOwogCkluZGV4OiBXZWJLaXQv
Z3RrL3dlYmtpdC9oZWFkZXJzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9o
ZWFkZXJzLnByaQkocmV2aXNpb24gMzExNjgpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9oZWFkZXJz
LnByaQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIFdFQktJVF9BUElfSEVBREVSUyA9
ICQkUFdEL3dlYmtpdC5oIFwKICAgICAgICAgICAgICAgICAgICAgICQkUFdEL3dlYmtpdGRlZmlu
ZXMuaCBcCisgICAgICAgICAgICAgICAgICAgICAkJFBXRC93ZWJraXRuYXZpZ2F0aW9uYWN0aW9u
LmggXAogICAgICAgICAgICAgICAgICAgICAgJCRQV0Qvd2Via2l0bmV0d29ya3JlcXVlc3QuaCBc
CiAgICAgICAgICAgICAgICAgICAgICAkJFBXRC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaCBc
CiAgICAgICAgICAgICAgICAgICAgICAkJFBXRC93ZWJraXR3ZWJmcmFtZS5oIFwKSW5kZXg6IFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdC1tYXJzaGFsLmxpc3QKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0LW1hcnNoYWwubGlzdAkocmV2aXNpb24gMzExNjgpCisrKyBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXQtbWFyc2hhbC5saXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xMCwz
ICsxMCw0IEBAIEJPT0xFQU46T0JKRUNULFNUUklORwogQk9PTEVBTjpPQkpFQ1QsU1RSSU5HLEJP
T0xFQU4KIEJPT0xFQU46T0JKRUNULFNUUklORyxTVFJJTkcsU1RSSU5HCiBJTlQ6T0JKRUNULE9C
SkVDVAorSU5UOk9CSkVDVCxPQkpFQ1QsT0JKRUNUCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRkZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVm
aW5lcy5oCShyZXZpc2lvbiAzMTE2OCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmlu
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsOSBAQAogCiBHX0JFR0lOX0RFQ0xTCiAK
K3R5cGVkZWYgc3RydWN0IF9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uIFdlYktpdE5hdmlnYXRpb25B
Y3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TmF2aWdhdGlvbkFjdGlvbkNsYXNzIFdlYktp
dE5hdmlnYXRpb25BY3Rpb25DbGFzczsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtS
ZXF1ZXN0IFdlYktpdE5ldHdvcmtSZXF1ZXN0OwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdv
cmtSZXF1ZXN0Q2xhc3MgV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzczsKIApJbmRleDogV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0bmF2aWdhdGlvbmFjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0bmF2aWdhdGlvbmFjdGlvbi5jcHAJKHJldmlzaW9uIDApCisr
KyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuYXZpZ2F0aW9uYWN0aW9uLmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKYXNwZXIgQnJ5
YW50LUdyZWVuZSA8amFzcGVyQHVuaXguZ2Vlay5uej4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
bmNsdWRlICJ3ZWJraXRuYXZpZ2F0aW9uYWN0aW9uLmgiCisKK2V4dGVybiAiQyIgeworCitHX0RF
RklORV9UWVBFKFdlYktpdE5hdmlnYXRpb25BY3Rpb24sIHdlYmtpdF9uYXZpZ2F0aW9uX2FjdGlv
biwgR19UWVBFX09CSkVDVCk7CisKK3N0cnVjdCBfV2ViS2l0TmF2aWdhdGlvbkFjdGlvblByaXZh
dGUgeworICAgIGdpbnQgYnV0dG9uOworICAgIGdpbnQgbW9kaWZpZXJGbGFnczsKKyAgICBnaW50
IG5hdmlnYXRpb25UeXBlOworICAgIGdjaGFyKiBvcmlnaW5hbFVSTDsKK307CisKKyNkZWZpbmUg
V0VCS0lUX05BVklHQVRJT05fQUNUSU9OX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5D
RV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVfTkFWSUdBVElPTl9BQ1RJT04sIFdlYktp
dE5hdmlnYXRpb25BY3Rpb25Qcml2YXRlKSkKKworc3RhdGljIHZvaWQgd2Via2l0X25hdmlnYXRp
b25fYWN0aW9uX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICBXZWJLaXROYXZpZ2F0
aW9uQWN0aW9uKiBhY3Rpb24gPSBXRUJLSVRfTkFWSUdBVElPTl9BQ1RJT04ob2JqZWN0KTsKKyAg
ICBXZWJLaXROYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZSogcHJpdiA9IGFjdGlvbi0+cHJpdjsKKwor
ICAgIGdfZnJlZShwcml2LT5vcmlnaW5hbFVSTCk7CisKKyAgICBHX09CSkVDVF9DTEFTUyh3ZWJr
aXRfbmF2aWdhdGlvbl9hY3Rpb25fcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30K
Kworc3RhdGljIHZvaWQgd2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2NsYXNzX2luaXQoV2ViS2l0
TmF2aWdhdGlvbkFjdGlvbkNsYXNzKiBrbGFzcykKK3sKKyAgICBHX09CSkVDVF9DTEFTUyhrbGFz
cyktPmZpbmFsaXplID0gd2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2ZpbmFsaXplOworCisgICAg
Z190eXBlX2NsYXNzX2FkZF9wcml2YXRlKGtsYXNzLCBzaXplb2YoV2ViS2l0TmF2aWdhdGlvbkFj
dGlvblByaXZhdGUpKTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X25hdmlnYXRpb25fYWN0aW9u
X2luaXQoV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiogYWN0aW9uKQoreworICAgIFdlYktpdE5hdmln
YXRpb25BY3Rpb25Qcml2YXRlKiBwcml2ID0gV0VCS0lUX05BVklHQVRJT05fQUNUSU9OX0dFVF9Q
UklWQVRFKGFjdGlvbik7CisgICAgYWN0aW9uLT5wcml2ID0gcHJpdjsKK30KKworZ2ludCB3ZWJr
aXRfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X2J1dHRvbihXZWJLaXROYXZpZ2F0aW9uQWN0aW9uKiBh
Y3Rpb24pCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX05BVklHQVRJT05f
QUNUSU9OKGFjdGlvbiksIE5VTEwpOworICAgIHJldHVybiBhY3Rpb24tPnByaXYtPmJ1dHRvbjsK
K30KKworZ2ludCB3ZWJraXRfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X21vZGlmaWVyX2ZsYWdzKFdl
YktpdE5hdmlnYXRpb25BY3Rpb24qIGFjdGlvbikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfTkFWSUdBVElPTl9BQ1RJT04oYWN0aW9uKSwgTlVMTCk7CisgICAgcmV0dXJu
IGFjdGlvbi0+cHJpdi0+bW9kaWZpZXJGbGFnczsKK30KKworZ2ludCB3ZWJraXRfbmF2aWdhdGlv
bl9hY3Rpb25fZ2V0X25hdmlnYXRpb25fdHlwZShXZWJLaXROYXZpZ2F0aW9uQWN0aW9uKiBhY3Rp
b24pCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX05BVklHQVRJT05fQUNU
SU9OKGFjdGlvbiksIE5VTEwpOworICAgIHJldHVybiBhY3Rpb24tPnByaXYtPm5hdmlnYXRpb25U
eXBlOworfQorCitnY2hhciogd2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2dldF9vcmlnaW5hbF91
cmwoV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiogYWN0aW9uKQoreworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9JU19OQVZJR0FUSU9OX0FDVElPTihhY3Rpb24pLCBOVUxMKTsKKyAgICBy
ZXR1cm4gYWN0aW9uLT5wcml2LT5vcmlnaW5hbFVSTDsKK30KKworfQpJbmRleDogV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0bmF2aWdhdGlvbmFjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdG5hdmlnYXRpb25hY3Rpb24uaAkocmV2aXNpb24gMCkKKysrIFdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdG5hdmlnYXRpb25hY3Rpb24uaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKYXNwZXIgQnJ5YW50LUdyZWVu
ZSA8amFzcGVyQHVuaXguZ2Vlay5uej4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdFQktJVF9OQVZJR0FUSU9OX0FDVElPTl9I
CisjZGVmaW5lIFdFQktJVF9OQVZJR0FUSU9OX0FDVElPTl9ICisKKyNpbmNsdWRlIDxnbGliLW9i
amVjdC5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKworI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZp
bmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9OQVZJR0FUSU9O
X0FDVElPTiAgICAgICAgICAgICh3ZWJraXRfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgV0VCS0lUX05BVklHQVRJT05fQUNUSU9OKG9iaikgICAgICAgICAgICAoR19UWVBF
X0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX05BVklHQVRJT05fQUNUSU9O
LCBXZWJLaXROYXZpZ2F0aW9uQWN0aW9uKSkKKyNkZWZpbmUgV0VCS0lUX05BVklHQVRJT05fQUNU
SU9OX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdF
QktJVF9UWVBFX05BVklHQVRJT05fQUNUSU9OLCBXZWJLaXROYXZpZ2F0aW9uQWN0aW9uQ2xhc3Mp
KQorI2RlZmluZSBXRUJLSVRfSVNfTkFWSUdBVElPTl9BQ1RJT04ob2JqKSAgICAgICAgIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfTkFWSUdBVElPTl9BQ1RJ
T04pKQorI2RlZmluZSBXRUJLSVRfSVNfTkFWSUdBVElPTl9BQ1RJT05fQ0xBU1Moa2xhc3MpIChH
X1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfTkFWSUdBVElPTl9B
Q1RJT04pKQorI2RlZmluZSBXRUJLSVRfTkFWSUdBVElPTl9BQ1RJT05fR0VUX0NMQVNTKG9iaikg
IChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfTkFWSUdBVElP
Tl9BQ1RJT04sIFdlYktpdE5hdmlnYXRpb25BY3Rpb25DbGFzcykpCisKK3R5cGVkZWYgc3RydWN0
IF9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZSBXZWJLaXROYXZpZ2F0aW9uQWN0aW9uUHJp
dmF0ZTsKKworc3RydWN0IF9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uIHsKKyAgICBHT2JqZWN0IHBh
cmVudF9pbnN0YW5jZTsKKworICAgIFdlYktpdE5hdmlnYXRpb25BY3Rpb25Qcml2YXRlKiBwcml2
OworfTsKKworc3RydWN0IF9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uQ2xhc3MgeworICAgIEdPYmpl
Y3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfbmF2
aWdhdGlvbl9hY3Rpb25fZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIGdpbnQKK3dlYmtp
dF9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfYnV0dG9uIChXZWJLaXROYXZpZ2F0aW9uQWN0aW9uKiBh
Y3Rpb24pOworCitXRUJLSVRfQVBJIGdpbnQKK3dlYmtpdF9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRf
bW9kaWZpZXJfZmxhZ3MgKFdlYktpdE5hdmlnYXRpb25BY3Rpb24qIGFjdGlvbik7CisKK1dFQktJ
VF9BUEkgZ2ludAord2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2dldF9uYXZpZ2F0aW9uX3R5cGUg
KFdlYktpdE5hdmlnYXRpb25BY3Rpb24qIGFjdGlvbik7CisKK1dFQktJVF9BUEkgZ2NoYXIqCit3
ZWJraXRfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X29yaWdpbmFsX3VybCAoV2ViS2l0TmF2aWdhdGlv
bkFjdGlvbiogYWN0aW9uKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCkluZGV4OiBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRwcml2YXRlLmNwcAkocmV2aXNpb24gMzExNjgpCisrKyBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRwcml2YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENv
cHlyaWdodCAoQykgMjAwOCBKYXNwZXIgQnJ5YW50LUdyZWVuZSA8amFzcGVyQHVuaXguZ2Vlay5u
ej4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjgsNiArMjksOCBAQAogI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogI2luY2x1ZGUgIlBhc3RlYm9h
cmRIZWxwZXJHdGsuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiQ1N0cmlu
Zy5oIgogCiAjaWYgRU5BQkxFKERBVEFCQVNFKQogI2luY2x1ZGUgIkRhdGFiYXNlVHJhY2tlci5o
IgpAQCAtODEsNiArODQsNDYgQEAgV2ViS2l0V2ViVmlldyoga2l0KFdlYkNvcmU6OlBhZ2UqIGNv
cmVQYQogICAgIHJldHVybiBjbGllbnQgPyBjbGllbnQtPndlYlZpZXcoKSA6IDA7CiB9CiAKK1dl
YktpdE5hdmlnYXRpb25BY3Rpb24qIGtpdChjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9u
JiBhY3Rpb24pCit7CisgICAgV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiogd2ViS2l0QWN0aW9uID0g
V0VCS0lUX05BVklHQVRJT05fQUNUSU9OKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9OQVZJR0FU
SU9OX0FDVElPTiwgTlVMTCkpOworICAgIFdlYktpdE5hdmlnYXRpb25BY3Rpb25Qcml2YXRlKiBw
cml2ID0gd2ViS2l0QWN0aW9uLT5wcml2OworCisgICAgY29uc3QgRXZlbnQqIGV2ZW50ID0gYWN0
aW9uLmV2ZW50KCk7CisgICAgaWYgKGV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSkKKyAg
ICB7CisgICAgICAgIGNvbnN0IE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxj
b25zdCBNb3VzZUV2ZW50Kj4oZXZlbnQpOworICAgICAgICBwcml2LT5idXR0b24gPSBtb3VzZUV2
ZW50LT5idXR0b24oKTsKKyAgICB9CisKKyAgICBjb25zdCBVSUV2ZW50V2l0aEtleVN0YXRlKiBr
ZXlTdGF0ZUV2ZW50ID0gZmluZEV2ZW50V2l0aEtleVN0YXRlKGNvbnN0X2Nhc3Q8RXZlbnQqPihl
dmVudCkpOworICAgIGlmIChrZXlTdGF0ZUV2ZW50KQorICAgIHsKKyAgICAgICAgaW50IG1vZGlm
aWVyRmxhZ3MgPSAwOworCisgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5zaGlmdEtleSgpKQor
ICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBHREtfU0hJRlRfTUFTSzsKKyAgICAgICAgaWYg
KGtleVN0YXRlRXZlbnQtPmN0cmxLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0g
R0RLX0NPTlRST0xfTUFTSzsKKyAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPmFsdEtleSgpKQor
ICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBHREtfTU9EMV9NQVNLOworICAgICAgICBpZiAo
a2V5U3RhdGVFdmVudC0+bWV0YUtleSgpKQorICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBH
REtfTU9EMl9NQVNLOworCisgICAgICAgIHByaXYtPm1vZGlmaWVyRmxhZ3MgPSBtb2RpZmllckZs
YWdzOworICAgIH0KKworICAgIHByaXYtPm5hdmlnYXRpb25UeXBlID0gYWN0aW9uLnR5cGUoKTsK
KworICAgIENTdHJpbmcgdGVtcFN0ciA9IGFjdGlvbi51cmwoKS5zdHJpbmcoKS51dGY4KCk7Cisg
ICAgY29uc3QgY2hhciogdXJsID0gdGVtcFN0ci5kYXRhKCk7CisKKyAgICBwcml2LT5vcmlnaW5h
bFVSTCA9IChnY2hhciopIG1hbGxvYyhzdHJsZW4odXJsKSArIDEpOworICAgIHN0cmNweShwcml2
LT5vcmlnaW5hbFVSTCwgdXJsKTsKKworICAgIHJldHVybiB3ZWJLaXRBY3Rpb247Cit9CisKIH0g
LyoqIGVuZCBuYW1lc3BhY2UgV2ViQ29yZSAqLwogCiB2b2lkIHdlYmtpdF9pbml0KCkKSW5kZXg6
IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgJKHJldmlzaW9uIDMxMTY4KQorKysgV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYmZyYW1lLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dl
YmtpdHdlYnNldHRpbmdzLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0
Lmg+CisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5hdmlnYXRpb25hY3Rpb24uaD4KICNpbmNsdWRl
IDx3ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0Lmg+CiAKICNpbmNsdWRlICJCYWNrRm9y
d2FyZExpc3QuaCIKQEAgLTM5LDYgKzQwLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIk5h
dmlnYXRpb25BY3Rpb24uaCIKIAogI2luY2x1ZGUgPGdsaWIuaD4KIApAQCAtNTQsNiArNTYsOCBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICBXZWJDb3JlOjpIaXN0b3J5SXRlbSogY29yZShXZWJL
aXRXZWJIaXN0b3J5SXRlbSopOwogICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtKiBraXQoV2ViQ29y
ZTo6SGlzdG9yeUl0ZW0qKTsKIAorICAgIFdlYktpdE5hdmlnYXRpb25BY3Rpb24qIGtpdChjb25z
dCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJik7CisKICAgICBXZWJDb3JlOjpCYWNrRm9yd2Fy
ZExpc3QqIGNvcmUoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0Kik7CiB9CiAKQEAgLTEwNiw2ICsx
MTAsMTUgQEAgZXh0ZXJuICJDIiB7CiAgICAgICAgIGdjaGFyKiB1cmk7CiAgICAgfTsKIAorICAg
ICNkZWZpbmUgV0VCS0lUX05BVklHQVRJT05fQUNUSU9OX0dFVF9QUklWQVRFKG9iaikgICAgKEdf
VFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVfTkFWSUdBVElPTl9B
Q1RJT04sIFdlYktpdE5hdmlnYXRpb25BY3Rpb25Qcml2YXRlKSkKKyAgICB0eXBlZGVmIHN0cnVj
dCBfV2ViS2l0TmF2aWdhdGlvbkFjdGlvblByaXZhdGUgV2ViS2l0TmF2aWdhdGlvbkFjdGlvblBy
aXZhdGU7CisgICAgc3RydWN0IF9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZSB7CisgICAg
ICAgIGdpbnQgYnV0dG9uOworICAgICAgICBnaW50IG1vZGlmaWVyRmxhZ3M7CisgICAgICAgIGdp
bnQgbmF2aWdhdGlvblR5cGU7CisgICAgICAgIGdjaGFyKiBvcmlnaW5hbFVSTDsKKyAgICB9Owor
CiAgICAgV2ViS2l0V2ViRnJhbWUqCiAgICAgd2Via2l0X3dlYl9mcmFtZV9pbml0X3dpdGhfd2Vi
X3ZpZXcoV2ViS2l0V2ViVmlldyosIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCopOwog
CkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAkocmV2aXNpb24gMzExNjgpCisr
KyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NCw2ICs0LDcgQEAKICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgWGFuIExvcGV6IDx4YW5AZ25vbWUu
b3JnPgogICogIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgog
ICogIENvcHlyaWdodCAoQykgMjAwOCBKYW4gQWxvbnpvIDxqbWFsb256b0B1bnBsdWdnYWJsZS5j
b20+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEphc3BlciBCcnlhbnQtR3JlZW5lIDxqYXNwZXJA
dW5peC5nZWVrLm56PgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtNDgwLDEyICs0ODEsNiBAQCBz
dGF0aWMgV2ViS2l0V2ViVmlldyogd2Via2l0X3dlYl92aWV3X3JlCiAgICAgcmV0dXJuIDA7CiB9
CiAKLXN0YXRpYyBXZWJLaXROYXZpZ2F0aW9uUmVzcG9uc2Ugd2Via2l0X3dlYl92aWV3X3JlYWxf
bmF2aWdhdGlvbl9yZXF1ZXN0ZWQoV2ViS2l0V2ViVmlldyosIFdlYktpdFdlYkZyYW1lKiBmcmFt
ZSwgV2ViS2l0TmV0d29ya1JlcXVlc3QqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0FDQ0VQVDsKLX0KLQogc3RhdGljIHZv
aWQgd2Via2l0X3dlYl92aWV3X3JlYWxfd2luZG93X29iamVjdF9jbGVhcmVkKFdlYktpdFdlYlZp
ZXcqLCBXZWJLaXRXZWJGcmFtZSosIEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiB3aW5kb3dfb2JqZWN0KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC02NjQsMTQg
KzY1OSwzMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXCiAgICAg
ICogU2lnbmFscwogICAgICAqLwogCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzo6bmF2
aWdhdGlvbi1yZXF1ZXN0ZWQ6CisgICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IG9uIHdoaWNo
IHRoZSBzaWduYWwgaXMgZW1pdHRlZAorICAgICAqIEBhY3Rpb246IGEgV2ViS2l0TmF2aWdhdGlv
bkFjdGlvbiB0aGF0IHByb3ZpZGVzIHRoZSBjb250ZXh0IGZvciB0aGlzCisgICAgICogbmF2aWdh
dGlvbiByZXF1ZXN0LCBzdWNoIGFzIG1vdXNlIGJ1dHRvbiBhbmQga2V5Ym9hcmQgc3RhdGUgKFNo
aWZ0LAorICAgICAqIENvbnRyb2wsIEFsdCkuCisgICAgICogQGZyYW1lOiB0aGUgI1dlYktpdFdl
YkZyYW1lIHRvIGRvIHRoZSBuYXZpZ2F0aW9uIGFjdGlvbgorICAgICAqIEBuZXR3b3JrUmVxdWVz
dDogdGhlIFdlYktpdE5ldHdvcmtSZXF1ZXN0CisgICAgICogQHJldHVybjogYSBXZWJLaXROYXZp
Z2F0aW9uUmVzcG9uc2UsIHN1Y2ggYXMKKyAgICAgKiBXRUJLSVRfTkFWSUdBVElPTl9SRVNQT05T
RV9BQ0NFUFQuCisgICAgICoKKyAgICAgKiBFbWl0dGVkIHdoZW4gYSAjV2ViS2l0V2ViRnJhbWUg
b2YgdGhpcyAjV2ViS2l0V2ViVmlldyBpcyBtb3ZpbmcgdG8gYSBuZXcKKyAgICAgKiBsb2NhdGlv
biwgc3VjaCBhcyB3aGVuIGEgSFRNTCBhbmNob3IgaXMgY2xpY2tlZC4gVGhlIFdlYktpdE5hdmln
YXRpb25BY3Rpb24KKyAgICAgKiBwcm92aWRlcyBjb250ZXh0IChzdWNoIGFzIHdoaWNoIG1vdXNl
IGJ1dHRvbiB0aGUgYW5jaG9yIHdhcyBjbGlja2VkIG9uIGJ5KSwKKyAgICAgKiBhbmQgdGhlIGFw
cGxpY2F0aW9uIGNhbiByZXR1cm4gV0VCS0lUX05BVklHQVRJT05fUkVTUE9OU0VfSUdOT1JFICh0
byBpbnN0cnVjdAorICAgICAqIHRoaXMgI1dlYktpdFdlYlZpZXcgdG8gbm90IG9wZW4gdGhlIFVS
TCBpdHNlbGYpIGlmIHRoZSBhcHBsaWNhdGlvbiB3b3VsZAorICAgICAqIHJhdGhlciBvcGVuIHRo
ZSBVUkwgaW4gYSBuZXcgdGFiLCBmb3IgZXhhbXBsZS4KKyAgICAgKi8KICAgICB3ZWJraXRfd2Vi
X3ZpZXdfc2lnbmFsc1tOQVZJR0FUSU9OX1JFUVVFU1RFRF0gPSBnX3NpZ25hbF9uZXcoIm5hdmln
YXRpb24tcmVxdWVzdGVkIiwKICAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdD
bGFzcyksCiAgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdf
U0lHTkFMX0FDVElPTiksCi0gICAgICAgICAgICBHX1NUUlVDVF9PRkZTRVQgKFdlYktpdFdlYlZp
ZXdDbGFzcywgbmF2aWdhdGlvbl9yZXF1ZXN0ZWQpLAorICAgICAgICAgICAgMCwKICAgICAgICAg
ICAgIHdlYmtpdF9uYXZpZ2F0aW9uX3JlcXVlc3RfaGFuZGxlZCwKICAgICAgICAgICAgIE5VTEws
Ci0gICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9JTlRfX09CSkVDVF9PQkpFQ1QsCi0gICAgICAg
ICAgICBHX1RZUEVfSU5ULCAyLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfSU5UX19PQkpF
Q1RfT0JKRUNUX09CSkVDVCwKKyAgICAgICAgICAgIEdfVFlQRV9JTlQsIDMsCisgICAgICAgICAg
ICBHX1RZUEVfT0JKRUNULAogICAgICAgICAgICAgR19UWVBFX09CSkVDVCwKICAgICAgICAgICAg
IEdfVFlQRV9PQkpFQ1QpOwogCkBAIC05OTEsNyArMTAwNSw2IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF93ZWJfdmlld19jbGFzc19pbml0KFcKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMgb2YgdmlydHVh
bCBtZXRob2RzCiAgICAgICovCiAgICAgd2ViVmlld0NsYXNzLT5jcmVhdGVfd2ViX3ZpZXcgPSB3
ZWJraXRfd2ViX3ZpZXdfcmVhbF9jcmVhdGVfd2ViX3ZpZXc7Ci0gICAgd2ViVmlld0NsYXNzLT5u
YXZpZ2F0aW9uX3JlcXVlc3RlZCA9IHdlYmtpdF93ZWJfdmlld19yZWFsX25hdmlnYXRpb25fcmVx
dWVzdGVkOwogICAgIHdlYlZpZXdDbGFzcy0+d2luZG93X29iamVjdF9jbGVhcmVkID0gd2Via2l0
X3dlYl92aWV3X3JlYWxfd2luZG93X29iamVjdF9jbGVhcmVkOwogICAgIHdlYlZpZXdDbGFzcy0+
Y2hvb3NlX2ZpbGUgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jaG9vc2VfZmlsZTsKICAgICB3ZWJW
aWV3Q2xhc3MtPnNjcmlwdF9hbGVydCA9IHdlYmtpdF93ZWJfdmlld19yZWFsX3NjcmlwdF9hbGVy
dDsKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgJKHJldmlzaW9uIDMxMTY4KQorKysg
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSwx
MSArNjksNiBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdDbGFzcyB7CiAgICAgICovCiAgICAgV2Vi
S2l0V2ViVmlldyogICgqY3JlYXRlX3dlYl92aWV3KSAgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3
KTsKIAotICAgIC8qCi0gICAgICogVE9ETzogRklYTUU6IENyZWF0ZSBzb21ldGhpbmcgbGlrZSBX
ZWJQb2xpY3lEZWNpc2lvbkxpc3RlbmVyX1Byb3RvY29sIGluc3RlYWQKLSAgICAgKi8KLSAgICBX
ZWJLaXROYXZpZ2F0aW9uUmVzcG9uc2UgKCpuYXZpZ2F0aW9uX3JlcXVlc3RlZCkgKFdlYktpdFdl
YlZpZXcqIHdlYl92aWV3LCBXZWJLaXRXZWJGcmFtZSogZnJhbWUsIFdlYktpdE5ldHdvcmtSZXF1
ZXN0KiByZXF1ZXN0KTsKLQogICAgIHZvaWQgKCp3aW5kb3dfb2JqZWN0X2NsZWFyZWQpIChXZWJL
aXRXZWJWaWV3KiB3ZWJfdmlldywgV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBKU0dsb2JhbENvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgd2luZG93X29iamVjdCk7CiAgICAgZ2NoYXIqICAg
KCpjaG9vc2VfZmlsZSkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBXZWJLaXRXZWJGcmFtZSog
ZnJhbWUsIGNvbnN0IGdjaGFyKiBvbGRfZmlsZSk7CiAgICAgZ2Jvb2xlYW4gKCpzY3JpcHRfYWxl
cnQpIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25z
dCBnY2hhciogYWxlcnRfbWVzc2FnZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19893</attachid>
            <date>2008-03-19 20:43:16 -0700</date>
            <delta_ts>2008-12-20 07:36:47 -0800</delta_ts>
            <desc>less verbose duplication of string, return const gchar* through api, correct code style issues</desc>
            <filename>16092-implement-navigation-action-object.patch</filename>
            <type>text/plain</type>
            <size>20892</size>
            <attacher name="Jasper Bryant-Greene">jasper</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMxMTY4
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDgtMDMt
MTkgIEphc3BlciBCcnlhbnQtR3JlZW5lICA8amFzcGVyQHVuaXguZ2Vlay5uej4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXNvbHZlcyBodHRwOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5MgorICAgICAgICAiW0dUS10gTWlk
ZGxlLW1vdXNlIGNsaWNrIHNob3VsZCBhbGxvdyBvcGVuaW5nIGEgVVJMIGluIGEgbmV3IHRhYiIK
KworICAgICAgICBBZGRlZCBXZWJLaXROYXZpZ2F0aW9uQWN0aW9uIG9iamVjdCB0byBHVEsgQVBJ
CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKwogMjAwOC0wMy0xMiAgWGFuIExvcGV6ICA8
eGFuQGdub21lLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCkluZGV4OiBH
TlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBHTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMzEx
NjgpCisrKyBHTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMjgyLDYgKzI4Miw3IEBA
IHdlYmtpdGd0a19jcHBmbGFncyArPSBcCiB3ZWJraXRndGtfaF9hcGkgKz0gXAogCVdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdC5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgg
XAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5hdmlnYXRpb25hY3Rpb24uaCBcCiAJV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmZyYW1lLmggXApAQCAtMzA0LDYgKzMwNSw3IEBAIHdlYmtpdGd0a19oZWFkZXJzICs9IFwKIAlX
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuaAogCiB3ZWJraXRn
dGtfc291cmNlcyArPSBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmF2aWdhdGlvbmFjdGlv
bi5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcCBcCiAJ
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAgXApJbmRleDogV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDMxMTY4KQor
KysgV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzOCBAQAor
MjAwOC0wMy0xOSAgSmFzcGVyIEJyeWFudC1HcmVlbmUgIDxqYXNwZXJAdW5peC5nZWVrLm56Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc29sdmVz
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDkyCisgICAgICAgICJb
R1RLXSBNaWRkbGUtbW91c2UgY2xpY2sgc2hvdWxkIGFsbG93IG9wZW5pbmcgYSBVUkwgaW4gYSBu
ZXcgdGFiIgorCisgICAgICAgIENyZWF0ZWQgV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiBvYmplY3Qg
ZXhwb3J0ZWQgdGhyb3VnaCB0aGUgQVBJLiBUaGUKKyAgICAgICAgbmF2aWdhdGlvbi1yZXF1ZXN0
ZWQgc2lnbmFsIHByb3ZpZGVzIHRoaXMgb2JqZWN0IGFzIGNvbnRleHQgZm9yIHRoZQorICAgICAg
ICByZXF1ZXN0ZWQgbmF2aWdhdGlvbiwgYWxsb3dpbmcgdGhlIGFwcGxpY2F0aW9uIHRvIGRlY2lk
ZSB3aGF0IHRvIGRvCisgICAgICAgIHdpdGggdGhlIG5hdmlnYXRpb24gYmFzZWQgb24gd2hpY2gg
bW91c2UgYnV0dG9uIHdhcyB1c2VkLCB3aGljaAorICAgICAgICBtb2RpZmllciBrZXlzIHdlcmUg
aGVsZCBkb3duLCBldGMuIFRoaXMgYWxsb3dzLCBmb3IgZXhhbXBsZSwgdGhlCisgICAgICAgIGFw
cGxpY2F0aW9uIHRvIG9wZW4gbGlua3MgaW4gYSBuZXcgdGFiIHdoZW4gZWl0aGVyIG1pZGRsZS1j
bGljayBvcgorICAgICAgICBjb250cm9sLWNsaWNrIGFyZSB1c2VkIHRvIGluaXRpYXRlIHRoZSBu
YXZpZ2F0aW9uLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiB3ZWJraXQvaGVhZGVycy5w
cmk6CisgICAgICAgICogd2Via2l0L3dlYmtpdC1tYXJzaGFsLmxpc3Q6CisgICAgICAgICogd2Vi
a2l0L3dlYmtpdGRlZmluZXMuaDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0bmF2aWdhdGlvbmFj
dGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAod2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2ZpbmFs
aXplKToKKyAgICAgICAgKHdlYmtpdF9uYXZpZ2F0aW9uX2FjdGlvbl9jbGFzc19pbml0KToKKyAg
ICAgICAgKHdlYmtpdF9uYXZpZ2F0aW9uX2FjdGlvbl9pbml0KToKKyAgICAgICAgKHdlYmtpdF9u
YXZpZ2F0aW9uX2FjdGlvbl9nZXRfYnV0dG9uKToKKyAgICAgICAgKHdlYmtpdF9uYXZpZ2F0aW9u
X2FjdGlvbl9nZXRfbW9kaWZpZXJfZmxhZ3MpOgorICAgICAgICAod2Via2l0X25hdmlnYXRpb25f
YWN0aW9uX2dldF9uYXZpZ2F0aW9uX3R5cGUpOgorICAgICAgICAod2Via2l0X25hdmlnYXRpb25f
YWN0aW9uX2dldF9vcmlnaW5hbF91cmwpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRuYXZpZ2F0
aW9uYWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6a2l0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5o
OgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2Vidmlldy5oOgorCiAyMDA4LTAzLTE4ICBSb2RuZXkgRGF3ZXMgIDxkb2JleUB3YXlv
ZnRoZW1vbmtleS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYW5kIGxhbmRlZCBieSBqaG9uZXlj
dXR0LgpJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDMxMTY4KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQw
LDcgQEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJranNfYmluZGlu
Zy5oIgogI2luY2x1ZGUgImtqc19wcm94eS5oIgorI2luY2x1ZGUgIndlYmtpdG5hdmlnYXRpb25h
Y3Rpb24uaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCiAjaW5jbHVkZSAid2Via2l0d2Vi
ZnJhbWUuaCIKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCkBAIC0yNDUsOSArMjQ2LDkgQEAg
dm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQbwogCiAgICAgV2ViS2l0V2Vi
Vmlldyogd2ViVmlldyA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7CiAgICAgV2ViS2l0TmV0
d29ya1JlcXVlc3QqIHJlcXVlc3QgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X25ldyhyZXNvdXJj
ZVJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgV2ViS2l0TmF2aWdh
dGlvblJlc3BvbnNlIHJlc3BvbnNlOworICAgIFdlYktpdE5hdmlnYXRpb25SZXNwb25zZSByZXNw
b25zZSA9IFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0FDQ0VQVDsKIAotICAgIGdfc2lnbmFs
X2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAibmF2aWdhdGlvbi1yZXF1ZXN0ZWQiLCBtX2ZyYW1lLCBy
ZXF1ZXN0LCAmcmVzcG9uc2UpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAi
bmF2aWdhdGlvbi1yZXF1ZXN0ZWQiLCBraXQoYWN0aW9uKSwgbV9mcmFtZSwgcmVxdWVzdCwgJnJl
c3BvbnNlKTsKIAogICAgIGdfb2JqZWN0X3VucmVmKHJlcXVlc3QpOwogCkluZGV4OiBXZWJLaXQv
Z3RrL3dlYmtpdC9oZWFkZXJzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9o
ZWFkZXJzLnByaQkocmV2aXNpb24gMzExNjgpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9oZWFkZXJz
LnByaQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIFdFQktJVF9BUElfSEVBREVSUyA9
ICQkUFdEL3dlYmtpdC5oIFwKICAgICAgICAgICAgICAgICAgICAgICQkUFdEL3dlYmtpdGRlZmlu
ZXMuaCBcCisgICAgICAgICAgICAgICAgICAgICAkJFBXRC93ZWJraXRuYXZpZ2F0aW9uYWN0aW9u
LmggXAogICAgICAgICAgICAgICAgICAgICAgJCRQV0Qvd2Via2l0bmV0d29ya3JlcXVlc3QuaCBc
CiAgICAgICAgICAgICAgICAgICAgICAkJFBXRC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaCBc
CiAgICAgICAgICAgICAgICAgICAgICAkJFBXRC93ZWJraXR3ZWJmcmFtZS5oIFwKSW5kZXg6IFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdC1tYXJzaGFsLmxpc3QKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0LW1hcnNoYWwubGlzdAkocmV2aXNpb24gMzExNjgpCisrKyBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXQtbWFyc2hhbC5saXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xMCwz
ICsxMCw0IEBAIEJPT0xFQU46T0JKRUNULFNUUklORwogQk9PTEVBTjpPQkpFQ1QsU1RSSU5HLEJP
T0xFQU4KIEJPT0xFQU46T0JKRUNULFNUUklORyxTVFJJTkcsU1RSSU5HCiBJTlQ6T0JKRUNULE9C
SkVDVAorSU5UOk9CSkVDVCxPQkpFQ1QsT0JKRUNUCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRkZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVm
aW5lcy5oCShyZXZpc2lvbiAzMTE2OCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmlu
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsOSBAQAogCiBHX0JFR0lOX0RFQ0xTCiAK
K3R5cGVkZWYgc3RydWN0IF9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uIFdlYktpdE5hdmlnYXRpb25B
Y3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TmF2aWdhdGlvbkFjdGlvbkNsYXNzIFdlYktp
dE5hdmlnYXRpb25BY3Rpb25DbGFzczsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtS
ZXF1ZXN0IFdlYktpdE5ldHdvcmtSZXF1ZXN0OwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdv
cmtSZXF1ZXN0Q2xhc3MgV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzczsKIApJbmRleDogV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0bmF2aWdhdGlvbmFjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0bmF2aWdhdGlvbmFjdGlvbi5jcHAJKHJldmlzaW9uIDApCisr
KyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuYXZpZ2F0aW9uYWN0aW9uLmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKYXNwZXIgQnJ5
YW50LUdyZWVuZSA8amFzcGVyQHVuaXguZ2Vlay5uej4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
bmNsdWRlICJ3ZWJraXRuYXZpZ2F0aW9uYWN0aW9uLmgiCisKK2V4dGVybiAiQyIgeworCitHX0RF
RklORV9UWVBFKFdlYktpdE5hdmlnYXRpb25BY3Rpb24sIHdlYmtpdF9uYXZpZ2F0aW9uX2FjdGlv
biwgR19UWVBFX09CSkVDVCk7CisKK3N0cnVjdCBfV2ViS2l0TmF2aWdhdGlvbkFjdGlvblByaXZh
dGUgeworICAgIGdpbnQgYnV0dG9uOworICAgIGdpbnQgbW9kaWZpZXJGbGFnczsKKyAgICBnaW50
IG5hdmlnYXRpb25UeXBlOworICAgIGdjaGFyKiBvcmlnaW5hbFVSTDsKK307CisKKyNkZWZpbmUg
V0VCS0lUX05BVklHQVRJT05fQUNUSU9OX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5D
RV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVfTkFWSUdBVElPTl9BQ1RJT04sIFdlYktp
dE5hdmlnYXRpb25BY3Rpb25Qcml2YXRlKSkKKworc3RhdGljIHZvaWQgd2Via2l0X25hdmlnYXRp
b25fYWN0aW9uX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICBXZWJLaXROYXZpZ2F0
aW9uQWN0aW9uKiBhY3Rpb24gPSBXRUJLSVRfTkFWSUdBVElPTl9BQ1RJT04ob2JqZWN0KTsKKyAg
ICBXZWJLaXROYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZSogcHJpdiA9IGFjdGlvbi0+cHJpdjsKKwor
ICAgIGdfZnJlZShwcml2LT5vcmlnaW5hbFVSTCk7CisKKyAgICBHX09CSkVDVF9DTEFTUyh3ZWJr
aXRfbmF2aWdhdGlvbl9hY3Rpb25fcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30K
Kworc3RhdGljIHZvaWQgd2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2NsYXNzX2luaXQoV2ViS2l0
TmF2aWdhdGlvbkFjdGlvbkNsYXNzKiBrbGFzcykKK3sKKyAgICBHX09CSkVDVF9DTEFTUyhrbGFz
cyktPmZpbmFsaXplID0gd2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2ZpbmFsaXplOworCisgICAg
Z190eXBlX2NsYXNzX2FkZF9wcml2YXRlKGtsYXNzLCBzaXplb2YoV2ViS2l0TmF2aWdhdGlvbkFj
dGlvblByaXZhdGUpKTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X25hdmlnYXRpb25fYWN0aW9u
X2luaXQoV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiogYWN0aW9uKQoreworICAgIFdlYktpdE5hdmln
YXRpb25BY3Rpb25Qcml2YXRlKiBwcml2ID0gV0VCS0lUX05BVklHQVRJT05fQUNUSU9OX0dFVF9Q
UklWQVRFKGFjdGlvbik7CisgICAgYWN0aW9uLT5wcml2ID0gcHJpdjsKK30KKworZ2ludCB3ZWJr
aXRfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X2J1dHRvbihXZWJLaXROYXZpZ2F0aW9uQWN0aW9uKiBh
Y3Rpb24pCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX05BVklHQVRJT05f
QUNUSU9OKGFjdGlvbiksIE5VTEwpOworICAgIHJldHVybiBhY3Rpb24tPnByaXYtPmJ1dHRvbjsK
K30KKworZ2ludCB3ZWJraXRfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X21vZGlmaWVyX2ZsYWdzKFdl
YktpdE5hdmlnYXRpb25BY3Rpb24qIGFjdGlvbikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfTkFWSUdBVElPTl9BQ1RJT04oYWN0aW9uKSwgTlVMTCk7CisgICAgcmV0dXJu
IGFjdGlvbi0+cHJpdi0+bW9kaWZpZXJGbGFnczsKK30KKworZ2ludCB3ZWJraXRfbmF2aWdhdGlv
bl9hY3Rpb25fZ2V0X25hdmlnYXRpb25fdHlwZShXZWJLaXROYXZpZ2F0aW9uQWN0aW9uKiBhY3Rp
b24pCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX05BVklHQVRJT05fQUNU
SU9OKGFjdGlvbiksIE5VTEwpOworICAgIHJldHVybiBhY3Rpb24tPnByaXYtPm5hdmlnYXRpb25U
eXBlOworfQorCitjb25zdCBnY2hhciogd2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2dldF9vcmln
aW5hbF91cmwoV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiogYWN0aW9uKQoreworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19OQVZJR0FUSU9OX0FDVElPTihhY3Rpb24pLCBOVUxMKTsK
KyAgICByZXR1cm4gYWN0aW9uLT5wcml2LT5vcmlnaW5hbFVSTDsKK30KKworfQpJbmRleDogV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0bmF2aWdhdGlvbmFjdGlvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdG5hdmlnYXRpb25hY3Rpb24uaAkocmV2aXNpb24gMCkKKysr
IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5hdmlnYXRpb25hY3Rpb24uaAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKYXNwZXIgQnJ5YW50
LUdyZWVuZSA8amFzcGVyQHVuaXguZ2Vlay5uej4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdFQktJVF9OQVZJR0FUSU9OX0FD
VElPTl9ICisjZGVmaW5lIFdFQktJVF9OQVZJR0FUSU9OX0FDVElPTl9ICisKKyNpbmNsdWRlIDxn
bGliLW9iamVjdC5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKworI2luY2x1ZGUgPHdlYmtpdC93ZWJr
aXRkZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9OQVZJ
R0FUSU9OX0FDVElPTiAgICAgICAgICAgICh3ZWJraXRfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgV0VCS0lUX05BVklHQVRJT05fQUNUSU9OKG9iaikgICAgICAgICAgICAo
R19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX05BVklHQVRJT05f
QUNUSU9OLCBXZWJLaXROYXZpZ2F0aW9uQWN0aW9uKSkKKyNkZWZpbmUgV0VCS0lUX05BVklHQVRJ
T05fQUNUSU9OX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNz
KSwgIFdFQktJVF9UWVBFX05BVklHQVRJT05fQUNUSU9OLCBXZWJLaXROYXZpZ2F0aW9uQWN0aW9u
Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfTkFWSUdBVElPTl9BQ1RJT04ob2JqKSAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfTkFWSUdBVElP
Tl9BQ1RJT04pKQorI2RlZmluZSBXRUJLSVRfSVNfTkFWSUdBVElPTl9BQ1RJT05fQ0xBU1Moa2xh
c3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfTkFWSUdB
VElPTl9BQ1RJT04pKQorI2RlZmluZSBXRUJLSVRfTkFWSUdBVElPTl9BQ1RJT05fR0VUX0NMQVNT
KG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfTkFW
SUdBVElPTl9BQ1RJT04sIFdlYktpdE5hdmlnYXRpb25BY3Rpb25DbGFzcykpCisKK3R5cGVkZWYg
c3RydWN0IF9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZSBXZWJLaXROYXZpZ2F0aW9uQWN0
aW9uUHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uIHsKKyAgICBHT2Jq
ZWN0IHBhcmVudF9pbnN0YW5jZTsKKworICAgIFdlYktpdE5hdmlnYXRpb25BY3Rpb25Qcml2YXRl
KiBwcml2OworfTsKKworc3RydWN0IF9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uQ2xhc3MgeworICAg
IEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJr
aXRfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIGdpbnQK
K3dlYmtpdF9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfYnV0dG9uIChXZWJLaXROYXZpZ2F0aW9uQWN0
aW9uKiBhY3Rpb24pOworCitXRUJLSVRfQVBJIGdpbnQKK3dlYmtpdF9uYXZpZ2F0aW9uX2FjdGlv
bl9nZXRfbW9kaWZpZXJfZmxhZ3MgKFdlYktpdE5hdmlnYXRpb25BY3Rpb24qIGFjdGlvbik7CisK
K1dFQktJVF9BUEkgZ2ludAord2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2dldF9uYXZpZ2F0aW9u
X3R5cGUgKFdlYktpdE5hdmlnYXRpb25BY3Rpb24qIGFjdGlvbik7CisKK1dFQktJVF9BUEkgR19D
T05TVF9SRVRVUk4gZ2NoYXIqCit3ZWJraXRfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X29yaWdpbmFs
X3VybCAoV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiogYWN0aW9uKTsKKworR19FTkRfREVDTFMKKwor
I2VuZGlmCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcAkocmV2aXNpb24gMzEx
NjgpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMg
UGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKYXNwZXIgQnJ5YW50LUdyZWVu
ZSA8amFzcGVyQHVuaXguZ2Vlay5uej4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjgsNiArMjks
OCBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5o
IgogI2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXJHdGsuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50
LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgogCiAjaWYgRU5BQkxFKERBVEFCQVNFKQogI2luY2x1
ZGUgIkRhdGFiYXNlVHJhY2tlci5oIgpAQCAtODEsNiArODQsMzkgQEAgV2ViS2l0V2ViVmlldyog
a2l0KFdlYkNvcmU6OlBhZ2UqIGNvcmVQYQogICAgIHJldHVybiBjbGllbnQgPyBjbGllbnQtPndl
YlZpZXcoKSA6IDA7CiB9CiAKK1dlYktpdE5hdmlnYXRpb25BY3Rpb24qIGtpdChjb25zdCBXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24pCit7CisgICAgV2ViS2l0TmF2aWdhdGlvbkFj
dGlvbiogd2ViS2l0QWN0aW9uID0gV0VCS0lUX05BVklHQVRJT05fQUNUSU9OKGdfb2JqZWN0X25l
dyhXRUJLSVRfVFlQRV9OQVZJR0FUSU9OX0FDVElPTiwgTlVMTCkpOworICAgIFdlYktpdE5hdmln
YXRpb25BY3Rpb25Qcml2YXRlKiBwcml2ID0gd2ViS2l0QWN0aW9uLT5wcml2OworCisgICAgY29u
c3QgRXZlbnQqIGV2ZW50ID0gYWN0aW9uLmV2ZW50KCk7CisgICAgaWYgKGV2ZW50ICYmIGV2ZW50
LT5pc01vdXNlRXZlbnQoKSkgeworICAgICAgICBjb25zdCBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgTW91c2VFdmVudCo+KGV2ZW50KTsKKyAgICAgICAgcHJpdi0+
YnV0dG9uID0gbW91c2VFdmVudC0+YnV0dG9uKCk7CisgICAgfQorCisgICAgY29uc3QgVUlFdmVu
dFdpdGhLZXlTdGF0ZSoga2V5U3RhdGVFdmVudCA9IGZpbmRFdmVudFdpdGhLZXlTdGF0ZShjb25z
dF9jYXN0PEV2ZW50Kj4oZXZlbnQpKTsKKyAgICBpZiAoa2V5U3RhdGVFdmVudCkgeworICAgICAg
ICBpbnQgbW9kaWZpZXJGbGFncyA9IDA7CisKKyAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPnNo
aWZ0S2V5KCkpCisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IEdES19TSElGVF9NQVNLOwor
ICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+Y3RybEtleSgpKQorICAgICAgICAgICAgbW9kaWZp
ZXJGbGFncyB8PSBHREtfQ09OVFJPTF9NQVNLOworICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+
YWx0S2V5KCkpCisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IEdES19NT0QxX01BU0s7Cisg
ICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5tZXRhS2V5KCkpCisgICAgICAgICAgICBtb2RpZmll
ckZsYWdzIHw9IEdES19NT0QyX01BU0s7CisKKyAgICAgICAgcHJpdi0+bW9kaWZpZXJGbGFncyA9
IG1vZGlmaWVyRmxhZ3M7CisgICAgfQorCisgICAgcHJpdi0+bmF2aWdhdGlvblR5cGUgPSBhY3Rp
b24udHlwZSgpOworICAgIHByaXYtPm9yaWdpbmFsVVJMID0gZ19zdHJkdXAoYWN0aW9uLnVybCgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgcmV0dXJuIHdlYktpdEFjdGlvbjsKK30K
KwogfSAvKiogZW5kIG5hbWVzcGFjZSBXZWJDb3JlICovCiAKIHZvaWQgd2Via2l0X2luaXQoKQpJ
bmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAkocmV2aXNpb24gMzExNjgpCisrKyBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2ViZnJhbWUuaD4KICNpbmNsdWRlIDx3ZWJr
aXQvd2Via2l0d2Vic2V0dGluZ3MuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0bmV0d29ya3Jl
cXVlc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0bmF2aWdhdGlvbmFjdGlvbi5oPgogI2lu
Y2x1ZGUgPHdlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaD4KIAogI2luY2x1ZGUgIkJh
Y2tGb3J3YXJkTGlzdC5oIgpAQCAtMzksNiArNDAsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVk
ZSAiTmF2aWdhdGlvbkFjdGlvbi5oIgogCiAjaW5jbHVkZSA8Z2xpYi5oPgogCkBAIC01NCw2ICs1
Niw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBjb3Jl
KFdlYktpdFdlYkhpc3RvcnlJdGVtKik7CiAgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIGtpdChX
ZWJDb3JlOjpIaXN0b3J5SXRlbSopOwogCisgICAgV2ViS2l0TmF2aWdhdGlvbkFjdGlvbioga2l0
KGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKTsKKwogICAgIFdlYkNvcmU6OkJhY2tG
b3J3YXJkTGlzdCogY29yZShXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqKTsKIH0KIApAQCAtMTA2
LDYgKzExMCwxNSBAQCBleHRlcm4gIkMiIHsKICAgICAgICAgZ2NoYXIqIHVyaTsKICAgICB9Owog
CisgICAgI2RlZmluZSBXRUJLSVRfTkFWSUdBVElPTl9BQ1RJT05fR0VUX1BSSVZBVEUob2JqKSAg
ICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBXRUJLSVRfVFlQRV9OQVZJR0FU
SU9OX0FDVElPTiwgV2ViS2l0TmF2aWdhdGlvbkFjdGlvblByaXZhdGUpKQorICAgIHR5cGVkZWYg
c3RydWN0IF9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZSBXZWJLaXROYXZpZ2F0aW9uQWN0
aW9uUHJpdmF0ZTsKKyAgICBzdHJ1Y3QgX1dlYktpdE5hdmlnYXRpb25BY3Rpb25Qcml2YXRlIHsK
KyAgICAgICAgZ2ludCBidXR0b247CisgICAgICAgIGdpbnQgbW9kaWZpZXJGbGFnczsKKyAgICAg
ICAgZ2ludCBuYXZpZ2F0aW9uVHlwZTsKKyAgICAgICAgZ2NoYXIqIG9yaWdpbmFsVVJMOworICAg
IH07CisKICAgICBXZWJLaXRXZWJGcmFtZSoKICAgICB3ZWJraXRfd2ViX2ZyYW1lX2luaXRfd2l0
aF93ZWJfdmlldyhXZWJLaXRXZWJWaWV3KiwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50
Kik7CiAKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCShyZXZpc2lvbiAzMTE2
OCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00LDYgKzQsNyBAQAogICogIENvcHlyaWdodCAoQykgMjAwNyBYYW4gTG9wZXogPHhhbkBn
bm9tZS5vcmc+CiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5j
b20+CiAgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEphbiBBbG9uem8gPGptYWxvbnpvQHVucGx1Z2dh
YmxlLmNvbT4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggSmFzcGVyIEJyeWFudC1HcmVlbmUgPGph
c3BlckB1bml4LmdlZWsubno+CiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC00ODAsMTIgKzQ4MSw2
IEBAIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiB3ZWJraXRfd2ViX3ZpZXdfcmUKICAgICByZXR1cm4g
MDsKIH0KIAotc3RhdGljIFdlYktpdE5hdmlnYXRpb25SZXNwb25zZSB3ZWJraXRfd2ViX3ZpZXdf
cmVhbF9uYXZpZ2F0aW9uX3JlcXVlc3RlZChXZWJLaXRXZWJWaWV3KiwgV2ViS2l0V2ViRnJhbWUq
IGZyYW1lLCBXZWJLaXROZXR3b3JrUmVxdWVzdCopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gV0VCS0lUX05BVklHQVRJT05fUkVTUE9OU0VfQUNDRVBUOwotfQotCiBzdGF0
aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbF93aW5kb3dfb2JqZWN0X2NsZWFyZWQoV2ViS2l0
V2ViVmlldyosIFdlYktpdFdlYkZyYW1lKiwgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQsIEpT
T2JqZWN0UmVmIHdpbmRvd19vYmplY3QpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTY2
NCwxNCArNjU5LDMzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFcK
ICAgICAgKiBTaWduYWxzCiAgICAgICovCiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJWaWV3
OjpuYXZpZ2F0aW9uLXJlcXVlc3RlZDoKKyAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgb24g
d2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCisgICAgICogQGFjdGlvbjogYSBXZWJLaXROYXZp
Z2F0aW9uQWN0aW9uIHRoYXQgcHJvdmlkZXMgdGhlIGNvbnRleHQgZm9yIHRoaXMKKyAgICAgKiBu
YXZpZ2F0aW9uIHJlcXVlc3QsIHN1Y2ggYXMgbW91c2UgYnV0dG9uIGFuZCBrZXlib2FyZCBzdGF0
ZSAoU2hpZnQsCisgICAgICogQ29udHJvbCwgQWx0KS4KKyAgICAgKiBAZnJhbWU6IHRoZSAjV2Vi
S2l0V2ViRnJhbWUgdG8gZG8gdGhlIG5hdmlnYXRpb24gYWN0aW9uCisgICAgICogQG5ldHdvcmtS
ZXF1ZXN0OiB0aGUgV2ViS2l0TmV0d29ya1JlcXVlc3QKKyAgICAgKiBAcmV0dXJuOiBhIFdlYktp
dE5hdmlnYXRpb25SZXNwb25zZSwgc3VjaCBhcworICAgICAqIFdFQktJVF9OQVZJR0FUSU9OX1JF
U1BPTlNFX0FDQ0VQVC4KKyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiBhICNXZWJLaXRXZWJG
cmFtZSBvZiB0aGlzICNXZWJLaXRXZWJWaWV3IGlzIG1vdmluZyB0byBhIG5ldworICAgICAqIGxv
Y2F0aW9uLCBzdWNoIGFzIHdoZW4gYSBIVE1MIGFuY2hvciBpcyBjbGlja2VkLiBUaGUgV2ViS2l0
TmF2aWdhdGlvbkFjdGlvbgorICAgICAqIHByb3ZpZGVzIGNvbnRleHQgKHN1Y2ggYXMgd2hpY2gg
bW91c2UgYnV0dG9uIHRoZSBhbmNob3Igd2FzIGNsaWNrZWQgb24gYnkpLAorICAgICAqIGFuZCB0
aGUgYXBwbGljYXRpb24gY2FuIHJldHVybiBXRUJLSVRfTkFWSUdBVElPTl9SRVNQT05TRV9JR05P
UkUgKHRvIGluc3RydWN0CisgICAgICogdGhpcyAjV2ViS2l0V2ViVmlldyB0byBub3Qgb3BlbiB0
aGUgVVJMIGl0c2VsZikgaWYgdGhlIGFwcGxpY2F0aW9uIHdvdWxkCisgICAgICogcmF0aGVyIG9w
ZW4gdGhlIFVSTCBpbiBhIG5ldyB0YWIsIGZvciBleGFtcGxlLgorICAgICAqLwogICAgIHdlYmtp
dF93ZWJfdmlld19zaWduYWxzW05BVklHQVRJT05fUkVRVUVTVEVEXSA9IGdfc2lnbmFsX25ldygi
bmF2aWdhdGlvbi1yZXF1ZXN0ZWQiLAogICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2Vi
Vmlld0NsYXNzKSwKICAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNU
IHwgR19TSUdOQUxfQUNUSU9OKSwKLSAgICAgICAgICAgIEdfU1RSVUNUX09GRlNFVCAoV2ViS2l0
V2ViVmlld0NsYXNzLCBuYXZpZ2F0aW9uX3JlcXVlc3RlZCksCisgICAgICAgICAgICAwLAogICAg
ICAgICAgICAgd2Via2l0X25hdmlnYXRpb25fcmVxdWVzdF9oYW5kbGVkLAogICAgICAgICAgICAg
TlVMTCwKLSAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX0lOVF9fT0JKRUNUX09CSkVDVCwKLSAg
ICAgICAgICAgIEdfVFlQRV9JTlQsIDIsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9JTlRf
X09CSkVDVF9PQkpFQ1RfT0JKRUNULAorICAgICAgICAgICAgR19UWVBFX0lOVCwgMywKKyAgICAg
ICAgICAgIEdfVFlQRV9PQkpFQ1QsCiAgICAgICAgICAgICBHX1RZUEVfT0JKRUNULAogICAgICAg
ICAgICAgR19UWVBFX09CSkVDVCk7CiAKQEAgLTk5MSw3ICsxMDA1LDYgQEAgc3RhdGljIHZvaWQg
d2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoVwogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2
aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KICAgICB3ZWJWaWV3Q2xhc3MtPmNyZWF0ZV93ZWJfdmll
dyA9IHdlYmtpdF93ZWJfdmlld19yZWFsX2NyZWF0ZV93ZWJfdmlldzsKLSAgICB3ZWJWaWV3Q2xh
c3MtPm5hdmlnYXRpb25fcmVxdWVzdGVkID0gd2Via2l0X3dlYl92aWV3X3JlYWxfbmF2aWdhdGlv
bl9yZXF1ZXN0ZWQ7CiAgICAgd2ViVmlld0NsYXNzLT53aW5kb3dfb2JqZWN0X2NsZWFyZWQgPSB3
ZWJraXRfd2ViX3ZpZXdfcmVhbF93aW5kb3dfb2JqZWN0X2NsZWFyZWQ7CiAgICAgd2ViVmlld0Ns
YXNzLT5jaG9vc2VfZmlsZSA9IHdlYmtpdF93ZWJfdmlld19yZWFsX2Nob29zZV9maWxlOwogICAg
IHdlYlZpZXdDbGFzcy0+c2NyaXB0X2FsZXJ0ID0gd2Via2l0X3dlYl92aWV3X3JlYWxfc2NyaXB0
X2FsZXJ0OwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaAkocmV2aXNpb24gMzExNjgp
CisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgJKHdvcmtpbmcgY29weSkKQEAg
LTY5LDExICs2OSw2IEBAIHN0cnVjdCBfV2ViS2l0V2ViVmlld0NsYXNzIHsKICAgICAgKi8KICAg
ICBXZWJLaXRXZWJWaWV3KiAgKCpjcmVhdGVfd2ViX3ZpZXcpICAoV2ViS2l0V2ViVmlldyogd2Vi
X3ZpZXcpOwogCi0gICAgLyoKLSAgICAgKiBUT0RPOiBGSVhNRTogQ3JlYXRlIHNvbWV0aGluZyBs
aWtlIFdlYlBvbGljeURlY2lzaW9uTGlzdGVuZXJfUHJvdG9jb2wgaW5zdGVhZAotICAgICAqLwot
ICAgIFdlYktpdE5hdmlnYXRpb25SZXNwb25zZSAoKm5hdmlnYXRpb25fcmVxdWVzdGVkKSAoV2Vi
S2l0V2ViVmlldyogd2ViX3ZpZXcsIFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgV2ViS2l0TmV0d29y
a1JlcXVlc3QqIHJlcXVlc3QpOwotCiAgICAgdm9pZCAoKndpbmRvd19vYmplY3RfY2xlYXJlZCkg
KFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBXZWJLaXRXZWJGcmFtZSogZnJhbWUsIEpTR2xvYmFs
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB3aW5kb3dfb2JqZWN0KTsKICAgICBnY2hh
ciogICAoKmNob29zZV9maWxlKSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIFdlYktpdFdlYkZy
YW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG9sZF9maWxlKTsKICAgICBnYm9vbGVhbiAoKnNjcmlw
dF9hbGVydCkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBXZWJLaXRXZWJGcmFtZSogZnJhbWUs
IGNvbnN0IGdjaGFyKiBhbGVydF9tZXNzYWdlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26169</attachid>
            <date>2008-12-20 07:36:47 -0800</date>
            <delta_ts>2008-12-20 07:43:20 -0800</delta_ts>
            <desc>0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch</desc>
            <filename>0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch</filename>
            <type>text/plain</type>
            <size>10127</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA2MzUwMDhiOWIwMjVlNmRmMTljY2VkMDQ3YWVjMDFkN2MyZTcxMWI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CkRhdGU6IFNhdCwg
MjAgRGVjIDIwMDggMTc6MzU6MTIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBBZGQgbW91c2UgYnV0
dG9uIGFuZCBrZXlib2FyZCBzdGF0ZSBtb2RpZmllcnMgaW5mbyB0byBuYXZpZ2F0aW9uIGFjdGlv
bi4KCi0tLQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE5ICsrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwIHwgICAyNCArKysrKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmln
YXRpb25hY3Rpb24uY3BwICAgIHwgICA4NyArKysrKysrKysrKysrKysrKysrLQogV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oICAgICAgfCAgICA2ICsrCiA0IGZp
bGVzIGNoYW5nZWQsIDEzNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYjlj
MWM0OS4uZTExMzY4MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAwOC0xMi0yMCAgWGFuIExvcGV6
ICA8eGFuQGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTIK
KworICAgICAgICBBZGQgbW91c2UgYnV0dG9uIGFuZCBrZXlib2FyZCBzdGF0ZSBtb2RpZmllcnMg
aW5mbyB0byBuYXZpZ2F0aW9uIGFjdGlvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICog
d2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwOgorICAgICAgICAoX1dlYktpdFdl
Yk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlOjopOgorICAgICAgICAoX1dlYktpdFdlYk5hdmlnYXRp
b25BY3Rpb25Qcml2YXRlOjp3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9wcm9wZXJ0
eSk6CisgICAgICAgIChfV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGU6OndlYmtpdF93
ZWJfbmF2aWdhdGlvbl9hY3Rpb25fc2V0X3Byb3BlcnR5KToKKyAgICAgICAgKF9XZWJLaXRXZWJO
YXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9jbGFz
c19pbml0KToKKyAgICAgICAgKF9XZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Vi
a2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfYnV0dG9uKToKKyAgICAgICAgKF9XZWJLaXRX
ZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9n
ZXRfbW9kaWZpZXJfc3RhdGUpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9u
YWN0aW9uLmg6CisKIDIwMDgtMTItMTkgIE1hcmNvIEJhcmlzaW9uZSAgPG1hcmNvLmJhcmlzaW9u
ZUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVy
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcAppbmRleCA3ZWZiNGRiLi5iOTc1ZTUyIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJN
SU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJQ
bHVnaW5EYXRhYmFzZS5oIgpAQCAtMzI2LDEwICszMjcsMzEgQEAgdm9pZCBGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKEZyYW1lUG9saWN5
RnVuY3QKICAgICAgICAgZ19vYmplY3RfdW5yZWYobV9wb2xpY3lEZWNpc2lvbik7CiAgICAgbV9w
b2xpY3lEZWNpc2lvbiA9IHBvbGljeURlY2lzaW9uOwogCi0gICAgLy8gVE9ETzogdXNlIGFjdGlv
bi5ldmVudCgpLgorICAgIGdpbnQgYnV0dG9uID0gLTEsIG1vZGlmaWVyRmxhZ3MgPSAwOworCisg
ICAgY29uc3QgRXZlbnQqIGV2ZW50ID0gYWN0aW9uLmV2ZW50KCk7CisgICAgaWYgKGV2ZW50ICYm
IGV2ZW50LT5pc01vdXNlRXZlbnQoKSkgeworICAgICAgICBjb25zdCBNb3VzZUV2ZW50KiBtb3Vz
ZUV2ZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgTW91c2VFdmVudCo+KGV2ZW50KTsKKyAgICAgICAg
YnV0dG9uID0gbW91c2VFdmVudC0+YnV0dG9uKCk7CisgICAgfQorCisgICAgY29uc3QgVUlFdmVu
dFdpdGhLZXlTdGF0ZSoga2V5U3RhdGVFdmVudCA9IGZpbmRFdmVudFdpdGhLZXlTdGF0ZShjb25z
dF9jYXN0PEV2ZW50Kj4oZXZlbnQpKTsKKyAgICBpZiAoa2V5U3RhdGVFdmVudCkgeworICAgICAg
ICBpZiAoa2V5U3RhdGVFdmVudC0+c2hpZnRLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVyRmxh
Z3MgfD0gR0RLX1NISUZUX01BU0s7CisgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5jdHJsS2V5
KCkpCisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IEdES19DT05UUk9MX01BU0s7CisgICAg
ICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5hbHRLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVyRmxh
Z3MgfD0gR0RLX01PRDFfTUFTSzsKKyAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPm1ldGFLZXko
KSkKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gR0RLX01PRDJfTUFTSzsKKyAgICB9CisK
ICAgICBHT2JqZWN0KiBuYXZpZ2F0aW9uQWN0aW9uID0gR19PQkpFQ1QoZ19vYmplY3RfbmV3KFdF
QktJVF9UWVBFX1dFQl9OQVZJR0FUSU9OX0FDVElPTiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYXNvbiIsIGtpdChhY3Rpb24udHlwZSgp
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJvcmlnaW5hbC11cmkiLCBhY3Rpb24udXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJidXR0
b24iLCBidXR0b24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAibW9kaWZpZXItc3RhdGUiLCBtb2RpZmllckZsYWdzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCkpOwogCiAgICAg
Z2Jvb2xlYW4gaXNIYW5kbGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwCmluZGV4IDdjZTMyNGEuLjdkMjY1ZTMgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwCisrKyBi
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwCkBAIC0zMyw2
ICszMyw4IEBAIGV4dGVybiAiQyIgewogc3RydWN0IF9XZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9u
UHJpdmF0ZSB7CiAgICAgV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiByZWFzb247CiAgICAgZ2No
YXIqIG9yaWdpbmFsVXJpOworICAgIGdpbnQgYnV0dG9uOworICAgIGdpbnQgbW9kaWZpZXJfc3Rh
dGU7CiB9OwogCiAjZGVmaW5lIFdFQktJVF9XRUJfTkFWSUdBVElPTl9BQ1RJT05fR0VUX1BSSVZB
VEUob2JqKShHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJVF9UWVBFX1dF
Ql9OQVZJR0FUSU9OX0FDVElPTiwgV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGUpKQpA
QCAtNDEsNyArNDMsOSBAQCBlbnVtICB7CiAgICAgUFJPUF8wLAogCiAgICAgUFJPUF9SRUFTT04s
Ci0gICAgUFJPUF9PUklHSU5BTF9VUkkKKyAgICBQUk9QX09SSUdJTkFMX1VSSSwKKyAgICBQUk9Q
X0JVVFRPTiwKKyAgICBQUk9QX01PRElGSUVSX1NUQVRFCiB9OwogCiBHX0RFRklORV9UWVBFKFdl
YktpdFdlYk5hdmlnYXRpb25BY3Rpb24sIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb24sIEdf
VFlQRV9PQkpFQ1QpCkBAIC01OCw2ICs2MiwxMiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX25h
dmlnYXRpb25fYWN0aW9uX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHBybwog
ICAgIGNhc2UgUFJPUF9PUklHSU5BTF9VUkk6CiAgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2
YWx1ZSwgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfb3JpZ2luYWxfdXJpKG5hdmln
YXRpb25BY3Rpb24pKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0JVVFRPTjoKKyAg
ICAgICAgZ192YWx1ZV9zZXRfaW50KHZhbHVlLCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9u
X2dldF9idXR0b24obmF2aWdhdGlvbkFjdGlvbikpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBST1BfTU9ESUZJRVJfU1RBVEU6CisgICAgICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1ZSwgd2Vi
a2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfbW9kaWZpZXJfc3RhdGUobmF2aWdhdGlvbkFj
dGlvbikpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9X
QVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlkLCBwc3BlYyk7CiAgICAg
ICAgIGJyZWFrOwpAQCAtNjcsNiArNzcsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX25hdmln
YXRpb25fYWN0aW9uX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHBybwogc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRfcHJvcGVydHkoR09iamVj
dCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1T
cGVjKiBwc3BlYykKIHsKICAgICBXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9u
QWN0aW9uID0gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX0FDVElPTihvYmplY3QpOworICAgIFdlYktp
dFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlKiBwcml2ID0gbmF2aWdhdGlvbkFjdGlvbi0+cHJp
djsKIAogICAgIHN3aXRjaChwcm9wZXJ0eUlkKSB7CiAgICAgY2FzZSBQUk9QX1JFQVNPTjoKQEAg
LTc1LDYgKzg2LDEyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25f
c2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvCiAgICAgY2FzZSBQUk9QX09S
SUdJTkFMX1VSSToKICAgICAgICAgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRfb3Jp
Z2luYWxfdXJpKG5hdmlnYXRpb25BY3Rpb24sIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpOwog
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfQlVUVE9OOgorICAgICAgICBwcml2LT5idXR0
b24gPSBnX3ZhbHVlX2dldF9pbnQodmFsdWUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBS
T1BfTU9ESUZJRVJfU1RBVEU6CisgICAgICAgIHByaXYtPm1vZGlmaWVyX3N0YXRlID0gZ192YWx1
ZV9nZXRfaW50KHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
R19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcGVydHlJZCwgcHNw
ZWMpOwogICAgICAgICBicmVhazsKQEAgLTE0MSw2ICsxNTgsMzkgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9jbGFzc19pbml0KFdlYktpdFdlYk5hdmlnYXRpb25B
Y3Rpb25DbGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIlRoZSBVUkkgdGhhdCB3YXMgcmVxdWVzdGVkIGFzIHRoZSB0YXJnZXQgZm9yIHRo
ZSBuYXZpZ2F0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncykoV0VCS0lUX1BBUkFNX1JFQURXUklURSB8
IEdfUEFSQU1fQ09OU1RSVUNUKSkpOworICAgIC8qKgorICAgICAqIFdlYktpdFdlYk5hdmlnYXRp
b25BY3Rpb246YnV0dG9uOgorICAgICAqCisgICAgICogVGhlIGJ1dHRvbiB1c2VkIHRvIGNsaWNr
IGlmIHRoZSBhY3Rpb24gd2FzIGEgbW91c2UgZXZlbnQuCisgICAgICoKKyAgICAgKiBTaW5jZTog
MS4wLjMKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVj
dENsYXNzLCBQUk9QX0JVVFRPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdfcGFyYW1fc3BlY19pbnQoImJ1dHRvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJCdXR0b24iLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGJ1dHRvbiB1c2VkIHRvIGNsaWNr
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdfTUFYSU5ULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAtMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9D
T05TVFJVQ1RfT05MWSkpKTsKKworICAgIC8qKgorICAgICAqIFdlYktpdFdlYk5hdmlnYXRpb25B
Y3Rpb246bW9kaWZpZXItc3RhdGU6CisgICAgICoKKyAgICAgKiBUaGUgc3RhdGUgb2YgdGhlIGtl
eWJvYXJkIG1vZGlmaWVycyB3aGVuIHRoZSBhY3Rpb24gd2FzIHJlcXVlc3RlZC4KKyAgICAgKiAK
KyAgICAgKiBTaW5jZTogMS4wLjMKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX01PRElGSUVSX1NUQVRFLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2ludCgibW9kaWZpZXItc3RhdGUi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
TW9kaWZpZXIgc3RhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiVGhlIHN0YXRlIG9mIHRoZSBrZXlib2FyZCBtb2RpZmllcnMiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01BWElO
VCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1Rf
T05MWSkpKTsKKworCiAKICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNz
LCBzaXplb2YoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGUpKTsKIH0KQEAgLTIyNCw0
ICsyNzQsMzkgQEAgdm9pZCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF9vcmlnaW5h
bF91cmkoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiogbmEKICAgICBnX29iamVjdF9ub3RpZnko
R19PQkpFQ1QobmF2aWdhdGlvbkFjdGlvbiksICJvcmlnaW5hbC11cmkiKTsKIH0KIAorLyoqCisg
KiB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9idXR0b246CisgKiBAbmF2aWdhdGlv
bkFjdGlvbjogYSAjV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbgorICoKKyAqIFJldHVybnMgdGhl
IG1vdXNlIGJ1dHRvbiB1c2VkIHRvIGNsaWNrIGlmIHRoZSBhY3Rpb24gd2FzIGEgbW91c2UgZXZl
bnQuCisgKiBPdGhlcndpc2UgcmV0dXJucyAtMS4KKyAqCisgKiBSZXR1cm4gdmFsdWU6IHRoZSBt
b3VzZSBidXR0b24gdXNlZCB0byBjbGljaworICoKKyAqIFNpbmNlOiAxLjAuMworICovCitnaW50
IHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X2J1dHRvbihXZWJLaXRXZWJOYXZpZ2F0
aW9uQWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9JU19XRUJfTkFWSUdBVElPTl9BQ1RJT04obmF2aWdhdGlvbkFjdGlvbiksIE5VTEwp
OworCisgICAgcmV0dXJuIG5hdmlnYXRpb25BY3Rpb24tPnByaXYtPmJ1dHRvbjsKK30KKworLyoq
CisgKiB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9tb2RpZmllcl9zdGF0ZToKKyAq
IEBuYXZpZ2F0aW9uQWN0aW9uOiBhICNXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uCisgKgorICog
UmV0dXJucyBhIGJpdG1hc2sgd2l0aCB0aGUgR0RLIGtleWJvYXJkIHN0YXRlIG1vZGlmaWVycy4K
KyAqCisgKiBSZXR1cm4gdmFsdWU6IHRoZSBrZXlib2FyZCBzdGF0ZSBtb2RpZmllcnMKKyAqCisg
KiBTaW5jZTogMS4wLjMKKyAqLworZ2ludCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dl
dF9tb2RpZmllcl9zdGF0ZShXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uQWN0
aW9uKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfTkFWSUdBVElP
Tl9BQ1RJT04obmF2aWdhdGlvbkFjdGlvbiksIE5VTEwpOworCisgICAgcmV0dXJuIG5hdmlnYXRp
b25BY3Rpb24tPnByaXYtPm1vZGlmaWVyX3N0YXRlOworfQorICAgIAogfQpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oCmluZGV4IDgzNDg5ZGUuLjI4MjVl
ZWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rp
b24uaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmgK
QEAgLTc2LDYgKzc2LDEyIEBAIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X29yaWdp
bmFsX3VyaShXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0CiBXRUJLSVRfQVBJIHZv
aWQKIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fc2V0X29yaWdpbmFsX3VyaShXZWJLaXRX
ZWJOYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uLCBjb25zdCBnY2hhciogb3JpZ2lu
YWxVcmkpOwogCitXRUJLSVRfQVBJIGdpbnQKK3dlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25f
Z2V0X2J1dHRvbihXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uKTsK
KworV0VCS0lUX0FQSSBnaW50Cit3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9tb2Rp
Zmllcl9zdGF0ZShXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uKTsK
KwogR19FTkRfREVDTFMKIAogI2VuZGlmCi0tIAoxLjYuMC42Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26170</attachid>
            <date>2008-12-20 07:43:20 -0800</date>
            <delta_ts>2008-12-20 08:02:46 -0800</delta_ts>
            <desc>0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch</desc>
            <filename>0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch</filename>
            <type>text/plain</type>
            <size>10122</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAyODFlYWNjMzIyMzk0OWVkN2Y2ZTMzMjFhY2M0Zjg5NzE5NTE0MDU4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CkRhdGU6IFNhdCwg
MjAgRGVjIDIwMDggMTc6MzU6MTIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBBZGQgbW91c2UgYnV0
dG9uIGFuZCBrZXlib2FyZCBzdGF0ZSBtb2RpZmllcnMgaW5mbyB0byBuYXZpZ2F0aW9uIGFjdGlv
bi4KCi0tLQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE5ICsrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwIHwgICAyNCArKysrKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmln
YXRpb25hY3Rpb24uY3BwICAgIHwgICA4NyArKysrKysrKysrKysrKysrKysrLQogV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oICAgICAgfCAgICA2ICsrCiA0IGZp
bGVzIGNoYW5nZWQsIDEzNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYjlj
MWM0OS4uZTExMzY4MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAwOC0xMi0yMCAgWGFuIExvcGV6
ICA8eGFuQGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTIK
KworICAgICAgICBBZGQgbW91c2UgYnV0dG9uIGFuZCBrZXlib2FyZCBzdGF0ZSBtb2RpZmllcnMg
aW5mbyB0byBuYXZpZ2F0aW9uIGFjdGlvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICog
d2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwOgorICAgICAgICAoX1dlYktpdFdl
Yk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlOjopOgorICAgICAgICAoX1dlYktpdFdlYk5hdmlnYXRp
b25BY3Rpb25Qcml2YXRlOjp3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9wcm9wZXJ0
eSk6CisgICAgICAgIChfV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGU6OndlYmtpdF93
ZWJfbmF2aWdhdGlvbl9hY3Rpb25fc2V0X3Byb3BlcnR5KToKKyAgICAgICAgKF9XZWJLaXRXZWJO
YXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9jbGFz
c19pbml0KToKKyAgICAgICAgKF9XZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Vi
a2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfYnV0dG9uKToKKyAgICAgICAgKF9XZWJLaXRX
ZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9n
ZXRfbW9kaWZpZXJfc3RhdGUpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9u
YWN0aW9uLmg6CisKIDIwMDgtMTItMTkgIE1hcmNvIEJhcmlzaW9uZSAgPG1hcmNvLmJhcmlzaW9u
ZUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVy
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcAppbmRleCA3ZWZiNGRiLi5iOTc1ZTUyIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJN
SU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJQ
bHVnaW5EYXRhYmFzZS5oIgpAQCAtMzI2LDEwICszMjcsMzEgQEAgdm9pZCBGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKEZyYW1lUG9saWN5
RnVuY3QKICAgICAgICAgZ19vYmplY3RfdW5yZWYobV9wb2xpY3lEZWNpc2lvbik7CiAgICAgbV9w
b2xpY3lEZWNpc2lvbiA9IHBvbGljeURlY2lzaW9uOwogCi0gICAgLy8gVE9ETzogdXNlIGFjdGlv
bi5ldmVudCgpLgorICAgIGdpbnQgYnV0dG9uID0gLTEsIG1vZGlmaWVyRmxhZ3MgPSAwOworCisg
ICAgY29uc3QgRXZlbnQqIGV2ZW50ID0gYWN0aW9uLmV2ZW50KCk7CisgICAgaWYgKGV2ZW50ICYm
IGV2ZW50LT5pc01vdXNlRXZlbnQoKSkgeworICAgICAgICBjb25zdCBNb3VzZUV2ZW50KiBtb3Vz
ZUV2ZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgTW91c2VFdmVudCo+KGV2ZW50KTsKKyAgICAgICAg
YnV0dG9uID0gbW91c2VFdmVudC0+YnV0dG9uKCk7CisgICAgfQorCisgICAgY29uc3QgVUlFdmVu
dFdpdGhLZXlTdGF0ZSoga2V5U3RhdGVFdmVudCA9IGZpbmRFdmVudFdpdGhLZXlTdGF0ZShjb25z
dF9jYXN0PEV2ZW50Kj4oZXZlbnQpKTsKKyAgICBpZiAoa2V5U3RhdGVFdmVudCkgeworICAgICAg
ICBpZiAoa2V5U3RhdGVFdmVudC0+c2hpZnRLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVyRmxh
Z3MgfD0gR0RLX1NISUZUX01BU0s7CisgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5jdHJsS2V5
KCkpCisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IEdES19DT05UUk9MX01BU0s7CisgICAg
ICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5hbHRLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVyRmxh
Z3MgfD0gR0RLX01PRDFfTUFTSzsKKyAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPm1ldGFLZXko
KSkKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gR0RLX01PRDJfTUFTSzsKKyAgICB9CisK
ICAgICBHT2JqZWN0KiBuYXZpZ2F0aW9uQWN0aW9uID0gR19PQkpFQ1QoZ19vYmplY3RfbmV3KFdF
QktJVF9UWVBFX1dFQl9OQVZJR0FUSU9OX0FDVElPTiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYXNvbiIsIGtpdChhY3Rpb24udHlwZSgp
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJvcmlnaW5hbC11cmkiLCBhY3Rpb24udXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJidXR0
b24iLCBidXR0b24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAibW9kaWZpZXItc3RhdGUiLCBtb2RpZmllckZsYWdzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCkpOwogCiAgICAg
Z2Jvb2xlYW4gaXNIYW5kbGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwCmluZGV4IDdjZTMyNGEuLjljNTIzNDQgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwCisrKyBi
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwCkBAIC0zMyw2
ICszMyw4IEBAIGV4dGVybiAiQyIgewogc3RydWN0IF9XZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9u
UHJpdmF0ZSB7CiAgICAgV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiByZWFzb247CiAgICAgZ2No
YXIqIG9yaWdpbmFsVXJpOworICAgIGdpbnQgYnV0dG9uOworICAgIGdpbnQgbW9kaWZpZXJfc3Rh
dGU7CiB9OwogCiAjZGVmaW5lIFdFQktJVF9XRUJfTkFWSUdBVElPTl9BQ1RJT05fR0VUX1BSSVZB
VEUob2JqKShHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJVF9UWVBFX1dF
Ql9OQVZJR0FUSU9OX0FDVElPTiwgV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGUpKQpA
QCAtNDEsNyArNDMsOSBAQCBlbnVtICB7CiAgICAgUFJPUF8wLAogCiAgICAgUFJPUF9SRUFTT04s
Ci0gICAgUFJPUF9PUklHSU5BTF9VUkkKKyAgICBQUk9QX09SSUdJTkFMX1VSSSwKKyAgICBQUk9Q
X0JVVFRPTiwKKyAgICBQUk9QX01PRElGSUVSX1NUQVRFCiB9OwogCiBHX0RFRklORV9UWVBFKFdl
YktpdFdlYk5hdmlnYXRpb25BY3Rpb24sIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb24sIEdf
VFlQRV9PQkpFQ1QpCkBAIC01OCw2ICs2MiwxMiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX25h
dmlnYXRpb25fYWN0aW9uX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHBybwog
ICAgIGNhc2UgUFJPUF9PUklHSU5BTF9VUkk6CiAgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2
YWx1ZSwgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfb3JpZ2luYWxfdXJpKG5hdmln
YXRpb25BY3Rpb24pKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0JVVFRPTjoKKyAg
ICAgICAgZ192YWx1ZV9zZXRfaW50KHZhbHVlLCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9u
X2dldF9idXR0b24obmF2aWdhdGlvbkFjdGlvbikpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBST1BfTU9ESUZJRVJfU1RBVEU6CisgICAgICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1ZSwgd2Vi
a2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfbW9kaWZpZXJfc3RhdGUobmF2aWdhdGlvbkFj
dGlvbikpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9X
QVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlkLCBwc3BlYyk7CiAgICAg
ICAgIGJyZWFrOwpAQCAtNjcsNiArNzcsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX25hdmln
YXRpb25fYWN0aW9uX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHBybwogc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRfcHJvcGVydHkoR09iamVj
dCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1T
cGVjKiBwc3BlYykKIHsKICAgICBXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9u
QWN0aW9uID0gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX0FDVElPTihvYmplY3QpOworICAgIFdlYktp
dFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlKiBwcml2ID0gbmF2aWdhdGlvbkFjdGlvbi0+cHJp
djsKIAogICAgIHN3aXRjaChwcm9wZXJ0eUlkKSB7CiAgICAgY2FzZSBQUk9QX1JFQVNPTjoKQEAg
LTc1LDYgKzg2LDEyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25f
c2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvCiAgICAgY2FzZSBQUk9QX09S
SUdJTkFMX1VSSToKICAgICAgICAgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRfb3Jp
Z2luYWxfdXJpKG5hdmlnYXRpb25BY3Rpb24sIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpOwog
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfQlVUVE9OOgorICAgICAgICBwcml2LT5idXR0
b24gPSBnX3ZhbHVlX2dldF9pbnQodmFsdWUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBS
T1BfTU9ESUZJRVJfU1RBVEU6CisgICAgICAgIHByaXYtPm1vZGlmaWVyX3N0YXRlID0gZ192YWx1
ZV9nZXRfaW50KHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
R19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcGVydHlJZCwgcHNw
ZWMpOwogICAgICAgICBicmVhazsKQEAgLTE0MSw2ICsxNTgsMzkgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9jbGFzc19pbml0KFdlYktpdFdlYk5hdmlnYXRpb25B
Y3Rpb25DbGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIlRoZSBVUkkgdGhhdCB3YXMgcmVxdWVzdGVkIGFzIHRoZSB0YXJnZXQgZm9yIHRo
ZSBuYXZpZ2F0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncykoV0VCS0lUX1BBUkFNX1JFQURXUklURSB8
IEdfUEFSQU1fQ09OU1RSVUNUKSkpOworICAgIC8qKgorICAgICAqIFdlYktpdFdlYk5hdmlnYXRp
b25BY3Rpb246YnV0dG9uOgorICAgICAqCisgICAgICogVGhlIGJ1dHRvbiB1c2VkIHRvIGNsaWNr
IGlmIHRoZSBhY3Rpb24gd2FzIGEgbW91c2UgZXZlbnQuCisgICAgICoKKyAgICAgKiBTaW5jZTog
MS4wLjMKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVj
dENsYXNzLCBQUk9QX0JVVFRPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdfcGFyYW1fc3BlY19pbnQoImJ1dHRvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJCdXR0b24iLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGJ1dHRvbiB1c2VkIHRvIGNsaWNr
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdfTUFYSU5ULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAtMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9D
T05TVFJVQ1RfT05MWSkpKTsKKworICAgIC8qKgorICAgICAqIFdlYktpdFdlYk5hdmlnYXRpb25B
Y3Rpb246bW9kaWZpZXItc3RhdGU6CisgICAgICoKKyAgICAgKiBUaGUgc3RhdGUgb2YgdGhlIGtl
eWJvYXJkIG1vZGlmaWVycyB3aGVuIHRoZSBhY3Rpb24gd2FzIHJlcXVlc3RlZC4KKyAgICAgKiAK
KyAgICAgKiBTaW5jZTogMS4wLjMKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX01PRElGSUVSX1NUQVRFLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2ludCgibW9kaWZpZXItc3RhdGUi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
TW9kaWZpZXIgc3RhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiVGhlIHN0YXRlIG9mIHRoZSBrZXlib2FyZCBtb2RpZmllcnMiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01BWElO
VCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1Rf
T05MWSkpKTsKKworCiAKICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNz
LCBzaXplb2YoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGUpKTsKIH0KQEAgLTIyNCw0
ICsyNzQsMzkgQEAgdm9pZCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF9vcmlnaW5h
bF91cmkoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiogbmEKICAgICBnX29iamVjdF9ub3RpZnko
R19PQkpFQ1QobmF2aWdhdGlvbkFjdGlvbiksICJvcmlnaW5hbC11cmkiKTsKIH0KIAorLyoqCisg
KiB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9idXR0b246CisgKiBAbmF2aWdhdGlv
bkFjdGlvbjogYSAjV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbgorICoKKyAqIFJldHVybnMgdGhl
IG1vdXNlIGJ1dHRvbiB1c2VkIHRvIGNsaWNrIGlmIHRoZSBhY3Rpb24gd2FzIGEgbW91c2UgZXZl
bnQuCisgKiBPdGhlcndpc2UgcmV0dXJucyAtMS4KKyAqCisgKiBSZXR1cm4gdmFsdWU6IHRoZSBt
b3VzZSBidXR0b24gdXNlZCB0byBjbGljaworICoKKyAqIFNpbmNlOiAxLjAuMworICovCitnaW50
IHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X2J1dHRvbihXZWJLaXRXZWJOYXZpZ2F0
aW9uQWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9JU19XRUJfTkFWSUdBVElPTl9BQ1RJT04obmF2aWdhdGlvbkFjdGlvbiksIC0xKTsK
KworICAgIHJldHVybiBuYXZpZ2F0aW9uQWN0aW9uLT5wcml2LT5idXR0b247Cit9CisKKy8qKgor
ICogd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfbW9kaWZpZXJfc3RhdGU6CisgKiBA
bmF2aWdhdGlvbkFjdGlvbjogYSAjV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbgorICoKKyAqIFJl
dHVybnMgYSBiaXRtYXNrIHdpdGggdGhlIEdESyBrZXlib2FyZCBzdGF0ZSBtb2RpZmllcnMuCisg
KgorICogUmV0dXJuIHZhbHVlOiB0aGUga2V5Ym9hcmQgc3RhdGUgbW9kaWZpZXJzCisgKgorICog
U2luY2U6IDEuMC4zCisgKi8KK2dpbnQgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRf
bW9kaWZpZXJfc3RhdGUoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlvbkFjdGlv
bikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX05BVklHQVRJT05f
QUNUSU9OKG5hdmlnYXRpb25BY3Rpb24pLCAwKTsKKworICAgIHJldHVybiBuYXZpZ2F0aW9uQWN0
aW9uLT5wcml2LT5tb2RpZmllcl9zdGF0ZTsKK30KKyAgICAKIH0KZGlmZiAtLWdpdCBhL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uaCBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uaAppbmRleCA4MzQ4OWRlLi4yODI1ZWViIDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmgK
KysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oCkBAIC03
Niw2ICs3NiwxMiBAQCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9vcmlnaW5hbF91
cmkoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiogbmF2aWdhdAogV0VCS0lUX0FQSSB2b2lkCiB3
ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF9vcmlnaW5hbF91cmkoV2ViS2l0V2ViTmF2
aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlvbkFjdGlvbiwgY29uc3QgZ2NoYXIqIG9yaWdpbmFsVXJp
KTsKIAorV0VCS0lUX0FQSSBnaW50Cit3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9i
dXR0b24oV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlvbkFjdGlvbik7CisKK1dF
QktJVF9BUEkgZ2ludAord2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfbW9kaWZpZXJf
c3RhdGUoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlvbkFjdGlvbik7CisKIEdf
RU5EX0RFQ0xTCiAKICNlbmRpZgotLSAKMS42LjAuNgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26171</attachid>
            <date>2008-12-20 08:02:46 -0800</date>
            <delta_ts>2008-12-21 02:25:18 -0800</delta_ts>
            <desc>0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch</desc>
            <filename>0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch</filename>
            <type>text/plain</type>
            <size>10154</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAzMTI4NzIwMzZiMTAwMGRiYzQ4NTg4ZTVmYzYxODBlZjFjMDUxNzFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CkRhdGU6IFNhdCwg
MjAgRGVjIDIwMDggMTc6MzU6MTIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBBZGQgbW91c2UgYnV0
dG9uIGFuZCBrZXlib2FyZCBzdGF0ZSBtb2RpZmllcnMgaW5mbyB0byBuYXZpZ2F0aW9uIGFjdGlv
bi4KCi0tLQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE5ICsrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwIHwgICAyNCArKysrKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmln
YXRpb25hY3Rpb24uY3BwICAgIHwgICA4NyArKysrKysrKysrKysrKysrKysrLQogV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oICAgICAgfCAgICA2ICsrCiA0IGZp
bGVzIGNoYW5nZWQsIDEzNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYjlj
MWM0OS4uZTExMzY4MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAwOC0xMi0yMCAgWGFuIExvcGV6
ICA8eGFuQGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTIK
KworICAgICAgICBBZGQgbW91c2UgYnV0dG9uIGFuZCBrZXlib2FyZCBzdGF0ZSBtb2RpZmllcnMg
aW5mbyB0byBuYXZpZ2F0aW9uIGFjdGlvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICog
d2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwOgorICAgICAgICAoX1dlYktpdFdl
Yk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlOjopOgorICAgICAgICAoX1dlYktpdFdlYk5hdmlnYXRp
b25BY3Rpb25Qcml2YXRlOjp3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9wcm9wZXJ0
eSk6CisgICAgICAgIChfV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGU6OndlYmtpdF93
ZWJfbmF2aWdhdGlvbl9hY3Rpb25fc2V0X3Byb3BlcnR5KToKKyAgICAgICAgKF9XZWJLaXRXZWJO
YXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9jbGFz
c19pbml0KToKKyAgICAgICAgKF9XZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Vi
a2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfYnV0dG9uKToKKyAgICAgICAgKF9XZWJLaXRX
ZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9n
ZXRfbW9kaWZpZXJfc3RhdGUpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9u
YWN0aW9uLmg6CisKIDIwMDgtMTItMTkgIE1hcmNvIEJhcmlzaW9uZSAgPG1hcmNvLmJhcmlzaW9u
ZUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVy
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcAppbmRleCA3ZWZiNGRiLi5iOTc1ZTUyIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJN
SU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJQ
bHVnaW5EYXRhYmFzZS5oIgpAQCAtMzI2LDEwICszMjcsMzEgQEAgdm9pZCBGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKEZyYW1lUG9saWN5
RnVuY3QKICAgICAgICAgZ19vYmplY3RfdW5yZWYobV9wb2xpY3lEZWNpc2lvbik7CiAgICAgbV9w
b2xpY3lEZWNpc2lvbiA9IHBvbGljeURlY2lzaW9uOwogCi0gICAgLy8gVE9ETzogdXNlIGFjdGlv
bi5ldmVudCgpLgorICAgIGdpbnQgYnV0dG9uID0gLTEsIG1vZGlmaWVyRmxhZ3MgPSAwOworCisg
ICAgY29uc3QgRXZlbnQqIGV2ZW50ID0gYWN0aW9uLmV2ZW50KCk7CisgICAgaWYgKGV2ZW50ICYm
IGV2ZW50LT5pc01vdXNlRXZlbnQoKSkgeworICAgICAgICBjb25zdCBNb3VzZUV2ZW50KiBtb3Vz
ZUV2ZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgTW91c2VFdmVudCo+KGV2ZW50KTsKKyAgICAgICAg
YnV0dG9uID0gbW91c2VFdmVudC0+YnV0dG9uKCk7CisgICAgfQorCisgICAgY29uc3QgVUlFdmVu
dFdpdGhLZXlTdGF0ZSoga2V5U3RhdGVFdmVudCA9IGZpbmRFdmVudFdpdGhLZXlTdGF0ZShjb25z
dF9jYXN0PEV2ZW50Kj4oZXZlbnQpKTsKKyAgICBpZiAoa2V5U3RhdGVFdmVudCkgeworICAgICAg
ICBpZiAoa2V5U3RhdGVFdmVudC0+c2hpZnRLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVyRmxh
Z3MgfD0gR0RLX1NISUZUX01BU0s7CisgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5jdHJsS2V5
KCkpCisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IEdES19DT05UUk9MX01BU0s7CisgICAg
ICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5hbHRLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVyRmxh
Z3MgfD0gR0RLX01PRDFfTUFTSzsKKyAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPm1ldGFLZXko
KSkKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gR0RLX01PRDJfTUFTSzsKKyAgICB9CisK
ICAgICBHT2JqZWN0KiBuYXZpZ2F0aW9uQWN0aW9uID0gR19PQkpFQ1QoZ19vYmplY3RfbmV3KFdF
QktJVF9UWVBFX1dFQl9OQVZJR0FUSU9OX0FDVElPTiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYXNvbiIsIGtpdChhY3Rpb24udHlwZSgp
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJvcmlnaW5hbC11cmkiLCBhY3Rpb24udXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJidXR0
b24iLCBidXR0b24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAibW9kaWZpZXItc3RhdGUiLCBtb2RpZmllckZsYWdzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCkpOwogCiAgICAg
Z2Jvb2xlYW4gaXNIYW5kbGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwCmluZGV4IDdjZTMyNGEuLjQ4ZTM2YWMgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwCisrKyBi
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwCkBAIC0zMyw2
ICszMyw4IEBAIGV4dGVybiAiQyIgewogc3RydWN0IF9XZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9u
UHJpdmF0ZSB7CiAgICAgV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiByZWFzb247CiAgICAgZ2No
YXIqIG9yaWdpbmFsVXJpOworICAgIGdpbnQgYnV0dG9uOworICAgIGdpbnQgbW9kaWZpZXJfc3Rh
dGU7CiB9OwogCiAjZGVmaW5lIFdFQktJVF9XRUJfTkFWSUdBVElPTl9BQ1RJT05fR0VUX1BSSVZB
VEUob2JqKShHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJVF9UWVBFX1dF
Ql9OQVZJR0FUSU9OX0FDVElPTiwgV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGUpKQpA
QCAtNDEsNyArNDMsOSBAQCBlbnVtICB7CiAgICAgUFJPUF8wLAogCiAgICAgUFJPUF9SRUFTT04s
Ci0gICAgUFJPUF9PUklHSU5BTF9VUkkKKyAgICBQUk9QX09SSUdJTkFMX1VSSSwKKyAgICBQUk9Q
X0JVVFRPTiwKKyAgICBQUk9QX01PRElGSUVSX1NUQVRFCiB9OwogCiBHX0RFRklORV9UWVBFKFdl
YktpdFdlYk5hdmlnYXRpb25BY3Rpb24sIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb24sIEdf
VFlQRV9PQkpFQ1QpCkBAIC01OCw2ICs2MiwxMiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX25h
dmlnYXRpb25fYWN0aW9uX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHBybwog
ICAgIGNhc2UgUFJPUF9PUklHSU5BTF9VUkk6CiAgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2
YWx1ZSwgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfb3JpZ2luYWxfdXJpKG5hdmln
YXRpb25BY3Rpb24pKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0JVVFRPTjoKKyAg
ICAgICAgZ192YWx1ZV9zZXRfaW50KHZhbHVlLCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9u
X2dldF9idXR0b24obmF2aWdhdGlvbkFjdGlvbikpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBST1BfTU9ESUZJRVJfU1RBVEU6CisgICAgICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1ZSwgd2Vi
a2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfbW9kaWZpZXJfc3RhdGUobmF2aWdhdGlvbkFj
dGlvbikpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9X
QVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlkLCBwc3BlYyk7CiAgICAg
ICAgIGJyZWFrOwpAQCAtNjcsNiArNzcsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX25hdmln
YXRpb25fYWN0aW9uX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHBybwogc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRfcHJvcGVydHkoR09iamVj
dCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1T
cGVjKiBwc3BlYykKIHsKICAgICBXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9u
QWN0aW9uID0gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX0FDVElPTihvYmplY3QpOworICAgIFdlYktp
dFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlKiBwcml2ID0gbmF2aWdhdGlvbkFjdGlvbi0+cHJp
djsKIAogICAgIHN3aXRjaChwcm9wZXJ0eUlkKSB7CiAgICAgY2FzZSBQUk9QX1JFQVNPTjoKQEAg
LTc1LDYgKzg2LDEyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25f
c2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvCiAgICAgY2FzZSBQUk9QX09S
SUdJTkFMX1VSSToKICAgICAgICAgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRfb3Jp
Z2luYWxfdXJpKG5hdmlnYXRpb25BY3Rpb24sIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpOwog
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfQlVUVE9OOgorICAgICAgICBwcml2LT5idXR0
b24gPSBnX3ZhbHVlX2dldF9pbnQodmFsdWUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBS
T1BfTU9ESUZJRVJfU1RBVEU6CisgICAgICAgIHByaXYtPm1vZGlmaWVyX3N0YXRlID0gZ192YWx1
ZV9nZXRfaW50KHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
R19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcGVydHlJZCwgcHNw
ZWMpOwogICAgICAgICBicmVhazsKQEAgLTE0MSw2ICsxNTgsMzkgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9jbGFzc19pbml0KFdlYktpdFdlYk5hdmlnYXRpb25B
Y3Rpb25DbGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIlRoZSBVUkkgdGhhdCB3YXMgcmVxdWVzdGVkIGFzIHRoZSB0YXJnZXQgZm9yIHRo
ZSBuYXZpZ2F0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncykoV0VCS0lUX1BBUkFNX1JFQURXUklURSB8
IEdfUEFSQU1fQ09OU1RSVUNUKSkpOworICAgIC8qKgorICAgICAqIFdlYktpdFdlYk5hdmlnYXRp
b25BY3Rpb246YnV0dG9uOgorICAgICAqCisgICAgICogVGhlIGJ1dHRvbiB1c2VkIHRvIGNsaWNr
IGlmIHRoZSBhY3Rpb24gd2FzIGEgbW91c2UgZXZlbnQuCisgICAgICoKKyAgICAgKiBTaW5jZTog
MS4wLjMKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVj
dENsYXNzLCBQUk9QX0JVVFRPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdfcGFyYW1fc3BlY19pbnQoImJ1dHRvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJCdXR0b24iLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGJ1dHRvbiB1c2VkIHRvIGNsaWNr
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdfTUFYSU5ULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAtMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9D
T05TVFJVQ1RfT05MWSkpKTsKKworICAgIC8qKgorICAgICAqIFdlYktpdFdlYk5hdmlnYXRpb25B
Y3Rpb246bW9kaWZpZXItc3RhdGU6CisgICAgICoKKyAgICAgKiBUaGUgc3RhdGUgb2YgdGhlIG1v
ZGlmaWVyIGtleXMgd2hlbiB0aGUgYWN0aW9uIHdhcyByZXF1ZXN0ZWQuCisgICAgICogCisgICAg
ICogU2luY2U6IDEuMC4zCisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9w
ZXJ0eShvYmplY3RDbGFzcywgUFJPUF9NT0RJRklFUl9TVEFURSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19pbnQoIm1vZGlmaWVyLXN0YXRlIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1vZGlm
aWVyIHN0YXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkEgYml0bWFzayByZXByZXNlbnRpbmcgdGhlIHN0YXRlIG9mIHRoZSBtb2RpZmll
ciBrZXlzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR19NQVhJTlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChHUGFyYW1GbGFncykoV0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFS
QU1fQ09OU1RSVUNUX09OTFkpKSk7CisKKwogCiAgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRl
KHJlcXVlc3RDbGFzcywgc2l6ZW9mKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlKSk7
CiB9CkBAIC0yMjQsNCArMjc0LDM5IEBAIHZvaWQgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlv
bl9zZXRfb3JpZ2luYWxfdXJpKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24qIG5hCiAgICAgZ19v
YmplY3Rfbm90aWZ5KEdfT0JKRUNUKG5hdmlnYXRpb25BY3Rpb24pLCAib3JpZ2luYWwtdXJpIik7
CiB9CiAKKy8qKgorICogd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfYnV0dG9uOgor
ICogQG5hdmlnYXRpb25BY3Rpb246IGEgI1dlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24KKyAqCisg
KiBSZXR1cm5zIHRoZSBtb3VzZSBidXR0b24gdXNlZCB0byBjbGljayBpZiB0aGUgYWN0aW9uIHdh
cyBhIG1vdXNlIGV2ZW50LgorICogT3RoZXJ3aXNlIHJldHVybnMgLTEuCisgKgorICogUmV0dXJu
IHZhbHVlOiB0aGUgbW91c2UgYnV0dG9uIHVzZWQgdG8gY2xpY2sKKyAqCisgKiBTaW5jZTogMS4w
LjMKKyAqLworZ2ludCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9idXR0b24oV2Vi
S2l0V2ViTmF2aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlvbkFjdGlvbikKK3sKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX05BVklHQVRJT05fQUNUSU9OKG5hdmlnYXRpb25B
Y3Rpb24pLCAtMSk7CisKKyAgICByZXR1cm4gbmF2aWdhdGlvbkFjdGlvbi0+cHJpdi0+YnV0dG9u
OworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X21vZGlmaWVy
X3N0YXRlOgorICogQG5hdmlnYXRpb25BY3Rpb246IGEgI1dlYktpdFdlYk5hdmlnYXRpb25BY3Rp
b24KKyAqCisgKiBSZXR1cm5zIGEgYml0bWFzayB3aXRoIHRoZSB0aGUgc3RhdGUgb2YgdGhlIG1v
ZGlmaWVyIGtleXMuCisgKgorICogUmV0dXJuIHZhbHVlOiBhIGJpdG1hc2sgd2l0aCB0aGUgc3Rh
dGUgb2YgdGhlIG1vZGlmaWVyIGtleXMKKyAqCisgKiBTaW5jZTogMS4wLjMKKyAqLworZ2ludCB3
ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9tb2RpZmllcl9zdGF0ZShXZWJLaXRXZWJO
YXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uKQoreworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9JU19XRUJfTkFWSUdBVElPTl9BQ1RJT04obmF2aWdhdGlvbkFjdGlvbiks
IDApOworCisgICAgcmV0dXJuIG5hdmlnYXRpb25BY3Rpb24tPnByaXYtPm1vZGlmaWVyX3N0YXRl
OworfQorICAgIAogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2
aWdhdGlvbmFjdGlvbi5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFj
dGlvbi5oCmluZGV4IDgzNDg5ZGUuLjI4MjVlZWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmgKQEAgLTc2LDYgKzc2LDEyIEBAIHdlYmtpdF93ZWJf
bmF2aWdhdGlvbl9hY3Rpb25fZ2V0X29yaWdpbmFsX3VyaShXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0
aW9uKiBuYXZpZ2F0CiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rp
b25fc2V0X29yaWdpbmFsX3VyaShXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9u
QWN0aW9uLCBjb25zdCBnY2hhciogb3JpZ2luYWxVcmkpOwogCitXRUJLSVRfQVBJIGdpbnQKK3dl
YmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X2J1dHRvbihXZWJLaXRXZWJOYXZpZ2F0aW9u
QWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uKTsKKworV0VCS0lUX0FQSSBnaW50Cit3ZWJraXRfd2Vi
X25hdmlnYXRpb25fYWN0aW9uX2dldF9tb2RpZmllcl9zdGF0ZShXZWJLaXRXZWJOYXZpZ2F0aW9u
QWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCi0tIAox
LjYuMC42Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26180</attachid>
            <date>2008-12-21 02:25:18 -0800</date>
            <delta_ts>2008-12-21 02:26:29 -0800</delta_ts>
            <desc>0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch</desc>
            <filename>0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch</filename>
            <type>text/plain</type>
            <size>10153</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA1NzFlODA4ZjFlN2VmMmUzOGYzMTNjZDkwM2E2NmU0YjExMjhiODVhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CkRhdGU6IFNhdCwg
MjAgRGVjIDIwMDggMTc6MzU6MTIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBBZGQgbW91c2UgYnV0
dG9uIGFuZCBrZXlib2FyZCBzdGF0ZSBtb2RpZmllcnMgaW5mbyB0byBuYXZpZ2F0aW9uIGFjdGlv
bi4KCi0tLQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE5ICsrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwIHwgICAyNSArKysrKystCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZp
Z2F0aW9uYWN0aW9uLmNwcCAgICB8ICAgODcgKysrKysrKysrKysrKysrKysrKy0KIFdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uaCAgICAgIHwgICAgNiArKwogNCBm
aWxlcyBjaGFuZ2VkLCAxMzUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGI5
YzFjNDkuLmUxMTM2ODAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDgtMTItMjAgIFhhbiBMb3Bl
eiAgPHhhbkBnbm9tZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDky
CisKKyAgICAgICAgQWRkIG1vdXNlIGJ1dHRvbiBhbmQga2V5Ym9hcmQgc3RhdGUgbW9kaWZpZXJz
IGluZm8gdG8gbmF2aWdhdGlvbiBhY3Rpb24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcDoKKyAgICAgICAgKF9XZWJLaXRX
ZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6KToKKyAgICAgICAgKF9XZWJLaXRXZWJOYXZpZ2F0
aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfcHJvcGVy
dHkpOgorICAgICAgICAoX1dlYktpdFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlOjp3ZWJraXRf
d2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF9wcm9wZXJ0eSk6CisgICAgICAgIChfV2ViS2l0V2Vi
TmF2aWdhdGlvbkFjdGlvblByaXZhdGU6OndlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fY2xh
c3NfaW5pdCk6CisgICAgICAgIChfV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGU6Ondl
YmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X2J1dHRvbik6CisgICAgICAgIChfV2ViS2l0
V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGU6OndlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25f
Z2V0X21vZGlmaWVyX3N0YXRlKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VibmF2aWdhdGlv
bmFjdGlvbi5oOgorCiAyMDA4LTEyLTE5ICBNYXJjbyBCYXJpc2lvbmUgIDxtYXJjby5iYXJpc2lv
bmVAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhl
ci4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHAKaW5kZXggN2VmYjRkYi4uNjE5Njc5MiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAi
TUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAi
UGx1Z2luRGF0YWJhc2UuaCIKQEAgLTMyNiwxMCArMzI3LDMyIEBAIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihGcmFtZVBvbGlj
eUZ1bmN0CiAgICAgICAgIGdfb2JqZWN0X3VucmVmKG1fcG9saWN5RGVjaXNpb24pOwogICAgIG1f
cG9saWN5RGVjaXNpb24gPSBwb2xpY3lEZWNpc2lvbjsKIAotICAgIC8vIFRPRE86IHVzZSBhY3Rp
b24uZXZlbnQoKS4KKyAgICBnaW50IGJ1dHRvbiA9IC0xOworICAgIGdpbnQgbW9kaWZpZXJGbGFn
cyA9IDA7CisKKyAgICBFdmVudCogZXZlbnQgPSBhY3Rpb24uZXZlbnQoKTsKKyAgICBpZiAoZXZl
bnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7CisgICAgICAgIGNvbnN0IE1vdXNlRXZlbnQq
IG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBNb3VzZUV2ZW50Kj4oZXZlbnQpOworICAg
ICAgICBidXR0b24gPSBtb3VzZUV2ZW50LT5idXR0b24oKTsKKyAgICB9CisKKyAgICBVSUV2ZW50
V2l0aEtleVN0YXRlKiBrZXlTdGF0ZUV2ZW50ID0gZmluZEV2ZW50V2l0aEtleVN0YXRlKGNvbnN0
X2Nhc3Q8RXZlbnQqPihldmVudCkpOworICAgIGlmIChrZXlTdGF0ZUV2ZW50KSB7CisgICAgICAg
IGlmIChrZXlTdGF0ZUV2ZW50LT5zaGlmdEtleSgpKQorICAgICAgICAgICAgbW9kaWZpZXJGbGFn
cyB8PSBHREtfU0hJRlRfTUFTSzsKKyAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPmN0cmxLZXko
KSkKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gR0RLX0NPTlRST0xfTUFTSzsKKyAgICAg
ICAgaWYgKGtleVN0YXRlRXZlbnQtPmFsdEtleSgpKQorICAgICAgICAgICAgbW9kaWZpZXJGbGFn
cyB8PSBHREtfTU9EMV9NQVNLOworICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+bWV0YUtleSgp
KQorICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBHREtfTU9EMl9NQVNLOworICAgIH0KKwog
ICAgIEdPYmplY3QqIG5hdmlnYXRpb25BY3Rpb24gPSBHX09CSkVDVChnX29iamVjdF9uZXcoV0VC
S0lUX1RZUEVfV0VCX05BVklHQVRJT05fQUNUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhc29uIiwga2l0KGFjdGlvbi50eXBlKCkp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Im9yaWdpbmFsLXVyaSIsIGFjdGlvbi51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1dHRv
biIsIGJ1dHRvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJtb2RpZmllci1zdGF0ZSIsIG1vZGlmaWVyRmxhZ3MsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKSk7CiAKICAgICBn
Ym9vbGVhbiBpc0hhbmRsZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAKaW5kZXggN2NlMzI0YS4uNDhlMzZhYyAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAKKysrIGIv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAKQEAgLTMzLDYg
KzMzLDggQEAgZXh0ZXJuICJDIiB7CiBzdHJ1Y3QgX1dlYktpdFdlYk5hdmlnYXRpb25BY3Rpb25Q
cml2YXRlIHsKICAgICBXZWJLaXRXZWJOYXZpZ2F0aW9uUmVhc29uIHJlYXNvbjsKICAgICBnY2hh
ciogb3JpZ2luYWxVcmk7CisgICAgZ2ludCBidXR0b247CisgICAgZ2ludCBtb2RpZmllcl9zdGF0
ZTsKIH07CiAKICNkZWZpbmUgV0VCS0lUX1dFQl9OQVZJR0FUSU9OX0FDVElPTl9HRVRfUFJJVkFU
RShvYmopKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVfV0VC
X05BVklHQVRJT05fQUNUSU9OLCBXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZSkpCkBA
IC00MSw3ICs0Myw5IEBAIGVudW0gIHsKICAgICBQUk9QXzAsCiAKICAgICBQUk9QX1JFQVNPTiwK
LSAgICBQUk9QX09SSUdJTkFMX1VSSQorICAgIFBST1BfT1JJR0lOQUxfVVJJLAorICAgIFBST1Bf
QlVUVE9OLAorICAgIFBST1BfTU9ESUZJRVJfU1RBVEUKIH07CiAKIEdfREVGSU5FX1RZUEUoV2Vi
S2l0V2ViTmF2aWdhdGlvbkFjdGlvbiwgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbiwgR19U
WVBFX09CSkVDVCkKQEAgLTU4LDYgKzYyLDEyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfbmF2
aWdhdGlvbl9hY3Rpb25fZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvCiAg
ICAgY2FzZSBQUk9QX09SSUdJTkFMX1VSSToKICAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZh
bHVlLCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9vcmlnaW5hbF91cmkobmF2aWdh
dGlvbkFjdGlvbikpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfQlVUVE9OOgorICAg
ICAgICBnX3ZhbHVlX3NldF9pbnQodmFsdWUsIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25f
Z2V0X2J1dHRvbihuYXZpZ2F0aW9uQWN0aW9uKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UFJPUF9NT0RJRklFUl9TVEFURToKKyAgICAgICAgZ192YWx1ZV9zZXRfaW50KHZhbHVlLCB3ZWJr
aXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9tb2RpZmllcl9zdGF0ZShuYXZpZ2F0aW9uQWN0
aW9uKSk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dB
Uk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BlcnR5SWQsIHBzcGVjKTsKICAgICAg
ICAgYnJlYWs7CkBAIC02Nyw2ICs3Nyw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfbmF2aWdh
dGlvbl9hY3Rpb25fZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvCiBzdGF0
aWMgdm9pZCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF9wcm9wZXJ0eShHT2JqZWN0
KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNw
ZWMqIHBzcGVjKQogewogICAgIFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24qIG5hdmlnYXRpb25B
Y3Rpb24gPSBXRUJLSVRfV0VCX05BVklHQVRJT05fQUNUSU9OKG9iamVjdCk7CisgICAgV2ViS2l0
V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGUqIHByaXYgPSBuYXZpZ2F0aW9uQWN0aW9uLT5wcml2
OwogCiAgICAgc3dpdGNoKHByb3BlcnR5SWQpIHsKICAgICBjYXNlIFBST1BfUkVBU09OOgpAQCAt
NzUsNiArODYsMTIgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9z
ZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm8KICAgICBjYXNlIFBST1BfT1JJ
R0lOQUxfVVJJOgogICAgICAgICB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF9vcmln
aW5hbF91cmkobmF2aWdhdGlvbkFjdGlvbiwgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7CiAg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9CVVRUT046CisgICAgICAgIHByaXYtPmJ1dHRv
biA9IGdfdmFsdWVfZ2V0X2ludCh2YWx1ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJP
UF9NT0RJRklFUl9TVEFURToKKyAgICAgICAgcHJpdi0+bW9kaWZpZXJfc3RhdGUgPSBnX3ZhbHVl
X2dldF9pbnQodmFsdWUpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBH
X09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlkLCBwc3Bl
Yyk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTQxLDYgKzE1OCwzOSBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2NsYXNzX2luaXQoV2ViS2l0V2ViTmF2aWdhdGlvbkFj
dGlvbkNsYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiVGhlIFVSSSB0aGF0IHdhcyByZXF1ZXN0ZWQgYXMgdGhlIHRhcmdldCBmb3IgdGhl
IG5hdmlnYXRpb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwg
R19QQVJBTV9DT05TVFJVQ1QpKSk7CisgICAgLyoqCisgICAgICogV2ViS2l0V2ViTmF2aWdhdGlv
bkFjdGlvbjpidXR0b246CisgICAgICoKKyAgICAgKiBUaGUgYnV0dG9uIHVzZWQgdG8gY2xpY2sg
aWYgdGhlIGFjdGlvbiB3YXMgYSBtb3VzZSBldmVudC4KKyAgICAgKgorICAgICAqIFNpbmNlOiAx
LjAuMworICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0
Q2xhc3MsIFBST1BfQlVUVE9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z19wYXJhbV9zcGVjX2ludCgiYnV0dG9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIkJ1dHRvbiIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgYnV0dG9uIHVzZWQgdG8gY2xpY2si
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt
MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R19NQVhJTlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoR1BhcmFtRmxhZ3MpKFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NP
TlNUUlVDVF9PTkxZKSkpOworCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViTmF2aWdhdGlvbkFj
dGlvbjptb2RpZmllci1zdGF0ZToKKyAgICAgKgorICAgICAqIFRoZSBzdGF0ZSBvZiB0aGUgbW9k
aWZpZXIga2V5cyB3aGVuIHRoZSBhY3Rpb24gd2FzIHJlcXVlc3RlZC4KKyAgICAgKiAKKyAgICAg
KiBTaW5jZTogMS4wLjMKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KG9iamVjdENsYXNzLCBQUk9QX01PRElGSUVSX1NUQVRFLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2ludCgibW9kaWZpZXItc3RhdGUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTW9kaWZp
ZXIgc3RhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiQSBiaXRtYXNrIHJlcHJlc2VudGluZyB0aGUgc3RhdGUgb2YgdGhlIG1vZGlmaWVy
IGtleXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHX01BWElOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJB
TV9DT05TVFJVQ1RfT05MWSkpKTsKKworCiAKICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUo
cmVxdWVzdENsYXNzLCBzaXplb2YoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGUpKTsK
IH0KQEAgLTIyNCw0ICsyNzQsMzkgQEAgdm9pZCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9u
X3NldF9vcmlnaW5hbF91cmkoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiogbmEKICAgICBnX29i
amVjdF9ub3RpZnkoR19PQkpFQ1QobmF2aWdhdGlvbkFjdGlvbiksICJvcmlnaW5hbC11cmkiKTsK
IH0KIAorLyoqCisgKiB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9idXR0b246Cisg
KiBAbmF2aWdhdGlvbkFjdGlvbjogYSAjV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbgorICoKKyAq
IFJldHVybnMgdGhlIG1vdXNlIGJ1dHRvbiB1c2VkIHRvIGNsaWNrIGlmIHRoZSBhY3Rpb24gd2Fz
IGEgbW91c2UgZXZlbnQuCisgKiBPdGhlcndpc2UgcmV0dXJucyAtMS4KKyAqCisgKiBSZXR1cm4g
dmFsdWU6IHRoZSBtb3VzZSBidXR0b24gdXNlZCB0byBjbGljaworICoKKyAqIFNpbmNlOiAxLjAu
MworICovCitnaW50IHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X2J1dHRvbihXZWJL
aXRXZWJOYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uKQoreworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfTkFWSUdBVElPTl9BQ1RJT04obmF2aWdhdGlvbkFj
dGlvbiksIC0xKTsKKworICAgIHJldHVybiBuYXZpZ2F0aW9uQWN0aW9uLT5wcml2LT5idXR0b247
Cit9CisKKy8qKgorICogd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfbW9kaWZpZXJf
c3RhdGU6CisgKiBAbmF2aWdhdGlvbkFjdGlvbjogYSAjV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlv
bgorICoKKyAqIFJldHVybnMgYSBiaXRtYXNrIHdpdGggdGhlIHRoZSBzdGF0ZSBvZiB0aGUgbW9k
aWZpZXIga2V5cy4KKyAqCisgKiBSZXR1cm4gdmFsdWU6IGEgYml0bWFzayB3aXRoIHRoZSBzdGF0
ZSBvZiB0aGUgbW9kaWZpZXIga2V5cworICoKKyAqIFNpbmNlOiAxLjAuMworICovCitnaW50IHdl
YmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X21vZGlmaWVyX3N0YXRlKFdlYktpdFdlYk5h
dmlnYXRpb25BY3Rpb24qIG5hdmlnYXRpb25BY3Rpb24pCit7CisgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0lTX1dFQl9OQVZJR0FUSU9OX0FDVElPTihuYXZpZ2F0aW9uQWN0aW9uKSwg
MCk7CisKKyAgICByZXR1cm4gbmF2aWdhdGlvbkFjdGlvbi0+cHJpdi0+bW9kaWZpZXJfc3RhdGU7
Cit9CisgICAgCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZp
Z2F0aW9uYWN0aW9uLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0
aW9uLmgKaW5kZXggODM0ODlkZS4uMjgyNWVlYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uaApAQCAtNzYsNiArNzYsMTIgQEAgd2Via2l0X3dlYl9u
YXZpZ2F0aW9uX2FjdGlvbl9nZXRfb3JpZ2luYWxfdXJpKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rp
b24qIG5hdmlnYXQKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlv
bl9zZXRfb3JpZ2luYWxfdXJpKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24qIG5hdmlnYXRpb25B
Y3Rpb24sIGNvbnN0IGdjaGFyKiBvcmlnaW5hbFVyaSk7CiAKK1dFQktJVF9BUEkgZ2ludAord2Vi
a2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfYnV0dG9uKFdlYktpdFdlYk5hdmlnYXRpb25B
Y3Rpb24qIG5hdmlnYXRpb25BY3Rpb24pOworCitXRUJLSVRfQVBJIGdpbnQKK3dlYmtpdF93ZWJf
bmF2aWdhdGlvbl9hY3Rpb25fZ2V0X21vZGlmaWVyX3N0YXRlKFdlYktpdFdlYk5hdmlnYXRpb25B
Y3Rpb24qIG5hdmlnYXRpb25BY3Rpb24pOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKLS0gCjEu
Ni4wLjYKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26181</attachid>
            <date>2008-12-21 02:26:29 -0800</date>
            <delta_ts>2008-12-21 05:00:55 -0800</delta_ts>
            <desc>0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch</desc>
            <filename>0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch</filename>
            <type>text/plain</type>
            <size>10147</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBkMTg0OTM3MDk2ZThlNTY1OWQ0NjM4MDYzNjE1OTY5OWMyNTBmZTljIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CkRhdGU6IFNhdCwg
MjAgRGVjIDIwMDggMTc6MzU6MTIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBBZGQgbW91c2UgYnV0
dG9uIGFuZCBrZXlib2FyZCBzdGF0ZSBtb2RpZmllcnMgaW5mbyB0byBuYXZpZ2F0aW9uIGFjdGlv
bi4KCi0tLQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE5ICsrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwIHwgICAyNSArKysrKystCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZp
Z2F0aW9uYWN0aW9uLmNwcCAgICB8ICAgODcgKysrKysrKysrKysrKysrKysrKy0KIFdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uaCAgICAgIHwgICAgNiArKwogNCBm
aWxlcyBjaGFuZ2VkLCAxMzUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGI5
YzFjNDkuLmUxMTM2ODAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDgtMTItMjAgIFhhbiBMb3Bl
eiAgPHhhbkBnbm9tZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDky
CisKKyAgICAgICAgQWRkIG1vdXNlIGJ1dHRvbiBhbmQga2V5Ym9hcmQgc3RhdGUgbW9kaWZpZXJz
IGluZm8gdG8gbmF2aWdhdGlvbiBhY3Rpb24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcDoKKyAgICAgICAgKF9XZWJLaXRX
ZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6KToKKyAgICAgICAgKF9XZWJLaXRXZWJOYXZpZ2F0
aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfcHJvcGVy
dHkpOgorICAgICAgICAoX1dlYktpdFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlOjp3ZWJraXRf
d2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF9wcm9wZXJ0eSk6CisgICAgICAgIChfV2ViS2l0V2Vi
TmF2aWdhdGlvbkFjdGlvblByaXZhdGU6OndlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fY2xh
c3NfaW5pdCk6CisgICAgICAgIChfV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGU6Ondl
YmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X2J1dHRvbik6CisgICAgICAgIChfV2ViS2l0
V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGU6OndlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25f
Z2V0X21vZGlmaWVyX3N0YXRlKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VibmF2aWdhdGlv
bmFjdGlvbi5oOgorCiAyMDA4LTEyLTE5ICBNYXJjbyBCYXJpc2lvbmUgIDxtYXJjby5iYXJpc2lv
bmVAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhl
ci4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHAKaW5kZXggN2VmYjRkYi4uM2VmMWFhYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAi
TUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAi
UGx1Z2luRGF0YWJhc2UuaCIKQEAgLTMyNiwxMCArMzI3LDMyIEBAIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihGcmFtZVBvbGlj
eUZ1bmN0CiAgICAgICAgIGdfb2JqZWN0X3VucmVmKG1fcG9saWN5RGVjaXNpb24pOwogICAgIG1f
cG9saWN5RGVjaXNpb24gPSBwb2xpY3lEZWNpc2lvbjsKIAotICAgIC8vIFRPRE86IHVzZSBhY3Rp
b24uZXZlbnQoKS4KKyAgICBnaW50IGJ1dHRvbiA9IC0xOworICAgIGdpbnQgbW9kaWZpZXJGbGFn
cyA9IDA7CisKKyAgICBFdmVudCogZXZlbnQgPSBhY3Rpb24uZXZlbnQoKTsKKyAgICBpZiAoZXZl
bnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7CisgICAgICAgIE1vdXNlRXZlbnQqIG1vdXNl
RXZlbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBNb3VzZUV2ZW50Kj4oZXZlbnQpOworICAgICAgICBi
dXR0b24gPSBtb3VzZUV2ZW50LT5idXR0b24oKTsKKyAgICB9CisKKyAgICBVSUV2ZW50V2l0aEtl
eVN0YXRlKiBrZXlTdGF0ZUV2ZW50ID0gZmluZEV2ZW50V2l0aEtleVN0YXRlKGNvbnN0X2Nhc3Q8
RXZlbnQqPihldmVudCkpOworICAgIGlmIChrZXlTdGF0ZUV2ZW50KSB7CisgICAgICAgIGlmIChr
ZXlTdGF0ZUV2ZW50LT5zaGlmdEtleSgpKQorICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBH
REtfU0hJRlRfTUFTSzsKKyAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPmN0cmxLZXkoKSkKKyAg
ICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gR0RLX0NPTlRST0xfTUFTSzsKKyAgICAgICAgaWYg
KGtleVN0YXRlRXZlbnQtPmFsdEtleSgpKQorICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBH
REtfTU9EMV9NQVNLOworICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+bWV0YUtleSgpKQorICAg
ICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBHREtfTU9EMl9NQVNLOworICAgIH0KKwogICAgIEdP
YmplY3QqIG5hdmlnYXRpb25BY3Rpb24gPSBHX09CSkVDVChnX29iamVjdF9uZXcoV0VCS0lUX1RZ
UEVfV0VCX05BVklHQVRJT05fQUNUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicmVhc29uIiwga2l0KGFjdGlvbi50eXBlKCkpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yaWdp
bmFsLXVyaSIsIGFjdGlvbi51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1dHRvbiIsIGJ1
dHRvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJtb2RpZmllci1zdGF0ZSIsIG1vZGlmaWVyRmxhZ3MsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKSk7CiAKICAgICBnYm9vbGVh
biBpc0hhbmRsZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2
aWdhdGlvbmFjdGlvbi5jcHAKaW5kZXggN2NlMzI0YS4uNDhlMzZhYyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAKKysrIGIvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAKQEAgLTMzLDYgKzMzLDgg
QEAgZXh0ZXJuICJDIiB7CiBzdHJ1Y3QgX1dlYktpdFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRl
IHsKICAgICBXZWJLaXRXZWJOYXZpZ2F0aW9uUmVhc29uIHJlYXNvbjsKICAgICBnY2hhciogb3Jp
Z2luYWxVcmk7CisgICAgZ2ludCBidXR0b247CisgICAgZ2ludCBtb2RpZmllcl9zdGF0ZTsKIH07
CiAKICNkZWZpbmUgV0VCS0lUX1dFQl9OQVZJR0FUSU9OX0FDVElPTl9HRVRfUFJJVkFURShvYmop
KEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX05BVklH
QVRJT05fQUNUSU9OLCBXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZSkpCkBAIC00MSw3
ICs0Myw5IEBAIGVudW0gIHsKICAgICBQUk9QXzAsCiAKICAgICBQUk9QX1JFQVNPTiwKLSAgICBQ
Uk9QX09SSUdJTkFMX1VSSQorICAgIFBST1BfT1JJR0lOQUxfVVJJLAorICAgIFBST1BfQlVUVE9O
LAorICAgIFBST1BfTU9ESUZJRVJfU1RBVEUKIH07CiAKIEdfREVGSU5FX1RZUEUoV2ViS2l0V2Vi
TmF2aWdhdGlvbkFjdGlvbiwgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbiwgR19UWVBFX09C
SkVDVCkKQEAgLTU4LDYgKzYyLDEyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfbmF2aWdhdGlv
bl9hY3Rpb25fZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvCiAgICAgY2Fz
ZSBQUk9QX09SSUdJTkFMX1VSSToKICAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCB3
ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9vcmlnaW5hbF91cmkobmF2aWdhdGlvbkFj
dGlvbikpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfQlVUVE9OOgorICAgICAgICBn
X3ZhbHVlX3NldF9pbnQodmFsdWUsIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X2J1
dHRvbihuYXZpZ2F0aW9uQWN0aW9uKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9N
T0RJRklFUl9TVEFURToKKyAgICAgICAgZ192YWx1ZV9zZXRfaW50KHZhbHVlLCB3ZWJraXRfd2Vi
X25hdmlnYXRpb25fYWN0aW9uX2dldF9tb2RpZmllcl9zdGF0ZShuYXZpZ2F0aW9uQWN0aW9uKSk7
CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5W
QUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BlcnR5SWQsIHBzcGVjKTsKICAgICAgICAgYnJl
YWs7CkBAIC02Nyw2ICs3Nyw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9h
Y3Rpb25fZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvCiBzdGF0aWMgdm9p
ZCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmpl
Y3QsIGd1aW50IHByb3BlcnR5SWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBz
cGVjKQogewogICAgIFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24qIG5hdmlnYXRpb25BY3Rpb24g
PSBXRUJLSVRfV0VCX05BVklHQVRJT05fQUNUSU9OKG9iamVjdCk7CisgICAgV2ViS2l0V2ViTmF2
aWdhdGlvbkFjdGlvblByaXZhdGUqIHByaXYgPSBuYXZpZ2F0aW9uQWN0aW9uLT5wcml2OwogCiAg
ICAgc3dpdGNoKHByb3BlcnR5SWQpIHsKICAgICBjYXNlIFBST1BfUkVBU09OOgpAQCAtNzUsNiAr
ODYsMTIgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRfcHJv
cGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm8KICAgICBjYXNlIFBST1BfT1JJR0lOQUxf
VVJJOgogICAgICAgICB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF9vcmlnaW5hbF91
cmkobmF2aWdhdGlvbkFjdGlvbiwgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7CiAgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUFJPUF9CVVRUT046CisgICAgICAgIHByaXYtPmJ1dHRvbiA9IGdf
dmFsdWVfZ2V0X2ludCh2YWx1ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9NT0RJ
RklFUl9TVEFURToKKyAgICAgICAgcHJpdi0+bW9kaWZpZXJfc3RhdGUgPSBnX3ZhbHVlX2dldF9p
bnQodmFsdWUpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVD
VF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlkLCBwc3BlYyk7CiAg
ICAgICAgIGJyZWFrOwpAQCAtMTQxLDYgKzE1OCwzOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X25hdmlnYXRpb25fYWN0aW9uX2NsYXNzX2luaXQoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbkNs
YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiVGhlIFVSSSB0aGF0IHdhcyByZXF1ZXN0ZWQgYXMgdGhlIHRhcmdldCBmb3IgdGhlIG5hdmln
YXRpb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJB
TV9DT05TVFJVQ1QpKSk7CisgICAgLyoqCisgICAgICogV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlv
bjpidXR0b246CisgICAgICoKKyAgICAgKiBUaGUgYnV0dG9uIHVzZWQgdG8gY2xpY2sgaWYgdGhl
IGFjdGlvbiB3YXMgYSBtb3VzZSBldmVudC4KKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjAuMwor
ICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3Ms
IFBST1BfQlVUVE9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJh
bV9zcGVjX2ludCgiYnV0dG9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkJ1dHRvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgYnV0dG9uIHVzZWQgdG8gY2xpY2siLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19NQVhJ
TlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoR1BhcmFtRmxhZ3MpKFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVD
VF9PTkxZKSkpOworCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbjpt
b2RpZmllci1zdGF0ZToKKyAgICAgKgorICAgICAqIFRoZSBzdGF0ZSBvZiB0aGUgbW9kaWZpZXIg
a2V5cyB3aGVuIHRoZSBhY3Rpb24gd2FzIHJlcXVlc3RlZC4KKyAgICAgKiAKKyAgICAgKiBTaW5j
ZTogMS4wLjMKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9i
amVjdENsYXNzLCBQUk9QX01PRElGSUVSX1NUQVRFLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2ludCgibW9kaWZpZXItc3RhdGUiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTW9kaWZpZXIgc3Rh
dGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiQSBiaXRtYXNrIHJlcHJlc2VudGluZyB0aGUgc3RhdGUgb2YgdGhlIG1vZGlmaWVyIGtleXMi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
X01BWElOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05T
VFJVQ1RfT05MWSkpKTsKKworCiAKICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVz
dENsYXNzLCBzaXplb2YoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGUpKTsKIH0KQEAg
LTIyNCw0ICsyNzQsMzkgQEAgdm9pZCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF9v
cmlnaW5hbF91cmkoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiogbmEKICAgICBnX29iamVjdF9u
b3RpZnkoR19PQkpFQ1QobmF2aWdhdGlvbkFjdGlvbiksICJvcmlnaW5hbC11cmkiKTsKIH0KIAor
LyoqCisgKiB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9idXR0b246CisgKiBAbmF2
aWdhdGlvbkFjdGlvbjogYSAjV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbgorICoKKyAqIFJldHVy
bnMgdGhlIG1vdXNlIGJ1dHRvbiB1c2VkIHRvIGNsaWNrIGlmIHRoZSBhY3Rpb24gd2FzIGEgbW91
c2UgZXZlbnQuCisgKiBPdGhlcndpc2UgcmV0dXJucyAtMS4KKyAqCisgKiBSZXR1cm4gdmFsdWU6
IHRoZSBtb3VzZSBidXR0b24gdXNlZCB0byBjbGljaworICoKKyAqIFNpbmNlOiAxLjAuMworICov
CitnaW50IHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X2J1dHRvbihXZWJLaXRXZWJO
YXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uKQoreworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9JU19XRUJfTkFWSUdBVElPTl9BQ1RJT04obmF2aWdhdGlvbkFjdGlvbiks
IC0xKTsKKworICAgIHJldHVybiBuYXZpZ2F0aW9uQWN0aW9uLT5wcml2LT5idXR0b247Cit9CisK
Ky8qKgorICogd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfbW9kaWZpZXJfc3RhdGU6
CisgKiBAbmF2aWdhdGlvbkFjdGlvbjogYSAjV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbgorICoK
KyAqIFJldHVybnMgYSBiaXRtYXNrIHdpdGggdGhlIHRoZSBzdGF0ZSBvZiB0aGUgbW9kaWZpZXIg
a2V5cy4KKyAqCisgKiBSZXR1cm4gdmFsdWU6IGEgYml0bWFzayB3aXRoIHRoZSBzdGF0ZSBvZiB0
aGUgbW9kaWZpZXIga2V5cworICoKKyAqIFNpbmNlOiAxLjAuMworICovCitnaW50IHdlYmtpdF93
ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X21vZGlmaWVyX3N0YXRlKFdlYktpdFdlYk5hdmlnYXRp
b25BY3Rpb24qIG5hdmlnYXRpb25BY3Rpb24pCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0lTX1dFQl9OQVZJR0FUSU9OX0FDVElPTihuYXZpZ2F0aW9uQWN0aW9uKSwgMCk7CisK
KyAgICByZXR1cm4gbmF2aWdhdGlvbkFjdGlvbi0+cHJpdi0+bW9kaWZpZXJfc3RhdGU7Cit9Cisg
ICAgCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9u
YWN0aW9uLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmgK
aW5kZXggODM0ODlkZS4uMjgyNWVlYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
Ym5hdmlnYXRpb25hY3Rpb24uaApAQCAtNzYsNiArNzYsMTIgQEAgd2Via2l0X3dlYl9uYXZpZ2F0
aW9uX2FjdGlvbl9nZXRfb3JpZ2luYWxfdXJpKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24qIG5h
dmlnYXQKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRf
b3JpZ2luYWxfdXJpKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24qIG5hdmlnYXRpb25BY3Rpb24s
IGNvbnN0IGdjaGFyKiBvcmlnaW5hbFVyaSk7CiAKK1dFQktJVF9BUEkgZ2ludAord2Via2l0X3dl
Yl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfYnV0dG9uKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24q
IG5hdmlnYXRpb25BY3Rpb24pOworCitXRUJLSVRfQVBJIGdpbnQKK3dlYmtpdF93ZWJfbmF2aWdh
dGlvbl9hY3Rpb25fZ2V0X21vZGlmaWVyX3N0YXRlKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24q
IG5hdmlnYXRpb25BY3Rpb24pOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKLS0gCjEuNi4wLjYK
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26183</attachid>
            <date>2008-12-21 05:00:55 -0800</date>
            <delta_ts>2008-12-21 05:00:55 -0800</delta_ts>
            <desc>0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch</desc>
            <filename>0001-Add-mouse-button-and-keyboard-state-modifiers-info-t.patch</filename>
            <type>text/plain</type>
            <size>10315</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA1Y2Y2ZDgxOTBiZGVkMzU0YWEyMmUxZmNmY2YyZmI0NWFjNWM3MmQ5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CkRhdGU6IFNhdCwg
MjAgRGVjIDIwMDggMTc6MzU6MTIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBBZGQgbW91c2UgYnV0
dG9uIGFuZCBrZXlib2FyZCBzdGF0ZSBtb2RpZmllcnMgaW5mbyB0byBuYXZpZ2F0aW9uIGFjdGlv
bi4KCi0tLQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE5ICsrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwIHwgICAyNyArKysrKystCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZp
Z2F0aW9uYWN0aW9uLmNwcCAgICB8ICAgODcgKysrKysrKysrKysrKysrKysrKy0KIFdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uaCAgICAgIHwgICAgNiArKwogNCBm
aWxlcyBjaGFuZ2VkLCAxMzcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGI5
YzFjNDkuLmUxMTM2ODAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDgtMTItMjAgIFhhbiBMb3Bl
eiAgPHhhbkBnbm9tZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDky
CisKKyAgICAgICAgQWRkIG1vdXNlIGJ1dHRvbiBhbmQga2V5Ym9hcmQgc3RhdGUgbW9kaWZpZXJz
IGluZm8gdG8gbmF2aWdhdGlvbiBhY3Rpb24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcDoKKyAgICAgICAgKF9XZWJLaXRX
ZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6KToKKyAgICAgICAgKF9XZWJLaXRXZWJOYXZpZ2F0
aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfcHJvcGVy
dHkpOgorICAgICAgICAoX1dlYktpdFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlOjp3ZWJraXRf
d2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF9wcm9wZXJ0eSk6CisgICAgICAgIChfV2ViS2l0V2Vi
TmF2aWdhdGlvbkFjdGlvblByaXZhdGU6OndlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fY2xh
c3NfaW5pdCk6CisgICAgICAgIChfV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGU6Ondl
YmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X2J1dHRvbik6CisgICAgICAgIChfV2ViS2l0
V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGU6OndlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25f
Z2V0X21vZGlmaWVyX3N0YXRlKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VibmF2aWdhdGlv
bmFjdGlvbi5oOgorCiAyMDA4LTEyLTE5ICBNYXJjbyBCYXJpc2lvbmUgIDxtYXJjby5iYXJpc2lv
bmVAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhl
ci4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHAKaW5kZXggN2VmYjRkYi4uYjlkNGU4MyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAi
TUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAi
UGx1Z2luRGF0YWJhc2UuaCIKQEAgLTMyNiwxMCArMzI3LDM0IEBAIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihGcmFtZVBvbGlj
eUZ1bmN0CiAgICAgICAgIGdfb2JqZWN0X3VucmVmKG1fcG9saWN5RGVjaXNpb24pOwogICAgIG1f
cG9saWN5RGVjaXNpb24gPSBwb2xpY3lEZWNpc2lvbjsKIAotICAgIC8vIFRPRE86IHVzZSBhY3Rp
b24uZXZlbnQoKS4KKyAgICBnaW50IGJ1dHRvbiA9IC0xOworICAgIGdpbnQgbW9kaWZpZXJGbGFn
cyA9IDA7CisKKyAgICBjb25zdCBFdmVudCogZXZlbnQgPSBhY3Rpb24uZXZlbnQoKTsKKyAgICBp
ZiAoZXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7CisgICAgICAgIGNvbnN0IE1vdXNl
RXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBNb3VzZUV2ZW50Kj4oZXZlbnQp
OworICAgICAgICAvLyBET00gYnV0dG9uIHZhbHVlcyBhcmUgMCwgMSBhbmQgMiBmb3IgbGVmdCwg
bWlkZGxlIGFuZCByaWdodCBidXR0b25zLgorICAgICAgICAvLyBHVEsrIHVzZXMgMSwgMiBhbmQg
Mywgc28gbGV0J3MgYWRkIDEgdG8gcmVtYWluIGNvbnNpc3RlbnQuCisgICAgICAgIGJ1dHRvbiA9
IG1vdXNlRXZlbnQtPmJ1dHRvbigpICsgMTsKKyAgICB9CisKKyAgICBVSUV2ZW50V2l0aEtleVN0
YXRlKiBrZXlTdGF0ZUV2ZW50ID0gZmluZEV2ZW50V2l0aEtleVN0YXRlKGNvbnN0X2Nhc3Q8RXZl
bnQqPihldmVudCkpOworICAgIGlmIChrZXlTdGF0ZUV2ZW50KSB7CisgICAgICAgIGlmIChrZXlT
dGF0ZUV2ZW50LT5zaGlmdEtleSgpKQorICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBHREtf
U0hJRlRfTUFTSzsKKyAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPmN0cmxLZXkoKSkKKyAgICAg
ICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gR0RLX0NPTlRST0xfTUFTSzsKKyAgICAgICAgaWYgKGtl
eVN0YXRlRXZlbnQtPmFsdEtleSgpKQorICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBHREtf
TU9EMV9NQVNLOworICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+bWV0YUtleSgpKQorICAgICAg
ICAgICAgbW9kaWZpZXJGbGFncyB8PSBHREtfTU9EMl9NQVNLOworICAgIH0KKwogICAgIEdPYmpl
Y3QqIG5hdmlnYXRpb25BY3Rpb24gPSBHX09CSkVDVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVf
V0VCX05BVklHQVRJT05fQUNUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicmVhc29uIiwga2l0KGFjdGlvbi50eXBlKCkpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yaWdpbmFs
LXVyaSIsIGFjdGlvbi51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1dHRvbiIsIGJ1dHRv
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJtb2RpZmllci1zdGF0ZSIsIG1vZGlmaWVyRmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKSk7CiAKICAgICBnYm9vbGVhbiBp
c0hhbmRsZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
Ym5hdmlnYXRpb25hY3Rpb24uY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdh
dGlvbmFjdGlvbi5jcHAKaW5kZXggN2NlMzI0YS4uNDhlMzZhYyAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAKKysrIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAKQEAgLTMzLDYgKzMzLDggQEAg
ZXh0ZXJuICJDIiB7CiBzdHJ1Y3QgX1dlYktpdFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlIHsK
ICAgICBXZWJLaXRXZWJOYXZpZ2F0aW9uUmVhc29uIHJlYXNvbjsKICAgICBnY2hhciogb3JpZ2lu
YWxVcmk7CisgICAgZ2ludCBidXR0b247CisgICAgZ2ludCBtb2RpZmllcl9zdGF0ZTsKIH07CiAK
ICNkZWZpbmUgV0VCS0lUX1dFQl9OQVZJR0FUSU9OX0FDVElPTl9HRVRfUFJJVkFURShvYmopKEdf
VFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX05BVklHQVRJ
T05fQUNUSU9OLCBXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZSkpCkBAIC00MSw3ICs0
Myw5IEBAIGVudW0gIHsKICAgICBQUk9QXzAsCiAKICAgICBQUk9QX1JFQVNPTiwKLSAgICBQUk9Q
X09SSUdJTkFMX1VSSQorICAgIFBST1BfT1JJR0lOQUxfVVJJLAorICAgIFBST1BfQlVUVE9OLAor
ICAgIFBST1BfTU9ESUZJRVJfU1RBVEUKIH07CiAKIEdfREVGSU5FX1RZUEUoV2ViS2l0V2ViTmF2
aWdhdGlvbkFjdGlvbiwgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbiwgR19UWVBFX09CSkVD
VCkKQEAgLTU4LDYgKzYyLDEyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9h
Y3Rpb25fZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvCiAgICAgY2FzZSBQ
Uk9QX09SSUdJTkFMX1VSSToKICAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCB3ZWJr
aXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9vcmlnaW5hbF91cmkobmF2aWdhdGlvbkFjdGlv
bikpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfQlVUVE9OOgorICAgICAgICBnX3Zh
bHVlX3NldF9pbnQodmFsdWUsIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X2J1dHRv
bihuYXZpZ2F0aW9uQWN0aW9uKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9NT0RJ
RklFUl9TVEFURToKKyAgICAgICAgZ192YWx1ZV9zZXRfaW50KHZhbHVlLCB3ZWJraXRfd2ViX25h
dmlnYXRpb25fYWN0aW9uX2dldF9tb2RpZmllcl9zdGF0ZShuYXZpZ2F0aW9uQWN0aW9uKSk7Cisg
ICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJ
RF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BlcnR5SWQsIHBzcGVjKTsKICAgICAgICAgYnJlYWs7
CkBAIC02Nyw2ICs3Nyw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rp
b25fZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvCiBzdGF0aWMgdm9pZCB3
ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3Qs
IGd1aW50IHByb3BlcnR5SWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBzcGVj
KQogewogICAgIFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24qIG5hdmlnYXRpb25BY3Rpb24gPSBX
RUJLSVRfV0VCX05BVklHQVRJT05fQUNUSU9OKG9iamVjdCk7CisgICAgV2ViS2l0V2ViTmF2aWdh
dGlvbkFjdGlvblByaXZhdGUqIHByaXYgPSBuYXZpZ2F0aW9uQWN0aW9uLT5wcml2OwogCiAgICAg
c3dpdGNoKHByb3BlcnR5SWQpIHsKICAgICBjYXNlIFBST1BfUkVBU09OOgpAQCAtNzUsNiArODYs
MTIgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRfcHJvcGVy
dHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm8KICAgICBjYXNlIFBST1BfT1JJR0lOQUxfVVJJ
OgogICAgICAgICB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF9vcmlnaW5hbF91cmko
bmF2aWdhdGlvbkFjdGlvbiwgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7CiAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUFJPUF9CVVRUT046CisgICAgICAgIHByaXYtPmJ1dHRvbiA9IGdfdmFs
dWVfZ2V0X2ludCh2YWx1ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9NT0RJRklF
Ul9TVEFURToKKyAgICAgICAgcHJpdi0+bW9kaWZpZXJfc3RhdGUgPSBnX3ZhbHVlX2dldF9pbnQo
dmFsdWUpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9X
QVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlkLCBwc3BlYyk7CiAgICAg
ICAgIGJyZWFrOwpAQCAtMTQxLDYgKzE1OCwzOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX25h
dmlnYXRpb25fYWN0aW9uX2NsYXNzX2luaXQoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbkNsYQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
VGhlIFVSSSB0aGF0IHdhcyByZXF1ZXN0ZWQgYXMgdGhlIHRhcmdldCBmb3IgdGhlIG5hdmlnYXRp
b24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9D
T05TVFJVQ1QpKSk7CisgICAgLyoqCisgICAgICogV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbjpi
dXR0b246CisgICAgICoKKyAgICAgKiBUaGUgYnV0dG9uIHVzZWQgdG8gY2xpY2sgaWYgdGhlIGFj
dGlvbiB3YXMgYSBtb3VzZSBldmVudC4KKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjAuMworICAg
ICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBS
T1BfQlVUVE9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9z
cGVjX2ludCgiYnV0dG9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIkJ1dHRvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJUaGUgYnV0dG9uIHVzZWQgdG8gY2xpY2siLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19NQVhJTlQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0x
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
R1BhcmFtRmxhZ3MpKFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVDVF9P
TkxZKSkpOworCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbjptb2Rp
Zmllci1zdGF0ZToKKyAgICAgKgorICAgICAqIFRoZSBzdGF0ZSBvZiB0aGUgbW9kaWZpZXIga2V5
cyB3aGVuIHRoZSBhY3Rpb24gd2FzIHJlcXVlc3RlZC4KKyAgICAgKiAKKyAgICAgKiBTaW5jZTog
MS4wLjMKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVj
dENsYXNzLCBQUk9QX01PRElGSUVSX1NUQVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ19wYXJhbV9zcGVjX2ludCgibW9kaWZpZXItc3RhdGUiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTW9kaWZpZXIgc3RhdGUi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
QSBiaXRtYXNrIHJlcHJlc2VudGluZyB0aGUgc3RhdGUgb2YgdGhlIG1vZGlmaWVyIGtleXMiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01B
WElOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJV
Q1RfT05MWSkpKTsKKworCiAKICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENs
YXNzLCBzaXplb2YoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvblByaXZhdGUpKTsKIH0KQEAgLTIy
NCw0ICsyNzQsMzkgQEAgdm9pZCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF9vcmln
aW5hbF91cmkoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiogbmEKICAgICBnX29iamVjdF9ub3Rp
ZnkoR19PQkpFQ1QobmF2aWdhdGlvbkFjdGlvbiksICJvcmlnaW5hbC11cmkiKTsKIH0KIAorLyoq
CisgKiB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9idXR0b246CisgKiBAbmF2aWdh
dGlvbkFjdGlvbjogYSAjV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbgorICoKKyAqIFJldHVybnMg
dGhlIG1vdXNlIGJ1dHRvbiB1c2VkIHRvIGNsaWNrIGlmIHRoZSBhY3Rpb24gd2FzIGEgbW91c2Ug
ZXZlbnQuCisgKiBPdGhlcndpc2UgcmV0dXJucyAtMS4KKyAqCisgKiBSZXR1cm4gdmFsdWU6IHRo
ZSBtb3VzZSBidXR0b24gdXNlZCB0byBjbGljaworICoKKyAqIFNpbmNlOiAxLjAuMworICovCitn
aW50IHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X2J1dHRvbihXZWJLaXRXZWJOYXZp
Z2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9JU19XRUJfTkFWSUdBVElPTl9BQ1RJT04obmF2aWdhdGlvbkFjdGlvbiksIC0x
KTsKKworICAgIHJldHVybiBuYXZpZ2F0aW9uQWN0aW9uLT5wcml2LT5idXR0b247Cit9CisKKy8q
KgorICogd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfbW9kaWZpZXJfc3RhdGU6Cisg
KiBAbmF2aWdhdGlvbkFjdGlvbjogYSAjV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbgorICoKKyAq
IFJldHVybnMgYSBiaXRtYXNrIHdpdGggdGhlIHRoZSBzdGF0ZSBvZiB0aGUgbW9kaWZpZXIga2V5
cy4KKyAqCisgKiBSZXR1cm4gdmFsdWU6IGEgYml0bWFzayB3aXRoIHRoZSBzdGF0ZSBvZiB0aGUg
bW9kaWZpZXIga2V5cworICoKKyAqIFNpbmNlOiAxLjAuMworICovCitnaW50IHdlYmtpdF93ZWJf
bmF2aWdhdGlvbl9hY3Rpb25fZ2V0X21vZGlmaWVyX3N0YXRlKFdlYktpdFdlYk5hdmlnYXRpb25B
Y3Rpb24qIG5hdmlnYXRpb25BY3Rpb24pCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VC
S0lUX0lTX1dFQl9OQVZJR0FUSU9OX0FDVElPTihuYXZpZ2F0aW9uQWN0aW9uKSwgMCk7CisKKyAg
ICByZXR1cm4gbmF2aWdhdGlvbkFjdGlvbi0+cHJpdi0+bW9kaWZpZXJfc3RhdGU7Cit9CisgICAg
CiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0
aW9uLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmgKaW5k
ZXggODM0ODlkZS4uMjgyNWVlYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2VibmF2aWdhdGlvbmFjdGlvbi5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5h
dmlnYXRpb25hY3Rpb24uaApAQCAtNzYsNiArNzYsMTIgQEAgd2Via2l0X3dlYl9uYXZpZ2F0aW9u
X2FjdGlvbl9nZXRfb3JpZ2luYWxfdXJpKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24qIG5hdmln
YXQKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRfb3Jp
Z2luYWxfdXJpKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24qIG5hdmlnYXRpb25BY3Rpb24sIGNv
bnN0IGdjaGFyKiBvcmlnaW5hbFVyaSk7CiAKK1dFQktJVF9BUEkgZ2ludAord2Via2l0X3dlYl9u
YXZpZ2F0aW9uX2FjdGlvbl9nZXRfYnV0dG9uKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24qIG5h
dmlnYXRpb25BY3Rpb24pOworCitXRUJLSVRfQVBJIGdpbnQKK3dlYmtpdF93ZWJfbmF2aWdhdGlv
bl9hY3Rpb25fZ2V0X21vZGlmaWVyX3N0YXRlKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24qIG5h
dmlnYXRpb25BY3Rpb24pOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKLS0gCjEuNi4wLjYKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>