Mercurial > pidgin.yaz
changeset 27906:6ecfc6b9667c
propagate from branch 'im.pidgin.pidgin' (head ca4b6e987b967927b0f8bd001bc33440a6885000)
to branch 'im.pidgin.pidgin.yaz' (head 7a92169e2ac82026d2b2918ed9662c7fd42e3280)
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Mon, 17 Nov 2008 06:15:33 +0000 |
parents | 45ce87f9a07f (current diff) ef9da5db3c71 (diff) |
children | a64685485775 |
files | configure.ac libpurple/protocols/irc/irc.c libpurple/protocols/irc/parse.c libpurple/protocols/jabber/message.c libpurple/protocols/msn/msg.c libpurple/protocols/msn/msn.c libpurple/protocols/msn/switchboard.c libpurple/protocols/oscar/oscar.c libpurple/protocols/yahoo/yahoo.c libpurple/protocols/yahoo/yahoo.h libpurple/protocols/yahoo/yahoo_filexfer.c libpurple/server.c libpurple/util.c pidgin/gtkblist.c pidgin/gtkconv.c pidgin/gtkimhtml.c pidgin/gtknotify.c pidgin/gtkutils.c pidgin/pidginstock-artwork.c |
diffstat | 144 files changed, 7780 insertions(+), 1299 deletions(-) [+] |
line wrap: on
line diff
--- a/.mtn-ignore Fri Oct 31 08:37:42 2008 +0000 +++ b/.mtn-ignore Mon Nov 17 06:15:33 2008 +0000 @@ -39,8 +39,10 @@ pidgin/pidgin$ pidgin/pixmaps/emotes/default/24/theme pidgin/pixmaps/emotes/none/theme +pidgin/pixmaps/emotes/small/16/theme pidgin/plugins/musicmessaging/music-messaging-bindings.c pidgin/plugins/perl/common/Makefile.PL$ +pidgin/plugins/perl/common/Makefile.old pidgin/win32/pidgin_dll_rc.rc$ pidgin/win32/pidgin_exe_rc.rc$ install-sh @@ -51,6 +53,7 @@ libpurple/gconf/purple.schemas$ libpurple/plugins/dbus-example-bindings.c libpurple/plugins/perl/common/Makefile.PL$ +libpurple/plugins/perl/common/Makefile.old libpurple/plugins/perl/common/const-c.inc libpurple/plugins/perl/common/const-xs.inc libpurple/plugins/perl/common/lib
--- a/COPYRIGHT Fri Oct 31 08:37:42 2008 +0000 +++ b/COPYRIGHT Mon Nov 17 06:15:33 2008 +0000 @@ -145,6 +145,7 @@ Evgueni V. Gavrilov Ignacy Gawedzki Georgi Georgiev +Brian Geppert Thomas Gibson-Robinson Ike Gingerich Gustavo Giráldez @@ -287,6 +288,7 @@ Christopher O'Brien (siege) Peter O'Gorman Jon Oberheide +Marcos García Ochoa Yusuke Odate Ruediger Oertel Gudmundur Bjarni Olafsson @@ -462,6 +464,7 @@ Dan Willemsen Justin Williams (Jaywalker) Jason Willis +Alex Willmer Matt Wilson Dan Winship Scott Wolchok
--- a/ChangeLog Fri Oct 31 08:37:42 2008 +0000 +++ b/ChangeLog Mon Nov 17 06:15:33 2008 +0000 @@ -7,6 +7,7 @@ "Microsoft Internet Authority" certificates. People that use --with-system-ssl-certs and GnuTLS need to include these in the system certs directory. + * Corrected maximum message lengths for Yahoo! Pidgin: * On GTK+ 2.14 and higher, we're using the gtk-tooltip-delay setting
--- a/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -30,7 +30,12 @@ distcheck-hook: libpurple/plugins/perl/common/Purple.pm pidgin/plugins/perl/common/Pidgin.pm # cp libpurple/plugins/perl/common/Gaim.pm $(distdir)/libpurple/plugins/perl/common -version-check: +commit-check: + (cd po ; intltool-update -m 2>&1 | grep -v '^mismatched quotes.*\.py$$' | sed "s|current directory|po directory|" | grep . ; if [ $$? = 0 ] ; then exit 1 ; else exit 0 ; fi) + LC_ALL=C sort -c -t/ -u po/POTFILES.in + LC_ALL=C sort -c -t/ -u po/POTFILES.skip + +version-check: commit-check # We don't want to release development versions. test x`echo $(PACKAGE_VERSION) | grep dev` = x
--- a/configure.ac Fri Oct 31 08:37:42 2008 +0000 +++ b/configure.ac Mon Nov 17 06:15:33 2008 +0000 @@ -1010,23 +1010,23 @@ extern_init= load_proto= for i in $STATIC_PRPLS ; do - dnl Ugly special case for "libsilcpurple.a": + dnl Ugly special case for "libsilcpurple.la": dnl ... and Ugly special case for multi-protocol oscar if test \( "x$i" = "xoscar" -o "x$i" = "xaim" -o "x$i" = "xicq" \) -a "x$static_oscar" != "xyes"; then - STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/oscar/liboscar.a" + STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/oscar/liboscar.la" extern_init="$extern_init extern gboolean purple_init_aim_plugin();" extern_init="$extern_init extern gboolean purple_init_icq_plugin();" load_proto="$load_proto purple_init_aim_plugin();" load_proto="$load_proto purple_init_icq_plugin();" else if test "x$i" = "xsilc"; then - STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib${i}purple.a" + STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib${i}purple.la" elif test "x$i" = "xsilc10"; then - STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/libsilcpurple.a" + STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/libsilcpurple.la" elif test "x$i" = "xmsnp9"; then - STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/libmsn.a" + STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/libmsn.la" else - STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib$i.a" + STATIC_LINK_LIBS="$STATIC_LINK_LIBS \$(top_builddir)/libpurple/protocols/$i/lib$i.la" fi extern_init="$extern_init extern gboolean purple_init_${i}_plugin();" load_proto="$load_proto purple_init_${i}_plugin();" @@ -2384,6 +2384,7 @@ pidgin/pixmaps/Makefile pidgin/pixmaps/emotes/default/24/Makefile pidgin/pixmaps/emotes/none/Makefile + pidgin/pixmaps/emotes/small/16/Makefile pidgin/plugins/Makefile pidgin/plugins/cap/Makefile pidgin/plugins/gestures/Makefile
--- a/doc/TCL-HOWTO.dox Fri Oct 31 08:37:42 2008 +0000 +++ b/doc/TCL-HOWTO.dox Mon Nov 17 06:15:33 2008 +0000 @@ -4,11 +4,11 @@ NOTA BENE: This documentation is badly out of date for 2.x. -The Gaim Tcl interface provides a Tcl API for many useful gaim -functions. Like the perl API, the Tcl API does not provide -access to every corner of gaim exposed by the @e C interface. It does, -however, provide a very powerful interface to many of Gaim's functions -through a simple to learn and extend scripting language. +The libpurple Tcl interface provides a Tcl API for many useful libpurple +functions. Like the perl API, the Tcl API does not provide access to +every corner of libpurple exposed by the @e C interface. It does, +however, provide a very powerful interface to many of libpurple's +functions through a simple to learn and extend scripting language. If you are not familiar with Tcl, you will probably find it somewhat different from what you are used to. Despite being somewhat unique @@ -19,7 +19,7 @@ @section start Getting Started -The only requirement placed on a Gaim Tcl script by Gaim is the +The only requirement placed on a purple Tcl script by libpurple is the existence of a procedure called @c plugin_init. This procedure has some limitations placed upon it; it will be parsed and evaluated before the rest of the Tcl script, so it cannot reference any other variables @@ -42,56 +42,57 @@ @endcode The rest of the script will generally be registration to recieve -notification of various Gaim signals (more about this below) and -definitions of procedures to be executed when those signals occur. +notification of various purple (or Pidgin, or finch, or ...) signals +(more about this below) and definitions of procedures to be executed +when those signals occur. @section details Interpreter Details -Gaim initializes and drives the Tcl event loop (similar to Tk), +libpurple initializes and drives the Tcl event loop (similar to Tk), meaning that commands like @c fileevent and @c after are available and do not require @c vwait etc. The @c vwait actually seems to be somewhat broken due to a bug somewhere in the Tcl/Glib event loop glue, and it should not be used for now. -The gaim-specific functions are provided in a statically-linked -package called @c gaim; this means that if you spawn a child -interpreter and wish to use the gaim-specific functions, you will need -to execute <tt>load {} gaim</tt> in that interpreter. +The purple-specific functions are provided in a statically-linked +package called @c purple; this means that if you spawn a child +interpreter and wish to use the purple-specific functions, you will need +to execute <tt>load {} purple</tt> in that interpreter. -@section internals Gaim Internal Procedures and Variables +@section internals purple Internal Procedures and Variables -All of the information provided for your use by Gaim will be in the @c -::gaim namespace. This means that in order to access it you will either -have to import the gaim namespace (e.g. via the command <tt>namespace -import gaim::*</tt>) or reference it explicitly. The following +All of the information provided for your use by purple will be in the @c +::purple namespace. This means that in order to access it you will either +have to import the purple namespace (e.g. via the command <tt>namespace +import purple::*</tt>) or reference it explicitly. The following descriptions will reference it explicitly for clarity. @li Variables @code -gaim::version +purple::version @endcode - This contains the version of the gaim process which loaded the + This contains the version of the libpurple library which loaded the script. @li Commands @code -gaim::account alias account -gaim::account connect account -gaim::account connection account -gaim::account disconnect account -gaim::account find username protocol -gaim::account handle -gaim::account isconnected account -gaim::account list ?option? -gaim::account protocol account -gaim::account username account +purple::account alias account +purple::account connect account +purple::account connection account +purple::account disconnect account +purple::account find username protocol +purple::account handle +purple::account isconnected account +purple::account list ?option? +purple::account protocol account +purple::account username account @endcode - The @c gaim::account command consists of a set of subcommands - pertaining to gaim accounts. + The @c purple::account command consists of a set of subcommands + pertaining to purple accounts. @c alias returns the alias for the account @c account. If there is no alias for the given account, it returns the empty string. @@ -101,24 +102,24 @@ the @c gc for the account. @c connection returns the @c gc of the given account if it is connected, - or 0 if it is not. This @c gc is the gc used by gaim::connection and + or 0 if it is not. This @c gc is the gc used by purple::connection and other functions. @c disconnect disconnects the given @c account if it is connected, or does nothing if it is. @c find finds an account by its @c username and @c protocol (as returned by - <tt>gaim::account username</tt> and <tt>gaim::account protocol</tt>) and + <tt>purple::account username</tt> and <tt>purple::account protocol</tt>) and returns the account if found, or 0 otherwise. @c handle returns the instance handle required to connect to account - signals. (See <tt>gaim::signal connect</tt>). + signals. (See <tt>purple::signal connect</tt>). The @c isconnected query returns true if the given account is connected and false otherwise. The @c list subcommand returns a list of all of the accounts known to - Gaim. The elements of this lists are accounts appropriate for the + libpurple. The elements of this lists are accounts appropriate for the @c account argument of the other subcommands. The @c -all option (default) returns all accounts, while the @c -online option returns only those accounts which are online. @@ -130,13 +131,13 @@ @c account. @code -gaim::buddy alias buddy -gaim::buddy handle -gaim::buddy info ( buddy | account username ) -gaim::buddy list +purple::buddy alias buddy +purple::buddy handle +purple::buddy info ( buddy | account username ) +purple::buddy list @endcode - @c gaim::buddy is a set of commands for retrieving information about + @c purple::buddy is a set of commands for retrieving information about buddies and manipulating the buddy list. For the purposes of Tcl, a "buddy" is currently a list of several elements, the first of which being the type. The currently recognized types are "group", @@ -157,73 +158,73 @@ exists, or the empty string if it does not. @c handle returns the blist handle for the purposes of connecting - signals to buddy list events. (See <tt>gaim::signal connect</tt>). + signals to buddy list events. (See <tt>purple::signal connect</tt>). - @c info causes gaim to display the info dialog for the given buddy. - Since it is possible to request user info for a buddy not in your - buddy list, you may also specify a buddy by his or her username and - the account through which you wish to retrieve info. + @c info causes the purple-using UI to display the info dialog for the + given buddy. Since it is possible to request user info for a buddy + not in your buddy list, you may also specify a buddy by his or her + username and the account through which you wish to retrieve info. @c list returns a list of @c group structures, filled out with buddies and chats as described above. @code -gaim::connection account gc -gaim::connection displayname gc -gaim::connection handle -gaim::connection list +purple::connection account gc +purple::connection displayname gc +purple::connection handle +purple::connection list @endcode - @c gaim::connection is a collection of subcommands pertaining to + @c purple::connection is a collection of subcommands pertaining to account connections. - @c account returns the Gaim account associated with @c gc. This - account is the same account used by @c gaim::account and other + @c account returns the purple account associated with @c gc. This + account is the same account used by @c purple::account and other commands. @c displayname returns the display name (duh) of @c gc as reported by - <tt>gaim_connection_get_display_name(gc)</tt>. + <tt>purple_connection_get_display_name(gc)</tt>. - @c handle returns the gaim connections instance handle. (See - <tt>gaim::signal connect</tt>). + @c handle returns the purple connections instance handle. (See + <tt>purple::signal connect</tt>). @c list returns a list of all known connections. The elements of this list are appropriate as @c gc arguments to the other - @c gaim::connection subcommands or other commands requiring a gc. + @c purple::connection subcommands or other commands requiring a gc. @code -gaim::conv_send account who text +purple::conv_send account who text @endcode - @c gaim::conv is simply a convenience wrapper for @c gaim::send_im and - <tt>gaim::conversation write</tt>. It sends the IM, determines the from - and to arguments for <tt>gaim::conversation write</tt>, and prints the text + @c purple::conv is simply a convenience wrapper for @c purple::send_im and + <tt>purple::conversation write</tt>. It sends the IM, determines the from + and to arguments for <tt>purple::conversation write</tt>, and prints the text sent to the conversation as one would expect. For the curious, you - may view the source for it by typing <tt>info body gaim::conv_send</tt> at - a Gaim Commander prompt. + may view the source for it by typing <tt>info body purple::conv_send</tt> at + a Purple Commander prompt. - Note that an error in either @c gaim::send_im or <tt>gaim::conversation + Note that an error in either @c purple::send_im or <tt>purple::conversation write</tt> will not be caught by this procedure, and will be propagated to the caller. @code -gaim::conversation find ?-account account? name -gaim::conversation handle -gaim::conversation list -gaim::conversation new ?-chat? ?-im? account name -gaim::conversation write conversation style from to text +purple::conversation find ?-account account? name +purple::conversation handle +purple::conversation list +purple::conversation new ?-chat? ?-im? account name +purple::conversation write conversation style from to text @endcode - @c gaim::conversation provides an API for dealing with conversations. - Given that Gaim is an instant messenger program, you'll probably - spend a lot of time here. + @c purple::conversation provides an API for dealing with + conversations. Given that libpurple clients are instant messenger + programs, you'll probably spend a lot of time here. The command @c find attempts to find an existing conversation with username @c name. If the @c -account option is given, it refines its search to include only conversations on that account. @c handle returns the conversations instance handle for the purposes - of signal connection. (See <tt>gaim::signal connect</tt>). + of signal connection. (See <tt>purple::signal connect</tt>). @c list returns a list of all currently open conversations. @@ -235,56 +236,56 @@ @c write is used to write to the specified conversation. The @c style argument specifies how the text should be printed -- as text coming - from the gaim user (style @c send), being sent to the gaim user + from the purple user (style @c send), being sent to the purple user (style @c recv), or as a system message (such as "so-and-so has signed off", style @c system). From is the name to whom the text should be attributed -- you probably want to check for aliases here, lest you confuse the user. @c text is the text to print. @code -gaim::core handle -gaim::core quit +purple::core handle +purple::core quit @endcode - This command exposes functionality provided by the gaim core API. + This command exposes functionality provided by the purple core API. - <tt>gaim::core handle</tt> returns a handle to the gaim core for signal - connection. (See <tt>gaim::signal connect</tt>). + <tt>purple::core handle</tt> returns a handle to the purple core for signal + connection. (See <tt>purple::signal connect</tt>). - @c quit exits gaim cleanly, and should be used in preference to the - tcl @c exit command. (Note that @c exit has not been removed, - however.) + @c quit exits the libpurple client cleanly, and should be used in + preference to the tcl @c exit command. (Note that @c exit has not + been removed, however.) @code -gaim::debug level category message +purple::debug level category message @endcode - Equivalent to the C gaim_debug function, this command outputs - debugging information to the gaim debug window (or stdout if gaim is - invoked with -d|--debug). The valid levels are, in increasing level - of severity, @c -misc, @c -info, @c -warning, and, or @c -error. @c - category is a short (a few characters ... for instance, "tcl" or "tcl - plugin") "topic" type name for this message, and @c message is the text - of the message. In the style of Tcl @e puts (and differing from - @e gaim_debug), no trailing \\n is required. (However, embedded newlines - may be generated with \\n). + Equivalent to the C purple_debug function, this command outputs + debugging information to the libpurple UI's debug window (or, + typically, stdout if that UI is invoked with -d|--debug). The valid + levels are, in increasing level of severity, @c -misc, @c -info, @c + -warning, and, or @c -error. @c category is a short (a few characters + ... for instance, "tcl" or "tcl plugin") "topic" type name for this + message, and @c message is the text of the message. In the style of + Tcl @e puts (and differing from @e purple_debug), no trailing \\n is + required. (However, embedded newlines may be generated with \\n). @code -gaim::notify ?type? title primary secondary +purple::notify ?type? title primary secondary @endcode - Also a direct equivalent to a C function, gaim_notify, this command - causes gaim to present the provided notification information to the - user via some appropriate UI method. The @c type argument, if - present, must be one of @c -error, @c -warning, or @c -info. The following - three arguments' absolute meanings may vary with the Gaim UI being - used (presently only a Gtk2 UI is available), but @c title should - generally be the title of the window, and @c primary and @c secondary - text within that window; in the Gtk2 UI, @c primary is slightly - larger than @c secondary and displayed in a @b boldface font. + Also a direct equivalent to a C function, purple_notify, this command + causes libpurple to present the provided notification information to + the user via some appropriate UI method. The @c type argument, if + present, must be one of @c -error, @c -warning, or @c -info. The + following three arguments' absolute meanings may vary with the purple + UI being used, but @c title should generally be the title of the + window, and @c primary and @c secondary text within that window; in + the Pidgin UI, @c primary is slightly larger than @c secondary and + displayed in a @b boldface font. @code -gaim::send_im gc who text +purple::send_im gc who text @endcode This sends an IM in the fashion of serv_send_im. @c gc is the GC of @@ -293,31 +294,31 @@ and @c text is the text of the message. @code -gaim::signal connect instance signal args proc -gaim::signal disconnect instance signal +purple::signal connect instance signal args proc +purple::signal disconnect instance signal @endcode - @c gaim::signal is a set of subcommands for dealing with gaim signals - (known as "events" prior to gaim 0.68). + @c purple::signal is a set of subcommands for dealing with purple + signals. The @c connect subcommand registers the procedure @c proc as a handler for the signal @c signal on the instance @c instance. @c instance should be an instance handle as returned by one of the @c handle - commands from the various parts of gaim. @c args and @ proc are as in - the Tcl @e proc command; note that the number of arguments in @c args - must match the number of arguments emitted by the signal exactly, + commands from the various parts of libpurple. @c args and @ proc are + as in the Tcl @e proc command; note that the number of arguments in @c + args must match the number of arguments emitted by the signal exactly, although you need not use them all. The procedure @c proc may be either a simple command or a procedure in curly brackets. Note that only one procedure may be associated with each signal; an attempt to - connect a second procedure to the same signal will remove the - existing binding and replace it with the new procedure. - <tt>gaim::signal connect</tt> returns 0 on success and 1 on failure. + connect a second procedure to the same signal will remove the existing + binding and replace it with the new procedure. <tt>purple::signal + connect</tt> returns 0 on success and 1 on failure. @c disconnect removes any existing signal handler for the named signal and instance. @code -gaim::unload +purple::unload @endcode This unloads the current plugin. Note that preferences will not be @@ -338,9 +339,9 @@ might look like this: @code -gaim::signal connect [gaim::conversation handle] receiving-im-msg { +purple::signal connect [purple::conversation handle] receiving-im-msg { if {[ string match "*shizzle*" $event::buffer ]} { - gaim::notify -info "tcl plugin" "Fo' shizzle" \ + purple::notify -info "tcl plugin" "Fo' shizzle" \ "$event::sender is down with the shizzle" } } @@ -348,7 +349,7 @@ Note that for some signals (notably @c receiving-im-msg, @c sending-im-msg, and their chat counterparts), changes to the event arguments will -change the message itself from Gaim's vantage. For those signals +change the message itself from libpurple's vantage. For those signals whose return value is meaningful, returning a value from the Tcl event will return that value as it would in C.
--- a/doc/funniest_home_convos.txt Fri Oct 31 08:37:42 2008 +0000 +++ b/doc/funniest_home_convos.txt Mon Nov 17 06:15:33 2008 +0000 @@ -556,3 +556,12 @@ (16:58:10) elb: I just spent literally a couple of HOURS trying to debug a problem where I was using g_list_delete_link with a list item which wasn't in the list + +-- + +22:35 <user> hi I know this might sound like a stupid question and I am NOT + trolling.. +22:36 <user> but when I go to some channels like anime ones people lol at me + for using pidgen +22:36 <user> why do they think this is a bad client? does it have history? +
--- a/finch/gntdebug.c Fri Oct 31 08:37:42 2008 +0000 +++ b/finch/gntdebug.c Mon Nov 17 06:15:33 2008 +0000 @@ -233,7 +233,7 @@ } fprintf(fp, "Finch Debug Log : %s\n", purple_date_format_full(NULL)); - fprintf(fp, tv->string->str); + fprintf(fp, "%s", tv->string->str); fclose(fp); gnt_widget_destroy(GNT_WIDGET(fs)); }
--- a/finch/libgnt/gntentry.c Fri Oct 31 08:37:42 2008 +0000 +++ b/finch/libgnt/gntentry.c Mon Nov 17 06:15:33 2008 +0000 @@ -903,6 +903,7 @@ GNT_KEY_CTRL_K, NULL); gnt_bindable_class_register_action(bindable, "delete-prev-word", del_prev_word, GNT_KEY_CTRL_W, NULL); + gnt_bindable_register_binding(bindable, "delete-prev-word", "\033", s, NULL); gnt_bindable_class_register_action(bindable, "cursor-prev-word", move_back_word, "\033" "b", NULL); gnt_bindable_class_register_action(bindable, "cursor-prev", move_back,
--- a/libpurple/blist.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/blist.c Mon Nov 17 06:15:33 2008 +0000 @@ -2214,6 +2214,7 @@ struct proto_chat_entry *pce; PurpleBlistNode *node, *group; GList *parts; + char *normname; g_return_val_if_fail(purplebuddylist != NULL, NULL); g_return_val_if_fail((name != NULL) && (*name != '\0'), NULL); @@ -2227,6 +2228,7 @@ if (prpl_info->find_blist_chat != NULL) return prpl_info->find_blist_chat(account, name); + normname = g_strdup(purple_normalize(account, name)); for (group = purplebuddylist->root; group != NULL; group = group->next) { for (node = group->child; node != NULL; node = node->next) { if (PURPLE_BLIST_NODE_IS_CHAT(node)) { @@ -2246,14 +2248,15 @@ g_list_free(parts); if (chat->account == account && chat_name != NULL && - name != NULL && !strcmp(chat_name, name)) { - + normname != NULL && !strcmp(purple_normalize(account, chat_name), normname)) { + g_free(normname); return chat; } } } } + g_free(normname); return NULL; }
--- a/libpurple/dbus-analyze-functions.py Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/dbus-analyze-functions.py Mon Nov 17 06:15:33 2008 +0000 @@ -372,13 +372,13 @@ def inputsimple(self, type, name, us): if us: + self.cdecls.append("\tdbus_uint32_t %s;" % name) + self.cparams.append(("UINT32", name)) + self.addintype("u", name) + else: self.cdecls.append("\tdbus_int32_t %s;" % name) self.cparams.append(("INT32", name)) self.addintype("i", name) - else: - self.cdecls.append("\tdbus_uint32_t %s;" % name) - self.cparams.append(("UINT32", name)) - self.addintype("u", name) def inputstring(self, type, name, us): if us:
--- a/libpurple/plugins/log_reader.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/plugins/log_reader.c Mon Nov 17 06:15:33 2008 +0000 @@ -1971,7 +1971,7 @@ c = contents; line = contents; - while (*c) { + while (c && *c) { gboolean is_in_message = FALSE; if (purple_str_has_prefix(line, QIP_LOG_IN_MESSAGE_ESC) ||
--- a/libpurple/plugins/perl/common/Notify.xs Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/plugins/perl/common/Notify.xs Mon Nov 17 06:15:33 2008 +0000 @@ -6,7 +6,7 @@ BOOT: { HV *type_stash = gv_stashpv("Purple::Notify::Type", 1); - HV *msg_type_stash = gv_stashpv("Purple::Notify:Msg", 1); + HV *msg_type_stash = gv_stashpv("Purple::Notify::Msg", 1); HV *user_info_stash = gv_stashpv("Purple::NotifyUserInfo::Type", 1); static const constiv *civ, type_const_iv[] = {
--- a/libpurple/plugins/ssl/ssl-nss.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/plugins/ssl/ssl-nss.c Mon Nov 17 06:15:33 2008 +0000 @@ -757,7 +757,7 @@ crt_dat = X509_NSS_DATA(crt); g_return_val_if_fail(crt_dat, NULL); - return g_strdup(crt_dat->subjectName); + return g_strdup(crt_dat->issuerName); } static gchar *
--- a/libpurple/plugins/tcl/tcl_cmd.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/plugins/tcl/tcl_cmd.c Mon Nov 17 06:15:33 2008 +0000 @@ -159,7 +159,7 @@ errorstr = g_strdup_printf("error evaluating callback: %s\n", Tcl_GetString(Tcl_GetObjResult(handler->interp))); - purple_debug(PURPLE_DEBUG_ERROR, "tcl", errorstr); + purple_debug(PURPLE_DEBUG_ERROR, "tcl", "%s", errorstr); *errors = errorstr; retval = PURPLE_CMD_RET_FAILED; } else { @@ -170,7 +170,7 @@ errorstr = g_strdup_printf("Error retreiving procedure result: %s\n", Tcl_GetString(Tcl_GetObjResult(handler->interp))); - purple_debug(PURPLE_DEBUG_ERROR, "tcl", errorstr); + purple_debug(PURPLE_DEBUG_ERROR, "tcl", "%s", errorstr); *errors = errorstr; retval = PURPLE_CMD_RET_FAILED; }
--- a/libpurple/protocols/bonjour/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/bonjour/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -30,10 +30,10 @@ if STATIC_BONJOUR st = -DPURPLE_STATIC_PRPL -noinst_LIBRARIES = libbonjour.a -libbonjour_a_SOURCES = $(BONJOURSOURCES) -libbonjour_a_CFLAGS = $(AM_CFLAGS) -libbonjour_a_LIBADD = $(AVAHI_LIBS) +noinst_LTLIBRARIES = libbonjour.la +libbonjour_la_SOURCES = $(BONJOURSOURCES) +libbonjour_la_CFLAGS = $(AM_CFLAGS) +libbonjour_la_LIBADD = $(AVAHI_LIBS) else @@ -44,12 +44,10 @@ endif - AM_CPPFLAGS = \ -I$(top_srcdir)/libpurple \ -I$(top_builddir)/libpurple \ $(GLIB_CFLAGS) \ $(DEBUG_CFLAGS) \ $(LIBXML_CFLAGS) \ - $(AVAHI_CFLAGS) - + $(AVAHI_CFLAGS) \ No newline at end of file
--- a/libpurple/protocols/gg/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/gg/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -52,19 +52,15 @@ if STATIC_GG st = -DPURPLE_STATIC_PRPL $(GADU_CFLAGS) -noinst_LIBRARIES = libgg.a -pkg_LTLIBRARIES = - -libgg_a_SOURCES = $(GGSOURCES) -libgg_a_CFLAGS = $(AM_CFLAGS) -libgg_a_LIBADD = $(GADU_LIBS) +noinst_LTLIBRARIES = libgg.la +libgg_la_SOURCES = $(GGSOURCES) +libgg_la_CFLAGS = $(AM_CFLAGS) +libgg_la_LIBADD = $(GADU_LIBS) else st = $(GADU_CFLAGS) pkg_LTLIBRARIES = libgg.la -noinst_LIBRARIES = - libgg_la_SOURCES = $(GGSOURCES) libgg_la_LIBADD = $(GLIB_LIBS) $(GADU_LIBS)
--- a/libpurple/protocols/gg/gg.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/gg/gg.c Mon Nov 17 06:15:33 2008 +0000 @@ -2232,7 +2232,7 @@ break; } - purple_debug(purple_level, "gg", msg); + purple_debug(purple_level, "gg", "%s", msg); g_free(msg); } /* }}} */
--- a/libpurple/protocols/irc/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/irc/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,8 +1,15 @@ -EXTRA_DIST = Makefile.mingw +EXTRA_DIST = \ + Makefile.mingw pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) -IRCSOURCES = irc.c parse.c cmds.c msgs.c irc.h dcc_send.c +IRCSOURCES = \ + cmds.c \ + dcc_send.c \ + irc.c \ + irc.h \ + msgs.c \ + parse.c AM_CFLAGS = $(st) @@ -11,18 +18,14 @@ if STATIC_IRC st = -DPURPLE_STATIC_PRPL -noinst_LIBRARIES = libirc.a -pkg_LTLIBRARIES = - -libirc_a_SOURCES = $(IRCSOURCES) -libirc_a_CFLAGS = $(AM_CFLAGS) +noinst_LTLIBRARIES = libirc.la +libirc_la_SOURCES = $(IRCSOURCES) +libirc_la_CFLAGS = $(AM_CFLAGS) else st = -pkg_LTLIBRARIES = libirc.la -noinst_LIBRARIES = - +pkg_LTLIBRARIES = libirc.la libirc_la_SOURCES = $(IRCSOURCES) libirc_la_LIBADD = $(GLIB_LIBS)
--- a/libpurple/protocols/irc/irc.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/irc/irc.c Mon Nov 17 06:15:33 2008 +0000 @@ -62,8 +62,6 @@ PurplePlugin *_irc_plugin = NULL; -static const char *status_chars = "@+%&"; - static void irc_view_motd(PurplePluginAction *action) { PurpleConnection *gc = (PurpleConnection *) action->context; @@ -518,10 +516,7 @@ char *plain; const char *args[2]; - if (strchr(status_chars, *who) != NULL) - args[0] = who + 1; - else - args[0] = who; + args[0] = irc_nick_skip_mode(irc, who); purple_markup_html_to_xhtml(what, NULL, &plain); args[1] = plain;
--- a/libpurple/protocols/irc/irc.h Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/irc/irc.h Mon Nov 17 06:15:33 2008 +0000 @@ -109,6 +109,8 @@ char *irc_mirc2html(const char *string); char *irc_mirc2txt(const char *string); +const char *irc_nick_skip_mode(struct irc_conn *irc, const char *string); + gboolean irc_ischannel(const char *string); void irc_register_commands(void);
--- a/libpurple/protocols/irc/parse.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/irc/parse.c Mon Nov 17 06:15:33 2008 +0000 @@ -698,6 +698,19 @@ return result; } +const char *irc_nick_skip_mode(struct irc_conn *irc, const char *nick) +{ + static const char *default_modes = "@+%&"; + const char *mode_chars; + + mode_chars = irc->mode_chars ? irc->mode_chars : default_modes; + + while (strchr(mode_chars, *nick) != NULL) + nick++; + + return nick; +} + gboolean irc_ischannel(const char *string) { return (string[0] == '#' || string[0] == '&');
--- a/libpurple/protocols/jabber/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/jabber/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,7 +1,7 @@ EXTRA_DIST = \ - Makefile.mingw \ - win32/posix.uname.c \ - win32/utsname.h + Makefile.mingw \ + win32/posix.uname.c \ + win32/utsname.h pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) @@ -59,20 +59,16 @@ if STATIC_JABBER st = -DPURPLE_STATIC_PRPL -noinst_LIBRARIES = libjabber.a -pkg_LTLIBRARIES = - -libjabber_a_SOURCES = $(JABBERSOURCES) libxmpp.c -libjabber_a_CFLAGS = $(AM_CFLAGS) +noinst_LTLIBRARIES = libjabber.la +libjabber_la_SOURCES = $(JABBERSOURCES) libxmpp.c +libjabber_la_CFLAGS = $(AM_CFLAGS) else st = -pkg_LTLIBRARIES = libjabber.la libxmpp.la -noinst_LIBRARIES = - +pkg_LTLIBRARIES = libjabber.la libxmpp.la libjabber_la_SOURCES = $(JABBERSOURCES) -libjabber_la_LIBADD = $(GLIB_LIBS) $(SASL_LIBS) $(LIBXML_LIBS) +libjabber_la_LIBADD = $(GLIB_LIBS) $(SASL_LIBS) $(LIBXML_LIBS) libxmpp_la_SOURCES = libxmpp.c libxmpp_la_LIBADD = libjabber.la
--- a/libpurple/protocols/jabber/buddy.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/jabber/buddy.c Mon Nov 17 06:15:33 2008 +0000 @@ -2510,12 +2510,13 @@ } for (iter = jbr->caps->features ; iter ; iter = g_list_next(iter)) { - purple_debug_info("jabber", "Found cap: %s\n", (char *)iter->data); if (strcmp(iter->data, cap) == 0) { + purple_debug_info("jabber", "Found cap: %s\n", (char *)iter->data); return TRUE; } } + purple_debug_info("jabber", "Cap %s not found\n", cap); return FALSE; }
--- a/libpurple/protocols/jabber/message.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/jabber/message.c Mon Nov 17 06:15:33 2008 +0000 @@ -616,7 +616,7 @@ if (jid) { chat = jabber_chat_find(js, jid->node, jid->domain); - conv = chat->conv; + if (chat) conv = chat->conv; } jabber_id_free(jid); @@ -650,7 +650,7 @@ /* note: if there were no smileys in the incoming message, or if receiving custom smileys is turned off, smiley_refs will be NULL */ - for (; smiley_refs ; smiley_refs = g_list_delete_link(smiley_refs, smiley_refs)) { + for (; conv && smiley_refs ; smiley_refs = g_list_delete_link(smiley_refs, smiley_refs)) { JabberSmileyRef *ref = (JabberSmileyRef *) smiley_refs->data; const gchar *cid = ref->cid; const gchar *alt = ref->alt;
--- a/libpurple/protocols/msn/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,7 +1,7 @@ EXTRA_DIST = \ - directconn.c \ - directconn.h \ - Makefile.mingw + directconn.c \ + directconn.h \ + Makefile.mingw pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) @@ -74,9 +74,9 @@ if STATIC_MSN st = -DPURPLE_STATIC_PRPL -noinst_LIBRARIES = libmsn.a -libmsn_a_SOURCES = $(MSNSOURCES) -libmsn_a_CFLAGS = $(AM_CFLAGS) +noinst_LTLIBRARIES = libmsn.la +libmsn_la_SOURCES = $(MSNSOURCES) +libmsn_la_CFLAGS = $(AM_CFLAGS) else
--- a/libpurple/protocols/msn/httpconn.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/httpconn.c Mon Nov 17 06:15:33 2008 +0000 @@ -64,7 +64,6 @@ const char *body_start; char *tmp; size_t body_len = 0; - gboolean wasted = FALSE; g_return_val_if_fail(httpconn != NULL, FALSE); g_return_val_if_fail(buf != NULL, FALSE); @@ -120,7 +119,7 @@ /* Need to wait for the full HTTP header to arrive */ return FALSE; - s += 4; /* Skip \r\n */ + s += 4; /* Skip \r\n\r\n */ header = g_strndup(buf, s - buf); body_start = s; body_len = size - (body_start - buf); @@ -158,11 +157,12 @@ } } - body = g_malloc0(body_len + 1); + body = g_malloc(body_len + 1); memcpy(body, body_start, body_len); + body[body_len] = '\0'; #ifdef MSN_DEBUG_HTTP - purple_debug_misc("msn", "Incoming HTTP buffer (header): {%s\r\n}\n", + purple_debug_misc("msn", "Incoming HTTP buffer (header): {%s}\n", header); #endif @@ -184,6 +184,7 @@ purple_debug_error("msn", "Malformed X-MSN-Messenger field.\n{%s}\n", buf); + g_free(header); g_free(body); return FALSE; } @@ -217,15 +218,10 @@ g_free(tmp); - if ((session_action != NULL) && (strcmp(session_action, "close") == 0)) - wasted = TRUE; - - g_free(session_action); - t = strchr(full_session_id, '.'); session_id = g_strndup(full_session_id, t - full_session_id); - if (!wasted) + if (session_action == NULL || strcmp(session_action, "close") != 0) { g_free(httpconn->full_session_id); httpconn->full_session_id = full_session_id; @@ -254,6 +250,8 @@ g_free(session_id); g_free(gw_ip); } + + g_free(session_action); } g_free(header); @@ -271,27 +269,26 @@ { MsnHttpConn *httpconn; MsnServConn *servconn; - MsnSession *session; char buf[MSN_BUF_LEN]; - char *cur, *end, *old_rx_buf; gssize len; - int cur_len; char *result_msg = NULL; size_t result_len = 0; gboolean error = FALSE; httpconn = data; - servconn = NULL; - session = httpconn->session; + servconn = httpconn->servconn; + + if (servconn->type == MSN_SERVCONN_NS) + servconn->session->account->gc->last_received = time(NULL); len = read(httpconn->fd, buf, sizeof(buf) - 1); - if (len < 0 && errno == EAGAIN) return; - else if (len <= 0) - { - purple_debug_error("msn", "HTTP: Read error\n"); - msn_servconn_got_error(httpconn->servconn, MSN_SERVCONN_ERROR_READ); + if (len <= 0) { + purple_debug_error("msn", "HTTP: servconn %03d read error, " + "len: %" G_GSSIZE_FORMAT ", errno: %d, error: %s\n", + servconn->num, len, error, g_strerror(errno)); + msn_servconn_got_error(servconn, MSN_SERVCONN_ERROR_READ); return; } @@ -307,19 +304,15 @@ { /* Either we must wait for more input, or something went wrong */ if (error) - msn_servconn_got_error(httpconn->servconn, MSN_SERVCONN_ERROR_READ); + msn_servconn_got_error(servconn, MSN_SERVCONN_ERROR_READ); return; } - httpconn->servconn->processing = FALSE; - - servconn = httpconn->servconn; - if (error) { purple_debug_error("msn", "HTTP: Special error\n"); - msn_servconn_got_error(httpconn->servconn, MSN_SERVCONN_ERROR_READ); + msn_servconn_got_error(servconn, MSN_SERVCONN_ERROR_READ); return; } @@ -342,64 +335,7 @@ servconn->rx_buf = result_msg; servconn->rx_len = result_len; - end = old_rx_buf = servconn->rx_buf; - - servconn->processing = TRUE; - - do - { - cur = end; - - if (servconn->payload_len) - { - if (servconn->payload_len > servconn->rx_len) - /* The payload is still not complete. */ - break; - - cur_len = servconn->payload_len; - end += cur_len; - } - else - { - end = strstr(cur, "\r\n"); - - if (end == NULL) - /* The command is still not complete. */ - break; - - *end = '\0'; - end += 2; - cur_len = end - cur; - } - - servconn->rx_len -= cur_len; - - if (servconn->payload_len) - { - msn_cmdproc_process_payload(servconn->cmdproc, cur, cur_len); - servconn->payload_len = 0; - } - else - { - msn_cmdproc_process_cmd_text(servconn->cmdproc, cur); - servconn->payload_len = servconn->cmdproc->last_cmd->payload_len; - } - } while (servconn->connected && servconn->rx_len > 0); - - if (servconn->connected) - { - if (servconn->rx_len > 0) - servconn->rx_buf = g_memdup(cur, servconn->rx_len); - else - servconn->rx_buf = NULL; - } - - servconn->processing = FALSE; - - if (servconn->wasted) - msn_servconn_destroy(servconn); - - g_free(old_rx_buf); + msn_servconn_process_data(servconn); } static void @@ -723,7 +659,7 @@ httpconn->inpa = purple_input_add(httpconn->fd, PURPLE_INPUT_READ, read_cb, data); - httpconn->timer = purple_timeout_add(2000, msn_httpconn_poll, httpconn); + httpconn->timer = purple_timeout_add_seconds(2, msn_httpconn_poll, httpconn); msn_httpconn_process_queue(httpconn); }
--- a/libpurple/protocols/msn/msg.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/msg.c Mon Nov 17 06:15:33 2008 +0000 @@ -195,8 +195,9 @@ if (body_len > 0) { msg->body_len = len - (tmp - body); - msg->body = g_malloc0(msg->body_len + 1); + msg->body = g_malloc(msg->body_len + 1); memcpy(msg->body, tmp, msg->body_len); + msg->body[msg->body_len] = '\0'; tmp += body_len; } } @@ -212,8 +213,9 @@ char **elems, **cur, **tokens; g_return_if_fail(payload != NULL); - tmp_base = tmp = g_malloc0(payload_len + 1); + tmp_base = tmp = g_malloc(payload_len + 1); memcpy(tmp_base, payload, payload_len); + tmp_base[payload_len] = '\0'; /* Parse the attributes. */ end = strstr(tmp, body_dem); @@ -311,8 +313,9 @@ if (body_len > 0) { msg->body_len = body_len; g_free(msg->body); - msg->body = g_malloc0(msg->body_len + 1); + msg->body = g_malloc(msg->body_len + 1); memcpy(msg->body, tmp, msg->body_len); + msg->body[msg->body_len] = '\0'; tmp += body_len; } @@ -328,8 +331,9 @@ if (payload_len - (tmp - tmp_base) > 0) { msg->body_len = payload_len - (tmp - tmp_base); g_free(msg->body); - msg->body = g_malloc0(msg->body_len + 1); + msg->body = g_malloc(msg->body_len + 1); memcpy(msg->body, tmp, msg->body_len); + msg->body[msg->body_len] = '\0'; } } @@ -526,8 +530,9 @@ if (data != NULL && len > 0) { - msg->body = g_malloc0(len + 1); + msg->body = g_malloc(len + 1); memcpy(msg->body, data, len); + msg->body[len] = '\0'; msg->body_len = len; } else
--- a/libpurple/protocols/msn/msn.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/msn.c Mon Nov 17 06:15:33 2008 +0000 @@ -121,9 +121,6 @@ session = gc->proto_data; swboard = msn_session_get_swboard(session, username, MSN_SB_FLAG_IM); - if (swboard == NULL) - return FALSE; - msn_switchboard_send_msg(swboard, msg, TRUE); msn_message_destroy(msg); @@ -574,21 +571,17 @@ msn_new_xfer(PurpleConnection *gc, const char *who) { MsnSession *session; - MsnSlpLink *slplink; PurpleXfer *xfer; session = gc->proto_data; xfer = purple_xfer_new(gc->account, PURPLE_XFER_SEND, who); - if (xfer) - { - slplink = msn_session_get_slplink(session, who); - - xfer->data = slplink; - - purple_xfer_set_init_fnc(xfer, t_msn_xfer_init); - } + g_return_val_if_fail(xfer != NULL, NULL); + + xfer->data = msn_session_get_slplink(session, who); + + purple_xfer_set_init_fnc(xfer, t_msn_xfer_init); return xfer; } @@ -2591,22 +2584,19 @@ PURPLE_PLUGIN_MAGIC, PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, - PURPLE_PLUGIN_PROTOCOL, /**< type */ + PURPLE_PLUGIN_PROTOCOL, /**< type */ NULL, /**< ui_requirement */ 0, /**< flags */ NULL, /**< dependencies */ - PURPLE_PRIORITY_DEFAULT, /**< priority */ + PURPLE_PRIORITY_DEFAULT, /**< priority */ "prpl-msn", /**< id */ "MSN", /**< name */ DISPLAY_VERSION, /**< version */ - /** summary */ - N_("Windows Live Messenger Protocol Plugin"), - /** description */ - N_("Windows Live Messenger Protocol Plugin"), - "Christian Hammond <chipx86@gnupdate.org>, " - "MaYuan <mayuan2006@gmail.com>", /**< author */ - PURPLE_WEBSITE, /**< homepage */ + N_("Windows Live Messenger Protocol Plugin"), /**< summary */ + N_("Windows Live Messenger Protocol Plugin"), /**< description */ + NULL, /**< author */ + PURPLE_WEBSITE, /**< homepage */ msn_load, /**< load */ msn_unload, /**< unload */
--- a/libpurple/protocols/msn/servconn.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/servconn.c Mon Nov 17 06:15:33 2008 +0000 @@ -174,15 +174,6 @@ servconn = data; servconn->connect_data = NULL; - servconn->processing = FALSE; - - if (servconn->wasted) - { - if (source >= 0) - close(source); - msn_servconn_destroy(servconn); - return; - } servconn->fd = source; @@ -239,15 +230,7 @@ servconn->connect_data = purple_proxy_connect(NULL, session->account, host, port, connect_cb, servconn); - if (servconn->connect_data != NULL) - { - servconn->processing = TRUE; - return TRUE; - } - else - { - return FALSE; - } + return (servconn->connect_data != NULL); } void @@ -383,24 +366,19 @@ read_cb(gpointer data, gint source, PurpleInputCondition cond) { MsnServConn *servconn; - MsnSession *session; char buf[MSN_BUF_LEN]; - char *cur, *end, *old_rx_buf; gssize len; - int cur_len; servconn = data; - session = servconn->session; - len = read(servconn->fd, buf, sizeof(buf) - 1); if (servconn->type == MSN_SERVCONN_NS) servconn->session->account->gc->last_received = time(NULL); - if (len < 0 && errno == EAGAIN) { + len = read(servconn->fd, buf, sizeof(buf) - 1); + if (len < 0 && errno == EAGAIN) return; - - } else if (len <= 0) { - purple_debug_error("msn", "servconn %03d read error," + if (len <= 0) { + purple_debug_error("msn", "servconn %03d read error, " "len: %" G_GSSIZE_FORMAT ", errno: %d, error: %s\n", servconn->num, len, errno, g_strerror(errno)); msn_servconn_got_error(servconn, MSN_SERVCONN_ERROR_READ); @@ -414,6 +392,14 @@ memcpy(servconn->rx_buf + servconn->rx_len, buf, len + 1); servconn->rx_len += len; + msn_servconn_process_data(servconn); +} + +void msn_servconn_process_data(MsnServConn *servconn) +{ + char *cur, *end, *old_rx_buf; + int cur_len; + end = old_rx_buf = servconn->rx_buf; servconn->processing = TRUE;
--- a/libpurple/protocols/msn/servconn.h Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/servconn.h Mon Nov 17 06:15:33 2008 +0000 @@ -170,4 +170,12 @@ */ void msn_servconn_got_error(MsnServConn *servconn, MsnServConnError error); +/** + * Process the data in servconn->rx_buf. This is called after reading + * data from the socket. + * + * @param servconn The servconn. + */ +void msn_servconn_process_data(MsnServConn *servconn); + #endif /* _MSN_SERVCONN_H_ */
--- a/libpurple/protocols/msn/session.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/session.c Mon Nov 17 06:15:33 2008 +0000 @@ -118,12 +118,7 @@ g_return_val_if_reached(FALSE); } - if (msn_notification_connect(session->notification, host, port)) - { - return TRUE; - } - - return FALSE; + return msn_notification_connect(session->notification, host, port); } void @@ -460,8 +455,10 @@ gc = purple_account_get_connection(account); img = purple_buddy_icons_find_account_icon(session->account); + /* TODO: Do we really want to call this if img is NULL? */ msn_user_set_buddy_icon(session->user, img); - purple_imgstore_unref(img); + if (img != NULL) + purple_imgstore_unref(img); session->logged_in = TRUE;
--- a/libpurple/protocols/msn/slp.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/slp.c Mon Nov 17 06:15:33 2008 +0000 @@ -33,7 +33,7 @@ #include "smiley.h" /* ms to delay between sending buddy icon requests to the server. */ -#define BUDDY_ICON_DELAY 20000 +#define BUDDY_ICON_DELAY 20 /*debug SLP*/ #define MSN_DEBUG_UD @@ -97,7 +97,7 @@ content); g_free(content); - msn_slplink_unleash(slpcall->slplink); + msn_slplink_send_queued_slpmsgs(slpcall->slplink); } void @@ -115,7 +115,7 @@ { if (slpcall->started) { - msn_slp_call_close(slpcall); + msn_slpcall_close(slpcall); } else { @@ -126,9 +126,9 @@ content); g_free(content); - msn_slplink_unleash(slpcall->slplink); + msn_slplink_send_queued_slpmsgs(slpcall->slplink); - msn_slp_call_destroy(slpcall); + msn_slpcall_destroy(slpcall); } } } @@ -219,7 +219,7 @@ msn_slplink_queue_slpmsg(slplink, slpmsg); - msn_slp_call_session_init(slpcall); + msn_slpcall_session_init(slpcall); } static void @@ -385,6 +385,7 @@ send_bye(MsnSlpCall *slpcall, const char *type) { MsnSlpLink *slplink; + PurpleAccount *account; MsnSlpMessage *slpmsg; char *header; @@ -392,8 +393,10 @@ g_return_if_fail(slplink != NULL); + account = slplink->session->account; + header = g_strdup_printf("BYE MSNMSGR:%s MSNSLP/1.0", - slplink->local_user); + purple_account_get_username(account)); slpmsg = msn_slpmsg_sip_new(slpcall, 0, header, "A0D624A6-6C0C-4283-A9E0-BC97B4B46D32", @@ -585,10 +588,10 @@ } else { - msn_slp_call_session_init(slpcall); + msn_slpcall_session_init(slpcall); } #else - msn_slp_call_session_init(slpcall); + msn_slpcall_session_init(slpcall); #endif } else if (!strcmp(type, "application/x-msnmsgr-transreqbody")) @@ -643,7 +646,7 @@ char *content; char *content_type; - slpcall = msn_slp_call_new(slplink); + slpcall = msn_slpcall_new(slplink); /* From: <msnmsgr:buddy@hotmail.com> */ #if 0 @@ -708,7 +711,7 @@ slpcall->wasted = TRUE; - /* msn_slp_call_destroy(slpcall); */ + /* msn_slpcall_destroy(slpcall); */ return slpcall; } @@ -732,7 +735,7 @@ if (slpcall != NULL) slpcall->wasted = TRUE; - /* msn_slp_call_destroy(slpcall); */ + /* msn_slpcall_destroy(slpcall); */ } else slpcall = NULL; @@ -755,17 +758,20 @@ if (slplink->swboard == NULL) { - /* We will need this in order to change its flags. */ - slplink->swboard = (MsnSwitchBoard *)cmdproc->data; - /* If swboard is NULL, something has probably gone wrong earlier on - * I didn't want to do this, but MSN 7 is somehow causing us to crash - * here, I couldn't reproduce it to debug more, and people are - * reporting bugs. Hopefully this doesn't cause more crashes. Stu. + /* + * We will need swboard in order to change its flags. If its + * NULL, something has probably gone wrong earlier on. I + * didn't want to do this, but MSN 7 is somehow causing us + * to crash here, I couldn't reproduce it to debug more, + * and people are reporting bugs. Hopefully this doesn't + * cause more crashes. Stu. */ - if (slplink->swboard != NULL) + if (cmdproc->data == NULL) + g_warning("msn_p2p_msg cmdproc->data was NULL\n"); + else { + slplink->swboard = (MsnSwitchBoard *)cmdproc->data; slplink->swboard->slplinks = g_list_prepend(slplink->swboard->slplinks, slplink); - else - purple_debug_error("msn", "msn_p2p_msg, swboard is NULL, ouch!\n"); + } } msn_slplink_process_msg(slplink, msg); @@ -841,7 +847,18 @@ sha1 = msn_object_get_sha1(obj); slplink = msn_session_get_slplink(session, who); - slplink->swboard = swboard; + if (slplink->swboard != swboard) { + if (slplink->swboard != NULL) + /* + * Apparently we're using a different switchboard now or + * something? I don't know if this is normal, but it + * definitely happens. So make sure the old switchboard + * doesn't still have a reference to us. + */ + slplink->swboard->slplinks = g_list_remove(slplink->swboard->slplinks, slplink); + slplink->swboard = swboard; + slplink->swboard->slplinks = g_list_prepend(slplink->swboard->slplinks, slplink); + } /* If the conversation doesn't exist then this is a custom smiley * used in the first message in a MSN conversation: we need to create @@ -1054,8 +1071,8 @@ purple_timeout_remove(userlist->buddy_icon_request_timer); } - /* Wait BUDDY_ICON_DELAY ms before freeing our window slot and requesting the next icon. */ - userlist->buddy_icon_request_timer = purple_timeout_add(BUDDY_ICON_DELAY, + /* Wait BUDDY_ICON_DELAY s before freeing our window slot and requesting the next icon. */ + userlist->buddy_icon_request_timer = purple_timeout_add_seconds(BUDDY_ICON_DELAY, msn_release_buddy_icon_request_timeout, userlist); }
--- a/libpurple/protocols/msn/slpcall.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/slpcall.c Mon Nov 17 06:15:33 2008 +0000 @@ -33,8 +33,30 @@ * Main **************************************************************************/ +static gboolean +msn_slpcall_timeout(gpointer data) +{ + MsnSlpCall *slpcall; + + slpcall = data; + +#ifdef MSN_DEBUG_SLPCALL + purple_debug_info("msn", "slpcall_timeout: slpcall(%p)\n", slpcall); +#endif + + if (!slpcall->pending && !slpcall->progress) + { + msn_slpcall_destroy(slpcall); + return FALSE; + } + + slpcall->progress = FALSE; + + return TRUE; +} + MsnSlpCall * -msn_slp_call_new(MsnSlpLink *slplink) +msn_slpcall_new(MsnSlpLink *slplink) { MsnSlpCall *slpcall; @@ -50,16 +72,15 @@ msn_slplink_add_slpcall(slplink, slpcall); - slpcall->timer = purple_timeout_add(MSN_SLPCALL_TIMEOUT, msn_slp_call_timeout, slpcall); + slpcall->timer = purple_timeout_add_seconds(MSN_SLPCALL_TIMEOUT, msn_slpcall_timeout, slpcall); return slpcall; } void -msn_slp_call_destroy(MsnSlpCall *slpcall) +msn_slpcall_destroy(MsnSlpCall *slpcall) { GList *e; - MsnSession *session; #ifdef MSN_DEBUG_SLPCALL purple_debug_info("msn", "slpcall_destroy: slpcall(%p)\n", slpcall); @@ -86,18 +107,16 @@ } } - session = slpcall->slplink->session; - - msn_slplink_remove_slpcall(slpcall->slplink, slpcall); - if (slpcall->end_cb != NULL) - slpcall->end_cb(slpcall, session); + slpcall->end_cb(slpcall, slpcall->slplink->session); if (slpcall->xfer != NULL) { slpcall->xfer->data = NULL; purple_xfer_unref(slpcall->xfer); } + msn_slplink_remove_slpcall(slpcall->slplink, slpcall); + g_free(slpcall->id); g_free(slpcall->branch); g_free(slpcall->data_info); @@ -106,7 +125,7 @@ } void -msn_slp_call_init(MsnSlpCall *slpcall, MsnSlpCallType type) +msn_slpcall_init(MsnSlpCall *slpcall, MsnSlpCallType type) { slpcall->session_id = rand() % 0xFFFFFF00 + 4; slpcall->id = rand_guid(); @@ -114,7 +133,7 @@ } void -msn_slp_call_session_init(MsnSlpCall *slpcall) +msn_slpcall_session_init(MsnSlpCall *slpcall) { if (slpcall->session_init_cb) slpcall->session_init_cb(slpcall); @@ -123,7 +142,7 @@ } void -msn_slp_call_invite(MsnSlpCall *slpcall, const char *euf_guid, +msn_slpcall_invite(MsnSlpCall *slpcall, const char *euf_guid, int app_id, const char *context) { MsnSlpLink *slplink; @@ -166,36 +185,14 @@ } void -msn_slp_call_close(MsnSlpCall *slpcall) +msn_slpcall_close(MsnSlpCall *slpcall) { g_return_if_fail(slpcall != NULL); g_return_if_fail(slpcall->slplink != NULL); send_bye(slpcall, "application/x-msnmsgr-sessionclosebody"); - msn_slplink_unleash(slpcall->slplink); - msn_slp_call_destroy(slpcall); -} - -gboolean -msn_slp_call_timeout(gpointer data) -{ - MsnSlpCall *slpcall; - - slpcall = data; - -#ifdef MSN_DEBUG_SLPCALL - purple_debug_info("msn", "slpcall_timeout: slpcall(%p)\n", slpcall); -#endif - - if (!slpcall->pending && !slpcall->progress) - { - msn_slp_call_destroy(slpcall); - return FALSE; - } - - slpcall->progress = FALSE; - - return TRUE; + msn_slplink_send_queued_slpmsgs(slpcall->slplink); + msn_slpcall_destroy(slpcall); } MsnSlpCall * @@ -237,7 +234,7 @@ slpcall = slplink->directconn->initial_call; if (slpcall != NULL) - msn_slp_call_session_init(slpcall); + msn_slpcall_session_init(slpcall); } #endif
--- a/libpurple/protocols/msn/slpcall.h Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/slpcall.h Mon Nov 17 06:15:33 2008 +0000 @@ -32,7 +32,7 @@ #include "slplink.h" /* The official client seems to timeout slp calls after 5 minutes */ -#define MSN_SLPCALL_TIMEOUT 300000 +#define MSN_SLPCALL_TIMEOUT 300 typedef enum { @@ -43,7 +43,7 @@ struct _MsnSlpCall { - /* MsnSession *session; */ + /* Our parent slplink */ MsnSlpLink *slplink; MsnSlpCallType type; @@ -76,16 +76,15 @@ MsnSlpCb cb; void (*end_cb)(MsnSlpCall *slpcall, MsnSession *session); - int timer; + guint timer; }; -MsnSlpCall *msn_slp_call_new(MsnSlpLink *slplink); -void msn_slp_call_init(MsnSlpCall *slpcall, MsnSlpCallType type); -void msn_slp_call_session_init(MsnSlpCall *slpcall); -void msn_slp_call_destroy(MsnSlpCall *slpcall); -void msn_slp_call_invite(MsnSlpCall *slpcall, const char *euf_guid, +MsnSlpCall *msn_slpcall_new(MsnSlpLink *slplink); +void msn_slpcall_init(MsnSlpCall *slpcall, MsnSlpCallType type); +void msn_slpcall_session_init(MsnSlpCall *slpcall); +void msn_slpcall_destroy(MsnSlpCall *slpcall); +void msn_slpcall_invite(MsnSlpCall *slpcall, const char *euf_guid, int app_id, const char *context); -void msn_slp_call_close(MsnSlpCall *slpcall); -gboolean msn_slp_call_timeout(gpointer data); +void msn_slpcall_close(MsnSlpCall *slpcall); #endif /* _MSN_SLPCALL_H_ */
--- a/libpurple/protocols/msn/slplink.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/slplink.c Mon Nov 17 06:15:33 2008 +0000 @@ -27,8 +27,6 @@ #include "switchboard.h" #include "slp.h" -void msn_slplink_send_msgpart(MsnSlpLink *slplink, MsnSlpMessage *slpmsg); - #ifdef MSN_DEBUG_SLP_FILES static int m_sc = 0; static int m_rc = 0; @@ -74,7 +72,6 @@ slplink->session = session; slplink->slp_seq_id = rand() % 0xFFFFFF00 + 4; - slplink->local_user = g_strdup(msn_user_get_passport(session->user)); slplink->remote_user = g_strdup(username); slplink->slp_msg_queue = g_queue_new(); @@ -107,14 +104,13 @@ #endif while (slplink->slp_calls != NULL) - msn_slp_call_destroy(slplink->slp_calls->data); + msn_slpcall_destroy(slplink->slp_calls->data); g_queue_free(slplink->slp_msg_queue); session->slplinks = g_list_remove(session->slplinks, slplink); - g_free(slplink->local_user); g_free(slplink->remote_user); g_free(slplink); @@ -168,19 +164,11 @@ { slplink->slp_calls = g_list_remove(slplink->slp_calls, slpcall); - /* The slplink has no slpcalls in it. If no one is using it, we might - * destroy the switchboard, but we should be careful not to use the slplink - * again. */ - if (slplink->slp_calls == NULL) - { - if (slplink->swboard != NULL) - { - if (msn_switchboard_release(slplink->swboard, MSN_SB_FLAG_FT)) - /* I'm not sure this is the best thing to do, but it's better - * than nothing. */ - slpcall->slplink = NULL; - } - } + /* The slplink has no slpcalls in it, release it from MSN_SB_FLAG_FT. + * If nothing else is using it then this might cause swboard to be + * destroyed. */ + if (slplink->slp_calls == NULL && slplink->swboard != NULL) + msn_switchboard_release(slplink->swboard, MSN_SB_FLAG_FT); } MsnSlpCall * @@ -220,7 +208,7 @@ return NULL; } -void +static void msn_slplink_send_msg(MsnSlpLink *slplink, MsnMessage *msg) { #if 0 @@ -236,8 +224,7 @@ slplink->swboard = msn_session_get_swboard(slplink->session, slplink->remote_user, MSN_SB_FLAG_FT); - if (slplink->swboard == NULL) - return; + g_return_if_fail(slplink->swboard != NULL); /* If swboard is destroyed we will be too */ slplink->swboard->slplinks = g_list_prepend(slplink->swboard->slplinks, slplink); @@ -247,54 +234,7 @@ } } -/* We have received the message ack */ static void -msg_ack(MsnMessage *msg, void *data) -{ - MsnSlpMessage *slpmsg; - long long real_size; - - slpmsg = data; - - real_size = (slpmsg->flags == 0x2) ? 0 : slpmsg->size; - - slpmsg->offset += msg->msnslp_header.length; - - if (slpmsg->offset < real_size) - { - msn_slplink_send_msgpart(slpmsg->slplink, slpmsg); - } - else - { - /* The whole message has been sent */ - if (slpmsg->flags == 0x20 || slpmsg->flags == 0x1000030) - { - if (slpmsg->slpcall != NULL) - { - if (slpmsg->slpcall->cb) - slpmsg->slpcall->cb(slpmsg->slpcall, - NULL, 0); - } - } - } - - slpmsg->msgs = g_list_remove(slpmsg->msgs, msg); -} - -/* We have received the message nak. */ -static void -msg_nak(MsnMessage *msg, void *data) -{ - MsnSlpMessage *slpmsg; - - slpmsg = data; - - msn_slplink_send_msgpart(slpmsg->slplink, slpmsg); - - slpmsg->msgs = g_list_remove(slpmsg->msgs, msg); -} - -void msn_slplink_send_msgpart(MsnSlpLink *slplink, MsnSlpMessage *slpmsg) { MsnMessage *msg; @@ -356,7 +296,54 @@ /* slpmsg->offset += len; */ } -void +/* We have received the message ack */ +static void +msg_ack(MsnMessage *msg, void *data) +{ + MsnSlpMessage *slpmsg; + long long real_size; + + slpmsg = data; + + real_size = (slpmsg->flags == 0x2) ? 0 : slpmsg->size; + + slpmsg->offset += msg->msnslp_header.length; + + if (slpmsg->offset < real_size) + { + msn_slplink_send_msgpart(slpmsg->slplink, slpmsg); + } + else + { + /* The whole message has been sent */ + if (slpmsg->flags == 0x20 || slpmsg->flags == 0x1000030) + { + if (slpmsg->slpcall != NULL) + { + if (slpmsg->slpcall->cb) + slpmsg->slpcall->cb(slpmsg->slpcall, + NULL, 0); + } + } + } + + slpmsg->msgs = g_list_remove(slpmsg->msgs, msg); +} + +/* We have received the message nak. */ +static void +msg_nak(MsnMessage *msg, void *data) +{ + MsnSlpMessage *slpmsg; + + slpmsg = data; + + msn_slplink_send_msgpart(slpmsg->slplink, slpmsg); + + slpmsg->msgs = g_list_remove(slpmsg->msgs, msg); +} + +static void msn_slplink_release_slpmsg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg) { MsnMessage *msg; @@ -413,7 +400,7 @@ { slpmsg->id = slplink->slp_seq_id++; - g_queue_push_head(slplink->slp_msg_queue, slpmsg); + g_queue_push_tail(slplink->slp_msg_queue, slpmsg); } void @@ -425,19 +412,18 @@ } void -msn_slplink_unleash(MsnSlpLink *slplink) +msn_slplink_send_queued_slpmsgs(MsnSlpLink *slplink) { MsnSlpMessage *slpmsg; - /* Send the queued msgs in the order they came. */ - - while ((slpmsg = g_queue_pop_tail(slplink->slp_msg_queue)) != NULL) + /* Send the queued msgs in the order they were created */ + while ((slpmsg = g_queue_pop_head(slplink->slp_msg_queue)) != NULL) { msn_slplink_release_slpmsg(slplink, slpmsg); } } -void +static void msn_slplink_send_ack(MsnSlpLink *slplink, MsnMessage *msg) { MsnSlpMessage *slpmsg; @@ -481,6 +467,22 @@ msn_slplink_send_slpmsg(slpcall->slplink, slpmsg); } +static MsnSlpMessage * +msn_slplink_message_find(MsnSlpLink *slplink, long session_id, long id) +{ + GList *e; + + for (e = slplink->slp_msgs; e != NULL; e = e->next) + { + MsnSlpMessage *slpmsg = e->data; + + if ((slpmsg->session_id == session_id) && (slpmsg->id == id)) + return slpmsg; + } + + return NULL; +} + void msn_slplink_process_msg(MsnSlpLink *slplink, MsnMessage *msg) { @@ -632,32 +634,16 @@ /* Release all the messages and send the ACK */ msn_slplink_send_ack(slplink, msg); - msn_slplink_unleash(slplink); + msn_slplink_send_queued_slpmsgs(slplink); } msn_slpmsg_destroy(slpmsg); if (slpcall != NULL && slpcall->wasted) - msn_slp_call_destroy(slpcall); + msn_slpcall_destroy(slpcall); } } -MsnSlpMessage * -msn_slplink_message_find(MsnSlpLink *slplink, long session_id, long id) -{ - GList *e; - - for (e = slplink->slp_msgs; e != NULL; e = e->next) - { - MsnSlpMessage *slpmsg = e->data; - - if ((slpmsg->session_id == session_id) && (slpmsg->id == id)) - return slpmsg; - } - - return NULL; -} - typedef struct { guint32 length; @@ -743,8 +729,8 @@ g_return_if_fail(slplink != NULL); g_return_if_fail(fp != NULL); - slpcall = msn_slp_call_new(slplink); - msn_slp_call_init(slpcall, MSN_SLPCALL_DC); + slpcall = msn_slpcall_new(slplink); + msn_slpcall_init(slpcall, MSN_SLPCALL_DC); slpcall->session_init_cb = send_file_cb; slpcall->end_cb = msn_xfer_end_cb; @@ -761,7 +747,7 @@ context = gen_context(fn, fp); - msn_slp_call_invite(slpcall, MSN_FT_GUID, 2, context); + msn_slpcall_invite(slpcall, MSN_FT_GUID, 2, context); g_free(context); } @@ -784,14 +770,14 @@ msnobj_base64 = purple_base64_encode((const guchar *)msnobj_data, strlen(msnobj_data)); g_free(msnobj_data); - slpcall = msn_slp_call_new(slplink); - msn_slp_call_init(slpcall, MSN_SLPCALL_ANY); + slpcall = msn_slpcall_new(slplink); + msn_slpcall_init(slpcall, MSN_SLPCALL_ANY); slpcall->data_info = g_strdup(info); slpcall->cb = cb; slpcall->end_cb = end_cb; - msn_slp_call_invite(slpcall, MSN_OBJ_GUID, 1, msnobj_base64); + msn_slpcall_invite(slpcall, MSN_OBJ_GUID, 1, msnobj_base64); g_free(msnobj_base64); }
--- a/libpurple/protocols/msn/slplink.h Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/slplink.h Mon Nov 17 06:15:33 2008 +0000 @@ -45,7 +45,6 @@ MsnSession *session; MsnSwitchBoard *swboard; - char *local_user; char *remote_user; int slp_seq_id; @@ -78,19 +77,11 @@ MsnSlpCall *msn_slplink_find_slp_call(MsnSlpLink *slplink, const char *id); MsnSlpCall *msn_slplink_find_slp_call_with_session_id(MsnSlpLink *slplink, long id); -void msn_slplink_send_msg(MsnSlpLink *slplink, MsnMessage *msg); -void msn_slplink_release_slpmsg(MsnSlpLink *slplink, - MsnSlpMessage *slpmsg); void msn_slplink_queue_slpmsg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg); void msn_slplink_send_slpmsg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg); -void msn_slplink_unleash(MsnSlpLink *slplink); -void msn_slplink_send_ack(MsnSlpLink *slplink, MsnMessage *msg); +void msn_slplink_send_queued_slpmsgs(MsnSlpLink *slplink); void msn_slplink_process_msg(MsnSlpLink *slplink, MsnMessage *msg); -MsnSlpMessage *msn_slplink_message_find(MsnSlpLink *slplink, long session_id, long id); -void msn_slplink_append_slp_msg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg); -void msn_slplink_remove_slp_msg(MsnSlpLink *slplink, - MsnSlpMessage *slpmsg); void msn_slplink_request_ft(MsnSlpLink *slplink, PurpleXfer *xfer); void msn_slplink_request_object(MsnSlpLink *slplink,
--- a/libpurple/protocols/msn/slpmsg.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/slpmsg.c Mon Nov 17 06:15:33 2008 +0000 @@ -169,6 +169,7 @@ const char *content_type, const char *content) { MsnSlpLink *slplink; + PurpleAccount *account; MsnSlpMessage *slpmsg; char *body; gsize body_len; @@ -178,6 +179,7 @@ g_return_val_if_fail(header != NULL, NULL); slplink = slpcall->slplink; + account = slplink->session->account; /* Let's remember that "content" should end with a 0x00 */ @@ -196,7 +198,7 @@ "\r\n", header, slplink->remote_user, - slplink->local_user, + purple_account_get_username(account), branch, cseq, slpcall->id,
--- a/libpurple/protocols/msn/soap.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/soap.c Mon Nov 17 06:15:33 2008 +0000 @@ -134,7 +134,7 @@ } if (session->soap_cleanup_handle == 0) - session->soap_cleanup_handle = purple_timeout_add(SOAP_TIMEOUT * 1000, + session->soap_cleanup_handle = purple_timeout_add_seconds(SOAP_TIMEOUT, msn_soap_cleanup_for_session, session); if (conn == NULL) {
--- a/libpurple/protocols/msn/switchboard.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/switchboard.c Mon Nov 17 06:15:33 2008 +0000 @@ -1319,10 +1319,10 @@ } } -gboolean +void msn_switchboard_release(MsnSwitchBoard *swboard, MsnSBFlag flag) { - g_return_val_if_fail(swboard != NULL, FALSE); + g_return_if_fail(swboard != NULL); swboard->flag &= ~flag; @@ -1332,12 +1332,8 @@ swboard->conv = NULL; if (swboard->flag == 0) - { + /* Nothing else is using this switchboard, so close it */ msn_switchboard_close(swboard); - return TRUE; - } - - return FALSE; } /**************************************************************************
--- a/libpurple/protocols/msn/switchboard.h Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/switchboard.h Mon Nov 17 06:15:33 2008 +0000 @@ -68,9 +68,9 @@ */ struct _MsnSwitchBoard { - MsnSession *session; - MsnServConn *servconn; - MsnCmdProc *cmdproc; + MsnSession *session; /**< Our parent session. */ + MsnServConn *servconn; /**< The physical connection for this switchboard. */ + MsnCmdProc *cmdproc; /**< Convenience variable for servconn->cmdproc. */ char *im_user; MsnSBFlag flag; @@ -224,10 +224,8 @@ * * @param swboard The switchboard to release. * @param flag The flag that states the function. - * - * @return @c TRUE if the switchboard was closed, @c FALSE otherwise. */ -gboolean msn_switchboard_release(MsnSwitchBoard *swboard, MsnSBFlag flag); +void msn_switchboard_release(MsnSwitchBoard *swboard, MsnSBFlag flag); /** * Returns whether or not we currently can send a message through this
--- a/libpurple/protocols/msn/transaction.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msn/transaction.c Mon Nov 17 06:15:33 2008 +0000 @@ -211,7 +211,7 @@ purple_timeout_remove(trans->timer); } trans->timeout_cb = cb; - trans->timer = purple_timeout_add(60000, transaction_timeout, trans); + trans->timer = purple_timeout_add_seconds(60, transaction_timeout, trans); } void
--- a/libpurple/protocols/msnp9/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/msnp9/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,5 +1,5 @@ EXTRA_DIST = \ - Makefile.mingw + Makefile.mingw pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) @@ -70,9 +70,9 @@ if STATIC_MSN st = -DPURPLE_STATIC_PRPL -noinst_LIBRARIES = libmsn.a -libmsn_a_SOURCES = $(MSNP9SOURCES) -libmsn_a_CFLAGS = $(AM_CFLAGS) +noinst_LTLIBRARIES = libmsn.la +libmsn_la_SOURCES = $(MSNP9SOURCES) +libmsn_la_CFLAGS = $(AM_CFLAGS) else
--- a/libpurple/protocols/myspace/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/myspace/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,4 +1,5 @@ -EXTRA_DIST = Makefile.mingw +EXTRA_DIST = \ + Makefile.mingw pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) @@ -23,9 +24,9 @@ if STATIC_MYSPACE st = -DPURPLE_STATIC_PRPL -noinst_LIBRARIES = libmyspace.a -libmyspace_a_SOURCES = $(MSIMSOURCES) -libmyspace_a_CFLAGS = $(AM_CFLAGS) +noinst_LTLIBRARIES = libmyspace.la +libmyspace_la_SOURCES = $(MSIMSOURCES) +libmyspace_la_CFLAGS = $(AM_CFLAGS) else
--- a/libpurple/protocols/myspace/myspace.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/myspace/myspace.c Mon Nov 17 06:15:33 2008 +0000 @@ -680,20 +680,34 @@ msim_incoming_im(MsimSession *session, MsimMessage *msg) { gchar *username, *msg_msim_markup, *msg_purple_markup; + gchar *userid; time_t time_received; + PurpleConversation *conv; g_return_val_if_fail(MSIM_SESSION_VALID(session), FALSE); g_return_val_if_fail(msg != NULL, FALSE); username = msim_msg_get_string(msg, "_username"); + /* I know this isn't really a string... but we need it to be one for + * purple_find_conversation_with_account(). */ + userid = msim_msg_get_string(msg, "f"); g_return_val_if_fail(username != NULL, FALSE); + purple_debug_info("msim_incoming_im", "UserID is %s", userid); + if (msim_is_userid(username)) { purple_debug_info("msim", "Ignoring message from spambot (%s) on account %s\n", username, purple_account_get_username(session->account)); g_free(username); return FALSE; } + + /* See if a conversation with their UID already exists...*/ + conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, userid, session->account); + if (conv) { + /* Since the conversation exists... We need to normalize it */ + purple_conversation_set_name(conv, username); + } msg_msim_markup = msim_msg_get_string(msg, "msg"); g_return_val_if_fail(msg_msim_markup != NULL, FALSE); @@ -703,6 +717,7 @@ time_received = msim_msg_get_integer(msg, "date"); if (!time_received) { + purple_debug_info("msim_incoming_im", "date in message not set.\n"); time_received = time(NULL); }
--- a/libpurple/protocols/myspace/myspace.h Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/myspace/myspace.h Mon Nov 17 06:15:33 2008 +0000 @@ -48,6 +48,7 @@ #include "request.h" /* For dialogs used in setting the username */ #include "xmlnode.h" #include "core.h" +#include "conversation.h" /* For late normalization */ /* MySpaceIM includes */ #include "persist.h"
--- a/libpurple/protocols/novell/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/novell/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,5 +1,5 @@ EXTRA_DIST = \ - Makefile.mingw + Makefile.mingw pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) @@ -33,18 +33,14 @@ if STATIC_NOVELL st = -DPURPLE_STATIC_PRPL -noinst_LIBRARIES = libnovell.a -pkg_LTLIBRARIES = - -libnovell_a_SOURCES = $(NOVELLSOURCES) -libnovell_a_CFLAGS = $(AM_CFLAGS) +noinst_LTLIBRARIES = libnovell.la +libnovell_la_SOURCES = $(NOVELLSOURCES) +libnovell_la_CFLAGS = $(AM_CFLAGS) else st = -pkg_LTLIBRARIES = libnovell.la -noinst_LIBRARIES = - +pkg_LTLIBRARIES = libnovell.la libnovell_la_SOURCES = $(NOVELLSOURCES) libnovell_la_LIBADD = $(GLIB_LIBS)
--- a/libpurple/protocols/null/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/null/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,4 +1,6 @@ -EXTRA_DIST = README Makefile.mingw +EXTRA_DIST = \ + Makefile.mingw \ + README pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) @@ -10,7 +12,7 @@ # nullprpl isn't built by default. when it is built, it's dynamically linked. st = -pkg_LTLIBRARIES = libnull.la +pkg_LTLIBRARIES = libnull.la libnull_la_SOURCES = $(NULLSOURCES) libnull_la_LIBADD = $(GLIB_LIBS)
--- a/libpurple/protocols/oscar/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/oscar/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,7 +1,7 @@ EXTRA_DIST = \ - COPYING \ - AUTHORS \ - Makefile.mingw + COPYING \ + AUTHORS \ + Makefile.mingw pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) @@ -52,10 +52,9 @@ if STATIC_OSCAR st = -DPURPLE_STATIC_PRPL -noinst_LIBRARIES = liboscar.a - -liboscar_a_SOURCES = $(OSCARSOURCES) libaim.c libicq.c -liboscar_a_CFLAGS = $(AM_CFLAGS) +noinst_LTLIBRARIES = liboscar.la +liboscar_la_SOURCES = $(OSCARSOURCES) libaim.c libicq.c +liboscar_la_CFLAGS = $(AM_CFLAGS) else @@ -64,11 +63,11 @@ liboscar_la_SOURCES = $(OSCARSOURCES) liboscar_la_LIBADD = $(GLIB_LIBS) -libaim_la_SOURCES = libaim.c -libaim_la_LIBADD = liboscar.la +libaim_la_SOURCES = libaim.c +libaim_la_LIBADD = liboscar.la -libicq_la_SOURCES = libicq.c -libicq_la_LIBADD = liboscar.la +libicq_la_SOURCES = libicq.c +libicq_la_LIBADD = liboscar.la endif
--- a/libpurple/protocols/oscar/family_auth.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/oscar/family_auth.c Mon Nov 17 06:15:33 2008 +0000 @@ -32,7 +32,7 @@ #include <ctype.h> -#define USE_XOR_FOR_ICQ +/* #define USE_XOR_FOR_ICQ */ #ifdef USE_XOR_FOR_ICQ /**
--- a/libpurple/protocols/oscar/flap_connection.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/oscar/flap_connection.c Mon Nov 17 06:15:33 2008 +0000 @@ -228,7 +228,13 @@ rateclass->last.tv_usec = now.tv_usec; } } else { - purple_debug_warning("oscar", "No rate class found for family %hu subtype %hu\n", family, subtype); + /* + * It's normal for SNACs 0x0001/0x0006 and 0x0001/0x0017 to be + * sent before we receive rate info from the server, so don't + * bother warning about them. + */ + if (family != 0x0001 || (subtype != 0x0006 && subtype != 0x0017)) + purple_debug_warning("oscar", "No rate class found for family 0x%04hx subtype 0x%04hx\n", family, subtype); } if (enqueue)
--- a/libpurple/protocols/oscar/oscar.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/oscar/oscar.c Mon Nov 17 06:15:33 2008 +0000 @@ -1170,15 +1170,7 @@ conn->watcher_incoming = purple_input_add(conn->fd, PURPLE_INPUT_READ, flap_connection_recv_cb, conn); if (conn->cookie == NULL) - { - if (!aim_snvalid_icq(purple_account_get_username(account))) - /* - * We don't send this when authenticating an ICQ account - * because for some reason ICQ is still using the - * assy/insecure authentication procedure. - */ - flap_connection_send_version(od, conn); - } + flap_connection_send_version(od, conn); else { flap_connection_send_version_with_cookie(od, conn, @@ -1712,7 +1704,7 @@ for (x = 0; x < 16; x++) g_string_append_printf(msg, "%02hhx ", (unsigned char)m[x]); g_string_append(msg, "\n"); - purple_debug_misc("oscar", msg->str); + purple_debug_misc("oscar", "%s", msg->str); g_string_free(msg, TRUE); purple_input_remove(pos->inpa); @@ -4835,7 +4827,7 @@ gchar *buf; buf = g_strdup_printf(_("Could not add the buddy %s because the username is invalid. Usernames must be a valid email address, or start with a letter and contain only letters, numbers and spaces, or contain only numbers."), buddy->name); if (!purple_conv_present_error(buddy->name, account, buf)) - purple_notify_error(gc, NULL, _("Unable To Add"), buf); + purple_notify_error(gc, NULL, _("Unable to Add"), buf); g_free(buf); /* Remove from local list */ @@ -4954,7 +4946,7 @@ purple_debug_error("oscar", "ssi: SNAC error %hu\n", reason); if (reason == 0x0005) { - purple_notify_error(gc, NULL, _("Unable To Retrieve Buddy List"), + purple_notify_error(gc, NULL, _("Unable to Retrieve Buddy List"), _("The AIM servers were temporarily unable to send your buddy list. Your buddy list is not lost, and will probably become available in a few minutes.")); if (od->getblisttimer > 0) purple_timeout_remove(od->getblisttimer); @@ -4983,7 +4975,7 @@ for (i=0; i<numtypes; i++) g_string_append_printf(msg, " max type 0x%04x=%hd,", i, maxitems[i]); g_string_append(msg, "\n"); - purple_debug_misc("oscar", msg->str); + purple_debug_misc("oscar", "%s", msg->str); g_string_free(msg, TRUE); if (numtypes >= 0) @@ -5305,7 +5297,7 @@ gchar *buf; buf = g_strdup_printf(_("Could not add the buddy %s because you have too many buddies in your buddy list. Please remove one and try again."), (retval->name ? retval->name : _("(no name)"))); if ((retval->name != NULL) && !purple_conv_present_error(retval->name, purple_connection_get_account(gc), buf)) - purple_notify_error(gc, NULL, _("Unable To Add"), buf); + purple_notify_error(gc, NULL, _("Unable to Add"), buf); g_free(buf); } @@ -5320,7 +5312,7 @@ buf = g_strdup_printf(_("Could not add the buddy %s for an unknown reason."), (retval->name ? retval->name : _("(no name)"))); if ((retval->name != NULL) && !purple_conv_present_error(retval->name, purple_connection_get_account(gc), buf)) - purple_notify_error(gc, NULL, _("Unable To Add"), buf); + purple_notify_error(gc, NULL, _("Unable to Add"), buf); g_free(buf); } break; } @@ -6119,10 +6111,11 @@ gc = purple_account_get_connection(buddy->account); od = gc->proto_data; - data = g_new(struct name_data, 1); - if (!(g = purple_buddy_get_group(buddy))) return; + + data = g_new(struct name_data, 1); + comment = aim_ssi_getcomment(od->ssi.local, g->name, buddy->name); comment_utf8 = comment ? oscar_utf8_try_convert(gc->account, comment) : NULL;
--- a/libpurple/protocols/qq/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/qq/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,5 +1,5 @@ EXTRA_DIST = \ - Makefile.mingw + Makefile.mingw pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) @@ -53,17 +53,12 @@ libqq_la_LDFLAGS = -module -avoid-version -CURRENT_REVISION=$(shell \ - awk 'BEGIN {"grep node .hg_archival.txt" | getline rev; \ - rev=substr(rev,7,6); \ - print rev}') - if STATIC_QQ st = -DPURPLE_STATIC_PRPL -noinst_LIBRARIES = libqq.a -libqq_a_SOURCES = $(QQSOURCES) -libqq_a_CFLAGS = $(AM_CFLAGS) +noinst_LTLIBRARIES = libqq.la +libqq_la_SOURCES = $(QQSOURCES) +libqq_la_CFLAGS = $(AM_CFLAGS) else @@ -79,5 +74,4 @@ -I$(top_builddir)/libpurple \ -DQQ_BUDDY_ICON_DIR=\"$(datadir)/pixmaps/purple/buddy_icons/qq\" \ $(DEBUG_CFLAGS) \ - $(GLIB_CFLAGS) \ - -DOPENQ_VERSION=\"$(CURRENT_REVISION)\" + $(GLIB_CFLAGS)
--- a/libpurple/protocols/qq/Makefile.mingw Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/qq/Makefile.mingw Mon Nov 17 06:15:33 2008 +0000 @@ -6,10 +6,6 @@ PIDGIN_TREE_TOP := ../../.. include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak -CURRENT_REVISION=$(shell \ - awk 'BEGIN {"grep node .hg_archival.txt" | getline rev; \ - rev=substr(rev,7,6); \ - print rev}') TARGET = libqq TYPE = PLUGIN @@ -19,7 +15,6 @@ DLL_INSTALL_DIR = $(PURPLE_INSTALL_DIR) else ifeq ($(TYPE),PLUGIN) - DEFINES += -DOPENQ_VERSION=\"$(CURRENT_REVISION)\" DLL_INSTALL_DIR = $(PURPLE_INSTALL_PLUGINS_DIR) endif endif
--- a/libpurple/protocols/qq/buddy_info.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/qq/buddy_info.c Mon Nov 17 06:15:33 2008 +0000 @@ -69,9 +69,9 @@ }; static const gchar *genders_zh[] = { - N_("-"), - N_("\xc4\xd0"), - N_("\xc5\xae"), + "-", + "\xc4\xd0", + "\xc5\xae", }; #define QQ_FACES 134 @@ -418,8 +418,8 @@ utf8_title = g_strdup(_("Modify Address")); utf8_prim = g_strdup_printf("%s for %s", _("Modify Address"), segments[0]); case QQ_FIELD_EXT: - utf8_title = g_strdup(_("Modify Extend Information")); - utf8_prim = g_strdup_printf("%s for %s", _("Modify Extend Information"), segments[0]); + utf8_title = g_strdup(_("Modify Extended Information")); + utf8_prim = g_strdup_printf("%s for %s", _("Modify Extended Information"), segments[0]); break; case QQ_FIELD_BASE: default: @@ -457,7 +457,7 @@ data[data_len] = '\0'; if (qd->uid != atoi((gchar *) data)) { /* return should be my uid */ purple_debug_info("QQ", "Failed Updating info\n"); - qq_got_attention(gc, _("Failed changing buddy information.")); + qq_got_attention(gc, _("Could not change buddy information.")); } } @@ -483,51 +483,27 @@ void qq_change_icon_cb(PurpleConnection *gc, const char *filepath) { - gchar **segments; - const gchar *filename; - gint index; + gchar *basename; + size_t index; gint face; - gchar *error; g_return_if_fail(filepath != NULL); purple_debug_info("QQ", "Change my icon to %s\n", filepath); - segments = g_strsplit_set(filepath, G_DIR_SEPARATOR_S, 0); -#if 0 - for (index = 0; segments[index] != NULL; index++) { - purple_debug_info("QQ", "Split to %s\n", segments[index]); - } -#endif - - index = g_strv_length(segments) - 1; - if (index < 0) { - g_strfreev(segments); - return; - } - - filename = segments[index]; - index = strcspn (filename, "0123456789"); - if (index < 0 || index >= strlen(filename)) { - error = g_strdup_printf(_("Can not get face number in file name (%s)"), filename); - purple_notify_error(gc, _("QQ Buddy"), _("Failed change icon"), error); - g_free(error); - return; - } - face = strtol(filename+index, NULL, 10); + basename = g_path_get_basename(filepath); + index = strcspn(basename, "0123456789"); + face = strtol(basename + index, NULL, 10); + g_free(basename); purple_debug_info("QQ", "Set face to %d\n", face); request_set_buddy_icon(gc, face); - - g_strfreev(segments); } void qq_set_custom_icon(PurpleConnection *gc, PurpleStoredImage *img) { PurpleAccount *account = purple_connection_get_account(gc); const gchar *icon_path = purple_account_get_buddy_icon_path(account); - gchar **segments; - gint index; g_return_if_fail(icon_path != NULL); @@ -536,12 +512,6 @@ * purple_imgstore_get_filename is always new file * QQ buddy may set custom icon if level is over 16 */ purple_debug_info("QQ", "Change my icon to %s\n", icon_path); - segments = g_strsplit_set(icon_path, G_DIR_SEPARATOR_S, 0); - for (index = 0; segments[index] != NULL; index++) { - purple_debug_info("QQ", "Split to %s\n", segments[index]); - } - - g_strfreev(segments); } gchar *qq_get_icon_name(gint face)
--- a/libpurple/protocols/qq/group_join.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/qq/group_join.c Mon Nov 17 06:15:33 2008 +0000 @@ -219,11 +219,11 @@ rmd = qq_room_data_find(gc, id); if (rmd != NULL) { - msg = g_strdup_printf(_("Successed join to Qun %s (%d)"), rmd->title_utf8, rmd->ext_id); + msg = g_strdup_printf(_("Successfully joined Qun %s (%d)"), rmd->title_utf8, rmd->ext_id); qq_got_attention(gc, msg); g_free(msg); } else { - qq_got_attention(gc, _("Successed join to Qun")); + qq_got_attention(gc, _("Successfully joined Qun")); } }
--- a/libpurple/protocols/qq/group_opt.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/qq/group_opt.c Mon Nov 17 06:15:33 2008 +0000 @@ -204,7 +204,7 @@ purple_debug_info("QQ", "Succeed in modify members for room %d\n", rmd->ext_id); - qq_room_got_chat_in(gc, id, 0, _("Successed changing Qun member"), now); + qq_room_got_chat_in(gc, id, 0, _("Successfully changed Qun member"), now); } void qq_room_change_info(PurpleConnection *gc, qq_room_data *rmd) @@ -248,7 +248,7 @@ purple_debug_info("QQ", "Succeed modify room info of %d\n", id); - qq_room_got_chat_in(gc, id, 0, _("Successed changing Qun information"), now); + qq_room_got_chat_in(gc, id, 0, _("Successfully changed Qun information"), now); } /* we create a very simple room first, and then let the user to modify */ @@ -347,7 +347,7 @@ purple_request_action(gc, _("QQ Qun Operation"), _("You have successfully created a Qun"), - _("Would you like to set up the detail information now?"), + _("Would you like to set detailed information now?"), 1, purple_connection_get_account(gc), NULL, NULL, add_req, 2, @@ -520,7 +520,7 @@ rmd->my_role = QQ_ROOM_ROLE_YES; } - msg = g_strdup_printf(_("<b>Joinning Qun %d is approved by Admin %d for %s</b>"), + msg = g_strdup_printf(_("<b>Joining Qun %d is approved by admin %d for %s</b>"), ext_id, admin_uid, reason); now = time(NULL); qq_room_got_chat_in(gc, id, 0, msg, now);
--- a/libpurple/protocols/qq/qq.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/qq/qq.c Mon Nov 17 06:15:33 2008 +0000 @@ -56,9 +56,6 @@ #include "utils.h" #include "version.h" -#define OPENQ_AUTHOR "Puzzlebird" -#define OPENQ_WEBSITE "http://openq.sourceforge.net" - #ifndef OPENQ_VERSION #define OPENQ_VERSION DISPLAY_VERSION #endif @@ -770,7 +767,7 @@ g_string_append(info, "</body></html>"); title = g_strdup_printf(_("About OpenQ r%s"), OPENQ_VERSION); - purple_notify_formatted(gc, NULL, title, NULL, info->str, NULL, NULL); + purple_notify_formatted(gc, title, title, NULL, info->str, NULL, NULL); g_free(title); g_string_free(info, TRUE); @@ -866,7 +863,7 @@ act = purple_plugin_action_new(_("Modify Information"), action_modify_info_base); m = g_list_append(m, act); - act = purple_plugin_action_new(_("Modify Extend Information"), action_modify_info_ext); + act = purple_plugin_action_new(_("Modify Extended Information"), action_modify_info_ext); m = g_list_append(m, act); act = purple_plugin_action_new(_("Modify Address"), action_modify_info_addr); @@ -1113,11 +1110,11 @@ "QQ", /**< name */ DISPLAY_VERSION, /**< version */ /** summary */ - N_("QQ Protocol Plugin"), + N_("QQ Protocol Plugin"), /** description */ - N_("QQ Protocol Plugin"), - OPENQ_AUTHOR, /**< author */ - OPENQ_WEBSITE, /**< homepage */ + N_("QQ Protocol Plugin"), + NULL, /**< author */ + PURPLE_WEBSITE, /**< homepage */ NULL, /**< load */ NULL, /**< unload */ @@ -1149,8 +1146,7 @@ server_list = server_list_build('A'); - purple_prefs_add_string_list("/plugins/prpl/qq/serverlist", server_list); - server_list = purple_prefs_get_string_list("/plugins/prpl/qq/serverlist"); + purple_prefs_remove("/plugins/prpl/qq/serverlist"); server_kv_list = NULL; kvp = g_new0(PurpleKeyValuePair, 1); @@ -1203,10 +1199,10 @@ option = purple_account_option_bool_new(_("Show server news"), "show_news", TRUE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - option = purple_account_option_int_new(_("Keep alive interval(s)"), "keep_alive_interval", 60); + option = purple_account_option_int_new(_("Keep alive interval (seconds)"), "keep_alive_interval", 60); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - option = purple_account_option_int_new(_("Update interval(s)"), "update_interval", 300); + option = purple_account_option_int_new(_("Update interval (seconds)"), "update_interval", 300); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); purple_prefs_add_none("/plugins/prpl/qq");
--- a/libpurple/protocols/qq/qq_base.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/qq/qq_base.c Mon Nov 17 06:15:33 2008 +0000 @@ -71,7 +71,7 @@ if (len < 139) { purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_ENCRYPTION_ERROR, - _("Can not decrypt get server reply")); + _("Can not decrypt server reply")); return QQ_LOGIN_REPLY_ERR; } @@ -404,18 +404,18 @@ return process_login_redirect(gc, data, data_len); case 0x0A: /* extend redirect used in QQ2006 */ - error = g_strdup( _("Not support Redirect_EX now") ); + error = g_strdup( _("Redirect_EX is not currently supported") ); reason = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED; break; case 0x05: /* invalid password */ if (!purple_account_get_remember_password(gc->account)) { purple_account_set_password(gc->account, NULL); } - error = g_strdup( _("Error password")); + error = g_strdup( _("Incorrect password.")); reason = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED; break; case 0x06: /* need activation */ - error = g_strdup( _("Need active")); + error = g_strdup( _("Activation required")); reason = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED; break; @@ -789,7 +789,7 @@ qd->send_seq++; qq_send_cmd_encrypted(gc, QQ_CMD_TOKEN_EX, qd->send_seq, buf, bytes, TRUE); - purple_connection_update_progress(gc, _("Checking code of captcha ..."), 3, QQ_CONNECT_STEPS); + purple_connection_update_progress(gc, _("Checking code of captcha ..."), 3, QQ_CONNECT_STEPS); } typedef struct { @@ -873,7 +873,7 @@ purple_request_fields(account, _("QQ Captcha Verifing"), _("QQ Captcha Verifing"), - _("Please fill code according to image"), + _("Enter the text from the image"), fields, _("OK"), G_CALLBACK(captcha_input_ok_cb), _("Cancel"), G_CALLBACK(captcha_input_cancel_cb), @@ -1094,16 +1094,16 @@ if (!purple_account_get_remember_password(gc->account)) { purple_account_set_password(gc->account, NULL); } - error = g_strdup(_("Error password")); + error = g_strdup(_("Incorrect password.")); reason = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED; break; case 0x33: /* need activation */ case 0x51: /* need activation */ - error = g_strdup(_("Need active")); + error = g_strdup(_("Activation required")); reason = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED; break; case 0xBF: /* uid is not exist */ - error = g_strdup(_("invalid user name")); + error = g_strdup(_("Invalid username.")); reason = PURPLE_CONNECTION_ERROR_INVALID_USERNAME; break; default:
--- a/libpurple/protocols/qq/qq_network.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/qq/qq_network.c Mon Nov 17 06:15:33 2008 +0000 @@ -204,7 +204,7 @@ if ( set_new_server(qd) != TRUE) { purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, - _("Failed to connect all servers")); + _("Unable to connect.")); return FALSE; } qd->connect_retry = QQ_CONNECT_MAX; @@ -461,9 +461,6 @@ conn->tcp_rxqueue = NULL; } - if (pkt == NULL) { - continue; - } /* packet_process may call disconnect and destory data like conn * do not call packet_process before jump, * break if packet_process return FALSE */
--- a/libpurple/protocols/qq/qq_process.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/qq/qq_process.c Mon Nov 17 06:15:33 2008 +0000 @@ -960,7 +960,7 @@ return ret_8; } - purple_connection_update_progress(gc, _("Logined"), QQ_CONNECT_STEPS - 1, QQ_CONNECT_STEPS); + purple_connection_update_progress(gc, _("Logging in"), QQ_CONNECT_STEPS - 1, QQ_CONNECT_STEPS); purple_debug_info("QQ", "Login repliess OK; everything is fine\n"); purple_connection_set_state(gc, PURPLE_CONNECTED); qd->is_login = TRUE; /* must be defined after sev_finish_login */
--- a/libpurple/protocols/qq/utils.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/qq/utils.c Mon Nov 17 06:15:33 2008 +0000 @@ -325,7 +325,7 @@ va_end(args); if (bytes <= 0) { - purple_debug(level, category, arg_s); + purple_debug(level, category, "%s", arg_s); return; }
--- a/libpurple/protocols/sametime/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/sametime/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,21 +1,22 @@ - -EXTRA_DIST = Makefile.mingw - +EXTRA_DIST = \ + Makefile.mingw pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) - noinst_HEADERS = sametime.h SAMETIMESOURCES = sametime.c +AM_CFLAGS = \ + $(st) \ + -DG_LOG_DOMAIN=\"sametime\" if STATIC_SAMETIME st = -DPURPLE_STATIC_PRPL -noinst_LIBRARIES = libsametime.a -libsametime_a_SOURCES = $(SAMETIMESOURCES) -libsametime_a_CFLAGS = $(AM_CFLAGS) +noinst_LTLIBRARIES = libsametime.la +libsametime_la_SOURCES = $(SAMETIMESOURCES) +libsametime_la_CFLAGS = $(AM_CFLAGS) else @@ -23,22 +24,15 @@ pkg_LTLIBRARIES = libsametime.la libsametime_la_SOURCES = $(SAMETIMESOURCES) - endif - libsametime_la_LDFLAGS = -module -avoid-version libsametime_la_LIBADD = $(GLIB_LIBS) $(MEANWHILE_LIBS) - -AM_CFLAGS = \ - $(GLIB_CFLAGS) $(MEANWHILE_CFLAGS) \ - $(DEBUG_CFLAGS) \ +AM_CPPFLAGS = \ -I$(top_srcdir)/libpurple \ - -I$(top_builddir)/libpurple - + -I$(top_builddir)/libpurple \ + $(DEBUG_CFLAGS) \ + $(GLIB_CFLAGS) \ + $(MEANWHILE_CFLAGS) -AM_CPPFLAGS = \ - -DG_LOG_DOMAIN=\"sametime\" \ - $(st) -
--- a/libpurple/protocols/sametime/sametime.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/sametime/sametime.c Mon Nov 17 06:15:33 2008 +0000 @@ -4490,27 +4490,25 @@ PurpleBuddy *buddy, PurpleGroup *group) { - struct mwPurplePluginData *pd; + struct mwPurplePluginData *pd = gc->proto_data; struct mwServiceResolve *srvc; GList *query; enum mwResolveFlag flags; guint32 req; - BuddyAddData *data; - data = g_new0(BuddyAddData, 1); - data->buddy = buddy; - data->group = group; - - pd = gc->proto_data; - srvc = pd->srvc_resolve; - /* catch external buddies. They won't be in the resolve service */ if(buddy_is_external(buddy)) { buddy_add(pd, buddy); return; } + data = g_new0(BuddyAddData, 1); + data->buddy = buddy; + data->group = group; + + srvc = pd->srvc_resolve; + query = g_list_prepend(NULL, buddy->name); flags = mwResolveFlag_FIRST | mwResolveFlag_USERS;
--- a/libpurple/protocols/silc/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/silc/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,8 +1,21 @@ -EXTRA_DIST = README TODO Makefile.mingw +EXTRA_DIST = \ + Makefile.mingw \ + README \ + TODO pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) -SILCSOURCES = silc.c silcpurple.h buddy.c chat.c ft.c ops.c pk.c util.c wb.c wb.h +SILCSOURCES = \ + buddy.c \ + chat.c \ + ft.c \ + ops.c \ + pk.c \ + silc.c \ + silcpurple.h \ + util.c \ + wb.c \ + wb.h AM_CFLAGS = $(st) @@ -11,19 +24,15 @@ if STATIC_SILC st = -DPURPLE_STATIC_PRPL $(SILC_CFLAGS) -noinst_LIBRARIES = libsilcpurple.a -pkg_LTLIBRARIES = - -libsilcpurple_a_SOURCES = $(SILCSOURCES) -libsilcpurple_a_CFLAGS = $(AM_CFLAGS) -libsilcpurple_a_LIBADD = $(SILC_LIBS) +noinst_LTLIBRARIES = libsilcpurple.la +libsilcpurple_la_SOURCES = $(SILCSOURCES) +libsilcpurple_la_CFLAGS = $(AM_CFLAGS) +libsilcpurple_la_LIBADD = $(SILC_LIBS) else st = $(SILC_CFLAGS) -pkg_LTLIBRARIES = libsilcpurple.la -noinst_LIBRARIES = - +pkg_LTLIBRARIES = libsilcpurple.la libsilcpurple_la_SOURCES = $(SILCSOURCES) libsilcpurple_la_LIBADD = $(GLIB_LIBS) $(SILC_LIBS) @@ -32,5 +41,6 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/libpurple \ -I$(top_builddir)/libpurple \ + $(DEBUG_CFLAGS) \ $(GLIB_CFLAGS) \ - $(DEBUG_CFLAGS) + $(SILC_CFLAGS)
--- a/libpurple/protocols/silc10/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/silc10/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,4 +1,7 @@ -EXTRA_DIST = README TODO Makefile.mingw +EXTRA_DIST = \ + Makefile.mingw \ + README \ + TODO pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) @@ -11,19 +14,15 @@ if STATIC_SILC st = -DPURPLE_STATIC_PRPL $(SILC_CFLAGS) -noinst_LIBRARIES = libsilcpurple.a -pkg_LTLIBRARIES = - -libsilcpurple_a_SOURCES = $(SILCSOURCES) -libsilcpurple_a_CFLAGS = $(AM_CFLAGS) -libsilcpurple_a_LIBADD = $(SILC_LIBS) +noinst_LTLIBRARIES = libsilcpurple.la +libsilcpurple_la_SOURCES = $(SILCSOURCES) +libsilcpurple_la_CFLAGS = $(AM_CFLAGS) +libsilcpurple_la_LIBADD = $(SILC_LIBS) else st = $(SILC_CFLAGS) -pkg_LTLIBRARIES = libsilcpurple.la -noinst_LIBRARIES = - +pkg_LTLIBRARIES = libsilcpurple.la libsilcpurple_la_SOURCES = $(SILCSOURCES) libsilcpurple_la_LIBADD = $(GLIB_LIBS) $(SILC_LIBS) @@ -32,5 +31,6 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/libpurple \ -I$(top_builddir)/libpurple \ + $(DEBUG_CFLAGS) \ $(GLIB_CFLAGS) \ - $(DEBUG_CFLAGS) + $(SILC_CFLAGS)
--- a/libpurple/protocols/simple/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/simple/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,5 +1,5 @@ EXTRA_DIST = \ - Makefile.mingw + Makefile.mingw pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) @@ -9,21 +9,21 @@ sipmsg.c \ sipmsg.h -AM_CFLAGS = $(st) +AM_CFLAGS = $(st) libsimple_la_LDFLAGS = -module -avoid-version if STATIC_MSN st = -DPURPLE_STATIC_PRPL -noinst_LIBRARIES = libsimple.a -libsimple_a_SOURCES = $(SIMPLESOURCES) -libsimple_a_CFLAGS = $(AM_CFLAGS) +noinst_LTLIBRARIES = libsimple.la +libsimple_la_SOURCES = $(SIMPLESOURCES) +libsimple_la_CFLAGS = $(AM_CFLAGS) else st = -pkg_LTLIBRARIES = libsimple.la +pkg_LTLIBRARIES = libsimple.la libsimple_la_SOURCES = $(SIMPLESOURCES) libsimple_la_LIBADD = $(GLIB_LIBS)
--- a/libpurple/protocols/simple/simple.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/simple/simple.c Mon Nov 17 06:15:33 2008 +0000 @@ -1228,11 +1228,14 @@ if (purple_str_has_prefix(ssparts[i], "terminated")) { purple_debug_info("simple", "Subscription expired!"); - g_free(b->dialog->ourtag); - g_free(b->dialog->theirtag); - g_free(b->dialog->callid); - g_free(b->dialog); - b->dialog = NULL; + if (b->dialog) + { + g_free(b->dialog->ourtag); + g_free(b->dialog->theirtag); + g_free(b->dialog->callid); + g_free(b->dialog); + b->dialog = NULL; + } purple_prpl_got_user_status(sip->account, from, "offline", NULL); break;
--- a/libpurple/protocols/simple/sipmsg.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/simple/sipmsg.c Mon Nov 17 06:15:33 2008 +0000 @@ -56,14 +56,17 @@ struct sipmsg *sipmsg_parse_header(const gchar *header) { struct sipmsg *msg = g_new0(struct sipmsg,1); - gchar **lines = g_strsplit(header,"\r\n",0); - gchar **parts; - gchar *dummy; - gchar *dummy2; - gchar *tmp; + gchar **parts, **lines = g_strsplit(header,"\r\n",0); + gchar *dummy, *dummy2, *tmp; const gchar *tmp2; - int i=1; - if(!lines[0]) return NULL; + int i = 1; + + if(!lines[0]) { + g_strfreev(lines); + g_free(msg); + return NULL; + } + parts = g_strsplit(lines[0], " ", 3); if(!parts[0] || !parts[1] || !parts[2]) { g_strfreev(parts); @@ -71,6 +74,7 @@ g_free(msg); return NULL; } + if(strstr(parts[0],"SIP")) { /* numeric response */ msg->method = g_strdup(parts[2]); msg->response = strtol(parts[1],NULL,10); @@ -80,6 +84,7 @@ msg->response = 0; } g_strfreev(parts); + for(i=1; lines[i] && strlen(lines[i])>2; i++) { parts = g_strsplit(lines[i], ":", 2); if(!parts[0] || !parts[1]) { @@ -104,9 +109,11 @@ g_strfreev(parts); } g_strfreev(lines); + tmp2 = sipmsg_find_header(msg, "Content-Length"); if (tmp2 != NULL) msg->bodylen = strtol(tmp2, NULL, 10); + if(msg->response) { tmp2 = sipmsg_find_header(msg, "CSeq"); if(!tmp2) { @@ -118,6 +125,7 @@ g_strfreev(parts); } } + return msg; }
--- a/libpurple/protocols/toc/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/toc/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,6 +1,6 @@ EXTRA_DIST = \ - PROTOCOL \ - Makefile.mingw + PROTOCOL \ + Makefile.mingw pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) @@ -13,9 +13,9 @@ if STATIC_TOC st = -DPURPLE_STATIC_PRPL -noinst_LIBRARIES = libtoc.a -libtoc_a_SOURCES = $(TOCSOURCES) -libtoc_a_CFLAGS = $(AM_CFLAGS) +noinst_LTLIBRARIES = libtoc.la +libtoc_la_SOURCES = $(TOCSOURCES) +libtoc_la_CFLAGS = $(AM_CFLAGS) else
--- a/libpurple/protocols/yahoo/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/yahoo/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,5 +1,5 @@ EXTRA_DIST = \ - Makefile.mingw + Makefile.mingw pkgdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) @@ -36,9 +36,9 @@ if STATIC_YAHOO st = -DPURPLE_STATIC_PRPL -noinst_LIBRARIES = libyahoo.a -libyahoo_a_SOURCES = $(YAHOOSOURCES) -libyahoo_a_CFLAGS = $(AM_CFLAGS) +noinst_LTLIBRARIES = libyahoo.la +libyahoo_la_SOURCES = $(YAHOOSOURCES) +libyahoo_la_CFLAGS = $(AM_CFLAGS) else @@ -53,4 +53,4 @@ -I$(top_srcdir)/libpurple \ -I$(top_builddir)/libpurple \ $(GLIB_CFLAGS) \ - $(DEBUG_CFLAGS) + $(DEBUG_CFLAGS) \ No newline at end of file
--- a/libpurple/protocols/yahoo/yahoo.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo.c Mon Nov 17 06:15:33 2008 +0000 @@ -3630,8 +3630,26 @@ PurpleWhiteboard *wb; int ret = 1; YahooFriend *f = NULL; + gsize lenb = 0; + glong lenc = 0; msg2 = yahoo_string_encode(gc, msg, &utf8); + + if(msg2) { + lenb = strlen(msg2); + lenc = g_utf8_strlen(msg2, -1); + + if(lenb > YAHOO_MAX_MESSAGE_LENGTH_BYTES || lenc > YAHOO_MAX_MESSAGE_LENGTH_CHARS) { + purple_debug_info("yahoo", "Message too big. Length is %" G_GSIZE_FORMAT + " bytes, %ld characters. Max is %d bytes, %d chars." + " Message is '%s'.\n", lenb, lenc, YAHOO_MAX_MESSAGE_LENGTH_BYTES, + YAHOO_MAX_MESSAGE_LENGTH_CHARS, msg2); + yahoo_packet_free(pkt); + g_free(msg); + g_free(msg2); + return -E2BIG; + } + } yahoo_packet_hash(pkt, "ss", 1, purple_connection_get_display_name(gc), 5, who); if ((f = yahoo_friend_find(gc, who)) && f->protocol)
--- a/libpurple/protocols/yahoo/yahoo.h Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo.h Mon Nov 17 06:15:33 2008 +0000 @@ -182,6 +182,21 @@ #define YAHOO_MAX_STATUS_MESSAGE_LENGTH (255) +/* + * Current Maximum Length for Instant Messages + * + * This was found by experiment. + * + * The YMSG protocol allows a message of up to 948 bytes, but the official client + * limits to 800 characters. According to experiments I conducted, it seems that + * the discrepancy is to allow some leeway for messages with mixed single- and + * multi-byte characters, as I was able to send messages of 840 and 932 bytes + * by using some multibyte characters (some random Chinese or Japanese characters, + * to be precise). - rekkanoryo + */ +#define YAHOO_MAX_MESSAGE_LENGTH_BYTES 948 +#define YAHOO_MAX_MESSAGE_LENGTH_CHARS 800 + /* sometimes i wish prpls could #include things from other prpls. then i could just * use the routines from libfaim and not have to admit to knowing how they work. */ #define yahoo_put16(buf, data) ( \
--- a/libpurple/protocols/yahoo/yahoo_filexfer.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo_filexfer.c Mon Nov 17 06:15:33 2008 +0000 @@ -267,7 +267,7 @@ content_length = YAHOO_PACKET_HDRLEN + yahoo_packet_length(pkt); - pkt_buf_len = yahoo_packet_build(pkt, 8, FALSE, yd->jp, &pkt_buf); + pkt_buf_len = yahoo_packet_build(pkt, 4, FALSE, yd->jp, &pkt_buf); yahoo_packet_free(pkt); host = purple_account_get_string(account, "xfer_host", YAHOO_XFER_HOST);
--- a/libpurple/protocols/zephyr/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/protocols/zephyr/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -62,7 +62,6 @@ zephyr_err.c \ zephyr_err.h \ zephyr_internal.h \ - \ zephyr.c ZEPHYRSOURCESEXT = zephyr.c @@ -78,10 +77,10 @@ if STATIC_ZEPHYR st = -DPURPLE_STATIC_PRPL -Dlint -noinst_LIBRARIES = libzephyr.a -libzephyr_a_SOURCES = $(ZEPHYRSOURCES) -libzephyr_a_CFLAGS = $(AM_CFLAGS) -libzephyr_a_LIBADD = $(ZEPHYRLIBS) +noinst_LTLIBRARIES = libzephyr.la +libzephyr_la_SOURCES = $(ZEPHYRSOURCES) +libzephyr_la_CFLAGS = $(AM_CFLAGS) +libzephyr_la_LIBADD = $(ZEPHYRLIBS) else @@ -90,7 +89,7 @@ if EXTERNAL_LIBZEPHYR libzephyr_la_SOURCES = $(ZEPHYRSOURCESEXT) -libzephyr_la_LIBADD = $(GLIB_LIBS) $(ZEPHYRLIBSEXT) +libzephyr_la_LIBADD = $(GLIB_LIBS) $(ZEPHYRLIBSEXT) else libzephyr_la_SOURCES = $(ZEPHYRSOURCES) libzephyr_la_LIBADD = $(GLIB_LIBS) $(ZEPHYRLIBS)
--- a/libpurple/proxy.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/proxy.c Mon Nov 17 06:15:33 2008 +0000 @@ -1342,7 +1342,7 @@ if ((buf[0] != 0x05) || (buf[1] != 0x00)) { if ((buf[0] == 0x05) && (buf[1] < 0x09)) { - purple_debug_error("socks5 proxy", socks5errors[buf[1]]); + purple_debug_error("socks5 proxy", "%s", socks5errors[buf[1]]); purple_proxy_connect_data_disconnect(connect_data, socks5errors[buf[1]]); } else {
--- a/libpurple/server.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/server.c Mon Nov 17 06:15:33 2008 +0000 @@ -265,7 +265,8 @@ purple_blist_server_alias_buddy(b, alias2); conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, b->name, account); - if(conv != NULL && alias2 != NULL && strcmp(alias2, who)) + if(conv != NULL && alias2 != NULL && + who != NULL && strcmp(alias2, who)) { char *escaped = g_markup_escape_text(who, -1); char *escaped2 = g_markup_escape_text(alias2, -1);
--- a/libpurple/util.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/util.c Mon Nov 17 06:15:33 2008 +0000 @@ -984,6 +984,8 @@ gchar *tmp; gchar *ret; + g_return_val_if_fail(opt != NULL, NULL); + if (!css_str) return NULL; @@ -2433,6 +2435,7 @@ gunichar c; char *tag; + g_return_val_if_fail(str != NULL, NULL); g_return_val_if_fail(x <= y, NULL); if (x == y) @@ -3483,6 +3486,9 @@ char *cmd; GHashTable *params = NULL; int len; + + g_return_if_fail(uri != NULL); + if (!(tmp = strchr(uri, ':')) || tmp == uri) { purple_debug_error("util", "Malformed protocol handler message - missing protocol.\n"); return; @@ -4188,6 +4194,8 @@ const char *c, *domain; static char *rfc822_specials = "()<>@,;:\\\"[]"; + g_return_val_if_fail(address != NULL, FALSE); + /* first we validate the name portion (name@domain) (rfc822)*/ for (c = address; *c; c++) { if (*c == '\"' && (c == address || *(c - 1) == '.' || *(c - 1) == '\"')) { @@ -4236,6 +4244,9 @@ { int c, o1, o2, o3, o4; char end; + + g_return_val_if_fail(ip != NULL, FALSE); + c = sscanf(ip, "%d.%d.%d.%d%c", &o1, &o2, &o3, &o4, &end); if (c != 4 || o1 < 0 || o1 > 255 || o2 < 0 || o2 > 255 || o3 < 0 || o3 > 255 || o4 < 0 || o4 > 255) return FALSE;
--- a/libpurple/xmlnode.c Fri Oct 31 08:37:42 2008 +0000 +++ b/libpurple/xmlnode.c Mon Nov 17 06:15:33 2008 +0000 @@ -249,6 +249,7 @@ xmlnode *x; g_return_val_if_fail(node != NULL, NULL); + g_return_val_if_fail(attr != NULL, NULL); for(x = node->child; x; x = x->next) { if(x->type == XMLNODE_TYPE_ATTRIB && !strcmp(attr, x->name)) { @@ -265,6 +266,7 @@ xmlnode *x; g_return_val_if_fail(node != NULL, NULL); + g_return_val_if_fail(attr != NULL, NULL); for(x = node->child; x; x = x->next) { if(x->type == XMLNODE_TYPE_ATTRIB &&
--- a/pidgin/gtkaccount.c Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/gtkaccount.c Mon Nov 17 06:15:33 2008 +0000 @@ -472,7 +472,7 @@ G_CALLBACK(screenname_changed_cb), dialog); /* Do the user split thang */ - if (dialog->plugin == NULL) /* Yeah right. */ + if (dialog->prpl_info == NULL) user_splits = NULL; else user_splits = dialog->prpl_info->user_splits; @@ -562,7 +562,8 @@ /* Set the fields. */ if (dialog->account != NULL) { - if (purple_account_get_password(dialog->account)) + if (purple_account_get_password(dialog->account) && + purple_account_get_remember_password(dialog->account)) gtk_entry_set_text(GTK_ENTRY(dialog->password_entry), purple_account_get_password(dialog->account)); @@ -2148,9 +2149,9 @@ "<span size='larger' weight='bold'>Welcome to %s!</span>\n\n" "You have no IM accounts configured. To start connecting with %s " - "press the <b>Add</b> button below and configure your first " + "press the <b>Add...</b> button below and configure your first " "account. If you want %s to connect to multiple IM accounts, " - "press <b>Add</b> again to configure them all.\n\n" + "press <b>Add...</b> again to configure them all.\n\n" "You can come back to this window to add, edit, or remove " "accounts from <b>Accounts->Manage Accounts</b> in the Buddy " @@ -2284,7 +2285,7 @@ gtk_widget_show(sw); /* Add button */ - pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_ADD, G_CALLBACK(add_account_cb), dialog); + pidgin_dialog_add_button(GTK_DIALOG(win), PIDGIN_STOCK_ADD, G_CALLBACK(add_account_cb), dialog); /* Modify button */ button = pidgin_dialog_add_button(GTK_DIALOG(win), PIDGIN_STOCK_MODIFY, G_CALLBACK(modify_account_cb), dialog);
--- a/pidgin/gtkblist.c Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/gtkblist.c Mon Nov 17 06:15:33 2008 +0000 @@ -3350,7 +3350,7 @@ } } - if (prpl_info->chat_info != NULL) + if (prpl_info && prpl_info->chat_info != NULL) cur = prpl_info->chat_info(chat->account->gc); else cur = NULL; @@ -6957,7 +6957,7 @@ pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Group:"), data->sg, data->group_combo, TRUE, NULL); data->autojoin = gtk_check_button_new_with_mnemonic(_("Auto_join when account becomes online.")); - data->persistent = gtk_check_button_new_with_mnemonic(_("_Hide chat when the window is closed.")); + data->persistent = gtk_check_button_new_with_mnemonic(_("_Remain in chat after window is closed.")); gtk_box_pack_start(GTK_BOX(vbox), data->autojoin, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), data->persistent, FALSE, FALSE, 0);
--- a/pidgin/gtkconn.c Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/gtkconn.c Mon Nov 17 06:15:33 2008 +0000 @@ -208,7 +208,10 @@ while (l) { PurpleAccount *a = (PurpleAccount*)l->data; if (!purple_account_is_disconnected(a)) { + char *password = g_strdup(purple_account_get_password(a)); purple_account_disconnect(a); + purple_account_set_password(a, password); + g_free(password); } l = l->next; }
--- a/pidgin/gtkconv.c Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/gtkconv.c Mon Nov 17 06:15:33 2008 +0000 @@ -1027,7 +1027,9 @@ } name = purple_conversation_get_name(conv); - fprintf(fp, "<html>\n<head><title>%s</title></head>\n<body>", name); + fprintf(fp, "<html>\n<head>\n"); + fprintf(fp, "<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n"); + fprintf(fp, "<title>%s</title>\n</head>\n<body>\n", name); fprintf(fp, _("<h1>Conversation with %s</h1>\n"), name); lines = gtk_imhtml_get_markup_lines(
--- a/pidgin/gtkimhtml.c Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/gtkimhtml.c Mon Nov 17 06:15:33 2008 +0000 @@ -2069,12 +2069,23 @@ } static void +gtk_imhtml_disconnect_smiley(GtkIMHtml *imhtml, GtkIMHtmlSmiley *smiley) +{ + smiley->imhtml = NULL; + g_signal_handlers_disconnect_matched(imhtml, G_SIGNAL_MATCH_DATA, 0, 0, + NULL, NULL, smiley); +} + +static void gtk_imhtml_disassociate_smiley(GtkIMHtmlSmiley *smiley) { if (smiley->imhtml) { gtk_smiley_tree_remove(smiley->imhtml->default_smilies, smiley); g_hash_table_foreach(smiley->imhtml->smiley_data, gtk_imhtml_disassociate_smiley_foreach, smiley); + g_signal_handlers_disconnect_matched(smiley->imhtml, G_SIGNAL_MATCH_DATA, + 0, 0, NULL, NULL, smiley); + smiley->imhtml = NULL; } } @@ -2094,9 +2105,19 @@ g_hash_table_insert(imhtml->smiley_data, g_strdup(sml), tree); } + /* need to disconnect old imhtml, if there is one */ + if (smiley->imhtml) { + g_signal_handlers_disconnect_matched(smiley->imhtml, G_SIGNAL_MATCH_DATA, + 0, 0, NULL, NULL, smiley); + } + smiley->imhtml = imhtml; gtk_smiley_tree_insert (tree, smiley); + + /* connect destroy signal for the imhtml */ + g_signal_connect(imhtml, "destroy", G_CALLBACK(gtk_imhtml_disconnect_smiley), + smiley); } static gboolean
--- a/pidgin/gtkmain.c Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/gtkmain.c Mon Nov 17 06:15:33 2008 +0000 @@ -536,12 +536,8 @@ "Please make sure to specify what you were doing at the time\n" "and post the backtrace from the core file. If you do not know\n" "how to get the backtrace, please read the instructions at\n" - "%swiki/GetABacktrace\n\n" - "If you need further assistance, please IM either SeanEgn or \n" - "LSchiere (via AIM). Contact information for Sean and Luke \n" - "on other protocols is at\n" - "%swiki/DeveloperPages\n"), - PIDGIN_NAME, DISPLAY_VERSION, PURPLE_DEVEL_WEBSITE, PURPLE_DEVEL_WEBSITE, PURPLE_DEVEL_WEBSITE + "%swiki/GetABacktrace\n"), + PIDGIN_NAME, DISPLAY_VERSION, PURPLE_DEVEL_WEBSITE, PURPLE_DEVEL_WEBSITE ); /* we have to convert the message (UTF-8 to console
--- a/pidgin/gtknotify.c Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/gtknotify.c Mon Nov 17 06:15:33 2008 +0000 @@ -703,7 +703,7 @@ gtk_widget_grab_focus(button); g_signal_connect_swapped(G_OBJECT(button), "clicked", - G_CALLBACK(gtk_widget_destroy), window); + G_CALLBACK(formatted_close_cb), window); g_signal_connect(G_OBJECT(window), "key_press_event", G_CALLBACK(formatted_input_cb), NULL);
--- a/pidgin/gtkpounce.c Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/gtkpounce.c Mon Nov 17 06:15:33 2008 +0000 @@ -1374,7 +1374,7 @@ gtk_box_pack_start(GTK_BOX(vbox), list, TRUE, TRUE, 0); /* Add button */ - button = pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_ADD, G_CALLBACK(pounces_manager_add_cb), dialog); + button = pidgin_dialog_add_button(GTK_DIALOG(win), PIDGIN_STOCK_ADD, G_CALLBACK(pounces_manager_add_cb), dialog); gtk_widget_set_sensitive(button, (purple_accounts_get_all() != NULL)); purple_signal_connect(purple_connections_get_handle(), "signed-on",
--- a/pidgin/gtksavedstatuses.c Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/gtksavedstatuses.c Mon Nov 17 06:15:33 2008 +0000 @@ -475,7 +475,8 @@ static void savedstatus_activated_cb(GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn *column, StatusWindow *dialog) { - status_window_modify_cb(NULL, dialog); + status_window_use_cb(NULL, dialog); + status_window_close_cb(NULL, dialog); } static void @@ -655,7 +656,7 @@ G_CALLBACK(status_window_use_cb), dialog); /* Add button */ - pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_ADD, + pidgin_dialog_add_button(GTK_DIALOG(win), PIDGIN_STOCK_ADD, G_CALLBACK(status_window_add_cb), dialog); /* Modify button */
--- a/pidgin/gtksound.c Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/gtksound.c Mon Nov 17 06:15:33 2008 +0000 @@ -447,7 +447,7 @@ if (!sound_cmd || *sound_cmd == '\0') { purple_debug_error("gtksound", "'Command' sound method has been chosen, " - "but no command has been set."); + "but no command has been set.\n"); return; }
--- a/pidgin/gtkthemes.c Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/gtkthemes.c Mon Nov 17 06:15:33 2008 +0000 @@ -169,6 +169,12 @@ for (wer = theme->list; wer != NULL; wer = theme->list) { while (wer->smileys) { GtkIMHtmlSmiley *uio = wer->smileys->data; + + if (uio->imhtml) { + g_signal_handlers_disconnect_matched(uio->imhtml, G_SIGNAL_MATCH_DATA, + 0, 0, NULL, NULL, uio); + } + if (uio->icon) g_object_unref(uio->icon); if (g_hash_table_lookup(already_freed, uio->file) == NULL) {
--- a/pidgin/pidginstock-artwork.c Fri Oct 31 08:37:42 2008 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,508 +0,0 @@ -/** - * @file pidginstock.c GTK+ Stock resources - * @ingroup pidgin - */ - -/* pidgin - * - * Pidgin is the legal property of its developers, whose names are too numerous - * to list here. Please refer to the COPYRIGHT file distributed with this - * source distribution. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA - * - */ -#include "internal.h" -#include "pidgin.h" - -#include "pidginstock.h" - -static struct StockIcon -{ - const char *name; - const char *dir; - const char *filename; - -} const stock_icons[] = -{ - { PIDGIN_STOCK_ACTION, NULL, GTK_STOCK_EXECUTE }, -#if GTK_CHECK_VERSION(2,6,0) - { PIDGIN_STOCK_ALIAS, NULL, GTK_STOCK_EDIT }, -#else - { PIDGIN_STOCK_ALIAS, "buttons", "edit.png" }, -#endif - { PIDGIN_STOCK_CHAT, NULL, GTK_STOCK_JUMP_TO }, - { PIDGIN_STOCK_CLEAR, NULL, GTK_STOCK_CLEAR }, - { PIDGIN_STOCK_CLOSE_TABS, NULL, GTK_STOCK_CLOSE }, - { PIDGIN_STOCK_DEBUG, NULL, GTK_STOCK_PROPERTIES }, - { PIDGIN_STOCK_DOWNLOAD, NULL, GTK_STOCK_GO_DOWN }, -#if GTK_CHECK_VERSION(2,6,0) - { PIDGIN_STOCK_DISCONNECT, NULL, GTK_STOCK_DISCONNECT }, -#else - { PIDGIN_STOCK_DISCONNECT, "icons", "stock_disconnect_16.png" }, -#endif - { PIDGIN_STOCK_FGCOLOR, "buttons", "change-fgcolor-small.png" }, -#if GTK_CHECK_VERSION(2,6,0) - { PIDGIN_STOCK_EDIT, NULL, GTK_STOCK_EDIT }, -#else - { PIDGIN_STOCK_EDIT, "buttons", "edit.png" }, -#endif - { PIDGIN_STOCK_FILE_CANCELED, NULL, GTK_STOCK_CANCEL }, - { PIDGIN_STOCK_FILE_DONE, NULL, GTK_STOCK_APPLY }, - { PIDGIN_STOCK_IGNORE, NULL, GTK_STOCK_DIALOG_ERROR }, - { PIDGIN_STOCK_INVITE, NULL, GTK_STOCK_JUMP_TO }, - { PIDGIN_STOCK_MODIFY, NULL, GTK_STOCK_PREFERENCES }, -#if GTK_CHECK_VERSION(2,6,0) - { PIDGIN_STOCK_PAUSE, NULL, GTK_STOCK_MEDIA_PAUSE }, -#else - { PIDGIN_STOCK_PAUSE, "buttons", "pause.png" }, -#endif - { PIDGIN_STOCK_POUNCE, NULL, GTK_STOCK_REDO }, - { PIDGIN_STOCK_OPEN_MAIL, NULL, GTK_STOCK_JUMP_TO }, - { PIDGIN_STOCK_SIGN_ON, NULL, GTK_STOCK_EXECUTE }, - { PIDGIN_STOCK_SIGN_OFF, NULL, GTK_STOCK_CLOSE }, - { PIDGIN_STOCK_TYPED, "pidgin", "typed.png" }, - { PIDGIN_STOCK_UPLOAD, NULL, GTK_STOCK_GO_UP }, -#if GTK_CHECK_VERSION(2,8,0) - { PIDGIN_STOCK_INFO, NULL, GTK_STOCK_INFO }, -#else - { PIDGIN_STOCK_INFO, "buttons", "info.png" }, -#endif -}; - -static const GtkStockItem stock_items[] = -{ - { PIDGIN_STOCK_ALIAS, N_("_Alias"), 0, 0, NULL }, - { PIDGIN_STOCK_CHAT, N_("_Join"), 0, 0, NULL }, - { PIDGIN_STOCK_CLOSE_TABS, N_("Close _tabs"), 0, 0, NULL }, - { PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW, N_("I_M"), 0, 0, NULL }, - { PIDGIN_STOCK_TOOLBAR_USER_INFO, N_("_Get Info"), 0, 0, NULL }, - { PIDGIN_STOCK_INVITE, N_("_Invite"), 0, 0, NULL }, - { PIDGIN_STOCK_MODIFY, N_("_Modify"), 0, 0, NULL }, - { PIDGIN_STOCK_OPEN_MAIL, N_("_Open Mail"), 0, 0, NULL }, - { PIDGIN_STOCK_PAUSE, N_("_Pause"), 0, 0, NULL }, - { PIDGIN_STOCK_EDIT, N_("_Edit"), 0, 0, NULL } -}; - -static struct SizedStockIcon { - const char *name; - const char *dir; - const char *filename; - gboolean microscopic; - gboolean extra_small; - gboolean small; - gboolean medium; - gboolean large; - gboolean huge; - gboolean rtl; - const char *translucent_name; -} const sized_stock_icons [] = { - - - /* Status icons */ - - { PIDGIN_STOCK_STATUS_AVAILABLE, "status", "pidgin-available.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_AVAILABLE_I }, - { PIDGIN_STOCK_STATUS_AWAY, "status", "pidgin-away.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_AWAY_I }, - { PIDGIN_STOCK_STATUS_BUSY, "status", "pidgin-busy.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_BUSY_I }, - { PIDGIN_STOCK_STATUS_CHAT, "status", "pidgin-chat.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_STATUS_INVISIBLE, "status", "pidgin-invisible.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_STATUS_XA, "status", "pidgin-extended-away.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_XA_I }, - { PIDGIN_STOCK_STATUS_LOGIN, "status", "pidgin-log-in.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_STATUS_LOGOUT, "status", "pidgin-log-out.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_STATUS_OFFLINE, "status", "pidgin-offline.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_OFFLINE_I }, - { PIDGIN_STOCK_STATUS_PERSON, "status", "pidgin-person.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_STATUS_MESSAGE, "actions", "pidgin-message-new.png", TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - - - /* Chatroom icons */ - - { PIDGIN_STOCK_STATUS_IGNORED, "status", "pidgin-blocked.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_STATUS_FOUNDER, "status", "pidgin-founder.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_STATUS_OPERATOR, "status", "pidgin-operator.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_STATUS_HALFOP, "status", "pidgin-half-operator.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_STATUS_VOICE, "status", "pidgin-voice.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - - - /* Dialog icons */ - - { PIDGIN_STOCK_DIALOG_AUTH, "status", "pidgin-auth.png", FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, NULL }, - { PIDGIN_STOCK_DIALOG_COOL, "status", "pidgin-cool.png", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, NULL }, - { PIDGIN_STOCK_DIALOG_ERROR, "status", "pidgin-error.png", FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, NULL }, - { PIDGIN_STOCK_DIALOG_INFO, "status", "pidgin-info.png", FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, NULL }, - { PIDGIN_STOCK_DIALOG_MAIL, "status", "pidgin-mail.png", FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, NULL }, - { PIDGIN_STOCK_DIALOG_QUESTION, "status", "pidgin-question.png", FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, NULL }, - { PIDGIN_STOCK_DIALOG_WARNING, "status", "pidgin-warning.png", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, NULL }, - - - /* Animations */ - - { PIDGIN_STOCK_ANIMATION_CONNECT0, "animations", "process-working0.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT1, "animations", "process-working1.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT2, "animations", "process-working2.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT3, "animations", "process-working3.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT4, "animations", "process-working4.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT5, "animations", "process-working5.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT6, "animations", "process-working6.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT7, "animations", "process-working7.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT8, "animations", "process-working8.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT9, "animations", "process-working9.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT10, "animations", "process-working10.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT11, "animations", "process-working11.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT12, "animations", "process-working12.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT13, "animations", "process-working13.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT14, "animations", "process-working14.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT15, "animations", "process-working15.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT16, "animations", "process-working16.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT17, "animations", "process-working17.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT18, "animations", "process-working18.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT19, "animations", "process-working19.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT20, "animations", "process-working20.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT21, "animations", "process-working21.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT22, "animations", "process-working22.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT23, "animations", "process-working23.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT24, "animations", "process-working24.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT25, "animations", "process-working25.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT26, "animations", "process-working26.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT27, "animations", "process-working27.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT28, "animations", "process-working28.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT29, "animations", "process-working29.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_CONNECT30, "animations", "process-working30.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_TYPING0, "animations", "typing0.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_TYPING1, "animations", "typing1.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_TYPING2, "animations", "typing2.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_TYPING3, "animations", "typing3.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_TYPING4, "animations", "typing4.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_ANIMATION_TYPING5, "animations", "typing5.png",FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - - - /* Conversation toolbar icons */ - - { PIDGIN_STOCK_TOOLBAR_BGCOLOR, "actions", "pidgin-change-bgcolor.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TOOLBAR_FGCOLOR, "actions", "pidgin-change-fgcolor.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TOOLBAR_TEXT_SMALLER, "actions", "pidgin-font-size-down.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TOOLBAR_TEXT_LARGER, "actions", "pidgin-font-size-up.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TOOLBAR_SMILEY, "actions", "pidgin-emote-select.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TOOLBAR_FONT_FACE, "actions", "pidgin-font-face.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TOOLBAR_INSERT, "actions", "pidgin-insert.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE, "actions", "pidgin-insert-image.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TOOLBAR_INSERT_LINK, "actions", "pidgin-insert-link.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - - - /* Menu icons */ - - { PIDGIN_STOCK_TOOLBAR_BLOCK, "status", "pidgin-blocked.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW, "actions", "pidgin-message-new.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TOOLBAR_PENDING, "status", "pidgin-tray-new-im.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TOOLBAR_PLUGINS, "actions", "pidgin-view-plugins.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TOOLBAR_UNBLOCK, "actions", "pidgin-unblock.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TOOLBAR_SELECT_AVATAR, "actions", "pidgin-select-avatar.png", FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TOOLBAR_SEND_FILE, "actions", "pidgin-send-file.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TOOLBAR_TRANSFER, "actions", "pidgin-view-transfer.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, - - - /* Tray icons */ - - { PIDGIN_STOCK_TRAY_AVAILABLE, "status", "pidgin-tray-online.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TRAY_INVISIBLE, "status", "pidgin-tray-invisible.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TRAY_AWAY, "status", "pidgin-tray-away.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TRAY_BUSY, "status", "pidgin-tray-busy.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TRAY_XA, "status", "pidgin-tray-extended-away.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TRAY_OFFLINE, "status", "pidgin-tray-offline.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TRAY_CONNECT, "status", "pidgin-tray-connecting.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TRAY_PENDING, "status", "pidgin-tray-new-im.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, - { PIDGIN_STOCK_TRAY_EMAIL, "status", "pidgin-tray-message.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL } - -}; - -static gchar * -find_file(const char *dir, const char *base) -{ - char *filename; - - if (base == NULL) - return NULL; - - if (!strcmp(dir, "pidgin")) - filename = g_build_filename(DATADIR, "pixmaps", "pidgin", base, NULL); - else - { - filename = g_build_filename(DATADIR, "pixmaps", "pidgin", dir, - base, NULL); - } - - return filename; -} - -static void -add_sized_icon(GtkIconSet *iconset, GtkIconSize sizeid, const char *dir, - gboolean rtl, const char *size, const char *file) -{ - char *filename; - GtkIconSource *source; - - filename = g_build_filename(DATADIR, "pixmaps", "pidgin", dir, size, file, NULL); - source = gtk_icon_source_new(); - gtk_icon_source_set_filename(source, filename); - gtk_icon_source_set_direction(source, GTK_TEXT_DIR_LTR); - gtk_icon_source_set_direction_wildcarded(source, !rtl); - gtk_icon_source_set_size(source, sizeid); - gtk_icon_source_set_size_wildcarded(source, FALSE); - gtk_icon_source_set_state_wildcarded(source, TRUE); - gtk_icon_set_add_source(iconset, source); - gtk_icon_source_free(source); - - if (sizeid == gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)) { - source = gtk_icon_source_new(); - gtk_icon_source_set_filename(source, filename); - gtk_icon_source_set_direction_wildcarded(source, TRUE); - gtk_icon_source_set_size(source, GTK_ICON_SIZE_MENU); - gtk_icon_source_set_size_wildcarded(source, FALSE); - gtk_icon_source_set_state_wildcarded(source, TRUE); - gtk_icon_set_add_source(iconset, source); - gtk_icon_source_free(source); - } - g_free(filename); - - if (rtl) { - filename = g_build_filename(DATADIR, "pixmaps", "pidgin", dir, size, "rtl", file, NULL); - source = gtk_icon_source_new(); - gtk_icon_source_set_filename(source, filename); - gtk_icon_source_set_direction(source, GTK_TEXT_DIR_RTL); - gtk_icon_source_set_size(source, sizeid); - gtk_icon_source_set_size_wildcarded(source, FALSE); - gtk_icon_source_set_state_wildcarded(source, TRUE); - gtk_icon_set_add_source(iconset, source); - g_free(filename); - gtk_icon_source_free(source); - } - - -} - -/* Altered from do_colorshift in gnome-panel */ -static void -do_alphashift (GdkPixbuf *dest, GdkPixbuf *src) -{ - gint i, j; - gint width, height, has_alpha, srcrowstride, destrowstride; - guchar *target_pixels; - guchar *original_pixels; - guchar *pixsrc; - guchar *pixdest; - guchar a; - - has_alpha = gdk_pixbuf_get_has_alpha (src); - if (!has_alpha) - return; - - width = gdk_pixbuf_get_width (src); - height = gdk_pixbuf_get_height (src); - srcrowstride = gdk_pixbuf_get_rowstride (src); - destrowstride = gdk_pixbuf_get_rowstride (dest); - target_pixels = gdk_pixbuf_get_pixels (dest); - original_pixels = gdk_pixbuf_get_pixels (src); - - for (i = 0; i < height; i++) { - pixdest = target_pixels + i*destrowstride; - pixsrc = original_pixels + i*srcrowstride; - for (j = 0; j < width; j++) { - *(pixdest++) = *(pixsrc++); - *(pixdest++) = *(pixsrc++); - *(pixdest++) = *(pixsrc++); - a = *(pixsrc++); - *(pixdest++) = a / 2; - } - } -} - -/* TODO: This is almost certainly not the best way to do this, but it's late, I'm tired, - * we're a few hours from getting this thing out, and copy/paste is EASY. - */ -static void -add_translucent_sized_icon(GtkIconSet *iconset, GtkIconSize sizeid, const char *dir, - gboolean rtl, const char *size, const char *file) -{ - char *filename; - GtkIconSource *source; - GdkPixbuf *pixbuf; - - filename = g_build_filename(DATADIR, "pixmaps", "pidgin", dir, size, file, NULL); - pixbuf = gdk_pixbuf_new_from_file(filename, NULL); - do_alphashift(pixbuf, pixbuf); - - source = gtk_icon_source_new(); - gtk_icon_source_set_pixbuf(source, pixbuf); - gtk_icon_source_set_direction(source, GTK_TEXT_DIR_LTR); - gtk_icon_source_set_direction_wildcarded(source, !rtl); - gtk_icon_source_set_size(source, sizeid); - gtk_icon_source_set_size_wildcarded(source, FALSE); - gtk_icon_source_set_state_wildcarded(source, TRUE); - gtk_icon_set_add_source(iconset, source); - gtk_icon_source_free(source); - - if (sizeid == gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)) { - source = gtk_icon_source_new(); - gtk_icon_source_set_pixbuf(source, pixbuf); - gtk_icon_source_set_direction_wildcarded(source, TRUE); - gtk_icon_source_set_size(source, GTK_ICON_SIZE_MENU); - gtk_icon_source_set_size_wildcarded(source, FALSE); - gtk_icon_source_set_state_wildcarded(source, TRUE); - gtk_icon_set_add_source(iconset, source); - gtk_icon_source_free(source); - } - g_free(filename); - g_object_unref(pixbuf); - - if (rtl) { - filename = g_build_filename(DATADIR, "pixmaps", "pidgin", dir, size, "rtl", file, NULL); - pixbuf = gdk_pixbuf_new_from_file(filename, NULL); - do_alphashift(pixbuf, pixbuf); - source = gtk_icon_source_new(); - gtk_icon_source_set_pixbuf(source, pixbuf); - gtk_icon_source_set_direction(source, GTK_TEXT_DIR_RTL); - gtk_icon_source_set_size(source, sizeid); - gtk_icon_source_set_size_wildcarded(source, FALSE); - gtk_icon_source_set_state_wildcarded(source, TRUE); - gtk_icon_set_add_source(iconset, source); - g_free(filename); - g_object_unref(pixbuf); - gtk_icon_source_free(source); - } - - -} - - -void -pidgin_stock_init(void) -{ - static gboolean stock_initted = FALSE; - GtkIconFactory *icon_factory; - size_t i; - GtkWidget *win; - GtkIconSize microscopic, extra_small, small, medium, large, huge; - - if (stock_initted) - return; - - stock_initted = TRUE; - - /* Setup the icon factory. */ - icon_factory = gtk_icon_factory_new(); - - gtk_icon_factory_add_default(icon_factory); - - /* Er, yeah, a hack, but it works. :) */ - win = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_widget_realize(win); - - for (i = 0; i < G_N_ELEMENTS(stock_icons); i++) - { - GtkIconSource *source; - GtkIconSet *iconset; - gchar *filename; - - if (stock_icons[i].dir == NULL) - { - /* GTK+ Stock icon */ - iconset = gtk_style_lookup_icon_set(gtk_widget_get_style(win), - stock_icons[i].filename); - } - else - { - filename = find_file(stock_icons[i].dir, stock_icons[i].filename); - - if (filename == NULL) - continue; - - source = gtk_icon_source_new(); - gtk_icon_source_set_filename(source, filename); - gtk_icon_source_set_direction_wildcarded(source, TRUE); - gtk_icon_source_set_size_wildcarded(source, TRUE); - gtk_icon_source_set_state_wildcarded(source, TRUE); - - - iconset = gtk_icon_set_new(); - gtk_icon_set_add_source(iconset, source); - - gtk_icon_source_free(source); - g_free(filename); - } - - gtk_icon_factory_add(icon_factory, stock_icons[i].name, iconset); - - gtk_icon_set_unref(iconset); - } - - /* register custom icon sizes */ - - microscopic = gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_MICROSCOPIC, 11, 11); - extra_small = gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL, 16, 16); - small = gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_SMALL, 22, 22); - medium = gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_MEDIUM, 32, 32); - large = gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_LARGE, 48, 48); - huge = gtk_icon_size_register(PIDGIN_ICON_SIZE_TANGO_HUGE, 64, 64); - - for (i = 0; i < G_N_ELEMENTS(sized_stock_icons); i++) - { - GtkIconSet *iconset; - - iconset = gtk_icon_set_new(); - -#define ADD_SIZED_ICON(name, size) do { \ - if (sized_stock_icons[i].name) \ - add_sized_icon(iconset, name, \ - sized_stock_icons[i].dir, sized_stock_icons[i].rtl, \ - size, sized_stock_icons[i].filename); \ - } while (0) - ADD_SIZED_ICON(microscopic, "11"); - ADD_SIZED_ICON(extra_small, "16"); - ADD_SIZED_ICON(small, "22"); - ADD_SIZED_ICON(medium, "32"); - ADD_SIZED_ICON(large, "48"); - ADD_SIZED_ICON(huge, "64"); -#undef ADD_SIZED_ICON - - gtk_icon_factory_add(icon_factory, sized_stock_icons[i].name, iconset); - gtk_icon_set_unref(iconset); - - if (sized_stock_icons[i].translucent_name) { - iconset = gtk_icon_set_new(); - -#define ADD_TRANS_ICON(name, size) do { \ - if (sized_stock_icons[i].name) \ - add_translucent_sized_icon(iconset, name, \ - sized_stock_icons[i].dir, sized_stock_icons[i].rtl, \ - size, sized_stock_icons[i].filename); \ - } while (0) - ADD_TRANS_ICON(microscopic, "11"); - ADD_TRANS_ICON(extra_small, "16"); - ADD_TRANS_ICON(small, "22"); - ADD_TRANS_ICON(medium, "32"); - ADD_TRANS_ICON(large, "48"); - ADD_TRANS_ICON(huge, "64"); -#undef ADD_TRANS_ICON - - gtk_icon_factory_add(icon_factory, sized_stock_icons[i].translucent_name, iconset); - gtk_icon_set_unref(iconset); - } - } - - gtk_widget_destroy(win); - g_object_unref(G_OBJECT(icon_factory)); - - /* Register the stock items. */ - gtk_stock_add_static(stock_items, G_N_ELEMENTS(stock_items)); -}
--- a/pidgin/pidginstock.c Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/pidginstock.c Mon Nov 17 06:15:33 2008 +0000 @@ -64,6 +64,7 @@ { PIDGIN_STOCK_IGNORE, NULL, GTK_STOCK_DIALOG_ERROR }, { PIDGIN_STOCK_INVITE, NULL, GTK_STOCK_JUMP_TO }, { PIDGIN_STOCK_MODIFY, NULL, GTK_STOCK_PREFERENCES }, + { PIDGIN_STOCK_ADD, NULL, GTK_STOCK_ADD }, #if GTK_CHECK_VERSION(2,6,0) { PIDGIN_STOCK_PAUSE, NULL, GTK_STOCK_MEDIA_PAUSE }, #else @@ -90,7 +91,8 @@ { PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW, N_("I_M"), 0, 0, NULL }, { PIDGIN_STOCK_TOOLBAR_USER_INFO, N_("_Get Info"), 0, 0, NULL }, { PIDGIN_STOCK_INVITE, N_("_Invite"), 0, 0, NULL }, - { PIDGIN_STOCK_MODIFY, N_("_Modify"), 0, 0, NULL }, + { PIDGIN_STOCK_MODIFY, N_("_Modify..."), 0, 0, NULL }, + { PIDGIN_STOCK_ADD, N_("_Add..."), 0, 0, NULL }, { PIDGIN_STOCK_OPEN_MAIL, N_("_Open Mail"), 0, 0, NULL }, { PIDGIN_STOCK_PAUSE, N_("_Pause"), 0, 0, NULL }, { PIDGIN_STOCK_EDIT, N_("_Edit"), 0, 0, NULL }
--- a/pidgin/pidginstock.h Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/pidginstock.h Mon Nov 17 06:15:33 2008 +0000 @@ -49,6 +49,7 @@ #define PIDGIN_STOCK_INFO "pidgin-info" #define PIDGIN_STOCK_INVITE "pidgin-invite" #define PIDGIN_STOCK_MODIFY "pidgin-modify" +#define PIDGIN_STOCK_ADD "pidgin-add" #define PIDGIN_STOCK_OPEN_MAIL "pidgin-stock-open-mail" #define PIDGIN_STOCK_PAUSE "pidgin-pause" #define PIDGIN_STOCK_POUNCE "pidgin-pounce"
--- a/pidgin/pixmaps/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/pixmaps/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,12 +1,13 @@ pidginpixmapdir = $(datadir)/pixmaps/pidgin pidginiconsdir = $(datadir) -SUBDIRS = emotes/default/24 emotes/none +SUBDIRS = emotes/default/24 emotes/none emotes/small/16 if INSTALL_PIXMAPS MAKEFILE_MINGW = \ emotes/default/24/Makefile.mingw \ - emotes/none/Makefile.mingw + emotes/none/Makefile.mingw \ + emotes/small/16/Makefile.mingw ANIMATIONS_16 = \ animations/16/connect0.png \ @@ -177,6 +178,7 @@ emotes/default/24/scalable/musical-note.svg \ emotes/default/24/scalable/peace.svg \ emotes/default/24/scalable/phone.svg \ + emotes/default/24/scalable/pidgin-emotes.svg \ emotes/default/24/scalable/pig.svg \ emotes/default/24/scalable/pill.svg \ emotes/default/24/scalable/pizza.svg \ @@ -204,6 +206,9 @@ emotes/default/24/scalable/watermelon.svg \ emotes/default/24/scalable/yin-yang.svg +EMOTES_SMALL_16_SCALABLE = \ + emotes/small/16/scalable/pidgin-emotes.svg + PROTOCOLS_16_SCALABLE = \ protocols/16/scalable/aim.svg \ protocols/16/scalable/bonjour.svg \
--- a/pidgin/pixmaps/emotes/default/24/Makefile.am Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/pixmaps/emotes/default/24/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -1,4 +1,5 @@ -SMILEYS = act-up.png \ +SMILEYS = \ + act-up.png \ airplane.png \ alien.png \ angel.png \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/emotes/small/16/Makefile.am Mon Nov 17 06:15:33 2008 +0000 @@ -0,0 +1,59 @@ +SMILEYS = \ + angel.png \ + angry.png \ + beer.png \ + camera.png \ + cigarette.png \ + coffee.png \ + confused.png \ + console.png \ + cool.png \ + cross.png \ + crying.png \ + devil.png \ + dont-know.png \ + grin.png \ + hug-left.png \ + hug-right.png \ + kiss.png \ + love.png \ + meeting.png \ + musical-note.png \ + nerdy.png \ + neutral.png \ + party.png \ + phone.png \ + plate.png \ + question.png \ + sad.png \ + shame.png \ + shock.png \ + sick.png \ + silent.png \ + sleepy.png \ + smile-big.png \ + smile.png \ + thinking.png \ + tongue.png \ + tv.png \ + uhm-yeah.png \ + wink.png \ + yawn.png + + +pidginsmileypix_in_files = small.theme.in + +if INSTALL_PIXMAPS +pidginsmileypixdir = $(datadir)/pixmaps/pidgin/emotes/small +pidginsmileypix_DATA = \ + $(SMILEYS) \ + theme + +theme: small.theme.in + sed -e 's/^_Name=/Name=/' \ + -e 's/^_Description=/Description=/' \ + -e 's/^_Author=/Author=/' \ + $< > $@ +endif + +EXTRA_DIST = $(SMILEYS) $(pidginsmileypix_in_files) theme
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/emotes/small/16/Makefile.mingw Mon Nov 17 06:15:33 2008 +0000 @@ -0,0 +1,27 @@ +# +# Makefile.mingw +# +# Description: Makefile for win32 (mingw) version of Pidgin pixmaps +# + +PIDGIN_TREE_TOP := ../../../../.. +include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak + +datadir = $(PIDGIN_INSTALL_DIR) +-include ./Makefile.am.mingw + +.PHONY: install clean + +install: ./Makefile.am.mingw theme + if test '$(pidginsmileypix_DATA)'; then \ + mkdir -p $(pidginsmileypixdir); \ + cp $(pidginsmileypix_DATA) $(pidginsmileypixdir); \ + fi; + +clean: + rm -f theme ./Makefile.am.mingw + +./Makefile.am.mingw: ./Makefile.am + sed -e 's/^if\ INSTALL_PIXMAPS/ifeq (\$$(INSTALL_PIXMAPS), 1)/' ./Makefile.am > $@ + include $@ +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/emotes/small/16/TODO Mon Nov 17 06:15:33 2008 +0000 @@ -0,0 +1,20 @@ +The following icons where just scaled down from the 24x24 and may need work: + meeting.png + question.png + search.png + sleepy.png + smile-big.png + tv.png + +The following icons came from N3fr0n and probably need to be redone to match +our default icons: + beer.png + camera.png + cigarette.png + coffee.png + console.png + love.png + musical-note.png + party.png + phone.png + plate.png
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/emotes/small/16/scalable/pidgin-emotes.svg Mon Nov 17 06:15:33 2008 +0000 @@ -0,0 +1,6689 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="150" + height="150" + id="svg10335" + sodipodi:version="0.32" + inkscape:version="0.46+devel" + sodipodi:docname="tiny-smileys.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + inkscape:export-filename="/home/hbons/Bureaublad/Projecten/Pidgin/pidgin-mtn/pidgin/pixmaps/toolbar/16/emote-select.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + version="1.0"> + <defs + id="defs10337"> + <linearGradient + inkscape:collect="always" + id="linearGradient11573"> + <stop + style="stop-color:#73d216;stop-opacity:1;" + offset="0" + id="stop11575" /> + <stop + style="stop-color:#73d216;stop-opacity:0;" + offset="1" + id="stop11577" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient11159"> + <stop + style="stop-color:#bb2b2b;stop-opacity:1;" + offset="0" + id="stop11161" /> + <stop + style="stop-color:#bb2b2b;stop-opacity:0;" + offset="1" + id="stop11163" /> + </linearGradient> + <linearGradient + id="linearGradient11044"> + <stop + id="stop11046" + offset="0" + style="stop-color:#b82929;stop-opacity:1" /> + <stop + id="stop11048" + offset="1" + style="stop-color:#fea523;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient11038"> + <stop + style="stop-color:#750000;stop-opacity:1" + offset="0" + id="stop11040" /> + <stop + style="stop-color:#ff5555;stop-opacity:1" + offset="1" + id="stop11042" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient10856"> + <stop + style="stop-color:#ef2929;stop-opacity:1;" + offset="0" + id="stop10858" /> + <stop + style="stop-color:#ef2929;stop-opacity:0;" + offset="1" + id="stop10860" /> + </linearGradient> + <linearGradient + id="linearGradient11170" + inkscape:collect="always"> + <stop + id="stop11172" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + id="linearGradient11164" + inkscape:collect="always"> + <stop + id="stop11166" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + id="linearGradient11455" + inkscape:collect="always"> + <stop + id="stop11457" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11455" + id="linearGradient20929" + gradientUnits="userSpaceOnUse" + x1="14.365882" + y1="19.515574" + x2="8.5458574" + y2="3.9464788" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870" + id="linearGradient20933" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + id="linearGradient11461" + inkscape:collect="always"> + <stop + id="stop11463" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461" + id="radialGradient20931" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526" + id="linearGradient20942" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,37.000002,11.764517)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526" + id="linearGradient20915" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164" + id="linearGradient11158" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170" + id="linearGradient11160" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11455-2" + inkscape:collect="always"> + <stop + id="stop11457-7" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-2" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-6" + id="radialGradient20931-2" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-6" + inkscape:collect="always"> + <stop + id="stop11463-1" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-0" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-1" + id="linearGradient20933-6" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-1"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-5" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-9" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-9" + id="linearGradient20942-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,63.000002,11.764517)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-9"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-0" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-9" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-9" + id="linearGradient20915-1" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-7" + id="linearGradient11160-7" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-7" + inkscape:collect="always"> + <stop + id="stop11172-1" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-1" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-9" + id="linearGradient11158-5" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-9" + inkscape:collect="always"> + <stop + id="stop11166-7" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-7" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient8123" + xlink:href="#linearGradient11455-2" + inkscape:collect="always" /> + <linearGradient + id="linearGradient11455-8" + inkscape:collect="always"> + <stop + id="stop11457-72" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-8" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-9" + id="radialGradient20931-29" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-9" + inkscape:collect="always"> + <stop + id="stop11463-6" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-02" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-6" + id="linearGradient20933-7" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-6"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-1" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-3" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-1"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-5" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-99" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-1" + id="linearGradient20915-14" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-7" + id="linearGradient11158-58" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-7" + inkscape:collect="always"> + <stop + id="stop11166-0" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-4" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient8123-8" + xlink:href="#linearGradient11455-8" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-7-2" + id="linearGradient11158-58-0" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-7-2" + inkscape:collect="always"> + <stop + id="stop11166-0-0" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-4-1" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-1-6" + id="linearGradient11160-9-9" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-1-6" + inkscape:collect="always"> + <stop + id="stop11172-0-2" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-7-1" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-1-0" + id="linearGradient20915-14-2" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-1-0"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-5-7" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-99-3" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-1-0" + id="linearGradient20942-2-1" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,89.000002,37.764517)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-9-9" + id="radialGradient20931-29-1" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-9-9" + inkscape:collect="always"> + <stop + id="stop11463-6-0" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-02-5" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-6-7" + id="linearGradient20933-7-6" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-6-7"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-1-7" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-3-4" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient8123-8-0" + xlink:href="#linearGradient11455-8-6" + inkscape:collect="always" /> + <linearGradient + id="linearGradient11455-8-6" + inkscape:collect="always"> + <stop + id="stop11457-72-4" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-8-7" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-9-8" + id="linearGradient11158-5-4" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-9-8" + inkscape:collect="always"> + <stop + id="stop11166-7-5" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-7-8" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-7-6" + id="linearGradient11160-7-2" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-7-6" + inkscape:collect="always"> + <stop + id="stop11172-1-0" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-1-6" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-9-4" + id="linearGradient20915-1-6" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-9-4"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-0-6" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-9-2" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-9-4" + id="linearGradient20942-4-8" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,63.000002,37.764517)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-6-6" + id="radialGradient20931-2-9" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-6-6" + inkscape:collect="always"> + <stop + id="stop11463-1-0" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-0-7" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-1-1" + id="linearGradient20933-6-0" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-1-1"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-5-0" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-9-1" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient8123-3" + xlink:href="#linearGradient11455-2-7" + inkscape:collect="always" /> + <linearGradient + id="linearGradient11455-2-7" + inkscape:collect="always"> + <stop + id="stop11457-7-7" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-2-2" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-4" + id="linearGradient11158-6" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-4" + inkscape:collect="always"> + <stop + id="stop11166-5" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-2" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-2" + id="linearGradient11160-0" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-2" + inkscape:collect="always"> + <stop + id="stop11172-9" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-0" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-94" + id="linearGradient20915-9" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-94"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-51" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-0" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-94" + id="linearGradient20942-3" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.99999994,0,0,1.0980648,37.000002,35.264514)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-8" + id="radialGradient20931-7" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-8" + inkscape:collect="always"> + <stop + id="stop11463-8" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-6" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-4" + id="linearGradient20933-0" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-4"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-6" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-7" /> + </linearGradient> + <linearGradient + id="linearGradient11455-0" + inkscape:collect="always"> + <stop + id="stop11457-9" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-7" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient8449" + xlink:href="#linearGradient11455-0" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-7-1" + id="linearGradient11158-58-5" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-7-1" + inkscape:collect="always"> + <stop + id="stop11166-0-7" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-4-4" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-1-7" + id="linearGradient11160-9-1" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-1-7" + inkscape:collect="always"> + <stop + id="stop11172-0-1" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-7-11" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-1-04" + id="linearGradient20915-14-7" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-1-04"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-5-0" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-99-8" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-1-04" + id="linearGradient20942-2-5" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,89.000002,63.764517)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-9-6" + id="radialGradient20931-29-16" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-9-6" + inkscape:collect="always"> + <stop + id="stop11463-6-2" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-02-1" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-6-6" + id="linearGradient20933-7-9" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-6-6"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-1-4" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-3-8" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient8123-8-08" + xlink:href="#linearGradient11455-8-1" + inkscape:collect="always" /> + <linearGradient + id="linearGradient11455-8-1" + inkscape:collect="always"> + <stop + id="stop11457-72-0" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-8-2" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-9-9" + id="linearGradient11158-5-2" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-9-9" + inkscape:collect="always"> + <stop + id="stop11166-7-7" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-7-5" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-7-4" + id="linearGradient11160-7-6" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-7-4" + inkscape:collect="always"> + <stop + id="stop11172-1-6" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-1-3" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-9-9" + id="linearGradient20915-1-7" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-9-9"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-0-7" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-9-4" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-9-9" + id="linearGradient20942-4-9" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,63.009511,63.223331)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-6-7" + id="radialGradient20931-2-1" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-6-7" + inkscape:collect="always"> + <stop + id="stop11463-1-06" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-0-0" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-1-5" + id="linearGradient20933-6-8" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-1-5"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-5-3" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-9-9" /> + </linearGradient> + <linearGradient + y2="9.5696287" + x2="11.806158" + y1="17.769615" + x1="13.28505" + gradientUnits="userSpaceOnUse" + id="linearGradient8123-4" + xlink:href="#linearGradient11455-2-1" + inkscape:collect="always" /> + <linearGradient + id="linearGradient11455-2-1" + inkscape:collect="always"> + <stop + id="stop11457-7-5" + offset="0" + style="stop-color:#306003;stop-opacity:1" /> + <stop + id="stop11459-2-4" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-5" + id="linearGradient11158-1" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-5" + inkscape:collect="always"> + <stop + id="stop11166-54" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-9" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-3" + id="linearGradient11160-8" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-3" + inkscape:collect="always"> + <stop + id="stop11172-8" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-5" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-2" + id="linearGradient20915-2" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-2"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-2" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-7" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-2" + id="linearGradient20942-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,37.009511,63.764517)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-4" + id="radialGradient20931-3" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-4" + inkscape:collect="always"> + <stop + id="stop11463-63" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-63" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-44" + id="linearGradient20933-3" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-44"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-3" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-97" /> + </linearGradient> + <linearGradient + id="linearGradient11455-5" + inkscape:collect="always"> + <stop + id="stop11457-8" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-9" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient8449-0" + xlink:href="#linearGradient11455-5" + inkscape:collect="always" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-1" + id="radialGradient20931-6" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-1" + inkscape:collect="always"> + <stop + id="stop11463-11" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-8" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-8" + id="linearGradient20933-33" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-8"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-15" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-6" /> + </linearGradient> + <linearGradient + id="linearGradient11455-27" + inkscape:collect="always"> + <stop + id="stop11457-95" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-83" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient10286" + xlink:href="#linearGradient11455-27" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + id="linearGradient10540-3"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop10542-5" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop10544-1" /> + </linearGradient> + <radialGradient + r="8.75" + fy="1.75" + fx="-7.5625" + cy="1.75" + cx="-7.5625" + gradientTransform="matrix(1.140732,0,0,0.41147834,1.0642859,2.328462)" + gradientUnits="userSpaceOnUse" + id="radialGradient10639" + xlink:href="#linearGradient10540-3" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-59" + id="linearGradient11158-3" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-59" + inkscape:collect="always"> + <stop + id="stop11166-4" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-77" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-6" + id="linearGradient11160-1" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-6" + inkscape:collect="always"> + <stop + id="stop11172-4" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-9" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-29" + id="linearGradient20915-13" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-29"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-09" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-78" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-29" + id="linearGradient20942-34" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,11.000002,37.764517)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-5" + id="radialGradient20931-0" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-5" + inkscape:collect="always"> + <stop + id="stop11463-3" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-9" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-5" + id="linearGradient20933-1" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-5"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-8" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-77" /> + </linearGradient> + <linearGradient + id="linearGradient11455-04" + inkscape:collect="always"> + <stop + id="stop11457-84" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-4" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient10712" + xlink:href="#linearGradient11455-04" + inkscape:collect="always" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient10856" + id="radialGradient10862" + cx="-9.9215918" + cy="27.291611" + fx="-9.9215918" + fy="27.291611" + r="3.3366601" + gradientTransform="matrix(1,0,0,0.69536427,0,8.3139998)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient10856" + id="radialGradient10864" + cx="-9.9215918" + cy="27.291611" + fx="-9.9215918" + fy="27.291611" + r="3.3366601" + gradientTransform="matrix(1,0,0,0.69536427,0,8.3139998)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-59-3" + id="linearGradient11158-3-2" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-59-3" + inkscape:collect="always"> + <stop + id="stop11166-4-7" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-77-2" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-6-7" + id="linearGradient11160-1-4" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-6-7" + inkscape:collect="always"> + <stop + id="stop11172-4-3" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-9-5" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-29-6" + id="linearGradient20915-13-6" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + id="linearGradient22526-29-6"> + <stop + style="stop-color:#b82929;stop-opacity:1" + offset="0" + id="stop22528-09-9" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-78-3" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11044" + id="linearGradient20942-34-1" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,11.000002,63.764518)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-5-1" + id="radialGradient20931-0-4" + gradientUnits="userSpaceOnUse" + cx="13.029253" + cy="10.467628" + fx="13.107046" + fy="6.5363798" + r="10.561975" + gradientTransform="matrix(-0.03632494,-0.59797913,1.1456809,-0.06959571,0.67054669,17.125441)" /> + <linearGradient + id="linearGradient11461-5-1" + inkscape:collect="always"> + <stop + id="stop11463-3-3" + offset="0" + style="stop-color:#edd400;stop-opacity:1" /> + <stop + id="stop11465-9-2" + offset="1" + style="stop-color:#f35a5a;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-5-0" + id="linearGradient20933-1-4" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-5-0"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-8-0" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-77-8" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient10931" + xlink:href="#linearGradient11038" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11159" + id="linearGradient11165" + x1="-15.576912" + y1="39.055862" + x2="-15.104014" + y2="39.519901" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(32,30)" /> + <linearGradient + inkscape:collect="always" + id="linearGradient11159-7"> + <stop + style="stop-color:#bb2b2b;stop-opacity:1;" + offset="0" + id="stop11161-4" /> + <stop + style="stop-color:#bb2b2b;stop-opacity:0;" + offset="1" + id="stop11163-4" /> + </linearGradient> + <linearGradient + y2="39.519901" + x2="-15.104014" + y1="39.055862" + x1="-15.576912" + gradientUnits="userSpaceOnUse" + id="linearGradient11183" + xlink:href="#linearGradient11159-7" + inkscape:collect="always" + gradientTransform="matrix(-1,0,0,1,11.971152,30)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-0" + id="linearGradient11158-4" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-0" + inkscape:collect="always"> + <stop + id="stop11166-8" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-5" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-31" + id="linearGradient11160-9" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-31" + inkscape:collect="always"> + <stop + id="stop11172-7" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-7" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-0" + id="linearGradient20915-8" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-0"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-8" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-06" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-0" + id="linearGradient20942-40" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,115,11.764517)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-93" + id="radialGradient20931-09" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-93" + inkscape:collect="always"> + <stop + id="stop11463-4" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-1" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-3" + id="linearGradient20933-65" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-3"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-0" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-8" /> + </linearGradient> + <linearGradient + id="linearGradient11455-58" + inkscape:collect="always"> + <stop + id="stop11457-4" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-5" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient11256" + xlink:href="#linearGradient11455-58" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-9-2" + id="linearGradient11158-5-8" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-9-2" + inkscape:collect="always"> + <stop + id="stop11166-7-1" + offset="0" + style="stop-color:#204a87;stop-opacity:1" /> + <stop + id="stop11168-7-3" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-7-8" + id="linearGradient11160-7-9" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-7-8" + inkscape:collect="always"> + <stop + id="stop11172-1-00" + offset="0" + style="stop-color:#204a87;stop-opacity:1" /> + <stop + id="stop11174-1-38" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-9-43" + id="linearGradient20915-1-5" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-9-43"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-0-66" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-9-1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-9-43" + id="linearGradient20942-4-2" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,115,37.764517)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-6-1" + id="radialGradient20931-2-6" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-6-1" + inkscape:collect="always"> + <stop + id="stop11463-1-065" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-0-4" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-1-4" + id="linearGradient20933-6-2" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-1-4"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-5-1" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-9-6" /> + </linearGradient> + <linearGradient + id="linearGradient11455-2-4" + inkscape:collect="always"> + <stop + id="stop11457-7-1" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-2-9" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient11439" + xlink:href="#linearGradient11455-2-4" + inkscape:collect="always" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11573" + id="radialGradient11579" + cx="26.295534" + cy="45.654289" + fx="26.295534" + fy="45.654289" + r="0.88388348" + gradientTransform="matrix(1,0,0,0.90000003,0,4.5654277)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-6" + id="linearGradient11158-7" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-6" + inkscape:collect="always"> + <stop + id="stop11166-06" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-20" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-74" + id="linearGradient11160-3" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-74" + inkscape:collect="always"> + <stop + id="stop11172-96" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-6" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-3" + id="linearGradient20915-4" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-3"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-6" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-6" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-3" + id="linearGradient20942-42" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,115,63.764517)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-3" + id="radialGradient20931-9" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-3" + inkscape:collect="always"> + <stop + id="stop11463-0" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-5" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-9" + id="linearGradient20933-4" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-9"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-68" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-1" /> + </linearGradient> + <linearGradient + id="linearGradient11455-7" + inkscape:collect="always"> + <stop + id="stop11457-3" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-23" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient11633" + xlink:href="#linearGradient11455-7" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-598" + id="linearGradient11158-67" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-598" + inkscape:collect="always"> + <stop + id="stop11166-9" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-29" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-25" + id="linearGradient11160-6" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-25" + inkscape:collect="always"> + <stop + id="stop11172-78" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-8" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-4" + id="linearGradient20915-0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-4"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-86" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-93" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-4" + id="linearGradient20942-401" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,39.000002,89.788828)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-41" + id="radialGradient20931-69" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-41" + inkscape:collect="always"> + <stop + id="stop11463-80" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-07" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-2" + id="linearGradient20933-68" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-2"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-7" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-83" /> + </linearGradient> + <linearGradient + id="linearGradient11455-03" + inkscape:collect="always"> + <stop + id="stop11457-79" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-1" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient11775" + xlink:href="#linearGradient11455-03" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-598-8" + id="linearGradient11158-67-4" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-598-8" + inkscape:collect="always"> + <stop + id="stop11166-9-7" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-29-1" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-25-9" + id="linearGradient11160-6-1" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-25-9" + inkscape:collect="always"> + <stop + id="stop11172-78-0" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-8-7" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-4-3" + id="linearGradient20915-0-2" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-4-3"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-86-3" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-93-9" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-4-3" + id="linearGradient20942-401-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,0.8980646,82.999998,89.788828)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-41-8" + id="radialGradient20931-69-1" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-41-8" + inkscape:collect="always"> + <stop + id="stop11463-80-0" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-07-7" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-2-1" + id="linearGradient20933-68-4" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-2-1"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-7-0" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-83-5" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient11775-6" + xlink:href="#linearGradient11455-03-9" + inkscape:collect="always" /> + <linearGradient + id="linearGradient11455-03-9" + inkscape:collect="always"> + <stop + id="stop11457-79-9" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-1-2" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-8" + id="linearGradient11158-9" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-8" + inkscape:collect="always"> + <stop + id="stop11166-48" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-8" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-68" + id="linearGradient11160-38" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-68" + inkscape:collect="always"> + <stop + id="stop11172-44" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-3" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-14" + id="linearGradient20915-89" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-14"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-53" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-68" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-14" + id="linearGradient20942-35" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,89.000002,89.764517)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-58" + id="radialGradient20931-1" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-58" + inkscape:collect="always"> + <stop + id="stop11463-800" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-53" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-36" + id="linearGradient20933-06" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-36"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-4" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-10" /> + </linearGradient> + <linearGradient + id="linearGradient11455-9" + inkscape:collect="always"> + <stop + id="stop11457-88" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-3" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient12113" + xlink:href="#linearGradient11455-9" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-06" + id="linearGradient11158-40" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-06" + inkscape:collect="always"> + <stop + id="stop11166-97" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-44" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-0" + id="linearGradient11160-4" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-0" + inkscape:collect="always"> + <stop + id="stop11172-0" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-71" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-8" + id="linearGradient20915-01" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-8"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-1" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-5" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-8" + id="linearGradient20942-8" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,11.000002,89.764517)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-0" + id="radialGradient20931-73" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-0" + inkscape:collect="always"> + <stop + id="stop11463-61" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-4" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-48" + id="linearGradient20933-8" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-48"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-2" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-0" /> + </linearGradient> + <linearGradient + id="linearGradient11455-92" + inkscape:collect="always"> + <stop + id="stop11457-75" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-25" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient12346" + xlink:href="#linearGradient11455-92" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-2" + id="linearGradient11158-8" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-2" + inkscape:collect="always"> + <stop + id="stop11166-47" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-0" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-4" + id="linearGradient11160-89" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-4" + inkscape:collect="always"> + <stop + id="stop11172-6" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-09" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-6" + id="linearGradient20915-7" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-6"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-80" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-76" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-6" + id="linearGradient20942-31" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,115,89.764517)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-10" + id="radialGradient20931-06" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-10" + inkscape:collect="always"> + <stop + id="stop11463-38" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-05" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-7" + id="linearGradient20933-2" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-7"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-88" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-72" /> + </linearGradient> + <linearGradient + id="linearGradient11455-23" + inkscape:collect="always"> + <stop + id="stop11457-98" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-50" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient12545" + xlink:href="#linearGradient11455-23" + inkscape:collect="always" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-8-5" + id="radialGradient20931-7-7" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-8-5" + inkscape:collect="always"> + <stop + id="stop11463-8-7" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-6-1" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-4-1" + id="linearGradient20933-0-6" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-4-1"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-6-8" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-7-3" /> + </linearGradient> + <linearGradient + id="linearGradient11455-0-8" + inkscape:collect="always"> + <stop + id="stop11457-9-8" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-7-7" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient12705" + xlink:href="#linearGradient11455-0-8" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-3" + id="linearGradient11158-2" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-3" + inkscape:collect="always"> + <stop + id="stop11166-53" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-05" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-03" + id="linearGradient11160-71" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-03" + inkscape:collect="always"> + <stop + id="stop11172-15" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-16" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-84" + id="linearGradient20915-6" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-84"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-27" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-91" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-84" + id="linearGradient20942-9" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,37.000002,115.76452)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-7" + id="radialGradient20931-5" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-7" + inkscape:collect="always"> + <stop + id="stop11463-9" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-14" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-72" + id="linearGradient20933-680" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-72"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-34" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-85" /> + </linearGradient> + <linearGradient + id="linearGradient11455-57" + inkscape:collect="always"> + <stop + id="stop11457-40" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-0" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient12889" + xlink:href="#linearGradient11455-57" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-9-8-0" + id="linearGradient11158-5-4-1" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-9-8-0" + inkscape:collect="always"> + <stop + id="stop11166-7-5-2" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-7-8-6" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-7-6-3" + id="linearGradient11160-7-2-0" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-7-6-3" + inkscape:collect="always"> + <stop + id="stop11172-1-0-1" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-1-6-6" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-9-4-1" + id="linearGradient20915-1-6-3" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-9-4-1"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-0-6-3" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-9-2-9" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-9-4-1" + id="linearGradient20942-4-8-5" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,63.000002,115.76452)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-6-6-2" + id="radialGradient20931-2-9-1" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-6-6-2" + inkscape:collect="always"> + <stop + id="stop11463-1-0-1" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-0-7-1" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-1-1-1" + id="linearGradient20933-6-0-9" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-1-1-1"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-5-0-5" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-9-1-7" /> + </linearGradient> + <linearGradient + id="linearGradient11455-2-7-1" + inkscape:collect="always"> + <stop + id="stop11457-7-7-3" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-2-2-3" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient13071" + xlink:href="#linearGradient11455-2-7-1" + inkscape:collect="always" /> + <inkscape:perspective + id="perspective13167" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective13188" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective13188-8" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective13188-2" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective13188-7" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective13236" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-8-5-2" + id="radialGradient20931-7-7-8" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-8-5-2" + inkscape:collect="always"> + <stop + id="stop11463-8-7-5" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-6-1-4" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-4-1-8" + id="linearGradient20933-0-6-8" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-4-1-8"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-6-8-6" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-7-3-4" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient12705-7" + xlink:href="#linearGradient11455-0-8-4" + inkscape:collect="always" /> + <linearGradient + id="linearGradient11455-0-8-4" + inkscape:collect="always"> + <stop + id="stop11457-9-8-6" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-7-7-6" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient13257" + xlink:href="#linearGradient11455-0-8-4" + inkscape:collect="always" /> + <inkscape:perspective + id="perspective13309" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective13330" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective13354" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective13377" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective13398" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective13445" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective13466" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective13487" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11164-9-8-4" + id="linearGradient11158-5-4-6" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11164-9-8-4" + inkscape:collect="always"> + <stop + id="stop11166-7-5-5" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11168-7-8-9" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11170-7-6-2" + id="linearGradient11160-7-2-01" + gradientUnits="userSpaceOnUse" + x1="9.432662" + y1="9.6526775" + x2="10.732871" + y2="9.6526775" /> + <linearGradient + id="linearGradient11170-7-6-2" + inkscape:collect="always"> + <stop + id="stop11172-1-0-5" + offset="0" + style="stop-color:#000000;stop-opacity:1" /> + <stop + id="stop11174-1-6-3" + offset="1" + style="stop-color:#2e3436;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-9-4-6" + id="linearGradient20915-1-6-9" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(7.000002,1)" + x1="9.2937651" + y1="8.8493233" + x2="8.7171106" + y2="10" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22526-9-4-6"> + <stop + style="stop-color:#ff9022;stop-opacity:1" + offset="0" + id="stop22528-0-6-6" /> + <stop + style="stop-color:#fea523;stop-opacity:0;" + offset="1" + id="stop22530-9-2-0" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22526-9-4-6" + id="linearGradient20942-4-8-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.8980646,115,115.76452)" + x1="8.4266119" + y1="9.6068554" + x2="8.7451591" + y2="10.765122" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient11461-6-6-4" + id="radialGradient20931-2-9-6" + gradientUnits="userSpaceOnUse" + cx="11.806158" + cy="10.04414" + fx="11.88395" + fy="6.1128922" + r="10.561975" + gradientTransform="matrix(1.9034559,3.0329373e-8,-4.2282289e-8,2.6533656,-10.666343,-17.069444)" /> + <linearGradient + id="linearGradient11461-6-6-4" + inkscape:collect="always"> + <stop + id="stop11463-1-0-9" + offset="0" + style="stop-color:#fbfeac;stop-opacity:1" /> + <stop + id="stop11465-0-7-8" + offset="1" + style="stop-color:#eedb3c;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient22870-1-1-2" + id="linearGradient20933-6-0-1" + gradientUnits="userSpaceOnUse" + x1="-11.187567" + y1="-14.181667" + x2="31.90255" + y2="35.477989" /> + <linearGradient + inkscape:collect="always" + id="linearGradient22870-1-1-2"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop22872-5-0-7" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop22874-9-1-4" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient8123-3-6" + xlink:href="#linearGradient11455-2-7-2" + inkscape:collect="always" /> + <linearGradient + id="linearGradient11455-2-7-2" + inkscape:collect="always"> + <stop + id="stop11457-7-7-35" + offset="0" + style="stop-color:#673b09;stop-opacity:1" /> + <stop + id="stop11459-2-2-8" + offset="1" + style="stop-color:#ad8248;stop-opacity:0.96470588" /> + </linearGradient> + <linearGradient + y2="3.9464788" + x2="8.5458574" + y1="19.515574" + x1="14.365882" + gradientUnits="userSpaceOnUse" + id="linearGradient13532" + xlink:href="#linearGradient11455-2-7-2" + inkscape:collect="always" /> + <inkscape:perspective + id="perspective13626" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1" + inkscape:cx="278.99414" + inkscape:cy="-27.106773" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:snap-nodes="false" + inkscape:snap-bbox="true" + objecttolerance="10" + gridtolerance="10" + inkscape:window-width="1440" + inkscape:window-height="846" + inkscape:window-x="0" + inkscape:window-y="0" + showborder="true" + showguides="true" + inkscape:guide-bbox="true"> + <inkscape:grid + type="xygrid" + id="grid10376" + visible="true" + enabled="true" + empspacing="5" /> + </sodipodi:namedview> + <metadata + id="metadata10340"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <path + id="path17966-77-9-9" + d="m 55.5,104 c 0,0.828 -0.671999,1.5 -1.499999,1.5 C 53.172,105.5 52.5,104.828 52.5,104 c 0,-0.828 0.672,-1.5 1.500001,-1.5 0.828,0 1.499999,0.672 1.499999,1.5 z" + style="opacity:1;fill:#ecb944;fill-opacity:1;stroke:#93662f;stroke-width:1;stroke-miterlimit:4;stroke-opacity:0.97647059;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/hug-left.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,39.124886,13.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient20929);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/smile.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,40.306962,14.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964" + style="opacity:1;fill:url(#radialGradient20931);fill-opacity:1;stroke:url(#linearGradient20933);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/smile.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966" + d="m 48.5,20.745162 c 0,1.239328 -1.119998,2.245161 -2.499999,2.245161 C 44.62,22.990323 43.5,21.98449 43.5,20.745162 c 0,-1.239329 1.12,-2.245161 2.500001,-2.245161 1.380001,0 2.499999,1.005832 2.499999,2.245161 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/smile.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:nodetypes="cscsc" + id="path17974" + d="m 52,24 c -0.150637,1.840243 -2.076945,3 -4,3 -1.923054,0 -3.721944,-0.904918 -4,-3 0.842997,1.109108 2.323555,2.028463 4,2.028463 1.676445,1e-6 3.157002,-0.919355 4,-2.028463 z" + style="opacity:1;fill:#833a00;fill-opacity:1;stroke:none;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/smile.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,40.636195,6.7657779)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/smile.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,55.363805,6.7657854)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/smile.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276" + transform="matrix(0.9944816,0,0,0.9130993,34.092581,10.714345)" + inkscape:export-filename="/home/hbons/Desktop/smile.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,37.53846,16.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968" + style="opacity:1;fill:url(#linearGradient11160);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/smile.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,58.46154,16.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156" + style="opacity:1;fill:url(#linearGradient11158);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/smile.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,65.124886,13.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-7" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient8123);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/sad.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,66.306962,14.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-3" + style="opacity:1;fill:url(#radialGradient20931-2);fill-opacity:1;stroke:url(#linearGradient20933-6);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/sad.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-6" + d="m 74.5,20.745162 c 0,1.239328 -1.119998,2.245161 -2.499999,2.245161 C 70.62,22.990323 69.5,21.98449 69.5,20.745162 c 0,-1.239329 1.12,-2.245161 2.500001,-2.245161 1.380001,0 2.499999,1.005832 2.499999,2.245161 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-4);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/sad.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:nodetypes="cscsc" + id="path17974-5" + d="m 78,27 c -0.150637,-1.840243 -2.076945,-3 -4,-3 -1.923054,0 -3.721944,0.904918 -4,3 0.842997,-1.109108 2.323555,-2.028463 4,-2.028463 1.676445,-1e-6 3.157002,0.919355 4,2.028463 z" + style="opacity:1;fill:#833a00;fill-opacity:1;stroke:none;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/sad.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,66.636195,6.7657779)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-6" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/sad.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,81.363805,6.7657854)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-3" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/sad.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-9" + transform="matrix(0.9944816,0,0,0.9130993,60.092581,10.714345)" + inkscape:export-filename="/home/hbons/Desktop/sad.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-1);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-4" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,63.53846,16.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-8" + style="opacity:1;fill:url(#linearGradient11160-7);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/sad.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,84.46154,16.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-1" + style="opacity:1;fill:url(#linearGradient11158-5);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/sad.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,91.124886,13.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-4" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient8123-8);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/wink.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,92.306962,14.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-2" + style="opacity:1;fill:url(#radialGradient20931-29);fill-opacity:1;stroke:url(#linearGradient20933-7);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/wink.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:nodetypes="cscsc" + id="path17974-6" + d="m 104,24 c -0.15064,1.840243 -2.07694,3 -4,3 -1.92305,0 -3.721944,-0.904918 -4,-3 0.842997,1.109108 2.32356,2.028463 4,2.028463 1.67645,1e-6 3.157,-0.919355 4,-2.028463 z" + style="opacity:1;fill:#833a00;fill-opacity:1;stroke:none;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/wink.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,92.636195,6.7657779)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-1" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/wink.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-4" + transform="matrix(0.9944816,0,0,0.9130993,86.092581,10.714345)" + inkscape:export-filename="/home/hbons/Desktop/wink.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-14);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-2" /> + </a> + <path + transform="matrix(-0.9747196,0,0,0.5150957,110.46154,16.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-2" + style="opacity:1;fill:url(#linearGradient11158-58);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/wink.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,39.124886,39.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-9" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient8449);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/shock.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,40.306962,40.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-7" + style="opacity:1;fill:url(#radialGradient20931-7);fill-opacity:1;stroke:url(#linearGradient20933-0);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/shock.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-8" + d="m 48.5,46.245162 c 0,1.515328 -1.119998,2.745161 -2.499999,2.745161 C 44.62,48.990323 43.5,47.76049 43.5,46.245162 43.5,44.729832 44.62,43.5 46.000001,43.5 47.380002,43.5 48.5,44.729832 48.5,46.245162 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-3);stroke-width:0.99999994;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/shock.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,40.636195,31.765778)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-3" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/shock.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,55.363805,31.765785)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-8" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/shock.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-3" + transform="matrix(0.9944816,0,0,1.087952,34.092581,34.259293)" + inkscape:export-filename="/home/hbons/Desktop/shock.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-9);stroke-width:0.96138382;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-7" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,37.53846,42.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-9" + style="opacity:1;fill:url(#linearGradient11160-0);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/shock.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,58.46154,42.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-3" + style="opacity:1;fill:url(#linearGradient11158-6);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/shock.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,65.124886,39.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-7-7" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient8123-3);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/neutral.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,66.30696,40.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-3-8" + style="opacity:1;fill:url(#radialGradient20931-2-9);fill-opacity:1;stroke:url(#linearGradient20933-6-0);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/neutral.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-6-7" + d="m 74.5,46.745162 c 0,1.239328 -1.119998,2.245161 -2.499999,2.245161 C 70.62,48.990323 69.5,47.98449 69.5,46.745162 c 0,-1.239329 1.12,-2.245161 2.500001,-2.245161 1.380001,0 2.499999,1.005832 2.499999,2.245161 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-4-8);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/neutral.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,66.636195,32.765778)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-6-1" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/neutral.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,81.363805,32.765785)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-3-9" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/neutral.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-9-0" + transform="matrix(0.9944816,0,0,0.9130993,60.092581,36.714345)" + inkscape:export-filename="/home/hbons/Desktop/neutral.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-1-6);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-4-9" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,63.53846,42.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-8-8" + style="opacity:1;fill:url(#linearGradient11160-7-2);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/neutral.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,84.46154,42.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-1-8" + style="opacity:1;fill:url(#linearGradient11158-5-4);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/neutral.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,91.124886,39.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-4-5" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient8123-8-0);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/thinking.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,92.306962,40.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-2-8" + style="opacity:1;fill:url(#radialGradient20931-29-1);fill-opacity:1;stroke:url(#linearGradient20933-7-6);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/thinking.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-9-4" + d="m 100.5,46.745162 c 0,1.239328 -1.12,2.245161 -2.5,2.245161 -1.38,0 -2.5,-1.005833 -2.5,-2.245161 0,-1.239329 1.12,-2.245161 2.5,-2.245161 1.38,0 2.5,1.005832 2.5,2.245161 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-2-1);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/thinking.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,92.636195,32.765778)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-1-7" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/thinking.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,107.36381,32.765785)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-0-1" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/thinking.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-4-3" + transform="matrix(0.9944816,0,0,0.9130993,86.092581,36.714345)" + inkscape:export-filename="/home/hbons/Desktop/thinking.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-14-2);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-2-8" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,89.53846,41.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-2-0" + style="opacity:1;fill:url(#linearGradient11160-9-9);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/thinking.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,110.46154,41.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-2-9" + style="opacity:1;fill:url(#linearGradient11158-58-0);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/thinking.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,39.124886,65.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-47" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient8449-0);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/grin.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,40.306962,66.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-6" + style="opacity:1;fill:url(#radialGradient20931-3);fill-opacity:1;stroke:url(#linearGradient20933-3);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/grin.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.73136315,0,0,0.76234504,39.375547,65.020952)" + d="M 21.363468,13.840219 A 9.975256,9.975256 0 0 1 2.2211303,13.745807" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-6-1-4-4-1" + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + sodipodi:start="0.29049686" + sodipodi:end="2.8609599" + sodipodi:open="true" + inkscape:export-filename="/home/hbons/Desktop/grin.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-5" + d="m 48.509509,72.745162 c 0,1.239328 -1.119998,2.245161 -2.499999,2.245161 -1.380001,0 -2.500001,-1.005833 -2.500001,-2.245161 0,-1.239329 1.12,-2.245161 2.500001,-2.245161 1.380001,0 2.499999,1.005832 2.499999,2.245161 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-0);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/grin.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,40.645704,58.765778)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-13" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/grin.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,55.373315,58.765785)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-33" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/grin.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-8" + transform="matrix(0.9944816,0,0,0.9130993,34.10209,62.714345)" + inkscape:export-filename="/home/hbons/Desktop/grin.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-2);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-5" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,37.547969,68.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-1" + style="opacity:1;fill:url(#linearGradient11160-8);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/grin.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,58.47105,68.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-0" + style="opacity:1;fill:url(#linearGradient11158-1);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/grin.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,65.124886,65.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-7-8" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient8123-4);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/sick.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,66.306962,66.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-3-7" + style="opacity:1;fill:url(#radialGradient20931-2-1);fill-opacity:1;stroke:url(#linearGradient20933-6-8);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/sick.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:url(#radialGradient11579);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path11550-6" + sodipodi:cx="26.295534" + sodipodi:cy="45.654289" + sodipodi:rx="0.88388348" + sodipodi:ry="0.79549515" + d="m 27.179418,45.654289 a 0.88388348,0.79549515 0 1 1 -1.767767,0 0.88388348,0.79549515 0 1 1 1.767767,0 z" + transform="matrix(6.7882234,0,0,5.6568533,-104.49996,-181.75962)" + inkscape:export-filename="/home/hbons/Desktop/sick.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-6-6" + d="m 74.509509,72.203976 c 0,1.239328 -1.119998,2.245161 -2.499999,2.245161 -1.380001,0 -2.500001,-1.005833 -2.500001,-2.245161 0,-1.239329 1.12,-2.245161 2.500001,-2.245161 1.380001,0 2.499999,1.005832 2.499999,2.245161 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-4-9);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/sick.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,66.645704,58.224592)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-6-5" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/sick.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,81.373314,58.224599)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-3-0" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/sick.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-9-8" + transform="matrix(0.9944816,0,0,0.9130993,60.10209,62.173159)" + inkscape:export-filename="/home/hbons/Desktop/sick.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-1-7);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-4-0" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,63.53846,68.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-8-4" + style="opacity:1;fill:url(#linearGradient11160-7-6);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/sick.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,84.46154,68.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-1-1" + style="opacity:1;fill:url(#linearGradient11158-5-2);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/sick.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,91.124886,65.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-4-1" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient8123-8-08);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/cool.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,92.306962,66.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-2-3" + style="opacity:1;fill:url(#radialGradient20931-29-16);fill-opacity:1;stroke:url(#linearGradient20933-7-9);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/cool.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-9-5" + d="m 100.5,72.745162 c 0,1.239328 -1.12,2.245161 -2.5,2.245161 -1.38,0 -2.5,-1.005833 -2.5,-2.245161 0,-1.239329 1.12,-2.245161 2.5,-2.245161 1.38,0 2.5,1.005832 2.5,2.245161 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-2-5);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/cool.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:nodetypes="cscsc" + id="path17974-6-9" + d="m 104,76 c -0.15064,1.840243 -2.07694,3 -4,3 -1.92305,0 -3.721944,-0.904918 -4,-3 0.842997,1.109108 2.32356,2.028463 4,2.028463 1.67645,10e-7 3.157,-0.919355 4,-2.028463 z" + style="opacity:1;fill:#833a00;fill-opacity:1;stroke:none;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/cool.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,92.636195,58.765778)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-1-3" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/cool.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,107.36381,58.765785)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-0-4" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/cool.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-4-1" + transform="matrix(0.9944816,0,0,0.9130993,86.092581,62.714345)" + inkscape:export-filename="/home/hbons/Desktop/cool.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-14-7);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-2-5" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,89.53846,67.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-2-08" + style="opacity:1;fill:url(#linearGradient11160-9-1);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/cool.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,110.46154,67.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-2-3" + style="opacity:1;fill:url(#linearGradient11158-58-5);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/cool.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:#5f2a00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path8925" + sodipodi:cx="7.4688153" + sodipodi:cy="29.722292" + sodipodi:rx="2.1213202" + sodipodi:ry="1.7456698" + d="m 9.5901356,29.722292 a 2.1213202,1.7456698 0 1 1 -4.2426405,0 2.1213202,1.7456698 0 1 1 4.2426405,0 z" + transform="matrix(0.94280908,0,0,1.1456917,40.958333,16.947418)" + inkscape:export-filename="/home/hbons/Desktop/shock.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#833a00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect9718" + width="8" + height="1" + x="70" + y="51" + rx="0.5" + ry="0.5" + inkscape:export-filename="/home/hbons/Desktop/neutral.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4181978,-0.12636973,0.0771111,0.84690175,109.07558,15.22395)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-0" + style="opacity:1;fill:none;stroke:#994b00;stroke-width:0.91618675;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/wink.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#833a00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect9718-3-9" + width="6.1160598" + height="0.8830384" + x="77.178459" + y="71.674438" + rx="0.50967169" + ry="0.4415192" + transform="matrix(0.97520401,-0.22130778,0.30163993,0.95342192,0,0)" + inkscape:export-filename="/home/hbons/Desktop/thinking.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(2.9241586,0,0,1.5452868,68.615383,57.083845)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,-10e-8" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-2-08-3" + style="opacity:1;fill:#2e3436;fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + sodipodi:start="0" + sodipodi:end="3.1415927" + sodipodi:open="true" + inkscape:export-filename="/home/hbons/Desktop/cool.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(2.9241586,0,0,1.5452868,74.615383,57.083845)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,-10e-8" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-2-08-3-7" + style="opacity:1;fill:#2e3436;fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + sodipodi:start="0" + sodipodi:end="3.1415927" + sodipodi:open="true" + inkscape:export-filename="/home/hbons/Desktop/cool.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#2e3436;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect9883" + width="14" + height="1" + x="93" + y="72" + rx="0.5" + ry="0.5" + inkscape:export-filename="/home/hbons/Desktop/cool.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#babdb6;fill-opacity:1;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect9938-7" + width="3.9999986" + height="1" + x="-80" + y="46" + transform="matrix(0,-1,1,0,0,0)" + inkscape:export-filename="/home/hbons/Desktop/grin.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + style="opacity:1;color:#000000;fill:#c5c8c2;fill-opacity:1;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 42,76 0,3 1,0 0,-3 -1,0 z m 2,0 0,4.5625 1,0 L 45,76 44,76 z m 2,0 0,5 1,0 0,-5 -1,0 z m 2,0 0,5 1,0 0,-5 -1,0 z m 2,0 0,4.78125 1,0 L 51,76 50,76 z m 2,0 0,4 1,0 0,-4 -1,0 z m 2,0 0,2 1,0 0,-2 -1,0 z" + id="rect9938-7-4" + inkscape:export-filename="/home/hbons/Desktop/grin.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#ae8145;fill-opacity:1;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect9938" + width="16" + height="1" + x="40" + y="75" + rx="0.5" + ry="0.5" + inkscape:export-filename="/home/hbons/Desktop/grin.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,13.124886,13.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-6" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient10286);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/angel.png" + inkscape:export-xdpi="89.986053" + inkscape:export-ydpi="89.986053" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,14.306962,14.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-5" + style="opacity:1;fill:url(#radialGradient20931-6);fill-opacity:1;stroke:url(#linearGradient20933-33);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/angel.png" + inkscape:export-xdpi="89.986053" + inkscape:export-ydpi="89.986053" /> + <path + sodipodi:nodetypes="cscsc" + id="path17974-0" + d="m 25,26 c -0.112978,1.226829 -1.557708,2 -3,2 -1.442291,0 -2.791458,-0.603279 -3,-2 0.632249,0.739405 1.70952,1.04295 2.966854,1.04295 C 23.224188,27.04295 24.367751,26.739405 25,26 z" + style="opacity:1;fill:#833a00;fill-opacity:1;stroke:none;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/angel.png" + inkscape:export-xdpi="89.986053" + inkscape:export-ydpi="89.986053" /> + <path + style="opacity:1;fill:#fce94f;fill-opacity:1;stroke:#a58700;stroke-width:1.00248122;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + d="m 22,14.5 c -4.139315,0 -7.5,1.568521 -7.5,3.49938 0,1.930859 3.360685,3.499379 7.5,3.499379 4.139315,0 7.5,-1.56852 7.5,-3.499379 C 29.5,16.068521 26.139315,14.5 22,14.5 z m 0,2.33292 c 2.483315,0 4.5,0.523373 4.5,1.16646 0,0.643087 -2.016685,1.16646 -4.5,1.16646 -2.483315,0 -4.5,-0.523373 -4.5,-1.16646 0,-0.643087 2.016685,-1.16646 4.5,-1.16646 z" + id="path17960-6-1" + inkscape:export-filename="/home/hbons/Desktop/angel.png" + inkscape:export-xdpi="89.986053" + inkscape:export-ydpi="89.986053" /> + <path + sodipodi:open="true" + sodipodi:end="5.6516492" + sodipodi:start="3.3125144" + transform="matrix(-1.4017775,-0.3494645,0.2648497,-0.9196415,28.99388,34.233695)" + d="M 7.1161031,8.927074 A 1.2276785,1.7410715 0 0 1 9.3167783,8.1953112" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-4" + style="opacity:1;fill:none;stroke:#833a00;stroke-width:0.85073632;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/angel.png" + inkscape:export-xdpi="89.986053" + inkscape:export-ydpi="89.986053" /> + <path + sodipodi:open="true" + sodipodi:end="5.6215758" + sodipodi:start="3.3428073" + transform="matrix(-1.4017775,-0.3494645,0.2648497,-0.9196415,33.457373,34.233695)" + d="M 7.1229829,8.8752443 A 1.2276785,1.7410715 0 0 1 9.2945362,8.1535215" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-4-4" + style="opacity:1;fill:none;stroke:#833a00;stroke-width:0.85073632;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/angel.png" + inkscape:export-xdpi="89.986053" + inkscape:export-ydpi="89.986053" /> + <path + sodipodi:type="arc" + style="opacity:0.87214613;color:#000000;fill:url(#radialGradient10639);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path10538" + sodipodi:cx="-7.5625" + sodipodi:cy="3.78125" + sodipodi:rx="8.75" + sodipodi:ry="3.15625" + d="m 1.1875,3.78125 a 8.75,3.15625 0 1 1 -17.5,0 8.75,3.15625 0 1 1 17.5,0 z" + transform="matrix(0.91428572,0,0,1.2673267,28.914286,13.207921)" + inkscape:export-filename="/home/hbons/Desktop/angel.png" + inkscape:export-xdpi="89.986053" + inkscape:export-ydpi="89.986053" /> + <path + transform="matrix(0.751736,0,0,0.751736,13.124886,39.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-70" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient10712);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/shame.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,14.306962,40.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-1" + style="opacity:1;fill:url(#radialGradient20931-0);fill-opacity:1;stroke:url(#linearGradient20933-1);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/shame.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-7" + d="m 22.500001,46.745161 c 0,1.239329 -1.119998,2.245162 -2.499999,2.245162 -1.380001,0 -2.500001,-1.005833 -2.500001,-2.245162 0,-1.239328 1.12,-2.24516 2.500001,-2.24516 1.380001,0 2.499999,1.005832 2.499999,2.24516 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-34);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/shame.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:nodetypes="cscsc" + id="path17974-3" + d="m 25,51 c -0.112978,1.226829 -1.557708,2 -2.999999,2 C 20.557711,53 19.208542,52.396721 19,51 c 0.632248,0.739405 1.742667,1.352309 3.000001,1.352309 C 23.257334,52.352309 24.367752,51.739405 25,51 z" + style="opacity:1;fill:#833a00;fill-opacity:1;stroke:none;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/shame.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,14.636195,32.765778)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-69" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/shame.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,29.363805,32.765785)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-2" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/shame.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-90" + transform="matrix(0.9944816,0,0,0.9130993,8.092581,36.714345)" + inkscape:export-filename="/home/hbons/Desktop/shame.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-13);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-27" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,11.53846,42.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-5" + style="opacity:1;fill:url(#linearGradient11160-1);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/shame.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,32.46154,42.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-6" + style="opacity:1;fill:url(#linearGradient11158-3);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/shame.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:type="arc" + style="opacity:0.75;color:#000000;fill:url(#radialGradient10862);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path10799" + sodipodi:cx="-9.9215918" + sodipodi:cy="27.291611" + sodipodi:rx="3.3366601" + sodipodi:ry="2.3201942" + d="m -6.5849316,27.291611 a 3.3366601,2.3201942 0 1 1 -6.6733204,0 3.3366601,2.3201942 0 1 1 6.6733204,0 z" + transform="matrix(0.74925222,0,0,0.8619968,24.933775,25.474719)" + inkscape:export-filename="/home/hbons/Desktop/shame.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:type="arc" + style="opacity:0.75;color:#000000;fill:url(#radialGradient10864);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path10799-6" + sodipodi:cx="-9.9215918" + sodipodi:cy="27.291611" + sodipodi:rx="3.3366601" + sodipodi:ry="2.3201942" + d="m -6.5849316,27.291611 a 3.3366601,2.3201942 0 1 1 -6.6733204,0 3.3366601,2.3201942 0 1 1 6.6733204,0 z" + transform="matrix(0.7492522,0,0,0.8619968,33.933775,25.474719)" + inkscape:export-filename="/home/hbons/Desktop/shame.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,13.124886,65.743666)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-70-0" + style="opacity:1;fill:#ef2929;fill-opacity:1;stroke:url(#linearGradient10931);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/devil.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,14.306962,66.843327)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-1-9" + style="opacity:1;fill:url(#radialGradient20931-0-4);fill-opacity:1;stroke:url(#linearGradient20933-1-4);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/devil.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-7-3" + d="m 22.5,72.745162 c 0,1.239329 -1.119997,2.245162 -2.499998,2.245162 -1.380001,0 -2.500001,-1.005833 -2.500001,-2.245162 0,-1.239328 1.12,-2.24516 2.500001,-2.24516 1.380001,0 2.499998,1.005832 2.499998,2.24516 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-34-1);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/devil.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.2383151,0.74409768,0.46300772,-0.83756176,6.227894,70.307559)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-2-8" + style="opacity:1;fill:none;stroke:#b82929;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/devil.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-90-2" + transform="matrix(0.9944816,0,0,0.9130993,8.092581,62.714346)" + inkscape:export-filename="/home/hbons/Desktop/devil.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-13-6);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-27-7" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,11.53846,68.027948)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-5-0" + style="opacity:1;fill:url(#linearGradient11160-1-4);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/devil.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,32.461539,68.027948)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-6-9" + style="opacity:1;fill:url(#linearGradient11158-3-2);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/devil.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.2383151,0.74409768,-0.46300772,-0.83756176,37.772106,70.307559)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-2-8-1" + style="opacity:1;fill:none;stroke:#b82929;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/devil.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:nodetypes="cscsc" + id="path17974-6-9-9" + d="m 26,76 c -0.150637,1.840243 -2.076945,3 -4,3 -1.923054,0 -3.721944,-0.904918 -4,-3 0.842997,1.109108 2.323555,2.028463 4,2.028463 1.676445,10e-7 3.157002,-0.919355 4,-2.028463 z" + style="opacity:1;fill:#7e0000;fill-opacity:1;stroke:none;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/devil.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + style="opacity:1;color:#000000;fill:#f9b0b0;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient11165);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 14.492409,67.268766 16.971153,68.125 c 0.479778,0.277 0.652,0.895222 0.375,1.375 -0.277,0.479778 -1.004597,0.9645 -1.484375,0.6875 l -0.875,-0.5 c -0.479778,-0.277 -0.46875,-1.168983 -0.46875,-2.109375 0,0 -0.02562,-0.309359 -0.02562,-0.309359 z" + id="rect11113-2" + sodipodi:nodetypes="ccscccc" + inkscape:export-filename="/home/hbons/Desktop/devil.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + style="opacity:1;color:#000000;fill:#f9b0b0;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient11183);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 29.478743,67.268766 26.999999,68.125 c -0.479778,0.277 -0.652,0.895222 -0.375,1.375 0.277,0.479778 1.004597,0.9645 1.484375,0.6875 l 0.875,-0.5 c 0.479778,-0.277 0.46875,-1.168983 0.46875,-2.109375 0,0 0.02562,-0.309359 0.02562,-0.309359 z" + id="rect11113-2-9" + sodipodi:nodetypes="ccscccc" + inkscape:export-filename="/home/hbons/Desktop/devil.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,117.12489,13.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-1" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient11256);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/confused.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,118.30696,14.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-4" + style="opacity:1;fill:url(#radialGradient20931-09);fill-opacity:1;stroke:url(#linearGradient20933-65);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/confused.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-3" + d="m 126.5,20.745162 c 0,1.239328 -1.12,2.245161 -2.5,2.245161 -1.38,0 -2.5,-1.005833 -2.5,-2.245161 0,-1.239329 1.12,-2.245161 2.5,-2.245161 1.38,0 2.5,1.005832 2.5,2.245161 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-40);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/confused.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,118.6362,6.7657779)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-2" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/confused.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,133.36381,6.7657854)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-34" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/confused.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-1" + transform="matrix(0.9944816,0,0,0.9130993,112.09258,10.714345)" + inkscape:export-filename="/home/hbons/Desktop/confused.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-8);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-52" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,115.53846,16.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-7" + style="opacity:1;fill:url(#linearGradient11160-9);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/confused.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,136.46154,16.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-7" + style="opacity:1;fill:url(#linearGradient11158-4);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/confused.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:none;stroke:#a54800;stroke-width:1.01711059;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path11343-5" + sodipodi:cx="59.8125" + sodipodi:cy="11.265625" + sodipodi:rx="1.4375" + sodipodi:ry="1.421875" + d="m 61.214253,11.580742 a 1.4375,1.421875 0 0 1 -2.803506,0" + transform="matrix(1.0700883,0,0,-0.90332514,63.995344,35.961176)" + sodipodi:start="0.22347659" + sodipodi:end="2.9181161" + sodipodi:open="true" + inkscape:export-filename="/home/hbons/Desktop/confused.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:none;stroke:#a54800;stroke-width:1.01711059;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path11343-5-7" + sodipodi:cx="59.8125" + sodipodi:cy="11.265625" + sodipodi:rx="1.4375" + sodipodi:ry="1.421875" + d="m 61.214253,11.580742 a 1.4375,1.421875 0 0 1 -2.803506,0" + transform="matrix(1.0700883,0,0,0.90332514,60.995342,15.038824)" + sodipodi:start="0.22347659" + sodipodi:end="2.9181161" + sodipodi:open="true" + inkscape:export-filename="/home/hbons/Desktop/confused.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,117.12489,39.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-7-4" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient11439);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/crying.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,118.30696,40.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-3-4" + style="opacity:1;fill:url(#radialGradient20931-2-6);fill-opacity:1;stroke:url(#linearGradient20933-6-2);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/crying.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-6-8" + d="m 126.5,46.745162 c 0,1.239328 -1.12,2.245161 -2.5,2.245161 -1.38,0 -2.5,-1.005833 -2.5,-2.245161 0,-1.239329 1.12,-2.245161 2.5,-2.245161 1.38,0 2.5,1.005832 2.5,2.245161 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-4-2);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/crying.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:nodetypes="cscsc" + id="path17974-5-4" + d="m 130,53 c -0.15064,-1.840243 -2.07694,-3 -4,-3 -1.92305,0 -3.72194,0.904918 -4,3 0.843,-1.109108 2.32356,-2.028463 4,-2.028463 1.67645,-10e-7 3.157,0.919355 4,2.028463 z" + style="opacity:1;fill:#833a00;fill-opacity:1;stroke:none;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/crying.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017776,-0.3494647,0.2648498,-0.9196422,137.36381,53.234222)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-6-4" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/crying.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017775,-0.3494645,-0.2648497,-0.9196415,114.63619,53.234215)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-3-09" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/crying.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-9-3" + transform="matrix(0.9944816,0,0,0.9130993,112.09258,36.714345)" + inkscape:export-filename="/home/hbons/Desktop/crying.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-1-5);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-4-6" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,115.53846,42.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-8-3" + style="opacity:1;fill:url(#linearGradient11160-7-9);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/crying.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,136.46154,42.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-1-6" + style="opacity:1;fill:url(#linearGradient11158-5-8);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/crying.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + style="color:#000000;fill:#a5c2e1;fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:1;stroke-miterlimit:4;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 131.43044,47.929024 c 0.31039,0.456471 0.19182,1.078847 -0.26465,1.38923 -0.45647,0.310383 -1.14514,0.191818 -1.45552,-0.264654 -0.31038,-0.456471 -0.1854,-1.553273 -0.1854,-1.553273 0,0 1.59519,-0.02778 1.90557,0.428697 z" + id="path11526" + sodipodi:nodetypes="csssc" + inkscape:export-filename="/home/hbons/Desktop/crying.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + style="color:#000000;fill:#a5c2e1;fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:1;stroke-miterlimit:4;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 119.56956,49.937746 c -0.31039,0.456471 -0.19182,1.078847 0.26465,1.38923 0.45647,0.310383 1.14514,0.191818 1.45552,-0.264654 0.31038,-0.456471 0.1854,-1.553273 0.1854,-1.553273 0,0 -1.59519,-0.02778 -1.90557,0.428697 z" + id="path11526-3" + sodipodi:nodetypes="csssc" + inkscape:export-filename="/home/hbons/Desktop/crying.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:#2f5e03;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path11550" + sodipodi:cx="26.295534" + sodipodi:cy="45.654289" + sodipodi:rx="0.88388348" + sodipodi:ry="0.79549515" + d="m 27.179418,45.654289 a 0.88388348,0.79549515 0 1 1 -1.767767,0 0.88388348,0.79549515 0 1 1 1.767767,0 z" + transform="matrix(1.131371,0,0,0.62853934,44.249995,46.804483)" + inkscape:export-filename="/home/hbons/Desktop/sick.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,117.12489,65.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-0" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient11633);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/tongue.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,118.30696,66.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-56" + style="opacity:1;fill:url(#radialGradient20931-9);fill-opacity:1;stroke:url(#linearGradient20933-4);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/tongue.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-54" + d="m 126.5,72.745162 c 0,1.239328 -1.12,2.245161 -2.5,2.245161 -1.38,0 -2.5,-1.005833 -2.5,-2.245161 0,-1.239329 1.12,-2.245161 2.5,-2.245161 1.38,0 2.5,1.005832 2.5,2.245161 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-42);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/tongue.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + style="color:#000000;fill:#f68080;fill-opacity:1;fill-rule:nonzero;stroke:#cc0000;stroke-width:0.99999994;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 129.21077,78.344054 c -0.8269,0 -0.59927,-1.214428 -1.74474,-1.839429 0,0 1.32871,-0.703152 1.32871,-0.703152 2.02783,0.348014 2.06426,1.548539 0.41603,2.542581 z" + id="path11720" + sodipodi:nodetypes="cccc" + inkscape:export-filename="/home/hbons/Desktop/tongue.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:nodetypes="cscsc" + id="path17974-06" + d="m 129.97372,74 c -0.15063,1.840243 -2.07694,3 -4,3 -1.92305,0 -3.72194,-0.904918 -4,-3 0.843,1.109108 2.32356,2.028463 4,2.028463 1.67645,10e-7 3.15701,-0.919355 4,-2.028463 z" + style="opacity:1;fill:#833a00;fill-opacity:1;stroke:none;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/tongue.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,118.6362,58.765778)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-18" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/tongue.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,133.36381,58.765785)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-36" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/tongue.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-6" + transform="matrix(0.9944816,0,0,0.9130993,112.09258,62.714345)" + inkscape:export-filename="/home/hbons/Desktop/tongue.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-4);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-1" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,115.53846,68.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-0" + style="opacity:1;fill:url(#linearGradient11160-3);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/tongue.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,136.46154,68.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-8" + style="opacity:1;fill:url(#linearGradient11158-7);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/tongue.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,39.124886,91.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-98" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient11775);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/hug-left.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,40.306962,92.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-48" + style="opacity:1;fill:url(#radialGradient20931-69);fill-opacity:1;stroke:url(#linearGradient20933-68);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/hug-left.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-77" + d="m 50.5,98.769473 c 0,1.239327 -1.119998,2.245157 -2.499999,2.245157 C 46.62,101.01463 45.5,100.0088 45.5,98.769473 c 0,-1.239329 1.12,-2.245161 2.500001,-2.245161 1.380001,0 2.499999,1.005832 2.499999,2.245161 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-401);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/hug-left.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:nodetypes="cscsc" + id="path17974-2" + d="m 54,102 c -0.150637,1.84024 -2.076945,3 -4,3 -1.923054,0 -3.721944,-0.90492 -4,-3 0.842997,1.10911 2.323555,2.02846 4,2.02846 1.676445,0 3.157002,-0.91935 4,-2.02846 z" + style="opacity:1;fill:#833a00;fill-opacity:1;stroke:none;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/hug-left.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,42.636195,84.765778)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-0" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/hug-left.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,57.363805,84.765785)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-80" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/hug-left.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-15" + transform="matrix(0.9944816,0,0,0.9130993,36.092581,88.738656)" + inkscape:export-filename="/home/hbons/Desktop/hug-left.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-0);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-29" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,39.53846,94.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-52" + style="opacity:1;fill:url(#linearGradient11160-6);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/hug-left.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,61.46154,94.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-83" + style="opacity:1;fill:url(#linearGradient11158-67);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/hug-left.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-77-9" + d="m 45.5,104 c 0,0.828 -0.671999,1.5 -1.499999,1.5 C 43.172,105.5 42.5,104.828 42.5,104 c 0,-0.828 0.672,-1.5 1.500001,-1.5 0.828,0 1.499999,0.672 1.499999,1.5 z" + style="opacity:1;fill:#ecb944;fill-opacity:1;stroke:#93662f;stroke-width:1;stroke-miterlimit:4;stroke-opacity:0.97647059;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/hug-left.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-77-9-9-0" + d="m 66.5,104 c 0,0.828 0.671999,1.5 1.499999,1.5 C 68.828,105.5 69.5,104.828 69.5,104 c 0,-0.828 -0.672,-1.5 -1.500001,-1.5 -0.828,0 -1.499999,0.672 -1.499999,1.5 z" + style="opacity:1;fill:#ecb944;fill-opacity:1;stroke:#93662f;stroke-width:1;stroke-miterlimit:4;stroke-opacity:0.97647059;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/hug-right.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,65.124886,91.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-98-8" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient11775-6);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/hug-right.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.6516124,0,0,0.6516124,81.693038,92.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-48-0" + style="opacity:1;fill:url(#radialGradient20931-69-1);fill-opacity:1;stroke:url(#linearGradient20933-68-4);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/hug-right.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-77-90" + d="m 71.5,98.769473 c 0,1.239327 1.119998,2.245157 2.499999,2.245157 1.380001,0 2.500001,-1.00583 2.500001,-2.245157 0,-1.239329 -1.12,-2.245161 -2.500001,-2.245161 -1.380001,0 -2.499999,1.005832 -2.499999,2.245161 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-401-6);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/hug-right.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:nodetypes="cscsc" + id="path17974-2-6" + d="m 68,102 c 0.150637,1.84024 2.076945,3 4,3 1.923054,0 3.721944,-0.90492 4,-3 -0.842997,1.10911 -2.323555,2.02846 -4,2.02846 -1.676445,0 -3.157002,-0.91935 -4,-2.02846 z" + style="opacity:1;fill:#833a00;fill-opacity:1;stroke:none;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/hug-right.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017776,0.3494647,0.2648498,0.9196422,79.363805,84.765778)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-0-9" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/hug-right.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017775,0.3494645,-0.2648497,0.9196415,64.636195,84.765785)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-80-7" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/hug-right.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-15-7" + transform="matrix(-0.9944816,0,0,0.9130993,85.907419,88.738656)" + inkscape:export-filename="/home/hbons/Desktop/hug-right.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-0-2);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-29-2" /> + </a> + <path + transform="matrix(-0.9747196,0,0,0.5150957,82.46154,94.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-52-6" + style="opacity:1;fill:url(#linearGradient11160-6-1);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/hug-right.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.9747196,0,0,0.5150957,60.53846,94.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-83-7" + style="opacity:1;fill:url(#linearGradient11158-67-4);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/hug-right.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-77-9-2" + d="m 76.5,104 c 0,0.828 0.671999,1.5 1.499999,1.5 C 78.828,105.5 79.5,104.828 79.5,104 c 0,-0.828 -0.672,-1.5 -1.500001,-1.5 -0.828,0 -1.499999,0.672 -1.499999,1.5 z" + style="opacity:1;fill:#ecb944;fill-opacity:1;stroke:#93662f;stroke-width:1;stroke-miterlimit:4;stroke-opacity:0.97647059;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/hug-right.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,91.124886,91.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-74" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient12113);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/nerdy.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,92.306962,92.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-51" + style="opacity:1;fill:url(#radialGradient20931-1);fill-opacity:1;stroke:url(#linearGradient20933-06);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/nerdy.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-2" + d="m 100.5,98.745162 c 0,1.239328 -1.12,2.245158 -2.5,2.245158 -1.38,0 -2.5,-1.00583 -2.5,-2.245158 0,-1.239329 1.12,-2.245161 2.5,-2.245161 1.38,0 2.5,1.005832 2.5,2.245161 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-35);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/nerdy.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:nodetypes="cscsc" + id="path17974-8" + d="m 104,103 c -0.15064,1.84024 -2.07694,3 -4,3 -1.92305,0 -3.721944,-0.90492 -4,-3 0.842997,1.10911 2.32356,2.02846 4,2.02846 1.67645,0 3.157,-0.91935 4,-2.02846 z" + style="opacity:1;fill:#833a00;fill-opacity:1;stroke:none;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/nerdy.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,92.636195,83.765778)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-7" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/nerdy.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,107.36381,83.765785)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-22" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/nerdy.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-5" + transform="matrix(0.9944816,0,0,0.9130993,86.092581,88.714345)" + inkscape:export-filename="/home/hbons/Desktop/nerdy.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-89);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-59" /> + </a> + <a + style="opacity:1;fill:none;stroke:#3465a4;stroke-width:0.68207937;display:inline;enable-background:new" + id="a22276-5-9" + transform="matrix(1.3975009,0,0,1.396667,79.637654,83.639189)" + inkscape:export-filename="/home/hbons/Desktop/nerdy.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:none;stroke:#3465a4;stroke-width:1.00000012;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 42,57.5 c -1.928551,0 -3.5,1.5726 -3.5,3.5 0,1.9274 1.571449,3.5 3.5,3.5 0.739207,0 1.435236,-0.233007 2,-0.625 0.564764,0.391993 1.260793,0.625 2,0.625 1.928553,0 3.5,-1.5726 3.5,-3.5 0,-1.9274 -1.571447,-3.5 -3.5,-3.5 -0.739207,0 -1.435236,0.233007 -2,0.625 C 43.435236,57.733007 42.739207,57.5 42,57.5 z" + transform="matrix(0.71556305,0,0,0.71599028,-16.914232,-32.677216)" + id="path22835-59-4" /> + </a> + <a + style="opacity:1;fill:none;stroke:#3465a4;stroke-width:0.68207932;display:inline;enable-background:new" + id="a22276-5-9-9" + transform="matrix(1.3975009,0,0,1.396667,19.642316,45.639189)" /> + <path + transform="matrix(0.9747196,0,0,0.5150957,89.53846,94.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-54" + style="opacity:1;fill:url(#linearGradient11160-38);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/nerdy.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,110.46154,94.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-17" + style="opacity:1;fill:url(#linearGradient11158-9);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/nerdy.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#3465a4;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect12264" + width="3" + height="1" + x="105" + y="98" + rx="0.5" + ry="0.5" + inkscape:export-filename="/home/hbons/Desktop/nerdy.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#3465a4;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect12264-5" + width="3" + height="1" + x="92" + y="98" + rx="0.5" + ry="0.5" + inkscape:export-filename="/home/hbons/Desktop/nerdy.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;opacity:1;color:#000000;fill:#ae8145;fill-opacity:1;stroke:none;stroke-width:1.33011186;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" + d="m 55.241425,74.975094 a 0.50007923,0.50002075 0 0 0 -0.37593,0.399379 c -0.762279,3.793182 -4.453343,6.259526 -8.246969,5.497336 -2.824179,-0.567414 -4.877216,-2.609158 -5.474484,-5.426857 a 0.50007923,0.50002075 0 1 0 -0.963321,0.211436 c 0.674516,3.182126 3.060396,5.537829 6.24984,6.17863 4.324116,0.868772 8.552876,-1.925498 9.42175,-6.249109 a 0.50007923,0.50002075 0 0 0 -0.610886,-0.610815 z" + id="path17964-6-1-4-4" + inkscape:export-filename="/home/hbons/Desktop/grin.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,13.124886,91.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-8" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient12346);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/silent.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,14.306962,92.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-13" + style="opacity:1;fill:url(#radialGradient20931-73);fill-opacity:1;stroke:url(#linearGradient20933-8);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/silent.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-80" + d="m 22.5,98.745162 c 0,1.239328 -1.119998,2.245158 -2.499999,2.245158 C 18.62,100.99032 17.5,99.98449 17.5,98.745162 c 0,-1.239329 1.12,-2.245161 2.500001,-2.245161 1.380001,0 2.499999,1.005832 2.499999,2.245161 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-8);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/silent.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,14.636195,84.765778)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-11" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/silent.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,29.363805,84.765785)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-42" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/silent.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-92" + transform="matrix(0.9944816,0,0,0.9130993,8.092581,88.714345)" + inkscape:export-filename="/home/hbons/Desktop/silent.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-01);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-0" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,11.53846,94.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-2" + style="opacity:1;fill:url(#linearGradient11160-4);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/silent.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,32.46154,94.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-5" + style="opacity:1;fill:url(#linearGradient11158-40);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/silent.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.96470588;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect12433" + width="9" + height="3" + x="17.5" + y="101.5" + rx="1.5" + ry="1.5" + inkscape:export-filename="/home/hbons/Desktop/silent.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect12435" + width="2" + height="1" + x="18" + y="102" + inkscape:export-filename="/home/hbons/Desktop/silent.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect12435-3" + width="2" + height="1" + x="20" + y="103" + inkscape:export-filename="/home/hbons/Desktop/silent.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect12435-5" + width="2" + height="1" + x="24" + y="103" + inkscape:export-filename="/home/hbons/Desktop/silent.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + style="color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:nonzero;stroke:#6c6f69;stroke-width:1;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 19.5,105.5 c 0,1.104 -0.896,2 -2,2 -1.104,0 -2,-0.896 -2,-2 0,-1.104 0.896,-3.03856 2,-3.03856 1.104,0 2,1.93456 2,3.03856 z" + id="path12467" + sodipodi:nodetypes="csssc" + inkscape:export-filename="/home/hbons/Desktop/silent.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect12435-5-3" + width="2" + height="1" + x="22" + y="102" + inkscape:export-filename="/home/hbons/Desktop/silent.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:#2e3436;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path12491" + sodipodi:cx="-14.009553" + sodipodi:cy="66.712814" + sodipodi:rx="0.79549515" + sodipodi:ry="0.53033006" + d="m -13.214058,66.712814 a 0.79549515,0.53033006 0 1 1 -1.59099,0 0.79549515,0.53033006 0 1 1 1.59099,0 z" + transform="matrix(0.62853907,0,0,0.9428114,26.305551,42.602397)" + inkscape:export-filename="/home/hbons/Desktop/silent.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,117.12489,91.743665)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-3" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient12545);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/dont-know.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,118.30696,92.843326)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-9" + style="opacity:1;fill:url(#radialGradient20931-06);fill-opacity:1;stroke:url(#linearGradient20933-2);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/dont-know.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-0" + d="m 126.5,98.745162 c 0,1.239328 -1.12,2.245158 -2.5,2.245158 -1.38,0 -2.5,-1.00583 -2.5,-2.245158 0,-1.239329 1.12,-2.245161 2.5,-2.245161 1.38,0 2.5,1.005832 2.5,2.245161 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-31);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/dont-know.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,118.6362,84.765778)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-31" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/dont-know.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,133.36381,84.765785)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-9" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/dont-know.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-2" + transform="matrix(0.9944816,0,0,0.9130993,112.09258,88.714345)" + inkscape:export-filename="/home/hbons/Desktop/dont-know.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-7);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-595" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,114.53846,94.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-3" + style="opacity:1;fill:url(#linearGradient11160-89);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/dont-know.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,137.46154,94.027947)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-00" + style="opacity:1;fill:url(#linearGradient11158-8);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/dont-know.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.0853488" + sodipodi:start="3.8153023" + transform="matrix(1.1357476,0.9448051,-0.7531863,0.62514938,123.26224,90.45873)" + d="M 7.3664462,8.1369781 A 1.2276785,1.7410715 0 0 1 8.7732258,7.6018362" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-31-9" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.83870131;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/dont-know.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,13.124886,117.74366)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-9-8" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient12705);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/yawn.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,14.306962,118.84333)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-7-5" + style="opacity:1;fill:url(#radialGradient20931-7-7);fill-opacity:1;stroke:url(#linearGradient20933-0-6);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/yawn.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:#5f2a00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path8925-1" + sodipodi:cx="7.4688153" + sodipodi:cy="29.722292" + sodipodi:rx="2.1213202" + sodipodi:ry="1.7456698" + d="m 9.5901356,29.722292 a 2.1213202,1.7456698 0 1 1 -4.2426405,0 2.1213202,1.7456698 0 1 1 4.2426405,0 z" + transform="matrix(1.4142137,0,0,2.0049611,11.437499,67.907961)" + inkscape:export-filename="/home/hbons/Desktop/yawn.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.7779054" + sodipodi:start="3.1105795" + transform="matrix(-1.263565,0.7003635,0.4938459,0.81975733,25.888293,109.7744)" + d="M 7.0988043,9.2772016 A 1.2276785,1.7410715 0 0 1 9.4001591,8.3804443" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-4-5" + style="opacity:1;fill:none;stroke:#aa4b00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/yawn.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.7779054" + sodipodi:start="3.1105795" + transform="matrix(-1.4444612,-0.02524993,0.01780443,0.95685362,35.928956,114.55141)" + d="M 7.0988043,9.2772016 A 1.2276785,1.7410715 0 0 1 9.4001591,8.3804443" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-4-4-5" + style="opacity:1;fill:none;stroke:#aa4b00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/yawn.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,39.124886,117.74366)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-36" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient12889);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/angry.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,40.306962,118.84333)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-61" + style="opacity:1;fill:url(#radialGradient20931-5);fill-opacity:1;stroke:url(#linearGradient20933-680);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/angry.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-20" + d="m 48.5,124.74516 c 0,1.23933 -1.119998,2.24516 -2.499999,2.24516 C 44.62,126.99032 43.5,125.98449 43.5,124.74516 43.5,123.50583 44.62,122.5 46.000001,122.5 47.380002,122.5 48.5,123.50583 48.5,124.74516 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-9);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/angry.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.2383151,0.74409766,0.46300772,-0.83756176,31.640299,122.30756)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-1" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/angry.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-10" + transform="matrix(0.9944816,0,0,0.9130993,34.092581,114.71434)" + inkscape:export-filename="/home/hbons/Desktop/angry.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-6);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-57" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,37.53846,120.02795)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-05" + style="opacity:1;fill:url(#linearGradient11160-71);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/angry.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,58.46154,120.02795)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-65" + style="opacity:1;fill:url(#linearGradient11158-2);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/angry.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.2383151,0.74409766,-0.46300772,-0.83756176,64.359701,122.30756)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-1-9" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/angry.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#fb7c00;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect12433-9" + width="7" + height="2" + x="44.5" + y="128.5" + rx="1" + ry="1" + inkscape:export-filename="/home/hbons/Desktop/angry.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,65.124886,117.74366)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-7-7-5" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient13071);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/cross.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,66.30696,118.84333)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-3-8-4" + style="opacity:1;fill:url(#radialGradient20931-2-9-1);fill-opacity:1;stroke:url(#linearGradient20933-6-0-9);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/cross.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-6-7-7" + d="m 74.5,124.74516 c 0,1.23933 -1.119998,2.24516 -2.499999,2.24516 C 70.62,126.99032 69.5,125.98449 69.5,124.74516 69.5,123.50583 70.62,122.5 72.000001,122.5 73.380002,122.5 74.5,123.50583 74.5,124.74516 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-4-8-5);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/cross.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(1.4017776,0.3494647,-0.2648498,0.9196422,66.636195,110.76578)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17976-6-1-3" + style="opacity:1;fill:none;stroke:#c05e00;stroke-width:0.85073596;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/cross.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,81.363805,110.76578)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-3-9-3" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/cross.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-9-0-0" + transform="matrix(0.9944816,0,0,0.9130993,60.092581,114.71434)" + inkscape:export-filename="/home/hbons/Desktop/cross.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-1-6-3);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.12,-2.5 2.5,-2.5 1.380001,0 2.5,1.12 2.5,2.5 z" + id="path22835-4-9-5" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,63.53846,120.02795)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-8-8-8" + style="opacity:1;fill:url(#linearGradient11160-7-2-0);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/cross.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,84.46154,120.02795)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-1-8-7" + style="opacity:1;fill:url(#linearGradient11158-5-4-1);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/cross.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#833a00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect9718-5" + width="2" + height="1" + x="73" + y="129" + rx="0" + ry="0" + inkscape:export-filename="/home/hbons/Desktop/cross.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#833a00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect9718-5-7" + width="1" + height="1" + x="75" + y="128" + rx="0" + ry="0" + inkscape:export-filename="/home/hbons/Desktop/cross.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#833a00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect9718-5-7-8" + width="1" + height="1" + x="75" + y="130" + rx="0" + ry="0" + inkscape:export-filename="/home/hbons/Desktop/cross.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#833a00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect9718-5-7-2" + width="1" + height="1" + x="72" + y="128" + rx="0" + ry="0" + inkscape:export-filename="/home/hbons/Desktop/cross.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#833a00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect9718-5-7-9" + width="1" + height="1" + x="72" + y="130" + rx="0" + ry="0" + inkscape:export-filename="/home/hbons/Desktop/cross.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,91.124886,117.74366)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-9-8-5" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient13257);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/kiss.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,92.306962,118.84333)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-7-5-8" + style="opacity:1;fill:url(#radialGradient20931-7-7-8);fill-opacity:1;stroke:url(#linearGradient20933-0-6-8);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/kiss.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + style="opacity:1;color:#000000;fill:#ef2929;fill-opacity:1;fill-rule:nonzero;stroke:#7c0000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 98.16375,124.4838 c -2.643477,0 -3.046802,2.23703 -2.381807,3.44372 0,0 0.904583,0.007 0.904583,0.007 -0.883985,1.58384 0.375854,3.56568 3.274274,3.56568 4.28732,0 4.46984,-2.06141 3.2311,-3.57352 0.31129,0 1.07881,-0.0168 1.07881,-0.0168 0.56979,-1.61273 0.20793,-3.42601 -2.58498,-3.42601 -1.01923,0 -1.17033,0.93227 -1.67582,0.93227 -0.51324,0 -0.51029,-0.93227 -1.58292,-0.93227 l 0,3e-5 0,5e-5 -0.26324,1e-5 z" + id="path8925-1-2" + sodipodi:nodetypes="cccscccccccc" + inkscape:export-filename="/home/hbons/Desktop/kiss.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.7779054" + sodipodi:start="3.1105795" + transform="matrix(-1.4017775,0.34946451,0.2648497,0.9196415,107.01219,111.74998)" + d="M 7.0988043,9.2772016 A 1.2276785,1.7410715 0 0 1 9.4001591,8.3804443" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-4-5-5" + style="opacity:1;fill:none;stroke:#aa4b00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/kiss.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.7779054" + sodipodi:start="3.1105795" + transform="matrix(-1.4017775,0.34946451,0.2648497,0.9196415,111.47568,111.74998)" + d="M 7.0988043,9.2772016 A 1.2276785,1.7410715 0 0 1 9.4001591,8.3804443" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-4-4-5-1" + style="opacity:1;fill:none;stroke:#aa4b00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/kiss.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:type="arc" + style="opacity:0.40639271;color:#000000;fill:#ef2929;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.9513405;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path13345" + sodipodi:cx="41.708252" + sodipodi:cy="80.203087" + sodipodi:rx="1.5136504" + sodipodi:ry="0.89493203" + d="m 40.330716,80.573985 a 1.5136504,0.89493203 0 0 1 1.918471,-1.206731" + transform="matrix(0.99098178,0,0,1.1149682,56.667882,37.061957)" + sodipodi:start="2.7142621" + sodipodi:end="5.0778406" + sodipodi:open="true" + inkscape:export-filename="/home/hbons/Desktop/kiss.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:none;stroke:#7c0000;stroke-width:0.75406045;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path13368" + sodipodi:cx="44.234375" + sodipodi:cy="82.375" + sodipodi:rx="2.265625" + sodipodi:ry="1.5" + d="m 42.629825,81.316005 a 2.265625,1.5 0 0 1 3.383603,0.130203" + transform="matrix(1.0041802,0,0,1.7513635,53.652653,-14.158208)" + sodipodi:start="3.9254219" + sodipodi:end="5.6154683" + sodipodi:open="true" + inkscape:export-filename="/home/hbons/Desktop/kiss.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:type="arc" + style="opacity:0.40639271;color:#000000;fill:#ef2929;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.9569419;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path13345-6" + sodipodi:cx="41.708252" + sodipodi:cy="80.203087" + sodipodi:rx="1.5136504" + sodipodi:ry="0.89493203" + d="m 41.041992,79.399513 a 1.5136504,0.89493203 0 0 1 2.170316,0.904177" + transform="matrix(-0.97731815,0,0,1.1173596,142.74189,36.86802)" + sodipodi:start="4.2566034" + sodipodi:end="6.3958376" + sodipodi:open="true" + inkscape:export-filename="/home/hbons/Desktop/kiss.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:type="arc" + style="opacity:0.40639271;color:#000000;fill:#ef2929;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.68089461;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path13345-7" + sodipodi:cx="41.708252" + sodipodi:cy="80.203087" + sodipodi:rx="1.5136504" + sodipodi:ry="0.89493203" + d="m 40.216681,80.050788 a 1.5136504,0.89493203 0 0 1 2.496725,-0.516824" + transform="matrix(1.6020994,0,0,-1.3463277,33.068879,237.25826)" + sodipodi:start="3.3126047" + sodipodi:end="5.4386241" + sodipodi:open="true" + inkscape:export-filename="/home/hbons/Desktop/kiss.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:none;stroke:#7c0000;stroke-width:0.75837636;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path13368-5" + sodipodi:cx="44.234375" + sodipodi:cy="82.375" + sodipodi:rx="2.265625" + sodipodi:ry="1.5" + d="m 42.629825,81.316005 a 2.265625,1.5 0 0 1 3.383603,0.130203" + transform="matrix(-0.99278313,0,0,1.7513635,145.78285,-14.158213)" + sodipodi:start="3.9254219" + sodipodi:end="5.6154683" + sodipodi:open="true" + inkscape:export-filename="/home/hbons/Desktop/kiss.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.751736,0,0,0.751736,117.12489,117.74366)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17960-7-7-7" + style="opacity:1;fill:#e37d0a;fill-opacity:1;stroke:url(#linearGradient13532);stroke-width:1.33355498;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/uhm-yeah.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(0.6516124,0,0,0.6516124,118.30696,118.84333)" + d="m 21.781414,10.983024 a 9.975256,9.975256 0 1 1 -19.9505119,0 9.975256,9.975256 0 1 1 19.9505119,0 z" + sodipodi:ry="9.975256" + sodipodi:rx="9.975256" + sodipodi:cy="10.983024" + sodipodi:cx="11.806158" + id="path17964-3-8-2" + style="opacity:1;fill:url(#radialGradient20931-2-9-6);fill-opacity:1;stroke:url(#linearGradient20933-6-0-1);stroke-width:1.53465486;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/uhm-yeah.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + id="path17966-6-7-8" + d="m 126.5,124.74516 c 0,1.23933 -1.12,2.24516 -2.5,2.24516 -1.38,0 -2.5,-1.00583 -2.5,-2.24516 0,-1.23933 1.12,-2.24516 2.5,-2.24516 1.38,0 2.5,1.00583 2.5,2.24516 z" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20942-4-8-4);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + inkscape:export-filename="/home/hbons/Desktop/uhm-yeah.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + sodipodi:open="true" + sodipodi:end="5.6135639" + sodipodi:start="3.5782199" + transform="matrix(-1.4017775,0.3494645,0.2648497,0.9196415,133.36381,110.76578)" + d="M 7.2133909,8.4869402 A 1.2276785,1.7410715 0 0 1 9.288462,8.1425499" + sodipodi:ry="1.7410715" + sodipodi:rx="1.2276785" + sodipodi:cy="9.2232141" + sodipodi:cx="8.3258924" + id="path17978-3-9-6" + style="opacity:1;fill:none;stroke:#b65a00;stroke-width:0.85073632;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/uhm-yeah.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <a + style="opacity:1;display:inline;enable-background:new" + id="a22276-9-0-4" + transform="matrix(0.9944816,0,0,0.9130993,112.09258,114.71434)" + inkscape:export-filename="/home/hbons/Desktop/uhm-yeah.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:url(#linearGradient20915-1-6-9);stroke-width:1.04940391;stroke-miterlimit:4;stroke-opacity:1;display:inline;enable-background:new" + d="m 18.5,11 c 0,1.38 -1.119999,2.5 -2.5,2.5 -1.38,0 -2.5,-1.12 -2.5,-2.5 0,-1.38 1.319977,-1.3867958 2.699977,-1.3867958 C 17.579978,9.6132042 18.5,9.62 18.5,11 z" + id="path22835-4-9-8" + sodipodi:nodetypes="csssc" /> + </a> + <path + transform="matrix(0.9747196,0,0,0.5150957,115.53846,120.02795)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path17968-8-8-7" + style="opacity:1;fill:url(#linearGradient11160-7-2-01);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/uhm-yeah.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + transform="matrix(-0.9747196,0,0,0.5150957,136.46154,120.02795)" + d="m 10.732871,9.6526775 a 1.0259361,1.9413869 0 1 1 -2.0518722,0 1.0259361,1.9413869 0 1 1 2.0518722,0 z" + sodipodi:ry="1.9413869" + sodipodi:rx="1.0259361" + sodipodi:cy="9.6526775" + sodipodi:cx="9.7069349" + id="path11156-1-8-9" + style="opacity:1;fill:url(#linearGradient11158-5-4-6);fill-opacity:1;stroke:none;display:inline;enable-background:new" + sodipodi:type="arc" + inkscape:export-filename="/home/hbons/Desktop/uhm-yeah.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#833a00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect9718-4" + width="6" + height="1" + x="123" + y="129" + rx="0.5" + ry="0.5" + inkscape:export-filename="/home/hbons/Desktop/uhm-yeah.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <rect + style="opacity:1;color:#000000;fill:#b65a00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect9718-4-5" + width="3" + height="1" + x="127" + y="121" + rx="0.5" + ry="0.5" + inkscape:export-filename="/home/hbons/Desktop/uhm-yeah.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + </g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/emotes/small/16/small.theme.in Mon Nov 17 06:15:33 2008 +0000 @@ -0,0 +1,156 @@ +_Name=Small +_Description=Smaller versions of the default smilies +Icon=wink.png +Author=Hylke Bons + + +# Default smileys +[default] +smile.png :) :-) +smile-big.png :-D :-d :D :d +sad.png :-( :( +wink.png ;-) ;) +tongue.png :P :-P :-p :p +shock.png =-O =-o +kiss.png :-* +crying.png :'( +thinking.png :-/ :-\\ +angel.png O:-) o:-) + + +# Following AIM 6.1 +[AIM] +smile.png :-) :) +wink.png ;-) ;) +sad.png :-( :( +tongue.png :-P :P :-p :p +shock.png =-O +kiss.png :-* +smile-big.png :-D :D +angel.png O:-) +thinking.png :-\\ :-/ +crying.png :'( + + +# Following Windows Live Messenger 8.1 +[MSN] +smile.png :) :-) +smile-big.png :D :d :-D :-d +wink.png ;) ;-) +shock.png :-O :-o :O :o +tongue.png :P :p :-P :-p +angry.png :@ :-@ +confused.png :S :s :-S :-s +sad.png :( :-( +crying.png :'( +neutral.png :| :-| +devil.png (6) +angel.png (A) (a) +love.png (L) (l) +musical-note.png (8) +kiss.png (K) (k) +camera.png (P) (p) +coffee.png (C) (c) +phone.png (T) (t) +hug-left.png ({) +hug-right.png (}) +beer.png (B) (b) +sick.png +o( +plate.png (pl) +dont-know.png :^) +thinking.png *-) +party.png <:o) +yawn.png |-) + +# Hidden MSN emotes +cigarette.png (ci) (CI) +console.png (xx) (XX) + + +# Following QQ 2006 +[QQ] +shock.png /:O /jy /surprised +party.png /8-) /dy /revel +crying.png /:< /ll /cry +sleepy.png /:Z /shui /sleep +smile-big.png /:D /cy /toothy_smile +smile.png /:) /wx /small_smile +sad.png /:( /ng /sad +sick.png /:T /tu /vomit +yawn.png /|-) /kun /sleepy +question.png /? /yiw /question +search.png /find /zhao /search +hug-left.png /hug /yb /hug +musical-note.png /music /yy /music +coffee.png /coffee /kf /coffee +kiss.png /kiss /wen /kiss +love.png /heart /xin /heart +meeting.png /meeting /hy /meeting +phone.png /phone /dh /phone +tv.png /TV /ds /TV +angry.png /<O> /oh /angry + + +# Following ICQ 6.0 +[ICQ] +smile.png :-) :) +neutral.png :-$ +sad.png :-( :( +shock.png =-O +wink.png ;-) ;) +tongue.png :-P :P :-p :p +sleepy.png *TIRED* +crying.png :'( :'-( +sick.png :-! +kiss.png :-{} :-* +devil.png ]:-> +angel.png O:-) +thinking.png :-\\ :-/ +beer.png *DRINK* +smile-big.png :-D :D + + +# Following Yahoo! Messenger 8.1 +[Yahoo] +smile.png :) :-) +question.png :-/ :-\\ +shock.png :-O :O :-o :o +devil.png >:) +angel.png O:-) o:-) 0:-) +sick.png :-& +yawn.png (:| +sad.png :( :-( +angry.png X-( x-( X( x( +crying.png :(( +wink.png ;) ;-) +thinking.png :-? +smile-big.png :D :-D :d :-d +tongue.png :-P :P :-p :p +neutral.png :| :-| +sleepy.png I-) i-) |-) +kiss.png :-* :* +confused.png :-S :-s +hug-left.png >:D< >:d< +party.png <:-P <:-p + +# Hidden Yahoo emotes +coffee.png ~o) ~O) +dont-know.png :-L :-l +shame.png [-X [-x +musical-note.png :-" + +# Only available after activating the Yahoo! Fighter IMVironment + + +# Following MySpaceIM Beta 1.0.697.0 +[MySpaceIM] +smile-big.png :D :-D +devil.png }:) +confused.png :Z +smile.png :) :-) +shock.png :O +neutral.png :| +tongue.png :P :p +wink.png ;-) ;) +sad.png :[ +kiss.png :x
--- a/pidgin/plugins/markerline.c Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/plugins/markerline.c Mon Nov 17 06:15:33 2008 +0000 @@ -202,16 +202,14 @@ } static void -conv_created(PurpleConversation *conv, gpointer null) +conv_created(PidginConversation *gtkconv, gpointer null) { - PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); PidginWindow *win; - if (!gtkconv) + win = pidgin_conv_get_window(gtkconv); + if (!win) return; - win = pidgin_conv_get_window(gtkconv); - detach_from_pidgin_window(win, NULL); attach_to_pidgin_window(win, NULL); } @@ -247,7 +245,7 @@ { attach_to_all_windows(); - purple_signal_connect(purple_conversations_get_handle(), "conversation-created", + purple_signal_connect(pidgin_conversations_get_handle(), "conversation-displayed", plugin, PURPLE_CALLBACK(conv_created), NULL); purple_signal_connect(purple_conversations_get_handle(), "conversation-extended-menu",
--- a/pidgin/plugins/sendbutton.c Fri Oct 31 08:37:42 2008 +0000 +++ b/pidgin/plugins/sendbutton.c Mon Nov 17 06:15:33 2008 +0000 @@ -37,9 +37,26 @@ } static void +input_buffer_changed(GtkTextBuffer *text_buffer, GtkWidget *send_button) +{ + if (gtk_text_buffer_get_char_count(text_buffer) != 0) + gtk_widget_set_sensitive(send_button, TRUE); + else + gtk_widget_set_sensitive(send_button, FALSE); +} + +static void create_send_button_pidgin(PidginConversation *gtkconv) { GtkWidget *send_button; + GtkTextBuffer *buf; + guint signal_id; + + send_button = g_object_get_data(G_OBJECT(gtkconv->lower_hbox), + "send_button"); + + if (send_button != NULL) + return; send_button = gtk_button_new_with_mnemonic(_("_Send")); g_signal_connect(G_OBJECT(send_button), "clicked", @@ -48,6 +65,16 @@ FALSE, 0); gtk_widget_show(send_button); + buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(gtkconv->entry)); + if (buf) { + signal_id = g_signal_connect(G_OBJECT(buf), "changed", + G_CALLBACK(input_buffer_changed), + send_button); + g_object_set_data(G_OBJECT(send_button), "buffer-signal", + GINT_TO_POINTER(signal_id)); + input_buffer_changed(buf, send_button); + } + g_object_set_data(G_OBJECT(gtkconv->lower_hbox), "send_button", send_button); } @@ -60,7 +87,18 @@ send_button = g_object_get_data(G_OBJECT(gtkconv->lower_hbox), "send_button"); if (send_button != NULL) { + GtkTextBuffer *buf; + guint signal_id; + + buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(gtkconv->entry)); + signal_id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(send_button), + "buffer-signal")); + if (buf && signal_id) + g_signal_handler_disconnect(G_OBJECT(buf), signal_id); + gtk_widget_destroy(send_button); + g_object_set_data(G_OBJECT(gtkconv->lower_hbox), + "send_button", NULL); } }
--- a/po/POTFILES.in Fri Oct 31 08:37:42 2008 +0000 +++ b/po/POTFILES.in Mon Nov 17 06:15:33 2008 +0000 @@ -136,6 +136,7 @@ libpurple/protocols/qq/buddy_opt.c libpurple/protocols/qq/group.c libpurple/protocols/qq/group_im.c +libpurple/protocols/qq/group_info.c libpurple/protocols/qq/group_internal.c libpurple/protocols/qq/group_join.c libpurple/protocols/qq/group_opt.c @@ -145,7 +146,6 @@ libpurple/protocols/qq/qq_network.c libpurple/protocols/qq/qq_process.c libpurple/protocols/qq/send_file.c -libpurple/protocols/qq/sys_msg.c libpurple/protocols/sametime/sametime.c libpurple/protocols/silc/buddy.c libpurple/protocols/silc/chat.c @@ -215,11 +215,11 @@ pidgin/gtkwhiteboard.c pidgin/pidgin.h pidgin/pidgincombobox.c -pidgin/pidginstock-artwork.c pidgin/pidginstock.c pidgin/pidgintooltip.c pidgin/pixmaps/emotes/default/24/default.theme.in pidgin/pixmaps/emotes/none/none.theme.in +pidgin/pixmaps/emotes/small/16/small.theme.in pidgin/plugins/cap/cap.c pidgin/plugins/contact_priority.c pidgin/plugins/convcolors.c