Initial commit
authormarta <marta@marta-desktop.(none)>
Tue, 31 Aug 2010 09:32:20 +0000 (11:32 +0200)
committermarta <marta@marta-desktop.(none)>
Tue, 31 Aug 2010 09:32:20 +0000 (11:32 +0200)
264 files changed:
Doxyfile [new file with mode: 0644]
HEAD [new file with mode: 0644]
Makefile [new file with mode: 0644]
bin/tietoopcom [new file with mode: 0644]
build-stamp [new file with mode: 0644]
build/release/moc_tecaccountintermediatewidget.cpp [new file with mode: 0644]
build/release/moc_tecaccountsettingswidget.cpp [new file with mode: 0644]
build/release/moc_tecbaseengine.cpp [new file with mode: 0644]
build/release/moc_tecbasemainwindow.cpp [new file with mode: 0644]
build/release/moc_tecchatwidget.cpp [new file with mode: 0644]
build/release/moc_teccontactlistwidget.cpp [new file with mode: 0644]
build/release/moc_tecemoticonsdialog.cpp [new file with mode: 0644]
build/release/moc_tecengine.cpp [new file with mode: 0644]
build/release/moc_tecgeneralsettingswidget.cpp [new file with mode: 0644]
build/release/moc_tecmaintoolbar.cpp [new file with mode: 0644]
build/release/moc_tecmainwindow.cpp [new file with mode: 0644]
build/release/moc_tecsettingswidget.cpp [new file with mode: 0644]
build/release/moc_tecthemessettingswidget.cpp [new file with mode: 0644]
build/release/moc_tecuserinfowidget.cpp [new file with mode: 0644]
build/release/moc_tocaccountintermediatewidget.cpp [new file with mode: 0644]
build/release/moc_tocaccountsettingswidget.cpp [new file with mode: 0644]
build/release/moc_tocbaseengine.cpp [new file with mode: 0644]
build/release/moc_tocbasemainwindow.cpp [new file with mode: 0644]
build/release/moc_tocchatwidget.cpp [new file with mode: 0644]
build/release/moc_toccontactlistwidget.cpp [new file with mode: 0644]
build/release/moc_tocemoticonsdialog.cpp [new file with mode: 0644]
build/release/moc_tocengine.cpp [new file with mode: 0644]
build/release/moc_tocgeneralsettingswidget.cpp [new file with mode: 0644]
build/release/moc_tocmaintoolbar.cpp [new file with mode: 0644]
build/release/moc_tocmainwindow.cpp [new file with mode: 0644]
build/release/moc_tocsettingswidget.cpp [new file with mode: 0644]
build/release/moc_tocthemessettingswidget.cpp [new file with mode: 0644]
build/release/moc_tocuserinfowidget.cpp [new file with mode: 0644]
build/release/qrc_application.cpp [new file with mode: 0644]
build/release/ui_TecAccountSettingsWidget.h [new file with mode: 0644]
build/release/ui_TecChatWidget.h [new file with mode: 0644]
build/release/ui_TecEmoticonsDialog.h [new file with mode: 0644]
build/release/ui_TecGeneralSettingsWidget.h [new file with mode: 0644]
build/release/ui_TecThemesSettingsWidget.h [new file with mode: 0644]
build/release/ui_TecUserInfoWidget.h [new file with mode: 0644]
build/release/ui_TocAccountSettingsWidget.h [new file with mode: 0644]
build/release/ui_TocChatWidget.h [new file with mode: 0644]
build/release/ui_TocEmoticonsDialog.h [new file with mode: 0644]
build/release/ui_TocGeneralSettingsWidget.h [new file with mode: 0644]
build/release/ui_TocThemesSettingsWidget.h [new file with mode: 0644]
build/release/ui_TocUserInfoWidget.h [new file with mode: 0644]
config [new file with mode: 0644]
configure [new file with mode: 0644]
configure-stamp [new file with mode: 0644]
data/com.tieto.tietoopcom.service [new file with mode: 0644]
data/copyright [new file with mode: 0644]
data/emoticons/face-angel24x24.png [new file with mode: 0644]
data/emoticons/face-angel32x32.png [new file with mode: 0644]
data/emoticons/face-crying24x24.png [new file with mode: 0644]
data/emoticons/face-crying32x32.png [new file with mode: 0644]
data/emoticons/face-devilish24x24.png [new file with mode: 0644]
data/emoticons/face-devilish32x32.png [new file with mode: 0644]
data/emoticons/face-glasses24x24.png [new file with mode: 0644]
data/emoticons/face-glasses32x32.png [new file with mode: 0644]
data/emoticons/face-grin24x24.png [new file with mode: 0644]
data/emoticons/face-grin32x32.png [new file with mode: 0644]
data/emoticons/face-kiss24x24.png [new file with mode: 0644]
data/emoticons/face-kiss32x32.png [new file with mode: 0644]
data/emoticons/face-monkey24x24.png [new file with mode: 0644]
data/emoticons/face-monkey32x32.png [new file with mode: 0644]
data/emoticons/face-plain24x24.png [new file with mode: 0644]
data/emoticons/face-plain32x32.png [new file with mode: 0644]
data/emoticons/face-sad24x24.png [new file with mode: 0644]
data/emoticons/face-sad32x32.png [new file with mode: 0644]
data/emoticons/face-smile-big24x24.png [new file with mode: 0644]
data/emoticons/face-smile-big32x32.png [new file with mode: 0644]
data/emoticons/face-smile24x24.png [new file with mode: 0644]
data/emoticons/face-smile32x32.png [new file with mode: 0644]
data/emoticons/face-surprise24x24.png [new file with mode: 0644]
data/emoticons/face-surprise32x32.png [new file with mode: 0644]
data/emoticons/face-wink24x24.png [new file with mode: 0644]
data/emoticons/face-wink32x32.png [new file with mode: 0644]
data/stylesheets/default.qss [new file with mode: 0644]
data/stylesheets/my.qss [new file with mode: 0644]
data/tietoopcom.desktop [new file with mode: 0644]
debian/changelog [new file with mode: 0644]
debian/changelog_old [new file with mode: 0644]
debian/compat [new file with mode: 0644]
debian/control [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/files [new file with mode: 0644]
debian/rules [new file with mode: 0644]
debian/tietoopcom.install [new file with mode: 0644]
debian/tietoopcom.substvars [new file with mode: 0644]
debian/tietoopcom/DEBIAN/control [new file with mode: 0644]
debian/tietoopcom/DEBIAN/md5sums [new file with mode: 0644]
debian/tietoopcom/usr/bin/tietoopcom [new file with mode: 0644]
debian/tietoopcom/usr/share/applications/hildon/tietoopcom.desktop [new file with mode: 0644]
debian/tietoopcom/usr/share/dbus-1/services/com.tieto.tietoopcom.service [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-angel24x24.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-angel32x32.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-crying24x24.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-crying32x32.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-devilish24x24.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-devilish32x32.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-glasses24x24.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-glasses32x32.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-grin24x24.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-grin32x32.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-kiss24x24.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-kiss32x32.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-monkey24x24.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-monkey32x32.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-plain24x24.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-plain32x32.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-sad24x24.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-sad32x32.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile-big24x24.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile-big32x32.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile24x24.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile32x32.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-surprise24x24.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-surprise32x32.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-wink24x24.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/emoticons/face-wink32x32.png [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/licence/copyright [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/stylesheets/default.qss [new file with mode: 0644]
debian/tietoopcom/usr/share/tietoopcom/stylesheets/my.qss [new file with mode: 0644]
debian/tmp/usr/bin/tietoopcom [new file with mode: 0644]
debian/tmp/usr/share/applications/hildon/tietoopcom.desktop [new file with mode: 0644]
debian/tmp/usr/share/dbus-1/services/com.tieto.tietoopcom.service [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-angel24x24.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-angel32x32.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-crying24x24.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-crying32x32.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-devilish24x24.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-devilish32x32.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-glasses24x24.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-glasses32x32.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-grin24x24.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-grin32x32.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-kiss24x24.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-kiss32x32.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-monkey24x24.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-monkey32x32.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-plain24x24.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-plain32x32.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-sad24x24.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-sad32x32.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-smile-big24x24.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-smile-big32x32.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-smile24x24.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-smile32x32.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-surprise24x24.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-surprise32x32.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-wink24x24.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/emoticons/face-wink32x32.png [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/licence/copyright [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/stylesheets/default.qss [new file with mode: 0644]
debian/tmp/usr/share/tietoopcom/stylesheets/my.qss [new file with mode: 0644]
description [new file with mode: 0644]
hooks/applypatch-msg.sample [new file with mode: 0755]
hooks/commit-msg.sample [new file with mode: 0755]
hooks/post-commit.sample [new file with mode: 0755]
hooks/post-receive.sample [new file with mode: 0755]
hooks/post-update.sample [new file with mode: 0755]
hooks/pre-applypatch.sample [new file with mode: 0755]
hooks/pre-commit.sample [new file with mode: 0755]
hooks/pre-rebase.sample [new file with mode: 0755]
hooks/prepare-commit-msg.sample [new file with mode: 0755]
hooks/update.sample [new file with mode: 0755]
include/TocEngine/TocBaseEngine [new file with mode: 0644]
include/TocEngine/TocEngine [new file with mode: 0644]
include/TocEngine/TocEngine.pri [new file with mode: 0644]
include/TocEngine/tocbaseengine.h [new file with mode: 0644]
include/TocEngine/tocengine.h [new file with mode: 0644]
include/TocSettings [new file with mode: 0644]
include/TocUi/IconProvider [new file with mode: 0644]
include/TocUi/TocAccountIntermediateWidget [new file with mode: 0644]
include/TocUi/TocAccountSettingsWidget [new file with mode: 0644]
include/TocUi/TocBaseMainWindow [new file with mode: 0644]
include/TocUi/TocChatWidget [new file with mode: 0644]
include/TocUi/TocContactListWidget [new file with mode: 0644]
include/TocUi/TocEmoticonsDialog [new file with mode: 0644]
include/TocUi/TocGeneralSettingsWidget [new file with mode: 0644]
include/TocUi/TocMainToolbar [new file with mode: 0644]
include/TocUi/TocMainWindow [new file with mode: 0644]
include/TocUi/TocSettingsWidget [new file with mode: 0644]
include/TocUi/TocThemesSettingsWidget [new file with mode: 0644]
include/TocUi/TocUi.pri [new file with mode: 0644]
include/TocUi/TocUserInfoWidget [new file with mode: 0644]
include/TocUi/iconprovider.h [new file with mode: 0644]
include/TocUi/tocaccountintermediatewidget.h [new file with mode: 0644]
include/TocUi/tocaccountsettingswidget.h [new file with mode: 0644]
include/TocUi/tocbasemainwindow.h [new file with mode: 0644]
include/TocUi/tocchatwidget.h [new file with mode: 0644]
include/TocUi/toccontactlistwidget.h [new file with mode: 0644]
include/TocUi/tocemoticonsdialog.h [new file with mode: 0644]
include/TocUi/tocgeneralsettingswidget.h [new file with mode: 0644]
include/TocUi/tocmaintoolbar.h [new file with mode: 0644]
include/TocUi/tocmainwindow.h [new file with mode: 0644]
include/TocUi/tocsettingswidget.h [new file with mode: 0644]
include/TocUi/tocthemessettingswidget.h [new file with mode: 0644]
include/TocUi/tocuserinfowidget.h [new file with mode: 0644]
include/defs.h [new file with mode: 0644]
include/include.pri [new file with mode: 0644]
include/macros.h [new file with mode: 0644]
include/tocsettings.h [new file with mode: 0644]
include/uidefs.h [new file with mode: 0644]
include/version.h [new file with mode: 0644]
include/version.in [new file with mode: 0644]
info/exclude [new file with mode: 0644]
resources/account.png [new file with mode: 0644]
resources/activesessions.png [new file with mode: 0644]
resources/addcontact.png [new file with mode: 0644]
resources/away.png [new file with mode: 0644]
resources/busy.png [new file with mode: 0644]
resources/close.png [new file with mode: 0644]
resources/contactfemale.png [new file with mode: 0644]
resources/contactmale.png [new file with mode: 0644]
resources/contacts.png [new file with mode: 0644]
resources/enter.png [new file with mode: 0644]
resources/general.png [new file with mode: 0644]
resources/greenframe.png [new file with mode: 0644]
resources/hidden.png [new file with mode: 0644]
resources/jabber.png [new file with mode: 0644]
resources/network.png [new file with mode: 0644]
resources/offline.png [new file with mode: 0644]
resources/online.png [new file with mode: 0644]
resources/redframe.png [new file with mode: 0644]
resources/restore.png [new file with mode: 0644]
resources/settings.png [new file with mode: 0644]
resources/themes.png [new file with mode: 0644]
resources/tieto-logo.png [new file with mode: 0644]
resources/unknown.png [new file with mode: 0644]
resources/yellowframe.png [new file with mode: 0644]
src/Makefile [new file with mode: 0644]
src/Makefile.Debug [new file with mode: 0644]
src/Makefile.Release [new file with mode: 0644]
src/TocEngine/TocBaseEngine.cpp [new file with mode: 0644]
src/TocEngine/TocEngine.cpp [new file with mode: 0644]
src/TocEngine/TocEngine.pri [new file with mode: 0644]
src/TocSettings.cpp [new file with mode: 0644]
src/TocUi/ChangePasswordDialog.ui [new file with mode: 0644]
src/TocUi/IconProvider.cpp [new file with mode: 0644]
src/TocUi/TocAccountIntermediateWidget.cpp [new file with mode: 0644]
src/TocUi/TocAccountSettingsWidget.cpp [new file with mode: 0644]
src/TocUi/TocAccountSettingsWidget.ui [new file with mode: 0644]
src/TocUi/TocBaseMainWindow.cpp [new file with mode: 0644]
src/TocUi/TocChatWidget.cpp [new file with mode: 0644]
src/TocUi/TocChatWidget.ui [new file with mode: 0644]
src/TocUi/TocContactListWidget.cpp [new file with mode: 0644]
src/TocUi/TocEmoticonsDialog.cpp [new file with mode: 0644]
src/TocUi/TocEmoticonsDialog.ui [new file with mode: 0644]
src/TocUi/TocGeneralSettingsWidget.cpp [new file with mode: 0644]
src/TocUi/TocGeneralSettingsWidget.ui [new file with mode: 0644]
src/TocUi/TocMainToolbar.cpp [new file with mode: 0644]
src/TocUi/TocMainWindow.cpp [new file with mode: 0644]
src/TocUi/TocSettingsWidget.cpp [new file with mode: 0644]
src/TocUi/TocThemesSettingsWidget.cpp [new file with mode: 0644]
src/TocUi/TocThemesSettingsWidget.ui [new file with mode: 0644]
src/TocUi/TocUi.pri [new file with mode: 0644]
src/TocUi/TocUserInfoWidget.cpp [new file with mode: 0644]
src/TocUi/TocUserInfoWidget.ui [new file with mode: 0644]
src/application.qrc [new file with mode: 0644]
src/main.cpp [new file with mode: 0644]
src/src.pro [new file with mode: 0644]
tieto-logo.png [new file with mode: 0644]
tietoopcom.pro [new file with mode: 0644]

diff --git a/Doxyfile b/Doxyfile
new file mode 100644 (file)
index 0000000..fa0f3bc
--- /dev/null
+++ b/Doxyfile
@@ -0,0 +1,1252 @@
+# Doxyfile 1.5.1
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = Tieto Open Communicator (tietoopcom)
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = 0.5
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = docs
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
+# 4096 sub-directories (in 2 levels) under the output directory of each output 
+# format and will distribute the generated files over these directories. 
+# Enabling this option can be useful when feeding doxygen a huge amount of 
+# source files, where putting all generated files in the same directory would 
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+# documentation generated by doxygen is written. Doxygen will use this 
+# information to generate all constant output in the proper language. 
+# The default language is English, other supported languages are: 
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
+# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, 
+# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, 
+# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, 
+# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE        = English
+
+# This tag can be used to specify the encoding used in the generated output. 
+# The encoding is not always determined by the language that is chosen, 
+# but also whether or not the output is meant for Windows or non-Windows users. 
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES 
+# forces the Windows encoding (this is the default for the Windows binary), 
+# whereas setting the tag to NO uses a Unix-style encoding (the default for 
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING   = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator 
+# that is used to form the text in various listings. Each string 
+# in this list, if found as the leading text of the brief description, will be 
+# stripped from the text and the result after processing the whole list, is 
+# used as the annotated text. Otherwise, the brief description is used as-is. 
+# If left blank, the following values are used ("$name" is automatically 
+# replaced with the name of the entity): "The $name class" "The $name widget" 
+# "The $name file" "is" "provides" "specifies" "contains" 
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       = 
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
+# inherited members of a class in the documentation of that class as if those 
+# members were ordinary class members. Constructors, destructors and assignment 
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user-defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. The tag can be used to show relative paths in the file list. 
+# If left blank the directory from which doxygen is run is used as the 
+# path to strip.
+
+STRIP_FROM_PATH        = 
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
+# the path mentioned in the documentation of a class, which tells 
+# the reader which header file to include in order to use a class. 
+# If left blank only the name of the header file containing the class 
+# definition is used. Otherwise one should specify the include paths that 
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    = 
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+# (but less readable) file names. This can be useful is your file systems 
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments will behave just like the Qt-style comments (thus requiring an 
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF      = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
+# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
+# comments) as a brief description. This used to be the default behaviour. 
+# The new default is to treat a multi-line C++ comment block as a detailed 
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member 
+# documentation.
+
+DETAILS_AT_TOP         = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
+# a new page for each member. If set to NO, the documentation of a member will 
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user-defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                = 
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
+# sources only. Doxygen will then generate output that is more tailored for C. 
+# For instance, some of the names that are used will be different. The list 
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
+# sources only. Doxygen will then generate output that is more tailored for Java. 
+# For instance, namespaces will be presented as packages, qualified scopes 
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to 
+# include (a tag file for) the STL sources as input, then you should 
+# set this tag to YES in order to let doxygen match functions declarations and 
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
+# func(std::string) {}). This also make the inheritance and collaboration 
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
+# the same type (for instance a group of public functions) to be put as a 
+# subgroup of that type (e.g. under the Public Functions section). Set it to 
+# NO to prevent subgrouping. Alternatively, this can be done per class using 
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+# documentation are documented, even if no documentation was available. 
+# Private class members and static file members will be hidden unless 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# will be included in the documentation.
+
+EXTRACT_STATIC         = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
+# defined locally in source files will be included in the documentation. 
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local 
+# methods, which are defined in the implementation section but not in 
+# the interface are included in the documentation. 
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+# undocumented members of documented classes, files or namespaces. 
+# If set to NO (the default) these members will be included in the 
+# various overviews, but no documentation section is generated. 
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+# undocumented classes that are normally visible in the class hierarchy. 
+# If set to NO (the default) these classes will be included in the various 
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
+# friend (class|struct|union) declarations. 
+# If set to NO (the default) these declarations will be included in the 
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
+# documentation blocks found inside the body of a function. 
+# If set to NO (the default) these blocks will be appended to the 
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation 
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded. 
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower-case letters. If set to YES upper-case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+# will show members with their full class and namespace scopes in the 
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+# will put a list of the files that are included by a file in the documentation 
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+# will sort the (detailed) documentation of file and class members 
+# alphabetically by member name. If set to NO the members will appear in 
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
+# brief documentation of file, namespace and class members alphabetically 
+# by member name. If set to NO (the default) the members will appear in 
+# declaration order.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
+# sorted by fully-qualified names, including namespaces. If set to 
+# NO (the default), the class list will be sorted only by class name, 
+# not including the namespace part. 
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the 
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
+# disable (NO) the todo list. This list is created by putting \todo 
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
+# disable (NO) the test list. This list is created by putting \test 
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
+# disable (NO) the deprecated list. This list is created by putting 
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consists of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+# If the sources in your project are distributed over multiple directories 
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES       = NO
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
+# doxygen should invoke to get the current version for each file (typically from the 
+# version control system). Doxygen will invoke the program by executing (via 
+# popen()) the command <command> <input-file>, where <command> is the value of 
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
+# provided by doxygen. Whatever the program writes to standard output 
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated 
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
+# generated by doxygen. Possible values are YES and NO. If left blank 
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
+# potential errors in the documentation, such as not documenting some 
+# parameters in a documented function, or documenting parameters that 
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for 
+# functions that are documented, but have no documentation for their parameters 
+# or return value. If set to NO (the default) doxygen will only warn about 
+# wrong or incomplete parameter documentation, but not about the absence of 
+# documentation.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that 
+# doxygen can produce. The string should contain the $file, $line, and $text 
+# tags, which will be replaced by the file and line number from which the 
+# warning originated and the warning text. Optionally the format may contain 
+# $version, which will be replaced by the version of the file (if it could 
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr.
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces.
+
+INPUT                  = include src
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank the following patterns are tested: 
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
+
+FILE_PATTERNS          = 
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
+# should be searched for input files as well. Possible values are YES and NO. 
+# If left blank NO is used.
+
+RECURSIVE              = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should 
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                = 
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
+# directories that are symbolic links (a Unix filesystem feature) are excluded 
+# from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the 
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+# certain files from those directories. Note that the wildcards are matched 
+# against the file with absolute path, so to exclude all test directories 
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       = 
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+EXAMPLE_PATTERNS       = 
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
+# searched for input files to be used with the \include or \dontinclude 
+# commands irrespective of the value of the RECURSIVE tag. 
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command).
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+# input file. Doxygen will then use the output that the filter program writes 
+# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
+# ignored.
+
+INPUT_FILTER           = 
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
+# basis.  Doxygen will compare the file name with each pattern and apply the 
+# filter if there is a match.  The filters are a list of the form: 
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
+# is applied to all files.
+
+FILTER_PATTERNS        = 
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources. 
+# Note: To get rid of all source code in the generated output, make sure also 
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+# doxygen to hide any special comment blocks from generated source code 
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
+# then for each documented function all documented 
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default) 
+# then for each documented function all documented entities 
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.  Otherwise they will link to the documentstion.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code 
+# will point to the HTML generated by the htags(1) tool instead of doxygen 
+# built-in source browser. The htags tool is part of GNU's global source 
+# tagging system (see http://www.gnu.org/software/global/global.html). You 
+# will need version 4.8.6 or higher.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+# of all compounds will be generated. Enable this if the project 
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all 
+# classes will be put under the same header in the alphabetical index. 
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER            = 
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
+# will generate a default style sheet. Note that doxygen will try to copy 
+# the style sheet file to the HTML output directory, so don't put your own 
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        = 
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+# files or namespaces will be aligned in HTML using tables. If set to 
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+# will be generated that can be used as input for tools like the 
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
+# be used to specify the file name of the resulting .chm file. You 
+# can add a path in front of the file if the result should not be 
+# written to the html output directory.
+
+CHM_FILE               = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
+# be used to specify the location (absolute path including file name) of 
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members 
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
+# top of each HTML page. The value NO (the default) enables the index and 
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# generate Latex output.
+
+GENERATE_LATEX         = YES
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
+# generate index for LaTeX. If left blank `makeindex' will be used as the 
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+# LaTeX documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used 
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until 
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+# contain links (just like the HTML output) instead of page references 
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+# plain latex in the generated Makefile. Set this option to YES to get a 
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+# command to the generated LaTeX files. This will instruct LaTeX to keep 
+# running if errors occur, instead of asking the user for help. 
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
+# include the index chapters (such as File Index, Compound Index, etc.) 
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+# The RTF output is optimized for Word 97 and may not look very pretty with 
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+# RTF documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+# will contain hyperlink fields. The RTF file will 
+# contain links (just like the HTML output) instead of page references. 
+# This makes the output suitable for online browsing using WORD or other 
+# programs which support those fields. 
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's 
+# config file, i.e. a series of assignments. You only have to provide 
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an rtf document. 
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to 
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
+# then it will generate one additional man file for each entity 
+# documented in the real man page(s). These additional files 
+# only source the real man page, but without them the man command 
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will 
+# generate an XML file that captures the structure of 
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_SCHEMA             = 
+
+# The XML_DTD tag can be used to specify an XML DTD, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_DTD                = 
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
+# dump the program listings (including syntax highlighting 
+# and cross-referencing information) to the XML output. Note that 
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
+# generate an AutoGen Definitions (see autogen.sf.net) file 
+# that captures the structure of the code including all 
+# documentation. Note that this feature is still experimental 
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
+# generate a Perl module file that captures the structure of 
+# the code including all documentation. Note that this 
+# feature is still experimental and incomplete at the 
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
+# nicely formatted so it can be parsed by a human reader.  This is useful 
+# if you want to understand what is going on.  On the other hand, if this 
+# tag is set to NO the size of the Perl module output will be much smaller 
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file 
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
+# This is useful so different doxyrules.make files included by the same 
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+# evaluate all C-preprocessor directives found in the sources and include 
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed. Macro expansion can be done in a controlled 
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+# then the macro expansion is limited to the macros specified with the 
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that 
+# contain include files that are not input files but should be processed by 
+# the preprocessor.
+
+INCLUDE_PATH           = 
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+# patterns (like *.h and *.hpp) to filter out the header-files in the 
+# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# be used.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that 
+# are defined before the preprocessor is started (similar to the -D option of 
+# gcc). The argument of the tag is a list of macros of the form: name 
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed. To prevent a macro definition from being 
+# undefined via #undef or recursively expanded use the := operator 
+# instead of the = operator.
+
+PREDEFINED             = 
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
+# The macro definition that is found in the sources will be used. 
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
+# doxygen's preprocessor will remove all function-like macros that are alone 
+# on a line, have an all uppercase name, and do not end with a semicolon. Such 
+# function macros are typically used for boiler-plate code, and will confuse 
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles. 
+# Optionally an initial location of the external documentation 
+# can be added for each tagfile. The format of a tag file without 
+# this location is as follows: 
+#   TAGFILES = file1 file2 ... 
+# Adding location for the tag files is done as follows: 
+#   TAGFILES = file1=loc1 "file2 = loc2" ... 
+# where "loc1" and "loc2" can be relative or absolute paths or 
+# URLs. If a location is present for each tag, the installdox tool 
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen 
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               = 
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+# in the class index. If set to NO only the inherited external classes 
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
+# in the modules index. If set to NO, only the current project's groups will 
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script 
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
+# or super classes. Setting the tag to NO turns the diagrams off. Note that 
+# this option is superseded by the HAVE_DOT option below. This is only a 
+# fallback. It is recommended to install and use dot, since it yields more 
+# powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide 
+# inheritance and usage relations if the target is undocumented 
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+# available from the path. This tool is part of Graphviz, a graph visualization 
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = NO
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect inheritance relations. Setting this tag to YES will force the 
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect implementation dependencies (inheritance, containment, and 
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
+# collaboration diagrams in a style similar to the OMG's Unified Modeling 
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the 
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
+# tags are set to YES then doxygen will generate a graph for each documented 
+# file showing the direct and indirect include dependencies of the file with 
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
+# documented header file showing the documented files that directly or 
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
+# generate a call dependency graph for every global function or class method. 
+# Note that enabling this option will significantly increase the time of a run. 
+# So in most cases it will be better to enable call graphs for selected 
+# functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
+# generate a caller dependency graph for every global function or class method. 
+# Note that enabling this option will significantly increase the time of a run. 
+# So in most cases it will be better to enable caller graphs for selected 
+# functions only using the \callergraph command.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
+# then doxygen will show the dependencies a directory has on other directories 
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH               = 
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that 
+# contain dot files that are included in the documentation (see the 
+# \dotfile command).
+
+DOTFILE_DIRS           = 
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_WIDTH    = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT   = 1024
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
+# graphs generated by dot. A depth value of 3 means that only nodes reachable 
+# from the root by following a path via at most 3 edges will be shown. Nodes 
+# that lay further from the root node will be omitted. Note that setting this 
+# option to 1 or 2 may greatly reduce the computation time needed for large 
+# code bases. Also note that a graph may be further truncated if the graph's 
+# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH 
+# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), 
+# the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
+# background. This is disabled by default, which results in a white background. 
+# Warning: Depending on the platform used, enabling this option may lead to 
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to 
+# read).
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
+# files in one run (i.e. multiple -o and -T options on the command line). This 
+# makes dot run faster, but since only newer versions of dot (>1.8.10) 
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermediate dot files that are used to generate 
+# the various graphs.
+
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE           = NO
diff --git a/HEAD b/HEAD
new file mode 100644 (file)
index 0000000..cb089cd
--- /dev/null
+++ b/HEAD
@@ -0,0 +1 @@
+ref: refs/heads/master
diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..7a3d257
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,256 @@
+#############################################################################
+# Makefile for building: tietoopcom
+# Generated by qmake (2.01a) (Qt 4.6.2) on: Thu Jul 8 08:48:04 2010
+# Project:  tietoopcom.pro
+# Template: subdirs
+# Command: /usr/bin/qmake -unix -o Makefile tietoopcom.pro
+#############################################################################
+
+first: make_default
+MAKEFILE      = Makefile
+QMAKE         = /usr/bin/qmake
+DEL_FILE      = rm -f
+CHK_DIR_EXISTS= test -d
+MKDIR         = mkdir -p
+COPY          = cp -f
+COPY_FILE     = $(COPY)
+COPY_DIR      = $(COPY) -r
+INSTALL_FILE  = install -m 644 -p
+INSTALL_PROGRAM = install -m 755 -p
+INSTALL_DIR   = $(COPY_DIR)
+DEL_FILE      = rm -f
+SYMLINK       = ln -f -s
+DEL_DIR       = rmdir
+MOVE          = mv -f
+CHK_DIR_EXISTS= test -d
+MKDIR         = mkdir -p
+SUBTARGETS    =  \
+               sub-src
+
+src/$(MAKEFILE): 
+       @$(CHK_DIR_EXISTS) src/ || $(MKDIR) src/ 
+       cd src/ && $(QMAKE) /home/maemo/tietoopcom/src/src.pro -unix -o $(MAKEFILE)
+sub-src-qmake_all:  FORCE
+       @$(CHK_DIR_EXISTS) src/ || $(MKDIR) src/ 
+       cd src/ && $(QMAKE) /home/maemo/tietoopcom/src/src.pro -unix -o $(MAKEFILE)
+sub-src: src/$(MAKEFILE) FORCE
+       cd src/ && $(MAKE) -f $(MAKEFILE)
+sub-src-make_default: src/$(MAKEFILE) FORCE
+       cd src/ && $(MAKE) -f $(MAKEFILE) 
+sub-src-make_first: src/$(MAKEFILE) FORCE
+       cd src/ && $(MAKE) -f $(MAKEFILE) first
+sub-src-all: src/$(MAKEFILE) FORCE
+       cd src/ && $(MAKE) -f $(MAKEFILE) all
+sub-src-clean: src/$(MAKEFILE) FORCE
+       cd src/ && $(MAKE) -f $(MAKEFILE) clean
+sub-src-distclean: src/$(MAKEFILE) FORCE
+       cd src/ && $(MAKE) -f $(MAKEFILE) distclean
+sub-src-install_subtargets: src/$(MAKEFILE) FORCE
+       cd src/ && $(MAKE) -f $(MAKEFILE) install
+sub-src-uninstall_subtargets: src/$(MAKEFILE) FORCE
+       cd src/ && $(MAKE) -f $(MAKEFILE) uninstall
+
+Makefile: tietoopcom.pro  /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/linux-g++/qmake.conf /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/g++.conf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/unix.conf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/linux.conf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/qconfig.pri \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt_functions.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt_config.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/default_pre.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/release.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/debug_and_release.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/default_post.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/warn_on.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/unix/thread.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/moc.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/resources.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/uic.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/yacc.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/lex.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/include_source_dir.prf
+       $(QMAKE) -unix -o Makefile tietoopcom.pro
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/g++.conf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/unix.conf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/linux.conf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/qconfig.pri:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt_functions.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt_config.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/exclusive_builds.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/default_pre.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/release.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/debug_and_release.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/default_post.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/warn_on.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/unix/thread.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/moc.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/resources.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/uic.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/yacc.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/lex.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/include_source_dir.prf:
+qmake: qmake_all FORCE
+       @$(QMAKE) -unix -o Makefile tietoopcom.pro
+
+qmake_all: sub-src-qmake_all FORCE
+
+make_default: sub-src-make_default FORCE
+make_first: sub-src-make_first FORCE
+all: sub-src-all FORCE
+clean: sub-src-clean FORCE
+distclean: sub-src-distclean FORCE
+       -$(DEL_FILE) Makefile
+install_subtargets: sub-src-install_subtargets FORCE
+uninstall_subtargets: sub-src-uninstall_subtargets FORCE
+
+sub-src-sub_Debug: src/$(MAKEFILE)
+       cd src/ && $(MAKE) debug
+debug: sub-src-sub_Debug
+
+sub-src-sub_Release: src/$(MAKEFILE)
+       cd src/ && $(MAKE) release
+release: sub-src-sub_Release
+
+mocclean: compiler_moc_header_clean compiler_moc_source_clean
+
+mocables: compiler_moc_header_make_all compiler_moc_source_make_all
+install_service: FORCE
+       @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/usr/share/dbus-1/services/ || $(MKDIR) $(INSTALL_ROOT)/usr/share/dbus-1/services/ 
+       -$(INSTALL_FILE) /home/maemo/tietoopcom/data/com.tieto.tietoopcom.service $(INSTALL_ROOT)/usr/share/dbus-1/services/
+
+
+uninstall_service:  FORCE
+       -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/dbus-1/services/com.tieto.tietoopcom.service
+       -$(DEL_DIR) $(INSTALL_ROOT)/usr/share/dbus-1/services/ 
+
+
+install_emoticons: FORCE
+       @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/ || $(MKDIR) $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/ 
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-angel24x24.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-angel24x24.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-angel32x32.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-angel32x32.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-crying24x24.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-crying24x24.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-crying32x32.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-crying32x32.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-devilish24x24.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-devilish24x24.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-devilish32x32.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-devilish32x32.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-glasses24x24.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-glasses24x24.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-glasses32x32.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-glasses32x32.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-grin24x24.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-grin24x24.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-grin32x32.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-grin32x32.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-kiss24x24.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-kiss24x24.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-kiss32x32.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-kiss32x32.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-monkey24x24.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-monkey24x24.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-monkey32x32.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-monkey32x32.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-plain24x24.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-plain24x24.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-plain32x32.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-plain32x32.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-sad24x24.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-sad24x24.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-sad32x32.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-sad32x32.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-smile-big24x24.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-smile-big24x24.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-smile-big32x32.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-smile-big32x32.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-smile24x24.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-smile24x24.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-smile32x32.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-smile32x32.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-surprise24x24.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-surprise24x24.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-surprise32x32.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-surprise32x32.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-wink24x24.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-wink24x24.png
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/emoticons/face-wink32x32.png $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-wink32x32.png
+
+
+uninstall_emoticons:  FORCE
+       -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-angel24x24.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-angel32x32.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-crying24x24.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-crying32x32.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-devilish24x24.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-devilish32x32.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-glasses24x24.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-glasses32x32.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-grin24x24.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-grin32x32.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-kiss24x24.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-kiss32x32.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-monkey24x24.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-monkey32x32.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-plain24x24.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-plain32x32.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-sad24x24.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-sad32x32.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-smile-big24x24.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-smile-big32x32.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-smile24x24.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-smile32x32.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-surprise24x24.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-surprise32x32.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-wink24x24.png 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/face-wink32x32.png
+       -$(DEL_DIR) $(INSTALL_ROOT)/usr/share/tietoopcom/emoticons/ 
+
+
+install_desktop: FORCE
+       @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/usr/share/applications/hildon/ || $(MKDIR) $(INSTALL_ROOT)/usr/share/applications/hildon/ 
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/tietoopcom.desktop $(INSTALL_ROOT)/usr/share/applications/hildon/
+       -strip $(INSTALL_ROOT)/usr/share/applications/hildon/tietoopcom.desktop
+
+
+uninstall_desktop:  FORCE
+       -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/applications/hildon/tietoopcom.desktop
+       -$(DEL_DIR) $(INSTALL_ROOT)/usr/share/applications/hildon/ 
+
+
+install_stylesheets: FORCE
+       @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/usr/share/tietoopcom/stylesheets/ || $(MKDIR) $(INSTALL_ROOT)/usr/share/tietoopcom/stylesheets/ 
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/stylesheets/default.qss $(INSTALL_ROOT)/usr/share/tietoopcom/stylesheets/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/stylesheets/default.qss
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/stylesheets/my.qss $(INSTALL_ROOT)/usr/share/tietoopcom/stylesheets/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/stylesheets/my.qss
+
+
+uninstall_stylesheets:  FORCE
+       -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/stylesheets/default.qss 
+        -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/stylesheets/my.qss
+       -$(DEL_DIR) $(INSTALL_ROOT)/usr/share/tietoopcom/stylesheets/ 
+
+
+install_licence: FORCE
+       @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/usr/share/tietoopcom/licence/ || $(MKDIR) $(INSTALL_ROOT)/usr/share/tietoopcom/licence/ 
+       -$(INSTALL_PROGRAM) /home/maemo/tietoopcom/data/copyright $(INSTALL_ROOT)/usr/share/tietoopcom/licence/
+       -strip $(INSTALL_ROOT)/usr/share/tietoopcom/licence/copyright
+
+
+uninstall_licence:  FORCE
+       -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/tietoopcom/licence/copyright
+       -$(DEL_DIR) $(INSTALL_ROOT)/usr/share/tietoopcom/licence/ 
+
+
+install: install_subtargets install_service install_emoticons install_desktop install_stylesheets install_licence  FORCE
+
+uninstall: uninstall_service uninstall_emoticons uninstall_desktop uninstall_stylesheets uninstall_licence  uninstall_subtargets FORCE
+
+FORCE:
+
diff --git a/bin/tietoopcom b/bin/tietoopcom
new file mode 100644 (file)
index 0000000..f832d68
Binary files /dev/null and b/bin/tietoopcom differ
diff --git a/build-stamp b/build-stamp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/build/release/moc_tecaccountintermediatewidget.cpp b/build/release/moc_tecaccountintermediatewidget.cpp
new file mode 100644 (file)
index 0000000..f0c188b
--- /dev/null
@@ -0,0 +1,103 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tecaccountintermediatewidget.h'
+**
+** Created: Fri Jun 18 17:41:03 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TecUi/tecaccountintermediatewidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tecaccountintermediatewidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TecAccountIntermediateWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       3,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       3,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      30,   29,   29,   29, 0x05,
+      46,   29,   29,   29, 0x05,
+      60,   29,   29,   29, 0x05,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TecAccountIntermediateWidget[] = {
+    "TecAccountIntermediateWidget\0\0"
+    "createClicked()\0editClicked()\0"
+    "backClicked()\0"
+};
+
+const QMetaObject TecAccountIntermediateWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TecAccountIntermediateWidget,
+      qt_meta_data_TecAccountIntermediateWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TecAccountIntermediateWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TecAccountIntermediateWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TecAccountIntermediateWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TecAccountIntermediateWidget))
+        return static_cast<void*>(const_cast< TecAccountIntermediateWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TecAccountIntermediateWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: createClicked(); break;
+        case 1: editClicked(); break;
+        case 2: backClicked(); break;
+        default: ;
+        }
+        _id -= 3;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TecAccountIntermediateWidget::createClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void TecAccountIntermediateWidget::editClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+
+// SIGNAL 2
+void TecAccountIntermediateWidget::backClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 2, 0);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tecaccountsettingswidget.cpp b/build/release/moc_tecaccountsettingswidget.cpp
new file mode 100644 (file)
index 0000000..e3a9aaf
--- /dev/null
@@ -0,0 +1,129 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tecaccountsettingswidget.h'
+**
+** Created: Fri Jun 18 17:41:02 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TecUi/tecaccountsettingswidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tecaccountsettingswidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TecAccountSettingsWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      10,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       4,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      26,   25,   25,   25, 0x05,
+      51,   25,   25,   25, 0x05,
+      79,   25,   25,   25, 0x05,
+      90,   25,   25,   25, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+     104,   25,   25,   25, 0x0a,
+     113,   25,   25,   25, 0x08,
+     126,   25,   25,   25, 0x08,
+     160,  151,   25,   25, 0x08,
+     193,  181,   25,   25, 0x08,
+     217,   25,   25,   25, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TecAccountSettingsWidget[] = {
+    "TecAccountSettingsWidget\0\0"
+    "accountSettingsChanged()\0"
+    "newAccountSettingsCreated()\0finished()\0"
+    "backClicked()\0reload()\0onOkButton()\0"
+    "onChangePasswordButton()\0newLogin\0"
+    "loginEdited(QString)\0newProtocol\0"
+    "protocolEdited(QString)\0disconnectHints()\0"
+};
+
+const QMetaObject TecAccountSettingsWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TecAccountSettingsWidget,
+      qt_meta_data_TecAccountSettingsWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TecAccountSettingsWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TecAccountSettingsWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TecAccountSettingsWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TecAccountSettingsWidget))
+        return static_cast<void*>(const_cast< TecAccountSettingsWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TecAccountSettingsWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: accountSettingsChanged(); break;
+        case 1: newAccountSettingsCreated(); break;
+        case 2: finished(); break;
+        case 3: backClicked(); break;
+        case 4: reload(); break;
+        case 5: onOkButton(); break;
+        case 6: onChangePasswordButton(); break;
+        case 7: loginEdited((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+        case 8: protocolEdited((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+        case 9: disconnectHints(); break;
+        default: ;
+        }
+        _id -= 10;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TecAccountSettingsWidget::accountSettingsChanged()
+{
+    QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void TecAccountSettingsWidget::newAccountSettingsCreated()
+{
+    QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+
+// SIGNAL 2
+void TecAccountSettingsWidget::finished()
+{
+    QMetaObject::activate(this, &staticMetaObject, 2, 0);
+}
+
+// SIGNAL 3
+void TecAccountSettingsWidget::backClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 3, 0);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tecbaseengine.cpp b/build/release/moc_tecbaseengine.cpp
new file mode 100644 (file)
index 0000000..dab31d1
--- /dev/null
@@ -0,0 +1,176 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tecbaseengine.h'
+**
+** Created: Fri Jun 18 17:41:03 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TecEngine/tecbaseengine.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tecbaseengine.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TecBaseEngine[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      15,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       7,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      29,   15,   14,   14, 0x05,
+      79,   58,   14,   14, 0x05,
+     138,  113,   14,   14, 0x05,
+     199,  187,   14,   14, 0x05,
+     244,  232,   14,   14, 0x05,
+     284,  280,   14,   14, 0x05,
+     314,  280,   14,   14, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+     344,   14,   14,   14, 0x0a,
+     369,   58,   14,   14, 0x0a,
+     404,  280,   14,   14, 0x0a,
+     429,  187,   14,   14, 0x0a,
+     473,  464,   14,   14, 0x0a,
+     522,  506,   14,   14, 0x0a,
+     564,  280,   14,   14, 0x0a,
+     612,  596,   14,   14, 0x0a,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TecBaseEngine[] = {
+    "TecBaseEngine\0\0status,reason\0"
+    "statusChanged(Status,Reason)\0"
+    "presence,description\0"
+    "presenceUpdated(Presence,QString)\0"
+    "uid,presence,description\0"
+    "contactPresenceUpdated(QString,Presence,QString)\0"
+    "uid,message\0incomingMessage(QString,Message)\0"
+    "contactList\0contactListReceived(TecContactList)\0"
+    "uid\0subscriptionAccepted(QString)\0"
+    "authorizationRequest(QString)\0"
+    "initializeFromSettings()\0"
+    "onPresenceChange(Presence,QString)\0"
+    "onSessionClosed(QString)\0"
+    "onNewMessageReady(QString,Message)\0"
+    "pContact\0onAddContactRequest(TecContact*)\0"
+    "pContact,oldUid\0"
+    "onEditContactRequest(TecContact*,QString)\0"
+    "onRemoveContactRequest(QString)\0"
+    "uid,bAuthorized\0onSubscriptionAccepted(QString,bool)\0"
+};
+
+const QMetaObject TecBaseEngine::staticMetaObject = {
+    { &QObject::staticMetaObject, qt_meta_stringdata_TecBaseEngine,
+      qt_meta_data_TecBaseEngine, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TecBaseEngine::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TecBaseEngine::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TecBaseEngine::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TecBaseEngine))
+        return static_cast<void*>(const_cast< TecBaseEngine*>(this));
+    return QObject::qt_metacast(_clname);
+}
+
+int TecBaseEngine::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QObject::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: statusChanged((*reinterpret_cast< Status(*)>(_a[1])),(*reinterpret_cast< Reason(*)>(_a[2]))); break;
+        case 1: presenceUpdated((*reinterpret_cast< Presence(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 2: contactPresenceUpdated((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Presence(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3]))); break;
+        case 3: incomingMessage((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Message(*)>(_a[2]))); break;
+        case 4: contactListReceived((*reinterpret_cast< const TecContactList(*)>(_a[1]))); break;
+        case 5: subscriptionAccepted((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 6: authorizationRequest((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 7: initializeFromSettings(); break;
+        case 8: onPresenceChange((*reinterpret_cast< Presence(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 9: onSessionClosed((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 10: onNewMessageReady((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Message(*)>(_a[2]))); break;
+        case 11: onAddContactRequest((*reinterpret_cast< TecContact*(*)>(_a[1]))); break;
+        case 12: onEditContactRequest((*reinterpret_cast< TecContact*(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 13: onRemoveContactRequest((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 14: onSubscriptionAccepted((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break;
+        default: ;
+        }
+        _id -= 15;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TecBaseEngine::statusChanged(Status _t1, Reason _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void TecBaseEngine::presenceUpdated(Presence _t1, QString _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void TecBaseEngine::contactPresenceUpdated(QString _t1, Presence _t2, QString _t3)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)), const_cast<void*>(reinterpret_cast<const void*>(&_t3)) };
+    QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void TecBaseEngine::incomingMessage(QString _t1, Message _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void TecBaseEngine::contactListReceived(const TecContactList & _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 4, _a);
+}
+
+// SIGNAL 5
+void TecBaseEngine::subscriptionAccepted(QString _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 5, _a);
+}
+
+// SIGNAL 6
+void TecBaseEngine::authorizationRequest(QString _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 6, _a);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tecbasemainwindow.cpp b/build/release/moc_tecbasemainwindow.cpp
new file mode 100644 (file)
index 0000000..9520aee
--- /dev/null
@@ -0,0 +1,180 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tecbasemainwindow.h'
+**
+** Created: Fri Jun 18 17:41:01 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TecUi/tecbasemainwindow.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tecbasemainwindow.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TecBaseMainWindow[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      15,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       8,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      33,   19,   18,   18, 0x05,
+      71,   67,   18,   18, 0x05,
+     106,   94,   18,   18, 0x05,
+     148,  139,   18,   18, 0x05,
+     188,  172,   18,   18, 0x05,
+     221,   67,   18,   18, 0x05,
+     259,  244,   18,   18, 0x05,
+     294,   18,   18,   18, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+     319,   67,   18,   18, 0x09,
+     351,   67,   18,   18, 0x09,
+     397,  383,   18,   18, 0x09,
+     427,   19,   18,   18, 0x09,
+     480,  462,   18,   18, 0x09,
+     530,   94,   18,   18, 0x09,
+     571,  565,   18,   18, 0x09,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TecBaseMainWindow[] = {
+    "TecBaseMainWindow\0\0presence,desc\0"
+    "presenceChanged(Presence,QString)\0uid\0"
+    "sessionClosed(QString)\0uid,message\0"
+    "newMessageReady(QString,Message)\0"
+    "pContact\0addContact(TecContact*)\0"
+    "pContact,oldUid\0editContact(TecContact*,QString)\0"
+    "removeContact(QString)\0uid,authorized\0"
+    "subscriptionAccepted(QString,bool)\0"
+    "accountSettingsChanged()\0"
+    "onAuthorizationRequest(QString)\0"
+    "onSubscriptionAccepted(QString)\0"
+    "status,reason\0onStatusChange(Status,Reason)\0"
+    "onPresenceUpdate(Presence,QString)\0"
+    "uid,presence,desc\0"
+    "onContactPresenceUpdate(QString,Presence,QString)\0"
+    "onIncomingMessage(QString,Message)\0"
+    "cList\0onContactListReceived(TecContactList)\0"
+};
+
+const QMetaObject TecBaseMainWindow::staticMetaObject = {
+    { &QMainWindow::staticMetaObject, qt_meta_stringdata_TecBaseMainWindow,
+      qt_meta_data_TecBaseMainWindow, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TecBaseMainWindow::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TecBaseMainWindow::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TecBaseMainWindow::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TecBaseMainWindow))
+        return static_cast<void*>(const_cast< TecBaseMainWindow*>(this));
+    return QMainWindow::qt_metacast(_clname);
+}
+
+int TecBaseMainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QMainWindow::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: presenceChanged((*reinterpret_cast< Presence(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 1: sessionClosed((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 2: newMessageReady((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Message(*)>(_a[2]))); break;
+        case 3: addContact((*reinterpret_cast< TecContact*(*)>(_a[1]))); break;
+        case 4: editContact((*reinterpret_cast< TecContact*(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 5: removeContact((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 6: subscriptionAccepted((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break;
+        case 7: accountSettingsChanged(); break;
+        case 8: onAuthorizationRequest((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 9: onSubscriptionAccepted((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 10: onStatusChange((*reinterpret_cast< Status(*)>(_a[1])),(*reinterpret_cast< Reason(*)>(_a[2]))); break;
+        case 11: onPresenceUpdate((*reinterpret_cast< Presence(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 12: onContactPresenceUpdate((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Presence(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3]))); break;
+        case 13: onIncomingMessage((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Message(*)>(_a[2]))); break;
+        case 14: onContactListReceived((*reinterpret_cast< const TecContactList(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 15;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TecBaseMainWindow::presenceChanged(Presence _t1, QString _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void TecBaseMainWindow::sessionClosed(QString _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void TecBaseMainWindow::newMessageReady(QString _t1, Message _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void TecBaseMainWindow::addContact(TecContact * _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void TecBaseMainWindow::editContact(TecContact * _t1, QString _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 4, _a);
+}
+
+// SIGNAL 5
+void TecBaseMainWindow::removeContact(QString _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 5, _a);
+}
+
+// SIGNAL 6
+void TecBaseMainWindow::subscriptionAccepted(QString _t1, bool _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 6, _a);
+}
+
+// SIGNAL 7
+void TecBaseMainWindow::accountSettingsChanged()
+{
+    QMetaObject::activate(this, &staticMetaObject, 7, 0);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tecchatwidget.cpp b/build/release/moc_tecchatwidget.cpp
new file mode 100644 (file)
index 0000000..82d8271
--- /dev/null
@@ -0,0 +1,103 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tecchatwidget.h'
+**
+** Created: Fri Jun 18 17:41:02 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TecUi/tecchatwidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tecchatwidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TecChatWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       4,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       2,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      27,   15,   14,   14, 0x05,
+      60,   14,   14,   14, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+      81,   14,   14,   14, 0x08,
+     101,   14,   14,   14, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TecChatWidget[] = {
+    "TecChatWidget\0\0uid,message\0"
+    "newMessageReady(QString,Message)\0"
+    "smileButtonClicked()\0pressedSendButton()\0"
+    "showEmoticonsDialog()\0"
+};
+
+const QMetaObject TecChatWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TecChatWidget,
+      qt_meta_data_TecChatWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TecChatWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TecChatWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TecChatWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TecChatWidget))
+        return static_cast<void*>(const_cast< TecChatWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TecChatWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: newMessageReady((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< Message(*)>(_a[2]))); break;
+        case 1: smileButtonClicked(); break;
+        case 2: pressedSendButton(); break;
+        case 3: showEmoticonsDialog(); break;
+        default: ;
+        }
+        _id -= 4;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TecChatWidget::newMessageReady(const QString & _t1, Message _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void TecChatWidget::smileButtonClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_teccontactlistwidget.cpp b/build/release/moc_teccontactlistwidget.cpp
new file mode 100644 (file)
index 0000000..6fe95f6
--- /dev/null
@@ -0,0 +1,153 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'teccontactlistwidget.h'
+**
+** Created: Fri Jun 18 17:41:01 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TecUi/teccontactlistwidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'teccontactlistwidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TecContactListWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      11,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       6,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      40,   22,   21,   21, 0x05,
+      82,   76,   21,   21, 0x05,
+     123,  119,   21,   21, 0x05,
+     156,  147,   21,   21, 0x05,
+     196,  180,   21,   21, 0x05,
+     238,  229,   21,   21, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+     288,  276,   21,   21, 0x0a,
+     330,  321,   21,   21, 0x0a,
+     370,  358,   21,   21, 0x0a,
+     399,   21,   21,   21, 0x08,
+     417,   21,   21,   21, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TecContactListWidget[] = {
+    "TecContactListWidget\0\0uid,name,presence\0"
+    "triggered(QString,QString,Presence)\0"
+    "pItem\0contactInfoRequest(QListWidgetItem*)\0"
+    "uid\0removedContact(QString)\0pContact\0"
+    "addContact(TecContact*)\0pContact,oldUid\0"
+    "editContact(TecContact*,QString)\0"
+    "uid,name\0displayedNameChanged(QString,QString)\0"
+    "contactList\0onNewContactList(TecContactList)\0"
+    "pNewItem\0commitAdd(QListWidgetItem*)\0"
+    "pEditedItem\0commitEdit(QListWidgetItem*)\0"
+    "onEditRequested()\0onRemoveRequested()\0"
+};
+
+const QMetaObject TecContactListWidget::staticMetaObject = {
+    { &QListWidget::staticMetaObject, qt_meta_stringdata_TecContactListWidget,
+      qt_meta_data_TecContactListWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TecContactListWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TecContactListWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TecContactListWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TecContactListWidget))
+        return static_cast<void*>(const_cast< TecContactListWidget*>(this));
+    return QListWidget::qt_metacast(_clname);
+}
+
+int TecContactListWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QListWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: triggered((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2])),(*reinterpret_cast< Presence(*)>(_a[3]))); break;
+        case 1: contactInfoRequest((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+        case 2: removedContact((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+        case 3: addContact((*reinterpret_cast< TecContact*(*)>(_a[1]))); break;
+        case 4: editContact((*reinterpret_cast< TecContact*(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 5: displayedNameChanged((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
+        case 6: onNewContactList((*reinterpret_cast< const TecContactList(*)>(_a[1]))); break;
+        case 7: commitAdd((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+        case 8: commitEdit((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+        case 9: onEditRequested(); break;
+        case 10: onRemoveRequested(); break;
+        default: ;
+        }
+        _id -= 11;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TecContactListWidget::triggered(const QString & _t1, const QString & _t2, Presence _t3)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)), const_cast<void*>(reinterpret_cast<const void*>(&_t3)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void TecContactListWidget::contactInfoRequest(QListWidgetItem * _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void TecContactListWidget::removedContact(const QString & _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void TecContactListWidget::addContact(TecContact * _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void TecContactListWidget::editContact(TecContact * _t1, QString _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 4, _a);
+}
+
+// SIGNAL 5
+void TecContactListWidget::displayedNameChanged(const QString & _t1, const QString & _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 5, _a);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tecemoticonsdialog.cpp b/build/release/moc_tecemoticonsdialog.cpp
new file mode 100644 (file)
index 0000000..337b4b4
--- /dev/null
@@ -0,0 +1,80 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tecemoticonsdialog.h'
+**
+** Created: Fri Jun 18 17:41:03 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TecUi/tecemoticonsdialog.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tecemoticonsdialog.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TecEmoticonsDialog[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       1,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       0,       // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+      26,   20,   19,   19, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TecEmoticonsDialog[] = {
+    "TecEmoticonsDialog\0\0pItem\0"
+    "onEmoticonSelected(QListWidgetItem*)\0"
+};
+
+const QMetaObject TecEmoticonsDialog::staticMetaObject = {
+    { &QDialog::staticMetaObject, qt_meta_stringdata_TecEmoticonsDialog,
+      qt_meta_data_TecEmoticonsDialog, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TecEmoticonsDialog::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TecEmoticonsDialog::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TecEmoticonsDialog::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TecEmoticonsDialog))
+        return static_cast<void*>(const_cast< TecEmoticonsDialog*>(this));
+    return QDialog::qt_metacast(_clname);
+}
+
+int TecEmoticonsDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QDialog::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: onEmoticonSelected((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 1;
+    }
+    return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tecengine.cpp b/build/release/moc_tecengine.cpp
new file mode 100644 (file)
index 0000000..2329658
--- /dev/null
@@ -0,0 +1,133 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tecengine.h'
+**
+** Created: Fri Jun 18 17:41:04 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TecEngine/tecengine.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tecengine.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TecEngine[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      15,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       0,       // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+      32,   11,   10,   10, 0x0a,
+      76,   67,   10,   10, 0x0a,
+     125,  109,   10,   10, 0x0a,
+     171,  167,   10,   10, 0x0a,
+     205,  203,   10,   10, 0x0a,
+     242,   10,   10,   10, 0x0a,
+     279,  267,   10,   10, 0x0a,
+     314,  167,   10,   10, 0x0a,
+     365,  339,   10,   10, 0x08,
+     498,  464,   10,   10, 0x08,
+     582,  464,   10,   10, 0x08,
+     691,  670,   10,   10, 0x08,
+     786,  772,   10,   10, 0x08,
+     926,  889,   10,   10, 0x08,
+     992,   67,   10,   10, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TecEngine[] = {
+    "TecEngine\0\0presence,description\0"
+    "onPresenceChange(Presence,QString)\0"
+    "pContact\0onAddContactRequest(TecContact*)\0"
+    "pContact,oldUid\0"
+    "onEditContactRequest(TecContact*,QString)\0"
+    "uid\0onRemoveContactRequest(QString)\0"
+    ",\0onSubscriptionAccepted(QString,bool)\0"
+    "initializeFromSettings()\0uid,message\0"
+    "onNewMessageReady(QString,Message)\0"
+    "onSessionClosed(QString)\0"
+    "pConnection,status,reason\0"
+    "onStatusChange(QtTapioca::Connection*,QtTapioca::Connection::Status,Qt"
+    "Tapioca::Connection::Reason)\0"
+    "pContact,presence,presenceMessage\0"
+    "onPresenceUpdated(QtTapioca::ContactBase*,QtTapioca::ContactBase::Pres"
+    "ence,QString)\0"
+    "onSelfPresenceUpdated(QtTapioca::ContactBase*,QtTapioca::ContactBase::"
+    "Presence,QString)\0"
+    "pTextChannel,message\0"
+    "onMessageReceived(const QtTapioca::TextChannel*,QtTapioca::TextChannel"
+    "::Message)\0"
+    "message,error\0"
+    "onMessageDeliveryError(QtTapioca::TextChannel::Message,QtTapioca::Text"
+    "Channel::Message::DeliveryError)\0"
+    "pConnection,pChannel,bSuppresHandler\0"
+    "onChannelCreated(QtTapioca::Connection*,QtTapioca::Channel*,bool)\0"
+    "onAuthorizationRequested(QtTapioca::Contact*)\0"
+};
+
+const QMetaObject TecEngine::staticMetaObject = {
+    { &TecBaseEngine::staticMetaObject, qt_meta_stringdata_TecEngine,
+      qt_meta_data_TecEngine, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TecEngine::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TecEngine::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TecEngine::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TecEngine))
+        return static_cast<void*>(const_cast< TecEngine*>(this));
+    return TecBaseEngine::qt_metacast(_clname);
+}
+
+int TecEngine::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = TecBaseEngine::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: onPresenceChange((*reinterpret_cast< Presence(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 1: onAddContactRequest((*reinterpret_cast< TecContact*(*)>(_a[1]))); break;
+        case 2: onEditContactRequest((*reinterpret_cast< TecContact*(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 3: onRemoveContactRequest((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 4: onSubscriptionAccepted((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break;
+        case 5: initializeFromSettings(); break;
+        case 6: onNewMessageReady((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Message(*)>(_a[2]))); break;
+        case 7: onSessionClosed((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 8: onStatusChange((*reinterpret_cast< QtTapioca::Connection*(*)>(_a[1])),(*reinterpret_cast< QtTapioca::Connection::Status(*)>(_a[2])),(*reinterpret_cast< QtTapioca::Connection::Reason(*)>(_a[3]))); break;
+        case 9: onPresenceUpdated((*reinterpret_cast< QtTapioca::ContactBase*(*)>(_a[1])),(*reinterpret_cast< QtTapioca::ContactBase::Presence(*)>(_a[2])),(*reinterpret_cast< const QString(*)>(_a[3]))); break;
+        case 10: onSelfPresenceUpdated((*reinterpret_cast< QtTapioca::ContactBase*(*)>(_a[1])),(*reinterpret_cast< QtTapioca::ContactBase::Presence(*)>(_a[2])),(*reinterpret_cast< const QString(*)>(_a[3]))); break;
+        case 11: onMessageReceived((*reinterpret_cast< const QtTapioca::TextChannel*(*)>(_a[1])),(*reinterpret_cast< const QtTapioca::TextChannel::Message(*)>(_a[2]))); break;
+        case 12: onMessageDeliveryError((*reinterpret_cast< const QtTapioca::TextChannel::Message(*)>(_a[1])),(*reinterpret_cast< QtTapioca::TextChannel::Message::DeliveryError(*)>(_a[2]))); break;
+        case 13: onChannelCreated((*reinterpret_cast< QtTapioca::Connection*(*)>(_a[1])),(*reinterpret_cast< QtTapioca::Channel*(*)>(_a[2])),(*reinterpret_cast< bool(*)>(_a[3]))); break;
+        case 14: onAuthorizationRequested((*reinterpret_cast< QtTapioca::Contact*(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 15;
+    }
+    return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tecgeneralsettingswidget.cpp b/build/release/moc_tecgeneralsettingswidget.cpp
new file mode 100644 (file)
index 0000000..4f2d349
--- /dev/null
@@ -0,0 +1,98 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tecgeneralsettingswidget.h'
+**
+** Created: Fri Jun 18 17:41:02 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TecUi/tecgeneralsettingswidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tecgeneralsettingswidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TecGeneralSettingsWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       3,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       2,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      26,   25,   25,   25, 0x05,
+      37,   25,   25,   25, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+      51,   25,   25,   25, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TecGeneralSettingsWidget[] = {
+    "TecGeneralSettingsWidget\0\0finished()\0"
+    "backClicked()\0saveGeneralSettings()\0"
+};
+
+const QMetaObject TecGeneralSettingsWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TecGeneralSettingsWidget,
+      qt_meta_data_TecGeneralSettingsWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TecGeneralSettingsWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TecGeneralSettingsWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TecGeneralSettingsWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TecGeneralSettingsWidget))
+        return static_cast<void*>(const_cast< TecGeneralSettingsWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TecGeneralSettingsWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: finished(); break;
+        case 1: backClicked(); break;
+        case 2: saveGeneralSettings(); break;
+        default: ;
+        }
+        _id -= 3;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TecGeneralSettingsWidget::finished()
+{
+    QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void TecGeneralSettingsWidget::backClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tecmaintoolbar.cpp b/build/release/moc_tecmaintoolbar.cpp
new file mode 100644 (file)
index 0000000..7a9b426
--- /dev/null
@@ -0,0 +1,268 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tecmaintoolbar.h'
+**
+** Created: Fri Jun 18 17:41:03 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TecUi/tecmaintoolbar.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tecmaintoolbar.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TecMainToolbar[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      14,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       6,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      25,   16,   15,   15, 0x05,
+      69,   65,   15,   15, 0x05,
+      94,   15,   15,   15, 0x05,
+     116,   15,   15,   15, 0x05,
+     134,   15,   15,   15, 0x05,
+     166,  152,   15,   15, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+     217,  199,   15,   15, 0x0a,
+     256,   15,   15,   15, 0x08,
+     278,   15,   15,   15, 0x08,
+     297,   15,   15,   15, 0x08,
+     329,  321,   15,   15, 0x08,
+     371,  364,   15,   15, 0x08,
+     401,   15,   15,   15, 0x08,
+     421,   15,   15,   15, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TecMainToolbar[] = {
+    "TecMainToolbar\0\0uid,name\0"
+    "activeSessionTriggered(QString,QString)\0"
+    "uid\0finishedSession(QString)\0"
+    "finishedAllSessions()\0contactsClicked()\0"
+    "settingsClicked()\0presence,desc\0"
+    "presenceUpdate(Presence,QString)\0"
+    "uid,name,presence\0"
+    "onNewSession(QString,QString,Presence)\0"
+    "closeCurrentSession()\0closeAllSessions()\0"
+    "restoreCurrentSession()\0pAction\0"
+    "onActiveSessionTriggered(QAction*)\0"
+    "action\0onTriggeredPresence(QAction*)\0"
+    "onContactsClicked()\0onSettingsClicked()\0"
+};
+
+const QMetaObject TecMainToolbar::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TecMainToolbar,
+      qt_meta_data_TecMainToolbar, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TecMainToolbar::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TecMainToolbar::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TecMainToolbar::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TecMainToolbar))
+        return static_cast<void*>(const_cast< TecMainToolbar*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TecMainToolbar::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: activeSessionTriggered((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
+        case 1: finishedSession((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+        case 2: finishedAllSessions(); break;
+        case 3: contactsClicked(); break;
+        case 4: settingsClicked(); break;
+        case 5: presenceUpdate((*reinterpret_cast< Presence(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
+        case 6: onNewSession((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2])),(*reinterpret_cast< Presence(*)>(_a[3]))); break;
+        case 7: closeCurrentSession(); break;
+        case 8: closeAllSessions(); break;
+        case 9: restoreCurrentSession(); break;
+        case 10: onActiveSessionTriggered((*reinterpret_cast< QAction*(*)>(_a[1]))); break;
+        case 11: onTriggeredPresence((*reinterpret_cast< QAction*(*)>(_a[1]))); break;
+        case 12: onContactsClicked(); break;
+        case 13: onSettingsClicked(); break;
+        default: ;
+        }
+        _id -= 14;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TecMainToolbar::activeSessionTriggered(const QString & _t1, const QString & _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void TecMainToolbar::finishedSession(const QString & _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void TecMainToolbar::finishedAllSessions()
+{
+    QMetaObject::activate(this, &staticMetaObject, 2, 0);
+}
+
+// SIGNAL 3
+void TecMainToolbar::contactsClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 3, 0);
+}
+
+// SIGNAL 4
+void TecMainToolbar::settingsClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 4, 0);
+}
+
+// SIGNAL 5
+void TecMainToolbar::presenceUpdate(Presence _t1, const QString & _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 5, _a);
+}
+static const uint qt_meta_data_ActiveSessions[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       2,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       0,       // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+      16,   15,   15,   15, 0x08,
+      27,   15,   15,   15, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_ActiveSessions[] = {
+    "ActiveSessions\0\0scrollUp()\0scrollDown()\0"
+};
+
+const QMetaObject ActiveSessions::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_ActiveSessions,
+      qt_meta_data_ActiveSessions, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &ActiveSessions::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *ActiveSessions::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *ActiveSessions::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_ActiveSessions))
+        return static_cast<void*>(const_cast< ActiveSessions*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int ActiveSessions::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: scrollUp(); break;
+        case 1: scrollDown(); break;
+        default: ;
+        }
+        _id -= 2;
+    }
+    return _id;
+}
+static const uint qt_meta_data_ScrollWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       0,       // signalCount
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_ScrollWidget[] = {
+    "ScrollWidget\0"
+};
+
+const QMetaObject ScrollWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_ScrollWidget,
+      qt_meta_data_ScrollWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &ScrollWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *ScrollWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *ScrollWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_ScrollWidget))
+        return static_cast<void*>(const_cast< ScrollWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int ScrollWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tecmainwindow.cpp b/build/release/moc_tecmainwindow.cpp
new file mode 100644 (file)
index 0000000..4e018ef
--- /dev/null
@@ -0,0 +1,148 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tecmainwindow.h'
+**
+** Created: Fri Jun 18 17:41:01 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TecUi/tecmainwindow.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tecmainwindow.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TecMainWindow[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      26,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       0,       // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+      19,   15,   14,   14, 0x09,
+      51,   15,   14,   14, 0x09,
+      97,   83,   14,   14, 0x09,
+     141,  127,   14,   14, 0x09,
+     194,  176,   14,   14, 0x09,
+     256,  244,   14,   14, 0x09,
+     297,  291,   14,   14, 0x09,
+     353,  335,   14,   14, 0x08,
+     397,  388,   14,   14, 0x28,
+     423,   15,   14,   14, 0x08,
+     442,   14,   14,   14, 0x08,
+     462,   14,   14,   14, 0x08,
+     483,  478,   14,   14, 0x08,
+     502,  497,   14,   14, 0x08,
+     533,   14,   14,   14, 0x08,
+     548,   14,   14,   14, 0x08,
+     567,   14,   14,   14, 0x08,
+     582,   14,   14,   14, 0x08,
+     601,   14,   14,   14, 0x08,
+     615,   14,   14,   14, 0x08,
+     638,   14,   14,   14, 0x08,
+     658,  388,   14,   14, 0x08,
+     697,   14,   14,   14, 0x08,
+     711,   14,   14,   14, 0x08,
+     738,   14,   14,   14, 0x08,
+     765,   14,   14,   14, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TecMainWindow[] = {
+    "TecMainWindow\0\0uid\0onAuthorizationRequest(QString)\0"
+    "onSubscriptionAccepted(QString)\0"
+    "status,reason\0onStatusChange(Status,Reason)\0"
+    "presence,desc\0onPresenceUpdate(Presence,QString)\0"
+    "uid,presence,desc\0"
+    "onContactPresenceUpdate(QString,Presence,QString)\0"
+    "uid,message\0onIncomingMessage(QString,Message)\0"
+    "cList\0onContactListReceived(TecContactList)\0"
+    "uid,name,presence\0showChat(QString,QString,Presence)\0"
+    "uid,name\0showChat(QString,QString)\0"
+    "closeChat(QString)\0closeAllOpenChats()\0"
+    "clearAllChats()\0type\0showView(int)\0"
+    "item\0showUserInfo(QListWidgetItem*)\0"
+    "showContacts()\0returnToContacts()\0"
+    "showSettings()\0returnToSettings()\0"
+    "showAccount()\0returnToIntermediate()\0"
+    "showAccountCreate()\0"
+    "onDisplayedNameChange(QString,QString)\0"
+    "reloadTheme()\0onAccountSettingsChanged()\0"
+    "onAccountSettingsCreated()\0showAbout()\0"
+};
+
+const QMetaObject TecMainWindow::staticMetaObject = {
+    { &TecBaseMainWindow::staticMetaObject, qt_meta_stringdata_TecMainWindow,
+      qt_meta_data_TecMainWindow, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TecMainWindow::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TecMainWindow::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TecMainWindow::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TecMainWindow))
+        return static_cast<void*>(const_cast< TecMainWindow*>(this));
+    return TecBaseMainWindow::qt_metacast(_clname);
+}
+
+int TecMainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = TecBaseMainWindow::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: onAuthorizationRequest((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 1: onSubscriptionAccepted((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 2: onStatusChange((*reinterpret_cast< Status(*)>(_a[1])),(*reinterpret_cast< Reason(*)>(_a[2]))); break;
+        case 3: onPresenceUpdate((*reinterpret_cast< Presence(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 4: onContactPresenceUpdate((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Presence(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3]))); break;
+        case 5: onIncomingMessage((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Message(*)>(_a[2]))); break;
+        case 6: onContactListReceived((*reinterpret_cast< const TecContactList(*)>(_a[1]))); break;
+        case 7: showChat((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2])),(*reinterpret_cast< Presence(*)>(_a[3]))); break;
+        case 8: showChat((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
+        case 9: closeChat((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+        case 10: closeAllOpenChats(); break;
+        case 11: clearAllChats(); break;
+        case 12: showView((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 13: showUserInfo((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+        case 14: showContacts(); break;
+        case 15: returnToContacts(); break;
+        case 16: showSettings(); break;
+        case 17: returnToSettings(); break;
+        case 18: showAccount(); break;
+        case 19: returnToIntermediate(); break;
+        case 20: showAccountCreate(); break;
+        case 21: onDisplayedNameChange((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
+        case 22: reloadTheme(); break;
+        case 23: onAccountSettingsChanged(); break;
+        case 24: onAccountSettingsCreated(); break;
+        case 25: showAbout(); break;
+        default: ;
+        }
+        _id -= 26;
+    }
+    return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tecsettingswidget.cpp b/build/release/moc_tecsettingswidget.cpp
new file mode 100644 (file)
index 0000000..4183419
--- /dev/null
@@ -0,0 +1,86 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tecsettingswidget.h'
+**
+** Created: Fri Jun 18 17:41:02 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TecUi/tecsettingswidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tecsettingswidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TecSettingsWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       1,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       1,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      28,   19,   18,   18, 0x05,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TecSettingsWidget[] = {
+    "TecSettingsWidget\0\0viewType\0triggered(int)\0"
+};
+
+const QMetaObject TecSettingsWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TecSettingsWidget,
+      qt_meta_data_TecSettingsWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TecSettingsWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TecSettingsWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TecSettingsWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TecSettingsWidget))
+        return static_cast<void*>(const_cast< TecSettingsWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TecSettingsWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: triggered((*reinterpret_cast< int(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 1;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TecSettingsWidget::triggered(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tecthemessettingswidget.cpp b/build/release/moc_tecthemessettingswidget.cpp
new file mode 100644 (file)
index 0000000..3aee0f0
--- /dev/null
@@ -0,0 +1,98 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tecthemessettingswidget.h'
+**
+** Created: Fri Jun 18 17:41:03 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TecUi/tecthemessettingswidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tecthemessettingswidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TecThemesSettingsWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       3,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       2,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      25,   24,   24,   24, 0x05,
+      39,   24,   24,   24, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+      61,   24,   24,   24, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TecThemesSettingsWidget[] = {
+    "TecThemesSettingsWidget\0\0backClicked()\0"
+    "currentThemeChanged()\0saveThemesSettings()\0"
+};
+
+const QMetaObject TecThemesSettingsWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TecThemesSettingsWidget,
+      qt_meta_data_TecThemesSettingsWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TecThemesSettingsWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TecThemesSettingsWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TecThemesSettingsWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TecThemesSettingsWidget))
+        return static_cast<void*>(const_cast< TecThemesSettingsWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TecThemesSettingsWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: backClicked(); break;
+        case 1: currentThemeChanged(); break;
+        case 2: saveThemesSettings(); break;
+        default: ;
+        }
+        _id -= 3;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TecThemesSettingsWidget::backClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void TecThemesSettingsWidget::currentThemeChanged()
+{
+    QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tecuserinfowidget.cpp b/build/release/moc_tecuserinfowidget.cpp
new file mode 100644 (file)
index 0000000..199d44c
--- /dev/null
@@ -0,0 +1,103 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tecuserinfowidget.h'
+**
+** Created: Fri Jun 18 17:41:02 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TecUi/tecuserinfowidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tecuserinfowidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TecUserInfoWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       4,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       2,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      31,   19,   18,   18, 0x05,
+      64,   18,   18,   18, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+      75,   18,   18,   18, 0x08,
+      93,   87,   18,   18, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TecUserInfoWidget[] = {
+    "TecUserInfoWidget\0\0contactItem\0"
+    "contactChanged(QListWidgetItem*)\0"
+    "finished()\0okClicked()\0index\0"
+    "onCurrentIndexChanged(int)\0"
+};
+
+const QMetaObject TecUserInfoWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TecUserInfoWidget,
+      qt_meta_data_TecUserInfoWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TecUserInfoWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TecUserInfoWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TecUserInfoWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TecUserInfoWidget))
+        return static_cast<void*>(const_cast< TecUserInfoWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TecUserInfoWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: contactChanged((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+        case 1: finished(); break;
+        case 2: okClicked(); break;
+        case 3: onCurrentIndexChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 4;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TecUserInfoWidget::contactChanged(QListWidgetItem * _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void TecUserInfoWidget::finished()
+{
+    QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tocaccountintermediatewidget.cpp b/build/release/moc_tocaccountintermediatewidget.cpp
new file mode 100644 (file)
index 0000000..d2f91d2
--- /dev/null
@@ -0,0 +1,103 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tocaccountintermediatewidget.h'
+**
+** Created: Thu Jul 8 08:48:17 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TocUi/tocaccountintermediatewidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tocaccountintermediatewidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TocAccountIntermediateWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       3,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       3,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      30,   29,   29,   29, 0x05,
+      46,   29,   29,   29, 0x05,
+      60,   29,   29,   29, 0x05,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TocAccountIntermediateWidget[] = {
+    "TocAccountIntermediateWidget\0\0"
+    "createClicked()\0editClicked()\0"
+    "backClicked()\0"
+};
+
+const QMetaObject TocAccountIntermediateWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TocAccountIntermediateWidget,
+      qt_meta_data_TocAccountIntermediateWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TocAccountIntermediateWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TocAccountIntermediateWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TocAccountIntermediateWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TocAccountIntermediateWidget))
+        return static_cast<void*>(const_cast< TocAccountIntermediateWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TocAccountIntermediateWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: createClicked(); break;
+        case 1: editClicked(); break;
+        case 2: backClicked(); break;
+        default: ;
+        }
+        _id -= 3;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TocAccountIntermediateWidget::createClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void TocAccountIntermediateWidget::editClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+
+// SIGNAL 2
+void TocAccountIntermediateWidget::backClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 2, 0);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tocaccountsettingswidget.cpp b/build/release/moc_tocaccountsettingswidget.cpp
new file mode 100644 (file)
index 0000000..fca4498
--- /dev/null
@@ -0,0 +1,129 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tocaccountsettingswidget.h'
+**
+** Created: Thu Jul 8 08:48:16 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TocUi/tocaccountsettingswidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tocaccountsettingswidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TocAccountSettingsWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      10,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       4,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      26,   25,   25,   25, 0x05,
+      51,   25,   25,   25, 0x05,
+      79,   25,   25,   25, 0x05,
+      90,   25,   25,   25, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+     104,   25,   25,   25, 0x0a,
+     113,   25,   25,   25, 0x08,
+     126,   25,   25,   25, 0x08,
+     160,  151,   25,   25, 0x08,
+     193,  181,   25,   25, 0x08,
+     217,   25,   25,   25, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TocAccountSettingsWidget[] = {
+    "TocAccountSettingsWidget\0\0"
+    "accountSettingsChanged()\0"
+    "newAccountSettingsCreated()\0finished()\0"
+    "backClicked()\0reload()\0onOkButton()\0"
+    "onChangePasswordButton()\0newLogin\0"
+    "loginEdited(QString)\0newProtocol\0"
+    "protocolEdited(QString)\0disconnectHints()\0"
+};
+
+const QMetaObject TocAccountSettingsWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TocAccountSettingsWidget,
+      qt_meta_data_TocAccountSettingsWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TocAccountSettingsWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TocAccountSettingsWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TocAccountSettingsWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TocAccountSettingsWidget))
+        return static_cast<void*>(const_cast< TocAccountSettingsWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TocAccountSettingsWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: accountSettingsChanged(); break;
+        case 1: newAccountSettingsCreated(); break;
+        case 2: finished(); break;
+        case 3: backClicked(); break;
+        case 4: reload(); break;
+        case 5: onOkButton(); break;
+        case 6: onChangePasswordButton(); break;
+        case 7: loginEdited((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+        case 8: protocolEdited((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+        case 9: disconnectHints(); break;
+        default: ;
+        }
+        _id -= 10;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TocAccountSettingsWidget::accountSettingsChanged()
+{
+    QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void TocAccountSettingsWidget::newAccountSettingsCreated()
+{
+    QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+
+// SIGNAL 2
+void TocAccountSettingsWidget::finished()
+{
+    QMetaObject::activate(this, &staticMetaObject, 2, 0);
+}
+
+// SIGNAL 3
+void TocAccountSettingsWidget::backClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 3, 0);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tocbaseengine.cpp b/build/release/moc_tocbaseengine.cpp
new file mode 100644 (file)
index 0000000..537bcd9
--- /dev/null
@@ -0,0 +1,176 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tocbaseengine.h'
+**
+** Created: Thu Jul 8 08:48:17 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TocEngine/tocbaseengine.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tocbaseengine.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TocBaseEngine[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      15,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       7,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      29,   15,   14,   14, 0x05,
+      79,   58,   14,   14, 0x05,
+     138,  113,   14,   14, 0x05,
+     199,  187,   14,   14, 0x05,
+     244,  232,   14,   14, 0x05,
+     284,  280,   14,   14, 0x05,
+     314,  280,   14,   14, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+     344,   14,   14,   14, 0x0a,
+     369,   58,   14,   14, 0x0a,
+     404,  280,   14,   14, 0x0a,
+     429,  187,   14,   14, 0x0a,
+     473,  464,   14,   14, 0x0a,
+     522,  506,   14,   14, 0x0a,
+     564,  280,   14,   14, 0x0a,
+     612,  596,   14,   14, 0x0a,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TocBaseEngine[] = {
+    "TocBaseEngine\0\0status,reason\0"
+    "statusChanged(Status,Reason)\0"
+    "presence,description\0"
+    "presenceUpdated(Presence,QString)\0"
+    "uid,presence,description\0"
+    "contactPresenceUpdated(QString,Presence,QString)\0"
+    "uid,message\0incomingMessage(QString,Message)\0"
+    "contactList\0contactListReceived(TocContactList)\0"
+    "uid\0subscriptionAccepted(QString)\0"
+    "authorizationRequest(QString)\0"
+    "initializeFromSettings()\0"
+    "onPresenceChange(Presence,QString)\0"
+    "onSessionClosed(QString)\0"
+    "onNewMessageReady(QString,Message)\0"
+    "pContact\0onAddContactRequest(TocContact*)\0"
+    "pContact,oldUid\0"
+    "onEditContactRequest(TocContact*,QString)\0"
+    "onRemoveContactRequest(QString)\0"
+    "uid,bAuthorized\0onSubscriptionAccepted(QString,bool)\0"
+};
+
+const QMetaObject TocBaseEngine::staticMetaObject = {
+    { &QObject::staticMetaObject, qt_meta_stringdata_TocBaseEngine,
+      qt_meta_data_TocBaseEngine, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TocBaseEngine::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TocBaseEngine::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TocBaseEngine::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TocBaseEngine))
+        return static_cast<void*>(const_cast< TocBaseEngine*>(this));
+    return QObject::qt_metacast(_clname);
+}
+
+int TocBaseEngine::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QObject::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: statusChanged((*reinterpret_cast< Status(*)>(_a[1])),(*reinterpret_cast< Reason(*)>(_a[2]))); break;
+        case 1: presenceUpdated((*reinterpret_cast< Presence(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 2: contactPresenceUpdated((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Presence(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3]))); break;
+        case 3: incomingMessage((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Message(*)>(_a[2]))); break;
+        case 4: contactListReceived((*reinterpret_cast< const TocContactList(*)>(_a[1]))); break;
+        case 5: subscriptionAccepted((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 6: authorizationRequest((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 7: initializeFromSettings(); break;
+        case 8: onPresenceChange((*reinterpret_cast< Presence(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 9: onSessionClosed((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 10: onNewMessageReady((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Message(*)>(_a[2]))); break;
+        case 11: onAddContactRequest((*reinterpret_cast< TocContact*(*)>(_a[1]))); break;
+        case 12: onEditContactRequest((*reinterpret_cast< TocContact*(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 13: onRemoveContactRequest((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 14: onSubscriptionAccepted((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break;
+        default: ;
+        }
+        _id -= 15;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TocBaseEngine::statusChanged(Status _t1, Reason _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void TocBaseEngine::presenceUpdated(Presence _t1, QString _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void TocBaseEngine::contactPresenceUpdated(QString _t1, Presence _t2, QString _t3)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)), const_cast<void*>(reinterpret_cast<const void*>(&_t3)) };
+    QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void TocBaseEngine::incomingMessage(QString _t1, Message _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void TocBaseEngine::contactListReceived(const TocContactList & _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 4, _a);
+}
+
+// SIGNAL 5
+void TocBaseEngine::subscriptionAccepted(QString _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 5, _a);
+}
+
+// SIGNAL 6
+void TocBaseEngine::authorizationRequest(QString _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 6, _a);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tocbasemainwindow.cpp b/build/release/moc_tocbasemainwindow.cpp
new file mode 100644 (file)
index 0000000..c45d400
--- /dev/null
@@ -0,0 +1,180 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tocbasemainwindow.h'
+**
+** Created: Thu Jul 8 08:48:15 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TocUi/tocbasemainwindow.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tocbasemainwindow.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TocBaseMainWindow[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      15,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       8,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      33,   19,   18,   18, 0x05,
+      71,   67,   18,   18, 0x05,
+     106,   94,   18,   18, 0x05,
+     148,  139,   18,   18, 0x05,
+     188,  172,   18,   18, 0x05,
+     221,   67,   18,   18, 0x05,
+     259,  244,   18,   18, 0x05,
+     294,   18,   18,   18, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+     319,   67,   18,   18, 0x09,
+     351,   67,   18,   18, 0x09,
+     397,  383,   18,   18, 0x09,
+     427,   19,   18,   18, 0x09,
+     480,  462,   18,   18, 0x09,
+     530,   94,   18,   18, 0x09,
+     571,  565,   18,   18, 0x09,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TocBaseMainWindow[] = {
+    "TocBaseMainWindow\0\0presence,desc\0"
+    "presenceChanged(Presence,QString)\0uid\0"
+    "sessionClosed(QString)\0uid,message\0"
+    "newMessageReady(QString,Message)\0"
+    "pContact\0addContact(TocContact*)\0"
+    "pContact,oldUid\0editContact(TocContact*,QString)\0"
+    "removeContact(QString)\0uid,authorized\0"
+    "subscriptionAccepted(QString,bool)\0"
+    "accountSettingsChanged()\0"
+    "onAuthorizationRequest(QString)\0"
+    "onSubscriptionAccepted(QString)\0"
+    "status,reason\0onStatusChange(Status,Reason)\0"
+    "onPresenceUpdate(Presence,QString)\0"
+    "uid,presence,desc\0"
+    "onContactPresenceUpdate(QString,Presence,QString)\0"
+    "onIncomingMessage(QString,Message)\0"
+    "cList\0onContactListReceived(TocContactList)\0"
+};
+
+const QMetaObject TocBaseMainWindow::staticMetaObject = {
+    { &QMainWindow::staticMetaObject, qt_meta_stringdata_TocBaseMainWindow,
+      qt_meta_data_TocBaseMainWindow, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TocBaseMainWindow::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TocBaseMainWindow::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TocBaseMainWindow::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TocBaseMainWindow))
+        return static_cast<void*>(const_cast< TocBaseMainWindow*>(this));
+    return QMainWindow::qt_metacast(_clname);
+}
+
+int TocBaseMainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QMainWindow::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: presenceChanged((*reinterpret_cast< Presence(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 1: sessionClosed((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 2: newMessageReady((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Message(*)>(_a[2]))); break;
+        case 3: addContact((*reinterpret_cast< TocContact*(*)>(_a[1]))); break;
+        case 4: editContact((*reinterpret_cast< TocContact*(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 5: removeContact((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 6: subscriptionAccepted((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break;
+        case 7: accountSettingsChanged(); break;
+        case 8: onAuthorizationRequest((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 9: onSubscriptionAccepted((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 10: onStatusChange((*reinterpret_cast< Status(*)>(_a[1])),(*reinterpret_cast< Reason(*)>(_a[2]))); break;
+        case 11: onPresenceUpdate((*reinterpret_cast< Presence(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 12: onContactPresenceUpdate((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Presence(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3]))); break;
+        case 13: onIncomingMessage((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Message(*)>(_a[2]))); break;
+        case 14: onContactListReceived((*reinterpret_cast< const TocContactList(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 15;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TocBaseMainWindow::presenceChanged(Presence _t1, QString _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void TocBaseMainWindow::sessionClosed(QString _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void TocBaseMainWindow::newMessageReady(QString _t1, Message _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void TocBaseMainWindow::addContact(TocContact * _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void TocBaseMainWindow::editContact(TocContact * _t1, QString _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 4, _a);
+}
+
+// SIGNAL 5
+void TocBaseMainWindow::removeContact(QString _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 5, _a);
+}
+
+// SIGNAL 6
+void TocBaseMainWindow::subscriptionAccepted(QString _t1, bool _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 6, _a);
+}
+
+// SIGNAL 7
+void TocBaseMainWindow::accountSettingsChanged()
+{
+    QMetaObject::activate(this, &staticMetaObject, 7, 0);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tocchatwidget.cpp b/build/release/moc_tocchatwidget.cpp
new file mode 100644 (file)
index 0000000..17f372d
--- /dev/null
@@ -0,0 +1,103 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tocchatwidget.h'
+**
+** Created: Thu Jul 8 08:48:16 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TocUi/tocchatwidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tocchatwidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TocChatWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       4,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       2,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      27,   15,   14,   14, 0x05,
+      60,   14,   14,   14, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+      81,   14,   14,   14, 0x08,
+     101,   14,   14,   14, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TocChatWidget[] = {
+    "TocChatWidget\0\0uid,message\0"
+    "newMessageReady(QString,Message)\0"
+    "smileButtonClicked()\0pressedSendButton()\0"
+    "showEmoticonsDialog()\0"
+};
+
+const QMetaObject TocChatWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TocChatWidget,
+      qt_meta_data_TocChatWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TocChatWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TocChatWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TocChatWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TocChatWidget))
+        return static_cast<void*>(const_cast< TocChatWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TocChatWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: newMessageReady((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< Message(*)>(_a[2]))); break;
+        case 1: smileButtonClicked(); break;
+        case 2: pressedSendButton(); break;
+        case 3: showEmoticonsDialog(); break;
+        default: ;
+        }
+        _id -= 4;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TocChatWidget::newMessageReady(const QString & _t1, Message _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void TocChatWidget::smileButtonClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_toccontactlistwidget.cpp b/build/release/moc_toccontactlistwidget.cpp
new file mode 100644 (file)
index 0000000..4db011d
--- /dev/null
@@ -0,0 +1,199 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'toccontactlistwidget.h'
+**
+** Created: Thu Jul 8 08:48:15 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TocUi/toccontactlistwidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'toccontactlistwidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TocContactListWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      13,   14, // methods
+       1,   79, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       7,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      40,   22,   21,   21, 0x05,
+      82,   76,   21,   21, 0x05,
+     123,  119,   21,   21, 0x05,
+     156,  147,   21,   21, 0x05,
+     196,  180,   21,   21, 0x05,
+     238,  229,   21,   21, 0x05,
+     280,  276,   21,   21, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+     317,  305,   21,   21, 0x0a,
+     359,  350,   21,   21, 0x0a,
+     399,  387,   21,   21, 0x0a,
+     428,   21,   21,   21, 0x08,
+     446,   21,   21,   21, 0x08,
+     466,  276,   21,   21, 0x08,
+
+ // properties: name, type, flags
+     497,  490, 0x43495103,
+
+ // properties: notify_signal_id
+       6,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TocContactListWidget[] = {
+    "TocContactListWidget\0\0uid,name,presence\0"
+    "triggered(QString,QString,Presence)\0"
+    "pItem\0contactInfoRequest(QListWidgetItem*)\0"
+    "uid\0removedContact(QString)\0pContact\0"
+    "addContact(TocContact*)\0pContact,oldUid\0"
+    "editContact(TocContact*,QString)\0"
+    "uid,name\0displayedNameChanged(QString,QString)\0"
+    "rgb\0logoColorChanged(QColor)\0contactList\0"
+    "onNewContactList(TocContactList)\0"
+    "pNewItem\0commitAdd(QListWidgetItem*)\0"
+    "pEditedItem\0commitEdit(QListWidgetItem*)\0"
+    "onEditRequested()\0onRemoveRequested()\0"
+    "changeLogoColor(QColor)\0QColor\0logoColor\0"
+};
+
+const QMetaObject TocContactListWidget::staticMetaObject = {
+    { &QListWidget::staticMetaObject, qt_meta_stringdata_TocContactListWidget,
+      qt_meta_data_TocContactListWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TocContactListWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TocContactListWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TocContactListWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TocContactListWidget))
+        return static_cast<void*>(const_cast< TocContactListWidget*>(this));
+    return QListWidget::qt_metacast(_clname);
+}
+
+int TocContactListWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QListWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: triggered((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2])),(*reinterpret_cast< Presence(*)>(_a[3]))); break;
+        case 1: contactInfoRequest((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+        case 2: removedContact((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+        case 3: addContact((*reinterpret_cast< TocContact*(*)>(_a[1]))); break;
+        case 4: editContact((*reinterpret_cast< TocContact*(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 5: displayedNameChanged((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
+        case 6: logoColorChanged((*reinterpret_cast< QColor(*)>(_a[1]))); break;
+        case 7: onNewContactList((*reinterpret_cast< const TocContactList(*)>(_a[1]))); break;
+        case 8: commitAdd((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+        case 9: commitEdit((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+        case 10: onEditRequested(); break;
+        case 11: onRemoveRequested(); break;
+        case 12: changeLogoColor((*reinterpret_cast< QColor(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 13;
+    }
+#ifndef QT_NO_PROPERTIES
+      else if (_c == QMetaObject::ReadProperty) {
+        void *_v = _a[0];
+        switch (_id) {
+        case 0: *reinterpret_cast< QColor*>(_v) = logoColor(); break;
+        }
+        _id -= 1;
+    } else if (_c == QMetaObject::WriteProperty) {
+        void *_v = _a[0];
+        switch (_id) {
+        case 0: setLogoColor(*reinterpret_cast< QColor*>(_v)); break;
+        }
+        _id -= 1;
+    } else if (_c == QMetaObject::ResetProperty) {
+        _id -= 1;
+    } else if (_c == QMetaObject::QueryPropertyDesignable) {
+        _id -= 1;
+    } else if (_c == QMetaObject::QueryPropertyScriptable) {
+        _id -= 1;
+    } else if (_c == QMetaObject::QueryPropertyStored) {
+        _id -= 1;
+    } else if (_c == QMetaObject::QueryPropertyEditable) {
+        _id -= 1;
+    } else if (_c == QMetaObject::QueryPropertyUser) {
+        _id -= 1;
+    }
+#endif // QT_NO_PROPERTIES
+    return _id;
+}
+
+// SIGNAL 0
+void TocContactListWidget::triggered(const QString & _t1, const QString & _t2, Presence _t3)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)), const_cast<void*>(reinterpret_cast<const void*>(&_t3)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void TocContactListWidget::contactInfoRequest(QListWidgetItem * _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void TocContactListWidget::removedContact(const QString & _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void TocContactListWidget::addContact(TocContact * _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void TocContactListWidget::editContact(TocContact * _t1, QString _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 4, _a);
+}
+
+// SIGNAL 5
+void TocContactListWidget::displayedNameChanged(const QString & _t1, const QString & _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 5, _a);
+}
+
+// SIGNAL 6
+void TocContactListWidget::logoColorChanged(QColor _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 6, _a);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tocemoticonsdialog.cpp b/build/release/moc_tocemoticonsdialog.cpp
new file mode 100644 (file)
index 0000000..5459c79
--- /dev/null
@@ -0,0 +1,80 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tocemoticonsdialog.h'
+**
+** Created: Thu Jul 8 08:48:17 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TocUi/tocemoticonsdialog.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tocemoticonsdialog.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TocEmoticonsDialog[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       1,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       0,       // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+      26,   20,   19,   19, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TocEmoticonsDialog[] = {
+    "TocEmoticonsDialog\0\0pItem\0"
+    "onEmoticonSelected(QListWidgetItem*)\0"
+};
+
+const QMetaObject TocEmoticonsDialog::staticMetaObject = {
+    { &QDialog::staticMetaObject, qt_meta_stringdata_TocEmoticonsDialog,
+      qt_meta_data_TocEmoticonsDialog, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TocEmoticonsDialog::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TocEmoticonsDialog::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TocEmoticonsDialog::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TocEmoticonsDialog))
+        return static_cast<void*>(const_cast< TocEmoticonsDialog*>(this));
+    return QDialog::qt_metacast(_clname);
+}
+
+int TocEmoticonsDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QDialog::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: onEmoticonSelected((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 1;
+    }
+    return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tocengine.cpp b/build/release/moc_tocengine.cpp
new file mode 100644 (file)
index 0000000..227fe4c
--- /dev/null
@@ -0,0 +1,133 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tocengine.h'
+**
+** Created: Thu Jul 8 08:48:18 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TocEngine/tocengine.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tocengine.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TocEngine[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      15,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       0,       // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+      32,   11,   10,   10, 0x0a,
+      76,   67,   10,   10, 0x0a,
+     125,  109,   10,   10, 0x0a,
+     171,  167,   10,   10, 0x0a,
+     205,  203,   10,   10, 0x0a,
+     242,   10,   10,   10, 0x0a,
+     279,  267,   10,   10, 0x0a,
+     314,  167,   10,   10, 0x0a,
+     365,  339,   10,   10, 0x08,
+     498,  464,   10,   10, 0x08,
+     582,  464,   10,   10, 0x08,
+     691,  670,   10,   10, 0x08,
+     786,  772,   10,   10, 0x08,
+     926,  889,   10,   10, 0x08,
+     992,   67,   10,   10, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TocEngine[] = {
+    "TocEngine\0\0presence,description\0"
+    "onPresenceChange(Presence,QString)\0"
+    "pContact\0onAddContactRequest(TocContact*)\0"
+    "pContact,oldUid\0"
+    "onEditContactRequest(TocContact*,QString)\0"
+    "uid\0onRemoveContactRequest(QString)\0"
+    ",\0onSubscriptionAccepted(QString,bool)\0"
+    "initializeFromSettings()\0uid,message\0"
+    "onNewMessageReady(QString,Message)\0"
+    "onSessionClosed(QString)\0"
+    "pConnection,status,reason\0"
+    "onStatusChange(QtTapioca::Connection*,QtTapioca::Connection::Status,Qt"
+    "Tapioca::Connection::Reason)\0"
+    "pContact,presence,presenceMessage\0"
+    "onPresenceUpdated(QtTapioca::ContactBase*,QtTapioca::ContactBase::Pres"
+    "ence,QString)\0"
+    "onSelfPresenceUpdated(QtTapioca::ContactBase*,QtTapioca::ContactBase::"
+    "Presence,QString)\0"
+    "pTextChannel,message\0"
+    "onMessageReceived(const QtTapioca::TextChannel*,QtTapioca::TextChannel"
+    "::Message)\0"
+    "message,error\0"
+    "onMessageDeliveryError(QtTapioca::TextChannel::Message,QtTapioca::Text"
+    "Channel::Message::DeliveryError)\0"
+    "pConnection,pChannel,bSuppresHandler\0"
+    "onChannelCreated(QtTapioca::Connection*,QtTapioca::Channel*,bool)\0"
+    "onAuthorizationRequested(QtTapioca::Contact*)\0"
+};
+
+const QMetaObject TocEngine::staticMetaObject = {
+    { &TocBaseEngine::staticMetaObject, qt_meta_stringdata_TocEngine,
+      qt_meta_data_TocEngine, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TocEngine::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TocEngine::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TocEngine::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TocEngine))
+        return static_cast<void*>(const_cast< TocEngine*>(this));
+    return TocBaseEngine::qt_metacast(_clname);
+}
+
+int TocEngine::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = TocBaseEngine::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: onPresenceChange((*reinterpret_cast< Presence(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 1: onAddContactRequest((*reinterpret_cast< TocContact*(*)>(_a[1]))); break;
+        case 2: onEditContactRequest((*reinterpret_cast< TocContact*(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 3: onRemoveContactRequest((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 4: onSubscriptionAccepted((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break;
+        case 5: initializeFromSettings(); break;
+        case 6: onNewMessageReady((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Message(*)>(_a[2]))); break;
+        case 7: onSessionClosed((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 8: onStatusChange((*reinterpret_cast< QtTapioca::Connection*(*)>(_a[1])),(*reinterpret_cast< QtTapioca::Connection::Status(*)>(_a[2])),(*reinterpret_cast< QtTapioca::Connection::Reason(*)>(_a[3]))); break;
+        case 9: onPresenceUpdated((*reinterpret_cast< QtTapioca::ContactBase*(*)>(_a[1])),(*reinterpret_cast< QtTapioca::ContactBase::Presence(*)>(_a[2])),(*reinterpret_cast< const QString(*)>(_a[3]))); break;
+        case 10: onSelfPresenceUpdated((*reinterpret_cast< QtTapioca::ContactBase*(*)>(_a[1])),(*reinterpret_cast< QtTapioca::ContactBase::Presence(*)>(_a[2])),(*reinterpret_cast< const QString(*)>(_a[3]))); break;
+        case 11: onMessageReceived((*reinterpret_cast< const QtTapioca::TextChannel*(*)>(_a[1])),(*reinterpret_cast< const QtTapioca::TextChannel::Message(*)>(_a[2]))); break;
+        case 12: onMessageDeliveryError((*reinterpret_cast< const QtTapioca::TextChannel::Message(*)>(_a[1])),(*reinterpret_cast< QtTapioca::TextChannel::Message::DeliveryError(*)>(_a[2]))); break;
+        case 13: onChannelCreated((*reinterpret_cast< QtTapioca::Connection*(*)>(_a[1])),(*reinterpret_cast< QtTapioca::Channel*(*)>(_a[2])),(*reinterpret_cast< bool(*)>(_a[3]))); break;
+        case 14: onAuthorizationRequested((*reinterpret_cast< QtTapioca::Contact*(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 15;
+    }
+    return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tocgeneralsettingswidget.cpp b/build/release/moc_tocgeneralsettingswidget.cpp
new file mode 100644 (file)
index 0000000..4e39f59
--- /dev/null
@@ -0,0 +1,98 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tocgeneralsettingswidget.h'
+**
+** Created: Thu Jul 8 08:48:16 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TocUi/tocgeneralsettingswidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tocgeneralsettingswidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TocGeneralSettingsWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       3,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       2,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      26,   25,   25,   25, 0x05,
+      37,   25,   25,   25, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+      51,   25,   25,   25, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TocGeneralSettingsWidget[] = {
+    "TocGeneralSettingsWidget\0\0finished()\0"
+    "backClicked()\0saveGeneralSettings()\0"
+};
+
+const QMetaObject TocGeneralSettingsWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TocGeneralSettingsWidget,
+      qt_meta_data_TocGeneralSettingsWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TocGeneralSettingsWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TocGeneralSettingsWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TocGeneralSettingsWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TocGeneralSettingsWidget))
+        return static_cast<void*>(const_cast< TocGeneralSettingsWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TocGeneralSettingsWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: finished(); break;
+        case 1: backClicked(); break;
+        case 2: saveGeneralSettings(); break;
+        default: ;
+        }
+        _id -= 3;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TocGeneralSettingsWidget::finished()
+{
+    QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void TocGeneralSettingsWidget::backClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tocmaintoolbar.cpp b/build/release/moc_tocmaintoolbar.cpp
new file mode 100644 (file)
index 0000000..0d662ff
--- /dev/null
@@ -0,0 +1,268 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tocmaintoolbar.h'
+**
+** Created: Thu Jul 8 08:48:17 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TocUi/tocmaintoolbar.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tocmaintoolbar.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TocMainToolbar[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      14,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       6,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      25,   16,   15,   15, 0x05,
+      69,   65,   15,   15, 0x05,
+      94,   15,   15,   15, 0x05,
+     116,   15,   15,   15, 0x05,
+     134,   15,   15,   15, 0x05,
+     166,  152,   15,   15, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+     217,  199,   15,   15, 0x0a,
+     256,   15,   15,   15, 0x08,
+     278,   15,   15,   15, 0x08,
+     297,   15,   15,   15, 0x08,
+     329,  321,   15,   15, 0x08,
+     371,  364,   15,   15, 0x08,
+     401,   15,   15,   15, 0x08,
+     421,   15,   15,   15, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TocMainToolbar[] = {
+    "TocMainToolbar\0\0uid,name\0"
+    "activeSessionTriggered(QString,QString)\0"
+    "uid\0finishedSession(QString)\0"
+    "finishedAllSessions()\0contactsClicked()\0"
+    "settingsClicked()\0presence,desc\0"
+    "presenceUpdate(Presence,QString)\0"
+    "uid,name,presence\0"
+    "onNewSession(QString,QString,Presence)\0"
+    "closeCurrentSession()\0closeAllSessions()\0"
+    "restoreCurrentSession()\0pAction\0"
+    "onActiveSessionTriggered(QAction*)\0"
+    "action\0onTriggeredPresence(QAction*)\0"
+    "onContactsClicked()\0onSettingsClicked()\0"
+};
+
+const QMetaObject TocMainToolbar::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TocMainToolbar,
+      qt_meta_data_TocMainToolbar, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TocMainToolbar::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TocMainToolbar::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TocMainToolbar::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TocMainToolbar))
+        return static_cast<void*>(const_cast< TocMainToolbar*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TocMainToolbar::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: activeSessionTriggered((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
+        case 1: finishedSession((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+        case 2: finishedAllSessions(); break;
+        case 3: contactsClicked(); break;
+        case 4: settingsClicked(); break;
+        case 5: presenceUpdate((*reinterpret_cast< Presence(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
+        case 6: onNewSession((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2])),(*reinterpret_cast< Presence(*)>(_a[3]))); break;
+        case 7: closeCurrentSession(); break;
+        case 8: closeAllSessions(); break;
+        case 9: restoreCurrentSession(); break;
+        case 10: onActiveSessionTriggered((*reinterpret_cast< QAction*(*)>(_a[1]))); break;
+        case 11: onTriggeredPresence((*reinterpret_cast< QAction*(*)>(_a[1]))); break;
+        case 12: onContactsClicked(); break;
+        case 13: onSettingsClicked(); break;
+        default: ;
+        }
+        _id -= 14;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TocMainToolbar::activeSessionTriggered(const QString & _t1, const QString & _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void TocMainToolbar::finishedSession(const QString & _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void TocMainToolbar::finishedAllSessions()
+{
+    QMetaObject::activate(this, &staticMetaObject, 2, 0);
+}
+
+// SIGNAL 3
+void TocMainToolbar::contactsClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 3, 0);
+}
+
+// SIGNAL 4
+void TocMainToolbar::settingsClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 4, 0);
+}
+
+// SIGNAL 5
+void TocMainToolbar::presenceUpdate(Presence _t1, const QString & _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 5, _a);
+}
+static const uint qt_meta_data_ActiveSessions[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       2,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       0,       // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+      16,   15,   15,   15, 0x08,
+      27,   15,   15,   15, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_ActiveSessions[] = {
+    "ActiveSessions\0\0scrollUp()\0scrollDown()\0"
+};
+
+const QMetaObject ActiveSessions::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_ActiveSessions,
+      qt_meta_data_ActiveSessions, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &ActiveSessions::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *ActiveSessions::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *ActiveSessions::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_ActiveSessions))
+        return static_cast<void*>(const_cast< ActiveSessions*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int ActiveSessions::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: scrollUp(); break;
+        case 1: scrollDown(); break;
+        default: ;
+        }
+        _id -= 2;
+    }
+    return _id;
+}
+static const uint qt_meta_data_ScrollWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       0,       // signalCount
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_ScrollWidget[] = {
+    "ScrollWidget\0"
+};
+
+const QMetaObject ScrollWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_ScrollWidget,
+      qt_meta_data_ScrollWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &ScrollWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *ScrollWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *ScrollWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_ScrollWidget))
+        return static_cast<void*>(const_cast< ScrollWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int ScrollWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tocmainwindow.cpp b/build/release/moc_tocmainwindow.cpp
new file mode 100644 (file)
index 0000000..3160767
--- /dev/null
@@ -0,0 +1,156 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tocmainwindow.h'
+**
+** Created: Thu Jul 8 08:48:15 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TocUi/tocmainwindow.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tocmainwindow.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TocMainWindow[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       1,   14, // classinfo
+      27,   16, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       0,       // signalCount
+
+ // classinfo: key, value
+      34,   14,
+
+ // slots: signature, parameters, type, tag, flags
+      55,   50,   51,   50, 0x4a,
+      77,   73,   50,   50, 0x09,
+     109,   73,   50,   50, 0x09,
+     155,  141,   50,   50, 0x09,
+     199,  185,   50,   50, 0x09,
+     252,  234,   50,   50, 0x09,
+     314,  302,   50,   50, 0x09,
+     355,  349,   50,   50, 0x09,
+     411,  393,   50,   50, 0x08,
+     455,  446,   50,   50, 0x28,
+     481,   73,   50,   50, 0x08,
+     500,   50,   50,   50, 0x08,
+     520,   50,   50,   50, 0x08,
+     541,  536,   50,   50, 0x08,
+     560,  555,   50,   50, 0x08,
+     591,   50,   50,   50, 0x08,
+     606,   50,   50,   50, 0x08,
+     625,   50,   50,   50, 0x08,
+     640,   50,   50,   50, 0x08,
+     659,   50,   50,   50, 0x08,
+     673,   50,   50,   50, 0x08,
+     696,   50,   50,   50, 0x08,
+     716,  446,   50,   50, 0x08,
+     755,   50,   50,   50, 0x08,
+     769,   50,   50,   50, 0x08,
+     796,   50,   50,   50, 0x08,
+     823,   50,   50,   50, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TocMainWindow[] = {
+    "TocMainWindow\0org.indt.tietoopcom\0"
+    "D-Bus Interface\0\0int\0top_application()\0"
+    "uid\0onAuthorizationRequest(QString)\0"
+    "onSubscriptionAccepted(QString)\0"
+    "status,reason\0onStatusChange(Status,Reason)\0"
+    "presence,desc\0onPresenceUpdate(Presence,QString)\0"
+    "uid,presence,desc\0"
+    "onContactPresenceUpdate(QString,Presence,QString)\0"
+    "uid,message\0onIncomingMessage(QString,Message)\0"
+    "cList\0onContactListReceived(TocContactList)\0"
+    "uid,name,presence\0showChat(QString,QString,Presence)\0"
+    "uid,name\0showChat(QString,QString)\0"
+    "closeChat(QString)\0closeAllOpenChats()\0"
+    "clearAllChats()\0type\0showView(int)\0"
+    "item\0showUserInfo(QListWidgetItem*)\0"
+    "showContacts()\0returnToContacts()\0"
+    "showSettings()\0returnToSettings()\0"
+    "showAccount()\0returnToIntermediate()\0"
+    "showAccountCreate()\0"
+    "onDisplayedNameChange(QString,QString)\0"
+    "reloadTheme()\0onAccountSettingsChanged()\0"
+    "onAccountSettingsCreated()\0showAbout()\0"
+};
+
+const QMetaObject TocMainWindow::staticMetaObject = {
+    { &TocBaseMainWindow::staticMetaObject, qt_meta_stringdata_TocMainWindow,
+      qt_meta_data_TocMainWindow, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TocMainWindow::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TocMainWindow::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TocMainWindow::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TocMainWindow))
+        return static_cast<void*>(const_cast< TocMainWindow*>(this));
+    return TocBaseMainWindow::qt_metacast(_clname);
+}
+
+int TocMainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = TocBaseMainWindow::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: { int _r = top_application();
+            if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; }  break;
+        case 1: onAuthorizationRequest((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 2: onSubscriptionAccepted((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 3: onStatusChange((*reinterpret_cast< Status(*)>(_a[1])),(*reinterpret_cast< Reason(*)>(_a[2]))); break;
+        case 4: onPresenceUpdate((*reinterpret_cast< Presence(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 5: onContactPresenceUpdate((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Presence(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3]))); break;
+        case 6: onIncomingMessage((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< Message(*)>(_a[2]))); break;
+        case 7: onContactListReceived((*reinterpret_cast< const TocContactList(*)>(_a[1]))); break;
+        case 8: showChat((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2])),(*reinterpret_cast< Presence(*)>(_a[3]))); break;
+        case 9: showChat((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
+        case 10: closeChat((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+        case 11: closeAllOpenChats(); break;
+        case 12: clearAllChats(); break;
+        case 13: showView((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 14: showUserInfo((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+        case 15: showContacts(); break;
+        case 16: returnToContacts(); break;
+        case 17: showSettings(); break;
+        case 18: returnToSettings(); break;
+        case 19: showAccount(); break;
+        case 20: returnToIntermediate(); break;
+        case 21: showAccountCreate(); break;
+        case 22: onDisplayedNameChange((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
+        case 23: reloadTheme(); break;
+        case 24: onAccountSettingsChanged(); break;
+        case 25: onAccountSettingsCreated(); break;
+        case 26: showAbout(); break;
+        default: ;
+        }
+        _id -= 27;
+    }
+    return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tocsettingswidget.cpp b/build/release/moc_tocsettingswidget.cpp
new file mode 100644 (file)
index 0000000..3da872b
--- /dev/null
@@ -0,0 +1,86 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tocsettingswidget.h'
+**
+** Created: Thu Jul 8 08:48:16 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TocUi/tocsettingswidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tocsettingswidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TocSettingsWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       1,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       1,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      28,   19,   18,   18, 0x05,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TocSettingsWidget[] = {
+    "TocSettingsWidget\0\0viewType\0triggered(int)\0"
+};
+
+const QMetaObject TocSettingsWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TocSettingsWidget,
+      qt_meta_data_TocSettingsWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TocSettingsWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TocSettingsWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TocSettingsWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TocSettingsWidget))
+        return static_cast<void*>(const_cast< TocSettingsWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TocSettingsWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: triggered((*reinterpret_cast< int(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 1;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TocSettingsWidget::triggered(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tocthemessettingswidget.cpp b/build/release/moc_tocthemessettingswidget.cpp
new file mode 100644 (file)
index 0000000..9cfa7dc
--- /dev/null
@@ -0,0 +1,98 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tocthemessettingswidget.h'
+**
+** Created: Thu Jul 8 08:48:17 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TocUi/tocthemessettingswidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tocthemessettingswidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TocThemesSettingsWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       3,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       2,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      25,   24,   24,   24, 0x05,
+      39,   24,   24,   24, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+      61,   24,   24,   24, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TocThemesSettingsWidget[] = {
+    "TocThemesSettingsWidget\0\0backClicked()\0"
+    "currentThemeChanged()\0saveThemesSettings()\0"
+};
+
+const QMetaObject TocThemesSettingsWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TocThemesSettingsWidget,
+      qt_meta_data_TocThemesSettingsWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TocThemesSettingsWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TocThemesSettingsWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TocThemesSettingsWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TocThemesSettingsWidget))
+        return static_cast<void*>(const_cast< TocThemesSettingsWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TocThemesSettingsWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: backClicked(); break;
+        case 1: currentThemeChanged(); break;
+        case 2: saveThemesSettings(); break;
+        default: ;
+        }
+        _id -= 3;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TocThemesSettingsWidget::backClicked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void TocThemesSettingsWidget::currentThemeChanged()
+{
+    QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/moc_tocuserinfowidget.cpp b/build/release/moc_tocuserinfowidget.cpp
new file mode 100644 (file)
index 0000000..3334342
--- /dev/null
@@ -0,0 +1,103 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'tocuserinfowidget.h'
+**
+** Created: Thu Jul 8 08:48:16 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../../include/TocUi/tocuserinfowidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'tocuserinfowidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TocUserInfoWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       4,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       2,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      31,   19,   18,   18, 0x05,
+      64,   18,   18,   18, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+      75,   18,   18,   18, 0x08,
+      93,   87,   18,   18, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TocUserInfoWidget[] = {
+    "TocUserInfoWidget\0\0contactItem\0"
+    "contactChanged(QListWidgetItem*)\0"
+    "finished()\0okClicked()\0index\0"
+    "onCurrentIndexChanged(int)\0"
+};
+
+const QMetaObject TocUserInfoWidget::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TocUserInfoWidget,
+      qt_meta_data_TocUserInfoWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &TocUserInfoWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *TocUserInfoWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *TocUserInfoWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TocUserInfoWidget))
+        return static_cast<void*>(const_cast< TocUserInfoWidget*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TocUserInfoWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: contactChanged((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+        case 1: finished(); break;
+        case 2: okClicked(); break;
+        case 3: onCurrentIndexChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 4;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TocUserInfoWidget::contactChanged(QListWidgetItem * _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void TocUserInfoWidget::finished()
+{
+    QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+QT_END_MOC_NAMESPACE
diff --git a/build/release/qrc_application.cpp b/build/release/qrc_application.cpp
new file mode 100644 (file)
index 0000000..2b5d845
--- /dev/null
@@ -0,0 +1,6191 @@
+/****************************************************************************
+** Resource object code
+**
+** Created: Thu Jul 8 08:48:18 2010
+**      by: The Resource Compiler for Qt version 4.6.2
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include <QtCore/qglobal.h>
+
+static const unsigned char qt_resource_data[] = {
+  // /home/maemo/tietoopcom/resources/offline.png
+  0x0,0x0,0x9,0xa8,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x30,0x0,0x0,0x0,0x30,0x8,0x6,0x0,0x0,0x0,0x57,0x2,0xf9,0x87,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0x14,0xc3,0x0,0x0,0x14,0xc3,0x1,
+  0x15,0x70,0x4d,0x42,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x3,0xa,
+  0xd,0x12,0x2b,0xd,0x68,0x67,0x33,0x0,0x0,0x9,0x28,0x49,0x44,0x41,0x54,0x68,
+  0xde,0xd5,0x5a,0x5b,0x6c,0x53,0xc9,0x19,0xfe,0x66,0xc6,0xc7,0xd7,0x13,0x30,0x36,
+  0xb9,0xd8,0x81,0x36,0x80,0x1d,0x2e,0x22,0x6,0xd4,0x3e,0x0,0xb,0x8a,0xa,0x6,
+  0x2a,0xf1,0x92,0x65,0x79,0xe1,0xb5,0x7d,0xec,0x6b,0x55,0xf5,0x9,0xb5,0x55,0xb5,
+  0xaa,0x56,0x54,0xea,0xbe,0x56,0xda,0x87,0xbe,0xf1,0xc2,0x45,0x42,0x41,0x15,0x98,
+  0xec,0x22,0x2e,0x29,0x52,0xd5,0x5,0x1b,0x42,0xa,0x6,0xa5,0xa,0x38,0xb1,0x95,
+  0x18,0x25,0xf8,0xd8,0x3e,0x97,0x99,0xe9,0x3,0xe7,0x78,0x4f,0x42,0xe2,0xd8,0xb9,
+  0xec,0xb6,0x96,0x3e,0xc5,0x39,0x67,0xce,0x9c,0xef,0xfb,0xff,0x7f,0xfe,0x99,0x7f,
+  0xc6,0x44,0x4a,0x89,0xff,0xe7,0x8f,0x67,0x3d,0x3b,0x3b,0x7d,0xfa,0x74,0xc8,0x34,
+  0xcd,0xed,0x8c,0xb1,0xb8,0x94,0x32,0x6,0x20,0x66,0xdf,0x9a,0x22,0x84,0x4c,0x71,
+  0xce,0xb,0x8a,0xa2,0x4c,0xde,0xba,0x75,0x4b,0x5b,0xaf,0x77,0x92,0xb5,0x7a,0xe0,
+  0xe4,0xc9,0x93,0x3f,0x6,0x30,0x4,0xe0,0x53,0x0,0xc7,0x1,0xd0,0x15,0x1e,0x11,
+  0x0,0xee,0x1,0xb8,0x6,0xe0,0xfa,0x9d,0x3b,0x77,0xfe,0xf3,0x83,0x8,0x48,0xa7,
+  0xd3,0x43,0x52,0xca,0x8b,0x0,0xe,0x1,0x40,0x3c,0x1e,0xe7,0x7b,0xf6,0xec,0x61,
+  0x91,0x48,0x4,0xa1,0x50,0x8,0xa1,0x50,0x8,0xc1,0x60,0x10,0x0,0x50,0xad,0x56,
+  0xa1,0x69,0x1a,0x34,0x4d,0x43,0xb9,0x5c,0xc6,0xf8,0xf8,0x38,0x2f,0x14,0xa,0xcc,
+  0xee,0xea,0x5b,0x42,0xc8,0x1f,0x32,0x99,0xcc,0xf5,0xef,0x45,0x40,0x3a,0x9d,0xfe,
+  0x4,0xc0,0x25,0x29,0xe5,0xe1,0x78,0x3c,0xce,0x53,0xa9,0x14,0x4b,0x24,0x12,0x8,
+  0x85,0x42,0x1f,0xcc,0x2b,0x4,0x0,0x40,0x4a,0x9,0xa7,0x6f,0x42,0x8,0x8,0x21,
+  0x0,0x0,0x4a,0x3f,0x38,0x48,0xd3,0x34,0xe4,0xf3,0x79,0x64,0xb3,0x59,0x5e,0x28,
+  0x14,0x18,0x21,0xe4,0x1f,0x0,0x7e,0x9d,0xc9,0x64,0x1e,0x6c,0x88,0x80,0x53,0xa7,
+  0x4e,0x6d,0x16,0x42,0x7c,0x5,0xe0,0xb3,0x48,0x24,0xc2,0x7,0x7,0x7,0x59,0x7f,
+  0x7f,0x3f,0xa4,0x94,0x10,0x42,0x80,0x73,0xe,0xce,0x79,0x4b,0x7d,0x31,0xc6,0xc0,
+  0x18,0x3,0xa5,0x14,0x84,0x10,0xbc,0x78,0xf1,0x2,0x77,0xef,0xde,0xe5,0xe5,0x72,
+  0x99,0x1,0xb8,0x42,0x29,0xfd,0xe5,0xed,0xdb,0xb7,0xe7,0xd6,0x4d,0xc0,0x89,0x13,
+  0x27,0x92,0x94,0xd2,0x61,0x42,0xc8,0xae,0x74,0x3a,0x4d,0xf,0x1c,0x38,0x0,0x42,
+  0x8,0x38,0xe7,0x30,0x4d,0x73,0x4d,0x63,0x48,0x51,0x14,0x30,0xc6,0x20,0x84,0x40,
+  0x36,0x9b,0x45,0x26,0x93,0x11,0x52,0xca,0x57,0x42,0x88,0xb3,0x23,0x23,0x23,0x2f,
+  0xd7,0x2c,0x20,0x9d,0x4e,0xa7,0xa5,0x94,0x57,0x54,0x55,0xd,0x9d,0x3f,0x7f,0x9e,
+  0x75,0x77,0x77,0x37,0x88,0xaf,0x57,0xa,0x26,0x84,0xc0,0xe3,0xf1,0x80,0x31,0x86,
+  0x62,0xb1,0x88,0x2b,0x57,0xae,0xf0,0x4a,0xa5,0xa2,0x11,0x42,0x3e,0xcb,0x64,0x32,
+  0x99,0x55,0xb,0x48,0xa7,0xd3,0x69,0x0,0x7f,0x8f,0xc5,0x62,0x38,0x77,0xee,0x1c,
+  0xb,0x6,0x83,0x30,0x4d,0xb3,0xe5,0x50,0x69,0xe5,0xe3,0x7e,0x3f,0x63,0xc,0x8a,
+  0xa2,0xa0,0x5a,0xad,0xe2,0xea,0xd5,0xab,0x7c,0x7a,0x7a,0x1a,0x0,0x7e,0xde,0x4c,
+  0xc4,0xb2,0x2,0x4e,0x9c,0x38,0x91,0x24,0x84,0xfc,0x33,0x1e,0x8f,0x87,0x2e,0x5c,
+  0xb8,0xc0,0x28,0xa5,0x30,0xc,0x63,0x5d,0xac,0xde,0xac,0xf,0x42,0x8,0x14,0x45,
+  0x81,0x10,0x2,0x97,0x2f,0x5f,0xe6,0x53,0x53,0x53,0x9a,0x94,0xf2,0xa7,0xcb,0x85,
+  0x13,0x5d,0x6e,0xc0,0x52,0x4a,0x87,0x3b,0x3a,0x3a,0x42,0xe7,0xce,0x9d,0x5b,0x17,
+  0xf2,0x4e,0x56,0x5a,0xae,0xf,0xe7,0x9e,0x10,0x2,0xba,0xae,0x83,0x10,0x82,0xa1,
+  0xa1,0x21,0xa6,0xaa,0x6a,0x88,0x52,0x3a,0x7c,0xea,0xd4,0xa9,0xcd,0x2d,0xb,0x10,
+  0x42,0x7c,0x45,0x29,0xdd,0x75,0xfe,0xfc,0x79,0x16,0x8,0x4,0xa0,0xeb,0x3a,0x84,
+  0x10,0xb,0x48,0xb8,0x21,0x84,0x68,0xa,0xce,0x79,0x5b,0xf7,0x39,0xe7,0xd0,0x75,
+  0x1d,0x81,0x40,0x0,0xb6,0x1,0x77,0xd9,0x19,0x70,0xe5,0x10,0x4a,0xa7,0xd3,0x9f,
+  0x48,0x29,0xef,0x9f,0x39,0x73,0x6,0x7,0xf,0x1e,0x44,0xbd,0x5e,0x87,0x65,0x59,
+  0xab,0xa,0x87,0xb5,0xde,0x67,0x8c,0xc1,0xef,0xf7,0xe3,0xf1,0xe3,0xc7,0xb8,0x73,
+  0xe7,0xe,0x8,0x21,0xc7,0x16,0xcf,0x13,0x4b,0x79,0xe0,0x52,0x24,0x12,0xe1,0xa9,
+  0x54,0xa,0x86,0x61,0x34,0xb2,0xcd,0x52,0x96,0x6e,0xd7,0xb2,0xee,0xeb,0xe,0x9a,
+  0x3d,0x6b,0x18,0x6,0xc,0xc3,0x40,0x2a,0x95,0x42,0x38,0x1c,0xe6,0x0,0x2e,0x35,
+  0xd,0x21,0x7b,0x79,0x70,0x78,0x70,0x70,0x90,0x1,0x40,0xbd,0x5e,0x6f,0x4a,0x66,
+  0xa5,0x30,0x5a,0x8d,0xe8,0xc5,0x6d,0xea,0xf5,0x3a,0x0,0xe0,0xf8,0xf1,0xe3,0x4c,
+  0x4a,0x79,0x38,0x9d,0x4e,0xf,0x2d,0xbb,0x1a,0x95,0x52,0x5e,0x8c,0xc7,0xe3,0x3c,
+  0x99,0x4c,0x32,0x5d,0xd7,0x1b,0xe9,0xb2,0xd9,0xc0,0x6b,0x27,0x34,0xda,0x6d,0xef,
+  0x2c,0x4d,0x74,0x5d,0x47,0x32,0x99,0x44,0x77,0x77,0x37,0x2f,0x16,0x8b,0x17,0x1,
+  0x5c,0xff,0xc8,0x3,0xf6,0xaa,0xf2,0x50,0x2a,0x95,0x62,0xce,0x2,0xac,0x99,0x25,
+  0x5b,0xf1,0xc0,0x72,0xed,0xdb,0xed,0xab,0x5a,0xad,0x42,0x4a,0x89,0x81,0x81,0x1,
+  0x6,0xe0,0x90,0xcd,0xf5,0x23,0xf,0xc,0x1,0xc0,0xce,0x9d,0x3b,0x61,0x18,0xc6,
+  0x82,0xc9,0x6a,0xbd,0x3c,0xd0,0xec,0xfe,0x4a,0xef,0x30,0xc,0x3,0x7d,0x7d,0x7d,
+  0x6e,0xae,0x5f,0x2e,0x1e,0x3,0x9f,0xc6,0xe3,0x71,0xae,0xaa,0x6a,0x23,0x6d,0x2e,
+  0x65,0x1d,0xb7,0x85,0x56,0x6b,0xd1,0xe5,0xc6,0x53,0xb3,0x71,0x54,0xaf,0xd7,0xa1,
+  0xaa,0x2a,0x7a,0x7a,0x7a,0xb8,0x5d,0x7b,0x7c,0x17,0x42,0xa7,0x4f,0x9f,0xe,0x1,
+  0x38,0xde,0xdf,0xdf,0xcf,0xa4,0x94,0xa8,0xd7,0xeb,0xcb,0x12,0x58,0x8f,0xc1,0xbc,
+  0x5c,0xfb,0x66,0xd7,0x6b,0xb5,0x1a,0x0,0x20,0x91,0x48,0x30,0x0,0xc7,0x6d,0xce,
+  0x1f,0x42,0xc8,0x34,0xcd,0xed,0x94,0x52,0x1a,0x89,0x44,0x60,0x9a,0x26,0x2c,0xcb,
+  0x6a,0x6b,0x10,0xae,0xd7,0xf5,0xa5,0xee,0xbb,0xbf,0x1b,0x86,0x81,0x48,0x24,0x2,
+  0x0,0xd4,0x34,0xcd,0xed,0x0,0xc6,0x3d,0xf6,0x84,0x11,0x97,0x52,0x42,0x55,0xd5,
+  0x5,0xaa,0xd7,0x42,0x6a,0x23,0x9e,0x17,0x42,0x34,0xaa,0x3c,0xc6,0x58,0xbc,0x21,
+  0xc0,0x2e,0xc0,0xe1,0xf7,0xfb,0x97,0x2c,0x4c,0x5a,0xb5,0xd8,0x46,0x7b,0x88,0x73,
+  0x8e,0x40,0x20,0x0,0x37,0x67,0x27,0xb,0xc5,0x0,0x20,0x10,0x8,0xa0,0x56,0xab,
+  0x35,0xca,0xc2,0x8d,0x26,0xd5,0x6e,0x98,0x9a,0xa6,0xd9,0xf0,0x80,0xc3,0xd9,0xb3,
+  0x78,0x29,0xeb,0x28,0xfd,0x5f,0x21,0xbd,0x52,0x3b,0x47,0xc0,0x94,0x33,0x79,0x11,
+  0x42,0x9a,0x3e,0xf8,0x7d,0x8d,0x8d,0xa5,0xda,0x51,0x4a,0x51,0xad,0x56,0xe1,0xe6,
+  0xec,0xb1,0x2d,0x3f,0x25,0xa5,0x84,0xa6,0x69,0xd8,0xbc,0x79,0xf3,0x82,0x9d,0x85,
+  0xd5,0x92,0xdd,0x88,0x2c,0x46,0x29,0xc5,0xfb,0xf7,0xef,0x9d,0x68,0xf9,0x4e,0x0,
+  0xe7,0xbc,0x40,0x29,0x85,0xa6,0x69,0x8,0x87,0xc3,0x4b,0x86,0xd0,0xf,0x69,0x79,
+  0xe7,0x3a,0x63,0xc,0x95,0x4a,0xc5,0x9,0xf3,0x42,0x43,0x80,0xa2,0x28,0x93,0x9c,
+  0x73,0x31,0x3b,0x3b,0x4b,0x77,0xec,0xd8,0xd1,0xd8,0x71,0x68,0xf7,0x65,0xab,0x25,
+  0xd9,0xca,0x73,0x8c,0x31,0x78,0xbd,0x5e,0xbc,0x7b,0xf7,0xe,0x0,0x84,0xa2,0x28,
+  0x93,0x8d,0x99,0xd8,0xde,0xab,0xbc,0x97,0xcf,0xe7,0x39,0x0,0x84,0x42,0xa1,0x96,
+  0xaa,0xa6,0x56,0xd7,0xfe,0xcd,0x66,0xe6,0x56,0x9f,0x73,0x36,0xce,0x5e,0xbf,0x7e,
+  0xcd,0x1,0xdc,0x73,0xf6,0x57,0xdd,0x59,0xe8,0xda,0xd4,0xd4,0xd4,0x60,0xa5,0x52,
+  0x81,0xaa,0xaa,0x28,0x97,0xcb,0xab,0xce,0xf3,0x1b,0x11,0x6e,0x1d,0x1d,0x1d,0xa8,
+  0x54,0x2a,0x28,0x16,0x8b,0xcc,0xde,0x57,0xfd,0xa8,0xa0,0xb9,0x6e,0x2b,0x6c,0xe4,
+  0xda,0xc5,0x55,0xd3,0x6a,0x16,0x66,0xcb,0x55,0x5f,0x8b,0xaf,0x37,0xab,0xd2,0x9c,
+  0xa8,0x98,0x98,0x98,0x58,0xc0,0x75,0x81,0x0,0x7b,0x97,0xf8,0xf1,0xd3,0xa7,0x4f,
+  0x39,0x0,0x44,0xa3,0xd1,0xb6,0x5f,0xe6,0x5c,0xb3,0x2c,0x6b,0xcd,0xa4,0xdd,0xe8,
+  0xec,0xec,0x4,0x21,0x4,0x63,0x63,0x63,0x5c,0x4a,0x99,0x1d,0x19,0x19,0x99,0xfe,
+  0x48,0x0,0x21,0xc4,0xab,0xeb,0xfa,0xa5,0x62,0xb1,0xc8,0xf2,0xf9,0x3c,0xa2,0xd1,
+  0x28,0x18,0x63,0x2d,0x2f,0x7d,0xd7,0xea,0xa9,0xe5,0xc0,0x18,0x43,0x67,0x67,0x27,
+  0xf2,0xf9,0x3c,0x4a,0xa5,0x12,0xab,0x56,0xab,0x7f,0x1,0x10,0x20,0x84,0x28,0xd,
+  0x1,0x84,0x10,0xa,0xc0,0xfb,0xe0,0xc1,0x83,0xc,0xe7,0xfc,0xdb,0xfb,0xf7,0xef,
+  0xb,0x29,0x25,0xba,0xba,0xba,0xda,0xb2,0x60,0xbb,0x9e,0x6a,0xa5,0x3e,0xee,0xe9,
+  0xe9,0x81,0x94,0x12,0xa3,0xa3,0xa3,0x82,0x73,0xfe,0xe4,0xd1,0xa3,0x47,0xdf,0x0,
+  0xf0,0x1,0xf0,0x11,0x9b,0x38,0x0,0x28,0xe,0xca,0xe5,0xf2,0x17,0x73,0x73,0x73,
+  0x34,0x97,0xcb,0x21,0x1a,0x8d,0x62,0xd3,0xa6,0x4d,0x2d,0x67,0x8f,0xa5,0xd6,0xf1,
+  0x2b,0x15,0x3b,0xcd,0x10,0xe,0x87,0xd1,0xd9,0xd9,0x89,0x5c,0x2e,0x87,0xf9,0xf9,
+  0x79,0x5a,0x2a,0x95,0xbe,0x74,0x73,0x5,0xe0,0xa1,0xae,0x50,0x62,0x0,0x58,0x2e,
+  0x97,0x7b,0x62,0x9a,0xe6,0xc8,0xbd,0x7b,0xf7,0x44,0xb1,0x58,0x44,0x5f,0x5f,0x1f,
+  0xbc,0x5e,0xef,0x86,0xc4,0x76,0x33,0xf8,0xfd,0x7e,0xec,0xd8,0xb1,0x3,0xc5,0x62,
+  0x11,0xf,0x1f,0x3e,0x94,0x86,0x61,0xdc,0x7d,0xfe,0xfc,0x79,0xce,0xe1,0xe9,0xc0,
+  0x11,0x40,0x6c,0x0,0x0,0xc9,0x66,0xb3,0x7f,0xb4,0x2c,0xab,0x70,0xe3,0xc6,0xd,
+  0x51,0xad,0x56,0x91,0x4c,0x26,0x1b,0x5b,0xe0,0x1b,0x49,0xda,0x81,0xc7,0xe3,0x41,
+  0x32,0x99,0x44,0xad,0x56,0xc3,0xf0,0xf0,0xb0,0xb0,0x2c,0x6b,0xea,0xc9,0x93,0x27,
+  0x5f,0x2c,0xe6,0xe9,0x1e,0xc4,0xc2,0x8d,0xb9,0xb9,0xb9,0xf9,0x97,0x2f,0x5f,0xfe,
+  0x46,0xd3,0xb4,0xfa,0xf0,0xf0,0xb0,0xa0,0x94,0x62,0xef,0xde,0xbd,0xf0,0xfb,0xfd,
+  0x6d,0x4d,0x62,0xab,0x41,0x20,0x10,0xc0,0xbe,0x7d,0xfb,0xc0,0x18,0xc3,0xcd,0x9b,
+  0x37,0x85,0xa6,0x69,0xfa,0xf8,0xf8,0xf8,0xc5,0xf7,0x1f,0x16,0x41,0x62,0x11,0xb8,
+  0x23,0x80,0x3,0xb0,0x5c,0x30,0xdf,0xbe,0x7d,0x3b,0x51,0x28,0x14,0x7e,0x57,0x2a,
+  0x95,0x70,0xf5,0xea,0x55,0x61,0x59,0x16,0x6,0x6,0x6,0x10,0xe,0x87,0x57,0x1d,
+  0xd3,0x2b,0x21,0x12,0x89,0x60,0x60,0x60,0x0,0x9c,0x73,0x5c,0xbb,0x76,0x4d,0x94,
+  0x4a,0x25,0xbc,0x79,0xf3,0xe6,0xf3,0xe9,0xe9,0xe9,0x9,0x87,0xd7,0x22,0x9e,0x16,
+  0x71,0x9d,0x63,0x5,0x0,0x4,0x6d,0x84,0x0,0x4,0x0,0x4,0xfb,0xfb,0xfb,0x8f,
+  0xf5,0xf6,0xf6,0x5e,0xc,0x85,0x42,0xfe,0xb3,0x67,0xcf,0xd2,0xee,0xee,0x6e,0x4c,
+  0x4f,0x4f,0x63,0x62,0x62,0x2,0x86,0x61,0xac,0xcb,0x19,0x81,0xd7,0xeb,0x45,0x5f,
+  0x5f,0x1f,0x7a,0x7a,0x7a,0x50,0x2c,0x16,0x31,0x3c,0x3c,0x2c,0x34,0x4d,0xd3,0x27,
+  0x27,0x27,0xff,0x94,0xcf,0xe7,0x47,0x1,0x54,0x6d,0xd4,0x0,0x68,0xf6,0xf7,0x79,
+  0x29,0xa5,0xe9,0x16,0x40,0x5c,0x2,0x82,0x8e,0x0,0x0,0x81,0x58,0x2c,0x96,0xd8,
+  0xbd,0x7b,0xf7,0xe7,0x1e,0x8f,0x27,0x76,0xf4,0xe8,0x51,0x32,0x30,0x30,0x0,0x0,
+  0x78,0xf3,0xe6,0xd,0x26,0x27,0x27,0x9b,0x6e,0xfe,0x36,0x3d,0xa4,0xf6,0x78,0xb0,
+  0x7d,0xfb,0x76,0x6c,0xdb,0xb6,0xd,0x0,0x90,0xcb,0xe5,0xf0,0xf0,0xe1,0x43,0x69,
+  0x9a,0xe6,0xf4,0xf8,0xf8,0xf8,0xef,0x8b,0xc5,0xe2,0x2b,0x9b,0x74,0xcd,0x25,0xa0,
+  0xa,0x60,0x1e,0x80,0x2e,0xa5,0x5c,0xb8,0x3b,0xed,0x12,0x11,0x58,0x8c,0x8e,0x8e,
+  0x8e,0x68,0x2a,0x95,0xfa,0xad,0xcf,0xe7,0x3b,0xb6,0x69,0xd3,0x26,0x71,0xe4,0xc8,
+  0x11,0x9a,0x48,0x24,0x20,0xa5,0x44,0xb9,0x5c,0xc6,0xcc,0xcc,0xc,0x66,0x66,0x66,
+  0x56,0xf4,0x8a,0xd7,0xeb,0xc5,0xd6,0xad,0x5b,0xb1,0x75,0xeb,0x56,0x44,0x22,0x11,
+  0x10,0x42,0x90,0xcf,0xe7,0x31,0x3a,0x3a,0x2a,0xe6,0xe7,0xe7,0x69,0xbd,0x5e,0x1f,
+  0xcd,0x66,0xb3,0x7f,0xae,0x54,0x2a,0xb3,0x0,0xea,0x2e,0x1,0xe,0xe6,0x1,0x18,
+  0xd,0xc3,0x2f,0xb5,0x70,0x22,0x84,0xf8,0x5c,0xe4,0xfd,0x6e,0x24,0x12,0x89,0x9f,
+  0xc4,0x62,0xb1,0x5f,0x29,0x8a,0xb2,0xa7,0xab,0xab,0x4b,0xec,0xdb,0xb7,0x8f,0xf6,
+  0xf5,0xf5,0x41,0x55,0x55,0x48,0x29,0x51,0xad,0x56,0xa1,0xeb,0x3a,0xc,0xc3,0x80,
+  0xae,0xeb,0x0,0x0,0x9f,0xcf,0x7,0xaf,0xd7,0xb,0x9f,0xcf,0x87,0x60,0x30,0x8,
+  0x42,0x8,0x2a,0x95,0xa,0x26,0x26,0x26,0x30,0x36,0x36,0x26,0x4a,0xa5,0x12,0x35,
+  0xc,0xe3,0xdf,0x85,0x42,0xe1,0xaf,0xaf,0x5f,0xbf,0xfe,0x17,0x0,0xdd,0x26,0xef,
+  0x46,0x5,0x80,0x26,0xa5,0x14,0x2d,0x1d,0x31,0xd9,0xde,0xf0,0xdb,0x22,0x7c,0xf6,
+  0x77,0x1f,0x0,0x2f,0x0,0xdf,0xfe,0xfd,0xfb,0x4f,0x46,0xa3,0xd1,0x5f,0x30,0xc6,
+  0x92,0x0,0xd0,0xd5,0xd5,0x25,0x76,0xed,0xda,0x45,0xb7,0x6c,0xd9,0xd2,0x38,0xe4,
+  0x76,0x76,0x10,0x6a,0xb5,0x5a,0xe3,0xb0,0xfb,0xdd,0xbb,0x77,0x78,0xf5,0xea,0x95,
+  0x28,0x95,0x4a,0x14,0x0,0x2c,0xcb,0xca,0xcf,0xce,0xce,0xfe,0xed,0xd9,0xb3,0x67,
+  0x5f,0x3,0x30,0x6c,0xf2,0x86,0x4b,0x44,0xcd,0x26,0x6f,0x2d,0x69,0xec,0x95,0xb6,
+  0x4c,0xec,0x42,0xdf,0x63,0xb,0x8,0xda,0x2,0xbc,0xce,0x6c,0xd8,0xdb,0xdb,0xfb,
+  0xa3,0x58,0x2c,0x76,0x32,0x10,0x8,0xfc,0x4c,0x51,0x94,0x3,0xad,0xfc,0xd4,0xc0,
+  0x34,0xcd,0x6c,0xad,0x56,0xfb,0xa6,0x50,0x28,0x7c,0x5d,0x28,0x14,0x26,0xed,0xec,
+  0xe2,0xc0,0xb0,0xe3,0x5c,0x3,0x60,0x2e,0xb6,0xf8,0x9a,0x4e,0xea,0x5d,0x62,0x1c,
+  0x8f,0x28,0xf6,0xff,0x1e,0x0,0x2c,0x1c,0xe,0xab,0x91,0x48,0xa4,0x57,0x55,0xd5,
+  0x6e,0x8f,0xc7,0xd3,0xe5,0xf1,0x78,0x3a,0x1,0x10,0xcb,0xb2,0x4a,0xa6,0x69,0xce,
+  0x68,0x9a,0x36,0x3d,0x3b,0x3b,0x5b,0x98,0x9b,0x9b,0xd3,0xec,0xd4,0xed,0x4e,0xdf,
+  0x55,0xdb,0xe2,0xa6,0x6c,0x83,0xd4,0x9a,0x7e,0xec,0x61,0x87,0x19,0xb1,0xad,0x4e,
+  0x17,0x4f,0xf3,0x36,0x9c,0x89,0x92,0xbb,0x20,0x5c,0x7f,0xc5,0x87,0x1a,0x66,0x75,
+  0x3c,0xfe,0xb,0xd3,0x92,0x8,0x1,0x5f,0x2d,0xd9,0x20,0x0,0x0,0x0,0x0,0x49,
+  0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/maemo/tietoopcom/resources/close.png
+  0x0,0x0,0xa,0xd4,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x30,0x0,0x0,0x0,0x30,0x8,0x6,0x0,0x0,0x0,0x57,0x2,0xf9,0x87,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xaf,0xc8,0x37,0x5,0x8a,0xe9,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0xa,0x66,0x49,0x44,0x41,0x54,0x68,0x43,0xc5,
+  0x9a,0x57,0x6c,0x54,0xdd,0x15,0x85,0xf1,0xff,0x12,0xf1,0x2,0x8,0x8,0xbd,0x98,
+  0xde,0xc1,0x14,0x29,0x34,0x1,0xf,0x1,0x21,0xd1,0x11,0x10,0x8a,0xe8,0xbd,0x83,
+  0x90,0xe8,0xa,0x4f,0xd4,0x44,0xf4,0x22,0x64,0x1e,0x90,0x10,0x1,0x21,0xc0,0xf0,
+  0x92,0x20,0x44,0x15,0xbd,0x1a,0x4c,0xef,0xdd,0x54,0x53,0x4c,0x31,0x60,0xe0,0xe4,
+  0x7c,0x5b,0x5e,0xce,0x61,0x98,0x71,0x8c,0xff,0x4,0x8f,0xb4,0x75,0xef,0x1d,0xdf,
+  0xb9,0xb3,0xd6,0x3a,0xeb,0xec,0xbd,0xcf,0x19,0xc7,0x15,0xf8,0xcf,0xeb,0xb7,0x6,
+  0xd,0x1a,0x54,0xf0,0x97,0xed,0xbe,0x7d,0xfb,0xd6,0x2d,0x2e,0x2e,0xae,0xc9,0x6f,
+  0xfe,0xe5,0x9c,0xb,0x6e,0xf9,0xf5,0xa7,0x1e,0x47,0x1,0x8f,0x27,0xc3,0x1f,0xf,
+  0x7b,0x2c,0x49,0x5,0xb,0x16,0x3c,0x70,0xe2,0xc4,0x89,0x67,0x1e,0xc9,0xf7,0xc0,
+  0xea,0xd5,0xab,0xf7,0xe7,0xfa,0xf5,0xeb,0x27,0x79,0x12,0xa9,0xfe,0xf8,0x35,0x21,
+  0x21,0xc1,0x11,0xfe,0x3a,0x5f,0x23,0xc0,0xf1,0xc9,0x9f,0xdf,0xf7,0x78,0xfe,0xe1,
+  0xf1,0xfd,0x29,0x94,0x32,0xce,0x83,0xef,0xec,0xdf,0xdc,0xe7,0x6f,0xf8,0xda,0xa8,
+  0x51,0x23,0x3,0x5c,0xb3,0x66,0x4d,0x57,0xa5,0x4a,0x15,0x57,0xa9,0x52,0xa5,0x7c,
+  0x8d,0xaa,0x55,0xab,0xba,0xda,0xb5,0x6b,0x9b,0x98,0x59,0xd8,0x32,0x3d,0xde,0x4d,
+  0x3e,0x1a,0x19,0x9,0xf,0x36,0xde,0x83,0xff,0x67,0xc3,0x86,0xd,0x1d,0x51,0xbd,
+  0x7a,0x75,0x57,0xab,0x56,0x2d,0xd7,0xbb,0x77,0x6f,0x37,0x7f,0xfe,0x7c,0xb7,0x7a,
+  0xf5,0xea,0x5f,0x1e,0xab,0x56,0xad,0x72,0x8a,0x39,0x73,0xe6,0xb8,0x4e,0x9d,0x3a,
+  0xb9,0x6a,0xd5,0xaa,0x19,0x91,0x2c,0x9c,0xef,0x3c,0xee,0xa5,0x3e,0x8a,0x40,0x60,
+  0xa4,0x8f,0x34,0xd8,0x1,0xbc,0x59,0xb3,0x66,0x6e,0xca,0x94,0x29,0x6e,0xff,0xfe,
+  0xfd,0xee,0xf3,0xe7,0xcf,0xde,0x76,0xf9,0xfb,0x7a,0xf9,0xf2,0xa5,0xdb,0xb6,0x6d,
+  0x9b,0x1b,0x3a,0x74,0x68,0xb6,0x33,0x1a,0x37,0x6e,0xcc,0xf9,0x35,0x2f,0x7c,0x27,
+  0x8,0xfc,0xcb,0x47,0xa6,0xbf,0x70,0xc4,0xac,0x59,0xb3,0xdc,0xb3,0x67,0xcf,0xf2,
+  0x15,0xf5,0xd7,0xaf,0x5f,0xdd,0x97,0x2f,0x5f,0x2c,0x38,0x27,0x2e,0x5c,0xb8,0xe0,
+  0xfa,0xf6,0xed,0x6b,0xd6,0xc6,0xe2,0x1e,0xeb,0x7b,0x7f,0x4c,0x84,0xc0,0x73,0xfc,
+  0xc5,0x1f,0xfa,0xf4,0xe9,0xe3,0xe,0x1c,0x38,0xf0,0x1d,0x78,0x9f,0x1,0xdc,0xaf,
+  0x8,0x81,0xce,0xcc,0xcc,0xb4,0x91,0xff,0xf4,0xe9,0x93,0xfb,0xf8,0xf1,0xa3,0x5,
+  0x7f,0x4b,0x4f,0x4f,0x77,0x1b,0x37,0x6e,0x74,0xed,0xdb,0xb7,0x77,0x35,0x6a,0xd4,
+  0xd0,0x7c,0x38,0x3,0x81,0xd7,0x10,0x60,0xc2,0xce,0x9b,0x37,0xcf,0x65,0x64,0x64,
+  0x18,0x81,0x5f,0x1,0x9a,0xef,0x90,0xc2,0xa8,0xd,0x78,0x1,0x7,0xc7,0x87,0xf,
+  0x1f,0xdc,0xfb,0xf7,0xef,0x2d,0x20,0x72,0xff,0xfe,0x7d,0x37,0x62,0xc4,0x8,0x4b,
+  0x2a,0x59,0x13,0x3a,0x5,0x2,0x69,0xc,0x9,0x6f,0xae,0x59,0xb3,0x26,0x5b,0xfd,
+  0xff,0x37,0x81,0x48,0xe0,0x52,0x1e,0xa0,0x21,0xf8,0x77,0xef,0xde,0x99,0xfa,0x7a,
+  0x6f,0xf2,0xe4,0xc9,0xae,0x62,0xc5,0x8a,0x46,0xc0,0xdb,0x28,0x39,0x4f,0x4,0x42,
+  0x8f,0xe5,0x85,0xa8,0xec,0xc2,0x51,0x9f,0x87,0x80,0xc0,0xa3,0x38,0xc0,0x5,0xfe,
+  0xcd,0x9b,0x37,0x36,0xa,0x5c,0x4f,0x9a,0x34,0x29,0x36,0x1,0x52,0xa6,0x5e,0xd1,
+  0x80,0x85,0xc0,0x65,0xb5,0x9c,0xee,0x8f,0x45,0xe,0xe0,0x7a,0x1,0xfa,0xed,0xdb,
+  0xb7,0x66,0x1f,0xee,0xc7,0x36,0x5c,0x13,0x28,0xf,0xf8,0xd7,0xaf,0x5f,0x1b,0x78,
+  0xce,0x27,0x4e,0x9c,0x98,0x77,0x2,0x7c,0xf1,0xe3,0xc7,0x8f,0xdd,0xee,0xdd,0xbb,
+  0xdd,0x86,0xd,0x1b,0xdc,0xbe,0x7d,0xfb,0xdc,0x8b,0x17,0x2f,0x72,0x6d,0x3b,0xd9,
+  0x86,0xf,0xe0,0xf5,0x4b,0x97,0x2e,0x59,0x8a,0x5c,0xbf,0x7e,0xbd,0xa5,0x6d,0x9e,
+  0x1d,0x2a,0xf,0x70,0xe2,0xd5,0xab,0x57,0x46,0x86,0xf3,0x9,0x13,0x26,0xe4,0x8d,
+  0x0,0x5f,0x9a,0x9a,0x9a,0xea,0x66,0xcf,0x9e,0xed,0x9a,0x34,0x69,0xe2,0xa8,0x90,
+  0x1c,0x29,0x76,0x7c,0x41,0x4e,0x23,0x21,0xe0,0x52,0x1e,0xf0,0x47,0x8e,0x1c,0x71,
+  0xfd,0xfb,0xf7,0x77,0x75,0xea,0xd4,0xb1,0x4,0xd2,0xa6,0x4d,0x1b,0x9b,0x83,0x8,
+  0xc2,0xe8,0xa,0x38,0x75,0x20,0x2d,0x2d,0xcd,0xae,0x39,0xcf,0x13,0x1,0xc0,0xf1,
+  0xe5,0x28,0xf,0xe8,0x62,0xc5,0x8a,0xb9,0x52,0xa5,0x4a,0x59,0x90,0xc1,0xe6,0xce,
+  0x9d,0x6b,0xf,0x8f,0x46,0x22,0x4c,0x8f,0xfc,0x1d,0xab,0x1c,0x3c,0x78,0xd0,0x75,
+  0xef,0xde,0xdd,0xc5,0xc7,0xc7,0x67,0x3f,0xa7,0x68,0xd1,0xa2,0xf6,0xde,0x83,0x7,
+  0xf,0x6c,0x74,0x4,0x1c,0x42,0xcf,0x9f,0x3f,0x37,0x91,0x20,0x32,0x7e,0xfc,0x78,
+  0xfb,0x5c,0xd4,0x49,0x1c,0x6b,0xe,0xf0,0xc5,0x78,0x15,0xdb,0xa0,0x3c,0xc0,0x51,
+  0x8d,0x7,0x95,0x29,0x53,0xc6,0x48,0x90,0x82,0x23,0xed,0x14,0x16,0x24,0xcd,0x7,
+  0xea,0xc,0x40,0xcb,0x97,0x2f,0xef,0xca,0x96,0x2d,0xeb,0x2a,0x57,0xae,0x6c,0xcf,
+  0x2a,0x54,0xa8,0x90,0x6b,0xdd,0xba,0xb5,0xbb,0x7b,0xf7,0xae,0x11,0x0,0xac,0xc0,
+  0x53,0x58,0x21,0xc4,0x75,0x9e,0x8,0xf0,0xe5,0x14,0x17,0x7c,0xca,0x8,0x94,0x2c,
+  0x59,0xd2,0xc0,0xf3,0xe5,0x1c,0x1,0xe2,0x9b,0x2b,0xb7,0x70,0xe1,0x42,0xf7,0xf4,
+  0xe9,0xd3,0xec,0x3a,0xa2,0xdc,0x1e,0x82,0xef,0xd1,0xa3,0x87,0x2b,0x5d,0xba,0xb4,
+  0xab,0x50,0xa1,0x82,0x7d,0x9e,0x28,0x57,0xae,0x9c,0xbd,0x37,0x68,0xd0,0x20,0x1b,
+  0x1,0x26,0x32,0xaa,0x13,0x3c,0xef,0xc9,0x93,0x27,0x6,0x1e,0x22,0x79,0x26,0x0,
+  0x2a,0x54,0xc1,0xf3,0x28,0x8e,0xf2,0x21,0x9,0x14,0xc5,0xcf,0x8b,0x16,0x2d,0xb2,
+  0xc9,0xc8,0xb,0x2,0x22,0x8f,0xf2,0x80,0x67,0xf4,0xf4,0x39,0xc0,0xf3,0x39,0xc8,
+  0x30,0x2a,0x49,0x49,0x49,0x6,0x18,0xbb,0x0,0x56,0xe0,0x79,0x1e,0xd7,0x10,0x19,
+  0x37,0x6e,0xdc,0xcf,0x5b,0x8,0x10,0x7a,0xf1,0x70,0x3c,0xf,0x9,0x94,0xa7,0x0,
+  0x2,0x84,0x23,0x40,0x20,0x81,0x9d,0xd4,0x4f,0x61,0x7,0xd9,0x6,0x95,0x5,0x5e,
+  0xf7,0x73,0xdd,0xad,0x5b,0x37,0xb7,0x63,0xc7,0xe,0x4b,0x93,0x88,0x4,0x70,0x2,
+  0xe0,0x4,0xc9,0x43,0xd7,0x63,0xc7,0x8e,0xcd,0x1b,0x81,0x68,0x24,0x68,0xfe,0x50,
+  0x30,0x24,0xc1,0x35,0x76,0x5a,0xb0,0x60,0x81,0x29,0x46,0xb6,0x91,0xe7,0x65,0x9b,
+  0x10,0x7c,0x97,0x2e,0x5d,0xc,0xbc,0xb2,0x8e,0x94,0x16,0xf0,0x47,0x8f,0x1e,0xb9,
+  0x87,0xf,0x1f,0x1a,0x11,0xce,0xc7,0x8c,0x19,0x93,0x77,0x2,0x21,0x9,0x3c,0x9,
+  0x48,0x14,0x7,0x58,0x48,0x82,0x91,0x69,0xd1,0xa2,0x85,0xf5,0x2d,0x1d,0x3b,0x76,
+  0xb4,0x89,0x8f,0xcf,0xe5,0x79,0xdd,0xdf,0xb9,0x73,0x67,0x3,0xcf,0xa8,0x42,0x40,
+  0x96,0x41,0x71,0x1,0x67,0x4e,0xd0,0x3,0xe9,0xfa,0x77,0x13,0x8,0x49,0xa0,0xb0,
+  0x48,0xa0,0x7c,0x38,0x27,0xb4,0x92,0x3,0x38,0xbd,0x8b,0xc0,0x73,0x1f,0xd7,0x28,
+  0xbf,0x73,0xe7,0x4e,0xcb,0x2e,0x14,0x29,0x9e,0x45,0x48,0x69,0x54,0x17,0xf8,0x7b,
+  0xf7,0xee,0xd9,0x28,0x40,0xe4,0x7f,0x42,0x40,0x59,0x85,0x79,0xc1,0x17,0x32,0x27,
+  0xb0,0xd,0xca,0x87,0x1e,0x7,0xa8,0x46,0x46,0xd9,0x6,0xf5,0xbb,0x76,0xed,0x6a,
+  0x13,0x36,0x4,0x1f,0x5a,0x46,0xc0,0x1,0x4c,0x5a,0xbd,0x73,0xe7,0x8e,0x81,0xe7,
+  0xfc,0x77,0x13,0x8,0xb,0x13,0x45,0x89,0x17,0xca,0x91,0x9d,0xb0,0x8d,0x94,0x97,
+  0xe2,0x3a,0x42,0x4c,0x6b,0xe,0x6c,0x3,0x78,0xac,0xa3,0x89,0x1a,0x69,0x19,0x54,
+  0x17,0xf8,0xdb,0xb7,0x6f,0x3b,0xae,0x21,0x32,0x7a,0xf4,0xe8,0xec,0x76,0xfa,0x87,
+  0x6e,0xf4,0xbf,0x35,0x73,0xd1,0x16,0x1d,0x5a,0x76,0x2,0x60,0xf8,0xf0,0xe1,0x66,
+  0x95,0xd0,0x32,0xca,0x50,0x58,0xa7,0x79,0xf3,0xe6,0x6e,0xdd,0xba,0x75,0xd6,0xef,
+  0x40,0x20,0x27,0xcb,0x84,0xe0,0x6f,0xdd,0xba,0x65,0x64,0x20,0x32,0x6a,0xd4,0xa8,
+  0xbc,0x11,0x88,0xb5,0x62,0x22,0xd7,0x53,0x78,0xe,0x1d,0x3a,0x64,0x13,0x16,0xcf,
+  0x87,0xb6,0xd1,0x8,0x40,0x8a,0x45,0x39,0x4b,0x56,0x80,0x90,0x4,0x20,0x0,0x71,
+  0x2c,0x23,0xdb,0x84,0xc0,0xb9,0xef,0xe6,0xcd,0x9b,0xee,0xc6,0x8d,0x1b,0xf6,0x19,
+  0xce,0x47,0x8e,0x1c,0x99,0x7b,0x2,0x61,0x13,0x16,0xb9,0xd4,0xa3,0xe1,0x42,0x7d,
+  0xc0,0xd3,0x95,0x92,0x2a,0xc9,0x36,0xa1,0xfa,0x91,0x44,0xb0,0x11,0xb,0x72,0x1a,
+  0xc2,0x6b,0xd7,0xae,0x59,0xa5,0x85,0x0,0xf6,0x8,0x2d,0x83,0xe2,0x80,0x25,0xae,
+  0x5f,0xbf,0x6e,0xf7,0xea,0x3c,0xd7,0x4,0xc2,0x3e,0x6,0x95,0xc3,0x75,0x2a,0xe0,
+  0x29,0x50,0xbc,0xb7,0x67,0xcf,0x1e,0x2b,0x44,0x58,0x24,0x4c,0x95,0x80,0x55,0xc6,
+  0x9,0xe7,0x1,0x15,0x9c,0x15,0xe0,0xcc,0x99,0x33,0xdd,0xc5,0x8b,0x17,0x8d,0x44,
+  0xa4,0xdf,0xa5,0x3a,0xca,0x3,0xfe,0xea,0xd5,0xab,0x36,0xa,0x9c,0xff,0x34,0x1,
+  0x1,0xd7,0x5a,0x15,0xc5,0x69,0xec,0xb8,0xde,0xbb,0x77,0xaf,0xb5,0x7,0xd1,0x7a,
+  0x1b,0x16,0xde,0x6c,0xd1,0x60,0x1b,0xc8,0x44,0xf6,0x4e,0x75,0xeb,0xd6,0x35,0x3b,
+  0x9d,0x3f,0x7f,0xde,0xaa,0x36,0x13,0x54,0xca,0x4b,0x75,0x80,0x13,0x57,0xae,0x5c,
+  0xb1,0x91,0xe0,0x98,0x6b,0x2,0xd1,0x2c,0x23,0xe5,0x59,0xde,0xa1,0x7c,0x4e,0xbd,
+  0xd,0x3b,0x1c,0x89,0x89,0x89,0xa6,0x34,0xad,0x6f,0x64,0xef,0x44,0x3a,0x85,0x1c,
+  0x7f,0x3f,0x7b,0xf6,0xac,0xb5,0xb,0x10,0x8,0xc1,0x3,0xf8,0xf2,0xe5,0xcb,0xb6,
+  0xf0,0x81,0x8,0xc7,0x70,0x51,0xff,0x43,0x16,0x62,0x37,0x8c,0x97,0x1a,0xb0,0xc8,
+  0x1d,0x2,0x94,0xa7,0xe8,0xa0,0x3c,0xb6,0x9,0x41,0x45,0xb6,0x7,0xdb,0xb7,0x6f,
+  0xb7,0x7b,0x1,0x5,0x48,0xda,0x8e,0x70,0x82,0x73,0xbf,0x26,0xf6,0xf4,0xe9,0xd3,
+  0xdd,0x99,0x33,0x67,0x6c,0x14,0xa4,0x74,0x8,0x1e,0xab,0x41,0x84,0xa3,0x32,0x5d,
+  0xd4,0xf5,0xc0,0xca,0x95,0x2b,0xb3,0xbb,0x48,0xc0,0x87,0xbb,0x3,0x9c,0xd3,0x6c,
+  0xd1,0x98,0xc9,0xf3,0xd1,0x7a,0x1b,0xda,0x83,0xad,0x5b,0xb7,0x9a,0xb7,0xd5,0x2,
+  0xf3,0xe5,0x33,0x66,0xcc,0x70,0xd8,0x26,0xb2,0x77,0x52,0x3,0x38,0x75,0xea,0x54,
+  0x77,0xfa,0xf4,0x69,0xf3,0x39,0xe0,0x51,0x1b,0xc0,0x6c,0x68,0xa5,0xa4,0xa4,0xd8,
+  0x35,0xc7,0x61,0xc3,0x86,0x59,0xaa,0x8e,0x4a,0x60,0xc5,0x8a,0x15,0x46,0x0,0xdf,
+  0x3,0x58,0x3b,0x1,0x1c,0x79,0x2f,0x39,0x39,0xd9,0xf5,0xeb,0xd7,0xcf,0xfc,0x1c,
+  0xab,0xb7,0x41,0x79,0x3c,0xd,0x78,0xca,0x3f,0x59,0x86,0x74,0xc9,0x97,0x33,0x12,
+  0xd8,0x26,0xac,0xd0,0x8c,0x84,0xd6,0x13,0x90,0x38,0x77,0xee,0x9c,0x4d,0x58,0x80,
+  0x13,0xcc,0x11,0xde,0xd3,0x79,0xae,0x8,0xa0,0x3e,0x93,0x95,0x82,0xc3,0xee,0x0,
+  0xe7,0x34,0x5b,0x9b,0x36,0x6d,0x32,0x0,0xf4,0xf4,0xd1,0x7a,0x1b,0x81,0xa7,0x48,
+  0x85,0x7d,0xc,0x6d,0x0,0x8d,0x1a,0x2,0x40,0x82,0x3d,0x58,0x94,0xf,0x27,0x76,
+  0xf1,0xe2,0xc5,0x5d,0xdb,0xb6,0x6d,0xdd,0xf1,0xe3,0xc7,0x2d,0x65,0x42,0x98,0x0,
+  0x3c,0x9f,0xd3,0x79,0xae,0x8,0xa0,0xbe,0xc0,0xe3,0x63,0x46,0x0,0x55,0x99,0x94,
+  0x2c,0xff,0xb4,0xa4,0x64,0x14,0x0,0x42,0x63,0x86,0x6d,0x0,0x49,0x3f,0x1f,0x82,
+  0xf,0xb,0x13,0x23,0x81,0x4d,0xa6,0x4d,0x9b,0x66,0x76,0x52,0xef,0xc4,0x33,0x8b,
+  0x14,0x29,0x62,0x95,0x9a,0xf6,0x9b,0x11,0x10,0x70,0xc0,0x33,0xc9,0xb9,0xe6,0x18,
+  0x95,0x0,0x8b,0x13,0x86,0x72,0xf9,0xf2,0xe5,0x66,0x21,0x0,0x87,0x7b,0x32,0x9c,
+  0x13,0xbb,0x76,0xed,0xb2,0x75,0x2b,0xb,0xf0,0xc2,0x85,0xb,0xdb,0x24,0xa6,0x31,
+  0x3,0x3c,0x4,0x9,0xc0,0xe7,0x54,0x98,0x18,0x8d,0x53,0xa7,0x4e,0x39,0xec,0xc2,
+  0x56,0x79,0x89,0x12,0x25,0xc,0x3c,0xcf,0x62,0x97,0xc2,0xff,0xfa,0x62,0x19,0x47,
+  0xc0,0x99,0xdc,0x90,0xe6,0x9a,0x23,0xbb,0xd4,0x3f,0xcc,0x1,0x8,0xf0,0xe6,0xb2,
+  0x65,0xcb,0x8c,0x80,0x36,0x91,0xb4,0xc8,0xa0,0xe9,0xe2,0x3d,0xca,0x39,0xf7,0x0,
+  0xba,0x55,0xab,0x56,0xf6,0x85,0x5b,0xb6,0x6c,0xb1,0x9,0x4b,0x53,0x16,0xb6,0x3,
+  0xa1,0xf2,0x2a,0x4c,0x4a,0x91,0x64,0x26,0xc0,0x50,0x91,0xd9,0xac,0x6d,0xda,0xb4,
+  0xa9,0x1b,0x30,0x60,0x80,0xdb,0xbc,0x79,0xb3,0xa9,0x8c,0xef,0x39,0x12,0xdc,0x7,
+  0x61,0xce,0x39,0xe,0x19,0x32,0x24,0x36,0x81,0xa5,0x4b,0x97,0x1a,0x1,0x7c,0xaf,
+  0x7d,0x18,0x2c,0xa1,0x1d,0x2,0x29,0xcc,0x10,0xa3,0x12,0x80,0x50,0x54,0xe0,0x55,
+  0x51,0xd5,0x78,0x45,0x16,0x26,0x55,0x55,0x15,0x27,0x40,0x1d,0x3b,0x76,0xcc,0xfa,
+  0x28,0xbc,0x8f,0xca,0x84,0x54,0x7,0xfc,0xc9,0x93,0x27,0x6d,0x54,0x74,0x9e,0x23,
+  0x81,0x25,0x4b,0x96,0x58,0xd,0x20,0x5d,0x86,0xfb,0x32,0xb2,0x7,0x47,0x6d,0x32,
+  0x41,0x90,0x73,0xc0,0x43,0x42,0xed,0x2e,0xa3,0x14,0x36,0x61,0xb1,0xa,0x13,0x29,
+  0x52,0x22,0x70,0xf,0xa9,0x16,0xe5,0x5,0x1e,0xb5,0x1,0xf,0x31,0x48,0xea,0x7c,
+  0xf0,0xe0,0xc1,0x36,0xf,0xbf,0x4b,0xa3,0xb2,0x10,0x4,0xe8,0x81,0x4,0x4e,0xfb,
+  0x32,0x4c,0xbe,0x9c,0x96,0x7b,0x52,0x1e,0xe0,0xa8,0x4e,0x30,0x4a,0x91,0xe0,0xc9,
+  0xe5,0xca,0xef,0x64,0x15,0xa5,0xc8,0x48,0xbf,0x47,0x82,0x3f,0x7a,0xf4,0xa8,0x8d,
+  0x2,0x44,0x72,0x24,0xb0,0x78,0xf1,0x62,0xdb,0xa,0x41,0x7d,0x7c,0xad,0xad,0x8d,
+  0x70,0x77,0x40,0xed,0x2f,0xaa,0x87,0x2b,0x26,0x81,0xf,0x3b,0x48,0x59,0x45,0xed,
+  0x40,0x58,0x98,0x94,0x65,0xb0,0x51,0xa4,0xea,0x80,0x45,0x79,0x80,0x13,0x64,0x26,
+  0xc0,0x73,0x1e,0x8d,0x40,0x3a,0x23,0x40,0x2b,0x4c,0xb5,0x4,0x94,0xf6,0x65,0xb4,
+  0xe0,0x88,0xb6,0xc8,0x8e,0xd5,0x41,0x46,0xb3,0x8c,0x80,0x87,0x85,0x29,0x37,0xaa,
+  0x3,0xf8,0xf0,0xe1,0xc3,0x46,0x80,0x60,0x19,0xda,0xb3,0x67,0x4f,0xfb,0xc1,0x2f,
+  0xcb,0x42,0x17,0xb,0xf8,0x1e,0xe5,0x11,0x4,0x28,0x50,0x1d,0x3a,0x74,0xb0,0x9f,
+  0x71,0xb4,0xdc,0x83,0x40,0x4e,0xe0,0xe5,0xf7,0x58,0x96,0x91,0xf2,0x6a,0x7,0xc2,
+  0xc2,0x14,0x2a,0x8f,0xbf,0x35,0x59,0xa5,0xb4,0x40,0x43,0x80,0xd1,0xa0,0xff,0xa2,
+  0x8,0xb6,0x6c,0xd9,0x32,0xfb,0xd7,0x4a,0xdf,0x96,0x1f,0xe3,0x7,0x8e,0xcd,0x9e,
+  0xc4,0x67,0x48,0xf0,0x13,0xeb,0xc0,0x81,0x3,0x6d,0xb8,0xb0,0x8a,0x26,0x6f,0x38,
+  0x12,0x91,0xbb,0x5,0x4a,0x97,0xca,0x38,0x78,0x3f,0xec,0xe3,0xc3,0xbe,0x26,0x96,
+  0x85,0xc8,0x30,0x4a,0x97,0xe1,0xc4,0x5,0x7,0x4,0xe8,0x7c,0xd7,0xae,0x5d,0x6b,
+  0x95,0x9a,0x2a,0xe,0x56,0x8f,0x39,0xdd,0x63,0xff,0x3b,0x23,0xf0,0x17,0x1f,0xa9,
+  0xc,0x9,0xa3,0x40,0xd7,0xd8,0xab,0x57,0x2f,0x5b,0xbb,0xa2,0xa0,0x46,0x21,0x16,
+  0x70,0x79,0x3f,0x4,0x8d,0xf7,0x63,0xf9,0x5e,0xde,0x8f,0xe5,0x7b,0x40,0x87,0xea,
+  0xd3,0x9e,0x60,0x6d,0xc0,0x53,0xbd,0x89,0xac,0xdf,0xc7,0xce,0xfa,0x42,0xd8,0xaa,
+  0x80,0x67,0xf3,0x47,0xcf,0x64,0x9d,0x3f,0x66,0xe8,0xb7,0x62,0x58,0xb6,0x6b,0xd7,
+  0xce,0x8a,0x6,0x7b,0x91,0x6c,0xe7,0x11,0x6c,0x69,0xb0,0x2b,0xa0,0x60,0x81,0x1d,
+  0x6,0x8b,0xd,0xfa,0x75,0x5,0xad,0x6f,0x18,0xb4,0x1,0x4,0xd5,0x94,0xe0,0xf9,
+  0xa,0x26,0xa7,0x82,0x4d,0x5e,0x5,0x9e,0xc7,0x36,0xec,0x68,0x0,0x9e,0xea,0xed,
+  0xb1,0xbe,0xf0,0x42,0xff,0xd5,0x17,0xc0,0x82,0xfa,0xb5,0x3e,0xc1,0xbf,0xb1,0xc1,
+  0xff,0xe1,0x63,0xd6,0x8f,0xc8,0xf6,0x1,0xed,0x3e,0x6b,0x45,0x15,0x1e,0x7f,0xe6,
+  0x5f,0x10,0x22,0xb7,0x58,0x72,0xba,0x26,0xc7,0x87,0x11,0xfe,0x42,0x9f,0x85,0x2d,
+  0xcd,0xef,0x41,0xfd,0xcd,0xef,0x8,0x56,0xf9,0xee,0x5f,0x4f,0xfc,0x28,0x24,0xf8,
+  0x58,0xee,0x23,0xc5,0x93,0xf9,0xc8,0x68,0xf0,0x1,0x8e,0xf9,0x19,0x60,0x40,0x75,
+  0x8f,0xeb,0x8d,0x8f,0x53,0x5e,0xe4,0x39,0x7e,0xb9,0x1a,0x1f,0xf5,0xff,0x66,0x7c,
+  0x2a,0x2d,0xc4,0xcf,0xf7,0x3e,0x12,0x7d,0x9c,0xf6,0x37,0x27,0xb3,0x6c,0xcb,0xcf,
+  0xc8,0xc2,0x70,0x94,0x9,0x8b,0xe7,0x7d,0xef,0xf4,0x87,0x10,0xfc,0xbf,0x1,0x3d,
+  0xc9,0x92,0x74,0x7e,0x82,0xde,0x1d,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,
+  0x42,0x60,0x82,
+    // /home/maemo/tietoopcom/resources/addcontact.png
+  0x0,0x0,0xf,0x12,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x44,0x0,0x0,0x0,0x44,0x8,0x6,0x0,0x0,0x0,0x38,0x13,0x93,0xb2,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,0x1,
+  0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x3,0xb,
+  0xf,0xc,0x13,0x4a,0x13,0x53,0x79,0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x43,
+  0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x0,0x43,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x77,
+  0x69,0x74,0x68,0x20,0x47,0x49,0x4d,0x50,0x57,0x81,0xe,0x17,0x0,0x0,0xe,0x6d,
+  0x49,0x44,0x41,0x54,0x78,0xda,0xed,0x5b,0x59,0x93,0x5c,0xe5,0x79,0x7e,0xbe,0xed,
+  0x2c,0x7d,0x4e,0xef,0xd3,0x33,0xea,0x19,0x21,0x29,0x12,0x48,0x2c,0x92,0x1d,0x82,
+  0x9,0x20,0x5c,0xd8,0xc6,0xa9,0xc4,0x71,0xec,0x84,0x8a,0x43,0x2a,0xf9,0x5,0xf9,
+  0x1,0xb9,0xcc,0x4d,0xee,0xb8,0xcc,0x7d,0x72,0xcd,0x4d,0x70,0x5c,0xc9,0x45,0x2a,
+  0xe5,0xca,0x52,0xc6,0x65,0x43,0x62,0x4a,0x26,0x6,0x2c,0x30,0x63,0x81,0x34,0xcc,
+  0x30,0x6b,0x4f,0xef,0x67,0xf9,0xb6,0x37,0x17,0xdd,0x8c,0x84,0x90,0x52,0x21,0x25,
+  0x9,0x86,0x9a,0xa7,0xeb,0xad,0xaf,0x67,0xa9,0x73,0xbe,0xf3,0xf4,0xbb,0xbf,0x5f,
+  0x3,0x47,0x38,0xc2,0x11,0x8e,0x70,0x84,0x23,0x1c,0xe1,0x8,0x47,0x38,0xc2,0xe7,
+  0x11,0xec,0x6e,0xdf,0xe0,0xf9,0xe7,0x9f,0x17,0xdf,0xf9,0xce,0x9f,0x37,0x5a,0x8b,
+  0x9d,0xb,0x95,0x4a,0xfa,0xb8,0x94,0xf2,0x4b,0xa5,0x76,0xf,0x15,0x79,0x71,0xdc,
+  0x58,0xa7,0xb2,0x7c,0x9a,0x67,0xd9,0x74,0x63,0x32,0x19,0x5c,0x9a,0x4c,0x86,0xff,
+  0x3a,0xee,0xf5,0x5f,0xbd,0x76,0xed,0x91,0xdd,0x97,0x5e,0xfa,0x53,0xf7,0x59,0x10,
+  0x22,0xef,0xf6,0xd,0x9e,0x7e,0xfa,0xd9,0xd3,0xad,0x56,0xfd,0xa9,0xc5,0xce,0xc2,
+  0x33,0xd5,0x5a,0xfd,0x82,0x73,0xb8,0x6f,0x9a,0x15,0xdd,0x56,0xb3,0x3,0xe3,0x8,
+  0xe3,0xc9,0x4,0xfd,0x7e,0xaf,0x2b,0x83,0xa8,0x23,0x82,0x64,0x49,0xc5,0xe9,0x52,
+  0xd4,0xe9,0xfd,0x3b,0x5e,0xc2,0xea,0x67,0x41,0x88,0xb8,0x8b,0xd7,0xe6,0x2f,0xbe,
+  0xf8,0x62,0xbb,0x7b,0xfc,0xbe,0x6f,0xb6,0x17,0xda,0x7f,0xb6,0xd0,0x6e,0x7d,0xa3,
+  0x5a,0xad,0x3f,0x10,0x45,0x51,0x95,0x73,0x9,0x22,0xc0,0x3a,0x82,0x27,0xe,0x15,
+  0xc4,0xc,0x4c,0x34,0x3d,0xd1,0x9,0xe7,0x5c,0xdd,0x6b,0xbb,0x7b,0x62,0xb9,0xb5,
+  0xf6,0xdc,0x73,0xcf,0xe9,0x97,0x5f,0x7e,0x99,0xbe,0x10,0x1a,0xf2,0xc2,0xb,0x2f,
+  0xd4,0x57,0x56,0x4e,0x5e,0x68,0x2f,0x74,0x9e,0x49,0x6a,0xb5,0x27,0x17,0x3b,0xed,
+  0xa6,0x10,0xa,0x79,0xee,0x61,0xac,0x85,0x75,0x1e,0xdc,0x30,0x8,0x2e,0x20,0x24,
+  0xa1,0x92,0xa4,0x20,0xc6,0x92,0x22,0xcf,0x2f,0x4c,0x45,0xf6,0x64,0xdc,0x3c,0x7d,
+  0xed,0xf2,0xe6,0xc6,0x1b,0x0,0x86,0xf7,0x92,0x10,0x7e,0xb7,0x2e,0xfc,0xd0,0x43,
+  0x5f,0xee,0xc6,0x49,0xf5,0xe9,0x5a,0xa3,0xf1,0x95,0xa5,0x4e,0xa7,0x99,0x44,0xa,
+  0x56,0x5b,0x58,0x53,0x0,0xf0,0x60,0x8c,0xc0,0x18,0x1,0xf0,0x70,0xd6,0xc0,0x59,
+  0x3,0xc6,0x18,0x84,0xa,0xea,0x20,0xfe,0x58,0x18,0x84,0x8f,0xd7,0xc3,0xb0,0x7a,
+  0xaf,0x4d,0xe6,0xae,0x11,0xd2,0xea,0x2e,0x9f,0xe,0xc2,0xf8,0x71,0x40,0x9c,0xe,
+  0x83,0x99,0x65,0x32,0xe6,0x1,0x10,0x18,0x6e,0xb4,0x2,0x2,0x68,0xbe,0x78,0xf,
+  0xce,0x79,0xe0,0x3d,0x9d,0x85,0x8,0xce,0x13,0x6b,0xb5,0xe,0xbd,0x53,0x3d,0x77,
+  0xf1,0xf,0xab,0x7f,0xf4,0xec,0xc5,0xe3,0x79,0xe6,0x9e,0x6a,0xd5,0xa2,0xf3,0x4a,
+  0x85,0x69,0x9e,0x5b,0x8,0xc1,0x61,0x9d,0x87,0x27,0x82,0xf7,0x0,0x11,0x40,0xf3,
+  0x15,0x0,0xbc,0xf7,0x70,0xce,0x82,0x8,0x70,0x9e,0xb5,0x4a,0x4d,0x17,0xb2,0x9c,
+  0x9e,0xfe,0xee,0x9f,0xfc,0xe5,0x38,0x84,0xdf,0xfa,0xfe,0xf7,0xff,0x26,0x3f,0x94,
+  0x1a,0xd2,0x94,0xc1,0xa9,0x6c,0xea,0xbe,0x3d,0x1c,0x8e,0xbf,0xce,0x98,0x5a,0x9,
+  0xc3,0x18,0x65,0x69,0x91,0xe5,0x1a,0x65,0xe9,0xa0,0x8d,0x9f,0x39,0x53,0x7f,0x83,
+  0x90,0x9f,0x89,0x77,0xb0,0xd6,0xc3,0x7a,0x8e,0xbc,0xf4,0xf,0x68,0x4d,0x7f,0xcc,
+  0x15,0xff,0xfd,0x82,0xb9,0xce,0xa1,0xd5,0x90,0x30,0xa9,0x9e,0x74,0x16,0xcf,0xe6,
+  0xb9,0x3d,0xcf,0x98,0xc,0x8d,0x25,0x98,0xd2,0x80,0x40,0xf0,0xde,0xc3,0x58,0x82,
+  0x31,0xe,0xc6,0x38,0x38,0xe7,0xe1,0x9c,0x87,0xf7,0x33,0x32,0x9c,0x73,0xd0,0xc6,
+  0xa0,0x28,0xc,0x9c,0x67,0x75,0xb0,0xe0,0x49,0x26,0x69,0x5b,0x30,0xf5,0xa,0x80,
+  0xb5,0x43,0x49,0x48,0x14,0x24,0xb,0xc4,0xc4,0x29,0x6b,0x51,0x2b,0xb5,0x43,0x96,
+  0x95,0x30,0x46,0xcf,0xcd,0x82,0xe0,0x9c,0x87,0x36,0x1e,0x5a,0xcf,0x48,0xb1,0x6e,
+  0x46,0x84,0xf3,0xe,0xc6,0x58,0x14,0xa5,0x46,0x96,0xe7,0xb0,0x96,0x20,0x65,0x94,
+  0xa,0x26,0x16,0xc1,0x79,0x74,0x68,0x35,0x24,0x50,0x41,0xec,0x3d,0xab,0x79,0xe2,
+  0xc8,0xa,0x3,0xa5,0x4a,0x58,0x67,0x1,0xcc,0x7c,0x87,0xf7,0x1e,0xc6,0x10,0xb4,
+  0x71,0xb3,0xf0,0x6b,0xd,0x9c,0x9b,0xad,0xa5,0x31,0xc8,0xf2,0x2,0xe3,0xc9,0x14,
+  0x59,0x61,0x51,0x9,0x63,0x48,0xc9,0x43,0xc9,0x99,0x38,0xb4,0x84,0x10,0xbc,0x21,
+  0x50,0xa1,0xb5,0x41,0x59,0x5a,0xe4,0x81,0x83,0xb3,0x33,0x93,0x21,0x9a,0x69,0x89,
+  0xb5,0x1e,0xc6,0x58,0x18,0x6b,0x60,0x9d,0x81,0x31,0x1a,0xa5,0xd6,0xc8,0x8b,0x12,
+  0x93,0x69,0x8e,0xe1,0x68,0x8a,0xa2,0x70,0x8,0x65,0x80,0x28,0x52,0x5e,0x9,0x45,
+  0x87,0x97,0x10,0x67,0x26,0x1e,0xd4,0x33,0xd6,0x9c,0xd0,0xc6,0x6,0xa5,0xb6,0x30,
+  0xc6,0x82,0x3c,0x81,0x3e,0x8a,0x26,0xde,0xc3,0x5a,0xb,0x67,0xd,0x8c,0x29,0x51,
+  0xe8,0x12,0x59,0x96,0x63,0x3c,0x9e,0x62,0x34,0x9a,0x60,0x34,0x9a,0xc0,0x39,0x6,
+  0x57,0xb5,0x0,0x17,0x90,0xea,0x10,0x87,0x5d,0xed,0xcc,0x87,0x0,0xfd,0xc2,0xba,
+  0xb2,0x9b,0xe5,0xe3,0x13,0x2a,0x50,0xb0,0xc6,0xc0,0x13,0x81,0x88,0xe,0x1c,0xa8,
+  0xb5,0x16,0xce,0x19,0xe4,0x65,0x89,0x69,0x36,0xd3,0x8a,0x5e,0x6f,0x88,0xfe,0xfe,
+  0x10,0xd9,0x34,0x7,0x88,0x28,0x9f,0xca,0x32,0x8d,0x1b,0x5b,0x12,0x22,0x3f,0xb4,
+  0x84,0xf0,0x92,0x56,0xe1,0x8a,0xff,0x30,0xe5,0xf4,0xe4,0x60,0xb0,0x7b,0x22,0xc,
+  0x3,0xf8,0x3,0xed,0x70,0x7,0x84,0x18,0x63,0xa1,0xcd,0xcc,0x81,0xe,0xc7,0x53,
+  0xec,0xf7,0xc7,0xd8,0xd9,0xdd,0x47,0xaf,0x37,0x84,0x2e,0x35,0x38,0xd9,0xac,0xc8,
+  0xdc,0x9b,0x7a,0x5a,0xfe,0xcc,0xc6,0xc9,0xde,0xa1,0x2d,0xee,0xae,0x5c,0xf9,0xf9,
+  0xe4,0xd1,0x2f,0x9d,0x99,0x8,0xa9,0x4e,0x95,0xda,0x3c,0x2,0x26,0x22,0x4f,0xc,
+  0xd6,0x5a,0x68,0x5d,0x42,0x6b,0x8d,0xb2,0x28,0x91,0x15,0x39,0x46,0x93,0xc,0xfb,
+  0x83,0x31,0xf6,0x7a,0x3,0x6c,0x6d,0xef,0x63,0x6b,0xab,0x87,0xe1,0x70,0xc,0x72,
+  0x16,0xc,0xe5,0x36,0x73,0xa3,0x7f,0xe,0xcc,0xfa,0xbf,0x24,0xfd,0xb7,0xd6,0x2e,
+  0xbd,0xbb,0x69,0xe,0x6d,0xb5,0x5b,0xdb,0xdf,0x2f,0x6d,0xb5,0x76,0x5f,0x5e,0x98,
+  0xd3,0xa5,0x45,0xd3,0x7a,0x21,0xb5,0xb1,0xc8,0xb2,0xc,0xd3,0x69,0x8e,0xf1,0x34,
+  0xc3,0x70,0x34,0x45,0x7f,0x7f,0x88,0x9d,0xdd,0x3e,0x36,0xb7,0xf6,0xb0,0xbd,0xdd,
+  0x43,0x7f,0x30,0x82,0xd1,0x1a,0x92,0x3b,0x48,0xa1,0x57,0x19,0x95,0x3f,0x28,0x36,
+  0x7e,0xf8,0xea,0x3f,0xbe,0xba,0x99,0x1d,0xea,0x6a,0xf7,0xe5,0x6b,0xd7,0xca,0xa7,
+  0x96,0xaf,0xbe,0xd5,0xe8,0xb8,0x1f,0x4f,0x72,0x5f,0xeb,0xf5,0xa7,0xf7,0x47,0x51,
+  0xa,0xf,0xf,0x46,0x80,0x75,0xe,0x65,0xa9,0x31,0x99,0xe6,0x18,0x8d,0x26,0xe8,
+  0xf7,0x47,0x98,0x4c,0x33,0x18,0x43,0x10,0xc,0x96,0x33,0xbf,0x15,0x48,0xbc,0x26,
+  0xa2,0xe8,0xf2,0x4f,0x7e,0x82,0xf1,0x17,0xa1,0xfc,0xa7,0x8d,0x8d,0x2b,0x6f,0x23,
+  0x8,0x7f,0x5a,0x5a,0xfd,0x70,0x6f,0xd8,0xbf,0x5f,0x85,0x2d,0x78,0x2f,0x1,0x22,
+  0x78,0xe7,0xa0,0xb5,0x41,0xa1,0x35,0x8a,0xbc,0x44,0x59,0x96,0xb0,0x8e,0x20,0x64,
+  0x0,0x21,0x58,0x26,0xa4,0x7f,0x4d,0x49,0xfb,0xa3,0xaa,0x30,0x1f,0x7c,0x61,0x3a,
+  0x66,0x6b,0x6b,0x6b,0xa6,0x7d,0x5f,0xa3,0x94,0x4c,0x6b,0x29,0x80,0x30,0x6c,0x21,
+  0x9f,0x32,0xec,0xef,0x8f,0x30,0x1c,0xe,0x60,0x8c,0x85,0xf5,0xe,0x44,0x4,0x25,
+  0x3,0xc4,0x95,0x10,0x71,0xc2,0x1,0xe4,0x9a,0xf9,0xc9,0xda,0xb4,0xbf,0x7e,0xf5,
+  0xc7,0x97,0x2e,0x95,0x5f,0x88,0x8e,0xd9,0xd9,0xb3,0x67,0x17,0x4e,0x9d,0x6f,0x9f,
+  0x8f,0xea,0xf2,0x62,0x54,0x15,0x8f,0x77,0x16,0x17,0xba,0x67,0x4e,0x9e,0x45,0x23,
+  0xed,0x60,0x32,0x29,0x30,0x18,0x8d,0xe0,0xbd,0x7,0xe3,0xc,0x4a,0x5,0xa8,0xd7,
+  0xea,0x68,0xb6,0x52,0x54,0x6a,0x25,0x3c,0xdb,0x2e,0x1d,0xed,0x5d,0xf5,0x3e,0xdb,
+  0x5a,0x6c,0xb6,0x7d,0xb7,0xfa,0x20,0x6d,0xed,0xaf,0x1d,0xaa,0xb0,0xcb,0x2e,0x3e,
+  0x7a,0xb1,0x7b,0xee,0x37,0xcf,0xdd,0xf7,0xc0,0x83,0xbf,0xb1,0xd4,0x59,0x5e,0x68,
+  0x4e,0x8b,0xc9,0xd2,0xda,0xce,0xda,0x99,0x6b,0xeb,0xab,0x8f,0xec,0xf6,0x77,0x4e,
+  0x10,0x9f,0xa2,0x7b,0x2c,0xc1,0x42,0xed,0x1c,0xda,0xad,0x26,0x96,0x97,0x17,0x50,
+  0x6a,0x3,0xce,0x18,0x82,0x20,0x44,0x35,0xa9,0x81,0x78,0x86,0xcd,0xfe,0x2f,0x50,
+  0xec,0xc,0x22,0x29,0xb2,0xf3,0xed,0xa5,0x5,0x56,0x9,0x93,0x6d,0xc6,0x54,0xef,
+  0xc4,0x57,0xbf,0xb5,0xb7,0xbf,0x9d,0xef,0xc,0xae,0x8c,0xd6,0xb6,0xdf,0x5d,0x7f,
+  0x6f,0x17,0xbb,0x93,0xcf,0x2b,0x21,0xea,0x99,0x27,0x9e,0x39,0xd5,0x58,0xaa,0xfe,
+  0x76,0x6d,0x21,0x7e,0x22,0x4a,0xd5,0xc3,0x61,0x45,0xad,0x44,0xf5,0x56,0x35,0xa8,
+  0xc9,0xc8,0xb2,0x2c,0xde,0xea,0x6f,0x86,0x5b,0xbb,0xeb,0xe8,0xd,0xd6,0x71,0x72,
+  0xe5,0x7e,0x3c,0xfc,0xf0,0x32,0x96,0x8f,0x37,0x60,0x8c,0x7,0x67,0x2,0x52,0x4a,
+  0x30,0xc6,0xb1,0xb3,0x7f,0x15,0x3b,0xc3,0x1c,0xc6,0x8d,0xc3,0x30,0x55,0xf,0x37,
+  0x3a,0xd5,0xd3,0x81,0x8a,0xad,0x2d,0xbd,0xf5,0xe4,0xa6,0x51,0x22,0xdf,0xaf,0x2e,
+  0x45,0xaf,0x72,0x74,0xff,0x4d,0xbe,0x2b,0x7f,0xbe,0x89,0xbb,0x13,0x79,0xfe,0xdf,
+  0x26,0x73,0x1c,0x4f,0xc6,0xf,0xfe,0xd6,0xc9,0x47,0x1b,0xc7,0xd2,0x6f,0xb7,0x97,
+  0x1b,0xdf,0xea,0x9e,0xe8,0x5c,0x5c,0xe8,0x2e,0x7c,0x79,0x69,0x79,0x71,0xa9,0xde,
+  0xae,0xd5,0xaa,0xf5,0xb4,0x62,0xac,0x56,0x1f,0x7e,0xb8,0xc1,0x37,0xb7,0x36,0x50,
+  0x94,0x19,0x8,0xe,0x9e,0xc,0xb8,0x24,0x8,0x49,0xe0,0xd2,0xc2,0xba,0x11,0xfa,
+  0xe3,0x75,0xac,0x6d,0xbe,0x85,0xf7,0xd6,0xde,0xc4,0x38,0xeb,0xb1,0x5a,0xb3,0xa6,
+  0x3a,0xc7,0x16,0xe3,0x4a,0x9a,0x24,0x32,0x14,0x55,0x21,0x79,0x9b,0xbc,0x3f,0xce,
+  0x38,0x5a,0x90,0xa8,0x89,0x54,0xf2,0xd4,0xa4,0x59,0xbf,0xe8,0xf,0x3f,0x37,0x1a,
+  0xd2,0x7c,0xc0,0x76,0xa3,0x4a,0xf4,0xbb,0x51,0x12,0x7e,0xaf,0xb6,0x98,0x9c,0xa9,
+  0x1e,0x4b,0xe3,0xca,0x42,0xc4,0xbd,0xb4,0x28,0x8d,0x3,0x18,0x43,0x9a,0xa6,0x58,
+  0xec,0x2c,0x61,0xe3,0xc3,0x75,0xbc,0xf3,0xde,0x1b,0xd8,0xe9,0xed,0xe0,0x58,0xe7,
+  0x14,0xda,0xcd,0x65,0x44,0x41,0x5,0xc4,0x8,0x79,0x3e,0x46,0xaf,0xbf,0x89,0x9d,
+  0xde,0x7,0x18,0x8c,0x7b,0x88,0xe2,0x10,0xa1,0x8a,0x0,0xe2,0x20,0xf2,0x20,0x46,
+  0x90,0x15,0x81,0x74,0xb1,0x12,0x72,0xc9,0x2e,0x10,0xd1,0x22,0x2c,0x16,0x15,0x8b,
+  0xfc,0x63,0xa7,0x7f,0x67,0xf3,0xd2,0xa5,0xbf,0x35,0x9f,0x39,0x21,0x5f,0x3b,0x79,
+  0x32,0xf2,0xb,0xf1,0xa9,0xa8,0x12,0x3c,0x96,0xd4,0xe3,0x47,0x5a,0xdd,0x86,0x88,
+  0x9b,0x1,0x4a,0xe4,0xd8,0x9f,0x18,0x80,0x0,0x46,0xc,0xda,0x95,0x68,0x77,0xda,
+  0xe8,0xae,0x2c,0xe3,0xda,0xb5,0xab,0xd8,0xdc,0xfb,0x0,0xfd,0x61,0x1f,0xd5,0xe4,
+  0x7d,0x28,0x19,0x0,0xc,0xd0,0x3a,0xc7,0x34,0x1f,0xc1,0xba,0x2,0x61,0x1c,0xa2,
+  0xde,0x6c,0x20,0x49,0xab,0xe0,0x9c,0xc3,0x7b,0xf,0xa2,0x99,0xf3,0xd,0x2a,0x1,
+  0x38,0xe3,0x92,0x7b,0xb9,0xc2,0x9c,0x7c,0x3a,0x52,0xf4,0xd6,0xf2,0xf2,0xf4,0xb5,
+  0x4b,0x97,0xb0,0xf9,0x59,0x9b,0xc,0x6f,0x2d,0x9f,0x5e,0xae,0x76,0xaa,0x5f,0x4d,
+  0x1b,0xd1,0xd7,0x17,0x8e,0xb7,0x96,0x5b,0x2b,0x75,0xc8,0x88,0xa3,0x28,0xb,0x64,
+  0x79,0x86,0xbc,0xc8,0x30,0xc9,0x26,0xc8,0x74,0x6,0x2e,0x18,0x54,0x18,0x40,0xc9,
+  0x0,0x9c,0x73,0x70,0xe,0x78,0x68,0x58,0x5f,0xc0,0xba,0x2,0x4,0xb,0x19,0x8,
+  0x54,0x6b,0x35,0x2c,0x74,0x3a,0x68,0x77,0x3a,0x48,0xab,0x55,0x8,0x29,0x41,0x44,
+  0xe0,0xe0,0x50,0x32,0x44,0x12,0x27,0x88,0x82,0x18,0xae,0xf4,0xe8,0xef,0xe,0xe3,
+  0x51,0x7f,0x38,0x5d,0x7d,0x77,0x35,0xcb,0x32,0xeb,0x9c,0xd3,0xa,0x80,0x3,0x60,
+  0xee,0xb9,0x86,0x74,0xbb,0xdd,0x48,0x29,0x75,0x46,0x85,0xfc,0x7c,0xa5,0x11,0x2f,
+  0xa6,0xad,0x18,0x32,0x10,0xf3,0x64,0xcb,0xc2,0x59,0x77,0x50,0xd5,0x3a,0xef,0x21,
+  0x95,0x44,0xab,0xdd,0x86,0x94,0xa,0xad,0x85,0x16,0x8a,0xa2,0x80,0xb5,0x16,0xde,
+  0x3b,0xc0,0xcf,0x1a,0xee,0x8c,0x73,0x28,0xa5,0x10,0x86,0x11,0x54,0x10,0x40,0x88,
+  0x19,0x19,0xe4,0x81,0x30,0x8,0x51,0x4d,0xeb,0x68,0x37,0x17,0x40,0x96,0x30,0x5c,
+  0x7f,0x1b,0x9b,0x1f,0x6c,0xaa,0xbd,0xcd,0xde,0x57,0xa6,0x93,0x69,0x4d,0xeb,0x72,
+  0x73,0xde,0x5e,0xfc,0x1,0x80,0xd7,0xee,0x39,0x21,0xc1,0x66,0x10,0xd8,0x26,0x9d,
+  0x1,0xe3,0xe7,0xd2,0x46,0x54,0x4b,0x1b,0x31,0x84,0x60,0x28,0xf2,0x12,0x59,0x56,
+  0x0,0x20,0x28,0xa5,0xc0,0x39,0x7,0x3,0x83,0x27,0xf,0xa5,0x14,0x9a,0xad,0x26,
+  0xea,0x8d,0xfa,0xbc,0xda,0x9d,0xcb,0x47,0xfd,0x54,0xba,0xde,0x27,0x71,0xd6,0xce,
+  0xdf,0xcf,0xb4,0x43,0x70,0x85,0x8a,0x4a,0xd0,0xa9,0x77,0x0,0xc7,0x70,0xd9,0xfe,
+  0xa,0xdb,0xeb,0xdb,0x18,0xf4,0x87,0x2b,0x0,0x56,0xe6,0xdb,0xfa,0x35,0x80,0xff,
+  0xfe,0x4c,0x8,0x29,0x53,0xa5,0xac,0x77,0xcb,0x60,0x74,0x22,0x4a,0xa3,0x4a,0xd2,
+  0xa8,0x40,0x28,0x86,0x49,0x7f,0x82,0xbd,0xbd,0x7d,0xa8,0xb9,0x46,0x84,0xa1,0x4,
+  0xe0,0xe7,0x89,0x3c,0x81,0x33,0x6,0x26,0x4,0x38,0xe3,0xf0,0xcc,0xc3,0x33,0x82,
+  0x63,0xe,0xcc,0x7b,0xc0,0xd3,0xc1,0x28,0x82,0x80,0x83,0xde,0x9,0x18,0x66,0x8d,
+  0x25,0x4d,0xe0,0x5e,0x42,0x4a,0x9,0xc9,0x25,0xbc,0xf3,0x37,0x6f,0xab,0x72,0xa7,
+  0xb2,0xee,0x4f,0x7d,0x91,0xd6,0x52,0xb5,0x1e,0xc4,0x72,0x49,0x6,0xa2,0x13,0xa7,
+  0xa1,0x8,0x2b,0x1,0xbc,0x77,0xc8,0xa6,0x19,0x76,0x77,0x77,0x11,0xc7,0x31,0xea,
+  0x8d,0x3a,0x18,0x8b,0xe6,0x5c,0xf8,0xf9,0xb8,0xe1,0x23,0xcd,0xa0,0x83,0xd5,0x1d,
+  0xf4,0x47,0xe8,0x63,0x1a,0x43,0x74,0xbd,0x63,0xe8,0x9d,0x87,0x29,0xd,0xac,0x36,
+  0x90,0x91,0x84,0x10,0x2,0x52,0x7d,0x62,0xdb,0x63,0x0,0xfa,0x9e,0x13,0xf2,0x18,
+  0x1e,0x53,0xa2,0x1d,0x76,0xe3,0x54,0x2c,0xc5,0x69,0x98,0x4,0x71,0x0,0xce,0x19,
+  0x9c,0xc3,0xac,0x7a,0x1d,0x8d,0xf,0x3e,0x69,0xc6,0x30,0xf7,0x25,0x37,0xcf,0x60,
+  0xae,0xb,0xf9,0xeb,0x2,0x2,0x38,0xe7,0x50,0x8c,0x83,0xe6,0xd3,0x22,0xce,0x39,
+  0x14,0x49,0x70,0x36,0xfb,0x5,0x63,0xec,0x76,0x7,0x38,0xe6,0xb3,0xbf,0x7b,0x4c,
+  0xc8,0x1e,0xf6,0x92,0xe3,0xd1,0xf1,0x6e,0xa5,0x5e,0x69,0x26,0x8d,0xa,0x97,0x81,
+  0x98,0x77,0xd1,0x2d,0x8a,0xa2,0x40,0x36,0xcd,0xa0,0x82,0x0,0x44,0x34,0xdb,0x3c,
+  0x66,0xa4,0x7c,0xec,0x45,0x1f,0x89,0x9f,0xaf,0xf3,0x87,0x67,0x1c,0x81,0xc,0x11,
+  0x86,0x11,0xa2,0x28,0x9e,0x65,0xb0,0x9c,0x81,0x1b,0x81,0x8,0x31,0xaa,0x69,0x15,
+  0x2a,0xc,0x10,0x4,0xea,0xe0,0xda,0x37,0xc0,0x1,0x98,0xde,0x6b,0x42,0x38,0xd5,
+  0xa9,0xc9,0x19,0x16,0xe3,0x24,0x48,0xe2,0x34,0x84,0x90,0x2,0xd6,0xce,0x7a,0x1b,
+  0x59,0x5e,0x20,0xcf,0xb,0xc4,0x15,0x3d,0x1f,0x3e,0xcd,0x34,0x82,0x8,0x37,0x90,
+  0x70,0x7b,0x51,0x32,0x40,0x35,0xa9,0xa1,0x96,0xd4,0x21,0x65,0x30,0xf,0x3f,0x73,
+  0xbf,0x52,0x32,0xe4,0xd3,0x2,0x65,0xa1,0x91,0x67,0x39,0xbc,0xa7,0x5b,0xa5,0xf,
+  0xe9,0xbd,0x26,0x84,0x41,0xa1,0x45,0x44,0x8b,0x2a,0x96,0x49,0x94,0x84,0x10,0x92,
+  0xc3,0x5a,0x8b,0xb2,0x28,0xa0,0xcb,0x72,0xd6,0x27,0xd5,0x1a,0x79,0x56,0x20,0x49,
+  0xcc,0xd,0x1b,0xa7,0xf9,0x30,0xf7,0xfa,0x60,0xfb,0xfa,0x8c,0x7b,0xf6,0x52,0x52,
+  0xa1,0x5e,0x6f,0x22,0xa0,0x10,0xeb,0x57,0x36,0xb0,0xfe,0xc1,0x6,0x40,0x80,0x33,
+  0x1e,0xde,0x78,0xc4,0x71,0x5,0x60,0x84,0xd5,0x77,0x56,0x51,0x16,0x9f,0xe8,0xa,
+  0x34,0x1,0xfc,0x1e,0x80,0xc5,0x5b,0xec,0xdb,0x3,0xf8,0x5,0x80,0x57,0xee,0x34,
+  0x21,0x2,0x1c,0xd,0x80,0x16,0x95,0x92,0x49,0x58,0x51,0x10,0x92,0xc3,0x59,0x7,
+  0x63,0xc,0x9c,0x9d,0x9d,0x80,0xd2,0xda,0x60,0x32,0x9d,0x22,0x49,0x53,0x8,0x21,
+  0x66,0x1f,0xf3,0x8d,0x7c,0xdc,0x46,0x43,0x84,0x14,0x48,0x2b,0x9,0x8a,0x81,0xc6,
+  0x5b,0x97,0x2e,0xe3,0xa7,0x3f,0x7a,0xe5,0xba,0xc9,0x79,0x2,0xe7,0x1c,0x0,0x41,
+  0x97,0x1a,0xc5,0x27,0x9,0x69,0x3,0xf8,0x1e,0x80,0x3f,0xb8,0xc5,0xbe,0xd,0x80,
+  0xbf,0xbb,0x2b,0x84,0x38,0x72,0xd,0x4f,0x7e,0x49,0x28,0x5e,0xd,0x63,0x5,0x2e,
+  0xf9,0x7c,0x46,0xeb,0xe,0x1e,0xcc,0x5a,0x8b,0x22,0xcf,0xa1,0xb5,0x46,0x14,0x45,
+  0x60,0x8c,0x1d,0xf8,0x8a,0xdb,0x11,0x82,0xb9,0xcf,0x91,0x4a,0x82,0x7c,0x89,0x41,
+  0xaf,0x8f,0xc1,0xfe,0xe0,0xd3,0x6a,0x7a,0xe3,0x7f,0xf9,0xfb,0xb1,0xff,0xb3,0x5f,
+  0xf8,0x34,0x3e,0xc4,0x33,0xd6,0x24,0x8e,0x25,0x15,0xa9,0x4a,0x9c,0x46,0x50,0x81,
+  0x0,0xe3,0xc,0x8c,0x31,0x70,0xc1,0xc0,0x38,0x9b,0x25,0x55,0xd6,0xcd,0x32,0xd1,
+  0x3,0x27,0x7a,0x3,0x11,0x9f,0x70,0xb0,0x98,0x4f,0xf4,0xe6,0xc3,0x2b,0xef,0xc0,
+  0xc5,0x1d,0x3f,0x94,0x60,0xef,0xa,0x21,0x2a,0x90,0xd,0x2e,0xf8,0x52,0x94,0x4,
+  0x61,0x9c,0x46,0x90,0xa1,0x2,0x17,0x1c,0x9c,0xb3,0xd9,0x2a,0x18,0xc0,0xe7,0x7e,
+  0x81,0xfc,0x4d,0x51,0xe5,0xf6,0xe2,0x89,0xe6,0x93,0xff,0x12,0x45,0x59,0xc0,0x98,
+  0x3b,0x3e,0x71,0x90,0x77,0xfc,0x1f,0x8f,0xd7,0x8e,0x2b,0x15,0xaa,0x5,0x4f,0x7e,
+  0xd9,0x94,0x96,0x8f,0xf6,0x27,0x60,0x82,0x23,0x1b,0x67,0x18,0x8f,0x72,0xd8,0xdc,
+  0x43,0x22,0x80,0x12,0x1,0x4,0x9f,0x35,0x7d,0x18,0xe7,0xb3,0xb0,0xca,0xd8,0x81,
+  0x56,0xdc,0xe8,0x54,0x67,0x32,0x23,0x45,0x1b,0x8d,0xc1,0x78,0x80,0xac,0x28,0x10,
+  0x37,0x22,0x2c,0x74,0xdb,0x90,0x5c,0x82,0xcf,0x18,0x6,0x63,0x1c,0x9e,0x3c,0xb2,
+  0xe9,0x14,0xe3,0xc9,0xe4,0xe6,0x6c,0x55,0x3,0xd8,0x9d,0x27,0x68,0xb7,0xf2,0x21,
+  0xef,0xdf,0x71,0x42,0x58,0x9d,0x45,0x4a,0x89,0x9a,0x2d,0x6d,0xb4,0xbd,0xb6,0x87,
+  0x6c,0x52,0xcc,0xee,0x56,0x1a,0x94,0x5a,0x63,0x3c,0x28,0x21,0x75,0x84,0x28,0x88,
+  0xc0,0x9d,0x4,0x3c,0xc3,0xfc,0x49,0x66,0x44,0x1c,0x4,0x9b,0x5b,0x6b,0x49,0x51,
+  0x16,0xd8,0xdd,0xdb,0x83,0xd7,0x1e,0x4b,0x67,0x16,0x51,0xef,0xd4,0x50,0x8b,0xea,
+  0x88,0x45,0x2,0xe6,0x67,0xbd,0xd7,0xa2,0x28,0x70,0xf9,0x97,0x97,0xf1,0xfa,0xa5,
+  0xd7,0x91,0x65,0x1f,0x6b,0x98,0xed,0x2,0xf8,0x7b,0x0,0xaf,0xde,0x26,0x69,0x7b,
+  0xf7,0x8e,0x13,0x12,0x4,0x81,0xe0,0x9c,0x6f,0x97,0x59,0xf9,0xcb,0xad,0xab,0x3b,
+  0x6a,0x6b,0x6d,0x8f,0xe6,0xa9,0xb9,0xf3,0x1e,0xcc,0x59,0xdb,0x66,0x8c,0x2d,0xa,
+  0x4b,0x18,0x5,0x53,0x48,0xae,0x60,0xb4,0x85,0x8a,0x14,0xc0,0x18,0x38,0x3,0xb8,
+  0xe4,0x60,0xe0,0x60,0xde,0x81,0x39,0x6,0x70,0x6,0x46,0x1c,0x6c,0x9e,0xbe,0x8f,
+  0xb3,0x31,0xe0,0x81,0xa4,0x15,0xa3,0xbb,0x7c,0xc,0x4b,0x69,0x17,0xcd,0xb8,0xd,
+  0xc9,0x24,0xe2,0x28,0x86,0x36,0x7a,0x52,0x64,0x39,0xde,0x7c,0xe3,0xcd,0xf8,0xa6,
+  0xd6,0xc5,0x8,0xc0,0xcb,0x0,0xfe,0xe9,0x9e,0xd9,0x16,0x11,0x95,0x80,0xfd,0x2f,
+  0xab,0xf9,0x78,0x3c,0xc8,0xa5,0x9d,0xc7,0x59,0xe6,0x29,0x27,0xc6,0x24,0x11,0x3d,
+  0x41,0x9e,0xbe,0x9b,0xd,0xf3,0xea,0x68,0x7f,0x82,0x41,0x6f,0x8c,0x66,0xb7,0x86,
+  0xb4,0x91,0xa0,0x52,0x8d,0x11,0x55,0x2,0x88,0x50,0x2,0x1c,0x9f,0x48,0xe5,0x69,
+  0x7e,0x90,0xc6,0x94,0x1a,0xba,0x30,0xb0,0x85,0x83,0x96,0xe,0x22,0xd,0xc1,0x1a,
+  0x12,0x91,0xa,0x91,0xc4,0xe9,0xd6,0x52,0x67,0xf1,0xd7,0x41,0x10,0x26,0xe4,0xe9,
+  0xdc,0xbc,0xa0,0xbb,0x51,0xb,0xec,0x3d,0x75,0x36,0xd3,0xe9,0x74,0x4a,0x54,0x79,
+  0xdd,0x7b,0xff,0x8e,0x73,0x4e,0x9a,0xb1,0x71,0x0,0xe0,0x8d,0xcf,0x1d,0x39,0x91,
+  0x34,0x93,0x6d,0xf,0x9f,0x90,0xa7,0xfb,0xc1,0x90,0x8e,0x47,0x93,0x64,0x32,0x98,
+  0x44,0x95,0x7a,0x1c,0x56,0xaa,0xb1,0x8a,0x93,0x10,0x32,0x54,0x60,0xe2,0xba,0x29,
+  0xcd,0x8e,0x54,0x59,0x78,0x37,0x27,0xc4,0x18,0x94,0xd3,0x2,0xf9,0xb8,0x84,0xa2,
+  0xa0,0xe8,0xd7,0x46,0xf9,0x5e,0x73,0x3f,0xaf,0x56,0xd3,0x49,0x14,0xc5,0x3f,0x6b,
+  0x36,0x9a,0x97,0x7b,0x7b,0xbd,0xb3,0xc6,0x98,0x93,0x37,0x11,0xc2,0x6f,0xfa,0xf9,
+  0xee,0x13,0xb2,0xbd,0xbd,0x5d,0x0,0x28,0x70,0x90,0x54,0x1f,0x14,0x53,0x1e,0x0,
+  0xb,0xc2,0xe0,0x3f,0xa1,0xe0,0x3d,0xe1,0x1c,0xc1,0xad,0xf8,0xa9,0xef,0x3a,0x63,
+  0x5a,0x83,0xbd,0x51,0x9d,0xb,0xde,0x62,0x1c,0x1d,0xce,0x78,0x88,0x79,0x44,0x12,
+  0x72,0xd6,0x22,0xb4,0xa5,0x85,0xb5,0x1e,0xc0,0xec,0xbc,0x99,0x35,0x16,0xe4,0x68,
+  0x33,0x50,0xe1,0x46,0x56,0x2d,0xf6,0x46,0xfd,0xd1,0x6e,0xa3,0xde,0x58,0x5f,0x5e,
+  0x59,0x7e,0xf5,0xcc,0x89,0x33,0x1b,0xab,0xab,0xab,0xdc,0x5a,0x6b,0x6f,0x11,0x2d,
+  0xd9,0x3d,0x25,0x64,0x5e,0x40,0xdd,0xd6,0xa2,0xb6,0x6,0x5b,0x6b,0x69,0x9a,0x4e,
+  0x93,0x24,0x79,0x1b,0xc4,0x96,0xac,0xb6,0x9d,0x72,0x52,0xd6,0xbd,0xf5,0x55,0x4b,
+  0xbe,0x46,0x8e,0x5a,0xc,0x54,0x1,0x0,0x11,0x48,0x2e,0x3,0x21,0x89,0x88,0x74,
+  0xae,0xad,0x33,0xf3,0x72,0x17,0x80,0x87,0xb7,0xc,0x6c,0x57,0x6,0x72,0x3b,0x1f,
+  0xe7,0xfd,0x5e,0xaf,0xd7,0x8f,0xa2,0x68,0xcb,0x91,0xbb,0x52,0xa9,0x54,0xb2,0xd5,
+  0xd5,0xd5,0xaf,0x39,0xe7,0x6a,0x37,0xdd,0xbf,0xe,0x20,0xb8,0x13,0x84,0xdc,0x8d,
+  0x6f,0x43,0xa8,0x6e,0xb7,0xab,0x8a,0xa2,0x50,0xfd,0xbe,0x95,0xc0,0x58,0xcc,0x1d,
+  0xa0,0xbc,0x21,0xef,0x51,0x69,0x90,0x6,0x1a,0xda,0x6b,0xad,0xcb,0xeb,0x9d,0xa4,
+  0x8f,0xf9,0x3,0x3d,0x5f,0xed,0x3c,0x74,0x7e,0x94,0xaf,0xff,0x5,0x80,0xbf,0xba,
+  0x29,0xfb,0xfc,0x15,0x80,0xbf,0x6,0xf0,0xf,0x9f,0x47,0x42,0xee,0x36,0x2e,0x2,
+  0xf8,0x26,0x80,0xea,0x4d,0x61,0xf7,0x87,0x0,0xde,0xc0,0x11,0x8e,0x70,0x84,0x23,
+  0x1c,0xe1,0x8,0x47,0x38,0xc2,0x11,0x8e,0xf0,0x85,0xc4,0xff,0x0,0xca,0xa1,0xfc,
+  0x59,0x5,0xd,0xfc,0x18,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,
+  0x82,
+    // /home/maemo/tietoopcom/resources/contactfemale.png
+  0x0,0x0,0x10,0xb8,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x44,0x0,0x0,0x0,0x44,0x8,0x6,0x0,0x0,0x0,0x38,0x13,0x93,0xb2,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,0x1,
+  0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x3,0xb,
+  0xf,0xc,0x37,0x76,0x10,0xb7,0xa8,0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x43,
+  0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x0,0x43,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x77,
+  0x69,0x74,0x68,0x20,0x47,0x49,0x4d,0x50,0x57,0x81,0xe,0x17,0x0,0x0,0x10,0x13,
+  0x49,0x44,0x41,0x54,0x78,0xda,0xed,0x5b,0x5b,0x6f,0x5c,0xd7,0x75,0xfe,0xf6,0xed,
+  0xdc,0xe6,0xcc,0x85,0x33,0x24,0x87,0x94,0x44,0x31,0x92,0xa3,0xc8,0x96,0xed,0x26,
+  0xb2,0x9c,0x46,0xae,0xe3,0xc6,0x71,0xdd,0xa4,0x4d,0x63,0x24,0x6e,0x9a,0xa4,0x5,
+  0x82,0x16,0x48,0x1e,0x8a,0x3e,0xf8,0xa1,0x7f,0x26,0x40,0xff,0x40,0x1f,0x1a,0xa0,
+  0xaf,0xcd,0x43,0x81,0x16,0x68,0xd1,0xa2,0x48,0xed,0xd8,0xb9,0x21,0x86,0x6f,0x51,
+  0x24,0x4b,0x22,0x87,0xc3,0xb9,0x9d,0xdb,0xbe,0xae,0x3e,0xcc,0xe8,0xe2,0xd8,0x41,
+  0xd1,0x44,0x92,0x69,0x94,0x1f,0xb0,0x40,0xcc,0xc,0x67,0x13,0xe7,0x3b,0xeb,0x5b,
+  0xeb,0xdb,0x6b,0x1f,0x2,0xc7,0x38,0xc6,0x31,0x8e,0x71,0x8c,0x63,0x1c,0xe3,0x18,
+  0xc7,0x38,0xc6,0x51,0x4,0xbb,0xdf,0x7f,0xe0,0xdb,0xdf,0xfe,0x76,0x56,0x14,0xc5,
+  0x59,0xa5,0xd4,0x67,0x18,0x63,0x7f,0x28,0x84,0xfc,0x4c,0x14,0xa9,0xd,0x21,0x84,
+  0x24,0x22,0x78,0xef,0x39,0x11,0x20,0x84,0x20,0xc6,0xc0,0x42,0x8,0xd6,0x18,0x33,
+  0xf2,0xde,0xff,0x27,0x11,0x7d,0x5f,0x4a,0xf9,0xef,0xad,0x56,0xeb,0xea,0x77,0xbf,
+  0xfb,0x5d,0xf3,0x20,0x8,0x11,0xf7,0x73,0xf1,0xef,0x7c,0xe7,0x3b,0x3,0x6b,0xed,
+  0x33,0xde,0xfb,0x6f,0x0,0xf8,0x8a,0x52,0xea,0xc9,0x4e,0xa7,0x73,0x62,0x63,0x63,
+  0x5d,0xf6,0xfb,0x7d,0x4a,0x92,0x2c,0x56,0x2a,0x12,0x69,0x9a,0x89,0xb5,0xb5,0x2e,
+  0x5b,0x5b,0x5b,0xa3,0x34,0x4d,0x55,0x8,0x61,0xcd,0x5a,0xbb,0xe5,0xbd,0x3f,0xe9,
+  0x9c,0xeb,0x18,0x63,0xca,0x8b,0x17,0x2f,0x4e,0x5f,0x7b,0xed,0x35,0xfb,0x91,0x24,
+  0xe4,0xc5,0x17,0x5f,0x64,0x4f,0x3f,0xfd,0x74,0xf7,0xf0,0xf0,0xf0,0xb3,0x44,0xf4,
+  0xe7,0x71,0x1c,0x7f,0x39,0xcf,0xf3,0x87,0xdb,0xed,0x76,0xd6,0x6e,0xb7,0xa9,0xd7,
+  0xeb,0xbb,0x28,0x4e,0xa4,0xd6,0x15,0x33,0x46,0x83,0x28,0x40,0x45,0x31,0x6b,0xe5,
+  0x1d,0xae,0x22,0xe5,0x18,0x88,0x1,0xac,0x5,0xe0,0x14,0x11,0x6d,0x19,0x63,0x84,
+  0x31,0x66,0xf2,0xe4,0x93,0x4f,0x4e,0x7f,0xf4,0xa3,0x1f,0x99,0x8f,0x1c,0x21,0x17,
+  0x2f,0x5e,0xec,0x94,0x65,0xf9,0x8c,0xf7,0xfe,0x6b,0x52,0xca,0x2f,0xf4,0x7a,0xbd,
+  0xed,0xc1,0x60,0x80,0x76,0xbb,0x4d,0x71,0x1c,0x3,0x60,0x72,0x34,0x3a,0x60,0xb3,
+  0xd9,0x1,0x88,0xe6,0x0,0xd5,0xa8,0x2a,0xd,0x6b,0xc1,0x94,0x92,0x42,0x29,0x9,
+  0x25,0x15,0xe3,0x9c,0x73,0xe7,0x5c,0x4f,0x6b,0x3d,0x24,0x22,0x46,0x44,0x93,0xa7,
+  0x9e,0x7a,0xea,0xe0,0x95,0x57,0x5e,0x71,0xf7,0x8b,0x10,0x79,0x3f,0x16,0x2d,0xcb,
+  0x72,0x97,0x73,0xfe,0xc7,0x49,0x92,0x3c,0xd7,0x6e,0xb7,0x87,0x79,0x9e,0x53,0x92,
+  0x24,0x94,0x24,0x9,0x33,0x46,0xb3,0xfd,0xbd,0x11,0xde,0xbd,0x71,0x80,0x48,0x14,
+  0xb8,0xf4,0xc4,0x69,0x74,0x7a,0xdb,0xf8,0xe1,0xcb,0x3f,0xc0,0xf5,0xeb,0x35,0xca,
+  0x72,0xd,0xeb,0x83,0x1e,0x4b,0x92,0x84,0x18,0x63,0x14,0x42,0x50,0xde,0xfb,0x87,
+  0xca,0xb2,0xfc,0x23,0xad,0xf5,0x88,0x88,0xde,0x0,0xd0,0x7c,0x64,0x32,0xe4,0xab,
+  0x5f,0xfd,0x6a,0x5e,0xd7,0xf5,0xe7,0x18,0x63,0xdf,0xec,0x76,0xbb,0xe7,0x7a,0xbd,
+  0x1e,0xcf,0xb2,0xc,0x0,0xb8,0xd6,0x9a,0x4d,0xa6,0x53,0xec,0x1f,0x8c,0x51,0x97,
+  0x73,0x5c,0x78,0x64,0x17,0x5f,0x7e,0xf1,0x25,0xb4,0x7b,0xe7,0xe0,0xed,0xc,0xa3,
+  0xbd,0x37,0x31,0x99,0xd6,0x8,0x60,0x50,0x4a,0x31,0xce,0x18,0x63,0x8c,0x81,0x88,
+  0xb8,0xd6,0xba,0xa7,0xb5,0x9e,0x96,0x65,0xf9,0xc3,0x67,0x9e,0x79,0xe6,0xe0,0xd5,
+  0x57,0x5f,0xa5,0xfb,0x41,0x8,0xbf,0x97,0x8b,0xbd,0xf4,0xd2,0x4b,0xa2,0xae,0xeb,
+  0x87,0x88,0xe8,0xa2,0xf7,0x7e,0x47,0x8,0xc1,0x95,0x52,0x10,0x42,0x30,0xad,0x35,
+  0xf6,0xf6,0x46,0xb8,0x72,0xe5,0x3a,0x8a,0xc5,0x4,0xe7,0x1f,0xea,0xe0,0xb9,0xcf,
+  0x3f,0xb,0xf0,0xc,0x32,0xce,0xf0,0xf1,0xb,0xcf,0xe3,0xc2,0x23,0xf,0x23,0x8b,
+  0x4a,0xec,0xdd,0xdc,0xc3,0xb5,0x6b,0x37,0x31,0x9f,0x97,0x60,0x8c,0x21,0x49,0x12,
+  0x8,0x21,0x62,0xe7,0xdc,0x19,0x0,0x67,0x9b,0xa6,0x69,0x7d,0x24,0x32,0x64,0x73,
+  0x73,0x33,0xd5,0x5a,0x3f,0x2b,0x84,0xf8,0x62,0x1c,0xc7,0x1f,0xcb,0xf3,0x3c,0x4a,
+  0xe2,0x98,0x59,0x6b,0x71,0x78,0x38,0xc5,0xde,0xfe,0x3e,0x82,0x5b,0xe0,0x93,0x8f,
+  0xed,0xe0,0x4f,0xbf,0xf6,0x4d,0xc,0x4f,0x5f,0x86,0xb5,0x1e,0xce,0x5,0x4,0xc4,
+  0xc8,0xbb,0x5b,0x90,0x6c,0x8a,0x72,0x7e,0x13,0xf3,0x59,0x9,0xe3,0x2,0x84,0x54,
+  0x60,0x8c,0xa1,0x2c,0xb,0x14,0x45,0x51,0x87,0x10,0xae,0x37,0x4d,0x73,0xf5,0xf2,
+  0xe5,0xcb,0x93,0x1f,0xff,0xf8,0xc7,0x74,0xa4,0x9,0xe9,0xf7,0xfb,0x6d,0x0,0x7f,
+  0x92,0x24,0xc9,0xf3,0x9d,0x4e,0xa7,0xdf,0xe9,0x74,0x18,0x11,0xb1,0xf1,0xf8,0x10,
+  0x37,0xf7,0xf7,0x0,0x5f,0xe2,0xa9,0x4f,0x5f,0xc0,0x5f,0xfe,0xd5,0x4b,0xe8,0x6d,
+  0x3e,0x2,0xad,0x3d,0xac,0xb,0xb0,0x2e,0xc0,0x58,0x87,0x80,0x18,0xed,0xc1,0x79,
+  0xf4,0x3a,0x12,0x8b,0xc9,0x15,0x1c,0x4e,0xa,0x38,0x2f,0x10,0x29,0x5,0x63,0x34,
+  0xaa,0xba,0x86,0xb3,0x76,0x1e,0x42,0xf8,0xa5,0xd6,0xfa,0xca,0x5b,0x6f,0xbd,0x15,
+  0x8e,0x74,0x51,0x35,0xc6,0x74,0x18,0x63,0xa7,0x18,0xf8,0x7a,0x9a,0xa6,0x9c,0x73,
+  0xce,0xca,0xaa,0xc2,0xc1,0x78,0xc,0x11,0x4a,0x7c,0xe6,0xc9,0xb,0xf8,0xc6,0xb7,
+  0xfe,0x16,0xaa,0xd5,0x87,0xd6,0xe,0xde,0x13,0x9c,0x23,0x78,0x1f,0x10,0x2,0x40,
+  0x44,0x8,0x21,0x20,0xe9,0x7f,0x12,0xbb,0xe7,0x1b,0x18,0xfd,0x2f,0x98,0x16,0x13,
+  0xcc,0x58,0x0,0x11,0x21,0x8a,0xa2,0x8e,0xd1,0xfa,0xbc,0x31,0x66,0xd7,0x39,0x27,
+  0x1,0xd8,0x23,0x5b,0x43,0xce,0x9c,0x39,0xc3,0x89,0x68,0xcb,0x39,0x37,0x20,0x4,
+  0x49,0x44,0xac,0xaa,0x6b,0xcc,0x66,0x73,0xc0,0xd7,0x78,0xf4,0x13,0x5b,0x78,0xe1,
+  0xcf,0xfe,0x6,0x5c,0x75,0xd1,0x34,0xe,0xc6,0x6,0x58,0xeb,0x61,0xdd,0x52,0x32,
+  0xce,0x7b,0x78,0xef,0x11,0x42,0x80,0x73,0xe,0x3e,0xfa,0x18,0xfa,0x9b,0x3b,0x48,
+  0x64,0x81,0xc9,0x64,0xc,0x6d,0x2c,0xa2,0x28,0x52,0x0,0x76,0xb5,0xd6,0x27,0x67,
+  0xb3,0x59,0x74,0xa4,0x8b,0xea,0xe6,0xe6,0x66,0x9b,0x88,0x76,0xac,0xb5,0x3d,0xef,
+  0x1d,0x8c,0xb5,0x98,0x4c,0xb,0xcc,0x66,0x13,0xf4,0xdb,0xc0,0x33,0x9f,0xfb,0x22,
+  0x54,0xb2,0x89,0xa6,0xb1,0x68,0x1a,0x87,0x46,0x3b,0x68,0xe3,0x60,0x8c,0x87,0xb5,
+  0x6e,0x49,0x82,0x77,0x70,0xce,0xc2,0x58,0x8b,0xba,0xd1,0x98,0xb9,0x6d,0x8,0x99,
+  0xc0,0x34,0x5,0xb4,0x71,0x90,0x52,0x81,0x88,0xba,0xce,0xb9,0xd,0x6b,0x6d,0xe7,
+  0x48,0x13,0xc2,0x18,0xeb,0x79,0xef,0x4f,0x78,0xef,0x73,0x6b,0x1d,0xb7,0xc6,0x62,
+  0xbe,0x28,0x51,0x17,0x73,0xc,0x7a,0x11,0x4e,0x9d,0xff,0x2,0xaa,0xda,0xa1,0xaa,
+  0x1d,0xea,0xc6,0xdd,0x26,0xe5,0x56,0x96,0x78,0x77,0x87,0x8c,0x46,0x1b,0x94,0x55,
+  0x8d,0xbd,0x9,0xe0,0x83,0x40,0xf0,0x76,0x59,0x63,0x96,0xd9,0x23,0xad,0xb5,0x6b,
+  0x44,0xb4,0x71,0xf1,0xe2,0x45,0x7e,0x64,0x6b,0x48,0x5d,0xd7,0xb9,0xb5,0x76,0xd,
+  0x40,0x6a,0xad,0x65,0xce,0x39,0x34,0x5a,0xc3,0x68,0xd,0xc5,0x9,0x75,0x3,0x58,
+  0xbb,0x94,0x3c,0x11,0x10,0x28,0xc0,0x39,0xf,0xe7,0x1c,0xac,0x73,0xb0,0xce,0x40,
+  0x1b,0x83,0xba,0xae,0x51,0x96,0x35,0xe6,0x8b,0xa,0x8b,0x45,0x81,0x54,0x18,0x38,
+  0xef,0x0,0x6b,0x61,0xad,0x80,0x73,0x8e,0x39,0xe7,0x72,0xc6,0xd8,0x6,0x11,0x45,
+  0xf7,0xda,0xa4,0xc9,0x7b,0x58,0x50,0x13,0xef,0x7d,0xe,0x20,0xf2,0xde,0xc3,0x3a,
+  0x7,0x67,0x97,0x77,0x5c,0x37,0x6,0x8d,0xb6,0x30,0x46,0x83,0x31,0x6,0x10,0xe0,
+  0x29,0xc0,0x7b,0x7f,0x97,0x4c,0x34,0xea,0xa6,0xc6,0xa2,0xac,0x31,0x9d,0x17,0x98,
+  0xce,0x4a,0x98,0xa6,0x82,0xe1,0xd,0x8c,0xb1,0x80,0x72,0xb0,0xc6,0xc0,0x5a,0x4b,
+  0xce,0xb9,0x8c,0x73,0x3e,0xd0,0x5a,0xb7,0xee,0x35,0x21,0xf7,0x2c,0xe5,0xb4,0xd6,
+  0xca,0x39,0x97,0x10,0x51,0x44,0xab,0xc2,0x18,0x82,0x87,0xb5,0x1e,0x7,0xa3,0x31,
+  0xc6,0x6f,0xff,0x33,0x9c,0x77,0x30,0xd6,0xc0,0x58,0x7d,0x27,0x4c,0x83,0xc6,0xd4,
+  0x28,0xeb,0x1a,0xf3,0xa2,0xc2,0x78,0x32,0xc7,0xfe,0x68,0x82,0xe9,0x64,0x8e,0xed,
+  0xe4,0x26,0x48,0x1f,0x42,0x9b,0x0,0x50,0x80,0xb5,0x16,0xd6,0x5a,0x66,0xad,0xcd,
+  0x8c,0x31,0xbd,0xaa,0xaa,0xb2,0x23,0x2b,0x19,0x63,0xc,0xbf,0x45,0xb0,0xb1,0x16,
+  0xce,0x1a,0x28,0x25,0xc0,0xa5,0xc2,0x8d,0x83,0x2,0xaf,0xff,0xf0,0xfb,0xb8,0xb0,
+  0xfe,0x4,0x0,0x20,0x78,0xf,0x4f,0x1e,0xde,0x79,0x18,0x6b,0x50,0x6b,0x83,0xa2,
+  0xa8,0x70,0x38,0x5d,0x60,0x74,0x30,0xc5,0xde,0xde,0x21,0x66,0xb3,0x2,0x6b,0xf1,
+  0x18,0x8b,0xd2,0x80,0x89,0x1c,0x52,0x8,0x38,0xe7,0x60,0x8c,0x81,0x73,0x2e,0x2,
+  0x90,0x33,0xc6,0xd4,0x91,0x25,0x24,0x84,0x60,0x57,0xe1,0xb5,0xd6,0x70,0xce,0x21,
+  0x8d,0x63,0x98,0xb4,0x45,0xfb,0xb3,0x9a,0xfd,0xfc,0xf5,0x6b,0x38,0xf5,0x3b,0x6f,
+  0x80,0x92,0x21,0x2,0x2d,0xdb,0xab,0x75,0xe,0x75,0xad,0xb1,0xa8,0x1a,0xcc,0xa6,
+  0xb,0x8c,0xf,0x67,0xd8,0x1f,0x4d,0x70,0x30,0x9a,0x62,0x18,0xed,0xa1,0x9a,0x8d,
+  0x71,0x73,0xa,0xb4,0xd7,0x32,0x28,0x25,0x50,0x95,0xd,0x9c,0x73,0xe4,0x9c,0x13,
+  0x0,0x84,0x10,0x42,0x1c,0x65,0x42,0x1a,0x6b,0x6d,0x1,0xc0,0x68,0xad,0x61,0xad,
+  0x45,0x9a,0xa6,0x88,0xa2,0x8,0x37,0x35,0x70,0xe5,0xca,0x35,0x7a,0xe7,0x7,0xff,
+  0xc4,0xc4,0xd9,0x2f,0x81,0xad,0x8c,0x96,0xb6,0xe,0x55,0xd5,0x60,0xbe,0x28,0x31,
+  0x9d,0xce,0x31,0x3e,0x9c,0x61,0x32,0x29,0x50,0xd7,0x1a,0x67,0xd8,0x4d,0xec,0x4f,
+  0x27,0x98,0xeb,0x36,0x7a,0x52,0x80,0x31,0xc0,0xb9,0xdb,0x92,0xc1,0x6a,0x27,0x7c,
+  0x74,0xb7,0xff,0xd6,0xda,0xb9,0xb5,0x76,0x9f,0x88,0xa,0x63,0xc,0x79,0xef,0x97,
+  0x45,0x8a,0x73,0xc6,0x85,0xc0,0xc1,0x5c,0xb3,0x37,0x7e,0xfa,0xdf,0x88,0xdd,0x69,
+  0x68,0x96,0x83,0x11,0xc1,0x5,0x8f,0xa6,0x31,0xa8,0xaa,0x1a,0xf3,0x79,0x81,0xf9,
+  0xbc,0x84,0x36,0x16,0x5b,0x69,0x8d,0x50,0xec,0xf9,0x71,0xe9,0x85,0x88,0x4,0xc0,
+  0x0,0xf2,0xcb,0xd6,0xec,0xbd,0x87,0x73,0xce,0x31,0xc6,0x6a,0xce,0xb9,0x3d,0xb2,
+  0x84,0x34,0x4d,0x73,0xe0,0xbd,0x7f,0x9b,0x31,0x76,0xe0,0xbd,0x27,0xef,0xfd,0xb2,
+  0xcd,0x52,0x40,0x96,0xc4,0x28,0x1a,0x85,0x37,0x7f,0x79,0x13,0xf,0x77,0xfe,0xb,
+  0x7,0xea,0x53,0xa8,0x6b,0xb,0xeb,0xc,0x8c,0x73,0xb0,0xc6,0x2e,0xc3,0x7a,0x8,
+  0xc1,0xd1,0x13,0x63,0x1c,0x1c,0xcc,0x44,0x1d,0x12,0x64,0x49,0xc,0x86,0x65,0x91,
+  0x76,0x4b,0x32,0x10,0x9c,0x3f,0x24,0xc6,0xe,0x94,0x62,0xc5,0x91,0x35,0x66,0x65,
+  0x59,0x96,0x5a,0xeb,0x37,0x88,0x68,0xcf,0x5a,0x8b,0xba,0xae,0x50,0x55,0x25,0x74,
+  0xd3,0x20,0x4,0x47,0xb,0x43,0xfe,0xca,0x9c,0xa1,0x98,0x5c,0xc1,0xe9,0x7e,0x4,
+  0xce,0x38,0x26,0xd3,0x39,0xe,0x46,0x87,0x18,0x8f,0x27,0x68,0x1a,0x8b,0x56,0x2b,
+  0xc7,0xa7,0x76,0x18,0xa4,0xbd,0x81,0x37,0x27,0xf0,0x85,0x63,0xb5,0xe0,0x0,0x42,
+  0x40,0xa3,0x35,0xea,0xba,0x86,0xb5,0x16,0x84,0xb0,0x9f,0x8,0x7f,0x2d,0x38,0x33,
+  0x3f,0xd2,0x9b,0x3b,0x22,0xda,0x77,0x3e,0xfc,0xa4,0x6c,0x9a,0xf1,0xfe,0x78,0x32,
+  0x2c,0xb5,0x1,0x8,0xa8,0xaa,0x8a,0x55,0x55,0xc1,0x79,0x2c,0x90,0xb8,0x1a,0x8f,
+  0x9e,0xdd,0x0,0x32,0xc0,0x93,0xc3,0x6c,0x5e,0xc0,0x39,0x8f,0x76,0x2b,0xc7,0x70,
+  0xb8,0x89,0xdd,0xec,0x17,0x78,0xe7,0x5a,0x85,0xa2,0x69,0xb8,0x13,0x41,0x95,0x55,
+  0xa,0xce,0x39,0x9a,0x46,0x63,0x7c,0x38,0x45,0xd5,0xe8,0x29,0x82,0x7f,0xf7,0x4c,
+  0x27,0x7d,0xf7,0xe5,0x77,0xe7,0xe6,0xc8,0x12,0x32,0xc4,0xb0,0xf5,0xc8,0x67,0x1f,
+  0x7f,0x38,0x70,0xdd,0x9e,0x15,0xc5,0xcf,0x1a,0xe7,0xa7,0x9e,0xb1,0xdc,0x91,0xc9,
+  0x9a,0x5a,0xb7,0x77,0x3a,0x5e,0x3e,0xb1,0x2e,0xf0,0xe8,0xd3,0xbf,0x8f,0xd3,0x8f,
+  0x5f,0x42,0x3c,0x2c,0xb1,0xb1,0x3e,0x40,0x51,0x56,0x0,0x71,0xa4,0x69,0x8a,0x34,
+  0x8b,0x50,0xd4,0x5d,0xf4,0xf6,0x5f,0xc5,0xd3,0xb3,0x39,0x7b,0x79,0xd4,0x88,0x9b,
+  0x93,0x89,0x3f,0xd0,0xda,0x70,0xa0,0x20,0x16,0xe6,0x69,0x2b,0xbb,0x9a,0xc8,0xb6,
+  0x89,0xf3,0x76,0x2,0xdc,0xf3,0x4,0xb9,0x27,0xf3,0x10,0x7e,0xe9,0xec,0xa5,0xce,
+  0xce,0xe3,0x3b,0x4f,0x6e,0x9e,0xee,0xbf,0xb0,0x73,0xe6,0xc4,0x97,0x86,0x9b,0xf9,
+  0x63,0x11,0x99,0xcd,0x88,0x6c,0xbb,0xcd,0x7d,0xba,0x4d,0xb5,0x78,0xf4,0x64,0x8c,
+  0xab,0xbb,0x27,0x91,0xd,0x1f,0x42,0x9e,0xb7,0x91,0xb7,0x32,0xf4,0xfb,0x1d,0x6c,
+  0x6e,0x76,0x71,0xf2,0xc4,0x6,0xd6,0xd7,0x5b,0x10,0xb2,0xc6,0xe8,0xf0,0xd,0xfc,
+  0x74,0xfa,0x2e,0x4e,0xa8,0x5,0xce,0x90,0x67,0x75,0x6d,0xb8,0xad,0x2a,0x15,0x7,
+  0x9d,0xd,0xfa,0x59,0xa7,0xbf,0xb9,0xb6,0xb6,0x36,0x18,0x28,0x2f,0xa3,0xc5,0x89,
+  0xf4,0xe4,0xfe,0xf5,0xc9,0xb9,0xa,0xb8,0x12,0x8e,0xc,0x21,0x5b,0x5b,0x1f,0x5f,
+  0x5f,0xdb,0xec,0xfc,0xc1,0xe0,0x44,0xe7,0x6b,0xc3,0xb3,0x83,0xcf,0xef,0x9e,0x3f,
+  0x75,0xe1,0xa9,0xe7,0x2e,0x27,0x4f,0x6d,0xb7,0xf9,0xb9,0xc5,0x3e,0xff,0xdd,0xf3,
+  0x3b,0x6c,0xe7,0x2b,0xcf,0xe3,0xa7,0xba,0xc2,0x8d,0xfd,0x3d,0xcc,0x8b,0x19,0x8a,
+  0x6a,0x86,0xa2,0x9a,0xa0,0x6a,0xa6,0x28,0xea,0x11,0x16,0xd5,0x8,0x7,0x93,0x2b,
+  0xf8,0xe5,0xf5,0x9f,0xe0,0xad,0xab,0xaf,0xe1,0xfa,0xde,0xdb,0xb8,0x29,0x38,0xe2,
+  0x27,0x1e,0xc1,0xf3,0xbd,0x8,0x9f,0xa6,0x2,0x97,0x7a,0x92,0x7d,0x62,0x77,0xc0,
+  0xd7,0x76,0x87,0xa9,0x6b,0x25,0x3,0x4f,0xe8,0x1a,0x6b,0x58,0x22,0x26,0x93,0xe9,
+  0x62,0x3c,0x3e,0x1a,0x92,0xf9,0xfa,0xd7,0xc5,0xf6,0x9b,0xbf,0xf8,0x78,0xde,0xcd,
+  0x5e,0x68,0xf5,0xb3,0x2f,0xf5,0xb6,0xf3,0x41,0x77,0x3b,0x43,0x1d,0x2a,0xe0,0xfc,
+  0x39,0xc,0x2e,0x3c,0x2,0x30,0x86,0xc5,0xf5,0x6b,0xd8,0x3a,0x71,0x2,0xe3,0xe9,
+  0x21,0x46,0xd3,0xeb,0x98,0x2e,0xc6,0x68,0xa5,0x1d,0x64,0x49,0x1b,0x42,0x48,0x0,
+  0xc,0xda,0x54,0x28,0xaa,0x19,0xea,0x66,0x81,0x40,0x1e,0xbd,0xee,0x0,0x59,0xd6,
+  0xc2,0xde,0xe5,0x5d,0xe0,0xf2,0x25,0xb8,0xe0,0x11,0x7c,0x40,0x70,0x1,0xf9,0xb4,
+  0xe9,0x18,0x13,0x3e,0xdb,0x2c,0xb4,0x6a,0xb5,0xe4,0xe8,0xd2,0xa5,0x4b,0x6f,0xbf,
+  0xfc,0xf2,0xcb,0xf6,0xc3,0xce,0x10,0xfe,0x58,0xbb,0xbd,0xb1,0xd1,0x6f,0xff,0x5e,
+  0xde,0xcb,0x5e,0x18,0xee,0xe,0xce,0x6e,0x7d,0x6c,0x80,0xb8,0x1d,0xc1,0x5a,0x83,
+  0xb2,0xae,0x50,0xd6,0x5,0xca,0xba,0x40,0x63,0x1b,0x4,0x4,0x10,0x23,0x18,0x6b,
+  0x50,0x94,0xb,0x14,0xe5,0x1c,0xf3,0xc5,0x18,0xb3,0xf9,0x18,0xd3,0xc5,0x1,0x16,
+  0xc5,0x4,0xda,0x55,0x88,0x12,0x89,0xfe,0xfa,0x0,0x9b,0x9b,0x43,0x74,0x3a,0x3d,
+  0x48,0x29,0x11,0x42,0xc0,0x2d,0x13,0xc6,0x4,0x3,0x18,0x10,0x6c,0x90,0xba,0x32,
+  0x2d,0x22,0xba,0x6a,0xb4,0x79,0x67,0x34,0xda,0x28,0x81,0x91,0xff,0xd0,0x32,0x64,
+  0x7b,0x7b,0x3b,0x49,0x83,0x38,0x9b,0x66,0xd1,0xe3,0xdd,0xf5,0x6c,0x3d,0xef,0xb7,
+  0xc0,0x25,0x87,0xd6,0x1a,0x56,0x5b,0x38,0x17,0x6e,0x8f,0x4,0x1,0xa0,0x95,0xa7,
+  0x38,0x7d,0x7a,0x7,0x91,0x8a,0xd0,0x6e,0xef,0xa3,0x2c,0xa,0x68,0xad,0x11,0x3c,
+  0x81,0x31,0x40,0x8,0x81,0x28,0x8a,0xd0,0x6a,0xe7,0xe8,0x76,0x7b,0xc8,0xdb,0xed,
+  0x5b,0x3,0x21,0x84,0xd5,0x3a,0x21,0x10,0x88,0x1,0xc4,0x8,0x32,0x15,0x50,0xb9,
+  0xcc,0x9d,0xb1,0xe7,0x75,0x1d,0x1e,0xdf,0xce,0xfd,0xec,0x46,0x81,0x83,0xf,0x8d,
+  0x90,0x34,0xa4,0x39,0x87,0x3f,0xcf,0x25,0xbf,0x90,0xb4,0xe3,0x5e,0xd6,0x8e,0xc1,
+  0x38,0x83,0xd6,0x1a,0x75,0xd5,0x60,0x75,0x80,0xd,0x10,0x81,0x96,0x3,0x24,0x64,
+  0x59,0x86,0xe1,0xd6,0x10,0x79,0x3b,0x87,0xd6,0xd,0xac,0x75,0xf0,0x3e,0x0,0x44,
+  0x60,0x8c,0x81,0x73,0xe,0xa9,0x14,0x94,0x8a,0x20,0xa4,0x0,0x5,0x5a,0x92,0x10,
+  0x2,0xbc,0xf,0x70,0xd6,0x2f,0x9d,0x13,0x11,0x44,0xc4,0xa1,0x12,0x19,0x37,0x92,
+  0x3d,0x4,0xe0,0x31,0x8a,0xf4,0xeb,0xc0,0x87,0x48,0x48,0xd0,0x71,0xea,0x8c,0x3b,
+  0xc7,0x40,0xe7,0x5a,0xdd,0x24,0xc9,0x3a,0x31,0x18,0x7,0xaa,0x59,0x85,0xc5,0xbc,
+  0x80,0x52,0x11,0xf2,0x76,0xe,0xbe,0xda,0xa5,0xfa,0x5b,0x99,0xd2,0xca,0x90,0x65,
+  0xe9,0xea,0xae,0xd3,0x6d,0x39,0x4,0xbf,0xfc,0xb9,0xb4,0xe6,0x1e,0x3e,0x10,0x2,
+  0x5,0x10,0x96,0x84,0x3a,0xe3,0xd0,0x54,0x1a,0x4c,0x30,0xa8,0x58,0x41,0xc4,0x2,
+  0x71,0x4b,0xb1,0x42,0xb0,0x53,0xde,0xfb,0x87,0x99,0xa0,0xfe,0x87,0xea,0x54,0x49,
+  0xf8,0x14,0x84,0x13,0x4c,0xb0,0x13,0x79,0x27,0x93,0xad,0x4e,0x2,0xce,0x19,0xca,
+  0xa2,0xc4,0xe1,0x78,0x82,0x62,0x51,0x20,0x84,0x80,0xd5,0xc9,0x1b,0x42,0x58,0x4a,
+  0xe8,0xd6,0x5,0x2e,0x17,0x59,0x5,0x0,0xc2,0x9d,0xcf,0x8,0xb8,0x2d,0x15,0x22,
+  0x6,0x22,0xc0,0x6a,0x87,0xba,0xa8,0xd1,0x94,0x1a,0x21,0x84,0x65,0x86,0xb4,0x14,
+  0xe3,0x8a,0xaf,0x31,0xc6,0x76,0x38,0xb1,0xce,0x87,0x49,0x8,0xeb,0xac,0xc5,0x3d,
+  0x99,0xca,0x41,0x9c,0x45,0x71,0x9c,0x29,0xa8,0x58,0x1,0x8c,0xa1,0x2c,0x2b,0x1c,
+  0x8e,0xf,0x51,0x14,0x77,0x8,0xb9,0xcb,0xc9,0xc2,0xbb,0x0,0x67,0x97,0xfb,0x17,
+  0x63,0xcc,0x32,0xac,0x85,0xb5,0xee,0xae,0x61,0xf3,0x72,0x3c,0x40,0xe1,0xe,0x45,
+  0xce,0x39,0xe8,0xda,0xc0,0x68,0x83,0x10,0x8,0x8c,0x33,0x8,0xc9,0xa1,0x62,0x25,
+  0x79,0xc4,0xd7,0x65,0x2a,0x86,0x1b,0x1b,0x1b,0xf9,0x87,0x42,0xc8,0x70,0x38,0xcc,
+  0x5a,0x6b,0xad,0xed,0x7c,0x2d,0xed,0xa6,0xed,0x4,0x4c,0x70,0x84,0x40,0xf0,0xde,
+  0xa3,0xaa,0x6a,0xcc,0xe6,0x73,0x54,0x55,0xb5,0x22,0xe4,0xe,0x19,0xbf,0x36,0xc2,
+  0x7,0xbd,0x1f,0x56,0xb1,0x7c,0xed,0xbd,0x87,0xb3,0xe,0xce,0xae,0xda,0xef,0x8a,
+  0x2c,0x1e,0x71,0xc8,0x44,0xe6,0x2a,0x95,0x3b,0x31,0xe2,0xad,0xdf,0xd6,0x5b,0xfd,
+  0x26,0x84,0x88,0x34,0x4d,0xd7,0xe3,0x5c,0x9e,0xca,0x3a,0x49,0x27,0xcd,0x13,0x70,
+  0xc1,0x61,0x8d,0x43,0x53,0x6b,0x94,0x65,0x89,0xaa,0x2c,0xa1,0xb5,0x59,0xc9,0x64,
+  0x39,0x54,0xc6,0xfb,0x2e,0xf8,0x6e,0xfd,0xdd,0x1d,0xb4,0xfa,0xdd,0xd5,0xf7,0x56,
+  0x1f,0x4,0x1f,0x60,0xb5,0x85,0x6d,0x2c,0x9c,0xb5,0xf0,0xce,0x23,0x10,0xc0,0x25,
+  0x7,0x8f,0x79,0xc,0x45,0x43,0xe,0x3e,0x4,0x10,0x3f,0x68,0x42,0xa4,0x24,0xb9,
+  0xcd,0x5,0x3b,0x95,0x66,0x71,0x9e,0xb4,0x62,0x70,0xc1,0x61,0x8c,0x45,0x55,0x55,
+  0x68,0xea,0x66,0xb5,0x95,0x5f,0x86,0xf3,0x7e,0x55,0x3b,0x3e,0x20,0x4b,0xf0,0x41,
+  0x99,0x1,0xfc,0xea,0x81,0x6d,0x20,0x20,0xb8,0x0,0x6b,0xdc,0x92,0x14,0xed,0xe0,
+  0xac,0x3,0x81,0xc0,0x24,0x3,0x57,0x4c,0x81,0x51,0xdf,0x32,0xbb,0xd1,0x46,0x3b,
+  0x7d,0xc0,0x5d,0x66,0x43,0x11,0x13,0x9b,0x8c,0xb3,0xed,0xa4,0x15,0xb5,0xd2,0xf6,
+  0x92,0x10,0x67,0xed,0xad,0x79,0xe7,0x72,0x3c,0x68,0x2c,0x74,0xa3,0x91,0x24,0x6e,
+  0x59,0x1c,0x6f,0xdf,0xfc,0xff,0x4d,0x2a,0xb7,0x8,0x59,0x65,0x46,0x58,0x1e,0x75,
+  0x7a,0x17,0xe0,0xed,0x92,0xdc,0x5b,0xb2,0x1,0x8,0x42,0x71,0x88,0x88,0x2b,0xc6,
+  0x69,0xe0,0x83,0xdf,0x70,0x70,0xe9,0x3,0xce,0x10,0x23,0xbd,0x75,0x5d,0x2,0xfa,
+  0x51,0x16,0x27,0x69,0x1e,0x83,0xb,0x76,0xbb,0x75,0xde,0x92,0x86,0x31,0x6,0x55,
+  0x59,0xc3,0x68,0xd,0x22,0x7a,0xbf,0x32,0xf0,0x6b,0xea,0xc9,0xaf,0xbc,0x1f,0x42,
+  0x80,0x37,0xcb,0x8c,0x8,0x7e,0x65,0xd2,0x56,0x2d,0x1b,0xc,0x90,0x11,0x87,0x4c,
+  0x44,0x4,0xc6,0x6,0xce,0xb9,0x8d,0x80,0x90,0x3c,0x60,0x42,0x82,0xf0,0x3e,0xe4,
+  0x60,0xe8,0x46,0xa9,0x8c,0xe3,0x2c,0x82,0x90,0xfc,0x3d,0xf6,0x3a,0x10,0x41,0x6b,
+  0x8d,0xaa,0xaa,0x60,0xac,0xf9,0x3f,0x4a,0xe6,0xee,0xcc,0x1,0xbc,0xb,0xab,0x89,
+  0x9a,0x5f,0xfa,0x92,0xdb,0x5,0x77,0xb9,0x26,0x57,0x2,0x42,0x9,0x9,0x86,0x75,
+  0x2,0xfb,0xad,0x9,0xf9,0xd,0x24,0x13,0x24,0x42,0xe8,0x83,0xd1,0x7a,0x9c,0xc5,
+  0x2a,0x6d,0x27,0x60,0x9c,0xc1,0x58,0x3,0x19,0x49,0x44,0x71,0x84,0x28,0x56,0x60,
+  0x9c,0xc1,0x87,0x65,0xb,0x25,0x22,0x2c,0x3d,0x37,0xbd,0x27,0xe8,0x7d,0x59,0x83,
+  0xf7,0x4a,0x87,0x80,0xe0,0x9,0xce,0x78,0x84,0xe0,0xc1,0x5,0x87,0x8c,0x24,0x84,
+  0xe4,0x60,0x82,0x81,0x9,0xe,0xa6,0x0,0x99,0x48,0xc1,0x18,0xeb,0x11,0xd1,0x90,
+  0x40,0xf,0xba,0x86,0x4,0x15,0x78,0xd8,0xa,0x81,0x4e,0x48,0x25,0xa4,0x8a,0x25,
+  0x42,0x20,0x70,0xc1,0x21,0xa4,0x40,0x92,0x25,0xc8,0xdb,0x2d,0x28,0x19,0x41,0x2a,
+  0x75,0xdb,0x98,0x7d,0x50,0x97,0xf9,0x75,0x6d,0x18,0xb7,0x32,0x7,0x58,0xd9,0xf7,
+  0xb0,0x94,0x47,0x2c,0xa1,0x62,0x5,0x2e,0x96,0x83,0x67,0xc6,0x1,0xc6,0x19,0xb8,
+  0x60,0x20,0x50,0x1e,0x42,0xd8,0x4,0xf0,0x60,0x33,0xa4,0x1b,0x77,0x94,0x94,0x62,
+  0xcb,0x6a,0xd7,0x39,0xbc,0x31,0x83,0x4a,0xae,0x23,0x4,0xa0,0xa9,0x6a,0x14,0x8b,
+  0x12,0xd5,0x81,0x1,0xd5,0x2,0xaa,0x1d,0x23,0x92,0x31,0xa4,0x5a,0xde,0x51,0xa,
+  0x0,0xb,0x7c,0xd5,0x4b,0xd9,0xea,0xa2,0xdf,0x5f,0x68,0xc1,0xb0,0xba,0x58,0x6,
+  0xbe,0xda,0xdd,0x12,0x0,0xf2,0x4,0x57,0x7b,0x4,0xd3,0x80,0x13,0x43,0x53,0x68,
+  0x70,0xce,0x0,0xe,0x54,0x93,0x1a,0xb6,0xb1,0x2,0xa0,0xa1,0x10,0x22,0x71,0xde,
+  0x3d,0x40,0x42,0x86,0x5d,0x28,0x19,0xa8,0x98,0x95,0x78,0xfd,0x95,0x77,0xf0,0xf6,
+  0xcf,0xae,0x2,0x44,0xcb,0x89,0xb8,0xb1,0x28,0x8b,0xa,0x84,0x0,0x79,0x32,0x81,
+  0xdb,0x24,0x4,0x87,0x3b,0x96,0x7c,0xd5,0x42,0x6e,0xdb,0xf7,0xdb,0xd2,0xa1,0xf7,
+  0xb8,0xd9,0x5b,0x9d,0x86,0x88,0x6e,0x4b,0x46,0x2f,0x34,0x16,0xfb,0x5,0x4c,0xbd,
+  0x94,0x26,0x97,0x1c,0x8c,0xad,0xdc,0xaf,0xf5,0xd0,0xa5,0x1,0x18,0x48,0x26,0x12,
+  0xba,0xd4,0xf,0x8e,0x90,0x5e,0x2f,0x29,0x9b,0xa6,0xf9,0x8f,0x72,0x51,0xa5,0xf3,
+  0x49,0x9,0xab,0xef,0x9a,0xf3,0x6,0xc0,0x53,0x38,0x9f,0xa4,0xf1,0xb9,0x48,0xd4,
+  0xd8,0x8b,0xf,0x61,0x1b,0x87,0xac,0x97,0x40,0xc5,0x12,0x9c,0x73,0x70,0xb9,0x3a,
+  0x67,0xa1,0xa5,0xad,0x17,0x91,0x80,0x80,0x80,0xf7,0x1e,0xd6,0x10,0xc8,0x10,0xbc,
+  0x73,0xb0,0xc6,0x43,0x97,0x1a,0xe5,0xac,0xc2,0xfc,0x60,0x81,0xf9,0xa8,0x40,0x31,
+  0xae,0xd0,0x2c,0x9a,0x3d,0x80,0x7e,0x2,0x86,0xfa,0xb6,0x71,0x63,0xc,0x42,0x70,
+  0x40,0xe2,0xe7,0x8a,0xab,0xbd,0x7,0x2a,0x19,0xe7,0xdc,0x54,0x4a,0xf9,0x8f,0x5a,
+  0xeb,0x7f,0xad,0xa6,0x15,0xa6,0xb3,0x12,0xcb,0x3,0x56,0x5,0x28,0xa0,0xd3,0x4d,
+  0xff,0xc2,0x39,0xfb,0xd7,0xd3,0x83,0x79,0xb7,0xac,0x2a,0x8c,0xae,0x26,0x68,0xad,
+  0x65,0x68,0xf5,0x52,0x64,0xdd,0x14,0x49,0x2b,0x81,0x54,0x2,0x8c,0x3,0x42,0x49,
+  0xc8,0x58,0x82,0x9,0xb6,0xda,0xcd,0x1a,0xe8,0x4a,0xc3,0x6a,0x8d,0x72,0xd1,0x60,
+  0xb1,0xbf,0xc0,0x6c,0xb4,0x40,0x39,0xab,0xd0,0x94,0x6,0xd6,0x58,0x10,0xf,0xff,
+  0xd6,0x54,0xee,0xef,0x3c,0xc2,0x6a,0xab,0x6f,0xa1,0xa0,0xa0,0x94,0x82,0x60,0xa2,
+  0x54,0x89,0xba,0xf1,0xdb,0x10,0x72,0xcf,0x1f,0xfe,0xdf,0xdd,0xdd,0xbd,0xec,0x9c,
+  0xfb,0x16,0x79,0x9c,0xb0,0xce,0x75,0x54,0x24,0xd6,0xe2,0x56,0xd4,0xce,0x3a,0x69,
+  0x9a,0x75,0x92,0x38,0x4e,0xa3,0x84,0x9,0x9e,0x30,0x6,0x25,0x95,0x84,0x8c,0x15,
+  0x98,0xc0,0x32,0xed,0x6b,0x3,0x53,0x9b,0xe0,0xac,0xb3,0x4d,0xa9,0x4d,0x39,0x29,
+  0xcb,0x72,0x56,0x2d,0x74,0x65,0xa,0x2,0x66,0x60,0x6c,0x26,0x4,0xff,0x87,0xe9,
+  0x74,0xfa,0xf7,0xb8,0x4f,0xb8,0xe7,0x4f,0x32,0x6f,0x6f,0x6f,0xbf,0x76,0xe3,0xc6,
+  0x8d,0xa9,0x9,0x66,0x83,0xbc,0x3f,0x69,0x75,0xd8,0xf5,0xde,0x6f,0xeb,0xda,0xac,
+  0x4d,0x47,0xf3,0xb6,0x14,0xbc,0x43,0xa0,0x2e,0x11,0xba,0x0,0xd6,0x8,0x68,0x3,
+  0xc4,0x43,0x8,0x81,0x80,0x3,0x10,0xc6,0xe4,0x7d,0xed,0x5c,0x28,0x83,0x73,0x23,
+  0xef,0xc2,0xcd,0x10,0x68,0x8f,0x9,0x76,0x8d,0x73,0x76,0x4d,0x4a,0xf9,0x73,0xdc,
+  0x47,0xdc,0xcf,0x7f,0xf,0x61,0x79,0x9e,0xf,0x94,0x52,0x43,0xb2,0xd4,0xf7,0xc1,
+  0xe7,0x4e,0xbb,0x8c,0x88,0x65,0x4,0xdf,0x22,0xb0,0x16,0x11,0xb5,0x39,0x90,0x6,
+  0x2,0x5b,0xda,0x39,0x36,0x7,0xd8,0x3c,0x20,0x68,0x0,0x8d,0x14,0x6c,0x1a,0xa9,
+  0x68,0x4a,0x82,0x26,0x59,0x96,0x8d,0x9e,0x7d,0xf6,0xd9,0xd1,0xf7,0xbe,0xf7,0x3d,
+  0x8f,0x63,0x1c,0xe3,0x18,0xc7,0x38,0xc6,0x31,0x8e,0x71,0x8c,0x63,0x1c,0xe3,0xff,
+  0x1d,0xfe,0x7,0x1f,0x92,0x69,0x26,0xfd,0xbe,0x16,0x61,0x0,0x0,0x0,0x0,0x49,
+  0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/maemo/tietoopcom/resources/away.png
+  0x0,0x0,0xe,0xcd,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x30,0x0,0x0,0x0,0x30,0x8,0x6,0x0,0x0,0x0,0x57,0x2,0xf9,0x87,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0x14,0xc3,0x0,0x0,0x14,0xc3,0x1,
+  0x15,0x70,0x4d,0x42,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd8,0xc,0x11,
+  0xa,0x2d,0x4,0x35,0x3c,0xf2,0x39,0x0,0x0,0xe,0x4d,0x49,0x44,0x41,0x54,0x68,
+  0xde,0xd5,0x9a,0x7b,0x70,0x54,0x55,0x9e,0xc7,0x3f,0xe7,0xde,0xbe,0xb7,0xbb,0xd3,
+  0xaf,0x3c,0x20,0x9d,0x4,0x42,0x20,0x21,0x4,0x44,0xd1,0xc8,0xd3,0x17,0xa8,0xe0,
+  0xe8,0x2c,0xb2,0xca,0xa8,0x65,0xd5,0xec,0x3a,0xae,0xb3,0x3e,0xb1,0xa6,0xc6,0xda,
+  0xd5,0xd9,0xd5,0x5a,0x7c,0x61,0x29,0xa3,0xcc,0x4c,0x59,0xbb,0xa2,0xa0,0xb3,0xd6,
+  0x4e,0x39,0x3b,0x65,0xd,0x8a,0xce,0xac,0x3b,0xeb,0x2a,0x82,0x20,0xc,0x6f,0x91,
+  0x1,0x21,0x21,0xe1,0x61,0x20,0xe9,0x4e,0x20,0xe9,0xdc,0x7e,0xdf,0xbe,0xf7,0x9e,
+  0xfd,0xa3,0x3b,0xb1,0xc3,0x43,0x8c,0x71,0x77,0x6a,0x6f,0xd5,0xaf,0x3a,0x7d,0xfa,
+  0xde,0x73,0xbf,0xdf,0xdf,0xf9,0xbd,0xce,0xef,0x44,0x48,0x29,0xf9,0xff,0x7c,0xb9,
+  0xbe,0xcd,0xc9,0x1e,0x78,0xb1,0xc2,0x57,0xe3,0xb6,0x6b,0x35,0x47,0xa9,0x1,0xaa,
+  0x71,0x39,0xd5,0x0,0x58,0x4a,0x17,0xd0,0x95,0x53,0x9c,0xce,0xce,0xac,0xda,0xf1,
+  0xf2,0x8f,0x4f,0x25,0xbf,0xad,0x77,0x8a,0x91,0xae,0xc0,0x73,0xab,0x42,0x75,0x2,
+  0xe5,0x66,0x60,0x31,0x70,0x15,0xa0,0x9c,0xe7,0x11,0x7,0xd8,0x4,0xac,0x95,0x38,
+  0xef,0x3c,0x7a,0x5f,0xff,0xb1,0x3f,0xb,0x81,0x65,0xaf,0x94,0x2e,0xd6,0x14,0x65,
+  0x29,0x52,0x36,0x3,0xcc,0xa9,0x9,0xd9,0xe1,0xb2,0x2b,0xd4,0xd2,0xb2,0x4a,0xdc,
+  0xde,0x32,0x74,0xdd,0x8f,0x4b,0xf,0xe6,0x17,0xc0,0x34,0x30,0xcd,0x4,0xd9,0x74,
+  0x1f,0x7d,0xbd,0x51,0xa2,0x7d,0x9b,0xed,0x6d,0x5d,0x86,0x9a,0x47,0x20,0x3e,0xcd,
+  0x39,0xce,0xb2,0xa5,0xf7,0xc7,0xd6,0xfe,0x9f,0x10,0x58,0xbe,0xba,0x7c,0x2e,0xf0,
+  0x2,0x52,0xce,0x9a,0x5d,0x1d,0xb4,0xeb,0x6a,0xae,0x57,0xc3,0x63,0xa7,0xe2,0x72,
+  0x8d,0xca,0xab,0xd7,0x4e,0x61,0xcb,0x2c,0xb6,0x99,0xc5,0xb2,0xcc,0xbc,0x9d,0xba,
+  0x74,0x54,0xdd,0x8d,0x2a,0xdc,0x28,0x6a,0x49,0x9e,0x94,0x75,0x92,0xe8,0xf1,0xfd,
+  0x1c,0xeb,0x7c,0x3f,0x4f,0x46,0x88,0xed,0xc0,0x23,0xff,0x78,0x6f,0xef,0xc6,0xff,
+  0x15,0x2,0x2b,0x5f,0x19,0x15,0x32,0x84,0xfd,0x3a,0xb0,0xb8,0x29,0xec,0xb5,0x67,
+  0x35,0xdc,0xa2,0x56,0xd4,0x4c,0x7,0x14,0xcc,0x4c,0x2f,0xe9,0x44,0x1f,0x46,0xda,
+  0x20,0x67,0xdb,0x5f,0x39,0x8f,0xa6,0xaa,0xf8,0x4b,0x82,0xf8,0xbc,0x65,0xe8,0x9e,
+  0x72,0x50,0x1c,0x4e,0x75,0xee,0x62,0x7b,0xfb,0x5b,0x76,0x4b,0x34,0xad,0x2,0x6b,
+  0x83,0x52,0xbd,0x6b,0xc9,0xfd,0x27,0xfb,0xbf,0x35,0x2,0x2b,0x5e,0xad,0x68,0xb4,
+  0xa4,0x7c,0xcf,0xa3,0xd0,0xb0,0xf0,0xc2,0x9b,0x94,0xda,0xfa,0x2b,0x0,0x85,0x64,
+  0xf2,0x4,0x27,0xfb,0x4e,0x62,0x4b,0x89,0x65,0x99,0x24,0xd3,0xc7,0x30,0xad,0x36,
+  0xe2,0xa9,0x2c,0x69,0xd3,0xa2,0x3b,0x99,0x5,0xa0,0xd2,0xe7,0xc6,0xab,0xbb,0xf0,
+  0x79,0xdc,0x78,0xf5,0x9,0x94,0x78,0xeb,0xf3,0xab,0x22,0x4,0xa3,0xca,0x46,0xe1,
+  0xb,0x8c,0x1,0xc7,0xa1,0xe3,0xf0,0x66,0xde,0xdb,0xf7,0xae,0x93,0x71,0x68,0x77,
+  0x9,0xb1,0xf0,0xe1,0x7b,0x4e,0x1d,0x1a,0x31,0x81,0x15,0xab,0xcb,0x17,0x58,0x52,
+  0xbe,0x35,0x26,0xe4,0xf6,0xfd,0xc5,0x8c,0xfb,0x54,0x5f,0x69,0x1d,0xe9,0x44,0xf,
+  0x27,0x63,0x11,0x72,0xb6,0x4d,0x5f,0x7f,0x7,0x7d,0x89,0x5d,0x1c,0x8c,0xc6,0xb1,
+  0x1c,0x98,0x50,0xee,0x62,0x4a,0xa9,0x17,0xe1,0x4c,0xc0,0x57,0x1a,0x6,0x1b,0x92,
+  0xf1,0x28,0x52,0x39,0xc2,0x81,0x58,0x9a,0x23,0xbd,0x16,0x2e,0x5,0x26,0x87,0x3,
+  0x94,0xf9,0xa7,0x53,0x16,0xaa,0x45,0x53,0x55,0x46,0x97,0x56,0xe3,0xf1,0x8f,0x22,
+  0x19,0x3b,0xc6,0x7f,0xee,0x5c,0x65,0x9f,0xe8,0xcf,0x26,0x5d,0x42,0xdc,0xf2,0xf0,
+  0xbd,0xbd,0x1f,0x7e,0x63,0x2,0x2b,0x56,0x97,0x2f,0xc8,0x48,0xf9,0x5f,0x57,0x54,
+  0x7,0x99,0x3e,0xfd,0xc7,0xaa,0xe6,0xa,0x70,0xaa,0xf7,0x18,0x46,0xca,0xc0,0x30,
+  0x7a,0x89,0x26,0x3e,0xe6,0x40,0x67,0x82,0x8b,0x47,0xe9,0x34,0x55,0xcf,0xa3,0x43,
+  0x7b,0x92,0x8b,0x1a,0xc2,0x8,0x71,0xf6,0xf9,0xa4,0x84,0x7d,0xed,0xdd,0x8c,0xb3,
+  0x9f,0xe2,0x60,0xc7,0x6,0xf6,0xf4,0x66,0x99,0x52,0xe3,0x27,0xec,0x9f,0x47,0x30,
+  0x58,0x4e,0xc8,0x17,0xa2,0xa2,0xbc,0xe,0x33,0x67,0xb0,0x6b,0xd7,0x8b,0xf6,0xe6,
+  0x2e,0x3,0x8f,0x10,0x37,0x7c,0x15,0x89,0x73,0x12,0x58,0xf1,0x6a,0x45,0xa3,0xe5,
+  0x38,0x3b,0x67,0xd6,0x4,0x7d,0x97,0xcd,0x78,0x44,0x95,0x52,0xd0,0xdd,0x73,0x94,
+  0xb4,0x95,0x26,0x1e,0x5f,0xc7,0xfa,0x96,0x8,0x93,0x42,0x1a,0x97,0x35,0xdf,0x83,
+  0x56,0xf1,0x10,0xaa,0xaa,0xc,0x2b,0x18,0xd8,0x8e,0xc4,0xee,0xf9,0x5,0x5b,0x76,
+  0xbf,0x46,0x4b,0xdc,0x64,0x6e,0x53,0x98,0x50,0xc9,0x75,0xf8,0x3c,0x5e,0x46,0x87,
+  0x27,0x0,0xb0,0x75,0xfb,0x72,0x7b,0x47,0xa7,0x91,0x74,0x29,0xca,0x8c,0x73,0x99,
+  0xd3,0x59,0x9,0xac,0x7c,0x65,0x54,0xc8,0x50,0x9c,0x1d,0x35,0x41,0x57,0xfd,0xcd,
+  0x97,0x3f,0xac,0xaa,0x2e,0x1f,0x9d,0xd1,0x36,0x32,0xb9,0xc,0x27,0x4e,0xfe,0x81,
+  0x3d,0x1d,0xfd,0xdc,0x3a,0x6d,0x3e,0xbe,0xfa,0x97,0xf0,0xe8,0x23,0xcb,0x85,0x19,
+  0xd3,0x22,0x79,0xf8,0x41,0xd6,0xec,0x5d,0xc7,0x45,0x35,0x41,0x6a,0x2b,0xbf,0x8b,
+  0xd7,0xed,0xa5,0xa6,0x72,0x22,0xb6,0x95,0xe4,0x9d,0x2d,0x2b,0xec,0x4e,0xc3,0x3a,
+  0x1c,0x74,0x94,0x99,0x67,0x73,0xec,0xb3,0xaa,0xcd,0x10,0xf6,0xeb,0x42,0xc8,0x86,
+  0x1b,0x9a,0xef,0x56,0x55,0x2d,0x44,0xb4,0xfb,0x8,0x99,0x5c,0x86,0xcf,0x8f,0xff,
+  0x9e,0xf6,0xae,0x38,0x4b,0xbe,0xf3,0xb7,0x54,0x4c,0x5e,0x35,0x62,0xf0,0x0,0x1e,
+  0xdd,0x45,0xc5,0xe4,0x55,0xdc,0x35,0x6f,0x9,0xfb,0x22,0x6,0x2d,0x1d,0xbf,0x23,
+  0x9d,0x4d,0xd3,0xdd,0x73,0x14,0x55,0xb,0x71,0x43,0xf3,0xdd,0xaa,0x10,0xb2,0xa1,
+  0x10,0x1,0x39,0x2f,0x81,0x42,0x9c,0x5f,0xbc,0x68,0xf2,0x42,0xc5,0x17,0xac,0xa3,
+  0xb7,0xf7,0xb,0x32,0x76,0x5e,0xf3,0x27,0xfb,0xd2,0x4c,0x9a,0xf2,0x31,0x76,0xe9,
+  0xa3,0x23,0x2,0x6d,0x59,0x16,0x96,0x65,0xd,0x19,0xd3,0xc3,0x7f,0xc7,0x25,0x53,
+  0x36,0xd2,0xdd,0x9f,0xe5,0x44,0xe4,0xf,0xa4,0xad,0x34,0x7d,0xc6,0x31,0x7c,0xc1,
+  0x3a,0x16,0x4d,0x5e,0xa8,0x0,0x8b,0xb,0xd8,0xce,0xbb,0x2,0x2f,0x4c,0x1c,0xed,
+  0xb5,0xc7,0xd5,0xcf,0x22,0x93,0xe9,0x26,0x9e,0x89,0x13,0x8f,0xaf,0x63,0x4f,0x47,
+  0x3f,0x77,0x5c,0x7b,0x17,0x33,0xa6,0x54,0x8f,0x8,0xfc,0xc6,0x4f,0x36,0x73,0xdb,
+  0xf7,0x7f,0xc0,0xc2,0xc5,0xb7,0xf1,0x45,0x47,0xc7,0x90,0xdf,0x66,0x4d,0xad,0xe1,
+  0x8e,0x6b,0xef,0xe2,0xb3,0x88,0x41,0x7f,0x62,0x1d,0x46,0x22,0x41,0x26,0xd3,0xcd,
+  0xb8,0xfa,0x59,0x8c,0x1f,0xe5,0xb1,0x81,0x17,0xbe,0x92,0xc0,0xb2,0x57,0x4a,0x17,
+  0x23,0xe5,0xac,0x4b,0xc7,0xdf,0xa8,0x4a,0x45,0xd0,0x1b,0xeb,0xc5,0x30,0x7a,0x59,
+  0xdf,0x12,0xe1,0xd6,0x69,0xf3,0x47,0xac,0xf9,0x5d,0x9f,0x7e,0xca,0xb2,0xe7,0x9e,
+  0xa7,0x2f,0x16,0x23,0x9b,0xcd,0xb2,0x6d,0xc7,0xae,0x33,0x9d,0xbb,0xf4,0x51,0x6e,
+  0xb9,0xe0,0x5a,0x3e,0x3e,0x18,0x21,0x66,0x74,0xd3,0x1b,0xeb,0x5,0x55,0x61,0xd6,
+  0x84,0x45,0x2a,0x52,0xce,0x5a,0xf6,0x4a,0xe9,0xe2,0x73,0x12,0xd0,0x14,0x65,0xe9,
+  0xa5,0x63,0x2,0x76,0x65,0xf8,0x42,0x52,0xc6,0x49,0x72,0x8e,0x4d,0x34,0xf1,0x31,
+  0x93,0x42,0x1a,0xbe,0xfa,0x97,0x46,0x4,0xfe,0x50,0x5b,0x3b,0xff,0xf4,0xe4,0x32,
+  0x72,0xb9,0xdc,0xe0,0x58,0xb8,0x72,0xf4,0x59,0xef,0xd,0x36,0xbd,0xcc,0xe4,0x72,
+  0x37,0x27,0xfa,0x3f,0x21,0xe7,0xd8,0x24,0x13,0xa7,0xa8,0xc,0x5f,0x48,0x73,0x8d,
+  0xdf,0xd6,0x14,0x65,0xe9,0x59,0x9,0x3c,0xb7,0x2a,0x54,0x87,0x94,0xcd,0x63,0x43,
+  0x73,0x55,0x29,0x25,0xb1,0x64,0x8c,0xbe,0xfe,0xe,0xe,0x74,0x26,0xb8,0xac,0xf9,
+  0x9e,0x11,0x3b,0xec,0xbf,0xbf,0xb9,0x86,0x74,0x3a,0x33,0xf8,0xdd,0xeb,0xf5,0x30,
+  0x67,0xd6,0xcc,0xb3,0xde,0xab,0x6b,0x2a,0xf3,0x2f,0xbd,0x83,0xf6,0x68,0x92,0x98,
+  0x71,0x98,0x98,0xd1,0x8b,0x54,0x4,0x63,0xca,0xe7,0xa9,0x48,0xd9,0xfc,0xdc,0xaa,
+  0x50,0xdd,0x19,0x4,0xa,0x25,0x31,0xe1,0xea,0x46,0xcc,0x9c,0x81,0x2d,0x25,0x7d,
+  0x89,0x5d,0x5c,0x3c,0x4a,0x47,0xab,0x78,0x68,0x44,0xe0,0xcd,0x5c,0x8e,0xad,0xdb,
+  0xb7,0xd,0x19,0x9b,0x33,0x6b,0x36,0xba,0xae,0x9f,0xfb,0x99,0xb2,0x7f,0x60,0x46,
+  0xa5,0x97,0xee,0xf8,0x5e,0x6c,0x29,0x31,0x53,0x6,0xe1,0xea,0xc6,0x21,0x58,0x4f,
+  0x37,0xa1,0xc5,0x97,0x86,0x3,0xb6,0xe6,0xd,0x91,0x4a,0xa5,0xb0,0x2c,0x93,0x83,
+  0xd1,0x38,0x4d,0xd5,0xf3,0x86,0x9d,0xa4,0x4e,0xbf,0x76,0xee,0xda,0x3d,0x44,0xfb,
+  0xc1,0x40,0x80,0x1f,0xde,0xf9,0x57,0x5f,0xf9,0x8c,0x22,0x4,0x4d,0x75,0xd7,0xd0,
+  0x16,0x49,0x90,0xcb,0x65,0x49,0x65,0x52,0xb8,0xdd,0x21,0x9a,0x6b,0xfc,0x76,0x61,
+  0xef,0xf1,0x25,0x81,0x7,0x5e,0xac,0xf0,0x1,0x57,0x95,0x5,0xa7,0xab,0xd8,0xe,
+  0xa9,0x6c,0x86,0x64,0xfa,0x18,0x96,0x3,0x1d,0xda,0x93,0xdf,0x8,0x74,0x57,0x24,
+  0xc2,0x86,0x8d,0x1b,0xd9,0xb0,0x71,0x23,0x1d,0x1d,0xc7,0x8b,0xcc,0x43,0xe3,0xd9,
+  0xa7,0x1f,0xa7,0x76,0xec,0xd8,0xf3,0xce,0x71,0x5c,0x3c,0x81,0x25,0x25,0x99,0x6c,
+  0x2b,0xa9,0x6c,0xa,0x6c,0x87,0x72,0xdf,0xc,0x15,0xb8,0xaa,0x80,0x39,0xbf,0xa5,
+  0xac,0x71,0xdb,0xb5,0x20,0x94,0x90,0xbf,0xc,0xdb,0xc9,0x61,0x4b,0x1b,0xd3,0x6a,
+  0x63,0x42,0xb9,0x8b,0x8b,0x1a,0xc2,0xc3,0x33,0x17,0xd3,0x64,0xe5,0xaa,0xd7,0x78,
+  0xf7,0x3f,0xde,0x63,0x20,0xcb,0xb,0x21,0x8,0x4,0x2,0x94,0x95,0x96,0xf2,0xe0,
+  0xfd,0x77,0x73,0xe1,0xd4,0xa9,0x5f,0x6b,0xae,0xc9,0xe3,0x2b,0x38,0x79,0x48,0x27,
+  0x91,0x3e,0x4e,0xc0,0x7f,0x11,0xb6,0x93,0x23,0xe4,0x2f,0x3,0x50,0xf2,0x98,0x39,
+  0xe8,0x2,0xd0,0x1c,0xa5,0x6,0x55,0xe2,0xf1,0xfa,0xb1,0x72,0xf9,0x4d,0x48,0x3c,
+  0x95,0xcd,0x57,0x95,0x62,0x78,0x9a,0x1f,0x0,0x7f,0xeb,0xe2,0x9b,0xb9,0xfe,0xba,
+  0xf9,0x0,0xbc,0xff,0xc1,0x3a,0xd6,0xac,0x7d,0x87,0xf9,0x57,0xcf,0x63,0xf6,0xcc,
+  0x99,0xc3,0x9a,0xaf,0xb1,0xdc,0xc7,0xc1,0x54,0x96,0x6a,0xc0,0x76,0x72,0x78,0xbc,
+  0x7e,0x6,0x31,0xf,0x10,0x0,0xaa,0x1,0x34,0xdd,0x87,0xe3,0xe4,0x33,0x64,0xda,
+  0xb4,0x10,0xee,0xc6,0x61,0x9b,0xcd,0x0,0xf8,0x7,0xef,0xbf,0x67,0x70,0x7c,0x62,
+  0x43,0x3d,0x0,0x6b,0xd6,0xbe,0xc3,0xed,0xb7,0x7d,0x8f,0xea,0xaa,0xaa,0xaf,0x3d,
+  0x67,0xd6,0x6a,0x24,0x9e,0xfa,0x2c,0x9f,0x23,0x72,0x39,0x34,0xdd,0x47,0x31,0xe6,
+  0xbc,0x77,0x16,0xba,0x7,0xba,0x5e,0x42,0xce,0xc9,0xef,0xa8,0xba,0x93,0xd9,0x7c,
+  0x3d,0x3f,0x8c,0xab,0xa5,0xb5,0x15,0x29,0xe5,0xa0,0xe6,0x8b,0xaf,0xeb,0xaf,0x9b,
+  0x8f,0x94,0x92,0x96,0xd6,0xd6,0x61,0xcd,0x19,0x8,0x86,0x88,0xa5,0xf3,0xb9,0xc3,
+  0x92,0xe,0xba,0x5e,0x42,0x31,0xe6,0x21,0xe1,0xc5,0xb1,0x0,0xc5,0x29,0x4a,0x8b,
+  0x7f,0xfe,0xbe,0x8f,0xa2,0x7c,0xd9,0xfb,0x91,0x52,0xe2,0x58,0x67,0x2b,0x25,0xf2,
+  0x7d,0x1b,0xcc,0xac,0x81,0x52,0xb8,0xbd,0xd2,0xe7,0x26,0x19,0x8f,0xe,0xeb,0x65,
+  0x4d,0x93,0x26,0x21,0x84,0xe0,0xfd,0xf,0xd6,0x9d,0xf1,0xdb,0xfb,0x1f,0xac,0x43,
+  0x8,0x41,0xd3,0xa4,0x49,0xc3,0x9a,0xb3,0x3f,0xd6,0x8f,0xdf,0xab,0x15,0xc8,0x28,
+  0x98,0x59,0x83,0x62,0xcc,0x3,0xe4,0xba,0x0,0x32,0xe9,0x4,0x7e,0x2d,0xbf,0x44,
+  0x5e,0xdd,0x85,0x54,0x8e,0xc,0xeb,0x65,0xd5,0x55,0x55,0xdc,0x74,0xe3,0x42,0xd6,
+  0xac,0x7d,0x67,0xd0,0x6c,0x8a,0x9d,0xf8,0xa6,0x1b,0x17,0xe,0xcb,0xfe,0x1,0x3c,
+  0xde,0x56,0x2,0x66,0x3e,0xe1,0xa9,0x8,0x12,0xe9,0x4,0xc5,0x98,0x5d,0x0,0x39,
+  0xc5,0xe9,0xd4,0x10,0xa4,0xb3,0x49,0x2,0x85,0xb0,0xe3,0xf3,0xb8,0x39,0x10,0x8b,
+  0x31,0x56,0x32,0xac,0x48,0xb4,0xe4,0xbe,0xbb,0x7,0x1d,0xf6,0xb7,0x6f,0xaf,0x1d,
+  0xc,0xa3,0x7e,0xbf,0x9f,0xdd,0x7b,0x3e,0x63,0xdb,0x8e,0x1d,0xc3,0x8a,0x44,0xad,
+  0xd1,0x14,0x81,0x60,0x3e,0xf2,0x8,0x97,0x4a,0x3a,0x9b,0x6f,0xea,0xe5,0x14,0xa7,
+  0x73,0x90,0x40,0x67,0x56,0xed,0xa8,0xf3,0x38,0x4e,0x2a,0x13,0x51,0x84,0x68,0x44,
+  0x15,0x2,0xaf,0x3e,0x81,0x23,0xbd,0x3b,0xd8,0xd7,0xde,0xcd,0x45,0x13,0x2b,0xbf,
+  0xf6,0xb,0x75,0x5d,0xe7,0xa1,0x1f,0x2d,0xe1,0xf6,0xdb,0xbe,0x37,0xe8,0xb0,0xd1,
+  0x68,0xf,0x2f,0xbf,0xfa,0x4b,0xe2,0xf1,0x38,0x4b,0x9f,0x7c,0x86,0x9f,0x3f,0xff,
+  0xec,0xd7,0xca,0x5,0x2d,0xc7,0x4e,0xb1,0xbf,0xcf,0x64,0x41,0x65,0x35,0xaa,0x10,
+  0x8,0x47,0x90,0xca,0x44,0x0,0x9c,0xce,0xac,0xda,0x31,0xe8,0x3,0x85,0x5e,0xe5,
+  0xa6,0xa8,0x71,0xc0,0x96,0x8a,0x44,0x57,0xf5,0x7c,0xeb,0x43,0x81,0x71,0xf6,0x53,
+  0xdf,0xc8,0xf9,0xaa,0xab,0xaa,0xb8,0x7a,0xee,0x5c,0xae,0x9e,0x3b,0x97,0xda,0xda,
+  0xb1,0x43,0xea,0xa2,0xc7,0x1e,0x7f,0x9a,0x8e,0xe3,0xc7,0xcf,0x3b,0xc7,0x58,0xfb,
+  0x19,0x10,0x2,0xdd,0x7d,0x1,0xba,0xae,0x23,0x15,0x49,0xd4,0x38,0x60,0x3,0x9b,
+  0x6,0xfa,0xab,0xc5,0x51,0x68,0xed,0xfe,0x9e,0x84,0x9a,0x49,0xc5,0xd0,0x3c,0x1a,
+  0x2e,0x97,0xce,0xe4,0x70,0x80,0x83,0x1d,0x1b,0xb0,0x9d,0x91,0xf5,0x4f,0x67,0x4c,
+  0xbf,0x14,0xaf,0xd7,0xf3,0xe5,0x96,0x35,0x1e,0xe7,0x5f,0xff,0xed,0xd7,0x5f,0xf9,
+  0x8c,0x94,0xd0,0xf6,0xc5,0x87,0x4c,0xae,0xf2,0xe3,0xd2,0x3d,0x68,0xaa,0x9b,0x4c,
+  0x2a,0xc6,0xfe,0x9e,0x84,0xa,0xac,0x3d,0xa3,0x98,0x93,0x38,0xef,0x0,0x74,0x75,
+  0x1e,0x41,0x43,0x43,0x1,0xca,0xfc,0xd3,0xd9,0xd3,0x9b,0xc5,0xee,0xf9,0xc5,0x88,
+  0x8,0xe8,0x9a,0xc6,0x9c,0x59,0xb3,0x87,0x8c,0x6d,0xdd,0xbe,0xd,0xd3,0x34,0xcf,
+  0xdd,0xc1,0x33,0x56,0xb0,0xb5,0x3b,0x4d,0x65,0x60,0x1a,0x8a,0x2,0x9a,0xa2,0xd2,
+  0x19,0x3d,0x3a,0x4,0xeb,0x10,0x2,0x85,0x2e,0xf1,0x9e,0xce,0xcc,0x4e,0xdb,0x71,
+  0x1c,0x3c,0x9a,0x87,0xb2,0x50,0x2d,0x53,0x6a,0xfc,0x6c,0xd9,0xfd,0x1a,0x19,0xd3,
+  0x1a,0x11,0x89,0xef,0xdf,0x7e,0xeb,0x90,0x55,0x48,0xa7,0x33,0x6c,0xdd,0xbe,0xe3,
+  0x1c,0xe5,0xb7,0xcd,0xfa,0x5d,0xaf,0xd3,0x10,0xf6,0x51,0x1a,0xac,0xc7,0xa3,0x7a,
+  0x70,0x1c,0x87,0x8e,0xc4,0x76,0x5b,0x85,0xbd,0x8f,0xdd,0x6f,0x44,0xce,0xdc,0xf,
+  0x8,0xa1,0x67,0x92,0xe9,0x9f,0xb5,0x44,0x12,0x6a,0x57,0xf7,0x21,0x74,0xb7,0x7,
+  0x55,0x8,0xc2,0xfe,0x79,0xb4,0xc4,0x4d,0x92,0x87,0x1f,0x1c,0x11,0x81,0xc6,0x89,
+  0xd,0x3c,0xf3,0xe4,0x52,0x34,0x4d,0x1b,0x1c,0x8b,0x76,0xf7,0x9c,0xf5,0xde,0x78,
+  0xfb,0x12,0x3e,0x3f,0x99,0x65,0x4c,0xe8,0x4a,0x54,0x21,0xd0,0xdd,0x1e,0x3a,0xa3,
+  0x6d,0xb4,0x47,0x93,0x6a,0x6f,0x6f,0xe2,0x45,0xc0,0x2b,0x84,0xd0,0x6,0x9,0x8,
+  0x21,0x14,0x40,0x7f,0xea,0xef,0xb3,0x1f,0x8,0xc7,0xf9,0x6c,0x5f,0xd7,0x47,0x8e,
+  0x63,0x5b,0xb8,0xdd,0x5e,0x82,0xc1,0x72,0xe6,0x36,0x85,0x59,0xb3,0x77,0x1d,0x66,
+  0xf4,0xe7,0x23,0x22,0x31,0xbd,0xb9,0x99,0xa5,0x8f,0xfe,0x84,0xb2,0xd2,0x52,0xdc,
+  0x6e,0x37,0xb3,0x67,0x4e,0x3f,0xf3,0xc4,0xa5,0x77,0x5,0x6b,0xf6,0xae,0xe3,0xca,
+  0xc6,0x30,0xa5,0xc1,0x4a,0xdc,0x6e,0x2f,0x8e,0x6d,0xb1,0x3f,0xb2,0xce,0x91,0x96,
+  0xf3,0xa7,0xe5,0x8f,0x59,0xeb,0x1,0x37,0xe0,0x16,0x42,0x8,0x21,0xa5,0x44,0x8,
+  0xe1,0x6,0x4a,0x0,0xdf,0x8f,0x1e,0x66,0x5e,0xcd,0xc4,0xd2,0x37,0xae,0x69,0x9c,
+  0xc3,0x98,0xea,0xe9,0xa4,0xb3,0x69,0x4c,0xd3,0xe4,0x68,0xf4,0x77,0xec,0x8b,0x18,
+  0x5c,0x32,0x65,0x23,0xb3,0xa6,0xd6,0x8c,0xb8,0xad,0x92,0x6f,0xbb,0xf,0xdd,0xa6,
+  0xee,0x69,0x89,0xd0,0x72,0x70,0x1e,0xb5,0x21,0x1f,0x13,0xc6,0x2d,0x42,0x53,0xdd,
+  0x78,0xdd,0x5e,0x4e,0x74,0xed,0x62,0xfd,0xa1,0xad,0x74,0xec,0x8e,0xdd,0xbd,0x72,
+  0x35,0x9b,0x80,0x14,0x90,0x4,0x12,0x4a,0x91,0x29,0xa9,0x80,0xfa,0xcf,0x2b,0xd8,
+  0x6d,0xa6,0x73,0x1b,0xd6,0xb7,0x6d,0x73,0x62,0x46,0x4,0x8f,0xe6,0xc1,0xe5,0x72,
+  0x51,0x5b,0xf9,0x5d,0xea,0xcb,0xbc,0xb4,0xb5,0x5c,0x8d,0x1a,0x7b,0x6e,0x64,0xe7,
+  0x5a,0x2e,0xd7,0x19,0xe0,0x5d,0xbd,0x2b,0x68,0x39,0x38,0xf,0x9f,0x47,0x67,0x6c,
+  0xf5,0xd,0xa8,0x42,0xc3,0xa3,0x79,0x88,0x19,0x11,0xd6,0xb7,0x6d,0x93,0xd9,0x94,
+  0xb9,0x69,0xe5,0x6a,0x3e,0x1b,0xc0,0x39,0x20,0xca,0xe0,0x96,0x38,0x2f,0x0,0xe2,
+  0x37,0x3f,0x4b,0x3e,0x6d,0xe5,0xec,0xce,0x2d,0xad,0xef,0x3a,0x99,0x9c,0x81,0x57,
+  0x77,0xa3,0xeb,0x3a,0x4d,0xb5,0x7f,0x49,0xfd,0x28,0x3f,0x2b,0xff,0xfb,0x97,0x9c,
+  0xdc,0x77,0x2f,0x66,0x6e,0xe4,0xd5,0x9e,0x99,0xb3,0x39,0x75,0xf0,0x3e,0x5e,0xfa,
+  0xf0,0x15,0x6a,0x43,0x3e,0xa6,0x8d,0x5f,0x84,0xdb,0xed,0xc6,0xab,0xbb,0xc9,0xe4,
+  0xc,0xb6,0xb4,0xbe,0xeb,0xd8,0x59,0xbb,0xeb,0x57,0x3f,0x4d,0x2d,0x3f,0x1d,0x67,
+  0xb1,0x13,0x3b,0xc5,0x72,0xf0,0x38,0xc6,0xe6,0xdf,0x1a,0x3f,0x89,0x25,0x73,0x99,
+  0x4f,0x8f,0xbc,0xed,0x38,0x8e,0x85,0x47,0x2f,0xc1,0xad,0xb9,0xa9,0x1b,0xbb,0x88,
+  0x79,0x93,0xab,0x78,0xeb,0xf3,0x8f,0xf8,0xe3,0xc7,0xd3,0x70,0xf5,0x2e,0xc7,0xf9,
+  0x6,0xc7,0x54,0x52,0x82,0xab,0x7f,0x5,0xdb,0x36,0x4d,0x1b,0xb4,0xf9,0x9,0xe3,
+  0x16,0xe1,0xd1,0x4b,0xf0,0xe8,0x25,0x38,0x8e,0xc5,0xa7,0x47,0xde,0x76,0x62,0xc9,
+  0x5c,0xf6,0xa3,0xdf,0x18,0x8f,0x1f,0x8e,0x12,0x3f,0x1d,0x27,0x60,0xf,0xf8,0x80,
+  0x56,0xf0,0x81,0x12,0xc0,0x37,0xf0,0xf9,0xc3,0x3b,0xb9,0x72,0xec,0xec,0xd2,0xe5,
+  0x53,0xab,0x4a,0xb8,0x64,0xfc,0x62,0x45,0xd7,0xfd,0xe4,0xcc,0x2c,0x39,0xc7,0x26,
+  0x66,0x74,0x73,0xa2,0xff,0x13,0xda,0xa3,0x49,0x66,0x54,0x7a,0x69,0xaa,0xbb,0x86,
+  0xe3,0xe2,0x9,0x26,0x8f,0xaf,0x38,0x6f,0x79,0x30,0xd6,0x7e,0x86,0xb6,0x2f,0x3e,
+  0x64,0x6b,0x77,0x9a,0x86,0xb0,0x8f,0x31,0xa1,0x2b,0x29,0xd,0x56,0xa2,0x29,0x2a,
+  0x9a,0xee,0xc6,0x34,0x13,0xec,0x39,0xba,0xd6,0xd9,0x1f,0x49,0x71,0x78,0x73,0xec,
+  0x89,0x37,0x7e,0xcd,0x1f,0x8b,0xec,0xbe,0xf8,0xd3,0x10,0x45,0xfb,0x56,0xef,0x69,
+  0x24,0xbc,0x40,0xc9,0xdf,0xdc,0xc9,0x95,0x53,0xe6,0x84,0x1e,0xf7,0x97,0xb8,0x3c,
+  0x57,0x34,0x2c,0x52,0x42,0x81,0xd1,0x58,0xd2,0xc1,0xb2,0x4c,0x1c,0x20,0x66,0x1c,
+  0xa6,0x3b,0xbe,0x97,0xb6,0x48,0x2,0x4b,0x4a,0xa6,0x96,0xe9,0x34,0x96,0xfb,0xc8,
+  0x5a,0x8d,0x4,0x82,0x21,0x14,0x25,0x5f,0x12,0x7b,0xbc,0xad,0xb4,0x46,0x53,0xec,
+  0xef,0x33,0x41,0x8,0x26,0x57,0xf9,0xa9,0xc,0x4c,0xa3,0x34,0x58,0x8f,0x52,0x38,
+  0x47,0x73,0x9,0x85,0xfe,0x78,0xf,0x9b,0xdb,0x7f,0xef,0x24,0x52,0x56,0xf6,0x4f,
+  0x1b,0xfa,0x97,0xbf,0xf1,0xe6,0x20,0xf8,0x14,0x90,0x2e,0x6,0x2f,0xa5,0xcc,0x15,
+  0x13,0x10,0x45,0x4,0x4a,0x6,0x8,0x0,0xde,0x5,0x57,0x31,0xf1,0xea,0xdb,0x82,
+  0xcf,0xaa,0x6e,0xb5,0x7a,0xc1,0xa4,0xb,0x45,0x79,0xe9,0xc,0x84,0x50,0xb1,0xa4,
+  0x35,0x78,0x26,0x96,0xcb,0x65,0xc9,0x64,0x5b,0x49,0xa4,0x8f,0x13,0x37,0xb3,0xc4,
+  0x53,0x26,0xb1,0x74,0xe,0x17,0xe0,0xf7,0x6a,0x4,0x4a,0x74,0x2,0xba,0x46,0xc8,
+  0x53,0x8d,0xee,0xbe,0x0,0x97,0xee,0x1,0x7,0x34,0x4d,0xc5,0x25,0x5c,0x48,0x69,
+  0xd3,0x1b,0xdb,0xc9,0x87,0xad,0xfb,0xa4,0x63,0x5a,0x91,0xf7,0xdf,0x88,0x3f,0xb5,
+  0x71,0x1b,0xed,0x5,0xd0,0xe9,0x22,0x2,0x29,0xc0,0x0,0xb2,0x52,0xca,0xa1,0xe7,
+  0x3,0x45,0x24,0xbc,0xa7,0x4b,0x7d,0x98,0x8a,0xbf,0x7e,0xc4,0xf3,0x98,0xd7,0xef,
+  0xb9,0xbc,0xcc,0xef,0x72,0xa6,0x55,0x5d,0xae,0x54,0x96,0x4f,0x44,0x8,0x81,0x8d,
+  0xc4,0x71,0x1c,0x6c,0xf9,0xf5,0x9c,0x5a,0x15,0x2a,0x8a,0xa2,0xa0,0x22,0xf2,0x5,
+  0x5a,0xcf,0x11,0xe,0x75,0x6f,0x72,0xba,0xc,0x4b,0x31,0x13,0x99,0xad,0xaf,0x3f,
+  0x9f,0x59,0x71,0xb4,0x9b,0x53,0x40,0xa6,0x88,0xc0,0x80,0x18,0x80,0x39,0xa8,0xf8,
+  0xb3,0x1d,0x70,0x14,0xf2,0xc2,0x0,0x78,0x4f,0xb1,0xdc,0xf1,0x3,0x66,0x4e,0x9a,
+  0x1e,0x58,0xe2,0x72,0xab,0x4d,0x75,0x15,0x5e,0x67,0x52,0xd5,0x4,0xc5,0xab,0x4f,
+  0x45,0x77,0x7,0x8b,0x1c,0x54,0xe6,0x7d,0x4c,0xe,0x8d,0x17,0xa2,0x68,0x63,0x61,
+  0x66,0xd,0xd2,0xe6,0x7e,0x5a,0x23,0x47,0x9c,0x63,0xa7,0xd2,0x8a,0xcc,0xda,0xad,
+  0x9f,0x6f,0x89,0xbf,0xfa,0xc6,0x9b,0xec,0x4,0xb2,0x5,0xf0,0xc5,0x92,0x0,0x92,
+  0x52,0x4a,0xe7,0x6b,0x1d,0x31,0x15,0x56,0xc3,0x53,0x20,0xe1,0x2e,0xfc,0xed,0x6,
+  0x74,0xc0,0xfd,0xc0,0x43,0x2c,0xa8,0x6b,0x8,0xdc,0x25,0x35,0xb5,0x11,0x60,0xe2,
+  0x68,0xaf,0xd3,0x10,0x2e,0x53,0xd2,0x99,0x26,0x74,0xbd,0x4,0xb7,0xcb,0x8b,0xa6,
+  0x7b,0xf3,0xe6,0x65,0xa6,0xc9,0x5a,0x69,0x4c,0x33,0x85,0xd7,0xd3,0x42,0x7b,0xb4,
+  0xcf,0x69,0xeb,0x49,0x2b,0x0,0x4e,0xce,0x6e,0x3b,0xd6,0x12,0xff,0xd5,0xea,0x7f,
+  0xe1,0x23,0xc0,0x2c,0x80,0x37,0x8b,0x48,0xa4,0xb,0xe0,0xad,0xb3,0x2a,0xfb,0x7c,
+  0xa7,0x94,0x5,0xad,0xb9,0xa,0x4,0x4a,0xa,0x4,0x74,0x40,0x3,0xb4,0xef,0x5c,
+  0xc5,0xb8,0xe9,0xb,0xd4,0xf9,0x81,0xd2,0x92,0x6b,0xd0,0x5d,0x17,0xb,0x21,0x95,
+  0xaf,0xe,0x9f,0xc2,0xc1,0xb4,0xf6,0xc6,0xfb,0x92,0x1b,0xb6,0x7d,0xe4,0xac,0xff,
+  0x68,0x23,0x1d,0x40,0xae,0x48,0xcc,0xa2,0x48,0x93,0x3b,0x5d,0xe3,0x23,0x3a,0xa9,
+  0x2f,0x22,0x33,0xb0,0x22,0x5a,0xe1,0xbb,0xb,0x50,0x27,0x35,0xe2,0x6f,0x9e,0xc9,
+  0x98,0x51,0x55,0x84,0xfd,0x7e,0xa5,0xd2,0xe5,0x51,0x46,0x3,0xc2,0xca,0x38,0xdd,
+  0x49,0xc3,0x39,0xd9,0x13,0x21,0xb2,0x6b,0x7,0x9d,0x6d,0xed,0x24,0xb,0x3d,0xf,
+  0x1b,0xb0,0xa,0x92,0x2a,0x68,0x3c,0x27,0x87,0x1,0x6a,0x44,0xff,0xec,0x51,0x30,
+  0x33,0x51,0x48,0x88,0xca,0xe9,0x69,0xbe,0x20,0x3,0x89,0xd2,0x2e,0x12,0xa7,0xe8,
+  0xd3,0xc9,0xbb,0xcd,0x37,0xc3,0xf1,0x3f,0xa3,0x79,0x95,0xb7,0x5a,0x76,0xb0,0x2e,
+  0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/maemo/tietoopcom/resources/themes.png
+  0x0,0x0,0x1e,0xce,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x48,0x0,0x0,0x0,0x3e,0x8,0x6,0x0,0x0,0x0,0x88,0x96,0x5d,0x9b,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,0x1,
+  0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x3,0x2,
+  0xf,0x6,0x16,0xbd,0x9e,0x0,0xf6,0x0,0x0,0x1e,0x4e,0x49,0x44,0x41,0x54,0x78,
+  0xda,0xed,0x7b,0x79,0x70,0x5d,0xd5,0x99,0xe7,0xef,0xdc,0x73,0xee,0xf6,0xf6,0x45,
+  0x8b,0x25,0x4b,0xb2,0x2c,0xcb,0x2b,0xc2,0xd8,0x18,0x1a,0x1c,0xa0,0x3,0xd,0x84,
+  0x49,0x9c,0x9,0x19,0x12,0x77,0x43,0xa7,0x92,0x6e,0x12,0xda,0xa9,0x49,0x87,0x9a,
+  0x49,0x57,0x65,0xc8,0x74,0x15,0x5d,0x21,0xcb,0x54,0x66,0xd2,0xdd,0x33,0xd5,0x99,
+  0x49,0x8a,0x0,0x49,0x27,0x53,0xd9,0x27,0x24,0xe5,0x9,0xa4,0x13,0xe8,0xe0,0x40,
+  0xc,0x5e,0xc0,0x6,0x1b,0x64,0xcb,0xb2,0xb5,0x5a,0xd2,0xd3,0xd3,0xdb,0xdf,0x7d,
+  0x77,0x3d,0xcb,0xfc,0x21,0xe9,0xc5,0x10,0x42,0x36,0x20,0x4c,0x57,0x7f,0x55,0xaf,
+  0x9e,0xde,0xd5,0xad,0x7b,0xcf,0xf9,0xdd,0xdf,0xf7,0x9d,0xef,0xfb,0x9d,0xef,0x2,
+  0xff,0x6a,0xff,0x6a,0xff,0x6a,0xff,0x52,0x6c,0xdf,0xbe,0xbd,0xbf,0xd1,0xf9,0x6f,
+  0xba,0x7a,0xcf,0xef,0x7d,0xcc,0xe4,0xf5,0xb8,0xc9,0x87,0x3e,0xf4,0x1,0x0,0xc0,
+  0xe7,0x3f,0xff,0x0,0x0,0xe0,0xef,0xfe,0xdb,0x15,0xe4,0xe4,0xb,0x9d,0xcc,0xf7,
+  0x35,0x23,0x8c,0x88,0x1e,0x72,0x50,0x1e,0x11,0x8d,0x73,0x8a,0x30,0xc,0x22,0xcf,
+  0x6b,0x6,0x4a,0x49,0xff,0xe9,0xa3,0x4f,0xa8,0xb,0xaf,0xf3,0xd8,0x63,0x8f,0x1,
+  0x0,0xae,0xbb,0xee,0xba,0x97,0xbd,0xcf,0xd0,0xd0,0x10,0x26,0x26,0x26,0x5e,0xd5,
+  0xb1,0xb3,0xdf,0xc7,0x53,0xa9,0x35,0x52,0x6,0x94,0xb6,0x11,0x20,0x3b,0x1,0x72,
+  0x31,0x80,0xb5,0x20,0x24,0x1,0x42,0x28,0x88,0x76,0x8a,0x10,0xed,0xa7,0x0,0xf9,
+  0x9,0x0,0xf7,0x5f,0x3c,0x83,0xfe,0xea,0xaf,0xfe,0x12,0x7f,0xff,0xf7,0xff,0xb,
+  0x0,0xf0,0xb7,0x9f,0xfd,0x28,0x9b,0x98,0x2c,0xd,0x7a,0x5e,0x70,0x63,0x18,0xe9,
+  0x3b,0x43,0x6e,0xc,0x73,0xc1,0x6,0xa4,0xd2,0xb3,0x52,0x31,0xb,0xd0,0x69,0xc4,
+  0xa3,0x99,0x30,0xf4,0xff,0x9,0xa,0x9f,0xf8,0xc9,0x3f,0x7d,0xbe,0xf4,0x8d,0x6f,
+  0x7c,0x3,0x0,0x70,0xdb,0x6d,0xb7,0xbd,0xe8,0xba,0xf7,0xdc,0x73,0xf,0x2b,0x14,
+  0xa,0xda,0x17,0xbe,0xf0,0x5,0xe,0x40,0xae,0x1e,0xbf,0xe5,0x96,0x5b,0x0,0x0,
+  0xf,0x3e,0xf8,0xe0,0x1b,0x8b,0x41,0xb3,0xb3,0xb3,0xe8,0xef,0xef,0x6f,0xff,0xfe,
+  0xc0,0x7,0xfe,0xc,0xad,0x96,0xdb,0x6,0x7,0x0,0x66,0x66,0xca,0x43,0x11,0xc7,
+  0x5b,0x85,0x34,0xff,0x52,0x28,0x7b,0xa3,0x20,0x9,0x28,0x1a,0x3,0x21,0x31,0xe8,
+  0xd4,0x82,0xc6,0xc,0xd0,0xd0,0xdb,0xa8,0xe9,0xad,0x22,0x94,0x32,0x2f,0x4,0xe6,
+  0xce,0x3b,0xef,0xc4,0x55,0x57,0x5d,0x45,0xd,0xc3,0x30,0x3a,0x3a,0x3a,0xf2,0x94,
+  0xd2,0x7c,0x14,0x45,0xc6,0xa5,0x97,0x5e,0xea,0x1e,0x38,0x70,0xa0,0x5a,0xa9,0x54,
+  0xaa,0x87,0xe,0x1d,0xf2,0x1f,0x7c,0xf0,0x41,0x5,0x0,0x97,0x5d,0x76,0x19,0x9e,
+  0x7e,0xfa,0xe9,0xd7,0x1f,0x20,0xa5,0x14,0x8,0x21,0xbf,0xf2,0x9c,0x3b,0xee,0xf8,
+  0xf3,0x17,0x1d,0xfb,0x9b,0xbf,0xf9,0x8f,0x3,0x8b,0x85,0xca,0x1f,0x47,0xa1,0xf6,
+  0xde,0x90,0xa7,0xd7,0x85,0x32,0x7,0xae,0x92,0x0,0x14,0xa0,0x8,0x94,0x90,0x0,
+  0x11,0x0,0xa1,0x9c,0x52,0x2b,0x5a,0xfe,0xc7,0xcf,0x4d,0xd7,0x75,0x8d,0x52,0xda,
+  0x43,0x29,0xbd,0x9,0xc0,0xce,0x58,0x2c,0xd6,0x6f,0x9a,0xa6,0xae,0x94,0xa,0xa4,
+  0x94,0xd3,0x8f,0x3d,0xf6,0xd8,0x23,0xb6,0x6d,0x1f,0xad,0x56,0xab,0xc5,0xdf,0x4b,
+  0xc,0x9a,0x9d,0x18,0x5b,0xf6,0xc9,0x5f,0x2,0xce,0x32,0x7b,0x14,0x0,0xf2,0xa2,
+  0x73,0x1e,0x3b,0xf0,0xd,0xfa,0xf0,0x43,0x4f,0x6d,0x2d,0x97,0x5a,0xff,0x4e,0xaa,
+  0xf8,0xcd,0xa0,0xd6,0x26,0xd,0x79,0x50,0x95,0x0,0xa4,0x1,0x29,0x23,0x28,0x29,
+  0xa0,0x94,0x84,0x94,0x12,0x4a,0x29,0x9,0xa2,0x9,0x8d,0xa8,0x17,0x1,0x34,0x32,
+  0x32,0xd2,0xa9,0xeb,0xfa,0x95,0xc9,0x64,0xf2,0x8f,0x4d,0xd3,0x1c,0xd1,0x75,0x3d,
+  0x61,0x59,0x16,0x5d,0xbb,0x76,0xad,0xa0,0x94,0x96,0xa,0x85,0x42,0x9f,0x52,0xca,
+  0xfe,0xd6,0xb7,0xbe,0xf5,0x10,0x0,0xef,0xd5,0x60,0xcf,0xaf,0x5,0x90,0x52,0xa,
+  0x7f,0xff,0x5f,0x3f,0x86,0xfe,0xa1,0xcd,0xab,0xbf,0x49,0xb9,0x30,0x49,0x4f,0x8d,
+  0x9f,0x35,0x23,0xa1,0x5b,0x50,0x94,0x78,0x5e,0xa3,0x49,0x83,0xef,0x85,0xff,0xe6,
+  0x16,0xa2,0x0,0x40,0x89,0x73,0xf8,0xca,0x17,0xbf,0x4b,0x1d,0x2f,0xd0,0x1e,0xf9,
+  0xf1,0xf1,0x11,0x21,0xe8,0xbf,0x95,0xca,0xf8,0xb,0x8d,0xa5,0xfa,0x74,0x2d,0xf,
+  0x8a,0x14,0xc,0x49,0xc0,0x45,0x4,0x1e,0x69,0x88,0xb8,0x84,0x94,0xaa,0x7d,0x7d,
+  0x25,0x85,0xc6,0x95,0x6f,0xbc,0x64,0x1c,0x3,0x52,0xca,0x37,0x9b,0xa6,0x79,0x35,
+  0x63,0x2c,0xa6,0x69,0x1a,0x18,0x63,0xc8,0xe5,0x72,0x88,0xc5,0x62,0xa9,0xa9,0xa9,
+  0xa9,0x21,0xd7,0x75,0x5b,0x1b,0x37,0x6e,0x9c,0x9a,0x9b,0x9b,0x3b,0xe1,0xba,0x6e,
+  0xf8,0x9a,0x3,0xa4,0x5e,0xfc,0x10,0xdb,0x6c,0x27,0xc0,0x66,0xcf,0x73,0xdf,0xdc,
+  0x68,0x8a,0xe1,0x30,0x82,0x67,0xea,0xe2,0xa1,0xe1,0x75,0x6f,0x7a,0x16,0x78,0xc0,
+  0x1,0x0,0x68,0x3d,0xac,0xe1,0xb4,0x86,0x16,0x96,0xaa,0xd7,0xb4,0x7c,0xf5,0x36,
+  0x21,0x8d,0xab,0xd,0xab,0x37,0x4f,0xcd,0x3c,0x34,0x96,0x82,0x10,0xa,0x5c,0x8,
+  0x44,0x9c,0x22,0x8a,0x38,0xa2,0x90,0x22,0x8a,0x4,0xb8,0x20,0x88,0x22,0x45,0x95,
+  0x92,0x9,0xdf,0x6d,0xad,0x1,0x30,0xbb,0x1a,0x80,0x3d,0xcf,0x5b,0x6b,0xdb,0xf6,
+  0xa6,0x30,0xc,0x29,0xa5,0x14,0x84,0x10,0x50,0x4a,0xa1,0xeb,0x3a,0x4c,0xd3,0xc4,
+  0xe5,0x97,0x5f,0xe,0x21,0xc4,0xee,0x1d,0x3b,0x76,0x2c,0xb4,0x5a,0xad,0x73,0xaf,
+  0x39,0x40,0x8d,0xc6,0xd2,0x2f,0xb8,0x53,0xd0,0x9a,0x1b,0x3c,0xfc,0xd4,0x4f,0xff,
+  0x60,0x7e,0xa1,0x72,0x4d,0xa1,0x58,0xbf,0xd4,0xf5,0xb5,0xb5,0x42,0x32,0x9f,0x31,
+  0xad,0x6b,0x7e,0xc9,0x3e,0x74,0xef,0x7d,0xf7,0x9d,0x6d,0x35,0x1a,0xe4,0xef,0xfe,
+  0xf6,0xb,0x7d,0x9c,0x27,0x2e,0xd6,0x6d,0xfd,0x72,0x9b,0xe2,0x12,0x5,0x2b,0x63,
+  0x27,0xba,0xa1,0x1b,0x29,0x80,0xe8,0x90,0x22,0x42,0x18,0x46,0x8,0xc2,0x10,0x61,
+  0xc8,0x11,0x32,0xbe,0xfc,0xcd,0x15,0x0,0xa9,0x49,0xa9,0xd9,0x84,0x9a,0xb9,0xcd,
+  0x3b,0xff,0x2c,0x36,0x76,0xfc,0x2b,0xe,0x0,0x22,0xa5,0xcc,0xb,0x21,0xba,0x85,
+  0x10,0x44,0x8,0x1,0x21,0x4,0x38,0xe7,0x8,0xc3,0x10,0xba,0xae,0xa3,0xb7,0xb7,
+  0x17,0x9b,0x37,0x6f,0x5e,0xdf,0x6c,0x36,0xaf,0xcf,0x64,0x32,0x87,0xef,0xbb,0xef,
+  0xbe,0xc7,0x0,0xd4,0x5e,0x55,0x80,0x2e,0xc,0xc0,0xa9,0x54,0xe7,0x85,0x2c,0xa2,
+  0x67,0xc7,0x47,0xfb,0x4f,0x8d,0xcd,0xbe,0x73,0x6e,0xa1,0x72,0xcb,0xf9,0xf9,0xea,
+  0x9b,0xa,0x8b,0x1e,0x6d,0x5,0xc,0x94,0xd9,0x48,0x27,0xcd,0xd,0x49,0x42,0xaf,
+  0xa4,0x5a,0xec,0x9c,0x44,0x40,0xfc,0xd0,0x1b,0x14,0x92,0x6c,0x30,0xec,0xbc,0x6d,
+  0x27,0x93,0xd0,0xf5,0x24,0xc,0x2b,0x86,0x30,0xc,0x11,0x4,0x2e,0xc,0xc6,0xc0,
+  0x28,0x83,0xae,0x6b,0x8,0x75,0x8e,0x50,0x8f,0x10,0xe8,0x14,0x7a,0xa4,0x40,0xa0,
+  0xa0,0x94,0xb4,0xb9,0xb0,0x3b,0xb2,0x9d,0x3,0x31,0x0,0xe,0x0,0xa6,0x94,0x32,
+  0xa5,0x94,0xa6,0x52,0x8a,0x0,0x80,0xa6,0x69,0xd0,0x34,0xd,0x4a,0x29,0x8,0x21,
+  0x10,0x8b,0xc5,0xb0,0x7e,0xfd,0x7a,0xc6,0x18,0xbb,0x48,0x8,0x71,0xdb,0x9d,0x77,
+  0xde,0x9,0xa5,0xd4,0x4f,0x6e,0xbc,0xf1,0xc6,0xc8,0xb6,0x6d,0xf1,0xc4,0x13,0x4f,
+  0x88,0x6f,0x7e,0xf3,0x9b,0x62,0x7c,0x7c,0x5c,0xbd,0x74,0xce,0x8f,0x3e,0xfa,0x28,
+  0x6e,0xbc,0xf1,0xc6,0xdf,0x3a,0x48,0x5b,0xf3,0xf3,0x67,0xaf,0x2f,0x2e,0x95,0xde,
+  0xf5,0xc2,0xe8,0xd4,0x1f,0xce,0xcc,0x39,0xfd,0xa5,0x8a,0xa0,0x42,0x1a,0xd0,0xd,
+  0x13,0x86,0xa9,0x43,0x2a,0x9d,0x11,0x2d,0x36,0x4c,0xd,0xbd,0x2f,0x96,0x4c,0xa2,
+  0xe1,0x4c,0x99,0x8e,0xd3,0x30,0xfb,0xd6,0xd,0x22,0x97,0xef,0x81,0x4e,0xd,0xd4,
+  0xeb,0x65,0x4c,0x4c,0x9d,0xc0,0xf9,0xf3,0xe7,0xd0,0xd9,0xb9,0x16,0xdd,0x6b,0xd6,
+  0x23,0x95,0xe9,0x46,0x18,0x72,0xf8,0x1,0x5,0x65,0x1c,0x2c,0xe4,0x0,0x14,0x8,
+  0x41,0x4a,0xc9,0x60,0x63,0x2e,0x49,0x8e,0x1,0x28,0x2,0x88,0x82,0x20,0x70,0x85,
+  0x10,0x2e,0x0,0xc5,0x18,0x83,0x61,0x18,0x30,0xc,0x3,0x9a,0xa6,0x41,0x4a,0x89,
+  0x20,0x8,0x90,0x4a,0xa5,0xb0,0x79,0xf3,0x66,0x2b,0x93,0xc9,0xdc,0x18,0x86,0xe1,
+  0x80,0x10,0xe2,0xed,0xb5,0x5a,0x6d,0x6e,0x76,0x76,0x76,0x3c,0x8,0x82,0xd1,0xf1,
+  0xf1,0xf1,0x53,0xbf,0x2c,0xf9,0xdc,0xbb,0x77,0x2f,0xbe,0xf3,0x9d,0xef,0xbc,0x32,
+  0x40,0xab,0xec,0x59,0x61,0x4d,0xbc,0x56,0x2b,0xf,0x8c,0x9d,0x3e,0xf5,0xe6,0xe9,
+  0x99,0x85,0x9b,0xa6,0x67,0x4b,0x57,0x9d,0x3e,0x5b,0xef,0xac,0xd6,0x5,0x84,0x34,
+  0x60,0xdb,0x26,0x2c,0xcb,0x84,0x65,0x19,0xb0,0x2c,0x13,0x94,0xe9,0x6,0xe7,0xca,
+  0x70,0x9a,0x4d,0x54,0xab,0x15,0xb8,0x6e,0x13,0xbd,0x3c,0x84,0x4e,0x1,0x4d,0x8b,
+  0xd0,0xa8,0x2f,0x20,0xa,0x1b,0x88,0xd9,0x3a,0x12,0x9,0x1b,0xc9,0x54,0xc,0xc9,
+  0xa4,0x8d,0x20,0x88,0x40,0x99,0x6,0x4d,0xb,0x41,0x35,0x2,0x42,0x34,0x68,0x94,
+  0xda,0x51,0xe8,0x6c,0x92,0x9c,0x74,0x1,0x78,0x61,0x65,0x6c,0xbe,0xa6,0x69,0x2e,
+  0x63,0x4c,0xa,0x21,0xe0,0xba,0x2e,0x34,0x4d,0x6b,0x3,0xb5,0xca,0xaa,0x44,0x22,
+  0x41,0x74,0x5d,0xcf,0x84,0x61,0x78,0x79,0x18,0x86,0x1b,0x72,0xb9,0x5c,0xa9,0xb7,
+  0xb7,0xf7,0xfc,0x25,0x97,0x5c,0x72,0xee,0xdd,0xef,0x7e,0xf7,0x58,0xa5,0x52,0x99,
+  0x9c,0x9d,0x9d,0x9d,0x39,0x73,0xe6,0xcc,0xf9,0xcf,0x7e,0xf6,0xb3,0x25,0x42,0xc8,
+  0x2b,0x26,0x99,0xec,0x97,0x4,0x66,0xa,0x60,0x40,0x29,0xbc,0xc5,0x73,0xfd,0x7f,
+  0x5f,0x5c,0x6a,0x6e,0x1a,0x3b,0x5b,0x22,0xd3,0x73,0x1c,0x4c,0x37,0x91,0xcb,0x26,
+  0x90,0x4c,0x18,0xb0,0x6d,0x1d,0xb6,0x6d,0x20,0x11,0xb3,0xa0,0x11,0x85,0x56,0xab,
+  0x8a,0xc5,0x85,0x49,0x38,0xcd,0x12,0x34,0xd,0x70,0x1a,0x45,0xd4,0x2c,0x6,0xa6,
+  0x33,0xb8,0xad,0x32,0x3a,0xbb,0x3a,0x31,0xbc,0x71,0x33,0xec,0x78,0x1a,0xb6,0x9d,
+  0x4,0xa5,0xc,0x94,0x12,0x10,0xd,0x20,0x44,0x41,0xd3,0x14,0x34,0xa6,0x43,0x63,
+  0xcc,0xf0,0x5a,0xc6,0x26,0x1e,0xb1,0xbe,0x36,0x8d,0x2d,0xcb,0xa5,0x94,0xb6,0x94,
+  0x52,0xaa,0xd1,0x68,0xc0,0xf7,0x7d,0x24,0x12,0x9,0x28,0xa5,0x60,0x9a,0x26,0x28,
+  0xa5,0x10,0x42,0x20,0x8a,0x22,0xd8,0xb6,0xd,0xdb,0xb6,0x35,0x0,0x1d,0x2b,0x9f,
+  0x2d,0x9e,0xe7,0xdd,0xb0,0xb8,0xb8,0xe8,0x28,0xa5,0xc6,0x7c,0xdf,0x3f,0x1c,0x4,
+  0xc1,0xc1,0xbb,0xef,0xbe,0xfb,0xe9,0xd9,0xd9,0xd9,0xa9,0x4a,0xa5,0x12,0xed,0xdf,
+  0xbf,0x5f,0xad,0x2,0x73,0xe9,0xa5,0x97,0xe2,0xd8,0xb1,0x63,0x2f,0xf,0x90,0xe3,
+  0xb8,0x1a,0x21,0x24,0x1e,0x8f,0x9b,0x9b,0x29,0x65,0x23,0x52,0x91,0x22,0xd5,0x2d,
+  0x3d,0xdf,0x99,0xef,0x60,0x46,0x98,0xf2,0x3,0x9,0x42,0x34,0x98,0xa6,0xe,0xdb,
+  0xb2,0x90,0x88,0x59,0x48,0xa7,0x12,0xa8,0xd7,0xa,0xa8,0x95,0xa7,0xe1,0xbb,0x25,
+  0xac,0x5b,0xd7,0x87,0x5c,0xbe,0xb,0x53,0x93,0x93,0xa8,0xd7,0x97,0x90,0xef,0xe8,
+  0xc4,0xe6,0xcd,0x5b,0x90,0xef,0xe8,0x86,0xa6,0xe9,0x28,0x95,0x96,0x10,0x86,0x11,
+  0x4,0x14,0xc,0xc3,0x2,0x21,0x26,0xb4,0x95,0xba,0x47,0xd3,0x24,0x94,0x92,0xba,
+  0x65,0x5b,0x1b,0xa2,0xd0,0xdb,0xda,0xdf,0xbf,0xb3,0x6b,0x76,0xf6,0x78,0x31,0x97,
+  0xcb,0x96,0xa5,0x54,0x8b,0xc5,0x62,0x51,0x34,0x9b,0x4d,0xd4,0x6a,0xcb,0xf1,0x37,
+  0x93,0xc9,0x60,0x70,0x70,0x10,0x3b,0x77,0xee,0x44,0x3c,0x1e,0x7,0x21,0xe4,0x65,
+  0x93,0x59,0xd3,0x34,0xd1,0xdd,0xdd,0x9d,0x48,0x26,0x93,0x17,0xa5,0xd3,0xe9,0x1,
+  0xc6,0xd8,0xd,0x9a,0xa6,0x1d,0xe7,0x9c,0xff,0x33,0xa5,0xf4,0x21,0x0,0xf3,0x2f,
+  0xe7,0x7a,0xf4,0xa5,0x7,0xee,0xbe,0xfb,0x6e,0x10,0x42,0xc,0x42,0x54,0x22,0xc,
+  0xa3,0xb0,0x52,0xa9,0x3f,0xef,0xfa,0x72,0x54,0x37,0x8c,0xb9,0x5c,0x5a,0xa7,0x8c,
+  0xaa,0x4,0x94,0x30,0xc,0xc3,0x44,0x3c,0x6e,0x23,0x99,0xb4,0x11,0x8b,0x69,0x8,
+  0xfd,0xa,0x7c,0xb7,0xc,0xd3,0xa0,0x18,0x1c,0x5c,0x8f,0xfe,0x81,0xf5,0x10,0x22,
+  0x42,0x22,0x1e,0x43,0x77,0x77,0x17,0x86,0x86,0x36,0xc2,0xf7,0x3d,0x8c,0x8f,0x8f,
+  0x62,0xec,0xd4,0x49,0xcc,0xce,0x9c,0x43,0xb3,0x51,0x43,0x32,0x95,0x41,0xcc,0x8e,
+  0x81,0x52,0x6,0xa5,0x14,0x94,0x5a,0xe,0x43,0x80,0x66,0x72,0xc1,0x5d,0x66,0x24,
+  0xcb,0x13,0xe3,0x87,0xcf,0xdc,0x76,0xeb,0xde,0xee,0x6a,0xb5,0x76,0xe9,0xc4,0xe4,
+  0xe4,0xb6,0xc9,0xc9,0x49,0xb3,0x50,0x28,0x40,0xd3,0x34,0x78,0x9e,0x7,0xc7,0x71,
+  0x10,0x8b,0xc5,0x56,0x99,0x3,0x4d,0xd3,0x7e,0xb1,0xe8,0x24,0x4,0x9a,0xa6,0x41,
+  0x8,0xc1,0x82,0x20,0x88,0x3b,0x8e,0x93,0x6f,0xb5,0x5a,0x3,0xae,0xeb,0xe6,0x4b,
+  0xa5,0x12,0x49,0xa7,0xd3,0xee,0xf4,0xf4,0x74,0x15,0x80,0x5c,0x58,0x58,0xf8,0xe5,
+  0x2e,0x66,0xdb,0x16,0x0,0x78,0x8f,0x3c,0xf2,0xe8,0x91,0xbb,0xef,0xfe,0x9b,0x43,
+  0x87,0xf,0x3f,0x25,0x95,0x52,0x3a,0xa4,0x37,0x74,0x6a,0x74,0xf4,0x1d,0xc7,0x4f,
+  0x4c,0xee,0x9d,0x87,0xb8,0x5c,0x2a,0x5,0x2,0x9,0x21,0x7c,0x78,0xae,0xf,0x8d,
+  0xf8,0xc8,0xe5,0x92,0x60,0x2c,0x8f,0x5c,0x2e,0x8f,0x5c,0x36,0x8b,0x2b,0xaf,0xd8,
+  0xd,0xcb,0x34,0xc1,0x18,0x83,0xe7,0x7,0x38,0xf1,0xc4,0x61,0x3c,0xf2,0xc8,0x43,
+  0x68,0x34,0x1a,0x60,0x94,0xa1,0xbf,0x7f,0x8,0x6b,0xfb,0x7,0x90,0xcb,0xe5,0x61,
+  0x98,0x26,0xb8,0x10,0x10,0x42,0x42,0x8,0x89,0x44,0x22,0x1,0xcf,0x75,0xb7,0xa7,
+  0xd2,0xd9,0x9b,0xf7,0xbc,0xfb,0xc3,0x67,0x6a,0xb5,0x6a,0x5f,0xa3,0xd1,0xe8,0x18,
+  0x3b,0x7d,0x9a,0x2e,0x14,0xa,0x60,0x8c,0xa1,0xa3,0xa3,0x3,0x52,0x4a,0x94,0x4a,
+  0x25,0x1c,0x3f,0x7e,0x1c,0x9c,0x73,0x6c,0xda,0xb4,0x9,0x8c,0xfd,0x7c,0x5a,0x86,
+  0x61,0xc0,0x34,0x4d,0x68,0x9a,0x86,0x28,0x8a,0xe0,0x79,0x1e,0x7c,0xdf,0xc7,0x4a,
+  0xa0,0x4f,0xe9,0xba,0xfe,0x66,0xa5,0x54,0x8f,0x6d,0xdb,0xf6,0xf0,0xf0,0x70,0xc5,
+  0x71,0x9c,0xc5,0x42,0xa1,0x20,0x5e,0x69,0x15,0x53,0x0,0xc4,0x5b,0xde,0x72,0xa3,
+  0xba,0x0,0xfd,0x48,0x29,0x35,0xb5,0x75,0xe4,0xa2,0xef,0x1f,0x7b,0x76,0xb4,0xdb,
+  0x60,0xc1,0xb0,0x22,0x2a,0x5d,0x2c,0x4c,0x68,0xa5,0xa5,0x69,0x68,0x24,0x40,0x47,
+  0x3e,0x83,0x5c,0x2e,0x87,0x30,0x74,0xe1,0xba,0x4d,0x0,0x11,0xfa,0xfb,0x6,0xd0,
+  0xd9,0x99,0x47,0xbd,0x5e,0xc5,0xf7,0xbf,0xf7,0x7d,0x1c,0x39,0xfc,0x33,0x54,0x2a,
+  0x15,0xec,0xd8,0xb1,0x13,0xeb,0x6,0x87,0xd0,0xd3,0x33,0x80,0xbe,0xfe,0x75,0x30,
+  0xcc,0x18,0xc2,0x50,0x20,0xb2,0xd,0x70,0x2e,0x10,0x84,0x2,0x52,0x72,0x68,0x9a,
+  0xd6,0x9d,0x49,0xc7,0x6e,0x48,0xd8,0x99,0x44,0xa3,0xd9,0xca,0x1a,0x6,0xdb,0x12,
+  0x8b,0xc7,0x4d,0x29,0x25,0x96,0x96,0x96,0xf0,0xfc,0xf3,0xcf,0x63,0xc7,0x8e,0x1d,
+  0xe8,0xef,0xef,0xc7,0xcc,0xcc,0xc,0x1a,0x8d,0x6,0xce,0x9d,0x3b,0x87,0x28,0x8a,
+  0xe0,0xba,0x2e,0xa4,0x94,0xc8,0xe7,0xf3,0x18,0x19,0x19,0xc1,0xa6,0x4d,0x9b,0x40,
+  0x29,0x5,0xa5,0xb4,0x9d,0x1a,0xac,0xe4,0x52,0x9a,0x61,0x18,0x5b,0xe2,0xf1,0xf8,
+  0xe5,0x3d,0x3d,0x3d,0xc7,0x84,0x10,0xd5,0x42,0xa1,0xe0,0xfd,0xaa,0x3c,0x48,0xbd,
+  0xc,0x45,0x3,0x0,0xe3,0x5f,0xfe,0xd2,0x7d,0x13,0x54,0x53,0x75,0x8e,0x30,0x15,
+  0xf8,0xd,0xb8,0xad,0x3a,0x92,0x49,0x1b,0x89,0x64,0x6,0xf9,0x7c,0x37,0x3c,0xb7,
+  0x9,0xaa,0x11,0x68,0x50,0x48,0xa5,0xe2,0xd0,0x19,0x60,0xe8,0x1a,0xea,0xf5,0xa,
+  0x32,0x99,0x34,0xae,0xbe,0xea,0x6a,0x5c,0x7b,0xdd,0xf5,0xe8,0xe9,0xed,0x87,0x61,
+  0xc4,0xa0,0xa0,0xc3,0xf7,0x23,0x84,0x1,0x47,0x18,0xa,0x38,0xad,0x10,0xb5,0x7a,
+  0xb,0xb5,0x5a,0x3,0x51,0x50,0xd5,0x6c,0xc3,0x5b,0x93,0x4a,0x18,0x37,0xea,0xba,
+  0xa1,0xdb,0xb6,0x6d,0x8c,0x8c,0x8c,0xa0,0xa3,0xa3,0x3,0xb,0xb,0xb,0xa8,0x56,
+  0xab,0x68,0xb5,0x5a,0x10,0x42,0x80,0x31,0x6,0x21,0x4,0x2a,0x95,0xa,0xa,0x85,
+  0x2,0x5a,0xad,0x16,0x0,0xa0,0x58,0x2c,0xb6,0x93,0xca,0xa1,0xa1,0xa1,0x76,0x6,
+  0x7e,0x61,0xe,0xb5,0x32,0xef,0xac,0x61,0x18,0x31,0x29,0x25,0xf9,0x95,0xcb,0xfc,
+  0x2b,0x9b,0xe6,0x30,0xc6,0xea,0x61,0x18,0xf4,0xc6,0x62,0x26,0xed,0xe9,0xe9,0x43,
+  0x77,0x77,0x17,0xba,0xbb,0x3b,0x91,0x48,0xc4,0xa0,0xeb,0x1a,0x6c,0xdb,0x86,0xce,
+  0x8,0x18,0x5d,0xbe,0x5e,0x14,0x9,0xac,0xe9,0xe9,0x41,0x5f,0xff,0x0,0xb6,0x6e,
+  0xd9,0x8a,0x4d,0x9b,0xb7,0x40,0x2a,0xd,0x95,0x4a,0x3,0xcd,0xa6,0x8b,0x20,0xe0,
+  0xf0,0xfd,0x8,0xe5,0xaa,0x83,0x42,0xb1,0x81,0x52,0xb9,0x82,0x5a,0x69,0x6,0xb6,
+  0xd1,0x40,0x57,0x9e,0x21,0x11,0x5f,0x13,0xb7,0x6d,0x1b,0x99,0x4c,0x16,0xc3,0xc3,
+  0x1b,0xa1,0xeb,0x3a,0x8a,0xc5,0x22,0x9e,0x78,0xe2,0x9,0x78,0x9e,0x87,0xc5,0xc5,
+  0x45,0xac,0x5b,0xb7,0xe,0xb9,0x5c,0xe,0x9c,0x73,0x38,0x8e,0xd3,0x2e,0x41,0x0,
+  0x60,0x7e,0x7e,0x1e,0x9c,0x73,0x24,0x12,0x9,0x64,0x32,0x19,0xe8,0xba,0xbe,0x32,
+  0xae,0x8,0xbe,0xef,0x23,0xc,0x43,0x8,0x21,0x8a,0xba,0xae,0x2f,0x29,0xa5,0xc4,
+  0xef,0x24,0x77,0xe4,0xf3,0xf9,0x82,0xe7,0x47,0xa7,0xd,0x8f,0xf,0x18,0x2c,0x6f,
+  0x34,0x1a,0x6,0xe6,0xe7,0xce,0xe3,0xc4,0xb3,0x47,0x10,0x46,0x3e,0xfa,0xfa,0xfb,
+  0x70,0xf1,0x45,0x17,0x61,0xdd,0x40,0x3f,0xa0,0x0,0xce,0x15,0x8,0x65,0xd8,0xbd,
+  0xfb,0x2a,0xc4,0x6c,0xb,0xd9,0x6c,0x16,0xba,0xc1,0xe0,0xfb,0x11,0x18,0x23,0x30,
+  0x4d,0xa,0x21,0x25,0x6a,0x4d,0xf,0xc5,0x52,0x13,0xe5,0x4a,0x13,0x4e,0xb3,0x86,
+  0xc8,0x9f,0x87,0x45,0x5,0x8,0xc9,0x41,0x4a,0xb9,0x12,0x9b,0x4,0xc2,0x30,0x44,
+  0x2a,0x95,0xc2,0xd0,0xd0,0x10,0x28,0xa5,0x18,0x1b,0x1b,0x83,0xe7,0x79,0x18,0x1c,
+  0x1c,0x44,0x2c,0x16,0x43,0xb3,0xd9,0xc4,0xc8,0xc8,0x8,0x18,0x63,0x88,0xc7,0xe3,
+  0x48,0x26,0x93,0x2b,0x19,0x7c,0x80,0x5a,0xad,0xd6,0x66,0x4f,0xad,0x56,0xc3,0xf9,
+  0xf3,0xe7,0x71,0xfe,0xfc,0x79,0xd4,0x6a,0xb5,0x93,0x41,0x10,0xfc,0x4c,0x4a,0xf9,
+  0x82,0x10,0x22,0xfc,0x9d,0x0,0xea,0xe8,0xec,0x18,0xab,0xd7,0x9d,0x47,0x88,0xe6,
+  0xe,0x85,0x41,0x38,0xe2,0xba,0x4d,0x7b,0x76,0x66,0x2,0x8b,0x8b,0x73,0x60,0x94,
+  0x20,0x9f,0xcf,0x81,0xf3,0x68,0x25,0x27,0xe1,0x10,0x8a,0x40,0x29,0x82,0xae,0xae,
+  0x1e,0x58,0xa6,0xe,0xc6,0xc8,0x8a,0xbe,0x43,0x61,0x5b,0x6,0x78,0xc4,0x97,0xeb,
+  0xbc,0x20,0x42,0xd3,0x9,0xe0,0x38,0xe,0x7c,0xb7,0xe,0xc1,0x1b,0x20,0x4a,0x7,
+  0xa0,0x41,0x4a,0xb5,0xb2,0xc2,0x29,0x70,0xce,0x21,0xa5,0x84,0x65,0x59,0x48,0x26,
+  0x93,0xe8,0xec,0xec,0x4,0xe7,0x1c,0x7d,0x7d,0x7d,0x6d,0x37,0x6b,0x36,0x9b,0x28,
+  0x95,0x4a,0x88,0xa2,0x8,0xa9,0x54,0xa,0x6b,0xd7,0xae,0x45,0x67,0x67,0x27,0x82,
+  0x20,0x68,0xaf,0x7a,0x67,0xce,0x9c,0xc1,0xd4,0xd4,0x94,0x53,0x2c,0x16,0x4f,0x79,
+  0x9e,0xf7,0x7d,0xd7,0x75,0x9f,0x38,0x76,0xec,0x58,0xe3,0xb7,0xd2,0x83,0x2e,0xcc,
+  0x2b,0xde,0xf4,0xa6,0xab,0xa7,0xf,0x1c,0x78,0xec,0xa1,0xc0,0xf7,0xae,0x71,0x9c,
+  0xea,0x40,0x69,0x69,0xc1,0xf6,0x3c,0x7,0x6b,0xd6,0xac,0x41,0xdf,0xda,0xb5,0xe8,
+  0x5e,0xd3,0xd,0xd3,0xb2,0xe0,0x5,0x3e,0x82,0x88,0x43,0x27,0x1a,0x38,0x97,0x10,
+  0x22,0x80,0xe7,0xf9,0xd0,0x75,0xd,0xc9,0x84,0xd,0xc6,0x28,0x4c,0x53,0x47,0xe0,
+  0x33,0x30,0xaa,0x81,0x0,0x88,0x22,0x9,0xdf,0x6b,0xc1,0xf7,0xea,0xd0,0x44,0x8,
+  0x5,0xfd,0x17,0x54,0x61,0x4a,0x29,0xc2,0x30,0x84,0xe7,0x79,0x98,0x99,0x99,0x81,
+  0x61,0x18,0xd8,0xb0,0x61,0x3,0x3a,0x3b,0x97,0x6b,0xc7,0x6a,0xb5,0x8a,0xe9,0xe9,
+  0x69,0x1c,0x3d,0x7a,0x14,0x53,0x53,0x53,0x50,0x4a,0xe1,0x86,0x1b,0x6e,0xc0,0x9e,
+  0x3d,0x7b,0xd0,0xd9,0xd9,0x89,0x4a,0xa5,0x82,0xd3,0xa7,0x4f,0xab,0x93,0x27,0x4f,
+  0xba,0x53,0x53,0x53,0x4f,0x56,0x2a,0x95,0x7,0x17,0x16,0x16,0xbe,0x5f,0xad,0x56,
+  0x17,0x57,0xef,0xb1,0x6b,0xd7,0x2e,0x3c,0xf3,0xcc,0x33,0xbf,0x19,0x83,0xfe,0xfa,
+  0xaf,0x3f,0x8a,0x62,0xb1,0x80,0xfb,0xef,0xff,0xdf,0x98,0x99,0x99,0xe5,0x52,0xca,
+  0x34,0xa5,0x7a,0xac,0xaf,0x7f,0x3d,0xb6,0x5d,0x74,0x31,0xd6,0xd,0xc,0x20,0x97,
+  0x4d,0x61,0x76,0x76,0x12,0x84,0x0,0x51,0xc8,0x41,0x29,0x3,0x21,0x14,0x52,0x2a,
+  0x10,0x22,0x51,0xaf,0x57,0x51,0xaf,0x55,0x0,0x25,0x90,0x48,0x26,0x91,0x4e,0x67,
+  0x60,0x18,0xb1,0xe5,0x54,0x40,0x67,0x8,0x82,0x10,0x6e,0xab,0x8e,0xc8,0xaf,0xc2,
+  0x64,0x2,0x64,0x5,0x1c,0x42,0x48,0x3b,0x8f,0xa1,0x94,0x62,0x35,0x51,0x6c,0x34,
+  0x1a,0x18,0x18,0x18,0x40,0x6f,0x6f,0x2f,0x74,0x5d,0x7,0x21,0x4,0xf9,0x7c,0x1e,
+  0x5b,0xb6,0x6c,0x69,0xa7,0x1,0xcf,0x3c,0xf3,0xc,0xe,0x1e,0x3c,0x8,0xdf,0xf7,
+  0xf1,0x27,0x7f,0xf2,0x27,0x58,0x5c,0x5c,0xc4,0xe9,0xd3,0xa7,0x97,0x8a,0xc5,0xe2,
+  0xf7,0x96,0x96,0x96,0x7e,0xd0,0x6a,0xb5,0xe,0x55,0xab,0xd5,0xf2,0xef,0xa4,0x28,
+  0xbe,0x34,0x78,0x7b,0x9e,0x93,0xf2,0xfd,0x28,0x47,0x69,0xcc,0xee,0xeb,0xeb,0xc5,
+  0xf0,0xf0,0x30,0x6,0x7,0x7,0xc0,0xa8,0x42,0xbd,0x51,0xc1,0x52,0x71,0x11,0xa5,
+  0xd2,0x12,0x9a,0x8d,0x3a,0x52,0xe9,0x2c,0x74,0x5d,0x87,0x94,0x12,0x50,0xa,0xbe,
+  0xef,0xa3,0x5a,0x29,0x41,0x5b,0x5c,0x44,0x2a,0x9d,0x41,0x57,0xd7,0x1a,0x48,0x9,
+  0x58,0xc6,0x6a,0xe0,0xf4,0x11,0x5,0xe,0x4c,0x2a,0x1,0xf2,0xf3,0x4,0x8f,0x31,
+  0xd6,0x66,0x4f,0xb9,0x5c,0x46,0xa5,0x52,0x81,0x65,0x2d,0xc7,0xb4,0x54,0x2a,0xd5,
+  0x66,0x79,0x26,0x93,0xc1,0xb6,0x6d,0xdb,0xd0,0xdf,0xdf,0x8f,0x2d,0x5b,0xb6,0xa0,
+  0xab,0xab,0xb,0xe3,0xe3,0xe3,0x68,0xb5,0x5a,0x88,0xa2,0x8,0x8e,0xe3,0x84,0xa5,
+  0x52,0x69,0xa2,0x56,0xab,0x7d,0x7f,0x6c,0x6c,0xec,0x0,0x0,0xff,0xa5,0x5e,0xb2,
+  0xca,0x9e,0xdf,0x5a,0xb4,0xa7,0x94,0x64,0x5a,0xad,0x96,0x95,0xce,0x24,0x69,0x26,
+  0x93,0x47,0x36,0x9b,0x7,0x63,0x3a,0x82,0xc0,0x1,0xa5,0xc,0xb5,0x7a,0x1d,0xb,
+  0xb,0xb,0x48,0x26,0x53,0x18,0x1a,0xda,0x88,0x5c,0xbe,0x3,0x94,0x69,0xc8,0x64,
+  0xd2,0x0,0x4,0xa2,0xd0,0xc3,0x62,0xb1,0x88,0x6a,0xb5,0x8a,0xc0,0xf,0x60,0xc7,
+  0xb2,0xb0,0x6d,0x1d,0x96,0x65,0x40,0x23,0xa,0x9c,0x7,0xcb,0x19,0x35,0x96,0xcb,
+  0x6,0x29,0x97,0xeb,0x49,0x29,0x25,0x1a,0x8d,0x6,0xca,0xe5,0x32,0x5c,0xd7,0xc5,
+  0xe0,0xe0,0x20,0x3a,0x3a,0x3a,0x40,0x29,0x45,0x14,0x45,0x30,0xc,0x3,0xf1,0x78,
+  0x1c,0x99,0x4c,0x6,0x0,0xb0,0x6d,0xdb,0x36,0xec,0xda,0xb5,0xb,0x2f,0xbc,0xf0,
+  0x2,0xe6,0xe7,0xe7,0x11,0x8f,0xc7,0xa1,0x69,0x5a,0x8d,0x31,0x76,0x66,0xfd,0xfa,
+  0xf5,0xcf,0x1e,0x39,0x72,0xc4,0xff,0x55,0x2b,0xf8,0x6f,0x5,0x50,0x10,0x70,0x97,
+  0x31,0x26,0xa4,0x94,0xca,0xf7,0x7d,0x12,0x84,0x1c,0x42,0x2a,0x68,0x1a,0x85,0x6e,
+  0x98,0x28,0x97,0xca,0x38,0x7e,0xfc,0x18,0x9e,0x7d,0xf6,0x59,0x6c,0xdb,0x36,0x82,
+  0x2b,0x77,0xbf,0x9,0x97,0x5d,0x76,0x19,0xf2,0xf9,0xc,0x92,0x49,0x1b,0x1d,0x1d,
+  0x39,0xd4,0xaa,0xd,0xd4,0x6a,0xd,0xf8,0x81,0xf,0x4d,0xd3,0x60,0xdb,0xa,0xa9,
+  0x84,0xd,0x4a,0x25,0xc2,0xa0,0x5,0x24,0x63,0x60,0x94,0x82,0x73,0x8e,0xc9,0xc9,
+  0x49,0x94,0xcb,0x65,0x74,0x77,0x77,0x23,0x97,0xcb,0x21,0x95,0x4a,0xa1,0xa3,0xa3,
+  0x3,0xdd,0xdd,0xdd,0xb0,0x6d,0x1b,0x42,0x88,0x76,0x2,0x28,0xe5,0xb2,0xb6,0xbd,
+  0xaa,0x17,0xe5,0x72,0x39,0xec,0xdc,0xb9,0x13,0x1b,0x37,0x6e,0x4,0x21,0x4,0x93,
+  0x93,0x93,0x12,0x80,0x8c,0xa2,0xe8,0xb5,0xdb,0xf6,0x11,0x5c,0x36,0x4d,0xd3,0x9c,
+  0x56,0x4a,0x6c,0x76,0x5d,0x27,0xe7,0x7a,0x1e,0xc2,0x90,0x83,0x6a,0x0,0xd5,0x18,
+  0x82,0x30,0x42,0xb9,0x5c,0x46,0xb5,0x5a,0x85,0xae,0xeb,0xe8,0xea,0xea,0xc4,0x25,
+  0x97,0x5c,0xc,0x46,0xd3,0x60,0xb6,0x8d,0x98,0x6d,0xc3,0x30,0xe2,0xe0,0x82,0x20,
+  0x8,0x39,0x40,0x34,0x98,0x26,0x45,0x36,0x13,0x47,0xdc,0x62,0x58,0x52,0x1c,0x50,
+  0xaa,0x5d,0xa1,0x4f,0x4d,0x4d,0x21,0x8a,0x22,0xf4,0xf6,0xf6,0xe2,0xca,0x2b,0xaf,
+  0x6c,0x33,0x27,0x93,0xc9,0xb4,0xcf,0xa1,0x94,0xb6,0x17,0x14,0xce,0x39,0x34,0x4d,
+  0x6b,0x27,0x85,0x89,0x44,0x2,0x89,0x44,0x2,0x8e,0xe3,0x40,0xad,0xb8,0xb9,0xe7,
+  0x79,0xda,0x6b,0x6,0x50,0x22,0x69,0x3b,0x50,0x38,0xd4,0x6c,0xf1,0x61,0xdf,0x77,
+  0x72,0xae,0xeb,0xc1,0xf3,0x2,0x18,0x4c,0x2,0x8a,0x20,0x95,0x4a,0x63,0xfd,0xd0,
+  0x30,0x7a,0x7b,0xd6,0xc0,0x34,0xd,0x70,0x1e,0xc1,0xf7,0x3c,0x70,0xbe,0xfc,0x64,
+  0xa5,0x2,0xe6,0xe6,0xe7,0x31,0x3e,0x7e,0xe,0x82,0x3,0xa9,0x74,0x1e,0xba,0x1e,
+  0x47,0x47,0x3e,0x81,0x74,0xda,0x86,0xce,0x28,0x14,0x14,0xc8,0x4a,0xb6,0x5b,0x2a,
+  0x95,0x30,0x3b,0x3b,0x8b,0xf9,0xf9,0x79,0x6c,0xd9,0xb2,0x5,0xf1,0x78,0x1c,0x9d,
+  0x9d,0x9d,0xed,0xca,0xfd,0x42,0x37,0x59,0xfd,0xbc,0x74,0x5,0x5e,0x15,0xd5,0x3c,
+  0xcf,0x13,0xb5,0x5a,0x2d,0x8,0x82,0x80,0xbf,0xaa,0x0,0x7d,0xf9,0xcb,0x5f,0x6,
+  0x0,0xdc,0x7e,0xfb,0xed,0xe8,0xeb,0xea,0x72,0x83,0x30,0xfa,0x49,0xbd,0x31,0xb7,
+  0x2d,0xc,0x5a,0x97,0x54,0x2b,0x65,0xdd,0x32,0xd,0xa4,0x92,0x16,0x74,0xd3,0xc0,
+  0x55,0x57,0xfd,0x21,0xae,0xb9,0xe6,0x8f,0x90,0xcd,0xa6,0x30,0x35,0x35,0x81,0xd2,
+  0xd2,0x12,0x6a,0xf5,0x26,0x3a,0xbb,0x4,0xe2,0x31,0xd,0xc5,0xc5,0x3a,0x7e,0x7a,
+  0xe0,0x0,0x1e,0x7f,0xe2,0x0,0xfa,0xd6,0xae,0xc7,0xc8,0xf6,0x3f,0x40,0xff,0xc0,
+  0x26,0xa4,0x52,0x31,0xa4,0x92,0x36,0xc,0x83,0x1,0xa,0xed,0x9d,0x8e,0x55,0xe5,
+  0xb0,0x56,0xab,0xe1,0xc8,0x91,0x23,0x88,0xc7,0xe3,0xb0,0x6d,0x1b,0x7d,0x7d,0x7d,
+  0x88,0xc7,0xe3,0x60,0x8c,0xc1,0x5c,0x29,0x8a,0x9,0x21,0x17,0x96,0xf,0xed,0xf1,
+  0x4b,0x29,0xb1,0xb0,0xb0,0x80,0x52,0xa9,0x54,0x2b,0x97,0xcb,0xf3,0x9e,0xe7,0x45,
+  0xaf,0x2a,0x40,0xb7,0xdf,0x7e,0x7b,0xfb,0xef,0x1b,0xf7,0xdc,0x1c,0x1,0x38,0xfd,
+  0xf,0xff,0xe3,0xbf,0x1f,0x94,0x32,0xda,0x5e,0x29,0x17,0x2e,0x23,0x44,0x32,0xcf,
+  0x4b,0x23,0x8,0x6a,0x88,0xd9,0x71,0x64,0x52,0x19,0xa4,0x33,0x19,0x74,0x75,0x2d,
+  0x33,0xa7,0x52,0xad,0xe3,0xec,0xb9,0x9,0x48,0xa1,0x70,0xe2,0xc4,0x73,0x78,0xf8,
+  0xe1,0xff,0x8b,0x13,0xcf,0x1d,0xc7,0x35,0x7f,0x68,0x62,0x70,0xc8,0x45,0x10,0xa,
+  0x68,0x1a,0x1,0x65,0x14,0x1a,0x5d,0x66,0xbf,0x92,0x12,0x84,0x10,0xc4,0x62,0x31,
+  0x64,0x32,0x19,0xb8,0xae,0x8b,0x89,0x89,0x9,0x58,0x96,0x5,0xce,0x39,0xb6,0x6f,
+  0xdf,0x8e,0xbe,0xbe,0x3e,0x24,0x93,0xc9,0xb6,0xa2,0x68,0x9a,0x26,0x32,0x99,0xc,
+  0x18,0x63,0x2f,0x2,0xa9,0xd5,0x6a,0x61,0x74,0x74,0x14,0x33,0x33,0x33,0x85,0x5a,
+  0xad,0x76,0xda,0xf3,0xbc,0xf0,0x35,0x73,0xb1,0x95,0x9b,0x46,0x5f,0xfb,0xda,0x97,
+  0xf,0xd6,0xeb,0x5e,0x67,0xbd,0x5a,0xd8,0x10,0xf1,0xa0,0xb3,0x56,0xab,0xa2,0x5c,
+  0x9a,0x43,0xad,0x56,0x1,0x14,0xb0,0x6e,0xdd,0x7a,0x74,0x76,0x75,0xc3,0x34,0x6d,
+  0x14,0x16,0x8a,0x38,0xf1,0xdc,0x9,0x8c,0x8f,0x9f,0xc1,0xe1,0x43,0x4f,0x62,0x6c,
+  0xec,0x5,0x98,0xa6,0x85,0x64,0x2a,0xb,0xd3,0x8a,0xc1,0xf3,0x7c,0xb4,0xdc,0xe5,
+  0x5d,0xe,0x25,0x97,0xf3,0x43,0xb5,0x52,0x33,0x5b,0x96,0x85,0x8e,0x8e,0xe,0x4,
+  0x41,0x80,0x56,0xab,0x85,0xe7,0x9f,0x7f,0x1e,0x73,0x73,0x73,0x38,0x75,0xea,0x14,
+  0x2e,0xbe,0xf8,0x62,0xf4,0xf7,0xf7,0xc3,0x71,0x1c,0x18,0x86,0x81,0xde,0xde,0x5e,
+  0x5c,0x71,0xc5,0x15,0x30,0xc,0xa3,0xbd,0xfa,0x45,0x51,0x84,0xb9,0xb9,0x39,0x1c,
+  0x3d,0x7a,0x54,0x9e,0x3e,0x7d,0xfa,0xac,0xeb,0xba,0x27,0x1c,0xc7,0x79,0x6d,0x0,
+  0xfa,0xd1,0xfe,0xfd,0xb8,0xe9,0x1d,0xef,0x0,0x0,0xfc,0xe9,0x9f,0xfe,0xf9,0xb9,
+  0x7b,0xef,0xfd,0xc2,0x8f,0x74,0x9d,0xec,0x72,0x5b,0xf5,0xb7,0x2c,0x2c,0x9c,0xcf,
+  0x9f,0x3d,0x73,0xa,0x4b,0xc5,0x2,0xa4,0x94,0x98,0x9c,0x18,0x47,0x3a,0x93,0x1,
+  0xa5,0xc,0xf5,0x7a,0x1d,0x8b,0x8b,0xb,0x38,0x3f,0x3b,0x8b,0xd9,0xd9,0x59,0x78,
+  0x9e,0x8b,0x4c,0x26,0x8f,0x74,0xba,0x3,0x94,0x59,0x70,0xbd,0x10,0x9e,0x17,0x20,
+  0x8a,0x38,0xa4,0x92,0x0,0x28,0x94,0x5a,0x7e,0x18,0xab,0x22,0x98,0x10,0xa2,0x1d,
+  0x6c,0x1d,0xc7,0xc1,0x89,0x13,0x27,0x30,0x3e,0x3e,0xe,0xc6,0x18,0x1c,0xc7,0xc1,
+  0x25,0x97,0x5c,0x82,0xb7,0xbd,0xed,0x6d,0xed,0xb8,0xb4,0x2a,0xe8,0x1f,0x3f,0x7e,
+  0x1c,0x3f,0xfb,0xd9,0xcf,0xe4,0xcc,0xcc,0xcc,0xe1,0x4a,0xa5,0x72,0x70,0x72,0x72,
+  0xf2,0x2c,0x0,0xfe,0x9a,0x0,0x74,0xd3,0x3b,0xde,0x81,0xfb,0xef,0xff,0x62,0x9b,
+  0x49,0x5f,0x7a,0xe0,0x81,0x31,0x2d,0x49,0xbf,0xb7,0x50,0x28,0xa6,0x9b,0xf5,0xca,
+  0x4d,0xbe,0xef,0x53,0x5,0x6,0xa9,0x38,0xa,0x85,0x39,0x34,0xea,0x15,0xe8,0x86,
+  0x81,0x96,0xeb,0xa2,0x58,0x5c,0x44,0xa5,0xb2,0x4,0xcf,0x73,0x61,0xdb,0x36,0xd6,
+  0xf4,0xf4,0x21,0x99,0xea,0x0,0xa0,0xa3,0xd5,0xf2,0xe1,0xba,0x21,0x38,0x5f,0x96,
+  0x74,0x97,0x29,0xa4,0xda,0x0,0xc5,0x62,0x31,0x30,0xc6,0xe0,0xfb,0x3e,0x9a,0xcd,
+  0x26,0x2a,0x95,0xa,0x2a,0x95,0xa,0xa6,0xa7,0xa7,0xe1,0xfb,0x3e,0xf2,0xf9,0x3c,
+  0x6c,0xdb,0x46,0x77,0x77,0x77,0x5b,0x30,0xf3,0x3c,0xf,0xe7,0xce,0x9d,0xc3,0xd1,
+  0xa3,0x47,0x71,0xec,0xd8,0xb1,0xe9,0x4a,0xa5,0xb2,0xdf,0x71,0x9c,0xc3,0xab,0xe0,
+  0x5c,0xa8,0x3d,0xbf,0xaa,0x2e,0x76,0xc7,0x1d,0xfb,0xda,0x20,0xdd,0xfe,0xfe,0xf7,
+  0xf3,0x33,0x67,0xc6,0x1f,0xfa,0xca,0x57,0x1e,0xe8,0x30,0xd,0xd6,0xbf,0x61,0xe3,
+  0xd6,0x2d,0x94,0xc6,0xf4,0x28,0xe2,0x98,0x3f,0x7f,0xa,0xc9,0x84,0x89,0x5c,0x36,
+  0x7,0x3f,0x8,0x91,0xcd,0x64,0x60,0xe8,0x6,0xa2,0x28,0x44,0x47,0x67,0xf,0xd6,
+  0xf,0x6d,0x83,0x1d,0xcb,0x22,0x8,0x15,0x5a,0x2d,0x6f,0x19,0x20,0x1,0x50,0x66,
+  0x80,0x90,0x9f,0x8b,0x52,0xa6,0x69,0xb6,0x41,0x72,0x5d,0xf7,0x45,0x1,0x39,0xc,
+  0x43,0x74,0x76,0x76,0x62,0xcf,0x9e,0x3d,0x78,0xe7,0x3b,0xdf,0x89,0xdd,0xbb,0x77,
+  0xb7,0x13,0xc7,0x99,0x99,0x19,0x3c,0xfc,0xf0,0xc3,0x18,0x1d,0x1d,0x9d,0x2b,0x97,
+  0xcb,0xff,0x9c,0x4a,0xa5,0xbe,0xfb,0xe8,0xa3,0x8f,0x8e,0xbf,0x2e,0xed,0x2f,0x77,
+  0xdc,0xb1,0x6f,0x95,0x45,0xa,0x80,0x7b,0xcf,0x3d,0xff,0xf9,0xc7,0xba,0x6e,0x68,
+  0x20,0xd6,0x7,0xc,0x33,0x73,0x31,0x88,0xc9,0xc,0xd3,0x86,0xe7,0x94,0xd0,0x72,
+  0x9b,0x60,0x4c,0x83,0x65,0x19,0xc8,0x66,0x32,0x58,0xbf,0x7e,0x23,0xfa,0xd6,0x6d,
+  0xc3,0xd0,0xf0,0xe,0x28,0x62,0xc0,0x69,0x79,0x68,0x39,0x1e,0xbc,0x40,0x40,0x4a,
+  0x2,0x46,0x4d,0x10,0x2d,0x4,0xb0,0x5c,0xc1,0xaf,0x66,0xc9,0x84,0x10,0x58,0x96,
+  0x5,0xdf,0xf7,0x21,0xa5,0x6c,0x8b,0x60,0xdb,0xb7,0x6f,0xc7,0xcd,0x37,0xdf,0x8c,
+  0xed,0xdb,0xb7,0x83,0x52,0xa,0x29,0x25,0x4e,0x9c,0x38,0x81,0x27,0x9f,0x7c,0x12,
+  0x63,0x63,0x63,0x73,0xb5,0x5a,0xed,0xdb,0x96,0x65,0x7d,0xad,0xbf,0xbf,0x7f,0xfa,
+  0xc2,0x39,0xfc,0x2a,0xf6,0xbc,0xac,0x68,0xff,0x9b,0xd8,0xd7,0xbf,0xfe,0x75,0x7c,
+  0xf7,0xbb,0xdf,0x5,0x0,0x1c,0x38,0xf0,0xb3,0xea,0xfb,0x6f,0x7f,0x6f,0xc1,0xf3,
+  0x7c,0x46,0x8,0x4b,0x12,0x42,0x3b,0xad,0x58,0x96,0x29,0xe8,0x88,0x22,0x1,0x42,
+  0x34,0x28,0xa9,0xc1,0x30,0x12,0xe8,0x5c,0x33,0x84,0x81,0xc1,0x11,0x74,0x74,0xae,
+  0x3,0x17,0x4,0xae,0x1b,0xc0,0xf5,0x2,0x78,0x3e,0x47,0xb3,0x5e,0xe6,0x6e,0x6b,
+  0x29,0xa4,0x84,0xb3,0x78,0x3c,0x86,0x58,0x2c,0xde,0x96,0x47,0x83,0x20,0x80,0xef,
+  0xfb,0x70,0x5d,0x17,0x42,0x8,0x64,0x32,0x19,0xec,0xda,0xb5,0xb,0xd7,0x5f,0x7f,
+  0x3d,0x76,0xed,0xda,0x85,0x54,0x2a,0x85,0x28,0x8a,0x30,0x35,0x35,0x85,0x43,0x87,
+  0xe,0xe1,0xe8,0xd1,0xa3,0x4b,0xe5,0x72,0xf9,0x87,0x52,0xca,0x6f,0xec,0xdf,0xbf,
+  0xff,0xd0,0xe1,0xc3,0x87,0xc5,0x72,0xaf,0xe4,0xbe,0x17,0x55,0xec,0xaf,0x5b,0xb,
+  0x1e,0xd3,0x8d,0x39,0xcb,0xb2,0xfe,0x61,0x76,0xf6,0x5c,0x59,0xa3,0x31,0x23,0x9e,
+  0xec,0x1b,0x49,0xa6,0xbb,0x8d,0x78,0xaa,0x7,0xd5,0xf2,0x3c,0x62,0xd4,0x47,0x2a,
+  0x6f,0x23,0x93,0x5d,0x3,0xa6,0xdb,0x8,0x42,0x89,0x20,0x68,0x21,0x8,0x22,0x4,
+  0xa1,0x40,0x10,0x4a,0x84,0x9c,0x2c,0x9,0x41,0x6a,0x4c,0x53,0xc3,0x50,0xd0,0x75,
+  0x5d,0x47,0x3e,0x9f,0x47,0xb9,0x5c,0xc6,0xe2,0xe2,0x22,0x38,0xe7,0x2b,0xd9,0x79,
+  0x17,0x2e,0xbb,0xec,0x32,0xec,0xdc,0xb9,0x13,0x1b,0x36,0x6c,0x80,0x61,0x18,0x10,
+  0x42,0x60,0x69,0x69,0x9,0x8f,0x3f,0xfe,0x38,0x4e,0x9e,0x3c,0xd9,0x6c,0x36,0x9b,
+  0xc7,0xba,0xbb,0xbb,0xbf,0x7c,0xf9,0xe5,0x97,0x3f,0xfd,0x83,0x1f,0xfc,0xa0,0x3d,
+  0xce,0x2f,0x7e,0xf1,0x8b,0xaf,0x5f,0xb,0xde,0x7d,0xf7,0x7d,0xe,0x0,0xf0,0x17,
+  0x7f,0x71,0x67,0xfb,0xd8,0x47,0xee,0x7c,0xff,0x46,0x45,0xe2,0xef,0x12,0xc4,0xfe,
+  0x88,0x15,0x5f,0xdb,0x65,0x27,0x7a,0x21,0x85,0x0,0xe7,0x21,0x4,0xe7,0x50,0x0,
+  0x34,0x6a,0x41,0x29,0x6,0xcf,0xf3,0x10,0x86,0x11,0xc2,0x48,0xc2,0xf7,0xb9,0x6a,
+  0x39,0x95,0x1f,0xb7,0x6a,0x27,0x47,0x6d,0xa3,0x79,0x6b,0x2e,0x9b,0xe9,0xe9,0xec,
+  0x5a,0x83,0x6c,0x36,0xdb,0x5e,0xc5,0x28,0xa5,0x48,0xa7,0xd3,0xe8,0xe9,0xe9,0xc1,
+  0xe0,0xe0,0x20,0x7a,0x7a,0x7a,0x90,0xcd,0x66,0x41,0x29,0xc5,0xe4,0xe4,0x24,0x9e,
+  0x79,0xe6,0x19,0x1c,0x3e,0x7c,0x18,0xd5,0x6a,0xf5,0x47,0xba,0xae,0x7f,0xa9,0xa7,
+  0xa7,0xe7,0xc7,0x9f,0xfa,0xd4,0xa7,0xda,0x4d,0xc,0xf7,0xde,0x7b,0x2f,0x3e,0xf8,
+  0xc1,0xf,0xbe,0xfe,0x3d,0x8a,0x1f,0xff,0xf8,0xc7,0xf1,0xf1,0x8f,0x7f,0x7c,0x25,
+  0xbd,0xff,0x6,0xf9,0xf,0x1f,0xfa,0xe7,0x1d,0xcd,0x80,0xff,0x17,0xc3,0x5e,0x73,
+  0x8d,0x9d,0x18,0x88,0xdb,0xb1,0x6e,0x8,0x29,0xe1,0x3a,0x15,0xd4,0x6a,0xb,0xa0,
+  0x2c,0x1,0xd3,0xca,0x23,0xc,0x23,0x70,0x21,0x21,0xb8,0x92,0x9e,0x17,0xcc,0x7,
+  0x61,0xf8,0x45,0xca,0x4f,0x1d,0x4e,0xd8,0xee,0x7f,0x8a,0xc7,0x63,0x57,0xa4,0xd3,
+  0xd9,0x44,0x77,0x77,0x37,0xf2,0xf9,0x3c,0xd2,0xe9,0x34,0xe2,0xf1,0x38,0xf2,0xf9,
+  0x3c,0x72,0xb9,0x1c,0x2c,0xcb,0x6a,0x4b,0x29,0x8e,0xe3,0xe0,0xd8,0xb1,0x63,0x78,
+  0xe6,0x99,0x67,0xa2,0x42,0xa1,0x30,0x4e,0x8,0xb9,0xf7,0xa3,0x1f,0xfd,0xe8,0x3f,
+  0x5e,0x7c,0xf1,0xc5,0xd,0x0,0xf8,0xd8,0xc7,0x3e,0x6,0x0,0xf8,0xcc,0x67,0x3e,
+  0xf3,0xfb,0xef,0x72,0x25,0xe4,0x36,0xf5,0x97,0x1f,0x7a,0xff,0x39,0xcb,0xd4,0xbe,
+  0x15,0x4,0xf5,0x44,0x10,0x4c,0x5f,0xdd,0x72,0x29,0x14,0x18,0xbc,0x56,0xd,0x4b,
+  0xc5,0x19,0xe8,0x46,0xa,0xf1,0x24,0x1,0x88,0x1,0x80,0x41,0x2a,0xf8,0x9c,0xf3,
+  0xa7,0xc2,0x0,0x3f,0x7d,0xd7,0x5b,0x36,0x3e,0x7b,0xbe,0xd0,0x78,0x2c,0xc,0xa3,
+  0x6e,0x42,0xb4,0x11,0xce,0x39,0x38,0xe7,0xed,0x20,0xad,0x69,0x1a,0x82,0x20,0x0,
+  0xe7,0xbc,0xbd,0x93,0xf1,0xc2,0xb,0x2f,0x60,0x62,0x62,0x2,0xd5,0x6a,0x75,0xa1,
+  0xb7,0xb7,0xf7,0xfe,0x5c,0x2e,0xf7,0xf0,0x2a,0x38,0xab,0xf6,0x9b,0x82,0xf3,0x3b,
+  0x7,0xe9,0xb,0xed,0xc0,0x81,0x3,0xb8,0xeb,0xaf,0xee,0xc4,0xd5,0xbb,0xaf,0xc0,
+  0xc1,0xa7,0x8e,0x60,0xe7,0x55,0x3,0xa1,0xa9,0xc5,0x97,0x2,0xd7,0xcf,0x48,0x21,
+  0x37,0x72,0x49,0x53,0x61,0xa8,0xc1,0xf3,0x15,0x5a,0xcd,0x22,0xa2,0xc0,0x87,0x10,
+  0xa,0x94,0x25,0x20,0xa4,0x42,0x18,0xba,0xa7,0x83,0xd0,0xfb,0xca,0x5c,0xa1,0xf2,
+  0xe4,0x3f,0xde,0xf7,0x89,0x6a,0xa5,0x5c,0xa,0xa5,0x52,0xfd,0xba,0x6e,0x6c,0xd7,
+  0x34,0x8d,0xac,0x56,0xe7,0x4a,0x29,0xb8,0xae,0x8b,0x52,0xa9,0x84,0x85,0x85,0x5,
+  0x9c,0x3d,0x7b,0x16,0xe7,0xce,0x9d,0x43,0xb9,0x5c,0xf6,0xa4,0x94,0x4f,0xdb,0xb6,
+  0xfd,0x7f,0x72,0xb9,0xdc,0xf7,0xee,0xba,0xeb,0xae,0x89,0x7b,0xee,0xb9,0x47,0x1,
+  0xc0,0xa7,0x3f,0xfd,0x69,0x7c,0xe2,0x13,0x9f,0x78,0x63,0xb6,0x1,0xbf,0xff,0xbd,
+  0x7b,0xaf,0x11,0x88,0xbd,0x2f,0x42,0x66,0x4f,0x24,0x73,0x3d,0x7e,0xc4,0xd0,0x6a,
+  0xce,0x22,0xa,0x1a,0xd0,0x34,0x13,0xc9,0xec,0x6,0x17,0x84,0x8d,0xf9,0x7e,0xf3,
+  0x51,0xc7,0xaf,0xdf,0x7b,0xe8,0xc7,0xff,0xf3,0xdc,0x4a,0x15,0x1e,0xfb,0xce,0x77,
+  0xbe,0x73,0x5b,0xb5,0x5a,0xbd,0xc3,0xf3,0xbc,0xad,0x84,0x90,0x34,0x63,0xc,0x96,
+  0x65,0xb5,0x77,0x48,0x85,0x10,0x6e,0xa3,0xd1,0xf0,0x5a,0xad,0x56,0xc5,0x30,0x8c,
+  0x53,0xd9,0x6c,0xf6,0xd1,0x8b,0x2e,0xba,0xe8,0xd1,0x3d,0x7b,0xf6,0x9c,0x2,0x80,
+  0x4f,0x7e,0xf2,0x93,0xed,0xed,0xf4,0x37,0x6c,0x23,0x79,0xae,0xc3,0x7c,0x7a,0xa9,
+  0x1c,0x85,0x32,0x2c,0xda,0x52,0x79,0x37,0x6a,0x2a,0xd6,0x65,0x5b,0x6,0x20,0x29,
+  0x2,0xbf,0x56,0x6b,0xd6,0x27,0x8e,0x10,0xb0,0xef,0x85,0xad,0xea,0x8f,0x14,0xc8,
+  0xf9,0xb,0xea,0x3d,0x77,0x7a,0x7a,0xfa,0x47,0x53,0x53,0x53,0xfe,0xf9,0xf3,0xe7,
+  0xdf,0xe7,0x79,0xde,0x95,0x42,0x88,0x14,0xe7,0x1c,0xad,0x56,0xb,0x9e,0xe7,0xf9,
+  0xc9,0x64,0xf2,0xb9,0xf5,0xeb,0xd7,0x3f,0x9b,0x4c,0x26,0x9f,0x26,0x84,0x1c,0x22,
+  0x84,0xcc,0xce,0xcd,0xcd,0xb5,0xde,0xf0,0x8d,0xe4,0xfb,0xf6,0xed,0x7b,0xd1,0x52,
+  0xfa,0xde,0xf7,0xdd,0x9c,0x8,0x5c,0xb1,0x93,0xab,0xc4,0x2e,0xa1,0xec,0x21,0x9,
+  0x8b,0xb8,0x6e,0x33,0xf2,0x5a,0xb5,0x22,0x34,0xfb,0x98,0x88,0x82,0x53,0x87,0x9f,
+  0xdc,0x3f,0x77,0x61,0x43,0xf8,0xa,0x8b,0xe8,0xdc,0xdc,0x5c,0xf7,0xc9,0x93,0x27,
+  0x77,0x39,0x8e,0x33,0x12,0x45,0xd1,0x5a,0xa5,0x94,0xa,0xc3,0x50,0x70,0xce,0xab,
+  0x94,0xd2,0xe7,0xb3,0xd9,0xec,0xd4,0xf0,0xf0,0xf0,0xc2,0xc8,0xc8,0xc8,0x22,0x21,
+  0x44,0x5c,0xb8,0x94,0xef,0xdb,0xb7,0xef,0x8d,0xdb,0x69,0x7f,0xc7,0x1d,0xef,0x1,
+  0x0,0xdc,0x7f,0xff,0xd7,0xda,0xc7,0xde,0xf2,0x47,0x6b,0xd2,0xa6,0x3d,0xd0,0xa5,
+  0xe8,0x0,0xd,0x7c,0xc2,0xfd,0x66,0xa3,0xf1,0xc4,0x53,0x3f,0x7a,0x51,0x5f,0xf3,
+  0xee,0xdd,0xef,0xc0,0x3,0xf,0x7c,0xa6,0xad,0x29,0xaf,0x0,0xa5,0xb9,0xae,0xdb,
+  0x31,0x39,0x39,0x99,0x23,0x84,0x60,0xdd,0xba,0x75,0x22,0x1e,0x8f,0x3b,0x0,0xa,
+  0x2b,0x99,0x7c,0xdb,0xe,0x1e,0x3c,0x8,0x0,0xb8,0xea,0xaa,0xab,0xde,0x58,0x9d,
+  0xf6,0xbf,0x8e,0x69,0x34,0xd1,0x0,0xd1,0x1d,0x40,0x5b,0x2e,0x23,0x5e,0x32,0xb9,
+  0x57,0x30,0xd9,0x6a,0xb5,0x4a,0x9c,0xf3,0xf2,0x6a,0x11,0x1a,0x8f,0xc7,0xd5,0xcb,
+  0xf5,0x10,0xfc,0x7f,0x67,0xef,0x7c,0xe7,0xaf,0xf7,0x4a,0xd3,0xf5,0xd7,0x5f,0x8f,
+  0xeb,0xaf,0xbf,0xbe,0x2d,0x93,0x2a,0xa5,0xda,0x6f,0xf7,0xfc,0xba,0xf6,0x4b,0xda,
+  0x96,0xdf,0x98,0x2e,0x76,0xeb,0xad,0xb7,0x2,0x0,0xbe,0xf9,0xcd,0x6f,0x2,0x0,
+  0xde,0xfe,0xf6,0xb7,0x53,0xc6,0x98,0x61,0x18,0x6,0x4b,0xa5,0x52,0x9a,0x52,0x4a,
+  0xb5,0x5a,0x2d,0x7e,0xfc,0xf8,0xf1,0x70,0x6c,0x6c,0xac,0xad,0xcd,0x9c,0x3f,0x7f,
+  0x1e,0x7d,0x7d,0x7d,0x2f,0x9a,0xf4,0xf4,0xf4,0xb4,0x3e,0x39,0x39,0xa9,0xd7,0x6a,
+  0x35,0x16,0x45,0x11,0x31,0xc,0x43,0xd9,0xb6,0x2d,0xe2,0xf1,0x78,0x74,0xe5,0x95,
+  0x57,0x46,0x8c,0x31,0xf5,0x4a,0xbb,0xc1,0x6f,0x78,0x17,0xbb,0xe9,0xa6,0x9b,0x8,
+  0xa5,0x34,0x47,0x29,0x5d,0x4b,0x29,0xed,0x26,0x84,0x18,0x0,0x22,0x4d,0xd3,0x2a,
+  0xdd,0xdd,0xdd,0x33,0x63,0x63,0x63,0x65,0x0,0xd1,0xcb,0x6f,0x31,0x5,0xac,0xd9,
+  0x6c,0xae,0x89,0xa2,0x68,0xad,0x10,0x22,0x2f,0xa5,0xd4,0x38,0xe7,0x51,0x14,0x45,
+  0x4d,0xd7,0x75,0xe7,0x46,0x47,0x47,0x97,0x0,0xb4,0x5e,0xab,0xb1,0xbf,0xe6,0xab,
+  0xd8,0x2d,0xb7,0xdc,0xc2,0x74,0x5d,0xcf,0x12,0x42,0x86,0xd3,0xe9,0x74,0x4f,0x2c,
+  0x16,0x4b,0xb,0x21,0xa8,0xeb,0xba,0x42,0x4a,0xe9,0xc,0xf,0xf,0x97,0xf2,0xf9,
+  0xfc,0x1c,0x63,0x6c,0xe1,0x83,0x1f,0xfc,0xa0,0xc3,0x39,0x6f,0xb3,0x61,0x7a,0x7a,
+  0x3a,0x76,0xe6,0xcc,0x99,0xee,0xd9,0xd9,0xd9,0xf5,0x9e,0xe7,0x75,0x9,0x21,0xe2,
+  0x2b,0x12,0xaa,0xe0,0x9c,0x7b,0x94,0xd2,0x9a,0x6d,0xdb,0x95,0x44,0x22,0x51,0x15,
+  0x42,0x54,0x86,0x86,0x86,0x9c,0x6b,0xaf,0xbd,0x36,0xbc,0xb0,0xfc,0xb9,0xf0,0xfb,
+  0xd,0x1,0xd0,0x4b,0xa9,0xbd,0x77,0xef,0xde,0xb4,0xae,0xeb,0xfd,0x86,0x61,0x6c,
+  0xec,0xea,0xea,0x4a,0xa5,0xd3,0x69,0x52,0xa9,0x54,0x56,0xfb,0xa,0xe5,0xae,0x5d,
+  0xbb,0x78,0x36,0x9b,0x2d,0x28,0xa5,0xa6,0x1d,0xc7,0x99,0xbb,0xf5,0xd6,0x5b,0x7d,
+  0x0,0x28,0x95,0x4a,0xda,0x91,0x23,0x47,0x7a,0xaa,0xd5,0xea,0xd0,0xdc,0xdc,0x5c,
+  0x6f,0x18,0x86,0x36,0x21,0x4,0xba,0xae,0xab,0x20,0x8,0x54,0x18,0x86,0xca,0x34,
+  0x4d,0x69,0x9a,0xa6,0xaf,0xeb,0x7a,0x3d,0xc,0xc3,0x45,0xd3,0x34,0x8b,0x5b,0xb6,
+  0x6c,0xa9,0x19,0x86,0x11,0x5e,0x77,0xdd,0x75,0xaf,0x4a,0x40,0x7a,0xcd,0x5c,0xec,
+  0xc3,0x1f,0xfe,0x30,0x74,0x5d,0x67,0xb,0xb,0xb,0x59,0x4a,0x69,0x2e,0x9b,0xcd,
+  0xfa,0x5d,0x5d,0x5d,0x7e,0x3c,0x1e,0x17,0x85,0x42,0x1,0x89,0x44,0x2,0xc3,0xc3,
+  0xc3,0x64,0xd3,0xa6,0x4d,0x5a,0x2a,0x95,0xd2,0x39,0xe7,0xdd,0xbe,0xef,0xb7,0xe,
+  0x1f,0x3e,0x5c,0xfe,0xc8,0x47,0x3e,0x12,0xed,0xdf,0xbf,0x3f,0x5e,0x28,0x14,0x32,
+  0x61,0x18,0x5a,0x0,0xea,0xc9,0x64,0xb2,0x9e,0xcb,0xe5,0x64,0x2a,0x95,0x6a,0xef,
+  0x6a,0x94,0x4a,0x25,0xb2,0xb8,0xb8,0x48,0x8a,0xc5,0x22,0x15,0x42,0xac,0xd1,0x75,
+  0xdd,0xae,0xd5,0x6a,0x96,0xae,0xeb,0xb,0x0,0xc2,0x37,0x24,0x40,0xab,0xec,0x19,
+  0x1c,0x1c,0xd4,0x46,0x47,0x47,0x53,0x86,0x61,0xd8,0xb6,0x6d,0x8b,0x7c,0x3e,0xdf,
+  0x48,0x26,0x93,0x52,0x29,0x25,0x9,0x21,0xe8,0xea,0xea,0xc2,0xf0,0xf0,0x30,0x49,
+  0xa5,0x52,0xc4,0xb6,0x6d,0xa6,0x94,0x52,0xf1,0x78,0x3c,0xde,0xd1,0xd1,0xe1,0xdc,
+  0x70,0xc3,0xd,0xf2,0xf8,0xf1,0xe3,0x9,0xa5,0x14,0xd3,0x75,0xdd,0x4f,0xa7,0xd3,
+  0xc2,0x30,0xc,0x69,0x59,0x96,0x8a,0xc7,0xe3,0x48,0xa5,0x52,0x30,0xc,0x3,0x1d,
+  0x1d,0x1d,0xa4,0xb7,0xb7,0x57,0x2b,0x97,0xcb,0x64,0x71,0x71,0x51,0x5b,0x5a,0x5a,
+  0x62,0xb,0xb,0xb,0x29,0x42,0x88,0xf7,0xbe,0xf7,0xbd,0xaf,0xf6,0xd5,0xaf,0x7e,
+  0x35,0x7c,0xc3,0x0,0x74,0xe7,0x9d,0x77,0xe2,0x73,0x9f,0xfb,0x5c,0xfb,0x77,0xa1,
+  0x50,0x60,0x9c,0xf3,0xb8,0x69,0x9a,0x24,0x99,0x4c,0x3a,0xb9,0x5c,0x4e,0x18,0x86,
+  0xa1,0x5c,0xd7,0x25,0xd9,0x6c,0x16,0x7d,0x7d,0x7d,0xe8,0xe9,0xe9,0x59,0xf1,0x4a,
+  0x45,0x57,0x74,0x66,0x26,0xa5,0x34,0x7d,0xdf,0x17,0x73,0x73,0x73,0x86,0x69,0x9a,
+  0x3c,0x93,0xc9,0x34,0x32,0x99,0x8c,0x50,0x4a,0xc1,0xf3,0x3c,0xac,0xbe,0xe9,0x93,
+  0xcb,0xe5,0xb0,0x6e,0xdd,0x3a,0x64,0xb3,0x59,0x84,0x61,0x88,0xe7,0x9f,0x7f,0x1e,
+  0x4f,0x3d,0xf5,0x14,0x2b,0x97,0xcb,0x9a,0x10,0x22,0x11,0x45,0x51,0xb8,0x22,0xce,
+  0x4b,0x0,0x78,0xeb,0x5b,0xdf,0xa,0x0,0xf8,0xe1,0xf,0x7f,0xf8,0xfb,0x77,0xb1,
+  0x7d,0xfb,0xf6,0xb1,0x72,0xb9,0x6c,0xb,0x21,0x34,0xc3,0x30,0x82,0x54,0x2a,0xe5,
+  0xaf,0x6e,0xc3,0x74,0x74,0x74,0x60,0xcd,0x9a,0x35,0xc8,0xe7,0xf3,0xed,0x46,0x83,
+  0x28,0x8a,0x40,0x29,0x85,0x6d,0xdb,0x6a,0x66,0x66,0x86,0x35,0x9b,0x4d,0xbb,0xd1,
+  0x68,0xa8,0x74,0x3a,0xed,0xad,0xf6,0x42,0x3,0x80,0xe3,0x38,0x20,0x84,0x20,0x9d,
+  0x4e,0xb7,0xbb,0x58,0xa3,0x28,0x42,0x32,0x99,0xc4,0xd6,0xad,0x5b,0xa1,0xeb,0x3a,
+  0x62,0xb1,0x18,0x79,0xfa,0xe9,0xa7,0xb5,0x20,0x8,0xac,0xf7,0xbc,0xe7,0x3d,0xa1,
+  0x69,0x9a,0xde,0x97,0xbe,0xf4,0xa5,0xdf,0x3a,0x1e,0xfd,0xce,0x72,0xc7,0xb5,0xd7,
+  0x5e,0x8b,0xc1,0xc1,0x41,0x7c,0xfb,0xdb,0xdf,0x6,0x0,0xdc,0x75,0xd7,0x5d,0x5a,
+  0x18,0x86,0x26,0x0,0x4b,0xd3,0x34,0xcd,0x34,0x4d,0x6e,0x9a,0x26,0xf,0xc3,0x90,
+  0x7b,0x9e,0xc7,0x85,0x10,0x3c,0x9b,0xcd,0xf2,0x54,0x2a,0xc5,0x2d,0xcb,0xe2,0x94,
+  0x52,0xce,0x18,0xe3,0xba,0xae,0x73,0xc3,0x30,0xe4,0xd4,0xd4,0x94,0x7c,0xee,0xb9,
+  0xe7,0xc8,0xe2,0xe2,0x22,0xd1,0x75,0x5d,0x24,0x12,0x9,0xee,0xfb,0x3e,0xaf,0x54,
+  0x2a,0xbc,0x50,0x28,0xf0,0xc5,0xc5,0x45,0x3e,0x3f,0x3f,0xcf,0x8b,0xc5,0x22,0xf,
+  0x82,0x80,0x5b,0x96,0xc5,0x33,0x99,0xc,0x4f,0x24,0x12,0x3c,0x93,0xc9,0x70,0xd3,
+  0x34,0x79,0xb9,0x5c,0x96,0xbe,0xef,0xab,0x7a,0xbd,0x8e,0x66,0xb3,0xc9,0x53,0xa9,
+  0x94,0x7a,0xfc,0xf1,0xc7,0x71,0xf6,0xec,0x59,0xec,0xdd,0xbb,0x17,0xa3,0xa3,0xa3,
+  0xaf,0x1f,0x83,0xe,0x1c,0x38,0xf0,0xf3,0xa2,0xf4,0xbd,0xef,0x25,0xad,0x56,0x4b,
+  0x97,0x52,0xb2,0x95,0x3d,0xf5,0x20,0x8a,0x22,0x2c,0x2e,0x2e,0x2a,0x42,0x8,0xa2,
+  0x28,0x2,0x63,0xcb,0x9b,0x88,0x9b,0x36,0x6d,0xc2,0xe0,0xe0,0x20,0x28,0xa5,0xed,
+  0xe6,0x28,0xce,0x39,0xa9,0xd5,0x6a,0xe0,0x9c,0x2b,0x29,0x65,0xc8,0x39,0x87,0xef,
+  0xfb,0xca,0x71,0x1c,0xd4,0xeb,0x75,0xb4,0x5a,0x2d,0x68,0x9a,0x86,0x46,0xa3,0x1,
+  0x29,0x25,0xa6,0xa6,0xa6,0x10,0x86,0x21,0x4c,0xd3,0x6c,0xb7,0xc3,0x5c,0x74,0xd1,
+  0x45,0xf0,0x3c,0x8f,0x44,0x51,0xa4,0x55,0x2a,0x15,0x2a,0xa5,0xd4,0xb3,0xd9,0xac,
+  0x4,0x20,0x0,0xbc,0xec,0x1b,0x3d,0xaf,0x8b,0x60,0xb6,0x75,0xeb,0x56,0x62,0x59,
+  0x16,0xb3,0x2c,0x4b,0x77,0x1c,0x47,0xab,0xd5,0x6a,0x52,0x4a,0xc9,0x4b,0xa5,0x92,
+  0x28,0x97,0xcb,0x32,0x16,0x8b,0x49,0xc7,0x71,0xe4,0xc4,0xc4,0x84,0x3c,0x78,0xf0,
+  0xa0,0x6c,0x34,0x1a,0x32,0x99,0x4c,0x4a,0xc3,0x30,0x24,0xa5,0x54,0x2a,0xa5,0xa4,
+  0x10,0x42,0x9c,0x39,0x73,0x46,0x8c,0x8e,0x8e,0xca,0x66,0xb3,0x29,0x0,0x8,0x42,
+  0x88,0x8c,0xa2,0x48,0xe6,0xf3,0x79,0x39,0x34,0x34,0x24,0x7b,0x7a,0x7a,0x64,0x2a,
+  0x95,0x92,0x9c,0x73,0x39,0x3e,0x3e,0x2e,0xc7,0xc6,0xc6,0xe4,0xdc,0xdc,0x9c,0x4c,
+  0x24,0x12,0x32,0x1e,0x8f,0xcb,0x64,0x32,0x29,0x7,0x6,0x6,0xb8,0x94,0x52,0xd4,
+  0x6a,0x35,0x51,0xad,0x56,0x11,0x86,0x21,0x76,0xef,0xde,0xad,0x76,0xec,0xd8,0xa1,
+  0x4e,0x9c,0x38,0xf1,0x1b,0xcd,0xeb,0xff,0x1,0x2f,0xb7,0x1a,0xa6,0x71,0x7f,0x92,
+  0xdf,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/maemo/tietoopcom/resources/yellowframe.png
+  0x0,0x0,0x7,0xce,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x44,0x0,0x0,0x0,0x44,0x8,0x6,0x0,0x0,0x0,0x38,0x13,0x93,0xb2,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0x16,0x25,0x0,0x0,0x16,0x25,0x1,
+  0x49,0x52,0x24,0xf0,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x3,0xb,
+  0xf,0xe,0x16,0x8,0x4f,0xc5,0x74,0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x43,
+  0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x0,0x43,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x77,
+  0x69,0x74,0x68,0x20,0x47,0x49,0x4d,0x50,0x57,0x81,0xe,0x17,0x0,0x0,0x7,0x29,
+  0x49,0x44,0x41,0x54,0x78,0xda,0xed,0x9c,0xbb,0x72,0x1c,0x45,0x14,0x86,0xbf,0xbf,
+  0x3d,0xf6,0x2a,0x21,0x84,0x84,0x48,0xe5,0xd8,0x76,0x46,0xf1,0x8,0x14,0x4f,0xcc,
+  0x23,0x50,0x64,0xe0,0x8c,0xb2,0x8b,0x22,0x20,0xc1,0x19,0x9,0x72,0x19,0xf7,0x4f,
+  0xd0,0xa7,0x2f,0x33,0xda,0xcb,0xac,0x6c,0x81,0x76,0x57,0x13,0xa8,0x56,0xbb,0xd3,
+  0xb7,0xbf,0xcf,0xbd,0xcf,0x69,0xe5,0x37,0xd7,0x20,0x92,0xf0,0xb,0xac,0x6f,0x31,
+  0x5f,0x5a,0x8,0x61,0xcc,0xbd,0x3c,0x12,0xd4,0xbe,0x7d,0x6c,0xbb,0xda,0xc6,0x9f,
+  0x36,0xbe,0x6d,0x1,0x96,0xf4,0xce,0xf6,0x8f,0xc0,0x6b,0x49,0x59,0x7e,0x7b,0x9d,
+  0xc0,0xdf,0xd9,0x7a,0x85,0xf8,0x0,0x18,0x1b,0x5b,0x6d,0x2,0x9f,0xe7,0xe9,0x7d,
+  0x4a,0xf1,0x79,0xe5,0xba,0x6c,0xa2,0x5d,0x69,0x60,0xc5,0x77,0x6,0x74,0xfc,0x3c,
+  0x4a,0x1f,0x8a,0xa6,0x96,0xa4,0xa7,0x36,0x3f,0x83,0x7f,0x98,0x6c,0xbf,0x0,0x5e,
+  0x61,0xfe,0x2,0x67,0x8c,0x24,0x59,0x89,0xcf,0x42,0x20,0x6d,0xbe,0x56,0x1,0x62,
+  0xa0,0x11,0xb3,0x6e,0x41,0xe3,0xc6,0x4,0x75,0x28,0x89,0xb2,0xc7,0x47,0xcf,0xa7,
+  0x90,0x7e,0xa2,0xa0,0x6c,0x84,0x21,0x1,0x2f,0x41,0x7f,0x4c,0xc0,0xb7,0xa0,0xf,
+  0x12,0xd9,0xe2,0x3d,0xf0,0xf,0x90,0x1c,0x83,0xcb,0x9f,0x42,0x13,0xa5,0x83,0xb6,
+  0x17,0xd,0x85,0xbe,0x41,0xf6,0xba,0x7e,0xd4,0xc1,0x71,0xb4,0x3b,0x9a,0x40,0xc6,
+  0xd,0xa8,0xf3,0x0,0x12,0xf8,0x4a,0xd2,0x7,0xe0,0x9b,0x49,0xd2,0x97,0xc6,0x7f,
+  0x3b,0xb,0x4b,0x1f,0x25,0x6e,0x6c,0xbb,0xc0,0x26,0x28,0xfc,0xc6,0x5d,0xf8,0x47,
+  0x80,0x2c,0x2c,0x47,0xf3,0xca,0x86,0x85,0x65,0xca,0xb,0xeb,0xa9,0xcc,0x8b,0x2f,
+  0x75,0xe4,0xee,0xa4,0x3a,0xb6,0xca,0x3c,0x8c,0x65,0x73,0x25,0x64,0xdb,0x6,0xbe,
+  0x9a,0x6c,0xcb,0x88,0xa4,0xc0,0xcf,0xb2,0xe1,0x26,0x21,0x87,0x38,0xc1,0xa5,0xf5,
+  0xdd,0x79,0xa6,0x74,0x23,0xb4,0x87,0x4f,0xee,0x49,0x80,0x2f,0xe6,0x41,0x23,0x4c,
+  0x91,0x4,0x9b,0xd8,0x27,0x72,0x6,0x9,0x4d,0x20,0xcb,0xe0,0x14,0x82,0xa,0x23,
+  0x64,0x8b,0x1b,0x4c,0x6e,0xd3,0xd7,0x1e,0x3a,0xde,0x4b,0xbb,0xe,0xbe,0x8d,0xcf,
+  0xb,0x81,0xe0,0x5d,0xfd,0xdf,0xd3,0x63,0x17,0x21,0x9,0xbe,0xa,0x21,0x5f,0x27,
+  0x87,0x90,0x27,0xa0,0x89,0x6b,0x9,0x54,0x99,0xcb,0xce,0x86,0x1b,0x41,0xd6,0x6c,
+  0x5,0x3,0xa9,0xdb,0x87,0x69,0xd7,0x6a,0x4d,0xda,0x87,0xa1,0x9b,0x99,0x1a,0xbe,
+  0x7,0x50,0x1c,0x83,0x35,0x22,0x97,0x64,0x7c,0xd5,0xf6,0x20,0x4,0x5b,0xb0,0x10,
+  0xd3,0x8c,0x9e,0x5c,0x74,0x5b,0x88,0x10,0x84,0xb2,0xe0,0xc6,0x38,0x17,0x61,0x22,
+  0x82,0x93,0x62,0xee,0x3a,0x4c,0x20,0x23,0x5e,0x62,0x31,0x5c,0x8,0xdc,0x5,0x40,
+  0xfb,0xa5,0xe2,0x11,0xc0,0x39,0xa4,0x70,0x9f,0x73,0x42,0xda,0x64,0x1b,0xf5,0x1,
+  0x47,0xc5,0x57,0x1,0x19,0x16,0x67,0x37,0x15,0xa0,0x32,0xd3,0xc,0xba,0x31,0xe4,
+  0x6e,0x50,0x19,0xa3,0x81,0x2f,0x2b,0xf9,0xfb,0x28,0xf5,0x17,0x3,0x15,0x3a,0xf3,
+  0xa1,0xd6,0x4d,0x10,0x96,0xc5,0xb0,0xe6,0xfd,0x51,0xc3,0x39,0x81,0x36,0x45,0xdb,
+  0x2e,0x2c,0xbc,0xfa,0x85,0x35,0x2,0x32,0x9a,0x71,0x75,0x17,0x1b,0x7b,0x65,0xc1,
+  0x7b,0xf0,0xc7,0x80,0x4a,0xe,0xed,0xa3,0xc2,0x64,0x6a,0x8b,0x3c,0xd6,0x40,0x19,
+  0xc6,0xd2,0x3a,0x20,0x63,0xbc,0xed,0xef,0x9b,0x99,0x9a,0x77,0x61,0x7,0x25,0xe0,
+  0xaa,0x8e,0xdb,0x8d,0x4e,0xf,0x12,0xae,0x6c,0xf0,0xb4,0x4a,0xf9,0x17,0xad,0xfb,
+  0x11,0xeb,0xbd,0xe5,0x5c,0xd0,0x98,0xa9,0x74,0x49,0x77,0x54,0x15,0x5a,0x2b,0x54,
+  0xab,0x10,0x8,0x86,0x67,0xbb,0x59,0x56,0x48,0xae,0xf3,0x96,0xb1,0xb0,0x37,0xcb,
+  0xc5,0xcc,0xa8,0xce,0x85,0x3e,0xc5,0x3e,0x40,0xa2,0x8d,0xc2,0x3a,0x2b,0xaf,0x3b,
+  0xcb,0xba,0x31,0xce,0x85,0x90,0x42,0x54,0xba,0x9b,0x60,0xf7,0xa8,0x1f,0x3a,0x25,
+  0xb9,0xac,0xca,0x87,0x55,0x4a,0x92,0xb4,0x91,0xbb,0xf9,0xbf,0x65,0x8e,0x33,0x41,
+  0x38,0xad,0xd9,0xc1,0xf0,0x3b,0x14,0x2,0x37,0x3b,0xfb,0xbd,0x9f,0x74,0xa2,0x95,
+  0x84,0x33,0xe4,0xfb,0xb4,0x25,0x34,0x68,0xc3,0x58,0x5c,0xce,0x3b,0xd4,0xbc,0x12,
+  0xc9,0x1f,0x71,0xd2,0xb3,0x71,0xd1,0xde,0xe9,0x27,0x75,0x76,0x98,0x8e,0x10,0xd7,
+  0xb3,0xff,0xa6,0xe7,0xbf,0xf3,0xd0,0x9f,0xfc,0xf6,0xba,0x93,0xc6,0x4e,0xa0,0xdd,
+  0xd8,0x51,0x5a,0xd,0xc8,0x12,0x18,0x71,0xa,0x8f,0x97,0x9e,0xe1,0x1e,0x67,0xaf,
+  0x8a,0xa8,0xb4,0xc6,0xb0,0xd1,0x4c,0x61,0x9f,0xce,0x73,0xb4,0xe3,0xb7,0x93,0x65,
+  0x34,0x98,0xd5,0xea,0x91,0xa2,0xc1,0xca,0x3d,0x9b,0x67,0xdc,0x70,0x1d,0xa4,0x10,
+  0x2f,0xac,0xc3,0x73,0x43,0x63,0x16,0xde,0x28,0xdb,0x3e,0x1d,0xc,0xb5,0xcd,0x58,
+  0xc6,0x27,0x23,0x3f,0x8e,0x8c,0x27,0x36,0x50,0xd2,0xe1,0xf7,0xd5,0x2,0x3b,0x12,
+  0x67,0xfe,0xac,0x0,0xe4,0xbf,0x9,0x56,0xfc,0x9f,0x18,0x44,0x28,0x31,0xe2,0x34,
+  0xd3,0x21,0xb3,0xc3,0xbb,0x22,0x56,0xe7,0xc4,0x32,0x43,0x9c,0xe6,0x30,0xcb,0xdc,
+  0xc1,0xeb,0x3e,0x41,0x54,0xda,0xa7,0xc4,0xe3,0x33,0x7b,0x1e,0x1,0x79,0x4,0xe4,
+  0x11,0x90,0x47,0x40,0xb6,0x9b,0xb,0xeb,0x74,0xe4,0x74,0xde,0x78,0x8c,0x41,0x5f,
+  0x5d,0x36,0x85,0xf8,0xed,0x75,0x9,0x4f,0x2e,0xa2,0xf9,0x32,0x28,0xd3,0xcf,0x69,
+  0x17,0xa9,0x4,0xe7,0xcd,0x32,0x11,0x29,0xf5,0xcc,0x9a,0xf2,0x3c,0x3e,0x5d,0x83,
+  0xe9,0xf6,0x68,0xba,0x7b,0x11,0xf,0xbb,0x1d,0x44,0x39,0x39,0x53,0xeb,0xf9,0x6f,
+  0xdd,0x71,0xb3,0xbb,0x89,0x29,0x21,0xd9,0x35,0x25,0xa3,0xfe,0x58,0xcf,0x9e,0x53,
+  0x1,0xb2,0x46,0x8d,0x16,0xde,0x6c,0x3d,0x6b,0xd1,0x49,0x62,0xb2,0xc5,0x10,0x2d,
+  0x0,0x39,0xbb,0x3b,0xab,0x96,0xac,0x2,0x8d,0x30,0x93,0x6a,0xf0,0xd6,0x52,0xf1,
+  0x71,0x1c,0x3f,0x95,0xf6,0x2a,0xe4,0x64,0x49,0xa7,0x69,0xbb,0xcf,0x5c,0xf4,0x72,
+  0x8,0x37,0xcb,0xc5,0x88,0x35,0xb6,0xa8,0x7b,0xf5,0xf2,0xe2,0x4,0xb3,0xa5,0xd,
+  0x75,0x9c,0xce,0xcc,0x67,0x69,0xa7,0x75,0x9d,0x74,0x1c,0x19,0x38,0x4d,0xa8,0xda,
+  0xf3,0xe0,0xd8,0xd8,0xfe,0xec,0x43,0x20,0x35,0xb7,0xc9,0x85,0x8d,0xd2,0x48,0x55,
+  0x17,0xb0,0x78,0x84,0x49,0xc,0x59,0x85,0x1e,0x13,0xc,0x7d,0xe6,0x86,0xd9,0x6e,
+  0x99,0xa2,0x9a,0x19,0xd0,0x58,0x26,0xe2,0x22,0x17,0xe7,0xcb,0x84,0x68,0x28,0x19,
+  0x5d,0x11,0x4b,0x6d,0xb2,0x52,0xea,0x32,0xe4,0xd2,0x40,0x19,0x84,0x44,0xc9,0xf,
+  0xc0,0x3d,0x61,0xe6,0x3e,0x33,0x78,0x4e,0x82,0x89,0x86,0x84,0x81,0xd4,0x12,0x62,
+  0x8f,0x71,0x9,0xcf,0x90,0x66,0x1c,0xe9,0xdb,0x69,0xe1,0xf7,0x5c,0x20,0x16,0x3d,
+  0x59,0xc6,0x34,0xc3,0xac,0x39,0xcb,0x17,0xc7,0x34,0xe,0x7f,0xa7,0x7a,0x2d,0x69,
+  0x4,0xe9,0x52,0x19,0xa6,0xca,0xd1,0x96,0x41,0x24,0x5d,0x30,0x10,0xc3,0x91,0xe4,
+  0xaa,0x74,0x88,0xcb,0xb0,0x5d,0xdd,0x94,0xf0,0xf4,0x88,0x47,0x78,0xf4,0x1,0x4a,
+  0xc8,0x10,0xf,0xd1,0xa3,0xcb,0x12,0x24,0xcb,0xd5,0x4e,0xb5,0x7c,0x43,0x40,0xe,
+  0x9b,0x6d,0x9b,0x70,0x3d,0x4b,0xbb,0x4d,0x35,0xca,0xd8,0x53,0x3e,0x26,0x45,0xba,
+  0xb6,0xbd,0x7f,0xc1,0x71,0x24,0x1c,0x7f,0x7d,0x4e,0x98,0xb4,0x6c,0xa9,0xee,0xdc,
+  0xb5,0x60,0xc8,0x16,0xdd,0x5b,0xb3,0x72,0xd5,0x8c,0x15,0x2b,0x9d,0xf,0xbf,0xa8,
+  0x16,0x44,0x44,0x90,0x79,0x72,0xcd,0xfd,0x1c,0x59,0x66,0x2b,0xab,0xd8,0x35,0xc0,
+  0xea,0x53,0xc9,0x42,0xc,0xaa,0x3f,0x58,0xee,0xa3,0x6a,0xa6,0x8b,0xa9,0xe5,0xb3,
+  0xef,0xc8,0x1e,0xef,0x19,0x47,0x52,0xd4,0x96,0x9c,0x4,0x1a,0xff,0xfc,0x7a,0xbd,
+  0x2a,0x5b,0x9c,0x5a,0xec,0x30,0x56,0x43,0x68,0x4c,0x3f,0xf5,0x7e,0xbc,0x4b,0xc8,
+  0xc0,0xcf,0xf2,0x9b,0xeb,0x7,0x69,0xeb,0xf7,0x68,0x3a,0x80,0xd3,0x98,0x84,0xbf,
+  0x7d,0x79,0x1a,0x2a,0x31,0x6a,0xc4,0xec,0x56,0x65,0xc2,0xc2,0xb,0xac,0x41,0xa6,
+  0x72,0x9c,0xf1,0xc,0x49,0x63,0x89,0xcd,0x83,0x93,0x92,0x2d,0x86,0x2c,0x6c,0x52,
+  0xb,0xb2,0x6f,0xd3,0xb7,0x75,0x1d,0x21,0x2b,0xa7,0x15,0x56,0x4b,0x4d,0x58,0x4d,
+  0x88,0xcd,0xf8,0xcb,0x43,0x65,0x9e,0x59,0x40,0x5d,0x43,0xfa,0xa9,0x6e,0x3,0x51,
+  0x49,0x4a,0xcd,0xe,0xd9,0x26,0x42,0x17,0xe5,0x63,0x16,0x89,0x52,0xbd,0xd8,0x48,
+  0xeb,0x21,0x9f,0x4f,0x78,0xf8,0x23,0x5a,0x49,0x9c,0xb6,0x5a,0x53,0xb,0x25,0x32,
+  0xed,0x90,0xa0,0x51,0x20,0x6b,0x84,0x92,0xcd,0xa6,0x16,0xd9,0x74,0x7b,0xe4,0x14,
+  0x6c,0xc,0x2d,0xec,0xd,0xa5,0x43,0x49,0x73,0xd3,0x52,0xb9,0x6a,0x2e,0x80,0x65,
+  0xd8,0x7c,0x4a,0x95,0xea,0x83,0x30,0xcb,0x67,0x84,0x1f,0x82,0xd6,0x43,0x52,0xb2,
+  0xfa,0x4b,0x53,0xf,0xd,0x75,0xd8,0x42,0x30,0x4b,0xe8,0xca,0x83,0x2f,0x78,0xb2,
+  0xf6,0xe9,0xac,0x2,0x54,0xd8,0x4e,0x95,0x82,0xba,0x7e,0x51,0xf3,0x76,0xe5,0x99,
+  0xec,0x6c,0x5d,0x5c,0xcd,0x74,0xd5,0xa9,0x87,0xd3,0x6e,0x8b,0x8f,0x99,0x52,0xa8,
+  0xf6,0xe9,0x54,0x89,0xa7,0x1f,0xff,0x5a,0x58,0x9b,0x82,0xe6,0xb2,0x7e,0xf4,0x2e,
+  0xc2,0x74,0xc8,0x9,0x1f,0xf3,0xc3,0xb7,0x65,0x4,0xaf,0xc9,0x10,0xde,0xf6,0x8e,
+  0xe,0xbb,0xb2,0xed,0xde,0x81,0xc1,0x91,0xb,0x2e,0xc8,0xd4,0x32,0x2d,0xe4,0xc9,
+  0xf2,0x3b,0x59,0x5f,0xc4,0x17,0x9,0xeb,0xaa,0xe3,0xd7,0x6b,0xff,0x4b,0xd9,0xdd,
+  0xa8,0x6c,0xf7,0x97,0x76,0xb7,0x8b,0x14,0xa4,0x28,0xab,0x2f,0xb7,0x4e,0xf4,0x42,
+  0xbd,0x28,0xb2,0xe,0xa4,0xa4,0x72,0xbe,0xa,0xb2,0xf6,0x28,0x74,0x7b,0x28,0xc7,
+  0xad,0x70,0x7b,0xc7,0x7c,0xaa,0x8b,0x32,0x16,0x61,0xb6,0x35,0x35,0x2c,0x9f,0x54,
+  0x8a,0x10,0xfc,0x39,0xd9,0xfc,0x8,0xfe,0x3e,0x5c,0xb8,0xcd,0x1,0xbd,0x3e,0xc8,
+  0xe8,0x5e,0x3b,0x5b,0x8b,0x6f,0x47,0xd,0x56,0xeb,0x26,0x6b,0xed,0x5f,0xaf,0x69,
+  0xf4,0x60,0x36,0x85,0x9f,0xd9,0x4e,0x46,0x34,0xaf,0x8c,0xdf,0x13,0xe3,0xaa,0x2e,
+  0x47,0x17,0xf8,0x83,0x45,0x66,0x8d,0x6c,0x61,0xc,0x19,0x66,0x65,0xed,0xe5,0x96,
+  0x83,0x52,0xe4,0x6c,0x93,0x84,0x9e,0x22,0x7e,0x9a,0x80,0xd7,0xc0,0xd7,0xc0,0x4b,
+  0xe3,0xf,0x8e,0xbb,0x0,0x6a,0x3a,0x92,0x34,0xae,0xb4,0xd7,0xa7,0xb5,0x4b,0x4e,
+  0x16,0x1a,0xbb,0x55,0x3f,0xb6,0x4b,0x50,0xb6,0xb4,0x1f,0x4d,0x0,0xab,0x73,0x53,
+  0x1a,0xa8,0x60,0x4b,0xf5,0x45,0xef,0xb3,0xab,0x3d,0xcf,0x65,0xdf,0x68,0x35,0x2c,
+  0xc6,0x99,0xb3,0x50,0x1b,0xba,0x50,0xe9,0x53,0xc4,0x2f,0x98,0xd7,0x93,0x20,0x23,
+  0x7e,0x10,0xfc,0x61,0xeb,0x1b,0xd9,0x5f,0x95,0x88,0x51,0x0,0x33,0x92,0x86,0x35,
+  0xc,0x36,0x18,0x6e,0xc3,0x8d,0x34,0x89,0xf9,0x4,0x67,0xc5,0x8b,0xe3,0xad,0x35,
+  0xed,0x3c,0xb5,0x4,0x7a,0xb5,0x38,0x3e,0x54,0xba,0x2d,0x4b,0x6e,0x5d,0xac,0xc2,
+  0xb2,0x34,0x52,0x31,0x7e,0xdf,0xb8,0x36,0xcd,0x59,0xf7,0xf5,0x8a,0x19,0x1b,0xf4,
+  0xa7,0xc4,0x4f,0xb6,0x5f,0xdb,0xe4,0x7f,0x1,0x38,0xa8,0xd4,0xa4,0x57,0x97,0x3b,
+  0xbf,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/maemo/tietoopcom/resources/online.png
+  0x0,0x0,0xb,0x7d,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x30,0x0,0x0,0x0,0x30,0x8,0x6,0x0,0x0,0x0,0x57,0x2,0xf9,0x87,
+  0x0,0x0,0x0,0x4,0x73,0x42,0x49,0x54,0x8,0x8,0x8,0x8,0x7c,0x8,0x64,0x88,
+  0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0x14,0xc3,0x0,0x0,0x14,0xc3,
+  0x1,0x15,0x70,0x4d,0x42,0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,
+  0x74,0x77,0x61,0x72,0x65,0x0,0x77,0x77,0x77,0x2e,0x69,0x6e,0x6b,0x73,0x63,0x61,
+  0x70,0x65,0x2e,0x6f,0x72,0x67,0x9b,0xee,0x3c,0x1a,0x0,0x0,0xa,0xfa,0x49,0x44,
+  0x41,0x54,0x68,0x81,0xd5,0x9a,0x69,0x8c,0x1c,0xc7,0x75,0xc7,0x7f,0x55,0xdd,0x33,
+  0x3b,0x17,0xf7,0xe0,0xf2,0xda,0x25,0x97,0xa2,0x49,0x2e,0x21,0x2f,0xa5,0x68,0x15,
+  0x2a,0x8e,0x68,0x51,0x16,0x96,0x87,0x65,0x48,0xf9,0x40,0x59,0xc8,0x81,0x20,0xb6,
+  0x1,0xfb,0x4b,0x80,0x7c,0x15,0x92,0x0,0x51,0x88,0x24,0xa6,0x8c,0xc8,0xa0,0x81,
+  0x18,0xc8,0x97,0x8,0xf0,0x7,0x3,0x44,0xa0,0x0,0x56,0xa4,0x40,0x92,0x21,0x85,
+  0xb4,0x68,0x99,0x94,0x28,0x24,0x64,0xc4,0x43,0xa2,0x28,0x53,0x94,0x78,0x48,0x33,
+  0xbb,0x3c,0x76,0xb9,0xbb,0x73,0x4f,0x57,0xbd,0x7c,0x98,0xee,0x99,0x9e,0xde,0x99,
+  0x3d,0x48,0x2a,0x40,0x7a,0xf1,0xd0,0x5d,0x47,0x77,0xfd,0xff,0xef,0xbd,0xaa,0x7a,
+  0xaf,0x66,0x95,0x88,0xf0,0xff,0xf9,0x72,0xef,0xe6,0xc7,0x1e,0x3f,0xa0,0xd2,0xd5,
+  0x2,0x43,0xda,0x71,0x7,0xad,0x95,0x1,0xad,0x64,0x0,0xc0,0x8a,0xca,0x69,0xad,
+  0x72,0xd6,0x78,0xd9,0x78,0x9a,0xab,0x6f,0x3e,0x23,0x85,0xbb,0x35,0xa6,0xba,0x53,
+  0xb,0xec,0x7a,0x4e,0xdd,0x63,0x45,0xef,0xd5,0xa2,0x9e,0x12,0x78,0x14,0xd0,0xb,
+  0xbc,0x62,0x15,0x1c,0xb5,0x4a,0x5e,0xd6,0xca,0xbe,0xf2,0xab,0xbf,0x91,0xcb,0x77,
+  0x32,0xfe,0x6d,0x13,0x18,0xdb,0xef,0xee,0xd5,0xc8,0x3e,0x11,0xf5,0x20,0xc0,0xe0,
+  0xc0,0x5a,0x73,0xef,0xe6,0xad,0x4e,0x7f,0xcf,0x4a,0xd2,0xc9,0x6e,0xd2,0x89,0x6e,
+  0x92,0x5d,0x19,0x0,0x4a,0x95,0x3c,0x85,0xf2,0xc,0x85,0xd2,0xc,0x37,0xa7,0xaf,
+  0x73,0xfe,0x93,0xf,0x4d,0x36,0xf7,0x85,0x3,0xa0,0x94,0xbc,0x6f,0x51,0xff,0x70,
+  0xe4,0x59,0xef,0x95,0xff,0x13,0x2,0x3b,0x7f,0x18,0x7b,0x4,0x25,0x7,0x10,0x1e,
+  0x1e,0x18,0x18,0x34,0xa3,0x23,0xdb,0x9c,0xcd,0x6b,0xef,0x23,0x9d,0xe8,0x6,0xc0,
+  0x8a,0x1,0x51,0x88,0x8,0xc1,0xb7,0x95,0x52,0x28,0xa5,0x40,0x9,0x5a,0x39,0x0,
+  0x14,0xca,0x33,0x7c,0xf2,0xc5,0x7,0x9c,0x3a,0x77,0xd2,0xe4,0x72,0x59,0x7,0xc5,
+  0x7b,0x88,0x7a,0xe6,0xad,0xbf,0xad,0xbd,0xf3,0xa5,0x10,0xd8,0xf3,0xbc,0xea,0x31,
+  0x55,0xe7,0x67,0xc0,0xd3,0x7d,0x7d,0xcb,0xcd,0xd8,0xf6,0x3d,0xce,0x96,0x75,0xa3,
+  0x8,0x82,0x58,0x8b,0x31,0x6,0x63,0xcc,0xa2,0xbe,0xe5,0x38,0xe,0x8e,0xe3,0xa0,
+  0xb4,0x46,0xa1,0xf8,0xed,0xe7,0xa7,0x38,0x72,0xfc,0x90,0x99,0x9a,0x9a,0x74,0x80,
+  0x97,0x9c,0xb8,0xf9,0xc1,0xa1,0xbf,0x92,0xe9,0xbb,0x46,0xe0,0xb1,0xfd,0x6a,0xd8,
+  0xc5,0x7d,0x5d,0x29,0xb5,0x69,0xf7,0x63,0xdf,0xd2,0xa3,0x9b,0xbf,0x8e,0x52,0x1a,
+  0xe3,0x19,0x3c,0xaf,0xb6,0x28,0xd0,0x1d,0xc9,0xb8,0x31,0x5c,0xd7,0xc1,0x5a,0xc3,
+  0xe9,0x8b,0xc7,0x39,0xfc,0xf6,0x1b,0x56,0x44,0x2e,0x7a,0x78,0x4f,0xbe,0xfd,0xac,
+  0x5c,0xb8,0x63,0x2,0x63,0xfb,0x63,0xbb,0xb5,0xc8,0x4b,0xa9,0x4c,0x26,0xfd,0x47,
+  0x4f,0x7e,0xc7,0x59,0xdd,0xb3,0x1e,0x63,0xea,0xc0,0x6f,0x77,0xfe,0x48,0xe4,0x41,
+  0x29,0x85,0xeb,0xc6,0x70,0xb4,0xc3,0xf8,0xf4,0x65,0x7e,0xf1,0xcb,0x83,0xa6,0x58,
+  0xc8,0x17,0xac,0x52,0x4f,0x1f,0x79,0xb6,0x76,0xf8,0xb6,0x9,0x8c,0xed,0x8f,0xed,
+  0x56,0xc8,0x1b,0x83,0x3,0x83,0x3c,0xbd,0xe7,0x7b,0x4e,0xaa,0x6b,0x19,0xb5,0x6a,
+  0xd,0x6b,0x17,0xe7,0x2a,0xf3,0x81,0xe,0x37,0x4,0x55,0x5a,0x3b,0xc4,0x63,0x31,
+  0xa,0x95,0x59,0x5e,0x3e,0xfc,0x73,0x93,0x9d,0xc8,0x22,0xa8,0x6f,0xcd,0x47,0xa2,
+  0x23,0x81,0xc7,0xf6,0xab,0x61,0x57,0x9c,0x13,0x3,0x83,0x83,0xe9,0x3f,0x7d,0xe2,
+  0xcf,0x1d,0x47,0x6b,0xaa,0x95,0xa5,0x69,0x7d,0x31,0xa0,0xa3,0xed,0x4a,0x29,0xe2,
+  0xf1,0x18,0xc6,0x1a,0x5e,0x7c,0xe3,0x5f,0x4c,0x6e,0x3c,0x5b,0xf0,0x94,0x79,0xa8,
+  0x93,0x3b,0xb5,0x5d,0xb3,0xf7,0x3c,0xaf,0x7a,0x5c,0xdc,0xd7,0xd3,0x99,0x65,0xe9,
+  0x6f,0xef,0xfe,0x9e,0xe3,0x68,0x4d,0xa5,0xbc,0x38,0xf0,0x12,0x88,0x84,0xa,0x1,
+  0xe8,0x40,0x5a,0x3a,0xb6,0xb6,0x5b,0x2b,0x94,0xcb,0x55,0xb4,0xd2,0xec,0x1d,0xfb,
+  0xae,0x93,0x4e,0x2f,0x4b,0xbb,0xb8,0xaf,0xef,0x79,0x5e,0xf5,0x2c,0x9a,0x80,0xa9,
+  0x3a,0x3f,0xd3,0x4a,0x6f,0xfa,0xc3,0x27,0xbe,0xeb,0xa4,0xba,0x32,0x54,0x2a,0x15,
+  0x2c,0x1e,0x16,0xd3,0x5e,0xa4,0x29,0x22,0x6,0x6b,0x5b,0xeb,0x82,0xb2,0x44,0xca,
+  0xad,0xed,0x5e,0x53,0xac,0x47,0xa5,0x5c,0x21,0x19,0xcf,0xf0,0xed,0x6f,0x7e,0xc7,
+  0xd1,0x4a,0x6f,0xf2,0x57,0xc0,0x39,0xd7,0x1c,0x17,0xda,0xf9,0xc3,0xd8,0x23,0x20,
+  0xc7,0xbe,0xb9,0xf3,0x49,0x7e,0x77,0xf3,0xe,0x2a,0xb5,0x22,0x35,0xcf,0xeb,0xa0,
+  0xeb,0x39,0xb7,0x25,0xb9,0xb,0xf8,0x96,0xea,0xd0,0xee,0x38,0x2e,0x89,0x58,0x8a,
+  0x53,0x17,0x8f,0x71,0xf8,0xd8,0x2f,0x1,0xb5,0x23,0xba,0x4f,0xcc,0xb5,0x80,0x92,
+  0x3,0x7d,0x7d,0xcb,0xcd,0xe8,0xa6,0xed,0x54,0xbd,0xa,0x55,0xaf,0x82,0x60,0x10,
+  0x22,0x5a,0x9a,0x47,0xd3,0xb,0x6a,0xde,0x36,0x45,0x22,0x65,0x23,0xbe,0x58,0x43,
+  0xb5,0x56,0xa1,0x52,0xab,0x70,0xff,0xc6,0xed,0xf4,0xf6,0xf4,0x19,0x94,0x1c,0x88,
+  0xc2,0x6d,0x21,0x30,0xb6,0xdf,0xdd,0x8b,0xf0,0xf0,0xd8,0xf6,0x3d,0xe,0x28,0x2a,
+  0xb5,0x42,0xb,0x18,0x11,0x8b,0xd,0xc4,0x5a,0x8c,0x34,0xc5,0xda,0x66,0x7d,0x20,
+  0x46,0x2c,0xc6,0x5a,0x8c,0x8d,0x80,0x97,0x10,0x50,0x69,0x25,0x1d,0x75,0xc1,0x4a,
+  0xad,0x0,0xa2,0x78,0xf4,0xa1,0x3d,0xe,0xc2,0xc3,0x63,0xfb,0xdd,0xbd,0x61,0xcc,
+  0x6e,0x2b,0x1b,0xd9,0xb7,0x66,0x60,0xad,0x19,0x5e,0x3b,0xea,0x94,0xbd,0x2,0x9e,
+  0xad,0xcd,0x6f,0xe6,0x79,0xdd,0x43,0xe6,0x75,0x8f,0x68,0x5b,0xa7,0xbe,0x16,0x43,
+  0xa5,0x56,0x62,0x78,0x70,0x94,0x35,0x2b,0x8f,0x9a,0x89,0x1b,0xd9,0x7d,0x40,0x23,
+  0x6e,0x6a,0x58,0x60,0xd7,0x73,0xea,0x1e,0x11,0xf5,0xe0,0xe8,0xc8,0x36,0x7,0x84,
+  0x52,0x75,0xb6,0xa9,0xd1,0x88,0x66,0xc3,0xf5,0x22,0xe1,0x72,0xd8,0x5,0x5a,0xad,
+  0x15,0xf4,0xf,0xac,0x62,0x23,0xd6,0x8c,0x5a,0x37,0xfc,0x5e,0xa9,0x32,0x8b,0x88,
+  0x70,0xff,0x96,0x87,0x1c,0x11,0xf5,0xe0,0xae,0xe7,0xd4,0x3d,0x73,0x2c,0x60,0x45,
+  0xef,0x55,0xc0,0xc6,0x81,0x11,0xaa,0x5e,0x19,0x63,0x43,0x21,0x42,0x78,0xe9,0x6b,
+  0xa3,0xa5,0xb6,0x13,0x58,0x22,0x8f,0x1d,0xfb,0x36,0x1b,0x3a,0x8e,0x21,0x50,0xf3,
+  0xca,0x6c,0x58,0xfd,0x55,0xe0,0x55,0xac,0xe8,0xbd,0xc0,0x4f,0x5b,0x2c,0xa0,0x45,
+  0x3d,0x35,0x38,0xb0,0xd6,0xa4,0x13,0xbd,0x54,0xbc,0x22,0xd6,0x4a,0x53,0x44,0x10,
+  0xff,0x5e,0x17,0xdf,0xb7,0xc3,0xfe,0x1f,0xd1,0x78,0xa7,0xf9,0x21,0xd6,0xb6,0xcc,
+  0x87,0xfa,0x1c,0x69,0x3f,0x8f,0x4c,0x68,0x1e,0x95,0x6b,0x45,0x32,0x89,0x5e,0xd6,
+  0xac,0x1a,0x34,0x5a,0xd4,0x53,0x2d,0x2e,0xf4,0xf8,0x1,0x95,0x16,0x78,0x74,0xcb,
+  0xc6,0x11,0x7,0x81,0x52,0xad,0xd0,0x5c,0x79,0x82,0x75,0x1e,0xf,0xc1,0x43,0xc4,
+  0x43,0xc4,0x80,0xdf,0x2e,0x62,0xda,0xf4,0xf5,0xeb,0xa5,0xd9,0x1e,0xd4,0xd7,0x27,
+  0x6a,0xdd,0x65,0x4,0xb,0xc1,0xb3,0x5f,0x16,0xb1,0x58,0x9a,0xee,0x19,0xd4,0x97,
+  0xaa,0x79,0x40,0xd8,0x3c,0x34,0xe2,0x8,0x3c,0xfa,0xf8,0x1,0x95,0x6e,0xb8,0x50,
+  0xb5,0xc0,0x90,0xd2,0xe8,0xfe,0xee,0x55,0xd4,0x4c,0x5,0x63,0xab,0xd,0x7b,0x46,
+  0x27,0xe9,0x52,0x5c,0xe9,0xf6,0x26,0x7f,0xe8,0xbd,0x8,0x86,0x9a,0x57,0xa1,0xaf,
+  0x7b,0x15,0x80,0xae,0x16,0x18,0x2,0xce,0xbb,0x0,0xda,0x71,0x7,0x45,0x84,0x74,
+  0xb2,0x1b,0x2b,0x1e,0x46,0x4c,0xcb,0x60,0x51,0x10,0x2d,0xae,0xde,0xb6,0x9f,0xb4,
+  0x25,0xdb,0x52,0x9e,0x77,0x15,0x92,0xb6,0x64,0x8d,0x18,0xd2,0x5d,0xcb,0x8,0x30,
+  0x37,0x8,0x58,0x2b,0x3,0x4a,0x41,0x32,0x96,0xc1,0xb3,0x1e,0x62,0xcd,0x9c,0xc1,
+  0x16,0xd6,0x98,0x74,0xee,0xd7,0x69,0x42,0x2f,0xc1,0x42,0x2,0x78,0xc6,0x23,0x15,
+  0xaf,0xa7,0xa9,0xd6,0xd6,0xf,0xc,0xea,0x16,0x50,0x32,0x20,0x28,0x92,0xf1,0xc,
+  0x25,0x6f,0x1a,0xe3,0x87,0xcb,0x8b,0xd2,0xd8,0x22,0x42,0x87,0xce,0x6e,0xd7,0xba,
+  0x57,0xcc,0x37,0x1e,0x2,0x9e,0x57,0x25,0x15,0xab,0xc7,0x74,0xc1,0x89,0x47,0xeb,
+  0xb1,0x8a,0xaa,0xbf,0x67,0xc3,0x4,0x42,0xf,0x4b,0xd5,0xd8,0xdd,0x0,0xdd,0xba,
+  0x4,0x47,0x3b,0xf8,0x4,0xac,0xa8,0x9c,0x52,0x50,0x2c,0xe7,0xd1,0x8e,0x83,0x91,
+  0xf6,0x88,0x6e,0xcb,0xa7,0xa3,0x8b,0xc1,0x2,0x6e,0x35,0x1f,0x79,0x8d,0x4b,0xb1,
+  0x92,0x27,0xc0,0xdc,0x20,0xa0,0xb5,0xca,0x89,0x8,0xc5,0xf2,0x2c,0x3d,0x99,0x3e,
+  0x7f,0x99,0x6c,0xef,0xd3,0x5f,0x2a,0xe8,0xe,0xfd,0x83,0xef,0x3a,0xca,0x61,0xa6,
+  0x7c,0x8b,0x0,0x73,0x83,0x80,0x35,0x5e,0x56,0x69,0x87,0x7c,0x69,0x86,0xde,0xcc,
+  0xa,0x8c,0xf5,0x5a,0x3e,0xb6,0xa4,0xc1,0x16,0x49,0x76,0xae,0x7b,0x4,0xf5,0xd2,
+  0x2,0x3a,0xdc,0x5f,0x2b,0x97,0x7c,0x69,0x86,0x0,0x73,0x83,0x40,0x3c,0xcd,0xd5,
+  0x5a,0x9,0x7b,0xf3,0xd6,0x35,0xbd,0x71,0xcd,0x56,0x94,0x68,0x3c,0xf1,0x3a,0xf8,
+  0xf0,0xfc,0x9a,0xee,0xec,0xfb,0xb,0x83,0x9e,0xcf,0x42,0x5a,0xc7,0x88,0x39,0x49,
+  0x26,0x67,0xaf,0x3,0xd8,0x78,0x9a,0xab,0xe0,0xef,0xc4,0x6f,0x3e,0x23,0x5,0x5,
+  0x47,0x2f,0x5c,0x39,0x67,0x10,0x45,0x2a,0xde,0xb,0x12,0xda,0x69,0x23,0x21,0xae,
+  0xe0,0xe7,0x4,0x78,0x8d,0x10,0x58,0xfc,0xd8,0x3e,0xfa,0x9e,0x84,0x73,0x84,0x96,
+  0x1d,0xd9,0xdf,0xd5,0xad,0xd7,0x1c,0x23,0x94,0xdd,0x49,0x24,0xfc,0xce,0xc4,0x7a,
+  0x41,0x14,0x9f,0x7e,0x71,0xce,0x28,0x38,0x1a,0x9c,0xaf,0x36,0x83,0x39,0x25,0x2f,
+  0x8f,0x4f,0x64,0x1f,0x9b,0x2d,0x4d,0x93,0x89,0xf5,0x33,0x55,0xcc,0x46,0x7c,0x58,
+  0xe6,0xb8,0xc3,0x7c,0xee,0xb2,0x18,0x9f,0x6e,0xa7,0xe9,0x4e,0x16,0x5c,0x96,0xe8,
+  0x27,0x5f,0xbe,0xc5,0xc4,0xcd,0xac,0x23,0x4a,0x5e,0xe,0x9a,0x9a,0xc1,0x9c,0xb2,
+  0xaf,0x0,0x7c,0x96,0x3d,0x47,0xca,0x67,0x6b,0xad,0xc1,0x9a,0x20,0x5b,0xb2,0xad,
+  0x41,0x5c,0x10,0x6c,0x19,0x3f,0x3c,0x36,0x76,0x6e,0x60,0x66,0x6d,0xe3,0x7d,0x63,
+  0xea,0x59,0x96,0xb1,0xcd,0x8c,0xcb,0xf8,0xdf,0x37,0xa1,0xf6,0x76,0x59,0x1b,0x28,
+  0xd2,0xf1,0x5e,0x2e,0x4d,0x7c,0xd4,0x82,0xb5,0x85,0x40,0xfd,0x94,0x58,0x4e,0x9d,
+  0xbd,0x70,0xc2,0x28,0x81,0xfe,0xd4,0xba,0x66,0xf6,0x64,0x5b,0x7,0x69,0x3b,0x58,
+  0x78,0x50,0x53,0x4f,0xcc,0x8d,0xf5,0x1a,0x60,0xed,0x12,0x41,0x87,0xb3,0xb4,0x95,
+  0xcb,0x86,0x50,0x28,0xce,0x7d,0x76,0xd2,0x20,0x72,0xe6,0xad,0x67,0x19,0x9f,0x43,
+  0x40,0x29,0x15,0x2f,0x4d,0xab,0x3,0x13,0x37,0x72,0xce,0x85,0xec,0x19,0xfa,0x13,
+  0xeb,0x71,0x54,0xac,0xa1,0xe1,0x86,0xa6,0xa3,0x21,0x6f,0xa3,0x3d,0x8,0x8f,0x4d,
+  0x33,0x69,0x69,0x69,0xf,0x2c,0x12,0xa,0xab,0xdb,0x25,0x4a,0x11,0x71,0x74,0x8c,
+  0x15,0xe9,0xf5,0x5c,0xc8,0x9d,0xe6,0xda,0x64,0xce,0x99,0xbd,0xae,0xfe,0x9,0x48,
+  0x2a,0xa5,0x62,0xd,0x2,0x4a,0x29,0xd,0xc4,0xdf,0xfb,0x89,0x39,0x6c,0x6b,0xf2,
+  0xfe,0xb1,0x93,0x87,0xac,0x8,0xac,0x4a,0x6f,0x9c,0x3b,0xa1,0x5a,0x2c,0xd1,0x46,
+  0xd3,0x11,0x4b,0xb5,0xba,0x61,0xc4,0x7d,0xa2,0x87,0x0,0x6d,0x64,0xa0,0x7b,0x23,
+  0x8,0x1c,0x3f,0x7b,0xd8,0x9a,0xaa,0x9c,0x3e,0xf1,0xcf,0xe6,0xd7,0x40,0x17,0xd0,
+  0xa5,0x7c,0xe0,0x0,0xb1,0x40,0x6e,0xfc,0x56,0xfd,0x78,0x3a,0x3f,0xa5,0xcf,0x7c,
+  0xf6,0x2e,0xfd,0xc9,0x21,0xba,0xe3,0xab,0x22,0xc9,0x46,0x78,0x55,0xa,0xa5,0x95,
+  0x91,0x54,0x33,0x7c,0x6f,0x49,0x6e,0x82,0x78,0x7f,0x11,0x7f,0x3d,0xc9,0x55,0xf4,
+  0xa7,0xd7,0x73,0xf6,0xf2,0x3b,0xcc,0x14,0xa6,0xf4,0xb5,0xb3,0xea,0xa7,0x61,0xac,
+  0x80,0xab,0x43,0xae,0xe4,0x0,0xce,0x87,0xff,0x66,0x4e,0x57,0xb,0xbc,0x75,0xf4,
+  0xe4,0x7f,0xda,0xf1,0xa9,0x2b,0x6c,0xe8,0x7b,0x80,0x2e,0x9d,0xaa,0x6b,0xda,0x78,
+  0x4d,0xed,0xcd,0x37,0x37,0x22,0x13,0x76,0x21,0x2d,0xb7,0x93,0x84,0x9b,0x66,0xe3,
+  0xf2,0x51,0x26,0xa6,0xaf,0x70,0xec,0xd4,0x21,0xa9,0xcc,0xf2,0xf6,0xf9,0xff,0x30,
+  0x67,0x3,0x9c,0x81,0x4,0x4,0x94,0x2f,0x0,0xea,0xc3,0x17,0xcd,0x7e,0xaf,0x6a,
+  0xb3,0xaf,0xfe,0xe6,0xa0,0x2d,0x95,0xf3,0xc,0xf7,0x7f,0xd,0xad,0x62,0x5f,0x3a,
+  0xe8,0x40,0x5c,0x1d,0x63,0xcb,0xca,0xaf,0x51,0xaa,0xe6,0x79,0xed,0x9d,0x83,0xd6,
+  0xab,0xda,0xdc,0x7,0xff,0x6a,0x7e,0x1c,0xc5,0x19,0x9e,0xc4,0x36,0x2c,0xb7,0x2e,
+  0x33,0x73,0xe1,0xd,0xf3,0x97,0xc5,0x62,0xa1,0xfc,0xda,0xbb,0x7,0xad,0x43,0x8c,
+  0x91,0x95,0xdf,0x20,0xe1,0x64,0x5a,0xf,0xac,0xec,0xdc,0x4d,0xec,0x4e,0x25,0x15,
+  0xcb,0xb0,0x75,0xf5,0x37,0x70,0x54,0x8c,0xd7,0xdf,0x3b,0x68,0x8b,0xc5,0x42,0xe5,
+  0xe3,0xd7,0xcc,0xbe,0x99,0x2f,0x98,0x8d,0xe2,0x4,0x4c,0x40,0xc0,0x0,0x5e,0x48,
+  0x6a,0xd9,0xff,0xe2,0xd2,0xe7,0x27,0xe4,0xef,0x26,0x6e,0xe6,0x78,0xe9,0xed,0x17,
+  0xac,0xe7,0x79,0xdc,0xb7,0x66,0x27,0x7d,0x5d,0x83,0x2d,0xab,0x49,0xa7,0xd5,0xe3,
+  0x76,0xa4,0x37,0x39,0xc8,0xfd,0x6b,0x76,0x62,0x8c,0xc7,0xbf,0x1f,0x7d,0xc1,0x4e,
+  0x4c,0xe6,0xb8,0xfa,0x9e,0xfc,0x68,0xe2,0x7d,0x2e,0x5,0xb8,0x22,0x38,0x3d,0x15,
+  0xfa,0x1d,0x2b,0x9,0xa4,0x7c,0x49,0x3,0x49,0x20,0x35,0xfc,0xa4,0xde,0xb1,0xf6,
+  0xf7,0xd4,0xbe,0x54,0x2a,0x9d,0xf8,0x83,0x47,0xfe,0x4c,0xaf,0xee,0x59,0xcf,0xf8,
+  0xec,0x45,0x2e,0x4d,0x9e,0xa1,0x66,0xca,0xdc,0x8d,0x2b,0xe6,0x24,0xd8,0xb0,0xfc,
+  0x77,0x58,0xb3,0x6c,0x13,0x13,0xd3,0x57,0x78,0xf5,0x9d,0x83,0xb6,0x54,0x2c,0x54,
+  0xae,0x1c,0x97,0x7f,0xfc,0xf4,0x4d,0x7b,0x1c,0x28,0xfa,0x52,0x2,0xa,0xfe,0xf3,
+  0x8c,0x88,0xd4,0xc2,0x4,0x54,0x88,0x40,0x2a,0x20,0x0,0x24,0xd7,0x6c,0x63,0xf3,
+  0x96,0x27,0x9c,0x1f,0xb9,0x71,0x3d,0xb0,0x63,0x74,0x8f,0xba,0xef,0x9e,0xaf,0xa3,
+  0x80,0xcf,0xa7,0xcf,0x73,0x75,0xfa,0x43,0x3c,0x53,0xbd,0x2d,0xe0,0xae,0x13,0x67,
+  0xa8,0x67,0x2b,0xeb,0x7a,0xee,0x45,0x80,0xf,0x2e,0xbf,0xcb,0xb1,0x53,0x87,0xc4,
+  0xab,0xd8,0xf1,0xf3,0xaf,0x9a,0xbf,0xbf,0x76,0x9a,0x8b,0x3e,0xe8,0x52,0x88,0x40,
+  0x11,0x98,0x1,0x2a,0x22,0xd2,0x7a,0x3a,0x1d,0x22,0x91,0x8c,0x4a,0xf7,0x5a,0xfa,
+  0xb7,0xfe,0x89,0xf3,0xd7,0x89,0x1e,0x76,0x74,0xa7,0xfb,0xec,0xf6,0xfb,0x77,0xeb,
+  0xe1,0x81,0x7,0xb0,0x58,0xa6,0x8a,0x59,0xae,0x17,0xae,0x72,0xa3,0x70,0x75,0x41,
+  0xab,0xc4,0x9c,0x4,0x2b,0xd2,0x43,0xac,0x4c,0xf,0xd1,0x97,0x1a,0x44,0xa3,0xb9,
+  0x90,0x3b,0xcd,0xbb,0x67,0xf,0xdb,0xd9,0xc2,0x94,0x2e,0x4f,0x71,0xfc,0xec,0x8b,
+  0xe6,0x27,0xf9,0x1c,0x37,0x81,0x72,0x88,0x40,0x20,0x33,0x40,0xb5,0xa1,0xf8,0x76,
+  0x3f,0x5a,0x28,0xa5,0xba,0x42,0xe0,0x13,0x61,0xd9,0xf4,0xb8,0xde,0x36,0xf8,0x20,
+  0x7f,0xe1,0xa6,0xd4,0xbd,0xab,0x96,0xf,0xd8,0x91,0xaf,0x6c,0xd3,0x1b,0x56,0x7f,
+  0x95,0x4c,0xa2,0x17,0x44,0x28,0xd6,0x66,0xa8,0x78,0x5,0x2a,0xa6,0x44,0xd5,0x2b,
+  0x1,0x10,0x77,0x93,0x74,0x39,0x49,0xba,0xdc,0x34,0xa9,0x58,0x37,0x28,0x45,0xbe,
+  0x7c,0x8b,0x4b,0x13,0x1f,0x71,0xee,0xb3,0x93,0xf6,0xda,0x64,0x4e,0xd7,0xa,0xf2,
+  0x71,0xf6,0x4,0x2f,0x7c,0xfa,0x2b,0xfb,0x3f,0x40,0xc5,0x7,0x1f,0x96,0x3c,0x50,
+  0x10,0x11,0xdb,0x82,0xb5,0xd3,0xaf,0x2e,0xbe,0x35,0x12,0x3e,0x89,0x2e,0xff,0xb9,
+  0xb,0x88,0x3,0x5d,0x23,0x7f,0xac,0x77,0xad,0x18,0xe6,0xfb,0x4e,0x5c,0xd,0x3,
+  0xac,0x5e,0x3e,0x68,0x37,0xae,0x1b,0xd1,0xcb,0x33,0x2b,0x49,0x25,0xba,0x49,0x75,
+  0x2d,0x23,0xd9,0x95,0x6,0xa0,0x54,0x29,0x50,0xac,0xcc,0x52,0x2c,0xcf,0x30,0x99,
+  0xbf,0xce,0xa7,0x9f,0x9f,0xb3,0x13,0x93,0x59,0xd,0x60,0x2a,0xf2,0xc9,0xf5,0x8f,
+  0xf9,0xf9,0x47,0xbf,0xb0,0x47,0x80,0xaa,0xf,0x3e,0xb8,0x7,0x16,0xc8,0x3,0x5e,
+  0x5b,0x65,0x2f,0xf4,0xb3,0x51,0x9d,0x7,0xae,0x4f,0x20,0xe5,0x13,0x88,0xe3,0xef,
+  0x86,0xeb,0x7e,0x9f,0xf5,0xab,0x47,0xf5,0xae,0xf4,0x72,0xc6,0x74,0x52,0x3d,0xa0,
+  0x16,0xf8,0x57,0x3,0x1,0x6b,0x4b,0x72,0x26,0x7f,0x93,0x5f,0x8f,0xbf,0x6f,0x8f,
+  0x64,0xff,0x9b,0xab,0xd4,0x57,0x97,0x40,0xaa,0xd4,0xfd,0xbc,0x0,0xd4,0xa2,0x1a,
+  0x5f,0x32,0x81,0xe,0x64,0x2,0x8b,0xc4,0xfc,0xb2,0xb,0x38,0xbd,0x1b,0xc8,0xf4,
+  0xf,0xb3,0x36,0xb5,0xc2,0x59,0xed,0x26,0x65,0x55,0x3c,0xc9,0x4a,0x1,0x55,0x2b,
+  0x71,0xad,0x56,0x54,0x37,0x8a,0x37,0xcc,0xf8,0xe4,0x5,0xb2,0xb7,0x2e,0x53,0xa0,
+  0xbe,0x74,0x87,0x97,0xef,0x22,0x75,0x8d,0xd7,0x64,0x9,0xa0,0xee,0xe8,0x9f,0x3d,
+  0x7c,0x37,0x53,0xd4,0xb5,0xde,0x8,0x47,0x22,0x2,0xfe,0xa6,0x13,0x12,0x1b,0xba,
+  0x5b,0x60,0x29,0x98,0x5b,0xae,0xff,0x5,0x79,0x88,0xdc,0x2f,0xf,0x2c,0xc4,0xde,
+  0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/maemo/tietoopcom/resources/restore.png
+  0x0,0x0,0x9,0x8,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x30,0x0,0x0,0x0,0x30,0x8,0x6,0x0,0x0,0x0,0x57,0x2,0xf9,0x87,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,0x1,
+  0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd8,0xc,0x2,
+  0x8,0x24,0x16,0x56,0x6f,0x14,0x27,0x0,0x0,0x8,0x88,0x49,0x44,0x41,0x54,0x68,
+  0xde,0xed,0x59,0xdb,0x6e,0x1b,0x47,0x12,0xad,0xea,0x9e,0x9e,0x19,0x5e,0x86,0x23,
+  0xca,0xba,0x90,0xba,0x58,0x80,0x9,0x46,0x41,0x94,0x88,0x8e,0x42,0x29,0xab,0x37,
+  0xaf,0xbf,0x21,0x9,0xf2,0x17,0xfb,0xb,0xf9,0x9e,0xe4,0xf,0xd6,0x6f,0x6,0x12,
+  0x38,0x9,0x25,0x67,0x23,0x47,0x6b,0x4b,0xe6,0xda,0xb0,0x25,0x42,0xa2,0x24,0x5e,
+  0x44,0xce,0xc,0x67,0xa6,0xbb,0x6b,0x1f,0x4c,0xa,0x8c,0x93,0x28,0xb6,0x48,0x23,
+  0x36,0x90,0x2,0xe6,0x89,0x68,0xa2,0x4e,0x57,0xd5,0xa9,0xaa,0xd3,0x48,0x44,0x80,
+  0x88,0x30,0x8a,0x11,0x11,0xf3,0x3c,0x6f,0x46,0x6b,0xbd,0xa9,0xb5,0xbe,0x15,0x86,
+  0x61,0x21,0x8e,0xe3,0x96,0x61,0x18,0xbb,0xae,0xeb,0x56,0x2c,0xcb,0xfa,0x5,0x11,
+  0xeb,0x88,0x18,0xc3,0x98,0x8d,0xc1,0x3b,0x6e,0x63,0x1,0xf0,0xcd,0x37,0xdf,0x20,
+  0x22,0x1a,0xe9,0x74,0x3a,0x85,0x88,0xb3,0xd5,0x6a,0xf5,0xfd,0x3b,0x77,0xee,0x6c,
+  0xde,0xbd,0x7b,0xf7,0x9f,0xf5,0x7a,0xfd,0x36,0x0,0xdc,0x22,0xa2,0x9b,0x44,0x94,
+  0x1d,0x37,0x0,0x63,0x1c,0x7f,0xf2,0xf9,0xe7,0x9f,0x13,0x11,0x69,0x0,0xe8,0x31,
+  0xc6,0xbc,0xc7,0x8f,0x1f,0xeb,0xbb,0x77,0xef,0xce,0x24,0x93,0xc9,0xa4,0x61,0x18,
+  0x9,0xad,0x75,0x3e,0x93,0xc9,0xe4,0xb3,0xd9,0xac,0xad,0xb5,0xde,0x45,0xc4,0x6,
+  0x22,0xd2,0x5b,0x3,0x0,0x0,0x20,0x8,0x2,0x48,0x24,0x12,0x8a,0x31,0xa6,0x7c,
+  0xdf,0x87,0x5a,0xad,0x96,0xf2,0x7d,0xdf,0x55,0x4a,0x99,0xcd,0x66,0xd3,0x59,0x5d,
+  0x5d,0x4d,0xbd,0xf7,0xde,0x7b,0x19,0xc7,0x71,0x26,0x89,0xe8,0xa7,0xaf,0xbf,0xfe,
+  0xfa,0xe0,0x8b,0x2f,0xbe,0x50,0x6f,0x5,0x0,0x44,0xd4,0x44,0x14,0x11,0x51,0x8c,
+  0x88,0xda,0x30,0xc,0xd2,0x5a,0xc3,0xd1,0xd1,0x11,0x44,0x51,0x94,0xed,0x76,0xbb,
+  0xd4,0xe9,0x74,0x44,0xb7,0xdb,0x9d,0x5a,0x5a,0x5a,0xba,0x96,0xcb,0xe5,0xd2,0x9f,
+  0x7d,0xf6,0xd9,0x7d,0x22,0xaa,0x1,0x80,0x37,0x4a,0x71,0x8f,0x2d,0x2,0x44,0x44,
+  0x0,0x40,0x8c,0x31,0x1a,0xb0,0x9a,0xd6,0x1a,0x3c,0xcf,0xc3,0x6a,0xb5,0x9a,0xed,
+  0xf5,0x7a,0xf6,0xf1,0xf1,0x71,0x66,0x6d,0x6d,0xcd,0xdc,0xd8,0xd8,0x48,0x2c,0x2e,
+  0x2e,0xce,0x10,0xd1,0x6e,0x18,0x86,0x8f,0x88,0xe8,0xf0,0xaa,0x20,0xfe,0x10,0x80,
+  0xd6,0xda,0xf2,0x7d,0x3f,0x6b,0x18,0x86,0x6b,0x9a,0xa6,0x9,0x0,0x8,0x0,0xba,
+  0xff,0x5d,0xf8,0x8d,0x88,0x44,0x44,0x6,0x22,0x4e,0x10,0x51,0xde,0x34,0x4d,0x6e,
+  0x9a,0x66,0x84,0x88,0x5a,0x8,0x1,0x88,0x8,0x9d,0x4e,0x87,0x55,0xab,0xd5,0x64,
+  0xab,0xd5,0x42,0xdf,0xf7,0x8d,0x20,0x8,0xb2,0xab,0xab,0xab,0xb9,0xc5,0xc5,0xc5,
+  0x99,0x6c,0x36,0x9b,0x26,0xa2,0x84,0xd6,0xfa,0x19,0x63,0xcc,0x1b,0x1b,0x80,0x93,
+  0x93,0x93,0xac,0x10,0x62,0x43,0x4a,0xb9,0x12,0x86,0xe1,0x84,0x69,0x9a,0xdc,0x30,
+  0xc,0xc5,0x18,0xa3,0x97,0x6f,0x5e,0x6b,0xcd,0x18,0x63,0x2,0x11,0x6d,0x0,0xc8,
+  0xc4,0x71,0x2c,0xb5,0xd6,0xaa,0x9f,0x5e,0xc0,0x18,0x3,0xa5,0x14,0x36,0x9b,0xcd,
+  0xc4,0xce,0xce,0x8e,0x79,0x7a,0x7a,0x9a,0x3a,0x3c,0x3c,0x14,0x9b,0x9b,0x9b,0xbc,
+  0x54,0x2a,0x39,0x8e,0xe3,0xcc,0x31,0xc6,0x7e,0x20,0xa2,0x1d,0x44,0xf4,0xc7,0x2,
+  0xc0,0xb6,0xed,0xc,0x11,0xad,0x70,0xce,0x37,0xc3,0x30,0x74,0x9f,0x3c,0x79,0x92,
+  0x3c,0x38,0x38,0xb0,0xdb,0xed,0xb6,0xf8,0xa3,0xa0,0x99,0xa6,0x19,0x6,0x41,0xa0,
+  0x7f,0xfe,0xf9,0x67,0xb7,0xd7,0xeb,0x31,0xc3,0x30,0x80,0x31,0x6,0x8c,0x31,0x20,
+  0x22,0x90,0x52,0xe2,0xc9,0xc9,0x89,0xd1,0x6a,0xb5,0x92,0x9d,0x4e,0x67,0xd6,0xf7,
+  0x7d,0xd1,0x6e,0xb7,0xb3,0xc5,0x62,0x71,0x7a,0x61,0x61,0x21,0x91,0x4e,0xa7,0x53,
+  0x5a,0xeb,0x3d,0x0,0x38,0x63,0x8c,0x5,0xa3,0x2,0x30,0xa3,0x28,0x9a,0x90,0x52,
+  0x66,0xe,0xf,0xf,0xed,0x6f,0xbf,0xfd,0x36,0xb3,0xb5,0xb5,0x35,0x53,0xaf,0xd7,
+  0x53,0x5a,0x6b,0x6,0x0,0x30,0x1c,0x8d,0x7e,0xd,0x48,0xa5,0x94,0xf6,0x7d,0x9f,
+  0xf7,0x7a,0x3d,0x31,0x48,0xa1,0xe1,0x48,0x0,0x0,0x28,0xa5,0x58,0xad,0x56,0x4b,
+  0x7b,0x9e,0x67,0x9e,0x9e,0x9e,0x5a,0xa7,0xa7,0xa7,0x7c,0x7d,0x7d,0x3d,0x31,0x3f,
+  0x3f,0x3f,0xe7,0xba,0xee,0x7d,0xa5,0xd4,0xf6,0xf1,0xf1,0xf1,0x93,0xd9,0xd9,0xd9,
+  0xee,0x95,0x1,0x8,0x21,0x50,0x4a,0xc9,0x8f,0x8e,0x8e,0xec,0xed,0xed,0xed,0xf4,
+  0xbd,0x7b,0xf7,0x32,0xf,0x1f,0x3e,0x74,0xce,0xcf,0xcf,0xf9,0xb0,0x53,0x2f,0xa5,
+  0x93,0x40,0x44,0xe0,0x9c,0x83,0x10,0xe2,0xe2,0xe6,0x87,0xd8,0xa,0x38,0xe7,0x40,
+  0x44,0x10,0x86,0x21,0xd4,0xeb,0x75,0x33,0x8a,0xa2,0x6c,0x10,0x4,0xbc,0xd5,0x6a,
+  0x4d,0x2e,0x2f,0x2f,0xcf,0x16,0xa,0x85,0x89,0x7c,0x3e,0x9f,0x99,0x9e,0x9e,0x9e,
+  0x69,0xb5,0x5a,0x4f,0x33,0x99,0x4c,0xed,0xb2,0x68,0x5c,0xc6,0x42,0xda,0x34,0x4d,
+  0x55,0xab,0xd5,0xac,0x9d,0x9d,0x9d,0xc9,0xe7,0xcf,0x9f,0xbb,0x52,0x4a,0x36,0xb8,
+  0xd5,0xcb,0xe6,0xa7,0xc1,0xef,0xc3,0xce,0xbf,0x6c,0x9c,0x73,0x0,0x0,0x38,0x3f,
+  0x3f,0x37,0x77,0x77,0x77,0xaf,0x35,0x1a,0x8d,0x44,0xb3,0xd9,0x44,0x21,0x4,0x4c,
+  0x4f,0x4f,0xdb,0x0,0x30,0x25,0x84,0x48,0x9d,0x9d,0x9d,0x5,0x0,0x70,0x35,0x0,
+  0x0,0x40,0x8d,0x46,0xc3,0x3c,0x38,0x38,0x70,0xcf,0xce,0xce,0x12,0x88,0x8,0xc3,
+  0x69,0x31,0x42,0xdf,0xb8,0x0,0x18,0x86,0x21,0x4,0x41,0x80,0x5a,0x6b,0x3e,0x33,
+  0x33,0x93,0xf0,0x3c,0x6f,0x52,0x6b,0x1d,0x3,0x80,0x4f,0x44,0xcf,0xd2,0xe9,0xb4,
+  0x75,0xe5,0x3e,0xc0,0x18,0x83,0x28,0x8a,0x78,0x10,0x4,0x42,0x4a,0xf9,0x1b,0xe7,
+  0x89,0x8,0xb4,0xd6,0xbf,0xb9,0xe9,0x41,0xaa,0x5c,0xd2,0x33,0x2e,0xce,0x98,0xa6,
+  0x9,0x96,0x65,0x51,0x2e,0x97,0x53,0xb9,0x5c,0x2e,0x48,0xa5,0x52,0xd,0xc6,0xd8,
+  0x1,0x0,0x3c,0x47,0xc4,0x93,0x6e,0xb7,0x1b,0x8e,0xd4,0xc8,0x6,0x4e,0x6a,0xad,
+  0x7f,0xe3,0x24,0x11,0x81,0x52,0xa,0x94,0x52,0x17,0xe,0xd,0x9c,0x1f,0x66,0x9f,
+  0xdf,0x33,0xa5,0x5e,0x4c,0x11,0x13,0x13,0x13,0x51,0xa1,0x50,0x38,0xff,0xe8,0xa3,
+  0x8f,0xba,0xcb,0xcb,0xcb,0xf5,0xeb,0xd7,0xaf,0xff,0xd7,0x30,0x8c,0x2d,0x0,0xd8,
+  0x8d,0xe3,0xf8,0xe9,0xb5,0x6b,0xd7,0x9a,0x23,0x1,0x18,0xb0,0xc7,0x80,0x41,0x86,
+  0x41,0x9,0x21,0xb4,0xeb,0xba,0x51,0x32,0x99,0x54,0x8c,0x31,0xde,0x6f,0x80,0xca,
+  0xf7,0x7d,0xde,0xed,0x76,0x4d,0x29,0x25,0xfb,0xbd,0x73,0x0,0x0,0x96,0x65,0xc1,
+  0xc4,0xc4,0x44,0xb8,0xbc,0xbc,0xdc,0x2c,0x97,0xcb,0xb5,0x4f,0x3e,0xf9,0xe4,0x70,
+  0x7e,0x7e,0xbe,0xea,0xba,0xee,0x7d,0xc6,0xd8,0xf6,0xc9,0xc9,0xc9,0xd3,0x91,0x58,
+  0xe8,0xcf,0xa2,0x22,0xa5,0x84,0x4c,0x26,0x13,0xad,0xaf,0xaf,0x1f,0xde,0xbc,0x79,
+  0xb3,0x6d,0x9a,0x26,0x47,0x44,0xea,0xf5,0x7a,0xba,0x52,0xa9,0x64,0x2b,0x95,0xca,
+  0x5c,0xab,0xd5,0xb2,0x6,0xbd,0x60,0x38,0x92,0x42,0x8,0x3d,0x37,0x37,0xe7,0x97,
+  0x4a,0xa5,0x46,0xb9,0x5c,0x3e,0x2e,0x16,0x8b,0x4f,0x16,0x16,0x16,0xb6,0xd2,0xe9,
+  0x74,0x5,0x0,0xf6,0x0,0xe0,0x6c,0x76,0x76,0x76,0xb4,0x3e,0x70,0x99,0x69,0xad,
+  0x41,0x4a,0x9,0xa9,0x54,0x4a,0x7d,0xfc,0xf1,0xc7,0xad,0x2f,0xbf,0xfc,0xf2,0x21,
+  0x0,0xc,0x42,0x3d,0x15,0x45,0xd1,0xfb,0xf,0x1e,0x3c,0xc8,0x49,0x29,0x2f,0x9c,
+  0x27,0x22,0x10,0x42,0x90,0xeb,0xba,0x2a,0x9f,0xcf,0xf7,0x3e,0xfc,0xf0,0xc3,0xe3,
+  0xcd,0xcd,0xcd,0x6a,0xa9,0x54,0xda,0x77,0x1c,0xe7,0x11,0x63,0xec,0x7,0x44,0x1c,
+  0x5f,0x27,0x7e,0xa5,0x6d,0x88,0x31,0xce,0x5f,0x54,0xeb,0x9,0x0,0xfc,0xd8,0x5f,
+  0x90,0xfe,0x21,0x84,0x30,0x6,0x29,0x35,0x94,0x6e,0x94,0xcd,0x66,0xfd,0x95,0x95,
+  0x95,0x4e,0xb9,0x5c,0x6e,0xae,0xae,0xae,0x3e,0xb9,0x7e,0xfd,0xfa,0x7f,0x5c,0xd7,
+  0xad,0x20,0xe2,0x2e,0x11,0x3d,0x7f,0x5d,0xe7,0x47,0x2,0xd0,0x67,0x23,0x16,0xc7,
+  0xb1,0x49,0x44,0x21,0x22,0x3e,0x7,0x0,0x23,0xc,0xc3,0x38,0x8a,0x22,0x93,0x88,
+  0x58,0x1c,0xc7,0x60,0x18,0x6,0x38,0x8e,0xa3,0xe7,0xe7,0xe7,0x83,0x62,0xb1,0xd8,
+  0x5a,0x5b,0x5b,0x7b,0xb6,0xb1,0xb1,0xf1,0x70,0x71,0x71,0x71,0x7,0x0,0x76,0xc3,
+  0x30,0x7c,0x64,0xdb,0xf6,0x21,0x63,0x6c,0xbc,0xd3,0xe8,0x55,0x30,0xd,0xd7,0xc8,
+  0x80,0x86,0x53,0xa9,0x14,0x15,0xa,0x85,0x66,0xb9,0x5c,0xae,0x97,0x4a,0xa5,0xfa,
+  0xd2,0xd2,0xd2,0x2f,0xd3,0xd3,0xd3,0xdf,0x1,0xc0,0x7d,0x44,0xac,0xd9,0xb6,0xfd,
+  0xd7,0xed,0x3,0x43,0x14,0xc9,0x10,0xd1,0x24,0x22,0x4e,0x44,0x4c,0x4a,0x89,0x8c,
+  0x31,0xc8,0xe5,0x72,0xb0,0xb2,0xb2,0xd2,0x5c,0x5f,0x5f,0x3f,0x2c,0x95,0x4a,0x7b,
+  0xc5,0x62,0x71,0xd7,0x71,0x9c,0x2d,0x44,0xfc,0x9,0x0,0xe,0x10,0x51,0xbf,0x35,
+  0x2b,0xe5,0x20,0xa,0x5a,0x6b,0xb4,0x6d,0x9b,0x72,0xb9,0x9c,0x97,0x4e,0xa7,0x83,
+  0xdb,0xb7,0x6f,0x57,0xd7,0xd6,0xd6,0xaa,0x99,0x4c,0x66,0xc7,0x71,0x9c,0xef,0x1,
+  0x60,0x17,0x0,0xde,0xbe,0x9d,0x78,0x10,0x9,0xad,0x35,0x2b,0x14,0xa,0x91,0xd6,
+  0xfa,0x28,0x95,0x4a,0x3d,0x2b,0x97,0xcb,0xdb,0xfd,0x7c,0xdf,0x43,0xc4,0xc7,0x88,
+  0xd8,0x7c,0xeb,0x54,0x89,0x7e,0x3a,0x61,0x10,0x4,0x6,0x11,0xc1,0xf2,0xf2,0xf2,
+  0xc9,0x8d,0x1b,0x37,0xea,0x9c,0xf3,0x1d,0xd7,0x75,0x7f,0x4,0x80,0x37,0x26,0x6c,
+  0x8d,0x3,0x0,0x69,0xad,0x19,0xe7,0x9c,0x2b,0xa5,0xc,0x44,0x8c,0x53,0xa9,0x54,
+  0xd5,0xb2,0xac,0xa,0x63,0x6c,0x1b,0x0,0x9e,0xf6,0x65,0x14,0x5,0x6f,0xc0,0x46,
+  0x2,0xd0,0xa7,0xd2,0x1,0xfb,0xc4,0x0,0x70,0xa6,0xb5,0xde,0x7,0x80,0x48,0x29,
+  0xf5,0x3d,0xe7,0x7c,0x1f,0x11,0x7b,0x6f,0x52,0x99,0x33,0xc6,0x40,0x9d,0x8c,0x31,
+  0xa6,0x0,0xa0,0xed,0x38,0xce,0xd3,0xf3,0xf3,0xf3,0x9a,0xd6,0x5a,0xb,0x21,0x6a,
+  0x6f,0xda,0xf9,0x71,0x44,0x0,0xf1,0x45,0x18,0x8,0x0,0x7c,0x44,0x3c,0x5,0x80,
+  0xd3,0x77,0x4e,0x1b,0x7d,0xe7,0xc5,0xdd,0x77,0x1a,0x40,0x5f,0x89,0xa3,0xbf,0xa,
+  0xc0,0x48,0x35,0x20,0xa5,0xc,0xc3,0x30,0xc,0xa4,0x94,0x37,0xc,0xc3,0xf8,0x57,
+  0xbb,0xdd,0x96,0x5a,0x6b,0x1c,0x9e,0x8b,0x5e,0xe3,0x22,0x93,0x0,0xd0,0x60,0x8c,
+  0xdd,0xc9,0x64,0x32,0xff,0x46,0xc4,0x68,0x2c,0x0,0x6,0xb3,0xfc,0xf0,0x6a,0xc8,
+  0x18,0x3,0xce,0x39,0x78,0x9e,0x67,0x54,0x2a,0x95,0x49,0xcf,0xf3,0x56,0x2c,0xcb,
+  0x12,0x51,0x14,0xd9,0x83,0x63,0xaf,0xea,0x79,0x14,0x45,0xcc,0xb2,0x2c,0x28,0x16,
+  0x8b,0xf0,0xc1,0x7,0x1f,0x3c,0xca,0xe5,0x72,0x5b,0x44,0x84,0x6f,0x34,0x2,0x8c,
+  0x31,0x10,0x42,0x80,0xef,0xfb,0xe6,0xf6,0xf6,0xf6,0xdc,0x83,0x7,0xf,0x88,0x73,
+  0xce,0x5e,0x37,0x25,0xfb,0xaa,0x4,0x4b,0x26,0x93,0x70,0xeb,0xd6,0xad,0xd6,0xe2,
+  0xe2,0xa2,0xcc,0xe5,0x72,0xe1,0xeb,0xa4,0xa4,0x31,0x42,0xee,0x83,0x52,0xa,0xdb,
+  0xed,0xb6,0x18,0x2c,0xf5,0xaf,0x2b,0xb7,0x10,0x11,0xf4,0x7a,0x3d,0x48,0xa5,0x52,
+  0xd0,0x68,0x34,0xb4,0x94,0x32,0x6,0x0,0x39,0xae,0x1a,0x18,0x4c,0x96,0x3a,0x9d,
+  0x4e,0x47,0xa6,0x69,0x1a,0x83,0x75,0x72,0xb0,0x26,0x32,0xc6,0xc0,0x34,0xcd,0x4b,
+  0x5,0xac,0x57,0x19,0xc7,0x6d,0xdb,0x6,0x21,0xc4,0xd8,0x59,0x8,0xb5,0xd6,0x38,
+  0x39,0x39,0x19,0xe5,0xf3,0xf9,0x8e,0xeb,0xba,0x41,0xbf,0x70,0x7f,0x25,0xb1,0xc,
+  0xab,0x16,0xa3,0x7c,0x7f,0xa6,0xf6,0x5d,0x29,0x2,0x52,0x4a,0xcc,0xe7,0xf3,0xbd,
+  0x52,0xa9,0xd4,0xe8,0x74,0x3a,0x6a,0x6f,0x6f,0xf,0x5b,0xad,0x96,0x3d,0xd0,0x82,
+  0xc6,0x30,0xc1,0x42,0x1c,0xc7,0x10,0xc7,0xf1,0xaf,0xb4,0xa5,0xb1,0x0,0x88,0xe3,
+  0x98,0xb4,0xd6,0xe1,0xec,0xec,0xec,0x79,0xb9,0x5c,0x8e,0xa4,0x94,0x21,0x11,0xe1,
+  0xfe,0xfe,0x7e,0xb6,0xdd,0x6e,0xdb,0x51,0x14,0x8d,0xe3,0x7d,0xf9,0x42,0x18,0x7b,
+  0x59,0x38,0x1b,0x19,0x80,0xe7,0x79,0x1d,0xce,0xf9,0xff,0x1c,0xc7,0x99,0x2a,0x14,
+  0xa,0x79,0x0,0xe0,0xa6,0x69,0xb6,0xa7,0xa6,0xa6,0xf8,0xd1,0xd1,0x91,0xa,0x82,
+  0x40,0xc0,0x8b,0x17,0x9a,0x91,0x0,0xf4,0x7a,0x3d,0x23,0x99,0x4c,0xea,0xa5,0xa5,
+  0x25,0xb4,0x2c,0xcb,0x6,0x0,0x6b,0x2c,0x34,0x1a,0x4,0xc1,0x69,0x26,0x93,0xa9,
+  0x20,0x22,0x63,0x8c,0x95,0xf3,0xf9,0xbc,0xfd,0xe9,0xa7,0x9f,0xea,0x42,0xa1,0x70,
+  0xee,0x79,0x1e,0x8f,0xa2,0x68,0x2c,0x63,0x88,0x52,0xa,0xd,0xc3,0xc0,0xb9,0xb9,
+  0x39,0xe1,0xba,0x6e,0xd4,0x7f,0xed,0x79,0xf5,0x81,0xf2,0x32,0xfa,0xd3,0x5a,0x27,
+  0x5a,0xad,0x56,0x91,0x73,0x5e,0x12,0x42,0x2c,0x98,0xa6,0xc9,0xfb,0x8f,0x1a,0x7a,
+  0x9c,0xe3,0x83,0x52,0x8a,0x29,0xa5,0x92,0x61,0x18,0x76,0xa4,0x94,0xf7,0xb2,0xd9,
+  0xec,0x77,0xaf,0xba,0xbd,0xfd,0x99,0x3a,0x1d,0x68,0xad,0xf7,0x7d,0xdf,0xaf,0x23,
+  0xa2,0xdd,0x7f,0x9c,0x18,0xfb,0xec,0xc3,0x39,0x87,0x38,0x8e,0xd,0xa5,0x94,0x66,
+  0x8c,0xb5,0xbf,0xfa,0xea,0x2b,0xf5,0xda,0x5c,0xfc,0xf7,0x38,0xfd,0x37,0x80,0xab,
+  0xd9,0xff,0x1,0x9f,0x9d,0x96,0x85,0x8a,0x8f,0x6c,0x16,0x0,0x0,0x0,0x0,0x49,
+  0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/maemo/tietoopcom/resources/redframe.png
+  0x0,0x0,0x4,0xe2,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x44,0x0,0x0,0x0,0x44,0x8,0x6,0x0,0x0,0x0,0x38,0x13,0x93,0xb2,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0x16,0x25,0x0,0x0,0x16,0x25,0x1,
+  0x49,0x52,0x24,0xf0,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x3,0xb,
+  0xf,0xe,0xd,0x82,0x2a,0xc,0x98,0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x43,
+  0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x0,0x43,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x77,
+  0x69,0x74,0x68,0x20,0x47,0x49,0x4d,0x50,0x57,0x81,0xe,0x17,0x0,0x0,0x4,0x3d,
+  0x49,0x44,0x41,0x54,0x78,0xda,0xed,0x9c,0x3f,0x93,0xdc,0x44,0x10,0xc5,0x7f,0x4f,
+  0x9e,0xfb,0x93,0x38,0xc3,0x24,0x7c,0x6,0xe3,0x8c,0xba,0x2a,0x2,0xa7,0x14,0x9f,
+  0x98,0x90,0x3,0x4c,0x39,0x27,0x73,0x42,0x2,0x81,0xcb,0x8e,0x8,0xc0,0x2e,0xfb,
+  0xd4,0x4,0x9a,0x91,0x7a,0x47,0x23,0xed,0x4a,0x7,0x55,0xab,0xd5,0x28,0x39,0xed,
+  0x69,0x56,0x3b,0xf3,0xf4,0xfa,0x75,0xf7,0xcc,0xb4,0x74,0xf,0x0,0xd,0xf0,0xdc,
+  0xe0,0xce,0xe0,0x99,0x40,0x2,0x63,0xa3,0x47,0xde,0x71,0x15,0xae,0xb,0x1a,0x83,
+  0xcf,0x6,0x6f,0x5,0xaf,0x4,0x6f,0xc,0x5a,0xfd,0xd8,0x81,0xf1,0x9d,0xe0,0x85,
+  0xc1,0x27,0xc0,0x34,0x7c,0x69,0x93,0x60,0x28,0x3,0x46,0x33,0xed,0xac,0xfb,0x73,
+  0x2d,0xf8,0x5,0xf8,0x39,0x0,0xcf,0x81,0x17,0xc0,0x5f,0x40,0x3b,0xb4,0xdb,0x30,
+  0x45,0x32,0x30,0x4a,0xe3,0xd0,0xe1,0xf9,0xdf,0x6,0xdf,0xa,0xfe,0x8,0xc0,0x9d,
+  0xe0,0x93,0x41,0x2b,0xf8,0x48,0x47,0xa3,0x86,0xd,0xb2,0xc4,0xf7,0xd7,0xb3,0x24,
+  0x67,0x8d,0x1b,0x93,0xc5,0xb1,0xde,0xd2,0x61,0x70,0x17,0x80,0x67,0xc0,0x3f,0x11,
+  0xc9,0x7,0xe0,0x43,0x2,0xb5,0xd9,0x18,0x2b,0x34,0x36,0x7,0x34,0x66,0x83,0x6f,
+  0x23,0x75,0x60,0x98,0xa0,0x35,0xf8,0x22,0x8,0x94,0x2e,0xc6,0x86,0xd6,0x44,0x50,
+  0xf2,0x1b,0x6f,0xd,0x18,0xcd,0x88,0x6d,0x1c,0xf7,0x8d,0x1c,0x8b,0x80,0x26,0x24,
+  0x11,0x4d,0xe3,0x8e,0xe7,0x2d,0x9d,0xf9,0xb4,0x5b,0x15,0xd7,0x23,0x66,0xa5,0x68,
+  0x26,0xd8,0x40,0x8,0x0,0x82,0x65,0x8d,0x9b,0xd8,0x48,0x1d,0x28,0x1f,0x22,0x38,
+  0x6c,0x51,0x53,0xf2,0x7e,0x6b,0x60,0xc6,0xad,0x1b,0xcb,0xc1,0xb0,0x42,0xc9,0x3d,
+  0xb9,0x41,0xf7,0xa0,0x6c,0xd1,0x7c,0x3c,0x10,0xc9,0x24,0x4,0x37,0x53,0x66,0xd6,
+  0x26,0x40,0x54,0x30,0x33,0x37,0xf0,0xd6,0xa,0xa0,0x6c,0x49,0x4b,0x18,0x82,0xcf,
+  0x9b,0x82,0xc7,0x39,0x18,0x52,0xf0,0x22,0x43,0x41,0x99,0xe3,0xe7,0xd6,0x3a,0x4d,
+  0x79,0x48,0xcd,0x6d,0x1b,0x60,0x98,0xd,0x60,0xdc,0x52,0xf0,0x3e,0x96,0x11,0x20,
+  0x70,0xe8,0x93,0x35,0x63,0xe,0xf,0x49,0x68,0xb5,0x2d,0x76,0x88,0x68,0x26,0x73,
+  0x26,0x9f,0xf4,0x33,0x4c,0x5,0x30,0x14,0x22,0x3d,0x39,0xf3,0xd1,0x99,0x6b,0x47,
+  0xca,0x57,0xbc,0x66,0xe4,0xe3,0xb3,0x42,0x0,0x17,0xe6,0x92,0xa0,0x9,0xd0,0xdb,
+  0x16,0x3e,0x6a,0x3,0x81,0x9b,0x75,0x39,0x4a,0x6f,0xe2,0x3a,0x21,0xc2,0xd,0x6b,
+  0x54,0xfb,0x9,0xf0,0x72,0x3,0x66,0x73,0x7f,0x24,0xc1,0x53,0xe1,0x7a,0xb3,0x4,
+  0x8c,0x4b,0x3d,0x94,0xe9,0xc8,0x6e,0x8f,0x92,0xa6,0xec,0x1a,0x10,0x15,0xd8,0xbf,
+  0x6b,0x40,0x12,0x1e,0xde,0x1d,0x57,0x40,0x32,0xc6,0xec,0x1e,0x10,0x73,0x32,0x62,
+  0x15,0x90,0x71,0xf8,0x5e,0x4d,0x26,0xcb,0x6d,0x2a,0x20,0x9d,0xa8,0xf6,0xc9,0xea,
+  0xee,0xe3,0x90,0x68,0x36,0xfd,0x2a,0x43,0xd8,0x33,0x20,0x4e,0x3f,0xb4,0x2a,0x97,
+  0xb9,0x60,0xa6,0xd8,0xde,0xdd,0xae,0x9f,0xc,0x3b,0xc8,0xfb,0x9a,0xfd,0x92,0xe2,
+  0x70,0xe,0x59,0xd5,0xed,0x96,0x13,0xbc,0x1a,0x98,0x65,0x9f,0x6b,0x1c,0x52,0x1,
+  0xa9,0x80,0x1c,0xd,0xcc,0xfc,0x51,0x3,0x33,0x1e,0x31,0xc9,0x7c,0xa1,0x1e,0xa6,
+  0xc7,0x63,0xf7,0xc9,0x9d,0xdb,0x52,0x65,0x35,0xfd,0x9f,0x70,0xbf,0x35,0xe,0x89,
+  0x4b,0xb8,0x35,0xfd,0x1f,0x74,0x44,0xc,0x9b,0x86,0xaa,0xa8,0xe6,0x4b,0x11,0xcd,
+  0xda,0x1b,0x5d,0x92,0xdb,0xd5,0x63,0x0,0xb9,0xb4,0x3d,0x67,0x49,0x43,0x16,0xbb,
+  0x5d,0xb9,0xcd,0x7a,0xba,0x50,0xd3,0x59,0x3a,0x85,0x98,0xa6,0xd9,0xac,0xbd,0x40,
+  0x4f,0xb3,0x6a,0xf5,0x3f,0x52,0x4b,0x97,0xc6,0x90,0x9a,0xcb,0xcc,0x38,0x89,0x1a,
+  0xa9,0x66,0xde,0xa6,0x2,0x92,0x81,0x52,0x1,0x71,0x2e,0xb7,0x2,0xc2,0xb8,0xa4,
+  0xa4,0x26,0x77,0xd9,0xe7,0x6a,0x32,0x6b,0x1,0xd9,0x6a,0x15,0xc4,0xff,0x1a,0x87,
+  0x9c,0xfb,0xc6,0xff,0x9f,0xe8,0x2a,0x1a,0x3e,0x3,0x57,0x8c,0xeb,0xee,0x74,0x42,
+  0xc6,0x1b,0x96,0x2,0x1e,0xcb,0x3b,0xaf,0xef,0xcf,0x10,0x90,0x94,0x52,0x5c,0xd,
+  0x3,0x4d,0xb5,0x83,0x36,0x51,0x73,0x37,0xda,0xbc,0xbb,0x34,0x52,0x55,0xdc,0x2e,
+  0xbd,0x89,0x6a,0x8,0x57,0x23,0x33,0xb7,0xa3,0xf9,0x20,0x61,0xd,0xa7,0xd0,0x22,
+  0xde,0xb0,0x49,0x35,0x6a,0xe7,0x2a,0x2b,0x5,0x16,0xa4,0xc9,0xe3,0xe6,0xc8,0xf8,
+  0xfa,0x7,0x1c,0x4e,0xf4,0xd1,0x7d,0xbd,0x49,0xa9,0xd2,0xf1,0xdc,0x62,0x8a,0xd2,
+  0xc4,0x4f,0xde,0xe5,0x89,0xba,0xa0,0x32,0x20,0x19,0xbd,0x1a,0x5f,0xbd,0xb8,0x36,
+  0xe8,0x29,0x95,0xa8,0x95,0x84,0xee,0xd8,0xf5,0x53,0x3d,0xe1,0xc4,0x79,0xe3,0x37,
+  0xc7,0x94,0x4a,0xeb,0x8e,0x31,0x44,0x38,0x30,0x96,0x76,0x74,0xea,0x47,0x97,0x56,
+  0x28,0x3c,0x96,0x31,0xf9,0x3,0xce,0xc0,0x92,0xb9,0xdd,0xcc,0x61,0x86,0x46,0xb2,
+  0x68,0x26,0x73,0xe8,0x3f,0xa2,0xa3,0xa3,0x92,0x7a,0xfd,0xc7,0x1e,0x7e,0x6,0xf0,
+  0x6,0xc6,0x55,0x99,0x89,0x21,0x2a,0xdc,0x40,0x6,0xb7,0x6b,0xa8,0x3b,0xc5,0xa4,
+  0x3c,0x67,0x28,0x31,0xc1,0xa6,0xc5,0x71,0xd5,0x6f,0x1e,0xb9,0x96,0xb6,0x55,0xc9,
+  0xaf,0xf1,0x6,0x5c,0x5,0x77,0xfa,0x4e,0xae,0x19,0x4b,0x3a,0x38,0x45,0x79,0xcd,
+  0x8,0xd9,0x1c,0x70,0xac,0x34,0xcd,0x92,0xc0,0xaa,0xc,0x4a,0xeb,0xa8,0xd8,0x6,
+  0x83,0x77,0x82,0xa7,0xce,0x3d,0x25,0x66,0xa8,0xf0,0xe4,0x46,0x63,0xf5,0x60,0x7a,
+  0x53,0xc8,0xd7,0x4d,0x5d,0xc7,0x47,0x8c,0x74,0x1d,0x9d,0x24,0x98,0xb9,0x77,0x9a,
+  0x4c,0x15,0x4b,0xaa,0x1c,0x9d,0xfa,0xbe,0xe4,0x6c,0x6c,0x5,0x4f,0x6c,0xc8,0xfc,
+  0xdf,0x7,0xe0,0x35,0xf0,0x7d,0xfc,0xc7,0xcd,0x9,0xf4,0x3c,0x78,0xd9,0xca,0x4,
+  0x23,0x64,0x13,0xda,0xa8,0xa1,0x74,0xb4,0xe4,0x61,0xbc,0xae,0xc8,0x83,0xec,0xbe,
+  0xd7,0x9f,0xcf,0x15,0x4d,0xfa,0xf7,0x83,0xa8,0xb0,0x5a,0xe0,0x41,0x8a,0x6d,0xae,
+  0x80,0xd7,0x1,0xf8,0xcd,0xe0,0x2b,0xe0,0xeb,0xf8,0xda,0x8c,0x7e,0x56,0xbd,0x44,
+  0xf3,0xec,0xe5,0x1,0x23,0x3d,0x98,0xa,0x94,0xe6,0x12,0x2f,0x3f,0x31,0x63,0x27,
+  0x98,0x52,0xbe,0xa8,0x64,0x47,0x42,0x7,0x9b,0xef,0xb7,0x4,0xd7,0xc0,0x2b,0xe0,
+  0xf7,0x10,0x69,0xf3,0x83,0xc1,0x9f,0x2d,0x7c,0x3,0x7c,0xe9,0x9f,0xc8,0xd4,0x1b,
+  0x16,0x1a,0x46,0x6f,0x5b,0x58,0xa4,0x39,0xa7,0x78,0xad,0x39,0x40,0x4f,0x11,0xe5,
+  0x63,0x31,0x49,0xcc,0x3,0xdf,0x2,0xbf,0x2,0x6f,0x0,0xfb,0x17,0xef,0x49,0x9c,
+  0x3e,0x89,0xa6,0xed,0x61,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,
+  0x82,
+    // /home/maemo/tietoopcom/resources/general.png
+  0x0,0x0,0x1b,0xbd,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x48,0x0,0x0,0x0,0x3e,0x8,0x6,0x0,0x0,0x0,0x88,0x96,0x5d,0x9b,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,0x1,
+  0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x3,0x2,
+  0xf,0x7,0x3a,0x96,0x5d,0x5d,0x54,0x0,0x0,0x1b,0x3d,0x49,0x44,0x41,0x54,0x78,
+  0xda,0xed,0x7b,0x59,0x6f,0x1c,0xe7,0xb9,0xe6,0x53,0xfb,0xd2,0xfb,0x42,0x76,0xb3,
+  0xb9,0x4b,0x24,0x25,0x59,0xa2,0xa5,0x58,0xa6,0x6d,0x25,0x1e,0x38,0xe,0x92,0x8b,
+  0xe4,0x22,0x48,0x6e,0x92,0xf3,0xb,0xce,0x6d,0x2e,0xe7,0xf,0x4,0xf9,0x13,0xb9,
+  0x3b,0x37,0xc1,0x49,0x70,0x32,0x83,0x9c,0x8b,0x24,0x90,0x6,0x48,0x2,0x5b,0x93,
+  0x28,0xb6,0x45,0x49,0x76,0xc4,0x88,0x16,0x29,0x91,0xec,0x7d,0xad,0xae,0x7d,0x9f,
+  0x8b,0xe6,0xf7,0xb9,0xba,0x45,0xca,0xf6,0x19,0xf,0x30,0x1,0xd2,0x40,0x3,0xec,
+  0x62,0x57,0x7d,0x55,0xef,0xf7,0x2e,0xcf,0xf3,0xbc,0x6f,0x3,0xff,0x7c,0xfd,0xf3,
+  0xf5,0xcf,0xd7,0x57,0xf8,0x8a,0xe3,0xf8,0x9f,0x46,0xf8,0x32,0x2f,0x26,0x8,0x2,
+  0xe6,0xe7,0x3f,0xff,0x39,0x77,0x70,0x70,0x90,0x6e,0x34,0x1a,0x7c,0xa7,0xd3,0x61,
+  0x58,0x96,0xfd,0xca,0x2d,0x9b,0x3c,0x3f,0x8a,0xa2,0xaf,0x6c,0x47,0xcf,0xfa,0x7f,
+  0x1c,0xc7,0x8,0xc3,0x10,0x51,0x14,0x81,0x65,0x59,0x4,0x41,0x80,0x20,0x8,0xc0,
+  0xb2,0x2c,0x38,0x8e,0x3,0xcb,0xb2,0xf4,0x7f,0xe4,0x59,0xe3,0x38,0xa6,0xe7,0xad,
+  0xad,0xad,0x31,0xeb,0xeb,0xeb,0xd1,0xf6,0xf6,0xb6,0xc1,0xfb,0xbe,0xaf,0x46,0x51,
+  0xb4,0x0,0xe0,0x5f,0x1,0x6c,0x0,0x60,0x1,0xc4,0xc,0xc3,0x7c,0x25,0xc6,0x61,
+  0x18,0xe6,0x85,0xf3,0x93,0xd7,0xfe,0xbf,0x75,0xf7,0xb3,0xae,0x4f,0x8e,0x27,0xdf,
+  0x2c,0xcb,0xd2,0xbf,0x93,0xf7,0x30,0xfb,0x9c,0xc,0xc3,0x30,0x41,0x10,0xc8,0x9e,
+  0xe7,0xb5,0xc3,0x30,0xfc,0x37,0xfe,0x67,0x3f,0xfb,0x99,0xda,0xed,0x76,0xe7,0x6c,
+  0xdb,0xfe,0x76,0x14,0x45,0x57,0xb3,0xd9,0xac,0x7f,0xba,0x68,0xfc,0xff,0x22,0x36,
+  0xbf,0xec,0x75,0xbe,0xc8,0xf7,0xcf,0x33,0x10,0x79,0xf1,0x3c,0xf,0x96,0x65,0xe1,
+  0xfb,0x3e,0xa2,0x28,0x42,0x1c,0xc7,0x60,0x59,0x16,0x71,0x1c,0x23,0x8a,0x22,0xfa,
+  0xdd,0x53,0x2f,0x62,0x44,0x51,0x54,0x2d,0xcb,0x3a,0x7e,0xf4,0xe8,0xd1,0xff,0xe6,
+  0x7f,0xf3,0x9b,0xdf,0x8,0xc5,0x62,0x51,0x91,0x65,0xb9,0x96,0x4e,0xa7,0xc5,0x6c,
+  0x36,0x2b,0x12,0x77,0xfb,0x47,0x49,0x58,0x67,0x79,0xa8,0xa2,0x28,0x90,0x24,0x9,
+  0xbe,0xef,0x43,0x55,0x55,0x28,0x8a,0x2,0xd7,0x75,0xe1,0x38,0xe,0xc2,0x30,0x84,
+  0x28,0x8a,0xb0,0x6d,0x1b,0x96,0x65,0xbd,0x70,0x2e,0xcb,0xb2,0x30,0xc,0x23,0x73,
+  0x7c,0x7c,0x9c,0xe7,0x1f,0x3d,0x7a,0xe4,0x5d,0xbb,0x76,0xcd,0xcf,0xe7,0xf3,0xa1,
+  0x24,0x49,0xd4,0x9a,0x51,0x14,0x4d,0xe5,0x8a,0xa4,0x7b,0xce,0x5e,0xec,0xff,0x27,
+  0x43,0x9d,0x86,0x9,0xe6,0xe6,0xe6,0x50,0xad,0x56,0x31,0x1a,0x8d,0x20,0xcb,0x32,
+  0x32,0x99,0xc,0x4,0x41,0x80,0xeb,0xba,0xf0,0x3c,0xf,0xa2,0x28,0xa2,0x5e,0xaf,
+  0xe3,0xf8,0xf8,0x18,0x61,0x18,0xd2,0x67,0x21,0x39,0xcb,0x71,0x9c,0xa8,0xd7,0xeb,
+  0x39,0x7c,0x2a,0x95,0x62,0x0,0x20,0x8,0x82,0x98,0x24,0xb6,0x28,0x8a,0x68,0x92,
+  0x23,0xbb,0x43,0x12,0x5c,0xd2,0x48,0x9e,0xe7,0xc1,0xf7,0x7d,0x4,0x41,0x30,0xb5,
+  0x8b,0x5f,0x26,0xc7,0xcc,0x7e,0xf7,0x3c,0xaf,0x3d,0xef,0x9a,0x67,0x1d,0x8f,0xe3,
+  0x18,0xb2,0x2c,0x23,0x8e,0x63,0x18,0x86,0x1,0x86,0x61,0x20,0xcb,0x32,0x54,0x55,
+  0x45,0x14,0x45,0x8,0x82,0x0,0xb2,0x2c,0xc3,0xb6,0xed,0x33,0xd,0x1c,0x86,0x21,
+  0x7c,0xdf,0x8f,0xa3,0x28,0x2,0xff,0xe3,0x1f,0xff,0x78,0xc3,0x34,0xcd,0x15,0xcb,
+  0xb2,0x4,0x45,0x51,0xc0,0xf3,0x3c,0x4d,0x7c,0x24,0x56,0x1,0x20,0xc,0x43,0x6a,
+  0x8,0x86,0x61,0x10,0x4,0x1,0x6c,0xdb,0x86,0x69,0x9a,0x53,0xc7,0xbf,0xac,0x91,
+  0xce,0x4a,0xac,0x9f,0x77,0xfe,0xcb,0x36,0x83,0xdc,0xfb,0xf1,0xf1,0x31,0xda,0xed,
+  0x36,0xbd,0x6f,0x0,0x50,0x14,0x85,0x3e,0xf,0xc7,0x71,0xf4,0x3d,0x93,0x83,0x20,
+  0x8,0x2,0xb2,0xd9,0x2c,0x9f,0x4a,0xa5,0x16,0xf9,0xd5,0xd5,0xd5,0xff,0xce,0xf3,
+  0x7c,0x36,0x9d,0x4e,0x67,0x48,0x4c,0xca,0xb2,0x4c,0x2d,0x9e,0x4e,0xa7,0x11,0x4,
+  0x1,0x3a,0x9d,0xe,0xf6,0xf6,0xf6,0x60,0xdb,0x36,0x18,0x86,0xa1,0xf1,0x1b,0xc7,
+  0x31,0x4a,0xa5,0x12,0x38,0x8e,0x3b,0xd3,0x23,0xce,0x7a,0xe0,0xe4,0xb1,0xa4,0x87,
+  0xf2,0x3c,0xf,0x51,0x14,0x21,0x8,0x2,0xad,0x3a,0x24,0xdc,0x49,0x42,0xd,0x82,
+  0x0,0xbe,0xef,0x23,0xc,0x43,0x7a,0x6e,0x32,0xb4,0x92,0x9f,0x67,0x3d,0x83,0xac,
+  0x13,0x86,0x21,0x6,0x83,0x1,0x24,0x49,0x42,0x36,0x9b,0x5,0xc7,0x71,0x74,0xd,
+  0x9e,0xe7,0x51,0xab,0xd5,0x50,0xad,0x56,0xd3,0x0,0xfe,0x85,0xf,0xc3,0x70,0x5b,
+  0x55,0x55,0xf1,0xca,0x95,0x2b,0x82,0xae,0xeb,0x38,0x39,0x39,0x41,0x1c,0xc7,0x50,
+  0x55,0x15,0xf9,0x7c,0x1e,0xf9,0x7c,0x1e,0xae,0xeb,0x52,0x63,0x90,0xac,0x6f,0x59,
+  0x16,0x38,0x8e,0xc3,0xca,0xca,0xa,0xbe,0xf1,0x8d,0x6f,0x20,0x9d,0x4e,0xc3,0x75,
+  0xdd,0xa9,0x7,0x4b,0x96,0xd6,0x97,0x79,0x57,0xb2,0xc,0x9b,0xa6,0x9,0xc3,0x30,
+  0xa6,0x42,0x97,0x60,0x17,0x9e,0xe7,0xa1,0x28,0xa,0x4d,0xc0,0xc4,0xc0,0x24,0x1d,
+  0x24,0xbd,0x2b,0x99,0x43,0xc9,0x7d,0x87,0x61,0x8,0x59,0x96,0x61,0x9a,0x26,0xde,
+  0x7b,0xef,0x3d,0x68,0x9a,0x46,0xd,0x4b,0x8c,0x48,0xc,0xb4,0xb1,0xb1,0xc1,0xb7,
+  0x5a,0xad,0x25,0xde,0x71,0x9c,0x20,0x95,0x4a,0xb1,0xa5,0x52,0x9,0x3c,0xcf,0xa3,
+  0xd5,0x6a,0x61,0x30,0x18,0xc0,0x75,0x5d,0x30,0xc,0x83,0x28,0x8a,0xe0,0x38,0xe,
+  0x34,0x4d,0x43,0x18,0x86,0x74,0x71,0xd7,0x75,0x51,0x28,0x14,0x70,0xe9,0xd2,0x25,
+  0xfc,0xf0,0x87,0x3f,0x44,0x2e,0x97,0x83,0x6d,0xdb,0x53,0x60,0xec,0xcb,0x26,0xf0,
+  0x4e,0xa7,0x83,0xa3,0xa3,0x23,0x34,0x9b,0x4d,0x9a,0x4c,0x1,0x20,0x95,0x4a,0x41,
+  0x96,0x65,0xa4,0x52,0x29,0x94,0xcb,0x65,0xcc,0xcf,0xcf,0xa3,0x50,0x28,0x7c,0xa9,
+  0x5c,0x47,0xc,0x24,0x8a,0x22,0x4c,0xd3,0xc4,0x70,0x38,0xc4,0x27,0x9f,0x7c,0x2,
+  0xc7,0x71,0xa6,0x3c,0x8f,0xe7,0x79,0xe4,0xf3,0x79,0xcc,0xcf,0xcf,0xa3,0xd3,0xe9,
+  0x80,0x7,0x10,0x2,0x88,0xe2,0x38,0x8e,0x1d,0xc7,0x41,0xaf,0xd7,0xc3,0xa7,0x9f,
+  0x7e,0x8a,0x38,0x8e,0x69,0xe6,0xf,0xc3,0x10,0xae,0xeb,0x52,0x34,0x4a,0x62,0x9a,
+  0xe4,0x26,0xd7,0x75,0xe1,0xfb,0x3e,0x6c,0xdb,0xa6,0x98,0x23,0x59,0x15,0x92,0x9f,
+  0xcf,0xa,0x39,0xd7,0x75,0xf1,0xf8,0xf1,0x63,0xfc,0xea,0x57,0xbf,0x42,0xaf,0xd7,
+  0x43,0x26,0x93,0x41,0xb9,0x5c,0xa6,0x1e,0xac,0x28,0xa,0x44,0x51,0x44,0x10,0x4,
+  0xe8,0x76,0xbb,0x68,0x36,0x9b,0xf0,0x3c,0xf,0x9e,0xe7,0xa1,0x5c,0x2e,0x63,0x79,
+  0x79,0x19,0xd5,0x6a,0x15,0x3c,0xcf,0xd3,0x6b,0x6,0x41,0x40,0xc3,0x30,0x59,0x78,
+  0x4,0x41,0xa0,0xa5,0xfe,0x2c,0x6f,0x26,0x9e,0x44,0x43,0x2e,0x8e,0xe3,0x28,0x8a,
+  0xa2,0x38,0x8,0x2,0x78,0x9e,0x47,0x73,0x8a,0x20,0x8,0x90,0x24,0x89,0x1e,0xcb,
+  0x66,0xb3,0x50,0x55,0x15,0x71,0x1c,0x63,0x30,0x18,0x60,0x38,0x1c,0xd2,0x45,0x9,
+  0x94,0x27,0x21,0xf1,0x32,0x3,0x11,0xaf,0x9a,0xfd,0xc,0x0,0xa6,0x69,0xc2,0x71,
+  0x1c,0x54,0xab,0x55,0x5c,0xb9,0x72,0x5,0xf3,0xf3,0xf3,0x50,0x14,0x5,0xe9,0x74,
+  0x9a,0xe6,0x8e,0x20,0x8,0xa0,0xeb,0x3a,0xa2,0x28,0x82,0xef,0xfb,0xe8,0xf5,0x7a,
+  0xd0,0x34,0xd,0x4f,0x9f,0x3e,0x45,0xb5,0x5a,0xc5,0xc2,0xc2,0x2,0xd2,0xe9,0x34,
+  0x35,0x12,0x31,0xe,0x9,0x45,0x52,0x79,0x5f,0x46,0x77,0x92,0x55,0x9c,0x27,0x17,
+  0x20,0xee,0x5c,0x2a,0x95,0xb0,0xb9,0xb9,0x89,0x4c,0x26,0x3,0x96,0x65,0x31,0x1c,
+  0xe,0x69,0x4e,0x2a,0x95,0x4a,0x8,0x82,0x0,0x4f,0x9f,0x3e,0xc5,0xc1,0xc1,0xc1,
+  0x14,0xc,0x38,0xb,0xda,0xbf,0xcc,0x7b,0x92,0x6e,0x2d,0x49,0x12,0xd6,0xd6,0xd6,
+  0xf0,0xee,0xbb,0xef,0xa2,0xd9,0x6c,0xa2,0x50,0x28,0xe0,0xed,0xb7,0xdf,0x46,0xa9,
+  0x54,0x3a,0xf3,0xe6,0x9,0xe0,0x73,0x1c,0x7,0xcf,0x9e,0x3d,0xc3,0xfe,0xfe,0x3e,
+  0x9a,0xcd,0x26,0xe6,0xe7,0xe7,0x71,0xed,0xda,0x35,0x5c,0xbe,0x7c,0x19,0xaa,0xaa,
+  0x82,0xe7,0x79,0xea,0xed,0x24,0x77,0xce,0x6e,0xca,0x6c,0x6e,0x4c,0xde,0x57,0x18,
+  0x86,0x13,0x3,0x9d,0x2,0x23,0x64,0x32,0x19,0x6c,0x6c,0x6c,0x80,0xe4,0x23,0xc7,
+  0x71,0xe8,0xc5,0xd3,0xe9,0x34,0x2a,0x95,0xa,0xad,0x60,0xb2,0x2c,0xc3,0xb2,0x2c,
+  0xba,0xf0,0xe7,0xbd,0xcf,0x2a,0xe9,0xc9,0x1b,0xcd,0xe7,0xf3,0x78,0xf7,0xdd,0x77,
+  0xf1,0xfe,0xfb,0xef,0xe3,0x6f,0x7f,0xfb,0x1b,0xde,0x7b,0xef,0x3d,0xec,0xec,0xec,
+  0xa0,0x56,0xab,0xbd,0x50,0xde,0x65,0x59,0x86,0x24,0x49,0x48,0xa5,0x52,0x48,0xa5,
+  0x52,0xa8,0x56,0xab,0x78,0xf2,0xe4,0x9,0xf6,0xf6,0xf6,0x70,0xe7,0xce,0x1d,0xc,
+  0x6,0x3,0x6c,0x6f,0x6f,0xd3,0x73,0x7d,0xdf,0x7f,0x29,0xe0,0x3d,0x2f,0x67,0x4d,
+  0x79,0x50,0x10,0x4,0x10,0x45,0x11,0x92,0x24,0x51,0x20,0x55,0x2c,0x16,0xa1,0x28,
+  0xa,0x0,0x40,0x10,0x4,0x70,0x1c,0x7,0xdf,0xf7,0xa7,0x2a,0xcb,0x79,0xe4,0x70,
+  0x16,0xd3,0xcc,0x7a,0x57,0x1c,0xc7,0xb4,0x52,0x91,0x5d,0x96,0x24,0x9,0x95,0x4a,
+  0x5,0xc7,0xc7,0xc7,0x78,0xf8,0xf0,0x21,0x5c,0xd7,0xc5,0xad,0x5b,0xb7,0xb0,0xb4,
+  0xb4,0x34,0x55,0xb1,0x18,0x86,0x1,0xc7,0x71,0x10,0x4,0x1,0xa2,0x28,0x42,0x96,
+  0x65,0x7a,0x6f,0x7f,0xff,0xfb,0xdf,0xf1,0xe8,0xd1,0x23,0x7a,0xcf,0xb9,0x5c,0xe,
+  0x3c,0xcf,0x4f,0x6d,0xe4,0x17,0x49,0xea,0x34,0xc4,0x92,0xbc,0xcb,0xf7,0x7d,0x18,
+  0x86,0x81,0x6e,0xb7,0x8b,0xa5,0xa5,0x25,0xac,0xae,0xae,0x22,0x95,0x4a,0x81,0xe7,
+  0x79,0x84,0x61,0x88,0x4e,0xa7,0x3,0x4d,0xd3,0x30,0x1a,0x8d,0xa8,0x91,0xce,0xf3,
+  0x94,0x24,0xd0,0x3c,0x8b,0x55,0x47,0x51,0x4,0xdb,0xb6,0x31,0x1a,0x8d,0x60,0x59,
+  0x16,0x82,0x20,0x0,0xc7,0x71,0x50,0x55,0x15,0x5b,0x5b,0x5b,0x38,0x3c,0x3c,0xc4,
+  0x9f,0xff,0xfc,0x67,0x8c,0x46,0x23,0x7c,0xef,0x7b,0xdf,0xc3,0xe2,0xe2,0x22,0x18,
+  0x86,0xa1,0x89,0x37,0x8,0x2,0xfa,0xe0,0x51,0x14,0xa1,0x52,0xa9,0x60,0x67,0x67,
+  0x7,0xf9,0x7c,0x1e,0xb7,0x6f,0xdf,0xc6,0x83,0x7,0xf,0x20,0x8,0x2,0x76,0x76,
+  0x76,0xa0,0xaa,0x2a,0x7c,0xdf,0x3f,0x77,0x43,0x67,0xc1,0xe7,0x94,0x7,0x25,0x41,
+  0x54,0x18,0x86,0x70,0x1c,0x7,0xe3,0xf1,0x18,0xb9,0x5c,0xe,0x9a,0xa6,0xa1,0xd5,
+  0x6a,0x41,0x14,0x45,0xa8,0xaa,0xa,0x5d,0xd7,0x61,0x59,0x16,0x2d,0xe7,0xc9,0x84,
+  0x7b,0xde,0xc2,0x64,0xa7,0x93,0xb,0x13,0x3d,0xc6,0xb6,0x6d,0xf4,0x7a,0x3d,0x98,
+  0xa6,0x49,0x71,0x13,0xf1,0x88,0xd7,0x5f,0x7f,0x1d,0xf7,0xef,0xdf,0xc7,0xdd,0xbb,
+  0x77,0x31,0x1c,0xe,0xf1,0xad,0x6f,0x7d,0xb,0x3b,0x3b,0x3b,0x90,0x65,0x99,0x56,
+  0xb0,0x64,0x4e,0xf1,0x3c,0xf,0x92,0x24,0xa1,0x56,0xab,0x61,0x7b,0x7b,0x1b,0x9f,
+  0x7e,0xfa,0x29,0x76,0x77,0x77,0xb1,0xbe,0xbe,0x8e,0x5a,0xad,0x6,0x9e,0xe7,0xe9,
+  0x39,0x5f,0x24,0xc4,0x28,0x2e,0x4a,0x7e,0x20,0x6e,0x45,0x28,0x87,0xe7,0x79,0xb4,
+  0x24,0x92,0x7,0x95,0x65,0x19,0xa2,0x28,0x7e,0xae,0x14,0x41,0xc2,0x80,0x20,0x5f,
+  0x8e,0xe3,0xc0,0xf3,0x3c,0x38,0x8e,0x9b,0x32,0x6,0x31,0x9e,0xe7,0x79,0x34,0xf4,
+  0x4,0x41,0xc0,0xd2,0xd2,0x12,0xc6,0xe3,0x31,0x74,0x5d,0xa7,0x21,0x3,0x0,0xaf,
+  0xbc,0xf2,0xa,0x14,0x45,0x99,0x42,0xc7,0x49,0x2f,0x90,0x65,0x19,0x17,0x2e,0x5c,
+  0x40,0xa7,0xd3,0x41,0xb3,0xd9,0xc4,0xf1,0xf1,0x31,0xd2,0xe9,0x34,0xf2,0xf9,0xfc,
+  0x54,0x2e,0x3a,0x2b,0xf4,0x49,0xd1,0x99,0x2a,0xf3,0xb3,0x24,0x8d,0x65,0x59,0x54,
+  0xab,0x55,0x5a,0xea,0x73,0xb9,0x1c,0x0,0x40,0x14,0x45,0x64,0x32,0x19,0x78,0x9e,
+  0x87,0xf1,0x78,0x4c,0xbf,0x7f,0x5e,0xf2,0x63,0x18,0x6,0x82,0x20,0x60,0x38,0x1c,
+  0xa2,0xdb,0xed,0xd2,0xf2,0xbd,0xb0,0xb0,0x40,0x35,0x9a,0x5c,0x2e,0x87,0x20,0x8,
+  0xc0,0x30,0xc,0x86,0xc3,0x21,0x3d,0x9f,0x0,0xba,0x2b,0x57,0xae,0x20,0x9d,0x4e,
+  0xe3,0xf6,0xed,0xdb,0xf8,0xe0,0x83,0xf,0xd0,0xef,0xf7,0xf1,0xa3,0x1f,0xfd,0x88,
+  0x56,0x29,0xcf,0xf3,0x10,0x45,0x11,0x35,0x3e,0xc1,0x6a,0x4,0xe8,0xd,0x87,0x43,
+  0x1c,0x1d,0x1d,0xa1,0x52,0xa9,0x60,0x6e,0x6e,0xe,0xae,0xeb,0x9e,0xeb,0xe9,0x67,
+  0x79,0x4f,0x1c,0xc7,0x60,0x93,0x49,0x3a,0x8,0x2,0x8,0x82,0x80,0xcd,0xcd,0x4d,
+  0xac,0xaf,0xaf,0x23,0x93,0xc9,0xc0,0x75,0x5d,0x98,0xa6,0x9,0x96,0x65,0xb1,0xb2,
+  0xb2,0x82,0xf5,0xf5,0x75,0x94,0x4a,0x25,0x6a,0xf1,0xf3,0x68,0x4,0xf1,0x20,0x4d,
+  0xd3,0xf0,0xfe,0xfb,0xef,0xe3,0xa7,0x3f,0xfd,0x29,0x7e,0xf1,0x8b,0x5f,0xa0,0xd3,
+  0xe9,0xd0,0xef,0xb2,0x2c,0x8b,0x42,0xa1,0x40,0x91,0x71,0x12,0xe0,0x79,0x9e,0x7,
+  0x8e,0xe3,0xb0,0xb0,0xb0,0x80,0x77,0xde,0x79,0x7,0xb5,0x5a,0xd,0x4f,0x9e,0x3c,
+  0xc1,0x2f,0x7f,0xf9,0x4b,0xfc,0xe9,0x4f,0x7f,0xc2,0x60,0x30,0xa0,0xeb,0x13,0xba,
+  0x40,0xc8,0x67,0x18,0x86,0x50,0x55,0x15,0x85,0x42,0x1,0x86,0x61,0xbc,0xc0,0xda,
+  0x5f,0x16,0x62,0x49,0xda,0x1,0x60,0x12,0x62,0xe4,0x1f,0x84,0x73,0xf5,0xfb,0x7d,
+  0xa,0xc8,0x46,0xa3,0x11,0x4d,0x88,0xbd,0x5e,0xf,0x61,0x18,0x42,0xd3,0x34,0x5a,
+  0x79,0xce,0x2b,0xe1,0xe4,0xb8,0x65,0x59,0x38,0x3a,0x3a,0xc2,0x47,0x1f,0x7d,0x4,
+  0x86,0x61,0x70,0xe9,0xd2,0x25,0xdc,0xb8,0x71,0x3,0xd5,0x6a,0x95,0xee,0x7c,0x3e,
+  0x9f,0xa7,0x89,0x57,0xd7,0xf5,0x29,0x75,0x40,0x14,0x45,0x5c,0xbc,0x78,0x11,0x86,
+  0x61,0xc0,0x34,0x4d,0xec,0xed,0xed,0x21,0x9d,0x4e,0xa3,0x54,0x2a,0xe1,0xd2,0xa5,
+  0x4b,0x10,0x4,0x81,0x26,0x54,0x42,0x73,0x48,0x15,0xce,0xe5,0x72,0xe8,0xf5,0x7a,
+  0x53,0x6,0x3a,0x8f,0x4c,0x9f,0xe7,0x41,0x34,0x7,0x71,0x1c,0x7,0xd7,0x75,0x71,
+  0x72,0x72,0x2,0xc3,0x30,0x90,0xcb,0xe5,0x20,0x8a,0x22,0xc6,0xe3,0x31,0xa2,0x28,
+  0x82,0xae,0xeb,0xe8,0x74,0x3a,0xf0,0x7d,0x1f,0xf5,0x7a,0x1d,0xb6,0x6d,0xbf,0x50,
+  0xea,0xcf,0x7a,0x11,0xd4,0x5a,0xad,0x56,0x61,0xdb,0x36,0x3e,0xfc,0xf0,0x43,0x44,
+  0x51,0x84,0x1b,0x37,0x6e,0x60,0x79,0x79,0x99,0x86,0x6f,0xb9,0x5c,0xa6,0x39,0x70,
+  0x34,0x1a,0x51,0xf0,0xca,0xb2,0x2c,0x24,0x49,0xc2,0xa5,0x4b,0x97,0xc0,0xf3,0x3c,
+  0x7e,0xff,0xfb,0xdf,0xa3,0xd9,0x6c,0xe2,0xe0,0xe0,0x80,0x56,0xd9,0x24,0x89,0x26,
+  0x88,0x5b,0x10,0x4,0xa8,0xaa,0x4a,0x65,0x19,0xc2,0x2d,0xcf,0x2a,0x28,0xb3,0xb9,
+  0x74,0xca,0x83,0xc2,0x30,0x4,0x79,0x13,0xe4,0xf9,0xf0,0xe1,0x43,0x0,0x31,0x52,
+  0xa9,0x14,0x54,0x45,0x1,0x73,0x5a,0x75,0x7c,0x3f,0x80,0xe7,0xb9,0xb4,0x9a,0x65,
+  0xb3,0xd9,0x33,0x77,0x80,0xb8,0x3b,0x49,0xbe,0x0,0xb0,0xb1,0xb1,0x81,0xd7,0x5e,
+  0x7b,0xd,0x57,0xaf,0x5e,0xc5,0xfd,0xfb,0xf7,0x31,0x1c,0xe,0xf1,0xc6,0x1b,0x6f,
+  0xe0,0xf2,0xe5,0xcb,0xb4,0xda,0x95,0x4a,0xa5,0x29,0x3a,0x41,0xc8,0xa3,0xe3,0x38,
+  0x50,0x55,0x15,0x2b,0x2b,0x2b,0x58,0x5b,0x5b,0x43,0x2a,0x95,0xa2,0x74,0x22,0x29,
+  0xf2,0x25,0x69,0x5,0xa1,0xb,0x24,0x57,0x26,0xf9,0xe3,0x17,0x11,0xe8,0xa8,0x7,
+  0x91,0x98,0x4f,0x8a,0xd7,0x9a,0xa6,0x21,0x9b,0xcd,0xa0,0x50,0xc8,0x43,0x96,0x64,
+  0xf8,0xa7,0xf9,0x89,0x30,0x76,0xdf,0xf7,0xa7,0x2c,0x3f,0x5b,0x51,0x8,0x7,0x22,
+  0xee,0xcf,0x71,0x1c,0xf2,0xf9,0x3c,0xb6,0xb6,0xb6,0x70,0xf3,0xe6,0x4d,0xf4,0x7a,
+  0x3d,0x74,0x3a,0x1d,0xfc,0xf5,0xaf,0x7f,0x85,0x28,0x8a,0x58,0x5e,0x5e,0xa6,0xdc,
+  0xaf,0x58,0x2c,0xd2,0x7,0x22,0xf8,0x48,0x10,0x4,0x7a,0xcd,0x5c,0x2e,0x47,0xe5,
+  0x54,0x92,0x6f,0x92,0x15,0x98,0x18,0x86,0x7c,0x26,0x58,0x8d,0x14,0xa0,0x2f,0xaa,
+  0x48,0x4e,0x19,0x88,0xc4,0x3c,0x59,0x2c,0x95,0x4a,0x61,0x7b,0x7b,0x1b,0x6f,0xbc,
+  0xb1,0x3,0xcb,0x9a,0x80,0x39,0xe2,0x5,0x86,0x61,0xe0,0xc1,0x83,0x87,0x68,0xb5,
+  0xda,0x2f,0xe8,0xd6,0x4,0x18,0x1a,0x86,0x1,0xc7,0x71,0x28,0x90,0x23,0x28,0x97,
+  0x65,0x59,0x94,0x4a,0x25,0x7c,0xff,0xfb,0xdf,0xc7,0xed,0xdb,0xb7,0x69,0x5e,0x7a,
+  0xf3,0xcd,0x37,0xb1,0xb9,0xb9,0x49,0xa5,0xd,0xe2,0xc9,0xed,0x76,0x9b,0x16,0x8,
+  0x4d,0xd3,0xd0,0x6e,0xb7,0xc1,0xb2,0x2c,0x2a,0x95,0xa,0x6a,0xb5,0x1a,0x35,0x10,
+  0xf1,0xa4,0xa4,0xa8,0x46,0x9e,0x89,0x30,0x80,0x2f,0xda,0x29,0x99,0x6d,0x58,0xf0,
+  0xc9,0xba,0x9f,0x4c,0x76,0xa2,0x28,0x22,0x95,0x4e,0x43,0x55,0xd3,0xc8,0x64,0xb3,
+  0x40,0x1c,0x23,0x9d,0x4e,0x23,0xc,0xa3,0x29,0x22,0x98,0xf4,0x22,0x12,0x5a,0xae,
+  0xeb,0xa2,0xdf,0xef,0xc3,0x75,0x5d,0xb4,0xdb,0x6d,0xd8,0xb6,0x3d,0xb5,0x68,0x3a,
+  0x9d,0xc6,0x5b,0x6f,0xbd,0x5,0x55,0x55,0x71,0xef,0xde,0x3d,0x68,0x9a,0x86,0xc1,
+  0x60,0x80,0x9b,0x37,0x6f,0x52,0x55,0x71,0x61,0x61,0x1,0xa2,0x28,0xa2,0xd5,0x6a,
+  0xa1,0xdb,0xed,0xe2,0xd9,0xb3,0x67,0x18,0x8f,0xc7,0xb8,0x78,0xf1,0x22,0xd6,0xd7,
+  0xd7,0x91,0x4a,0xa5,0x5e,0x8,0xa3,0xa4,0x27,0x9d,0x85,0xe1,0xce,0xd2,0xce,0x93,
+  0x91,0x90,0xac,0x60,0x49,0xb9,0xe3,0xcc,0xec,0x6d,0xdb,0x36,0xb4,0xd1,0x8,0x3c,
+  0x27,0xc0,0xf,0x7c,0xea,0x9,0x9a,0xa6,0xc1,0x34,0xcd,0xa9,0x12,0x3f,0xbb,0x28,
+  0x41,0xc9,0x96,0x65,0x61,0x30,0x18,0xc0,0x71,0x1c,0xba,0x28,0xc9,0x4b,0x73,0x73,
+  0x73,0xb8,0x71,0xe3,0x6,0xd5,0x77,0x1e,0x3e,0x7c,0x88,0x4c,0x26,0x83,0xb,0x17,
+  0x2e,0x50,0x71,0xcc,0x75,0x5d,0x84,0x61,0x88,0x7a,0xbd,0xe,0xc3,0x30,0x50,0x2c,
+  0x16,0xb1,0xb9,0xb9,0x89,0x4a,0xa5,0xf2,0x2,0x25,0x48,0xb2,0x76,0xdf,0xf7,0xe1,
+  0x79,0x1e,0xc5,0x58,0x84,0xb3,0x25,0xfb,0x62,0x67,0xb5,0x8a,0xce,0xb2,0x5,0x7f,
+  0x96,0x5b,0x45,0x51,0x8,0x43,0xd7,0xd1,0x69,0x77,0x10,0x45,0x11,0x2c,0xcb,0x42,
+  0x18,0x46,0x98,0xaf,0x54,0xa0,0xeb,0x3a,0xfa,0xfd,0x3e,0x7c,0xdf,0xa7,0x28,0xf8,
+  0x2c,0xfe,0x5,0x80,0x56,0xf,0x72,0x53,0x44,0x35,0x68,0xb7,0xdb,0x50,0x14,0x5,
+  0xf9,0x7c,0x1e,0x3f,0xf8,0xc1,0xf,0x70,0xef,0xde,0x3d,0xec,0xee,0xee,0xe2,0xee,
+  0xdd,0xbb,0xf0,0x7d,0x1f,0xd7,0xaf,0x5f,0x7,0x0,0x18,0x86,0x81,0x76,0xbb,0x8d,
+  0x76,0xbb,0x8d,0x5a,0xad,0x86,0xaf,0x7d,0xed,0x6b,0x58,0x59,0x59,0xa1,0x5e,0x4a,
+  0x28,0xb,0xc9,0xa3,0x44,0x5b,0x26,0xeb,0x92,0x24,0x2f,0x8a,0x22,0xd5,0xcc,0x67,
+  0x39,0xd7,0x17,0xa6,0x1a,0xc9,0xa,0xc0,0xf3,0x3c,0x2a,0xd5,0xa,0x36,0xb7,0x36,
+  0xe1,0x38,0x2e,0x4c,0xd3,0x2,0x62,0x60,0x71,0x69,0x11,0xba,0xae,0xc3,0xf3,0x3c,
+  0x7c,0xf2,0xc9,0x27,0xd4,0x65,0x93,0x2e,0x99,0xac,0x20,0xae,0xeb,0x42,0x10,0x4,
+  0x64,0x32,0x19,0x5a,0xf9,0x48,0xe2,0x1d,0x8d,0x46,0xf0,0x3c,0xf,0x95,0x4a,0x5,
+  0xd7,0xaf,0x5f,0x47,0x2a,0x95,0xc2,0x47,0x1f,0x7d,0x84,0xf7,0xdf,0x7f,0x1f,0x4f,
+  0x9e,0x3c,0x41,0xa1,0x50,0x80,0x69,0x9a,0xb0,0x2c,0xb,0x3b,0x3b,0x3b,0x58,0x5e,
+  0x5e,0xa6,0x9e,0x43,0x10,0x34,0x9,0xa7,0xa4,0x80,0xef,0x79,0x1e,0x46,0xa3,0x11,
+  0x5c,0xd7,0xa5,0x69,0xe0,0x2c,0x12,0xfd,0x79,0x79,0x68,0x2a,0xc4,0xce,0xaa,0x46,
+  0x51,0x74,0x6a,0x41,0x6e,0xb2,0x3,0xe4,0x7a,0xe7,0x75,0xc,0x66,0xdf,0x4,0xd,
+  0xcb,0xb2,0x8c,0x7c,0x3e,0x8f,0xc3,0xc3,0x43,0x8c,0xc7,0x63,0x58,0x96,0x5,0x41,
+  0x10,0x68,0x8,0x8a,0xa2,0x88,0x62,0xb1,0x88,0x57,0x5e,0x79,0x5,0xa3,0xd1,0x8,
+  0x87,0x87,0x87,0x68,0x34,0x1a,0xf0,0x7d,0x1f,0xa9,0x54,0xa,0xb5,0x5a,0xd,0x17,
+  0x2f,0x5e,0x44,0x36,0x9b,0x45,0x1c,0xc7,0x54,0x83,0x4a,0x96,0x78,0x92,0xff,0x4c,
+  0xd3,0xa4,0x21,0x4d,0x48,0x2f,0xd9,0x28,0xd2,0x41,0x3d,0xaf,0x97,0x7f,0x2e,0x50,
+  0x4c,0x26,0x2b,0x12,0x1a,0x9e,0xe7,0xa3,0x51,0x6f,0xe0,0xf1,0xdf,0x1e,0x53,0xb0,
+  0xe5,0x7,0x21,0x34,0x6d,0x84,0xe1,0x70,0x88,0xc3,0xc3,0x43,0xd8,0xb6,0xd,0x41,
+  0x10,0xa6,0x12,0x5b,0xd2,0xd0,0x24,0x9c,0x44,0x51,0x44,0x36,0x9b,0x85,0x6d,0xdb,
+  0xe8,0xf7,0xfb,0x18,0x8f,0xc7,0x28,0x97,0xcb,0x70,0xdd,0x9,0x9e,0x6a,0x36,0x9b,
+  0x88,0xa2,0x8,0x85,0x42,0x1,0xb7,0x6e,0xdd,0xc2,0xda,0xda,0x1a,0x7a,0xbd,0x1e,
+  0x52,0xa9,0x14,0x4a,0xa5,0x12,0x72,0xb9,0x1c,0xe2,0x38,0x86,0xe3,0x38,0x53,0x88,
+  0x38,0xe9,0xf5,0x84,0xb6,0xf4,0xfb,0x7d,0x34,0x1a,0xd,0x5a,0x2d,0x53,0xa9,0x14,
+  0x55,0x27,0x1a,0x8d,0x6,0xca,0xe5,0x32,0xd,0xb5,0x2f,0xda,0xa7,0xe3,0x93,0xc6,
+  0x89,0xa2,0x53,0x99,0x91,0xe7,0xb0,0xb4,0xbc,0x84,0x6b,0xd7,0xae,0xc1,0xb2,0x27,
+  0x1d,0xd,0x0,0xd8,0xda,0xda,0xa2,0x7a,0xf0,0xde,0xde,0xde,0xb,0x49,0x6f,0xf6,
+  0x1d,0x4,0x1,0x24,0x49,0x82,0x24,0x49,0x94,0xb8,0x9e,0x9c,0x9c,0x60,0x61,0x61,
+  0x1,0x8a,0xa2,0x50,0x7a,0x43,0x72,0x5a,0x2e,0x97,0xc3,0xc2,0xc2,0x2,0x4a,0xa5,
+  0x12,0x7d,0x70,0xdb,0xb6,0xa9,0x8e,0x9c,0x24,0xc7,0x24,0x21,0x93,0x3c,0x34,0x18,
+  0xc,0x4e,0x29,0x92,0x8f,0x6a,0x75,0x1,0x85,0x42,0x1,0x1c,0xc7,0x61,0x7e,0x7e,
+  0x1e,0xa6,0x69,0xe2,0xe9,0xd3,0xa7,0x94,0x70,0x27,0xcb,0xfe,0xac,0x47,0xcd,0x4a,
+  0xc8,0xfc,0xb4,0x90,0xf5,0x59,0xb9,0x16,0x4,0x1,0x8a,0xaa,0x82,0x61,0x3e,0xeb,
+  0x62,0x10,0x6f,0x22,0xa,0x1e,0x89,0xef,0x59,0xfd,0x99,0x80,0x3e,0xb2,0x38,0xc7,
+  0x71,0xa8,0x9c,0x26,0xf8,0x4f,0x3e,0xf9,0x4,0xd7,0xaf,0x5f,0x87,0xa2,0x28,0x90,
+  0x65,0x19,0xae,0xeb,0xc2,0x30,0xc,0x9a,0xcf,0x8,0xe,0x22,0x65,0x9a,0x74,0x4c,
+  0xce,0x6b,0x3e,0x92,0x6e,0xa,0x81,0x15,0x82,0x20,0x22,0xc,0x22,0x68,0x9a,0xe,
+  0x86,0x65,0xa0,0x28,0xea,0x29,0xe1,0x36,0xd0,0x6a,0xb5,0x28,0x2,0x7f,0x19,0xcd,
+  0x48,0x4a,0xc2,0x7c,0x92,0x79,0x13,0xd4,0x19,0x4,0x21,0x8e,0x8e,0x8e,0xf0,0x60,
+  0x77,0x17,0xc5,0x62,0x1,0x0,0x3,0xdf,0xf,0xb0,0xbb,0x7b,0x1f,0xfd,0xfe,0x0,
+  0x4f,0x9f,0x3e,0x9d,0xe2,0x62,0xc9,0x5e,0x18,0xc3,0x30,0x54,0x2f,0x26,0xa5,0x15,
+  0x0,0x2e,0x5c,0xb8,0x80,0xfb,0xf7,0xef,0xe3,0xc3,0xf,0x3f,0xc4,0x77,0xbe,0xf3,
+  0x1d,0x2c,0x2f,0x2f,0xa3,0x50,0x28,0xa0,0xd3,0xe9,0x50,0xcd,0xa8,0xd7,0xeb,0x61,
+  0x30,0x18,0x50,0x5d,0xe8,0xac,0x56,0x74,0xf2,0x38,0xcb,0xb2,0xa7,0x3d,0xae,0x1,
+  0xc,0x43,0x87,0x28,0x88,0x60,0x59,0x1,0x4f,0x9f,0x3e,0x87,0x69,0x5a,0x50,0x14,
+  0x9,0x17,0x2f,0xae,0x23,0x9b,0xc9,0xc2,0x95,0x24,0x9c,0x9c,0x1c,0x43,0x55,0x15,
+  0x64,0xb3,0xb9,0x73,0xa5,0x8e,0x59,0x8c,0x34,0xe5,0x41,0xc4,0x48,0x71,0x1c,0xa3,
+  0x5e,0xaf,0xc3,0x75,0x1c,0xa4,0x52,0x29,0x30,0x2c,0x8b,0x30,0x8,0x11,0x9e,0x96,
+  0x50,0xc2,0xe6,0x59,0x96,0x85,0x6d,0xdb,0x18,0x8f,0xc7,0xe0,0x38,0xe,0xa6,0x69,
+  0xd2,0x8e,0x3,0xc9,0x41,0xa6,0x69,0x82,0xe3,0x38,0xea,0x75,0xad,0x56,0xb,0x77,
+  0xef,0xde,0xa5,0x46,0x32,0x4d,0x13,0xe3,0xf1,0x98,0x8a,0x6a,0xb3,0x6d,0xa1,0xf3,
+  0xc8,0x65,0x52,0xfd,0x34,0xc,0x3,0xc,0x58,0xc,0x87,0x3a,0xc,0xdd,0x82,0xef,
+  0x7b,0x70,0x1d,0x7,0x96,0x65,0xc0,0x73,0x3d,0xac,0xae,0x2d,0x63,0xbe,0x52,0x46,
+  0x10,0xf8,0x18,0xc,0x86,0x68,0xb5,0xda,0x94,0x10,0x27,0x3b,0x1f,0x49,0xe9,0x84,
+  0xac,0x3b,0xe5,0x41,0x84,0xb3,0x4,0x41,0x40,0x6f,0x9c,0xe3,0xf8,0x29,0xeb,0xce,
+  0xca,0xa6,0x9d,0x4e,0x7,0xf7,0xee,0xdd,0xa3,0xad,0x67,0xa2,0x5f,0x6b,0x9a,0x86,
+  0x83,0x83,0x3,0x18,0x86,0x41,0x19,0xf9,0x68,0x34,0xc2,0x68,0x34,0xc2,0x1f,0xfe,
+  0xf0,0x7,0x54,0xab,0x55,0x2c,0x2e,0x2e,0xa2,0x54,0x2a,0x81,0x65,0x59,0x8c,0xc7,
+  0xe3,0xa9,0xf6,0xcc,0xec,0xdf,0x49,0x23,0x91,0xa,0x69,0x9a,0xe6,0xa4,0x6f,0x17,
+  0xc5,0xf0,0xbd,0x10,0xae,0xeb,0x23,0x6,0x50,0x9e,0x2b,0xc2,0xf3,0x5c,0xc,0x47,
+  0x1a,0x7a,0xbd,0x1e,0x38,0x9e,0x87,0x20,0x8a,0xc8,0x64,0x54,0x4,0x61,0x40,0xb5,
+  0x75,0xdf,0xf7,0x21,0x8a,0xe2,0x14,0x7f,0x23,0x58,0x8a,0x44,0x6,0x9f,0x9c,0xc2,
+  0x4a,0x8e,0xb4,0x4c,0x2a,0x4,0x8b,0x28,0xf2,0xcf,0x6c,0xd7,0x10,0x45,0xaf,0xd1,
+  0x68,0xe0,0xd7,0xbf,0xfe,0xf5,0xb,0x3b,0x1d,0x4,0x1,0xd5,0x62,0x48,0x1e,0xf2,
+  0x3c,0xf,0xae,0xeb,0xe2,0xde,0xbd,0x7b,0x98,0x9b,0x9b,0xc3,0xc2,0xc2,0x2,0x6e,
+  0xdc,0xb8,0x41,0x1b,0x92,0x4,0x23,0x25,0x7,0xd,0x66,0x43,0x81,0x78,0x26,0x41,
+  0xe7,0xb2,0x24,0x83,0x1,0x87,0x41,0xaf,0x85,0x4c,0x3a,0x8d,0xda,0x52,0x15,0xc5,
+  0x62,0x1e,0x96,0x65,0xa1,0xd1,0x68,0xe0,0xe9,0xd3,0x67,0xe8,0x74,0x3b,0x70,0x1c,
+  0x7,0xd7,0xaf,0x5f,0x43,0x2a,0xa3,0x42,0x94,0x44,0xca,0xd7,0x88,0x7,0x11,0xb0,
+  0x49,0xc2,0x9b,0xe7,0xf9,0xc9,0x9b,0x61,0x18,0x96,0xe3,0x38,0x46,0x51,0x14,0x64,
+  0xb3,0x59,0x94,0xcb,0x65,0x9a,0x13,0x78,0x9e,0x4b,0x54,0xa9,0x17,0xf5,0x66,0x49,
+  0x14,0xc1,0x9d,0x2e,0x90,0x24,0xad,0x24,0x81,0xa7,0x52,0x29,0xda,0xb5,0x48,0xaa,
+  0x7d,0xfd,0x7e,0x1f,0x1f,0x7d,0xf4,0x11,0xc2,0x30,0x84,0x6d,0xdb,0x78,0xe5,0x95,
+  0x57,0xb0,0xb2,0xb2,0x2,0x5d,0xd7,0x13,0x9b,0x13,0xbd,0x30,0xab,0x44,0x8c,0xc7,
+  0xf3,0x3c,0xe5,0x83,0xb6,0xe5,0xc0,0xb5,0x3c,0xcc,0x95,0xcb,0x58,0x5c,0xae,0x61,
+  0x71,0x79,0x1,0x41,0xe0,0x43,0x10,0x78,0x1a,0xd,0xc7,0xc7,0x75,0xe8,0x63,0x1d,
+  0x7b,0x7b,0x4f,0xb0,0xba,0xb6,0x8c,0x72,0xa9,0x8c,0xb7,0xde,0x7a,0xb,0xfb,0xfb,
+  0xfb,0x68,0x34,0x1a,0x74,0x92,0x85,0xe3,0x38,0x88,0xa2,0x88,0x52,0xa9,0x84,0x74,
+  0x3a,0xd,0x49,0x92,0xc0,0x87,0x61,0xc8,0x47,0x51,0xc4,0x31,0xc,0xc3,0x10,0x54,
+  0xbb,0xbc,0xbc,0x8c,0x20,0xf8,0x4c,0xd2,0x98,0xdc,0x28,0x9,0x31,0x0,0x88,0xc1,
+  0x71,0x13,0x2f,0x52,0x64,0x65,0x2,0x2a,0x91,0x60,0xc0,0x89,0x36,0xd1,0xd1,0xd1,
+  0x11,0x3a,0x9d,0xe,0xad,0x6e,0x71,0x1c,0xa3,0x58,0x2c,0xa2,0xd1,0x68,0x60,0x77,
+  0x77,0x17,0xd9,0x6c,0x16,0xc3,0xe1,0x8,0x9b,0x9b,0x9b,0xe0,0x79,0x6e,0xaa,0xf5,
+  0x3b,0xdb,0xd6,0x26,0x65,0x3e,0xd9,0x3c,0x8,0xfd,0x8,0xe,0xe7,0x40,0x55,0x54,
+  0x94,0x4a,0x45,0x14,0xb,0x79,0x68,0xba,0x8e,0x30,0x8c,0x91,0xcf,0x7d,0x36,0xe9,
+  0x71,0x12,0xd7,0x27,0xc3,0x8,0x3c,0x7,0x59,0x5a,0xc7,0xe6,0xc6,0x26,0xe2,0x38,
+  0xa6,0x7a,0x15,0x91,0x7e,0x55,0x55,0xc5,0xda,0xda,0x1a,0x54,0x55,0x9d,0x40,0x1e,
+  0xd7,0x75,0x63,0xdb,0xb6,0x63,0x5d,0xd7,0x71,0xe9,0xd2,0x25,0x6c,0x6c,0x6c,0x50,
+  0x92,0x18,0xc7,0x49,0x8c,0xf3,0x2,0xe6,0xa4,0xc7,0x67,0x4b,0xa5,0x28,0x8a,0x8,
+  0xc3,0x10,0xed,0x76,0x1b,0x92,0x24,0x4d,0x49,0x21,0x1c,0xc7,0x51,0xf1,0xbe,0xd1,
+  0x68,0xe0,0x8f,0x7f,0xfc,0x23,0xee,0xdf,0xdf,0xc5,0xc5,0x8b,0x17,0x70,0xe1,0xc2,
+  0x5,0xa4,0xd3,0xe9,0x17,0x3a,0xc,0x64,0x93,0x38,0x8e,0x43,0x36,0x9b,0xc5,0xdc,
+  0xdc,0x1c,0x8a,0xc5,0x22,0xa2,0x38,0x82,0x24,0x8b,0x50,0x53,0xa,0x3c,0xc7,0x87,
+  0x65,0x98,0xb0,0x4c,0x7,0x92,0x28,0x1,0x31,0x10,0x47,0x11,0xc0,0x4c,0xee,0x95,
+  0xe7,0x39,0x1c,0x3c,0x7d,0x8e,0x56,0xb3,0x3,0xc7,0x76,0x71,0xfd,0xc6,0x36,0x56,
+  0x57,0x57,0xa1,0x28,0x32,0x8e,0x8f,0x4f,0xb0,0xba,0xba,0x8a,0x1b,0x37,0x6e,0xa0,
+  0x58,0x2c,0x2,0x0,0x4e,0x4e,0x4e,0x30,0x1e,0x8f,0xc1,0x7b,0x9e,0xf7,0xbf,0x74,
+  0x5d,0x2f,0xfd,0xe5,0x2f,0x7f,0x59,0x6c,0x36,0x9b,0xa8,0x54,0x2a,0x53,0xbc,0xec,
+  0x3c,0x9c,0x90,0x1c,0x6c,0x3a,0xab,0x2b,0x49,0x46,0x66,0x9e,0x3f,0x7f,0x8e,0x7a,
+  0xbd,0x8e,0x20,0x8,0xc1,0x30,0x9f,0x4d,0x76,0x5,0x41,0x70,0xaa,0x1b,0x4d,0xaa,
+  0x60,0xa7,0xd3,0xc6,0xe3,0xc7,0x8f,0x21,0x49,0xd2,0x99,0x23,0xbb,0x34,0xac,0x4f,
+  0x87,0x9e,0x6a,0xb5,0x1a,0xae,0x5e,0xbd,0x8a,0xc5,0xc5,0x45,0xe4,0xa,0x39,0x68,
+  0x3,0xd,0xc6,0x58,0x47,0xaf,0xd5,0xc5,0xfc,0x62,0x65,0xd2,0x1a,0x2,0x0,0x6,
+  0x88,0xe2,0x88,0x2a,0xa2,0x8d,0x93,0x16,0x4c,0xc3,0xc0,0xc1,0xd3,0x43,0x2c,0x2d,
+  0xd5,0xb0,0xb0,0x50,0x3,0x30,0x1,0xac,0xf,0x1e,0x3c,0x40,0xb9,0x5c,0x86,0x6d,
+  0xdb,0x44,0x66,0x79,0xc8,0xbb,0xae,0xfb,0x3f,0x34,0x4d,0x5b,0x78,0xfc,0xf8,0xf1,
+  0x52,0xbb,0xdd,0xbe,0x90,0xcf,0xe7,0x13,0xcf,0x4a,0xc,0x44,0x6e,0x74,0x7a,0x9a,
+  0xeb,0x2c,0xc8,0x1e,0x45,0x11,0xc,0xc3,0xc0,0x78,0x3c,0xa6,0x65,0x78,0x3c,0x1e,
+  0xc3,0xf3,0x7c,0x0,0x9f,0x31,0xfd,0xe9,0xe,0xab,0x85,0x5e,0xaf,0x87,0xfa,0xc9,
+  0xc9,0xa4,0x8,0x24,0x30,0xd5,0x2c,0x8,0x25,0x21,0x5c,0xab,0xd5,0x98,0x28,0x8a,
+  0x78,0x41,0x10,0x32,0xb5,0x5a,0x4d,0x92,0x55,0x19,0xbe,0xe3,0x43,0x1b,0x6a,0xc8,
+  0x64,0x33,0x48,0xe5,0xd3,0x50,0x55,0x5,0xf1,0xec,0xec,0x0,0x18,0x34,0x1b,0x6d,
+  0x74,0xbb,0x3d,0x48,0xa2,0x4,0x59,0x51,0x30,0x3f,0x37,0x8f,0x46,0xb3,0x81,0xc3,
+  0xc3,0x43,0xec,0xef,0xef,0xc3,0xb6,0x6d,0xcb,0x34,0xcd,0x7d,0x4d,0xd3,0xfe,0x83,
+  0xff,0xdd,0xef,0x7e,0x77,0xfb,0xbb,0xdf,0xfd,0x6e,0xce,0xf3,0xbc,0xb1,0xae,0xeb,
+  0x97,0x8e,0x8f,0x8f,0x8b,0x0,0xa2,0xb3,0x88,0xe9,0xe7,0x4d,0x96,0x92,0x2a,0xd3,
+  0x6c,0x36,0xd1,0x6e,0xb7,0xc1,0x30,0x2c,0x24,0x89,0x3f,0x5,0x74,0x4,0x11,0x4f,
+  0xb7,0x8a,0x58,0x96,0x99,0x22,0xc7,0xb3,0x6b,0xce,0x96,0xf9,0xd3,0x12,0x1f,0x75,
+  0xbb,0x5d,0x3e,0xc,0xc3,0x12,0xcb,0xb2,0x6f,0x6,0x41,0x70,0x6d,0xfd,0xc2,0x3a,
+  0x24,0x51,0x84,0x63,0x3a,0xe8,0x77,0xfa,0x60,0x58,0x16,0xb9,0x52,0xe,0xa9,0x94,
+  0xa,0x8e,0x9b,0x18,0x97,0x63,0x39,0x0,0x93,0x5c,0x58,0xaf,0x37,0xd1,0xeb,0xf7,
+  0x11,0x45,0x11,0x2e,0x6e,0x5e,0xc0,0xf2,0xf2,0xa,0x0,0xe0,0x83,0xf,0x3e,0x40,
+  0xb7,0xdb,0xbd,0xef,0x38,0xce,0xbf,0x73,0x1c,0xf7,0xef,0x3c,0x0,0xfc,0xf6,0xb7,
+  0xbf,0xd5,0x6e,0xde,0xbc,0xf9,0x1e,0x80,0x47,0x71,0x1c,0x2b,0x0,0xe2,0xf3,0xc2,
+  0xe8,0x2c,0xd,0x37,0x29,0x9e,0x79,0x9e,0x87,0x67,0xcf,0x9e,0x51,0xf6,0x2c,0x8a,
+  0x2,0x52,0x29,0x15,0xba,0x6e,0x23,0x8,0xbc,0x17,0xce,0x15,0x4,0xee,0x74,0x26,
+  0x71,0x92,0xd8,0xc3,0x28,0x42,0x9c,0x58,0xf3,0x2c,0x11,0xb,0x40,0xdc,0xef,0xf7,
+  0x99,0x4f,0x3f,0xfd,0x94,0xbf,0x78,0xf1,0xe2,0x53,0x5e,0xe0,0xff,0x45,0x51,0x95,
+  0x6b,0xe5,0x52,0x99,0x55,0x32,0x2a,0x7c,0xdb,0xc7,0x78,0xa8,0x81,0x65,0x19,0xa4,
+  0x73,0x69,0x28,0x8a,0x8a,0x38,0x66,0xc0,0x30,0x9f,0x21,0xf4,0x18,0x31,0x6,0xbd,
+  0xd1,0x84,0xa6,0x74,0xfa,0x28,0xcd,0x15,0xb1,0xb4,0xb4,0xc,0xcb,0xb2,0xf0,0xfc,
+  0xf9,0x51,0xee,0xf9,0xf3,0xe7,0xf3,0xb6,0x6d,0x65,0xf8,0x6f,0x7f,0xfb,0xdb,0xb8,
+  0x73,0xe7,0xe,0x3e,0xfc,0xf0,0xc3,0x1e,0x80,0xde,0x57,0x3d,0xbb,0xec,0x79,0x3e,
+  0x3c,0x4f,0x7b,0x49,0x5b,0x28,0x84,0xef,0x87,0xff,0xa5,0x6b,0xd7,0xeb,0x75,0xdc,
+  0xbd,0x7b,0xd7,0x73,0x1c,0x27,0x93,0xcf,0xe7,0xe7,0xc0,0x30,0xb,0x73,0xa5,0xf9,
+  0xc8,0xb2,0xad,0xd8,0xb4,0x2c,0x18,0xa6,0x89,0x72,0x75,0xe,0x2c,0xcf,0xc2,0x71,
+  0xdc,0x9,0xaf,0xf3,0x2,0xb0,0x2c,0x8f,0x74,0x3a,0xd,0xc7,0x76,0x61,0x8c,0x4d,
+  0xf4,0x7b,0x43,0x8,0xa2,0x80,0x42,0xa9,0xc0,0xac,0xae,0xac,0xb1,0x61,0x18,0xd7,
+  0x6c,0xdb,0xbd,0x35,0x1e,0x8f,0x9e,0xf3,0xff,0xe8,0xbf,0xc6,0xd9,0xdb,0xdb,0xdb,
+  0xaf,0x56,0xab,0xff,0x73,0xff,0xc9,0xfe,0x8d,0x30,0x88,0x61,0xd5,0x3c,0xd1,0x77,
+  0xbd,0x38,0xf0,0x27,0x44,0x5a,0x6d,0x36,0xc1,0xf2,0x2c,0xe2,0x28,0x42,0x18,0x84,
+  0x88,0x22,0x22,0xe8,0x5,0x8,0x82,0x18,0x2c,0xc7,0xc3,0xb,0x7d,0xb4,0xda,0x5d,
+  0x8c,0xc6,0x3a,0x44,0x51,0x60,0x59,0x96,0x97,0xb,0x85,0xe2,0x75,0xdf,0xf7,0x2c,
+  0xfe,0xce,0x9d,0x3b,0xff,0xd0,0x6,0xba,0x75,0xeb,0x56,0xfe,0xca,0x95,0x2b,0xb9,
+  0x4a,0xa5,0xb2,0x9f,0xcf,0xe7,0x8c,0x94,0xaa,0xc0,0x63,0xb9,0x18,0x52,0xc,0x51,
+  0x92,0x90,0x2b,0xe6,0xc1,0x70,0xc,0x7c,0xdf,0x83,0xef,0xf9,0x8,0x83,0x0,0x7e,
+  0xe0,0xc3,0xb6,0x6c,0x78,0xde,0x44,0xe,0xe6,0x58,0xe,0xaa,0x2a,0x43,0x51,0x15,
+  0xc6,0xf5,0x5c,0xc6,0xf3,0x5c,0xd7,0x71,0xec,0x56,0x18,0x86,0xf7,0x79,0x0,0x78,
+  0xfb,0xed,0xb7,0x19,0x49,0x92,0x4,0x86,0x61,0x78,0x86,0x61,0xd8,0xd3,0x38,0x8d,
+  0x93,0xc3,0x4,0xe7,0xcd,0xf4,0xcd,0xe6,0x24,0xdf,0xf7,0x51,0x3f,0x3e,0x46,0xa7,
+  0xd9,0x84,0x24,0x49,0x10,0x65,0x19,0xe0,0x79,0xd8,0x96,0x35,0x35,0x1b,0x48,0x30,
+  0xd1,0x97,0xf9,0xf1,0xa,0x81,0x10,0xae,0xeb,0x42,0x92,0x24,0x94,0x4a,0x25,0xee,
+  0xcd,0x37,0xdf,0xbc,0xb0,0xb2,0xb2,0xb2,0x72,0xe5,0xca,0x95,0x93,0x62,0xb1,0x50,
+  0x97,0x4,0xc9,0xf,0xdd,0x28,0x4e,0xa5,0x52,0x28,0x96,0x8b,0x28,0x57,0x4a,0x8,
+  0xe3,0x10,0xba,0x61,0x4c,0x70,0x92,0x65,0x42,0xd3,0x34,0x34,0x9b,0x6d,0x44,0xa3,
+  0x10,0x88,0x81,0x42,0x3e,0x8b,0xf2,0x7c,0x99,0x65,0x38,0x86,0xd9,0xdf,0x7f,0x82,
+  0x7a,0xfd,0x79,0xf3,0xf1,0xe3,0xc7,0x7b,0x77,0xee,0xfc,0xfe,0x63,0xfe,0x74,0xb2,
+  0x4b,0xe4,0x38,0x6e,0x89,0x65,0xd9,0x22,0xcb,0xb2,0x4a,0x1c,0xc7,0x71,0xd2,0x40,
+  0x84,0x22,0x7c,0x91,0xb9,0x1a,0x32,0x29,0x46,0x90,0x2e,0x27,0x8,0x88,0x4f,0x31,
+  0xc,0x21,0x81,0xc4,0x40,0x5f,0x76,0x4c,0x38,0x1,0x2f,0xe2,0x5c,0x2e,0xc7,0xbc,
+  0xf6,0xda,0x6b,0xc2,0xf2,0xf2,0x72,0x69,0x6b,0x6b,0x8b,0x29,0xcf,0x95,0x87,0xb1,
+  0x1f,0xc2,0xd0,0xf4,0x38,0x9b,0xce,0x21,0x9d,0xcf,0x42,0xce,0xaa,0x18,0x1b,0x6,
+  0x1c,0xdb,0x86,0x69,0x1a,0xb0,0x2c,0x1b,0xc3,0xe1,0x8,0xed,0x76,0x17,0x8d,0x93,
+  0x26,0xa2,0x0,0x28,0x16,0xa,0x58,0x58,0x5a,0x80,0xed,0x5a,0x38,0xf8,0xfb,0x1,
+  0xf3,0xe0,0xc1,0x3,0xf4,0xfb,0x7d,0x93,0x61,0x58,0xff,0xeb,0x5f,0xff,0x6f,0x3c,
+  0xff,0xcd,0x6f,0x7e,0x73,0x4e,0x92,0x24,0x29,0x97,0xcb,0x2d,0x64,0x32,0x99,0x9c,
+  0xaa,0xaa,0xc2,0xa9,0x81,0x40,0xaa,0xd9,0xcb,0xd4,0xff,0xe4,0x84,0x5,0xa9,0x78,
+  0x8b,0x8b,0x8b,0x30,0x4e,0x25,0x8c,0xb1,0xae,0x63,0x7c,0x2a,0xf4,0x93,0x7,0x24,
+  0x86,0x22,0xcc,0x3c,0xe9,0x55,0xb3,0x12,0x7,0x39,0x9e,0x2c,0xf3,0x3c,0xcf,0xa3,
+  0x52,0xa9,0x30,0xdb,0xdb,0xdb,0xcc,0xf2,0xf2,0x32,0x8a,0xc5,0x92,0x16,0x5,0x71,
+  0x14,0x7a,0x41,0x2c,0x70,0x1c,0x72,0xc5,0x1c,0x94,0x8c,0x8a,0x30,0x8e,0x60,0x9f,
+  0xa,0xff,0xa6,0x69,0x62,0xac,0x8f,0xd1,0x6a,0xb5,0xd1,0x6c,0x76,0x61,0x5a,0xe,
+  0xe6,0xcb,0x65,0xcc,0x57,0x4b,0x70,0x3d,0x17,0xbd,0x6e,0xf,0xe3,0xb1,0x86,0x72,
+  0xb9,0xcc,0x64,0x32,0x99,0xd0,0xf7,0xfd,0x82,0xa6,0x69,0x35,0x5e,0x14,0xc5,0xb2,
+  0xa2,0x28,0xc2,0xc2,0xc2,0x42,0xaa,0x56,0xab,0xb1,0xe5,0x72,0x39,0x88,0xa2,0x90,
+  0xd2,0x88,0x97,0x89,0xdc,0xc9,0x5e,0xd7,0x2c,0x1c,0xf0,0x7d,0x1f,0x9a,0xa6,0xe1,
+  0xe8,0xe8,0x8,0xf5,0x7a,0x7d,0xca,0x28,0x49,0x19,0x83,0x70,0x21,0x32,0x1f,0x39,
+  0xfb,0x83,0x99,0xa4,0x81,0x88,0x81,0x53,0xa9,0x14,0x16,0x17,0x17,0xe3,0x57,0x5f,
+  0x7d,0x35,0x5e,0x5a,0x5a,0xb2,0x64,0x59,0xa,0xb5,0xbe,0x16,0x8b,0x3c,0x8f,0x5c,
+  0xa9,0x80,0x5c,0x29,0xf,0x86,0xe3,0x60,0x5a,0x16,0x4c,0xcb,0x82,0x6d,0x9a,0xd0,
+  0x75,0x1d,0xdd,0x76,0x17,0xcd,0x66,0x7,0xa3,0x91,0x8e,0x42,0x21,0x8f,0x4a,0x6d,
+  0xe,0xd9,0x82,0x8a,0xc3,0xc3,0xe7,0xd0,0x34,0xd,0xb9,0x5c,0x1e,0x57,0xaf,0x5e,
+  0x63,0x4c,0xd3,0x14,0xea,0xf5,0xba,0x7a,0x70,0x70,0x30,0xcf,0xa7,0x52,0x29,0xbe,
+  0x54,0x2a,0x31,0xb7,0x6e,0xdd,0xd2,0xae,0x5e,0xbd,0x8a,0x6a,0xb5,0x12,0x39,0x8e,
+  0x1,0xdf,0xf,0x11,0x45,0x67,0xff,0x34,0xea,0xbc,0x7c,0x41,0x3e,0x93,0x2e,0x66,
+  0xa7,0xd3,0xc1,0xc7,0x1f,0x7f,0x8c,0x7c,0x3e,0xff,0x82,0x67,0x90,0x6,0x9f,0xe3,
+  0x38,0x28,0x95,0x4a,0x58,0x5c,0x5c,0x44,0xb9,0x5c,0xa6,0x84,0xf6,0x2c,0xd2,0x4a,
+  0x64,0x5f,0x32,0x60,0x4e,0x14,0x4b,0xcb,0xb4,0x62,0x86,0x61,0x50,0x9c,0x2b,0xa3,
+  0xba,0x58,0x5,0xcb,0xb2,0x93,0x49,0x7d,0xc7,0x41,0xe0,0xfb,0xb0,0x6c,0x1b,0xfd,
+  0xfe,0x0,0xc7,0xcf,0x9a,0xd0,0xd,0x3,0xb9,0x5c,0x1a,0x57,0xaf,0x6e,0x81,0xe5,
+  0x22,0xd4,0xeb,0x93,0xc9,0xfe,0xd5,0xd5,0x35,0x5c,0xbf,0xfe,0x2a,0x4a,0xa5,0x12,
+  0x5c,0xd7,0x65,0xf,0xf,0xf,0x19,0x5d,0xd7,0x63,0x5e,0x96,0x65,0x57,0x51,0x14,
+  0x66,0xe2,0x39,0x11,0xe,0xe,0xe,0xa3,0xc1,0xa0,0x8b,0x20,0x8,0x19,0x86,0xe1,
+  0x5e,0xe8,0x3b,0x25,0x8d,0x21,0x49,0x12,0x9d,0x80,0x4f,0xa2,0x69,0xc2,0xe6,0x5b,
+  0xad,0x16,0x9a,0xcd,0x26,0x34,0x4d,0x9b,0x92,0x67,0x9,0x85,0x48,0xa5,0x52,0xd8,
+  0xda,0xda,0xc2,0xe6,0xe6,0x26,0x96,0x96,0x96,0xa8,0x8e,0x3d,0x2b,0x75,0x90,0x4e,
+  0x29,0x51,0x0,0x25,0x49,0xa2,0x7d,0x7f,0xc3,0x30,0xa0,0x1b,0x3a,0x78,0x86,0x7,
+  0x27,0x70,0xe0,0x45,0x1,0x63,0x6d,0xc,0xcb,0x34,0x61,0x9e,0xf6,0xe1,0x5a,0xed,
+  0x16,0xea,0x27,0xd,0xc,0x7b,0x7d,0xe4,0xcb,0x45,0xac,0xac,0x2c,0x82,0xe5,0x80,
+  0x93,0xe3,0x13,0xec,0xef,0x3f,0x81,0x69,0x3a,0x13,0xd,0x5e,0x99,0xfc,0x88,0x67,
+  0x61,0x61,0x1,0xb9,0x5c,0x8e,0xc9,0xe5,0x72,0xc,0x2f,0x49,0x92,0xc9,0xf3,0x3c,
+  0xe3,0xba,0xae,0xb0,0xbb,0xbb,0x8b,0xdd,0xdd,0xdd,0xf8,0xe4,0xa4,0x81,0x38,0x8e,
+  0x20,0x8a,0xc2,0x54,0xee,0x98,0x45,0xcf,0x64,0x4e,0x79,0xf6,0x3b,0xc,0xc3,0xc0,
+  0xf7,0x7d,0x74,0xbb,0xdd,0x53,0x1e,0xe6,0x51,0xc3,0x91,0x50,0x2a,0x97,0xcb,0xb4,
+  0xfd,0xbc,0xb1,0xb1,0x1,0x55,0x55,0x31,0x1a,0x8d,0x68,0x31,0x20,0x61,0x48,0x84,
+  0x3c,0x72,0x4d,0xd7,0x75,0x31,0x1e,0x8f,0xe9,0xd8,0x32,0xc9,0x2f,0xc,0xcb,0x60,
+  0x34,0x1e,0x41,0xee,0xcb,0xb4,0x3d,0x4e,0x6,0xc0,0xea,0xf5,0x3a,0x7a,0xdd,0x1e,
+  0x24,0x5e,0xc2,0xf2,0x52,0x15,0xd5,0xea,0x3c,0x1e,0x3f,0x7e,0x8c,0x8f,0x3f,0xfe,
+  0x18,0x27,0x27,0x75,0x28,0x8a,0x8c,0x7e,0xbf,0x8f,0xfb,0xf7,0xef,0x3,0x0,0xbe,
+  0xfe,0xf5,0xaf,0x63,0x7b,0x7b,0x7b,0x32,0xab,0xe9,0x4e,0x5e,0x8c,0xa6,0x69,0xe1,
+  0x78,0xac,0x41,0xd7,0x8d,0x78,0x34,0x72,0x10,0xc7,0x3e,0x64,0x99,0x3d,0x95,0x3c,
+  0xf0,0x82,0x70,0xee,0x79,0x1e,0xba,0xdd,0x2e,0x9d,0xc2,0xe7,0x79,0x7e,0x4a,0x9,
+  0xf4,0x3c,0xf,0xed,0x76,0x7b,0x6a,0x2e,0x30,0x8e,0x63,0x28,0x8a,0x82,0xb5,0xb5,
+  0x35,0xdc,0xbc,0x79,0x13,0xef,0xbc,0xf3,0xe,0x56,0x57,0x57,0x61,0x9a,0x26,0x9e,
+  0x3f,0x7f,0xe,0xc7,0x71,0xa6,0x92,0x3e,0x91,0x48,0x88,0x67,0x91,0x12,0x4f,0x74,
+  0x21,0xc3,0x30,0xe8,0xf7,0xdb,0xad,0x36,0xc6,0xda,0x18,0xbd,0x6e,0x17,0xa5,0xd2,
+  0x84,0x91,0xb7,0xdb,0x6d,0x3c,0x7f,0xfe,0x1c,0x96,0x65,0x21,0x93,0xc9,0x60,0x6b,
+  0x73,0xb,0xf9,0x42,0x1e,0x47,0x47,0x47,0xb8,0x73,0xe7,0xe,0x5c,0xd7,0xa5,0xd3,
+  0xbc,0x44,0x63,0x27,0x93,0x74,0xf5,0x7a,0x9d,0xca,0x1d,0xbe,0xeb,0xba,0x8c,0x61,
+  0x18,0x51,0x14,0xc5,0x8c,0x2c,0xcb,0x31,0xc7,0x1,0x71,0xcc,0xd0,0x7e,0x16,0x4b,
+  0x7,0xa8,0x7c,0x5a,0x49,0xc8,0x4f,0x96,0xca,0xe5,0x32,0xde,0x7d,0xf7,0x5d,0x48,
+  0x92,0x4,0x5d,0xd7,0xe9,0xc3,0x8c,0xc7,0x63,0x3c,0x79,0xf2,0x84,0xea,0xd4,0xc,
+  0xc3,0x40,0xd7,0x75,0x30,0xc,0x83,0xed,0xed,0x6d,0xbc,0xfe,0xfa,0xeb,0xb8,0x7c,
+  0xf9,0x32,0x65,0xfe,0xb6,0x6d,0xd3,0x50,0x4e,0x8a,0xf3,0x49,0xd,0x9c,0x78,0x14,
+  0x9,0x2f,0x12,0x76,0x93,0x59,0x24,0x1e,0x9a,0x66,0xc1,0x34,0x1b,0x70,0x5d,0x1f,
+  0xae,0x3b,0x19,0x31,0xb6,0x2c,0x13,0x85,0x42,0x1,0xab,0xab,0x6b,0x28,0x96,0x8b,
+  0x14,0xb2,0x90,0xde,0x3d,0x69,0x52,0x24,0x7f,0xdc,0x42,0xde,0x82,0x20,0x4c,0xc,
+  0xe4,0xfb,0x3e,0x13,0x45,0x51,0x28,0xcb,0x32,0x53,0x2c,0x16,0xe2,0x42,0xa1,0x3,
+  0x80,0x45,0xb1,0x58,0x44,0x2e,0x97,0x83,0x20,0x8,0xf0,0x7d,0x9f,0xe,0x90,0x7b,
+  0x9e,0x7,0xc3,0x30,0x90,0x4a,0xa5,0xb0,0xb3,0xb3,0x83,0x9f,0xfc,0xe4,0x27,0x0,
+  0x80,0xe1,0x70,0x88,0x7c,0x3e,0x8f,0x28,0x8a,0xd0,0x6a,0xb5,0x70,0xef,0xde,0x3d,
+  0xe8,0xba,0x4e,0x3b,0xb0,0xcd,0x66,0x13,0x8e,0xe3,0xe0,0xf5,0xd7,0x5f,0xc7,0x95,
+  0x2b,0x57,0x20,0xcb,0x32,0x9e,0x3c,0x79,0x2,0xdb,0xb6,0xa9,0x50,0xf6,0x79,0x53,
+  0x60,0x49,0x6f,0x2,0x0,0x5d,0xd7,0x1,0x0,0xe5,0x72,0x9,0x71,0x6c,0x63,0x30,
+  0x30,0x71,0x74,0x74,0x2,0xcf,0x33,0x61,0xdb,0x1e,0x54,0x35,0x8b,0xad,0xad,0xcb,
+  0xd8,0xd8,0xb8,0x88,0x56,0xab,0x5,0xc4,0x40,0x2e,0x97,0xc3,0xc6,0xc6,0x6,0xfd,
+  0x41,0xe,0xa9,0x9e,0x1c,0xc7,0xd1,0xa1,0x8a,0x72,0xb9,0xc,0xd3,0x34,0xc1,0x47,
+  0x51,0xe4,0x49,0x92,0x84,0x9d,0x9d,0x1d,0xec,0xef,0xef,0xe3,0xbd,0xf7,0xde,0x83,
+  0xe3,0xb8,0x58,0x5c,0x5c,0xc4,0xf6,0xf6,0xab,0xb8,0x7a,0xf5,0x2a,0xb2,0xd9,0x2c,
+  0x34,0x4d,0xc3,0xa3,0x47,0x8f,0xe0,0xba,0x2e,0x6d,0xd4,0x15,0x8b,0x45,0xac,0xaf,
+  0xaf,0xd3,0x1d,0x26,0xf,0xc9,0x71,0x1c,0xd2,0xe9,0xf4,0x64,0x7,0x4e,0x77,0x9c,
+  0x61,0x18,0x3a,0x1d,0xb6,0xb9,0xb9,0x49,0xc7,0x8b,0x17,0x17,0x17,0x69,0x37,0xe1,
+  0xcb,0xfe,0x16,0x9f,0x20,0xf3,0xf1,0x78,0x8c,0xbd,0xbd,0x3d,0x5c,0xba,0xb4,0xe,
+  0x41,0x90,0xf1,0x9f,0xff,0xf9,0x1f,0x68,0x36,0x8f,0x90,0x4e,0x57,0xb0,0xb5,0xf5,
+  0x43,0x2c,0x2d,0x5d,0xc6,0xfc,0x7c,0x88,0x67,0xcf,0xe,0x31,0x3f,0x5f,0xc1,0xea,
+  0xea,0x2a,0x7a,0xbd,0x1e,0x1e,0x3e,0x7c,0x88,0x46,0xa3,0x41,0xc3,0x94,0xcc,0x62,
+  0x92,0x69,0xb8,0xc1,0x60,0x80,0xff,0x3,0x77,0x5a,0xa7,0xc6,0xe3,0xfd,0x49,0x2c,
+  0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/maemo/tietoopcom/resources/settings.png
+  0x0,0x0,0x11,0x66,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x30,0x0,0x0,0x0,0x29,0x8,0x6,0x0,0x0,0x0,0x73,0xdb,0xaa,0xd4,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xaf,0xc8,0x37,0x5,0x8a,0xe9,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x10,0xf8,0x49,0x44,0x41,0x54,0x58,0x47,0xad,
+  0x58,0x9,0x5c,0x4e,0x69,0xdf,0x4e,0xa2,0x68,0x7b,0x2a,0xa9,0xb4,0x3e,0x29,0x91,
+  0xea,0xa9,0x8c,0x42,0xc6,0xd2,0xa0,0xc9,0x6b,0x37,0x98,0xc9,0x3a,0x19,0xc3,0x3b,
+  0xc,0xd9,0xc2,0x34,0x45,0x43,0x64,0x29,0xa9,0x48,0x13,0x9a,0x8a,0x54,0xa4,0x68,
+  0x51,0x51,0x29,0xda,0xb5,0x6f,0x28,0xed,0x49,0x7b,0x89,0x16,0xc5,0xf5,0xfd,0xef,
+  0x33,0x33,0xbe,0x77,0xde,0xf9,0xbe,0xf7,0x9d,0x1a,0xe7,0xf7,0xbb,0x7e,0xe7,0x3c,
+  0xcf,0x39,0xf7,0x39,0xd7,0xf5,0xbf,0xff,0xdb,0x7d,0xf,0x13,0x1a,0xda,0xa1,0x28,
+  0x2f,0x23,0x25,0x90,0x1d,0xab,0x62,0x3e,0x52,0x54,0x72,0xaa,0x88,0x88,0xc8,0x38,
+  0xf6,0x9a,0xfe,0x81,0x7e,0xa1,0xde,0xde,0xb7,0x42,0x3d,0xbd,0xdd,0x3,0x3d,0xdd,
+  0xaf,0x73,0xfb,0x7a,0x3a,0x33,0xde,0xbc,0x79,0x73,0x9f,0x6e,0x55,0x11,0x7a,0x87,
+  0xf6,0xa9,0x8f,0x38,0x4a,0x56,0x62,0xa4,0xae,0x96,0x96,0x96,0xfd,0xac,0xd9,0x16,
+  0xc5,0x6b,0xac,0xfe,0x9,0x5b,0xbb,0x73,0x70,0xbf,0x18,0x85,0xcb,0x1,0x29,0xf0,
+  0xd,0x4c,0x87,0xf7,0x2f,0x8f,0x70,0xdc,0x25,0x6,0xfb,0x7e,0xc,0xc4,0x57,0x9b,
+  0x8e,0x61,0xc6,0xac,0x35,0x50,0x56,0x9d,0xf4,0x5a,0x42,0x82,0x17,0x3c,0x5c,0x48,
+  0x68,0x5,0x51,0x11,0xfd,0x88,0x74,0x6,0xf5,0xaa,0xe1,0x7c,0x3e,0x7f,0x8f,0x85,
+  0xe5,0xf2,0xf2,0x1f,0x8f,0xb8,0xe3,0x56,0x44,0x3a,0xee,0x27,0x95,0x23,0x39,0xbd,
+  0x1a,0x8f,0xb,0x1a,0x91,0x91,0xfb,0x2,0x8f,0x32,0xeb,0x10,0xf7,0xa0,0x2,0xb7,
+  0xa2,0x8a,0x11,0x9d,0xc0,0xce,0x65,0xf0,0xf0,0x49,0xe5,0xc4,0xcc,0xb3,0xdc,0x6,
+  0xc5,0x71,0x93,0x20,0x2c,0x2c,0x1c,0x46,0x5f,0x35,0x18,0xd4,0x97,0x3f,0xc2,0xc3,
+  0xca,0x53,0xa7,0x9a,0x6,0x6e,0xdf,0x69,0x87,0xcb,0x7e,0x71,0x88,0x4f,0x2e,0xc3,
+  0xb3,0xca,0xe,0x14,0x14,0x37,0x20,0x25,0xb3,0x2,0x39,0x5,0x2f,0x90,0x95,0x57,
+  0x8f,0x8c,0x9c,0x3a,0xdc,0x89,0x2d,0x82,0xbd,0xd3,0xd,0xb8,0x78,0xde,0x83,0x7f,
+  0x70,0x36,0x42,0xee,0x94,0xc0,0x2f,0xb8,0x0,0xae,0x5e,0x29,0xd8,0xba,0xf3,0x67,
+  0xe8,0x1b,0xfd,0x3,0x23,0x46,0x4a,0xd4,0x10,0xa7,0x8d,0x1f,0x81,0xd7,0x5f,0x7a,
+  0x85,0xda,0x8c,0x19,0x9f,0x3e,0x3c,0x79,0xc6,0x7,0xd1,0xf7,0xa,0x11,0x15,0x97,
+  0x8f,0x9c,0xfc,0x1a,0x94,0x3c,0x7b,0x49,0xc4,0x6b,0xf0,0x28,0xad,0xc,0xc5,0x4f,
+  0x1b,0x51,0x50,0xf2,0x12,0xd9,0xf9,0x2f,0x48,0x44,0x3d,0x2e,0xf9,0x27,0x63,0xd3,
+  0x36,0x4f,0xac,0xdf,0xe2,0x81,0xcb,0x57,0x33,0x70,0x2d,0xb4,0x10,0x5e,0xbe,0x59,
+  0x70,0xb9,0x90,0x2,0x5b,0x87,0x30,0xcc,0x9c,0x6b,0xd,0xb1,0xd1,0xbc,0x7e,0xfa,
+  0xfa,0xee,0xbf,0xc4,0xe0,0x6f,0x3c,0xa4,0x3c,0x6d,0x9a,0x59,0x8a,0xbb,0x67,0x0,
+  0x1e,0x12,0xd1,0xe4,0xb4,0xa7,0xc8,0x2f,0xaa,0x45,0x4d,0x5d,0x3b,0x5e,0x36,0xbd,
+  0x46,0x43,0x63,0x17,0x6a,0x5f,0x74,0xe2,0x79,0x65,0x2b,0x9e,0x96,0x35,0xa3,0xb0,
+  0xb4,0x11,0xe9,0xd9,0xb5,0x34,0x2b,0xd5,0x8,0xba,0xf5,0x18,0xd6,0xdf,0x5d,0xc0,
+  0x19,0x8f,0x7b,0xb8,0x19,0x51,0xa,0x9f,0x80,0x2c,0xb8,0x5e,0x78,0x88,0xe3,0xae,
+  0x89,0x24,0x22,0x12,0x33,0x66,0x6f,0x82,0x98,0x98,0x54,0x1f,0x71,0xfb,0xe7,0xdf,
+  0xe0,0xf7,0x1f,0x87,0xe,0x33,0x32,0xfa,0x24,0xf0,0x67,0x9f,0xeb,0xa8,0xac,0x7d,
+  0x85,0xb2,0xe7,0x4d,0xa8,0xae,0x6d,0x45,0x4b,0xdb,0x1b,0xb4,0x12,0xda,0x3b,0x7a,
+  0xd0,0xda,0xfe,0x6,0x8d,0x2d,0xaf,0x51,0xdf,0xd0,0x89,0xaa,0xda,0xe,0x3c,0xaf,
+  0x6e,0xc7,0xed,0xe8,0x5c,0xdc,0x8a,0xcc,0x45,0x66,0x5e,0x3,0x2e,0x5,0x3c,0xc2,
+  0x11,0xe7,0x70,0x4,0xde,0xca,0x27,0x37,0xca,0x85,0xfb,0xcf,0xa9,0x70,0x76,0x4b,
+  0x84,0xe3,0xc9,0x7,0x58,0xb0,0x68,0xf,0xe4,0xe4,0xb5,0xc9,0x9d,0x46,0x77,0x13,
+  0x8b,0x39,0x1f,0x5d,0x84,0x8a,0x8a,0xca,0x37,0x87,0xec,0x8e,0xe,0x54,0xd7,0x75,
+  0x91,0xa5,0xdf,0xa0,0x99,0x88,0x76,0xbc,0xea,0xc5,0x9b,0xee,0xb7,0xe8,0xed,0xeb,
+  0x47,0x6f,0x6f,0x3f,0x5d,0xf7,0xa1,0xa3,0xb3,0x87,0x13,0x55,0xf2,0xb4,0x1,0x69,
+  0x59,0xcf,0x91,0x9c,0x5a,0x86,0x7,0x8f,0xca,0xf0,0x38,0xbf,0x1,0x81,0xa1,0x59,
+  0xd8,0x69,0xeb,0x47,0x2,0x8a,0x11,0x1a,0x55,0x81,0x4b,0x57,0xb,0x88,0x7c,0x1c,
+  0xf6,0x3b,0xdc,0x86,0x89,0xd9,0x7a,0xc8,0x2b,0x4e,0x86,0x8c,0x9c,0x3a,0x5,0xf6,
+  0x88,0x34,0x12,0x20,0xf7,0xd1,0x44,0x88,0x8a,0xa,0xf1,0x17,0x2d,0x5e,0xf6,0x3c,
+  0xe3,0x71,0x39,0x5e,0xbc,0xec,0x46,0x43,0x53,0x17,0x59,0xbc,0x9b,0x23,0x3f,0xd0,
+  0x3f,0x80,0xf7,0xef,0xde,0x73,0xe8,0xef,0x7f,0x87,0xee,0x9e,0xb7,0xe8,0x7a,0xf3,
+  0x16,0x49,0x8f,0x4a,0xe1,0x76,0x3e,0x12,0xb1,0xf1,0x85,0x28,0x7a,0xda,0xf4,0xab,
+  0x80,0x9b,0x59,0x58,0xb9,0xd6,0x11,0x5b,0x77,0x38,0xe1,0xfb,0x3d,0xce,0xd8,0xf4,
+  0x8d,0x1d,0xcc,0x17,0x6c,0xc2,0x9c,0xf9,0x1b,0xa1,0xab,0x3f,0xf,0x63,0x95,0xf4,
+  0x48,0xc0,0x78,0x88,0x8d,0x92,0x1,0x91,0x77,0xf8,0x68,0x2,0x54,0x35,0x34,0xe,
+  0x9c,0xf3,0xf4,0x25,0xff,0xee,0x46,0x4d,0x7d,0x27,0x1a,0x49,0xc0,0xab,0xae,0x5e,
+  0xbc,0x65,0xe4,0xdf,0x13,0xf9,0x7f,0x1,0xfb,0xaf,0xeb,0x4d,0x1f,0x6a,0xeb,0xdb,
+  0x70,0x3b,0xea,0x31,0x22,0x63,0xf3,0x48,0x40,0x33,0x72,0x8b,0x5a,0x28,0x63,0xc5,
+  0x60,0xda,0xf4,0x39,0xd8,0xb0,0x61,0x3,0x5c,0x5c,0xce,0x20,0xf4,0x66,0x8,0x92,
+  0x92,0x1e,0x20,0x36,0x36,0x6,0xd7,0xaf,0x7,0xe3,0xf0,0x91,0x63,0x58,0xb8,0x70,
+  0x19,0x34,0x34,0x27,0x43,0x68,0xd8,0x70,0x56,0xe8,0xe4,0x3f,0x86,0x8,0x99,0xcf,
+  0x2d,0x97,0xe4,0x26,0xa5,0x94,0x90,0xef,0x77,0x51,0xc6,0xa9,0x26,0x54,0xe2,0x65,
+  0x63,0x7,0x6,0x6,0xde,0xfd,0x49,0x0,0xfb,0xaf,0xeb,0x75,0x1f,0xc5,0x43,0x37,
+  0x2a,0x6b,0xda,0x90,0x57,0x58,0x4f,0x19,0xa9,0x11,0x99,0x54,0x17,0x12,0x1e,0x55,
+  0xe0,0xf0,0x4f,0x6e,0xf0,0xfb,0xc5,0x17,0x6f,0xdf,0xf6,0xe1,0xdf,0x8f,0xbe,0xbe,
+  0x5e,0xd4,0xd7,0xd7,0x21,0x20,0xe0,0x2a,0x16,0x2f,0x5e,0x2,0x4d,0x4d,0x4d,0xfb,
+  0xbf,0x2d,0x40,0x4e,0x4e,0x7a,0xce,0x96,0xad,0xbb,0xdf,0xe7,0x17,0x37,0x23,0x29,
+  0xe5,0x9,0xb9,0x44,0x1e,0x52,0x33,0x9e,0xa1,0xe4,0x49,0x1d,0xcd,0x42,0x37,0xc7,
+  0xe1,0xf,0x33,0xf0,0x76,0x80,0x9b,0x9d,0x26,0x8a,0x91,0xda,0xfa,0xe,0x3c,0xab,
+  0x68,0x45,0xd1,0x93,0x66,0x64,0x53,0x71,0x4b,0xcf,0x6e,0x44,0x74,0x7c,0x19,0x76,
+  0xee,0x3e,0x82,0x6b,0x81,0xd7,0x3e,0xf0,0x1f,0x18,0x18,0x20,0x63,0xc,0x7c,0x78,
+  0x57,0x7f,0x7f,0x3f,0x72,0x72,0xb2,0x71,0xe8,0xd0,0xa1,0xae,0x15,0x2b,0x56,0xec,
+  0x21,0x11,0xc3,0x86,0x2c,0x44,0x57,0xd7,0xe0,0xa8,0x9d,0xc3,0x59,0xca,0x26,0x79,
+  0x8,0x8b,0xc8,0xc0,0xc3,0xd4,0x52,0xa,0xd0,0x3a,0x3c,0x2b,0x7f,0x81,0x8a,0xaa,
+  0x26,0x74,0x53,0xe0,0x92,0x2,0xbc,0x7b,0xf7,0xe,0xfd,0x64,0xfd,0xee,0x9e,0x3e,
+  0x2e,0x3e,0x1a,0x9a,0x5e,0x51,0x96,0xea,0x40,0x51,0x69,0x3,0xc2,0x23,0x53,0x70,
+  0xda,0xd5,0x17,0xf6,0x8e,0xee,0xd8,0xff,0x83,0xb,0x36,0x6f,0x73,0x80,0x91,0xf1,
+  0x4c,0x78,0x79,0x79,0xa1,0xa7,0xa7,0x87,0x23,0xde,0xdd,0xdd,0xcd,0x5d,0x33,0xf2,
+  0xec,0xfc,0xfa,0xf5,0x6b,0x14,0x17,0x17,0xe3,0xe0,0xc1,0x83,0x3,0x24,0xe2,0xdb,
+  0x21,0xb,0x30,0x31,0x31,0x8b,0xf2,0xf0,0xba,0x85,0x9b,0xe1,0x19,0x88,0xb9,0x97,
+  0x87,0x5c,0x72,0x9f,0xaa,0x9a,0x26,0xd4,0xd5,0xb7,0xd2,0xb9,0x99,0x23,0xcb,0xb2,
+  0x50,0xf,0x65,0xa1,0xd7,0x24,0x86,0xfd,0x6e,0xef,0xec,0x43,0x53,0x6b,0x1f,0xaa,
+  0xea,0x5e,0x51,0x30,0x17,0x81,0x66,0x10,0xf3,0x2d,0x96,0x61,0xd6,0x9c,0x45,0x30,
+  0x30,0x9a,0x4d,0x1,0x3b,0x1b,0x2a,0x6a,0xc6,0xd0,0xd6,0xd1,0x87,0xe3,0x91,0xc3,
+  0x68,0x6d,0x6d,0xe5,0x44,0x74,0x75,0x75,0x51,0x36,0xeb,0xe5,0x44,0xb4,0xb7,0x53,
+  0x6d,0x79,0xf9,0x12,0x89,0x89,0x89,0xf8,0xf6,0xdb,0x6f,0x6b,0x17,0x2d,0x5a,0xa4,
+  0x36,0x24,0x11,0xa6,0xd3,0x3e,0x7d,0x7a,0x35,0xf8,0x21,0x22,0xee,0xe6,0x20,0x31,
+  0xb9,0x18,0x79,0x5,0x55,0xa8,0xa8,0x6c,0x24,0xf7,0x60,0x2,0x9a,0x38,0x57,0x61,
+  0xa9,0xb3,0x8d,0xea,0x0,0x57,0x13,0xda,0x7b,0x91,0xf5,0xb8,0x4,0xf7,0x13,0x33,
+  0xf1,0xbc,0xaa,0x13,0xc5,0xcf,0x5a,0x71,0x35,0x28,0xe,0x73,0x3e,0x5b,0x8e,0xf1,
+  0x13,0x4c,0x8,0xa6,0x50,0xd7,0x34,0x81,0xa,0x7f,0x2a,0x14,0x55,0xf5,0xa1,0x33,
+  0xc9,0x0,0xfb,0xf6,0xed,0x45,0x55,0x55,0x15,0x37,0x8b,0x6c,0x26,0x98,0x0,0xea,
+  0x58,0x51,0x5b,0x5b,0x8b,0x67,0xcf,0x9e,0xe1,0xe4,0xc9,0x93,0xf8,0xea,0xab,0xaf,
+  0x98,0x2b,0xd,0xfa,0x10,0x9e,0x6a,0x32,0xf3,0x89,0x7f,0xd0,0x43,0x84,0x47,0x65,
+  0x13,0xa9,0x42,0xb0,0x54,0x5a,0x54,0x5a,0x8b,0xb2,0xf2,0x6,0x14,0x95,0xd4,0x50,
+  0x40,0x57,0x91,0x18,0x56,0x89,0xbb,0x50,0x47,0x55,0xb8,0xf3,0x35,0x70,0xc6,0xe5,
+  0x2,0xf8,0x7c,0x2d,0x22,0x1e,0x8d,0xd2,0xb2,0x4e,0x44,0xc6,0x95,0x62,0xed,0x26,
+  0x7b,0x4c,0x9c,0x3c,0x13,0x5a,0x3a,0xd3,0xc0,0xd7,0x9e,0xe,0x55,0x12,0xa0,0xa4,
+  0x62,0x40,0xd,0xdd,0x44,0x4c,0x9c,0xa8,0x87,0x1d,0x3b,0xb6,0xa3,0xa8,0xa8,0x88,
+  0x13,0xd0,0xd7,0xd7,0xc7,0x9d,0xd9,0xc,0x14,0x14,0x14,0x20,0x22,0x22,0x2,0x9b,
+  0x36,0x6d,0xf2,0x1d,0x34,0x7b,0x1a,0x20,0x69,0x64,0x3c,0xad,0xdc,0xe7,0x97,0x44,
+  0x4,0x85,0xa6,0x23,0x22,0x26,0x7,0x9,0xc9,0x25,0x48,0xcf,0x2a,0xe3,0x5c,0x29,
+  0x2b,0xbb,0x1c,0xf7,0x1f,0x14,0x22,0x35,0xb3,0x8c,0xac,0xdd,0x4a,0x68,0x43,0x53,
+  0xdb,0x7b,0xd8,0x39,0x38,0x63,0xea,0xd4,0x29,0xd8,0x65,0xb3,0x7,0xe7,0x2f,0x86,
+  0x50,0x23,0x17,0x3,0x9b,0x3,0x7e,0x58,0xb6,0x7a,0x3f,0x26,0xe8,0xce,0x84,0xc6,
+  0x78,0x53,0xa8,0x68,0x7c,0xc2,0x9,0x90,0x1b,0xab,0x4d,0x22,0xb4,0x60,0x64,0x34,
+  0x5,0x97,0x2e,0x5d,0xc2,0xab,0x57,0xaf,0xb8,0x18,0x60,0xee,0xc4,0x5c,0x2b,0x27,
+  0x27,0x7,0x29,0x29,0x29,0xb0,0xb6,0xb6,0x8e,0x22,0x3e,0xd4,0x81,0xf,0xf2,0x30,
+  0x10,0x98,0x3c,0xf1,0xf0,0x8e,0xc3,0x95,0xab,0x49,0x8,0xbe,0x95,0x86,0x88,0xe8,
+  0x1c,0x8e,0x74,0x72,0xea,0x13,0xe,0x71,0x9,0xf9,0x5c,0x70,0xa7,0x65,0x55,0xa2,
+  0x8c,0x3a,0xd2,0x9a,0x17,0xfd,0xd8,0xbb,0xdf,0x11,0xbb,0x77,0xef,0x42,0x65,0x65,
+  0x5,0x5,0xe1,0xf,0xd8,0xb0,0xd9,0x1e,0x7,0x8f,0xdc,0xc0,0xf7,0xfb,0x3,0x60,
+  0x6e,0xb9,0x3,0xaa,0x9a,0x64,0x7d,0x35,0x43,0x28,0x2a,0x4f,0xc6,0x18,0x5,0x2d,
+  0x8c,0x12,0x57,0x80,0xf6,0x4,0x5d,0xc4,0xc5,0xc6,0xa2,0xa3,0xa3,0x9d,0xb,0xe0,
+  0x8e,0x8e,0xe,0x34,0x35,0x51,0x1,0x7c,0xfc,0x18,0x9,0x9,0x9,0xd8,0xba,0x75,
+  0x6b,0xfc,0x94,0x29,0x53,0x46,0xf,0x92,0xbe,0x90,0x90,0xae,0xae,0xd1,0x93,0xe3,
+  0x2e,0x61,0xf0,0xf4,0xb9,0x87,0xcb,0xfe,0xf,0x10,0x78,0x23,0x85,0x8,0x67,0x21,
+  0x2a,0x36,0x17,0xb1,0xf7,0xf3,0x11,0x1d,0x97,0x87,0xd0,0xdb,0x99,0x38,0xef,0x4d,
+  0x3d,0x4e,0xf0,0x7d,0x54,0xd4,0xbc,0x85,0xcd,0x5e,0x47,0xd8,0xd8,0xec,0xe2,0x2,
+  0xb3,0xb9,0xb9,0x9,0x7,0xe,0x1c,0xc2,0xf6,0x5d,0xce,0x38,0xe8,0x18,0x86,0x95,
+  0xeb,0xdd,0x60,0x64,0xf2,0x25,0x14,0x94,0xf5,0xa8,0x75,0xd0,0x1,0x4f,0x56,0x9d,
+  0x3a,0x51,0x39,0x6c,0xde,0xfc,0x2d,0xea,0xeb,0xea,0xd0,0xd6,0xd6,0xc6,0xcd,0x42,
+  0x73,0x73,0x33,0x1a,0x1a,0x1a,0x90,0x9a,0x9a,0x8a,0x7b,0xf7,0xee,0x51,0x9c,0xec,
+  0x8b,0x57,0x52,0x52,0x1a,0xbc,0x0,0xbe,0xa6,0x4e,0xd8,0xce,0x7d,0x9e,0x38,0xed,
+  0x1e,0x8d,0x73,0x5e,0x31,0xf8,0xd9,0x37,0x1e,0xbf,0x4,0x26,0xe3,0xfa,0x8d,0x54,
+  0xdc,0x8,0xcb,0xe0,0x10,0x12,0x96,0xc5,0xad,0xc4,0x66,0xcf,0x5d,0x42,0x22,0x63,
+  0xf0,0xcf,0x1d,0xe,0x24,0x60,0x27,0x65,0xd7,0x77,0x9c,0x88,0xa6,0xa6,0x97,0xb0,
+  0xb7,0xb7,0xc7,0xa2,0xe5,0xdf,0x63,0xa9,0xd5,0x59,0xcc,0x5b,0x6c,0xf,0x9d,0xc9,
+  0x16,0xe0,0xc9,0x69,0x12,0xf9,0x31,0x98,0xbf,0xc0,0x12,0xd9,0xd9,0x39,0x1c,0xf9,
+  0x96,0x96,0x16,0xe,0x2f,0x5e,0xbc,0xe0,0x82,0x38,0x29,0x29,0x9,0x77,0xee,0xdc,
+  0x61,0x99,0xe8,0xd6,0x90,0xea,0x81,0xac,0xec,0x58,0xbb,0x65,0xab,0x6c,0xe0,0xe8,
+  0x7c,0x7,0x4e,0xa7,0xc3,0xa8,0x1d,0x8e,0x82,0xbb,0x77,0x2c,0xbc,0xae,0xdc,0x87,
+  0x8f,0x5f,0x2,0x37,0x2b,0x7e,0xd7,0x53,0xb1,0x67,0xbf,0x2b,0x26,0x4d,0x36,0xc1,
+  0xf4,0x4f,0x17,0xc3,0xf8,0x93,0x5,0xd8,0xb6,0xed,0x3b,0x72,0x85,0x2e,0x3c,0x7f,
+  0xfe,0x9c,0xf3,0xe9,0xce,0xce,0x76,0x6a,0x1f,0xce,0x62,0xe9,0x17,0x36,0x58,0xbe,
+  0xf6,0x34,0x3e,0x31,0xdb,0x4c,0x33,0x30,0x11,0xab,0x56,0xaf,0xe1,0xdc,0x84,0x59,
+  0x9d,0x5,0x2d,0x73,0x9b,0xfa,0xfa,0x7a,0x54,0x57,0x57,0x73,0x88,0x8c,0x8c,0xc4,
+  0xed,0xdb,0xb7,0xf1,0xcd,0x37,0xdf,0x5c,0x19,0xb4,0xfb,0xb0,0x1,0xb4,0x38,0x37,
+  0x31,0xfa,0x64,0xc1,0xc0,0x1e,0xbb,0x20,0x1c,0x3c,0x7c,0x1d,0xe,0xb4,0xba,0x3a,
+  0x46,0x42,0x4e,0xba,0xdd,0x21,0x31,0x91,0x70,0xf5,0x8c,0x26,0xf7,0x4a,0xc0,0x76,
+  0x9b,0xd3,0xd0,0x33,0x98,0x9,0x7d,0xc3,0x39,0x50,0x52,0x9e,0x8,0x6a,0xfe,0x38,
+  0x2b,0x96,0x95,0x95,0x71,0x99,0x84,0x89,0x78,0xf3,0xfa,0x15,0x3c,0x3c,0xce,0xc3,
+  0x72,0xb1,0x35,0x96,0x7d,0xb1,0x15,0x67,0xdd,0x3c,0x50,0x53,0x53,0xcd,0xf9,0x3c,
+  0x23,0xcd,0x50,0x53,0x53,0x43,0xb1,0x53,0xc9,0x9,0x2f,0x2d,0x2d,0x85,0xaf,0xaf,
+  0x2f,0x62,0x62,0x62,0x28,0x4b,0xed,0xf0,0x1f,0x92,0x0,0x96,0x89,0x14,0x95,0xf8,
+  0x29,0x6b,0x36,0x3a,0xe3,0x7b,0xdb,0x6b,0xb0,0x39,0x18,0x0,0x5b,0xfb,0x40,0xfc,
+  0xe0,0x18,0xc,0xfb,0x63,0x21,0x24,0xe8,0x26,0x9,0x8a,0xc4,0xd7,0x5b,0x9d,0xa0,
+  0xab,0x37,0x3,0x7a,0x82,0x39,0x5c,0xaa,0xd4,0x9e,0x30,0x19,0xf9,0xf9,0x79,0x9c,
+  0x45,0xd3,0xd2,0xd2,0x3e,0xa4,0x48,0x16,0xa4,0x59,0x99,0x99,0x28,0x2f,0x2f,0xa3,
+  0x54,0x49,0xeb,0x8,0x2a,0x58,0xac,0x6,0x30,0xd2,0x15,0x15,0x15,0x9c,0x60,0x96,
+  0xfb,0x9f,0x3e,0x7d,0x8a,0x9b,0x37,0x6f,0x52,0x93,0x77,0x1d,0x79,0x79,0x79,0xb8,
+  0x78,0xf1,0x62,0xe9,0xec,0xd9,0xb3,0x27,0xe,0x49,0x84,0xb0,0x90,0xd0,0x8e,0xa9,
+  0x66,0x5f,0x62,0xe3,0x77,0x97,0x61,0xbd,0xdd,0x7,0x5b,0x6d,0x2e,0x63,0xfb,0xde,
+  0x5f,0x48,0x90,0x1f,0x76,0x1d,0x8,0xc0,0x3e,0x9a,0x1d,0xab,0x4d,0x47,0xa9,0xc2,
+  0xce,0xe2,0x72,0xbd,0x8e,0xee,0xa7,0x14,0x9c,0xaa,0x5c,0xab,0xd0,0x4b,0x96,0xcf,
+  0xce,0xce,0x46,0x46,0x46,0x6,0x37,0x13,0x2c,0x35,0xb2,0xd9,0x60,0xfe,0xce,0x88,
+  0x3f,0x79,0xf2,0xe4,0xf,0x60,0x56,0x67,0x60,0x56,0xf,0x8,0xf0,0x47,0x46,0x7a,
+  0x6,0x9,0xc8,0xe7,0xdc,0xec,0xd4,0xa9,0x53,0x51,0xf2,0xf2,0xf2,0x12,0x43,0x11,
+  0xa1,0x28,0xc5,0x53,0x2a,0xb4,0x58,0xe6,0x80,0xd5,0x9b,0x2e,0xe0,0x4b,0x6b,0x4f,
+  0xac,0xdb,0x72,0x1,0x1b,0xb6,0x79,0xd1,0x5a,0xd7,0x1b,0xd6,0x3b,0x2e,0x63,0x85,
+  0xd5,0x31,0x4c,0x32,0xf8,0x8c,0x8a,0xd4,0x34,0x68,0x6a,0x9b,0x41,0x4e,0x61,0x12,
+  0x4c,0x4d,0x67,0x90,0x5f,0x37,0xa0,0x8e,0xb2,0xb,0x9b,0x85,0x4c,0xb2,0x3c,0x13,
+  0xc3,0x2c,0x9a,0x9b,0x9b,0xcb,0x9,0x62,0x28,0x2c,0x2c,0xfc,0x70,0x66,0xc5,0xec,
+  0xfe,0xfd,0xfb,0x64,0xf9,0x40,0x44,0x46,0x50,0xbc,0x9d,0xf3,0x82,0xab,0x8b,0x7,
+  0x12,0xe2,0x13,0xb9,0x77,0x50,0x55,0x66,0xb1,0x20,0x3e,0x14,0x11,0x5f,0xa8,0x68,
+  0x4c,0xed,0xb3,0x5c,0x79,0x1c,0x8b,0x56,0x9f,0xc2,0xe2,0x35,0xa7,0xb1,0xf4,0xab,
+  0x33,0x14,0x90,0xae,0x58,0xb1,0xce,0x8d,0xfe,0x3b,0x81,0x49,0x2,0x4b,0x28,0xab,
+  0x19,0x71,0x45,0x4a,0x51,0x59,0x0,0x9,0xc9,0xb1,0x38,0x73,0xe6,0x34,0x97,0x89,
+  0x4a,0x4a,0x4a,0x3e,0x88,0xc8,0xca,0xca,0xe2,0x84,0xb0,0x22,0xf5,0x3b,0x98,0x28,
+  0x66,0x65,0x96,0x32,0x43,0x42,0x42,0x10,0x74,0x3d,0x4,0xce,0xc7,0x5d,0xe1,0x71,
+  0xee,0x2,0x8e,0x1d,0x3d,0x81,0x23,0xe,0x4e,0x78,0xf0,0x20,0x9,0x69,0xe9,0x69,
+  0x70,0x74,0x74,0xf4,0x21,0x1,0x23,0x7,0x2d,0x62,0xd8,0xb0,0xe1,0xe7,0xb5,0x75,
+  0xe7,0x51,0x1a,0xb4,0x23,0xfc,0x88,0xf9,0x94,0xe,0x17,0x2c,0x3d,0xcc,0xc1,0x62,
+  0x99,0x23,0x26,0x1b,0x2d,0x85,0xc2,0xb8,0xc9,0x50,0x54,0xd1,0x27,0x1,0x7a,0x90,
+  0x94,0x52,0x1,0x5f,0x53,0xb,0x77,0xef,0xde,0xe5,0x5a,0x6e,0xe6,0xdf,0x8c,0x3c,
+  0x73,0x27,0x6,0x76,0xcd,0x48,0x33,0x30,0xeb,0xc6,0xc5,0xc5,0x71,0xae,0x13,0x73,
+  0x97,0xb2,0x9c,0xe7,0x25,0x12,0x93,0x40,0xb3,0x53,0x80,0xa8,0xa8,0x28,0x38,0x39,
+  0x39,0xe3,0xc8,0x61,0x26,0x22,0x99,0x2b,0x6c,0x54,0x17,0x98,0x88,0x51,0x83,0x15,
+  0x21,0x23,0x22,0x22,0x1a,0xa9,0x35,0x71,0x2e,0x66,0xce,0xfb,0xfe,0xf,0xf8,0x74,
+  0xfe,0x2e,0x8,0xa6,0xae,0xa6,0x65,0xa1,0x2e,0x55,0x57,0x6d,0x6a,0x11,0xb4,0x68,
+  0x91,0xae,0x89,0x11,0xa2,0x3c,0x4c,0x9c,0x34,0x89,0x56,0x5f,0x37,0xb8,0x80,0x6d,
+  0x6a,0x6a,0xa4,0xec,0xc4,0xb2,0x4d,0x35,0x27,0x88,0xb5,0xcc,0xcc,0x9d,0x98,0xa0,
+  0xf4,0xf4,0x74,0xee,0x3a,0x32,0x3c,0xa,0x89,0xf7,0x92,0x28,0xb5,0xd2,0xe6,0x0,
+  0xc5,0x49,0x7e,0x7e,0x3e,0x97,0x4e,0x9d,0x8e,0x9d,0xa0,0xee,0xf5,0x38,0xd5,0x86,
+  0x64,0x6e,0xa6,0xf6,0xee,0xdd,0x7b,0x91,0x4,0x88,0xd,0x56,0x84,0x2c,0x2d,0xba,
+  0x6f,0xb3,0x66,0xcc,0x78,0xba,0x15,0xe5,0xf3,0xd,0x98,0x32,0x7d,0x1d,0x8c,0xa7,
+  0xad,0x85,0xa1,0xc9,0x1a,0xea,0x6f,0xf4,0xc1,0x93,0x51,0x85,0xb4,0x8c,0x1a,0xa4,
+  0x79,0xca,0xe4,0x46,0xa,0xdc,0x1a,0x57,0x53,0x53,0x7,0x6b,0xd7,0xae,0xc3,0xe9,
+  0xd3,0x67,0xe0,0xee,0xee,0x8e,0xb3,0x67,0xcf,0x72,0x70,0x71,0x75,0xa5,0xfa,0xe0,
+  0x2,0x3f,0x3f,0x3f,0x3c,0x7a,0xf4,0x88,0x23,0xfb,0x30,0xe9,0x21,0xee,0xdf,0x8d,
+  0x47,0x43,0x7d,0x3,0x17,0xec,0x95,0x15,0x95,0xbf,0x89,0x88,0xe0,0xdc,0xe9,0xa8,
+  0xa3,0x33,0x92,0xe9,0x19,0x36,0x63,0x24,0x22,0x44,0x4f,0x4f,0x4f,0x61,0xb0,0x22,
+  0xa4,0x69,0x80,0x9b,0x8c,0x9c,0x46,0xf,0x9b,0xd,0x5d,0xc3,0xc5,0xd0,0x35,0xf8,
+  0x7,0x26,0xea,0x5b,0x42,0x8d,0x6f,0x2,0x49,0x69,0x25,0xce,0xff,0xc5,0x25,0xc6,
+  0x10,0x79,0x1e,0x64,0xc7,0xf0,0xe9,0x7f,0x53,0xa8,0x52,0xff,0xa3,0xa6,0xae,0xf,
+  0x79,0x79,0x65,0x28,0x28,0xa8,0xd2,0xef,0x9,0x18,0x37,0x4e,0x1d,0xca,0xca,0xca,
+  0xb9,0xda,0xda,0xda,0x61,0xf3,0xe6,0xcd,0xab,0xf4,0xb9,0xe4,0xf3,0x3e,0x9f,0x2,
+  0x3b,0x39,0x31,0x19,0x69,0x89,0xa9,0x68,0x6f,0x6d,0x47,0x5b,0x7b,0x1b,0x97,0x62,
+  0xf3,0x28,0x2d,0x47,0x50,0x55,0x76,0x3e,0x7e,0xa,0x67,0x9c,0xcf,0x22,0xe5,0xd1,
+  0xaf,0x6d,0xc6,0xee,0xdd,0xbb,0xef,0x4c,0x98,0x30,0x61,0xcc,0x60,0x45,0xb0,0xe7,
+  0x57,0x8d,0x1c,0x29,0x9e,0xc5,0x8,0x8e,0x53,0x15,0x70,0x7d,0xbe,0xaa,0xc6,0x14,
+  0xb2,0xbe,0xa,0x11,0x97,0x26,0x48,0x41,0x94,0xc0,0xfe,0x9b,0xa4,0x67,0x41,0xb,
+  0x98,0x39,0xd4,0x3e,0xf0,0x31,0x52,0x94,0xdd,0x93,0x85,0xc8,0x8,0x6e,0xf,0x88,
+  0xb9,0x1,0xdb,0xc9,0x66,0xe9,0xf1,0x80,0x81,0x81,0x41,0xfe,0x95,0x2b,0x57,0xde,
+  0xb3,0xcc,0x94,0x96,0x9c,0x8a,0xa2,0xc7,0x85,0xe8,0x7a,0x45,0xbb,0x20,0x24,0x82,
+  0x55,0x66,0xf6,0x3f,0x73,0x27,0x57,0x17,0x37,0x5c,0xf0,0xf8,0x19,0x69,0xa9,0xe9,
+  0xb4,0x29,0x10,0x4b,0xad,0x8b,0x4d,0x14,0xd5,0x9,0x95,0xa1,0x88,0x60,0x1f,0xdf,
+  0x3c,0x7c,0xf8,0xc8,0x64,0x22,0xdb,0x25,0x29,0xa5,0xd0,0xcf,0x23,0x1,0xa3,0xc5,
+  0x65,0x88,0xa8,0x38,0x24,0x79,0x8a,0xe0,0x8f,0x9f,0x6,0x75,0x9a,0x99,0x31,0xf2,
+  0xe3,0xd9,0xc6,0x55,0xdf,0x70,0x11,0xd1,0x17,0x94,0x10,0x2e,0xd0,0xb8,0x99,0xff,
+  0xf6,0xc1,0xb1,0x4c,0x84,0x99,0x99,0x59,0x69,0x50,0x50,0x10,0x97,0xff,0x53,0x1f,
+  0xa4,0xa1,0x90,0x44,0xb4,0xb5,0xb5,0x53,0xec,0x34,0x50,0x91,0x2b,0xe3,0xfa,0xa6,
+  0x70,0x6a,0x2f,0xce,0xbb,0x7b,0x21,0xc0,0xf7,0x3a,0x32,0x33,0xb2,0x48,0x54,0x14,
+  0xf6,0xec,0xde,0x93,0xb5,0x7e,0xbd,0xf5,0xf4,0xa1,0x88,0x60,0x63,0xa8,0xde,0x9,
+  0x19,0x11,0x9c,0x86,0xd,0x1b,0x96,0x49,0x68,0xa3,0xeb,0xd6,0x61,0xc2,0xc2,0x6d,
+  0xc2,0xc3,0x45,0x3a,0x87,0x9,0x8b,0xb4,0x8a,0x88,0x88,0xc7,0x8c,0x1a,0x35,0x66,
+  0x37,0x9f,0x6f,0xfa,0x9f,0x7c,0x56,0x91,0xc6,0x9e,0xda,0xb2,0x65,0xcb,0xf3,0x1b,
+  0xc1,0x61,0xad,0x81,0xd7,0x42,0x5a,0x88,0x64,0xcb,0xed,0xf0,0xa8,0x96,0xf0,0xb0,
+  0xc8,0x96,0x9b,0x37,0x6e,0xb7,0x4,0x7,0x87,0xb6,0x5c,0xbb,0x1a,0xdc,0xe2,0x7d,
+  0xf1,0x72,0x8b,0xd7,0xf9,0x4b,0x2d,0x1,0xfe,0xd7,0x5b,0x42,0x82,0x6e,0x75,0x9c,
+  0x74,0x76,0xe9,0xa5,0x1e,0xcc,0x7b,0x28,0x2,0x58,0x4e,0xd6,0x25,0x2c,0x16,0x16,
+  0x19,0xb9,0x53,0x54,0x54,0xe2,0x94,0x88,0x88,0x98,0xcf,0xf0,0xe1,0x22,0x97,0x46,
+  0x8d,0x96,0xd,0x90,0x95,0x53,0xf,0x92,0xe4,0xa9,0x5e,0x93,0x90,0x52,0x3a,0x23,
+  0x3a,0x8a,0xf7,0x1d,0xf5,0x57,0xb3,0xe8,0x59,0xc5,0xff,0xe7,0x43,0x3a,0x2b,0x57,
+  0xae,0x3c,0x42,0x1d,0xe8,0x65,0xaa,0xd,0xde,0x69,0x49,0x69,0xde,0x65,0xc5,0xcf,
+  0xbc,0x69,0x85,0xe6,0x4d,0x6d,0x89,0x37,0xf5,0x48,0xde,0x14,0xb,0xde,0x74,0xdf,
+  0xdb,0xcb,0xd3,0xdb,0xfb,0xc6,0xd5,0x9b,0x17,0xd3,0xd3,0xd2,0x7d,0x28,0x9,0x5c,
+  0xda,0xb6,0x6d,0x9b,0xf5,0xc6,0x8d,0x1b,0x79,0x83,0x11,0xc0,0x56,0x48,0xfa,0x94,
+  0x95,0xd6,0x8e,0x1e,0x2d,0x77,0x40,0x5a,0x5a,0xf9,0xa8,0xec,0x18,0xd,0x7,0x1e,
+  0x4f,0xf5,0x90,0xd8,0x68,0x19,0x5b,0x31,0x9,0xa9,0x1f,0xa4,0x78,0x6a,0xe,0x5a,
+  0x13,0xe6,0x38,0xe8,0xe8,0x5b,0xfc,0x48,0xb,0xf9,0xc3,0xa2,0xa3,0x64,0x1c,0x87,
+  0x8f,0x10,0x77,0x14,0x16,0x16,0xfd,0x8e,0xc6,0x5a,0x10,0x7e,0xdf,0xbc,0x62,0x5b,
+  0x27,0x7c,0x4b,0x4b,0xcb,0x2d,0xd4,0x3,0xd9,0xe5,0xe7,0xe6,0x1f,0x48,0x4d,0x48,
+  0xb5,0x7d,0x52,0xf8,0xcc,0x96,0x16,0xfa,0xb6,0xd4,0x82,0xd8,0x96,0x97,0x97,0xdb,
+  0x52,0x9a,0xb5,0xa5,0xee,0xd4,0xd6,0xf5,0x8c,0x9b,0xad,0xaf,0x8f,0xbf,0x2d,0xd5,
+  0x8f,0x83,0xfe,0xfe,0xfe,0x87,0x88,0xf8,0x67,0xbf,0x79,0xc1,0x5f,0xe6,0x2f,0x49,
+  0x96,0x9c,0x49,0x3e,0xbe,0x5e,0x45,0xdd,0xe8,0x6b,0xbe,0xd6,0x8c,0x75,0x7c,0x9d,
+  0x59,0x56,0x4a,0xea,0xc6,0x56,0xe2,0x52,0x72,0x56,0x62,0x62,0x3c,0x82,0xd4,0xda,
+  0x11,0x62,0x92,0xeb,0xa8,0x36,0xac,0xe5,0xf3,0xa7,0x59,0xa9,0xab,0x1b,0x5a,0xf1,
+  0xf9,0xba,0x4,0xad,0xb5,0xda,0xda,0xba,0x1b,0x35,0xb5,0xb4,0xbe,0xa6,0xec,0xb1,
+  0x6c,0xe1,0xc2,0x85,0x86,0xab,0x56,0xad,0x9a,0x42,0xeb,0xde,0x15,0xc1,0xc1,0xc1,
+  0xeb,0x8b,0x4a,0x8b,0xac,0x1e,0xc4,0xc7,0x5b,0xe5,0xa4,0xe6,0x58,0x75,0x74,0x75,
+  0x58,0x35,0xb7,0x36,0x5b,0x11,0x79,0x2b,0xaa,0xda,0x56,0x61,0x61,0x61,0x56,0x4e,
+  0x4e,0x27,0xac,0x2e,0xb8,0x5d,0xb0,0xa2,0xc5,0xce,0xda,0xab,0x57,0xfd,0xd6,0x53,
+  0xab,0x3d,0xe5,0x2f,0xb3,0xfe,0xed,0x41,0x59,0x31,0x31,0x19,0x33,0x15,0xd,0x63,
+  0xb,0x7d,0xc3,0x25,0xf3,0x74,0x8d,0x97,0x9b,0xff,0x8a,0xc5,0xe6,0xca,0x6a,0x6,
+  0xe6,0xe2,0xd2,0xa,0xe6,0xe2,0xe2,0xca,0x4,0x5,0x73,0x51,0x71,0x69,0x73,0x51,
+  0x51,0x69,0x73,0x63,0x3,0x63,0xf3,0x3,0x7,0xe,0x98,0x7,0x6,0xfa,0x9b,0x13,
+  0xc9,0xf,0xf0,0xf1,0xf1,0x99,0xcf,0x40,0x56,0x9d,0x4f,0x4,0xe7,0x51,0x2f,0x64,
+  0x9e,0x14,0x9f,0x64,0x9e,0x14,0x9b,0x62,0x4e,0x85,0x8f,0x3,0x15,0x33,0x73,0x72,
+  0x27,0x73,0x7a,0xc6,0xfc,0xe8,0xd1,0x13,0xe6,0xa7,0x4f,0xbb,0x9b,0xd3,0x3a,0xf9,
+  0x33,0xf6,0x1e,0x8a,0x95,0xf1,0xc4,0x69,0x50,0x1b,0x5f,0x92,0x3c,0xde,0x58,0x7d,
+  0x7d,0xe3,0xe5,0xc6,0x66,0x73,0xbf,0x16,0x98,0x98,0xfd,0x2f,0xc,0x4d,0x56,0xb,
+  0x94,0xe5,0x27,0xb,0x78,0xf2,0x1a,0x2,0x1e,0x8f,0x41,0x59,0x30,0x7a,0xc4,0x68,
+  0x81,0x99,0xd9,0x5c,0x1,0x55,0x59,0x1,0xb5,0x13,0x2,0x2a,0x4c,0x82,0xc6,0xc6,
+  0x46,0x1,0xad,0xb6,0x4,0x94,0xdb,0x5,0xd4,0x36,0xb,0x28,0x35,0xa,0x88,0x3c,
+  0xf7,0x4c,0x7a,0x4e,0xba,0x20,0x26,0x34,0x46,0x10,0x1f,0x13,0xcf,0x3d,0xcb,0x9e,
+  0x61,0xf7,0x69,0x67,0x42,0xf0,0xd3,0x4f,0x27,0x4,0x27,0x4e,0xb8,0x8,0xa8,0xe0,
+  0x19,0x86,0x86,0x86,0xa,0xc8,0xe7,0x59,0xd6,0x1a,0xd4,0x21,0x2a,0x26,0xa3,0xa9,
+  0x66,0x62,0xb2,0x8e,0x3f,0x77,0xa1,0x9d,0xfa,0x6c,0x8b,0x5d,0x1a,0xff,0xa,0x81,
+  0xe9,0x52,0xd,0x5,0x5,0x9d,0xf,0x10,0x95,0x56,0xd0,0x10,0x8,0x4,0x1a,0xe4,
+  0xb7,0x1a,0xd4,0xcf,0x69,0x50,0x9b,0xac,0x41,0x3e,0xfb,0x27,0xb0,0xfb,0xb4,0x81,
+  0xa5,0x41,0x3d,0x93,0x6,0xb9,0x8,0x77,0xf6,0xf2,0xf2,0xe5,0xae,0xd9,0x3d,0x76,
+  0x3e,0x71,0xe2,0x4,0xe1,0x2c,0x8d,0xfd,0xf5,0x37,0x2d,0x31,0x59,0x31,0x1d,0xd4,
+  0x41,0x69,0x52,0x4d,0xc6,0xd4,0xf4,0x4b,0x85,0xcf,0xbf,0x70,0x92,0xff,0xbf,0x60,
+  0x68,0xf8,0xb9,0xbc,0xa2,0x96,0xe1,0xaf,0x50,0xd4,0x22,0x28,0xca,0xd3,0x34,0xcb,
+  0x93,0xe5,0xe5,0x69,0x91,0x22,0x4f,0x56,0xfe,0xaf,0x48,0x4e,0x4e,0xe6,0xc6,0x44,
+  0x47,0x47,0xcb,0x9f,0x3b,0x77,0x8e,0x83,0x93,0x93,0x13,0x77,0x26,0xb7,0x19,0x9b,
+  0x9c,0x1c,0x2d,0x4f,0xe4,0x7,0xbf,0xb8,0x27,0xa9,0xa2,0x3a,0x3a,0x4b,0x24,0x57,
+  0xad,0xf2,0x94,0x58,0x62,0x7d,0x52,0xf2,0xcf,0xd8,0x2f,0xc9,0xee,0xcb,0xe9,0xcc,
+  0x20,0xe8,0x48,0xca,0xc9,0xc9,0x49,0x2e,0x59,0xb2,0x44,0x92,0x76,0x17,0x24,0xc9,
+  0xf2,0x92,0x34,0xed,0x7f,0x9,0xbf,0x3f,0x4b,0x7b,0x44,0x92,0xe1,0xe1,0xe1,0x92,
+  0xd4,0xff,0x73,0x60,0xe3,0x29,0x3e,0x24,0xe,0x1f,0x3e,0xfc,0x5f,0xdb,0xe8,0xff,
+  0x1,0x32,0x1,0xa3,0x55,0x44,0x90,0x62,0xb1,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+  0x44,0xae,0x42,0x60,0x82,
+    // /home/maemo/tietoopcom/resources/hidden.png
+  0x0,0x0,0xa,0xf5,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x30,0x0,0x0,0x0,0x30,0x8,0x6,0x0,0x0,0x0,0x57,0x2,0xf9,0x87,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0x14,0xc3,0x0,0x0,0x14,0xc3,0x1,
+  0x15,0x70,0x4d,0x42,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x3,0xa,
+  0xd,0x14,0x12,0x4,0x37,0x48,0xbd,0x0,0x0,0xa,0x75,0x49,0x44,0x41,0x54,0x68,
+  0xde,0xd5,0x5a,0x6b,0x6c,0x54,0xc7,0x15,0xfe,0x66,0xe6,0xee,0xcb,0xbb,0xeb,0x67,
+  0x6c,0xe3,0xc5,0x86,0x80,0x21,0x9,0x8f,0x12,0x10,0xa4,0x5,0xf2,0xa2,0x21,0x48,
+  0x24,0xa5,0x32,0x14,0xf5,0xf1,0x27,0x69,0xd5,0xfe,0xaa,0xfa,0xb3,0x55,0x5b,0x89,
+  0x14,0xb5,0x4d,0x88,0x9a,0x28,0x48,0x8d,0xfa,0x2b,0x95,0xf2,0x23,0x4a,0xa4,0x2a,
+  0x52,0x22,0x42,0x12,0x12,0x1a,0x68,0x1e,0x50,0xe2,0x28,0x4,0x30,0x4,0x1c,0xd2,
+  0xc4,0x98,0xd8,0x64,0xd7,0xd8,0x60,0xb3,0xf6,0xbe,0xee,0xbd,0x33,0x73,0xfa,0x63,
+  0xef,0x5d,0xee,0xbe,0xfc,0x6e,0xab,0xae,0x74,0xb4,0x3b,0x77,0xee,0x9d,0xfb,0x7d,
+  0xe7,0x9c,0x39,0xe7,0xcc,0xcc,0x32,0x22,0xc2,0xff,0xf3,0xc7,0x98,0xcf,0xc1,0xd8,
+  0xee,0xfd,0x61,0x98,0xa9,0xe,0xc3,0x30,0x62,0xa4,0x55,0x1b,0x81,0xb5,0x1,0x0,
+  0x3,0x25,0x18,0x17,0x9,0x29,0x65,0x1c,0x81,0xc8,0x20,0xbd,0xfa,0xcb,0xf4,0xbc,
+  0xbd,0x73,0xae,0x16,0x60,0x5d,0xfb,0x16,0x73,0x85,0x9d,0x4c,0xd0,0x2e,0x0,0xf7,
+  0x2,0xe0,0x53,0x3c,0xa2,0x1,0x1c,0x27,0xc5,0xe,0x68,0x81,0xd7,0xe8,0xe0,0x9e,
+  0xaf,0xfe,0x27,0x4,0x8c,0x1d,0x4f,0xec,0x24,0xc1,0xf6,0x32,0xd0,0x3a,0x0,0x58,
+  0x18,0x6b,0x53,0xab,0x6e,0xeb,0x14,0xcd,0x8d,0x75,0xa8,0xb,0x87,0x50,0x1b,0xe,
+  0x22,0x1c,0xc,0x0,0x0,0xd2,0x39,0x13,0xe3,0xe9,0x1c,0x92,0xe9,0x2c,0x46,0x46,
+  0x93,0xb8,0xf0,0xaf,0x3e,0xf5,0x75,0x3c,0x21,0x0,0x80,0xc0,0xce,0x30,0x45,0x7f,
+  0x94,0x6f,0x3e,0xf6,0xda,0x7f,0x85,0x80,0xaf,0xeb,0xf1,0xbb,0x9,0xec,0x19,0x0,
+  0x1b,0x63,0x6d,0xb,0xd4,0x86,0x35,0x2b,0xc5,0xaa,0xa5,0xb,0x51,0x5b,0x13,0x4,
+  0x0,0x28,0x4d,0x60,0x20,0x10,0xe5,0x5,0x0,0x18,0x63,0x60,0x8c,0x81,0xc0,0x20,
+  0x38,0x3,0x0,0x8c,0x67,0x72,0xb8,0x70,0xe9,0x6b,0x7c,0x72,0xae,0x57,0xc5,0x13,
+  0x43,0x2,0xc0,0x47,0xc,0xf4,0x2b,0xfb,0xe0,0xef,0x4e,0xfc,0x47,0x8,0xb0,0x5d,
+  0x4f,0xd5,0x9,0x6d,0x3f,0xf,0x60,0x77,0x63,0x43,0xbd,0xda,0x76,0xdf,0x26,0xb1,
+  0x76,0x59,0x7b,0xde,0x27,0xb4,0x86,0x52,0xa,0x4a,0xa9,0x69,0x8d,0x25,0x84,0x80,
+  0x10,0x2,0x9c,0xe7,0xbd,0xad,0xe7,0xcb,0x2b,0x38,0x72,0xac,0x5b,0x8d,0x8e,0xdd,
+  0x10,0x0,0x5e,0x55,0xdc,0xf7,0x33,0x3a,0xf0,0x9b,0xe4,0xbc,0x11,0x60,0x3b,0xf6,
+  0x2d,0x37,0xc,0x1c,0x62,0x8c,0x75,0x6e,0x7f,0xe0,0x3e,0xbe,0xf9,0x1b,0xcb,0x20,
+  0x38,0x83,0x94,0x12,0x52,0xca,0xb9,0x45,0x11,0xc3,0x80,0x61,0x18,0x90,0x4a,0xa3,
+  0xfb,0x7c,0x1f,0xe,0xbf,0x7b,0x4c,0x13,0x51,0x9f,0x94,0xf8,0xe,0xbd,0xb9,0xe7,
+  0x8b,0x39,0x13,0xf0,0x7d,0x77,0xdf,0x83,0xc4,0xe9,0xd5,0x48,0x28,0x12,0x7e,0xf4,
+  0xfb,0xf,0x8b,0x8e,0xe6,0x3a,0x28,0xa5,0x20,0xa5,0xc4,0x5c,0x3,0x80,0xd7,0xc5,
+  0xfc,0x3e,0x3,0x9c,0x73,0x7c,0x35,0x9c,0xc4,0x4b,0x7,0xde,0x52,0xa9,0x74,0x26,
+  0xcd,0x34,0xdb,0x6d,0xbf,0xb1,0xe7,0xe8,0xac,0x9,0x38,0xe0,0xf,0xc7,0x62,0x31,
+  0xfc,0x64,0xe7,0x83,0x22,0x1a,0xa,0xc0,0xb2,0x2c,0x68,0xad,0xe7,0xc,0xba,0x0,
+  0x0,0x37,0xdb,0x9c,0x73,0xf8,0x7c,0x3e,0x4c,0x64,0x4d,0xbc,0x70,0xf0,0x1f,0x2a,
+  0x9e,0x18,0x2,0xd3,0x6c,0xfb,0x64,0x24,0xaa,0x12,0x60,0x3b,0xf6,0x2d,0x17,0x82,
+  0x3e,0x89,0xc5,0x62,0xe1,0x9f,0xff,0xe0,0x21,0xc1,0x39,0x87,0x6d,0x99,0xb3,0xd2,
+  0xfa,0x64,0xa0,0x4b,0xfb,0x19,0x63,0xf0,0xfb,0xfd,0x90,0x4a,0xe3,0xb9,0x57,0xfe,
+  0xae,0xe2,0x89,0xa1,0xb4,0x52,0x6c,0x43,0x35,0x77,0xe2,0xd5,0x26,0xac,0x61,0xe0,
+  0x50,0x34,0x12,0xe,0xff,0xb8,0x6b,0xab,0xe0,0x9c,0xc3,0x32,0x73,0x33,0x2,0xef,
+  0x46,0xa1,0x82,0x9b,0x80,0xa,0x32,0x59,0x3f,0x48,0xc3,0x32,0x73,0x10,0x9c,0xe1,
+  0xd1,0x1d,0x5b,0x44,0x34,0x12,0xe,0x1b,0x6,0xe,0xb1,0x5d,0x4f,0xd5,0x4d,0x9b,
+  0x80,0xd0,0xf6,0xf3,0x9c,0xa1,0xf3,0xd1,0xef,0x3d,0x2c,0xa2,0xa1,0x0,0x4c,0xd3,
+  0x84,0x24,0x54,0x15,0xa5,0xa9,0x48,0xa4,0xd2,0x45,0x6d,0xad,0xf5,0x94,0xfd,0x36,
+  0x11,0x6c,0x95,0x17,0xa9,0x34,0x72,0x56,0xe,0x91,0x90,0x1f,0x8f,0x74,0x6d,0x13,
+  0x9c,0xa1,0xd3,0x89,0x80,0x53,0x13,0xf0,0x75,0x3d,0x7e,0x37,0x80,0xdd,0xdb,0xb7,
+  0x6e,0xe1,0xed,0xcd,0xf5,0xc8,0xd9,0x12,0x52,0xeb,0x22,0x8d,0x11,0x95,0x80,0x23,
+  0x2a,0x88,0x2c,0x69,0x4f,0x7,0xbc,0xd2,0x4,0x52,0xf9,0x71,0xdd,0xb6,0xb4,0x35,
+  0x4c,0xcb,0x46,0xfb,0x2d,0xb5,0xd8,0xbe,0x65,0x33,0x7,0xb0,0xdb,0xc1,0x36,0x39,
+  0x1,0x2,0x7b,0xa6,0xb1,0xa1,0x5e,0x6d,0x5a,0xdd,0x9,0xcb,0x96,0xc8,0x59,0x12,
+  0x52,0x3,0x52,0xa3,0xa0,0x21,0x5b,0x4d,0x5f,0xb3,0x95,0xc8,0x69,0xad,0xb,0xe2,
+  0x3e,0xe7,0x8a,0xf7,0x59,0xd3,0xb2,0x61,0x5a,0x36,0x36,0xae,0x5a,0x8a,0x86,0xfa,
+  0x3a,0xe5,0x24,0xd0,0xea,0x4,0x8c,0x1d,0x4f,0xec,0x4,0xb0,0x71,0xdb,0x7d,0x9b,
+  0x4,0x67,0x40,0xda,0xb4,0x8b,0x6,0xf4,0x5a,0xa0,0x14,0xbc,0xdb,0x5f,0xa,0x4e,
+  0xeb,0x62,0x70,0xa5,0xa4,0x2a,0x89,0x77,0xec,0x74,0xce,0x6,0x3,0x61,0xdb,0xe6,
+  0xf5,0x2,0xc0,0x46,0x7,0x63,0xe5,0x6a,0x94,0x4,0xdb,0xbb,0xb0,0xad,0x55,0xad,
+  0x5b,0xb6,0x50,0xa4,0x4c,0x9,0x4b,0xea,0x49,0xa3,0xc6,0x64,0xd1,0x64,0xaa,0xe8,
+  0x33,0x93,0xc8,0x94,0x35,0x6d,0xac,0x5d,0x16,0xc3,0xf1,0xd6,0x66,0x15,0xbf,0x7a,
+  0x6d,0x2f,0x80,0xd7,0xca,0x2c,0xc0,0xba,0xf6,0x2d,0x66,0xa0,0x75,0x1b,0xd6,0xac,
+  0x14,0x9a,0x80,0x54,0xd6,0x2a,0xd2,0xb4,0x57,0xb3,0xd5,0x2c,0x50,0xc9,0x22,0x5e,
+  0xab,0xcc,0xd6,0x9a,0x13,0xd9,0x7c,0xf8,0xbe,0x6b,0xf5,0x72,0xc1,0x40,0xeb,0x58,
+  0xd7,0xbe,0xc5,0x65,0x16,0xe0,0xa,0x3b,0x21,0x80,0x15,0xb7,0xb6,0x21,0x67,0x4b,
+  0x58,0x4a,0x97,0x69,0x87,0xf4,0xc,0xe2,0x39,0xa6,0x67,0xd,0x77,0x48,0x6f,0x78,
+  0x2d,0xbf,0x8f,0x90,0xb3,0x24,0x56,0x2c,0x6a,0xc5,0xeb,0x2e,0x56,0xe0,0xd9,0x62,
+  0xb,0x8,0xda,0xb5,0x30,0xd6,0xa6,0xea,0xc3,0x41,0x64,0x4c,0x9,0x68,0x5d,0x10,
+  0xd2,0x4,0xad,0x3c,0x5a,0x3,0x95,0x69,0xb4,0x54,0xe3,0xd3,0x99,0x1f,0x52,0x95,
+  0xcf,0x97,0x6a,0xf3,0x28,0x6b,0xda,0xa8,0xf,0x7,0x11,0x5b,0xd0,0xa2,0x9c,0xb5,
+  0xc7,0x4d,0x17,0x62,0xbb,0xf7,0x87,0x1,0xdc,0xbb,0x6a,0xf9,0x12,0xc1,0x40,0x48,
+  0x9b,0x76,0x71,0x9c,0x27,0x2a,0xfa,0xad,0x34,0x41,0x3b,0x2b,0x13,0x6f,0x9f,0xdb,
+  0xaf,0x51,0x9c,0x1b,0xa4,0xce,0xb7,0x75,0x49,0xce,0xd0,0x54,0x9c,0xd0,0xdc,0xfe,
+  0x4a,0xd7,0x53,0x39,0xb,0x9a,0x80,0x95,0x4b,0xdb,0x5,0x80,0x7b,0x1d,0xcc,0x8e,
+  0xb,0x99,0xa9,0xe,0x8,0xc1,0x5b,0x1a,0x6b,0x61,0xda,0xa,0x96,0xd4,0x60,0x20,
+  0x68,0xe,0x40,0x95,0x9b,0x7d,0xba,0x13,0xb0,0xec,0xba,0xa6,0x19,0xb9,0x57,0xe9,
+  0x75,0x4b,0x4a,0xb4,0xd4,0xd5,0xe6,0x15,0x6f,0xa6,0x3a,0x0,0x5c,0x34,0x9c,0x92,
+  0x36,0x46,0x44,0x88,0xd6,0x84,0x60,0x3b,0xda,0x61,0x20,0x40,0xcf,0xe,0xac,0xa6,
+  0xa9,0xc9,0x4e,0x36,0x9f,0x74,0xbe,0x48,0xcb,0xdf,0xc7,0xa9,0xa0,0x44,0xa5,0x9,
+  0xd1,0x70,0xc0,0x2d,0xc3,0x63,0x5,0x2,0xa4,0x55,0x1b,0x18,0x47,0x34,0xe8,0x2b,
+  0xf8,0xe5,0x4c,0xc2,0x25,0x3,0x15,0x81,0x9e,0x6e,0xb8,0x9d,0xcc,0x42,0xe4,0x61,
+  0xe3,0xde,0x6f,0x4b,0x85,0x48,0xc8,0x8f,0x2,0x66,0xd7,0x85,0x8,0xac,0x8d,0x1,
+  0x88,0x84,0xfc,0xb8,0x91,0x95,0x90,0x95,0x22,0xd0,0x34,0xcd,0x3c,0x53,0x12,0xd3,
+  0x1e,0x97,0x8,0x96,0x2d,0x51,0x17,0xf2,0xb9,0x15,0x43,0x5b,0x79,0x22,0x3,0x2b,
+  0x2c,0x11,0xe7,0xa4,0xc9,0xf9,0x2,0x5d,0xc5,0xdd,0xca,0x32,0x31,0x3,0x25,0x0,
+  0x86,0x54,0x26,0x7,0x43,0x88,0xa2,0x32,0x77,0x3e,0x48,0x78,0xdf,0x3f,0x5d,0x8b,
+  0x16,0xb9,0x91,0x43,0xc2,0xe0,0xf9,0x1d,0x8e,0x9b,0x98,0x5d,0x2,0x5c,0x24,0x88,
+  0x8,0xa9,0x6c,0xe,0xf5,0xd1,0x48,0x3e,0x14,0x4e,0xe6,0xd3,0x33,0xd4,0xe4,0x5c,
+  0x2d,0xe8,0xb6,0x5,0x67,0x18,0x1b,0xcf,0xc1,0xc5,0x5c,0x20,0x20,0xa5,0x8c,0xb,
+  0x21,0x90,0x4c,0x65,0x71,0x4b,0x5d,0xa4,0x68,0xe,0x54,0x1b,0xcc,0xeb,0x9b,0xb3,
+  0xd2,0xe8,0x14,0xd7,0x2b,0x8d,0x27,0x18,0xc3,0x44,0x26,0xb,0x17,0xf3,0xcd,0x39,
+  0x10,0x88,0xc,0x42,0x66,0xf5,0xf0,0xe8,0xd,0xbe,0x7a,0xc9,0x2,0x30,0xe4,0x43,
+  0xe9,0x94,0xa0,0x88,0xbc,0x69,0x62,0x46,0x64,0x66,0x3a,0x37,0xfc,0x6,0x47,0xc8,
+  0x2f,0x30,0x3c,0x96,0xca,0xc7,0xa6,0x40,0x64,0xb0,0x90,0x89,0x9d,0xbd,0xca,0xe3,
+  0xbd,0x7d,0x3,0x8a,0x11,0xa1,0xbe,0xc6,0x5f,0x96,0x39,0xbd,0xe5,0x81,0x9b,0x59,
+  0x65,0x69,0xbf,0x5b,0xe,0x3b,0x19,0xba,0xb4,0x34,0x76,0xc7,0xf3,0xae,0x2d,0x8a,
+  0xd6,0x0,0x15,0xde,0xe7,0xf6,0xd7,0x85,0x7c,0x60,0x20,0xf4,0xf6,0x5f,0x51,0x0,
+  0x8e,0xbb,0xfb,0xab,0x85,0x28,0x44,0x8a,0x1d,0x88,0xf,0xd,0xdf,0x9f,0x4c,0x67,
+  0xd1,0x54,0xe3,0x43,0x7c,0x2c,0x53,0x35,0xce,0x13,0x77,0x34,0xa5,0x66,0xa6,0xe1,
+  0xb9,0xb8,0xdb,0x2d,0xd1,0x20,0x6e,0xa4,0x72,0x88,0xf,0x8f,0xa,0x52,0xec,0x40,
+  0x59,0x39,0xad,0x45,0xbe,0xc6,0xee,0xed,0x8f,0xa3,0x21,0x98,0x67,0xeb,0xee,0xb8,
+  0xb9,0xc9,0xad,0x50,0x70,0x49,0x82,0xb6,0x9d,0x2,0x4e,0xab,0xc2,0x7d,0xa5,0x5,
+  0x98,0xf7,0xba,0x52,0xa,0x52,0xeb,0xb2,0x55,0x99,0x3b,0x7e,0xe9,0xf3,0xde,0x55,
+  0x1a,0x67,0x40,0x7d,0x8d,0x1f,0x9f,0xd,0x5c,0x2d,0xc2,0x5a,0x44,0x80,0xe,0xee,
+  0xf9,0x8a,0x88,0x7a,0x4e,0x5e,0xf8,0x42,0x11,0x23,0xb4,0x37,0xd4,0x14,0xad,0xa2,
+  0xa6,0x7a,0x59,0xa5,0xfb,0xdc,0xeb,0x15,0xfb,0x3d,0x64,0xa,0x5,0x61,0x85,0xa5,
+  0xa5,0xd2,0x84,0x8e,0xa6,0x28,0x0,0xe0,0xd4,0xc5,0x7e,0x45,0x44,0xe7,0xf0,0xfa,
+  0x63,0x43,0xe5,0xb,0x1a,0xc6,0xfc,0x2c,0x9d,0x7c,0x26,0x31,0x7c,0x5d,0x9c,0xbb,
+  0x14,0xc7,0xa2,0x86,0x20,0x7c,0x82,0xcd,0x4c,0xc3,0x15,0x5e,0x5e,0xfa,0x9c,0xb7,
+  0x5d,0x26,0x4e,0x1d,0xe4,0x15,0xbf,0xc1,0xd1,0xd1,0x14,0xc6,0xd9,0x4b,0x9,0x24,
+  0x46,0xc6,0x4,0x1b,0x1f,0xf9,0x33,0x80,0x10,0x63,0xcc,0x77,0xb3,0x9c,0x66,0x8c,
+  0x3,0xf0,0xab,0x77,0xf7,0x1f,0x25,0x65,0x9f,0x39,0xf2,0xe1,0x29,0xcd,0x40,0xe8,
+  0x6c,0xe,0x57,0x5c,0xac,0xbb,0x60,0x6d,0x59,0x1d,0x74,0x41,0x2a,0xb5,0x67,0x20,
+  0x4b,0x5b,0x6a,0xc1,0x40,0x38,0xfa,0xf1,0x79,0x4d,0xd2,0x3c,0xab,0x3e,0xf8,0xcb,
+  0xfb,0x0,0x2,0x0,0x2,0xcc,0x1,0xe,0x0,0x3e,0x57,0x58,0xe2,0xf3,0xa7,0xc7,
+  0xc6,0xd3,0xfc,0xc4,0x85,0x7e,0x74,0x34,0x84,0xd0,0x12,0xf5,0x43,0x13,0x8a,0x34,
+  0xee,0x8d,0x1a,0x5,0xf1,0x6a,0xb2,0x52,0x7b,0x16,0xd2,0x12,0xd,0xa2,0xa3,0x29,
+  0x8c,0x7f,0x5e,0x18,0xc0,0xd8,0x78,0x9a,0xb3,0xf8,0xa7,0xcf,0x7a,0xb1,0x2,0x30,
+  0xc,0x8f,0x2b,0x9,0x0,0x42,0x9d,0x7e,0xf9,0xac,0x68,0xbe,0xf5,0xdd,0x77,0x4e,
+  0x9c,0xde,0xb2,0xb8,0xa5,0x81,0xdf,0xd9,0xd1,0x80,0xf1,0xec,0x55,0x24,0x33,0x15,
+  0xf6,0x43,0x49,0x4f,0xde,0x9e,0xc3,0xa7,0x36,0x68,0x60,0xed,0xe2,0x46,0xc,0x8e,
+  0x24,0x71,0xa4,0xfb,0xc,0x21,0x37,0x7e,0x4c,0xf5,0x1c,0xfc,0xd4,0xc5,0xe9,0xa,
+  0x2f,0x44,0x32,0x38,0x95,0x1c,0xc0,0xd4,0xa9,0x97,0x9f,0xd0,0xd2,0x8a,0xbf,0xf4,
+  0xd6,0x31,0x9d,0xca,0xe6,0x70,0xd7,0x92,0x26,0xf8,0x4,0xcb,0x4f,0xb8,0x79,0x74,
+  0x8f,0x6a,0xe2,0x13,0xc,0xdf,0xea,0x6c,0x46,0x2a,0x6b,0xe1,0xc5,0xb7,0x4f,0x68,
+  0x2d,0xad,0x84,0x3a,0xf9,0xb7,0xa7,0x4b,0x71,0x7a,0x27,0x71,0xf1,0xdc,0xb9,0x76,
+  0x79,0x5c,0x9d,0x7b,0xfb,0xd7,0xe9,0x4c,0x36,0xf7,0xe2,0xe1,0x6e,0xed,0x37,0x80,
+  0xfb,0x6f,0x6b,0x46,0xc4,0xcf,0x8b,0xf7,0x70,0xe6,0x11,0xb4,0x2b,0x91,0xa0,0x81,
+  0xfb,0x6f,0x6f,0x85,0x4f,0x30,0xbc,0xf4,0xce,0x47,0x3a,0x9d,0xc9,0x9a,0xea,0xec,
+  0xa1,0xbd,0x18,0xbb,0x32,0x51,0x61,0x8e,0x2b,0x97,0x80,0x2,0x20,0x3d,0x62,0x63,
+  0xe0,0xe3,0xcb,0xd4,0x7f,0xf2,0xf7,0x89,0xe1,0xeb,0x78,0xee,0xc0,0x7,0x5a,0x4a,
+  0x89,0x7,0x56,0x2c,0xc0,0xc2,0xba,0x40,0xde,0xaf,0xa5,0xac,0x1e,0x4d,0x66,0x29,
+  0xb1,0xfa,0x20,0x1e,0x58,0xb1,0x0,0xb6,0x54,0x78,0xee,0xf5,0xe3,0x3a,0x31,0x34,
+  0x6,0xea,0xeb,0x7e,0x12,0x57,0x4e,0x5f,0x2e,0xe0,0x2a,0xc6,0x29,0x99,0xe7,0x90,
+  0x21,0x4,0xa0,0xc6,0x91,0x30,0x80,0x10,0x80,0x1a,0xbe,0x7a,0xc7,0x3d,0x6c,0xc9,
+  0x5d,0x7b,0xc3,0x35,0xa1,0xe0,0x23,0xf,0xdd,0xcd,0x3b,0x9a,0xeb,0xd0,0x37,0x3c,
+  0x81,0x73,0x3,0xa3,0xc8,0xc9,0xf9,0xf1,0xf9,0xa0,0xc1,0xb1,0x66,0x51,0x23,0x3a,
+  0x5b,0xa2,0x18,0x1c,0x49,0xe2,0xc5,0x37,0x4f,0xe8,0xb4,0x99,0x35,0xa9,0xaf,0xfb,
+  0x4f,0xba,0xf7,0x70,0x37,0x80,0x8c,0x23,0x59,0x0,0x69,0xe7,0xf7,0x38,0x11,0xd9,
+  0x5e,0x2,0xcc,0x43,0xa0,0xc6,0x25,0x0,0x20,0x84,0x8e,0xd,0xcb,0xc4,0x9a,0x87,
+  0x9e,0xe4,0x86,0xbf,0x6d,0xdb,0xa6,0x75,0x6c,0xf3,0xca,0x45,0x0,0x80,0xcf,0x13,
+  0x49,0x9c,0x8f,0x8f,0xc3,0xb2,0x67,0x77,0xcc,0xe4,0xf7,0x19,0x58,0x1d,0xab,0xc5,
+  0xed,0x6d,0xf9,0x9d,0xf3,0xf,0x7b,0x7,0x70,0xa4,0xfb,0xc,0x69,0x69,0xd,0xa9,
+  0x9e,0x37,0xfe,0x80,0xaf,0x7b,0xfa,0x1c,0xd0,0x59,0xf,0x81,0xc,0x80,0x71,0x0,
+  0x26,0x11,0x15,0x1f,0x70,0x78,0x48,0x84,0xca,0xa4,0xa1,0xbd,0x49,0xac,0xfb,0xe1,
+  0x6f,0x11,0xa9,0xbf,0xa7,0xa1,0x36,0xac,0x1f,0xfc,0xe6,0x6a,0x7e,0xe7,0xd2,0x36,
+  0x68,0x2,0xe2,0x63,0x19,0xc,0x8e,0xa6,0x31,0x78,0x3d,0x3d,0xa5,0x55,0x82,0x4e,
+  0x62,0xea,0x68,0xc,0x23,0xd6,0x50,0x3,0xce,0x80,0xb3,0x97,0x12,0x38,0xda,0x7d,
+  0x5e,0x8f,0xa5,0xd3,0x1c,0x99,0xd1,0x6e,0x75,0xf2,0xe5,0xfd,0x48,0xc6,0xaf,0x3,
+  0xc8,0x79,0x8,0xb8,0x32,0xe,0xc0,0xf2,0xd4,0x57,0xe5,0xcb,0x35,0xc6,0x58,0xc0,
+  0x3,0x3e,0xe8,0x15,0xbe,0x72,0xfb,0x7a,0x74,0xac,0xfd,0x5,0xb,0x84,0xef,0x68,
+  0x6b,0x6e,0xd0,0xeb,0xef,0x58,0xc2,0x57,0x2c,0x6a,0x45,0x7d,0x24,0x8,0x22,0xc2,
+  0x44,0xd6,0x46,0xca,0x94,0xc8,0xda,0xa,0x39,0x2b,0x6f,0x99,0xa0,0xdf,0x40,0xc8,
+  0x27,0x10,0x9,0x18,0x88,0x86,0x7c,0x60,0x8c,0xe1,0x46,0x2a,0x87,0xcf,0x6,0xae,
+  0xe2,0xd4,0xc5,0x7e,0x9d,0x18,0x19,0xe3,0x64,0xa6,0x3f,0xc7,0xc0,0x27,0x7f,0xd5,
+  0x9f,0x1d,0x3d,0xd,0xc0,0x74,0xc0,0x7b,0x25,0x5,0x20,0x4d,0x54,0x1c,0xab,0xab,
+  0x1f,0x31,0xe5,0xad,0x11,0x74,0x48,0x4,0x9c,0xdf,0x1,0x0,0x7e,0x0,0x1,0xbe,
+  0xfe,0x47,0x5b,0xd1,0xba,0xec,0xa7,0xcc,0x8,0x2c,0x7,0x80,0x58,0x4b,0xa3,0x5e,
+  0xb9,0xa4,0x9d,0x37,0xd7,0x85,0x51,0x1b,0xe,0x22,0x1a,0xa,0x20,0x1c,0x72,0xe,
+  0xba,0xb3,0x26,0x26,0xb2,0xf9,0xc3,0xee,0x91,0x64,0x1a,0xbd,0xfd,0x57,0x74,0x7c,
+  0x78,0x34,0x5f,0xca,0x4b,0xf3,0x4b,0xc4,0x2f,0xbe,0xa0,0x7b,0x5e,0x79,0xf,0x80,
+  0xe5,0x80,0xb7,0x3c,0x24,0xb2,0xe,0x78,0x59,0x51,0xd9,0x53,0x1d,0x1b,0xe5,0x79,
+  0xc0,0x70,0x8,0xd4,0x38,0x4,0xfc,0x85,0x6c,0xb8,0x74,0xe3,0x22,0xde,0xbe,0x76,
+  0x2b,0xc2,0x8d,0xdf,0x66,0x3c,0x74,0x27,0xc4,0x14,0x7f,0x35,0x50,0xd0,0xa4,0xb3,
+  0xe7,0x90,0xbc,0xf6,0xbe,0x8e,0xf7,0xbc,0x87,0xcb,0x1f,0xf,0x3a,0xd1,0xc5,0x15,
+  0xcb,0xf1,0xf3,0x34,0x0,0xbb,0x54,0xe3,0x73,0x3a,0xa9,0xf7,0x90,0x71,0x2d,0xe2,
+  0x73,0xda,0x6,0x0,0x81,0xa6,0x5b,0x23,0x58,0x70,0xdb,0x42,0x11,0x6e,0x6a,0x25,
+  0x23,0xd4,0x2,0x7f,0x4d,0x33,0x0,0x6,0x2b,0x33,0xcc,0xac,0xec,0x35,0x95,0x1a,
+  0x19,0xc2,0xb5,0x2f,0xe3,0xb8,0x76,0x39,0xed,0x84,0x6e,0x6f,0xf8,0xce,0x38,0x1a,
+  0xb7,0x69,0x6,0xa0,0xe6,0xf4,0x67,0xf,0xc7,0xcd,0x98,0x93,0x10,0x79,0x69,0x9a,
+  0x77,0xc4,0x4d,0x94,0xca,0x23,0xda,0xf3,0xad,0xf3,0x6b,0x96,0xd9,0xe1,0xf8,0x37,
+  0xce,0x9a,0x13,0x75,0x29,0xc,0xe8,0xbc,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,
+  0xae,0x42,0x60,0x82,
+    // /home/maemo/tietoopcom/resources/busy.png
+  0x0,0x0,0xc,0x2f,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x30,0x0,0x0,0x0,0x30,0x8,0x6,0x0,0x0,0x0,0x57,0x2,0xf9,0x87,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0x14,0xc3,0x0,0x0,0x14,0xc3,0x1,
+  0x15,0x70,0x4d,0x42,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd8,0xc,0x11,
+  0xa,0x34,0x21,0xe5,0x38,0x8f,0x66,0x0,0x0,0xb,0xaf,0x49,0x44,0x41,0x54,0x68,
+  0xde,0xd5,0x9a,0x7b,0x8c,0x54,0xd7,0x7d,0xc7,0x3f,0xe7,0x9c,0x7b,0xef,0xcc,0xce,
+  0x2e,0xec,0x3,0xd8,0x7,0x8f,0xe2,0x12,0xf3,0x6a,0x8a,0x3,0x36,0x75,0x9,0xd8,
+  0x4d,0x63,0xc0,0x46,0x4e,0xab,0xda,0xb8,0x8a,0x2a,0xd7,0xaa,0x2c,0x5b,0x55,0xa5,
+  0xf4,0x8f,0xaa,0x92,0x1b,0xb9,0x11,0xb5,0xd4,0xd6,0xa5,0x96,0x43,0xab,0x10,0xf5,
+  0x2f,0x57,0x45,0x89,0xe4,0xe6,0xf,0x2b,0x1,0xc7,0x91,0x1b,0x87,0x3a,0x72,0x14,
+  0x87,0x9a,0x46,0x16,0x10,0x87,0x60,0x1c,0x1b,0x8c,0x61,0x81,0xdd,0xf5,0xee,0xb2,
+  0x3b,0xcc,0xce,0xde,0xc7,0x79,0xf4,0x8f,0x7b,0xef,0xee,0x9d,0x61,0x16,0x30,0xd0,
+  0xd7,0x48,0xdf,0xb9,0x73,0x7e,0xe7,0x9e,0x7b,0xbe,0xdf,0xdf,0xf9,0x9d,0xe7,0x1d,
+  0xf8,0x7f,0xfe,0x11,0xb7,0xf2,0x61,0x7b,0xfa,0x68,0xaf,0x85,0x2c,0x2b,0xb,0x16,
+  0x6b,0x18,0x20,0x5,0xc0,0x45,0xf,0x2e,0x86,0x8e,0xb,0x1d,0x65,0xce,0x3d,0x35,
+  0xcc,0xd4,0xff,0x19,0x1,0xcf,0x2e,0x60,0xb9,0x84,0x87,0x30,0x3c,0xc,0xdc,0xb,
+  0xc8,0x6b,0x14,0xb1,0xc0,0x9b,0x28,0xe,0x58,0x78,0x79,0xd7,0x18,0x1f,0xfd,0xaf,
+  0x8,0xd8,0xdd,0xc5,0x43,0x28,0x9e,0xc1,0xb0,0x1,0x60,0x63,0x80,0xd9,0xde,0xde,
+  0xa6,0xdc,0xd2,0x95,0xd0,0xdd,0xf,0xf3,0x7b,0xa1,0x67,0x51,0x7a,0xf3,0xf8,0xc7,
+  0x50,0x1d,0x81,0x4b,0x43,0x88,0xc1,0xf7,0xf9,0xf7,0xa9,0x69,0xf3,0x76,0x8c,0x2,
+  0x40,0x71,0x14,0xc3,0xdf,0x7c,0x65,0x82,0x97,0xff,0x47,0x4,0xec,0xee,0x62,0xb,
+  0xb0,0x7,0xd8,0x74,0x67,0x80,0x79,0xa0,0xaf,0x4f,0xb9,0xd,0xf,0x40,0xef,0xd2,
+  0xf4,0x6,0x1d,0x1,0xa,0xac,0x4d,0x1,0x20,0x65,0xa,0xc,0x78,0xa5,0xd4,0x36,
+  0x32,0x88,0x38,0xfa,0x3,0x7e,0x30,0x3c,0x6c,0x8e,0xa4,0x62,0xe,0x3,0x4f,0x7d,
+  0x65,0x82,0x43,0xff,0x2d,0x2,0x9e,0xeb,0xa5,0xd3,0xc6,0xfc,0xb,0xf0,0xc8,0xa,
+  0xf,0xf3,0xc5,0x35,0x6b,0x14,0x9b,0x76,0x66,0xa4,0x35,0xc4,0x9,0xc4,0xf1,0xf5,
+  0x3d,0x2c,0x8,0x20,0xf0,0xc1,0xf3,0xd2,0xf4,0xe1,0xfd,0xbc,0x74,0xf2,0xa4,0x39,
+  0xad,0x51,0xc0,0x77,0x64,0xc0,0x93,0x4f,0x8f,0x30,0x79,0xcb,0x4,0x3c,0xbb,0x80,
+  0x95,0x9e,0xe1,0x55,0x9,0x9f,0xfa,0x8b,0x65,0xdd,0xd2,0x6d,0x7d,0x22,0xf5,0x64,
+  0x18,0x42,0x18,0xdd,0x5c,0x27,0x2a,0x97,0xa0,0x5c,0x86,0x78,0x1a,0xf1,0xc6,0x37,
+  0xf8,0xea,0xb9,0x4b,0xd6,0xc2,0x29,0xad,0xf8,0xc2,0xae,0x31,0xde,0xbf,0x69,0x1,
+  0xcf,0x75,0xb1,0xcd,0xc2,0x77,0xfa,0x15,0xed,0x8f,0xdf,0xb7,0x43,0xb1,0xfc,0xce,
+  0xd4,0xd3,0x61,0x34,0x1b,0x22,0x37,0xfa,0x29,0x86,0x58,0xa5,0xd,0xbc,0x32,0xbc,
+  0x7f,0x98,0x7d,0xff,0xf1,0xba,0x19,0x31,0x4c,0x49,0x78,0xe4,0xe9,0x9,0x5e,0xbf,
+  0x61,0x1,0x19,0xf9,0xd7,0x36,0xb6,0xc3,0xb6,0xed,0x8f,0x2b,0x16,0x2e,0x86,0xda,
+  0x54,0x1a,0x32,0x37,0x4b,0xba,0xd5,0xc7,0x2b,0x41,0xa5,0x2,0xa3,0xe7,0x39,0x78,
+  0xf0,0x9b,0xe6,0x48,0xc,0x12,0x76,0x5c,0x4d,0x84,0xb8,0x5a,0xd8,0x48,0xc3,0xdb,
+  0x1b,0xdb,0x69,0xdf,0xf6,0xc8,0x9f,0x2b,0x3c,0xf,0x6a,0xe1,0x8d,0x79,0xfd,0x5a,
+  0x65,0x6c,0x61,0xe4,0x95,0x12,0x3a,0x4a,0x10,0x27,0x1c,0xdc,0xbf,0xd7,0x1c,0x89,
+  0x99,0xb2,0x8a,0x8d,0x73,0x85,0x93,0x9c,0xab,0xc3,0x7a,0x86,0x57,0xfb,0x15,0xed,
+  0xdb,0xb6,0xfe,0x51,0x4a,0xbe,0x5a,0xff,0x64,0xe4,0xf3,0x51,0x68,0xae,0x32,0x56,
+  0xce,0xa2,0xb9,0x5c,0x75,0x1a,0x3c,0xc5,0xfd,0xf7,0x3d,0xa6,0xfa,0x15,0xed,0x9e,
+  0xe1,0xd5,0xe7,0x7a,0xe9,0x6c,0xf5,0x18,0xd5,0xca,0x78,0x9f,0xcf,0xbf,0x2a,0xd8,
+  0xfc,0xa5,0xcf,0xed,0x50,0x2c,0x59,0x9,0xd5,0x49,0xd0,0x31,0x58,0x7d,0x7d,0xb8,
+  0xe2,0xde,0x26,0x41,0x7a,0x8e,0x32,0x26,0x99,0x45,0x14,0x43,0xd7,0x22,0xd6,0x97,
+  0xcb,0xf2,0xad,0xf3,0x1f,0x76,0x1b,0xc3,0xaa,0x1f,0x86,0xbc,0x74,0xcd,0x10,0xca,
+  0xc6,0xf9,0x9f,0xfc,0xe5,0xf2,0x5,0xb8,0xed,0x7f,0x2,0xd5,0xd1,0x74,0xb4,0xb9,
+  0xde,0xb0,0xb0,0xf2,0x13,0x86,0x93,0x37,0x77,0x7e,0xb9,0x4,0xf3,0x17,0x22,0x5e,
+  0xf9,0x27,0xfe,0xbe,0x7a,0x19,0xe0,0x9e,0xe6,0x79,0xc2,0x6b,0xb5,0xa4,0x59,0xe1,
+  0x61,0xdc,0xe7,0x1f,0x57,0xd4,0x2f,0x43,0x58,0x9b,0xbb,0x72,0x7d,0x13,0xb1,0x5e,
+  0x7c,0x48,0xcb,0x72,0x1e,0xd4,0x34,0xc8,0x0,0xf7,0xe0,0x1f,0x73,0xdb,0xb7,0xff,
+  0xd1,0x9c,0xd1,0xec,0x1,0x3e,0x3b,0x67,0x1f,0xd8,0xdd,0xc5,0x43,0xc0,0xa6,0x2f,
+  0xae,0x59,0xa3,0x90,0x3e,0xd4,0xc6,0xd2,0xe6,0xce,0xd1,0x1c,0x6,0x14,0x90,0xe7,
+  0x17,0xef,0xcf,0x11,0xc7,0x29,0x74,0x38,0x7,0x5a,0x94,0xc9,0xf3,0x26,0x86,0x1,
+  0x8f,0x3f,0xe8,0xbd,0x4d,0x1,0x9b,0x32,0x8e,0x73,0x74,0x62,0xc5,0x33,0x77,0x6,
+  0x18,0x36,0xed,0x4c,0x43,0x47,0x87,0x8d,0x24,0x73,0xc4,0xf1,0x95,0x15,0xa2,0xc1,
+  0xc6,0x8d,0xf7,0xd9,0xb8,0xd1,0xd6,0x4a,0xd4,0x5c,0xc2,0xf2,0xbc,0x30,0x84,0xea,
+  0xc7,0xf0,0xdb,0x7f,0xc8,0x1d,0x3e,0x6,0xc5,0x33,0x2d,0x5,0x3c,0xbb,0x80,0xe5,
+  0x18,0x36,0x3c,0xd0,0xd7,0xa7,0xb0,0x16,0xea,0xe3,0x8d,0x1e,0xd,0xb,0x98,0xcb,
+  0xd3,0xcd,0x28,0xb6,0x96,0x6e,0xd1,0x5a,0xcd,0xf9,0xd,0x65,0xb,0x4e,0x1a,0x1d,
+  0x6,0x9b,0xf0,0x85,0xa0,0x53,0x61,0xd8,0xf0,0xec,0x2,0x96,0x5f,0x21,0x40,0x92,
+  0x36,0x8d,0x5b,0xb7,0x15,0x6a,0x93,0xa9,0x17,0x8a,0xde,0xf3,0xa,0x1e,0x6d,0xf6,
+  0x74,0x2b,0x34,0xb,0x69,0x6e,0x2d,0xae,0xd1,0x6a,0x36,0x6,0xf2,0xd6,0xa8,0x43,
+  0x6d,0x12,0xf7,0x1b,0xbf,0xdb,0xc0,0xb5,0xb1,0x13,0x1b,0x1e,0xde,0x18,0x60,0xe8,
+  0x5f,0xa1,0x18,0xf9,0x0,0x5c,0xda,0xb1,0x5e,0x1f,0xa9,0x51,0xab,0xcf,0xce,0x1,
+  0x4e,0x8,0x9c,0x73,0x58,0x6b,0x11,0x22,0x1d,0xc4,0x9c,0x31,0x20,0xe5,0x6c,0xda,
+  0xb9,0x96,0x79,0xcd,0xf6,0x72,0xa5,0x82,0x2c,0xe4,0x29,0xa5,0x90,0x32,0xf5,0xa9,
+  0x10,0x82,0x40,0x4a,0xba,0x7b,0x17,0xb0,0xee,0xc2,0x70,0x1a,0x46,0x8b,0x57,0xb3,
+  0x3e,0xc0,0x1c,0x8b,0x79,0x18,0xd8,0x3b,0x23,0x60,0x4f,0x1f,0xed,0x71,0xc4,0xbd,
+  0xdb,0xdb,0x4a,0xd2,0x1,0x44,0x13,0x33,0xcb,0x85,0xa9,0xfa,0x34,0xb5,0x5a,0x8d,
+  0xae,0xae,0x2e,0x4a,0xa5,0x12,0x25,0xd4,0xc,0x11,0xbf,0xec,0x23,0xa5,0x24,0x8a,
+  0x22,0x30,0xcc,0xa6,0xeb,0x51,0xcb,0xbc,0x24,0x4c,0x1a,0xec,0xbe,0xf4,0x91,0xbe,
+  0xc4,0x5a,0x4b,0x92,0x24,0x60,0x40,0x5,0x8a,0x50,0x6b,0xc2,0x30,0x64,0xac,0x56,
+  0xc3,0xf3,0x3c,0x90,0x16,0xc6,0x47,0xa0,0x7f,0x15,0xf7,0x6b,0xd4,0x31,0xb8,0x77,
+  0x4f,0x1f,0xed,0x4f,0xd,0x33,0xe5,0x1,0xd4,0x42,0x96,0x5,0x2,0xe9,0x96,0xae,
+  0x84,0xfa,0x65,0x30,0x61,0x3a,0x43,0x64,0x5e,0x9f,0x37,0x6f,0x1e,0x72,0xd7,0x5f,
+  0xb1,0xa0,0xbf,0x1f,0x25,0x15,0x20,0x10,0x2,0x84,0x14,0x20,0x4,0x1d,0x8,0x8c,
+  0x31,0x33,0xe9,0x36,0x63,0x5b,0xe6,0x39,0xeb,0x1a,0xec,0x8,0x1,0xb8,0xac,0xb1,
+  0x5d,0xd6,0x7a,0xd0,0x6e,0x34,0xd5,0x5f,0x1c,0x27,0xfe,0xfa,0xd7,0x31,0xc6,0x40,
+  0x92,0x2d,0xd3,0xeb,0x97,0x91,0x8b,0x56,0xc0,0xf0,0x69,0x59,0xb,0x59,0x6,0x9c,
+  0xf4,0x0,0xca,0x82,0xc5,0x16,0xa0,0xbd,0x37,0x8d,0xb7,0xc2,0x62,0xcd,0xe1,0x8,
+  0xfc,0x80,0xee,0xee,0x6e,0x3a,0xe7,0x77,0x62,0xac,0x6,0x21,0x90,0x52,0xa2,0xa4,
+  0x44,0x66,0x88,0xe2,0x78,0x26,0x9d,0x68,0xdd,0x32,0xcf,0x58,0xdb,0x60,0xf,0xfc,
+  0x12,0x42,0xa4,0xa4,0x67,0xea,0x73,0x96,0x44,0x1b,0xa6,0x56,0xac,0x40,0x49,0x81,
+  0xb5,0x16,0x5c,0x26,0x40,0x87,0xd0,0x39,0x0,0xc3,0xa7,0x29,0xb,0x16,0xcf,0x8,
+  0xd0,0x30,0x20,0x21,0xdd,0x6,0xc6,0xd3,0x20,0x32,0x1,0x71,0x1a,0xe7,0x4a,0x8,
+  0x94,0x52,0x18,0xa3,0x89,0xe2,0x30,0xb5,0x79,0xa,0xe7,0xf9,0x78,0x28,0xa4,0x14,
+  0x24,0x49,0x34,0x93,0x2e,0xfe,0x2e,0xe6,0x69,0x9d,0x34,0xd8,0x4b,0xa5,0xa0,0x40,
+  0xdc,0x65,0x73,0xa1,0xc5,0x5a,0x87,0x92,0x12,0xcf,0xf3,0xd2,0x51,0x26,0x77,0x68,
+  0x18,0x41,0xcf,0xe2,0x7c,0xfa,0x1b,0x28,0x76,0xe2,0xf4,0xf4,0xa0,0xa7,0x1f,0x26,
+  0xce,0xce,0x36,0x99,0x0,0x9c,0xc0,0x58,0x87,0xb3,0xe,0x63,0x2d,0x5a,0x6b,0xa4,
+  0x4c,0x43,0xc8,0x88,0xd9,0x95,0x88,0x35,0x66,0x26,0x5d,0xfc,0x5d,0x4c,0x37,0xdb,
+  0x1b,0xd6,0x34,0x99,0x3d,0xbf,0xe2,0x32,0x31,0x45,0x1,0xf5,0x2a,0x2c,0x9c,0x19,
+  0x41,0x7,0xe6,0x5a,0x4a,0x34,0x84,0x90,0x75,0xa,0x63,0xd,0xc6,0x1a,0xac,0xb3,
+  0x68,0xa3,0x51,0x28,0x84,0x31,0x14,0x5a,0x1e,0x53,0x48,0x9b,0x39,0xf2,0x6c,0x93,
+  0xbd,0xf9,0xe3,0x66,0x62,0xc9,0x61,0xad,0x41,0x6b,0x9d,0xae,0x56,0xae,0xb2,0x55,
+  0xcd,0x5,0x5c,0x4,0x60,0xf4,0x42,0xba,0x4f,0x75,0xb3,0xcb,0x60,0x29,0xfd,0xa6,
+  0xe1,0x4d,0x62,0xad,0x43,0x63,0xf1,0x10,0x18,0x34,0xce,0x81,0x36,0xb3,0xe9,0xe2,
+  0xef,0x62,0x5e,0xb3,0xdd,0x5a,0x8b,0x73,0xb9,0xd7,0x1d,0xce,0xe5,0x0,0x84,0x4c,
+  0xeb,0x5,0xf0,0x2c,0x44,0x36,0xdd,0xb1,0x8d,0x8f,0x52,0xe4,0xec,0x65,0x5f,0x17,
+  0x2d,0xc0,0xe8,0x10,0x2c,0xbd,0xd,0xa1,0x13,0x50,0x16,0x12,0xc0,0xb5,0x65,0xe3,
+  0x34,0x94,0x82,0x12,0x42,0x48,0xa4,0x10,0x8,0x21,0x10,0x59,0x93,0x4b,0x29,0x91,
+  0x15,0x35,0x93,0xf6,0xbc,0x52,0xcb,0x3c,0x97,0x45,0x65,0x6e,0x8f,0xa2,0x18,0x6b,
+  0x5d,0x3a,0xa2,0x65,0x22,0x8c,0x99,0x15,0x92,0x1f,0x22,0x89,0x38,0x2,0x1,0xce,
+  0x2b,0xc3,0xe0,0xa9,0xdc,0xf3,0xb3,0x2,0x42,0xc7,0x85,0x40,0x0,0xd5,0x21,0xf0,
+  0x56,0x3,0x31,0x98,0x74,0xca,0x73,0xd6,0x50,0xaf,0xd7,0xe9,0x72,0x8e,0xd1,0xb1,
+  0x31,0xc2,0xe9,0x69,0x2a,0x95,0xa,0xa5,0xa0,0xcc,0x74,0x58,0x47,0x49,0x45,0xa5,
+  0x52,0x41,0x6b,0x33,0x93,0xe,0x82,0x52,0xcb,0xbc,0xb6,0x72,0xa5,0xc1,0x1e,0xc7,
+  0x9a,0xb1,0xb1,0x51,0x9c,0x83,0x9e,0x9e,0x6e,0xb4,0xd6,0x4c,0x87,0xd3,0x94,0x82,
+  0x12,0xbe,0xef,0x93,0x24,0x49,0x3a,0xa,0xe5,0x21,0xed,0x95,0x61,0xe4,0x2,0x39,
+  0xe7,0x19,0x1,0x1d,0x65,0xce,0xc5,0x11,0x96,0xb3,0xbf,0x94,0x6c,0xde,0x9,0x31,
+  0x20,0x35,0x38,0x8b,0x90,0x8a,0xb3,0x67,0xce,0x70,0xe9,0xb1,0x47,0x53,0xaf,0xb,
+  0x81,0x4,0x8c,0x73,0x94,0x7c,0x1f,0xa4,0xc4,0x98,0x34,0x5e,0xf3,0x74,0x14,0x45,
+  0x2d,0xf3,0xa2,0x24,0x69,0xb0,0xf7,0xf5,0xf5,0xe1,0x9c,0x63,0x72,0x72,0x92,0x53,
+  0x61,0x98,0xb6,0x96,0xf0,0x48,0x74,0x84,0x31,0x86,0x5a,0xbd,0xce,0xba,0xb5,0x6b,
+  0xd3,0x3e,0x20,0xcb,0xd0,0xd1,0x43,0x3c,0xf1,0x21,0x78,0xd8,0x8e,0x32,0xe7,0x98,
+  0xcc,0x4,0x3c,0x35,0xcc,0xd4,0xee,0x2e,0xde,0x7c,0xcd,0xe3,0x9e,0x1d,0x28,0xe5,
+  0xda,0xfb,0x10,0xb5,0xf4,0xc4,0xaf,0xb7,0xbb,0x8b,0xce,0x8e,0x4f,0xa3,0xb3,0x3e,
+  0xa1,0x94,0x42,0x6b,0x8d,0x31,0x6,0xcf,0xf3,0x70,0xce,0x91,0x24,0x9,0x32,0x1b,
+  0xf6,0x9c,0x73,0x73,0xe6,0x69,0xad,0x1b,0xec,0x49,0x14,0xe1,0x95,0x3c,0x7a,0xba,
+  0xba,0xd0,0xd6,0xe2,0x79,0x1e,0x65,0xcf,0xc3,0x48,0x87,0xb0,0x82,0xb6,0xc0,0xa7,
+  0xdc,0x56,0x81,0x8f,0x34,0xae,0x2d,0x3d,0xe5,0x3b,0xe8,0x63,0x70,0xfc,0x24,0x3f,
+  0x5f,0xf5,0xa,0x4b,0xe9,0x3,0xc7,0x62,0x3e,0xb7,0x63,0xe8,0x1c,0x54,0x96,0xc2,
+  0xa5,0x74,0xf,0xbd,0xf9,0xd2,0xb1,0x2b,0x37,0x2b,0x73,0x6d,0x5c,0x22,0x7b,0x7d,
+  0xbb,0xb0,0xeb,0xbd,0xaf,0x68,0x5f,0xba,0xe,0x86,0x3e,0xe4,0xb8,0x43,0xa1,0x38,
+  0x70,0xc5,0x6a,0xd4,0x92,0x9e,0x4d,0x8a,0xb7,0xe,0x40,0xef,0xed,0xb3,0xc3,0x69,
+  0x12,0xa7,0x30,0x7a,0x16,0xce,0x36,0xa6,0x8d,0x86,0xa9,0xb8,0xf5,0xb2,0x38,0x2f,
+  0x9b,0x3f,0x27,0x89,0xd3,0xf0,0xcc,0xd1,0xb0,0x2f,0x98,0x6b,0xbf,0x20,0xa1,0x77,
+  0x39,0xe2,0xd0,0xfe,0x6,0xae,0xd,0x2,0x76,0x8d,0xf1,0x91,0x85,0x63,0xdf,0xd3,
+  0x97,0xd,0xd6,0xe2,0xe6,0xaf,0x6,0x91,0x55,0xd6,0xf2,0xa1,0x4d,0x24,0x55,0x41,
+  0x4c,0x91,0xac,0xbe,0x72,0x3,0xe4,0x92,0x64,0x16,0xca,0xcc,0xc0,0x98,0x2,0x9c,
+  0x9b,0x81,0x1b,0x58,0xf,0xc0,0x77,0x83,0xc4,0x58,0x78,0x67,0xd7,0x18,0x43,0xad,
+  0x76,0x64,0x41,0x35,0x62,0xcf,0xf1,0x4,0xc5,0xf,0xbf,0x5,0xcb,0x36,0x81,0xb,
+  0x60,0xba,0x40,0xaa,0xd9,0xeb,0xb9,0x3d,0x27,0x25,0x32,0x28,0x83,0x33,0x29,0x9a,
+  0xc9,0x24,0xce,0x35,0xee,0x1c,0xe2,0x59,0x58,0xae,0x84,0xf2,0x7d,0x58,0xb3,0x19,
+  0x5e,0xdb,0xc7,0x9,0x87,0x1a,0x9d,0xe2,0x6b,0x40,0x1b,0xe0,0x17,0x5,0x48,0x20,
+  0x78,0x7e,0x9a,0xd7,0x63,0xc7,0xd1,0x17,0xab,0x83,0xe9,0xfa,0x70,0xde,0x67,0x40,
+  0x66,0xe4,0x4c,0x13,0x29,0x63,0x48,0x8c,0x21,0x69,0x41,0x2a,0x76,0x10,0xfb,0xe9,
+  0x60,0x36,0x93,0xce,0xa0,0x9b,0xe1,0x5f,0x1d,0x6e,0xe0,0x6e,0xc0,0xe3,0x45,0x3d,
+  0x6a,0x43,0xc7,0xcf,0xbe,0x96,0xf0,0x23,0xa0,0x94,0x41,0xe4,0x2,0xfc,0x1c,0xbf,
+  0x9c,0xe4,0xf9,0x41,0x83,0x14,0x7,0xf6,0xc2,0xaa,0x2d,0x50,0x5e,0x8a,0xd,0x1a,
+  0xc9,0xe5,0x95,0xdb,0x2,0x8a,0xa4,0x6c,0xee,0xd9,0x42,0xfa,0x46,0xd0,0xa6,0x16,
+  0xc1,0x9a,0x7b,0xe1,0xdb,0x5f,0x65,0x10,0xe4,0xf1,0x49,0xf6,0x16,0xb9,0x2,0x5e,
+  0x7e,0xb0,0x15,0xe4,0xaa,0x7e,0xe,0xe3,0xbf,0xe9,0xb1,0xf6,0x88,0x72,0xcb,0x37,
+  0xc7,0x46,0xf0,0xe9,0xfb,0x91,0x67,0x7f,0x46,0xe8,0x69,0x8c,0x69,0xac,0x40,0xa7,
+  0x27,0xfe,0x98,0x3c,0xed,0xa,0x69,0x75,0x73,0x98,0xa7,0x15,0x6e,0xcb,0x93,0xf0,
+  0xee,0x61,0x9e,0xaf,0x9d,0x73,0x93,0x11,0x3f,0xfe,0x67,0xcd,0x8b,0x85,0x6a,0x35,
+  0xa0,0x8b,0x2,0x82,0x4c,0x55,0x70,0x2e,0xe6,0xc8,0xba,0x12,0xdb,0x4e,0x4e,0xe,
+  0x76,0xdc,0xd5,0xf3,0x29,0xc1,0xe2,0xf5,0x88,0x8b,0x47,0x89,0xfc,0xb4,0x84,0x51,
+  0xcc,0x88,0x69,0x16,0x71,0x2b,0x50,0x4e,0xc0,0xdb,0xf8,0x24,0x54,0xc7,0x79,0xe1,
+  0xc4,0xf7,0xed,0x84,0x65,0xe8,0x1b,0x35,0x9e,0xae,0x42,0x9d,0x74,0x81,0x93,0xe4,
+  0x1,0xa1,0xa,0x47,0x8c,0x7e,0x36,0x2f,0xf8,0x13,0xe0,0xa6,0x22,0x8e,0x2c,0x2b,
+  0xf1,0xe0,0xe4,0xe0,0xcf,0xd5,0xaa,0xd5,0xbf,0x25,0x64,0xcf,0x5a,0x4a,0x67,0x8f,
+  0x51,0xf3,0xb2,0x8a,0x14,0x68,0x73,0xeb,0x48,0xe7,0xe8,0x31,0xe0,0x6f,0x78,0x2,
+  0x4a,0x15,0x5e,0x79,0x73,0x9f,0x3d,0xe3,0x88,0x5e,0x9e,0xe4,0xcb,0xef,0xa5,0x6b,
+  0x9f,0xb8,0x9,0xa1,0x2a,0x1c,0x31,0xaa,0xc,0x1e,0xa0,0xce,0x43,0xbd,0x23,0xe4,
+  0x74,0x50,0x66,0xdb,0xf8,0xa9,0xff,0x74,0xab,0xfb,0xd7,0xa,0x56,0x6f,0xa7,0xfd,
+  0xf4,0x2f,0xa8,0x7a,0x31,0x3a,0xb9,0xf5,0xe4,0x7,0x74,0x3b,0x62,0xcb,0x97,0xe0,
+  0xf2,0x25,0x5e,0x79,0x73,0x9f,0x3d,0xe1,0xe0,0xd0,0x4,0x7f,0xfb,0x63,0x38,0xe,
+  0x44,0xe9,0x31,0x5,0x51,0x1,0xd3,0xaa,0xf0,0xe6,0x50,0x16,0xa0,0x0,0xf1,0x1e,
+  0xc,0xb5,0x87,0xbc,0xef,0x97,0xd9,0xf2,0xee,0x85,0xe3,0xea,0x2e,0xad,0x4,0x77,
+  0xff,0x3e,0x1d,0xa3,0x55,0x92,0x64,0x98,0xd8,0x7,0xa7,0x6e,0x1e,0x6d,0xe,0x7a,
+  0xe7,0xdd,0x1,0x9f,0x7d,0xc,0xde,0x3d,0xcc,0xb,0x27,0xbe,0x6f,0xcf,0x38,0xa2,
+  0x43,0x13,0xfc,0xdd,0xbf,0xa5,0xef,0xce,0xa6,0x33,0x44,0xd9,0x35,0x4,0x6a,0x80,
+  0x11,0x4d,0x7,0xbd,0x95,0x2,0xda,0xf2,0xeb,0x46,0xb8,0xfd,0x77,0x3a,0xd9,0x5d,
+  0x16,0xc,0x7c,0xb9,0x8e,0x60,0xe7,0x9f,0xa5,0x25,0x8e,0x7e,0x8f,0x21,0x77,0x9a,
+  0xba,0xbb,0xb1,0x77,0x1d,0x15,0x1,0xfd,0x62,0x5,0x6c,0x48,0xcf,0x7b,0xd8,0xbf,
+  0x97,0xe7,0x2b,0xb8,0x50,0x33,0xf4,0x72,0x8d,0xbf,0x3e,0x6,0xa7,0xa,0xe4,0xeb,
+  0x85,0x6b,0x35,0x13,0x73,0xc5,0xe9,0xb4,0x28,0x90,0x6f,0xc0,0x52,0x58,0xf0,0x68,
+  0x1b,0x4f,0x77,0x95,0xb8,0x67,0x29,0xd8,0xc7,0xbc,0x85,0x92,0x1d,0x4f,0x80,0x4d,
+  0xe0,0x83,0x9f,0x22,0x86,0xde,0xe1,0xbc,0xba,0x4c,0x5d,0x5d,0x83,0xb4,0x81,0x25,
+  0x66,0x1e,0xae,0xff,0xe,0xb8,0xfd,0x6e,0x90,0x3e,0xbc,0xb6,0x8f,0x17,0xf5,0xa8,
+  0x1d,0x4,0x39,0x1e,0xf2,0xd6,0xb7,0x42,0xfe,0xe1,0x2,0x8c,0x65,0x9e,0x9e,0x6e,
+  0x42,0x35,0x8b,0xff,0xab,0xbe,0xa1,0x29,0x15,0xc8,0x97,0x8b,0x78,0x10,0xee,0x5a,
+  0xdf,0xc1,0x9f,0x76,0x78,0xac,0xf9,0x35,0x81,0xfd,0xbd,0xd8,0x97,0x6e,0xcb,0x4e,
+  0xe8,0xff,0xd5,0x74,0xd1,0x35,0x7e,0x1e,0x26,0x86,0xa0,0xf6,0x31,0x44,0xd9,0xc9,
+  0x76,0xa9,0x3,0x3a,0x16,0x41,0x57,0x3f,0xf4,0x2c,0x49,0xdf,0xc2,0xc,0x7d,0x88,
+  0x38,0xb4,0x9f,0xef,0x6,0x89,0x3d,0xe1,0x90,0x35,0xcd,0x7b,0x6f,0xd7,0x78,0xe1,
+  0x20,0x1c,0x29,0xc4,0x7b,0x11,0x35,0x60,0x2a,0xb,0xf7,0xeb,0x7a,0x47,0x26,0x32,
+  0xd2,0x6d,0x99,0xa0,0x72,0x76,0xd,0x80,0xd2,0xa3,0xb0,0xf5,0xf6,0x4e,0x9e,0x28,
+  0xb,0x56,0x2,0xfc,0xba,0xc0,0xde,0x9f,0x20,0x83,0xf9,0xcb,0xa1,0x77,0x9,0x2c,
+  0x5c,0x92,0x1e,0x12,0x0,0x8c,0xf,0xc1,0xe8,0x79,0x18,0x39,0x4f,0x5c,0xfd,0x88,
+  0x83,0x3e,0xf6,0xb8,0x4b,0x57,0x1,0xa1,0xe6,0x83,0x93,0x35,0xbe,0xf9,0x12,0xbc,
+  0x91,0x79,0x36,0x2a,0x5c,0xf3,0x16,0xa8,0xb5,0x38,0xcc,0xff,0x44,0xef,0x89,0xbd,
+  0x4c,0x40,0xa5,0x69,0xce,0xf0,0x37,0xc1,0xaf,0xdc,0xa9,0xd8,0xda,0xd3,0xc6,0xe7,
+  0x2b,0x1e,0x9f,0xb9,0x9e,0xbf,0x1a,0xd4,0x35,0xef,0x8c,0x4e,0xf3,0xa3,0x23,0x86,
+  0x37,0x7e,0xa,0xe7,0xa,0x63,0x7b,0x92,0x91,0xaf,0x67,0xde,0x4e,0x9a,0x3d,0x7e,
+  0x2b,0xfe,0x6a,0xe0,0x15,0x5a,0x24,0x9f,0x3b,0x3c,0x40,0xdd,0x6,0x1d,0xab,0x60,
+  0x49,0x2f,0xf4,0x95,0x15,0xbd,0x15,0xc9,0x22,0x40,0xd4,0x2d,0x23,0xa1,0x61,0x74,
+  0x8,0x86,0x3e,0x80,0xb,0x67,0x52,0x72,0xa6,0x38,0xa3,0x66,0xa4,0xc3,0x8c,0xf4,
+  0x75,0xf,0xb,0x37,0xfb,0x67,0xf,0x91,0xa1,0x38,0xfc,0x36,0x23,0x1f,0xa6,0x4d,
+  0xd3,0xa4,0x5d,0x9c,0xbc,0xdd,0x8d,0x12,0xf8,0x2f,0x76,0xdc,0xf5,0xd8,0xec,0x51,
+  0x92,0x57,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/maemo/tietoopcom/resources/greenframe.png
+  0x0,0x0,0x6,0xd3,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x44,0x0,0x0,0x0,0x44,0x8,0x6,0x0,0x0,0x0,0x38,0x13,0x93,0xb2,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0x16,0x25,0x0,0x0,0x16,0x25,0x1,
+  0x49,0x52,0x24,0xf0,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x3,0xb,
+  0xf,0xd,0x2a,0xc,0xd,0xea,0x30,0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x43,
+  0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x0,0x43,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x77,
+  0x69,0x74,0x68,0x20,0x47,0x49,0x4d,0x50,0x57,0x81,0xe,0x17,0x0,0x0,0x6,0x2e,
+  0x49,0x44,0x41,0x54,0x78,0xda,0xed,0x9c,0x3d,0x72,0x1b,0x47,0x10,0x85,0xbf,0x37,
+  0x5a,0x9,0xc8,0x14,0x31,0x91,0xcb,0xba,0x80,0x22,0x5b,0x9,0x63,0x95,0x99,0xd9,
+  0x97,0xe0,0xb5,0x5c,0x66,0x95,0x73,0xdf,0x80,0x3a,0x0,0x33,0x47,0xd2,0x1,0x5c,
+  0x56,0xc4,0xc4,0xe5,0xc0,0x26,0x64,0x72,0x9f,0x83,0xf9,0xdd,0x25,0x40,0x0,0xb6,
+  0x8,0x80,0x0,0xb6,0x24,0x16,0xa,0x58,0xec,0xcc,0xbc,0xe9,0xd7,0x7f,0xd3,0xd,
+  0xbd,0xbe,0xf8,0xe,0x5b,0x1,0xf1,0x46,0x70,0x6a,0x38,0x11,0x74,0x98,0x1e,0xb1,
+  0x91,0xcb,0x18,0x59,0xc4,0xf1,0x1c,0xdf,0xb3,0x90,0x1e,0x6d,0x40,0x10,0x1,0x7c,
+  0x6b,0x73,0x2d,0x74,0x65,0xf9,0x83,0x4d,0xdf,0x25,0x30,0xce,0xb0,0xdf,0x82,0x3e,
+  0x4b,0xcc,0xc,0x33,0x6d,0x8,0xc,0x0,0x21,0x2c,0x67,0x2c,0xe2,0x3b,0x8a,0xb3,
+  0x7e,0xa4,0x1,0xc1,0x26,0x21,0xfe,0xd2,0xf0,0x3,0xf0,0x4a,0x70,0xd9,0x19,0xde,
+  0xc8,0xbc,0x95,0xf4,0x87,0x8d,0x5,0x28,0xee,0x59,0x46,0x72,0x43,0x52,0x52,0x4,
+  0x44,0x8,0xc7,0x59,0x3c,0xea,0x2e,0x34,0x83,0xf9,0x2f,0xa1,0x6f,0x2d,0x3e,0x75,
+  0xb2,0x4f,0x91,0x3e,0xa7,0x4f,0x67,0x36,0x77,0x19,0xba,0x22,0xc5,0x1b,0x80,0x43,
+  0x99,0x22,0xc2,0xc6,0xea,0x1f,0x89,0x32,0xed,0x1e,0x3b,0x8a,0x65,0x90,0x98,0x60,
+  0x3e,0x3,0xa7,0x1d,0xd2,0x49,0x2,0x2,0xe4,0x3b,0xa3,0xbf,0x15,0x49,0x8d,0xd0,
+  0x86,0x0,0x89,0xc8,0xbb,0xa1,0xd0,0x17,0x7,0x63,0x80,0x44,0x1c,0x3,0x59,0x36,
+  0x53,0xc,0xd8,0x96,0x38,0xe9,0x10,0x1d,0x66,0x96,0xa6,0xa2,0x80,0x6d,0x71,0x23,
+  0xc9,0x98,0xc4,0xed,0x35,0x26,0x38,0x1a,0x78,0x1d,0x44,0x1f,0x13,0x7c,0x27,0xbd,
+  0xa1,0xa,0xbe,0x30,0x93,0x20,0x8a,0x92,0x30,0x74,0x9d,0xa8,0xd6,0xa4,0xf7,0x60,
+  0x59,0x37,0xc6,0xfd,0x80,0x37,0xab,0x2c,0x50,0xb4,0x5b,0xbd,0xf5,0x6b,0x38,0xe5,
+  0xb8,0x70,0x40,0x32,0x53,0x2b,0xeb,0x29,0x2b,0x71,0xa1,0xef,0x86,0x5f,0x6c,0x11,
+  0x74,0xf,0xdc,0x0,0x7d,0xb1,0x86,0x91,0x4b,0xf7,0xd7,0x59,0x35,0x76,0x36,0xa2,
+  0xbb,0x80,0x45,0x63,0x50,0x8c,0xca,0xe2,0x91,0x60,0x5a,0x2c,0xd,0x4a,0x1f,0xc5,
+  0x79,0x77,0x43,0x28,0x95,0xd6,0xe7,0x64,0xfa,0xe8,0xc1,0x37,0x36,0x7d,0x65,0xf7,
+  0xbc,0x51,0x15,0x7,0x6d,0xb1,0xde,0xa4,0x89,0x5a,0x8a,0x8a,0xd2,0x9a,0x8,0xa0,
+  0x49,0x5e,0x5f,0xfc,0x67,0xdb,0xca,0xfa,0xbc,0x1,0x44,0xed,0xf7,0x55,0x36,0x1e,
+  0x14,0x41,0x11,0xbd,0x5c,0x65,0x60,0xb1,0x52,0x49,0x42,0xb9,0x65,0x30,0xe4,0x42,
+  0x8e,0xcc,0xe2,0x0,0x4c,0x2a,0x9f,0x93,0x6b,0x91,0x3e,0xcd,0xf7,0x76,0xcb,0xd5,
+  0x81,0x41,0xb2,0xcc,0x2c,0x59,0xa1,0x28,0x3b,0x9e,0xcf,0xd4,0x3c,0x91,0xc6,0xe9,
+  0xdc,0x9a,0x54,0xc8,0x98,0x2c,0x19,0xd2,0xf4,0xde,0x36,0x55,0x26,0xb8,0x4f,0x73,
+  0xef,0x1e,0xd2,0x46,0x51,0x9f,0x2a,0x3,0x78,0x67,0x6b,0x46,0xa4,0x11,0x43,0xc7,
+  0xe9,0xbe,0xd6,0xf5,0x16,0x29,0xa3,0x76,0x2a,0x71,0x7,0x27,0x55,0xd1,0x37,0xf3,
+  0x92,0x46,0x3a,0xaf,0x7f,0x0,0x90,0x91,0x71,0x49,0x7c,0xeb,0xb1,0x6e,0x8c,0xfa,
+  0xec,0xa7,0x2c,0x36,0x9c,0xdb,0xa3,0x8c,0xb,0x2b,0x1c,0x90,0x26,0x2d,0x41,0x98,
+  0x33,0x67,0x83,0x82,0x57,0xa0,0xcc,0xe0,0x2b,0x48,0xc9,0x6c,0xf5,0x77,0x3d,0xb3,
+  0xf0,0x6c,0x77,0x2c,0xc9,0x5c,0x53,0xdb,0x3,0x41,0x2f,0x3c,0xdc,0xdb,0x5,0xe4,
+  0x8a,0x4e,0xab,0x58,0x11,0x10,0x47,0x3e,0x96,0x8d,0xf,0x32,0xbf,0x9f,0xbf,0x67,
+  0xd7,0xaf,0xd7,0x17,0x67,0x85,0x3a,0x5a,0x89,0x68,0x26,0xac,0x1d,0xa6,0x23,0x42,
+  0x8,0x3c,0x99,0x4b,0xab,0xf1,0x2b,0xdf,0xd6,0x7d,0xd9,0xa7,0x3f,0xc1,0x2b,0x12,
+  0xa6,0xb8,0xa,0x81,0xe3,0xe5,0x36,0x47,0xd2,0x1d,0xe1,0x70,0x71,0x44,0xd1,0x11,
+  0x10,0x28,0x61,0x7d,0xa4,0x4f,0xf0,0x9c,0x20,0xf5,0x20,0x5,0x25,0x59,0xa2,0xa0,
+  0xe4,0xdd,0xee,0x84,0xbb,0xbd,0x25,0x15,0x22,0x2b,0xa7,0x12,0x9,0x25,0x5b,0x65,
+  0x24,0x63,0xeb,0xe0,0x38,0xe3,0x98,0xd3,0xae,0xa9,0xf8,0x51,0xa8,0x73,0x90,0x66,
+  0xc6,0x31,0xa3,0x8,0x9d,0x51,0x89,0x77,0x62,0x5c,0x7b,0x70,0xa8,0x28,0xc7,0x80,
+  0x38,0x7b,0xaa,0x6a,0xdc,0xae,0x43,0x14,0x91,0x26,0x80,0xd,0x7,0xba,0xfe,0xb9,
+  0x9,0x25,0xe9,0xe8,0xa9,0xe,0x88,0x63,0xd8,0x73,0x40,0xfe,0x83,0xb,0x11,0xf6,
+  0x9c,0x7,0x11,0x14,0x1f,0x1,0xe1,0xeb,0x9f,0xce,0xaa,0xff,0x2d,0xaf,0x2c,0x4a,
+  0x7b,0xb,0xc8,0x3b,0x35,0xc2,0xb1,0x14,0x8f,0x7c,0x80,0xe5,0xfd,0x5,0xe4,0xe7,
+  0xf3,0xcb,0x72,0xc8,0xb0,0xc4,0x97,0x70,0x7b,0x94,0xbc,0xe7,0xd1,0x6e,0x93,0x3f,
+  0xf4,0xc2,0x3b,0x94,0xca,0x73,0xe,0x1,0x90,0xe5,0xc9,0x54,0x8d,0x22,0xfd,0xa3,
+  0xd9,0x1d,0x25,0x3f,0xe,0xc3,0xec,0xae,0x81,0x60,0xd8,0x6f,0x1,0x49,0xd6,0xc3,
+  0xf,0x85,0xb9,0xb1,0x62,0x29,0x17,0x7,0xed,0xaf,0x1f,0xf2,0xcb,0x19,0x2a,0x2e,
+  0x88,0x17,0xab,0x98,0x74,0x8f,0xd3,0xff,0xbd,0x5,0x44,0x7f,0x36,0x8b,0xd6,0xf2,
+  0x2a,0x1f,0x27,0x79,0xda,0x5b,0x40,0x7e,0x3b,0xbf,0xac,0xb4,0xb0,0x1f,0xb2,0xca,
+  0xb1,0x2a,0x54,0xf1,0x84,0x72,0xbf,0xcd,0xae,0x9a,0x3a,0x96,0x79,0xa0,0x94,0x32,
+  0x98,0xa8,0x43,0xc,0x35,0xeb,0xbe,0xb7,0x7e,0xc8,0x4a,0x81,0x7f,0xce,0xa8,0x7a,
+  0x98,0x20,0x3a,0xe8,0x63,0x88,0x64,0x95,0x42,0x1b,0x1d,0xeb,0x80,0x21,0x51,0xf1,
+  0x54,0xdd,0xd6,0x1,0xc9,0x87,0x2c,0x25,0x0,0x41,0xd5,0xdd,0xd7,0xa1,0x1e,0x43,
+  0xc,0x0,0x69,0xa,0x8d,0xec,0x23,0x1e,0x55,0xa9,0x1e,0xa5,0xe3,0x10,0xa2,0xdd,
+  0x23,0x20,0xff,0x3f,0x4d,0x10,0xd6,0xba,0x7b,0x5f,0xcd,0xb2,0x92,0x7b,0xef,0x15,
+  0x32,0x66,0xb1,0xf7,0x6d,0xe8,0xa9,0xb8,0xdf,0x3f,0x1,0xd1,0xaa,0x55,0x88,0xa9,
+  0x26,0x8d,0x7a,0x1e,0x1e,0x73,0xd4,0x4f,0x66,0xa9,0x2b,0x78,0x56,0x6a,0xea,0xdf,
+  0x3,0x4b,0x9,0x91,0xed,0x8f,0x9c,0xcf,0x37,0xac,0xdd,0xb7,0x47,0x5f,0xfd,0xf8,
+  0x6e,0xd,0xd3,0xa9,0x52,0x72,0xda,0x35,0x2,0xb3,0x20,0x37,0xdd,0x3c,0x31,0xb6,
+  0x25,0x3d,0x93,0xf4,0xe2,0xf5,0xc5,0xd9,0x6e,0xcb,0x46,0x2c,0xb5,0xc,0xb9,0x2e,
+  0x6a,0x11,0x36,0xa9,0x92,0x5f,0x4a,0xe2,0xdf,0xb9,0xb0,0x67,0x89,0x80,0xc4,0x6e,
+  0x80,0x20,0x98,0xac,0x79,0x3a,0xb8,0xd,0x34,0x52,0x5b,0x88,0x63,0xc9,0x87,0xda,
+  0x4e,0x9f,0x86,0xfc,0xaa,0xdd,0x1e,0x59,0x1e,0xda,0x8e,0xaa,0xb9,0x44,0xa8,0x78,
+  0x28,0x20,0x4f,0x4a,0xfb,0xde,0x4e,0x5b,0x8d,0xbc,0xc9,0xb1,0x59,0x45,0x55,0x52,
+  0x46,0xed,0x6f,0x49,0x38,0x92,0x8f,0x2e,0x44,0x57,0x12,0xd3,0x4a,0x87,0x35,0x1e,
+  0x46,0x35,0x29,0x4d,0x1b,0x10,0xd3,0x44,0x99,0x27,0x14,0xce,0xe7,0x96,0x85,0x7c,
+  0x20,0x95,0x91,0x68,0xfb,0x3f,0x47,0x27,0x77,0x56,0xea,0x6c,0x89,0xe7,0x9b,0xf1,
+  0xa3,0x66,0xe1,0x92,0x52,0x27,0xd2,0x53,0xd,0xe9,0xdb,0x5a,0xb1,0x18,0xbb,0x69,
+  0xa4,0xa,0x14,0x5b,0x21,0xa2,0xe,0x69,0xd5,0xa6,0x53,0xad,0xb7,0x87,0xcf,0x9c,
+  0xb4,0x4d,0x88,0x4f,0x2e,0xe2,0x69,0xea,0xd8,0xe3,0x56,0x3b,0x64,0x5a,0xa5,0x3e,
+  0x41,0x15,0xc7,0xc,0xe8,0x5a,0x9a,0x38,0x59,0x92,0x58,0xdb,0x2b,0x9,0xa6,0xce,
+  0xa,0x6a,0x87,0xb,0xd0,0x72,0x27,0x59,0x6e,0x80,0x1e,0x6c,0xdb,0x20,0xa7,0xaa,
+  0x4c,0xa5,0x20,0xdd,0x97,0x15,0x25,0x9,0x9,0x6e,0x7c,0xb5,0xf4,0x27,0x82,0x51,
+  0x14,0xd4,0xee,0x4b,0x46,0x68,0xf5,0xc6,0x48,0x99,0x54,0x6b,0x91,0xd7,0x19,0x1b,
+  0xd7,0x9b,0x9a,0xdc,0x7c,0x7a,0x13,0x3a,0xdb,0xb7,0x4d,0xcf,0x6d,0x66,0xdb,0x44,
+  0x6d,0x5f,0xdd,0xb0,0x61,0x9e,0x8d,0xb4,0x79,0xaf,0xfc,0xf4,0xd8,0x1c,0xd8,0x6b,
+  0xfc,0x9a,0x9a,0x4f,0x1f,0x68,0x58,0xd7,0xc2,0x54,0x1c,0xd4,0x58,0x1f,0x49,0xb7,
+  0x1d,0xe6,0x5a,0xe2,0x65,0xd2,0x21,0x1,0x3c,0x55,0x76,0x47,0x73,0x4f,0x73,0x6a,
+  0xc2,0x4a,0x7d,0xb9,0xf1,0x71,0x46,0x6e,0xc5,0xf1,0x3e,0x48,0x56,0x6d,0x21,0xaf,
+  0xcd,0xa2,0xb,0x40,0x71,0x8d,0xb1,0xe6,0x9d,0x2b,0xb9,0x25,0x80,0xc7,0x4a,0x33,
+  0xfb,0x1,0x6a,0x5f,0xc7,0x79,0x2b,0xd7,0x66,0x37,0xf,0x4d,0xb4,0x32,0x16,0x16,
+  0xcf,0xe2,0x12,0x25,0xe3,0xeb,0x4e,0xd2,0x95,0xf1,0xf7,0x89,0x26,0x93,0x1,0xa1,
+  0x6a,0x2b,0xb4,0x2c,0xb9,0xb7,0x93,0xb8,0xa9,0xfe,0x6,0x47,0x26,0xd8,0xfc,0xb5,
+  0x2a,0xdb,0xaf,0xa5,0xb4,0xab,0x8f,0xb2,0xb8,0xef,0x32,0xb8,0xf9,0x15,0xf,0x2d,
+  0x44,0x73,0x38,0x77,0x37,0xd3,0x52,0x75,0x2e,0xd3,0x43,0xb3,0x2f,0x26,0x9,0xc9,
+  0xe2,0x39,0x70,0xd5,0x21,0x3e,0x8,0xbd,0xb2,0xf9,0xc6,0xf8,0x9f,0x92,0x68,0x56,
+  0xd3,0xf6,0x9e,0xeb,0xc0,0x55,0x7d,0xe0,0x1c,0x33,0xb5,0xe3,0x78,0xcc,0xd9,0x66,
+  0xbb,0xfd,0x80,0x7c,0xb8,0xd1,0x1,0x40,0x6e,0x23,0x6f,0x2a,0x80,0xf2,0xdc,0xe3,
+  0x67,0xe3,0xa3,0x93,0xc8,0x84,0xf2,0xc3,0x23,0x75,0x5c,0x9b,0x90,0xca,0x2d,0xfb,
+  0xfc,0x5e,0xb1,0x21,0x45,0x67,0xa,0x78,0xe,0xfe,0x55,0xd6,0xc7,0xe,0xdc,0xdb,
+  0x5c,0x2,0x9f,0x24,0x9d,0x62,0x4e,0xa2,0xb2,0x55,0xf3,0x93,0x3b,0x55,0xdc,0x35,
+  0xfc,0xd5,0x93,0xc1,0x22,0xd5,0x44,0xc7,0x45,0x72,0x18,0x3a,0x79,0xb,0xc4,0xa8,
+  0x16,0xfa,0xcc,0x61,0xdf,0x78,0x8c,0xf9,0x91,0x96,0x18,0x18,0x58,0x86,0x67,0xba,
+  0x83,0xd7,0x55,0xf,0xdf,0x1a,0x5f,0x83,0xae,0x4,0x1f,0xc1,0xfd,0xbf,0xee,0x78,
+  0xd,0x2f,0xfd,0x6a,0x6d,0xe1,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,
+  0x60,0x82,
+    // /home/maemo/tietoopcom/resources/contactmale.png
+  0x0,0x0,0xf,0xd1,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x44,0x0,0x0,0x0,0x44,0x8,0x6,0x0,0x0,0x0,0x38,0x13,0x93,0xb2,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,0x1,
+  0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x3,0xb,
+  0xf,0xc,0x25,0x85,0xa9,0xc6,0xe0,0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x43,
+  0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x0,0x43,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x77,
+  0x69,0x74,0x68,0x20,0x47,0x49,0x4d,0x50,0x57,0x81,0xe,0x17,0x0,0x0,0xf,0x2c,
+  0x49,0x44,0x41,0x54,0x78,0xda,0xed,0x9a,0x59,0x8c,0x64,0xe7,0x55,0xc7,0xff,0xdf,
+  0x76,0xb7,0x5a,0x7b,0xa9,0xae,0xee,0x9e,0xcd,0x9e,0x19,0xdb,0x93,0x19,0x3b,0x38,
+  0x9e,0x38,0xb1,0x27,0x96,0x6c,0x29,0x52,0x12,0x12,0x45,0x2,0x41,0x90,0x40,0x41,
+  0x11,0x12,0x81,0x37,0x44,0x80,0x7,0x24,0x24,0x92,0x7,0x5e,0x78,0x20,0xf,0xe4,
+  0x1,0x21,0x96,0x87,0x3c,0x24,0x88,0x8,0x62,0x21,0x44,0x70,0x40,0x59,0x8,0x8e,
+  0x92,0x90,0xc1,0xb1,0x3d,0x89,0xd7,0x59,0xec,0x59,0x7a,0xa6,0xab,0xab,0xba,0xea,
+  0xd6,0xdd,0xbe,0xfb,0x2d,0x87,0x87,0xaa,0xe9,0x71,0x12,0x47,0x88,0x38,0x6e,0xbb,
+  0x4d,0xff,0xa5,0x2b,0x75,0x2d,0x7d,0x4b,0xf7,0x77,0xcf,0xff,0x9c,0xf3,0x9d,0xef,
+  0x2,0xfb,0xda,0xd7,0xbe,0xf6,0xb5,0xaf,0x7d,0xed,0x6b,0x5f,0xfb,0xda,0xd7,0x9b,
+  0x51,0x6c,0x37,0x7f,0xec,0x33,0x9f,0xf9,0x95,0xf0,0x89,0xef,0xf9,0x56,0x2c,0x16,
+  0xd7,0x2c,0x93,0x47,0x39,0x67,0xeb,0xce,0xf9,0x6,0xe3,0x60,0xe4,0x51,0x7a,0xb8,
+  0x2b,0x75,0x55,0x5d,0x88,0xe3,0xfa,0xea,0x89,0x13,0x3a,0xfb,0xc4,0x27,0xbe,0xa8,
+  0xdf,0xa2,0x40,0x22,0xf6,0x37,0x7f,0xf6,0xb,0xd1,0xc5,0x8b,0xc5,0x87,0x2a,0xb6,
+  0xf8,0xbe,0xd2,0x45,0x27,0x88,0x85,0x3d,0xef,0x5d,0xc3,0x7b,0xcf,0x89,0xc0,0x0,
+  0x72,0xde,0xa3,0x2,0xe9,0xcd,0x48,0x56,0x3f,0x58,0x6e,0xe6,0x5f,0x3a,0xd8,0x91,
+  0x5f,0xfe,0xf8,0x1f,0xff,0x43,0x1,0x80,0xde,0x32,0x40,0x3e,0xfb,0x57,0x7f,0xca,
+  0xcf,0x3d,0xf5,0xdd,0x55,0x29,0xe8,0x43,0xd6,0xa9,0x8f,0x55,0x46,0xde,0x5b,0xb9,
+  0x20,0xf1,0xc4,0x99,0xf7,0x1e,0x44,0x4,0x80,0xc0,0x18,0x87,0x10,0x12,0xc,0x8e,
+  0x42,0xa1,0xb,0xc9,0xca,0xb3,0x2,0xe6,0xb3,0xc6,0x89,0xc7,0x8e,0xdd,0x79,0xfa,
+  0xda,0xef,0xfc,0xc1,0x1f,0xf9,0xdd,0x0,0x22,0x5f,0xef,0x1f,0x38,0x77,0xf6,0x1b,
+  0xab,0x95,0xe7,0x1f,0xad,0x8d,0xfa,0x58,0x65,0xea,0xe3,0x61,0x1c,0x5,0xdd,0xee,
+  0x2,0x84,0x54,0x70,0xce,0xef,0xdc,0x7c,0xc6,0x39,0xa4,0x90,0x30,0xd6,0xb0,0x74,
+  0xb2,0xd5,0x98,0x4c,0xb2,0x77,0x4b,0xee,0x5b,0x81,0x30,0xdd,0xb,0x2f,0x7c,0xfb,
+  0xef,0x0,0x5c,0xdd,0xd,0x20,0xe2,0xf5,0x3c,0xf9,0xdf,0xfe,0xc9,0x7b,0x93,0x2b,
+  0x5b,0xf6,0xfd,0xd3,0x82,0x7f,0xbc,0xd0,0x74,0x8f,0x43,0x24,0xc3,0xb8,0x8d,0x24,
+  0x8e,0xa1,0x94,0x82,0x94,0x1c,0x4a,0x49,0x30,0xc6,0xa1,0x6b,0x8b,0xa2,0xd0,0x98,
+  0xa4,0x39,0x46,0xe3,0x1c,0x79,0xae,0xa5,0xf7,0xae,0x4f,0xde,0x2e,0x26,0xb2,0xbe,
+  0xfe,0xf1,0x5f,0xbc,0xfd,0xfc,0x3f,0x7d,0xf5,0xa2,0xd9,0xb3,0x40,0xfe,0xe2,0xf,
+  0xdf,0x1b,0xbe,0xbc,0x55,0x3e,0x9c,0x16,0xea,0xd7,0x47,0x53,0xff,0x2e,0xcf,0x92,
+  0xa8,0xdd,0x59,0x40,0x9c,0xc4,0x0,0x8,0xd6,0x1a,0x58,0xeb,0x60,0x8c,0x41,0x96,
+  0xe5,0x18,0x8d,0x46,0xd8,0x1a,0x6c,0x62,0x32,0xde,0x46,0x5d,0x55,0xf0,0xde,0x43,
+  0xd7,0x8e,0x19,0x53,0x77,0x2,0xee,0x94,0xb7,0x7e,0xfc,0xfb,0xbf,0xf1,0xe0,0xf9,
+  0xcf,0xff,0xcb,0x39,0xda,0x93,0x96,0x79,0xe2,0x45,0xdd,0x28,0x9c,0x7f,0xd0,0x78,
+  0x77,0xc6,0xfa,0xa8,0x19,0xab,0x8,0x4a,0x29,0x70,0x46,0x30,0x66,0x76,0xa3,0x75,
+  0x5d,0x23,0x9d,0x4c,0x91,0x67,0x29,0x40,0x15,0x1a,0x91,0xc5,0x52,0x93,0xe0,0x49,
+  0x60,0x94,0x2,0x9b,0xa3,0x1a,0x64,0x4d,0xc3,0x19,0xbc,0xc7,0x18,0xf6,0x6c,0xf8,
+  0xf4,0x95,0xaf,0x3,0xc8,0xf7,0x1c,0x90,0x4f,0x7e,0x12,0xfc,0x89,0x6f,0x8d,0x56,
+  0xa6,0x55,0x7c,0x92,0x8,0xbd,0x28,0x89,0x18,0xab,0x34,0x86,0xa3,0x6d,0x70,0xce,
+  0xc1,0xc0,0x0,0xe,0x14,0x79,0x81,0xd1,0x70,0xb,0xa1,0x28,0x71,0xd7,0xed,0x31,
+  0xee,0x3d,0xfd,0x20,0xba,0xeb,0xf,0x20,0x4f,0xaf,0xe2,0xc5,0xa7,0x1e,0xc5,0x73,
+  0xe7,0x3d,0x36,0x6,0x9e,0xd,0xc7,0xae,0x97,0x15,0xee,0x58,0x23,0x14,0x77,0x0,
+  0xf8,0xde,0x9e,0x3,0x52,0x5f,0x3a,0x16,0x4a,0x11,0x3d,0xa0,0x2b,0x3a,0x91,0xe6,
+  0xb9,0xe0,0xa9,0x3,0x30,0x2,0xcd,0x8b,0x9a,0xe0,0x1c,0x8c,0x31,0x38,0x6b,0x20,
+  0x79,0x85,0x13,0x27,0x63,0xbc,0xff,0x97,0x3f,0x5,0x11,0xad,0xa2,0xd2,0x25,0x4,
+  0x2d,0x63,0xf9,0xd4,0xed,0x10,0xdd,0xb3,0xe8,0x5f,0x78,0xc,0xff,0xf5,0xfd,0x89,
+  0x1c,0xa6,0xee,0x6d,0x5b,0x13,0xf5,0x73,0x9f,0xfb,0xd4,0xdd,0xcf,0xfc,0xda,0xa7,
+  0xce,0xbd,0x6e,0xfd,0x9,0x7f,0x3d,0x4e,0x1a,0xf0,0xb0,0xc7,0x21,0x1e,0xb2,0xd6,
+  0x1c,0xc8,0xf3,0xc,0x64,0xc6,0xe8,0x84,0x29,0xfa,0xcd,0x29,0x7a,0x8d,0x29,0x12,
+  0x31,0x2,0xea,0x4d,0xe8,0x62,0xb,0x92,0x55,0x78,0xdb,0x3d,0xf,0x23,0x69,0x2c,
+  0x83,0x88,0xe0,0xbd,0x87,0x73,0xe,0xa6,0x36,0x98,0xd8,0x35,0xa0,0xf5,0xe,0x73,
+  0x60,0x81,0x10,0x91,0x5d,0xd7,0xda,0xde,0x7d,0x61,0xe0,0x8f,0xed,0xb9,0x8,0x21,
+  0x72,0xcb,0x70,0xf6,0x78,0x55,0x16,0xad,0x40,0x5a,0xdc,0xff,0xf6,0xc3,0x38,0xf3,
+  0xe0,0x19,0xc4,0x71,0xc,0xef,0x9,0xd3,0xc2,0x62,0xe3,0xe5,0x67,0xf0,0xfc,0x73,
+  0x3f,0x40,0x9a,0x5b,0x98,0x2a,0x83,0xb1,0x6,0xce,0x1,0xde,0x7b,0x58,0x6b,0xa1,
+  0xb5,0x46,0x59,0x6a,0xd4,0x38,0xac,0x5a,0xc9,0x22,0x96,0x93,0xcb,0x4d,0x41,0x7e,
+  0x65,0x63,0x68,0xbb,0x7f,0xfd,0xe9,0x77,0x8b,0xdf,0xfc,0xbd,0x6f,0xbb,0x3d,0x3,
+  0x84,0x41,0xd6,0x8a,0xbb,0x26,0x39,0x2d,0xd6,0xba,0x1c,0xf,0x9d,0x79,0x4,0x67,
+  0x3e,0xf8,0xbb,0x70,0xd6,0x0,0x20,0x78,0xf,0x94,0xe9,0x55,0x5c,0x7a,0xfe,0x3b,
+  0xd8,0x4e,0x2d,0x16,0x96,0xf,0xc0,0x7a,0x9,0xe7,0x2c,0xac,0x35,0xa8,0x8d,0x41,
+  0x59,0x69,0xe4,0x79,0x81,0xa2,0xf4,0xe8,0xb2,0x0,0xed,0xc0,0xb1,0x40,0x70,0x4,
+  0x9c,0xe0,0xff,0x43,0xec,0xad,0x8,0x79,0xea,0x4a,0xf7,0xca,0x4a,0xbb,0xf0,0x7,
+  0xdb,0x60,0x87,0xe,0xad,0xe2,0xe8,0x3d,0x1f,0x44,0x59,0x1a,0x58,0x6b,0x1,0x10,
+  0x88,0x0,0x27,0x7a,0x58,0xbd,0xe3,0x3,0x58,0x32,0x1e,0xb5,0x31,0xa8,0x6b,0xbd,
+  0x3,0xa3,0xd2,0x35,0xf2,0xa2,0x44,0x3a,0xcd,0x60,0xac,0xc0,0x9a,0x30,0xf0,0x11,
+  0xa3,0xc5,0xb6,0xca,0xf,0x2d,0xb3,0xcb,0xbf,0xf5,0xe7,0xdf,0x74,0x7b,0xa,0x48,
+  0xb7,0xc5,0x99,0x4a,0xd6,0x9e,0xbe,0xef,0xd4,0xf2,0xa9,0x43,0xf7,0xfd,0x52,0xe2,
+  0xd5,0xa,0x2a,0x6d,0x77,0xca,0x2d,0x11,0xe0,0xc9,0xc3,0x5a,0x7,0x6b,0x2d,0x8c,
+  0xb5,0x30,0xb6,0x86,0xae,0x6b,0x94,0x65,0x89,0x3c,0x2f,0x91,0x4e,0xb,0xa4,0xd3,
+  0x1c,0x40,0x80,0x7c,0xf1,0x1,0xac,0xb7,0xdb,0x17,0x82,0x48,0x3c,0xc6,0xf8,0xd3,
+  0x57,0xf7,0x5c,0xe,0x81,0xb9,0xa2,0x2e,0xe4,0xef,0xfb,0xce,0xc1,0xc3,0x87,0xde,
+  0xb9,0x12,0xac,0x9d,0xaa,0xb4,0x16,0x8c,0x71,0x18,0x53,0xcf,0x93,0xc,0xe0,0x68,
+  0x96,0x3c,0x6f,0xd9,0x44,0xa3,0xac,0x4a,0x4c,0xf3,0x12,0xe3,0x34,0xc3,0x78,0x92,
+  0x23,0xcb,0x4a,0x48,0x61,0x31,0xaa,0x5a,0xa0,0xee,0x99,0xa7,0x65,0xd8,0x7c,0xe6,
+  0x93,0x9f,0x7e,0xd4,0xef,0x39,0x20,0x8f,0x5e,0xf7,0xe9,0x3b,0xd6,0xf2,0xb,0xe4,
+  0xeb,0x6f,0x6a,0x9d,0xb5,0xd3,0x74,0xfb,0x36,0xc6,0x66,0x9,0x93,0x88,0x0,0xa2,
+  0x5b,0x40,0xac,0x41,0x6d,0x6b,0x14,0x65,0x85,0x34,0x2b,0x30,0xdc,0x4e,0xb1,0x39,
+  0xd8,0xc6,0x78,0x3b,0x85,0xae,0xc,0x1c,0xd3,0xba,0x4a,0xfc,0x4b,0x2e,0xb1,0xcf,
+  0x4a,0x5e,0x15,0x7b,0x72,0x71,0xb7,0xfd,0xdd,0x97,0x6a,0xf3,0xfe,0xfb,0xce,0x41,
+  0x30,0x56,0xea,0x7c,0x65,0x6b,0xeb,0xfa,0x41,0x21,0x85,0x94,0x52,0x1,0x0,0xbc,
+  0x73,0x70,0xe4,0xe0,0xac,0x43,0x6d,0x6a,0x94,0xba,0x46,0x96,0x15,0x18,0x8d,0xa7,
+  0x18,0x6c,0x8d,0x71,0xe3,0xc6,0x8,0x93,0x49,0x6,0xef,0x1d,0x3c,0xab,0x37,0xaa,
+  0xc2,0xfe,0xab,0x6d,0x54,0x5f,0xa1,0xb2,0xb5,0xbd,0x57,0x57,0xbb,0xfe,0x1b,0x8f,
+  0x7d,0x71,0xe3,0x6d,0xf7,0xde,0x59,0xc,0x36,0xaf,0x3d,0x58,0x16,0xd5,0x7b,0xac,
+  0x43,0xaf,0xd9,0xee,0x72,0xc9,0x39,0x3c,0x39,0x78,0xef,0x61,0xac,0x45,0x59,0x6a,
+  0x4c,0x8b,0xa,0x93,0xf1,0x14,0xc3,0xd1,0x4,0x9b,0x83,0x6d,0x6c,0xd,0xc6,0xd0,
+  0xba,0x82,0xe0,0x1e,0x9c,0xd5,0x37,0xaa,0x42,0x7f,0xdd,0xbc,0xf0,0xe8,0xd9,0xcf,
+  0x7f,0xb,0xe5,0x9e,0x5e,0xed,0x9e,0x7d,0xfc,0x71,0xdf,0x5f,0x59,0x3d,0x54,0x55,
+  0xf6,0xb6,0xb2,0xa6,0x85,0x4a,0xbb,0x30,0x2f,0x34,0xb2,0x2c,0xc7,0x34,0x2b,0xb0,
+  0x3d,0xc9,0x30,0x1c,0xa5,0x18,0xc,0xb6,0x71,0x63,0x73,0x88,0xeb,0x37,0xb6,0xb0,
+  0xb5,0x35,0x41,0x5e,0x54,0x60,0xe4,0x10,0x8,0x4d,0x81,0x70,0x67,0x39,0x8a,0x7f,
+  0xfe,0xf2,0xe3,0x2f,0xbe,0xf4,0x56,0x98,0x87,0xb8,0x4b,0xe7,0x9f,0x3f,0xd7,0x5b,
+  0xf7,0xff,0x39,0xad,0x6c,0x6f,0x30,0x1a,0xb7,0x95,0x4a,0x40,0xe0,0x60,0x44,0xb0,
+  0xde,0xa1,0xaa,0x6a,0x14,0x45,0x89,0x34,0xcd,0x90,0xa6,0x39,0x74,0x6d,0xc0,0x18,
+  0x87,0x94,0x7e,0xca,0x41,0xdf,0x97,0xcc,0x7d,0x25,0xe,0x96,0x77,0x5,0xc6,0x6e,
+  0x0,0xf1,0xc3,0xe1,0xb,0x97,0x5a,0xbd,0xee,0xf7,0x6d,0xae,0x1f,0x2a,0x4d,0x76,
+  0x97,0x10,0x4b,0xb0,0x46,0xc2,0xd4,0x6,0xc6,0xd6,0xa8,0xad,0x9d,0xfd,0x5d,0x1b,
+  0x58,0xeb,0x21,0x4,0x47,0xa0,0x38,0x38,0x37,0x23,0xce,0xed,0xd7,0x42,0x9f,0x7e,
+  0xb5,0xfb,0x6f,0x72,0xf8,0x96,0x0,0x72,0xb8,0x73,0xcf,0xc2,0xc2,0x81,0xf1,0xaa,
+  0x91,0x9b,0xb,0x9c,0xeb,0xb0,0xd1,0x6a,0x61,0x79,0x61,0x11,0x55,0x11,0xe2,0xea,
+  0xd5,0xeb,0xd8,0x1e,0xa7,0x28,0xcb,0xa,0xd6,0x5a,0x4,0x2a,0x44,0xbb,0xdd,0x46,
+  0xab,0x1d,0x41,0xaa,0x12,0xb5,0x99,0x80,0xf9,0xd4,0x95,0x93,0xab,0xcd,0x27,0xfb,
+  0x2f,0x1c,0x6e,0xdf,0x68,0x4f,0x52,0xa4,0xa3,0xbd,0x6,0x84,0x3d,0xfc,0xf0,0xc3,
+  0xe2,0xe4,0xc9,0x93,0xad,0x83,0x2b,0xc7,0xfa,0x37,0x8a,0x97,0x8f,0x5f,0x1e,0x3c,
+  0x7f,0x6a,0x2b,0xdb,0x7c,0x17,0xe3,0xd5,0xfa,0xc2,0xb2,0xc2,0xa9,0x3b,0xf,0x82,
+  0xb9,0x45,0x24,0x71,0x0,0x47,0x16,0x93,0x34,0x83,0xb5,0xe,0xad,0x46,0x13,0xfd,
+  0xfe,0xa,0x5a,0x6d,0x8e,0xa2,0xbe,0x84,0xf1,0x74,0xd2,0xf1,0x36,0x7f,0x40,0xa8,
+  0x4e,0xb8,0x12,0x77,0x2e,0x2f,0x1d,0x3d,0x70,0x1e,0xc0,0xf9,0xba,0x6e,0x6c,0x9c,
+  0x3d,0xfb,0xef,0x19,0x80,0x37,0xf7,0x5a,0xa6,0x8f,0x7e,0xe3,0x1d,0xef,0xbd,0xff,
+  0xe4,0xa9,0x7b,0x8f,0x9f,0x38,0x7a,0xf2,0xc8,0xe1,0xfe,0x81,0x95,0xa5,0xde,0x24,
+  0x5a,0x4f,0x5e,0x66,0x47,0xfc,0x79,0x7b,0x68,0x73,0xb0,0xb1,0x5c,0x54,0x43,0xa8,
+  0x40,0xe3,0x40,0x6f,0x11,0x51,0x14,0xa2,0xb7,0xbc,0x84,0x2c,0x2f,0x0,0xe2,0x88,
+  0xe3,0x18,0x71,0x12,0x20,0x2b,0xaf,0xe1,0xfc,0x95,0x14,0xa5,0xdd,0x6a,0x86,0xa1,
+  0x7a,0x7b,0x6b,0x79,0x69,0x5d,0xc9,0x70,0xb,0x5e,0x5c,0x33,0xa5,0xb9,0x96,0xe,
+  0xb2,0x8d,0xfb,0xef,0xbf,0xff,0xc5,0x74,0xb3,0x7e,0xe2,0xb9,0x97,0x9e,0xbc,0xf4,
+  0x66,0x4,0xc2,0x4f,0x1f,0x3d,0xdd,0xea,0x1c,0xec,0xdc,0xb7,0xb0,0xde,0xf8,0x40,
+  0xd4,0xd,0x1f,0xe,0x9b,0xea,0x58,0xd4,0xe,0xc2,0x5e,0xb2,0x20,0x11,0xde,0x26,
+  0xd3,0x6a,0x2c,0x6,0xc3,0xeb,0xfc,0xf2,0xc6,0xcb,0x78,0xf6,0xfc,0xf7,0xa0,0x64,
+  0x8c,0x66,0xab,0x87,0x3b,0xef,0xec,0xc3,0x39,0xf,0xc1,0x3,0x10,0x3c,0xa6,0xf9,
+  0x8,0xa3,0x4b,0xd7,0x31,0x1c,0x5f,0x41,0x5e,0xa6,0x32,0x6e,0xf7,0x96,0xdb,0x2b,
+  0xcd,0x45,0x15,0x44,0xc7,0x9d,0x81,0x2d,0xb6,0xb,0x1b,0x94,0x41,0x1a,0xd5,0xee,
+  0x29,0x22,0x7a,0xf4,0x9d,0xf2,0x9d,0x5f,0xfa,0xee,0xf9,0xc6,0x6,0xf0,0x75,0xfb,
+  0xa6,0x1,0xb2,0xba,0x7a,0x7c,0x49,0x2c,0x4,0x8f,0xb4,0x96,0xe3,0x9f,0x5f,0x38,
+  0xd0,0x7c,0x77,0xab,0x1f,0xdf,0xb5,0xb0,0xda,0x16,0xed,0x6e,0x13,0xc4,0x8,0x61,
+  0x23,0xc4,0x68,0xb2,0x8d,0x8b,0x2f,0x5f,0xc4,0xa5,0x97,0x5e,0xc2,0x93,0xcf,0x7c,
+  0x7,0xd3,0x3c,0xc5,0xca,0xd2,0x21,0x34,0x93,0x5,0x70,0x21,0xc0,0x99,0x84,0xae,
+  0x4b,0x6c,0x8d,0xae,0xe1,0xe2,0x95,0x67,0x30,0x18,0x5e,0x6,0x97,0x84,0x28,0x8e,
+  0x59,0xdc,0x4a,0x84,0xa,0x2,0xe1,0x2c,0x29,0x2e,0x0,0xc6,0x59,0x8b,0x73,0x6a,
+  0x79,0x78,0x55,0xd4,0x65,0x78,0xdb,0xfa,0xf5,0x2f,0x5f,0xba,0x86,0xe7,0xde,0x1c,
+  0x40,0x3e,0xf2,0x11,0xb1,0xf6,0xe2,0xa5,0xe3,0xcd,0x4e,0xf2,0xe1,0xc6,0x62,0xf2,
+  0xc1,0xee,0x5a,0x73,0xa9,0xbd,0x1a,0xa3,0xf4,0x5,0x6,0xa3,0x4d,0x8,0x21,0x1,
+  0xc6,0xd0,0x6a,0x35,0xb1,0xba,0xb6,0x86,0xe1,0xf6,0x10,0x83,0xf1,0x35,0x8c,0xa7,
+  0x43,0x34,0xe2,0x36,0x92,0xa8,0x35,0xfb,0xe,0x18,0x74,0x5d,0x20,0x2b,0x26,0x28,
+  0xab,0x29,0x3c,0x39,0x74,0xdb,0x4b,0x48,0x92,0x6,0xe0,0x19,0x4c,0x65,0x61,0xbd,
+  0x3,0x71,0x42,0xd4,0xd,0x40,0x68,0xb4,0x6b,0x6d,0x1f,0xaa,0xa6,0x5a,0x35,0x1a,
+  0x72,0x70,0xfa,0xf4,0xe9,0xb,0x67,0xcf,0x9e,0xfd,0x99,0x4c,0xe4,0x5f,0x4b,0x63,
+  0xc6,0xef,0x6e,0xb5,0x7a,0xbd,0xc5,0xd6,0x99,0x66,0x37,0xf9,0x70,0xff,0xc8,0xd2,
+  0xd1,0xd5,0xdb,0x96,0x10,0xb6,0x2,0x18,0x53,0x23,0x2f,0xb,0xe4,0x65,0x86,0xbc,
+  0xcc,0x50,0x99,0xa,0x1e,0x1e,0xc4,0x8,0xb5,0xa9,0x91,0xe5,0x53,0x64,0x79,0x8a,
+  0x74,0x3a,0xc4,0x24,0x1d,0x62,0x3c,0xdd,0xc2,0x34,0xdb,0x86,0xb6,0x5,0x82,0x48,
+  0x62,0x71,0x79,0x9,0x2b,0x2b,0x7d,0xb4,0xdb,0x5d,0x48,0x29,0xe1,0xbd,0x87,0xf7,
+  0xb3,0x35,0x1d,0x13,0xc,0x60,0x80,0x37,0x5e,0xea,0xa2,0x6e,0x10,0xd1,0xe5,0x5a,
+  0xd7,0x17,0x7,0x83,0x5e,0xe,0xc,0xdc,0x1b,0x16,0x21,0x6b,0x6b,0x6b,0x51,0xec,
+  0xc5,0xd1,0x38,0x9,0xee,0xe9,0x2c,0x27,0xcb,0xcd,0xc5,0x6,0xb8,0xe4,0xd0,0x5a,
+  0xc3,0xe8,0x59,0x4f,0x71,0x73,0x24,0x8,0x0,0x8d,0x66,0x8c,0xc3,0x87,0xf,0x21,
+  0x50,0x1,0x5a,0xad,0x4d,0xe4,0x59,0x6,0xad,0x35,0xbc,0x23,0x30,0x6,0x8,0x21,
+  0x10,0x4,0x1,0x1a,0xad,0x26,0x3a,0x9d,0x2e,0x9a,0xad,0x16,0xa4,0x54,0xb3,0x73,
+  0xcc,0xcf,0xe3,0x3d,0x81,0x18,0x40,0x8c,0x20,0x63,0x1,0xd5,0x94,0x4d,0x5b,0x9b,
+  0xbb,0x74,0xe9,0xef,0x59,0x6b,0xba,0xc9,0x46,0x86,0xad,0x37,0xc,0x48,0xec,0xe3,
+  0x26,0x87,0xbb,0x8b,0x4b,0x7e,0x32,0x6a,0x85,0xdd,0xa4,0x15,0x82,0x71,0x36,0x1b,
+  0xfd,0x15,0x15,0x88,0x66,0x17,0x9,0x22,0x10,0x0,0xc6,0x18,0x92,0x24,0x41,0x7f,
+  0xb5,0x8f,0x66,0xab,0x9,0xad,0x2b,0x18,0x63,0x67,0xbb,0x77,0x44,0x60,0x8c,0x81,
+  0x73,0xe,0xa9,0x14,0x94,0xa,0x20,0xa4,0x0,0x79,0x9a,0x41,0xf0,0x1e,0xce,0x79,
+  0x58,0xe3,0x66,0x53,0x60,0x22,0x88,0x80,0x43,0x45,0x32,0xac,0x24,0x3b,0x6,0xe0,
+  0x6e,0xa,0xf4,0x73,0xc0,0x1b,0x8,0xc4,0xeb,0x30,0xb6,0xb5,0xbd,0x83,0x81,0xee,
+  0x68,0x74,0xa2,0x28,0x69,0x87,0x60,0x1c,0x28,0x26,0x5,0xa6,0x69,0x6,0xa5,0x2,
+  0x34,0x5b,0x4d,0x70,0x21,0x60,0xad,0x85,0xbb,0x19,0x29,0x8d,0x4,0x49,0x12,0xcf,
+  0xef,0x3a,0xed,0xd8,0xc1,0x3b,0xbf,0x33,0x60,0xb6,0xd6,0xc1,0x79,0x82,0x27,0xf,
+  0xc2,0xc,0xa8,0xad,0x2d,0xaa,0x42,0x83,0x9,0x6,0x15,0x2a,0x88,0x50,0x20,0x6c,
+  0x28,0x96,0x9,0x76,0xd0,0x39,0x77,0x82,0x9,0x5a,0x7c,0x43,0xa7,0xee,0x24,0x5c,
+  0xc,0xc2,0x3a,0x13,0x6c,0xbd,0xd9,0x4e,0x64,0xa3,0x1d,0x81,0x73,0x86,0x3c,0xcb,
+  0x31,0x1a,0x6e,0x23,0x9b,0x66,0xf0,0xde,0x83,0x31,0xb6,0x63,0x1d,0x22,0xda,0xb9,
+  0xc0,0x9b,0x83,0xa2,0x9b,0x2f,0x8,0xb7,0x3e,0x23,0x60,0xc7,0x2a,0x44,0xc,0x44,
+  0x80,0xd1,0x16,0x65,0x56,0xa2,0xca,0x35,0xbc,0xf7,0xb3,0x8,0x69,0x28,0xc6,0x15,
+  0x5f,0x60,0x8c,0x1d,0xe2,0xc4,0xda,0x6f,0x24,0x10,0xd6,0x5e,0x8,0xbb,0x32,0x96,
+  0x4b,0x61,0x12,0x84,0x61,0xa2,0xa0,0x42,0x5,0x30,0x86,0x3c,0x2f,0x30,0x1a,0x8e,
+  0x90,0x65,0xb7,0x80,0xdc,0x9a,0xc6,0x13,0x9c,0xf5,0xb0,0x66,0xb6,0x7e,0xa9,0xeb,
+  0x7a,0x76,0x18,0x3,0x63,0x2c,0x8c,0xb1,0xb3,0x68,0x72,0xb3,0xf1,0x0,0xf9,0x5b,
+  0x88,0xac,0xb5,0xd0,0x65,0x8d,0x5a,0xd7,0xf0,0x9e,0xc0,0x38,0x83,0x90,0x1c,0x2a,
+  0x54,0x92,0x7,0x7c,0x59,0xc6,0xa2,0xdf,0xeb,0xf5,0x9a,0x6f,0x8,0x90,0x7e,0xbf,
+  0x9f,0x34,0x16,0x1a,0x6b,0xcd,0x85,0xb8,0x13,0xb7,0x22,0x30,0xc1,0xe1,0x3d,0xc1,
+  0x39,0x87,0xa2,0x28,0x31,0x49,0x53,0x14,0x45,0x31,0x7,0x72,0xb,0xc6,0x4f,0x3c,
+  0xfc,0xab,0xbd,0xef,0xe7,0xc7,0xec,0xb5,0x73,0xe,0xd6,0x58,0x58,0xe3,0xe6,0xf6,
+  0x9a,0xc1,0xe2,0x1,0x87,0x8c,0x64,0x53,0xc5,0xf2,0x50,0x88,0x70,0xf5,0xb5,0x8e,
+  0x34,0x7e,0x1a,0x20,0x22,0x8e,0xe3,0xe5,0xb0,0x29,0xf,0x26,0xed,0xa8,0x1d,0x37,
+  0x23,0x70,0xc1,0x61,0x6a,0x8b,0xaa,0xd4,0xc8,0xf3,0x1c,0x45,0x9e,0x43,0xeb,0x7a,
+  0x6e,0x93,0xd9,0x50,0x19,0x3f,0x76,0xc1,0xaf,0xf4,0xdf,0x2b,0xf,0x9a,0x7f,0x77,
+  0xfe,0x7f,0xf3,0xf,0xbc,0xf3,0x30,0xda,0xc0,0x54,0x6,0xd6,0x18,0x38,0xeb,0xe0,
+  0x9,0xe0,0x92,0x83,0x87,0x3c,0x84,0xa2,0x3e,0x7,0xef,0x3,0x8,0x77,0x1b,0x88,
+  0x94,0x24,0xd7,0xb8,0x60,0x7,0xe3,0x24,0x6c,0x46,0x8d,0x10,0x5c,0x70,0xd4,0xb5,
+  0x41,0x51,0x14,0xa8,0xca,0x6a,0xb6,0x9c,0x37,0xb3,0xc3,0x3a,0x37,0xcf,0x1d,0xaf,
+  0x12,0x25,0x78,0xb5,0xc8,0xf8,0xf1,0xc7,0x85,0x3c,0x1,0xde,0x7a,0x98,0xda,0xce,
+  0xa0,0x68,0xb,0x6b,0x2c,0x8,0x4,0x26,0x19,0xb8,0x62,0xa,0x8c,0x16,0xd,0x33,
+  0xbd,0x16,0x5a,0xf1,0x2e,0x57,0x99,0x9e,0x22,0x26,0x56,0x18,0x67,0x6b,0x51,0x23,
+  0x68,0xc4,0xad,0x19,0x10,0x6b,0x66,0x39,0xc1,0x5a,0x3b,0x1b,0xf,0xd6,0x6,0xba,
+  0xd2,0x88,0x22,0x3b,0x4b,0x8e,0x3b,0x37,0xff,0x7f,0xb3,0xca,0x4d,0x20,0xf3,0xc8,
+  0xf0,0x4,0xe7,0x3c,0x9c,0xf5,0x70,0x66,0x6,0xf7,0xa6,0x6d,0x0,0x82,0x50,0x1c,
+  0x22,0xe0,0x8a,0x71,0x5a,0x72,0xde,0xf5,0x2c,0x6c,0xbc,0xcb,0x11,0x52,0x4b,0x67,
+  0x6c,0x87,0x80,0xc5,0x20,0x9,0xa3,0xb8,0x19,0x82,0xb,0xb6,0x53,0x3a,0x6f,0x5a,
+  0xa3,0xae,0x6b,0x14,0x79,0x89,0x5a,0xeb,0xf9,0x63,0x53,0x3f,0xe2,0xc,0xfc,0x84,
+  0x7c,0xf2,0x23,0xef,0x7b,0xef,0xe1,0xea,0x59,0x44,0x78,0x37,0x6f,0xd2,0xe6,0x25,
+  0x1b,0xc,0x90,0x1,0x87,0x8c,0x44,0x0,0xc6,0x96,0xac,0xb5,0x3d,0xf,0x1f,0xed,
+  0x32,0x10,0x2f,0x9c,0xf3,0x4d,0x30,0x74,0x82,0x58,0x86,0x61,0x12,0x40,0x48,0xfe,
+  0x43,0xed,0xb5,0x27,0x82,0xd6,0x1a,0x45,0x51,0xa0,0x36,0xf5,0xff,0xd1,0x32,0xaf,
+  0x8c,0x1c,0xc0,0x59,0x3f,0x9f,0xa8,0xb9,0x59,0x5f,0xb2,0x93,0x70,0x67,0xe7,0xe4,
+  0x4a,0x40,0x28,0x21,0xc1,0xb0,0x4c,0x60,0xaf,0x19,0xc8,0x4f,0x61,0x19,0x2f,0xe1,
+  0xfd,0x22,0x18,0x2d,0x87,0x49,0xa8,0xe2,0x56,0x4,0xc6,0x19,0x6a,0x53,0x43,0x6,
+  0x12,0x41,0x18,0x20,0x8,0x15,0x18,0x67,0x70,0x7e,0x56,0x42,0x67,0x7b,0x31,0x6c,
+  0x27,0x61,0xee,0x24,0xce,0x1f,0x8b,0x1a,0xfc,0xb0,0x75,0x8,0xf0,0x8e,0x60,0x6b,
+  0x7,0xef,0x1d,0xb8,0xe0,0x90,0x81,0x84,0x90,0x1c,0x4c,0x30,0x30,0xc1,0xc1,0x14,
+  0x20,0x23,0x29,0x18,0x63,0x5d,0x22,0xea,0x13,0x68,0xb7,0x73,0x88,0x57,0x9e,0xfb,
+  0x55,0xef,0x69,0x5d,0x2a,0x21,0x55,0x28,0xe1,0x3d,0x81,0xb,0xe,0x21,0x5,0xa2,
+  0x24,0x42,0xb3,0xd5,0x80,0x92,0x1,0xa4,0x52,0x3b,0x8d,0xd9,0xab,0x55,0x99,0x9f,
+  0x54,0x86,0x71,0x33,0x72,0x80,0x79,0xfb,0xee,0x67,0xf6,0x8,0x25,0x54,0xa8,0xc0,
+  0x85,0x0,0x18,0xc0,0x38,0xc0,0x38,0x3,0x17,0xc,0x4,0x6a,0x7a,0xef,0x57,0x0,
+  0xec,0x6e,0x84,0x74,0xc2,0xb6,0x92,0x52,0xac,0x1a,0x6d,0xdb,0xa3,0x8d,0x9,0x54,
+  0x74,0xd,0xde,0x3,0x55,0x51,0x22,0x9b,0xe6,0x28,0xb6,0x6a,0x50,0x29,0xa0,0x5a,
+  0x21,0x2,0x19,0x42,0xaa,0xd9,0x1d,0x25,0xf,0x30,0xcf,0xe7,0xb5,0x94,0xe1,0xe6,
+  0xa6,0xf7,0x8f,0x82,0x1,0xc3,0xfc,0x62,0x19,0xf8,0x7c,0x75,0x4b,0x0,0xc8,0x11,
+  0x6c,0xe9,0xe0,0xeb,0xa,0x9c,0x18,0xaa,0x4c,0x83,0xf3,0xf9,0x93,0x48,0xdb,0x25,
+  0x4c,0x65,0x4,0x40,0x7d,0x21,0x44,0x64,0x9d,0xdd,0x45,0x20,0xfd,0xe,0x94,0xf4,
+  0x94,0x4d,0x72,0x3c,0xf7,0xdf,0x17,0x71,0xe1,0x7,0x97,0x1,0x22,0x58,0xe7,0x60,
+  0x6b,0x83,0x3c,0x2b,0x40,0xf0,0x90,0x7,0x22,0xd8,0x15,0x82,0xb7,0xb8,0xd5,0x92,
+  0xcf,0x4b,0xc8,0x4e,0xfb,0xbe,0x63,0x1d,0xfa,0xa1,0x6e,0xf6,0x66,0xa5,0x21,0xa2,
+  0x1d,0xcb,0xe8,0xa9,0xc6,0x74,0x33,0x43,0x5d,0xce,0xac,0xc9,0x25,0x7,0x63,0xf3,
+  0xee,0xd7,0x38,0xe8,0xbc,0x6,0x18,0x48,0x46,0x12,0x3a,0xd7,0xbb,0x7,0xa4,0xdb,
+  0x8d,0xf2,0xaa,0xaa,0xbe,0x99,0x4f,0x8b,0x38,0xdd,0xce,0x61,0x74,0xfd,0xa,0x37,
+  0x1,0x8e,0xfc,0x5d,0x51,0x1c,0xde,0x11,0x88,0x12,0x37,0xc2,0x11,0x4c,0x65,0x91,
+  0x74,0x23,0xa8,0x50,0x82,0x73,0xe,0x2e,0x67,0xe1,0x4e,0x34,0x6b,0xeb,0x45,0x20,
+  0x20,0x20,0xe6,0x4f,0xd,0x11,0xa8,0x26,0x38,0x6b,0x61,0x6a,0x7,0x9d,0x6b,0xe4,
+  0x93,0x2,0xe9,0xd6,0x14,0xe9,0x20,0x43,0x36,0x2c,0x50,0x4d,0xab,0x1b,0x0,0x9d,
+  0x3,0x43,0xb9,0xd3,0xb8,0x31,0x6,0x21,0x38,0x20,0xf1,0xac,0xe2,0xea,0xc6,0xae,
+  0x5a,0xc6,0x5a,0x3b,0x96,0x52,0xfe,0xa3,0xd6,0xfa,0x6b,0xc5,0xb8,0xc0,0x78,0x92,
+  0x63,0xb6,0x63,0xab,0x0,0x5,0xb4,0x3b,0xf1,0xaf,0x5a,0x6b,0x7e,0x7b,0xbc,0x95,
+  0x76,0xf2,0xa2,0xc0,0xe0,0x72,0x84,0xc6,0x42,0x82,0x46,0x37,0x46,0xd2,0x89,0x11,
+  0x35,0x22,0x48,0x25,0xc0,0x38,0x20,0x94,0x84,0xc,0x25,0x98,0x60,0xf3,0xd5,0x6c,
+  0xd,0x5d,0x68,0x18,0xad,0x91,0x4f,0x2b,0x4c,0x37,0xa7,0x98,0xc,0xa6,0xc8,0x27,
+  0x5,0xaa,0xbc,0x86,0xa9,0xd,0x88,0xfb,0x6f,0x54,0x85,0xfd,0x4b,0x7,0x3f,0x5f,
+  0xea,0x1b,0x28,0x28,0x28,0xa5,0x20,0x98,0xc8,0x55,0xa4,0x36,0x5e,0xd3,0xb6,0xc1,
+  0xcf,0x7a,0x6a,0x7d,0xe4,0xc8,0x91,0x7,0xac,0xb5,0x1f,0x25,0x87,0x75,0x63,0x6d,
+  0x5b,0x5,0x62,0x21,0x6c,0x4,0xad,0xa4,0x1d,0xc7,0x49,0x3b,0xa,0xc3,0x38,0x88,
+  0x98,0xe0,0x11,0x63,0x50,0x52,0x49,0xc8,0x50,0x81,0x9,0xcc,0xc2,0xbe,0xac,0x51,
+  0x97,0xb5,0xb7,0xc6,0x9a,0x2a,0xd7,0x75,0xbe,0x9d,0xe7,0xf9,0xa4,0x98,0xea,0xa2,
+  0xce,0x8,0x98,0x80,0xb1,0x89,0x10,0xfc,0xef,0xc7,0xe3,0xf1,0xe7,0xf6,0xcc,0x46,
+  0xd5,0xda,0xda,0xda,0x93,0x1b,0x1b,0x1b,0xe3,0xda,0xd7,0x3d,0x72,0xee,0x80,0xd1,
+  0xfe,0x88,0x73,0x6e,0x4d,0x97,0xf5,0xc2,0x78,0x90,0xb6,0xa4,0xe0,0x6d,0x2,0x75,
+  0x88,0xd0,0x1,0xb0,0x40,0x40,0xb,0x20,0xee,0xbd,0xf7,0x4,0x6c,0x81,0x30,0x24,
+  0xe7,0x4a,0x6b,0x7d,0xee,0xad,0x1d,0x38,0xeb,0xaf,0x7b,0x4f,0x37,0x98,0x60,0x57,
+  0x38,0x67,0x57,0xa4,0x94,0xcf,0xbe,0x9e,0x1b,0x55,0xaf,0xe7,0xc3,0xff,0xac,0xd9,
+  0x6c,0x2e,0x29,0xa5,0xfa,0x64,0x68,0xd1,0x79,0xd7,0xb4,0xda,0x26,0x44,0x2c,0x21,
+  0xb8,0x6,0x81,0x35,0x88,0xa8,0xc5,0x81,0xd8,0x13,0xd8,0xac,0x9d,0x63,0x29,0xc0,
+  0x52,0xf,0xaf,0x1,0x54,0x52,0xb0,0x71,0xa0,0x82,0x31,0x9,0xda,0x4e,0x92,0x64,
+  0xf0,0xc8,0x23,0x8f,0xc,0xbe,0xf0,0x85,0x2f,0x38,0xec,0x6b,0x5f,0xfb,0xda,0xd7,
+  0xbe,0xf6,0xb5,0xaf,0x7d,0xed,0x6b,0x5f,0xff,0xef,0xf4,0x3f,0x19,0x39,0x12,0x4a,
+  0xc4,0xcc,0xb5,0x57,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+  
+    // /home/maemo/tietoopcom/resources/network.png
+  0x0,0x0,0x15,0xc3,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x28,0x0,0x0,0x0,0x28,0x8,0x6,0x0,0x0,0x0,0x8c,0xfe,0xb8,0x6d,
+  0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+  0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0xa,0x4d,0x69,0x43,0x43,0x50,0x50,0x68,0x6f,
+  0x74,0x6f,0x73,0x68,0x6f,0x70,0x20,0x49,0x43,0x43,0x20,0x70,0x72,0x6f,0x66,0x69,
+  0x6c,0x65,0x0,0x0,0x78,0xda,0x9d,0x53,0x77,0x58,0x93,0xf7,0x16,0x3e,0xdf,0xf7,
+  0x65,0xf,0x56,0x42,0xd8,0xf0,0xb1,0x97,0x6c,0x81,0x0,0x22,0x23,0xac,0x8,0xc8,
+  0x10,0x59,0xa2,0x10,0x92,0x0,0x61,0x84,0x10,0x12,0x40,0xc5,0x85,0x88,0xa,0x56,
+  0x14,0x15,0x11,0x9c,0x48,0x55,0xc4,0x82,0xd5,0xa,0x48,0x9d,0x88,0xe2,0xa0,0x28,
+  0xb8,0x67,0x41,0x8a,0x88,0x5a,0x8b,0x55,0x5c,0x38,0xee,0x1f,0xdc,0xa7,0xb5,0x7d,
+  0x7a,0xef,0xed,0xed,0xfb,0xd7,0xfb,0xbc,0xe7,0x9c,0xe7,0xfc,0xce,0x79,0xcf,0xf,
+  0x80,0x11,0x12,0x26,0x91,0xe6,0xa2,0x6a,0x0,0x39,0x52,0x85,0x3c,0x3a,0xd8,0x1f,
+  0x8f,0x4f,0x48,0xc4,0xc9,0xbd,0x80,0x2,0x15,0x48,0xe0,0x4,0x20,0x10,0xe6,0xcb,
+  0xc2,0x67,0x5,0xc5,0x0,0x0,0xf0,0x3,0x79,0x78,0x7e,0x74,0xb0,0x3f,0xfc,0x1,
+  0xaf,0x6f,0x0,0x2,0x0,0x70,0xd5,0x2e,0x24,0x12,0xc7,0xe1,0xff,0x83,0xba,0x50,
+  0x26,0x57,0x0,0x20,0x91,0x0,0xe0,0x22,0x12,0xe7,0xb,0x1,0x90,0x52,0x0,0xc8,
+  0x2e,0x54,0xc8,0x14,0x0,0xc8,0x18,0x0,0xb0,0x53,0xb3,0x64,0xa,0x0,0x94,0x0,
+  0x0,0x6c,0x79,0x7c,0x42,0x22,0x0,0xaa,0xd,0x0,0xec,0xf4,0x49,0x3e,0x5,0x0,
+  0xd8,0xa9,0x93,0xdc,0x17,0x0,0xd8,0xa2,0x1c,0xa9,0x8,0x0,0x8d,0x1,0x0,0x99,
+  0x28,0x47,0x24,0x2,0x40,0xbb,0x0,0x60,0x55,0x81,0x52,0x2c,0x2,0xc0,0xc2,0x0,
+  0xa0,0xac,0x40,0x22,0x2e,0x4,0xc0,0xae,0x1,0x80,0x59,0xb6,0x32,0x47,0x2,0x80,
+  0xbd,0x5,0x0,0x76,0x8e,0x58,0x90,0xf,0x40,0x60,0x0,0x80,0x99,0x42,0x2c,0xcc,
+  0x0,0x20,0x38,0x2,0x0,0x43,0x1e,0x13,0xcd,0x3,0x20,0x4c,0x3,0xa0,0x30,0xd2,
+  0xbf,0xe0,0xa9,0x5f,0x70,0x85,0xb8,0x48,0x1,0x0,0xc0,0xcb,0x95,0xcd,0x97,0x4b,
+  0xd2,0x33,0x14,0xb8,0x95,0xd0,0x1a,0x77,0xf2,0xf0,0xe0,0xe2,0x21,0xe2,0xc2,0x6c,
+  0xb1,0x42,0x61,0x17,0x29,0x10,0x66,0x9,0xe4,0x22,0x9c,0x97,0x9b,0x23,0x13,0x48,
+  0xe7,0x3,0x4c,0xce,0xc,0x0,0x0,0x1a,0xf9,0xd1,0xc1,0xfe,0x38,0x3f,0x90,0xe7,
+  0xe6,0xe4,0xe1,0xe6,0x66,0xe7,0x6c,0xef,0xf4,0xc5,0xa2,0xfe,0x6b,0xf0,0x6f,0x22,
+  0x3e,0x21,0xf1,0xdf,0xfe,0xbc,0x8c,0x2,0x4,0x0,0x10,0x4e,0xcf,0xef,0xda,0x5f,
+  0xe5,0xe5,0xd6,0x3,0x70,0xc7,0x1,0xb0,0x75,0xbf,0x6b,0xa9,0x5b,0x0,0xda,0x56,
+  0x0,0x68,0xdf,0xf9,0x5d,0x33,0xdb,0x9,0xa0,0x5a,0xa,0xd0,0x7a,0xf9,0x8b,0x79,
+  0x38,0xfc,0x40,0x1e,0x9e,0xa1,0x50,0xc8,0x3c,0x1d,0x1c,0xa,0xb,0xb,0xed,0x25,
+  0x62,0xa1,0xbd,0x30,0xe3,0x8b,0x3e,0xff,0x33,0xe1,0x6f,0xe0,0x8b,0x7e,0xf6,0xfc,
+  0x40,0x1e,0xfe,0xdb,0x7a,0xf0,0x0,0x71,0x9a,0x40,0x99,0xad,0xc0,0xa3,0x83,0xfd,
+  0x71,0x61,0x6e,0x76,0xae,0x52,0x8e,0xe7,0xcb,0x4,0x42,0x31,0x6e,0xf7,0xe7,0x23,
+  0xfe,0xc7,0x85,0x7f,0xfd,0x8e,0x29,0xd1,0xe2,0x34,0xb1,0x5c,0x2c,0x15,0x8a,0xf1,
+  0x58,0x89,0xb8,0x50,0x22,0x4d,0xc7,0x79,0xb9,0x52,0x91,0x44,0x21,0xc9,0x95,0xe2,
+  0x12,0xe9,0x7f,0x32,0xf1,0x1f,0x96,0xfd,0x9,0x93,0x77,0xd,0x0,0xac,0x86,0x4f,
+  0xc0,0x4e,0xb6,0x7,0xb5,0xcb,0x6c,0xc0,0x7e,0xee,0x1,0x2,0x8b,0xe,0x58,0xd2,
+  0x76,0x0,0x40,0x7e,0xf3,0x2d,0x8c,0x1a,0xb,0x91,0x0,0x10,0x67,0x34,0x32,0x79,
+  0xf7,0x0,0x0,0x93,0xbf,0xf9,0x8f,0x40,0x2b,0x1,0x0,0xcd,0x97,0xa4,0xe3,0x0,
+  0x0,0xbc,0xe8,0x18,0x5c,0xa8,0x94,0x17,0x4c,0xc6,0x8,0x0,0x0,0x44,0xa0,0x81,
+  0x2a,0xb0,0x41,0x7,0xc,0xc1,0x14,0xac,0xc0,0xe,0x9c,0xc1,0x1d,0xbc,0xc0,0x17,
+  0x2,0x61,0x6,0x44,0x40,0xc,0x24,0xc0,0x3c,0x10,0x42,0x6,0xe4,0x80,0x1c,0xa,
+  0xa1,0x18,0x96,0x41,0x19,0x54,0xc0,0x3a,0xd8,0x4,0xb5,0xb0,0x3,0x1a,0xa0,0x11,
+  0x9a,0xe1,0x10,0xb4,0xc1,0x31,0x38,0xd,0xe7,0xe0,0x12,0x5c,0x81,0xeb,0x70,0x17,
+  0x6,0x60,0x18,0x9e,0xc2,0x18,0xbc,0x86,0x9,0x4,0x41,0xc8,0x8,0x13,0x61,0x21,
+  0x3a,0x88,0x11,0x62,0x8e,0xd8,0x22,0xce,0x8,0x17,0x99,0x8e,0x4,0x22,0x61,0x48,
+  0x34,0x92,0x80,0xa4,0x20,0xe9,0x88,0x14,0x51,0x22,0xc5,0xc8,0x72,0xa4,0x2,0xa9,
+  0x42,0x6a,0x91,0x5d,0x48,0x23,0xf2,0x2d,0x72,0x14,0x39,0x8d,0x5c,0x40,0xfa,0x90,
+  0xdb,0xc8,0x20,0x32,0x8a,0xfc,0x8a,0xbc,0x47,0x31,0x94,0x81,0xb2,0x51,0x3,0xd4,
+  0x2,0x75,0x40,0xb9,0xa8,0x1f,0x1a,0x8a,0xc6,0xa0,0x73,0xd1,0x74,0x34,0xf,0x5d,
+  0x80,0x96,0xa2,0x6b,0xd1,0x1a,0xb4,0x1e,0x3d,0x80,0xb6,0xa2,0xa7,0xd1,0x4b,0xe8,
+  0x75,0x74,0x0,0x7d,0x8a,0x8e,0x63,0x80,0xd1,0x31,0xe,0x66,0x8c,0xd9,0x61,0x5c,
+  0x8c,0x87,0x45,0x60,0x89,0x58,0x1a,0x26,0xc7,0x16,0x63,0xe5,0x58,0x35,0x56,0x8f,
+  0x35,0x63,0x1d,0x58,0x37,0x76,0x15,0x1b,0xc0,0x9e,0x61,0xef,0x8,0x24,0x2,0x8b,
+  0x80,0x13,0xec,0x8,0x5e,0x84,0x10,0xc2,0x6c,0x82,0x90,0x90,0x47,0x58,0x4c,0x58,
+  0x43,0xa8,0x25,0xec,0x23,0xb4,0x12,0xba,0x8,0x57,0x9,0x83,0x84,0x31,0xc2,0x27,
+  0x22,0x93,0xa8,0x4f,0xb4,0x25,0x7a,0x12,0xf9,0xc4,0x78,0x62,0x3a,0xb1,0x90,0x58,
+  0x46,0xac,0x26,0xee,0x21,0x1e,0x21,0x9e,0x25,0x5e,0x27,0xe,0x13,0x5f,0x93,0x48,
+  0x24,0xe,0xc9,0x92,0xe4,0x4e,0xa,0x21,0x25,0x90,0x32,0x49,0xb,0x49,0x6b,0x48,
+  0xdb,0x48,0x2d,0xa4,0x53,0xa4,0x3e,0xd2,0x10,0x69,0x9c,0x4c,0x26,0xeb,0x90,0x6d,
+  0xc9,0xde,0xe4,0x8,0xb2,0x80,0xac,0x20,0x97,0x91,0xb7,0x90,0xf,0x90,0x4f,0x92,
+  0xfb,0xc9,0xc3,0xe4,0xb7,0x14,0x3a,0xc5,0x88,0xe2,0x4c,0x9,0xa2,0x24,0x52,0xa4,
+  0x94,0x12,0x4a,0x35,0x65,0x3f,0xe5,0x4,0xa5,0x9f,0x32,0x42,0x99,0xa0,0xaa,0x51,
+  0xcd,0xa9,0x9e,0xd4,0x8,0xaa,0x88,0x3a,0x9f,0x5a,0x49,0x6d,0xa0,0x76,0x50,0x2f,
+  0x53,0x87,0xa9,0x13,0x34,0x75,0x9a,0x25,0xcd,0x9b,0x16,0x43,0xcb,0xa4,0x2d,0xa3,
+  0xd5,0xd0,0x9a,0x69,0x67,0x69,0xf7,0x68,0x2f,0xe9,0x74,0xba,0x9,0xdd,0x83,0x1e,
+  0x45,0x97,0xd0,0x97,0xd2,0x6b,0xe8,0x7,0xe9,0xe7,0xe9,0x83,0xf4,0x77,0xc,0xd,
+  0x86,0xd,0x83,0xc7,0x48,0x62,0x28,0x19,0x6b,0x19,0x7b,0x19,0xa7,0x18,0xb7,0x19,
+  0x2f,0x99,0x4c,0xa6,0x5,0xd3,0x97,0x99,0xc8,0x54,0x30,0xd7,0x32,0x1b,0x99,0x67,
+  0x98,0xf,0x98,0x6f,0x55,0x58,0x2a,0xf6,0x2a,0x7c,0x15,0x91,0xca,0x12,0x95,0x3a,
+  0x95,0x56,0x95,0x7e,0x95,0xe7,0xaa,0x54,0x55,0x73,0x55,0x3f,0xd5,0x79,0xaa,0xb,
+  0x54,0xab,0x55,0xf,0xab,0x5e,0x56,0x7d,0xa6,0x46,0x55,0xb3,0x50,0xe3,0xa9,0x9,
+  0xd4,0x16,0xab,0xd5,0xa9,0x1d,0x55,0xbb,0xa9,0x36,0xae,0xce,0x52,0x77,0x52,0x8f,
+  0x50,0xcf,0x51,0x5f,0xa3,0xbe,0x5f,0xfd,0x82,0xfa,0x63,0xd,0xb2,0x86,0x85,0x46,
+  0xa0,0x86,0x48,0xa3,0x54,0x63,0xb7,0xc6,0x19,0x8d,0x21,0x16,0xc6,0x32,0x65,0xf1,
+  0x58,0x42,0xd6,0x72,0x56,0x3,0xeb,0x2c,0x6b,0x98,0x4d,0x62,0x5b,0xb2,0xf9,0xec,
+  0x4c,0x76,0x5,0xfb,0x1b,0x76,0x2f,0x7b,0x4c,0x53,0x43,0x73,0xaa,0x66,0xac,0x66,
+  0x91,0x66,0x9d,0xe6,0x71,0xcd,0x1,0xe,0xc6,0xb1,0xe0,0xf0,0x39,0xd9,0x9c,0x4a,
+  0xce,0x21,0xce,0xd,0xce,0x7b,0x2d,0x3,0x2d,0x3f,0x2d,0xb1,0xd6,0x6a,0xad,0x66,
+  0xad,0x7e,0xad,0x37,0xda,0x7a,0xda,0xbe,0xda,0x62,0xed,0x72,0xed,0x16,0xed,0xeb,
+  0xda,0xef,0x75,0x70,0x9d,0x40,0x9d,0x2c,0x9d,0xf5,0x3a,0x6d,0x3a,0xf7,0x75,0x9,
+  0xba,0x36,0xba,0x51,0xba,0x85,0xba,0xdb,0x75,0xcf,0xea,0x3e,0xd3,0x63,0xeb,0x79,
+  0xe9,0x9,0xf5,0xca,0xf5,0xe,0xe9,0xdd,0xd1,0x47,0xf5,0x6d,0xf4,0xa3,0xf5,0x17,
+  0xea,0xef,0xd6,0xef,0xd1,0x1f,0x37,0x30,0x34,0x8,0x36,0x90,0x19,0x6c,0x31,0x38,
+  0x63,0xf0,0xcc,0x90,0x63,0xe8,0x6b,0x98,0x69,0xb8,0xd1,0xf0,0x84,0xe1,0xa8,0x11,
+  0xcb,0x68,0xba,0x91,0xc4,0x68,0xa3,0xd1,0x49,0xa3,0x27,0xb8,0x26,0xee,0x87,0x67,
+  0xe3,0x35,0x78,0x17,0x3e,0x66,0xac,0x6f,0x1c,0x62,0xac,0x34,0xde,0x65,0xdc,0x6b,
+  0x3c,0x61,0x62,0x69,0x32,0xdb,0xa4,0xc4,0xa4,0xc5,0xe4,0xbe,0x29,0xcd,0x94,0x6b,
+  0x9a,0x66,0xba,0xd1,0xb4,0xd3,0x74,0xcc,0xcc,0xc8,0x2c,0xdc,0xac,0xd8,0xac,0xc9,
+  0xec,0x8e,0x39,0xd5,0x9c,0x6b,0x9e,0x61,0xbe,0xd9,0xbc,0xdb,0xfc,0x8d,0x85,0xa5,
+  0x45,0x9c,0xc5,0x4a,0x8b,0x36,0x8b,0xc7,0x96,0xda,0x96,0x7c,0xcb,0x5,0x96,0x4d,
+  0x96,0xf7,0xac,0x98,0x56,0x3e,0x56,0x79,0x56,0xf5,0x56,0xd7,0xac,0x49,0xd6,0x5c,
+  0xeb,0x2c,0xeb,0x6d,0xd6,0x57,0x6c,0x50,0x1b,0x57,0x9b,0xc,0x9b,0x3a,0x9b,0xcb,
+  0xb6,0xa8,0xad,0x9b,0xad,0xc4,0x76,0x9b,0x6d,0xdf,0x14,0xe2,0x14,0x8f,0x29,0xd2,
+  0x29,0xf5,0x53,0x6e,0xda,0x31,0xec,0xfc,0xec,0xa,0xec,0x9a,0xec,0x6,0xed,0x39,
+  0xf6,0x61,0xf6,0x25,0xf6,0x6d,0xf6,0xcf,0x1d,0xcc,0x1c,0x12,0x1d,0xd6,0x3b,0x74,
+  0x3b,0x7c,0x72,0x74,0x75,0xcc,0x76,0x6c,0x70,0xbc,0xeb,0xa4,0xe1,0x34,0xc3,0xa9,
+  0xc4,0xa9,0xc3,0xe9,0x57,0x67,0x1b,0x67,0xa1,0x73,0x9d,0xf3,0x35,0x17,0xa6,0x4b,
+  0x90,0xcb,0x12,0x97,0x76,0x97,0x17,0x53,0x6d,0xa7,0x8a,0xa7,0x6e,0x9f,0x7a,0xcb,
+  0x95,0xe5,0x1a,0xee,0xba,0xd2,0xb5,0xd3,0xf5,0xa3,0x9b,0xbb,0x9b,0xdc,0xad,0xd9,
+  0x6d,0xd4,0xdd,0xcc,0x3d,0xc5,0x7d,0xab,0xfb,0x4d,0x2e,0x9b,0x1b,0xc9,0x5d,0xc3,
+  0x3d,0xef,0x41,0xf4,0xf0,0xf7,0x58,0xe2,0x71,0xcc,0xe3,0x9d,0xa7,0x9b,0xa7,0xc2,
+  0xf3,0x90,0xe7,0x2f,0x5e,0x76,0x5e,0x59,0x5e,0xfb,0xbd,0x1e,0x4f,0xb3,0x9c,0x26,
+  0x9e,0xd6,0x30,0x6d,0xc8,0xdb,0xc4,0x5b,0xe0,0xbd,0xcb,0x7b,0x60,0x3a,0x3e,0x3d,
+  0x65,0xfa,0xce,0xe9,0x3,0x3e,0xc6,0x3e,0x2,0x9f,0x7a,0x9f,0x87,0xbe,0xa6,0xbe,
+  0x22,0xdf,0x3d,0xbe,0x23,0x7e,0xd6,0x7e,0x99,0x7e,0x7,0xfc,0x9e,0xfb,0x3b,0xfa,
+  0xcb,0xfd,0x8f,0xf8,0xbf,0xe1,0x79,0xf2,0x16,0xf1,0x4e,0x5,0x60,0x1,0xc1,0x1,
+  0xe5,0x1,0xbd,0x81,0x1a,0x81,0xb3,0x3,0x6b,0x3,0x1f,0x4,0x99,0x4,0xa5,0x7,
+  0x35,0x5,0x8d,0x5,0xbb,0x6,0x2f,0xc,0x3e,0x15,0x42,0xc,0x9,0xd,0x59,0x1f,
+  0x72,0x93,0x6f,0xc0,0x17,0xf2,0x1b,0xf9,0x63,0x33,0xdc,0x67,0x2c,0x9a,0xd1,0x15,
+  0xca,0x8,0x9d,0x15,0x5a,0x1b,0xfa,0x30,0xcc,0x26,0x4c,0x1e,0xd6,0x11,0x8e,0x86,
+  0xcf,0x8,0xdf,0x10,0x7e,0x6f,0xa6,0xf9,0x4c,0xe9,0xcc,0xb6,0x8,0x88,0xe0,0x47,
+  0x6c,0x88,0xb8,0x1f,0x69,0x19,0x99,0x17,0xf9,0x7d,0x14,0x29,0x2a,0x32,0xaa,0x2e,
+  0xea,0x51,0xb4,0x53,0x74,0x71,0x74,0xf7,0x2c,0xd6,0xac,0xe4,0x59,0xfb,0x67,0xbd,
+  0x8e,0xf1,0x8f,0xa9,0x8c,0xb9,0x3b,0xdb,0x6a,0xb6,0x72,0x76,0x67,0xac,0x6a,0x6c,
+  0x52,0x6c,0x63,0xec,0x9b,0xb8,0x80,0xb8,0xaa,0xb8,0x81,0x78,0x87,0xf8,0x45,0xf1,
+  0x97,0x12,0x74,0x13,0x24,0x9,0xed,0x89,0xe4,0xc4,0xd8,0xc4,0x3d,0x89,0xe3,0x73,
+  0x2,0xe7,0x6c,0x9a,0x33,0x9c,0xe4,0x9a,0x54,0x96,0x74,0x63,0xae,0xe5,0xdc,0xa2,
+  0xb9,0x17,0xe6,0xe9,0xce,0xcb,0x9e,0x77,0x3c,0x59,0x35,0x59,0x90,0x7c,0x38,0x85,
+  0x98,0x12,0x97,0xb2,0x3f,0xe5,0x83,0x20,0x42,0x50,0x2f,0x18,0x4f,0xe5,0xa7,0x6e,
+  0x4d,0x1d,0x13,0xf2,0x84,0x9b,0x85,0x4f,0x45,0xbe,0xa2,0x8d,0xa2,0x51,0xb1,0xb7,
+  0xb8,0x4a,0x3c,0x92,0xe6,0x9d,0x56,0x95,0xf6,0x38,0xdd,0x3b,0x7d,0x43,0xfa,0x68,
+  0x86,0x4f,0x46,0x75,0xc6,0x33,0x9,0x4f,0x52,0x2b,0x79,0x91,0x19,0x92,0xb9,0x23,
+  0xf3,0x4d,0x56,0x44,0xd6,0xde,0xac,0xcf,0xd9,0x71,0xd9,0x2d,0x39,0x94,0x9c,0x94,
+  0x9c,0xa3,0x52,0xd,0x69,0x96,0xb4,0x2b,0xd7,0x30,0xb7,0x28,0xb7,0x4f,0x66,0x2b,
+  0x2b,0x93,0xd,0xe4,0x79,0xe6,0x6d,0xca,0x1b,0x93,0x87,0xca,0xf7,0xe4,0x23,0xf9,
+  0x73,0xf3,0xdb,0x15,0x6c,0x85,0x4c,0xd1,0xa3,0xb4,0x52,0xae,0x50,0xe,0x16,0x4c,
+  0x2f,0xa8,0x2b,0x78,0x5b,0x18,0x5b,0x78,0xb8,0x48,0xbd,0x48,0x5a,0xd4,0x33,0xdf,
+  0x66,0xfe,0xea,0xf9,0x23,0xb,0x82,0x16,0x7c,0xbd,0x90,0xb0,0x50,0xb8,0xb0,0xb3,
+  0xd8,0xb8,0x78,0x59,0xf1,0xe0,0x22,0xbf,0x45,0xbb,0x16,0x23,0x8b,0x53,0x17,0x77,
+  0x2e,0x31,0x5d,0x52,0xba,0x64,0x78,0x69,0xf0,0xd2,0x7d,0xcb,0x68,0xcb,0xb2,0x96,
+  0xfd,0x50,0xe2,0x58,0x52,0x55,0xf2,0x6a,0x79,0xdc,0xf2,0x8e,0x52,0x83,0xd2,0xa5,
+  0xa5,0x43,0x2b,0x82,0x57,0x34,0x95,0xa9,0x94,0xc9,0xcb,0x6e,0xae,0xf4,0x5a,0xb9,
+  0x63,0x15,0x61,0x95,0x64,0x55,0xef,0x6a,0x97,0xd5,0x5b,0x56,0x7f,0x2a,0x17,0x95,
+  0x5f,0xac,0x70,0xac,0xa8,0xae,0xf8,0xb0,0x46,0xb8,0xe6,0xe2,0x57,0x4e,0x5f,0xd5,
+  0x7c,0xf5,0x79,0x6d,0xda,0xda,0xde,0x4a,0xb7,0xca,0xed,0xeb,0x48,0xeb,0xa4,0xeb,
+  0x6e,0xac,0xf7,0x59,0xbf,0xaf,0x4a,0xbd,0x6a,0x41,0xd5,0xd0,0x86,0xf0,0xd,0xad,
+  0x1b,0xf1,0x8d,0xe5,0x1b,0x5f,0x6d,0x4a,0xde,0x74,0xa1,0x7a,0x6a,0xf5,0x8e,0xcd,
+  0xb4,0xcd,0xca,0xcd,0x3,0x35,0x61,0x35,0xed,0x5b,0xcc,0xb6,0xac,0xdb,0xf2,0xa1,
+  0x36,0xa3,0xf6,0x7a,0x9d,0x7f,0x5d,0xcb,0x56,0xfd,0xad,0xab,0xb7,0xbe,0xd9,0x26,
+  0xda,0xd6,0xbf,0xdd,0x77,0x7b,0xf3,0xe,0x83,0x1d,0x15,0x3b,0xde,0xef,0x94,0xec,
+  0xbc,0xb5,0x2b,0x78,0x57,0x6b,0xbd,0x45,0x7d,0xf5,0x6e,0xd2,0xee,0x82,0xdd,0x8f,
+  0x1a,0x62,0x1b,0xba,0xbf,0xe6,0x7e,0xdd,0xb8,0x47,0x77,0x4f,0xc5,0x9e,0x8f,0x7b,
+  0xa5,0x7b,0x7,0xf6,0x45,0xef,0xeb,0x6a,0x74,0x6f,0x6c,0xdc,0xaf,0xbf,0xbf,0xb2,
+  0x9,0x6d,0x52,0x36,0x8d,0x1e,0x48,0x3a,0x70,0xe5,0x9b,0x80,0x6f,0xda,0x9b,0xed,
+  0x9a,0x77,0xb5,0x70,0x5a,0x2a,0xe,0xc2,0x41,0xe5,0xc1,0x27,0xdf,0xa6,0x7c,0x7b,
+  0xe3,0x50,0xe8,0xa1,0xce,0xc3,0xdc,0xc3,0xcd,0xdf,0x99,0x7f,0xb7,0xf5,0x8,0xeb,
+  0x48,0x79,0x2b,0xd2,0x3a,0xbf,0x75,0xac,0x2d,0xa3,0x6d,0xa0,0x3d,0xa1,0xbd,0xef,
+  0xe8,0x8c,0xa3,0x9d,0x1d,0x5e,0x1d,0x47,0xbe,0xb7,0xff,0x7e,0xef,0x31,0xe3,0x63,
+  0x75,0xc7,0x35,0x8f,0x57,0x9e,0xa0,0x9d,0x28,0x3d,0xf1,0xf9,0xe4,0x82,0x93,0xe3,
+  0xa7,0x64,0xa7,0x9e,0x9d,0x4e,0x3f,0x3d,0xd4,0x99,0xdc,0x79,0xf7,0x4c,0xfc,0x99,
+  0x6b,0x5d,0x51,0x5d,0xbd,0x67,0x43,0xcf,0x9e,0x3f,0x17,0x74,0xee,0x4c,0xb7,0x5f,
+  0xf7,0xc9,0xf3,0xde,0xe7,0x8f,0x5d,0xf0,0xbc,0x70,0xf4,0x22,0xf7,0x62,0xdb,0x25,
+  0xb7,0x4b,0xad,0x3d,0xae,0x3d,0x47,0x7e,0x70,0xfd,0xe1,0x48,0xaf,0x5b,0x6f,0xeb,
+  0x65,0xf7,0xcb,0xed,0x57,0x3c,0xae,0x74,0xf4,0x4d,0xeb,0x3b,0xd1,0xef,0xd3,0x7f,
+  0xfa,0x6a,0xc0,0xd5,0x73,0xd7,0xf8,0xd7,0x2e,0x5d,0x9f,0x79,0xbd,0xef,0xc6,0xec,
+  0x1b,0xb7,0x6e,0x26,0xdd,0x1c,0xb8,0x25,0xba,0xf5,0xf8,0x76,0xf6,0xed,0x17,0x77,
+  0xa,0xee,0x4c,0xdc,0x5d,0x7a,0x8f,0x78,0xaf,0xfc,0xbe,0xda,0xfd,0xea,0x7,0xfa,
+  0xf,0xea,0x7f,0xb4,0xfe,0xb1,0x65,0xc0,0x6d,0xe0,0xf8,0x60,0xc0,0x60,0xcf,0xc3,
+  0x59,0xf,0xef,0xe,0x9,0x87,0x9e,0xfe,0x94,0xff,0xd3,0x87,0xe1,0xd2,0x47,0xcc,
+  0x47,0xd5,0x23,0x46,0x23,0x8d,0x8f,0x9d,0x1f,0x1f,0x1b,0xd,0x1a,0xbd,0xf2,0x64,
+  0xce,0x93,0xe1,0xa7,0xb2,0xa7,0x13,0xcf,0xca,0x7e,0x56,0xff,0x79,0xeb,0x73,0xab,
+  0xe7,0xdf,0xfd,0xe2,0xfb,0x4b,0xcf,0x58,0xfc,0xd8,0xf0,0xb,0xf9,0x8b,0xcf,0xbf,
+  0xae,0x79,0xa9,0xf3,0x72,0xef,0xab,0xa9,0xaf,0x3a,0xc7,0x23,0xc7,0x1f,0xbc,0xce,
+  0x79,0x3d,0xf1,0xa6,0xfc,0xad,0xce,0xdb,0x7d,0xef,0xb8,0xef,0xba,0xdf,0xc7,0xbd,
+  0x1f,0x99,0x28,0xfc,0x40,0xfe,0x50,0xf3,0xd1,0xfa,0x63,0xc7,0xa7,0xd0,0x4f,0xf7,
+  0x3e,0xe7,0x7c,0xfe,0xfc,0x2f,0xf7,0x84,0xf3,0xfb,0x25,0xd2,0x9f,0x33,0x0,0x0,
+  0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xb1,0x8e,0x7c,0xfb,0x51,0x93,0x0,0x0,
+  0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x7a,0x25,0x0,0x0,0x80,0x83,0x0,0x0,
+  0xf9,0xff,0x0,0x0,0x80,0xe9,0x0,0x0,0x75,0x30,0x0,0x0,0xea,0x60,0x0,0x0,
+  0x3a,0x98,0x0,0x0,0x17,0x6f,0x92,0x5f,0xc5,0x46,0x0,0x0,0xa,0xe0,0x49,0x44,
+  0x41,0x54,0x78,0xda,0xec,0x98,0x7b,0x6c,0x5c,0xf5,0x95,0xc7,0x3f,0xf7,0xce,0xdb,
+  0x33,0x9e,0x87,0xdf,0x76,0x70,0x66,0x1c,0xe2,0x18,0x93,0xd7,0x24,0x24,0xd,0x24,
+  0x4a,0xd7,0x50,0x2a,0xa0,0x5,0xd9,0x8b,0xe8,0x6e,0x1f,0xb,0xb8,0xa4,0xca,0x2e,
+  0xd1,0xae,0x64,0xd0,0x82,0xaa,0x82,0x1a,0xb7,0x2b,0x56,0xbb,0x4a,0xb,0x6e,0x17,
+  0x50,0xb,0x2b,0x98,0x40,0x14,0xaa,0x4a,0xdd,0x84,0x57,0x4a,0xa,0x24,0x43,0xf3,
+  0xc0,0xf1,0x6e,0x92,0x49,0xb0,0x13,0x6c,0x93,0xc4,0xe3,0x67,0xec,0xb1,0x9d,0xf1,
+  0xcc,0x9d,0x99,0xfb,0xbe,0xfb,0x87,0x1d,0x6f,0x56,0x75,0x2,0x5b,0xed,0xae,0xfa,
+  0x47,0x8e,0x74,0xa4,0xab,0xfb,0xd5,0xfd,0xfd,0xbe,0x3a,0xbf,0xdf,0xf9,0x9e,0x73,
+  0xae,0x60,0x59,0x16,0x7f,0xca,0x26,0xf2,0x27,0x6e,0xd7,0x9,0x5e,0x27,0x78,0x9d,
+  0xe0,0xe7,0x98,0x7d,0xa1,0x97,0xf,0x3c,0xf0,0x0,0x77,0xdd,0xb7,0x8d,0x62,0x9f,
+  0x9b,0x62,0x9f,0x7,0x97,0xcb,0x8e,0xae,0x9b,0x78,0xdc,0x2e,0xde,0x7d,0xeb,0x95,
+  0xb0,0xa6,0x69,0x6d,0x8a,0xa2,0x44,0x15,0x45,0x69,0x92,0x65,0x99,0x2b,0xbd,0x50,
+  0x28,0xc4,0xb,0x85,0x42,0x42,0x51,0x94,0x8e,0xba,0x86,0xbb,0x92,0x9b,0x37,0x54,
+  0x52,0x56,0x56,0xc6,0x81,0x3,0x7,0xd8,0xbd,0x7b,0xf7,0x35,0xc9,0xf4,0xf7,0xf7,
+  0xf3,0xfc,0xf3,0xcf,0xe3,0x5f,0x39,0xc9,0xc8,0x51,0x17,0xa1,0x50,0x68,0x61,0x82,
+  0xb2,0x2c,0x63,0x59,0x20,0x8a,0x22,0x36,0xdb,0xac,0x7f,0xb8,0x7f,0x77,0xd8,0x34,
+  0xcd,0x76,0x51,0xb4,0xb7,0x2e,0xbb,0x69,0x5,0xee,0xa2,0x72,0x6e,0x6a,0x5c,0x89,
+  0xa6,0x9b,0x68,0x9a,0x81,0xa2,0x18,0xc8,0xaa,0xce,0x67,0x7d,0xdd,0x4d,0xa7,0x13,
+  0x47,0x9b,0x8e,0x77,0xfd,0xae,0xed,0x44,0xe7,0xaf,0x62,0x47,0xe3,0x72,0xfb,0x8e,
+  0x1d,0x3b,0x92,0x0,0x86,0x1,0xd7,0x52,0x5d,0x73,0xe,0xd4,0x74,0xd,0x5d,0xb7,
+  0xa1,0xeb,0xfa,0xc2,0x47,0x5c,0x28,0x14,0x28,0x14,0x34,0x72,0x79,0x8d,0x7c,0x5e,
+  0xe5,0x77,0xfb,0x76,0x35,0x5b,0x96,0x95,0x28,0xad,0x58,0xda,0xba,0xf9,0x8e,0x6f,
+  0x70,0xfb,0x57,0xbe,0xc6,0xda,0xb5,0x6b,0x28,0xf2,0x38,0x28,0xf2,0xd8,0x71,0xbb,
+  0xec,0x1c,0x3f,0xd9,0x83,0x24,0x49,0xdc,0xb8,0x74,0x39,0x5f,0xbd,0xe7,0x21,0xb6,
+  0x3c,0xda,0xc1,0xba,0x5b,0x5b,0x5a,0x15,0x45,0x49,0x6c,0xdd,0xba,0xb5,0x19,0x40,
+  0xd6,0x20,0xa7,0xfc,0xa1,0x6f,0xd9,0xb6,0x2b,0x9c,0x53,0x40,0xd3,0x67,0xf7,0xd7,
+  0x75,0xd,0x4d,0xd3,0xd0,0x75,0x1d,0x61,0xa1,0x4a,0xb2,0x69,0xd3,0x26,0xee,0x6e,
+  0x7e,0x2,0xbf,0xdf,0xc3,0xc5,0x64,0xfc,0x61,0x51,0xb4,0xc7,0x1a,0x96,0x6f,0xc6,
+  0x1f,0x28,0x61,0x6d,0x74,0x29,0x45,0x1e,0x7,0xbf,0xd9,0xf3,0x3e,0x1f,0x1e,0xf8,
+  0x98,0xed,0x3f,0xfc,0x7b,0x64,0x45,0x67,0x26,0x93,0xe7,0xad,0x77,0xe,0xe3,0x70,
+  0x38,0x59,0x77,0xcb,0x2a,0x32,0xd9,0x2,0xe9,0x74,0x8e,0xfe,0xde,0x1e,0x5e,0xfb,
+  0xd7,0x27,0x51,0x94,0x5c,0xeb,0x44,0xda,0xda,0xa9,0x68,0xff,0x7d,0xaf,0xa7,0x9e,
+  0xda,0x15,0x6,0x6,0x80,0x18,0xd0,0x16,0x74,0xff,0xfb,0x8c,0x50,0x77,0x9e,0x91,
+  0x23,0x6e,0x4a,0x4a,0x4a,0x16,0x8e,0x60,0x3e,0x9f,0x27,0x39,0xd0,0xcb,0xc5,0x64,
+  0xbc,0xd9,0xe1,0x70,0xc6,0xee,0xb9,0xf7,0x3b,0x2c,0xbf,0x79,0x19,0xd1,0x95,0x11,
+  0xca,0x4a,0xbc,0xec,0xf8,0xe9,0xcb,0xfc,0xfc,0xf9,0x18,0x3d,0x67,0x7a,0x39,0x7c,
+  0xf8,0x63,0x4,0x4c,0x86,0x87,0xc7,0xb9,0xbf,0xb9,0x9,0x4d,0x55,0x71,0x38,0x6c,
+  0x38,0x9d,0x76,0x9c,0x4e,0x3b,0x35,0x37,0x2c,0xe5,0xaf,0xbe,0xf7,0x33,0x4,0x41,
+  0x8c,0x55,0x4,0x85,0xe6,0x4b,0x39,0xb8,0xd2,0x81,0x8e,0xb9,0x6d,0x5b,0x81,0x78,
+  0x5a,0x5e,0x1f,0x98,0x8d,0xa2,0x7e,0xed,0x23,0x2e,0xf,0xa4,0xc3,0xa6,0x69,0xc6,
+  0xbe,0x7e,0xdf,0x37,0xa9,0x8b,0xd4,0x50,0x7f,0x63,0x35,0x35,0x55,0x21,0x7e,0xfc,
+  0xcc,0x8b,0xbc,0xb3,0x2f,0xe,0x80,0xcf,0x5b,0x44,0x28,0x54,0x8c,0xcf,0xe7,0x66,
+  0xd5,0xca,0x25,0xd8,0xed,0x22,0xab,0x57,0xd5,0x93,0x4a,0xa5,0xf0,0x17,0xbb,0xf1,
+  0xf9,0xdc,0x38,0x1c,0x36,0x46,0x86,0xce,0x10,0x2c,0xa9,0x5,0x88,0xad,0x8a,0x8,
+  0xe1,0xe9,0x2c,0x5c,0x76,0xa0,0x1d,0x48,0xcf,0x6d,0x1d,0x5,0xe2,0x97,0x9,0x6a,
+  0x9a,0xb6,0x30,0x41,0x59,0x96,0xd1,0x75,0xbd,0x7d,0xe5,0xea,0x5b,0x83,0x15,0x95,
+  0xd5,0x78,0xdc,0xe,0x5c,0x2e,0x1b,0x6f,0xfc,0xfa,0x5d,0xde,0x7e,0xf7,0x20,0x0,
+  0xd,0xcb,0x22,0xfc,0xf2,0xc5,0x1f,0xe1,0x2f,0xe,0xf0,0x93,0x67,0x5f,0xc5,0x61,
+  0xb7,0x11,0xc,0x78,0x8,0xf8,0xdd,0xd4,0x2f,0x9,0x52,0x57,0xa3,0xb3,0xb8,0x62,
+  0x9a,0x70,0xe5,0x18,0x77,0xdf,0xb1,0x98,0xfb,0xff,0xfc,0x1e,0x56,0xac,0x58,0x1d,
+  0xf4,0x78,0x3c,0xed,0x93,0x19,0x98,0xcc,0xc0,0x2b,0xff,0xb2,0xeb,0xb9,0xb9,0xe3,
+  0x8d,0x8,0x2,0x89,0xb9,0x84,0x8c,0x66,0xfa,0xbe,0xf5,0x9c,0x61,0x18,0x57,0xbf,
+  0x83,0x8f,0x3f,0xfe,0x78,0xd8,0x66,0x73,0xc,0x7c,0xe7,0xe1,0xbf,0x23,0x14,0xf4,
+  0x51,0xec,0x75,0x90,0xcd,0x66,0xf9,0x5a,0xf3,0xdf,0x0,0x50,0xec,0xf3,0xf2,0xea,
+  0xcb,0xff,0x40,0x51,0x91,0x87,0x2d,0x7f,0xfd,0x43,0xc6,0x2e,0xa6,0x78,0x3d,0xf6,
+  0x2c,0xe1,0xda,0x6a,0x1c,0x76,0x9d,0xf,0xe,0xf6,0x70,0xaa,0x7b,0x8c,0xe4,0x50,
+  0x1e,0x41,0x0,0x30,0x70,0x88,0x59,0x34,0xf9,0x3c,0x23,0x43,0x9f,0xa0,0xaa,0x6a,
+  0x34,0xdc,0xf0,0xbd,0xe8,0xdc,0xbd,0x4b,0x0,0x4d,0x65,0x65,0xc5,0x11,0xaf,0xd7,
+  0x1d,0x17,0x45,0x21,0xa8,0xeb,0x6,0x20,0x34,0xf5,0x9d,0x7e,0xe5,0xa3,0x5,0x23,
+  0xa8,0xaa,0x6a,0x5b,0x64,0x49,0x23,0x9a,0x66,0x31,0x34,0x34,0xc1,0xc0,0x60,0x8a,
+  0x1d,0xcf,0xed,0x9c,0xc7,0xbf,0xff,0xc4,0x16,0x16,0xd5,0x54,0xf0,0xd8,0x13,0xff,
+  0xcc,0xd8,0xc5,0x14,0xf7,0xdc,0xf5,0x65,0xaa,0x2a,0x43,0xd8,0x6d,0x26,0x1d,0x2f,
+  0x1e,0xe2,0x83,0x8f,0x86,0x11,0x6c,0x5e,0x56,0xae,0xac,0xa5,0xb1,0xf1,0x6,0x6a,
+  0x6b,0x2b,0x71,0x15,0x55,0x81,0x73,0x2d,0xfe,0xd2,0xdb,0x48,0xa7,0xd3,0xf1,0xde,
+  0x9e,0xbd,0xe9,0x39,0x72,0x51,0x20,0xa6,0x4b,0x7,0x4e,0x85,0xc3,0x65,0xed,0x75,
+  0x75,0x15,0x44,0x22,0x15,0x54,0x57,0x7,0xdb,0x74,0x5d,0x5f,0x58,0x7,0x15,0x45,
+  0x69,0x92,0xf2,0x36,0x8e,0x9f,0x3c,0x4b,0x74,0xe5,0x12,0xa,0x5,0x99,0x83,0xf1,
+  0x8f,0x1,0xa8,0xa9,0x2e,0xa7,0xf9,0xbe,0xdb,0x79,0xe1,0x17,0xbf,0xa2,0xb7,0x6f,
+  0x80,0x35,0xd1,0x9b,0x79,0xfa,0x7,0xdb,0xf0,0x15,0x39,0xd8,0xfe,0x8f,0xfb,0x30,
+  0x4c,0x91,0x8d,0xb7,0xd5,0x53,0x5e,0xee,0xc3,0x61,0x17,0xb1,0x2c,0x28,0x14,0x34,
+  0x52,0x93,0x59,0xce,0x9d,0x9f,0x60,0x54,0x68,0xa0,0xb4,0x6a,0x63,0xf0,0xc4,0xb1,
+  0x37,0x3a,0x8a,0x3,0xb5,0x2d,0xb7,0xac,0xbf,0x33,0x2e,0x8,0xb4,0x98,0xe6,0x57,
+  0x1f,0xfe,0x24,0xd5,0xfe,0xb3,0xbb,0x57,0x77,0xb4,0x19,0x86,0x19,0x91,0x15,0xbd,
+  0xe5,0xdb,0x8f,0x3c,0x13,0xbe,0x9a,0x50,0x47,0x7d,0xfe,0x72,0xfc,0xc5,0x45,0x38,
+  0x9d,0x76,0x12,0xa7,0x7a,0xe7,0xb1,0x6f,0x7f,0xf3,0x5e,0x34,0xcd,0x64,0xd7,0xee,
+  0xb7,0x67,0x65,0xe2,0xfb,0x8f,0xe2,0x76,0xd9,0xd9,0xf3,0x76,0x2,0x29,0xa7,0xb3,
+  0x69,0xe3,0x32,0x6e,0xaa,0x2f,0xa3,0xac,0xa4,0x8,0x51,0x14,0xc8,0x17,0x34,0xa4,
+  0xbc,0x46,0x28,0xe4,0xa1,0xac,0xb4,0x88,0xb3,0x9f,0xba,0x30,0x8c,0x8d,0x9c,0xed,
+  0xfe,0x7d,0xe4,0x83,0x7d,0x1d,0x4d,0x8f,0x6c,0x79,0xa4,0x4d,0x10,0x85,0x98,0x2c,
+  0xeb,0x6d,0x9d,0xa3,0xca,0xce,0xf2,0x92,0xa2,0xe,0xc3,0x34,0x3b,0xf2,0x5,0xd,
+  0x59,0xd1,0x5b,0xec,0x57,0xcb,0x62,0xa7,0xd3,0x49,0x79,0x59,0x0,0x8f,0xc7,0xc9,
+  0xf0,0xf0,0xe8,0x3c,0xb6,0x7a,0x55,0x23,0x9d,0x5d,0xa7,0xc9,0x4a,0x79,0x96,0xde,
+  0x18,0xa6,0xa2,0xbc,0x14,0x5d,0x53,0x38,0x7a,0x6c,0x80,0x48,0xa4,0x92,0xc5,0x37,
+  0x4,0x58,0x12,0xe,0xe1,0x2d,0x72,0x50,0x90,0x75,0x4,0x1,0xc,0xc3,0x42,0xd3,
+  0xc,0xbc,0x45,0x2e,0xc2,0x8b,0x4b,0xc9,0xe5,0x14,0xea,0x96,0x6e,0x64,0x6c,0xa4,
+  0xa7,0xf5,0xbc,0xef,0xa7,0x6b,0xee,0x2c,0x7b,0xa6,0x23,0x5f,0xd0,0xa2,0x35,0x55,
+  0xbf,0x8,0x97,0x96,0x78,0xe2,0x86,0x61,0xe1,0x72,0xaa,0x64,0x73,0x6a,0x54,0xbc,
+  0x56,0xa9,0x13,0x4,0x11,0x51,0x10,0xc8,0xe7,0xb,0xf3,0x58,0x91,0xd7,0x4f,0x7a,
+  0x46,0x9a,0x13,0xf4,0x5b,0xd0,0xd,0x93,0xb1,0xb1,0x9,0xa4,0x9c,0x46,0x30,0x58,
+  0x84,0xc7,0xed,0xc0,0x3e,0x77,0xb4,0x82,0x0,0xa2,0x28,0x60,0xb3,0x9,0xd8,0x6d,
+  0x22,0x76,0x87,0xd,0xa7,0xc3,0xc6,0xa2,0xea,0x0,0x8b,0x23,0x2b,0x1,0xa2,0x2f,
+  0xbf,0xb5,0x97,0x70,0x6d,0x20,0x51,0x5d,0xe1,0x23,0xe0,0x77,0x45,0x46,0xa7,0x8e,
+  0x9f,0xa,0x5,0xdc,0xf8,0xbc,0x4e,0x3c,0x6e,0x7b,0xc4,0x7e,0xad,0x52,0x27,0xcb,
+  0x1a,0xaa,0x6a,0x90,0xcd,0xe6,0xe7,0xb1,0xe1,0x91,0x49,0xa6,0xa6,0x32,0xb3,0x35,
+  0x53,0x35,0x38,0x77,0x61,0x84,0x4b,0x53,0x53,0x88,0xa2,0x8,0x8,0x28,0xaa,0x8e,
+  0x94,0x53,0x71,0x39,0x6d,0xe8,0x86,0x89,0xa6,0x9b,0x18,0xa6,0xc5,0xbc,0x5a,0x8,
+  0x2,0x82,0x28,0x50,0x55,0xb5,0x8,0x80,0xc6,0x86,0x1a,0xca,0x42,0x45,0x69,0x43,
+  0xb7,0xd0,0x74,0x83,0xac,0x2,0x6e,0xb7,0x1d,0x67,0x5e,0xc4,0x6e,0x17,0xaf,0xae,
+  0x83,0x99,0x6c,0x81,0x99,0x6c,0x81,0x7c,0x41,0x25,0x14,0xa,0xce,0x63,0xa3,0xa3,
+  0x13,0x64,0x73,0x2a,0x0,0xe7,0x2f,0xc,0x51,0x5e,0x1a,0xc4,0x34,0xf2,0x18,0x86,
+  0x41,0x2e,0x27,0x93,0x95,0x54,0x32,0x59,0x85,0x4c,0x56,0x21,0x97,0xd3,0x90,0x65,
+  0x1d,0x55,0x35,0xd0,0x74,0x13,0x5d,0x33,0x31,0x74,0x3,0xd3,0xb0,0xd0,0x94,0xf4,
+  0xfc,0x9a,0x52,0x5e,0xd,0xca,0x8a,0x8e,0xaa,0x99,0x73,0x2a,0x62,0xa0,0x1b,0x26,
+  0x86,0x61,0x5e,0xb5,0xd4,0xc5,0x93,0x3,0xbd,0x8c,0x8e,0x4e,0x23,0xe5,0x15,0x8a,
+  0xfd,0xfe,0x79,0xac,0xb7,0xff,0x2,0xa5,0xa5,0x65,0x0,0x74,0x1e,0x3b,0xc1,0x74,
+  0xba,0x80,0xa6,0x66,0xb0,0x89,0x3a,0xa9,0x54,0x86,0xf1,0x94,0x44,0x26,0xab,0x30,
+  0x93,0x55,0xc8,0x4a,0x2a,0xb9,0xfc,0x2c,0x49,0x45,0xd1,0x29,0xc8,0x2a,0x8a,0xaa,
+  0xa3,0xe9,0x6,0x83,0xc9,0x3e,0xe6,0x64,0x86,0xc1,0x91,0x99,0xe8,0xf8,0x64,0x8e,
+  0xac,0xa4,0xe,0x2c,0xae,0x58,0xbf,0x3a,0x9d,0x91,0x91,0x72,0x1a,0xb2,0x62,0xc,
+  0x5c,0xad,0xd4,0x25,0xce,0xf5,0x27,0x18,0x19,0x9b,0x66,0x72,0x4a,0x62,0xd1,0xa2,
+  0xda,0x79,0xac,0xab,0xeb,0x24,0xaa,0x66,0xb1,0x62,0xc5,0x72,0x0,0x9e,0xed,0x78,
+  0x85,0xd4,0x94,0x4a,0xc0,0x97,0x67,0x7c,0x7c,0x86,0xa1,0xa1,0x29,0x86,0x46,0x67,
+  0x98,0xc9,0x28,0x64,0x24,0x5,0x29,0xa7,0x22,0xe5,0x15,0xb2,0x59,0x99,0x9c,0x24,
+  0x93,0xcf,0x2b,0x14,0xf2,0x2a,0x5d,0x9d,0x6f,0x2,0xec,0x7d,0x74,0xd9,0x9e,0x87,
+  0x93,0x43,0x33,0xc1,0x91,0xd1,0xcc,0xc0,0xde,0xae,0xbf,0x4d,0x4e,0x5d,0x2a,0x34,
+  0x4d,0x5d,0x2a,0x90,0x9e,0x91,0x91,0x72,0x6a,0xe2,0x6a,0x32,0xd3,0xf1,0x59,0x6f,
+  0x67,0x5b,0x75,0xed,0x6,0xba,0xcf,0xc,0xb2,0xbc,0x31,0x4c,0x38,0x1c,0x26,0x99,
+  0x4c,0x32,0x3a,0x3a,0xcc,0xc7,0x9d,0x9,0xd6,0xaf,0xdf,0x40,0x5f,0x5f,0x3f,0xdd,
+  0xdd,0xa7,0x89,0x44,0x6a,0x70,0xd9,0x27,0x50,0x65,0x81,0xc1,0x41,0x11,0x4d,0xd3,
+  0x69,0xa8,0xaf,0xc4,0xeb,0x75,0x61,0x59,0x16,0x9a,0x3a,0x1b,0xbd,0x5c,0x4e,0x41,
+  0xca,0x2a,0xc4,0xf,0xee,0x67,0x7c,0xec,0xd3,0xf4,0x86,0x4d,0x7f,0x19,0xeb,0xee,
+  0x19,0x89,0xb,0x82,0x80,0x69,0x5a,0xed,0xf5,0xe1,0x35,0xa4,0xa6,0xf2,0x6d,0x86,
+  0x61,0x22,0x2b,0x3a,0xa6,0x69,0xed,0x5d,0x30,0x82,0xc9,0x64,0x32,0x99,0xcd,0x5c,
+  0x8a,0x7d,0x92,0x78,0x9f,0xb3,0xbd,0xc3,0xc,0x8f,0x5e,0x62,0xdd,0x97,0x6e,0x9d,
+  0xc7,0x4f,0x9e,0xfc,0xf,0x7a,0xce,0x8e,0xd0,0x74,0xfb,0x5d,0x0,0xbc,0xf3,0xce,
+  0x7b,0x78,0xbc,0x55,0x58,0x5a,0x37,0x33,0xe9,0x8b,0xc,0xc,0xa4,0x38,0xda,0x79,
+  0x8e,0x73,0xe7,0xc6,0xf1,0x7a,0x1c,0xa4,0x26,0xb3,0x4c,0x4e,0x66,0x19,0x1a,0x9a,
+  0xe6,0xc0,0xc1,0x3,0xbc,0xff,0xde,0xb,0x4,0x42,0x8b,0xda,0x1a,0x96,0xdf,0xbb,
+  0xb7,0xbf,0x7f,0x2c,0xd2,0xdf,0x3f,0x16,0xbf,0xfd,0x2b,0xd6,0x4e,0x9f,0x71,0x7f,
+  0xf3,0x78,0x4a,0x8a,0x5c,0x9c,0xc8,0x32,0x91,0xca,0xc6,0x7f,0xfc,0xd4,0xb7,0x92,
+  0xf6,0xab,0x75,0xb7,0x85,0x42,0xa1,0xbd,0x27,0xf1,0xdb,0x96,0xe2,0x40,0x6d,0xb0,
+  0x4b,0xd0,0x59,0xbb,0x66,0x39,0xb5,0x8b,0xeb,0x18,0x1a,0xbc,0x40,0x3e,0x97,0xe1,
+  0x4c,0xcf,0x9,0x4a,0x4a,0x17,0x51,0x5d,0x73,0x23,0xe9,0xf4,0x38,0xa6,0x50,0x45,
+  0xa4,0x4e,0xe0,0xd0,0x47,0xbf,0x41,0x74,0xd4,0x11,0x2c,0xbd,0x99,0x2f,0x6f,0x5c,
+  0x42,0x4d,0x75,0x80,0x63,0xc7,0x7,0x39,0xfc,0xfb,0x23,0x9c,0xed,0xde,0xcf,0xb9,
+  0xbe,0x43,0x69,0xa0,0xad,0xb9,0xf5,0x97,0x0,0x51,0xd3,0xb4,0x12,0x60,0xb5,0xec,
+  0xfd,0xb7,0x42,0xc0,0xef,0x9f,0x8a,0x9,0x2,0xe8,0xba,0x89,0x20,0xd0,0x7e,0xcd,
+  0xa1,0x49,0x55,0xd5,0xa4,0x65,0x59,0xad,0x5d,0x87,0x63,0xc,0xf,0xf6,0x71,0xf8,
+  0xd0,0x61,0x56,0xaf,0x5e,0x43,0x20,0x30,0x9b,0xd1,0x52,0x36,0xc5,0xc8,0x50,0xf,
+  0xd3,0xd3,0xe3,0xe4,0xb2,0x19,0x76,0xbe,0xfa,0x2,0x13,0xd3,0x21,0xd6,0xdd,0xf6,
+  0x8,0x5e,0x8f,0xca,0xfe,0xb7,0x9e,0xe6,0xf4,0x89,0x3d,0xf3,0xeb,0x1d,0x3f,0xf6,
+  0x46,0xfa,0x5c,0xdf,0xa1,0x18,0x10,0xdd,0xb4,0x69,0xd3,0xce,0xbe,0xd3,0x2f,0xec,
+  0x9c,0xeb,0x5,0x9b,0x0,0x26,0x27,0x33,0xf1,0x64,0x32,0x15,0x1c,0x18,0x48,0x31,
+  0x3c,0x3c,0xb5,0x77,0xcf,0x1b,0x4f,0x7e,0x74,0xd5,0xa1,0xe9,0xa,0x7b,0xd3,0xd0,
+  0x95,0xd6,0xae,0x43,0xb1,0xd8,0xb2,0xe5,0x77,0x22,0x65,0x53,0x34,0x36,0x36,0xd2,
+  0xdd,0xfd,0x9,0x92,0x24,0x61,0x18,0x1a,0xaa,0x22,0xa1,0xc8,0x12,0x72,0x21,0x8b,
+  0x94,0x93,0x91,0x72,0xf0,0xf5,0xe6,0x6d,0xcc,0x64,0x74,0xae,0xec,0x94,0x9c,0x2e,
+  0x6f,0x2,0xf8,0x2e,0xc0,0x91,0x23,0x47,0x66,0x55,0xa0,0xb3,0xf3,0xb1,0x87,0xb6,
+  0xbe,0x1e,0x6,0xf6,0x1a,0x86,0x19,0x35,0xc,0xf3,0x72,0x66,0xb7,0x26,0x12,0x9,
+  0xbe,0x8,0x41,0x80,0x9d,0x86,0xa1,0xa6,0xcf,0x9e,0xde,0x17,0x4b,0x55,0x2e,0xd,
+  0x8e,0x8f,0x9d,0x67,0xd1,0xd,0x8b,0x99,0x49,0x4f,0x61,0x9a,0x3a,0x85,0xdc,0x25,
+  0x54,0x35,0x4f,0x69,0x59,0xdd,0x7f,0x69,0xe5,0xc8,0x20,0xa3,0x63,0xc3,0x40,0xdd,
+  0x17,0x99,0x2c,0x5b,0xe7,0x3a,0x9a,0xcb,0xe4,0x9a,0x5e,0x7b,0xe9,0xc1,0x99,0x6b,
+  0x8e,0x9d,0xb,0x45,0x12,0x88,0x4e,0x8e,0x7f,0xd6,0x3e,0x95,0xba,0xd0,0x3a,0x9c,
+  0x2c,0xc1,0xe9,0xf2,0x62,0x77,0xb8,0xb0,0x4c,0x13,0xcb,0xb2,0x58,0xd6,0xd8,0x34,
+  0x2b,0xde,0xfd,0x47,0x39,0xb8,0xff,0x30,0xa3,0xc3,0x9f,0x2,0x9b,0x3f,0x77,0xe1,
+  0xd7,0x5e,0x7a,0xf0,0x47,0xf,0x6d,0x7d,0xbd,0x65,0xae,0xab,0x6e,0xb9,0x92,0xdc,
+  0xff,0x84,0x20,0x40,0x12,0xf8,0xae,0x65,0x1a,0xed,0x52,0x36,0xd5,0x46,0x36,0x15,
+  0xbd,0x7c,0x7f,0x0,0xde,0xfc,0xf5,0x93,0x97,0x1f,0xe3,0xe1,0x70,0x38,0xfe,0xf4,
+  0xd3,0x3f,0x68,0xba,0x12,0xff,0x1c,0x6b,0x79,0xed,0xa5,0x7,0x93,0xb,0x22,0x96,
+  0x65,0xfd,0x81,0xff,0x2f,0xd9,0x9f,0x6d,0xdf,0xbe,0xdd,0xea,0xfd,0x6c,0xd2,0xfa,
+  0xa7,0x8e,0x83,0x56,0x78,0xc9,0x97,0xe,0x5e,0xff,0x37,0x73,0x9d,0xe0,0x17,0xfd,
+  0x79,0xf4,0x39,0xe6,0x0,0x2a,0x1,0x1f,0x50,0xb2,0x0,0x3e,0xd,0x4c,0x1,0xce,
+  0xff,0x6f,0x82,0x22,0xe0,0x17,0x4,0xd1,0xef,0x72,0x17,0xe3,0x72,0x79,0xf3,0x2e,
+  0xb7,0x2f,0x7f,0x39,0xa9,0x36,0xdf,0xb1,0xd,0x5f,0x71,0x19,0x9f,0xf6,0xbc,0x4f,
+  0xcf,0xa9,0x77,0x3d,0x39,0x69,0x2a,0x94,0x4e,0xcf,0xf6,0x7c,0xaa,0x92,0x23,0x7d,
+  0x69,0xe4,0x8f,0x22,0xb8,0xe0,0x5c,0x2c,0xcc,0xe,0xb3,0x57,0x9a,0xd,0xf0,0xf8,
+  0x83,0x35,0x42,0xa8,0xb4,0x16,0x51,0xb4,0x63,0x9a,0x3a,0xa6,0xa1,0xa3,0x69,0x32,
+  0xba,0xa6,0x52,0x59,0x7d,0x13,0xb7,0x6c,0xf8,0xb,0x0,0x26,0x2e,0xf6,0xf1,0xe1,
+  0x7b,0x3f,0x59,0xac,0xa9,0x85,0xc3,0xd,0xd,0xcb,0x83,0x53,0xd3,0x97,0x98,0x4c,
+  0x8d,0x76,0x0,0x8f,0xfd,0x5f,0x44,0x50,0x10,0x45,0x9b,0x50,0x57,0xbf,0x49,0xf6,
+  0x15,0x97,0xcf,0x4b,0x93,0x69,0x1a,0x18,0x86,0x8a,0xa6,0xca,0x28,0x72,0x8e,0xd4,
+  0xf8,0xb9,0xf9,0xf,0x2a,0xaa,0x96,0x51,0x1b,0x5e,0xd7,0x3b,0x78,0xa1,0xab,0xbe,
+  0xb7,0xf7,0xcc,0x2a,0xb0,0x92,0xc0,0xf9,0x3f,0x26,0x82,0xff,0x39,0x0,0x2f,0xa0,
+  0x9b,0x35,0xb7,0xaa,0xda,0x56,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,
+  0x60,0x82,
+    // /home/maemo/tietoopcom/resources/tieto-logo.png
+  0x0,0x0,0x4,0x38,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x80,0x0,0x0,0x0,0x74,0x8,0x6,0x0,0x0,0x0,0x4d,0x3d,0x3a,0xc4,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xe,0xc4,0x0,0x0,0xe,0xc4,0x1,
+  0x95,0x2b,0xe,0x1b,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xda,0x6,0x16,
+  0x10,0xb,0x32,0xb2,0x46,0x43,0x31,0x0,0x0,0x3,0xb8,0x49,0x44,0x41,0x54,0x78,
+  0xda,0xed,0x9d,0xcb,0x91,0xdc,0x20,0x10,0x86,0xbb,0x99,0xc7,0xba,0x9c,0x84,0x6f,
+  0x4e,0x60,0xaf,0xae,0x9a,0xab,0x13,0x98,0x14,0x36,0x8d,0x4d,0xc4,0x19,0x38,0x1f,
+  0x5f,0x9d,0x88,0xbd,0xf8,0x60,0xb9,0x6a,0x3c,0x3b,0x7a,0x0,0xd,0xe2,0xf1,0x7d,
+  0x55,0x3a,0x69,0x5,0x83,0xfe,0x5f,0xd,0xd,0x12,0x2b,0x2,0x0,0x0,0x0,0x0,
+  0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+  0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x79,0xf0,0xb7,0x87,0x17,0x71,
+  0x29,0x85,0x29,0xf7,0xb3,0x39,0xf1,0x4d,0xb5,0xc4,0x0,0x7d,0x88,0x1f,0xad,0x27,
+  0x6,0xe8,0x47,0xfc,0x28,0x4d,0x1d,0xf7,0x76,0x68,0xb3,0x60,0x80,0xd1,0x4d,0x70,
+  0xe4,0x5e,0xa5,0xdc,0xe5,0x57,0x27,0xf2,0x23,0xf1,0x1e,0x7e,0xff,0xa5,0x22,0x6f,
+  0x19,0x1c,0xe0,0xb6,0x94,0xcb,0x18,0xa0,0x60,0xb8,0x4d,0xd4,0xc1,0xe7,0x28,0x97,
+  0x2e,0x20,0xbf,0x70,0x46,0x4e,0xbb,0x9c,0x72,0x14,0x4b,0x4,0xa8,0x23,0x12,0x68,
+  0xa6,0x7a,0xd6,0xca,0xf5,0x44,0x80,0x32,0x91,0x40,0xbd,0x3c,0x9f,0x5b,0x8a,0x38,
+  0x10,0x1f,0x9,0xee,0x8f,0x9b,0x93,0xd7,0xf3,0xcc,0xdf,0x78,0x83,0x7a,0x42,0xcb,
+  0x8b,0xa9,0x17,0x2,0xc5,0x79,0x70,0xf2,0xf9,0x64,0x60,0x0,0xf1,0x72,0x39,0xce,
+  0x89,0x3f,0x9d,0xc3,0x0,0xfb,0x39,0xe0,0x7a,0x5e,0x3e,0xff,0xde,0x4,0x1b,0x45,
+  0xdb,0x12,0xd,0x82,0xae,0xa1,0x4f,0xa9,0x6b,0xd0,0xa8,0x5,0x2a,0xd6,0xdb,0xf9,
+  0x1,0xc,0x50,0x5f,0xc6,0xa0,0x25,0xeb,0x27,0xb,0xa8,0x2c,0x5d,0xf4,0x9f,0x2e,
+  0x1f,0x2a,0x4e,0x57,0xc1,0x38,0x43,0x48,0x19,0xc4,0x59,0xd5,0xf,0xb5,0x19,0x40,
+  0x44,0xfc,0x51,0xf4,0x5b,0xa1,0xba,0xa1,0x56,0x13,0xa4,0xa,0xf4,0x77,0xb1,0x2a,
+  0x5f,0xf9,0x50,0xc8,0x4,0x91,0x5d,0x42,0x76,0x83,0x41,0xd9,0x48,0xe0,0x9d,0xc8,
+  0xcf,0x95,0xf9,0x87,0x43,0x68,0x99,0xa4,0x81,0x15,0x67,0x4,0x25,0xc0,0x0,0x83,
+  0x9b,0x80,0x79,0x80,0xca,0x1f,0xc0,0x4c,0xef,0x1,0x40,0x8e,0xa7,0x79,0x9a,0xe3,
+  0x37,0xcf,0xd1,0x97,0x16,0x7e,0xc,0xe,0xb0,0x1c,0xd4,0xc5,0x9a,0x60,0xca,0xfb,
+  0x67,0x85,0x89,0x19,0xe0,0x61,0x80,0x9d,0x46,0xf4,0x99,0x66,0xf2,0x72,0x45,0x2,
+  0xc8,0x91,0xce,0x25,0x74,0x7,0x62,0x9d,0xea,0x61,0x80,0x4c,0x3c,0x8,0xdb,0x77,
+  0x26,0x78,0x39,0x95,0x36,0x1e,0x6,0xd8,0x27,0xc,0x68,0xc1,0x48,0x40,0x17,0xd0,
+  0x5a,0x97,0x60,0x68,0x2,0x6,0x81,0xad,0x46,0x3,0x83,0xee,0x80,0x34,0xb0,0xfd,
+  0xec,0xe0,0xe5,0x54,0x99,0xf8,0x18,0xa0,0xbc,0x9,0xae,0xe7,0x8a,0xc4,0xc7,0x0,
+  0xbb,0xa4,0x88,0xdb,0x5f,0xfb,0xf2,0x18,0x60,0x37,0xf5,0xde,0xbf,0x4c,0x11,0x30,
+  0x98,0xb3,0xb8,0xf9,0x25,0xc4,0x67,0x39,0x78,0xe1,0xe6,0x2f,0xa1,0x9,0xd7,0x3e,
+  0xba,0xc0,0xe9,0xb4,0xe1,0x93,0x8a,0xfc,0x2e,0xd9,0x50,0xc,0x10,0x27,0xa0,0x6,
+  0x5e,0xab,0xb5,0x86,0x5b,0x96,0x83,0xed,0x1e,0x1a,0xdf,0xe2,0x43,0x86,0x1,0x6c,
+  0x42,0x7f,0x93,0xe2,0x63,0x80,0x82,0x4f,0xbe,0x97,0xd7,0x43,0x4b,0x8d,0x22,0x2,
+  0xe4,0x79,0xf2,0x3d,0x11,0xa0,0x6a,0xf5,0xaf,0x4f,0x23,0x84,0x7d,0xd8,0x9e,0x7f,
+  0x87,0xe6,0xe8,0x41,0xf3,0xa,0x35,0x1c,0xb8,0x75,0xfe,0xc9,0x8e,0x9,0xe3,0xa6,
+  0xf3,0x3,0x25,0x60,0x9f,0xc0,0xe,0x44,0x64,0xc,0xf0,0x7f,0x3f,0x7e,0x96,0x3c,
+  0x73,0xdf,0xcc,0x9b,0x37,0x12,0xbf,0x17,0xfb,0xda,0xc8,0xef,0xef,0x37,0x7c,0xbf,
+  0xf7,0xf5,0x69,0xee,0xe2,0xcf,0x87,0x8f,0x5f,0x6a,0xec,0xff,0xbb,0x1d,0x3,0xdc,
+  0x6f,0x83,0x62,0x30,0x52,0x4f,0xdd,0xaa,0xbd,0xda,0xe8,0xd1,0x65,0x1a,0xa8,0x2b,
+  0xff,0x49,0xc3,0x7,0x1a,0x60,0x26,0x3d,0xec,0x62,0xdc,0xd0,0x75,0x16,0xb0,0x12,
+  0x9,0xd4,0xa0,0xbc,0x5c,0x7b,0xfc,0x62,0x0,0xe3,0x94,0x6e,0xaf,0xf6,0x57,0x3f,
+  0x70,0x74,0x3,0x8b,0x1f,0xdc,0x15,0xf4,0x98,0x35,0x68,0xed,0x22,0x45,0xfe,0x6e,
+  0xbf,0xf3,0x3d,0x68,0x26,0x65,0x74,0x3b,0xab,0xef,0x32,0xdc,0xe0,0xd9,0x39,0xfa,
+  0x99,0xfa,0xbc,0x71,0x24,0x68,0x6a,0xbe,0x60,0x57,0x3,0x68,0xda,0xff,0xbd,0xf3,
+  0x21,0xe2,0x2f,0xd5,0xa7,0x22,0x6f,0x11,0x6f,0xeb,0xce,0xcd,0x3f,0x40,0x82,0xa0,
+  0x29,0x6f,0xb5,0x6e,0xde,0x6a,0x6d,0xe9,0x53,0xae,0xc2,0xbf,0xbd,0x86,0xa3,0x9e,
+  0x94,0x2d,0x46,0xe4,0xd8,0xc6,0xad,0xd4,0xe7,0xa7,0xaf,0x70,0x17,0xae,0x9f,0xdd,
+  0xf5,0xbb,0xa9,0x43,0x2b,0xb,0x1,0x8f,0xf2,0x76,0x8d,0xec,0x63,0x35,0xb2,0xbe,
+  0xa1,0xa8,0x75,0x1e,0x20,0x65,0x49,0x36,0xa8,0x5d,0xa3,0x9b,0xa0,0xe5,0x89,0x20,
+  0xb3,0x37,0x72,0x46,0x36,0x81,0x76,0x26,0x3e,0x26,0x18,0xc0,0x0,0x3e,0x57,0xdb,
+  0x46,0x34,0x81,0x76,0x2a,0x3e,0x26,0xe8,0xd0,0x0,0xbe,0x54,0x1b,0x47,0x32,0x81,
+  0x6b,0x48,0x7d,0x57,0xca,0x38,0x89,0x33,0x94,0x44,0x80,0x5e,0x22,0x81,0xc,0x30,
+  0xb5,0xdb,0x6b,0x16,0x60,0xd1,0xde,0x21,0xe6,0xf5,0x5d,0xa3,0xea,0xe7,0xee,0xe,
+  0x86,0x59,0xd4,0x69,0xfd,0x8d,0xa0,0x1c,0x91,0x60,0xa8,0x15,0x3d,0xd7,0xb8,0xfa,
+  0xd6,0x91,0x60,0xb8,0xe5,0xdc,0xa6,0xd,0xb0,0x71,0xb4,0xbe,0x75,0x3d,0x61,0xc8,
+  0xb5,0xfc,0x9e,0x5e,0xa,0xf5,0x2b,0xed,0x6b,0x6e,0xfb,0x16,0xc,0x90,0x66,0x2,
+  0x25,0xc4,0x8f,0x67,0x0,0x46,0xf8,0x18,0x0,0x13,0xc,0x33,0x8,0x4,0x22,0x0,
+  0x4f,0x3f,0x6,0x40,0x7c,0xc,0x80,0xf8,0x18,0x0,0xf1,0x31,0x0,0xe2,0x63,0x0,
+  0xc4,0x27,0xd,0x14,0xbe,0xd3,0x1b,0xd6,0x0,0xff,0x3e,0xd7,0x2a,0xbd,0xe7,0x7e,
+  0xcb,0xfc,0x1,0xd,0x72,0xc5,0xca,0x3f,0xe0,0x25,0x86,0x0,0x0,0x0,0x0,0x49,
+  0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/maemo/tietoopcom/resources/activesessions.png
+  0x0,0x0,0x1e,0xff,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x30,0x0,0x0,0x0,0x30,0x8,0x6,0x0,0x0,0x0,0x57,0x2,0xf9,0x87,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xb1,0x8e,0x7c,0xfb,0x51,0x93,
+  0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x87,0xf,0x0,0x0,0x8c,0xf,
+  0x0,0x0,0xfd,0x52,0x0,0x0,0x81,0x40,0x0,0x0,0x7d,0x79,0x0,0x0,0xe9,0x8b,
+  0x0,0x0,0x3c,0xe5,0x0,0x0,0x19,0xcc,0x73,0x3c,0x85,0x77,0x0,0x0,0xa,0x39,
+  0x69,0x43,0x43,0x50,0x50,0x68,0x6f,0x74,0x6f,0x73,0x68,0x6f,0x70,0x20,0x49,0x43,
+  0x43,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x0,0x0,0x48,0xc7,0x9d,0x96,0x77,
+  0x54,0x54,0xd7,0x16,0x87,0xcf,0xbd,0x77,0x7a,0xa1,0xcd,0x30,0xd2,0x19,0x7a,0x93,
+  0x2e,0x30,0x80,0xf4,0x2e,0x20,0x1d,0x4,0x51,0x18,0x66,0x6,0x18,0xca,0x0,0xc3,
+  0xc,0x4d,0x6c,0x88,0xa8,0x40,0x44,0x11,0x11,0x1,0x45,0x90,0xa0,0x80,0x1,0xa3,
+  0xa1,0x48,0xac,0x88,0x62,0x21,0x28,0xa8,0x60,0xf,0x48,0x10,0x50,0x62,0x30,0x8a,
+  0xa8,0xa8,0x64,0x46,0xd6,0x4a,0x7c,0x79,0x79,0xef,0xe5,0xe5,0xf7,0xc7,0xbd,0xdf,
+  0xda,0x67,0xef,0x73,0xf7,0xd9,0x7b,0x9f,0xb5,0x2e,0x0,0x24,0x4f,0x1f,0x2e,0x2f,
+  0x5,0x96,0x2,0x20,0x99,0x27,0xe0,0x7,0x7a,0x38,0xd3,0x57,0x85,0x47,0xd0,0xb1,
+  0xfd,0x0,0x6,0x78,0x80,0x1,0xa6,0x0,0x30,0x59,0xe9,0xa9,0xbe,0x41,0xee,0xc1,
+  0x40,0x24,0x2f,0x37,0x17,0x7a,0xba,0xc8,0x9,0xfc,0x8b,0xde,0xc,0x1,0x48,0xfc,
+  0xbe,0x65,0xe8,0xe9,0x4f,0xa7,0x83,0xff,0x4f,0xd2,0xac,0x54,0xbe,0x0,0x0,0xc8,
+  0x5f,0xc4,0xe6,0x6c,0x4e,0x3a,0x4b,0xc4,0xf9,0x22,0x4e,0xca,0x14,0xa4,0x8a,0xed,
+  0x33,0x22,0xa6,0xc6,0x24,0x8a,0x19,0x46,0x89,0x99,0x2f,0x4a,0x50,0xc4,0x72,0x62,
+  0x8e,0x5b,0xe4,0xa5,0x9f,0x7d,0x16,0xd9,0x51,0xcc,0xec,0x64,0x1e,0x5b,0xc4,0xe2,
+  0x9c,0x53,0xd9,0xc9,0x6c,0x31,0xf7,0x88,0x78,0x7b,0x86,0x90,0x23,0x62,0xc4,0x47,
+  0xc4,0x5,0x19,0x5c,0x4e,0xa6,0x88,0x6f,0x8b,0x58,0x33,0x49,0x98,0xcc,0x15,0xf1,
+  0x5b,0x71,0x6c,0x32,0x87,0x99,0xe,0x0,0x8a,0x24,0xb6,0xb,0x38,0xac,0x78,0x11,
+  0x9b,0x88,0x98,0xc4,0xf,0xe,0x74,0x11,0xf1,0x72,0x0,0x70,0xa4,0xb8,0x2f,0x38,
+  0xe6,0xb,0x16,0x70,0xb2,0x4,0xe2,0x43,0xb9,0xa4,0xa4,0x66,0xf3,0xb9,0x71,0xf1,
+  0x2,0xba,0x2e,0x4b,0x8f,0x6e,0x6a,0x6d,0xcd,0xa0,0x7b,0x72,0x32,0x93,0x38,0x2,
+  0x81,0xa1,0x3f,0x93,0x95,0xc8,0xe4,0xb3,0xe9,0x2e,0x29,0xc9,0xa9,0x4c,0x5e,0x36,
+  0x0,0x8b,0x67,0xfe,0x2c,0x19,0x71,0x6d,0xe9,0xa2,0x22,0x5b,0x9a,0x5a,0x5b,0x5a,
+  0x1a,0x9a,0x19,0x99,0x7e,0x51,0xa8,0xff,0xba,0xf8,0x37,0x25,0xee,0xed,0x22,0xbd,
+  0xa,0xf8,0xdc,0x33,0x88,0xd6,0xf7,0x87,0xed,0xaf,0xfc,0x52,0xea,0x0,0x60,0xcc,
+  0x8a,0x6a,0xb3,0xeb,0xf,0x5b,0xcc,0x7e,0x0,0x3a,0xb6,0x2,0x20,0x77,0xff,0xf,
+  0x9b,0xe6,0x21,0x0,0x24,0x45,0x7d,0x6b,0xbf,0xf1,0xc5,0x79,0x68,0xe2,0x79,0x89,
+  0x17,0x8,0x52,0x6d,0x8c,0x8d,0x33,0x33,0x33,0x8d,0xb8,0x1c,0x96,0x91,0xb8,0xa0,
+  0xbf,0xeb,0x7f,0x3a,0xfc,0xd,0x7d,0xf1,0x3d,0x23,0xf1,0x76,0xbf,0x97,0x87,0xee,
+  0xca,0x89,0x65,0xa,0x93,0x4,0x74,0x71,0xdd,0x58,0x29,0x49,0x29,0x42,0x3e,0x3d,
+  0x3d,0x95,0xc9,0xe2,0xd0,0xd,0xff,0x3c,0xc4,0xff,0x38,0xf0,0xaf,0xf3,0x58,0x1a,
+  0xc8,0x89,0xe5,0xf0,0x39,0x3c,0x51,0x44,0xa8,0x68,0xca,0xb8,0xbc,0x38,0x51,0xbb,
+  0x79,0x6c,0xae,0x80,0x9b,0xc2,0xa3,0x73,0x79,0xff,0xa9,0x89,0xff,0x30,0xec,0x4f,
+  0x5a,0x9c,0x6b,0x91,0x28,0xf5,0x9f,0x0,0x35,0xca,0x8,0x48,0xdd,0xa0,0x2,0xe4,
+  0xe7,0x3e,0x80,0xa2,0x10,0x1,0x12,0x79,0x50,0xdc,0xf5,0xdf,0xfb,0xe6,0x83,0xf,
+  0x5,0xe2,0x9b,0x17,0xa6,0x3a,0xb1,0x38,0xf7,0x9f,0x5,0xfd,0xfb,0xae,0x70,0x89,
+  0xf8,0x91,0xce,0x8d,0xfb,0x1c,0xe7,0x12,0x18,0x4c,0x67,0x9,0xf9,0x19,0x8b,0x6b,
+  0xe2,0x6b,0x9,0xd0,0x80,0x0,0x24,0x1,0x15,0xc8,0x3,0x15,0xa0,0x1,0x74,0x81,
+  0x21,0x30,0x3,0x56,0xc0,0x16,0x38,0x2,0x37,0xb0,0x2,0xf8,0x81,0x60,0x10,0xe,
+  0xd6,0x2,0x16,0x88,0x7,0xc9,0x80,0xf,0x32,0x41,0x2e,0xd8,0xc,0xa,0x40,0x11,
+  0xd8,0x5,0xf6,0x82,0x4a,0x50,0x3,0xea,0x41,0x23,0x68,0x1,0x27,0x40,0x7,0x38,
+  0xd,0x2e,0x80,0xcb,0xe0,0x3a,0xb8,0x9,0xee,0x80,0x7,0x60,0x4,0x8c,0x83,0xe7,
+  0x60,0x6,0xbc,0x1,0xf3,0x10,0x4,0x61,0x21,0x32,0x44,0x81,0xe4,0x21,0x55,0x48,
+  0xb,0x32,0x80,0xcc,0x20,0x6,0x64,0xf,0xb9,0x41,0x3e,0x50,0x20,0x14,0xe,0x45,
+  0x43,0x71,0x10,0xf,0x12,0x42,0xb9,0xd0,0x16,0xa8,0x8,0x2a,0x85,0x2a,0xa1,0x5a,
+  0xa8,0x11,0xfa,0x16,0x3a,0x5,0x5d,0x80,0xae,0x42,0x3,0xd0,0x3d,0x68,0x14,0x9a,
+  0x82,0x7e,0x85,0xde,0xc3,0x8,0x4c,0x82,0xa9,0xb0,0x32,0xac,0xd,0x1b,0xc3,0xc,
+  0xd8,0x9,0xf6,0x86,0x83,0xe1,0x35,0x70,0x1c,0x9c,0x6,0xe7,0xc0,0xf9,0xf0,0x4e,
+  0xb8,0x2,0xae,0x83,0x8f,0xc1,0xed,0xf0,0x5,0xf8,0x3a,0x7c,0x7,0x1e,0x81,0x9f,
+  0xc3,0xb3,0x8,0x40,0x88,0x8,0xd,0x51,0x43,0xc,0x11,0x6,0xe2,0x82,0xf8,0x21,
+  0x11,0x48,0x2c,0xc2,0x47,0x36,0x20,0x85,0x48,0x39,0x52,0x87,0xb4,0x20,0x5d,0x48,
+  0x2f,0x72,0xb,0x19,0x41,0xa6,0x91,0x77,0x28,0xc,0x8a,0x82,0xa2,0xa3,0xc,0x51,
+  0xb6,0x28,0x4f,0x54,0x8,0x8a,0x85,0x4a,0x43,0x6d,0x40,0x15,0xa3,0x2a,0x51,0x47,
+  0x51,0xed,0xa8,0x1e,0xd4,0x2d,0xd4,0x28,0x6a,0x6,0xf5,0x9,0x4d,0x46,0x2b,0xa1,
+  0xd,0xd0,0x36,0x68,0x2f,0xf4,0x2a,0x74,0x1c,0x3a,0x13,0x5d,0x80,0x2e,0x47,0x37,
+  0xa0,0xdb,0xd0,0x97,0xd0,0x77,0xd0,0xe3,0xe8,0x37,0x18,0xc,0x86,0x86,0xd1,0xc1,
+  0x58,0x61,0x3c,0x31,0xe1,0x98,0x4,0xcc,0x3a,0x4c,0x31,0xe6,0x0,0xa6,0x15,0x73,
+  0x1e,0x33,0x80,0x19,0xc3,0xcc,0x62,0xb1,0x58,0x79,0xac,0x1,0xd6,0xe,0xeb,0x87,
+  0x65,0x62,0x5,0xd8,0x2,0xec,0x7e,0xec,0x31,0xec,0x39,0xec,0x20,0x76,0x1c,0xfb,
+  0x16,0x47,0xc4,0xa9,0xe2,0xcc,0x70,0xee,0xb8,0x8,0x1c,0xf,0x97,0x87,0x2b,0xc7,
+  0x35,0xe1,0xce,0xe2,0x6,0x71,0x13,0xb8,0x79,0xbc,0x14,0x5e,0xb,0x6f,0x83,0xf7,
+  0xc3,0xb3,0xf1,0xd9,0xf8,0x12,0x7c,0x3d,0xbe,0xb,0x7f,0x3,0x3f,0x8e,0x9f,0x27,
+  0x48,0x13,0x74,0x8,0x76,0x84,0x60,0x42,0x2,0x61,0x33,0xa1,0x82,0xd0,0x42,0xb8,
+  0x44,0x78,0x48,0x78,0x45,0x24,0x12,0xd5,0x89,0xd6,0xc4,0x0,0x22,0x97,0xb8,0x89,
+  0x58,0x41,0x3c,0x4e,0xbc,0x42,0x1c,0x25,0xbe,0x23,0xc9,0x90,0xf4,0x49,0x2e,0xa4,
+  0x48,0x92,0x90,0xb4,0x93,0x74,0x84,0x74,0x9e,0x74,0x8f,0xf4,0x8a,0x4c,0x26,0x6b,
+  0x93,0x1d,0xc9,0x11,0x64,0x1,0x79,0x27,0xb9,0x91,0x7c,0x91,0xfc,0x98,0xfc,0x56,
+  0x82,0x22,0x61,0x24,0xe1,0x25,0xc1,0x96,0xd8,0x28,0x51,0x25,0xd1,0x2e,0x31,0x28,
+  0xf1,0x42,0x12,0x2f,0xa9,0x25,0xe9,0x24,0xb9,0x56,0x32,0x47,0xb2,0x5c,0xf2,0xa4,
+  0xe4,0xd,0xc9,0x69,0x29,0xbc,0x94,0xb6,0x94,0x8b,0x14,0x53,0x6a,0x83,0x54,0x95,
+  0xd4,0x29,0xa9,0x61,0xa9,0x59,0x69,0x8a,0xb4,0xa9,0xb4,0x9f,0x74,0xb2,0x74,0xb1,
+  0x74,0x93,0xf4,0x55,0xe9,0x49,0x19,0xac,0x8c,0xb6,0x8c,0x9b,0xc,0x5b,0x26,0x5f,
+  0xe6,0xb0,0xcc,0x45,0x99,0x31,0xa,0x42,0xd1,0xa0,0xb8,0x50,0x58,0x94,0x2d,0x94,
+  0x7a,0xca,0x25,0xca,0x38,0x15,0x43,0xd5,0xa1,0x7a,0x51,0x13,0xa8,0x45,0xd4,0x6f,
+  0xa8,0xfd,0xd4,0x19,0x59,0x19,0xd9,0x65,0xb2,0xa1,0xb2,0x59,0xb2,0x55,0xb2,0x67,
+  0x64,0x47,0x68,0x8,0x4d,0x9b,0xe6,0x45,0x4b,0xa2,0x95,0xd0,0x4e,0xd0,0x86,0x68,
+  0xef,0x97,0x28,0x2f,0x71,0x5a,0xc2,0x59,0xb2,0x63,0x49,0xcb,0x92,0xc1,0x25,0x73,
+  0x72,0x8a,0x72,0x8e,0x72,0x1c,0xb9,0x42,0xb9,0x56,0xb9,0x3b,0x72,0xef,0xe5,0xe9,
+  0xf2,0x6e,0xf2,0x89,0xf2,0xbb,0xe5,0x3b,0xe4,0x1f,0x29,0xa0,0x14,0xf4,0x15,0x2,
+  0x14,0x32,0x15,0xe,0x2a,0x5c,0x52,0x98,0x56,0xa4,0x2a,0xda,0x2a,0xb2,0x14,0xb,
+  0x15,0x4f,0x28,0xde,0x57,0x82,0x95,0xf4,0x95,0x2,0x95,0xd6,0x29,0x1d,0x56,0xea,
+  0x53,0x9a,0x55,0x56,0x51,0xf6,0x50,0x4e,0x55,0xde,0xaf,0x7c,0x51,0x79,0x5a,0x85,
+  0xa6,0xe2,0xa8,0x92,0xa0,0x52,0xa6,0x72,0x56,0x65,0x4a,0x95,0xa2,0x6a,0xaf,0xca,
+  0x55,0x2d,0x53,0x3d,0xa7,0xfa,0x8c,0x2e,0x4b,0x77,0xa2,0x27,0xd1,0x2b,0xe8,0x3d,
+  0xf4,0x19,0x35,0x25,0x35,0x4f,0x35,0xa1,0x5a,0xad,0x5a,0xbf,0xda,0xbc,0xba,0x8e,
+  0x7a,0x88,0x7a,0x9e,0x7a,0xab,0xfa,0x23,0xd,0x82,0x6,0x43,0x23,0x56,0xa3,0x4c,
+  0xa3,0x5b,0x63,0x46,0x53,0x55,0xd3,0x57,0x33,0x57,0xb3,0x59,0xf3,0xbe,0x16,0x5e,
+  0x8b,0xa1,0x15,0xaf,0xb5,0x4f,0xab,0x57,0x6b,0x4e,0x5b,0x47,0x3b,0x4c,0x7b,0x9b,
+  0x76,0x87,0xf6,0xa4,0x8e,0x9c,0x8e,0x97,0x4e,0x8e,0x4e,0xb3,0xce,0x43,0x5d,0xb2,
+  0xae,0x83,0x6e,0x9a,0x6e,0x9d,0xee,0x6d,0x3d,0x8c,0x1e,0x43,0x2f,0x51,0xef,0x80,
+  0xde,0x4d,0x7d,0x58,0xdf,0x42,0x3f,0x5e,0xbf,0x4a,0xff,0x86,0x1,0x6c,0x60,0x69,
+  0xc0,0x35,0x38,0x60,0x30,0xb0,0x14,0xbd,0xd4,0x7a,0x29,0x6f,0x69,0xdd,0xd2,0x61,
+  0x43,0x92,0xa1,0x93,0x61,0x86,0x61,0xb3,0xe1,0xa8,0x11,0xcd,0xc8,0xc7,0x28,0xcf,
+  0xa8,0xc3,0xe8,0x85,0xb1,0xa6,0x71,0x84,0xf1,0x6e,0xe3,0x5e,0xe3,0x4f,0x26,0x16,
+  0x26,0x49,0x26,0xf5,0x26,0xf,0x4c,0x65,0x4c,0x57,0x98,0xe6,0x99,0x76,0x99,0xfe,
+  0x6a,0xa6,0x6f,0xc6,0x32,0xab,0x32,0xbb,0x6d,0x4e,0x36,0x77,0x37,0xdf,0x68,0xde,
+  0x69,0xfe,0x72,0x99,0xc1,0x32,0xce,0xb2,0x83,0xcb,0xee,0x5a,0x50,0x2c,0x7c,0x2d,
+  0xb6,0x59,0x74,0x5b,0x7c,0xb4,0xb4,0xb2,0xe4,0x5b,0xb6,0x58,0x4e,0x59,0x69,0x5a,
+  0x45,0x5b,0x55,0x5b,0xd,0x33,0xa8,0xc,0x7f,0x46,0x31,0xe3,0x8a,0x35,0xda,0xda,
+  0xd9,0x7a,0xa3,0xf5,0x69,0xeb,0x77,0x36,0x96,0x36,0x2,0x9b,0x13,0x36,0xbf,0xd8,
+  0x1a,0xda,0x26,0xda,0x36,0xd9,0x4e,0x2e,0xd7,0x59,0xce,0x59,0x5e,0xbf,0x7c,0xcc,
+  0x4e,0xdd,0x8e,0x69,0x57,0x6b,0x37,0x62,0x4f,0xb7,0x8f,0xb6,0x3f,0x64,0x3f,0xe2,
+  0xa0,0xe6,0xc0,0x74,0xa8,0x73,0x78,0xe2,0xa8,0xe1,0xc8,0x76,0x6c,0x70,0x9c,0x70,
+  0xd2,0x73,0x4a,0x70,0x3a,0xe6,0xf4,0xc2,0xd9,0xc4,0x99,0xef,0xdc,0xe6,0x3c,0xe7,
+  0x62,0xe3,0xb2,0xde,0xe5,0xbc,0x2b,0xe2,0xea,0xe1,0x5a,0xe8,0xda,0xef,0x26,0xe3,
+  0x16,0xe2,0x56,0xe9,0xf6,0xd8,0x5d,0xdd,0x3d,0xce,0xbd,0xd9,0x7d,0xc6,0xc3,0xc2,
+  0x63,0x9d,0xc7,0x79,0x4f,0xb4,0xa7,0xb7,0xe7,0x6e,0xcf,0x61,0x2f,0x65,0x2f,0x96,
+  0x57,0xa3,0xd7,0xcc,0xa,0xab,0x15,0xeb,0x57,0xf4,0x78,0x93,0xbc,0x83,0xbc,0x2b,
+  0xbd,0x9f,0xf8,0xe8,0xfb,0xf0,0x7d,0xba,0x7c,0x61,0xdf,0x15,0xbe,0x7b,0x7c,0x1f,
+  0xae,0xd4,0x5a,0xc9,0x5b,0xd9,0xe1,0x7,0xfc,0xbc,0xfc,0xf6,0xf8,0x3d,0xf2,0xd7,
+  0xf1,0x4f,0xf3,0xff,0x3e,0x0,0x13,0xe0,0x1f,0x50,0x15,0xf0,0x34,0xd0,0x34,0x30,
+  0x37,0xb0,0x37,0x88,0x12,0x14,0x15,0xd4,0x14,0xf4,0x26,0xd8,0x39,0xb8,0x24,0xf8,
+  0x41,0x88,0x6e,0x88,0x30,0xa4,0x3b,0x54,0x32,0x34,0x32,0xb4,0x31,0x74,0x2e,0xcc,
+  0x35,0xac,0x34,0x6c,0x64,0x95,0xf1,0xaa,0xf5,0xab,0xae,0x87,0x2b,0x84,0x73,0xc3,
+  0x3b,0x23,0xb0,0x11,0xa1,0x11,0xd,0x11,0xb3,0xab,0xdd,0x56,0xef,0x5d,0x3d,0x1e,
+  0x69,0x11,0x59,0x10,0x39,0xb4,0x46,0x67,0x4d,0xd6,0x9a,0xab,0x6b,0x15,0xd6,0x26,
+  0xad,0x3d,0x13,0x25,0x19,0xc5,0x8c,0x3a,0x19,0x8d,0x8e,0xe,0x8b,0x6e,0x8a,0xfe,
+  0xc0,0xf4,0x63,0xd6,0x31,0x67,0x63,0xbc,0x62,0xaa,0x63,0x66,0x58,0x2e,0xac,0x7d,
+  0xac,0xe7,0x6c,0x47,0x76,0x19,0x7b,0x8a,0x63,0xc7,0x29,0xe5,0x4c,0xc4,0xda,0xc5,
+  0x96,0xc6,0x4e,0xc6,0xd9,0xc5,0xed,0x89,0x9b,0x8a,0x77,0x88,0x2f,0x8f,0x9f,0xe6,
+  0xba,0x70,0x2b,0xb9,0x2f,0x13,0x3c,0x13,0x6a,0x12,0xe6,0x12,0xfd,0x12,0x8f,0x24,
+  0x2e,0x24,0x85,0x25,0xb5,0x26,0xe3,0x92,0xa3,0x93,0x4f,0xf1,0x64,0x78,0x89,0xbc,
+  0x9e,0x14,0x95,0x94,0xac,0x94,0x81,0x54,0x83,0xd4,0x82,0xd4,0x91,0x34,0x9b,0xb4,
+  0xbd,0x69,0x33,0x7c,0x6f,0x7e,0x43,0x3a,0x94,0xbe,0x26,0xbd,0x53,0x40,0x15,0xfd,
+  0x4c,0xf5,0x9,0x75,0x85,0x5b,0x85,0xa3,0x19,0xf6,0x19,0x55,0x19,0x6f,0x33,0x43,
+  0x33,0x4f,0x66,0x49,0x67,0xf1,0xb2,0xfa,0xb2,0xf5,0xb3,0x77,0x64,0x4f,0xe4,0xb8,
+  0xe7,0x7c,0xbd,0xe,0xb5,0x8e,0xb5,0xae,0x3b,0x57,0x2d,0x77,0x73,0xee,0xe8,0x7a,
+  0xa7,0xf5,0xb5,0x1b,0xa0,0xd,0x31,0x1b,0xba,0x37,0x6a,0x6c,0xcc,0xdf,0x38,0xbe,
+  0xc9,0x63,0xd3,0xd1,0xcd,0x84,0xcd,0x89,0x9b,0x7f,0xc8,0x33,0xc9,0x2b,0xcd,0x7b,
+  0xbd,0x25,0x6c,0x4b,0x57,0xbe,0x72,0xfe,0xa6,0xfc,0xb1,0xad,0x1e,0x5b,0x9b,0xb,
+  0x24,0xa,0xf8,0x5,0xc3,0xdb,0x6c,0xb7,0xd5,0x6c,0x47,0x6d,0xe7,0x6e,0xef,0xdf,
+  0x61,0xbe,0x63,0xff,0x8e,0x4f,0x85,0xec,0xc2,0x6b,0x45,0x26,0x45,0xe5,0x45,0x1f,
+  0x8a,0x59,0xc5,0xd7,0xbe,0x32,0xfd,0xaa,0xe2,0xab,0x85,0x9d,0xb1,0x3b,0xfb,0x4b,
+  0x2c,0x4b,0xe,0xee,0xc2,0xec,0xe2,0xed,0x1a,0xda,0xed,0xb0,0xfb,0x68,0xa9,0x74,
+  0x69,0x4e,0xe9,0xd8,0x1e,0xdf,0x3d,0xed,0x65,0xf4,0xb2,0xc2,0xb2,0xd7,0x7b,0xa3,
+  0xf6,0x5e,0x2d,0x5f,0x56,0x5e,0xb3,0x8f,0xb0,0x4f,0xb8,0x6f,0xa4,0xc2,0xa7,0xa2,
+  0x73,0xbf,0xe6,0xfe,0x5d,0xfb,0x3f,0x54,0xc6,0x57,0xde,0xa9,0x72,0xae,0x6a,0xad,
+  0x56,0xaa,0xde,0x51,0x3d,0x77,0x80,0x7d,0x60,0xf0,0xa0,0xe3,0xc1,0x96,0x1a,0xe5,
+  0x9a,0xa2,0x9a,0xf7,0x87,0xb8,0x87,0xee,0xd6,0x7a,0xd4,0xb6,0xd7,0x69,0xd7,0x95,
+  0x1f,0xc6,0x1c,0xce,0x38,0xfc,0xb4,0x3e,0xb4,0xbe,0xf7,0x6b,0xc6,0xd7,0x8d,0xd,
+  0xa,0xd,0x45,0xd,0x1f,0x8f,0xf0,0x8e,0x8c,0x1c,0xd,0x3c,0xda,0xd3,0x68,0xd5,
+  0xd8,0xd8,0xa4,0xd4,0x54,0xd2,0xc,0x37,0xb,0x9b,0xa7,0x8e,0x45,0x1e,0xbb,0xf9,
+  0x8d,0xeb,0x37,0x9d,0x2d,0x86,0x2d,0xb5,0xad,0xb4,0xd6,0xa2,0xe3,0xe0,0xb8,0xf0,
+  0xf8,0xb3,0x6f,0xa3,0xbf,0x1d,0x3a,0xe1,0x7d,0xa2,0xfb,0x24,0xe3,0x64,0xcb,0x77,
+  0x5a,0xdf,0x55,0xb7,0x51,0xda,0xa,0xdb,0xa1,0xf6,0xec,0xf6,0x99,0x8e,0xf8,0x8e,
+  0x91,0xce,0xf0,0xce,0x81,0x53,0x2b,0x4e,0x75,0x77,0xd9,0x76,0xb5,0x7d,0x6f,0xf4,
+  0xfd,0x91,0xd3,0x6a,0xa7,0xab,0xce,0xc8,0x9e,0x29,0x39,0x4b,0x38,0x9b,0x7f,0x76,
+  0xe1,0x5c,0xce,0xb9,0xd9,0xf3,0xa9,0xe7,0xa7,0x2f,0xc4,0x5d,0x18,0xeb,0x8e,0xea,
+  0x7e,0x70,0x71,0xd5,0xc5,0xdb,0x3d,0x1,0x3d,0xfd,0x97,0xbc,0x2f,0x5d,0xb9,0xec,
+  0x7e,0xf9,0x62,0xaf,0x53,0xef,0xb9,0x2b,0x76,0x57,0x4e,0x5f,0xb5,0xb9,0x7a,0xea,
+  0x1a,0xe3,0x5a,0xc7,0x75,0xcb,0xeb,0xed,0x7d,0x16,0x7d,0x6d,0x3f,0x58,0xfc,0xd0,
+  0xd6,0x6f,0xd9,0xdf,0x7e,0xc3,0xea,0x46,0xe7,0x4d,0xeb,0x9b,0x5d,0x3,0xcb,0x7,
+  0xce,0xe,0x3a,0xc,0x5e,0xb8,0xe5,0x7a,0xeb,0xf2,0x6d,0xaf,0xdb,0xd7,0xef,0xac,
+  0xbc,0x33,0x30,0x14,0x32,0x74,0x77,0x38,0x72,0x78,0xe4,0x2e,0xfb,0xee,0xe4,0xbd,
+  0xa4,0x7b,0x2f,0xef,0x67,0xdc,0x9f,0x7f,0xb0,0xe9,0x21,0xfa,0x61,0xe1,0x23,0xa9,
+  0x47,0xe5,0x8f,0x95,0x1e,0xd7,0xfd,0xa8,0xf7,0x63,0xeb,0x88,0xe5,0xc8,0x99,0x51,
+  0xd7,0xd1,0xbe,0x27,0x41,0x4f,0x1e,0x8c,0xb1,0xc6,0x9e,0xff,0x94,0xfe,0xd3,0x87,
+  0xf1,0xfc,0xa7,0xe4,0xa7,0xe5,0x13,0xaa,0x13,0x8d,0x93,0x66,0x93,0xa7,0xa7,0xdc,
+  0xa7,0x6e,0x3e,0x5b,0xfd,0x6c,0xfc,0x79,0xea,0xf3,0xf9,0xe9,0x82,0x9f,0xa5,0x7f,
+  0xae,0x7e,0xa1,0xfb,0xe2,0xbb,0x5f,0x1c,0x7f,0xe9,0x9b,0x59,0x35,0x33,0xfe,0x92,
+  0xff,0x72,0xe1,0xd7,0xe2,0x57,0xf2,0xaf,0x8e,0xbc,0x5e,0xf6,0xba,0x7b,0xd6,0x7f,
+  0xf6,0xf1,0x9b,0xe4,0x37,0xf3,0x73,0x85,0x6f,0xe5,0xdf,0x1e,0x7d,0xc7,0x78,0xd7,
+  0xfb,0x3e,0xec,0xfd,0xc4,0x7c,0xe6,0x7,0xec,0x87,0x8a,0x8f,0x7a,0x1f,0xbb,0x3e,
+  0x79,0x7f,0x7a,0xb8,0x90,0xbc,0xb0,0xf0,0x1b,0xf7,0x84,0xf3,0xfb,0xe2,0xe6,0x1d,
+  0xc2,0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x12,0x0,0x0,0xb,
+  0x12,0x1,0xd2,0xdd,0x7e,0xfc,0x0,0x0,0x14,0x30,0x49,0x44,0x41,0x54,0x68,0x43,
+  0xdd,0x59,0x79,0x5c,0xcd,0xeb,0xb7,0xde,0xe7,0xe0,0x98,0xa7,0x8e,0x29,0x53,0x42,
+  0x22,0x47,0x21,0x91,0x21,0x9b,0x34,0x47,0xa5,0xda,0x4a,0xa5,0x92,0x6,0x49,0x9a,
+  0x35,0xa0,0x9d,0x24,0x94,0xa8,0x48,0xb3,0x34,0xa1,0x89,0xcc,0x19,0x2a,0x2a,0x9,
+  0x11,0x95,0xa4,0x51,0x44,0x49,0x29,0x73,0x29,0x3d,0x77,0x7d,0x77,0x72,0x71,0x7e,
+  0xe7,0xc4,0xe5,0xde,0x3f,0xee,0xf7,0xf3,0x59,0x76,0xdb,0xfe,0xee,0xf7,0x7d,0x9e,
+  0x67,0x3d,0x6b,0xbd,0x6b,0xef,0xcd,0x62,0xfd,0xff,0xbd,0x26,0xf6,0x54,0xd6,0xf,
+  0x1c,0xb5,0x4c,0xcf,0x5f,0x70,0x9e,0xa,0x77,0x24,0xf1,0xfc,0xe3,0xff,0x82,0xab,
+  0x57,0x44,0xfa,0x88,0xac,0x9c,0x62,0xd5,0xfc,0xe2,0x47,0xae,0xf7,0x4a,0x6b,0x2,
+  0x8a,0x4a,0x6b,0x2,0xef,0xde,0xab,0xde,0x71,0xed,0x56,0xa5,0xf6,0xc1,0x23,0x37,
+  0xc6,0x74,0x89,0x21,0x24,0xf2,0x8a,0x7c,0xea,0xd5,0x7,0xa1,0xb7,0xf2,0xab,0xf2,
+  0x8a,0xcb,0x6b,0xab,0xef,0x97,0xd5,0xd4,0xe5,0x17,0x55,0x3f,0x4e,0xcf,0xbe,0x7f,
+  0x3b,0x36,0x29,0x3b,0xc2,0x7e,0xeb,0x11,0xd5,0xff,0xd,0x32,0x5c,0xbf,0xb3,0x3,
+  0xf2,0xa,0xaa,0xdc,0x9f,0xd6,0x36,0x55,0xbd,0x6f,0x1,0xda,0x1,0xb4,0xd2,0x3f,
+  0xef,0xe8,0xef,0x97,0x6f,0x81,0x67,0xd,0x6d,0x28,0xa9,0x78,0xf1,0xf4,0xea,0xcd,
+  0x2a,0x2f,0xae,0x4f,0xa,0xdf,0xdf,0x88,0xac,0xdf,0x14,0x27,0x78,0xed,0xd6,0xc3,
+  0xe3,0x75,0xd,0x74,0xf7,0xbf,0x5c,0xa5,0x55,0xd,0x88,0x4a,0xca,0x4e,0x53,0x33,
+  0xd8,0x2d,0xde,0xa5,0x1a,0xdf,0x79,0x43,0x74,0xd2,0x15,0xfe,0xca,0x47,0xcf,0x33,
+  0x3a,0xb7,0x65,0xc0,0x33,0x24,0x9a,0x5e,0x7d,0xc4,0x93,0x67,0x2d,0x28,0xab,0x7a,
+  0x8b,0x7,0xe5,0xaf,0x51,0xfe,0xb8,0x5,0xb5,0xd,0x40,0x46,0x4e,0xe5,0xd,0x3d,
+  0x63,0x7f,0xc1,0xcf,0xcb,0xbb,0xef,0x4d,0x15,0x2e,0x2a,0xab,0x2d,0xfe,0x27,0xdc,
+  0xad,0x1f,0x69,0xc1,0x66,0xe0,0xcd,0x7b,0xa0,0xa5,0xb5,0x43,0x99,0xc4,0x33,0xb9,
+  0xb5,0xcb,0xd,0xbd,0x25,0xbe,0x13,0xe3,0x3f,0xde,0xc6,0xe1,0xc4,0x77,0x2b,0x2e,
+  0xaf,0x39,0xfc,0x8f,0x7b,0xb7,0xb5,0xa3,0xa1,0xe9,0x3,0x8a,0xcb,0x5f,0xe1,0xce,
+  0xbd,0x6,0xdc,0xcc,0xaf,0x47,0x75,0x1d,0x10,0x14,0x99,0x9a,0xc1,0x62,0x8d,0xee,
+  0xcd,0x12,0x11,0xe1,0xfe,0x91,0x7b,0xe7,0x51,0xfa,0x97,0xec,0xbf,0x5d,0xac,0x9d,
+  0x0,0x37,0x7f,0xa0,0x54,0xbe,0x6,0xea,0x9b,0x3e,0xa2,0xbe,0xb1,0xd,0xef,0xe9,
+  0xb9,0x6f,0xe8,0xf9,0x6c,0x7e,0xfe,0xa5,0x7d,0x7e,0x86,0x44,0x4a,0x6a,0x81,0x58,
+  0x63,0x13,0x63,0x94,0x7f,0xbe,0x88,0x3,0x91,0xf8,0x88,0xfc,0xfb,0x8d,0xb8,0x71,
+  0xa7,0xe,0xb7,0xa,0x1b,0x91,0x79,0xe3,0x11,0x14,0x74,0xb9,0x7a,0xac,0xb8,0xe4,
+  0x3c,0xe5,0xb7,0xef,0xdb,0x78,0xef,0xfe,0xc8,0xe4,0xee,0x5f,0x2e,0x26,0xb,0xcf,
+  0x5f,0xb4,0xa2,0xa6,0xae,0x85,0x16,0x6c,0x47,0xd6,0x8d,0x72,0x2c,0x5d,0xbd,0x8b,
+  0xfd,0x33,0x4,0x6e,0x17,0x3e,0xd6,0xfc,0x76,0xcb,0xe6,0x96,0x36,0x30,0xd1,0x42,
+  0xa9,0x6f,0x7a,0xd5,0x4a,0x35,0xd0,0x4e,0x35,0xc0,0x64,0xe1,0x25,0x6e,0xdc,0xad,
+  0x43,0xd6,0xcd,0x67,0x28,0x78,0xf0,0x1a,0x1b,0xb6,0x84,0x44,0xb1,0xb2,0x6f,0x56,
+  0xec,0x60,0x16,0x60,0x6c,0x41,0x4e,0xe1,0x5d,0xef,0xde,0xb7,0xe2,0xf5,0x9b,0x16,
+  0xb4,0x11,0xa3,0xa6,0x97,0x2d,0x68,0x6d,0xfb,0x88,0x37,0x6f,0x3f,0xe0,0xd5,0xeb,
+  0xf,0x78,0xde,0xd0,0xca,0xf3,0x65,0x75,0x6d,0xb,0x4a,0x2a,0x9b,0x60,0xee,0x14,
+  0xbe,0xfa,0x67,0x8,0xe4,0xe6,0x3f,0x5a,0xfe,0xad,0x6e,0x91,0xf1,0x99,0x8,0x8c,
+  0xbc,0x80,0xec,0xdc,0x4a,0x6c,0xda,0x71,0x14,0x77,0x8a,0x6a,0x61,0xef,0x16,0x8d,
+  0x2b,0xd7,0x2a,0x49,0xfd,0x6,0x64,0xdc,0xa8,0x41,0x51,0xd9,0x3b,0x38,0x6e,0xd,
+  0x3f,0xce,0xba,0x71,0xb7,0xca,0xaf,0x93,0x40,0xe7,0x42,0xd1,0x89,0x57,0xe1,0xbe,
+  0x3b,0x1e,0xf,0x1f,0x37,0xc0,0xcc,0x21,0x4,0xa5,0x15,0x35,0xf0,0xa,0x38,0x85,
+  0x83,0x87,0x53,0xc9,0x46,0xed,0x78,0x5c,0xd3,0x8c,0xc7,0x4f,0x9b,0x51,0x54,0xca,
+  0xbc,0x1e,0xa6,0xfb,0x33,0x4,0xce,0x5c,0x28,0x9b,0xf6,0xf2,0x75,0x33,0x55,0x57,
+  0xc7,0xc5,0xd8,0xf5,0x76,0xc1,0x43,0xe4,0x15,0x3c,0x62,0xba,0xe,0x52,0xd2,0xa,
+  0xa8,0x88,0x5f,0x21,0xf1,0xd4,0x4d,0xdc,0x2d,0xaa,0x47,0x6e,0x41,0x3d,0xb2,0x6f,
+  0xd5,0x21,0xbf,0xb8,0x9,0x7a,0x66,0xdb,0xbd,0x58,0x97,0x32,0x1f,0xac,0xe7,0xbd,
+  0xf1,0x53,0x30,0x7f,0x17,0x97,0x3e,0xc6,0xdd,0xc2,0x72,0x52,0xbd,0x19,0x57,0xae,
+  0xde,0xc5,0x7b,0x6a,0x9,0xb9,0x77,0x4a,0x50,0xf1,0xf0,0x29,0x59,0xa7,0xd,0x55,
+  0xd5,0xef,0x28,0xb,0x1f,0xc8,0x87,0xa5,0xad,0xa,0x2b,0x3c,0x7f,0xaa,0x90,0xd9,
+  0xec,0xf4,0xee,0xf9,0x45,0x4f,0x2e,0x31,0xfb,0x52,0xa2,0xf1,0x8e,0x6c,0xfa,0x81,
+  0x1c,0xfd,0x96,0x28,0x31,0xbe,0x6f,0x68,0x2,0x1e,0x3d,0x7d,0x8f,0xea,0x67,0xad,
+  0x24,0x58,0x13,0x72,0xf2,0x9e,0xa1,0xe2,0x71,0x1b,0x62,0x13,0x33,0x5a,0x86,0x8c,
+  0x5c,0x32,0x83,0xe5,0x1d,0x96,0x2a,0x50,0x5d,0xdb,0xf4,0xbc,0x93,0xc4,0xbf,0x57,
+  0x1,0x8,0x78,0x33,0x2a,0x1f,0xbd,0xc5,0xcb,0x37,0x40,0x68,0xec,0xe5,0xd4,0x9f,
+  0x51,0xbf,0xf3,0xbd,0x3e,0xe1,0xa9,0x62,0xf,0x2a,0x6a,0x5f,0x30,0x7b,0x33,0xeb,
+  0xd6,0xbd,0x68,0x43,0xcd,0xf3,0x16,0xca,0xf4,0x7b,0x2,0x4b,0x2d,0xb4,0xe2,0x15,
+  0xa,0x4b,0x5e,0xf2,0x8a,0xf8,0xe1,0xd3,0x36,0x5c,0xbf,0xfd,0x8,0x6a,0x5a,0xb6,
+  0x4e,0x9f,0xf7,0x4e,0x49,0x2d,0x34,0x79,0x47,0x45,0xd3,0xd5,0xd5,0xf8,0xaa,0x8d,
+  0xd4,0x68,0xc6,0x2b,0xda,0x24,0xfd,0x5a,0xc9,0x2b,0x15,0xd,0xb,0xb,0xe,0x47,
+  0x63,0x85,0x96,0x91,0x99,0xbd,0x9a,0xb6,0xae,0xde,0xf2,0xb9,0xa2,0x7f,0xfd,0xf,
+  0x8,0xf5,0xa6,0xf7,0xc,0xd0,0xb7,0xdb,0xab,0x78,0xed,0x56,0xe9,0x9d,0x97,0xaf,
+  0xa9,0xfe,0xe8,0x28,0x6a,0xa2,0x8e,0xf7,0xb4,0xee,0x23,0xed,0xf7,0x81,0xd4,0xff,
+  0x88,0xe7,0x8d,0x1d,0xcf,0x4f,0xa7,0xdc,0x6c,0xe4,0xe8,0x6d,0xb6,0xf9,0xdb,0x3e,
+  0x97,0x32,0xef,0x5b,0x35,0x34,0xbe,0x25,0x68,0xff,0xf9,0x6a,0xa6,0x46,0x57,0x47,
+  0x5,0x5c,0xd7,0xd0,0x8c,0x73,0xe9,0x79,0x6d,0x86,0x56,0xae,0xd,0x4e,0xfe,0xc1,
+  0xb5,0xbe,0x29,0xd9,0xf0,0x4a,0xcb,0x83,0x59,0xec,0x79,0x68,0xef,0x8,0x78,0xab,
+  0xb6,0xda,0xec,0xa8,0xd2,0x8c,0xa9,0x53,0xba,0x22,0x22,0x29,0x29,0x39,0xcd,0xc4,
+  0xd0,0x32,0xd0,0xda,0x84,0x9b,0x6f,0xa4,0xe9,0x50,0xa1,0xb8,0x40,0xfb,0xa4,0x96,
+  0xbe,0x73,0x62,0x4b,0x4b,0x3b,0x65,0xb8,0x1e,0xd7,0x6e,0x95,0xd4,0xdc,0x2e,0xa8,
+  0x7a,0x7f,0xeb,0x6e,0x65,0xdb,0xf5,0xdb,0xe5,0x4d,0xa7,0x53,0xae,0xe7,0x6f,0xf3,
+  0x8a,0xdc,0xd3,0x77,0xf8,0xdc,0x7f,0x16,0x29,0xe2,0x68,0xa6,0x64,0xfe,0xfd,0xea,
+  0xc3,0x35,0xcf,0x9a,0xea,0x99,0xbe,0xdf,0x79,0x31,0x5d,0xba,0x96,0xda,0x18,0xf3,
+  0x7f,0x69,0x57,0x4b,0x5a,0xd,0xed,0xb7,0xbd,0x9,0xbf,0x7c,0x1d,0x67,0xc9,0x9b,
+  0x89,0x55,0x6f,0x10,0x59,0xd2,0x80,0x2d,0x57,0xcb,0x60,0x9c,0x52,0x88,0xd5,0x9,
+  0x57,0xa0,0xbc,0xce,0xee,0x89,0xf4,0xec,0x99,0x52,0xff,0x44,0x42,0x59,0x5e,0x59,
+  0xc5,0xd1,0x72,0x5b,0xc3,0x21,0xdf,0x33,0xf0,0xdb,0x12,0xf,0x27,0x83,0x0,0x38,
+  0x98,0x5,0xe0,0x7c,0x5a,0x2e,0x2e,0x66,0xdd,0x6a,0xd7,0x5f,0xbf,0xdd,0x85,0xc5,
+  0x1a,0x3f,0x56,0x79,0x85,0xa3,0x98,0xe6,0x4a,0x97,0xd9,0x7f,0x8e,0x93,0x17,0xa6,
+  0xb5,0x98,0x4c,0x7d,0xdf,0x65,0xbf,0xed,0xc8,0x84,0x84,0x13,0x37,0x55,0xcf,0x5c,
+  0xba,0x6b,0x75,0xe2,0x42,0x9e,0x63,0x74,0x52,0xb6,0xb1,0xef,0xc1,0xb,0x3a,0xa9,
+  0xd9,0xf,0x8b,0x6e,0xe7,0xd7,0x61,0x7f,0xec,0x65,0xa4,0x3f,0x79,0x8b,0x4b,0x4f,
+  0xdf,0xe0,0xd4,0xc3,0x46,0x24,0x96,0x37,0x20,0xf8,0x6e,0x35,0x2c,0xcf,0xdd,0x81,
+  0xf1,0xb9,0x3c,0xe8,0x27,0x66,0x42,0x4e,0xdf,0xb8,0x8a,0x2d,0x2c,0x3c,0xee,0xdb,
+  0x1d,0xa5,0xa5,0x17,0x88,0x3a,0xac,0x77,0x6b,0x3c,0x1d,0x93,0x8d,0xe3,0x87,0xae,
+  0x60,0xb7,0x73,0x14,0x36,0x1a,0xef,0x83,0xf5,0x86,0x7d,0x70,0xa1,0x8e,0xa7,0x22,
+  0x6f,0xdf,0x3e,0x53,0x54,0xca,0xfe,0xfb,0x90,0xfe,0xe0,0x5d,0x9a,0x6b,0x6c,0xb5,
+  0xe,0x24,0xa6,0x23,0x36,0x25,0x1f,0xe1,0x67,0x73,0x51,0xfa,0x92,0xa,0x9a,0x6a,
+  0x27,0xff,0xf5,0x47,0x64,0xd5,0x7f,0x80,0x6f,0xde,0x63,0xb8,0x64,0x14,0xc3,0xee,
+  0x72,0x11,0xf4,0x82,0x13,0xb0,0x60,0x91,0x4c,0xe4,0xb7,0x5b,0xe8,0x6a,0xeb,0x1f,
+  0x3f,0x7f,0xec,0x1a,0xee,0xe5,0x3e,0x44,0xd6,0xf9,0x7c,0x4,0xef,0x3c,0x6,0x3f,
+  0xb7,0x23,0xd8,0x61,0x77,0x10,0x8e,0x6,0xfe,0xb0,0x59,0xb1,0x7,0xea,0xd2,0xc6,
+  0xf5,0x33,0x66,0x4c,0x11,0xf8,0x41,0x78,0x5d,0xdf,0x6e,0x61,0xef,0x10,0x76,0xee,
+  0x41,0x35,0xaa,0x5e,0xbd,0xc7,0x13,0xaa,0xaa,0xe6,0xb6,0x36,0x30,0xad,0xa3,0x84,
+  0x5a,0xde,0x8d,0x97,0x1f,0x71,0xb0,0xb8,0xe,0x6e,0xd9,0x65,0x14,0x25,0x70,0xce,
+  0x28,0x82,0xe2,0x6a,0xf3,0x77,0x12,0x82,0x23,0x27,0x75,0xae,0xac,0xa8,0xa8,0x28,
+  0xeb,0xb5,0xdd,0xef,0x5d,0x41,0x4e,0x25,0xf2,0x73,0xca,0x70,0x21,0xe9,0x3a,0xf6,
+  0x6f,0x8b,0x87,0x2f,0xf7,0x30,0xbc,0x9d,0x23,0xb1,0xdd,0x2a,0x1c,0xae,0x66,0x41,
+  0x30,0xd3,0x70,0xc3,0xc2,0xf9,0x4b,0x74,0xba,0x46,0xf4,0x3,0x77,0x88,0xd0,0xe7,
+  0x81,0x3d,0xe1,0x51,0xc5,0xcf,0xbe,0xa8,0x71,0xa6,0x4c,0x6a,0xa8,0x77,0x17,0xbd,
+  0x3,0xae,0xd1,0x7c,0x14,0x53,0xfa,0x2,0xdc,0xab,0xa5,0x70,0xcd,0x2a,0x6,0x37,
+  0xfb,0x1,0x4c,0xa3,0x4e,0x42,0x52,0x5e,0x31,0x81,0x2d,0x20,0xd0,0x8b,0xd9,0x4a,
+  0x4f,0x4f,0xef,0xd2,0x89,0x84,0x8b,0xc8,0x49,0x2b,0xa2,0xb8,0x87,0xa4,0x43,0xe9,
+  0xf0,0xe3,0x1e,0x81,0xcf,0xa6,0x68,0xec,0x74,0x88,0x80,0xfb,0xfa,0x50,0x70,0xcd,
+  0x2,0x61,0xa5,0xe5,0x8d,0xc5,0x12,0xea,0x9,0x13,0x15,0x26,0xf6,0xfc,0x1,0x88,
+  0xff,0x7e,0xeb,0xd2,0x15,0x2b,0xd4,0x4c,0x3,0xc2,0xdf,0x14,0xd3,0x48,0x4a,0x1d,
+  0xe,0x4c,0xbb,0xa2,0xc9,0x16,0x95,0xc4,0xe2,0x2e,0x9d,0xce,0x19,0x64,0xa1,0xc3,
+  0x65,0x8d,0x1d,0x4,0x32,0x8b,0x29,0x8a,0x60,0x72,0x26,0x7,0xd3,0x34,0x75,0x31,
+  0x7b,0xe2,0x44,0x49,0x66,0x75,0x7d,0x7d,0xfd,0xab,0x27,0x8e,0x5e,0xc2,0xe5,0xd3,
+  0x79,0xb8,0x7c,0x26,0xf,0x31,0x1,0xe7,0x78,0xe0,0xbd,0x9c,0x48,0x7d,0xeb,0x70,
+  0xb8,0xad,0xb,0xc6,0x66,0x93,0xfd,0xb0,0x5f,0xe5,0xb,0xd,0x29,0x4b,0x88,0x4f,
+  0x9f,0x2f,0xfb,0x4b,0x8,0x98,0x72,0x64,0x6,0xaa,0x3b,0x73,0x8b,0x56,0x27,0xa5,
+  0x61,0xdf,0xf5,0x7b,0xa8,0xa6,0x23,0xe3,0x11,0x8d,0xd5,0x15,0x4,0xbe,0x90,0x7a,
+  0x76,0xe,0x9d,0xce,0x97,0x6a,0x9b,0x11,0x5b,0xda,0x8,0xb7,0xab,0x25,0xd8,0x92,
+  0x79,0x9f,0xa2,0x8,0x6,0x49,0x57,0x20,0xa4,0xaa,0x85,0xe9,0x93,0x27,0xf2,0x80,
+  0x68,0x6a,0x6a,0xee,0x8c,0xe,0x3a,0x8e,0xf3,0x9,0x39,0x48,0x49,0xb8,0x86,0xb0,
+  0xdd,0xc9,0xd8,0xb5,0x31,0x2,0x9e,0xb6,0x7,0x49,0xfd,0x10,0xb8,0x9a,0x1e,0xc0,
+  0x26,0xe3,0xfd,0xd8,0x65,0x7f,0x8,0xeb,0x34,0xb7,0x63,0x8e,0x98,0xcc,0x4f,0xcd,
+  0x59,0x9f,0xc9,0xeb,0xaa,0x28,0x88,0xac,0xd,0x3c,0xf4,0x3a,0x9e,0x5a,0x66,0xc4,
+  0xbd,0x6a,0xdc,0x21,0xc5,0xb,0x8,0x38,0xf3,0x98,0xd3,0xf8,0x11,0xa9,0x34,0x9d,
+  0x9e,0x7a,0xfc,0xe,0x51,0xd4,0x4e,0xb9,0x59,0xf,0xb0,0x99,0xfc,0xbf,0x39,0xe3,
+  0x1e,0xf4,0xe,0x5f,0xc4,0x14,0x69,0xc5,0x6,0x91,0xd1,0xa3,0x27,0x32,0x8b,0x2d,
+  0x94,0x5e,0xb8,0x6c,0x8f,0x47,0x30,0x4e,0x45,0x67,0x22,0x39,0xea,0x32,0xe,0x78,
+  0x24,0xc0,0xc3,0x2a,0xac,0x3,0xfc,0xda,0x40,0xb8,0xac,0x21,0xf5,0xf5,0x7d,0xe1,
+  0xed,0x18,0x3,0xb,0xdd,0xad,0x2d,0x33,0xa7,0x49,0xce,0xfc,0x25,0x19,0x58,0x26,
+  0x2b,0x25,0x68,0x7f,0xf0,0xc8,0x8b,0x23,0xf,0x5f,0x21,0xa1,0x82,0xa6,0x41,0xb2,
+  0x4b,0xd6,0x8b,0xf,0xb8,0xf2,0xfc,0x3,0x2e,0x92,0xf2,0x27,0x9,0x7c,0xe2,0xc3,
+  0xd7,0x38,0x74,0xbf,0x8e,0xac,0x73,0x9f,0xc0,0x17,0xc2,0x29,0x3d,0x1f,0x3a,0x61,
+  0xc7,0x30,0x63,0xfe,0x82,0xf3,0x4,0xe2,0x37,0x6,0xc8,0xbc,0x79,0xb3,0x84,0xad,
+  0xd6,0x3a,0xbe,0x4e,0x8,0x4d,0xc7,0xd1,0xe0,0x8b,0xf0,0xe7,0xc6,0xc1,0xcd,0x3c,
+  0x88,0xa,0xf7,0x0,0x81,0xdf,0x7,0x47,0x43,0x7f,0x98,0xa9,0x7a,0x42,0x4f,0xd6,
+  0x9,0x4a,0x32,0xea,0xae,0xbf,0x4,0x3c,0xb3,0x8,0x87,0xc5,0xea,0x66,0xe9,0xe9,
+  0x7d,0x2c,0xa2,0xa8,0x1a,0xf1,0x95,0x8d,0x38,0x4d,0xc3,0xdc,0x19,0x8a,0x93,0xd5,
+  0x6f,0x71,0x8c,0x3e,0xee,0x25,0xd0,0xac,0x12,0x57,0xde,0x88,0xb0,0x7b,0x4f,0x79,
+  0xca,0x6f,0xbe,0x5c,0x80,0xd,0x29,0xb7,0xa0,0xb1,0x3b,0xc,0x7f,0x89,0xfe,0x15,
+  0xf0,0x5,0x90,0xdf,0x54,0x97,0xaa,0x27,0xf8,0x6e,0x8d,0x41,0xf4,0xfe,0x14,0xf8,
+  0xbb,0xc5,0x61,0x13,0xa9,0xce,0x3,0xbf,0xda,0x1f,0xeb,0x39,0xbb,0xa0,0xcb,0x76,
+  0xc5,0x22,0x31,0x8d,0x27,0xac,0xfe,0xac,0x3f,0x7f,0x19,0x1,0x66,0x21,0xa5,0xc5,
+  0x8b,0x5,0xec,0xbc,0xfd,0xcb,0x18,0xa5,0xe3,0x2b,0x5f,0x22,0xbe,0xa2,0x23,0x8e,
+  0x96,0x37,0xe1,0x48,0xd9,0xb,0xea,0x40,0xcf,0x10,0x78,0xf7,0x21,0x36,0x5d,0x2e,
+  0xc4,0xc6,0x4b,0x79,0x30,0x3e,0x71,0xd,0xb2,0x1b,0x9c,0x21,0x3c,0x76,0xf4,0xb7,
+  0xe3,0xf6,0x28,0xd,0xc5,0x55,0x65,0x9e,0xd4,0xf7,0x7d,0x5c,0x62,0x79,0xaa,0xdb,
+  0xe8,0xf8,0xf0,0x94,0xd7,0x92,0x72,0xc6,0x52,0x9,0x93,0x56,0x9,0x51,0xc9,0xb5,
+  0xbf,0x14,0x7c,0xe7,0x62,0x54,0x84,0xe,0xfb,0x2f,0xdf,0x42,0x3c,0x59,0xe9,0x70,
+  0x69,0x3d,0x15,0xed,0x73,0xc4,0x94,0x3c,0x43,0xf4,0x83,0x1a,0x44,0xdd,0xaf,0x86,
+  0xdf,0xed,0x32,0x38,0xa5,0xdd,0x85,0xf9,0xc9,0x6c,0xf2,0xff,0x5,0xcc,0x5c,0xa2,
+  0xf0,0x44,0xb0,0x6f,0xdf,0xe1,0x9f,0xde,0xdf,0x57,0x9b,0xa3,0x67,0xc1,0x75,0xf1,
+  0xc,0xb2,0x30,0xb3,0x2e,0x58,0xa3,0xe9,0x4,0x5b,0xbd,0xbd,0x58,0xa3,0xbc,0xd,
+  0x2b,0x16,0x38,0x41,0x43,0x72,0x23,0x74,0xa5,0x5d,0xb0,0x50,0x42,0xee,0x97,0x4c,
+  0xb8,0xff,0x51,0x0,0xd1,0xf1,0xc3,0x87,0xad,0x71,0x76,0xad,0xc,0x2f,0x7a,0x4a,
+  0xc0,0x6b,0x11,0x5d,0xfc,0x84,0x7,0xfc,0xd0,0xbd,0x2a,0x44,0xde,0x7b,0x88,0x9d,
+  0xd9,0xf7,0x8,0xfc,0x55,0x18,0x26,0x5f,0x85,0x9c,0x3d,0x17,0x13,0xc7,0xb,0x74,
+  0x28,0xc9,0xcf,0xea,0x63,0x62,0xb0,0xee,0x54,0xb8,0xdf,0x31,0xa4,0x9f,0xcc,0xc3,
+  0x89,0x98,0x4c,0xac,0x92,0xdd,0xc4,0xb3,0x8d,0x3,0x15,0xad,0x85,0xfa,0x4e,0xea,
+  0xfd,0xbb,0x61,0xab,0xbb,0x7,0xf2,0x33,0x57,0x37,0x18,0x68,0x6e,0xb8,0xa8,0xaa,
+  0xa0,0xe5,0x38,0x60,0x40,0x4f,0x5e,0xf1,0xff,0xd2,0x6b,0xc9,0x2,0xf6,0x52,0x73,
+  0xef,0x80,0xc6,0xbd,0x39,0xf7,0x11,0x7c,0xa7,0x1c,0x21,0x77,0xca,0xe8,0xb1,0x14,
+  0x7e,0xd7,0xb,0xb1,0xfe,0x54,0x36,0x56,0x27,0x65,0x60,0xd9,0x36,0x5f,0x4c,0x98,
+  0x38,0x29,0x89,0x36,0xe6,0x7d,0xe0,0x37,0xd0,0x31,0x30,0xd,0xdb,0x9b,0x80,0xa3,
+  0x41,0x69,0x38,0xb8,0xe7,0x14,0xc2,0xbc,0x4f,0xc0,0x4c,0x6d,0x3b,0xd4,0x66,0xdb,
+  0x42,0x77,0xb1,0xb,0x56,0xc9,0x6c,0x1,0x67,0xde,0x46,0xc8,0x89,0x98,0xc3,0x58,
+  0xd9,0x3,0x47,0xe,0xa4,0x21,0xd8,0xeb,0x38,0x6c,0x4c,0xb8,0xf5,0xb3,0x66,0xce,
+  0xde,0x46,0x4b,0x74,0xff,0xa5,0x24,0x96,0xaa,0x6b,0x9c,0xde,0x98,0x9c,0xe,0xd7,
+  0xd4,0x5c,0x78,0x90,0xa5,0xb6,0xa7,0xe7,0xc2,0xf1,0x1c,0xd9,0x26,0xee,0x12,0xa4,
+  0x7d,0xc2,0xb1,0x58,0xdf,0xb8,0x5d,0xdb,0xd6,0xb1,0x48,0xdd,0xca,0xfe,0xb6,0x98,
+  0xac,0x42,0x92,0xc6,0xd2,0x15,0x15,0x89,0x21,0x69,0x88,0xf4,0x3f,0x8b,0x10,0xaf,
+  0x64,0x4,0x50,0xfb,0xdc,0xe7,0x7e,0x14,0x5b,0x2d,0x83,0x60,0xa1,0xb1,0x13,0xab,
+  0x15,0xdc,0xb0,0x6a,0xc9,0x66,0x98,0x2c,0xdb,0x46,0xc3,0x5d,0xc,0x82,0x3c,0x8f,
+  0x21,0x64,0xd7,0x9,0x4,0x6e,0x3b,0xe,0x4d,0x99,0xb5,0x10,0x10,0x10,0x74,0xfb,
+  0x59,0x2,0xbf,0x2f,0x59,0xb2,0x64,0x91,0xb5,0xab,0xfb,0x5e,0x9b,0xed,0x3e,0xb9,
+  0x6c,0x13,0xfb,0xb7,0x76,0xe7,0xaf,0xc3,0x2c,0xf9,0x32,0xc,0x8f,0x9e,0xc3,0xaa,
+  0xd8,0x93,0x90,0xf,0x3e,0x8a,0x69,0x3b,0x3,0xd1,0xc7,0xd0,0x1a,0x73,0xad,0xdd,
+  0xe1,0x93,0x93,0xf,0xfb,0x73,0x99,0x90,0xda,0x1b,0x6,0x41,0xcd,0x55,0x58,0xa3,
+  0x63,0x85,0x88,0x3d,0x67,0x70,0xc0,0x33,0x11,0x3b,0xe8,0xa0,0x72,0xb7,0xc,0xa5,
+  0x8,0xe9,0x18,0x1f,0xd6,0x6,0xc1,0x99,0xba,0x91,0xd,0x59,0xc8,0x4c,0xcd,0x93,
+  0x97,0x1d,0xa6,0xa8,0xd,0xe4,0x5c,0xc1,0x99,0xeb,0x88,0x19,0x93,0xa4,0x5e,0xd,
+  0x19,0xdf,0x5f,0xe8,0x7f,0x44,0x42,0x6e,0x9,0x5b,0xc1,0xd1,0x63,0x67,0x5a,0x54,
+  0x6a,0x56,0x7b,0x76,0xed,0x6b,0xa4,0x3d,0x7a,0x9,0x31,0x43,0x7,0x8,0x19,0xda,
+  0x63,0xee,0x16,0x5f,0xcc,0xe2,0xfa,0x42,0xd8,0x79,0x27,0x46,0xac,0xdb,0x84,0x7e,
+  0x5a,0xe6,0x18,0xac,0x66,0x8c,0x25,0x1e,0xfb,0xa1,0x71,0x30,0x11,0x73,0x76,0x87,
+  0x60,0xd2,0x36,0x7f,0x8c,0xdc,0xe2,0x8d,0xe1,0x6c,0x5,0x70,0x2d,0x7d,0xb0,0xcb,
+  0x21,0xa,0x4e,0xe4,0x7d,0xa6,0xfb,0x6c,0xd4,0xf7,0xa3,0x83,0x6b,0x2f,0xec,0xa8,
+  0x98,0x19,0xff,0x5b,0xae,0xf0,0x82,0xa9,0xea,0x76,0x18,0x2a,0x70,0xa1,0xbd,0xc8,
+  0x19,0x1a,0xf3,0x1c,0xa0,0x3e,0xcb,0x1,0x8b,0xa7,0xae,0xc4,0x18,0x81,0x31,0xee,
+  0x3f,0x4c,0x40,0x49,0x56,0xd6,0xd0,0x71,0x87,0x77,0xeb,0x8d,0xfa,0xb7,0xc8,0xa3,
+  0xe1,0xe7,0x46,0x7d,0x33,0xae,0xd7,0xbd,0x47,0x1c,0xf9,0x5e,0xcf,0x3b,0xc,0x73,
+  0x2d,0xb7,0x42,0xdc,0xc2,0x15,0xe2,0x1b,0xb6,0x62,0x8e,0xbd,0x27,0xa4,0xdd,0x3,
+  0xa0,0x1a,0x78,0x14,0x4a,0x21,0x71,0x4,0x3e,0x14,0x7f,0x6d,0xdf,0x87,0x89,0xae,
+  0x3e,0xe0,0x77,0xda,0x89,0xbe,0x6,0xeb,0xa0,0x20,0xa7,0x3,0xf,0x8b,0x50,0xde,
+  0x89,0xeb,0x6c,0xb4,0xf,0x4e,0x44,0xc2,0xc1,0xc0,0xf,0x76,0xab,0x88,0x80,0xde,
+  0x1e,0x58,0xeb,0xec,0x26,0x1b,0x79,0xf0,0x6a,0x62,0x25,0x9b,0x8,0x48,0x3a,0x40,
+  0x65,0x86,0x35,0xe4,0xa6,0x9a,0x61,0xc2,0x98,0xa9,0xb7,0x59,0xa3,0x7f,0xe0,0x43,
+  0x8d,0xcc,0xc2,0x85,0x42,0xfa,0x66,0xe6,0x8d,0x31,0x77,0xcb,0x71,0xf1,0x49,0x13,
+  0x52,0xab,0x1b,0x71,0xb1,0xaa,0x11,0x27,0x2b,0x9e,0x23,0xb1,0xa2,0x9e,0x6,0xb7,
+  0x7a,0x3a,0xb8,0x9e,0x90,0x55,0x1e,0xc0,0x35,0x3d,0xf,0xd6,0x67,0xb3,0x61,0x94,
+  0x70,0x9,0xcb,0xf,0x1e,0xc3,0x62,0xff,0x48,0x88,0x7b,0x5,0x61,0xf2,0x56,0x5f,
+  0x8,0xb8,0xec,0xc2,0x50,0x5b,0x77,0xf4,0x5b,0xe7,0x2,0x41,0x49,0x39,0x38,0x1b,
+  0xfa,0x60,0x8b,0x49,0xc0,0x67,0x12,0xcc,0x67,0x0,0x66,0x7c,0xe8,0xcc,0xc2,0x1a,
+  0x65,0x77,0x2c,0x9d,0x69,0x45,0xad,0xd5,0x11,0x6a,0xb3,0x6c,0xa1,0x34,0x6d,0x3d,
+  0x64,0x85,0xd7,0x41,0x64,0xac,0x64,0xf3,0xd0,0x91,0x7d,0xa6,0x7f,0x77,0x16,0x54,
+  0x95,0x95,0x3,0x77,0xc4,0x24,0x22,0x96,0x7a,0x7c,0x44,0xfe,0x43,0x44,0x14,0x54,
+  0x21,0x2c,0xbf,0xa,0xa1,0x14,0x21,0xcc,0x63,0xc1,0x63,0xf8,0xdf,0x2c,0x3,0x37,
+  0xed,0x36,0x36,0x9c,0xca,0x84,0x61,0xdc,0x5,0xac,0x38,0x74,0x12,0xaa,0x61,0x89,
+  0x50,0xa,0x3a,0x2,0xb6,0xdf,0x21,0x22,0xb0,0x17,0xa3,0x9c,0x3c,0xc1,0x67,0xc5,
+  0x45,0x7f,0xf3,0x4d,0x18,0xcc,0x56,0x82,0x85,0xe6,0x26,0xb8,0xd1,0xcc,0xef,0x62,
+  0x1c,0xd0,0x91,0x85,0xd5,0xfb,0xa8,0x95,0x76,0x64,0xc1,0x46,0xd7,0x87,0x57,0xd0,
+  0x8b,0x26,0x18,0x43,0x4d,0xc2,0xe,0x2a,0x33,0xad,0xa1,0x20,0xb2,0xe,0xd2,0x42,
+  0x6b,0x31,0x43,0x40,0x11,0xc3,0x86,0xd,0x36,0xfe,0x2e,0x2,0xa,0x6c,0xf6,0x68,
+  0x3d,0x23,0xe3,0xe7,0x7,0x73,0x1f,0x20,0xfa,0xde,0x63,0x44,0x12,0xf8,0x83,0x14,
+  0xe1,0xf4,0x65,0x53,0x18,0x5,0xf3,0xb8,0xef,0x56,0x39,0x6c,0xcf,0x90,0xea,0xf1,
+  0x17,0xa0,0x13,0x7d,0x9a,0xc0,0x9f,0x20,0xdf,0x27,0x63,0x79,0x58,0x12,0x54,0x43,
+  0x13,0xa0,0x12,0x1a,0x8f,0x79,0x3e,0x61,0x18,0xe7,0x42,0xf5,0x61,0xb3,0x15,0xfd,
+  0x4c,0x9d,0xd0,0x6b,0x89,0xa,0xf4,0x95,0x2d,0xb1,0xd5,0x3c,0x84,0xc6,0xe6,0x2f,
+  0xb2,0xc0,0xb3,0x92,0x2f,0xac,0xb4,0x77,0x43,0x8f,0xba,0xd1,0xfc,0x31,0x86,0x50,
+  0x16,0xb5,0x84,0xb2,0x98,0x25,0x64,0x84,0xd7,0x62,0xd1,0x78,0x13,0x48,0x8c,0x56,
+  0xc7,0xf0,0xe1,0x23,0x42,0xbf,0x8f,0x80,0xb4,0xf4,0x1a,0xfb,0x5d,0x7b,0x10,0x5b,
+  0x5c,0x83,0xc8,0xc2,0x2a,0x9e,0xfa,0x9d,0x4,0xc2,0xb,0x1f,0x53,0x16,0x1e,0xc1,
+  0xe1,0x5c,0xe,0x56,0x1d,0x39,0xb,0xbd,0xd8,0xb3,0x58,0x19,0x75,0xa,0x1c,0x22,
+  0xa0,0x7e,0xf0,0x38,0x2f,0x3,0xcb,0x42,0xe2,0xa1,0x1c,0x74,0x14,0x72,0x1,0x31,
+  0x98,0xb4,0x65,0x37,0x84,0x9c,0x77,0xa0,0xaf,0x91,0x1d,0x7a,0xc8,0x2d,0xc7,0x72,
+  0x59,0x23,0x6c,0x5b,0x17,0xc2,0xb3,0x11,0x33,0x3a,0x33,0x73,0x10,0x93,0x85,0x8d,
+  0x64,0x25,0x13,0x15,0xf,0x68,0x2f,0x74,0xc6,0x1c,0xfe,0x55,0x90,0x27,0xe5,0x15,
+  0xa7,0x5a,0x90,0xfa,0xa6,0x58,0x28,0x60,0x84,0xd9,0xfc,0x5a,0x18,0x39,0x64,0x5c,
+  0x26,0x11,0xf8,0xbd,0x4b,0x12,0x2a,0x4b,0x97,0x26,0xfb,0x9c,0xb8,0x80,0x98,0xfb,
+  0x4f,0xbe,0x52,0x9f,0x51,0x3e,0xe0,0x76,0x39,0xfc,0x73,0xcb,0x60,0x76,0x2c,0xd,
+  0xfa,0x47,0x53,0xa0,0x17,0x73,0x16,0xda,0x44,0x40,0x33,0xe2,0x4,0x96,0x87,0x1f,
+  0x23,0xe5,0x13,0xb0,0x34,0x38,0xe,0x8a,0x81,0x47,0xa0,0x10,0x18,0x8b,0xc9,0xae,
+  0x7b,0x30,0xdd,0xcd,0x7,0x3,0x8d,0x6c,0xd1,0x5d,0x41,0x13,0xf2,0xd2,0x3a,0xd8,
+  0xb1,0xe1,0x10,0xb6,0xae,0x65,0xe6,0xff,0x40,0x22,0x11,0xc0,0xeb,0x4a,0x16,0x1a,
+  0xbb,0xe8,0x2c,0xd8,0x2,0x4d,0x3a,0xd0,0x66,0xd,0xd3,0x83,0xec,0xe4,0xb5,0x90,
+  0x9b,0x62,0x4e,0xea,0x1b,0x63,0xfe,0x68,0x3,0x48,0xc,0xd3,0xc5,0x48,0xbe,0x9,
+  0xe5,0xfd,0xbb,0x1a,0xf2,0xd8,0xe2,0xe2,0x43,0xb4,0xf5,0xd,0xab,0xc2,0x72,0xa,
+  0x79,0xf6,0x39,0xf4,0xa5,0xfa,0x44,0xc0,0x89,0xf9,0x1e,0x28,0xbb,0x8,0xa6,0x49,
+  0xa9,0x58,0x75,0xf8,0x5c,0x87,0x7d,0x22,0x4f,0xf2,0xec,0xa3,0x16,0x9e,0xf4,0x49,
+  0xfd,0x38,0x28,0x1c,0x38,0xcc,0x23,0x20,0x42,0x4,0xc4,0xe9,0x64,0x1e,0x61,0xe6,
+  0x88,0x6e,0xf2,0x5a,0x18,0x2f,0x3c,0xfd,0xb5,0xae,0x8a,0x59,0xeb,0x7a,0x1d,0x77,
+  0x2a,0xde,0x3d,0x54,0xbc,0x7e,0x34,0x4a,0x78,0x63,0x8d,0xc2,0x36,0x22,0xc0,0x85,
+  0xfa,0x1c,0x7,0xcc,0x1a,0xaa,0xc3,0x2b,0x5c,0x26,0xd8,0x82,0xa6,0x98,0xc7,0xbf,
+  0x1a,0xd3,0xff,0xe4,0x60,0xd8,0x60,0x81,0x17,0xbd,0x6,0xb3,0xc6,0xfe,0x6b,0x6,
+  0xa4,0x17,0xce,0x93,0x32,0xb1,0x71,0x68,0xe3,0x79,0xff,0x93,0x7d,0x18,0xe5,0x99,
+  0x8,0xba,0x53,0x9,0x93,0xb8,0xb3,0xf0,0xcc,0x2c,0x80,0x19,0x7d,0x3a,0xd3,0x25,
+  0xfb,0x30,0xea,0x77,0xda,0x47,0xe5,0x93,0x7d,0x14,0xa9,0x95,0xca,0x1f,0x88,0xa5,
+  0x2c,0x10,0x81,0xcd,0xbb,0x31,0x75,0xb3,0x17,0x4,0xad,0x5d,0xf1,0xbb,0xa2,0xe,
+  0xfe,0x1c,0x3b,0x25,0x45,0x43,0x56,0xc7,0x42,0x76,0xc1,0xb2,0x50,0x99,0x5,0x6a,
+  0x69,0x72,0xf3,0x35,0xf2,0x64,0x24,0x39,0xf7,0xa5,0x67,0x6b,0x16,0xcd,0x9f,0xbe,
+  0xec,0xb6,0xc4,0x64,0x99,0x54,0xe1,0x11,0xf3,0x93,0xc5,0x4,0xa5,0xaf,0x88,0x9,
+  0x2c,0xb9,0x35,0x95,0x9f,0x5d,0x38,0x71,0xe8,0xdc,0xfc,0x51,0x7c,0xc2,0x59,0x7c,
+  0x83,0xf8,0xe8,0xfb,0xa2,0x2e,0x7e,0xab,0x93,0x95,0x96,0xb6,0xd8,0xe8,0xb3,0x1f,
+  0x31,0xc5,0x4f,0xbf,0x56,0x9f,0xbc,0xef,0x9f,0x5b,0xa,0xdd,0xa8,0x63,0x70,0xbf,
+  0x9c,0x87,0x75,0xc9,0x57,0x78,0xea,0x6b,0x31,0xea,0x47,0x30,0xea,0x7f,0x6d,0x1f,
+  0x79,0xf2,0xbf,0x52,0xe0,0x61,0x4c,0xb0,0xf7,0x80,0xa0,0x9d,0x3b,0x44,0xe9,0x30,
+  0xfb,0x6d,0x8e,0xc,0x86,0x8c,0x98,0x10,0x1b,0xef,0x91,0x35,0x7d,0xf7,0x86,0x78,
+  0xf1,0x2d,0xc6,0x7,0xc4,0x2d,0x75,0x3d,0x24,0xd7,0xa8,0xdb,0xcf,0x37,0x52,0xb3,
+  0x9f,0xcb,0x91,0xdb,0x20,0xbe,0x6c,0xbe,0xf5,0x54,0x71,0x7e,0x83,0xc9,0x72,0xe2,
+  0xeb,0x27,0x2f,0x14,0xd6,0x9c,0x26,0x21,0xa0,0x34,0x7d,0xc6,0x28,0x5,0xd1,0xe9,
+  0xa3,0x64,0x84,0x4,0x4,0x4,0x6,0x75,0xe9,0x7f,0x19,0x69,0xe9,0x70,0xcf,0x23,
+  0xc9,0x3c,0x2,0xdf,0x16,0xef,0x9e,0x9c,0x62,0x68,0x86,0x1d,0x85,0xcb,0x85,0x1b,
+  0xb0,0xa2,0xd6,0xb9,0xf2,0x73,0xf7,0x61,0x8a,0x97,0xec,0x43,0x9d,0x47,0x39,0xe8,
+  0x93,0x7d,0x28,0x3,0xb2,0xfb,0xa2,0x30,0x94,0xfa,0x3f,0x1f,0x67,0xd,0xf8,0xe7,
+  0x2d,0xaa,0x61,0xf5,0x1b,0x7c,0x68,0xdc,0xb8,0xa9,0xf2,0x1e,0x16,0x7,0x67,0xba,
+  0x98,0xec,0x9b,0xb9,0xd9,0x2c,0x50,0x6c,0xb3,0x49,0xd0,0x34,0xae,0x59,0xb8,0xc8,
+  0xe6,0x35,0xa1,0x53,0x6c,0x57,0xfa,0x4f,0xa6,0x3,0x6c,0xf2,0xbc,0x91,0x46,0xc2,
+  0x64,0x25,0x21,0xf5,0x59,0xd6,0xe3,0xe5,0x85,0xad,0xc6,0x2d,0x9e,0xb2,0x4e,0x40,
+  0x6c,0xb8,0xfc,0x38,0x3e,0x3e,0xbe,0x1,0x5d,0x11,0xf8,0x4d,0x41,0x41,0xe1,0x8a,
+  0x5f,0x4a,0x6,0xa2,0xa9,0x80,0xbf,0x6a,0x9d,0x94,0x1,0x6f,0xf2,0xbe,0x4a,0x50,
+  0x34,0x6c,0x4e,0x67,0xc2,0xf2,0x54,0x6,0x59,0xe8,0xc,0x38,0x11,0x27,0x3b,0xba,
+  0xf,0x53,0xbc,0xd4,0x7d,0x94,0xa8,0xfb,0x28,0x5,0x1d,0x26,0xf5,0x8f,0x40,0xc4,
+  0xcd,0xf,0xbd,0xb5,0xd7,0xa2,0xdb,0x88,0x31,0x2f,0xfb,0x8f,0x1b,0xa7,0xd2,0xd3,
+  0x6c,0xc7,0xb8,0x21,0x12,0x4b,0x26,0x6d,0x5c,0xb5,0x73,0x8a,0xb3,0xa9,0xff,0x64,
+  0xae,0xf1,0xbe,0x49,0xe,0x86,0xbe,0x42,0x36,0x7a,0x3e,0x13,0xad,0x75,0xf6,0x8c,
+  0xb7,0xd3,0xf3,0x16,0xd4,0x62,0x3b,0x8e,0x9b,0x3f,0xde,0x74,0xac,0xea,0x2c,0xdb,
+  0x31,0xa,0xd3,0x2c,0x47,0xcb,0x8,0x5b,0x8c,0x94,0x9a,0x6c,0xc2,0x2f,0x22,0xc0,
+  0x1e,0xd1,0xa5,0x7d,0xe6,0x8a,0x8a,0xe,0x53,0x51,0xd7,0xa8,0x8,0xcc,0xca,0x43,
+  0x54,0xd1,0xd7,0x4,0xc2,0xe8,0xe0,0xda,0x91,0x55,0x8,0xa5,0x80,0x48,0x2a,0xe0,
+  0x8b,0xbc,0x2e,0xa4,0x1d,0x75,0x9a,0x80,0x27,0x51,0xe7,0x49,0xec,0x68,0x9f,0x44,
+  0x42,0x91,0x48,0x2c,0xa2,0x2,0x9e,0xe2,0xe6,0x8f,0xbe,0xcb,0xd,0xd0,0x9d,0x7f,
+  0x6c,0x6b,0xaf,0x41,0x7c,0xce,0xd2,0xa7,0x2e,0x8d,0xea,0xa9,0x63,0x3d,0xbe,0xa7,
+  0x94,0x94,0xa0,0x81,0xaa,0xd5,0x38,0xae,0x69,0xf0,0xd8,0x4d,0xe6,0x1,0x63,0x36,
+  0xea,0xfa,0x8d,0x76,0x30,0xda,0x37,0xd2,0x5a,0x77,0xf,0xbf,0xbd,0x81,0xd7,0x88,
+  0x35,0xd2,0xce,0xc3,0x35,0xa7,0x5b,0xe,0x5d,0xc9,0xe6,0xe,0x51,0x93,0x70,0xfa,
+  0x53,0x4e,0xc4,0x86,0x4f,0x79,0x9a,0xf9,0xe0,0x89,0x13,0x67,0x33,0xea,0xff,0x7b,
+  0xb,0x95,0x99,0x3f,0x7f,0xac,0xbc,0xa2,0xd2,0xb,0xdf,0x94,0x4c,0x1c,0xae,0x7c,
+  0x81,0xe8,0xf2,0xfa,0x4f,0xd1,0x80,0x88,0x92,0xe7,0xd8,0x75,0xbd,0x84,0x54,0x3e,
+  0x4c,0x63,0x73,0xa,0x4c,0x4e,0x64,0x80,0x13,0x7b,0xe,0xf2,0x61,0x9,0x90,0xa,
+  0x88,0x85,0x84,0xef,0x21,0x88,0x79,0x85,0x60,0x3c,0x73,0xf2,0x6a,0xad,0x41,0xcf,
+  0xbf,0xc4,0xf1,0xc7,0xc0,0x41,0xd7,0x7,0xd,0x1b,0xa6,0xbb,0x20,0x2e,0x63,0xe8,
+  0xc,0xee,0xae,0x91,0xbd,0xb5,0x2d,0x46,0xf6,0x51,0x52,0x1a,0xb1,0x4c,0x5a,0x7b,
+  0xf8,0xf6,0xd5,0xe1,0x43,0x6d,0x4d,0x83,0x87,0xd8,0xae,0xdc,0x3d,0xc4,0x46,0xd3,
+  0x87,0xcf,0x5c,0x67,0xc7,0x60,0x2b,0xd5,0xbd,0x83,0x4c,0x65,0x76,0xe,0x34,0x52,
+  0x71,0xe8,0xaf,0x32,0xcf,0xa1,0xbf,0x9e,0xa8,0x5d,0xdf,0xa5,0xe2,0xa6,0x7d,0x34,
+  0x47,0xdb,0xf4,0x16,0x11,0x11,0xe9,0xfa,0x87,0x76,0x71,0x71,0xf1,0x1e,0x52,0x52,
+  0x52,0x6e,0xcb,0x56,0xac,0x2c,0x33,0xdb,0xea,0xd9,0x68,0xe3,0x17,0xfc,0xde,0xfe,
+  0xc0,0xa1,0xf7,0xd6,0xfe,0xa1,0x2f,0x4d,0x3d,0x7d,0x6b,0x34,0xed,0x5c,0x1e,0xcc,
+  0x59,0xa1,0x9b,0x3b,0x47,0xc7,0xb0,0x74,0xa1,0xc9,0x86,0xe7,0x73,0x8c,0xd7,0xbf,
+  0x11,0xd3,0x37,0x69,0x11,0x5a,0xa1,0xf7,0x6e,0xa4,0xbc,0xea,0xb,0x3e,0x89,0xf9,
+  0x15,0x7d,0xc7,0x4f,0xba,0xda,0x67,0xe0,0x60,0x7f,0xbe,0x81,0x3,0xd5,0xa5,0xac,
+  0xad,0xf9,0xe3,0xda,0xdb,0x7b,0x8b,0xf8,0x84,0xf2,0x89,0x70,0x7d,0xf8,0x6,0x9a,
+  0x3b,0xd,0x1e,0xa8,0x6a,0x30,0x48,0x5c,0x5c,0x66,0x20,0x57,0xd7,0x6f,0x80,0x83,
+  0xd1,0xae,0xfe,0xeb,0x38,0xdc,0x7e,0x64,0x9d,0xbe,0x44,0xa2,0xb7,0x81,0x1,0xb7,
+  0x17,0x97,0x13,0xff,0x87,0xa9,0x69,0x70,0xf,0x36,0x9b,0xdb,0x9d,0xc3,0xe2,0x74,
+  0x63,0xb1,0xb8,0x8c,0xea,0x5d,0x1f,0x5e,0x9d,0xc5,0xc1,0xa5,0x9b,0xa5,0x17,0x48,
+  0x8b,0x6a,0xe8,0x1a,0x2c,0x52,0xd2,0xd4,0x56,0x90,0x55,0x53,0x93,0x93,0x51,0x53,
+  0x63,0xcb,0x68,0x68,0xcf,0x5a,0x69,0xb6,0x41,0x88,0xbb,0x2b,0x6c,0xe4,0x1c,0x19,
+  0x65,0x21,0x9,0x36,0x7b,0xd6,0x24,0x11,0xd1,0x5,0x2,0x13,0x84,0x17,0x8f,0x11,
+  0x14,0x94,0x1a,0x3b,0x76,0x82,0xb8,0x90,0x90,0xd0,0x78,0x8e,0xa9,0xe3,0x40,0xfa,
+  0xc2,0xae,0x3b,0x45,0x37,0xd3,0x5c,0xf4,0x51,0x9,0xb,0xeb,0x2f,0xc2,0xdd,0xdf,
+  0x6f,0xb8,0x9d,0x77,0xdf,0xd1,0x36,0x36,0xbd,0x59,0x6,0x6,0xbd,0x44,0x38,0x9c,
+  0x3f,0x82,0x4d,0x73,0x7b,0x30,0x40,0xe3,0xe9,0x77,0x62,0xe,0x2b,0xbe,0x1b,0x97,
+  0x7,0x14,0xf4,0xf5,0x4b,0x67,0xf0,0xbe,0x8a,0xf9,0x32,0xba,0xaa,0xdf,0xff,0x7e,
+  0x9d,0xc3,0xe1,0xc,0x3c,0x56,0x54,0xfd,0x67,0x7b,0x7b,0xfb,0x0,0x8a,0xfe,0x4c,
+  0x94,0xd0,0xdf,0xe9,0x8d,0x18,0x74,0xbc,0x12,0x83,0xe2,0x9f,0xa1,0x1f,0x1,0xec,
+  0x45,0xd1,0x83,0x1,0xda,0x19,0xb9,0xf4,0xdc,0xb2,0xa4,0xbd,0xa7,0x41,0x44,0x7a,
+  0x2f,0x5,0x3f,0xbf,0x9e,0xa6,0xc1,0xb9,0x3d,0xc4,0x9,0x24,0xf3,0x63,0x36,0x8b,
+  0xc3,0xa8,0xc9,0x53,0xb2,0x13,0x14,0xb,0x4,0x16,0x9f,0x9f,0x77,0x0,0xa7,0xb5,
+  0xbe,0x8a,0x2f,0xef,0xff,0x6e,0x6,0x6c,0x36,0xbb,0xbb,0x8e,0x8e,0xce,0xe0,0xe3,
+  0xc7,0xf3,0x6,0xc5,0x5f,0x2c,0x1f,0x78,0xf6,0x6c,0xc9,0x80,0xe4,0xe4,0xfb,0xfd,
+  0xe3,0xe3,0xb,0xfb,0x9d,0x3f,0x7f,0xa7,0xef,0xc9,0x93,0xb9,0x7d,0xd2,0xd3,0x2b,
+  0x7b,0xf9,0x9d,0x3d,0xdb,0x93,0xcb,0xa5,0x94,0x7,0x93,0x92,0xf1,0xa4,0x24,0xf,
+  0x24,0xbe,0x51,0x92,0x1,0xf6,0x37,0x35,0x3b,0x40,0xf2,0xd4,0xfe,0xfa,0x35,0x1e,
+  0xa9,0x2f,0x48,0x7c,0x7a,0xfd,0xbb,0xb1,0x7f,0xbe,0x91,0x29,0x1a,0x2e,0x37,0xa2,
+  0x57,0x4,0xa9,0x19,0x5f,0x58,0xf8,0x47,0x6e,0x6e,0x6e,0x8f,0xf4,0xf4,0xf4,0xee,
+  0xc,0x50,0xda,0xe0,0xf7,0xbf,0x29,0x45,0x9b,0xb2,0x3a,0xe3,0x2b,0x2b,0xfc,0x67,
+  0x4b,0x74,0xa8,0xff,0xf7,0xf8,0x51,0xc5,0xff,0xb,0x29,0xf,0xf2,0x63,0x5,0x3e,
+  0xff,0x4e,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/maemo/tietoopcom/resources/contacts.png
+  0x0,0x0,0x20,0x51,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x30,0x0,0x0,0x0,0x30,0x8,0x6,0x0,0x0,0x0,0x57,0x2,0xf9,0x87,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xb1,0x8e,0x7c,0xfb,0x51,0x93,
+  0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x87,0xf,0x0,0x0,0x8c,0xf,
+  0x0,0x0,0xfd,0x52,0x0,0x0,0x81,0x40,0x0,0x0,0x7d,0x79,0x0,0x0,0xe9,0x8b,
+  0x0,0x0,0x3c,0xe5,0x0,0x0,0x19,0xcc,0x73,0x3c,0x85,0x77,0x0,0x0,0xa,0x39,
+  0x69,0x43,0x43,0x50,0x50,0x68,0x6f,0x74,0x6f,0x73,0x68,0x6f,0x70,0x20,0x49,0x43,
+  0x43,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x0,0x0,0x48,0xc7,0x9d,0x96,0x77,
+  0x54,0x54,0xd7,0x16,0x87,0xcf,0xbd,0x77,0x7a,0xa1,0xcd,0x30,0xd2,0x19,0x7a,0x93,
+  0x2e,0x30,0x80,0xf4,0x2e,0x20,0x1d,0x4,0x51,0x18,0x66,0x6,0x18,0xca,0x0,0xc3,
+  0xc,0x4d,0x6c,0x88,0xa8,0x40,0x44,0x11,0x11,0x1,0x45,0x90,0xa0,0x80,0x1,0xa3,
+  0xa1,0x48,0xac,0x88,0x62,0x21,0x28,0xa8,0x60,0xf,0x48,0x10,0x50,0x62,0x30,0x8a,
+  0xa8,0xa8,0x64,0x46,0xd6,0x4a,0x7c,0x79,0x79,0xef,0xe5,0xe5,0xf7,0xc7,0xbd,0xdf,
+  0xda,0x67,0xef,0x73,0xf7,0xd9,0x7b,0x9f,0xb5,0x2e,0x0,0x24,0x4f,0x1f,0x2e,0x2f,
+  0x5,0x96,0x2,0x20,0x99,0x27,0xe0,0x7,0x7a,0x38,0xd3,0x57,0x85,0x47,0xd0,0xb1,
+  0xfd,0x0,0x6,0x78,0x80,0x1,0xa6,0x0,0x30,0x59,0xe9,0xa9,0xbe,0x41,0xee,0xc1,
+  0x40,0x24,0x2f,0x37,0x17,0x7a,0xba,0xc8,0x9,0xfc,0x8b,0xde,0xc,0x1,0x48,0xfc,
+  0xbe,0x65,0xe8,0xe9,0x4f,0xa7,0x83,0xff,0x4f,0xd2,0xac,0x54,0xbe,0x0,0x0,0xc8,
+  0x5f,0xc4,0xe6,0x6c,0x4e,0x3a,0x4b,0xc4,0xf9,0x22,0x4e,0xca,0x14,0xa4,0x8a,0xed,
+  0x33,0x22,0xa6,0xc6,0x24,0x8a,0x19,0x46,0x89,0x99,0x2f,0x4a,0x50,0xc4,0x72,0x62,
+  0x8e,0x5b,0xe4,0xa5,0x9f,0x7d,0x16,0xd9,0x51,0xcc,0xec,0x64,0x1e,0x5b,0xc4,0xe2,
+  0x9c,0x53,0xd9,0xc9,0x6c,0x31,0xf7,0x88,0x78,0x7b,0x86,0x90,0x23,0x62,0xc4,0x47,
+  0xc4,0x5,0x19,0x5c,0x4e,0xa6,0x88,0x6f,0x8b,0x58,0x33,0x49,0x98,0xcc,0x15,0xf1,
+  0x5b,0x71,0x6c,0x32,0x87,0x99,0xe,0x0,0x8a,0x24,0xb6,0xb,0x38,0xac,0x78,0x11,
+  0x9b,0x88,0x98,0xc4,0xf,0xe,0x74,0x11,0xf1,0x72,0x0,0x70,0xa4,0xb8,0x2f,0x38,
+  0xe6,0xb,0x16,0x70,0xb2,0x4,0xe2,0x43,0xb9,0xa4,0xa4,0x66,0xf3,0xb9,0x71,0xf1,
+  0x2,0xba,0x2e,0x4b,0x8f,0x6e,0x6a,0x6d,0xcd,0xa0,0x7b,0x72,0x32,0x93,0x38,0x2,
+  0x81,0xa1,0x3f,0x93,0x95,0xc8,0xe4,0xb3,0xe9,0x2e,0x29,0xc9,0xa9,0x4c,0x5e,0x36,
+  0x0,0x8b,0x67,0xfe,0x2c,0x19,0x71,0x6d,0xe9,0xa2,0x22,0x5b,0x9a,0x5a,0x5b,0x5a,
+  0x1a,0x9a,0x19,0x99,0x7e,0x51,0xa8,0xff,0xba,0xf8,0x37,0x25,0xee,0xed,0x22,0xbd,
+  0xa,0xf8,0xdc,0x33,0x88,0xd6,0xf7,0x87,0xed,0xaf,0xfc,0x52,0xea,0x0,0x60,0xcc,
+  0x8a,0x6a,0xb3,0xeb,0xf,0x5b,0xcc,0x7e,0x0,0x3a,0xb6,0x2,0x20,0x77,0xff,0xf,
+  0x9b,0xe6,0x21,0x0,0x24,0x45,0x7d,0x6b,0xbf,0xf1,0xc5,0x79,0x68,0xe2,0x79,0x89,
+  0x17,0x8,0x52,0x6d,0x8c,0x8d,0x33,0x33,0x33,0x8d,0xb8,0x1c,0x96,0x91,0xb8,0xa0,
+  0xbf,0xeb,0x7f,0x3a,0xfc,0xd,0x7d,0xf1,0x3d,0x23,0xf1,0x76,0xbf,0x97,0x87,0xee,
+  0xca,0x89,0x65,0xa,0x93,0x4,0x74,0x71,0xdd,0x58,0x29,0x49,0x29,0x42,0x3e,0x3d,
+  0x3d,0x95,0xc9,0xe2,0xd0,0xd,0xff,0x3c,0xc4,0xff,0x38,0xf0,0xaf,0xf3,0x58,0x1a,
+  0xc8,0x89,0xe5,0xf0,0x39,0x3c,0x51,0x44,0xa8,0x68,0xca,0xb8,0xbc,0x38,0x51,0xbb,
+  0x79,0x6c,0xae,0x80,0x9b,0xc2,0xa3,0x73,0x79,0xff,0xa9,0x89,0xff,0x30,0xec,0x4f,
+  0x5a,0x9c,0x6b,0x91,0x28,0xf5,0x9f,0x0,0x35,0xca,0x8,0x48,0xdd,0xa0,0x2,0xe4,
+  0xe7,0x3e,0x80,0xa2,0x10,0x1,0x12,0x79,0x50,0xdc,0xf5,0xdf,0xfb,0xe6,0x83,0xf,
+  0x5,0xe2,0x9b,0x17,0xa6,0x3a,0xb1,0x38,0xf7,0x9f,0x5,0xfd,0xfb,0xae,0x70,0x89,
+  0xf8,0x91,0xce,0x8d,0xfb,0x1c,0xe7,0x12,0x18,0x4c,0x67,0x9,0xf9,0x19,0x8b,0x6b,
+  0xe2,0x6b,0x9,0xd0,0x80,0x0,0x24,0x1,0x15,0xc8,0x3,0x15,0xa0,0x1,0x74,0x81,
+  0x21,0x30,0x3,0x56,0xc0,0x16,0x38,0x2,0x37,0xb0,0x2,0xf8,0x81,0x60,0x10,0xe,
+  0xd6,0x2,0x16,0x88,0x7,0xc9,0x80,0xf,0x32,0x41,0x2e,0xd8,0xc,0xa,0x40,0x11,
+  0xd8,0x5,0xf6,0x82,0x4a,0x50,0x3,0xea,0x41,0x23,0x68,0x1,0x27,0x40,0x7,0x38,
+  0xd,0x2e,0x80,0xcb,0xe0,0x3a,0xb8,0x9,0xee,0x80,0x7,0x60,0x4,0x8c,0x83,0xe7,
+  0x60,0x6,0xbc,0x1,0xf3,0x10,0x4,0x61,0x21,0x32,0x44,0x81,0xe4,0x21,0x55,0x48,
+  0xb,0x32,0x80,0xcc,0x20,0x6,0x64,0xf,0xb9,0x41,0x3e,0x50,0x20,0x14,0xe,0x45,
+  0x43,0x71,0x10,0xf,0x12,0x42,0xb9,0xd0,0x16,0xa8,0x8,0x2a,0x85,0x2a,0xa1,0x5a,
+  0xa8,0x11,0xfa,0x16,0x3a,0x5,0x5d,0x80,0xae,0x42,0x3,0xd0,0x3d,0x68,0x14,0x9a,
+  0x82,0x7e,0x85,0xde,0xc3,0x8,0x4c,0x82,0xa9,0xb0,0x32,0xac,0xd,0x1b,0xc3,0xc,
+  0xd8,0x9,0xf6,0x86,0x83,0xe1,0x35,0x70,0x1c,0x9c,0x6,0xe7,0xc0,0xf9,0xf0,0x4e,
+  0xb8,0x2,0xae,0x83,0x8f,0xc1,0xed,0xf0,0x5,0xf8,0x3a,0x7c,0x7,0x1e,0x81,0x9f,
+  0xc3,0xb3,0x8,0x40,0x88,0x8,0xd,0x51,0x43,0xc,0x11,0x6,0xe2,0x82,0xf8,0x21,
+  0x11,0x48,0x2c,0xc2,0x47,0x36,0x20,0x85,0x48,0x39,0x52,0x87,0xb4,0x20,0x5d,0x48,
+  0x2f,0x72,0xb,0x19,0x41,0xa6,0x91,0x77,0x28,0xc,0x8a,0x82,0xa2,0xa3,0xc,0x51,
+  0xb6,0x28,0x4f,0x54,0x8,0x8a,0x85,0x4a,0x43,0x6d,0x40,0x15,0xa3,0x2a,0x51,0x47,
+  0x51,0xed,0xa8,0x1e,0xd4,0x2d,0xd4,0x28,0x6a,0x6,0xf5,0x9,0x4d,0x46,0x2b,0xa1,
+  0xd,0xd0,0x36,0x68,0x2f,0xf4,0x2a,0x74,0x1c,0x3a,0x13,0x5d,0x80,0x2e,0x47,0x37,
+  0xa0,0xdb,0xd0,0x97,0xd0,0x77,0xd0,0xe3,0xe8,0x37,0x18,0xc,0x86,0x86,0xd1,0xc1,
+  0x58,0x61,0x3c,0x31,0xe1,0x98,0x4,0xcc,0x3a,0x4c,0x31,0xe6,0x0,0xa6,0x15,0x73,
+  0x1e,0x33,0x80,0x19,0xc3,0xcc,0x62,0xb1,0x58,0x79,0xac,0x1,0xd6,0xe,0xeb,0x87,
+  0x65,0x62,0x5,0xd8,0x2,0xec,0x7e,0xec,0x31,0xec,0x39,0xec,0x20,0x76,0x1c,0xfb,
+  0x16,0x47,0xc4,0xa9,0xe2,0xcc,0x70,0xee,0xb8,0x8,0x1c,0xf,0x97,0x87,0x2b,0xc7,
+  0x35,0xe1,0xce,0xe2,0x6,0x71,0x13,0xb8,0x79,0xbc,0x14,0x5e,0xb,0x6f,0x83,0xf7,
+  0xc3,0xb3,0xf1,0xd9,0xf8,0x12,0x7c,0x3d,0xbe,0xb,0x7f,0x3,0x3f,0x8e,0x9f,0x27,
+  0x48,0x13,0x74,0x8,0x76,0x84,0x60,0x42,0x2,0x61,0x33,0xa1,0x82,0xd0,0x42,0xb8,
+  0x44,0x78,0x48,0x78,0x45,0x24,0x12,0xd5,0x89,0xd6,0xc4,0x0,0x22,0x97,0xb8,0x89,
+  0x58,0x41,0x3c,0x4e,0xbc,0x42,0x1c,0x25,0xbe,0x23,0xc9,0x90,0xf4,0x49,0x2e,0xa4,
+  0x48,0x92,0x90,0xb4,0x93,0x74,0x84,0x74,0x9e,0x74,0x8f,0xf4,0x8a,0x4c,0x26,0x6b,
+  0x93,0x1d,0xc9,0x11,0x64,0x1,0x79,0x27,0xb9,0x91,0x7c,0x91,0xfc,0x98,0xfc,0x56,
+  0x82,0x22,0x61,0x24,0xe1,0x25,0xc1,0x96,0xd8,0x28,0x51,0x25,0xd1,0x2e,0x31,0x28,
+  0xf1,0x42,0x12,0x2f,0xa9,0x25,0xe9,0x24,0xb9,0x56,0x32,0x47,0xb2,0x5c,0xf2,0xa4,
+  0xe4,0xd,0xc9,0x69,0x29,0xbc,0x94,0xb6,0x94,0x8b,0x14,0x53,0x6a,0x83,0x54,0x95,
+  0xd4,0x29,0xa9,0x61,0xa9,0x59,0x69,0x8a,0xb4,0xa9,0xb4,0x9f,0x74,0xb2,0x74,0xb1,
+  0x74,0x93,0xf4,0x55,0xe9,0x49,0x19,0xac,0x8c,0xb6,0x8c,0x9b,0xc,0x5b,0x26,0x5f,
+  0xe6,0xb0,0xcc,0x45,0x99,0x31,0xa,0x42,0xd1,0xa0,0xb8,0x50,0x58,0x94,0x2d,0x94,
+  0x7a,0xca,0x25,0xca,0x38,0x15,0x43,0xd5,0xa1,0x7a,0x51,0x13,0xa8,0x45,0xd4,0x6f,
+  0xa8,0xfd,0xd4,0x19,0x59,0x19,0xd9,0x65,0xb2,0xa1,0xb2,0x59,0xb2,0x55,0xb2,0x67,
+  0x64,0x47,0x68,0x8,0x4d,0x9b,0xe6,0x45,0x4b,0xa2,0x95,0xd0,0x4e,0xd0,0x86,0x68,
+  0xef,0x97,0x28,0x2f,0x71,0x5a,0xc2,0x59,0xb2,0x63,0x49,0xcb,0x92,0xc1,0x25,0x73,
+  0x72,0x8a,0x72,0x8e,0x72,0x1c,0xb9,0x42,0xb9,0x56,0xb9,0x3b,0x72,0xef,0xe5,0xe9,
+  0xf2,0x6e,0xf2,0x89,0xf2,0xbb,0xe5,0x3b,0xe4,0x1f,0x29,0xa0,0x14,0xf4,0x15,0x2,
+  0x14,0x32,0x15,0xe,0x2a,0x5c,0x52,0x98,0x56,0xa4,0x2a,0xda,0x2a,0xb2,0x14,0xb,
+  0x15,0x4f,0x28,0xde,0x57,0x82,0x95,0xf4,0x95,0x2,0x95,0xd6,0x29,0x1d,0x56,0xea,
+  0x53,0x9a,0x55,0x56,0x51,0xf6,0x50,0x4e,0x55,0xde,0xaf,0x7c,0x51,0x79,0x5a,0x85,
+  0xa6,0xe2,0xa8,0x92,0xa0,0x52,0xa6,0x72,0x56,0x65,0x4a,0x95,0xa2,0x6a,0xaf,0xca,
+  0x55,0x2d,0x53,0x3d,0xa7,0xfa,0x8c,0x2e,0x4b,0x77,0xa2,0x27,0xd1,0x2b,0xe8,0x3d,
+  0xf4,0x19,0x35,0x25,0x35,0x4f,0x35,0xa1,0x5a,0xad,0x5a,0xbf,0xda,0xbc,0xba,0x8e,
+  0x7a,0x88,0x7a,0x9e,0x7a,0xab,0xfa,0x23,0xd,0x82,0x6,0x43,0x23,0x56,0xa3,0x4c,
+  0xa3,0x5b,0x63,0x46,0x53,0x55,0xd3,0x57,0x33,0x57,0xb3,0x59,0xf3,0xbe,0x16,0x5e,
+  0x8b,0xa1,0x15,0xaf,0xb5,0x4f,0xab,0x57,0x6b,0x4e,0x5b,0x47,0x3b,0x4c,0x7b,0x9b,
+  0x76,0x87,0xf6,0xa4,0x8e,0x9c,0x8e,0x97,0x4e,0x8e,0x4e,0xb3,0xce,0x43,0x5d,0xb2,
+  0xae,0x83,0x6e,0x9a,0x6e,0x9d,0xee,0x6d,0x3d,0x8c,0x1e,0x43,0x2f,0x51,0xef,0x80,
+  0xde,0x4d,0x7d,0x58,0xdf,0x42,0x3f,0x5e,0xbf,0x4a,0xff,0x86,0x1,0x6c,0x60,0x69,
+  0xc0,0x35,0x38,0x60,0x30,0xb0,0x14,0xbd,0xd4,0x7a,0x29,0x6f,0x69,0xdd,0xd2,0x61,
+  0x43,0x92,0xa1,0x93,0x61,0x86,0x61,0xb3,0xe1,0xa8,0x11,0xcd,0xc8,0xc7,0x28,0xcf,
+  0xa8,0xc3,0xe8,0x85,0xb1,0xa6,0x71,0x84,0xf1,0x6e,0xe3,0x5e,0xe3,0x4f,0x26,0x16,
+  0x26,0x49,0x26,0xf5,0x26,0xf,0x4c,0x65,0x4c,0x57,0x98,0xe6,0x99,0x76,0x99,0xfe,
+  0x6a,0xa6,0x6f,0xc6,0x32,0xab,0x32,0xbb,0x6d,0x4e,0x36,0x77,0x37,0xdf,0x68,0xde,
+  0x69,0xfe,0x72,0x99,0xc1,0x32,0xce,0xb2,0x83,0xcb,0xee,0x5a,0x50,0x2c,0x7c,0x2d,
+  0xb6,0x59,0x74,0x5b,0x7c,0xb4,0xb4,0xb2,0xe4,0x5b,0xb6,0x58,0x4e,0x59,0x69,0x5a,
+  0x45,0x5b,0x55,0x5b,0xd,0x33,0xa8,0xc,0x7f,0x46,0x31,0xe3,0x8a,0x35,0xda,0xda,
+  0xd9,0x7a,0xa3,0xf5,0x69,0xeb,0x77,0x36,0x96,0x36,0x2,0x9b,0x13,0x36,0xbf,0xd8,
+  0x1a,0xda,0x26,0xda,0x36,0xd9,0x4e,0x2e,0xd7,0x59,0xce,0x59,0x5e,0xbf,0x7c,0xcc,
+  0x4e,0xdd,0x8e,0x69,0x57,0x6b,0x37,0x62,0x4f,0xb7,0x8f,0xb6,0x3f,0x64,0x3f,0xe2,
+  0xa0,0xe6,0xc0,0x74,0xa8,0x73,0x78,0xe2,0xa8,0xe1,0xc8,0x76,0x6c,0x70,0x9c,0x70,
+  0xd2,0x73,0x4a,0x70,0x3a,0xe6,0xf4,0xc2,0xd9,0xc4,0x99,0xef,0xdc,0xe6,0x3c,0xe7,
+  0x62,0xe3,0xb2,0xde,0xe5,0xbc,0x2b,0xe2,0xea,0xe1,0x5a,0xe8,0xda,0xef,0x26,0xe3,
+  0x16,0xe2,0x56,0xe9,0xf6,0xd8,0x5d,0xdd,0x3d,0xce,0xbd,0xd9,0x7d,0xc6,0xc3,0xc2,
+  0x63,0x9d,0xc7,0x79,0x4f,0xb4,0xa7,0xb7,0xe7,0x6e,0xcf,0x61,0x2f,0x65,0x2f,0x96,
+  0x57,0xa3,0xd7,0xcc,0xa,0xab,0x15,0xeb,0x57,0xf4,0x78,0x93,0xbc,0x83,0xbc,0x2b,
+  0xbd,0x9f,0xf8,0xe8,0xfb,0xf0,0x7d,0xba,0x7c,0x61,0xdf,0x15,0xbe,0x7b,0x7c,0x1f,
+  0xae,0xd4,0x5a,0xc9,0x5b,0xd9,0xe1,0x7,0xfc,0xbc,0xfc,0xf6,0xf8,0x3d,0xf2,0xd7,
+  0xf1,0x4f,0xf3,0xff,0x3e,0x0,0x13,0xe0,0x1f,0x50,0x15,0xf0,0x34,0xd0,0x34,0x30,
+  0x37,0xb0,0x37,0x88,0x12,0x14,0x15,0xd4,0x14,0xf4,0x26,0xd8,0x39,0xb8,0x24,0xf8,
+  0x41,0x88,0x6e,0x88,0x30,0xa4,0x3b,0x54,0x32,0x34,0x32,0xb4,0x31,0x74,0x2e,0xcc,
+  0x35,0xac,0x34,0x6c,0x64,0x95,0xf1,0xaa,0xf5,0xab,0xae,0x87,0x2b,0x84,0x73,0xc3,
+  0x3b,0x23,0xb0,0x11,0xa1,0x11,0xd,0x11,0xb3,0xab,0xdd,0x56,0xef,0x5d,0x3d,0x1e,
+  0x69,0x11,0x59,0x10,0x39,0xb4,0x46,0x67,0x4d,0xd6,0x9a,0xab,0x6b,0x15,0xd6,0x26,
+  0xad,0x3d,0x13,0x25,0x19,0xc5,0x8c,0x3a,0x19,0x8d,0x8e,0xe,0x8b,0x6e,0x8a,0xfe,
+  0xc0,0xf4,0x63,0xd6,0x31,0x67,0x63,0xbc,0x62,0xaa,0x63,0x66,0x58,0x2e,0xac,0x7d,
+  0xac,0xe7,0x6c,0x47,0x76,0x19,0x7b,0x8a,0x63,0xc7,0x29,0xe5,0x4c,0xc4,0xda,0xc5,
+  0x96,0xc6,0x4e,0xc6,0xd9,0xc5,0xed,0x89,0x9b,0x8a,0x77,0x88,0x2f,0x8f,0x9f,0xe6,
+  0xba,0x70,0x2b,0xb9,0x2f,0x13,0x3c,0x13,0x6a,0x12,0xe6,0x12,0xfd,0x12,0x8f,0x24,
+  0x2e,0x24,0x85,0x25,0xb5,0x26,0xe3,0x92,0xa3,0x93,0x4f,0xf1,0x64,0x78,0x89,0xbc,
+  0x9e,0x14,0x95,0x94,0xac,0x94,0x81,0x54,0x83,0xd4,0x82,0xd4,0x91,0x34,0x9b,0xb4,
+  0xbd,0x69,0x33,0x7c,0x6f,0x7e,0x43,0x3a,0x94,0xbe,0x26,0xbd,0x53,0x40,0x15,0xfd,
+  0x4c,0xf5,0x9,0x75,0x85,0x5b,0x85,0xa3,0x19,0xf6,0x19,0x55,0x19,0x6f,0x33,0x43,
+  0x33,0x4f,0x66,0x49,0x67,0xf1,0xb2,0xfa,0xb2,0xf5,0xb3,0x77,0x64,0x4f,0xe4,0xb8,
+  0xe7,0x7c,0xbd,0xe,0xb5,0x8e,0xb5,0xae,0x3b,0x57,0x2d,0x77,0x73,0xee,0xe8,0x7a,
+  0xa7,0xf5,0xb5,0x1b,0xa0,0xd,0x31,0x1b,0xba,0x37,0x6a,0x6c,0xcc,0xdf,0x38,0xbe,
+  0xc9,0x63,0xd3,0xd1,0xcd,0x84,0xcd,0x89,0x9b,0x7f,0xc8,0x33,0xc9,0x2b,0xcd,0x7b,
+  0xbd,0x25,0x6c,0x4b,0x57,0xbe,0x72,0xfe,0xa6,0xfc,0xb1,0xad,0x1e,0x5b,0x9b,0xb,
+  0x24,0xa,0xf8,0x5,0xc3,0xdb,0x6c,0xb7,0xd5,0x6c,0x47,0x6d,0xe7,0x6e,0xef,0xdf,
+  0x61,0xbe,0x63,0xff,0x8e,0x4f,0x85,0xec,0xc2,0x6b,0x45,0x26,0x45,0xe5,0x45,0x1f,
+  0x8a,0x59,0xc5,0xd7,0xbe,0x32,0xfd,0xaa,0xe2,0xab,0x85,0x9d,0xb1,0x3b,0xfb,0x4b,
+  0x2c,0x4b,0xe,0xee,0xc2,0xec,0xe2,0xed,0x1a,0xda,0xed,0xb0,0xfb,0x68,0xa9,0x74,
+  0x69,0x4e,0xe9,0xd8,0x1e,0xdf,0x3d,0xed,0x65,0xf4,0xb2,0xc2,0xb2,0xd7,0x7b,0xa3,
+  0xf6,0x5e,0x2d,0x5f,0x56,0x5e,0xb3,0x8f,0xb0,0x4f,0xb8,0x6f,0xa4,0xc2,0xa7,0xa2,
+  0x73,0xbf,0xe6,0xfe,0x5d,0xfb,0x3f,0x54,0xc6,0x57,0xde,0xa9,0x72,0xae,0x6a,0xad,
+  0x56,0xaa,0xde,0x51,0x3d,0x77,0x80,0x7d,0x60,0xf0,0xa0,0xe3,0xc1,0x96,0x1a,0xe5,
+  0x9a,0xa2,0x9a,0xf7,0x87,0xb8,0x87,0xee,0xd6,0x7a,0xd4,0xb6,0xd7,0x69,0xd7,0x95,
+  0x1f,0xc6,0x1c,0xce,0x38,0xfc,0xb4,0x3e,0xb4,0xbe,0xf7,0x6b,0xc6,0xd7,0x8d,0xd,
+  0xa,0xd,0x45,0xd,0x1f,0x8f,0xf0,0x8e,0x8c,0x1c,0xd,0x3c,0xda,0xd3,0x68,0xd5,
+  0xd8,0xd8,0xa4,0xd4,0x54,0xd2,0xc,0x37,0xb,0x9b,0xa7,0x8e,0x45,0x1e,0xbb,0xf9,
+  0x8d,0xeb,0x37,0x9d,0x2d,0x86,0x2d,0xb5,0xad,0xb4,0xd6,0xa2,0xe3,0xe0,0xb8,0xf0,
+  0xf8,0xb3,0x6f,0xa3,0xbf,0x1d,0x3a,0xe1,0x7d,0xa2,0xfb,0x24,0xe3,0x64,0xcb,0x77,
+  0x5a,0xdf,0x55,0xb7,0x51,0xda,0xa,0xdb,0xa1,0xf6,0xec,0xf6,0x99,0x8e,0xf8,0x8e,
+  0x91,0xce,0xf0,0xce,0x81,0x53,0x2b,0x4e,0x75,0x77,0xd9,0x76,0xb5,0x7d,0x6f,0xf4,
+  0xfd,0x91,0xd3,0x6a,0xa7,0xab,0xce,0xc8,0x9e,0x29,0x39,0x4b,0x38,0x9b,0x7f,0x76,
+  0xe1,0x5c,0xce,0xb9,0xd9,0xf3,0xa9,0xe7,0xa7,0x2f,0xc4,0x5d,0x18,0xeb,0x8e,0xea,
+  0x7e,0x70,0x71,0xd5,0xc5,0xdb,0x3d,0x1,0x3d,0xfd,0x97,0xbc,0x2f,0x5d,0xb9,0xec,
+  0x7e,0xf9,0x62,0xaf,0x53,0xef,0xb9,0x2b,0x76,0x57,0x4e,0x5f,0xb5,0xb9,0x7a,0xea,
+  0x1a,0xe3,0x5a,0xc7,0x75,0xcb,0xeb,0xed,0x7d,0x16,0x7d,0x6d,0x3f,0x58,0xfc,0xd0,
+  0xd6,0x6f,0xd9,0xdf,0x7e,0xc3,0xea,0x46,0xe7,0x4d,0xeb,0x9b,0x5d,0x3,0xcb,0x7,
+  0xce,0xe,0x3a,0xc,0x5e,0xb8,0xe5,0x7a,0xeb,0xf2,0x6d,0xaf,0xdb,0xd7,0xef,0xac,
+  0xbc,0x33,0x30,0x14,0x32,0x74,0x77,0x38,0x72,0x78,0xe4,0x2e,0xfb,0xee,0xe4,0xbd,
+  0xa4,0x7b,0x2f,0xef,0x67,0xdc,0x9f,0x7f,0xb0,0xe9,0x21,0xfa,0x61,0xe1,0x23,0xa9,
+  0x47,0xe5,0x8f,0x95,0x1e,0xd7,0xfd,0xa8,0xf7,0x63,0xeb,0x88,0xe5,0xc8,0x99,0x51,
+  0xd7,0xd1,0xbe,0x27,0x41,0x4f,0x1e,0x8c,0xb1,0xc6,0x9e,0xff,0x94,0xfe,0xd3,0x87,
+  0xf1,0xfc,0xa7,0xe4,0xa7,0xe5,0x13,0xaa,0x13,0x8d,0x93,0x66,0x93,0xa7,0xa7,0xdc,
+  0xa7,0x6e,0x3e,0x5b,0xfd,0x6c,0xfc,0x79,0xea,0xf3,0xf9,0xe9,0x82,0x9f,0xa5,0x7f,
+  0xae,0x7e,0xa1,0xfb,0xe2,0xbb,0x5f,0x1c,0x7f,0xe9,0x9b,0x59,0x35,0x33,0xfe,0x92,
+  0xff,0x72,0xe1,0xd7,0xe2,0x57,0xf2,0xaf,0x8e,0xbc,0x5e,0xf6,0xba,0x7b,0xd6,0x7f,
+  0xf6,0xf1,0x9b,0xe4,0x37,0xf3,0x73,0x85,0x6f,0xe5,0xdf,0x1e,0x7d,0xc7,0x78,0xd7,
+  0xfb,0x3e,0xec,0xfd,0xc4,0x7c,0xe6,0x7,0xec,0x87,0x8a,0x8f,0x7a,0x1f,0xbb,0x3e,
+  0x79,0x7f,0x7a,0xb8,0x90,0xbc,0xb0,0xf0,0x1b,0xf7,0x84,0xf3,0xfb,0xe2,0xe6,0x1d,
+  0xc2,0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x12,0x0,0x0,0xb,
+  0x12,0x1,0xd2,0xdd,0x7e,0xfc,0x0,0x0,0x15,0x82,0x49,0x44,0x41,0x54,0x68,0x43,
+  0xed,0x59,0x67,0x54,0x55,0xd7,0xd6,0xbd,0x22,0x8a,0x88,0x5,0x10,0x94,0x2a,0xa2,
+  0x28,0x4,0x11,0xa4,0x88,0xa2,0x20,0x4d,0xaa,0x48,0x95,0xde,0x7b,0x47,0xfa,0xa5,
+  0x48,0x6f,0x52,0xa5,0xf7,0xde,0x7b,0x97,0xde,0x41,0x91,0x26,0xb1,0x45,0x51,0xc1,
+  0x1a,0x13,0x6b,0x62,0x6c,0x51,0x93,0xcc,0x6f,0x43,0xf2,0xca,0xc8,0x78,0xef,0xc5,
+  0xbc,0xf7,0xfd,0xcc,0x19,0x63,0x8e,0x73,0xcb,0x3e,0x77,0xaf,0x39,0xf7,0x5a,0x6b,
+  0xaf,0xb5,0x2f,0x85,0xf2,0xd7,0xf5,0x97,0x2,0x7f,0x29,0xf0,0x97,0x2,0x7f,0x29,
+  0xf0,0x97,0x2,0x7f,0xa8,0x0,0x17,0xfd,0x16,0x7e,0x57,0xe,0xfe,0x83,0xd4,0x1d,
+  0x7c,0x92,0xfe,0x5c,0x14,0x41,0x97,0xd,0x7f,0xf8,0xc8,0xe7,0xd,0xa0,0xd9,0xbc,
+  0xdd,0x84,0x49,0x5e,0x3d,0x98,0x47,0xdb,0xfc,0xcc,0x17,0x27,0x4d,0xcf,0xf2,0x1f,
+  0xd3,0x8c,0xe7,0xe0,0xa3,0xa4,0xd1,0x7d,0xde,0xe3,0x9f,0x31,0xca,0xd8,0x38,0x89,
+  0xc5,0xde,0x39,0xef,0xb0,0x93,0x7b,0x9e,0xb9,0xa3,0x5b,0xa1,0xb,0x81,0x95,0xbd,
+  0x7b,0x9e,0xac,0xa5,0x4b,0x9,0xdb,0x67,0x3c,0xfe,0x6f,0x87,0x88,0x6b,0x84,0xad,
+  0xb7,0x74,0x48,0x17,0xf0,0xf1,0x29,0x39,0x1e,0x1a,0x5e,0xe1,0x18,0x1a,0x59,0x15,
+  0x1c,0x1c,0x52,0x16,0xe0,0x19,0x50,0x62,0xee,0xe0,0x9a,0x2b,0x61,0x69,0x59,0xc2,
+  0xf8,0xbf,0xfc,0x3e,0x45,0x56,0x36,0x8c,0xd1,0xc6,0x21,0xf3,0xe8,0x99,0x84,0x7a,
+  0xcf,0xca,0xf2,0xfe,0xdc,0x96,0xfa,0xf1,0x8e,0xda,0xb2,0xe1,0xc1,0xf2,0xbc,0xde,
+  0x73,0x69,0xf1,0x8d,0xf9,0x41,0x41,0x25,0x4e,0x26,0x76,0x67,0xf7,0x6f,0x53,0xf2,
+  0x61,0xf8,0x93,0x13,0xad,0xe6,0x17,0xf5,0xe3,0x70,0xf5,0xce,0x57,0x49,0xcf,0x6c,
+  0xf,0x6b,0x6e,0x38,0x5f,0x75,0xae,0xed,0x7c,0x7f,0x5b,0xd3,0xc8,0x4c,0x55,0x65,
+  0xf7,0xc5,0x9c,0xbc,0x96,0x8e,0xd0,0xe8,0xa2,0x64,0x57,0xef,0xc,0x4d,0x7d,0xfd,
+  0x4c,0x22,0x52,0xfd,0xea,0x3f,0xf9,0xfb,0xcb,0xc3,0xf5,0x57,0xbb,0x79,0xe6,0xcb,
+  0x44,0xc5,0xd4,0xe6,0x54,0x54,0xc,0x2e,0x4c,0x8e,0x5d,0xfd,0xee,0xf6,0xd5,0xa5,
+  0x37,0xd7,0xa7,0x6e,0xbe,0x9b,0xec,0xbe,0xf4,0xb6,0x21,0xbf,0xf7,0x45,0x72,0x74,
+  0xed,0x79,0x4f,0x8f,0xec,0x10,0x3,0x9b,0x44,0xa1,0xdf,0x4d,0x40,0x23,0x2e,0xee,
+  0xb0,0x46,0x55,0xd5,0x9d,0x4e,0x55,0x35,0x8d,0x4e,0x5c,0x3c,0x6f,0xd,0xf9,0x9e,
+  0xe6,0x6f,0x63,0x98,0x76,0x3a,0x6c,0x36,0x30,0x4e,0x3c,0x11,0x1b,0xdf,0x50,0xd8,
+  0xd2,0x7c,0xfe,0xd6,0xe5,0xb9,0xc5,0x1f,0xee,0x7c,0x75,0xf7,0xdd,0xc2,0xe5,0x85,
+  0xf,0x17,0xc7,0xa7,0x3e,0xb4,0xb6,0xf5,0xbf,0x49,0x4a,0x2f,0x7b,0xe4,0x17,0x92,
+  0x55,0x6a,0xeb,0x90,0x76,0x42,0x51,0x31,0x76,0xcb,0x9f,0x24,0x20,0xbb,0x4e,0xf9,
+  0x38,0x55,0x24,0x2a,0xae,0x26,0xbc,0xa1,0x71,0xec,0xe6,0x95,0xcb,0xf7,0xf1,0xdd,
+  0x93,0xd7,0x78,0xf7,0xf2,0x2d,0x5e,0x3e,0x78,0x8e,0xfb,0xf3,0xf7,0x31,0xd5,0x31,
+  0x8f,0xaa,0xf4,0xae,0xf,0x49,0x41,0x15,0xa3,0xfe,0x1e,0xb9,0x96,0xb2,0x1a,0x61,
+  0x2c,0xcb,0x93,0x6c,0xd9,0x62,0xb3,0x51,0x4b,0x3f,0x7a,0xbf,0x9d,0x63,0x8e,0x96,
+  0xa7,0x77,0x89,0xe9,0x29,0xdf,0x72,0xb,0x47,0x97,0x1c,0x2d,0x3,0xb3,0x64,0x11,
+  0xa,0x45,0x63,0xfd,0xf2,0x18,0xb3,0x93,0x89,0xbc,0x81,0xc1,0x65,0x67,0xca,0xcb,
+  0x87,0xee,0x5d,0x9e,0xbf,0x8b,0xf7,0x3f,0x7c,0xc4,0x87,0xd7,0x3f,0xe2,0x87,0xa7,
+  0x2f,0x71,0xff,0xd6,0x12,0xa6,0x26,0x67,0x50,0x5e,0xd3,0x84,0xf0,0x84,0xec,0xfb,
+  0x4e,0x3e,0x89,0xe9,0x26,0x2e,0xd1,0xfb,0xff,0xc,0x81,0x55,0x12,0x32,0xde,0xdc,
+  0x16,0x56,0xb1,0x6e,0x59,0xb9,0x6d,0x63,0x97,0xbf,0xbc,0xf3,0xfa,0xc3,0xbb,0x4f,
+  0xf8,0xf0,0xf6,0x3,0xbe,0x7f,0xf6,0x3d,0xbe,0xb9,0xfb,0x18,0x8b,0xf3,0x77,0x70,
+  0xa5,0xef,0xa,0x46,0xcb,0xce,0xa3,0x24,0xb2,0xe1,0x49,0x88,0x73,0x56,0x89,0x96,
+  0x6e,0x88,0x9e,0x86,0x41,0xb4,0x98,0x6f,0x70,0xb5,0x6a,0x70,0x44,0x5d,0x68,0x64,
+  0x6c,0x73,0x63,0x6c,0x42,0xfb,0x60,0xd4,0x99,0xd6,0xb1,0xd0,0xa8,0x86,0x86,0xc0,
+  0xb0,0xda,0xd3,0xce,0x9e,0xb9,0xca,0xf2,0x2a,0x7e,0xfc,0xfe,0x81,0x39,0x6,0xb9,
+  0xb9,0x2d,0x83,0x23,0x43,0xf3,0xbf,0x3c,0x7f,0xf2,0x3d,0x7e,0xfa,0xf1,0x3,0xde,
+  0xbf,0x7a,0x8b,0x17,0x8f,0x9f,0xe3,0xde,0xcd,0x25,0x4c,0x4f,0x4e,0xa1,0xa1,0xb5,
+  0x19,0xd1,0xa9,0xe9,0x70,0xf0,0xb,0x9b,0x35,0xb0,0xf5,0xb7,0x96,0x94,0x74,0xdf,
+  0xa4,0xaf,0xaf,0xff,0x39,0xae,0x24,0xbb,0xce,0xc4,0x32,0xe6,0x8,0x35,0x28,0xaf,
+  0xb8,0xba,0xba,0xef,0xe5,0xc3,0xfb,0x4f,0xb1,0x7c,0x7d,0xfa,0xf1,0x23,0x5e,0x12,
+  0x85,0xbe,0x5e,0x7a,0x84,0x3b,0x97,0x6e,0xe1,0xda,0xc0,0x15,0xcc,0xd6,0x4c,0xa3,
+  0x3a,0xaa,0xf1,0x67,0x7f,0x9b,0xc4,0xc5,0x93,0x7a,0xc1,0x9d,0xe,0xee,0x99,0x85,
+  0xa9,0xd9,0xfd,0x75,0x15,0xf5,0xd3,0xb3,0x35,0xcd,0xb3,0x4f,0x2b,0xeb,0xa6,0xde,
+  0x14,0x57,0x9d,0x7f,0x9f,0x5f,0x36,0xfa,0x24,0xb3,0x60,0xe0,0x52,0x44,0x7c,0x7d,
+  0x93,0x9d,0x47,0x6a,0x76,0x40,0x58,0x6e,0x73,0x6d,0x7d,0xcf,0xe3,0x3b,0xb,0xf7,
+  0xf1,0xee,0x87,0x37,0xf8,0xf8,0xee,0x3d,0xde,0xbc,0xfc,0x1,0xcf,0x1e,0x3d,0xc3,
+  0xd2,0x57,0x4b,0x98,0x59,0x26,0xd0,0xd6,0x80,0xe8,0xf4,0x44,0x98,0xb9,0xbb,0xbd,
+  0x54,0x33,0xb0,0x2e,0x91,0x91,0xb7,0x51,0x26,0x6e,0xb9,0xb2,0xca,0x7f,0x70,0xed,
+  0x63,0x3a,0x75,0xea,0xac,0x61,0x46,0x66,0xc3,0x60,0x5f,0xef,0x45,0x3c,0x79,0xfc,
+  0x12,0x9f,0xde,0x7f,0xc0,0x5b,0x32,0xd1,0xb3,0x6f,0x9e,0xe1,0xe1,0xad,0x7,0x58,
+  0x98,0xb9,0x89,0x2f,0xbb,0x2f,0xe1,0x62,0xe9,0x4,0xea,0x22,0x9a,0x10,0x68,0x97,
+  0x2,0x7b,0x9b,0x33,0x3f,0x47,0xc4,0xd6,0xbe,0x6d,0x6c,0x9b,0x7f,0x37,0x3e,0x75,
+  0xef,0xe7,0x99,0xcb,0xdf,0x60,0xec,0xe2,0x7d,0xf4,0x8d,0xde,0x46,0x7b,0xff,0x75,
+  0xd4,0xb4,0xce,0x20,0x25,0xa7,0xf3,0x17,0x9f,0xd3,0x5,0xef,0x82,0xa3,0xa,0xde,
+  0x36,0xb7,0xf4,0x7d,0xba,0x7b,0x6b,0x11,0xdf,0x3f,0x7d,0x81,0xd7,0xcf,0xbf,0xc7,
+  0x4b,0xa2,0xfe,0x37,0x4b,0x8f,0x71,0xf3,0xf2,0x4d,0x4c,0x8c,0x4f,0xa0,0xbc,0xbe,
+  0x1c,0xfe,0xb1,0x1,0xd0,0xb4,0x34,0xf8,0x78,0x54,0x4d,0xe7,0xf2,0x21,0x69,0xa3,
+  0x30,0x61,0x61,0xc3,0x3d,0x7f,0x64,0xfd,0x2a,0xa,0x85,0x77,0x5b,0x50,0x50,0x86,
+  0x5d,0x4d,0x75,0xf7,0xf4,0xfc,0xec,0x4d,0x3c,0x7b,0xfc,0x2,0xaf,0x9e,0x7d,0x87,
+  0xe7,0xdf,0x3e,0xc7,0xe3,0x7b,0x8f,0x71,0xf7,0xda,0x12,0xae,0x9f,0xbf,0x86,0x99,
+  0x96,0x29,0x8c,0xe7,0xe,0xa1,0x3e,0xac,0x19,0x67,0xbc,0x8b,0x11,0x1b,0x53,0x87,
+  0xc6,0xb6,0x59,0x5c,0xbd,0x49,0xdc,0xe0,0xd1,0x5b,0x2c,0x3e,0x78,0x8d,0xf9,0xeb,
+  0x4f,0x31,0x3e,0xfd,0x10,0xfd,0xe3,0x8b,0x38,0x37,0x74,0x13,0x15,0x8d,0x17,0x11,
+  0x97,0xda,0x82,0xb8,0x94,0x5a,0x34,0x34,0xf4,0xe3,0xea,0xdc,0x35,0x3c,0xba,0xfd,
+  0x0,0x4f,0xef,0x7d,0x8b,0xc7,0x77,0x1e,0x61,0xf1,0xda,0x1d,0xcc,0x5d,0x9c,0x43,
+  0x4f,0x7f,0xf,0xb2,0xcb,0xb3,0xe1,0x1c,0xe2,0xc,0x5,0x3,0x55,0x88,0xcb,0x2a,
+  0x7d,0x2d,0x2a,0xa6,0x91,0x2d,0xb4,0xe7,0x84,0xf0,0x67,0x10,0x60,0x65,0xf3,0xf7,
+  0x4f,0x76,0xac,0xae,0x68,0xfb,0x72,0x7e,0xea,0x2b,0x7c,0x7d,0xe7,0x31,0x1e,0x2f,
+  0x7e,0x8d,0x87,0xb7,0x1f,0x62,0xe9,0xda,0x22,0x6e,0x4e,0xdd,0xc0,0x7c,0xef,0x25,
+  0x4c,0x94,0x8f,0xa1,0x33,0xbe,0x1d,0xa5,0x41,0x75,0x48,0xb,0xaf,0x47,0x59,0xf9,
+  0x8,0xa6,0x49,0x70,0x3f,0x79,0xfe,0xe,0xcf,0x5e,0xfe,0x88,0xfb,0x5f,0xbf,0xc2,
+  0x95,0xaf,0x9e,0x90,0x55,0xb8,0x87,0xee,0xa1,0x5,0xb4,0xf7,0x5d,0x45,0x4d,0xcb,
+  0x45,0x64,0x14,0x76,0x23,0x31,0xad,0x11,0x39,0xb9,0xad,0xe8,0x68,0x19,0xc2,0xec,
+  0xf9,0x4b,0x58,0xb8,0x7c,0x3,0xd7,0xe7,0xae,0x62,0xe6,0xfc,0x34,0xfa,0xfa,0xfb,
+  0x50,0xd9,0x5c,0x8d,0xe8,0xac,0x18,0x18,0x9d,0x32,0x86,0x84,0x8a,0xd4,0xcf,0x5f,
+  0x48,0x1c,0xbc,0x2d,0x28,0xa4,0x90,0xb0,0x77,0xf7,0xb1,0x2f,0xfe,0x88,0x0,0xf9,
+  0x7e,0x13,0xb3,0xab,0x53,0xb8,0x65,0x7a,0x52,0xf1,0x6c,0x5f,0xcb,0x18,0xbe,0x9a,
+  0xba,0x49,0x82,0xf6,0x36,0x6e,0xcd,0x2c,0xe0,0xda,0xf8,0x55,0xcc,0xf7,0x10,0xd7,
+  0xa9,0xbb,0x80,0x9e,0xf4,0x1e,0x14,0x53,0x2b,0x90,0xe2,0x53,0x8a,0xec,0x94,0xe,
+  0x9c,0x23,0x6,0xde,0xb8,0xf3,0x1c,0xdf,0x7d,0xff,0x1,0xaf,0x5e,0x7f,0xc4,0x37,
+  0x4f,0xdf,0xe0,0xab,0x85,0xa7,0x98,0x98,0x26,0x4,0x86,0x6f,0xa2,0xb5,0xf7,0xa,
+  0xea,0x3b,0xa7,0x51,0x5c,0x37,0x8c,0xc4,0x8c,0x26,0x9c,0x8e,0x28,0x44,0x7c,0x42,
+  0x31,0xea,0xea,0xda,0x30,0x34,0x38,0x84,0xfe,0xfe,0x7e,0xb4,0x75,0xb6,0xa1,0xac,
+  0xbe,0xc,0x89,0x45,0xc9,0x70,0x8b,0xf2,0x80,0xa2,0x99,0x32,0x76,0x4b,0xed,0x7d,
+  0xbb,0x63,0xaf,0xf0,0x0,0xbf,0xa0,0x9c,0xe3,0x3e,0x3e,0x1d,0xae,0xcf,0x20,0x40,
+  0xa1,0x37,0x35,0xf4,0x50,0xc,0xf0,0x8c,0xab,0x2a,0x4a,0xa9,0xf9,0x76,0xac,0x61,
+  0xfc,0xd3,0x75,0x12,0xb0,0x57,0x89,0x1,0x73,0xc4,0x45,0x26,0xab,0x26,0x31,0x9e,
+  0x33,0x82,0xe6,0x88,0x36,0xc4,0x39,0xe5,0x22,0xd0,0x23,0x17,0xd9,0x79,0xbd,0x18,
+  0xb9,0xb0,0x88,0x85,0xa5,0x17,0xf8,0xf6,0x9,0x89,0x95,0x17,0xef,0xf0,0xf0,0xf1,
+  0xf,0xb8,0x7a,0xe3,0x9,0xc6,0xa7,0xee,0xa2,0x8b,0xb8,0x4f,0x4b,0xcf,0x65,0x34,
+  0x9c,0x23,0xe9,0xb1,0x69,0xc,0xd1,0xc9,0x55,0x30,0xb7,0xd,0x81,0x99,0x95,0xf,
+  0x22,0xce,0x24,0xa3,0xb0,0xba,0x14,0x85,0xb5,0xc5,0xc8,0xac,0xc8,0x42,0x54,0x4e,
+  0xc,0x5c,0xa3,0xdd,0xa1,0xe1,0xa4,0x85,0x7d,0x2a,0x62,0xe0,0x10,0xe1,0x5d,0x62,
+  0xdb,0xbd,0x3b,0x6e,0xcf,0x1e,0xc5,0x3,0x87,0xf9,0x6d,0x36,0x7e,0xe,0x1,0x8a,
+  0x84,0x8c,0x16,0xb7,0x89,0xbe,0xab,0x43,0xb8,0x67,0x62,0x77,0x65,0x7c,0xf5,0xcb,
+  0xa1,0x82,0x1,0x8c,0x15,0x8d,0x62,0x28,0x77,0x10,0xbd,0x49,0x3d,0xe8,0x8,0x6d,
+  0x45,0xa1,0x6b,0x29,0xbc,0x4d,0x93,0xe1,0xec,0x9e,0x85,0xcc,0xe2,0x41,0x62,0xe8,
+  0x3d,0x5c,0x5b,0x78,0x8e,0xdb,0x84,0xc4,0xe2,0xbd,0x97,0x2b,0xab,0x31,0xf3,0xe5,
+  0xd7,0x18,0x3a,0x4f,0xfc,0x7f,0xf0,0x6,0x21,0xf0,0x25,0x1a,0xc8,0xa,0x94,0xd4,
+  0xd,0x81,0x1a,0x96,0x8d,0x63,0x6a,0xe6,0x90,0x3a,0xaa,0x1,0x53,0x47,0x17,0x50,
+  0xe3,0xc3,0x41,0x3d,0x7b,0x1a,0x5e,0x89,0xde,0xb0,0xe,0xb1,0x81,0x8a,0x83,0x3a,
+  0xf6,0xa9,0x8b,0x82,0xf3,0xc0,0xce,0x77,0x2c,0x82,0xdb,0x7b,0x99,0x77,0xf2,0xe8,
+  0x88,0xb3,0xff,0xba,0x87,0x7c,0xfe,0xb5,0x91,0x65,0xcf,0x9,0x45,0xd3,0x70,0x4f,
+  0x23,0xbf,0x85,0x33,0xe,0x9,0xc8,0x74,0xc9,0x44,0x9e,0x4b,0x2e,0x32,0xad,0xd3,
+  0x11,0xab,0x15,0x89,0x53,0xa,0x7e,0x30,0x52,0xa3,0xc2,0xd6,0x23,0xb,0x59,0x65,
+  0x23,0x18,0xbe,0x70,0x17,0x53,0xf3,0x8f,0x57,0x8c,0x9e,0xbd,0xfc,0x35,0x2e,0x5e,
+  0x7a,0x84,0x91,0xc9,0xbb,0xe8,0x19,0x21,0xfe,0xdf,0x7f,0x6d,0x85,0x40,0x6d,0xdb,
+  0x24,0xb2,0x4b,0xbb,0xe0,0xe2,0x1d,0x87,0x3,0x52,0x6a,0xd8,0x25,0x20,0x8e,0x83,
+  0xca,0xea,0x50,0xb1,0xd4,0x87,0xbc,0xa5,0xa,0xe,0x1a,0x4b,0x61,0xaf,0xa6,0x30,
+  0xb6,0xcb,0xf3,0x82,0x55,0x94,0xfd,0x13,0x33,0x3f,0xe7,0x2,0xcb,0xf6,0x9d,0xb1,
+  0x9b,0x29,0xbb,0x77,0x7e,0xbe,0xe1,0x64,0xcb,0xe7,0x53,0x55,0xa5,0x13,0x12,0x57,
+  0x16,0x10,0xdd,0x77,0xd4,0x5f,0x7a,0xbf,0xe2,0xfc,0x49,0x19,0x23,0x78,0x9f,0xf0,
+  0x41,0xb8,0x5e,0x18,0x2,0xd4,0xfd,0x61,0x7f,0xd0,0x1a,0xda,0x22,0x6,0x50,0x91,
+  0x75,0x80,0xb5,0x6b,0x1a,0x32,0x4a,0x86,0xd0,0x4b,0xd2,0xe5,0xc8,0x85,0x7b,0x18,
+  0x9c,0x58,0xc4,0x10,0xc1,0xc0,0xf8,0x1d,0xf4,0xc,0x2f,0xa0,0x63,0xe0,0x3a,0xf1,
+  0xff,0xcb,0x68,0x26,0x69,0xb7,0xbc,0x71,0xc,0xf1,0x19,0x75,0x30,0xb3,0xb,0x84,
+  0xb0,0x98,0x2,0xb8,0x77,0xee,0xc3,0x5e,0x49,0x19,0x1c,0x50,0x57,0x84,0xf0,0x71,
+  0x9,0xec,0x56,0xe2,0x7,0xb7,0xc,0x2f,0xd8,0xf,0x72,0x63,0xeb,0x7e,0xae,0xf7,
+  0x6c,0x82,0xbc,0xe7,0x39,0x5,0x4,0xa9,0x3b,0xf6,0xee,0x17,0xe1,0xb1,0x94,0x5d,
+  0x27,0x2b,0x2b,0x4b,0x4b,0xa1,0x84,0xfd,0xbd,0x24,0xf9,0x3d,0x29,0x7a,0xe,0x5e,
+  0xe1,0x3d,0x26,0x8a,0x76,0x1a,0x71,0xf6,0x67,0x9d,0x33,0x4e,0xe5,0x46,0x1a,0x29,
+  0x59,0x34,0xa,0xf2,0x9,0xdf,0x53,0x92,0x51,0x45,0x8c,0x57,0x2c,0xa,0x43,0xa,
+  0x10,0xef,0x18,0x87,0x60,0xb3,0x0,0x38,0x1b,0x7a,0x40,0xe3,0xb8,0x13,0xf4,0x2d,
+  0xc3,0x91,0x90,0xd5,0x4e,0xfc,0xfc,0xc6,0x4a,0xce,0xef,0x1c,0xf8,0xea,0x57,0x90,
+  0xdc,0xdf,0x46,0x2,0xbb,0x95,0x28,0xdf,0xd4,0x3d,0xb7,0xe2,0xff,0xf9,0x95,0xfd,
+  0xa0,0x46,0xe5,0x42,0x4d,0xd7,0x1,0xbb,0x5,0xa4,0xb1,0x83,0x57,0xc,0x87,0x65,
+  0xd4,0x60,0x6c,0x6b,0x7,0xd7,0xe0,0x53,0xf0,0x8a,0xf1,0x81,0x63,0xa0,0xb,0x74,
+  0x2d,0xf4,0x21,0xa5,0x24,0xfd,0x81,0x5f,0x7e,0xdf,0xd,0x1e,0x83,0x3d,0xd,0x9c,
+  0x5e,0x7c,0x89,0x3c,0x1,0x82,0x81,0xdb,0x8d,0x85,0xdc,0xb8,0x64,0x45,0x55,0xb9,
+  0x45,0xf,0x73,0xfc,0xde,0x78,0x5a,0x6,0xc6,0xad,0xfb,0xa4,0xf6,0xab,0x9c,0x72,
+  0xd6,0xf2,0x69,0xce,0x74,0xcb,0xbf,0x55,0x1b,0xda,0xf0,0x32,0xdc,0x36,0xf2,0x8d,
+  0x92,0x94,0xd2,0x27,0x7d,0x3d,0x7d,0x14,0x64,0x17,0xa0,0xbd,0xb2,0xd,0xc5,0x49,
+  0x45,0xc8,0x4f,0xc8,0x45,0x62,0x54,0xa,0x2c,0x2d,0x7d,0xa0,0x67,0xe4,0x8b,0xb0,
+  0x33,0xe5,0x68,0x3a,0x37,0x8b,0xce,0xc1,0x6b,0x68,0x23,0x6a,0x2f,0x2b,0xde,0xd2,
+  0x4d,0xc,0xef,0xba,0x84,0x46,0xf2,0x79,0x6d,0xfb,0x24,0x51,0x7f,0x1c,0xf1,0x59,
+  0x8d,0xb0,0x72,0x8b,0xc4,0x21,0x79,0x3,0xf0,0x9,0xca,0x40,0x58,0x54,0x16,0xda,
+  0x7a,0x46,0x8,0x8d,0x8e,0x40,0x59,0x43,0x39,0xda,0x87,0x3b,0x50,0xdd,0x5a,0x83,
+  0xc8,0x98,0x48,0x9c,0xb4,0xd2,0xff,0x45,0xcc,0x42,0xe2,0x3,0xaf,0x2f,0xdf,0x1b,
+  0xae,0x98,0x9d,0xaf,0xb8,0x43,0xf8,0xbf,0xe3,0xb4,0x15,0xb8,0xcf,0xa1,0xb6,0xb7,
+  0x9a,0x53,0x54,0x58,0x77,0xf,0x45,0xf6,0x1f,0xbb,0xb2,0x80,0x80,0xc0,0x16,0x11,
+  0xfe,0x23,0x8e,0x9a,0xd2,0xc6,0x63,0x61,0xa6,0x31,0xcf,0x9b,0x4e,0xb7,0x60,0x3c,
+  0x6d,0x2,0x15,0xa1,0x15,0xf0,0x30,0x76,0x87,0x85,0x81,0x39,0xa8,0xbe,0x54,0xc4,
+  0x46,0xc5,0x21,0x36,0x2c,0x6,0x51,0xa1,0x91,0x8,0xf2,0xb,0x86,0xab,0x8d,0xf,
+  0x9c,0x6d,0x83,0x11,0x12,0x91,0x83,0xdc,0xf2,0x6e,0xd4,0x75,0x4e,0x11,0xc5,0xe7,
+  0x57,0xdc,0xa5,0x91,0x28,0x5e,0xdf,0x31,0x85,0xda,0xd6,0x49,0x12,0xb8,0x23,0x48,
+  0x2d,0xec,0x84,0xe7,0xe9,0x6c,0xa8,0xe8,0xb8,0x40,0xf8,0xd0,0x71,0x88,0xc9,0xa9,
+  0x42,0xf1,0xa4,0x26,0xf4,0xec,0xf5,0xe0,0x18,0x64,0x87,0x80,0x44,0x7f,0x84,0x65,
+  0x84,0x81,0x9a,0x4c,0xe2,0x2a,0xc8,0x6,0x6a,0x9e,0xaa,0x90,0x8,0x92,0xc4,0x17,
+  0x29,0x42,0xd8,0x95,0x2b,0x0,0x9e,0x34,0x1,0xb0,0x5,0xf3,0x81,0xd5,0x70,0xd7,
+  0x43,0xf6,0x3,0x2,0xb9,0x3c,0xc,0x22,0xf2,0x7c,0x14,0xd5,0x5f,0x9b,0x1e,0x3e,
+  0x1e,0x61,0x51,0x5,0xf1,0x13,0x45,0xd6,0xca,0x2e,0x1f,0x73,0x5c,0xb,0x30,0x10,
+  0x33,0x80,0x89,0xd4,0x9,0x74,0x24,0x76,0x20,0x37,0x28,0x17,0x54,0x5b,0x2a,0xec,
+  0x8d,0xed,0xe1,0xe6,0xe8,0x86,0xd3,0x1,0xa7,0x11,0xe0,0x1b,0x0,0x3f,0x57,0x3f,
+  0xc4,0xfa,0xc4,0xe0,0xec,0xe9,0x4c,0x44,0x85,0x64,0x22,0x3c,0xb6,0x10,0x69,0x85,
+  0x24,0x8f,0x37,0x8c,0xa2,0xaa,0xf9,0xfc,0xa,0x4a,0x1b,0xc6,0x90,0x57,0x39,0x40,
+  0x94,0x6f,0x82,0x77,0x68,0xe,0x74,0xcc,0xfc,0x21,0x2a,0x75,0x12,0xa2,0x32,0xea,
+  0x50,0xb7,0x35,0x82,0x79,0x84,0x5,0xc,0xc2,0xb4,0xa1,0xe6,0xad,0x80,0xa3,0x4e,
+  0x87,0x21,0x69,0x25,0x1,0x31,0x6b,0x51,0x88,0xb9,0x8a,0x41,0xfc,0xb4,0x38,0xc4,
+  0x92,0x25,0xb0,0x2f,0x5b,0x14,0xbb,0xb3,0x5,0xc1,0x95,0xb1,0xb,0xcc,0xf1,0x5c,
+  0x60,0xb4,0xe7,0xfa,0xc4,0x7a,0x78,0xe7,0x35,0x76,0x76,0x1,0x2a,0xeb,0x7a,0xc1,
+  0x5f,0x1b,0xaa,0x5d,0xdc,0x42,0x6,0xda,0x87,0x8d,0x6,0x2,0xf4,0x42,0x51,0xe3,
+  0x5b,0x87,0xa1,0xb8,0x41,0x8c,0xa5,0x8c,0x62,0x20,0x7d,0x0,0xdd,0x19,0xdd,0xa8,
+  0x4e,0xa8,0x46,0x5e,0x74,0x2e,0x8a,0x53,0x8b,0xd0,0x50,0xd6,0x80,0xfa,0xb2,0x3a,
+  0xd4,0xe5,0xd7,0xa2,0xbb,0xb0,0x1d,0xcd,0xe9,0xcd,0x48,0xa0,0x66,0xc0,0xc3,0x25,
+  0x1a,0xde,0x81,0x67,0x11,0x99,0x42,0x36,0xb7,0xfc,0x76,0x64,0x96,0xf4,0x20,0x39,
+  0xaf,0x3,0xe1,0xc9,0x35,0x70,0xf6,0x4f,0x85,0x86,0xb1,0x37,0xc4,0x65,0xc,0xb0,
+  0x5b,0x48,0x19,0x52,0xea,0x9a,0xb0,0x8c,0xb2,0x83,0x5f,0x9d,0x7,0x5c,0x2a,0xad,
+  0x60,0x98,0xa1,0x5,0xd5,0x58,0x5,0x48,0x87,0x48,0x41,0x32,0xe4,0x0,0xe,0xc4,
+  0x10,0xa4,0x4a,0x42,0x22,0x5b,0x12,0xc2,0x39,0x62,0xd8,0x93,0x25,0x8,0xce,0x4c,
+  0x5e,0x30,0xa6,0x70,0x60,0xa3,0x17,0x7,0x98,0x8e,0x71,0xbd,0x67,0xe1,0xe7,0x29,
+  0x65,0x61,0xdf,0x25,0x46,0xa1,0x60,0x15,0x85,0x97,0xe3,0x8b,0x60,0x33,0x59,0x9b,
+  0xb9,0x33,0xa6,0x89,0xa8,0xf5,0xae,0x43,0x7b,0x48,0x3b,0xfa,0xe2,0x7b,0x31,0x94,
+  0x39,0x84,0x89,0x92,0x9,0xb2,0xf3,0x5e,0xc4,0x7c,0xe7,0x1c,0x6e,0x8c,0x5d,0xc7,
+  0xdd,0x4b,0x8b,0x78,0x70,0xed,0x2e,0x96,0x66,0x6e,0xe1,0xa,0x71,0x95,0xb6,0xb4,
+  0x56,0x44,0x3b,0xc5,0xc3,0xc1,0xc0,0x7,0xd6,0x36,0x1,0xb0,0xf7,0x8a,0x86,0x83,
+  0x4f,0x2,0x1c,0x7d,0x53,0x60,0xed,0x91,0x0,0x3d,0xeb,0xd3,0x50,0xd0,0x72,0x86,
+  0xf8,0x51,0x3,0xec,0x95,0x50,0x87,0xa0,0xf8,0x31,0xc8,0x1b,0x68,0xc2,0x3e,0xc5,
+  0x6,0xc1,0x5d,0x1e,0x8,0xe8,0x73,0xc5,0xa9,0x73,0x76,0x70,0x68,0xb7,0x80,0x59,
+  0xa3,0x21,0x74,0xab,0xb5,0xa1,0x5a,0xa6,0xa,0xd9,0x62,0x39,0x48,0xe6,0x1d,0xc2,
+  0xbe,0x8c,0xfd,0xd8,0x95,0x24,0x0,0xf6,0xa4,0x1d,0xd8,0x9c,0xc0,0x8e,0xd,0xd4,
+  0x6d,0xd8,0xa8,0xcb,0x86,0x8d,0x92,0xec,0x3,0xcc,0xbc,0x9c,0x7a,0x3c,0x14,0x11,
+  0x46,0xa,0xf,0x1b,0x7f,0xbe,0xfd,0x31,0xe7,0x7b,0xd9,0xb6,0xb9,0xa8,0x74,0xab,
+  0x44,0x85,0x67,0x5,0xda,0x22,0xdb,0x30,0x92,0x35,0x82,0xc9,0xb2,0x49,0xcc,0x35,
+  0xcd,0xe1,0x7a,0xdf,0x35,0x2c,0x4d,0x2d,0xe2,0xf1,0xb5,0x87,0x78,0x76,0xe7,0x5b,
+  0x3c,0x98,0x5f,0xc2,0x85,0x96,0x9,0x14,0x84,0x15,0xc2,0x5b,0x9f,0xa,0x2b,0xd,
+  0x27,0x58,0x5a,0x9c,0x82,0xa1,0xd5,0x29,0xc8,0x6b,0x58,0x41,0x42,0xce,0x88,0x14,
+  0x61,0x86,0xd8,0x7b,0x50,0x1b,0x2,0xe2,0xc7,0xb1,0x5f,0x4a,0x13,0x87,0xe4,0xb4,
+  0x71,0x48,0x51,0x15,0x4a,0xa6,0xc7,0x61,0x15,0x67,0xa,0xdf,0x6,0x67,0xf8,0x9d,
+  0x73,0x86,0x67,0x8f,0x3,0x9c,0x7b,0xac,0x61,0xd5,0x61,0xa,0x83,0x6,0x3d,0xa8,
+  0x57,0xaa,0x43,0xbe,0x54,0x1,0x7,0xb,0xa4,0x20,0x74,0x56,0x4,0x3c,0x61,0xbb,
+  0xc1,0x7a,0x9a,0xb,0x9b,0xa2,0xd8,0xb0,0x3e,0x74,0x2b,0xe8,0xad,0x59,0x40,0x2f,
+  0xc7,0xf2,0xe5,0x26,0x9e,0x6d,0x1,0xcc,0x14,0x9e,0x2f,0x28,0x5c,0x5b,0x77,0x75,
+  0x3a,0x2a,0xb9,0xbe,0x2a,0x71,0x2c,0x45,0x91,0x5d,0x11,0x32,0x6c,0x33,0x50,0x13,
+  0x54,0x8b,0xc1,0x8c,0xc1,0x95,0x15,0x98,0x6d,0x9c,0xc5,0x15,0x52,0xa,0xcc,0xf6,
+  0xcc,0x60,0xa4,0x7d,0x4,0xfd,0xad,0xc3,0xe8,0x6a,0x1c,0x42,0x4d,0x41,0x3b,0xe2,
+  0x2,0x32,0x61,0xab,0xeb,0x1,0x6d,0x5,0x43,0x68,0x6b,0x1a,0x41,0xcf,0xd0,0x2,
+  0x1a,0x7a,0x96,0x50,0x3e,0x61,0x1,0x45,0xd,0x73,0x1c,0x23,0x58,0x7e,0xad,0xa2,
+  0x61,0x2,0x45,0x55,0x6d,0x1c,0x55,0x51,0x81,0xba,0x89,0x2e,0xec,0xc3,0xdc,0xe1,
+  0x97,0x1f,0x86,0x53,0x5,0x1,0xb0,0xcd,0x76,0x84,0x71,0x96,0x31,0x4e,0x16,0xea,
+  0xae,0xac,0x80,0x7a,0xa5,0x1a,0xe4,0x4a,0xe4,0x71,0xb0,0x90,0x6c,0x6c,0x89,0x22,
+  0xe0,0xf2,0xe4,0x5,0x93,0xb,0x51,0x3d,0x64,0x1b,0xe8,0x63,0x59,0xb1,0xc6,0x8b,
+  0x9,0x6b,0x54,0x19,0xef,0x33,0x70,0x6f,0x29,0xd8,0x44,0xd9,0xaa,0x44,0x61,0x67,
+  0xde,0x3e,0xed,0x74,0xcc,0xe5,0xa7,0x72,0xe7,0xa,0xe4,0x5a,0xe5,0x20,0xce,0x38,
+  0xe,0xc5,0xa4,0x44,0xee,0x39,0xdb,0x83,0xf1,0xe2,0x71,0xcc,0xb7,0x5c,0xc2,0x97,
+  0x5d,0xf3,0x68,0x2f,0xed,0x40,0x62,0x64,0x1a,0x2,0xa9,0x9,0x88,0x8c,0x2a,0x44,
+  0x6a,0x5a,0x13,0xce,0xc4,0x55,0xc0,0xc1,0x2e,0x8,0xa,0xb2,0x27,0x70,0x50,0xf2,
+  0x8,0x34,0xb5,0xb4,0xe1,0xe5,0x43,0x45,0x68,0xc4,0x19,0xf8,0x7,0x91,0x6c,0x15,
+  0x1a,0x8b,0x80,0xa0,0x8,0x98,0x5b,0xd8,0x40,0x5e,0x51,0x9,0x47,0xe5,0x95,0x61,
+  0x68,0xe9,0x82,0x80,0xe8,0x1c,0x44,0x67,0x34,0xc0,0x2b,0x32,0xf,0x6,0xae,0xfe,
+  0x50,0x71,0x34,0x81,0x72,0x88,0x6,0x34,0xf2,0x35,0x8,0x1,0x55,0xc8,0x95,0xca,
+  0xe3,0x50,0xf1,0x61,0x8,0xc6,0xed,0x3,0x87,0xd,0x37,0x36,0x9b,0xb0,0x82,0xc1,
+  0x7f,0x2b,0xd6,0x25,0xb1,0x60,0x75,0xc8,0x66,0xac,0xd6,0xdc,0xf8,0xfd,0x3a,0x8e,
+  0xcd,0xbd,0xc,0x14,0x46,0x53,0xa,0xc7,0x16,0xee,0x45,0x37,0x15,0xf,0x54,0xb9,
+  0x54,0x23,0xcb,0x3c,0xb,0x61,0xba,0x61,0x2b,0xa5,0xc3,0x72,0x16,0x1a,0x2b,0x1a,
+  0xc3,0x64,0xcd,0x5,0x74,0x97,0x74,0xe3,0x6c,0x44,0x16,0x1c,0xc9,0x2e,0x6a,0x6a,
+  0x15,0x8,0x4f,0xff,0x2c,0xc4,0xa7,0xb5,0x21,0x35,0xa7,0x3,0xc1,0x91,0x39,0x38,
+  0x69,0x64,0xf,0xc9,0x83,0xd2,0x90,0x91,0x91,0x81,0x99,0xa9,0x9,0xec,0xed,0xec,
+  0x60,0x62,0x62,0xa,0x73,0x73,0xe2,0xdb,0x66,0x66,0x50,0x55,0x51,0x86,0xb4,0xc,
+  0xc9,0xfb,0x3a,0xe6,0xf0,0xa5,0xa6,0x21,0x39,0xad,0x17,0x29,0xe9,0x17,0x40,0xd,
+  0xea,0x80,0xb1,0x79,0x3a,0x94,0x74,0xbc,0x20,0x6d,0xa6,0x87,0xa3,0x81,0xa,0x50,
+  0xc8,0x90,0x85,0x5c,0x99,0x1c,0xa4,0x2a,0xa5,0x21,0x18,0x2d,0x84,0xad,0x27,0xd9,
+  0xc1,0xa0,0xc2,0x8,0x7a,0x27,0x66,0xd0,0xc5,0x6f,0x1,0x4d,0xd4,0x46,0xd0,0xe8,
+  0x32,0x7c,0xa4,0x63,0x67,0x58,0x58,0x47,0xd9,0xe8,0x4d,0xe1,0x64,0xd9,0xfe,0xdc,
+  0x4d,0xc5,0x1d,0xe5,0x4e,0x15,0x48,0x35,0x4e,0x5,0xf5,0x4,0x15,0x49,0xb6,0x49,
+  0x68,0x3b,0xd3,0x46,0x56,0x80,0xd4,0xfd,0xd9,0x9d,0x48,0xa,0x4a,0x83,0xab,0x7d,
+  0x30,0xac,0x6d,0xc3,0xe1,0xe2,0x99,0x8e,0xb0,0xd8,0x1a,0x9c,0xcd,0xee,0x42,0x4e,
+  0x51,0x3f,0xb2,0xa,0x3a,0x49,0x79,0x9c,0x9,0x3,0x13,0x7b,0x1c,0x96,0x96,0x83,
+  0x88,0x88,0x28,0xf8,0x76,0xf1,0x81,0x93,0x93,0x13,0x5c,0x5c,0x5c,0xd8,0xb9,0x6b,
+  0x27,0x84,0x85,0xf7,0x43,0x4d,0xe3,0x24,0x7c,0xc8,0xea,0x65,0xe4,0x9e,0x43,0x5e,
+  0xf1,0x5,0xa4,0x64,0x4e,0x20,0x34,0x6a,0x0,0x4e,0xee,0x2d,0xd0,0x31,0xce,0xc2,
+  0x61,0x55,0x7b,0x8,0x6b,0x49,0xe3,0x80,0x9f,0x4,0x64,0x8b,0x64,0x71,0xa4,0x4e,
+  0x6,0x82,0x51,0x42,0xd8,0xa2,0xb2,0x15,0x74,0x12,0xc,0xa0,0x33,0xdc,0x84,0xb5,
+  0x91,0x4c,0xa0,0x89,0x21,0x4,0xc,0x19,0xb0,0x86,0x93,0xfe,0x1d,0x1d,0x85,0x3e,
+  0x8e,0xb8,0x10,0xc7,0x7b,0x2b,0x39,0x1b,0xa4,0x9a,0xa7,0x21,0x52,0x27,0x12,0x9e,
+  0xaa,0x5e,0x88,0xb7,0x4a,0x40,0x77,0x52,0x17,0xe6,0xaa,0xc9,0x4e,0x9a,0x58,0x7,
+  0x7,0x53,0x4f,0xa2,0x9e,0x33,0x1c,0x5c,0x92,0x11,0x18,0x56,0x8d,0x98,0xc4,0x56,
+  0x9c,0xcd,0x5a,0x36,0x64,0x0,0x65,0xd5,0xa3,0xe4,0xde,0x85,0xc8,0xb8,0x3c,0x38,
+  0xba,0x50,0xa1,0x7b,0xd2,0x2,0xc7,0x54,0x34,0x89,0xcb,0xa8,0x43,0x4e,0x51,0xd,
+  0xca,0x6a,0x3a,0x30,0x36,0x73,0x80,0x5f,0x10,0x29,0xa,0x49,0x8a,0x2d,0xaf,0x9b,
+  0x44,0x61,0xc5,0x45,0x24,0x67,0x8f,0x22,0x22,0x7e,0x18,0x5e,0x81,0x43,0x30,0xb1,
+  0x6e,0xc0,0x91,0xa3,0x54,0xf0,0x4b,0x28,0x42,0xc8,0x4c,0x2,0xd2,0x59,0x32,0x90,
+  0x69,0x39,0xa,0xa1,0x78,0x61,0x30,0x2b,0xb0,0x82,0x96,0x9f,0xe,0x6b,0xb5,0x9,
+  0x89,0x68,0x46,0xd0,0x24,0x6d,0xc2,0x2a,0x6b,0x6,0xac,0xe6,0xa3,0xc7,0xea,0x35,
+  0x6b,0x33,0x29,0x5b,0x36,0x6d,0x79,0xae,0x24,0xac,0x4,0x47,0x45,0x27,0x58,0x49,
+  0x5b,0xc3,0xf8,0xb0,0x9,0xbc,0xb5,0x7d,0x48,0xb7,0x55,0x82,0xde,0xac,0x1e,0xa4,
+  0x7,0x65,0x43,0xe7,0xb8,0x35,0x54,0x4f,0x38,0xc3,0xdd,0x3b,0x97,0xa8,0x5d,0x4f,
+  0x94,0xab,0x45,0x7c,0x4a,0xb,0x59,0x81,0x3e,0x94,0x54,0x8e,0xa0,0xbc,0x76,0x14,
+  0x15,0xa4,0x54,0x2e,0xab,0x5e,0x7e,0xdf,0x45,0xd0,0x89,0xd2,0xaa,0x73,0x4,0xe4,
+  0x5e,0xdd,0x85,0x8a,0xda,0x3e,0x54,0x35,0x8e,0xa2,0xba,0x89,0x94,0x15,0x84,0x40,
+  0x2e,0xe9,0xa7,0x93,0x32,0x87,0x11,0x1a,0xd7,0x8f,0x53,0x81,0xfd,0x30,0xb5,0x6b,
+  0xc1,0x51,0xd9,0x58,0x8,0x88,0xe8,0x43,0x40,0xfd,0x8,0xc4,0x83,0x25,0x71,0x20,
+  0xe7,0x0,0xf6,0x4,0xa,0x80,0xf1,0x20,0x13,0x56,0x73,0xd3,0xfe,0xbc,0x46,0x91,
+  0xfe,0x27,0x3a,0xdf,0x4d,0x3f,0xd1,0x84,0x6c,0xf8,0x89,0x62,0xbc,0xfe,0x67,0xca,
+  0x6e,0xba,0x1f,0x29,0xf4,0x6b,0xe2,0x29,0xeb,0xe9,0xd6,0x9f,0xdf,0xc1,0xba,0xe3,
+  0x89,0xe8,0xe,0xd1,0xef,0x84,0xb9,0x84,0x5f,0x9,0x6f,0x17,0x79,0x21,0xb3,0xf7,
+  0xe8,0x73,0x23,0x45,0xc3,0xf7,0x9e,0x26,0x9e,0xb0,0x3d,0xe9,0xa,0x65,0x25,0x73,
+  0xe8,0x18,0x50,0xe1,0x4d,0x2d,0x41,0x40,0x48,0x15,0x51,0xb3,0x18,0x51,0x67,0xea,
+  0x90,0x5d,0xd0,0x4b,0x8c,0x1d,0x46,0x65,0xc3,0x4,0x9a,0x3b,0x67,0xd0,0x4d,0x9a,
+  0x9f,0xc1,0xf1,0x9b,0x18,0x9b,0xba,0x8d,0xf3,0xb3,0x4b,0x2b,0x18,0x9f,0x5e,0x24,
+  0xe5,0xf6,0x2d,0x52,0xf0,0x5d,0x47,0x63,0xc7,0x1c,0xca,0x6a,0x2f,0x20,0xab,0x70,
+  0x14,0x67,0xce,0xf6,0x21,0x20,0xbc,0x3,0xae,0xbe,0x1d,0x30,0xb1,0x6b,0x86,0xbc,
+  0x72,0x6,0x4,0xf7,0x3b,0x61,0xc7,0x1,0x39,0xf0,0xaa,0x93,0xca,0x54,0x9f,0x1b,
+  0x2c,0x8a,0xac,0x1f,0xe9,0x79,0xd6,0x3f,0x58,0xc5,0xb8,0x6a,0x9e,0x66,0xef,0x9a,
+  0x8b,0x6b,0xd4,0xd7,0x4d,0xad,0xd2,0xa6,0x9b,0xa6,0x1c,0x59,0x3b,0x4d,0xe1,0xa0,
+  0x1d,0xa4,0xd0,0xd1,0x38,0x92,0x23,0x33,0x9a,0xb0,0xd5,0xab,0x56,0xd7,0xd0,0xd2,
+  0xd0,0xb6,0x12,0x74,0x10,0x34,0xd1,0xd1,0xd2,0x35,0x32,0x6f,0x64,0x1a,0xd9,0xb3,
+  0x7d,0xcf,0x3,0x49,0x51,0xc5,0x77,0x2a,0xaa,0x76,0x3f,0xdb,0x38,0x24,0xc2,0x37,
+  0xb0,0x1c,0x5e,0xfe,0x45,0x38,0xe5,0x93,0x85,0xf0,0x98,0xca,0x5f,0x9,0x54,0xd,
+  0x93,0x53,0x84,0x31,0xd4,0xb5,0x5e,0x40,0xcb,0xb9,0x69,0x74,0x92,0x9e,0xb9,0x67,
+  0x68,0x1e,0x7d,0x23,0x97,0x57,0xd0,0x3b,0x7c,0x19,0x5d,0x3,0xf3,0x68,0x25,0x55,
+  0x69,0x7d,0xdb,0x34,0x4a,0x49,0x52,0xc8,0x24,0x4,0xa2,0x12,0x48,0x7d,0x44,0xad,
+  0x85,0x9d,0x5b,0xd,0x8c,0x6c,0x1a,0x70,0xec,0x44,0x9,0x84,0xe,0x4,0x81,0x63,
+  0xf7,0x31,0x30,0x72,0xb3,0xff,0xb8,0x76,0xeb,0xda,0x47,0x34,0x1b,0x57,0x8f,0xae,
+  0xa2,0x5d,0x55,0x48,0x59,0x45,0x89,0xa0,0xac,0xa5,0x50,0x29,0xeb,0x69,0x2,0x8,
+  0x2,0x29,0xeb,0x28,0x41,0x14,0x5a,0x8a,0xb,0x29,0x24,0xa4,0x96,0xab,0x9,0x51,
+  0x2,0x65,0x82,0xe3,0x4,0x27,0x8,0xd4,0x7e,0x83,0x15,0x85,0xb2,0x2a,0x9b,0x5f,
+  0xe0,0xc8,0xbc,0xa6,0x8e,0xcf,0x3b,0x77,0xaf,0x7c,0xa2,0x7c,0x39,0xdc,0xbc,0xb2,
+  0xe0,0xe2,0x91,0x42,0xdc,0xa8,0xec,0x1f,0x4,0xea,0x46,0x51,0xdb,0x3c,0x81,0x26,
+  0x52,0x79,0xb6,0x75,0x11,0x12,0x7d,0x33,0xc4,0xe8,0xb9,0x15,0x9c,0xeb,0x9f,0x43,
+  0x47,0xef,0x2c,0x9a,0x49,0x81,0x57,0x4b,0x4e,0x33,0xca,0x6a,0x2f,0x22,0x87,0xa4,
+  0xe7,0xc8,0xf8,0x36,0x38,0x7b,0x16,0xc2,0xdc,0xae,0x0,0x6,0x56,0xb5,0x50,0xd1,
+  0xad,0x87,0xf0,0xc1,0x4,0xb0,0x71,0x1f,0x7,0x3d,0x3d,0xcb,0x12,0xb1,0x21,0x97,
+  0x40,0x9f,0x40,0x8e,0x60,0x3f,0x81,0x20,0xc1,0xde,0xdf,0xb0,0x7c,0x9c,0xb9,0x8b,
+  0x80,0xf9,0x3f,0x35,0x3b,0x9c,0xe4,0x4b,0xfb,0x7d,0xa2,0x2a,0xbd,0xc6,0x66,0x91,
+  0xaf,0xbd,0xfd,0x7f,0x55,0xdf,0xce,0x39,0x1e,0x76,0x4e,0x31,0x8,0xe,0x2f,0xfa,
+  0x8d,0x0,0x89,0x81,0x3f,0x41,0xa0,0xbc,0x6e,0xa,0xf9,0xe5,0x93,0xa4,0x1f,0x6e,
+  0x81,0xad,0x53,0x2a,0xf4,0x4d,0xcf,0x42,0xdf,0xa2,0xa,0x6a,0xfa,0xed,0x10,0x3d,
+  0x9c,0xd,0x36,0x2e,0x3d,0xac,0x5b,0xb7,0x6d,0x9e,0xcc,0x6d,0xf6,0x67,0x3a,0xb1,
+  0x7f,0x35,0x96,0x9d,0x7c,0xe8,0x2b,0x2c,0xaa,0x36,0x6d,0x6e,0x1d,0xff,0xa3,0x4f,
+  0x40,0x35,0x9c,0x3c,0x32,0x60,0x44,0x1a,0x1a,0x13,0xb,0x2a,0xa8,0xc1,0xd9,0x2b,
+  0x4,0x4a,0x49,0x16,0xaa,0xf8,0x13,0x4,0x2a,0x1a,0xa6,0x51,0x50,0x31,0x85,0xd0,
+  0x98,0x7a,0x18,0x5b,0x44,0xe1,0x84,0x6e,0x24,0xf4,0xcc,0xca,0x71,0xdc,0xb0,0x1b,
+  0x62,0xd2,0x45,0x60,0xdb,0x6e,0x4,0x3a,0x7a,0xf6,0x5b,0x64,0x6e,0xe3,0xff,0x95,
+  0x0,0x59,0xb6,0x55,0x79,0x5f,0x8,0x1d,0xfd,0xc6,0xd8,0x3c,0xea,0x17,0x2f,0x6a,
+  0x25,0xec,0x48,0x1a,0x55,0x3b,0x61,0xf,0xb5,0xe3,0x56,0xf0,0x22,0x5,0x5b,0x61,
+  0xf9,0xb2,0xeb,0x4c,0xa3,0xa6,0xe9,0x2,0x39,0xe,0x9c,0x24,0x81,0x3c,0xf5,0x6f,
+  0x5d,0xa8,0xa5,0x6b,0x96,0xc4,0xc0,0x2c,0xc9,0x44,0x73,0x2b,0x4,0xfc,0x4f,0x17,
+  0x93,0xdf,0x72,0x25,0xc1,0xeb,0x5,0x5d,0xb3,0xa,0x68,0x99,0xe,0x91,0xa2,0xaf,
+  0x4,0x6c,0x3c,0x46,0x58,0x43,0xcf,0xf6,0x82,0x18,0xef,0x47,0x40,0xff,0xbf,0x90,
+  0x38,0x44,0x8,0xd4,0xed,0xe0,0x15,0x7e,0xaf,0xae,0xe5,0xe,0x7,0xb7,0x4c,0x58,
+  0xd8,0x46,0x43,0x4a,0x5a,0x7,0xa2,0xe2,0xa,0xb0,0x75,0x8,0x41,0x61,0xd9,0x30,
+  0xea,0x5a,0x66,0xff,0x4e,0xa0,0x85,0x10,0x68,0xef,0x9e,0x21,0x7e,0x3f,0x8b,0xee,
+  0xc1,0x4b,0x2b,0xe8,0x1a,0xb8,0x44,0x62,0x62,0x6e,0x25,0x88,0x97,0xb3,0x50,0x65,
+  0xc3,0xc,0x32,0xb,0x86,0xe1,0xe0,0x1a,0xb,0xf1,0x83,0xea,0x10,0x3d,0x60,0xc,
+  0x4d,0xc3,0x42,0x68,0x9a,0xf4,0x60,0xff,0xe1,0x74,0xb0,0x70,0x6a,0x82,0x96,0x8e,
+  0xf5,0x15,0x31,0x3c,0x96,0x60,0x3b,0x1,0x39,0x31,0xfc,0xef,0xae,0xa3,0xe4,0xb1,
+  0x5e,0x26,0x66,0x76,0xec,0x15,0x96,0x83,0xdc,0x31,0x73,0xc8,0x90,0x76,0x90,0x77,
+  0xa7,0x8,0x38,0x38,0x76,0x41,0xf1,0xd8,0x49,0x52,0xef,0xa4,0x21,0x31,0xb5,0x6,
+  0x99,0x79,0xad,0x64,0xf,0x18,0xc0,0x32,0x81,0xfe,0x91,0xeb,0x18,0xbd,0x78,0x8b,
+  0x1c,0xb5,0xdc,0x21,0xb8,0x4d,0x5e,0xdf,0x26,0x8d,0xfe,0x2,0x21,0x72,0x8d,0x64,
+  0xaa,0x29,0x92,0x42,0x7b,0x48,0xfc,0x14,0x43,0x43,0xcb,0x16,0x3c,0x3b,0x85,0x9,
+  0x8e,0xe0,0x90,0xac,0x37,0xa4,0xe4,0x23,0xb0,0x63,0x8f,0x5,0x36,0x30,0xee,0x7,
+  0xd,0xed,0xa6,0x87,0x64,0xee,0x30,0x82,0xe5,0x13,0x89,0xff,0x9a,0xc0,0x11,0xf2,
+  0x70,0x1b,0x2d,0xed,0x5a,0x30,0x6c,0x60,0xc4,0x32,0x11,0x46,0x26,0x36,0x12,0x60,
+  0x1b,0x8,0xd6,0x83,0x93,0x7b,0x27,0x59,0xd,0x65,0xe8,0x19,0xd8,0x91,0xac,0x14,
+  0x8a,0x88,0x98,0x1c,0xe4,0x17,0xb7,0x11,0x12,0x93,0x24,0x7d,0x5e,0x41,0xff,0xe8,
+  0xd5,0x95,0x7b,0xcf,0xf0,0x15,0x72,0x72,0x77,0x9,0x35,0xe4,0x54,0x22,0x2d,0xa7,
+  0x11,0x3e,0x1,0xc9,0xd0,0x35,0x70,0xc1,0x3e,0x11,0x19,0x30,0x6d,0xe1,0xc4,0x66,
+  0x46,0x6e,0xb0,0x73,0x49,0x60,0x1b,0x87,0x18,0xd6,0x6f,0xe0,0xc2,0x6a,0xda,0xd,
+  0x2f,0x28,0xab,0xd6,0x9c,0x23,0x7,0x24,0xcb,0x41,0xfc,0x1f,0xb3,0xcc,0x1f,0xad,
+  0xcb,0x72,0x9a,0x72,0x25,0xc8,0x27,0x28,0xfe,0x1d,0x4a,0x69,0x69,0x69,0x5b,0x19,
+  0x99,0x58,0x26,0xf9,0x76,0xef,0xbd,0x2d,0x79,0x48,0xee,0xa5,0x92,0x8a,0xf6,0x2f,
+  0x46,0xa6,0xe,0x70,0x71,0xf,0x80,0xb7,0x5f,0x4,0xbc,0xfd,0xc3,0xc9,0x3d,0x1c,
+  0x9e,0xbe,0xe1,0xf0,0xf0,0xa,0x21,0x2e,0xe7,0x3,0x3,0x63,0xfb,0xd7,0xa,0x4a,
+  0x3a,0xf,0x84,0xf6,0x1d,0xbe,0xba,0x95,0x8d,0x77,0x78,0xfd,0x7a,0xa6,0xc6,0xb5,
+  0x6b,0x37,0x94,0xae,0x5d,0xb7,0xa9,0x78,0xf5,0xea,0x55,0x7f,0x9b,0x23,0x91,0xcc,
+  0x65,0x45,0xa1,0xac,0x59,0x4e,0x99,0xcb,0xff,0xee,0xfc,0xd7,0xd7,0x72,0xd3,0xcc,
+  0x4a,0xc0,0xf3,0x2f,0xc0,0x47,0x3e,0x53,0x20,0x70,0x5b,0xbb,0x76,0x5d,0xfa,0x86,
+  0xd,0x9b,0xce,0x6d,0xde,0xcc,0x7c,0x95,0x99,0x99,0xf5,0x29,0x2b,0x2b,0xdb,0xfb,
+  0x6d,0xdb,0x38,0x3e,0xfe,0xa,0xf6,0x8f,0x5b,0xb7,0xb1,0x7f,0x20,0xaf,0xbf,0x23,
+  0xf7,0x5b,0x2c,0xac,0x6c,0x43,0x84,0x74,0x9,0x3,0xc3,0xc6,0xc8,0x35,0x6b,0xd6,
+  0x99,0x11,0x11,0x96,0x37,0xa2,0x65,0xa1,0xfe,0x79,0x8e,0xe5,0xf4,0xcd,0x44,0xf0,
+  0xff,0xf7,0x4f,0xe5,0xbf,0x91,0x80,0x1c,0x34,0xad,0x4c,0x2e,0x4b,0x60,0x44,0xe0,
+  0xf1,0x9b,0xdf,0xc6,0x93,0x7b,0xc2,0xef,0x10,0x45,0xde,0xfb,0x10,0x58,0x12,0xa8,
+  0x12,0x88,0x13,0x6c,0xfb,0xaf,0xa5,0xfd,0xa7,0x7,0xff,0xf,0xd3,0x46,0x64,0xd6,
+  0x93,0x98,0x5,0x28,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+  
+    // /home/maemo/tietoopcom/resources/unknown.png
+  0x0,0x0,0xe,0xba,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x44,0x0,0x0,0x0,0x44,0x8,0x6,0x0,0x0,0x0,0x38,0x13,0x93,0xb2,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,0x1,
+  0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x3,0xb,
+  0xf,0xd,0xb,0x40,0x64,0xfa,0x6e,0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x43,
+  0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x0,0x43,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x77,
+  0x69,0x74,0x68,0x20,0x47,0x49,0x4d,0x50,0x57,0x81,0xe,0x17,0x0,0x0,0xe,0x15,
+  0x49,0x44,0x41,0x54,0x78,0xda,0xed,0x5a,0xdb,0x6f,0x1d,0xd5,0x7e,0xfe,0xd6,0xac,
+  0xb5,0xe6,0xba,0x67,0xf6,0xf6,0xbe,0x78,0x5f,0xe2,0xd8,0xe0,0x24,0x84,0x98,0x63,
+  0xa7,0x90,0x28,0x5c,0x7a,0x4a,0xc2,0xad,0x3d,0x42,0xa2,0xa,0xea,0x3,0x5,0x1,
+  0xf,0x7d,0xe9,0x7f,0xc0,0x2b,0x95,0x78,0x5,0xc1,0x6b,0x25,0x1e,0x4e,0x5f,0x50,
+  0x49,0xa4,0xa,0x2a,0xa1,0x22,0x20,0x4a,0x42,0xa3,0x83,0x94,0x9a,0x20,0x68,0x48,
+  0x5d,0xac,0x5c,0x8d,0x9d,0xd8,0xde,0xd7,0xd9,0x7b,0xcf,0x7d,0x66,0xf5,0x21,0x99,
+  0xa9,0x9d,0xe4,0xc0,0x51,0x21,0xe,0xa6,0xfe,0xa4,0xa5,0x6d,0x4b,0xe3,0x19,0xcf,
+  0xb7,0x7f,0xbf,0xef,0xf7,0xad,0xdf,0x6f,0x1,0x5b,0xd8,0xc2,0x16,0xb6,0xb0,0x85,
+  0x2d,0x6c,0x61,0xb,0x5b,0xd8,0xc2,0x2f,0x11,0x64,0xa3,0x1f,0xf8,0xf4,0xd3,0x4f,
+  0xb3,0x57,0x5f,0x7d,0x55,0xb1,0x2c,0x8b,0x97,0xcb,0x65,0x42,0x8,0x41,0x14,0x45,
+  0x58,0x5a,0x5a,0xc2,0x70,0x38,0x14,0xb,0xb,0xb,0xd1,0x89,0x13,0x27,0xbc,0x93,
+  0x27,0x4f,0x46,0x77,0x83,0x10,0xb6,0xc1,0xcf,0x53,0x9f,0x7f,0xfe,0xf9,0x69,0x55,
+  0x55,0x1f,0x54,0x14,0x65,0x5c,0x51,0x14,0x19,0x0,0x92,0x24,0x81,0xae,0xeb,0x18,
+  0xc,0x6,0xc2,0x30,0x8c,0x2b,0xfb,0xf7,0xef,0xff,0xe2,0xe4,0xc9,0x93,0xff,0x9,
+  0x20,0xfc,0xd5,0x12,0x72,0xea,0xd4,0x29,0x73,0x71,0x71,0xf1,0x21,0xd3,0x34,0xff,
+  0x52,0x51,0x94,0x27,0x65,0x59,0xde,0x23,0x49,0x92,0x2e,0x84,0x0,0x21,0x4,0x8c,
+  0x31,0x68,0x9a,0x16,0x47,0x51,0xf4,0x5f,0x42,0x88,0xd1,0xd7,0x5e,0x7b,0x4d,0xa,
+  0xc3,0xf0,0xdb,0xb7,0xdf,0x7e,0xdb,0xfd,0xd5,0x11,0x72,0xe4,0xc8,0x91,0x9c,0x10,
+  0xe2,0x89,0xf1,0xf1,0xf1,0xc3,0x86,0x61,0x3c,0xcc,0x39,0xdf,0xa1,0xeb,0xba,0xc2,
+  0x18,0x43,0x18,0x86,0x70,0x5d,0x17,0xaa,0xaa,0x42,0xd3,0x34,0xbe,0xbc,0xbc,0x3c,
+  0xc3,0x18,0xe3,0x8c,0x31,0xcd,0x71,0x9c,0x23,0x0,0xbe,0x4,0x20,0x36,0x8a,0x10,
+  0x7a,0xa7,0x1f,0xf0,0xfa,0xeb,0xaf,0xcb,0x7b,0xf7,0xee,0xdd,0x65,0x59,0xd6,0xdf,
+  0xe6,0xf3,0xf9,0xe7,0x2b,0x95,0xca,0x44,0x3e,0x9f,0x67,0x0,0xe0,0x79,0x1e,0x5c,
+  0xd7,0x85,0xe7,0x79,0xf0,0x7d,0x1f,0x49,0x92,0x40,0x96,0x65,0x89,0x10,0x32,0x1a,
+  0x4,0x41,0xc1,0xf7,0xfd,0x66,0xb1,0x58,0xfc,0xfe,0x81,0x7,0x1e,0x18,0x9e,0x3b,
+  0x77,0x6e,0x43,0x48,0x91,0xee,0x30,0x19,0xd2,0x9e,0x3d,0x7b,0x1a,0xaa,0xaa,0x1e,
+  0x28,0x14,0xa,0x7b,0xab,0xd5,0x6a,0xb9,0x5c,0x2e,0x43,0x51,0x14,0x50,0x4a,0x21,
+  0x49,0x12,0x8,0x21,0xeb,0x16,0x63,0xc,0x86,0x61,0x80,0x31,0x36,0x41,0x8,0x79,
+  0xb4,0x5e,0xaf,0xef,0x63,0x8c,0xe5,0x7f,0x15,0x55,0x66,0x76,0x76,0x96,0x7b,0x9e,
+  0xf7,0x64,0xa1,0x50,0x78,0xb9,0x5a,0xad,0x3e,0x55,0x2c,0x16,0xeb,0x92,0x24,0x61,
+  0x38,0x1c,0xc2,0x75,0x5d,0x2c,0x2c,0x2c,0x60,0x71,0x71,0x11,0xd7,0xae,0x5d,0x43,
+  0xb7,0xdb,0x85,0xe3,0x38,0x70,0x5d,0x37,0xfb,0xf4,0x3c,0xf,0x51,0x14,0xf5,0x7c,
+  0xdf,0x3f,0x1d,0x4,0xc1,0x47,0x51,0x14,0xfd,0xfe,0xe3,0x8f,0x3f,0xee,0x6d,0x5a,
+  0xd,0x59,0x59,0x59,0x19,0xa9,0xd5,0x6a,0xd3,0x8a,0xa2,0x3c,0x44,0x8,0xa9,0xc4,
+  0x71,0x8c,0x38,0x8e,0x91,0x24,0x9,0x84,0x10,0xf8,0xf6,0xdb,0x6f,0x31,0x31,0x31,
+  0x81,0xa9,0xa9,0x29,0x94,0x4a,0x25,0x58,0x96,0x85,0x38,0x8e,0x11,0x4,0x1,0xa2,
+  0x28,0x42,0x14,0x45,0xb8,0x74,0xe9,0x52,0xfe,0xd2,0xa5,0x4b,0xcf,0xcc,0xce,0xce,
+  0x3e,0x33,0x3b,0x3b,0xfb,0xce,0xa1,0x43,0x87,0xfe,0x21,0x8a,0xa2,0x77,0x4e,0x9d,
+  0x3a,0xd5,0xdb,0x4c,0x1a,0x22,0x3d,0xfb,0xec,0xb3,0x55,0xc3,0x30,0xe,0x8c,0x8e,
+  0x8e,0x3e,0x37,0x32,0x32,0xb2,0x2f,0x97,0xcb,0xa9,0x51,0x14,0x21,0x8e,0x63,0x84,
+  0x61,0x88,0x28,0x8a,0x70,0xe1,0xc2,0x5,0x3c,0xf7,0xdc,0x73,0x58,0x58,0x58,0x40,
+  0xaf,0xd7,0xc3,0xca,0xca,0xa,0x96,0x96,0x96,0x70,0xf9,0xf2,0x65,0x9c,0x3f,0x7f,
+  0x1e,0xdf,0x7d,0xf7,0x1d,0xda,0xed,0x36,0x8a,0xc5,0x22,0x1e,0x7d,0xf4,0x51,0x3c,
+  0xf3,0xcc,0x33,0xe8,0x76,0xbb,0x87,0x2e,0x5e,0xbc,0xf8,0xbb,0x46,0xa3,0xf1,0xcf,
+  0x8b,0x8b,0x8b,0xfe,0xa6,0x88,0x10,0xc6,0x18,0x65,0x8c,0xcd,0xd8,0xb6,0xfd,0xd7,
+  0xb6,0x6d,0xef,0x13,0x42,0x18,0x29,0x11,0xa9,0xef,0x8,0x82,0x20,0xbb,0x7e,0x72,
+  0x72,0x32,0xfb,0x39,0xc,0x43,0x4,0x41,0x80,0x66,0xb3,0x89,0xf9,0xf9,0x79,0xf4,
+  0x7a,0x3d,0x34,0x9b,0x4d,0x9c,0x39,0x73,0x6,0xf7,0xdd,0x77,0x1f,0x5e,0x7c,0xf1,
+  0x45,0x4,0x41,0xf0,0x67,0x9f,0x7f,0xfe,0xf9,0xef,0x1,0x3c,0xbf,0x29,0x8,0x69,
+  0x34,0x1a,0x8c,0x73,0x7e,0x5f,0x10,0x4,0x7f,0x11,0x4,0xc1,0x58,0x92,0x24,0xf0,
+  0x3c,0x6f,0x1d,0x21,0xbe,0xef,0x23,0x97,0xcb,0xe1,0xe8,0xd1,0xa3,0x19,0x11,0xc3,
+  0xe1,0x10,0xbe,0xef,0x83,0x73,0x8e,0x3,0x7,0xe,0xe0,0xb1,0xc7,0x1e,0xc3,0xa9,
+  0x53,0xa7,0xe0,0x38,0xe,0x0,0x60,0x6e,0x6e,0xe,0x9d,0x4e,0x7,0x2f,0xbf,0xfc,
+  0x32,0xce,0x9d,0x3b,0x77,0x78,0xff,0xfe,0xfd,0x7,0x67,0x67,0x67,0x4f,0xfe,0xe2,
+  0x53,0xe6,0xde,0x7b,0xef,0x55,0x46,0x47,0x47,0x9f,0x36,0x4d,0xf3,0xaf,0xb6,0x6f,
+  0xdf,0xae,0xe6,0xf3,0xd7,0x8b,0x44,0xaa,0xd,0x61,0x18,0x22,0x8e,0x63,0x58,0x96,
+  0x5,0xd3,0x34,0xa1,0xeb,0x3a,0x54,0x55,0x45,0x2e,0x97,0x83,0xae,0xeb,0xe8,0xf5,
+  0x7a,0xf8,0xe8,0xa3,0x8f,0x50,0x28,0x14,0x70,0xe0,0xc0,0x1,0xb4,0xdb,0x6d,0x74,
+  0x3a,0x1d,0xa4,0x26,0xe,0x0,0xa,0x85,0x2,0xce,0x9e,0x3d,0x8b,0xa5,0xa5,0xa5,
+  0xf,0x37,0x45,0xd9,0x95,0x24,0x89,0x26,0x49,0xc2,0xa3,0x28,0x82,0xe7,0x79,0xd9,
+  0x72,0x5d,0x17,0xbe,0xef,0x67,0x2b,0xc,0xc3,0x4c,0x53,0xa2,0x28,0x42,0x10,0x4,
+  0x90,0x65,0x19,0xc5,0x62,0x11,0xef,0xbd,0xf7,0x1e,0xda,0xed,0x36,0x76,0xec,0xd8,
+  0xb1,0xee,0xde,0x9d,0x4e,0x7,0xf,0x3e,0xf8,0x20,0x0,0x1c,0xda,0x14,0x3e,0x84,
+  0x73,0x2e,0x92,0x24,0x19,0x26,0x49,0xd2,0x4b,0x4d,0x97,0xef,0xfb,0x99,0x1,0x4b,
+  0x3f,0x83,0x20,0x58,0x57,0x51,0x82,0x20,0x80,0xeb,0xba,0x59,0xea,0x4,0x41,0x80,
+  0x13,0x27,0x4e,0xdc,0xf6,0x19,0xe5,0x72,0x19,0x0,0xee,0xd9,0x14,0x1a,0xd2,0x6c,
+  0x36,0x93,0xb1,0xb1,0xb1,0xae,0x10,0x62,0xd9,0x71,0x9c,0xb2,0xef,0xfb,0x94,0x10,
+  0x92,0x69,0x48,0xaa,0x23,0x69,0x19,0x4e,0xd3,0x28,0x25,0xc3,0xb6,0x6d,0xf4,0x7a,
+  0x3d,0xf4,0xfb,0x7d,0x2c,0x2d,0x2d,0xa5,0x2f,0xbf,0xe,0x9e,0xe7,0x6d,0x1e,0x1f,
+  0xa2,0x28,0x4a,0x1c,0x86,0xe1,0x85,0x24,0x49,0xfe,0xe0,0xfb,0xbe,0x65,0xdb,0xf6,
+  0x3d,0x84,0x90,0xcc,0x7f,0xa4,0xeb,0x66,0x32,0x6,0x83,0x1,0x3a,0x9d,0xe,0x56,
+  0x57,0x57,0xd1,0xe9,0x74,0xb2,0x4a,0xd4,0xed,0x76,0x6f,0xdd,0x36,0xab,0xea,0xe6,
+  0x21,0x64,0x6e,0x6e,0x2e,0x1e,0x1f,0x1f,0x3f,0x2b,0x49,0x12,0xf1,0x3c,0x6f,0xb4,
+  0xd9,0x6c,0x8e,0xb1,0xeb,0x0,0x80,0xcc,0x9c,0xa5,0x26,0xcc,0xf7,0x7d,0xc,0x6,
+  0x3,0x74,0xbb,0x5d,0x34,0x9b,0x4d,0x2c,0x2f,0x2f,0xc3,0xb6,0x6d,0x10,0x42,0xa0,
+  0xaa,0x6a,0x56,0x65,0x36,0xf3,0x6e,0x37,0xf9,0xe4,0x93,0x4f,0xae,0x4e,0x4f,0x4f,
+  0x3b,0x2b,0x2b,0x2b,0x8f,0xba,0xae,0xfb,0xe7,0x71,0x1c,0x57,0x4c,0xd3,0x94,0x28,
+  0xa5,0x48,0x92,0x4,0x49,0x92,0x20,0x8a,0xa2,0xcc,0xaa,0x77,0xbb,0x5d,0xb4,0xdb,
+  0x6d,0xac,0xae,0xae,0xa2,0xd9,0x6c,0xc2,0xf7,0x7d,0x54,0x2a,0x15,0xcc,0xcc,0xcc,
+  0xa0,0xd5,0x6a,0xdd,0x12,0x1d,0xc3,0xe1,0x10,0x0,0x3e,0xd8,0x54,0xd6,0xfd,0xad,
+  0xb7,0xde,0x72,0xe,0x1f,0x3e,0x7c,0xa9,0x50,0x28,0xcc,0x3b,0x8e,0xa3,0x8d,0x8c,
+  0x8c,0x58,0x8a,0xa2,0x80,0x10,0x2,0x21,0x4,0x82,0x20,0x80,0xe3,0x38,0xe8,0xf7,
+  0xfb,0x19,0x21,0xbd,0x5e,0xf,0x8e,0xe3,0x40,0xd3,0x34,0x54,0xab,0x55,0x4c,0x4f,
+  0x4f,0xe3,0xd3,0x4f,0x3f,0x5d,0x77,0xdf,0x4a,0xa5,0x82,0x63,0xc7,0x8e,0x6d,0x3e,
+  0x42,0x0,0xc4,0xe7,0xcf,0x9f,0x3f,0xdb,0x68,0x34,0x4e,0xb9,0xae,0x5b,0x69,0xb5,
+  0x5a,0x96,0x2c,0xcb,0x10,0x42,0x64,0xa9,0xe3,0xfb,0x3e,0x1c,0xc7,0x81,0x6d,0xdb,
+  0xb0,0x6d,0x1b,0x41,0x10,0x80,0x10,0x82,0xb1,0xb1,0xb1,0xe4,0xa5,0x97,0x5e,0x92,
+  0x96,0x97,0x97,0x11,0x45,0xd1,0x5a,0x17,0xc,0xc3,0x30,0xf0,0xe1,0x87,0x1f,0x76,
+  0x67,0x67,0x67,0xff,0x69,0xb3,0x11,0x92,0x34,0x9b,0xcd,0x4b,0xa5,0x52,0xe9,0xdb,
+  0x7e,0xbf,0xff,0xdb,0x20,0x8,0x76,0x33,0xc6,0xb2,0x12,0x9b,0xa,0x6a,0x6a,0xd7,
+  0xa3,0x28,0x2,0xa5,0x14,0x3b,0x77,0xee,0xc4,0xc1,0x83,0x7,0xa5,0x3d,0x7b,0xf6,
+  0xe0,0xb3,0xcf,0x3e,0x5b,0x77,0xc3,0xc9,0xc9,0x49,0x1c,0x39,0x72,0x4,0x84,0x90,
+  0x77,0x36,0xdd,0x6e,0xb7,0x5c,0x2e,0x8f,0xd4,0xeb,0xf5,0x1a,0x21,0x64,0x4,0x80,
+  0x62,0x18,0x6,0xca,0xe5,0x32,0x5c,0xd7,0xc5,0xe2,0xe2,0x22,0xba,0xdd,0x2e,0x5c,
+  0xd7,0x45,0x14,0x45,0xe0,0x9c,0xc3,0xb2,0x2c,0x6c,0xdf,0xbe,0x1d,0x33,0x33,0x33,
+  0x78,0xe1,0x85,0x17,0x70,0xfa,0xf4,0xe9,0x75,0xa5,0xba,0x54,0x2a,0x61,0x38,0x1c,
+  0xe2,0x8b,0x2f,0xbe,0xb8,0xb4,0x59,0x8,0x21,0x7,0xf,0x1e,0xa4,0x53,0x53,0x53,
+  0x66,0xad,0x56,0xab,0xda,0xb6,0xbd,0xf3,0xda,0xb5,0x6b,0xf,0xd8,0xb6,0x7d,0x80,
+  0x10,0xd2,0x28,0x16,0x8b,0xb8,0xff,0xfe,0xfb,0x21,0x84,0x80,0xa6,0x69,0x10,0x42,
+  0xc0,0xb6,0x6d,0x44,0x51,0x4,0xc3,0x30,0xb0,0x6d,0xdb,0x36,0x54,0xab,0x55,0xbc,
+  0xf2,0xca,0x2b,0xb8,0x72,0xe5,0xca,0xba,0x72,0xcb,0x39,0xc7,0xd4,0xd4,0x14,0xde,
+  0x7c,0xf3,0x4d,0x8,0x21,0xfe,0xee,0xf4,0xe9,0xd3,0xbd,0x5f,0x34,0x21,0x8a,0xa2,
+  0x18,0x8f,0x3f,0xfe,0xf8,0xd4,0xcc,0xcc,0xcc,0xfd,0xbb,0x77,0xef,0x1e,0x6f,0x34,
+  0x1a,0xa5,0x6e,0xb7,0xdb,0xb8,0x7c,0xf9,0xf2,0xc4,0xfc,0xfc,0xfc,0xf6,0xd5,0xd5,
+  0xd5,0xb2,0xeb,0xba,0xe0,0x9c,0xa3,0x56,0xab,0x41,0x55,0x55,0x94,0xcb,0xe5,0xb4,
+  0x5a,0x40,0xd3,0x34,0x10,0x42,0xf0,0xf0,0xc3,0xf,0x43,0x8,0x81,0x85,0x85,0x85,
+  0x75,0xf7,0x9f,0x9a,0x9a,0xc2,0xc9,0x93,0x27,0xd1,0xeb,0xf5,0xfe,0x35,0x8e,0xe3,
+  0xc2,0xe4,0xe4,0xe4,0x3d,0x17,0x2e,0x5c,0xb8,0xf4,0x4b,0x24,0x44,0xda,0xbd,0x7b,
+  0xb7,0x59,0xab,0xd5,0x1e,0xaa,0x56,0xab,0xbf,0x33,0x4d,0xf3,0xa0,0x61,0x18,0x3b,
+  0x72,0xb9,0x9c,0xa2,0xaa,0x2a,0xe3,0x9c,0x33,0xc7,0x71,0x68,0xb3,0xd9,0x94,0x96,
+  0x96,0x96,0x30,0x3f,0x3f,0xf,0xc6,0x18,0x72,0xb9,0x1c,0x76,0xed,0xda,0x85,0x38,
+  0x8e,0x41,0x29,0x85,0xef,0xfb,0xb8,0x78,0xf1,0x22,0x1e,0x79,0xe4,0x11,0x7c,0xf3,
+  0xcd,0x37,0xb7,0xd8,0x74,0xc7,0x71,0x70,0xfa,0xf4,0xe9,0x30,0x9f,0xcf,0xef,0x13,
+  0x42,0x70,0x21,0xc4,0x7,0xb2,0x2c,0xff,0xdb,0xf9,0xf3,0xe7,0xaf,0x86,0x61,0xf8,
+  0xb3,0xcd,0x70,0x7e,0xf2,0x6e,0xb7,0x5e,0xaf,0x97,0xcb,0xe5,0xf2,0x53,0xb5,0x5a,
+  0xed,0x6f,0xc6,0xc7,0xc7,0x9f,0x6c,0x34,0x1a,0x33,0x13,0x13,0x13,0xb9,0x52,0xa9,
+  0xa4,0xe8,0xba,0xce,0x75,0x5d,0xa7,0xbe,0xef,0x93,0x95,0x95,0x15,0xac,0xac,0xac,
+  0xa0,0xdf,0xef,0x63,0x38,0x1c,0x66,0x6d,0xc2,0xe1,0x70,0x88,0xe1,0x70,0x88,0x4e,
+  0xa7,0x83,0xe9,0xe9,0x69,0x54,0xab,0x55,0xac,0xae,0xae,0x66,0x62,0xb,0x0,0x7b,
+  0xf7,0xee,0xc5,0xbb,0xef,0xbe,0x8b,0xb1,0xb1,0x31,0xca,0x18,0xb3,0x84,0x10,0xd5,
+  0x24,0x49,0xa,0x61,0x18,0x12,0x49,0x92,0x3a,0xb6,0x6d,0xb7,0x7e,0x11,0x11,0xf2,
+  0xd4,0x53,0x4f,0xd1,0x76,0xbb,0xbd,0xd3,0xb2,0xac,0xe7,0xa,0x85,0xc2,0xb3,0xa3,
+  0xa3,0xa3,0xa5,0x4a,0xa5,0x82,0x30,0xc,0xd1,0x6a,0xb5,0x40,0xe9,0x75,0xbe,0x4d,
+  0xd3,0x44,0xbd,0x5e,0x47,0xa7,0xd3,0x41,0xbb,0xdd,0x86,0x6d,0xdb,0xd0,0x34,0xd,
+  0x9a,0xa6,0x65,0xd7,0x4c,0x4d,0x4d,0x61,0x62,0x62,0x22,0x4b,0xa1,0x14,0xd3,0xd3,
+  0xd3,0x78,0xff,0xfd,0xf7,0x51,0x2a,0x95,0xc0,0x18,0x83,0x69,0x9a,0x10,0x42,0x58,
+  0x41,0x10,0xfc,0x76,0x38,0x1c,0x72,0xc3,0x30,0x56,0xf7,0xed,0xdb,0x77,0xe1,0xcb,
+  0x2f,0xbf,0xc,0xef,0x36,0x21,0x92,0x6d,0xdb,0xe5,0x72,0xb9,0xbc,0xc7,0x34,0xcd,
+  0xe9,0x4a,0xa5,0x52,0x2a,0x95,0x4a,0xe0,0x9c,0x67,0xdf,0x3c,0x0,0x10,0x42,0x10,
+  0xc7,0x31,0x46,0x47,0x47,0xe1,0x38,0xe,0xae,0x5c,0xb9,0x82,0x76,0xbb,0x8d,0x76,
+  0xbb,0x9d,0xf5,0x37,0x52,0xed,0x28,0x14,0xa,0x70,0xdd,0xff,0x9d,0x4b,0x8d,0x8c,
+  0x8c,0xe0,0xe2,0xc5,0x8b,0x58,0x5c,0x5c,0xcc,0x36,0x78,0x9c,0x73,0xe8,0xba,0xe,
+  0xd3,0x34,0xd5,0x5e,0xaf,0x37,0x15,0x86,0xe1,0x6f,0x3c,0xcf,0xfb,0xf,0x4a,0xe9,
+  0x42,0x1c,0xc7,0xc1,0x5d,0x23,0xa4,0x5e,0xaf,0xab,0x0,0x26,0x75,0x5d,0x9f,0x2e,
+  0x16,0x8b,0xe5,0x42,0xa1,0x90,0x69,0x41,0xea,0x29,0x84,0x10,0x48,0x92,0x4,0x0,
+  0x90,0xcb,0xe5,0x30,0x3e,0x3e,0xe,0xce,0x39,0x4c,0xd3,0xcc,0xb6,0xf8,0x71,0x1c,
+  0x67,0x4d,0x9f,0xd1,0xd1,0x51,0x9c,0x3b,0x77,0x6e,0xed,0x33,0xf0,0xc1,0x7,0x1f,
+  0xa0,0x50,0x28,0x64,0x76,0x3f,0xbd,0x56,0x55,0x55,0xe8,0xba,0x9e,0xb,0xc3,0x70,
+  0xb7,0xe7,0x79,0xd3,0x96,0x65,0xf5,0x3a,0x9d,0x4e,0xf3,0xae,0x11,0x42,0x8,0xc9,
+  0x11,0x42,0x76,0x53,0x4a,0xa7,0x72,0xb9,0x5c,0x21,0x97,0xcb,0x41,0x92,0x24,0xf8,
+  0xbe,0xf,0xd7,0x75,0x21,0x84,0x0,0xa5,0x34,0x73,0xa5,0x84,0x10,0xe8,0xba,0x8e,
+  0x5a,0xad,0x6,0xd3,0x34,0xb3,0xe6,0x50,0x1c,0xc7,0xd9,0x35,0x37,0xef,0x60,0xd,
+  0xc3,0xc0,0x95,0x2b,0x57,0x50,0x28,0x14,0x32,0x13,0x27,0x49,0x12,0x84,0x10,0xe0,
+  0x9c,0x43,0x51,0x14,0x85,0x52,0xba,0x3,0xc0,0x6f,0x28,0xa5,0xff,0xd,0xe0,0xee,
+  0x11,0x12,0x86,0xa1,0x16,0x4,0xc1,0x2e,0x0,0xbb,0x2c,0xcb,0x52,0x4d,0xd3,0x84,
+  0x24,0x49,0xe8,0xf7,0xfb,0xb0,0x6d,0x3b,0x8b,0x4,0x4a,0x29,0xa2,0x28,0xca,0x22,
+  0xc5,0x30,0xc,0xe8,0xba,0x9e,0x45,0x4f,0xba,0x6e,0x87,0x94,0xb8,0xb4,0xe7,0xea,
+  0x38,0xe,0x28,0xa5,0x90,0x65,0x39,0x4d,0x1d,0xd2,0xe9,0x74,0xc6,0xe2,0x38,0xbe,
+  0x9f,0x52,0x5a,0xbc,0xab,0x1a,0x22,0x49,0x92,0x26,0x84,0x68,0x50,0x4a,0x1b,0xa6,
+  0x69,0x32,0xd3,0x34,0x11,0x4,0x1,0x6,0x83,0x1,0xda,0xed,0x36,0xc,0xc3,0x80,
+  0x61,0x18,0x59,0x94,0xa4,0xbd,0x90,0x34,0xe4,0x1,0x64,0x7d,0x91,0xb5,0xd8,0xbb,
+  0x77,0xef,0xba,0x2e,0x5a,0x7a,0x9d,0xef,0xfb,0x18,0xe,0x87,0x60,0x8c,0x81,0x31,
+  0x6,0x45,0x51,0xa0,0x69,0x1a,0xe1,0x9c,0x8f,0x10,0x42,0xb6,0xb,0x21,0xac,0xbb,
+  0x49,0x8,0x29,0x14,0xa,0x5,0x55,0x55,0x4b,0x9a,0xa6,0x29,0x9a,0xa6,0x41,0x96,
+  0xe5,0xac,0x73,0xde,0x6a,0xb5,0x20,0x84,0x40,0xa5,0x52,0xb9,0x85,0x80,0xb4,0x17,
+  0x92,0xf6,0x43,0xd2,0xe8,0xe0,0x9c,0xe3,0x8d,0x37,0xde,0xb8,0x65,0x72,0x97,0x56,
+  0xa1,0xb4,0x37,0xcb,0x39,0xcf,0xb4,0x84,0x31,0x6,0x59,0x96,0x19,0xe7,0xbc,0xac,
+  0xaa,0x6a,0xb5,0x52,0xa9,0xe4,0x56,0x57,0x57,0x7,0x1b,0x4e,0x48,0xb5,0x5a,0xd5,
+  0xf3,0xf9,0x7c,0x3d,0x9f,0xcf,0xe7,0x53,0xed,0x48,0x5f,0x30,0xdd,0xb9,0xaa,0xaa,
+  0xba,0x4e,0x4,0xd7,0x76,0xca,0x6e,0xb7,0x52,0xdd,0x91,0x65,0x19,0x94,0x52,0x18,
+  0x86,0x91,0xfd,0x7d,0xda,0x6a,0x5c,0x3b,0xc6,0x58,0x4b,0xa4,0xa2,0x28,0x39,0x55,
+  0x55,0xb7,0xfb,0xbe,0x5f,0x3,0x70,0x11,0x40,0xbc,0x91,0x4d,0x66,0xaa,0x69,0x5a,
+  0x59,0xd7,0xf5,0x31,0xd3,0x34,0xad,0x34,0x2d,0xd6,0xf6,0x44,0xd3,0xa,0x72,0x73,
+  0xcb,0xf0,0xe6,0x75,0x73,0xea,0xfc,0xd0,0x35,0xe9,0x70,0xeb,0x66,0x31,0xa6,0x94,
+  0x82,0x73,0xae,0x50,0x4a,0xab,0x84,0x90,0x2a,0x0,0x65,0xa3,0x23,0x84,0x1,0xa8,
+  0x53,0x4a,0xc7,0x74,0x5d,0xcf,0xe9,0xba,0xe,0x4a,0x69,0xd6,0xec,0xf1,0x3c,0xf,
+  0x41,0x10,0x64,0x4e,0x73,0x6d,0x15,0xb9,0xdd,0xcb,0xa,0x21,0x60,0x59,0x16,0x8,
+  0x21,0x59,0x83,0xa8,0xdb,0xed,0x66,0xc4,0xe,0x6,0x3,0xd4,0x6a,0x35,0xc8,0xb2,
+  0x8c,0x20,0x8,0xb2,0x21,0x97,0xa2,0x28,0x19,0x21,0x8c,0x31,0x4e,0x8,0x29,0xa,
+  0x21,0x2a,0x8c,0x31,0x2d,0x8a,0x22,0x67,0xc3,0x8,0x91,0x24,0x89,0x13,0x42,0x46,
+  0x25,0x49,0xaa,0xeb,0xba,0x6e,0xac,0x8d,0x90,0x54,0xc,0xd3,0x6f,0xd3,0xf3,0x3c,
+  0xa8,0xaa,0xfa,0x47,0x9,0x49,0x23,0xa8,0x50,0x28,0x60,0x72,0x72,0x12,0xdb,0xb6,
+  0x6d,0xc3,0xf2,0xf2,0x32,0x96,0x97,0x97,0x71,0xed,0xda,0x35,0x4,0x41,0x80,0x85,
+  0x85,0x5,0x1c,0x3f,0x7e,0x1c,0x3b,0x76,0xec,0xc8,0xbc,0x4d,0x3a,0x23,0x4e,0x53,
+  0x86,0x73,0xce,0x9,0x21,0xa5,0x24,0x49,0x2a,0x42,0x8,0x6d,0x43,0xe7,0x32,0x42,
+  0x8,0x16,0x45,0x51,0x5e,0x8,0x51,0xd4,0x34,0x4d,0x35,0xc,0x63,0x9d,0x86,0xa4,
+  0x2f,0x9b,0x46,0x8c,0xef,0xfb,0xb7,0x54,0x92,0xdb,0x55,0x99,0xe9,0xe9,0x69,0x74,
+  0x3a,0x1d,0xb4,0x5a,0x2d,0x5c,0xbd,0x7a,0x15,0xfd,0x7e,0x1f,0xba,0xae,0xe3,0x89,
+  0x27,0x9e,0xc8,0xca,0xee,0xda,0xfb,0xa7,0xfa,0x72,0x43,0x43,0x64,0x42,0x48,0x29,
+  0x8a,0xa2,0x8a,0x10,0x42,0xdd,0x50,0x42,0x0,0xd0,0x38,0x8e,0x73,0x84,0x90,0xbc,
+  0xaa,0xaa,0x8a,0xa6,0x69,0x60,0x8c,0xad,0x13,0xba,0xb4,0x4c,0x3a,0x8e,0x83,0x30,
+  0xc,0x7f,0x34,0x65,0xd2,0x6f,0xfa,0x87,0x10,0x4,0xc1,0x2d,0x91,0x95,0xb6,0x14,
+  0x39,0xe7,0x8c,0x10,0x52,0x16,0x42,0xfc,0x64,0x42,0xfe,0x4f,0x1a,0x92,0x24,0x49,
+  0x91,0x10,0x52,0xd6,0x34,0x8d,0xa7,0x55,0x26,0xc,0x43,0xc8,0xb2,0xc,0x59,0x96,
+  0xa1,0x28,0xa,0x24,0x49,0xca,0xaa,0xc3,0x8f,0x9,0xe6,0x9f,0xd4,0x8b,0x4c,0x12,
+  0x48,0x92,0x4,0xce,0x39,0x18,0x63,0xd9,0x9,0xa4,0x1b,0x9e,0x84,0x12,0x42,0xa,
+  0x42,0x88,0x2a,0x0,0x6d,0xa3,0x9,0xe1,0x84,0x90,0x5a,0x92,0x24,0xd,0xc6,0x18,
+  0x53,0x14,0x25,0xfb,0x67,0x29,0xa5,0xd0,0x75,0x1d,0xb9,0x5c,0x2e,0xcd,0xed,0xac,
+  0xc3,0xfe,0xa7,0x54,0x92,0x1f,0xd9,0x2a,0x40,0x51,0x94,0xec,0x38,0xd6,0xd,0x3d,
+  0xcb,0x16,0x80,0x5c,0x92,0x24,0xa3,0x0,0x36,0x36,0x42,0x34,0x4d,0xe3,0x8c,0xb1,
+  0x9a,0xef,0xfb,0xd6,0xca,0xca,0xa,0xe6,0xe7,0xe7,0x21,0x84,0xc8,0xc6,0x9,0xe9,
+  0xc4,0x2d,0xb5,0xd7,0x9c,0xf3,0x5b,0xdc,0xea,0xf,0x39,0xd5,0x3f,0xda,0xbe,0x8f,
+  0xe3,0xec,0x48,0x85,0x10,0x2,0xc3,0xe1,0x30,0x3b,0xa3,0x66,0xdb,0x36,0x3c,0xcf,
+  0xa3,0x0,0xaa,0x94,0x52,0x75,0x6d,0x97,0xfe,0x8e,0x13,0x52,0xa9,0x54,0xc0,0x18,
+  0x13,0xb6,0x6d,0xe3,0xeb,0xaf,0xbf,0xc6,0xdc,0xdc,0x5c,0xe6,0x40,0xc3,0x30,0xc4,
+  0x60,0x70,0xdd,0x28,0xd6,0x6a,0xb5,0xf4,0x8c,0x18,0x14,0x45,0xb9,0x2d,0x1,0x6b,
+  0x7f,0x3f,0x73,0xe6,0xc,0xea,0xf5,0x3a,0x86,0xc3,0x21,0x8a,0xc5,0x22,0xe2,0x38,
+  0x46,0xbf,0xdf,0xc7,0xf1,0xe3,0xc7,0x1,0x20,0x73,0xc0,0xa9,0x5b,0xa5,0x94,0x66,
+  0xd1,0x17,0x45,0x11,0x1c,0xc7,0x1,0x21,0x44,0x28,0x8a,0x82,0xd,0x25,0x24,0x9f,
+  0xcf,0xf,0x3d,0xcf,0xfb,0xc3,0x60,0x30,0xd0,0xba,0xdd,0xee,0xba,0x93,0x40,0x37,
+  0x22,0x60,0xb7,0xa6,0x69,0xbb,0x18,0x63,0x50,0x55,0x15,0xbe,0xef,0xc3,0xb2,0x2c,
+  0xc8,0xb2,0x9c,0xe5,0x7c,0x4a,0x46,0x5a,0x25,0xba,0xdd,0x2e,0xbe,0xfa,0xea,0x2b,
+  0x1c,0x3b,0x76,0xc,0xed,0x76,0xfb,0x16,0x1f,0xa2,0x28,0xa,0x5a,0xad,0x16,0x3a,
+  0x9d,0xe,0x6,0x83,0xc1,0x32,0x80,0xb3,0x84,0x10,0x77,0xed,0x4e,0xfa,0x86,0xa6,
+  0xcc,0x71,0xce,0x97,0x37,0x34,0x65,0xa2,0x28,0xea,0x32,0xc6,0xfe,0xc5,0xf7,0xfd,
+  0x13,0xe9,0x94,0x3e,0xb5,0xe7,0x8c,0x31,0x58,0x96,0xf5,0x62,0x14,0x45,0x7f,0xdf,
+  0x6a,0xb5,0xf2,0x8e,0xe3,0x60,0x71,0x71,0x11,0xf9,0x7c,0x1e,0x96,0x65,0xc1,0xb2,
+  0x2c,0xe8,0xba,0x9e,0x69,0xb,0xe7,0x1c,0xb2,0x2c,0xa3,0xdd,0x6e,0x67,0x4e,0x37,
+  0x8,0x82,0x4c,0x30,0x7d,0xdf,0xcf,0x6,0x58,0x8e,0xe3,0xa4,0x43,0xac,0x7f,0x77,
+  0x5d,0xf7,0x1f,0x85,0x10,0xcd,0xb5,0xfa,0x72,0xa3,0xfc,0xe,0x55,0x55,0xbd,0xfa,
+  0x93,0xc6,0x6,0x3f,0x77,0xd7,0x7a,0x62,0x62,0xe2,0x91,0x28,0x8a,0x5e,0x4e,0x92,
+  0xa4,0x11,0x86,0xa1,0x25,0xcb,0xf2,0x88,0xae,0xeb,0xa6,0x69,0x9a,0x5a,0x2e,0x97,
+  0x53,0x34,0x4d,0x53,0x25,0x49,0x52,0x9,0x21,0x3c,0x25,0x44,0x92,0xa4,0x6c,0xf3,
+  0xe6,0xba,0x6e,0x12,0x45,0x51,0xe8,0x38,0x4e,0xd0,0xed,0x76,0x87,0xfd,0x7e,0xbf,
+  0xef,0x38,0xce,0x0,0x40,0x8f,0x10,0xd2,0xa3,0x94,0x1e,0xe9,0x76,0xbb,0xef,0xdd,
+  0xa9,0x59,0xd2,0xcf,0x3e,0xa8,0xaa,0xd7,0xeb,0x5f,0x5f,0xbd,0x7a,0xb5,0x1b,0x4,
+  0x41,0x25,0x49,0x92,0x6d,0x41,0x10,0x4c,0xc4,0x71,0x5c,0x77,0x5d,0x77,0xa4,0xd9,
+  0x6c,0x9a,0x94,0x52,0xb,0x40,0x5e,0x8,0x91,0x7,0x30,0x2,0xc0,0x4,0x20,0x25,
+  0xd7,0x4d,0x4c,0x53,0x8,0xd1,0x8a,0xe3,0xd8,0x8d,0xa2,0x68,0x18,0xc7,0xf1,0x6a,
+  0x14,0x45,0xd7,0x84,0x10,0xcb,0x92,0x24,0x7d,0x2f,0x49,0xd2,0xf7,0x8c,0xb1,0xb9,
+  0x3b,0x39,0x5c,0xbb,0x93,0x7,0x77,0x49,0x2e,0x97,0x2b,0x71,0xce,0xab,0x51,0x14,
+  0x15,0x93,0x24,0xc9,0x5,0x41,0xa0,0xb,0x21,0x74,0x21,0x84,0x1,0xc0,0x10,0x42,
+  0x98,0x84,0x10,0x4d,0x8,0x41,0xc4,0x75,0x41,0xb0,0x6f,0x2c,0x1f,0x80,0x47,0x29,
+  0xed,0x72,0xce,0xbb,0x92,0x24,0x75,0x74,0x5d,0x5f,0x3d,0x74,0xe8,0xd0,0xea,0xd1,
+  0xa3,0x47,0x63,0x6c,0x61,0xb,0x5b,0xd8,0xc2,0x16,0xb6,0xb0,0x85,0x2d,0x6c,0x61,
+  0xb,0xff,0xef,0xf0,0x3f,0xa5,0x5b,0xfc,0x85,0xc7,0xa6,0x58,0x6f,0x0,0x0,0x0,
+  0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/maemo/tietoopcom/resources/account.png
+  0x0,0x0,0x2a,0xf9,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x48,0x0,0x0,0x0,0x3e,0x8,0x6,0x0,0x0,0x0,0x88,0x96,0x5d,0x9b,
+  0x0,0x0,0xa,0x4d,0x69,0x43,0x43,0x50,0x50,0x68,0x6f,0x74,0x6f,0x73,0x68,0x6f,
+  0x70,0x20,0x49,0x43,0x43,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x0,0x0,0x78,
+  0xda,0x9d,0x53,0x77,0x58,0x93,0xf7,0x16,0x3e,0xdf,0xf7,0x65,0xf,0x56,0x42,0xd8,
+  0xf0,0xb1,0x97,0x6c,0x81,0x0,0x22,0x23,0xac,0x8,0xc8,0x10,0x59,0xa2,0x10,0x92,
+  0x0,0x61,0x84,0x10,0x12,0x40,0xc5,0x85,0x88,0xa,0x56,0x14,0x15,0x11,0x9c,0x48,
+  0x55,0xc4,0x82,0xd5,0xa,0x48,0x9d,0x88,0xe2,0xa0,0x28,0xb8,0x67,0x41,0x8a,0x88,
+  0x5a,0x8b,0x55,0x5c,0x38,0xee,0x1f,0xdc,0xa7,0xb5,0x7d,0x7a,0xef,0xed,0xed,0xfb,
+  0xd7,0xfb,0xbc,0xe7,0x9c,0xe7,0xfc,0xce,0x79,0xcf,0xf,0x80,0x11,0x12,0x26,0x91,
+  0xe6,0xa2,0x6a,0x0,0x39,0x52,0x85,0x3c,0x3a,0xd8,0x1f,0x8f,0x4f,0x48,0xc4,0xc9,
+  0xbd,0x80,0x2,0x15,0x48,0xe0,0x4,0x20,0x10,0xe6,0xcb,0xc2,0x67,0x5,0xc5,0x0,
+  0x0,0xf0,0x3,0x79,0x78,0x7e,0x74,0xb0,0x3f,0xfc,0x1,0xaf,0x6f,0x0,0x2,0x0,
+  0x70,0xd5,0x2e,0x24,0x12,0xc7,0xe1,0xff,0x83,0xba,0x50,0x26,0x57,0x0,0x20,0x91,
+  0x0,0xe0,0x22,0x12,0xe7,0xb,0x1,0x90,0x52,0x0,0xc8,0x2e,0x54,0xc8,0x14,0x0,
+  0xc8,0x18,0x0,0xb0,0x53,0xb3,0x64,0xa,0x0,0x94,0x0,0x0,0x6c,0x79,0x7c,0x42,
+  0x22,0x0,0xaa,0xd,0x0,0xec,0xf4,0x49,0x3e,0x5,0x0,0xd8,0xa9,0x93,0xdc,0x17,
+  0x0,0xd8,0xa2,0x1c,0xa9,0x8,0x0,0x8d,0x1,0x0,0x99,0x28,0x47,0x24,0x2,0x40,
+  0xbb,0x0,0x60,0x55,0x81,0x52,0x2c,0x2,0xc0,0xc2,0x0,0xa0,0xac,0x40,0x22,0x2e,
+  0x4,0xc0,0xae,0x1,0x80,0x59,0xb6,0x32,0x47,0x2,0x80,0xbd,0x5,0x0,0x76,0x8e,
+  0x58,0x90,0xf,0x40,0x60,0x0,0x80,0x99,0x42,0x2c,0xcc,0x0,0x20,0x38,0x2,0x0,
+  0x43,0x1e,0x13,0xcd,0x3,0x20,0x4c,0x3,0xa0,0x30,0xd2,0xbf,0xe0,0xa9,0x5f,0x70,
+  0x85,0xb8,0x48,0x1,0x0,0xc0,0xcb,0x95,0xcd,0x97,0x4b,0xd2,0x33,0x14,0xb8,0x95,
+  0xd0,0x1a,0x77,0xf2,0xf0,0xe0,0xe2,0x21,0xe2,0xc2,0x6c,0xb1,0x42,0x61,0x17,0x29,
+  0x10,0x66,0x9,0xe4,0x22,0x9c,0x97,0x9b,0x23,0x13,0x48,0xe7,0x3,0x4c,0xce,0xc,
+  0x0,0x0,0x1a,0xf9,0xd1,0xc1,0xfe,0x38,0x3f,0x90,0xe7,0xe6,0xe4,0xe1,0xe6,0x66,
+  0xe7,0x6c,0xef,0xf4,0xc5,0xa2,0xfe,0x6b,0xf0,0x6f,0x22,0x3e,0x21,0xf1,0xdf,0xfe,
+  0xbc,0x8c,0x2,0x4,0x0,0x10,0x4e,0xcf,0xef,0xda,0x5f,0xe5,0xe5,0xd6,0x3,0x70,
+  0xc7,0x1,0xb0,0x75,0xbf,0x6b,0xa9,0x5b,0x0,0xda,0x56,0x0,0x68,0xdf,0xf9,0x5d,
+  0x33,0xdb,0x9,0xa0,0x5a,0xa,0xd0,0x7a,0xf9,0x8b,0x79,0x38,0xfc,0x40,0x1e,0x9e,
+  0xa1,0x50,0xc8,0x3c,0x1d,0x1c,0xa,0xb,0xb,0xed,0x25,0x62,0xa1,0xbd,0x30,0xe3,
+  0x8b,0x3e,0xff,0x33,0xe1,0x6f,0xe0,0x8b,0x7e,0xf6,0xfc,0x40,0x1e,0xfe,0xdb,0x7a,
+  0xf0,0x0,0x71,0x9a,0x40,0x99,0xad,0xc0,0xa3,0x83,0xfd,0x71,0x61,0x6e,0x76,0xae,
+  0x52,0x8e,0xe7,0xcb,0x4,0x42,0x31,0x6e,0xf7,0xe7,0x23,0xfe,0xc7,0x85,0x7f,0xfd,
+  0x8e,0x29,0xd1,0xe2,0x34,0xb1,0x5c,0x2c,0x15,0x8a,0xf1,0x58,0x89,0xb8,0x50,0x22,
+  0x4d,0xc7,0x79,0xb9,0x52,0x91,0x44,0x21,0xc9,0x95,0xe2,0x12,0xe9,0x7f,0x32,0xf1,
+  0x1f,0x96,0xfd,0x9,0x93,0x77,0xd,0x0,0xac,0x86,0x4f,0xc0,0x4e,0xb6,0x7,0xb5,
+  0xcb,0x6c,0xc0,0x7e,0xee,0x1,0x2,0x8b,0xe,0x58,0xd2,0x76,0x0,0x40,0x7e,0xf3,
+  0x2d,0x8c,0x1a,0xb,0x91,0x0,0x10,0x67,0x34,0x32,0x79,0xf7,0x0,0x0,0x93,0xbf,
+  0xf9,0x8f,0x40,0x2b,0x1,0x0,0xcd,0x97,0xa4,0xe3,0x0,0x0,0xbc,0xe8,0x18,0x5c,
+  0xa8,0x94,0x17,0x4c,0xc6,0x8,0x0,0x0,0x44,0xa0,0x81,0x2a,0xb0,0x41,0x7,0xc,
+  0xc1,0x14,0xac,0xc0,0xe,0x9c,0xc1,0x1d,0xbc,0xc0,0x17,0x2,0x61,0x6,0x44,0x40,
+  0xc,0x24,0xc0,0x3c,0x10,0x42,0x6,0xe4,0x80,0x1c,0xa,0xa1,0x18,0x96,0x41,0x19,
+  0x54,0xc0,0x3a,0xd8,0x4,0xb5,0xb0,0x3,0x1a,0xa0,0x11,0x9a,0xe1,0x10,0xb4,0xc1,
+  0x31,0x38,0xd,0xe7,0xe0,0x12,0x5c,0x81,0xeb,0x70,0x17,0x6,0x60,0x18,0x9e,0xc2,
+  0x18,0xbc,0x86,0x9,0x4,0x41,0xc8,0x8,0x13,0x61,0x21,0x3a,0x88,0x11,0x62,0x8e,
+  0xd8,0x22,0xce,0x8,0x17,0x99,0x8e,0x4,0x22,0x61,0x48,0x34,0x92,0x80,0xa4,0x20,
+  0xe9,0x88,0x14,0x51,0x22,0xc5,0xc8,0x72,0xa4,0x2,0xa9,0x42,0x6a,0x91,0x5d,0x48,
+  0x23,0xf2,0x2d,0x72,0x14,0x39,0x8d,0x5c,0x40,0xfa,0x90,0xdb,0xc8,0x20,0x32,0x8a,
+  0xfc,0x8a,0xbc,0x47,0x31,0x94,0x81,0xb2,0x51,0x3,0xd4,0x2,0x75,0x40,0xb9,0xa8,
+  0x1f,0x1a,0x8a,0xc6,0xa0,0x73,0xd1,0x74,0x34,0xf,0x5d,0x80,0x96,0xa2,0x6b,0xd1,
+  0x1a,0xb4,0x1e,0x3d,0x80,0xb6,0xa2,0xa7,0xd1,0x4b,0xe8,0x75,0x74,0x0,0x7d,0x8a,
+  0x8e,0x63,0x80,0xd1,0x31,0xe,0x66,0x8c,0xd9,0x61,0x5c,0x8c,0x87,0x45,0x60,0x89,
+  0x58,0x1a,0x26,0xc7,0x16,0x63,0xe5,0x58,0x35,0x56,0x8f,0x35,0x63,0x1d,0x58,0x37,
+  0x76,0x15,0x1b,0xc0,0x9e,0x61,0xef,0x8,0x24,0x2,0x8b,0x80,0x13,0xec,0x8,0x5e,
+  0x84,0x10,0xc2,0x6c,0x82,0x90,0x90,0x47,0x58,0x4c,0x58,0x43,0xa8,0x25,0xec,0x23,
+  0xb4,0x12,0xba,0x8,0x57,0x9,0x83,0x84,0x31,0xc2,0x27,0x22,0x93,0xa8,0x4f,0xb4,
+  0x25,0x7a,0x12,0xf9,0xc4,0x78,0x62,0x3a,0xb1,0x90,0x58,0x46,0xac,0x26,0xee,0x21,
+  0x1e,0x21,0x9e,0x25,0x5e,0x27,0xe,0x13,0x5f,0x93,0x48,0x24,0xe,0xc9,0x92,0xe4,
+  0x4e,0xa,0x21,0x25,0x90,0x32,0x49,0xb,0x49,0x6b,0x48,0xdb,0x48,0x2d,0xa4,0x53,
+  0xa4,0x3e,0xd2,0x10,0x69,0x9c,0x4c,0x26,0xeb,0x90,0x6d,0xc9,0xde,0xe4,0x8,0xb2,
+  0x80,0xac,0x20,0x97,0x91,0xb7,0x90,0xf,0x90,0x4f,0x92,0xfb,0xc9,0xc3,0xe4,0xb7,
+  0x14,0x3a,0xc5,0x88,0xe2,0x4c,0x9,0xa2,0x24,0x52,0xa4,0x94,0x12,0x4a,0x35,0x65,
+  0x3f,0xe5,0x4,0xa5,0x9f,0x32,0x42,0x99,0xa0,0xaa,0x51,0xcd,0xa9,0x9e,0xd4,0x8,
+  0xaa,0x88,0x3a,0x9f,0x5a,0x49,0x6d,0xa0,0x76,0x50,0x2f,0x53,0x87,0xa9,0x13,0x34,
+  0x75,0x9a,0x25,0xcd,0x9b,0x16,0x43,0xcb,0xa4,0x2d,0xa3,0xd5,0xd0,0x9a,0x69,0x67,
+  0x69,0xf7,0x68,0x2f,0xe9,0x74,0xba,0x9,0xdd,0x83,0x1e,0x45,0x97,0xd0,0x97,0xd2,
+  0x6b,0xe8,0x7,0xe9,0xe7,0xe9,0x83,0xf4,0x77,0xc,0xd,0x86,0xd,0x83,0xc7,0x48,
+  0x62,0x28,0x19,0x6b,0x19,0x7b,0x19,0xa7,0x18,0xb7,0x19,0x2f,0x99,0x4c,0xa6,0x5,
+  0xd3,0x97,0x99,0xc8,0x54,0x30,0xd7,0x32,0x1b,0x99,0x67,0x98,0xf,0x98,0x6f,0x55,
+  0x58,0x2a,0xf6,0x2a,0x7c,0x15,0x91,0xca,0x12,0x95,0x3a,0x95,0x56,0x95,0x7e,0x95,
+  0xe7,0xaa,0x54,0x55,0x73,0x55,0x3f,0xd5,0x79,0xaa,0xb,0x54,0xab,0x55,0xf,0xab,
+  0x5e,0x56,0x7d,0xa6,0x46,0x55,0xb3,0x50,0xe3,0xa9,0x9,0xd4,0x16,0xab,0xd5,0xa9,
+  0x1d,0x55,0xbb,0xa9,0x36,0xae,0xce,0x52,0x77,0x52,0x8f,0x50,0xcf,0x51,0x5f,0xa3,
+  0xbe,0x5f,0xfd,0x82,0xfa,0x63,0xd,0xb2,0x86,0x85,0x46,0xa0,0x86,0x48,0xa3,0x54,
+  0x63,0xb7,0xc6,0x19,0x8d,0x21,0x16,0xc6,0x32,0x65,0xf1,0x58,0x42,0xd6,0x72,0x56,
+  0x3,0xeb,0x2c,0x6b,0x98,0x4d,0x62,0x5b,0xb2,0xf9,0xec,0x4c,0x76,0x5,0xfb,0x1b,
+  0x76,0x2f,0x7b,0x4c,0x53,0x43,0x73,0xaa,0x66,0xac,0x66,0x91,0x66,0x9d,0xe6,0x71,
+  0xcd,0x1,0xe,0xc6,0xb1,0xe0,0xf0,0x39,0xd9,0x9c,0x4a,0xce,0x21,0xce,0xd,0xce,
+  0x7b,0x2d,0x3,0x2d,0x3f,0x2d,0xb1,0xd6,0x6a,0xad,0x66,0xad,0x7e,0xad,0x37,0xda,
+  0x7a,0xda,0xbe,0xda,0x62,0xed,0x72,0xed,0x16,0xed,0xeb,0xda,0xef,0x75,0x70,0x9d,
+  0x40,0x9d,0x2c,0x9d,0xf5,0x3a,0x6d,0x3a,0xf7,0x75,0x9,0xba,0x36,0xba,0x51,0xba,
+  0x85,0xba,0xdb,0x75,0xcf,0xea,0x3e,0xd3,0x63,0xeb,0x79,0xe9,0x9,0xf5,0xca,0xf5,
+  0xe,0xe9,0xdd,0xd1,0x47,0xf5,0x6d,0xf4,0xa3,0xf5,0x17,0xea,0xef,0xd6,0xef,0xd1,
+  0x1f,0x37,0x30,0x34,0x8,0x36,0x90,0x19,0x6c,0x31,0x38,0x63,0xf0,0xcc,0x90,0x63,
+  0xe8,0x6b,0x98,0x69,0xb8,0xd1,0xf0,0x84,0xe1,0xa8,0x11,0xcb,0x68,0xba,0x91,0xc4,
+  0x68,0xa3,0xd1,0x49,0xa3,0x27,0xb8,0x26,0xee,0x87,0x67,0xe3,0x35,0x78,0x17,0x3e,
+  0x66,0xac,0x6f,0x1c,0x62,0xac,0x34,0xde,0x65,0xdc,0x6b,0x3c,0x61,0x62,0x69,0x32,
+  0xdb,0xa4,0xc4,0xa4,0xc5,0xe4,0xbe,0x29,0xcd,0x94,0x6b,0x9a,0x66,0xba,0xd1,0xb4,
+  0xd3,0x74,0xcc,0xcc,0xc8,0x2c,0xdc,0xac,0xd8,0xac,0xc9,0xec,0x8e,0x39,0xd5,0x9c,
+  0x6b,0x9e,0x61,0xbe,0xd9,0xbc,0xdb,0xfc,0x8d,0x85,0xa5,0x45,0x9c,0xc5,0x4a,0x8b,
+  0x36,0x8b,0xc7,0x96,0xda,0x96,0x7c,0xcb,0x5,0x96,0x4d,0x96,0xf7,0xac,0x98,0x56,
+  0x3e,0x56,0x79,0x56,0xf5,0x56,0xd7,0xac,0x49,0xd6,0x5c,0xeb,0x2c,0xeb,0x6d,0xd6,
+  0x57,0x6c,0x50,0x1b,0x57,0x9b,0xc,0x9b,0x3a,0x9b,0xcb,0xb6,0xa8,0xad,0x9b,0xad,
+  0xc4,0x76,0x9b,0x6d,0xdf,0x14,0xe2,0x14,0x8f,0x29,0xd2,0x29,0xf5,0x53,0x6e,0xda,
+  0x31,0xec,0xfc,0xec,0xa,0xec,0x9a,0xec,0x6,0xed,0x39,0xf6,0x61,0xf6,0x25,0xf6,
+  0x6d,0xf6,0xcf,0x1d,0xcc,0x1c,0x12,0x1d,0xd6,0x3b,0x74,0x3b,0x7c,0x72,0x74,0x75,
+  0xcc,0x76,0x6c,0x70,0xbc,0xeb,0xa4,0xe1,0x34,0xc3,0xa9,0xc4,0xa9,0xc3,0xe9,0x57,
+  0x67,0x1b,0x67,0xa1,0x73,0x9d,0xf3,0x35,0x17,0xa6,0x4b,0x90,0xcb,0x12,0x97,0x76,
+  0x97,0x17,0x53,0x6d,0xa7,0x8a,0xa7,0x6e,0x9f,0x7a,0xcb,0x95,0xe5,0x1a,0xee,0xba,
+  0xd2,0xb5,0xd3,0xf5,0xa3,0x9b,0xbb,0x9b,0xdc,0xad,0xd9,0x6d,0xd4,0xdd,0xcc,0x3d,
+  0xc5,0x7d,0xab,0xfb,0x4d,0x2e,0x9b,0x1b,0xc9,0x5d,0xc3,0x3d,0xef,0x41,0xf4,0xf0,
+  0xf7,0x58,0xe2,0x71,0xcc,0xe3,0x9d,0xa7,0x9b,0xa7,0xc2,0xf3,0x90,0xe7,0x2f,0x5e,
+  0x76,0x5e,0x59,0x5e,0xfb,0xbd,0x1e,0x4f,0xb3,0x9c,0x26,0x9e,0xd6,0x30,0x6d,0xc8,
+  0xdb,0xc4,0x5b,0xe0,0xbd,0xcb,0x7b,0x60,0x3a,0x3e,0x3d,0x65,0xfa,0xce,0xe9,0x3,
+  0x3e,0xc6,0x3e,0x2,0x9f,0x7a,0x9f,0x87,0xbe,0xa6,0xbe,0x22,0xdf,0x3d,0xbe,0x23,
+  0x7e,0xd6,0x7e,0x99,0x7e,0x7,0xfc,0x9e,0xfb,0x3b,0xfa,0xcb,0xfd,0x8f,0xf8,0xbf,
+  0xe1,0x79,0xf2,0x16,0xf1,0x4e,0x5,0x60,0x1,0xc1,0x1,0xe5,0x1,0xbd,0x81,0x1a,
+  0x81,0xb3,0x3,0x6b,0x3,0x1f,0x4,0x99,0x4,0xa5,0x7,0x35,0x5,0x8d,0x5,0xbb,
+  0x6,0x2f,0xc,0x3e,0x15,0x42,0xc,0x9,0xd,0x59,0x1f,0x72,0x93,0x6f,0xc0,0x17,
+  0xf2,0x1b,0xf9,0x63,0x33,0xdc,0x67,0x2c,0x9a,0xd1,0x15,0xca,0x8,0x9d,0x15,0x5a,
+  0x1b,0xfa,0x30,0xcc,0x26,0x4c,0x1e,0xd6,0x11,0x8e,0x86,0xcf,0x8,0xdf,0x10,0x7e,
+  0x6f,0xa6,0xf9,0x4c,0xe9,0xcc,0xb6,0x8,0x88,0xe0,0x47,0x6c,0x88,0xb8,0x1f,0x69,
+  0x19,0x99,0x17,0xf9,0x7d,0x14,0x29,0x2a,0x32,0xaa,0x2e,0xea,0x51,0xb4,0x53,0x74,
+  0x71,0x74,0xf7,0x2c,0xd6,0xac,0xe4,0x59,0xfb,0x67,0xbd,0x8e,0xf1,0x8f,0xa9,0x8c,
+  0xb9,0x3b,0xdb,0x6a,0xb6,0x72,0x76,0x67,0xac,0x6a,0x6c,0x52,0x6c,0x63,0xec,0x9b,
+  0xb8,0x80,0xb8,0xaa,0xb8,0x81,0x78,0x87,0xf8,0x45,0xf1,0x97,0x12,0x74,0x13,0x24,
+  0x9,0xed,0x89,0xe4,0xc4,0xd8,0xc4,0x3d,0x89,0xe3,0x73,0x2,0xe7,0x6c,0x9a,0x33,
+  0x9c,0xe4,0x9a,0x54,0x96,0x74,0x63,0xae,0xe5,0xdc,0xa2,0xb9,0x17,0xe6,0xe9,0xce,
+  0xcb,0x9e,0x77,0x3c,0x59,0x35,0x59,0x90,0x7c,0x38,0x85,0x98,0x12,0x97,0xb2,0x3f,
+  0xe5,0x83,0x20,0x42,0x50,0x2f,0x18,0x4f,0xe5,0xa7,0x6e,0x4d,0x1d,0x13,0xf2,0x84,
+  0x9b,0x85,0x4f,0x45,0xbe,0xa2,0x8d,0xa2,0x51,0xb1,0xb7,0xb8,0x4a,0x3c,0x92,0xe6,
+  0x9d,0x56,0x95,0xf6,0x38,0xdd,0x3b,0x7d,0x43,0xfa,0x68,0x86,0x4f,0x46,0x75,0xc6,
+  0x33,0x9,0x4f,0x52,0x2b,0x79,0x91,0x19,0x92,0xb9,0x23,0xf3,0x4d,0x56,0x44,0xd6,
+  0xde,0xac,0xcf,0xd9,0x71,0xd9,0x2d,0x39,0x94,0x9c,0x94,0x9c,0xa3,0x52,0xd,0x69,
+  0x96,0xb4,0x2b,0xd7,0x30,0xb7,0x28,0xb7,0x4f,0x66,0x2b,0x2b,0x93,0xd,0xe4,0x79,
+  0xe6,0x6d,0xca,0x1b,0x93,0x87,0xca,0xf7,0xe4,0x23,0xf9,0x73,0xf3,0xdb,0x15,0x6c,
+  0x85,0x4c,0xd1,0xa3,0xb4,0x52,0xae,0x50,0xe,0x16,0x4c,0x2f,0xa8,0x2b,0x78,0x5b,
+  0x18,0x5b,0x78,0xb8,0x48,0xbd,0x48,0x5a,0xd4,0x33,0xdf,0x66,0xfe,0xea,0xf9,0x23,
+  0xb,0x82,0x16,0x7c,0xbd,0x90,0xb0,0x50,0xb8,0xb0,0xb3,0xd8,0xb8,0x78,0x59,0xf1,
+  0xe0,0x22,0xbf,0x45,0xbb,0x16,0x23,0x8b,0x53,0x17,0x77,0x2e,0x31,0x5d,0x52,0xba,
+  0x64,0x78,0x69,0xf0,0xd2,0x7d,0xcb,0x68,0xcb,0xb2,0x96,0xfd,0x50,0xe2,0x58,0x52,
+  0x55,0xf2,0x6a,0x79,0xdc,0xf2,0x8e,0x52,0x83,0xd2,0xa5,0xa5,0x43,0x2b,0x82,0x57,
+  0x34,0x95,0xa9,0x94,0xc9,0xcb,0x6e,0xae,0xf4,0x5a,0xb9,0x63,0x15,0x61,0x95,0x64,
+  0x55,0xef,0x6a,0x97,0xd5,0x5b,0x56,0x7f,0x2a,0x17,0x95,0x5f,0xac,0x70,0xac,0xa8,
+  0xae,0xf8,0xb0,0x46,0xb8,0xe6,0xe2,0x57,0x4e,0x5f,0xd5,0x7c,0xf5,0x79,0x6d,0xda,
+  0xda,0xde,0x4a,0xb7,0xca,0xed,0xeb,0x48,0xeb,0xa4,0xeb,0x6e,0xac,0xf7,0x59,0xbf,
+  0xaf,0x4a,0xbd,0x6a,0x41,0xd5,0xd0,0x86,0xf0,0xd,0xad,0x1b,0xf1,0x8d,0xe5,0x1b,
+  0x5f,0x6d,0x4a,0xde,0x74,0xa1,0x7a,0x6a,0xf5,0x8e,0xcd,0xb4,0xcd,0xca,0xcd,0x3,
+  0x35,0x61,0x35,0xed,0x5b,0xcc,0xb6,0xac,0xdb,0xf2,0xa1,0x36,0xa3,0xf6,0x7a,0x9d,
+  0x7f,0x5d,0xcb,0x56,0xfd,0xad,0xab,0xb7,0xbe,0xd9,0x26,0xda,0xd6,0xbf,0xdd,0x77,
+  0x7b,0xf3,0xe,0x83,0x1d,0x15,0x3b,0xde,0xef,0x94,0xec,0xbc,0xb5,0x2b,0x78,0x57,
+  0x6b,0xbd,0x45,0x7d,0xf5,0x6e,0xd2,0xee,0x82,0xdd,0x8f,0x1a,0x62,0x1b,0xba,0xbf,
+  0xe6,0x7e,0xdd,0xb8,0x47,0x77,0x4f,0xc5,0x9e,0x8f,0x7b,0xa5,0x7b,0x7,0xf6,0x45,
+  0xef,0xeb,0x6a,0x74,0x6f,0x6c,0xdc,0xaf,0xbf,0xbf,0xb2,0x9,0x6d,0x52,0x36,0x8d,
+  0x1e,0x48,0x3a,0x70,0xe5,0x9b,0x80,0x6f,0xda,0x9b,0xed,0x9a,0x77,0xb5,0x70,0x5a,
+  0x2a,0xe,0xc2,0x41,0xe5,0xc1,0x27,0xdf,0xa6,0x7c,0x7b,0xe3,0x50,0xe8,0xa1,0xce,
+  0xc3,0xdc,0xc3,0xcd,0xdf,0x99,0x7f,0xb7,0xf5,0x8,0xeb,0x48,0x79,0x2b,0xd2,0x3a,
+  0xbf,0x75,0xac,0x2d,0xa3,0x6d,0xa0,0x3d,0xa1,0xbd,0xef,0xe8,0x8c,0xa3,0x9d,0x1d,
+  0x5e,0x1d,0x47,0xbe,0xb7,0xff,0x7e,0xef,0x31,0xe3,0x63,0x75,0xc7,0x35,0x8f,0x57,
+  0x9e,0xa0,0x9d,0x28,0x3d,0xf1,0xf9,0xe4,0x82,0x93,0xe3,0xa7,0x64,0xa7,0x9e,0x9d,
+  0x4e,0x3f,0x3d,0xd4,0x99,0xdc,0x79,0xf7,0x4c,0xfc,0x99,0x6b,0x5d,0x51,0x5d,0xbd,
+  0x67,0x43,0xcf,0x9e,0x3f,0x17,0x74,0xee,0x4c,0xb7,0x5f,0xf7,0xc9,0xf3,0xde,0xe7,
+  0x8f,0x5d,0xf0,0xbc,0x70,0xf4,0x22,0xf7,0x62,0xdb,0x25,0xb7,0x4b,0xad,0x3d,0xae,
+  0x3d,0x47,0x7e,0x70,0xfd,0xe1,0x48,0xaf,0x5b,0x6f,0xeb,0x65,0xf7,0xcb,0xed,0x57,
+  0x3c,0xae,0x74,0xf4,0x4d,0xeb,0x3b,0xd1,0xef,0xd3,0x7f,0xfa,0x6a,0xc0,0xd5,0x73,
+  0xd7,0xf8,0xd7,0x2e,0x5d,0x9f,0x79,0xbd,0xef,0xc6,0xec,0x1b,0xb7,0x6e,0x26,0xdd,
+  0x1c,0xb8,0x25,0xba,0xf5,0xf8,0x76,0xf6,0xed,0x17,0x77,0xa,0xee,0x4c,0xdc,0x5d,
+  0x7a,0x8f,0x78,0xaf,0xfc,0xbe,0xda,0xfd,0xea,0x7,0xfa,0xf,0xea,0x7f,0xb4,0xfe,
+  0xb1,0x65,0xc0,0x6d,0xe0,0xf8,0x60,0xc0,0x60,0xcf,0xc3,0x59,0xf,0xef,0xe,0x9,
+  0x87,0x9e,0xfe,0x94,0xff,0xd3,0x87,0xe1,0xd2,0x47,0xcc,0x47,0xd5,0x23,0x46,0x23,
+  0x8d,0x8f,0x9d,0x1f,0x1f,0x1b,0xd,0x1a,0xbd,0xf2,0x64,0xce,0x93,0xe1,0xa7,0xb2,
+  0xa7,0x13,0xcf,0xca,0x7e,0x56,0xff,0x79,0xeb,0x73,0xab,0xe7,0xdf,0xfd,0xe2,0xfb,
+  0x4b,0xcf,0x58,0xfc,0xd8,0xf0,0xb,0xf9,0x8b,0xcf,0xbf,0xae,0x79,0xa9,0xf3,0x72,
+  0xef,0xab,0xa9,0xaf,0x3a,0xc7,0x23,0xc7,0x1f,0xbc,0xce,0x79,0x3d,0xf1,0xa6,0xfc,
+  0xad,0xce,0xdb,0x7d,0xef,0xb8,0xef,0xba,0xdf,0xc7,0xbd,0x1f,0x99,0x28,0xfc,0x40,
+  0xfe,0x50,0xf3,0xd1,0xfa,0x63,0xc7,0xa7,0xd0,0x4f,0xf7,0x3e,0xe7,0x7c,0xfe,0xfc,
+  0x2f,0xf7,0x84,0xf3,0xfb,0x25,0xd2,0x9f,0x33,0x0,0x0,0x0,0x6,0x62,0x4b,0x47,
+  0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,0x0,0x0,0x9,0x70,
+  0x48,0x59,0x73,0x0,0x0,0xb,0x12,0x0,0x0,0xb,0x12,0x1,0xd2,0xdd,0x7e,0xfc,
+  0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x3,0x2,0xf,0x7,0x1f,0xdd,
+  0x59,0x89,0x13,0x0,0x0,0x20,0x0,0x49,0x44,0x41,0x54,0x78,0xda,0xd5,0x7b,0x69,
+  0x8f,0x2c,0xe7,0x75,0xde,0xf3,0x2e,0xb5,0x76,0xf5,0x3a,0xd3,0x33,0x77,0xb6,0xbb,
+  0x92,0x97,0xe4,0xe5,0x25,0x25,0x52,0x96,0x29,0x89,0x22,0x6d,0x58,0x72,0xa4,0x58,
+  0x30,0x1d,0xb,0x16,0x14,0x44,0x94,0x82,0x20,0xf9,0x22,0xc0,0xd0,0xaf,0x31,0x60,
+  0xe4,0xab,0x61,0x3,0x1,0x84,0xd8,0x81,0x1d,0xc2,0x71,0xec,0x0,0xb6,0x43,0x5b,
+  0xb2,0x65,0x4a,0xa2,0x48,0x71,0xbb,0xb,0xef,0x32,0xfb,0x74,0x4f,0x2f,0xb5,0xbe,
+  0x7b,0x3e,0x54,0x77,0xcf,0xdc,0x4b,0x52,0xdc,0x4c,0x27,0x69,0xa0,0xa6,0xab,0xbb,
+  0x6a,0xba,0xeb,0x7d,0xea,0x9c,0xe7,0x9c,0xf3,0x9c,0xd3,0xc0,0x27,0xf0,0x78,0xea,
+  0xa9,0xa7,0xde,0xf7,0x9c,0xe5,0x87,0x96,0x3f,0xd6,0x77,0x3c,0xf0,0x40,0xbd,0xdd,
+  0xff,0xde,0xff,0xb3,0x8f,0xaf,0x7f,0xfd,0xeb,0xef,0xf6,0x36,0x1,0x40,0xd1,0x6,
+  0xc3,0xa,0xd8,0xec,0xf5,0x3b,0x1e,0xcd,0xcf,0x34,0xdf,0xf3,0x73,0xbf,0xfd,0xed,
+  0x6f,0xe2,0xdb,0xdf,0xfe,0xe6,0xc7,0xba,0xb6,0xb5,0xb5,0x8f,0x7e,0x33,0xf8,0x27,
+  0x8c,0x5b,0xc4,0xbb,0x5e,0xdc,0xe8,0x44,0xcc,0xe3,0x86,0xc,0x8a,0x3c,0x43,0x86,
+  0xc,0xff,0x1f,0x3d,0xc8,0xc7,0xfd,0x80,0xef,0x7e,0xf7,0xbb,0x0,0x80,0xdf,0xff,
+  0xfd,0xdf,0x9f,0xbf,0x15,0xff,0xf6,0xd7,0x7f,0xfb,0xfc,0x4a,0x6f,0xe5,0x81,0xd8,
+  0x8f,0x37,0xb5,0xd4,0xad,0x4a,0x54,0x5c,0x49,0x49,0x84,0x92,0x69,0x21,0xca,0xfd,
+  0xc1,0xf4,0xe8,0xee,0xed,0xe9,0xed,0xeb,0xdb,0x2f,0x6f,0x1f,0xcc,0xff,0xe9,0xe1,
+  0xc7,0x1e,0x6,0x0,0x34,0x5e,0x79,0x3,0xff,0xe4,0x1c,0x8,0x79,0xe7,0xa5,0x3d,
+  0xf3,0xf9,0xcd,0xf6,0xf2,0xca,0x83,0xab,0xa0,0x51,0xcf,0x3a,0x2f,0xb1,0x96,0x33,
+  0x29,0x64,0x2c,0x95,0xf0,0x95,0xb6,0x79,0x59,0xe5,0x22,0xcf,0xc7,0x55,0x3e,0xd9,
+  0x9b,0xc,0x8f,0xc6,0xc7,0x85,0xc0,0x10,0x40,0x79,0xcf,0x1d,0x8b,0x80,0xb2,0xfc,
+  0x17,0x2,0xe8,0x77,0x7f,0xf7,0x77,0xf1,0x7b,0xbf,0xf7,0x7b,0x8b,0xd7,0xdf,0xfa,
+  0xd6,0xb7,0x3a,0x9c,0xf2,0x4f,0x2d,0x2f,0x2d,0xff,0x5a,0x2b,0x69,0x3d,0xdd,0x8c,
+  0x9a,0xeb,0x56,0xd9,0xa4,0x2a,0x2b,0x26,0x2a,0x41,0xcb,0xb2,0x2c,0xb2,0x22,0xdb,
+  0x3f,0x1a,0x1f,0xbd,0x31,0x2a,0x46,0xff,0xeb,0x7a,0x7a,0xfd,0x6f,0xab,0xb2,0x3a,
+  0x3c,0x7c,0xf5,0x50,0xbe,0xdb,0xe7,0x7f,0xfe,0xea,0x19,0x7a,0xf5,0xf3,0x5f,0xf5,
+  0x9a,0xad,0x95,0xa0,0x2c,0x8b,0x33,0xd6,0xda,0x7,0x9,0xa1,0x57,0x9,0xe5,0x17,
+  0x0,0xb6,0x6c,0x2c,0xf3,0x95,0x94,0x2d,0x29,0x65,0xa0,0xad,0x9b,0x56,0xa2,0x2a,
+  0xca,0x22,0x9b,0x54,0xf9,0x78,0x37,0x4d,0x47,0x6f,0x4f,0x26,0x93,0xb7,0x8c,0xc5,
+  0x5b,0x7b,0xbb,0x77,0xc7,0x52,0x54,0x1a,0x80,0xfa,0xbf,0xe6,0x62,0xbf,0xfe,0x1b,
+  0xbf,0xbe,0x91,0x34,0x92,0x5f,0xdf,0x5a,0xdb,0xfa,0xce,0xe6,0xda,0xe6,0xa3,0x67,
+  0xfa,0xab,0xcd,0x30,0x88,0x38,0x1c,0x88,0x12,0x8a,0x94,0x59,0x89,0x7c,0x9c,0xbb,
+  0xd1,0x60,0xb4,0xbe,0x7d,0xb0,0xfd,0xf8,0xdd,0xa3,0xbb,0x4f,0x59,0x6d,0x9f,0x3e,
+  0x50,0x7,0xff,0xf9,0x10,0x87,0xaf,0x1,0xd0,0xf7,0x7f,0x66,0xd2,0xee,0x37,0x9,
+  0x61,0x4f,0x58,0x6b,0xbe,0xda,0x68,0xf6,0xaf,0xfa,0x7e,0x6b,0x33,0x88,0x92,0xd5,
+  0x56,0xab,0x17,0x37,0x92,0x16,0x25,0x60,0xc4,0x58,0x4b,0x8d,0x36,0xc4,0x38,0x67,
+  0xcb,0xb2,0xb2,0xd3,0xe9,0xd4,0x1e,0xf,0xf,0xf4,0xc1,0xde,0xed,0xe9,0xde,0xee,
+  0xdb,0x7b,0x47,0x87,0x77,0xde,0xe,0x2,0xff,0xef,0xa5,0xa8,0xfe,0x37,0x80,0x57,
+  0x1,0xd8,0x4f,0x1c,0xa0,0xdf,0xfc,0xc6,0x6f,0x2,0xc0,0xc2,0x7a,0xbe,0xfc,0xaf,
+  0xbf,0xbc,0xf4,0xd9,0xc7,0x3f,0xfb,0xd5,0xd5,0xfe,0xea,0xf3,0xe7,0x36,0xcf,0x3f,
+  0xb5,0xb2,0xdc,0x8f,0x3a,0xed,0x36,0x18,0xe3,0x70,0xce,0x41,0x4b,0xd,0x91,0xa,
+  0x88,0x44,0x60,0x29,0x5e,0xe2,0xed,0xb0,0x8d,0x86,0xd7,0x78,0x34,0x20,0x41,0xcc,
+  0xd,0x2f,0xdd,0x23,0xee,0x8f,0xdf,0x78,0xfd,0x8d,0x1f,0x0,0x70,0x0,0xf0,0xec,
+  0xd3,0xf,0x25,0x9f,0xfe,0xf4,0x97,0x3e,0x15,0x27,0xfd,0xcf,0xc7,0x49,0xf7,0xf3,
+  0xed,0xce,0xd2,0x63,0x71,0xa3,0xb5,0xee,0x5,0x71,0xc3,0xc1,0x43,0x14,0xc6,0x88,
+  0xa2,0x6,0x8,0x63,0x70,0x96,0x40,0x48,0x85,0x2c,0x2b,0x10,0x86,0x16,0xad,0x76,
+  0x1f,0xfd,0x95,0x35,0xac,0xad,0x6f,0xf5,0xb6,0xce,0x5d,0xda,0x3a,0xd8,0xdf,0xb9,
+  0xbc,0xbb,0x7d,0xe3,0xc1,0x3b,0xb7,0xdf,0xbc,0x7a,0xfb,0xd6,0x9b,0x7f,0xe3,0xac,
+  0xf9,0x11,0x80,0x9b,0xf3,0xef,0xfa,0x44,0x0,0xfa,0xb3,0xef,0xff,0xd9,0x62,0xff,
+  0xf9,0xef,0x3c,0x9f,0x24,0x71,0xf2,0xcc,0xfa,0x99,0xf5,0xdf,0x39,0xbb,0x79,0xf6,
+  0x57,0xaf,0x3c,0xf2,0x28,0x9a,0x49,0x2,0xeb,0x2c,0x8c,0x31,0x50,0x5a,0x81,0x79,
+  0xc,0xc,0xc,0x11,0x8b,0xd0,0xf2,0x5b,0xe8,0xc7,0x7d,0x34,0x79,0x13,0x9e,0xf1,
+  0x2e,0x4c,0xd3,0xe9,0xbf,0x2f,0xa2,0x42,0x90,0x3e,0xd9,0x76,0xc2,0xed,0xfe,0x87,
+  0xaf,0x7f,0xb3,0xd1,0xe9,0xae,0x3f,0xd1,0xe9,0xac,0x7c,0xc7,0xf,0x5a,0x5f,0x49,
+  0x9a,0xcb,0xeb,0x9b,0x67,0x2f,0x62,0xb9,0xbf,0x82,0x20,0xc,0x50,0xe4,0x2,0xd6,
+  0x5a,0x50,0x4a,0x1,0x42,0x61,0x2c,0x40,0x72,0x81,0xf1,0x38,0x85,0xd6,0x16,0x41,
+  0x18,0x62,0x69,0xa9,0x8f,0xb3,0x67,0x2f,0x41,0x88,0x92,0x1d,0xec,0xef,0x2d,0xbd,
+  0xf9,0xc6,0x4f,0x96,0x3c,0x2f,0x7c,0xd2,0x5a,0xf7,0xf8,0xd1,0xd1,0xee,0x7f,0x2d,
+  0xf3,0xc9,0xb,0x0,0xee,0xdc,0xcf,0x4f,0xef,0xf6,0x60,0x1f,0xd7,0xb5,0x9e,0xfc,
+  0xec,0x93,0xf,0x5e,0xd8,0xbc,0xf0,0xbd,0x47,0x2e,0x3f,0xf2,0xf4,0x95,0x47,0xae,
+  0xc4,0x49,0xb3,0x1,0x10,0xc0,0x68,0xd,0x6b,0x6b,0x90,0x8c,0x32,0x30,0xd2,0xc0,
+  0x8,0x3,0x2b,0x2d,0xa0,0x0,0xf,0x1e,0x38,0x38,0xca,0xb2,0x8c,0x2b,0x51,0x39,
+  0x63,0x8c,0xba,0x74,0x7e,0x6b,0x74,0xf5,0xea,0xe7,0xbe,0xdc,0xed,0xad,0x7f,0x6f,
+  0xf3,0xec,0xc3,0xcf,0x2e,0xf7,0xb7,0x56,0xbb,0x4b,0x2b,0xe8,0xf7,0x7b,0x68,0x34,
+  0x2,0x50,0xa,0x58,0xa3,0xc0,0x39,0x81,0xef,0x33,0x10,0xa,0x10,0x4a,0xa0,0x8d,
+  0xc6,0x64,0x32,0xc1,0xce,0xce,0x36,0x6e,0xdf,0xbe,0x8d,0x3c,0xcb,0x40,0x28,0xd0,
+  0x68,0x34,0x90,0x24,0x4d,0xac,0xae,0x6e,0x62,0x6d,0xfd,0x22,0x6d,0x36,0x7b,0x2b,
+  0x5a,0xa9,0x87,0x86,0xc3,0x83,0xb,0xd6,0xa8,0x3,0x0,0x47,0xef,0xc7,0x4b,0x1f,
+  0x1a,0xa0,0xd6,0x66,0xb,0x62,0x2a,0x0,0x0,0x5f,0x7b,0xee,0x6b,0xab,0x57,0x1e,
+  0xb8,0xf2,0xcc,0x85,0xb3,0x17,0xfe,0xdd,0xd9,0xad,0xb3,0xeb,0xeb,0x1b,0xeb,0x70,
+  0xc4,0xc1,0x18,0x3,0x6b,0x2d,0x9c,0x3,0xac,0xa9,0x41,0xb2,0xda,0xc2,0xca,0x7a,
+  0x73,0xd2,0x81,0x5a,0xa,0xab,0x2d,0xa6,0xe9,0x14,0xc3,0xc9,0x30,0x54,0x56,0x75,
+  0xaf,0x7c,0xea,0xc9,0xf5,0xcb,0xf,0x3f,0xfe,0x6b,0x6b,0x6b,0xe7,0x9e,0xe9,0x74,
+  0x57,0xda,0xad,0x76,0x1b,0xed,0x76,0x13,0xdd,0x4e,0x82,0x20,0xe4,0x60,0x14,0xa0,
+  0xd4,0x81,0x7b,0x1c,0x9c,0x33,0xd0,0x59,0xa4,0x73,0xce,0xc1,0x5a,0x8b,0xa2,0x28,
+  0x30,0x9d,0x4c,0x31,0x1e,0x4f,0xe0,0x79,0x3e,0xda,0x9d,0x36,0x2,0xdf,0x47,0x14,
+  0x35,0x10,0xc7,0x4d,0xc4,0x71,0x8b,0x33,0xca,0x7b,0x8c,0xd2,0x33,0x55,0x55,0x36,
+  0xcb,0x32,0x2d,0x0,0xec,0xfc,0x22,0x90,0x3e,0xb4,0x8b,0x4d,0xb7,0xa7,0x8b,0xfd,
+  0x87,0x2e,0x3c,0x74,0x69,0xa9,0xbd,0xf4,0xc5,0xcd,0xb5,0xcd,0x7e,0xbb,0xd5,0x82,
+  0xb1,0x6,0xc6,0x58,0x58,0xe7,0x4e,0x3c,0xfc,0xfe,0x38,0xe9,0x0,0xeb,0x2c,0xac,
+  0xb3,0x20,0x94,0x20,0x60,0x1,0x7c,0x78,0xcb,0x4d,0xbf,0xf9,0x6c,0x1c,0x36,0x3f,
+  0xd7,0xee,0x2c,0x85,0x97,0x1e,0x78,0xc4,0x33,0xd6,0xc2,0xf7,0x28,0xe2,0xc8,0x43,
+  0xb3,0x19,0x80,0x52,0xa,0x63,0x2c,0xfc,0x80,0xc1,0x18,0x7,0x6b,0x8,0x34,0xb3,
+  0x0,0x31,0x8,0xc,0x43,0xa7,0xdd,0xc4,0xd6,0xd6,0x3a,0x0,0x82,0x6b,0xd7,0x6e,
+  0x22,0xcf,0x33,0x54,0x65,0x5,0x4a,0x8,0x8,0x24,0x8,0x21,0xb8,0x70,0xe1,0x21,
+  0xc4,0x61,0x3,0x1,0xf,0x56,0xf,0xe,0xb6,0x9f,0x9f,0x4c,0x8e,0x89,0xd6,0xe5,
+  0x10,0xc0,0x4f,0x1,0x54,0xff,0xec,0x51,0xac,0x91,0x34,0x1e,0x88,0xe2,0xf8,0x97,
+  0xc3,0x20,0xa,0x28,0x61,0x50,0x52,0x81,0x32,0xa,0x4a,0x8,0x34,0xdc,0x9,0xf,
+  0x9e,0xce,0x69,0x8,0x40,0x29,0x85,0x23,0xe,0xd6,0x59,0x54,0x5a,0x80,0x3a,0xc2,
+  0x62,0x1a,0x31,0x53,0xd9,0x80,0x51,0x86,0xee,0x72,0xb,0x1c,0xe,0xbe,0xcf,0x10,
+  0xf8,0x1c,0x1e,0xa7,0x20,0x84,0xc0,0x5a,0x40,0x5b,0xb,0xa5,0xea,0x4d,0x1b,0x80,
+  0x10,0xd,0x29,0x5,0xb2,0x74,0x82,0x38,0x8a,0x70,0xe9,0xd2,0x45,0x28,0xa5,0x61,
+  0x1d,0x41,0x5e,0xe4,0x8,0x2,0xbf,0xe6,0x2b,0x0,0x9c,0x53,0xb4,0xdb,0x1d,0x2c,
+  0xaf,0xac,0xa3,0xdd,0x59,0x65,0x83,0xc1,0xfe,0xaf,0xea,0xac,0x2c,0x0,0xec,0xce,
+  0x38,0xe9,0xa3,0x3,0xf4,0xa7,0x7f,0xfa,0xa7,0x0,0x80,0xe7,0x9e,0x7b,0xe,0x57,
+  0x9f,0xb8,0xea,0x5d,0x7e,0xe0,0xf2,0xa3,0xdd,0x76,0xf7,0x73,0xad,0xa4,0x79,0x89,
+  0x51,0xca,0xa5,0x90,0xb0,0xce,0xa2,0xd1,0x6c,0x80,0x32,0xa,0xc6,0x18,0xac,0xb5,
+  0x20,0xd4,0x81,0x52,0x5a,0x5f,0x24,0x7,0x28,0xa7,0xb0,0xd4,0x22,0x15,0x29,0x86,
+  0x93,0x21,0xb2,0x2a,0x5,0x1,0x45,0x48,0x42,0x88,0x49,0x8e,0xa3,0xdd,0x1d,0xc,
+  0x8f,0x76,0x70,0xe1,0xdc,0x79,0x34,0x93,0x18,0x8c,0x3a,0x10,0xd4,0x89,0xa3,0x73,
+  0x80,0x36,0xe,0x8a,0x59,0x14,0x4e,0x20,0x4d,0x53,0xa4,0x59,0x81,0xa2,0x94,0xf0,
+  0x7d,0x8e,0x28,0x6a,0xc0,0x38,0x82,0x66,0xb3,0x81,0xd1,0x68,0x82,0xe9,0x74,0x82,
+  0xa5,0x5e,0xf,0x9e,0xe7,0x41,0x4a,0x89,0xd1,0x78,0x88,0x74,0x32,0x46,0x96,0xa7,
+  0x30,0xd6,0x81,0x52,0xef,0xac,0xc7,0xa3,0x5f,0x51,0xba,0xfc,0x1,0x80,0xbf,0x0,
+  0x70,0xf0,0x91,0x1,0x7a,0xee,0xb9,0xe7,0x4e,0x32,0xda,0xcf,0x3e,0xd3,0x69,0x35,
+  0x5b,0xff,0xa6,0xdd,0x68,0x3d,0xd3,0x6d,0x76,0x12,0x0,0x28,0xf2,0x2,0xa4,0x20,
+  0x20,0x94,0x20,0x8c,0x6a,0x97,0x70,0xce,0x1,0xce,0xc1,0x39,0x7,0x87,0x7a,0xdf,
+  0x5a,0xb,0x21,0x5,0x6,0xe3,0x1,0x76,0x6,0x3b,0xc8,0xca,0xc,0x20,0x4,0x9c,
+  0x7a,0xd0,0x69,0x85,0xbb,0xd7,0xaf,0xa1,0xdd,0x8b,0x71,0xe9,0xfc,0x59,0x34,0x62,
+  0x6,0x6b,0x1d,0x8,0xa9,0x3d,0xd5,0x39,0x7,0x6a,0x0,0xca,0x28,0x84,0x14,0x98,
+  0x4c,0x46,0x38,0x3c,0x3c,0x86,0xb1,0x4,0xab,0xab,0xeb,0xf0,0xc3,0x8,0x69,0x5a,
+  0x82,0x31,0x8a,0xb2,0x2c,0x90,0xe7,0x5,0x36,0x37,0x36,0xe1,0xfb,0x1,0x84,0xa8,
+  0x70,0xfb,0xf6,0x2d,0x1c,0x1d,0xec,0x62,0xe7,0xee,0x4d,0x64,0x69,0xa,0x4a,0x3d,
+  0x84,0x51,0xf3,0x82,0x2d,0xf4,0xd7,0x8d,0x51,0x47,0x0,0xfe,0xfc,0x9f,0xc3,0xc5,
+  0x78,0xa3,0xd1,0xb8,0xd4,0x49,0x3a,0x5f,0x69,0xc6,0xcd,0x87,0xbb,0xed,0xe,0x8,
+  0x25,0x50,0x52,0x41,0x6b,0xd,0xa5,0x14,0x82,0xc0,0x87,0x1f,0xfa,0xe0,0x9c,0xc3,
+  0x3a,0x7,0x25,0x15,0x64,0x26,0x51,0x8d,0x2b,0xa4,0x83,0x14,0x83,0xfd,0x1,0xe,
+  0xe,0xf,0x30,0x9c,0xe,0x61,0xad,0x9d,0x79,0x1e,0x45,0x33,0x48,0x20,0x26,0x25,
+  0xf6,0xee,0x6c,0xc3,0x68,0x9,0x2,0x80,0xd1,0x13,0xf7,0x24,0x84,0xc0,0x23,0x0,
+  0xa5,0x80,0xef,0x7b,0x27,0x40,0x14,0x12,0x4b,0xcb,0x2b,0x8,0x8,0xc0,0x38,0x45,
+  0x1c,0x37,0x20,0xa5,0xc4,0x60,0x70,0x8c,0x95,0x95,0x33,0xe8,0xf5,0x34,0x46,0xa3,
+  0x21,0x5e,0xfa,0xd1,0xf,0xb0,0xb7,0x7b,0x7,0x45,0x3e,0x86,0x54,0x2,0x9e,0x1f,
+  0xc0,0x18,0x12,0x78,0x5a,0x3c,0x4b,0xb4,0x78,0x55,0xab,0xea,0xc7,0xb3,0xc8,0x66,
+  0x3f,0x32,0x40,0x5f,0x7e,0xee,0x4b,0x2d,0x4a,0xe8,0xd9,0xd0,0x8b,0x36,0x3,0x2f,
+  0xe0,0x9e,0xe7,0x43,0xdb,0x9a,0x71,0xac,0xb1,0x28,0x45,0x1,0x51,0x54,0x60,0x9c,
+  0x81,0x32,0x6,0xa3,0x35,0xaa,0x42,0xa0,0x4c,0x4b,0x14,0x93,0x2,0xe9,0x28,0xc5,
+  0xf1,0xf0,0x18,0x69,0x96,0x42,0x1a,0x59,0x9b,0x6,0x21,0x30,0xce,0xd4,0x20,0xe7,
+  0x1a,0xf9,0x24,0x45,0x96,0x4e,0x60,0x56,0x97,0xc0,0x66,0xfc,0x71,0x2,0x52,0xd,
+  0x90,0xc7,0x19,0x7a,0xdd,0xe,0xd2,0x7e,0x1,0x6f,0x92,0x83,0x33,0xa,0x67,0xd,
+  0x28,0x21,0x68,0xb5,0x5b,0xe8,0x76,0x7b,0x18,0x8d,0x26,0xb8,0x7e,0xfd,0x26,0xa2,
+  0x68,0x17,0x65,0x99,0x62,0x77,0x6f,0x17,0xc3,0xc1,0x11,0x8c,0xaa,0x40,0x8,0x5,
+  0xe3,0x1e,0x9c,0x73,0xc4,0xf3,0xa2,0xae,0x83,0x7b,0x4c,0xab,0xea,0x71,0x0,0x2f,
+  0x9e,0xce,0x8f,0x3e,0x34,0x40,0xad,0xa4,0x9d,0x10,0x90,0x25,0x8f,0xfa,0xa0,0xa8,
+  0x79,0xc6,0xcd,0xee,0x2e,0xa1,0x14,0xce,0x69,0x88,0x4a,0xc0,0xe8,0x3a,0xbc,0x57,
+  0x45,0x85,0x22,0x2d,0x90,0x4d,0x32,0x54,0x45,0x5,0x21,0x4,0xaa,0xaa,0x82,0xb5,
+  0x16,0x8c,0x32,0x80,0xd4,0x2e,0xa4,0x8d,0xc6,0x34,0x9d,0x82,0x39,0xa,0xab,0xd,
+  0x8e,0x87,0x43,0x9c,0x59,0x5b,0x45,0xab,0xf9,0x4e,0x29,0xa4,0x4e,0x14,0x9,0x96,
+  0x97,0x97,0x40,0xa9,0x87,0xd1,0x24,0x83,0x73,0x14,0x5a,0x6b,0x38,0x7,0x24,0x49,
+  0x82,0xcd,0xad,0x2d,0xe4,0x79,0x85,0x9f,0xbd,0xf2,0x1a,0xf2,0x22,0x3,0x9c,0x82,
+  0x56,0x1a,0xbe,0x1f,0x42,0xc1,0x1,0xda,0xc1,0x59,0x3,0x42,0x8,0xb8,0x17,0xc2,
+  0x58,0x7d,0x11,0x60,0x4f,0x1,0xf6,0x27,0x80,0x5b,0x0,0x44,0x3f,0x2c,0x40,0xd4,
+  0x52,0x2,0x7,0x4a,0x66,0x41,0xca,0xdd,0x97,0xb0,0x13,0x5a,0x3,0x55,0x87,0xf7,
+  0x19,0x7,0x59,0xb,0x67,0x6b,0x2e,0x22,0x20,0x60,0x8c,0x81,0x52,0xa,0x2,0x2,
+  0x42,0x28,0x1c,0x6a,0x6e,0x32,0xd6,0x40,0x1b,0x3,0x21,0x4,0x46,0xa3,0x11,0xca,
+  0xf7,0x28,0xbb,0x9d,0x3,0xac,0x3,0x9c,0xb5,0xf0,0x7d,0x1f,0xcd,0x24,0x81,0xe7,
+  0x79,0x0,0x21,0x33,0x97,0x75,0xe8,0x76,0xbb,0x38,0x7b,0xee,0x1c,0x7a,0xbd,0x1e,
+  0xe0,0x8,0xf2,0xbc,0x2,0x28,0x87,0xef,0x47,0xf0,0xfd,0x10,0x9c,0x71,0x10,0x42,
+  0x17,0x96,0x44,0x29,0xdb,0x62,0xdc,0xfb,0x2c,0xa5,0xec,0x1e,0xf1,0xe8,0x43,0x3,
+  0x24,0xb5,0x34,0x46,0x1b,0xa9,0xb5,0xaa,0x73,0x99,0xfb,0x64,0x89,0x7a,0xd1,0xa8,
+  0xf3,0x8f,0x39,0xbb,0x92,0xda,0x35,0x6a,0xf0,0x8,0x28,0xa1,0x8b,0x63,0x4,0xf5,
+  0xa2,0xb4,0x51,0x30,0xc6,0xd4,0x3c,0xa6,0xf5,0xc,0x34,0xf3,0x2e,0xd6,0x3,0x18,
+  0xe3,0x60,0x8c,0x85,0x36,0xb5,0x6b,0x13,0x3a,0xd7,0xe2,0xea,0xcd,0xd9,0xda,0xa2,
+  0x83,0x20,0x40,0xa7,0xd3,0x46,0x18,0x46,0xb0,0x8e,0x80,0x51,0xf,0xcc,0xf3,0xc1,
+  0xb8,0x7,0x42,0x69,0x7d,0x4d,0x4,0xa0,0x84,0x81,0x52,0xd6,0x66,0x8c,0x5f,0x22,
+  0x84,0xf4,0x1,0x78,0x1f,0x19,0xa0,0xe3,0xec,0xb8,0x94,0x5a,0x4e,0x2a,0x59,0x49,
+  0x6d,0xf4,0x6c,0xf1,0xe4,0x9e,0x84,0x90,0xb8,0xda,0x7a,0x8,0x99,0xbb,0x1e,0x1,
+  0x68,0xd,0x18,0x1,0xa9,0x23,0xda,0xc,0x1c,0x0,0x30,0xc6,0x40,0x2a,0x9,0xa5,
+  0x15,0x8c,0x35,0x60,0x8c,0xa2,0xd9,0x4c,0xc0,0x38,0x87,0x10,0xb2,0x8e,0x86,0x0,
+  0xac,0x75,0x50,0xda,0x40,0x2a,0xb,0xa5,0x2d,0x94,0xb1,0x50,0x5a,0x43,0x29,0xd,
+  0x63,0x1d,0x8c,0x75,0x50,0x5a,0x23,0xcf,0xb,0xc,0x87,0x43,0x1c,0x1f,0xf,0xc1,
+  0x18,0x43,0x10,0x6,0xf0,0xb8,0x37,0xb7,0x14,0x80,0xd0,0x1a,0x48,0x9c,0x5c,0x27,
+  0xa5,0xc,0x94,0x79,0x4b,0x20,0xe4,0xc,0x80,0xe4,0x23,0x73,0xd0,0x8b,0xff,0xe3,
+  0xc5,0xd1,0xd5,0xff,0x74,0xf5,0x56,0x56,0x65,0x43,0xa1,0xc4,0x45,0xab,0xd,0xc0,
+  0x4f,0xe3,0x33,0x37,0x17,0x72,0x2a,0x95,0x26,0xef,0x22,0x44,0xd5,0xef,0x59,0x67,
+  0xa1,0xb4,0x82,0x10,0x2,0x4,0x4,0xad,0xa0,0x85,0xf6,0x72,0x1b,0x4b,0xcb,0xcb,
+  0x8,0xc3,0x18,0x52,0x59,0x58,0x58,0x90,0x19,0xf7,0x68,0x65,0x21,0xb5,0x85,0x94,
+  0xa6,0x4e,0x16,0xb5,0x83,0x31,0xe,0x20,0x14,0x42,0x48,0x1c,0x1e,0x1c,0xe0,0xc6,
+  0x8d,0xb7,0x71,0x74,0x74,0x8c,0x69,0x56,0x20,0xcb,0x5,0xca,0xb2,0x82,0xe7,0xf9,
+  0xb0,0xc6,0xc1,0x68,0x2,0xd4,0xb7,0xa8,0xde,0x5c,0x7d,0x47,0x29,0xa1,0xe0,0x94,
+  0xfb,0xca,0xe1,0x2c,0x80,0x1e,0x80,0xd1,0x47,0xd,0xf3,0xb6,0x2c,0xcb,0xbb,0x53,
+  0x6f,0xfa,0xd7,0x85,0x28,0x5a,0x69,0x91,0x3d,0xd4,0x6e,0xb7,0x6a,0xc2,0x75,0xef,
+  0x51,0xd2,0xb8,0xd3,0xbb,0xee,0x94,0x2b,0xd6,0x85,0xa6,0x10,0x15,0x2a,0x51,0x82,
+  0x7,0x3e,0xfa,0x1b,0xab,0x78,0xf0,0x91,0x47,0x90,0x24,0x6d,0x68,0xe5,0x20,0x64,
+  0x85,0x20,0x0,0x8,0xa1,0xb0,0xd6,0x40,0xeb,0x99,0xf5,0x28,0xb,0xad,0x1,0x63,
+  0x6a,0x97,0xab,0x2a,0x89,0xc1,0x70,0x88,0x3b,0x77,0xee,0xe0,0xee,0xdd,0x3b,0x18,
+  0x8d,0xa6,0xa8,0x84,0x81,0xd4,0xf5,0xf1,0x3a,0x71,0xad,0xbf,0xdf,0x39,0xb,0xe7,
+  0x6c,0x8d,0x4e,0x9d,0x60,0x81,0x10,0xa,0x4a,0x39,0x23,0x20,0x67,0x0,0xb4,0x3e,
+  0xb4,0x5,0x7d,0xed,0x6b,0x5f,0x3,0x0,0xbc,0xf0,0xc2,0xb,0xb8,0x71,0xeb,0xc6,
+  0xb0,0x99,0x34,0xff,0xcb,0xf9,0xf3,0xe7,0x5b,0xc7,0x93,0xe3,0x8d,0x4e,0xa7,0xd3,
+  0xe0,0xec,0x84,0x8d,0xdc,0x2f,0xd0,0x2d,0xe7,0x67,0xcd,0x9f,0x2b,0x59,0x21,0x2f,
+  0x73,0x8,0x25,0x10,0x36,0x9a,0xb8,0xf0,0xd0,0x65,0x3c,0xf6,0xe9,0xcf,0x80,0x52,
+  0x1f,0x93,0x49,0x86,0x4a,0x8,0xc4,0xb1,0x3,0xe7,0x1e,0x1c,0x0,0xad,0xeb,0x7a,
+  0x4f,0x29,0xb,0xa5,0x1d,0x8c,0xb6,0x90,0x52,0x63,0x32,0x99,0x62,0x77,0x67,0x7,
+  0x77,0xef,0xde,0x45,0x51,0x8,0x0,0x1c,0x9c,0x73,0x18,0xeb,0xe0,0x9c,0x86,0xb5,
+  0xba,0x6,0xc6,0x9a,0x93,0x6d,0x6,0x92,0x9b,0x59,0x3d,0x61,0x94,0x12,0x42,0x5b,
+  0x0,0xa2,0x8f,0x55,0x8b,0xbd,0xf8,0x77,0x2f,0x4a,0x0,0x2f,0x3f,0xfb,0xf9,0x67,
+  0xfe,0x3a,0xcf,0xb2,0xcb,0xce,0xba,0x2f,0x50,0x4a,0x2,0xca,0x29,0xa0,0xcd,0xc,
+  0xa1,0xb9,0xab,0xbd,0x8b,0x84,0x40,0x19,0x2c,0xa9,0x5d,0x6b,0x3a,0x9d,0x62,0x3c,
+  0x19,0x43,0x3b,0x83,0x73,0x97,0x2e,0xe1,0xfc,0xa5,0xcb,0x68,0xb6,0x96,0x50,0x9,
+  0x89,0x2c,0x9d,0xa2,0x28,0xb,0xa4,0x59,0x89,0x46,0xd2,0x46,0x18,0xc6,0xd0,0xda,
+  0x40,0x6b,0x83,0xb2,0xac,0x30,0x1e,0x4f,0x41,0x8,0x87,0xb1,0x4,0x83,0xc1,0x31,
+  0x86,0xc3,0x63,0x64,0x59,0xe,0x4a,0x3d,0x78,0x41,0x0,0x28,0xc0,0x38,0xd,0x6b,
+  0xeb,0xb0,0xe7,0x8c,0x85,0xb5,0x6,0xd6,0x99,0x3a,0x0,0x38,0xbb,0xc8,0xad,0xe6,
+  0xfc,0x38,0xbb,0x5e,0xf7,0xa1,0x1,0x7a,0xe1,0x85,0x17,0x0,0x0,0xdf,0xf9,0xd6,
+  0x77,0xf0,0x7,0x7f,0xf4,0x7,0x0,0x60,0xf6,0xb6,0x77,0x7e,0xe6,0x51,0xef,0x7,
+  0x3b,0xcd,0x9d,0x27,0xdb,0x9d,0x76,0x10,0x86,0xc1,0x2c,0xff,0xb1,0x80,0x31,0xef,
+  0xb0,0x24,0x42,0x8,0x18,0x65,0x30,0xd4,0x40,0x48,0x81,0xe9,0x74,0x8a,0xc9,0x74,
+  0x2,0x65,0x14,0xe2,0x6e,0x82,0xad,0x8b,0x97,0xd0,0xee,0xf5,0xa1,0x94,0x43,0x95,
+  0x4b,0x14,0xa5,0x44,0x51,0x8,0x68,0x53,0x42,0x48,0x8b,0x56,0x8b,0x80,0x52,0xe,
+  0xa5,0xc,0xb2,0xac,0xc4,0xe1,0xe1,0x11,0x8,0xf1,0xc0,0xfd,0x8,0x52,0x19,0x30,
+  0xe6,0x23,0x8a,0x12,0x68,0xc3,0xe0,0x24,0xa0,0x8d,0x1,0x21,0x73,0x82,0x37,0xb0,
+  0x46,0x2f,0x36,0x67,0x6b,0xbd,0xaa,0x76,0xb3,0x5,0x2a,0xce,0xd5,0x59,0xb4,0xfb,
+  0xc8,0x7a,0xd0,0xcb,0xaf,0xbc,0xbc,0xd8,0x7f,0xe5,0xc7,0x3f,0x97,0xab,0xbd,0x33,
+  0x5c,0x6b,0xfd,0xb4,0xc7,0xf8,0x52,0xbb,0xd5,0x86,0x25,0x80,0xb3,0xb5,0xe9,0x3b,
+  0xe7,0xea,0xb0,0x2d,0x15,0x94,0x50,0x70,0x76,0x56,0x8b,0x9,0x81,0xe3,0xe3,0x11,
+  0xe,0xe,0xf,0x30,0x19,0x8f,0xc0,0x2,0x8e,0x33,0xe7,0xcf,0xe2,0xd1,0x5f,0x7e,
+  0xa,0xdd,0xfe,0x2a,0x8c,0x76,0x10,0x42,0x40,0x2b,0x3,0xa5,0x34,0xf2,0x34,0x87,
+  0x90,0xa6,0x56,0xf,0xa9,0xf,0xa5,0x2c,0xd2,0x2c,0xc7,0x60,0x30,0x44,0x55,0x9,
+  0x18,0x3,0x50,0xe6,0x83,0x31,0xf,0x84,0x71,0x28,0xe5,0x20,0x84,0x81,0x10,0x6,
+  0x5a,0x2b,0x68,0x5d,0x41,0xa9,0x2,0x4a,0x96,0x50,0xb2,0x84,0x56,0x5,0xa4,0x2a,
+  0x6b,0xa0,0x66,0x85,0xb0,0xb5,0x16,0x5a,0x6b,0xa1,0x54,0xf9,0x13,0x67,0xf5,0xcb,
+  0x33,0x9d,0xe8,0xe3,0x29,0x8a,0xa,0x4a,0x5c,0xdc,0xbc,0x54,0x2a,0x25,0x97,0x61,
+  0xb1,0xa6,0x85,0xee,0x50,0xc6,0xe0,0xf1,0x5a,0xd0,0x22,0x94,0xd6,0xa0,0x28,0xb,
+  0xa3,0xea,0x52,0x22,0xcf,0x72,0x1c,0x1e,0x1e,0xe1,0xe8,0xe8,0x8,0x93,0xc9,0x18,
+  0x42,0x55,0x58,0xde,0xd8,0xc4,0x3,0x8f,0x3f,0x81,0x73,0x97,0x1f,0x81,0xef,0x87,
+  0x10,0x65,0x5,0xa5,0x34,0xb4,0xad,0x23,0x94,0x50,0x6,0x45,0x51,0x22,0xcf,0xb,
+  0x68,0xe3,0x60,0x1d,0x1,0xe5,0x3e,0xc2,0xa8,0x5,0x10,0xf,0x55,0x25,0x50,0x55,
+  0x2,0x61,0xd4,0x40,0x23,0x69,0x61,0x3c,0x9a,0x62,0x38,0x1c,0x63,0x3c,0x9e,0xc0,
+  0x18,0x9,0xad,0x2b,0x68,0x59,0x42,0xab,0x12,0x52,0x15,0x90,0xa2,0x80,0x51,0xd5,
+  0x2c,0x93,0x9e,0x5,0x0,0x63,0x60,0xb4,0x28,0xb5,0x2a,0xff,0xce,0x59,0xf3,0xd3,
+  0x79,0x65,0xff,0xa1,0x1,0x7a,0xee,0xb9,0xe7,0xf0,0xe6,0x9b,0x6f,0x2e,0x5e,0xdf,
+  0xb9,0x73,0x3b,0x4b,0x1a,0xc9,0x24,0xf2,0xc2,0x44,0x9,0x75,0xde,0x6a,0x13,0x2a,
+  0xa9,0x88,0x52,0xa,0xb2,0x12,0x28,0x8b,0x12,0x59,0x9a,0x23,0x9d,0xa4,0x98,0x8c,
+  0xc7,0x18,0xe,0x8f,0x71,0x78,0x74,0x88,0xe9,0x64,0x2,0xa5,0x15,0xfc,0xa4,0x89,
+  0xf5,0xcb,0xf,0x63,0xeb,0xa1,0xab,0x48,0x5a,0xdd,0x1a,0x10,0x21,0xea,0xbc,0xc6,
+  0xb8,0x5a,0xde,0xd0,0x6,0x65,0x29,0x90,0xe7,0x5,0x8a,0x4a,0xa0,0x28,0x2b,0x48,
+  0x59,0xbb,0x94,0xb1,0xe,0x42,0x29,0x8,0x21,0x11,0x84,0x21,0xc2,0x28,0x46,0x51,
+  0x54,0x90,0x52,0x42,0x29,0x9,0x29,0xb,0x54,0x55,0x6,0x21,0x32,0x28,0x59,0x40,
+  0xca,0x1c,0x5a,0x55,0x30,0x5a,0xd6,0x9e,0x44,0x48,0x2d,0xc6,0x69,0x5,0xad,0x45,
+  0x61,0x74,0xf5,0x82,0x73,0xf6,0x67,0x0,0xc6,0x1f,0x89,0xa4,0xe7,0xba,0xd0,0xf9,
+  0x7,0xcf,0xe3,0xd6,0xb5,0x5b,0xc8,0x75,0x6e,0xfe,0xf2,0x7,0x7f,0xf9,0xf7,0xcb,
+  0xed,0xe5,0xf5,0xb2,0xac,0x2e,0x97,0x59,0xf9,0xb9,0x28,0x8a,0x42,0x3f,0xf4,0xe1,
+  0x79,0x1e,0xb4,0x36,0xc8,0xb3,0x1c,0xe3,0xd1,0x18,0xd3,0xf1,0x14,0x59,0x9a,0x21,
+  0xcf,0x73,0x68,0xad,0xe0,0xf9,0x1,0x92,0xf5,0xd,0x34,0x57,0xd7,0x41,0xc3,0x4,
+  0xa3,0x49,0xa,0xdf,0xe3,0xf0,0x38,0x83,0xc7,0xcc,0x4c,0xe8,0x72,0xb0,0xd6,0xc1,
+  0x58,0x6,0xa5,0x1d,0x26,0xd3,0x1,0xa4,0xd2,0x20,0x94,0x23,0x49,0xba,0x68,0x34,
+  0x9a,0xe0,0x9c,0xc3,0xf3,0xfc,0xba,0x9c,0x31,0x16,0x67,0x56,0xfa,0x8,0x83,0x0,
+  0xad,0x66,0x84,0x1b,0x37,0x2a,0x14,0xb9,0x82,0x14,0x5,0xa4,0x28,0xa1,0x95,0x80,
+  0xb1,0x1a,0xf6,0xbe,0x74,0xc3,0x39,0xb,0x6b,0xb5,0x4,0xc8,0x5d,0x0,0xc7,0x1f,
+  0x88,0xa4,0xaf,0x5c,0xb9,0x2,0x0,0x78,0xed,0xb5,0xd7,0xde,0x71,0xec,0xd6,0xb5,
+  0x5b,0x0,0x80,0x27,0xae,0x3c,0xd1,0xea,0x36,0xba,0x8f,0x99,0xc2,0x7c,0x91,0xfa,
+  0xf4,0x7c,0xd2,0x6c,0x72,0x25,0x25,0xe,0xf6,0xe,0x60,0x8d,0x83,0x52,0xa,0x65,
+  0x59,0x22,0xcf,0x72,0x28,0x59,0x97,0x13,0x8c,0x33,0xb4,0x92,0x16,0x38,0xf7,0xe1,
+  0x2a,0x85,0xe3,0x9d,0xbb,0xd0,0xd6,0x60,0x69,0x79,0x15,0x8d,0xb8,0x1,0xee,0xf1,
+  0x9a,0x2e,0x29,0x1,0x63,0x1c,0x41,0x18,0xc1,0x58,0xe,0x63,0x18,0x94,0x6,0x8a,
+  0x42,0xa0,0xac,0x26,0x38,0x38,0x18,0xa0,0xd3,0x5d,0xc2,0xea,0xea,0x1a,0x3a,0xed,
+  0x2e,0x7c,0xcf,0x83,0x73,0xe,0x1e,0xf7,0x90,0x24,0xd,0x74,0x5a,0x9,0xe2,0x20,
+  0xc0,0xed,0x46,0x88,0xed,0xbb,0xc0,0x60,0x20,0x20,0xa,0x5,0x2d,0xab,0x59,0xf6,
+  0x3f,0x4b,0x1a,0x9d,0x83,0x73,0xd6,0x59,0xa3,0xb7,0x1,0x6c,0x3,0x48,0xdf,0x17,
+  0xa0,0xe7,0x9f,0x7f,0x1e,0x7f,0xf8,0x87,0x7f,0x78,0x4f,0x10,0xfa,0xde,0x7f,0xfc,
+  0x5e,0xe7,0x81,0xcb,0xf,0x24,0x9d,0x6e,0xa7,0x49,0x9,0xed,0xc4,0x71,0xdc,0xda,
+  0xbd,0xbd,0xbb,0xf1,0xd2,0xdf,0xbd,0xf4,0x85,0x72,0x54,0xfe,0xb2,0x2d,0xed,0x5a,
+  0xe0,0x5,0x2c,0x8,0x2,0x28,0xad,0x91,0x4d,0xb2,0x5a,0xc2,0x90,0x1a,0xce,0x3a,
+  0x70,0xce,0x11,0x86,0x21,0x38,0xe7,0x60,0x8e,0xc1,0x2a,0x8b,0x2c,0x2b,0xa1,0xf9,
+  0x31,0x5c,0x1c,0x20,0xec,0xb6,0xe1,0x69,0xa,0x2b,0xc,0x84,0xd6,0x10,0x5a,0xc3,
+  0x80,0x80,0x7,0x9,0x3c,0x3f,0x0,0x1,0x81,0x36,0xc,0xda,0x50,0x54,0x95,0xc1,
+  0x74,0x9a,0xc2,0x58,0x8a,0x24,0x69,0xa3,0xbf,0xbc,0x2,0xcf,0xf3,0xa0,0x94,0x6,
+  0x67,0x4,0x9c,0x71,0xb0,0x16,0x85,0xdb,0x70,0xf0,0x19,0x43,0x23,0x88,0xd1,0x6e,
+  0xb4,0x71,0xeb,0xb6,0xc5,0xfe,0xc1,0x14,0xa0,0xb3,0x7a,0x10,0x64,0xd6,0x64,0x30,
+  0x87,0xc6,0xa8,0xd7,0x9c,0xb5,0x87,0x1f,0x28,0xcc,0xdf,0x7,0x8e,0xf7,0x5b,0xbf,
+  0xf1,0x5b,0x2b,0x5b,0x9b,0x5b,0x4f,0xb6,0x9a,0xad,0x87,0x9a,0x49,0xf3,0x7c,0x1c,
+  0xc6,0xeb,0x94,0xd1,0xcd,0xe5,0xa5,0xe5,0x8d,0x7e,0xbb,0xbf,0xba,0x33,0xd8,0x61,
+  0xc5,0xa4,0x40,0x99,0x96,0x58,0xd9,0x5c,0x41,0xbb,0xdb,0xc6,0xe0,0x70,0x80,0xe9,
+  0x78,0x8a,0xb2,0x28,0x21,0x85,0x9c,0xe9,0xc2,0x1c,0x1e,0xf3,0x20,0x72,0x81,0x6c,
+  0x94,0x1,0x42,0xa3,0x4d,0x38,0xce,0xb6,0x9a,0xd8,0xea,0x84,0x70,0xce,0x20,0x4d,
+  0x53,0x10,0xa5,0x21,0xf2,0x2,0xd3,0xbc,0x44,0x26,0x2d,0xa2,0xd6,0x32,0x92,0x56,
+  0xbf,0x26,0x7d,0xe7,0x3,0x24,0x84,0xb1,0x15,0xa4,0x74,0x10,0x42,0x42,0x29,0x5,
+  0x4a,0x28,0xb4,0xd2,0x8b,0x4e,0x8a,0xd1,0x16,0x3e,0xf3,0xb1,0xbe,0x7a,0x16,0xbd,
+  0xe6,0x19,0xac,0x2f,0x9d,0x87,0xaa,0x4a,0x1c,0x1c,0xde,0xae,0x93,0x44,0xc2,0x40,
+  0x1,0x68,0x2d,0x60,0xb4,0xbc,0x6d,0x8c,0xfc,0x47,0xc0,0x8d,0x7f,0xa1,0xa2,0xf8,
+  0xd8,0x17,0x1f,0xab,0x43,0xf8,0x8b,0xaf,0xa0,0xb3,0xdc,0x21,0xe7,0x2f,0x9d,0x5f,
+  0xfa,0xca,0xd3,0x5f,0x79,0x66,0x6b,0x7d,0xeb,0x5f,0x5d,0x38,0x7b,0xe1,0xd3,0xbd,
+  0x6e,0xaf,0x1f,0xc7,0x71,0x8,0x82,0x8,0x4,0x11,0x77,0x3c,0xec,0xf6,0xba,0x64,
+  0xff,0xf6,0x3e,0x26,0x83,0x9,0x6e,0xbd,0x71,0xb,0xa2,0x14,0xe8,0x9d,0xe9,0x21,
+  0x8e,0x62,0x84,0x7e,0x8,0x29,0x24,0x84,0x10,0x90,0x95,0x84,0x28,0x5,0xca,0xac,
+  0x44,0x3a,0x4e,0x51,0xe4,0x5,0x28,0x65,0x68,0x75,0xdb,0xe8,0xaf,0x2c,0x21,0x49,
+  0x62,0x38,0x0,0x9e,0xc7,0xd1,0x71,0xe,0x7d,0xa5,0x30,0x18,0x8d,0xf0,0xca,0x1b,
+  0xaf,0x63,0xfb,0x70,0xf,0xac,0xd1,0xc7,0xca,0xda,0x3,0x20,0x84,0x43,0x48,0x40,
+  0x2a,0xc0,0x39,0xe,0x46,0xfd,0x59,0xa9,0xe3,0x60,0xb5,0xa9,0x55,0x81,0x59,0xe4,
+  0x34,0x4a,0xc3,0x1a,0x2,0x59,0x49,0x14,0x59,0x6,0x29,0x45,0xed,0x56,0x33,0x29,
+  0xd7,0x11,0xb,0x25,0x4b,0x18,0x23,0xdf,0x4,0xdc,0xf,0xef,0x6f,0x26,0xbe,0x3,
+  0xa0,0x57,0x5e,0x7c,0x65,0xb1,0xff,0x85,0x2f,0x7e,0xa1,0xb1,0xb1,0xbc,0xf1,0xc5,
+  0xb5,0x95,0xb5,0xdf,0x39,0xb3,0x7c,0xe6,0xab,0xed,0x56,0xbb,0x17,0xc7,0x31,0x7c,
+  0xdf,0x9f,0x9,0xf2,0x4,0x49,0x33,0xc1,0xfa,0xb9,0x75,0x1c,0x1f,0x1e,0xa3,0x2a,
+  0x2a,0x8c,0x87,0x63,0x58,0x6b,0x51,0x95,0x15,0x92,0x76,0x52,0xcb,0xae,0xc6,0x42,
+  0x29,0x5,0x59,0xca,0x1a,0x9c,0x49,0x5a,0xb7,0x64,0x18,0x45,0xd2,0x6b,0xa2,0xb3,
+  0xd4,0x41,0x94,0xc4,0x70,0xb3,0x90,0xeb,0x7,0x41,0x2d,0xb5,0xba,0x10,0xc4,0x18,
+  0x2c,0x47,0x21,0x6,0x47,0xdb,0x38,0x1c,0x8d,0x1,0xda,0x40,0x10,0x77,0x61,0xb4,
+  0x81,0xd6,0xe,0x79,0x51,0x62,0x34,0x1a,0x23,0x5d,0xea,0xa2,0x11,0x45,0xb0,0xc6,
+  0x42,0x4b,0x3,0xad,0x34,0x94,0xd0,0x75,0xfe,0xa5,0x8,0xf2,0x69,0x8a,0x9d,0xbd,
+  0xb7,0x71,0x3c,0xda,0x87,0x31,0xa,0x84,0xd4,0x6d,0x71,0x6b,0x94,0x55,0x5a,0xdc,
+  0xd2,0x4a,0xfc,0x4,0xc0,0x9b,0xf7,0xf7,0xc8,0x7e,0x21,0x49,0x77,0x5a,0x9d,0xf5,
+  0xd5,0xe5,0xd5,0x7f,0xbb,0xdc,0x5b,0xfe,0xb5,0xf5,0xd5,0xf5,0x5e,0x14,0x47,0x30,
+  0xa6,0x76,0x1,0x6b,0x2c,0x40,0xea,0xa,0x7b,0xe3,0xe2,0x6,0x84,0xa8,0x9b,0x89,
+  0x47,0x3b,0x47,0x28,0x8b,0x12,0x7b,0x77,0xf6,0x6a,0xb2,0x45,0x9d,0x38,0xd6,0x45,
+  0x21,0x16,0xdd,0xd6,0x20,0xc,0xd0,0x68,0x35,0xd0,0x5f,0xeb,0xa3,0xd9,0x6b,0xd5,
+  0x32,0x45,0x5a,0xdc,0xa3,0x2f,0x39,0xeb,0xa0,0x35,0xb0,0xd1,0x3f,0x8b,0xc9,0x38,
+  0xc3,0x74,0xe7,0x2e,0xf6,0xb6,0xaf,0xa1,0xd1,0xdd,0x42,0x23,0xee,0xc2,0x58,0x85,
+  0xe1,0x60,0x8c,0xaa,0x18,0xc1,0x67,0xc0,0xc6,0xda,0x3a,0xe2,0x28,0x59,0x0,0xa3,
+  0x2a,0x5,0x29,0x14,0xa0,0x29,0xf2,0x34,0xc3,0xed,0xbb,0x6f,0xe0,0x60,0x70,0x17,
+  0x52,0x9,0x84,0xa1,0xf,0x67,0x35,0x94,0xaa,0x72,0xad,0xca,0xbf,0x34,0x56,0xfd,
+  0x3,0xf0,0xce,0xd9,0xa5,0x7b,0x0,0xba,0xf8,0x99,0x8b,0xb8,0xf9,0xd2,0xcd,0xb9,
+  0xab,0xad,0x74,0x5b,0xdd,0xcf,0x9e,0x59,0x3e,0xf3,0x4b,0x91,0x1f,0xf5,0xb5,0xd4,
+  0x18,0x8b,0x31,0xac,0xb3,0x70,0xc6,0xc1,0x9a,0xba,0xf9,0x67,0xad,0x85,0x35,0x16,
+  0xad,0x6e,0xb,0x97,0x1e,0xbd,0x84,0xfe,0x46,0x1f,0xf9,0x34,0x47,0x55,0x54,0xf5,
+  0x45,0x4a,0x55,0x4b,0xa4,0x9c,0x82,0xf3,0xba,0x80,0xe4,0x1e,0x47,0x10,0x6,0x8,
+  0xe3,0x10,0x7e,0xe0,0xc3,0x1a,0x8b,0xc9,0xf1,0x4,0x73,0xd,0xc2,0xba,0x3a,0xb,
+  0x77,0xb6,0xfe,0x1e,0xa7,0x2c,0x7a,0x49,0x7,0x6b,0x9d,0xc,0x6f,0x1c,0xee,0x42,
+  0x6a,0x3,0xdb,0x33,0x70,0x56,0xa3,0x2a,0x33,0x14,0x99,0xc0,0xcf,0x4d,0x9,0x25,
+  0x2a,0x9c,0xdd,0xb8,0x8,0x67,0x50,0x83,0x53,0x2a,0x68,0x69,0x51,0x15,0x29,0xe,
+  0x7,0xdb,0x18,0x8e,0x76,0x20,0x54,0x31,0xd3,0xa2,0x2d,0x94,0xaa,0x94,0xa8,0xb2,
+  0x57,0xad,0x35,0xff,0xd,0xc0,0x2b,0xef,0xdb,0x17,0x9b,0x83,0x3,0x0,0x8f,0x5f,
+  0x7c,0xfc,0xc1,0x76,0xa3,0xfd,0x2b,0xdd,0x56,0x77,0x3d,0xf0,0x2,0x54,0x55,0x5,
+  0x21,0x45,0xed,0xbb,0x20,0x27,0x2d,0x65,0x5b,0x2f,0x86,0x31,0x86,0xde,0x4a,0xf,
+  0xcd,0x6e,0x13,0x65,0x5e,0xa2,0xcc,0x4a,0x88,0x52,0x40,0xa,0x9,0x63,0xc,0x28,
+  0xaf,0x7b,0x65,0x9c,0x71,0x78,0x9e,0x7,0xee,0x71,0x10,0x4a,0x60,0xb4,0x81,0x52,
+  0xb5,0x5e,0x3c,0x7,0xdb,0xda,0x7a,0x73,0xb6,0xee,0xd0,0x52,0x4a,0x11,0x47,0x9,
+  0x56,0x3b,0x7d,0xdc,0x3a,0xd8,0x45,0x9a,0x1e,0x62,0x42,0x39,0x2,0x2f,0x80,0x14,
+  0x39,0x44,0x99,0xa2,0x2a,0x8e,0xd1,0x8a,0x12,0x74,0x93,0x3e,0x18,0x3c,0x58,0xe5,
+  0x20,0xa,0x81,0x3c,0x4b,0xb1,0x7f,0x74,0x1b,0xb7,0x77,0x5e,0xc3,0x34,0x3f,0xae,
+  0x5b,0x47,0x94,0x41,0xc9,0xd2,0x2a,0x59,0xbe,0x2c,0x65,0xf9,0x67,0x80,0xfd,0xd1,
+  0xe9,0xd0,0xfe,0x41,0x5c,0x8c,0x2e,0xb5,0x97,0x1e,0x6b,0x46,0xcd,0x67,0x9b,0x71,
+  0x93,0xfb,0x9e,0xf,0xa3,0xc,0x60,0x31,0x8b,0x22,0xf7,0x2e,0xc4,0x9e,0xd2,0x9c,
+  0x9d,0x75,0x8,0xc2,0x0,0x7e,0xe0,0x2f,0x6a,0xaf,0xf9,0xf1,0x5,0x0,0xb3,0xcd,
+  0x28,0x53,0xbb,0xaa,0x5,0x28,0xa1,0xf3,0x89,0xc6,0x5a,0x41,0x3c,0xa5,0xb3,0x69,
+  0xad,0xeb,0xdc,0x26,0x6e,0xa2,0xdf,0x6c,0xa1,0x9a,0xa4,0x98,0x8e,0x77,0xd1,0x88,
+  0x3b,0x30,0x46,0x41,0xaa,0x1c,0x4a,0x1a,0xe4,0xe9,0x14,0xc5,0x38,0x83,0xc7,0x22,
+  0x50,0xc7,0x21,0x8a,0xa,0xbb,0x7,0x37,0xf0,0xfa,0x8d,0x7f,0xc4,0x9d,0xbd,0x37,
+  0xea,0xac,0x99,0x50,0x58,0xa3,0x4d,0x55,0x4e,0x6e,0x69,0x25,0xfe,0x4,0xb0,0x7f,
+  0x30,0xcf,0x9a,0x3f,0x18,0x40,0xd,0xd0,0xf5,0x73,0xeb,0xcb,0x61,0x10,0x3e,0x18,
+  0x4,0xc1,0x65,0xce,0x38,0xa1,0x84,0x42,0x5a,0x79,0xd2,0x5b,0x9f,0x2f,0x7a,0x26,
+  0x85,0x3a,0xeb,0x66,0x61,0xb5,0x5e,0xb0,0x9b,0x35,0xb,0x4f,0x3,0x73,0xfa,0xf8,
+  0xe2,0xd9,0x9a,0x5,0xb0,0xb5,0xb8,0x5c,0x57,0xfc,0xf3,0x56,0x71,0x2d,0xe2,0xeb,
+  0x85,0x2c,0x4b,0x9,0xc5,0x7a,0xef,0xc,0x46,0x45,0x89,0xc1,0xf0,0x0,0xc4,0xd5,
+  0x9a,0x8e,0x56,0x25,0xe0,0x1c,0x64,0x29,0xa0,0x4a,0xd,0x1e,0x12,0x18,0x67,0x91,
+  0x15,0x53,0xdc,0xda,0x79,0x1d,0x7,0xc7,0x77,0x51,0xa9,0xa,0x1e,0xf3,0x60,0x8d,
+  0x36,0x5a,0x55,0xaf,0x18,0xa3,0xfe,0xc8,0xc1,0xfc,0xf9,0xbc,0x28,0xfd,0xc0,0x0,
+  0x7d,0xe9,0x99,0x2f,0x79,0x51,0x18,0x9d,0x8f,0xc3,0xf8,0x6c,0x14,0x46,0x84,0x12,
+  0xba,0x58,0xb0,0x73,0xae,0x8e,0xe,0x4a,0xcd,0xe6,0x73,0x4e,0x48,0x57,0x2b,0xd,
+  0xad,0x75,0x3d,0xc5,0x61,0xec,0x3d,0xee,0x62,0x6c,0x3d,0xdd,0x61,0x8c,0xb9,0xf7,
+  0xd8,0x8c,0xc3,0x16,0xfa,0x27,0x1,0x18,0x67,0xf0,0x3c,0xf,0x61,0x14,0x2e,0xf8,
+  0xcb,0x98,0x1a,0x28,0xe7,0x80,0x6e,0x73,0x9,0xad,0x60,0x1f,0x54,0x57,0xa8,0x8a,
+  0x31,0x8c,0x35,0xa0,0x70,0x48,0xa2,0xe,0x22,0x3f,0x81,0xc7,0x42,0x10,0x4b,0x30,
+  0xce,0x6,0xd8,0xde,0x7f,0xb,0x3b,0x7,0xd7,0x91,0xe6,0x23,0x0,0xce,0x18,0x23,
+  0xa7,0x5a,0x89,0x57,0xa4,0xc8,0xff,0x27,0x60,0xff,0x78,0x36,0x48,0xf5,0xe1,0x6,
+  0xa8,0x36,0x57,0x37,0x3d,0xce,0xf9,0x43,0x49,0x98,0xf4,0x9b,0x51,0x73,0x61,0x9,
+  0xf3,0xbb,0x58,0x16,0x35,0xb7,0x44,0x8d,0x8,0x84,0xcd,0x38,0x44,0xaa,0x7b,0xad,
+  0x62,0xf6,0x3f,0xd6,0xcd,0x5e,0x1b,0x77,0x62,0x6d,0x38,0x1,0x7b,0xae,0xbc,0x2c,
+  0xf8,0xcc,0xd8,0x5,0x91,0x27,0xad,0xa4,0x6,0xc8,0x58,0x14,0x79,0x1,0x6b,0x2c,
+  0x28,0xa1,0xf0,0xb8,0x8f,0x66,0x94,0xa0,0x19,0x4,0x18,0x54,0x29,0x2a,0x25,0x11,
+  0x7,0xd,0x2c,0x77,0xd6,0xd1,0xef,0x6e,0x21,0xe,0xdb,0xc8,0xcb,0x9,0x6e,0xef,
+  0xbe,0x86,0x57,0xaf,0xff,0x3d,0xc6,0xd3,0x3,0x68,0x55,0x19,0xc0,0x6e,0x4b,0x59,
+  0xfc,0x8d,0xb5,0xe6,0x4f,0x0,0xf2,0xd7,0xef,0xc5,0x39,0xef,0xa,0xd0,0x67,0xbe,
+  0xfc,0x19,0x0,0xc0,0x4b,0x7f,0xf5,0x12,0xe2,0x28,0xf6,0x40,0x70,0xd5,0xf7,0xfd,
+  0x8d,0x24,0x4e,0x6a,0x15,0xa9,0xfe,0x3,0x51,0xd5,0x4d,0x3f,0xa3,0xcd,0x3d,0x61,
+  0xfb,0xb4,0x36,0xbf,0x68,0xe7,0xcc,0xda,0x3e,0x94,0xd4,0xc3,0xa,0xc4,0x91,0x85,
+  0xfb,0x38,0xe7,0x40,0x41,0x61,0x89,0x5,0x31,0x75,0xd7,0x83,0xd8,0xfa,0x78,0xad,
+  0x2,0x48,0x30,0x9f,0xc1,0xb,0x3c,0x28,0x5d,0x4b,0x24,0xc6,0x18,0x10,0x56,0x9f,
+  0xd3,0x8a,0x9a,0xe8,0x25,0x1d,0xec,0x8c,0xaf,0x43,0x18,0x8d,0x24,0x6a,0xc1,0x63,
+  0x3e,0xf2,0x62,0x84,0x1b,0x77,0x5f,0xc6,0xce,0xfe,0x5b,0x78,0x7b,0xe7,0x55,0xec,
+  0x1d,0xbe,0x95,0x2a,0x29,0x6e,0x3a,0xd8,0x9f,0x51,0x42,0x7f,0x64,0xad,0xf9,0x47,
+  0x0,0x6f,0xdd,0x9f,0x2d,0xbf,0x2f,0x40,0x2f,0xfd,0xd5,0x4b,0x27,0x1a,0x8f,0x55,
+  0x51,0xe4,0x47,0xf,0x70,0xce,0xfb,0x61,0x10,0xc2,0xe9,0x7a,0xf0,0xc0,0xc1,0x41,
+  0x54,0x2,0xa2,0x12,0x33,0x95,0xe0,0xa4,0x8d,0xb3,0xe0,0x8d,0x59,0x5,0x63,0x51,
+  0x3,0x42,0x1d,0x5d,0x34,0x96,0xe6,0xa0,0xcc,0xf7,0xe7,0xe2,0xfd,0xe2,0x89,0xb9,
+  0x5,0x21,0x4b,0x59,0xb7,0x7a,0xfc,0x86,0x8f,0x58,0xc7,0x20,0xfb,0xb5,0xa0,0x35,
+  0x7,0x3a,0xe,0x63,0x74,0x9b,0x5d,0x47,0xac,0x92,0x46,0xc9,0xdc,0x5a,0x5d,0x95,
+  0xd5,0x94,0x1e,0xc,0x6e,0x69,0x21,0xb,0x79,0x77,0xef,0x4d,0x79,0x38,0xbc,0x3d,
+  0xaa,0x8a,0xc9,0xed,0xd9,0xec,0xcf,0x3f,0xd9,0x3a,0x8c,0x1f,0x7e,0xec,0x29,0xd7,
+  0x52,0x94,0xcd,0x66,0xd4,0xec,0x33,0xca,0x1a,0x1e,0xf3,0x20,0x54,0xdd,0x8e,0x81,
+  0x3,0xb4,0xd4,0x90,0x55,0xdd,0x4f,0x77,0xce,0x81,0x32,0x5a,0x37,0x2,0xdd,0xc9,
+  0xc2,0x89,0xab,0xad,0x6,0x74,0x6,0xd4,0xec,0x7f,0x29,0xa5,0xb,0xe0,0xee,0xb7,
+  0xb2,0x79,0xef,0x8c,0xe2,0x14,0xaf,0x29,0x3,0xce,0x39,0xe2,0x24,0x6,0xe3,0x6c,
+  0xe1,0x8a,0x84,0x12,0x78,0xdc,0x47,0x2b,0x6e,0x9a,0x86,0x1f,0xee,0x67,0x45,0xfa,
+  0xd3,0xc9,0x78,0xff,0xad,0xeb,0xd5,0xd4,0x57,0x5a,0x4e,0x8a,0x32,0xdd,0x85,0x33,
+  0xbb,0xc6,0xea,0xf9,0x88,0xdd,0x3e,0x0,0xf1,0x41,0x87,0x36,0xdf,0xf,0x20,0x9f,
+  0x11,0xb6,0x1a,0xf0,0xa0,0xc9,0x9,0xe7,0x8b,0x86,0xdd,0x6c,0x20,0x53,0x4a,0x9,
+  0x29,0x64,0xbd,0x58,0x6b,0xc1,0xc0,0x16,0x96,0x53,0xe7,0x17,0xf5,0xfe,0x1c,0x98,
+  0x7b,0xdc,0xa,0x27,0x91,0xca,0x51,0x7,0xb,0xb,0xa,0x7a,0xf,0xa8,0x96,0xd8,
+  0x93,0x59,0x22,0x2,0x78,0x9e,0x7,0xc6,0x18,0x18,0x67,0x35,0xa8,0x33,0x97,0xa6,
+  0x84,0x20,0xf2,0x23,0xd7,0x6f,0xf5,0xf2,0x4a,0x14,0x3f,0x1d,0xa4,0x83,0xbf,0x28,
+  0xcb,0x11,0x73,0xce,0x56,0x0,0xa6,0xb3,0x2d,0x9f,0xd5,0x55,0xfa,0xe3,0xa8,0xa6,
+  0xf7,0x0,0xf4,0xc4,0x17,0x9f,0x68,0x7b,0xd4,0xdb,0x88,0x82,0x28,0x61,0x94,0x2d,
+  0x42,0xb0,0x75,0x75,0x68,0xae,0xeb,0x1b,0x35,0x53,0xe0,0xc,0x3c,0xdf,0xab,0x17,
+  0x6f,0xeb,0xc6,0x9b,0x23,0xee,0x5e,0xab,0x98,0x59,0x6,0x71,0x33,0x8b,0x99,0xed,
+  0x9f,0x6,0xe4,0xf4,0x39,0x73,0x30,0xb9,0xc7,0xeb,0x68,0xe6,0x7b,0x80,0xab,0x15,
+  0x80,0xf9,0xd0,0xc2,0xdc,0xad,0x3,0xee,0x93,0x6e,0xd2,0xf5,0xb3,0x2a,0xb3,0x83,
+  0x74,0x30,0x72,0xce,0x56,0x7e,0x98,0xb8,0x28,0x6a,0x11,0xcf,0x6b,0x4,0xd6,0x6a,
+  0x4f,0x88,0x2c,0xc9,0xd3,0x63,0x5,0x18,0x31,0xb3,0x22,0x83,0xfb,0x44,0xf9,0xf,
+  0x5,0x50,0xbf,0xd5,0x6f,0x7b,0xdc,0xdb,0x8,0x83,0xb0,0xc9,0x19,0x5f,0x44,0xa2,
+  0xd3,0x79,0x8c,0x52,0xa,0x4,0x75,0xf4,0x2,0xea,0x61,0xa6,0xc5,0x60,0x82,0x23,
+  0xa8,0xbd,0x64,0xb6,0x60,0x4a,0x16,0xfb,0xb,0xde,0x9a,0x3,0x6,0xbc,0xeb,0x39,
+  0x94,0xd5,0x0,0x5,0x51,0x80,0x20,0xa,0x60,0xb4,0x1,0x65,0xf4,0x1e,0x80,0x38,
+  0xe5,0xe0,0x94,0x33,0x9f,0x7,0x1b,0x70,0xf8,0xc,0x80,0x7d,0xea,0xc7,0xfb,0x71,
+  0xa3,0xe7,0xe2,0xb8,0x1d,0x4,0x41,0x87,0x1a,0xa3,0x24,0xa1,0xbc,0x28,0x8b,0x34,
+  0xb5,0xc6,0xa4,0xf7,0x59,0x96,0xfa,0x48,0x0,0x71,0xce,0x63,0x4a,0x68,0xd7,0xf7,
+  0x7c,0x9f,0x31,0xb6,0x8,0xcd,0x70,0x98,0xc9,0x99,0x6e,0x1,0x8c,0x56,0xb5,0x8,
+  0x46,0x79,0xcd,0x37,0x73,0x52,0x76,0xa8,0x2d,0x6e,0x9e,0xec,0xc1,0x9d,0x64,0xc7,
+  0x75,0x8b,0xae,0x3e,0x6f,0x7e,0xce,0x69,0xb2,0x76,0xb6,0x76,0xd3,0x79,0xbd,0x36,
+  0xb7,0xd0,0xf9,0x67,0xcd,0x15,0x4,0x7,0x7,0x42,0x9,0x9,0xfd,0x20,0x8a,0xfc,
+  0x38,0x4,0xa0,0x41,0xfc,0x7d,0x3f,0x6c,0x9b,0x66,0xb2,0xd2,0x58,0x5d,0x79,0x98,
+  0x10,0x8f,0xdb,0x49,0x76,0xa0,0x9,0xd,0xcc,0x74,0xbc,0xe3,0x69,0x99,0x26,0x8c,
+  0x11,0xe2,0xac,0xe5,0xda,0x98,0x2,0x80,0x40,0x10,0x18,0xcc,0x8a,0xec,0xf,0x4,
+  0x10,0x21,0x24,0x76,0x70,0xbd,0xc0,0xb,0x38,0x9f,0x4d,0xc9,0xcf,0x17,0xb6,0xd8,
+  0x9f,0x59,0x8b,0x94,0x12,0x5a,0xeb,0x5,0x3f,0x9c,0x76,0x1f,0x42,0x4f,0x59,0xc8,
+  0x7c,0xca,0xe3,0xb4,0x65,0x91,0x77,0x39,0x87,0xd6,0x6e,0x48,0x9,0x5,0x65,0x14,
+  0xbe,0x5f,0x6b,0xda,0x73,0xcb,0x5b,0xe4,0x4e,0x6e,0x1e,0xc,0x80,0xc0,0xb,0x10,
+  0x87,0xd,0x0,0x7e,0x6a,0x59,0x7c,0xbb,0xdd,0x7b,0x50,0x2e,0x35,0xda,0xad,0x4f,
+  0x3f,0xf6,0x35,0x84,0xbd,0x15,0xec,0xe,0x6f,0x52,0x6b,0x2,0xe6,0xac,0x63,0xd9,
+  0xf8,0x36,0x8,0x35,0xdc,0x10,0x1d,0x2e,0x12,0x35,0x21,0xdc,0xfb,0xfd,0x34,0x81,
+  0xdf,0xdb,0x42,0x77,0x2d,0xeb,0xec,0x6a,0xe0,0x7,0x94,0x33,0xbe,0x28,0x16,0x4f,
+  0x8f,0xf4,0x12,0x5a,0x17,0xaa,0xf3,0x4a,0xdd,0xf3,0xbc,0x45,0xd4,0x72,0xce,0x81,
+  0xd8,0x77,0xf2,0xcb,0xe9,0x32,0xe2,0xf4,0x36,0xe7,0xac,0x93,0x79,0xc6,0x3a,0xe7,
+  0xa2,0x94,0x22,0xc,0xc3,0x5a,0x42,0x95,0xea,0x9e,0x4c,0x7e,0x3e,0x2e,0xe3,0x1c,
+  0xe0,0x31,0xf,0x81,0x17,0xf2,0x24,0x6c,0x30,0xa1,0xd2,0xfc,0xda,0x9d,0x9d,0xa2,
+  0x48,0x6e,0x12,0x3f,0x70,0xe8,0xac,0xff,0x12,0x58,0x74,0x16,0xe7,0x36,0x9e,0x85,
+  0x67,0x2,0x6c,0x13,0x8a,0xaa,0xda,0xa6,0xa5,0x95,0xf5,0x70,0x4b,0x59,0xf8,0xf5,
+  0xbc,0x32,0x91,0xf5,0x3c,0xca,0xbb,0xe3,0x44,0xbf,0xf1,0x8d,0x6f,0x9c,0x4c,0x25,
+  0x18,0xcb,0x8,0x21,0x7e,0x14,0x46,0xc4,0xf7,0xfd,0x77,0xb4,0x8d,0x17,0xed,0x59,
+  0x8b,0x99,0x5a,0x67,0x16,0xb5,0x16,0x80,0x85,0x3b,0x10,0x7a,0x8a,0xa0,0x29,0x59,
+  0xbc,0x47,0x9,0xad,0x37,0x7a,0xef,0xb6,0x18,0x8b,0x99,0x91,0x7d,0x18,0x85,0xe8,
+  0xf4,0x3a,0x48,0x5a,0x9,0x7c,0xdf,0xaf,0xc1,0xe2,0x1e,0x28,0xea,0xa1,0x2b,0x46,
+  0x67,0xaa,0x0,0xf3,0xc0,0x29,0x23,0xce,0x59,0x38,0x55,0x59,0x4c,0xfe,0xc1,0x1e,
+  0x1d,0xdd,0x2a,0xae,0x5d,0x7b,0xb5,0xd8,0xb9,0x73,0xab,0x10,0xb9,0x28,0x9a,0xf1,
+  0x6a,0xb1,0xba,0xf2,0x58,0xb1,0xbc,0xfc,0x50,0x1,0x47,0x73,0xdf,0xf7,0x8a,0x66,
+  0xb3,0x5d,0x51,0xba,0xa4,0x81,0xc4,0x1,0x8e,0x2,0xf6,0x3d,0x7f,0xf5,0xc4,0xbf,
+  0xff,0xfd,0xef,0x9f,0x36,0x21,0xdf,0x1a,0x1b,0x5a,0x6b,0xe9,0x7b,0xf1,0xfc,0x5c,
+  0xd0,0x52,0xaa,0x1e,0xda,0xd4,0x46,0x2f,0xac,0x80,0x52,0xa,0xb0,0x93,0xd1,0x96,
+  0x39,0xe7,0xcc,0xf9,0x69,0x91,0x51,0xe3,0xd4,0x10,0xd5,0x2c,0x7f,0x5a,0x3c,0x13,
+  0x40,0x5b,0x8d,0x34,0x4f,0x1,0xf,0x48,0xb3,0x14,0xc6,0x99,0x5,0x7,0xcd,0x33,
+  0x78,0x29,0x5,0xa6,0xc5,0x14,0x79,0x99,0x6a,0xa9,0x2a,0xa9,0x51,0x9f,0x23,0xe5,
+  0x58,0xed,0xec,0x4e,0x31,0x1d,0xdd,0x74,0xa1,0x96,0x18,0x12,0x82,0x76,0xf7,0x22,
+  0xd6,0xd6,0x9e,0xc2,0xcf,0x7f,0xfe,0xdf,0xf1,0xd0,0xa5,0x1e,0xd9,0x58,0xbf,0x8a,
+  0x1f,0x8c,0x2d,0x29,0xf5,0xb5,0x77,0xd3,0xc8,0xde,0xdb,0xc5,0x18,0xa5,0x1d,0x21,
+  0xab,0xee,0xd1,0xf1,0x11,0x67,0x84,0x21,0x89,0x93,0x7b,0x24,0xd,0xb,0x5b,0xbb,
+  0x12,0x75,0xa8,0x54,0x85,0x42,0x14,0xf0,0x84,0x7,0x46,0x59,0x7d,0x87,0x39,0x5,
+  0xa3,0xac,0x76,0x39,0x83,0x93,0x2a,0x9d,0xe2,0xde,0xcc,0x79,0xb6,0x48,0x47,0xea,
+  0xc8,0x67,0x9d,0x85,0x9d,0xb5,0xaa,0x85,0x14,0x28,0xf6,0xb,0xc,0x7e,0x38,0xa8,
+  0x25,0x5b,0x70,0xc,0x87,0x43,0x64,0x22,0xab,0x33,0x6c,0x52,0x9f,0x33,0x4a,0x47,
+  0xb8,0xbe,0x7b,0x1d,0xc3,0x74,0x58,0x28,0x2b,0x46,0xa7,0xb8,0xc4,0x0,0x33,0xab,
+  0x9d,0xd,0x4a,0xd5,0xa3,0xc8,0x66,0x36,0x34,0x35,0x53,0x19,0x3e,0x60,0xa4,0x5f,
+  0x0,0xf4,0xc4,0xa7,0x9e,0xc,0x1a,0x51,0xa3,0xa4,0x84,0xee,0xed,0x1d,0xee,0xad,
+  0xa6,0x59,0xda,0xb,0xbc,0x80,0x12,0x52,0x73,0x8e,0xa8,0x84,0x4b,0x27,0xa9,0xc8,
+  0xb3,0x5c,0x48,0x29,0x25,0x13,0xdc,0x1c,0x64,0x7,0xb1,0xe7,0x7b,0xcd,0x66,0xd4,
+  0xc,0x5b,0x8d,0x16,0x92,0xb8,0x76,0x9,0xdf,0xf3,0xc1,0x3d,0x8e,0xd0,0xb,0x1,
+  0xf,0x8b,0xea,0x7d,0x2e,0x8b,0x28,0xa9,0x50,0x56,0x25,0xca,0xa2,0x44,0x59,0x96,
+  0x48,0xf3,0x14,0x93,0xe9,0x4,0xc7,0x93,0x63,0x57,0xca,0xb2,0x60,0x1,0x9b,0xae,
+  0xa8,0x95,0xe3,0x9e,0xee,0x55,0xd4,0x52,0xec,0xee,0xef,0x86,0xd3,0xd1,0xd4,0x97,
+  0x95,0x64,0xe,0xe,0xc6,0x18,0x9b,0x57,0xb9,0x29,0x44,0xe1,0x84,0x16,0x6f,0xcd,
+  0x86,0x9d,0x4e,0x91,0xc8,0x9b,0x98,0xe4,0x6f,0xe2,0x6f,0x7f,0xf8,0xce,0x5,0xbf,
+  0x75,0xa3,0xc4,0x5b,0x37,0xf6,0x3e,0x5c,0xa2,0xc8,0x9a,0x8c,0x4c,0xaa,0x11,0x4b,
+  0x1a,0xcd,0x51,0xe8,0x87,0xaf,0xe7,0x65,0xce,0x8a,0xb2,0x58,0x22,0x84,0x78,0x8c,
+  0x31,0x67,0x8d,0x25,0xaa,0x52,0xb6,0x2a,0xaa,0xb2,0x2c,0xcb,0x5c,0x6b,0x5d,0x7a,
+  0xc6,0xd7,0x55,0x5a,0x35,0xad,0x35,0xfd,0x66,0xa3,0xd9,0x6b,0xc5,0xad,0x66,0x23,
+  0x6c,0x44,0xa1,0x1f,0xd2,0x30,0xc,0x59,0x14,0x46,0x2c,0xe,0x63,0xc2,0x28,0x3b,
+  0xa9,0xee,0xad,0x85,0x56,0x1a,0x55,0x55,0x21,0xcb,0x32,0x3b,0x49,0x27,0x66,0x9a,
+  0x4d,0x4d,0x9a,0xa7,0x76,0x9a,0x4e,0xab,0xc1,0x78,0x30,0x51,0x56,0xd,0x5a,0xdd,
+  0xd6,0xe1,0x56,0xb4,0xb5,0x97,0xc4,0x49,0x9e,0x8f,0x73,0x32,0x1a,0x8d,0xe2,0xe3,
+  0xe3,0xe3,0x50,0x29,0xc5,0x1d,0x71,0xf0,0x98,0x67,0x9d,0x85,0xa,0xbd,0x50,0x87,
+  0x5e,0xf8,0xd6,0x4,0x93,0xec,0xa3,0x96,0x12,0x1f,0x8,0x20,0x93,0x1a,0xdc,0x4c,
+  0xdf,0xb6,0x5f,0x62,0x5f,0x3e,0xee,0xb5,0x97,0x5e,0xdf,0x5a,0xdd,0x3c,0x8c,0x83,
+  0x98,0x51,0x50,0x63,0x5c,0x9d,0x41,0xa7,0xe3,0x14,0xbb,0x37,0x77,0x5d,0x65,0x2a,
+  0x17,0x76,0x43,0xbb,0x7e,0x6e,0xdd,0x46,0x71,0x44,0xa7,0xf9,0x34,0xba,0xb9,0x7d,
+  0x73,0x65,0xf7,0x60,0x77,0x3d,0xcf,0xf3,0x33,0xa1,0x1f,0x76,0x38,0xe3,0x1d,0x8f,
+  0x7a,0x9d,0xc0,0xb,0x1a,0x9c,0x71,0x3a,0x77,0x3b,0xa9,0x24,0xca,0xaa,0x84,0xd4,
+  0x52,0x57,0xa2,0x9a,0xe4,0x65,0x3e,0x9a,0xe4,0x93,0xd4,0x68,0x33,0xc,0x79,0x78,
+  0xb8,0xba,0xb4,0xba,0x7b,0x6e,0xeb,0xdc,0xe8,0xe1,0x47,0x1e,0x2e,0xae,0x3c,0x79,
+  0xc5,0x12,0x4b,0xdc,0xf6,0x8d,0x6d,0xb8,0xcc,0x91,0xb4,0x95,0x12,0x67,0x1d,0xb1,
+  0xc4,0xc2,0xe7,0x81,0x13,0x52,0xd2,0xb7,0xb6,0xdf,0x8,0xb4,0xd3,0xc3,0x83,0xc9,
+  0x81,0xfa,0x44,0x1,0x2,0xe0,0xb0,0xb,0xa9,0xad,0x9e,0x12,0x82,0xc3,0x4e,0xb3,
+  0x23,0xba,0x49,0x17,0x9c,0x71,0xa5,0x5d,0x3d,0xbe,0xe2,0x3b,0x1f,0x43,0x3a,0x24,
+  0xc4,0x27,0xa4,0xd3,0xee,0xa0,0xbf,0xd4,0x47,0xbb,0xd3,0x76,0x7d,0xd9,0xa7,0x8c,
+  0xb3,0xbd,0x38,0x88,0xaf,0xd,0x47,0xc3,0x44,0x6a,0xd9,0xca,0xb2,0xac,0x3b,0x4a,
+  0x47,0x3d,0x23,0x4d,0x42,0x8,0x89,0x39,0xe3,0x1e,0x63,0x8c,0x8,0x21,0x6c,0x51,
+  0x15,0xd2,0xc1,0x15,0x9c,0xf3,0x91,0xef,0xf9,0xc7,0xcb,0xdd,0xe5,0x69,0xc0,0x83,
+  0xb4,0x15,0xb5,0xf2,0x7e,0xa7,0x5f,0x6c,0xac,0x6e,0xc8,0xb5,0xee,0x9a,0x5d,0x59,
+  0x5a,0xa1,0x42,0x8,0x12,0xc7,0x31,0x9a,0x71,0xd3,0x11,0x39,0xcf,0xc0,0x9d,0xa3,
+  0x94,0x93,0x29,0xc9,0x98,0x23,0xe0,0xce,0xb9,0xe3,0x59,0xcd,0xf5,0x89,0x2,0x4,
+  0x0,0xb6,0x10,0x45,0x96,0x55,0xd9,0xa8,0xac,0x4a,0x4,0x3c,0x20,0x1e,0xf7,0xb4,
+  0x21,0xb5,0x5,0x49,0x2d,0x21,0x9d,0x84,0x63,0x8e,0x10,0x8f,0x40,0x68,0x81,0xb4,
+  0x48,0xe1,0x71,0xcf,0x5e,0xb9,0x70,0xc5,0x3c,0xfd,0xa9,0xa7,0x25,0x65,0xd4,0x5e,
+  0xbf,0x7b,0xdd,0xfb,0xe9,0xeb,0x3f,0x6d,0x5c,0xbb,0x71,0x2d,0x39,0x3c,0x38,0xc,
+  0xa5,0x96,0x21,0x65,0xd4,0xe7,0x9c,0xd3,0xaa,0xaa,0xb4,0x10,0x42,0x84,0x61,0x28,
+  0x96,0xbb,0xcb,0xf9,0xe5,0xf3,0x97,0xb3,0x47,0x2e,0x3e,0x52,0xb6,0xe3,0xb6,0x2b,
+  0xf3,0x92,0xee,0x1e,0xec,0x7a,0x55,0x55,0xf1,0xfd,0xbd,0x7d,0xd2,0x1f,0xf4,0x61,
+  0x61,0x51,0x8a,0x12,0x52,0x49,0x8,0x25,0x16,0xc3,0x6,0xc6,0x9,0x3a,0x2d,0xa7,
+  0xc8,0xca,0xd4,0x94,0xb2,0x1c,0xfe,0x4b,0x1,0x84,0x2c,0xcb,0x8a,0x22,0x2e,0xe,
+  0x85,0x10,0x52,0x6,0x92,0x3a,0xe2,0x8c,0x86,0xae,0x65,0xe,0x21,0x17,0xed,0x1b,
+  0xe6,0x31,0x10,0x47,0x60,0x94,0x81,0x96,0x1a,0x45,0x5a,0xb8,0xfd,0xe1,0x3e,0x40,
+  0xe1,0x98,0x63,0xee,0xd1,0x8b,0x8f,0x1e,0x5f,0xb9,0x70,0xc5,0x71,0xcb,0x9d,0x71,
+  0x6,0xda,0x69,0x38,0xe7,0x9c,0xd5,0x16,0x4e,0x3b,0x2,0x2,0x8,0x2d,0x88,0x90,
+  0x82,0xc,0x6,0x3,0x72,0xa0,0xf,0x88,0x94,0x92,0xe4,0x79,0xe,0x67,0x1d,0xe1,
+  0x11,0x47,0x99,0x97,0xf5,0xcf,0xa5,0xb2,0xa,0x5a,0xcc,0xa6,0xc1,0x58,0x9d,0x66,
+  0x68,0xa5,0xa8,0x52,0x95,0x53,0x52,0x49,0xa3,0xcc,0x1c,0x20,0xfb,0x89,0x3,0xb4,
+  0xb7,0xbf,0x57,0x25,0x5e,0x72,0x2c,0x2a,0x51,0x89,0x48,0x10,0xeb,0x59,0x6b,0x60,
+  0x6a,0x4d,0xd9,0x58,0xc0,0x0,0xd4,0xa3,0x20,0xac,0xe,0x97,0x46,0xd6,0xc9,0xa2,
+  0x86,0x46,0xe5,0x2a,0x62,0x60,0xd0,0xe4,0x4d,0xdb,0x6b,0xf5,0xec,0x99,0xe5,0x33,
+  0x76,0x6d,0x69,0xcd,0x7a,0xbe,0xe7,0xac,0xb5,0xce,0x73,0x9e,0x83,0x2,0x91,0x42,
+  0x92,0x34,0x4f,0xe9,0xf5,0xfd,0xeb,0xf4,0xed,0xfd,0xb7,0x69,0x56,0x65,0x54,0x14,
+  0x82,0x48,0x21,0x51,0xaa,0xd2,0x51,0x4a,0xd1,0x50,0xd,0xc8,0x54,0x42,0x5b,0x5d,
+  0x4b,0xbc,0x5a,0xc0,0xba,0x5a,0x5e,0x31,0x30,0x10,0x46,0x90,0x52,0x96,0xc8,0xab,
+  0x5c,0xe6,0x65,0x9e,0x7d,0x5c,0x49,0xe3,0x3,0x3,0xf4,0xe3,0x7f,0xf8,0xb1,0x92,
+  0x63,0x99,0x3e,0x7e,0xf6,0xf1,0x82,0x37,0x38,0x61,0xd,0xe6,0xe0,0x0,0x8f,0xd6,
+  0x45,0x23,0x17,0xb5,0xc,0x1,0x6,0x48,0x2b,0xc1,0x52,0x6,0xe4,0x0,0x5b,0x61,
+  0xb0,0xa1,0x45,0x2a,0x53,0x4c,0xf,0xa7,0xb8,0xbb,0x7d,0x97,0xfc,0x4,0x3f,0x81,
+  0x85,0xc5,0x64,0x3a,0x81,0x48,0x5,0x96,0xe9,0x32,0x38,0xe1,0x70,0xa4,0x56,0x16,
+  0x4b,0x56,0xa2,0xe4,0xa5,0x63,0x1e,0x3,0x2f,0x38,0x4c,0x6a,0x90,0xb1,0xc,0xbc,
+  0xc1,0xa1,0x9c,0x82,0xda,0x55,0xc8,0x5d,0x8e,0x61,0x3a,0xc4,0xc8,0x8c,0x10,0xdb,
+  0x18,0x91,0x89,0x30,0x24,0x43,0x8c,0xaa,0x11,0x19,0x64,0x3,0xdc,0x3a,0xbe,0x65,
+  0x9c,0x75,0x9f,0x18,0x38,0xef,0x26,0x98,0xd9,0x4a,0x54,0xca,0x1a,0xab,0xec,0x7c,
+  0x2,0x74,0x3e,0x19,0x3f,0x2b,0x2c,0xef,0xa9,0xdd,0x8c,0xc3,0x2c,0x81,0x5d,0xfc,
+  0x82,0x70,0xfe,0xfb,0x54,0xe3,0x4c,0x7d,0xb7,0xa5,0x40,0x25,0x2a,0x48,0x2a,0xe1,
+  0xa8,0x5b,0x0,0xa4,0xb8,0x82,0x26,0x1a,0x84,0x93,0x45,0x6c,0x5a,0x69,0x4a,0x0,
+  0x0,0x0,0x21,0x49,0x44,0x41,0x54,0x11,0x6c,0x88,0x1,0x3,0xab,0x8b,0x63,0xed,
+  0x16,0xa2,0xff,0x3c,0x93,0xa6,0x6e,0xf6,0x4b,0x45,0x7b,0xd2,0x32,0xfa,0xa4,0xb8,
+  0x67,0xfe,0xf8,0x3f,0xd3,0x21,0x9c,0xee,0x31,0xd4,0xfa,0xe1,0x0,0x0,0x0,0x0,
+  0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+  
+};
+
+static const unsigned char qt_resource_name[] = {
+  // offline.png
+  0x0,0xb,
+  0x0,0xaf,0xcd,0x27,
+  0x0,0x6f,
+  0x0,0x66,0x0,0x66,0x0,0x6c,0x0,0x69,0x0,0x6e,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // close.png
+  0x0,0x9,
+  0x6,0x98,0x83,0x27,
+  0x0,0x63,
+  0x0,0x6c,0x0,0x6f,0x0,0x73,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // addcontact.png
+  0x0,0xe,
+  0x2,0xf3,0x85,0xe7,
+  0x0,0x61,
+  0x0,0x64,0x0,0x64,0x0,0x63,0x0,0x6f,0x0,0x6e,0x0,0x74,0x0,0x61,0x0,0x63,0x0,0x74,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // contactfemale.png
+  0x0,0x11,
+  0xa,0xdc,0x51,0xa7,
+  0x0,0x63,
+  0x0,0x6f,0x0,0x6e,0x0,0x74,0x0,0x61,0x0,0x63,0x0,0x74,0x0,0x66,0x0,0x65,0x0,0x6d,0x0,0x61,0x0,0x6c,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+  
+    // away.png
+  0x0,0x8,
+  0xd,0x8c,0x5a,0x47,
+  0x0,0x61,
+  0x0,0x77,0x0,0x61,0x0,0x79,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // themes.png
+  0x0,0xa,
+  0x3,0xcd,0xa,0xc7,
+  0x0,0x74,
+  0x0,0x68,0x0,0x65,0x0,0x6d,0x0,0x65,0x0,0x73,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // yellowframe.png
+  0x0,0xf,
+  0x2,0x5c,0x13,0x47,
+  0x0,0x79,
+  0x0,0x65,0x0,0x6c,0x0,0x6c,0x0,0x6f,0x0,0x77,0x0,0x66,0x0,0x72,0x0,0x61,0x0,0x6d,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // online.png
+  0x0,0xa,
+  0x0,0x4a,0x9d,0x27,
+  0x0,0x6f,
+  0x0,0x6e,0x0,0x6c,0x0,0x69,0x0,0x6e,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // restore.png
+  0x0,0xb,
+  0x6,0x79,0xc2,0x27,
+  0x0,0x72,
+  0x0,0x65,0x0,0x73,0x0,0x74,0x0,0x6f,0x0,0x72,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // redframe.png
+  0x0,0xc,
+  0xb,0x23,0xc,0x47,
+  0x0,0x72,
+  0x0,0x65,0x0,0x64,0x0,0x66,0x0,0x72,0x0,0x61,0x0,0x6d,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // general.png
+  0x0,0xb,
+  0x8,0xa4,0xde,0xc7,
+  0x0,0x67,
+  0x0,0x65,0x0,0x6e,0x0,0x65,0x0,0x72,0x0,0x61,0x0,0x6c,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // settings.png
+  0x0,0xc,
+  0xb,0xdf,0x21,0x47,
+  0x0,0x73,
+  0x0,0x65,0x0,0x74,0x0,0x74,0x0,0x69,0x0,0x6e,0x0,0x67,0x0,0x73,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // hidden.png
+  0x0,0xa,
+  0xa,0xcc,0x88,0x7,
+  0x0,0x68,
+  0x0,0x69,0x0,0x64,0x0,0x64,0x0,0x65,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // busy.png
+  0x0,0x8,
+  0xc,0xac,0x5a,0x67,
+  0x0,0x62,
+  0x0,0x75,0x0,0x73,0x0,0x79,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // greenframe.png
+  0x0,0xe,
+  0x9,0x50,0xd7,0xe7,
+  0x0,0x67,
+  0x0,0x72,0x0,0x65,0x0,0x65,0x0,0x6e,0x0,0x66,0x0,0x72,0x0,0x61,0x0,0x6d,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // contactmale.png
+  0x0,0xf,
+  0xf,0x6a,0xa8,0xa7,
+  0x0,0x63,
+  0x0,0x6f,0x0,0x6e,0x0,0x74,0x0,0x61,0x0,0x63,0x0,0x74,0x0,0x6d,0x0,0x61,0x0,0x6c,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // network.png
+  0x0,0xb,
+  0x6,0x67,0xc0,0x87,
+  0x0,0x6e,
+  0x0,0x65,0x0,0x74,0x0,0x77,0x0,0x6f,0x0,0x72,0x0,0x6b,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // tieto-logo.png
+  0x0,0xe,
+  0xa,0x78,0x9,0x87,
+  0x0,0x74,
+  0x0,0x69,0x0,0x65,0x0,0x74,0x0,0x6f,0x0,0x2d,0x0,0x6c,0x0,0x6f,0x0,0x67,0x0,0x6f,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // activesessions.png
+  0x0,0x12,
+  0x6,0x89,0xc6,0x47,
+  0x0,0x61,
+  0x0,0x63,0x0,0x74,0x0,0x69,0x0,0x76,0x0,0x65,0x0,0x73,0x0,0x65,0x0,0x73,0x0,0x73,0x0,0x69,0x0,0x6f,0x0,0x6e,0x0,0x73,0x0,0x2e,0x0,0x70,0x0,0x6e,
+  0x0,0x67,
+    // contacts.png
+  0x0,0xc,
+  0x7,0xfa,0xe3,0xa7,
+  0x0,0x63,
+  0x0,0x6f,0x0,0x6e,0x0,0x74,0x0,0x61,0x0,0x63,0x0,0x74,0x0,0x73,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // unknown.png
+  0x0,0xb,
+  0x6,0x59,0xf3,0xe7,
+  0x0,0x75,
+  0x0,0x6e,0x0,0x6b,0x0,0x6e,0x0,0x6f,0x0,0x77,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // account.png
+  0x0,0xb,
+  0xc,0x98,0x63,0x87,
+  0x0,0x61,
+  0x0,0x63,0x0,0x63,0x0,0x6f,0x0,0x75,0x0,0x6e,0x0,0x74,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+  
+};
+
+static const unsigned char qt_resource_struct[] = {
+  // :
+  0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x16,0x0,0x0,0x0,0x1,
+  // :/online.png
+  0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x69,0xcb,
+  // :/offline.png
+  0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,
+  // :/yellowframe.png
+  0x0,0x0,0x0,0xae,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x61,0xf9,
+  // :/addcontact.png
+  0x0,0x0,0x0,0x34,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x14,0x84,
+  // :/themes.png
+  0x0,0x0,0x0,0x94,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x43,0x27,
+  // :/unknown.png
+  0x0,0x0,0x2,0x5c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x37,0x9c,
+  // :/network.png
+  0x0,0x0,0x1,0xd6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xde,0x41,
+  // :/restore.png
+  0x0,0x0,0x0,0xec,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x75,0x4c,
+  // :/activesessions.png
+  0x0,0x0,0x2,0x14,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xf8,0x44,
+  // :/close.png
+  0x0,0x0,0x0,0x1c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x9,0xac,
+  // :/contacts.png
+  0x0,0x0,0x2,0x3e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x17,0x47,
+  // :/general.png
+  0x0,0x0,0x1,0x26,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x83,0x3e,
+  // :/greenframe.png
+  0x0,0x0,0x1,0x90,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xc7,0x95,
+  // :/tieto-logo.png
+  0x0,0x0,0x1,0xf2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xf4,0x8,
+  // :/hidden.png
+  0x0,0x0,0x1,0x60,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xb0,0x69,
+  // :/contactfemale.png
+  0x0,0x0,0x0,0x56,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x23,0x9a,
+  // :/redframe.png
+  0x0,0x0,0x1,0x8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x7e,0x58,
+  // :/settings.png
+  0x0,0x0,0x1,0x42,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x9e,0xff,
+  // :/account.png
+  0x0,0x0,0x2,0x78,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x46,0x5a,
+  // :/busy.png
+  0x0,0x0,0x1,0x7a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xbb,0x62,
+  // :/away.png
+  0x0,0x0,0x0,0x7e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x34,0x56,
+  // :/contactmale.png
+  0x0,0x0,0x1,0xb2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xce,0x6c,
+
+};
+
+QT_BEGIN_NAMESPACE
+
+extern Q_CORE_EXPORT bool qRegisterResourceData
+    (int, const unsigned char *, const unsigned char *, const unsigned char *);
+
+extern Q_CORE_EXPORT bool qUnregisterResourceData
+    (int, const unsigned char *, const unsigned char *, const unsigned char *);
+
+QT_END_NAMESPACE
+
+
+int QT_MANGLE_NAMESPACE(qInitResources_application)()
+{
+    QT_PREPEND_NAMESPACE(qRegisterResourceData)
+        (0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
+    return 1;
+}
+
+Q_CONSTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qInitResources_application))
+
+int QT_MANGLE_NAMESPACE(qCleanupResources_application)()
+{
+    QT_PREPEND_NAMESPACE(qUnregisterResourceData)
+       (0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
+    return 1;
+}
+
+Q_DESTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qCleanupResources_application))
+
diff --git a/build/release/ui_TecAccountSettingsWidget.h b/build/release/ui_TecAccountSettingsWidget.h
new file mode 100644 (file)
index 0000000..3dc6e20
--- /dev/null
@@ -0,0 +1,374 @@
+/********************************************************************************
+** Form generated from reading UI file 'TecAccountSettingsWidget.ui'
+**
+** Created: Fri Jun 18 17:40:58 2010
+**      by: Qt User Interface Compiler version 4.6.2
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_TECACCOUNTSETTINGSWIDGET_H
+#define UI_TECACCOUNTSETTINGSWIDGET_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QComboBox>
+#include <QtGui/QFormLayout>
+#include <QtGui/QFrame>
+#include <QtGui/QHBoxLayout>
+#include <QtGui/QHeaderView>
+#include <QtGui/QLabel>
+#include <QtGui/QLineEdit>
+#include <QtGui/QPushButton>
+#include <QtGui/QSpacerItem>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_TecAccountSettingsWidgetClass
+{
+public:
+    QHBoxLayout *horizontalLayout_2;
+    QFrame *frame;
+    QHBoxLayout *horizontalLayout;
+    QVBoxLayout *applyButtonLayout_2;
+    QPushButton *editVCardButton;
+    QSpacerItem *verticalSpacer_6;
+    QPushButton *backButton;
+    QVBoxLayout *verticalLayout_2;
+    QFormLayout *formLayout;
+    QLabel *loginLabel;
+    QLineEdit *loginLineEdit;
+    QLabel *passwordLabel;
+    QLineEdit *passwordLineEdit;
+    QLabel *passwordConfirmLabel;
+    QLineEdit *passwordConfirmLineEdit;
+    QSpacerItem *verticalSpacer_5;
+    QSpacerItem *verticalSpacer_4;
+    QSpacerItem *verticalSpacer_3;
+    QHBoxLayout *horizontalLayout_4;
+    QLabel *protocolLabel;
+    QComboBox *protocolComboBox;
+    QLabel *serverLabel;
+    QLineEdit *serverLineEdit;
+    QLabel *portLabel;
+    QLineEdit *portLineEdit;
+    QSpacerItem *verticalSpacer_2;
+    QVBoxLayout *applyButtonLayout;
+    QPushButton *changePasswordButton;
+    QSpacerItem *verticalSpacer;
+    QPushButton *okButton;
+
+    void setupUi(QWidget *TecAccountSettingsWidgetClass)
+    {
+        if (TecAccountSettingsWidgetClass->objectName().isEmpty())
+            TecAccountSettingsWidgetClass->setObjectName(QString::fromUtf8("TecAccountSettingsWidgetClass"));
+        TecAccountSettingsWidgetClass->resize(609, 388);
+        TecAccountSettingsWidgetClass->setStyleSheet(QString::fromUtf8(""));
+        horizontalLayout_2 = new QHBoxLayout(TecAccountSettingsWidgetClass);
+        horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
+        frame = new QFrame(TecAccountSettingsWidgetClass);
+        frame->setObjectName(QString::fromUtf8("frame"));
+        frame->setEnabled(true);
+        QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
+        sizePolicy.setHorizontalStretch(0);
+        sizePolicy.setVerticalStretch(0);
+        sizePolicy.setHeightForWidth(frame->sizePolicy().hasHeightForWidth());
+        frame->setSizePolicy(sizePolicy);
+        frame->setMaximumSize(QSize(16777215, 16777215));
+        frame->setStyleSheet(QString::fromUtf8(""));
+        frame->setFrameShape(QFrame::Box);
+        frame->setFrameShadow(QFrame::Sunken);
+        frame->setLineWidth(1);
+        horizontalLayout = new QHBoxLayout(frame);
+        horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
+        applyButtonLayout_2 = new QVBoxLayout();
+#ifndef Q_OS_MAC
+        applyButtonLayout_2->setSpacing(-1);
+#endif
+        applyButtonLayout_2->setObjectName(QString::fromUtf8("applyButtonLayout_2"));
+        applyButtonLayout_2->setSizeConstraint(QLayout::SetMinimumSize);
+        editVCardButton = new QPushButton(frame);
+        editVCardButton->setObjectName(QString::fromUtf8("editVCardButton"));
+        editVCardButton->setEnabled(false);
+        editVCardButton->setMinimumSize(QSize(80, 80));
+        editVCardButton->setMaximumSize(QSize(80, 80));
+        editVCardButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        applyButtonLayout_2->addWidget(editVCardButton);
+
+        verticalSpacer_6 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        applyButtonLayout_2->addItem(verticalSpacer_6);
+
+        backButton = new QPushButton(frame);
+        backButton->setObjectName(QString::fromUtf8("backButton"));
+        backButton->setMinimumSize(QSize(80, 80));
+        backButton->setMaximumSize(QSize(80, 80));
+        backButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        applyButtonLayout_2->addWidget(backButton);
+
+
+        horizontalLayout->addLayout(applyButtonLayout_2);
+
+        verticalLayout_2 = new QVBoxLayout();
+        verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
+        formLayout = new QFormLayout();
+        formLayout->setObjectName(QString::fromUtf8("formLayout"));
+        loginLabel = new QLabel(frame);
+        loginLabel->setObjectName(QString::fromUtf8("loginLabel"));
+        loginLabel->setStyleSheet(QString::fromUtf8("QLabel {\n"
+"      background: none;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        formLayout->setWidget(0, QFormLayout::LabelRole, loginLabel);
+
+        loginLineEdit = new QLineEdit(frame);
+        loginLineEdit->setObjectName(QString::fromUtf8("loginLineEdit"));
+        loginLineEdit->setStyleSheet(QString::fromUtf8("QLineEdit{\n"
+"      border-radius: 5px;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        formLayout->setWidget(0, QFormLayout::FieldRole, loginLineEdit);
+
+        passwordLabel = new QLabel(frame);
+        passwordLabel->setObjectName(QString::fromUtf8("passwordLabel"));
+        passwordLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      background: none;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        formLayout->setWidget(2, QFormLayout::LabelRole, passwordLabel);
+
+        passwordLineEdit = new QLineEdit(frame);
+        passwordLineEdit->setObjectName(QString::fromUtf8("passwordLineEdit"));
+        passwordLineEdit->setStyleSheet(QString::fromUtf8("QLineEdit{\n"
+"      border-radius: 5px;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+        passwordLineEdit->setEchoMode(QLineEdit::Password);
+
+        formLayout->setWidget(2, QFormLayout::FieldRole, passwordLineEdit);
+
+        passwordConfirmLabel = new QLabel(frame);
+        passwordConfirmLabel->setObjectName(QString::fromUtf8("passwordConfirmLabel"));
+        passwordConfirmLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      background: none;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+        passwordConfirmLabel->setWordWrap(true);
+        passwordConfirmLabel->setIndent(-1);
+
+        formLayout->setWidget(4, QFormLayout::LabelRole, passwordConfirmLabel);
+
+        passwordConfirmLineEdit = new QLineEdit(frame);
+        passwordConfirmLineEdit->setObjectName(QString::fromUtf8("passwordConfirmLineEdit"));
+        passwordConfirmLineEdit->setStyleSheet(QString::fromUtf8("QLineEdit{\n"
+"      border-radius: 5px;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+        passwordConfirmLineEdit->setEchoMode(QLineEdit::Password);
+
+        formLayout->setWidget(4, QFormLayout::FieldRole, passwordConfirmLineEdit);
+
+        verticalSpacer_5 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Maximum);
+
+        formLayout->setItem(1, QFormLayout::LabelRole, verticalSpacer_5);
+
+        verticalSpacer_4 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Maximum);
+
+        formLayout->setItem(3, QFormLayout::LabelRole, verticalSpacer_4);
+
+
+        verticalLayout_2->addLayout(formLayout);
+
+        verticalSpacer_3 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Maximum);
+
+        verticalLayout_2->addItem(verticalSpacer_3);
+
+        horizontalLayout_4 = new QHBoxLayout();
+        horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4"));
+        protocolLabel = new QLabel(frame);
+        protocolLabel->setObjectName(QString::fromUtf8("protocolLabel"));
+        protocolLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      background: none;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        horizontalLayout_4->addWidget(protocolLabel);
+
+        protocolComboBox = new QComboBox(frame);
+        protocolComboBox->setObjectName(QString::fromUtf8("protocolComboBox"));
+        protocolComboBox->setMinimumSize(QSize(79, 52));
+        protocolComboBox->setStyleSheet(QString::fromUtf8("QComboBox {\n"
+"      min-height: 48px;\n"
+"      font: bold 16px;\n"
+"}\n"
+""));
+
+        horizontalLayout_4->addWidget(protocolComboBox);
+
+        serverLabel = new QLabel(frame);
+        serverLabel->setObjectName(QString::fromUtf8("serverLabel"));
+        serverLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      background: none;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        horizontalLayout_4->addWidget(serverLabel);
+
+        serverLineEdit = new QLineEdit(frame);
+        serverLineEdit->setObjectName(QString::fromUtf8("serverLineEdit"));
+        serverLineEdit->setStyleSheet(QString::fromUtf8("QLineEdit{\n"
+"      border-radius: 5px;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        horizontalLayout_4->addWidget(serverLineEdit);
+
+        portLabel = new QLabel(frame);
+        portLabel->setObjectName(QString::fromUtf8("portLabel"));
+        portLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      background: none;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        horizontalLayout_4->addWidget(portLabel);
+
+        portLineEdit = new QLineEdit(frame);
+        portLineEdit->setObjectName(QString::fromUtf8("portLineEdit"));
+        portLineEdit->setMaximumSize(QSize(80, 16777215));
+        portLineEdit->setStyleSheet(QString::fromUtf8("QLineEdit{\n"
+"      border-radius: 5px;\n"
+"      min-height: 48px;\n"
+"      min-width: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        horizontalLayout_4->addWidget(portLineEdit);
+
+
+        verticalLayout_2->addLayout(horizontalLayout_4);
+
+        verticalSpacer_2 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout_2->addItem(verticalSpacer_2);
+
+
+        horizontalLayout->addLayout(verticalLayout_2);
+
+        applyButtonLayout = new QVBoxLayout();
+#ifndef Q_OS_MAC
+        applyButtonLayout->setSpacing(-1);
+#endif
+        applyButtonLayout->setObjectName(QString::fromUtf8("applyButtonLayout"));
+        applyButtonLayout->setSizeConstraint(QLayout::SetMinimumSize);
+        changePasswordButton = new QPushButton(frame);
+        changePasswordButton->setObjectName(QString::fromUtf8("changePasswordButton"));
+        changePasswordButton->setEnabled(false);
+        changePasswordButton->setMinimumSize(QSize(80, 80));
+        changePasswordButton->setMaximumSize(QSize(80, 80));
+        changePasswordButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        applyButtonLayout->addWidget(changePasswordButton);
+
+        verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        applyButtonLayout->addItem(verticalSpacer);
+
+        okButton = new QPushButton(frame);
+        okButton->setObjectName(QString::fromUtf8("okButton"));
+        okButton->setMinimumSize(QSize(80, 80));
+        okButton->setMaximumSize(QSize(80, 80));
+        okButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        applyButtonLayout->addWidget(okButton);
+
+
+        horizontalLayout->addLayout(applyButtonLayout);
+
+
+        horizontalLayout_2->addWidget(frame);
+
+
+        retranslateUi(TecAccountSettingsWidgetClass);
+        QObject::connect(loginLineEdit, SIGNAL(textEdited(QString)), TecAccountSettingsWidgetClass, SLOT(loginEdited(QString)));
+        QObject::connect(protocolComboBox, SIGNAL(currentIndexChanged(QString)), TecAccountSettingsWidgetClass, SLOT(protocolEdited(QString)));
+        QObject::connect(okButton, SIGNAL(clicked()), TecAccountSettingsWidgetClass, SLOT(onOkButton()));
+        QObject::connect(changePasswordButton, SIGNAL(clicked()), TecAccountSettingsWidgetClass, SLOT(onChangePasswordButton()));
+        QObject::connect(serverLineEdit, SIGNAL(textEdited(QString)), TecAccountSettingsWidgetClass, SLOT(disconnectHints()));
+        QObject::connect(portLineEdit, SIGNAL(textEdited(QString)), TecAccountSettingsWidgetClass, SLOT(disconnectHints()));
+
+        QMetaObject::connectSlotsByName(TecAccountSettingsWidgetClass);
+    } // setupUi
+
+    void retranslateUi(QWidget *TecAccountSettingsWidgetClass)
+    {
+        TecAccountSettingsWidgetClass->setWindowTitle(QApplication::translate("TecAccountSettingsWidgetClass", "Form", 0, QApplication::UnicodeUTF8));
+        editVCardButton->setText(QApplication::translate("TecAccountSettingsWidgetClass", "Edit\n"
+"VCard", 0, QApplication::UnicodeUTF8));
+        backButton->setText(QApplication::translate("TecAccountSettingsWidgetClass", "Back", 0, QApplication::UnicodeUTF8));
+        loginLabel->setText(QApplication::translate("TecAccountSettingsWidgetClass", "Login", 0, QApplication::UnicodeUTF8));
+        passwordLabel->setText(QApplication::translate("TecAccountSettingsWidgetClass", "Password", 0, QApplication::UnicodeUTF8));
+        passwordConfirmLabel->setText(QApplication::translate("TecAccountSettingsWidgetClass", "Confirm Password", 0, QApplication::UnicodeUTF8));
+        protocolLabel->setText(QApplication::translate("TecAccountSettingsWidgetClass", "Protocol", 0, QApplication::UnicodeUTF8));
+        serverLabel->setText(QApplication::translate("TecAccountSettingsWidgetClass", "Server", 0, QApplication::UnicodeUTF8));
+        portLabel->setText(QApplication::translate("TecAccountSettingsWidgetClass", "Port", 0, QApplication::UnicodeUTF8));
+        changePasswordButton->setText(QApplication::translate("TecAccountSettingsWidgetClass", "Change\n"
+"password", 0, QApplication::UnicodeUTF8));
+        okButton->setText(QApplication::translate("TecAccountSettingsWidgetClass", "Ok", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class TecAccountSettingsWidgetClass: public Ui_TecAccountSettingsWidgetClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_TECACCOUNTSETTINGSWIDGET_H
diff --git a/build/release/ui_TecChatWidget.h b/build/release/ui_TecChatWidget.h
new file mode 100644 (file)
index 0000000..f282fcb
--- /dev/null
@@ -0,0 +1,174 @@
+/********************************************************************************
+** Form generated from reading UI file 'TecChatWidget.ui'
+**
+** Created: Fri Jun 18 17:40:58 2010
+**      by: Qt User Interface Compiler version 4.6.2
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_TECCHATWIDGET_H
+#define UI_TECCHATWIDGET_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QFrame>
+#include <QtGui/QGridLayout>
+#include <QtGui/QHBoxLayout>
+#include <QtGui/QHeaderView>
+#include <QtGui/QPushButton>
+#include <QtGui/QTextEdit>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_TecChatWidgetClass
+{
+public:
+    QVBoxLayout *verticalLayout;
+    QFrame *chatFrame;
+    QVBoxLayout *verticalLayout_2;
+    QFrame *frame;
+    QGridLayout *gridLayout;
+    QTextEdit *chatTextEdit;
+    QHBoxLayout *horizontalLayout_2;
+    QPushButton *smileButton;
+    QTextEdit *messageTextEdit;
+    QPushButton *sendButton;
+
+    void setupUi(QWidget *TecChatWidgetClass)
+    {
+        if (TecChatWidgetClass->objectName().isEmpty())
+            TecChatWidgetClass->setObjectName(QString::fromUtf8("TecChatWidgetClass"));
+        TecChatWidgetClass->resize(718, 431);
+        TecChatWidgetClass->setStyleSheet(QString::fromUtf8(""));
+        verticalLayout = new QVBoxLayout(TecChatWidgetClass);
+        verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+        chatFrame = new QFrame(TecChatWidgetClass);
+        chatFrame->setObjectName(QString::fromUtf8("chatFrame"));
+        chatFrame->setFrameShape(QFrame::StyledPanel);
+        chatFrame->setFrameShadow(QFrame::Raised);
+        verticalLayout_2 = new QVBoxLayout(chatFrame);
+        verticalLayout_2->setSpacing(0);
+        verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
+        frame = new QFrame(chatFrame);
+        frame->setObjectName(QString::fromUtf8("frame"));
+        frame->setStyleSheet(QString::fromUtf8(""));
+        frame->setFrameShape(QFrame::StyledPanel);
+        frame->setFrameShadow(QFrame::Plain);
+        gridLayout = new QGridLayout(frame);
+        gridLayout->setContentsMargins(3, 3, 3, 3);
+        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+        gridLayout->setVerticalSpacing(-1);
+        chatTextEdit = new QTextEdit(frame);
+        chatTextEdit->setObjectName(QString::fromUtf8("chatTextEdit"));
+        QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+        sizePolicy.setHorizontalStretch(0);
+        sizePolicy.setVerticalStretch(0);
+        sizePolicy.setHeightForWidth(chatTextEdit->sizePolicy().hasHeightForWidth());
+        chatTextEdit->setSizePolicy(sizePolicy);
+        chatTextEdit->setStyleSheet(QString::fromUtf8("QTextEdit {\n"
+"      background-color: none;\n"
+"}"));
+        chatTextEdit->setFrameShape(QFrame::Box);
+        chatTextEdit->setFrameShadow(QFrame::Sunken);
+        chatTextEdit->setLineWidth(1);
+        chatTextEdit->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+        chatTextEdit->setReadOnly(true);
+
+        gridLayout->addWidget(chatTextEdit, 0, 0, 1, 1);
+
+
+        verticalLayout_2->addWidget(frame);
+
+        horizontalLayout_2 = new QHBoxLayout();
+        horizontalLayout_2->setSpacing(4);
+        horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
+        horizontalLayout_2->setContentsMargins(0, 0, -1, -1);
+        smileButton = new QPushButton(chatFrame);
+        smileButton->setObjectName(QString::fromUtf8("smileButton"));
+        QFont font;
+        font.setPointSize(14);
+        font.setBold(true);
+        font.setWeight(75);
+        smileButton->setFont(font);
+        smileButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        horizontalLayout_2->addWidget(smileButton);
+
+        messageTextEdit = new QTextEdit(chatFrame);
+        messageTextEdit->setObjectName(QString::fromUtf8("messageTextEdit"));
+        QSizePolicy sizePolicy1(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
+        sizePolicy1.setHorizontalStretch(0);
+        sizePolicy1.setVerticalStretch(0);
+        sizePolicy1.setHeightForWidth(messageTextEdit->sizePolicy().hasHeightForWidth());
+        messageTextEdit->setSizePolicy(sizePolicy1);
+        messageTextEdit->setMaximumSize(QSize(16777215, 80));
+        messageTextEdit->setStyleSheet(QString::fromUtf8("QTextEdit {\n"
+"      background-color: none;\n"
+"}"));
+        messageTextEdit->setFrameShape(QFrame::Box);
+        messageTextEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+        messageTextEdit->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+
+        horizontalLayout_2->addWidget(messageTextEdit);
+
+        sendButton = new QPushButton(chatFrame);
+        sendButton->setObjectName(QString::fromUtf8("sendButton"));
+        QSizePolicy sizePolicy2(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
+        sizePolicy2.setHorizontalStretch(0);
+        sizePolicy2.setVerticalStretch(0);
+        sizePolicy2.setHeightForWidth(sendButton->sizePolicy().hasHeightForWidth());
+        sendButton->setSizePolicy(sizePolicy2);
+        sendButton->setMaximumSize(QSize(80, 80));
+        sendButton->setFont(font);
+        sendButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}\n"
+""));
+
+        horizontalLayout_2->addWidget(sendButton);
+
+
+        verticalLayout_2->addLayout(horizontalLayout_2);
+
+
+        verticalLayout->addWidget(chatFrame);
+
+
+        retranslateUi(TecChatWidgetClass);
+        QObject::connect(sendButton, SIGNAL(clicked()), TecChatWidgetClass, SLOT(pressedSendButton()));
+        QObject::connect(sendButton, SIGNAL(clicked()), messageTextEdit, SLOT(setFocus()));
+
+        QMetaObject::connectSlotsByName(TecChatWidgetClass);
+    } // setupUi
+
+    void retranslateUi(QWidget *TecChatWidgetClass)
+    {
+        TecChatWidgetClass->setWindowTitle(QApplication::translate("TecChatWidgetClass", "Form", 0, QApplication::UnicodeUTF8));
+        smileButton->setText(QApplication::translate("TecChatWidgetClass", "Smile", 0, QApplication::UnicodeUTF8));
+        sendButton->setText(QApplication::translate("TecChatWidgetClass", "Send", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class TecChatWidgetClass: public Ui_TecChatWidgetClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_TECCHATWIDGET_H
diff --git a/build/release/ui_TecEmoticonsDialog.h b/build/release/ui_TecEmoticonsDialog.h
new file mode 100644 (file)
index 0000000..23c02af
--- /dev/null
@@ -0,0 +1,97 @@
+/********************************************************************************
+** Form generated from reading UI file 'TecEmoticonsDialog.ui'
+**
+** Created: Fri Jun 18 17:40:58 2010
+**      by: Qt User Interface Compiler version 4.6.2
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_TECEMOTICONSDIALOG_H
+#define UI_TECEMOTICONSDIALOG_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QDialog>
+#include <QtGui/QGridLayout>
+#include <QtGui/QHeaderView>
+#include <QtGui/QListWidget>
+#include <QtGui/QPushButton>
+#include <QtGui/QSpacerItem>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_TecEmoticonsDialogClass
+{
+public:
+    QGridLayout *gridLayout;
+    QListWidget *emoticonsListWidget;
+    QSpacerItem *horizontalSpacer;
+    QPushButton *backButton;
+    QSpacerItem *horizontalSpacer_2;
+
+    void setupUi(QDialog *TecEmoticonsDialogClass)
+    {
+        if (TecEmoticonsDialogClass->objectName().isEmpty())
+            TecEmoticonsDialogClass->setObjectName(QString::fromUtf8("TecEmoticonsDialogClass"));
+        TecEmoticonsDialogClass->resize(418, 310);
+        gridLayout = new QGridLayout(TecEmoticonsDialogClass);
+        gridLayout->setSpacing(0);
+        gridLayout->setContentsMargins(11, 11, 11, 11);
+        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+        gridLayout->setContentsMargins(0, 9, 9, 0);
+        emoticonsListWidget = new QListWidget(TecEmoticonsDialogClass);
+        emoticonsListWidget->setObjectName(QString::fromUtf8("emoticonsListWidget"));
+        emoticonsListWidget->setProperty("showDropIndicator", QVariant(false));
+        emoticonsListWidget->setSpacing(10);
+        emoticonsListWidget->setViewMode(QListView::ListMode);
+
+        gridLayout->addWidget(emoticonsListWidget, 0, 0, 1, 3);
+
+        horizontalSpacer = new QSpacerItem(142, 77, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout->addItem(horizontalSpacer, 1, 0, 1, 1);
+
+        backButton = new QPushButton(TecEmoticonsDialogClass);
+        backButton->setObjectName(QString::fromUtf8("backButton"));
+        backButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 40px;\n"
+"      min-width: 80px;\n"
+"      max-height: 40px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        gridLayout->addWidget(backButton, 1, 1, 1, 1);
+
+        horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout->addItem(horizontalSpacer_2, 1, 2, 1, 1);
+
+
+        retranslateUi(TecEmoticonsDialogClass);
+
+        emoticonsListWidget->setCurrentRow(-1);
+
+
+        QMetaObject::connectSlotsByName(TecEmoticonsDialogClass);
+    } // setupUi
+
+    void retranslateUi(QDialog *TecEmoticonsDialogClass)
+    {
+        TecEmoticonsDialogClass->setWindowTitle(QApplication::translate("TecEmoticonsDialogClass", "Emoticons", 0, QApplication::UnicodeUTF8));
+        backButton->setText(QApplication::translate("TecEmoticonsDialogClass", "Back", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class TecEmoticonsDialogClass: public Ui_TecEmoticonsDialogClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_TECEMOTICONSDIALOG_H
diff --git a/build/release/ui_TecGeneralSettingsWidget.h b/build/release/ui_TecGeneralSettingsWidget.h
new file mode 100644 (file)
index 0000000..cb86e61
--- /dev/null
@@ -0,0 +1,322 @@
+/********************************************************************************
+** Form generated from reading UI file 'TecGeneralSettingsWidget.ui'
+**
+** Created: Fri Jun 18 17:40:58 2010
+**      by: Qt User Interface Compiler version 4.6.2
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_TECGENERALSETTINGSWIDGET_H
+#define UI_TECGENERALSETTINGSWIDGET_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QFrame>
+#include <QtGui/QGridLayout>
+#include <QtGui/QGroupBox>
+#include <QtGui/QHBoxLayout>
+#include <QtGui/QHeaderView>
+#include <QtGui/QLabel>
+#include <QtGui/QPushButton>
+#include <QtGui/QRadioButton>
+#include <QtGui/QSpacerItem>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_TecGeneralSettingsWidgetClass
+{
+public:
+    QVBoxLayout *verticalLayout;
+    QFrame *generalSettingsFrame;
+    QHBoxLayout *horizontalLayout;
+    QVBoxLayout *verticalLayout_2;
+    QSpacerItem *verticalSpacer;
+    QPushButton *backButton;
+    QGroupBox *sortingGroupBox;
+    QGridLayout *gridLayout_4;
+    QSpacerItem *verticalSpacer_3;
+    QSpacerItem *verticalSpacer_2;
+    QSpacerItem *verticalSpacer_4;
+    QSpacerItem *verticalSpacer_5;
+    QRadioButton *alphaRadioButton;
+    QRadioButton *dragDropRadioButton;
+    QRadioButton *presenceRadioButton;
+    QLabel *alphaLabel;
+    QLabel *presence;
+    QLabel *dragDropLabel;
+    QGroupBox *authorizationGroupBox;
+    QGridLayout *gridLayout_5;
+    QRadioButton *askRadioButton;
+    QRadioButton *denyRadioButton;
+    QRadioButton *acceptRadioButton;
+    QSpacerItem *verticalSpacer_7;
+    QSpacerItem *verticalSpacer_8;
+    QSpacerItem *verticalSpacer_6;
+    QSpacerItem *verticalSpacer_9;
+    QVBoxLayout *verticalLayout_3;
+    QSpacerItem *verticalSpacer_1;
+    QPushButton *okButton;
+
+    void setupUi(QWidget *TecGeneralSettingsWidgetClass)
+    {
+        if (TecGeneralSettingsWidgetClass->objectName().isEmpty())
+            TecGeneralSettingsWidgetClass->setObjectName(QString::fromUtf8("TecGeneralSettingsWidgetClass"));
+        TecGeneralSettingsWidgetClass->resize(773, 441);
+        TecGeneralSettingsWidgetClass->setProperty("sizeHint", QVariant(QSize(705, 568)));
+        verticalLayout = new QVBoxLayout(TecGeneralSettingsWidgetClass);
+        verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+        generalSettingsFrame = new QFrame(TecGeneralSettingsWidgetClass);
+        generalSettingsFrame->setObjectName(QString::fromUtf8("generalSettingsFrame"));
+        generalSettingsFrame->setFrameShape(QFrame::StyledPanel);
+        generalSettingsFrame->setFrameShadow(QFrame::Raised);
+        horizontalLayout = new QHBoxLayout(generalSettingsFrame);
+        horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
+        verticalLayout_2 = new QVBoxLayout();
+        verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
+        verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout_2->addItem(verticalSpacer);
+
+        backButton = new QPushButton(generalSettingsFrame);
+        backButton->setObjectName(QString::fromUtf8("backButton"));
+        backButton->setStyleSheet(QString::fromUtf8("QPushButton {\n"
+"                      font: bold 16px;\n"
+"              border-radius: 5px;\n"
+"                      min-height: 80px;\n"
+"                      min-width: 80px;\n"
+"                      max-height: 80px;\n"
+"                      max-width: 80px;\n"
+"}"));
+
+        verticalLayout_2->addWidget(backButton);
+
+
+        horizontalLayout->addLayout(verticalLayout_2);
+
+        sortingGroupBox = new QGroupBox(generalSettingsFrame);
+        sortingGroupBox->setObjectName(QString::fromUtf8("sortingGroupBox"));
+        sortingGroupBox->setEnabled(false);
+        QSizePolicy sizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
+        sizePolicy.setHorizontalStretch(0);
+        sizePolicy.setVerticalStretch(0);
+        sizePolicy.setHeightForWidth(sortingGroupBox->sizePolicy().hasHeightForWidth());
+        sortingGroupBox->setSizePolicy(sizePolicy);
+        sortingGroupBox->setStyleSheet(QString::fromUtf8("QGroupBox {\n"
+"      font: bold 12px;\n"
+"}"));
+        gridLayout_4 = new QGridLayout(sortingGroupBox);
+        gridLayout_4->setObjectName(QString::fromUtf8("gridLayout_4"));
+        verticalSpacer_3 = new QSpacerItem(20, 75, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_4->addItem(verticalSpacer_3, 4, 0, 1, 1);
+
+        verticalSpacer_2 = new QSpacerItem(20, 85, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_4->addItem(verticalSpacer_2, 1, 0, 1, 1);
+
+        verticalSpacer_4 = new QSpacerItem(20, 75, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_4->addItem(verticalSpacer_4, 7, 0, 1, 1);
+
+        verticalSpacer_5 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_4->addItem(verticalSpacer_5, 11, 0, 1, 1);
+
+        alphaRadioButton = new QRadioButton(sortingGroupBox);
+        alphaRadioButton->setObjectName(QString::fromUtf8("alphaRadioButton"));
+        QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Fixed);
+        sizePolicy1.setHorizontalStretch(0);
+        sizePolicy1.setVerticalStretch(0);
+        sizePolicy1.setHeightForWidth(alphaRadioButton->sizePolicy().hasHeightForWidth());
+        alphaRadioButton->setSizePolicy(sizePolicy1);
+        alphaRadioButton->setMinimumSize(QSize(0, 25));
+        alphaRadioButton->setStyleSheet(QString::fromUtf8("QRadioButton {\n"
+"      font: bold 16px;\n"
+"      background-color: none;\n"
+"      min-height: 25px;\n"
+"}"));
+        alphaRadioButton->setChecked(true);
+
+        gridLayout_4->addWidget(alphaRadioButton, 2, 0, 1, 1);
+
+        dragDropRadioButton = new QRadioButton(sortingGroupBox);
+        dragDropRadioButton->setObjectName(QString::fromUtf8("dragDropRadioButton"));
+        dragDropRadioButton->setMinimumSize(QSize(0, 25));
+        dragDropRadioButton->setStyleSheet(QString::fromUtf8("QRadioButton {\n"
+"      font: bold 16px;\n"
+"      background-color: none;\n"
+"      min-height: 25px;\n"
+"}"));
+
+        gridLayout_4->addWidget(dragDropRadioButton, 9, 0, 1, 1);
+
+        presenceRadioButton = new QRadioButton(sortingGroupBox);
+        presenceRadioButton->setObjectName(QString::fromUtf8("presenceRadioButton"));
+        presenceRadioButton->setEnabled(false);
+        presenceRadioButton->setStyleSheet(QString::fromUtf8("QRadioButton {\n"
+"      font: bold 16px;\n"
+"      background-color: none;\n"
+"      min-height: 25px;\n"
+"}"));
+
+        gridLayout_4->addWidget(presenceRadioButton, 5, 0, 1, 1);
+
+        alphaLabel = new QLabel(sortingGroupBox);
+        alphaLabel->setObjectName(QString::fromUtf8("alphaLabel"));
+        QFont font;
+        font.setBold(false);
+        font.setItalic(false);
+        font.setWeight(50);
+        alphaLabel->setFont(font);
+        alphaLabel->setStyleSheet(QString::fromUtf8("QLabel {\n"
+"      background: none;\n"
+"      font: 14px;\n"
+"}"));
+
+        gridLayout_4->addWidget(alphaLabel, 3, 0, 1, 1);
+
+        presence = new QLabel(sortingGroupBox);
+        presence->setObjectName(QString::fromUtf8("presence"));
+        presence->setFont(font);
+        presence->setStyleSheet(QString::fromUtf8("QLabel {\n"
+"      background: none;\n"
+"      font: 14px;\n"
+"}"));
+
+        gridLayout_4->addWidget(presence, 6, 0, 1, 1);
+
+        dragDropLabel = new QLabel(sortingGroupBox);
+        dragDropLabel->setObjectName(QString::fromUtf8("dragDropLabel"));
+        dragDropLabel->setStyleSheet(QString::fromUtf8("QLabel {\n"
+"      background: none;\n"
+"      font: 14px;\n"
+"}"));
+
+        gridLayout_4->addWidget(dragDropLabel, 10, 0, 1, 1);
+
+
+        horizontalLayout->addWidget(sortingGroupBox);
+
+        authorizationGroupBox = new QGroupBox(generalSettingsFrame);
+        authorizationGroupBox->setObjectName(QString::fromUtf8("authorizationGroupBox"));
+        authorizationGroupBox->setEnabled(false);
+        sizePolicy.setHeightForWidth(authorizationGroupBox->sizePolicy().hasHeightForWidth());
+        authorizationGroupBox->setSizePolicy(sizePolicy);
+        authorizationGroupBox->setStyleSheet(QString::fromUtf8("QGroupBox {\n"
+"      font: bold 12px;\n"
+"}"));
+        authorizationGroupBox->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter);
+        gridLayout_5 = new QGridLayout(authorizationGroupBox);
+        gridLayout_5->setObjectName(QString::fromUtf8("gridLayout_5"));
+        askRadioButton = new QRadioButton(authorizationGroupBox);
+        askRadioButton->setObjectName(QString::fromUtf8("askRadioButton"));
+        askRadioButton->setStyleSheet(QString::fromUtf8("QRadioButton {\n"
+"      font: bold 16px;\n"
+"\n"
+"      min-height: 48px;\n"
+"}"));
+        askRadioButton->setChecked(true);
+
+        gridLayout_5->addWidget(askRadioButton, 2, 0, 1, 1);
+
+        denyRadioButton = new QRadioButton(authorizationGroupBox);
+        denyRadioButton->setObjectName(QString::fromUtf8("denyRadioButton"));
+        denyRadioButton->setStyleSheet(QString::fromUtf8("QRadioButton {\n"
+"      font: bold 16px;\n"
+"      min-height: 48px;\n"
+"}"));
+
+        gridLayout_5->addWidget(denyRadioButton, 6, 0, 1, 1);
+
+        acceptRadioButton = new QRadioButton(authorizationGroupBox);
+        acceptRadioButton->setObjectName(QString::fromUtf8("acceptRadioButton"));
+        acceptRadioButton->setStyleSheet(QString::fromUtf8("QRadioButton {\n"
+"      font: bold 16px;\n"
+"      min-height: 48px;\n"
+"}"));
+
+        gridLayout_5->addWidget(acceptRadioButton, 4, 0, 1, 1);
+
+        verticalSpacer_7 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_5->addItem(verticalSpacer_7, 3, 0, 1, 1);
+
+        verticalSpacer_8 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_5->addItem(verticalSpacer_8, 5, 0, 1, 1);
+
+        verticalSpacer_6 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_5->addItem(verticalSpacer_6, 1, 0, 1, 1);
+
+        verticalSpacer_9 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_5->addItem(verticalSpacer_9, 7, 0, 1, 1);
+
+
+        horizontalLayout->addWidget(authorizationGroupBox);
+
+        verticalLayout_3 = new QVBoxLayout();
+        verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3"));
+        verticalSpacer_1 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout_3->addItem(verticalSpacer_1);
+
+        okButton = new QPushButton(generalSettingsFrame);
+        okButton->setObjectName(QString::fromUtf8("okButton"));
+        okButton->setStyleSheet(QString::fromUtf8("QPushButton {\n"
+"                      font: bold 16px;\n"
+"              border-radius: 5px;\n"
+"                      min-height: 80px;\n"
+"                      min-width: 80px;\n"
+"                      max-height: 80px;\n"
+"                      max-width: 80px;\n"
+"}"));
+
+        verticalLayout_3->addWidget(okButton);
+
+
+        horizontalLayout->addLayout(verticalLayout_3);
+
+
+        verticalLayout->addWidget(generalSettingsFrame);
+
+
+        retranslateUi(TecGeneralSettingsWidgetClass);
+
+        QMetaObject::connectSlotsByName(TecGeneralSettingsWidgetClass);
+    } // setupUi
+
+    void retranslateUi(QWidget *TecGeneralSettingsWidgetClass)
+    {
+        TecGeneralSettingsWidgetClass->setWindowTitle(QApplication::translate("TecGeneralSettingsWidgetClass", "Form", 0, QApplication::UnicodeUTF8));
+        backButton->setText(QApplication::translate("TecGeneralSettingsWidgetClass", "Back", 0, QApplication::UnicodeUTF8));
+        sortingGroupBox->setTitle(QApplication::translate("TecGeneralSettingsWidgetClass", "Contact list sorting", 0, QApplication::UnicodeUTF8));
+        alphaRadioButton->setText(QApplication::translate("TecGeneralSettingsWidgetClass", "Sort alphabeticaly", 0, QApplication::UnicodeUTF8));
+        dragDropRadioButton->setText(QApplication::translate("TecGeneralSettingsWidgetClass", "Disable sorting", 0, QApplication::UnicodeUTF8));
+        presenceRadioButton->setText(QApplication::translate("TecGeneralSettingsWidgetClass", "Sort by status", 0, QApplication::UnicodeUTF8));
+        alphaLabel->setText(QApplication::translate("TecGeneralSettingsWidgetClass", "Sorts contact list items alphabetically", 0, QApplication::UnicodeUTF8));
+        presence->setText(QApplication::translate("TecGeneralSettingsWidgetClass", "Sorts contact list items by status", 0, QApplication::UnicodeUTF8));
+        dragDropLabel->setText(QApplication::translate("TecGeneralSettingsWidgetClass", "Disables sorting and enables drag\n"
+"and dropping", 0, QApplication::UnicodeUTF8));
+        authorizationGroupBox->setTitle(QApplication::translate("TecGeneralSettingsWidgetClass", "Contact authorization rule", 0, QApplication::UnicodeUTF8));
+        askRadioButton->setText(QApplication::translate("TecGeneralSettingsWidgetClass", "Ask", 0, QApplication::UnicodeUTF8));
+        denyRadioButton->setText(QApplication::translate("TecGeneralSettingsWidgetClass", "Always deny", 0, QApplication::UnicodeUTF8));
+        acceptRadioButton->setText(QApplication::translate("TecGeneralSettingsWidgetClass", "Always accept", 0, QApplication::UnicodeUTF8));
+        okButton->setText(QApplication::translate("TecGeneralSettingsWidgetClass", "Ok", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class TecGeneralSettingsWidgetClass: public Ui_TecGeneralSettingsWidgetClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_TECGENERALSETTINGSWIDGET_H
diff --git a/build/release/ui_TecThemesSettingsWidget.h b/build/release/ui_TecThemesSettingsWidget.h
new file mode 100644 (file)
index 0000000..0c26550
--- /dev/null
@@ -0,0 +1,192 @@
+/********************************************************************************
+** Form generated from reading UI file 'TecThemesSettingsWidget.ui'
+**
+** Created: Fri Jun 18 17:40:58 2010
+**      by: Qt User Interface Compiler version 4.6.2
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_TECTHEMESSETTINGSWIDGET_H
+#define UI_TECTHEMESSETTINGSWIDGET_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QFrame>
+#include <QtGui/QGridLayout>
+#include <QtGui/QHeaderView>
+#include <QtGui/QListWidget>
+#include <QtGui/QPushButton>
+#include <QtGui/QSpacerItem>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_TecThemesSettingsWidgetClass
+{
+public:
+    QGridLayout *gridLayout_2;
+    QFrame *frame;
+    QGridLayout *gridLayout;
+    QVBoxLayout *verticalLayout_3;
+    QSpacerItem *verticalSpacer_2;
+    QPushButton *backThemeButton;
+    QVBoxLayout *verticalLayout;
+    QListWidget *themesListWidget;
+    QVBoxLayout *verticalLayout_2;
+    QPushButton *addThemeButton;
+    QSpacerItem *verticalSpacer;
+    QPushButton *applyThemeButton;
+
+    void setupUi(QWidget *TecThemesSettingsWidgetClass)
+    {
+        if (TecThemesSettingsWidgetClass->objectName().isEmpty())
+            TecThemesSettingsWidgetClass->setObjectName(QString::fromUtf8("TecThemesSettingsWidgetClass"));
+        TecThemesSettingsWidgetClass->resize(593, 405);
+        TecThemesSettingsWidgetClass->setStyleSheet(QString::fromUtf8(""));
+        gridLayout_2 = new QGridLayout(TecThemesSettingsWidgetClass);
+        gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
+        frame = new QFrame(TecThemesSettingsWidgetClass);
+        frame->setObjectName(QString::fromUtf8("frame"));
+        frame->setEnabled(true);
+        QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
+        sizePolicy.setHorizontalStretch(0);
+        sizePolicy.setVerticalStretch(0);
+        sizePolicy.setHeightForWidth(frame->sizePolicy().hasHeightForWidth());
+        frame->setSizePolicy(sizePolicy);
+        frame->setStyleSheet(QString::fromUtf8(""));
+        frame->setFrameShape(QFrame::Box);
+        frame->setFrameShadow(QFrame::Sunken);
+        frame->setLineWidth(1);
+        gridLayout = new QGridLayout(frame);
+        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+        verticalLayout_3 = new QVBoxLayout();
+        verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3"));
+        verticalSpacer_2 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout_3->addItem(verticalSpacer_2);
+
+        backThemeButton = new QPushButton(frame);
+        backThemeButton->setObjectName(QString::fromUtf8("backThemeButton"));
+        backThemeButton->setStyleSheet(QString::fromUtf8("QPushButton {\n"
+"                      font: bold 16px;\n"
+"              border-radius: 5px;\n"
+"                      min-height: 80px;\n"
+"                      min-width: 80px;\n"
+"                      max-height: 80px;\n"
+"                      max-width: 80px;\n"
+"}"));
+
+        verticalLayout_3->addWidget(backThemeButton);
+
+
+        gridLayout->addLayout(verticalLayout_3, 0, 0, 1, 1);
+
+        verticalLayout = new QVBoxLayout();
+        verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+        themesListWidget = new QListWidget(frame);
+        themesListWidget->setObjectName(QString::fromUtf8("themesListWidget"));
+        QSizePolicy sizePolicy1(QSizePolicy::Expanding, QSizePolicy::Expanding);
+        sizePolicy1.setHorizontalStretch(0);
+        sizePolicy1.setVerticalStretch(0);
+        sizePolicy1.setHeightForWidth(themesListWidget->sizePolicy().hasHeightForWidth());
+        themesListWidget->setSizePolicy(sizePolicy1);
+        themesListWidget->setAutoFillBackground(true);
+        themesListWidget->setStyleSheet(QString::fromUtf8("QListView {\n"
+"      font: bold 30px;\n"
+"}\n"
+"\n"
+""));
+        themesListWidget->setLineWidth(1);
+        themesListWidget->setMidLineWidth(1);
+        themesListWidget->setProperty("showDropIndicator", QVariant(false));
+        themesListWidget->setAlternatingRowColors(false);
+        themesListWidget->setSelectionMode(QAbstractItemView::SingleSelection);
+        themesListWidget->setSelectionBehavior(QAbstractItemView::SelectItems);
+        themesListWidget->setIconSize(QSize(0, 0));
+        themesListWidget->setTextElideMode(Qt::ElideMiddle);
+        themesListWidget->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem);
+        themesListWidget->setMovement(QListView::Static);
+        themesListWidget->setFlow(QListView::TopToBottom);
+        themesListWidget->setProperty("isWrapping", QVariant(false));
+        themesListWidget->setResizeMode(QListView::Adjust);
+        themesListWidget->setSpacing(5);
+        themesListWidget->setViewMode(QListView::ListMode);
+        themesListWidget->setModelColumn(0);
+        themesListWidget->setWordWrap(true);
+        themesListWidget->setSelectionRectVisible(true);
+        themesListWidget->setSortingEnabled(false);
+
+        verticalLayout->addWidget(themesListWidget);
+
+
+        gridLayout->addLayout(verticalLayout, 0, 1, 1, 1);
+
+        verticalLayout_2 = new QVBoxLayout();
+        verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
+        addThemeButton = new QPushButton(frame);
+        addThemeButton->setObjectName(QString::fromUtf8("addThemeButton"));
+        addThemeButton->setStyleSheet(QString::fromUtf8("QPushButton {\n"
+"                      font: bold 16px;\n"
+"              border-radius: 5px;\n"
+"                      min-height: 80px;\n"
+"                      min-width: 80px;\n"
+"                      max-height: 80px;\n"
+"                      max-width: 80px;\n"
+"}"));
+
+        verticalLayout_2->addWidget(addThemeButton);
+
+        verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout_2->addItem(verticalSpacer);
+
+        applyThemeButton = new QPushButton(frame);
+        applyThemeButton->setObjectName(QString::fromUtf8("applyThemeButton"));
+        applyThemeButton->setAutoFillBackground(false);
+        applyThemeButton->setStyleSheet(QString::fromUtf8("QPushButton {\n"
+"                      font: bold 16px;\n"
+"              border-radius: 5px;\n"
+"                      min-height: 80px;\n"
+"                      min-width: 80px;\n"
+"                      max-height: 80px;\n"
+"                      max-width: 80px;\n"
+"}"));
+
+        verticalLayout_2->addWidget(applyThemeButton);
+
+
+        gridLayout->addLayout(verticalLayout_2, 0, 2, 1, 1);
+
+
+        gridLayout_2->addWidget(frame, 0, 0, 1, 1);
+
+
+        retranslateUi(TecThemesSettingsWidgetClass);
+
+        themesListWidget->setCurrentRow(-1);
+
+
+        QMetaObject::connectSlotsByName(TecThemesSettingsWidgetClass);
+    } // setupUi
+
+    void retranslateUi(QWidget *TecThemesSettingsWidgetClass)
+    {
+        TecThemesSettingsWidgetClass->setWindowTitle(QApplication::translate("TecThemesSettingsWidgetClass", "Form", 0, QApplication::UnicodeUTF8));
+        backThemeButton->setText(QApplication::translate("TecThemesSettingsWidgetClass", "Back", 0, QApplication::UnicodeUTF8));
+        addThemeButton->setText(QApplication::translate("TecThemesSettingsWidgetClass", "Add theme", 0, QApplication::UnicodeUTF8));
+        applyThemeButton->setText(QApplication::translate("TecThemesSettingsWidgetClass", "Apply", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class TecThemesSettingsWidgetClass: public Ui_TecThemesSettingsWidgetClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_TECTHEMESSETTINGSWIDGET_H
diff --git a/build/release/ui_TecUserInfoWidget.h b/build/release/ui_TecUserInfoWidget.h
new file mode 100644 (file)
index 0000000..fe28744
--- /dev/null
@@ -0,0 +1,329 @@
+/********************************************************************************
+** Form generated from reading UI file 'TecUserInfoWidget.ui'
+**
+** Created: Fri Jun 18 17:40:58 2010
+**      by: Qt User Interface Compiler version 4.6.2
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_TECUSERINFOWIDGET_H
+#define UI_TECUSERINFOWIDGET_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QComboBox>
+#include <QtGui/QFrame>
+#include <QtGui/QHBoxLayout>
+#include <QtGui/QHeaderView>
+#include <QtGui/QLabel>
+#include <QtGui/QLineEdit>
+#include <QtGui/QPushButton>
+#include <QtGui/QSpacerItem>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_TecUserInfoWidgetClass
+{
+public:
+    QVBoxLayout *verticalLayout_5;
+    QFrame *userInfoFrame;
+    QHBoxLayout *horizontalLayout;
+    QVBoxLayout *verticalLayout;
+    QPushButton *pictureButton;
+    QSpacerItem *verticalSpacer;
+    QPushButton *cancelButton;
+    QVBoxLayout *verticalLayout_3;
+    QHBoxLayout *horizontalLayout_2;
+    QLabel *uidLabel;
+    QLineEdit *uidLineEdit;
+    QSpacerItem *horizontalSpacer_4;
+    QHBoxLayout *horizontalLayout_4;
+    QLabel *nameLabel;
+    QLineEdit *nameLineEdit;
+    QSpacerItem *horizontalSpacer_3;
+    QPushButton *resolveButton;
+    QHBoxLayout *horizontalLayout_5;
+    QLabel *genderLabel;
+    QComboBox *genderComboBox;
+    QSpacerItem *horizontalSpacer_6;
+    QSpacerItem *verticalSpacer_3;
+    QVBoxLayout *verticalLayout_2;
+    QSpacerItem *verticalSpacer_2;
+    QPushButton *okButton;
+
+    void setupUi(QWidget *TecUserInfoWidgetClass)
+    {
+        if (TecUserInfoWidgetClass->objectName().isEmpty())
+            TecUserInfoWidgetClass->setObjectName(QString::fromUtf8("TecUserInfoWidgetClass"));
+        TecUserInfoWidgetClass->setWindowModality(Qt::NonModal);
+        TecUserInfoWidgetClass->resize(544, 256);
+        TecUserInfoWidgetClass->setFocusPolicy(Qt::ClickFocus);
+        TecUserInfoWidgetClass->setStyleSheet(QString::fromUtf8(""));
+        verticalLayout_5 = new QVBoxLayout(TecUserInfoWidgetClass);
+        verticalLayout_5->setObjectName(QString::fromUtf8("verticalLayout_5"));
+        userInfoFrame = new QFrame(TecUserInfoWidgetClass);
+        userInfoFrame->setObjectName(QString::fromUtf8("userInfoFrame"));
+        QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+        sizePolicy.setHorizontalStretch(0);
+        sizePolicy.setVerticalStretch(0);
+        sizePolicy.setHeightForWidth(userInfoFrame->sizePolicy().hasHeightForWidth());
+        userInfoFrame->setSizePolicy(sizePolicy);
+        userInfoFrame->setStyleSheet(QString::fromUtf8("QFrame{\n"
+"border:none;\n"
+"}"));
+        userInfoFrame->setFrameShape(QFrame::StyledPanel);
+        horizontalLayout = new QHBoxLayout(userInfoFrame);
+        horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
+        verticalLayout = new QVBoxLayout();
+        verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+        pictureButton = new QPushButton(userInfoFrame);
+        pictureButton->setObjectName(QString::fromUtf8("pictureButton"));
+        QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Fixed);
+        sizePolicy1.setHorizontalStretch(0);
+        sizePolicy1.setVerticalStretch(0);
+        sizePolicy1.setHeightForWidth(pictureButton->sizePolicy().hasHeightForWidth());
+        pictureButton->setSizePolicy(sizePolicy1);
+        pictureButton->setMinimumSize(QSize(80, 80));
+        pictureButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+        pictureButton->setIconSize(QSize(68, 68));
+        pictureButton->setFlat(false);
+
+        verticalLayout->addWidget(pictureButton);
+
+        verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout->addItem(verticalSpacer);
+
+        cancelButton = new QPushButton(userInfoFrame);
+        cancelButton->setObjectName(QString::fromUtf8("cancelButton"));
+        cancelButton->setMinimumSize(QSize(80, 80));
+        cancelButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        verticalLayout->addWidget(cancelButton);
+
+
+        horizontalLayout->addLayout(verticalLayout);
+
+        verticalLayout_3 = new QVBoxLayout();
+        verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3"));
+        horizontalLayout_2 = new QHBoxLayout();
+        horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
+        uidLabel = new QLabel(userInfoFrame);
+        uidLabel->setObjectName(QString::fromUtf8("uidLabel"));
+        uidLabel->setMinimumSize(QSize(30, 0));
+        uidLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      border-radius: none;\n"
+"      background: none;\n"
+"      font: bold 12px;\n"
+"}"));
+        uidLabel->setFrameShape(QFrame::StyledPanel);
+        uidLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
+
+        horizontalLayout_2->addWidget(uidLabel);
+
+        uidLineEdit = new QLineEdit(userInfoFrame);
+        uidLineEdit->setObjectName(QString::fromUtf8("uidLineEdit"));
+        QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Maximum);
+        sizePolicy2.setHorizontalStretch(48);
+        sizePolicy2.setVerticalStretch(48);
+        sizePolicy2.setHeightForWidth(uidLineEdit->sizePolicy().hasHeightForWidth());
+        uidLineEdit->setSizePolicy(sizePolicy2);
+        uidLineEdit->setMinimumSize(QSize(0, 48));
+        QFont font;
+        font.setBold(true);
+        font.setItalic(false);
+        font.setWeight(75);
+        uidLineEdit->setFont(font);
+        uidLineEdit->setStyleSheet(QString::fromUtf8("QLineEdit{\n"
+"      border-radius: 5px;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        horizontalLayout_2->addWidget(uidLineEdit);
+
+        horizontalSpacer_4 = new QSpacerItem(20, 20, QSizePolicy::Maximum, QSizePolicy::Minimum);
+
+        horizontalLayout_2->addItem(horizontalSpacer_4);
+
+
+        verticalLayout_3->addLayout(horizontalLayout_2);
+
+        horizontalLayout_4 = new QHBoxLayout();
+        horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4"));
+        nameLabel = new QLabel(userInfoFrame);
+        nameLabel->setObjectName(QString::fromUtf8("nameLabel"));
+        nameLabel->setMinimumSize(QSize(30, 0));
+        nameLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      border-radius: none;\n"
+"      background: none;\n"
+"      font: bold 12px;\n"
+"}"));
+        nameLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
+
+        horizontalLayout_4->addWidget(nameLabel);
+
+        nameLineEdit = new QLineEdit(userInfoFrame);
+        nameLineEdit->setObjectName(QString::fromUtf8("nameLineEdit"));
+        QSizePolicy sizePolicy3(QSizePolicy::Expanding, QSizePolicy::Fixed);
+        sizePolicy3.setHorizontalStretch(0);
+        sizePolicy3.setVerticalStretch(48);
+        sizePolicy3.setHeightForWidth(nameLineEdit->sizePolicy().hasHeightForWidth());
+        nameLineEdit->setSizePolicy(sizePolicy3);
+        nameLineEdit->setMinimumSize(QSize(0, 48));
+        nameLineEdit->setFont(font);
+        nameLineEdit->setLayoutDirection(Qt::LeftToRight);
+        nameLineEdit->setStyleSheet(QString::fromUtf8("QLineEdit{\n"
+"      border-radius: 5px;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+        nameLineEdit->setReadOnly(false);
+
+        horizontalLayout_4->addWidget(nameLineEdit);
+
+        horizontalSpacer_3 = new QSpacerItem(20, 20, QSizePolicy::Maximum, QSizePolicy::Minimum);
+
+        horizontalLayout_4->addItem(horizontalSpacer_3);
+
+        resolveButton = new QPushButton(userInfoFrame);
+        resolveButton->setObjectName(QString::fromUtf8("resolveButton"));
+        resolveButton->setMinimumSize(QSize(80, 40));
+        resolveButton->setMaximumSize(QSize(80, 40));
+        resolveButton->setFont(font);
+        resolveButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 40px;\n"
+"      min-width: 80px;\n"
+"      max-height: 40px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        horizontalLayout_4->addWidget(resolveButton);
+
+
+        verticalLayout_3->addLayout(horizontalLayout_4);
+
+        horizontalLayout_5 = new QHBoxLayout();
+        horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5"));
+        genderLabel = new QLabel(userInfoFrame);
+        genderLabel->setObjectName(QString::fromUtf8("genderLabel"));
+        genderLabel->setMinimumSize(QSize(30, 0));
+        genderLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      border-radius: none;\n"
+"      background: none;\n"
+"      font: bold 12px;\n"
+"}"));
+        genderLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
+
+        horizontalLayout_5->addWidget(genderLabel);
+
+        genderComboBox = new QComboBox(userInfoFrame);
+        genderComboBox->setObjectName(QString::fromUtf8("genderComboBox"));
+        QSizePolicy sizePolicy4(QSizePolicy::Preferred, QSizePolicy::Fixed);
+        sizePolicy4.setHorizontalStretch(0);
+        sizePolicy4.setVerticalStretch(48);
+        sizePolicy4.setHeightForWidth(genderComboBox->sizePolicy().hasHeightForWidth());
+        genderComboBox->setSizePolicy(sizePolicy4);
+        genderComboBox->setMinimumSize(QSize(110, 52));
+        genderComboBox->setFont(font);
+        genderComboBox->setAutoFillBackground(false);
+        genderComboBox->setStyleSheet(QString::fromUtf8("QComboBox {\n"
+"      min-height: 48px;\n"
+"      font: bold 16px;\n"
+"}\n"
+""));
+
+        horizontalLayout_5->addWidget(genderComboBox);
+
+        horizontalSpacer_6 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        horizontalLayout_5->addItem(horizontalSpacer_6);
+
+
+        verticalLayout_3->addLayout(horizontalLayout_5);
+
+        verticalSpacer_3 = new QSpacerItem(327, 35, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout_3->addItem(verticalSpacer_3);
+
+
+        horizontalLayout->addLayout(verticalLayout_3);
+
+        verticalLayout_2 = new QVBoxLayout();
+        verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
+        verticalSpacer_2 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout_2->addItem(verticalSpacer_2);
+
+        okButton = new QPushButton(userInfoFrame);
+        okButton->setObjectName(QString::fromUtf8("okButton"));
+        okButton->setMinimumSize(QSize(80, 80));
+        okButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        verticalLayout_2->addWidget(okButton);
+
+
+        horizontalLayout->addLayout(verticalLayout_2);
+
+
+        verticalLayout_5->addWidget(userInfoFrame);
+
+
+        retranslateUi(TecUserInfoWidgetClass);
+
+        genderComboBox->setCurrentIndex(-1);
+
+
+        QMetaObject::connectSlotsByName(TecUserInfoWidgetClass);
+    } // setupUi
+
+    void retranslateUi(QWidget *TecUserInfoWidgetClass)
+    {
+        TecUserInfoWidgetClass->setWindowTitle(QApplication::translate("TecUserInfoWidgetClass", "Form", 0, QApplication::UnicodeUTF8));
+        pictureButton->setText(QString());
+        cancelButton->setText(QApplication::translate("TecUserInfoWidgetClass", "Cancel", 0, QApplication::UnicodeUTF8));
+        uidLabel->setText(QApplication::translate("TecUserInfoWidgetClass", "User id:", 0, QApplication::UnicodeUTF8));
+        uidLineEdit->setText(QString());
+        nameLabel->setText(QApplication::translate("TecUserInfoWidgetClass", "Name:", 0, QApplication::UnicodeUTF8));
+        nameLineEdit->setText(QString());
+        resolveButton->setText(QApplication::translate("TecUserInfoWidgetClass", "Resolve", 0, QApplication::UnicodeUTF8));
+        genderLabel->setText(QApplication::translate("TecUserInfoWidgetClass", "Gender:", 0, QApplication::UnicodeUTF8));
+        okButton->setText(QApplication::translate("TecUserInfoWidgetClass", "OK", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class TecUserInfoWidgetClass: public Ui_TecUserInfoWidgetClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_TECUSERINFOWIDGET_H
diff --git a/build/release/ui_TocAccountSettingsWidget.h b/build/release/ui_TocAccountSettingsWidget.h
new file mode 100644 (file)
index 0000000..6988e4d
--- /dev/null
@@ -0,0 +1,374 @@
+/********************************************************************************
+** Form generated from reading UI file 'TocAccountSettingsWidget.ui'
+**
+** Created: Thu Jul 8 08:48:05 2010
+**      by: Qt User Interface Compiler version 4.6.2
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_TOCACCOUNTSETTINGSWIDGET_H
+#define UI_TOCACCOUNTSETTINGSWIDGET_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QComboBox>
+#include <QtGui/QFormLayout>
+#include <QtGui/QFrame>
+#include <QtGui/QHBoxLayout>
+#include <QtGui/QHeaderView>
+#include <QtGui/QLabel>
+#include <QtGui/QLineEdit>
+#include <QtGui/QPushButton>
+#include <QtGui/QSpacerItem>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_TocAccountSettingsWidgetClass
+{
+public:
+    QHBoxLayout *horizontalLayout_2;
+    QFrame *frame;
+    QHBoxLayout *horizontalLayout;
+    QVBoxLayout *applyButtonLayout_2;
+    QPushButton *editVCardButton;
+    QSpacerItem *verticalSpacer_6;
+    QPushButton *backButton;
+    QVBoxLayout *verticalLayout_2;
+    QFormLayout *formLayout;
+    QLabel *loginLabel;
+    QLineEdit *loginLineEdit;
+    QLabel *passwordLabel;
+    QLineEdit *passwordLineEdit;
+    QLabel *passwordConfirmLabel;
+    QLineEdit *passwordConfirmLineEdit;
+    QSpacerItem *verticalSpacer_5;
+    QSpacerItem *verticalSpacer_4;
+    QSpacerItem *verticalSpacer_3;
+    QHBoxLayout *horizontalLayout_4;
+    QLabel *protocolLabel;
+    QComboBox *protocolComboBox;
+    QLabel *serverLabel;
+    QLineEdit *serverLineEdit;
+    QLabel *portLabel;
+    QLineEdit *portLineEdit;
+    QSpacerItem *verticalSpacer_2;
+    QVBoxLayout *applyButtonLayout;
+    QPushButton *changePasswordButton;
+    QSpacerItem *verticalSpacer;
+    QPushButton *okButton;
+
+    void setupUi(QWidget *TocAccountSettingsWidgetClass)
+    {
+        if (TocAccountSettingsWidgetClass->objectName().isEmpty())
+            TocAccountSettingsWidgetClass->setObjectName(QString::fromUtf8("TocAccountSettingsWidgetClass"));
+        TocAccountSettingsWidgetClass->resize(609, 388);
+        TocAccountSettingsWidgetClass->setStyleSheet(QString::fromUtf8(""));
+        horizontalLayout_2 = new QHBoxLayout(TocAccountSettingsWidgetClass);
+        horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
+        frame = new QFrame(TocAccountSettingsWidgetClass);
+        frame->setObjectName(QString::fromUtf8("frame"));
+        frame->setEnabled(true);
+        QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
+        sizePolicy.setHorizontalStretch(0);
+        sizePolicy.setVerticalStretch(0);
+        sizePolicy.setHeightForWidth(frame->sizePolicy().hasHeightForWidth());
+        frame->setSizePolicy(sizePolicy);
+        frame->setMaximumSize(QSize(16777215, 16777215));
+        frame->setStyleSheet(QString::fromUtf8(""));
+        frame->setFrameShape(QFrame::Box);
+        frame->setFrameShadow(QFrame::Sunken);
+        frame->setLineWidth(1);
+        horizontalLayout = new QHBoxLayout(frame);
+        horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
+        applyButtonLayout_2 = new QVBoxLayout();
+#ifndef Q_OS_MAC
+        applyButtonLayout_2->setSpacing(-1);
+#endif
+        applyButtonLayout_2->setObjectName(QString::fromUtf8("applyButtonLayout_2"));
+        applyButtonLayout_2->setSizeConstraint(QLayout::SetMinimumSize);
+        editVCardButton = new QPushButton(frame);
+        editVCardButton->setObjectName(QString::fromUtf8("editVCardButton"));
+        editVCardButton->setEnabled(false);
+        editVCardButton->setMinimumSize(QSize(80, 80));
+        editVCardButton->setMaximumSize(QSize(80, 80));
+        editVCardButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        applyButtonLayout_2->addWidget(editVCardButton);
+
+        verticalSpacer_6 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        applyButtonLayout_2->addItem(verticalSpacer_6);
+
+        backButton = new QPushButton(frame);
+        backButton->setObjectName(QString::fromUtf8("backButton"));
+        backButton->setMinimumSize(QSize(80, 80));
+        backButton->setMaximumSize(QSize(80, 80));
+        backButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        applyButtonLayout_2->addWidget(backButton);
+
+
+        horizontalLayout->addLayout(applyButtonLayout_2);
+
+        verticalLayout_2 = new QVBoxLayout();
+        verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
+        formLayout = new QFormLayout();
+        formLayout->setObjectName(QString::fromUtf8("formLayout"));
+        loginLabel = new QLabel(frame);
+        loginLabel->setObjectName(QString::fromUtf8("loginLabel"));
+        loginLabel->setStyleSheet(QString::fromUtf8("QLabel {\n"
+"      background: none;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        formLayout->setWidget(0, QFormLayout::LabelRole, loginLabel);
+
+        loginLineEdit = new QLineEdit(frame);
+        loginLineEdit->setObjectName(QString::fromUtf8("loginLineEdit"));
+        loginLineEdit->setStyleSheet(QString::fromUtf8("QLineEdit{\n"
+"      border-radius: 5px;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        formLayout->setWidget(0, QFormLayout::FieldRole, loginLineEdit);
+
+        passwordLabel = new QLabel(frame);
+        passwordLabel->setObjectName(QString::fromUtf8("passwordLabel"));
+        passwordLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      background: none;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        formLayout->setWidget(2, QFormLayout::LabelRole, passwordLabel);
+
+        passwordLineEdit = new QLineEdit(frame);
+        passwordLineEdit->setObjectName(QString::fromUtf8("passwordLineEdit"));
+        passwordLineEdit->setStyleSheet(QString::fromUtf8("QLineEdit{\n"
+"      border-radius: 5px;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+        passwordLineEdit->setEchoMode(QLineEdit::Password);
+
+        formLayout->setWidget(2, QFormLayout::FieldRole, passwordLineEdit);
+
+        passwordConfirmLabel = new QLabel(frame);
+        passwordConfirmLabel->setObjectName(QString::fromUtf8("passwordConfirmLabel"));
+        passwordConfirmLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      background: none;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+        passwordConfirmLabel->setWordWrap(true);
+        passwordConfirmLabel->setIndent(-1);
+
+        formLayout->setWidget(4, QFormLayout::LabelRole, passwordConfirmLabel);
+
+        passwordConfirmLineEdit = new QLineEdit(frame);
+        passwordConfirmLineEdit->setObjectName(QString::fromUtf8("passwordConfirmLineEdit"));
+        passwordConfirmLineEdit->setStyleSheet(QString::fromUtf8("QLineEdit{\n"
+"      border-radius: 5px;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+        passwordConfirmLineEdit->setEchoMode(QLineEdit::Password);
+
+        formLayout->setWidget(4, QFormLayout::FieldRole, passwordConfirmLineEdit);
+
+        verticalSpacer_5 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Maximum);
+
+        formLayout->setItem(1, QFormLayout::LabelRole, verticalSpacer_5);
+
+        verticalSpacer_4 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Maximum);
+
+        formLayout->setItem(3, QFormLayout::LabelRole, verticalSpacer_4);
+
+
+        verticalLayout_2->addLayout(formLayout);
+
+        verticalSpacer_3 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Maximum);
+
+        verticalLayout_2->addItem(verticalSpacer_3);
+
+        horizontalLayout_4 = new QHBoxLayout();
+        horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4"));
+        protocolLabel = new QLabel(frame);
+        protocolLabel->setObjectName(QString::fromUtf8("protocolLabel"));
+        protocolLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      background: none;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        horizontalLayout_4->addWidget(protocolLabel);
+
+        protocolComboBox = new QComboBox(frame);
+        protocolComboBox->setObjectName(QString::fromUtf8("protocolComboBox"));
+        protocolComboBox->setMinimumSize(QSize(79, 52));
+        protocolComboBox->setStyleSheet(QString::fromUtf8("QComboBox {\n"
+"      min-height: 48px;\n"
+"      font: bold 16px;\n"
+"}\n"
+""));
+
+        horizontalLayout_4->addWidget(protocolComboBox);
+
+        serverLabel = new QLabel(frame);
+        serverLabel->setObjectName(QString::fromUtf8("serverLabel"));
+        serverLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      background: none;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        horizontalLayout_4->addWidget(serverLabel);
+
+        serverLineEdit = new QLineEdit(frame);
+        serverLineEdit->setObjectName(QString::fromUtf8("serverLineEdit"));
+        serverLineEdit->setStyleSheet(QString::fromUtf8("QLineEdit{\n"
+"      border-radius: 5px;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        horizontalLayout_4->addWidget(serverLineEdit);
+
+        portLabel = new QLabel(frame);
+        portLabel->setObjectName(QString::fromUtf8("portLabel"));
+        portLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      background: none;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        horizontalLayout_4->addWidget(portLabel);
+
+        portLineEdit = new QLineEdit(frame);
+        portLineEdit->setObjectName(QString::fromUtf8("portLineEdit"));
+        portLineEdit->setMaximumSize(QSize(80, 16777215));
+        portLineEdit->setStyleSheet(QString::fromUtf8("QLineEdit{\n"
+"      border-radius: 5px;\n"
+"      min-height: 48px;\n"
+"      min-width: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        horizontalLayout_4->addWidget(portLineEdit);
+
+
+        verticalLayout_2->addLayout(horizontalLayout_4);
+
+        verticalSpacer_2 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout_2->addItem(verticalSpacer_2);
+
+
+        horizontalLayout->addLayout(verticalLayout_2);
+
+        applyButtonLayout = new QVBoxLayout();
+#ifndef Q_OS_MAC
+        applyButtonLayout->setSpacing(-1);
+#endif
+        applyButtonLayout->setObjectName(QString::fromUtf8("applyButtonLayout"));
+        applyButtonLayout->setSizeConstraint(QLayout::SetMinimumSize);
+        changePasswordButton = new QPushButton(frame);
+        changePasswordButton->setObjectName(QString::fromUtf8("changePasswordButton"));
+        changePasswordButton->setEnabled(false);
+        changePasswordButton->setMinimumSize(QSize(80, 80));
+        changePasswordButton->setMaximumSize(QSize(80, 80));
+        changePasswordButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        applyButtonLayout->addWidget(changePasswordButton);
+
+        verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        applyButtonLayout->addItem(verticalSpacer);
+
+        okButton = new QPushButton(frame);
+        okButton->setObjectName(QString::fromUtf8("okButton"));
+        okButton->setMinimumSize(QSize(80, 80));
+        okButton->setMaximumSize(QSize(80, 80));
+        okButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        applyButtonLayout->addWidget(okButton);
+
+
+        horizontalLayout->addLayout(applyButtonLayout);
+
+
+        horizontalLayout_2->addWidget(frame);
+
+
+        retranslateUi(TocAccountSettingsWidgetClass);
+        QObject::connect(loginLineEdit, SIGNAL(textEdited(QString)), TocAccountSettingsWidgetClass, SLOT(loginEdited(QString)));
+        QObject::connect(protocolComboBox, SIGNAL(currentIndexChanged(QString)), TocAccountSettingsWidgetClass, SLOT(protocolEdited(QString)));
+        QObject::connect(okButton, SIGNAL(clicked()), TocAccountSettingsWidgetClass, SLOT(onOkButton()));
+        QObject::connect(changePasswordButton, SIGNAL(clicked()), TocAccountSettingsWidgetClass, SLOT(onChangePasswordButton()));
+        QObject::connect(serverLineEdit, SIGNAL(textEdited(QString)), TocAccountSettingsWidgetClass, SLOT(disconnectHints()));
+        QObject::connect(portLineEdit, SIGNAL(textEdited(QString)), TocAccountSettingsWidgetClass, SLOT(disconnectHints()));
+
+        QMetaObject::connectSlotsByName(TocAccountSettingsWidgetClass);
+    } // setupUi
+
+    void retranslateUi(QWidget *TocAccountSettingsWidgetClass)
+    {
+        TocAccountSettingsWidgetClass->setWindowTitle(QApplication::translate("TocAccountSettingsWidgetClass", "Form", 0, QApplication::UnicodeUTF8));
+        editVCardButton->setText(QApplication::translate("TocAccountSettingsWidgetClass", "Edit\n"
+"VCard", 0, QApplication::UnicodeUTF8));
+        backButton->setText(QApplication::translate("TocAccountSettingsWidgetClass", "Back", 0, QApplication::UnicodeUTF8));
+        loginLabel->setText(QApplication::translate("TocAccountSettingsWidgetClass", "Login", 0, QApplication::UnicodeUTF8));
+        passwordLabel->setText(QApplication::translate("TocAccountSettingsWidgetClass", "Password", 0, QApplication::UnicodeUTF8));
+        passwordConfirmLabel->setText(QApplication::translate("TocAccountSettingsWidgetClass", "Confirm Password", 0, QApplication::UnicodeUTF8));
+        protocolLabel->setText(QApplication::translate("TocAccountSettingsWidgetClass", "Protocol", 0, QApplication::UnicodeUTF8));
+        serverLabel->setText(QApplication::translate("TocAccountSettingsWidgetClass", "Server", 0, QApplication::UnicodeUTF8));
+        portLabel->setText(QApplication::translate("TocAccountSettingsWidgetClass", "Port", 0, QApplication::UnicodeUTF8));
+        changePasswordButton->setText(QApplication::translate("TocAccountSettingsWidgetClass", "Change\n"
+"password", 0, QApplication::UnicodeUTF8));
+        okButton->setText(QApplication::translate("TocAccountSettingsWidgetClass", "Ok", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class TocAccountSettingsWidgetClass: public Ui_TocAccountSettingsWidgetClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_TOCACCOUNTSETTINGSWIDGET_H
diff --git a/build/release/ui_TocChatWidget.h b/build/release/ui_TocChatWidget.h
new file mode 100644 (file)
index 0000000..d8d5fe4
--- /dev/null
@@ -0,0 +1,174 @@
+/********************************************************************************
+** Form generated from reading UI file 'TocChatWidget.ui'
+**
+** Created: Thu Jul 8 08:48:05 2010
+**      by: Qt User Interface Compiler version 4.6.2
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_TOCCHATWIDGET_H
+#define UI_TOCCHATWIDGET_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QFrame>
+#include <QtGui/QGridLayout>
+#include <QtGui/QHBoxLayout>
+#include <QtGui/QHeaderView>
+#include <QtGui/QPushButton>
+#include <QtGui/QTextEdit>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_TocChatWidgetClass
+{
+public:
+    QVBoxLayout *verticalLayout;
+    QFrame *chatFrame;
+    QVBoxLayout *verticalLayout_2;
+    QFrame *frame;
+    QGridLayout *gridLayout;
+    QTextEdit *chatTextEdit;
+    QHBoxLayout *horizontalLayout_2;
+    QPushButton *smileButton;
+    QTextEdit *messageTextEdit;
+    QPushButton *sendButton;
+
+    void setupUi(QWidget *TocChatWidgetClass)
+    {
+        if (TocChatWidgetClass->objectName().isEmpty())
+            TocChatWidgetClass->setObjectName(QString::fromUtf8("TocChatWidgetClass"));
+        TocChatWidgetClass->resize(718, 431);
+        TocChatWidgetClass->setStyleSheet(QString::fromUtf8(""));
+        verticalLayout = new QVBoxLayout(TocChatWidgetClass);
+        verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+        chatFrame = new QFrame(TocChatWidgetClass);
+        chatFrame->setObjectName(QString::fromUtf8("chatFrame"));
+        chatFrame->setFrameShape(QFrame::StyledPanel);
+        chatFrame->setFrameShadow(QFrame::Raised);
+        verticalLayout_2 = new QVBoxLayout(chatFrame);
+        verticalLayout_2->setSpacing(0);
+        verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
+        frame = new QFrame(chatFrame);
+        frame->setObjectName(QString::fromUtf8("frame"));
+        frame->setStyleSheet(QString::fromUtf8(""));
+        frame->setFrameShape(QFrame::StyledPanel);
+        frame->setFrameShadow(QFrame::Plain);
+        gridLayout = new QGridLayout(frame);
+        gridLayout->setContentsMargins(3, 3, 3, 3);
+        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+        gridLayout->setVerticalSpacing(-1);
+        chatTextEdit = new QTextEdit(frame);
+        chatTextEdit->setObjectName(QString::fromUtf8("chatTextEdit"));
+        QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+        sizePolicy.setHorizontalStretch(0);
+        sizePolicy.setVerticalStretch(0);
+        sizePolicy.setHeightForWidth(chatTextEdit->sizePolicy().hasHeightForWidth());
+        chatTextEdit->setSizePolicy(sizePolicy);
+        chatTextEdit->setStyleSheet(QString::fromUtf8("QTextEdit {\n"
+"      background-color: none;\n"
+"}"));
+        chatTextEdit->setFrameShape(QFrame::Box);
+        chatTextEdit->setFrameShadow(QFrame::Sunken);
+        chatTextEdit->setLineWidth(1);
+        chatTextEdit->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+        chatTextEdit->setReadOnly(true);
+
+        gridLayout->addWidget(chatTextEdit, 0, 0, 1, 1);
+
+
+        verticalLayout_2->addWidget(frame);
+
+        horizontalLayout_2 = new QHBoxLayout();
+        horizontalLayout_2->setSpacing(4);
+        horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
+        horizontalLayout_2->setContentsMargins(0, 0, -1, -1);
+        smileButton = new QPushButton(chatFrame);
+        smileButton->setObjectName(QString::fromUtf8("smileButton"));
+        QFont font;
+        font.setPointSize(14);
+        font.setBold(true);
+        font.setWeight(75);
+        smileButton->setFont(font);
+        smileButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        horizontalLayout_2->addWidget(smileButton);
+
+        messageTextEdit = new QTextEdit(chatFrame);
+        messageTextEdit->setObjectName(QString::fromUtf8("messageTextEdit"));
+        QSizePolicy sizePolicy1(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
+        sizePolicy1.setHorizontalStretch(0);
+        sizePolicy1.setVerticalStretch(0);
+        sizePolicy1.setHeightForWidth(messageTextEdit->sizePolicy().hasHeightForWidth());
+        messageTextEdit->setSizePolicy(sizePolicy1);
+        messageTextEdit->setMaximumSize(QSize(16777215, 80));
+        messageTextEdit->setStyleSheet(QString::fromUtf8("QTextEdit {\n"
+"      background-color: none;\n"
+"}"));
+        messageTextEdit->setFrameShape(QFrame::Box);
+        messageTextEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+        messageTextEdit->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+
+        horizontalLayout_2->addWidget(messageTextEdit);
+
+        sendButton = new QPushButton(chatFrame);
+        sendButton->setObjectName(QString::fromUtf8("sendButton"));
+        QSizePolicy sizePolicy2(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
+        sizePolicy2.setHorizontalStretch(0);
+        sizePolicy2.setVerticalStretch(0);
+        sizePolicy2.setHeightForWidth(sendButton->sizePolicy().hasHeightForWidth());
+        sendButton->setSizePolicy(sizePolicy2);
+        sendButton->setMaximumSize(QSize(80, 80));
+        sendButton->setFont(font);
+        sendButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}\n"
+""));
+
+        horizontalLayout_2->addWidget(sendButton);
+
+
+        verticalLayout_2->addLayout(horizontalLayout_2);
+
+
+        verticalLayout->addWidget(chatFrame);
+
+
+        retranslateUi(TocChatWidgetClass);
+        QObject::connect(sendButton, SIGNAL(clicked()), TocChatWidgetClass, SLOT(pressedSendButton()));
+        QObject::connect(sendButton, SIGNAL(clicked()), messageTextEdit, SLOT(setFocus()));
+
+        QMetaObject::connectSlotsByName(TocChatWidgetClass);
+    } // setupUi
+
+    void retranslateUi(QWidget *TocChatWidgetClass)
+    {
+        TocChatWidgetClass->setWindowTitle(QApplication::translate("TocChatWidgetClass", "Form", 0, QApplication::UnicodeUTF8));
+        smileButton->setText(QApplication::translate("TocChatWidgetClass", "Smile", 0, QApplication::UnicodeUTF8));
+        sendButton->setText(QApplication::translate("TocChatWidgetClass", "Send", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class TocChatWidgetClass: public Ui_TocChatWidgetClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_TOCCHATWIDGET_H
diff --git a/build/release/ui_TocEmoticonsDialog.h b/build/release/ui_TocEmoticonsDialog.h
new file mode 100644 (file)
index 0000000..024f1d3
--- /dev/null
@@ -0,0 +1,97 @@
+/********************************************************************************
+** Form generated from reading UI file 'TocEmoticonsDialog.ui'
+**
+** Created: Thu Jul 8 08:48:05 2010
+**      by: Qt User Interface Compiler version 4.6.2
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_TOCEMOTICONSDIALOG_H
+#define UI_TOCEMOTICONSDIALOG_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QDialog>
+#include <QtGui/QGridLayout>
+#include <QtGui/QHeaderView>
+#include <QtGui/QListWidget>
+#include <QtGui/QPushButton>
+#include <QtGui/QSpacerItem>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_TocEmoticonsDialogClass
+{
+public:
+    QGridLayout *gridLayout;
+    QListWidget *emoticonsListWidget;
+    QSpacerItem *horizontalSpacer;
+    QPushButton *backButton;
+    QSpacerItem *horizontalSpacer_2;
+
+    void setupUi(QDialog *TocEmoticonsDialogClass)
+    {
+        if (TocEmoticonsDialogClass->objectName().isEmpty())
+            TocEmoticonsDialogClass->setObjectName(QString::fromUtf8("TocEmoticonsDialogClass"));
+        TocEmoticonsDialogClass->resize(418, 310);
+        gridLayout = new QGridLayout(TocEmoticonsDialogClass);
+        gridLayout->setSpacing(0);
+        gridLayout->setContentsMargins(11, 11, 11, 11);
+        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+        gridLayout->setContentsMargins(0, 9, 9, 0);
+        emoticonsListWidget = new QListWidget(TocEmoticonsDialogClass);
+        emoticonsListWidget->setObjectName(QString::fromUtf8("emoticonsListWidget"));
+        emoticonsListWidget->setProperty("showDropIndicator", QVariant(false));
+        emoticonsListWidget->setSpacing(10);
+        emoticonsListWidget->setViewMode(QListView::ListMode);
+
+        gridLayout->addWidget(emoticonsListWidget, 0, 0, 1, 3);
+
+        horizontalSpacer = new QSpacerItem(142, 77, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout->addItem(horizontalSpacer, 1, 0, 1, 1);
+
+        backButton = new QPushButton(TocEmoticonsDialogClass);
+        backButton->setObjectName(QString::fromUtf8("backButton"));
+        backButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 40px;\n"
+"      min-width: 80px;\n"
+"      max-height: 40px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        gridLayout->addWidget(backButton, 1, 1, 1, 1);
+
+        horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        gridLayout->addItem(horizontalSpacer_2, 1, 2, 1, 1);
+
+
+        retranslateUi(TocEmoticonsDialogClass);
+
+        emoticonsListWidget->setCurrentRow(-1);
+
+
+        QMetaObject::connectSlotsByName(TocEmoticonsDialogClass);
+    } // setupUi
+
+    void retranslateUi(QDialog *TocEmoticonsDialogClass)
+    {
+        TocEmoticonsDialogClass->setWindowTitle(QApplication::translate("TocEmoticonsDialogClass", "Emoticons", 0, QApplication::UnicodeUTF8));
+        backButton->setText(QApplication::translate("TocEmoticonsDialogClass", "Back", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class TocEmoticonsDialogClass: public Ui_TocEmoticonsDialogClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_TOCEMOTICONSDIALOG_H
diff --git a/build/release/ui_TocGeneralSettingsWidget.h b/build/release/ui_TocGeneralSettingsWidget.h
new file mode 100644 (file)
index 0000000..87d714a
--- /dev/null
@@ -0,0 +1,322 @@
+/********************************************************************************
+** Form generated from reading UI file 'TocGeneralSettingsWidget.ui'
+**
+** Created: Thu Jul 8 08:48:05 2010
+**      by: Qt User Interface Compiler version 4.6.2
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_TOCGENERALSETTINGSWIDGET_H
+#define UI_TOCGENERALSETTINGSWIDGET_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QFrame>
+#include <QtGui/QGridLayout>
+#include <QtGui/QGroupBox>
+#include <QtGui/QHBoxLayout>
+#include <QtGui/QHeaderView>
+#include <QtGui/QLabel>
+#include <QtGui/QPushButton>
+#include <QtGui/QRadioButton>
+#include <QtGui/QSpacerItem>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_TocGeneralSettingsWidgetClass
+{
+public:
+    QVBoxLayout *verticalLayout;
+    QFrame *generalSettingsFrame;
+    QHBoxLayout *horizontalLayout;
+    QVBoxLayout *verticalLayout_2;
+    QSpacerItem *verticalSpacer;
+    QPushButton *backButton;
+    QGroupBox *sortingGroupBox;
+    QGridLayout *gridLayout_4;
+    QSpacerItem *verticalSpacer_3;
+    QSpacerItem *verticalSpacer_2;
+    QSpacerItem *verticalSpacer_4;
+    QSpacerItem *verticalSpacer_5;
+    QRadioButton *alphaRadioButton;
+    QRadioButton *dragDropRadioButton;
+    QRadioButton *presenceRadioButton;
+    QLabel *alphaLabel;
+    QLabel *presence;
+    QLabel *dragDropLabel;
+    QGroupBox *authorizationGroupBox;
+    QGridLayout *gridLayout_5;
+    QRadioButton *askRadioButton;
+    QRadioButton *denyRadioButton;
+    QRadioButton *acceptRadioButton;
+    QSpacerItem *verticalSpacer_7;
+    QSpacerItem *verticalSpacer_8;
+    QSpacerItem *verticalSpacer_6;
+    QSpacerItem *verticalSpacer_9;
+    QVBoxLayout *verticalLayout_3;
+    QSpacerItem *verticalSpacer_1;
+    QPushButton *okButton;
+
+    void setupUi(QWidget *TocGeneralSettingsWidgetClass)
+    {
+        if (TocGeneralSettingsWidgetClass->objectName().isEmpty())
+            TocGeneralSettingsWidgetClass->setObjectName(QString::fromUtf8("TocGeneralSettingsWidgetClass"));
+        TocGeneralSettingsWidgetClass->resize(773, 441);
+        TocGeneralSettingsWidgetClass->setProperty("sizeHint", QVariant(QSize(705, 568)));
+        verticalLayout = new QVBoxLayout(TocGeneralSettingsWidgetClass);
+        verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+        generalSettingsFrame = new QFrame(TocGeneralSettingsWidgetClass);
+        generalSettingsFrame->setObjectName(QString::fromUtf8("generalSettingsFrame"));
+        generalSettingsFrame->setFrameShape(QFrame::StyledPanel);
+        generalSettingsFrame->setFrameShadow(QFrame::Raised);
+        horizontalLayout = new QHBoxLayout(generalSettingsFrame);
+        horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
+        verticalLayout_2 = new QVBoxLayout();
+        verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
+        verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout_2->addItem(verticalSpacer);
+
+        backButton = new QPushButton(generalSettingsFrame);
+        backButton->setObjectName(QString::fromUtf8("backButton"));
+        backButton->setStyleSheet(QString::fromUtf8("QPushButton {\n"
+"                      font: bold 16px;\n"
+"              border-radius: 5px;\n"
+"                      min-height: 80px;\n"
+"                      min-width: 80px;\n"
+"                      max-height: 80px;\n"
+"                      max-width: 80px;\n"
+"}"));
+
+        verticalLayout_2->addWidget(backButton);
+
+
+        horizontalLayout->addLayout(verticalLayout_2);
+
+        sortingGroupBox = new QGroupBox(generalSettingsFrame);
+        sortingGroupBox->setObjectName(QString::fromUtf8("sortingGroupBox"));
+        sortingGroupBox->setEnabled(false);
+        QSizePolicy sizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
+        sizePolicy.setHorizontalStretch(0);
+        sizePolicy.setVerticalStretch(0);
+        sizePolicy.setHeightForWidth(sortingGroupBox->sizePolicy().hasHeightForWidth());
+        sortingGroupBox->setSizePolicy(sizePolicy);
+        sortingGroupBox->setStyleSheet(QString::fromUtf8("QGroupBox {\n"
+"      font: bold 12px;\n"
+"}"));
+        gridLayout_4 = new QGridLayout(sortingGroupBox);
+        gridLayout_4->setObjectName(QString::fromUtf8("gridLayout_4"));
+        verticalSpacer_3 = new QSpacerItem(20, 75, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_4->addItem(verticalSpacer_3, 4, 0, 1, 1);
+
+        verticalSpacer_2 = new QSpacerItem(20, 85, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_4->addItem(verticalSpacer_2, 1, 0, 1, 1);
+
+        verticalSpacer_4 = new QSpacerItem(20, 75, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_4->addItem(verticalSpacer_4, 7, 0, 1, 1);
+
+        verticalSpacer_5 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_4->addItem(verticalSpacer_5, 11, 0, 1, 1);
+
+        alphaRadioButton = new QRadioButton(sortingGroupBox);
+        alphaRadioButton->setObjectName(QString::fromUtf8("alphaRadioButton"));
+        QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Fixed);
+        sizePolicy1.setHorizontalStretch(0);
+        sizePolicy1.setVerticalStretch(0);
+        sizePolicy1.setHeightForWidth(alphaRadioButton->sizePolicy().hasHeightForWidth());
+        alphaRadioButton->setSizePolicy(sizePolicy1);
+        alphaRadioButton->setMinimumSize(QSize(0, 25));
+        alphaRadioButton->setStyleSheet(QString::fromUtf8("QRadioButton {\n"
+"      font: bold 16px;\n"
+"      background-color: none;\n"
+"      min-height: 25px;\n"
+"}"));
+        alphaRadioButton->setChecked(true);
+
+        gridLayout_4->addWidget(alphaRadioButton, 2, 0, 1, 1);
+
+        dragDropRadioButton = new QRadioButton(sortingGroupBox);
+        dragDropRadioButton->setObjectName(QString::fromUtf8("dragDropRadioButton"));
+        dragDropRadioButton->setMinimumSize(QSize(0, 25));
+        dragDropRadioButton->setStyleSheet(QString::fromUtf8("QRadioButton {\n"
+"      font: bold 16px;\n"
+"      background-color: none;\n"
+"      min-height: 25px;\n"
+"}"));
+
+        gridLayout_4->addWidget(dragDropRadioButton, 9, 0, 1, 1);
+
+        presenceRadioButton = new QRadioButton(sortingGroupBox);
+        presenceRadioButton->setObjectName(QString::fromUtf8("presenceRadioButton"));
+        presenceRadioButton->setEnabled(false);
+        presenceRadioButton->setStyleSheet(QString::fromUtf8("QRadioButton {\n"
+"      font: bold 16px;\n"
+"      background-color: none;\n"
+"      min-height: 25px;\n"
+"}"));
+
+        gridLayout_4->addWidget(presenceRadioButton, 5, 0, 1, 1);
+
+        alphaLabel = new QLabel(sortingGroupBox);
+        alphaLabel->setObjectName(QString::fromUtf8("alphaLabel"));
+        QFont font;
+        font.setBold(false);
+        font.setItalic(false);
+        font.setWeight(50);
+        alphaLabel->setFont(font);
+        alphaLabel->setStyleSheet(QString::fromUtf8("QLabel {\n"
+"      background: none;\n"
+"      font: 14px;\n"
+"}"));
+
+        gridLayout_4->addWidget(alphaLabel, 3, 0, 1, 1);
+
+        presence = new QLabel(sortingGroupBox);
+        presence->setObjectName(QString::fromUtf8("presence"));
+        presence->setFont(font);
+        presence->setStyleSheet(QString::fromUtf8("QLabel {\n"
+"      background: none;\n"
+"      font: 14px;\n"
+"}"));
+
+        gridLayout_4->addWidget(presence, 6, 0, 1, 1);
+
+        dragDropLabel = new QLabel(sortingGroupBox);
+        dragDropLabel->setObjectName(QString::fromUtf8("dragDropLabel"));
+        dragDropLabel->setStyleSheet(QString::fromUtf8("QLabel {\n"
+"      background: none;\n"
+"      font: 14px;\n"
+"}"));
+
+        gridLayout_4->addWidget(dragDropLabel, 10, 0, 1, 1);
+
+
+        horizontalLayout->addWidget(sortingGroupBox);
+
+        authorizationGroupBox = new QGroupBox(generalSettingsFrame);
+        authorizationGroupBox->setObjectName(QString::fromUtf8("authorizationGroupBox"));
+        authorizationGroupBox->setEnabled(false);
+        sizePolicy.setHeightForWidth(authorizationGroupBox->sizePolicy().hasHeightForWidth());
+        authorizationGroupBox->setSizePolicy(sizePolicy);
+        authorizationGroupBox->setStyleSheet(QString::fromUtf8("QGroupBox {\n"
+"      font: bold 12px;\n"
+"}"));
+        authorizationGroupBox->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter);
+        gridLayout_5 = new QGridLayout(authorizationGroupBox);
+        gridLayout_5->setObjectName(QString::fromUtf8("gridLayout_5"));
+        askRadioButton = new QRadioButton(authorizationGroupBox);
+        askRadioButton->setObjectName(QString::fromUtf8("askRadioButton"));
+        askRadioButton->setStyleSheet(QString::fromUtf8("QRadioButton {\n"
+"      font: bold 16px;\n"
+"\n"
+"      min-height: 48px;\n"
+"}"));
+        askRadioButton->setChecked(true);
+
+        gridLayout_5->addWidget(askRadioButton, 2, 0, 1, 1);
+
+        denyRadioButton = new QRadioButton(authorizationGroupBox);
+        denyRadioButton->setObjectName(QString::fromUtf8("denyRadioButton"));
+        denyRadioButton->setStyleSheet(QString::fromUtf8("QRadioButton {\n"
+"      font: bold 16px;\n"
+"      min-height: 48px;\n"
+"}"));
+
+        gridLayout_5->addWidget(denyRadioButton, 6, 0, 1, 1);
+
+        acceptRadioButton = new QRadioButton(authorizationGroupBox);
+        acceptRadioButton->setObjectName(QString::fromUtf8("acceptRadioButton"));
+        acceptRadioButton->setStyleSheet(QString::fromUtf8("QRadioButton {\n"
+"      font: bold 16px;\n"
+"      min-height: 48px;\n"
+"}"));
+
+        gridLayout_5->addWidget(acceptRadioButton, 4, 0, 1, 1);
+
+        verticalSpacer_7 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_5->addItem(verticalSpacer_7, 3, 0, 1, 1);
+
+        verticalSpacer_8 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_5->addItem(verticalSpacer_8, 5, 0, 1, 1);
+
+        verticalSpacer_6 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_5->addItem(verticalSpacer_6, 1, 0, 1, 1);
+
+        verticalSpacer_9 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_5->addItem(verticalSpacer_9, 7, 0, 1, 1);
+
+
+        horizontalLayout->addWidget(authorizationGroupBox);
+
+        verticalLayout_3 = new QVBoxLayout();
+        verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3"));
+        verticalSpacer_1 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout_3->addItem(verticalSpacer_1);
+
+        okButton = new QPushButton(generalSettingsFrame);
+        okButton->setObjectName(QString::fromUtf8("okButton"));
+        okButton->setStyleSheet(QString::fromUtf8("QPushButton {\n"
+"                      font: bold 16px;\n"
+"              border-radius: 5px;\n"
+"                      min-height: 80px;\n"
+"                      min-width: 80px;\n"
+"                      max-height: 80px;\n"
+"                      max-width: 80px;\n"
+"}"));
+
+        verticalLayout_3->addWidget(okButton);
+
+
+        horizontalLayout->addLayout(verticalLayout_3);
+
+
+        verticalLayout->addWidget(generalSettingsFrame);
+
+
+        retranslateUi(TocGeneralSettingsWidgetClass);
+
+        QMetaObject::connectSlotsByName(TocGeneralSettingsWidgetClass);
+    } // setupUi
+
+    void retranslateUi(QWidget *TocGeneralSettingsWidgetClass)
+    {
+        TocGeneralSettingsWidgetClass->setWindowTitle(QApplication::translate("TocGeneralSettingsWidgetClass", "Form", 0, QApplication::UnicodeUTF8));
+        backButton->setText(QApplication::translate("TocGeneralSettingsWidgetClass", "Back", 0, QApplication::UnicodeUTF8));
+        sortingGroupBox->setTitle(QApplication::translate("TocGeneralSettingsWidgetClass", "Contact list sorting", 0, QApplication::UnicodeUTF8));
+        alphaRadioButton->setText(QApplication::translate("TocGeneralSettingsWidgetClass", "Sort alphabeticaly", 0, QApplication::UnicodeUTF8));
+        dragDropRadioButton->setText(QApplication::translate("TocGeneralSettingsWidgetClass", "Disable sorting", 0, QApplication::UnicodeUTF8));
+        presenceRadioButton->setText(QApplication::translate("TocGeneralSettingsWidgetClass", "Sort by status", 0, QApplication::UnicodeUTF8));
+        alphaLabel->setText(QApplication::translate("TocGeneralSettingsWidgetClass", "Sorts contact list items alphabetically", 0, QApplication::UnicodeUTF8));
+        presence->setText(QApplication::translate("TocGeneralSettingsWidgetClass", "Sorts contact list items by status", 0, QApplication::UnicodeUTF8));
+        dragDropLabel->setText(QApplication::translate("TocGeneralSettingsWidgetClass", "Disables sorting and enables drag\n"
+"and dropping", 0, QApplication::UnicodeUTF8));
+        authorizationGroupBox->setTitle(QApplication::translate("TocGeneralSettingsWidgetClass", "Contact authorization rule", 0, QApplication::UnicodeUTF8));
+        askRadioButton->setText(QApplication::translate("TocGeneralSettingsWidgetClass", "Ask", 0, QApplication::UnicodeUTF8));
+        denyRadioButton->setText(QApplication::translate("TocGeneralSettingsWidgetClass", "Always deny", 0, QApplication::UnicodeUTF8));
+        acceptRadioButton->setText(QApplication::translate("TocGeneralSettingsWidgetClass", "Always accept", 0, QApplication::UnicodeUTF8));
+        okButton->setText(QApplication::translate("TocGeneralSettingsWidgetClass", "Ok", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class TocGeneralSettingsWidgetClass: public Ui_TocGeneralSettingsWidgetClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_TOCGENERALSETTINGSWIDGET_H
diff --git a/build/release/ui_TocThemesSettingsWidget.h b/build/release/ui_TocThemesSettingsWidget.h
new file mode 100644 (file)
index 0000000..4fcb4e4
--- /dev/null
@@ -0,0 +1,192 @@
+/********************************************************************************
+** Form generated from reading UI file 'TocThemesSettingsWidget.ui'
+**
+** Created: Thu Jul 8 08:48:05 2010
+**      by: Qt User Interface Compiler version 4.6.2
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_TOCTHEMESSETTINGSWIDGET_H
+#define UI_TOCTHEMESSETTINGSWIDGET_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QFrame>
+#include <QtGui/QGridLayout>
+#include <QtGui/QHeaderView>
+#include <QtGui/QListWidget>
+#include <QtGui/QPushButton>
+#include <QtGui/QSpacerItem>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_TocThemesSettingsWidgetClass
+{
+public:
+    QGridLayout *gridLayout_2;
+    QFrame *frame;
+    QGridLayout *gridLayout;
+    QVBoxLayout *verticalLayout_3;
+    QSpacerItem *verticalSpacer_2;
+    QPushButton *backThemeButton;
+    QVBoxLayout *verticalLayout;
+    QListWidget *themesListWidget;
+    QVBoxLayout *verticalLayout_2;
+    QPushButton *addThemeButton;
+    QSpacerItem *verticalSpacer;
+    QPushButton *applyThemeButton;
+
+    void setupUi(QWidget *TocThemesSettingsWidgetClass)
+    {
+        if (TocThemesSettingsWidgetClass->objectName().isEmpty())
+            TocThemesSettingsWidgetClass->setObjectName(QString::fromUtf8("TocThemesSettingsWidgetClass"));
+        TocThemesSettingsWidgetClass->resize(593, 405);
+        TocThemesSettingsWidgetClass->setStyleSheet(QString::fromUtf8(""));
+        gridLayout_2 = new QGridLayout(TocThemesSettingsWidgetClass);
+        gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
+        frame = new QFrame(TocThemesSettingsWidgetClass);
+        frame->setObjectName(QString::fromUtf8("frame"));
+        frame->setEnabled(true);
+        QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
+        sizePolicy.setHorizontalStretch(0);
+        sizePolicy.setVerticalStretch(0);
+        sizePolicy.setHeightForWidth(frame->sizePolicy().hasHeightForWidth());
+        frame->setSizePolicy(sizePolicy);
+        frame->setStyleSheet(QString::fromUtf8(""));
+        frame->setFrameShape(QFrame::Box);
+        frame->setFrameShadow(QFrame::Sunken);
+        frame->setLineWidth(1);
+        gridLayout = new QGridLayout(frame);
+        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+        verticalLayout_3 = new QVBoxLayout();
+        verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3"));
+        verticalSpacer_2 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout_3->addItem(verticalSpacer_2);
+
+        backThemeButton = new QPushButton(frame);
+        backThemeButton->setObjectName(QString::fromUtf8("backThemeButton"));
+        backThemeButton->setStyleSheet(QString::fromUtf8("QPushButton {\n"
+"                      font: bold 16px;\n"
+"              border-radius: 5px;\n"
+"                      min-height: 80px;\n"
+"                      min-width: 80px;\n"
+"                      max-height: 80px;\n"
+"                      max-width: 80px;\n"
+"}"));
+
+        verticalLayout_3->addWidget(backThemeButton);
+
+
+        gridLayout->addLayout(verticalLayout_3, 0, 0, 1, 1);
+
+        verticalLayout = new QVBoxLayout();
+        verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+        themesListWidget = new QListWidget(frame);
+        themesListWidget->setObjectName(QString::fromUtf8("themesListWidget"));
+        QSizePolicy sizePolicy1(QSizePolicy::Expanding, QSizePolicy::Expanding);
+        sizePolicy1.setHorizontalStretch(0);
+        sizePolicy1.setVerticalStretch(0);
+        sizePolicy1.setHeightForWidth(themesListWidget->sizePolicy().hasHeightForWidth());
+        themesListWidget->setSizePolicy(sizePolicy1);
+        themesListWidget->setAutoFillBackground(true);
+        themesListWidget->setStyleSheet(QString::fromUtf8("QListView {\n"
+"      font: bold 30px;\n"
+"}\n"
+"\n"
+""));
+        themesListWidget->setLineWidth(1);
+        themesListWidget->setMidLineWidth(1);
+        themesListWidget->setProperty("showDropIndicator", QVariant(false));
+        themesListWidget->setAlternatingRowColors(false);
+        themesListWidget->setSelectionMode(QAbstractItemView::SingleSelection);
+        themesListWidget->setSelectionBehavior(QAbstractItemView::SelectItems);
+        themesListWidget->setIconSize(QSize(0, 0));
+        themesListWidget->setTextElideMode(Qt::ElideMiddle);
+        themesListWidget->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem);
+        themesListWidget->setMovement(QListView::Static);
+        themesListWidget->setFlow(QListView::TopToBottom);
+        themesListWidget->setProperty("isWrapping", QVariant(false));
+        themesListWidget->setResizeMode(QListView::Adjust);
+        themesListWidget->setSpacing(5);
+        themesListWidget->setViewMode(QListView::ListMode);
+        themesListWidget->setModelColumn(0);
+        themesListWidget->setWordWrap(true);
+        themesListWidget->setSelectionRectVisible(true);
+        themesListWidget->setSortingEnabled(false);
+
+        verticalLayout->addWidget(themesListWidget);
+
+
+        gridLayout->addLayout(verticalLayout, 0, 1, 1, 1);
+
+        verticalLayout_2 = new QVBoxLayout();
+        verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
+        addThemeButton = new QPushButton(frame);
+        addThemeButton->setObjectName(QString::fromUtf8("addThemeButton"));
+        addThemeButton->setStyleSheet(QString::fromUtf8("QPushButton {\n"
+"                      font: bold 16px;\n"
+"              border-radius: 5px;\n"
+"                      min-height: 80px;\n"
+"                      min-width: 80px;\n"
+"                      max-height: 80px;\n"
+"                      max-width: 80px;\n"
+"}"));
+
+        verticalLayout_2->addWidget(addThemeButton);
+
+        verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout_2->addItem(verticalSpacer);
+
+        applyThemeButton = new QPushButton(frame);
+        applyThemeButton->setObjectName(QString::fromUtf8("applyThemeButton"));
+        applyThemeButton->setAutoFillBackground(false);
+        applyThemeButton->setStyleSheet(QString::fromUtf8("QPushButton {\n"
+"                      font: bold 16px;\n"
+"              border-radius: 5px;\n"
+"                      min-height: 80px;\n"
+"                      min-width: 80px;\n"
+"                      max-height: 80px;\n"
+"                      max-width: 80px;\n"
+"}"));
+
+        verticalLayout_2->addWidget(applyThemeButton);
+
+
+        gridLayout->addLayout(verticalLayout_2, 0, 2, 1, 1);
+
+
+        gridLayout_2->addWidget(frame, 0, 0, 1, 1);
+
+
+        retranslateUi(TocThemesSettingsWidgetClass);
+
+        themesListWidget->setCurrentRow(-1);
+
+
+        QMetaObject::connectSlotsByName(TocThemesSettingsWidgetClass);
+    } // setupUi
+
+    void retranslateUi(QWidget *TocThemesSettingsWidgetClass)
+    {
+        TocThemesSettingsWidgetClass->setWindowTitle(QApplication::translate("TocThemesSettingsWidgetClass", "Form", 0, QApplication::UnicodeUTF8));
+        backThemeButton->setText(QApplication::translate("TocThemesSettingsWidgetClass", "Back", 0, QApplication::UnicodeUTF8));
+        addThemeButton->setText(QApplication::translate("TocThemesSettingsWidgetClass", "Add theme", 0, QApplication::UnicodeUTF8));
+        applyThemeButton->setText(QApplication::translate("TocThemesSettingsWidgetClass", "Apply", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class TocThemesSettingsWidgetClass: public Ui_TocThemesSettingsWidgetClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_TOCTHEMESSETTINGSWIDGET_H
diff --git a/build/release/ui_TocUserInfoWidget.h b/build/release/ui_TocUserInfoWidget.h
new file mode 100644 (file)
index 0000000..7890788
--- /dev/null
@@ -0,0 +1,329 @@
+/********************************************************************************
+** Form generated from reading UI file 'TocUserInfoWidget.ui'
+**
+** Created: Thu Jul 8 08:48:05 2010
+**      by: Qt User Interface Compiler version 4.6.2
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_TOCUSERINFOWIDGET_H
+#define UI_TOCUSERINFOWIDGET_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QComboBox>
+#include <QtGui/QFrame>
+#include <QtGui/QHBoxLayout>
+#include <QtGui/QHeaderView>
+#include <QtGui/QLabel>
+#include <QtGui/QLineEdit>
+#include <QtGui/QPushButton>
+#include <QtGui/QSpacerItem>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_TocUserInfoWidgetClass
+{
+public:
+    QVBoxLayout *verticalLayout_5;
+    QFrame *userInfoFrame;
+    QHBoxLayout *horizontalLayout;
+    QVBoxLayout *verticalLayout;
+    QPushButton *pictureButton;
+    QSpacerItem *verticalSpacer;
+    QPushButton *cancelButton;
+    QVBoxLayout *verticalLayout_3;
+    QHBoxLayout *horizontalLayout_2;
+    QLabel *uidLabel;
+    QLineEdit *uidLineEdit;
+    QSpacerItem *horizontalSpacer_4;
+    QHBoxLayout *horizontalLayout_4;
+    QLabel *nameLabel;
+    QLineEdit *nameLineEdit;
+    QSpacerItem *horizontalSpacer_3;
+    QPushButton *resolveButton;
+    QHBoxLayout *horizontalLayout_5;
+    QLabel *genderLabel;
+    QComboBox *genderComboBox;
+    QSpacerItem *horizontalSpacer_6;
+    QSpacerItem *verticalSpacer_3;
+    QVBoxLayout *verticalLayout_2;
+    QSpacerItem *verticalSpacer_2;
+    QPushButton *okButton;
+
+    void setupUi(QWidget *TocUserInfoWidgetClass)
+    {
+        if (TocUserInfoWidgetClass->objectName().isEmpty())
+            TocUserInfoWidgetClass->setObjectName(QString::fromUtf8("TocUserInfoWidgetClass"));
+        TocUserInfoWidgetClass->setWindowModality(Qt::NonModal);
+        TocUserInfoWidgetClass->resize(544, 256);
+        TocUserInfoWidgetClass->setFocusPolicy(Qt::ClickFocus);
+        TocUserInfoWidgetClass->setStyleSheet(QString::fromUtf8(""));
+        verticalLayout_5 = new QVBoxLayout(TocUserInfoWidgetClass);
+        verticalLayout_5->setObjectName(QString::fromUtf8("verticalLayout_5"));
+        userInfoFrame = new QFrame(TocUserInfoWidgetClass);
+        userInfoFrame->setObjectName(QString::fromUtf8("userInfoFrame"));
+        QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+        sizePolicy.setHorizontalStretch(0);
+        sizePolicy.setVerticalStretch(0);
+        sizePolicy.setHeightForWidth(userInfoFrame->sizePolicy().hasHeightForWidth());
+        userInfoFrame->setSizePolicy(sizePolicy);
+        userInfoFrame->setStyleSheet(QString::fromUtf8("QFrame{\n"
+"border:none;\n"
+"}"));
+        userInfoFrame->setFrameShape(QFrame::StyledPanel);
+        horizontalLayout = new QHBoxLayout(userInfoFrame);
+        horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
+        verticalLayout = new QVBoxLayout();
+        verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+        pictureButton = new QPushButton(userInfoFrame);
+        pictureButton->setObjectName(QString::fromUtf8("pictureButton"));
+        QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Fixed);
+        sizePolicy1.setHorizontalStretch(0);
+        sizePolicy1.setVerticalStretch(0);
+        sizePolicy1.setHeightForWidth(pictureButton->sizePolicy().hasHeightForWidth());
+        pictureButton->setSizePolicy(sizePolicy1);
+        pictureButton->setMinimumSize(QSize(80, 80));
+        pictureButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+        pictureButton->setIconSize(QSize(68, 68));
+        pictureButton->setFlat(false);
+
+        verticalLayout->addWidget(pictureButton);
+
+        verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout->addItem(verticalSpacer);
+
+        cancelButton = new QPushButton(userInfoFrame);
+        cancelButton->setObjectName(QString::fromUtf8("cancelButton"));
+        cancelButton->setMinimumSize(QSize(80, 80));
+        cancelButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        verticalLayout->addWidget(cancelButton);
+
+
+        horizontalLayout->addLayout(verticalLayout);
+
+        verticalLayout_3 = new QVBoxLayout();
+        verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3"));
+        horizontalLayout_2 = new QHBoxLayout();
+        horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
+        uidLabel = new QLabel(userInfoFrame);
+        uidLabel->setObjectName(QString::fromUtf8("uidLabel"));
+        uidLabel->setMinimumSize(QSize(30, 0));
+        uidLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      border-radius: none;\n"
+"      background: none;\n"
+"      font: bold 12px;\n"
+"}"));
+        uidLabel->setFrameShape(QFrame::StyledPanel);
+        uidLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
+
+        horizontalLayout_2->addWidget(uidLabel);
+
+        uidLineEdit = new QLineEdit(userInfoFrame);
+        uidLineEdit->setObjectName(QString::fromUtf8("uidLineEdit"));
+        QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Maximum);
+        sizePolicy2.setHorizontalStretch(48);
+        sizePolicy2.setVerticalStretch(48);
+        sizePolicy2.setHeightForWidth(uidLineEdit->sizePolicy().hasHeightForWidth());
+        uidLineEdit->setSizePolicy(sizePolicy2);
+        uidLineEdit->setMinimumSize(QSize(0, 48));
+        QFont font;
+        font.setBold(true);
+        font.setItalic(false);
+        font.setWeight(75);
+        uidLineEdit->setFont(font);
+        uidLineEdit->setStyleSheet(QString::fromUtf8("QLineEdit{\n"
+"      border-radius: 5px;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+
+        horizontalLayout_2->addWidget(uidLineEdit);
+
+        horizontalSpacer_4 = new QSpacerItem(20, 20, QSizePolicy::Maximum, QSizePolicy::Minimum);
+
+        horizontalLayout_2->addItem(horizontalSpacer_4);
+
+
+        verticalLayout_3->addLayout(horizontalLayout_2);
+
+        horizontalLayout_4 = new QHBoxLayout();
+        horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4"));
+        nameLabel = new QLabel(userInfoFrame);
+        nameLabel->setObjectName(QString::fromUtf8("nameLabel"));
+        nameLabel->setMinimumSize(QSize(30, 0));
+        nameLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      border-radius: none;\n"
+"      background: none;\n"
+"      font: bold 12px;\n"
+"}"));
+        nameLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
+
+        horizontalLayout_4->addWidget(nameLabel);
+
+        nameLineEdit = new QLineEdit(userInfoFrame);
+        nameLineEdit->setObjectName(QString::fromUtf8("nameLineEdit"));
+        QSizePolicy sizePolicy3(QSizePolicy::Expanding, QSizePolicy::Fixed);
+        sizePolicy3.setHorizontalStretch(0);
+        sizePolicy3.setVerticalStretch(48);
+        sizePolicy3.setHeightForWidth(nameLineEdit->sizePolicy().hasHeightForWidth());
+        nameLineEdit->setSizePolicy(sizePolicy3);
+        nameLineEdit->setMinimumSize(QSize(0, 48));
+        nameLineEdit->setFont(font);
+        nameLineEdit->setLayoutDirection(Qt::LeftToRight);
+        nameLineEdit->setStyleSheet(QString::fromUtf8("QLineEdit{\n"
+"      border-radius: 5px;\n"
+"      min-height: 48px;\n"
+"      font: bold 14px;\n"
+"}"));
+        nameLineEdit->setReadOnly(false);
+
+        horizontalLayout_4->addWidget(nameLineEdit);
+
+        horizontalSpacer_3 = new QSpacerItem(20, 20, QSizePolicy::Maximum, QSizePolicy::Minimum);
+
+        horizontalLayout_4->addItem(horizontalSpacer_3);
+
+        resolveButton = new QPushButton(userInfoFrame);
+        resolveButton->setObjectName(QString::fromUtf8("resolveButton"));
+        resolveButton->setMinimumSize(QSize(80, 40));
+        resolveButton->setMaximumSize(QSize(80, 40));
+        resolveButton->setFont(font);
+        resolveButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 40px;\n"
+"      min-width: 80px;\n"
+"      max-height: 40px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        horizontalLayout_4->addWidget(resolveButton);
+
+
+        verticalLayout_3->addLayout(horizontalLayout_4);
+
+        horizontalLayout_5 = new QHBoxLayout();
+        horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5"));
+        genderLabel = new QLabel(userInfoFrame);
+        genderLabel->setObjectName(QString::fromUtf8("genderLabel"));
+        genderLabel->setMinimumSize(QSize(30, 0));
+        genderLabel->setStyleSheet(QString::fromUtf8("QLabel{\n"
+"      border-radius: none;\n"
+"      background: none;\n"
+"      font: bold 12px;\n"
+"}"));
+        genderLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
+
+        horizontalLayout_5->addWidget(genderLabel);
+
+        genderComboBox = new QComboBox(userInfoFrame);
+        genderComboBox->setObjectName(QString::fromUtf8("genderComboBox"));
+        QSizePolicy sizePolicy4(QSizePolicy::Preferred, QSizePolicy::Fixed);
+        sizePolicy4.setHorizontalStretch(0);
+        sizePolicy4.setVerticalStretch(48);
+        sizePolicy4.setHeightForWidth(genderComboBox->sizePolicy().hasHeightForWidth());
+        genderComboBox->setSizePolicy(sizePolicy4);
+        genderComboBox->setMinimumSize(QSize(110, 52));
+        genderComboBox->setFont(font);
+        genderComboBox->setAutoFillBackground(false);
+        genderComboBox->setStyleSheet(QString::fromUtf8("QComboBox {\n"
+"      min-height: 48px;\n"
+"      font: bold 16px;\n"
+"}\n"
+""));
+
+        horizontalLayout_5->addWidget(genderComboBox);
+
+        horizontalSpacer_6 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        horizontalLayout_5->addItem(horizontalSpacer_6);
+
+
+        verticalLayout_3->addLayout(horizontalLayout_5);
+
+        verticalSpacer_3 = new QSpacerItem(327, 35, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout_3->addItem(verticalSpacer_3);
+
+
+        horizontalLayout->addLayout(verticalLayout_3);
+
+        verticalLayout_2 = new QVBoxLayout();
+        verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
+        verticalSpacer_2 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout_2->addItem(verticalSpacer_2);
+
+        okButton = new QPushButton(userInfoFrame);
+        okButton->setObjectName(QString::fromUtf8("okButton"));
+        okButton->setMinimumSize(QSize(80, 80));
+        okButton->setStyleSheet(QString::fromUtf8("QPushButton{\n"
+"      font: bold 16px;\n"
+"      border-radius: 5px;\n"
+"      min-height: 80px;\n"
+"      min-width: 80px;\n"
+"      max-height: 80px;\n"
+"      max-width: 80px;\n"
+"}"));
+
+        verticalLayout_2->addWidget(okButton);
+
+
+        horizontalLayout->addLayout(verticalLayout_2);
+
+
+        verticalLayout_5->addWidget(userInfoFrame);
+
+
+        retranslateUi(TocUserInfoWidgetClass);
+
+        genderComboBox->setCurrentIndex(-1);
+
+
+        QMetaObject::connectSlotsByName(TocUserInfoWidgetClass);
+    } // setupUi
+
+    void retranslateUi(QWidget *TocUserInfoWidgetClass)
+    {
+        TocUserInfoWidgetClass->setWindowTitle(QApplication::translate("TocUserInfoWidgetClass", "Form", 0, QApplication::UnicodeUTF8));
+        pictureButton->setText(QString());
+        cancelButton->setText(QApplication::translate("TocUserInfoWidgetClass", "Cancel", 0, QApplication::UnicodeUTF8));
+        uidLabel->setText(QApplication::translate("TocUserInfoWidgetClass", "User id:", 0, QApplication::UnicodeUTF8));
+        uidLineEdit->setText(QString());
+        nameLabel->setText(QApplication::translate("TocUserInfoWidgetClass", "Name:", 0, QApplication::UnicodeUTF8));
+        nameLineEdit->setText(QString());
+        resolveButton->setText(QApplication::translate("TocUserInfoWidgetClass", "Resolve", 0, QApplication::UnicodeUTF8));
+        genderLabel->setText(QApplication::translate("TocUserInfoWidgetClass", "Gender:", 0, QApplication::UnicodeUTF8));
+        okButton->setText(QApplication::translate("TocUserInfoWidgetClass", "OK", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class TocUserInfoWidgetClass: public Ui_TocUserInfoWidgetClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_TOCUSERINFOWIDGET_H
diff --git a/config b/config
new file mode 100644 (file)
index 0000000..07d359d
--- /dev/null
+++ b/config
@@ -0,0 +1,4 @@
+[core]
+       repositoryformatversion = 0
+       filemode = true
+       bare = true
diff --git a/configure b/configure
new file mode 100644 (file)
index 0000000..1bb6e85
--- /dev/null
+++ b/configure
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+revision=`LC_ALL=C svn info | awk '/^Revision: / {printf "%d\n", $2}'`
+
+target=tietoopcom
+
+sed -e "s/@REVISION@/${revision}/g" \
+        < "include/version.in" > "include/version.h"
+
+sed -e "s/@TARGET@/${target}/g" \
+        < "include/version.in" > "include/version.h"
+       
+qmake
+cd src
+qmake
+cd ..
+
+echo Completed at revision ${revision}
diff --git a/configure-stamp b/configure-stamp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/data/com.tieto.tietoopcom.service b/data/com.tieto.tietoopcom.service
new file mode 100644 (file)
index 0000000..fa159b5
--- /dev/null
@@ -0,0 +1,4 @@
+# Service description file
+[D-BUS Service]
+Name=com.tieto.tietoopcom
+Exec=/usr/bin/tietoopcom 
diff --git a/data/copyright b/data/copyright
new file mode 100644 (file)
index 0000000..9f70f45
--- /dev/null
@@ -0,0 +1,30 @@
+This package was debianized by Konrad Ciekot <konrad.ciekot@tieto.com> on
+Wed,  22 Oct 2008 10:57:00 +0100.
+
+
+Tieto Open Communicator
+Copyright (c) 2010, Tieto Corporation
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+       Redistributions of source code must retain the above copyright notice,
+       this list of conditions and the following disclaimer.
+       Redistributions in binary form must reproduce the above copyright notice,
+       this list of conditions and the following disclaimer in the documentation
+       and/or other materials provided with the distribution.
+       Neither the name of the Tieto Corporation nor the names of its contributors 
+       may be used to endorse or promote products derived from this software without
+       specific prior written permission.
+       
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
diff --git a/data/emoticons/face-angel24x24.png b/data/emoticons/face-angel24x24.png
new file mode 100644 (file)
index 0000000..1163195
Binary files /dev/null and b/data/emoticons/face-angel24x24.png differ
diff --git a/data/emoticons/face-angel32x32.png b/data/emoticons/face-angel32x32.png
new file mode 100644 (file)
index 0000000..8604e09
Binary files /dev/null and b/data/emoticons/face-angel32x32.png differ
diff --git a/data/emoticons/face-crying24x24.png b/data/emoticons/face-crying24x24.png
new file mode 100644 (file)
index 0000000..609020f
Binary files /dev/null and b/data/emoticons/face-crying24x24.png differ
diff --git a/data/emoticons/face-crying32x32.png b/data/emoticons/face-crying32x32.png
new file mode 100644 (file)
index 0000000..6599fe7
Binary files /dev/null and b/data/emoticons/face-crying32x32.png differ
diff --git a/data/emoticons/face-devilish24x24.png b/data/emoticons/face-devilish24x24.png
new file mode 100644 (file)
index 0000000..9abf970
Binary files /dev/null and b/data/emoticons/face-devilish24x24.png differ
diff --git a/data/emoticons/face-devilish32x32.png b/data/emoticons/face-devilish32x32.png
new file mode 100644 (file)
index 0000000..eaeacc2
Binary files /dev/null and b/data/emoticons/face-devilish32x32.png differ
diff --git a/data/emoticons/face-glasses24x24.png b/data/emoticons/face-glasses24x24.png
new file mode 100644 (file)
index 0000000..a3e736d
Binary files /dev/null and b/data/emoticons/face-glasses24x24.png differ
diff --git a/data/emoticons/face-glasses32x32.png b/data/emoticons/face-glasses32x32.png
new file mode 100644 (file)
index 0000000..316405c
Binary files /dev/null and b/data/emoticons/face-glasses32x32.png differ
diff --git a/data/emoticons/face-grin24x24.png b/data/emoticons/face-grin24x24.png
new file mode 100644 (file)
index 0000000..39e53dd
Binary files /dev/null and b/data/emoticons/face-grin24x24.png differ
diff --git a/data/emoticons/face-grin32x32.png b/data/emoticons/face-grin32x32.png
new file mode 100644 (file)
index 0000000..6494af3
Binary files /dev/null and b/data/emoticons/face-grin32x32.png differ
diff --git a/data/emoticons/face-kiss24x24.png b/data/emoticons/face-kiss24x24.png
new file mode 100644 (file)
index 0000000..3d43359
Binary files /dev/null and b/data/emoticons/face-kiss24x24.png differ
diff --git a/data/emoticons/face-kiss32x32.png b/data/emoticons/face-kiss32x32.png
new file mode 100644 (file)
index 0000000..c746a81
Binary files /dev/null and b/data/emoticons/face-kiss32x32.png differ
diff --git a/data/emoticons/face-monkey24x24.png b/data/emoticons/face-monkey24x24.png
new file mode 100644 (file)
index 0000000..86e7b00
Binary files /dev/null and b/data/emoticons/face-monkey24x24.png differ
diff --git a/data/emoticons/face-monkey32x32.png b/data/emoticons/face-monkey32x32.png
new file mode 100644 (file)
index 0000000..d95f91d
Binary files /dev/null and b/data/emoticons/face-monkey32x32.png differ
diff --git a/data/emoticons/face-plain24x24.png b/data/emoticons/face-plain24x24.png
new file mode 100644 (file)
index 0000000..64c8b10
Binary files /dev/null and b/data/emoticons/face-plain24x24.png differ
diff --git a/data/emoticons/face-plain32x32.png b/data/emoticons/face-plain32x32.png
new file mode 100644 (file)
index 0000000..9e884b1
Binary files /dev/null and b/data/emoticons/face-plain32x32.png differ
diff --git a/data/emoticons/face-sad24x24.png b/data/emoticons/face-sad24x24.png
new file mode 100644 (file)
index 0000000..bd9b495
Binary files /dev/null and b/data/emoticons/face-sad24x24.png differ
diff --git a/data/emoticons/face-sad32x32.png b/data/emoticons/face-sad32x32.png
new file mode 100644 (file)
index 0000000..d953d88
Binary files /dev/null and b/data/emoticons/face-sad32x32.png differ
diff --git a/data/emoticons/face-smile-big24x24.png b/data/emoticons/face-smile-big24x24.png
new file mode 100644 (file)
index 0000000..2026d20
Binary files /dev/null and b/data/emoticons/face-smile-big24x24.png differ
diff --git a/data/emoticons/face-smile-big32x32.png b/data/emoticons/face-smile-big32x32.png
new file mode 100644 (file)
index 0000000..5d3cfc2
Binary files /dev/null and b/data/emoticons/face-smile-big32x32.png differ
diff --git a/data/emoticons/face-smile24x24.png b/data/emoticons/face-smile24x24.png
new file mode 100644 (file)
index 0000000..7cce2a0
Binary files /dev/null and b/data/emoticons/face-smile24x24.png differ
diff --git a/data/emoticons/face-smile32x32.png b/data/emoticons/face-smile32x32.png
new file mode 100644 (file)
index 0000000..b2fb1d1
Binary files /dev/null and b/data/emoticons/face-smile32x32.png differ
diff --git a/data/emoticons/face-surprise24x24.png b/data/emoticons/face-surprise24x24.png
new file mode 100644 (file)
index 0000000..eb887f4
Binary files /dev/null and b/data/emoticons/face-surprise24x24.png differ
diff --git a/data/emoticons/face-surprise32x32.png b/data/emoticons/face-surprise32x32.png
new file mode 100644 (file)
index 0000000..c30cefe
Binary files /dev/null and b/data/emoticons/face-surprise32x32.png differ
diff --git a/data/emoticons/face-wink24x24.png b/data/emoticons/face-wink24x24.png
new file mode 100644 (file)
index 0000000..00a44a4
Binary files /dev/null and b/data/emoticons/face-wink24x24.png differ
diff --git a/data/emoticons/face-wink32x32.png b/data/emoticons/face-wink32x32.png
new file mode 100644 (file)
index 0000000..4923c12
Binary files /dev/null and b/data/emoticons/face-wink32x32.png differ
diff --git a/data/stylesheets/default.qss b/data/stylesheets/default.qss
new file mode 100644 (file)
index 0000000..05ad448
--- /dev/null
@@ -0,0 +1,97 @@
+QFrame { 
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff);
+}
+
+QComboBox {
+       color: black;
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff);
+}
+
+QLineEdit {
+       color: black;
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff);
+}
+
+QPushButton {
+       border: 5px solid darkgrey;
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #a00, stop: 0.55 #b00, stop: 0.56 #b00, stop: 1 #f00);
+       color: white;
+}
+
+QPushButton#contactsButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa);
+       color: white;
+}
+
+QPushButton#settingsButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa);
+       color: white;
+}
+
+QPushButton#statusAreaButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa);
+       color: white;
+}
+
+QLabel#statusAreaLabel:enabled {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa);
+       color: white;
+}
+
+QLabel#statusAreaLabel:!enabled {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #a00, stop: 0.55 #b00, stop: 0.56 #b00, stop: 1 #f00);
+       color: white;
+}
+
+QPushButton#scrollUpButton:!enabled {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff);
+       color: white;
+}
+
+QPushButton#scrollDownButton:!enabled {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff);
+       color: white;
+}
+
+QMenu::item {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #a00, stop: 0.55 #b00, stop: 0.56 #b00, stop: 1 #f00);
+       color: white;
+}
+
+QMenu::separator {
+       background: grey;
+}
+
+QMessageBox {
+       background: white;
+}
+
+QMessageBox > QLabel {
+       background: none;
+}
+
+QListView::item:selected:active {
+       background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #a00, stop: 0.55 #b00, stop: 0.56 #b00, stop: 1 #f00);
+}
+
+QListView::item:selected:!active {
+       background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #a00, stop: 0.55 #b00, stop: 0.56 #b00, stop: 1 #f00);
+}
+
+TocContactListWidget {
+       qproperty-logoColor: "red";
+}
diff --git a/data/stylesheets/my.qss b/data/stylesheets/my.qss
new file mode 100644 (file)
index 0000000..8265e69
--- /dev/null
@@ -0,0 +1,69 @@
+QFrame { 
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0, 
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff); 
+} 
+QComboBox { 
+       color: black; 
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0, 
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff); 
+}
+QLineEdit {
+       color: black;
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff); 
+}
+QPushButton {
+       border: 5px solid darkgrey;
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #0a0, stop: 0.55 #0b0, stop: 0.56 #0b0, stop: 1 #0f0); 
+       color: white;
+}
+QPushButton#contactsButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa); 
+       color: white;
+}
+QPushButton#settingsButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa); 
+       color: white;
+}
+QPushButton#statusAreaButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa); 
+       color: white;
+}
+QLabel#statusAreaLabel[checked="true"] {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa); 
+       color: white;
+}
+TecMainToolbar > QLabel {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #0a0, stop: 0.55 #0b0, stop: 0.56 #0b0, stop: 1 #0f0); 
+       color: white;
+}
+QMenu::item {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #0a0, stop: 0.55 #0b0, stop: 0.56 #0b0, stop: 1 #0f0); 
+       color: white;
+}
+QListView::item:selected:active {
+       background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #0b0, stop: 0.55 #0b0, stop: 0.56 #0b0, stop: 1 #0f0);
+}
+QListView::item:selected:!active {
+       background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #0a0, stop: 0.55 #0b0, stop: 0.56 #0b0, stop: 1 #0f0);
+}
+QMessageBox {
+       background: white;
+}
+
+QMessageBox > QLabel {
+       background: none;
+}
+
+TocContactListWidget {
+       qproperty-logoColor: "green";
+}
\ No newline at end of file
diff --git a/data/tietoopcom.desktop b/data/tietoopcom.desktop
new file mode 100644 (file)
index 0000000..c0bfd08
--- /dev/null
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=0.5.5
+Type=Application
+Name=Tieto Open Communicator
+Comment=Realtime communicator for Maemo/Telepathy
+Exec=/usr/bin/tietoopcom
+Icon=jabber
+X-Icon-path=/usr/share/pixmaps/
+X-Maemo-Category=Main
+X-Window-Icon=jabber
+X-Window-Icon-Dimmed=jabber
+X-Osso-Service=com.tieto.tietoopcom
diff --git a/debian/changelog b/debian/changelog
new file mode 100644 (file)
index 0000000..7cc7b32
--- /dev/null
@@ -0,0 +1,14 @@
+tietoopcom (0.5.5-1) stable; urgency=low
+
+  * Added DBus integration
+
+ -- Darknock <konrad.ciekot@tieto.com>  Fri,  25 Jun 2010 15:48:00 +0100
+
+tietoopcom (0.5.4-1) stable; urgency=low
+
+  * Changed framework to Freemantle
+  * Changed name to Tieto Open Communicator (tietoopcom)
+  * Added Tieto logo
+    - color can be changed from style sheet
+
+ -- Darknock <konrad.ciekot@tieto.com>  Fri,  25 Jun 2010 12:43:00 +0100
diff --git a/debian/changelog_old b/debian/changelog_old
new file mode 100644 (file)
index 0000000..8736e92
--- /dev/null
@@ -0,0 +1,244 @@
+tietoopcom (0.5.3-1) stable; urgency=low
+
+  * Changed framework to Freemantle
+  * Changed name to Tieto Open Communicator (tietoopcom)
+
+ -- Darknock <konrad.ciekot@tieto.com>  Fri,  11 Jun 2010 17:26:00 +0100
+
+tec (0.5.256-1) stable; urgency=low
+
+  * Added scroll widget to active sessions menu
+
+ -- Darknock <konrad.ciekot@tieto.com>  Tue,  17 Mar 2008 17:31:00 +0100
+
+tec (0.5.247-2) stable; urgency=low
+
+  * Code cleanup
+
+ -- Darknock <konrad.ciekot@tieto.com>  Fri,  13 Mar 2008 13:05:00 +0100
+
+tec (0.5.244-1) stable; urgency=low
+
+  * Added Account creation
+
+ -- Darknock <konrad.ciekot@tieto.com>  Thu,  12 Mar 2008 19:35:00 +0100
+
+tec (0.5.242-1) stable; urgency=low
+
+  * Added ability to change between themes
+  * Fixed a LOT of bugs
+  * Added About box
+
+ -- Darknock <konrad.ciekot@tieto.com>  Thu,  12 Mar 2008 16:32:00 +0100
+
+tec (0.5.231-1) stable; urgency=low
+
+  * Fixed layouts to be more consistent with each other
+  * Expanded the spaces between items on contact list
+  * Added style sheet to the Context Menu
+
+ -- Darknock <konrad.ciekot@tieto.com>  Tue,  10 Mar 2008 15:29:00 +0100
+
+tec (0.5.228-1) stable; urgency=low
+
+  * code review and bug fixing release
+
+ -- Darknock <konrad.ciekot@tieto.com>  Mon,  9 Mar 2008 15:22:00 +0100
+
+tec (0.5.212-1) stable; urgency=low
+
+  * bug fixing release
+
+ -- Darknock <konrad.ciekot@tieto.com>  Tue,  4 Mar 2008 12:43:00 +0100
+
+tec (0.5.210-1) unstable; urgency=low
+
+  * Ok changed to Apply in Themes view
+  * Added saving of pending lists to the settings file
+       - fixed a problem with disappearing
+       - and respawning contacts
+  * a lot of bug fixes
+
+ -- Darknock <konrad.ciekot@tieto.com>  Tue,  4 Mar 2008 10:13:00 +0100
+
+tec (0.5.207-1) unstable; urgency=low
+
+  * Fixed error messages texts
+  * Added Literal sorting of contact list
+  * Authorization is now always accepted
+  * Rebuilt themes view
+
+ -- Darknock <konrad.ciekot@tieto.com>  Tue,  3 Mar 2008 18:15:00 +0100
+
+tec (0.5.205-1) unstable; urgency=low
+
+  * Added confirmation dialog when removing contact
+  * Added Style sheet for QMessageBox
+  * Descriptive labels added to General Settings view.
+       - Alphabetical sorting always enabled
+       - Authorization always accepted
+  * Added Message Delivery error handling
+  * Changed formatting of messages and notifications
+  * Message sending on enter
+  * Connecting and disconnecting should be more stable
+  * Added error messages handling on connection faults
+
+ -- Darknock <konrad.ciekot@tieto.com>  Tue,  3 Mar 2008 15:39:00 +0100
+
+tec (0.5.197-1) unstable; urgency=low
+
+  * Settings layout adjustments
+  * TecChatWidget improvements
+  * TecUserInfoWidget layout redesign
+  * IconProvider + TecContactList and TecUserInfoWidget refactoring
+
+ -- Darknock <konrad.ciekot@tieto.com>  Mon,  2 Mar 2008 15:00:00 +0100
+
+tec (0.5.185-1) unstable; urgency=low
+
+  * Rebuilt TecSettingsWidget
+  * Rebuilt TecGeneralSettingsWidget
+  * Fixed general settings edition and saving
+
+ -- Darknock <konrad.ciekot@tieto.com>  Thu,  26 Feb 2008 18:00:00 +0100
+
+tec (0.5.184-1) unstable; urgency=low
+
+  * Rebuilt TecAccountSettingsWidget
+  * Fixed account edition and saving
+  * Fixed highlighting of "tabs"
+  * Added support for Google Talk (buggy)
+
+ -- Darknock <konrad.ciekot@tieto.com>  Thu,  26 Feb 2008 11:55:00 +0100
+
+tec (0.5.182-1) unstable; urgency=low
+
+  * Highlighting of selected "tabs" added
+
+ -- Darknock <konrad.ciekot@tieto.com>  Wed,  25 Feb 2008 9:53:00 +0100
+
+tec (0.5.181-1) unstable; urgency=low
+
+  * Added status support
+  * `TecContact` referenced code re-factoring
+  * Few bug fixes
+  * Clearing of statuses in Offline status 
+
+ -- Darknock <konrad.ciekot@tieto.com>  Tue,  24 Feb 2008 14:44:00 +0100
+
+tec (0.5.177-1) unstable; urgency=low
+
+  * Added sending of messages
+  * Offline status now really disconnects
+
+ -- Darknock <konrad.ciekot@tieto.com>  Tue,  24 Feb 2008 11:26:00 +0100
+
+tec (0.5.176-1) unstable; urgency=low
+
+  * Finished Contact List synchronization
+  * Settings are now properly saved
+
+ -- Darknock <konrad.ciekot@tieto.com>  Mon,  23 Feb 2008 17:54:00 +0100
+
+tec (0.5.169-1) unstable; urgency=low
+
+  * Added Contact List synchronization
+  * You can now add, edit and remove contact from contact list 
+  * Sending of messages
+
+ -- Darknock <konrad.ciekot@tieto.com>  Fri,  20 Feb 2008 9:27:00 +0100
+
+tec (0.5.162-1) unstable; urgency=low
+
+  * Added channel handling support
+
+ -- Darknock <konrad.ciekot@tieto.com>  Fri,  19 Dec 2008 12:45:00 +0100
+
+tec (0.5.158-1) unstable; urgency=low
+
+  * Minor fixes in TecAccountSettingsWidget
+  * Saving settings to QSettings
+       - without contact list support
+
+ -- Darknock <konrad.ciekot@tieto.com>  Fri,  19 Dec 2008 9:32:00 +0100
+
+tec (0.5.154-1) unstable; urgency=low
+
+  * Fixes in TecMainToolbar
+       - Divided labelButton into statusAreaButton and Label
+
+ -- Darknock <konrad.ciekot@tieto.com>  Wed,  17 Dec 2008 16:32:00 +0100
+
+tec (0.5.153-1) unstable; urgency=low
+
+  * Added FirstTimeUse view
+  * Implemented status handling
+  * Fixes in TecMainToolbar
+       - Changed icons
+       - Added additional statuses
+       - Fixed disappearing Active Sessions Menu
+
+ -- Darknock <konrad.ciekot@tieto.com>  Wed,  17 Dec 2008 14:52:00 +0100
+
+tec (0.5.139-1) unstable; urgency=low
+
+  * Changed account settings view
+  * Added partial implementation of TecSettings
+  * Started implementing TecEngine methods
+
+ -- Darknock <konrad.ciekot@tieto.com>  Tue,  16 Dec 2008 16:43:00 +0100
+
+tec (0.5.130-1) unstable; urgency=low
+
+  * Fixed font metrics setting
+
+ -- Darknock <konrad.ciekot@tieto.com>  Fri,  12 Dec 2008 13:18:00 +0100
+
+tec (0.5.126-1) unstable; urgency=low
+
+  * Extracted base abstract class from TecMainWindow
+       - now one can inherit from the base class to implement his own UI
+
+ -- Darknock <konrad.ciekot@tieto.com>  Fri,  12 Dec 2008 12:43:00 +0100
+
+tec (0.5.124-1) unstable; urgency=low
+
+  * Fixed some bugs
+  * Added abstract class for TecEngine
+
+ -- Darknock <konrad.ciekot@tieto.com>  Fri,  12 Dec 2008 12:00:00 +0100
+
+tec (0.5.122-1) unstable; urgency=low
+
+  * Refactored source code to be more "Qt"
+
+ -- Darknock <konrad.ciekot@tieto.com>  Thu,  11 Dec 2008 13:18:00 +0100
+
+tec (0.5.115-1) unstable; urgency=low
+
+  * Changed icons in resources
+  * Changed default theme
+  * Finished style sheets
+  * Some fixes to the Ui
+
+ -- Darknock <konrad.ciekot@tietoenator.com>  Tue,  02 Dec 2008 09:15:00 +0100
+
+tec (0.5.109-1) unstable; urgency=low
+
+  * Finished implementation of GUI mechanics
+  * Finished some of the style sheets
+
+ -- Darknock <konrad.ciekot@tietoenator.com>  Fri,  26 Nov 2008 18:10:00 +0100
+
+tec (0.5.079-1) unstable; urgency=low
+
+  * Implemented most of the classes
+
+ -- Darknock <konrad.ciekot@tietoenator.com>  Wed,  26 Nov 2008 18:10:00 +0100 
+
+tec (0.5.036-1) unstable; urgency=low
+
+  * Initial release (Closes: #nnnn)  <nnnn is the bug number of your ITP>
+
+ -- Darknock <konrad.ciekot@tietoenator.com>  Tue,  18 Nov 2008 9:32:00 +0100 
+
diff --git a/debian/compat b/debian/compat
new file mode 100644 (file)
index 0000000..7ed6ff8
--- /dev/null
@@ -0,0 +1 @@
+5
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..c223bde
--- /dev/null
@@ -0,0 +1,12 @@
+Source: tietoopcom
+Section: user/network
+Priority: extra
+Maintainer: Konrad Ciekot <konrad.ciekot@tieto.com>
+Build-Depends: libqt4-dev, cdbs, debhelper (>= 5), libqttapioca-dev (>= 0.1.0)
+Standards-Version: 3.7.2
+
+Package: tietoopcom
+Architecture: any
+XB-Maemo-Display-Name: Tieto Open Communicator
+Depends: libqt4-gui (>= 4.6.2~git20100401-0maemo1+0m5), libqt4-core (>= 4.6.2~git20100401-0maemo1+0m5), libqt4-dbus (>= 4.6.2~git20100401-0maemo1+0m5), libqttapioca0 (>= 0.1.0)
+Description: Client for the Telepathy communication framework.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..73b8295
--- /dev/null
@@ -0,0 +1,28 @@
+This package was debianized by Konrad Ciekot <konrad.ciekot@tieto.com> on
+Wed,  22 Oct 2008 10:57:00 +0100.
+
+Copyright (c) 2010, Tieto Corporation
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+       Redistributions of source code must retain the above copyright notice,
+       this list of conditions and the following disclaimer.
+       Redistributions in binary form must reproduce the above copyright notice,
+       this list of conditions and the following disclaimer in the documentation
+       and/or other materials provided with the distribution.
+       Neither the name of the Tieto Corporation nor the names of its contributors 
+       may be used to endorse or promote products derived from this software without
+       specific prior written permission.
+       
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
diff --git a/debian/files b/debian/files
new file mode 100644 (file)
index 0000000..8a15a75
--- /dev/null
@@ -0,0 +1 @@
+tietoopcom_0.5.5-1_i386.deb user/network extra
diff --git a/debian/rules b/debian/rules
new file mode 100644 (file)
index 0000000..cb109d2
--- /dev/null
@@ -0,0 +1,105 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+
+
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+       CFLAGS += -O0
+else
+       CFLAGS += -O2
+endif
+
+# shared library versions, option 1
+version=2.0.5
+major=2
+# option 2, assuming the library is created as src/.libs/libfoo.so.2.0.5 or so
+#version=`ls src/.libs/lib*.so.* | \
+# awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
+#major=`ls src/.libs/lib*.so.* | \
+# awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`
+
+configure: configure-stamp
+configure-stamp:
+       dh_testdir
+       # Add here commands to configure the package.
+       ./configure
+       touch configure-stamp
+
+
+build: build-stamp
+build-stamp: configure-stamp 
+       dh_testdir
+
+       # Add here commands to compile the package.
+       $(MAKE) release
+
+       touch $@
+
+clean:
+       dh_testdir
+       dh_testroot
+       rm -f build-stamp configure-stamp
+
+       # Add here commands to clean up after the build process.
+       -$(MAKE) distclean
+
+       dh_clean 
+
+install: build
+       dh_testdir
+       dh_testroot
+       dh_clean -k 
+       dh_installdirs
+
+       # Add here commands to install the package into debian/tmp
+       $(MAKE) INSTALL_ROOT=$(CURDIR)/debian/tmp install
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+       dh_testdir
+       dh_testroot
+#      dh_installchangelogs 
+#      dh_installdocs
+#      dh_installexamples
+       dh_install --sourcedir=debian/tmp
+#      dh_installmenu
+#      dh_installdebconf       
+#      dh_installlogrotate
+#      dh_installemacsen
+#      dh_installpam
+#      dh_installmime
+#      dh_installinit
+#      dh_installcron
+#      dh_installinfo
+#      dh_installman
+       dh_link
+       dh_strip
+       dh_compress
+       dh_fixperms
+#      dh_perl
+#      dh_python
+#      dh_makeshlibs
+       dh_installdeb
+       dh_shlibdeps
+       dh_gencontrol
+       dh_md5sums
+       dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
diff --git a/debian/tietoopcom.install b/debian/tietoopcom.install
new file mode 100644 (file)
index 0000000..87deca1
--- /dev/null
@@ -0,0 +1,2 @@
+usr/bin/*
+usr/share/*
diff --git a/debian/tietoopcom.substvars b/debian/tietoopcom.substvars
new file mode 100644 (file)
index 0000000..b0c1d5f
--- /dev/null
@@ -0,0 +1 @@
+shlibs:Depends=libc6 (>= 2.5.0-1), libgcc1 (>= 1:4.2.1), libqt4-core (>= 4.6.2~git20100401), libqt4-dbus (>= 4.6.2~git20100401), libqt4-gui (>= 4.6.2~git20100401), libqt4-xml (>= 4.6.2~git20100401), libstdc++6 (>= 4.2.1)
diff --git a/debian/tietoopcom/DEBIAN/control b/debian/tietoopcom/DEBIAN/control
new file mode 100644 (file)
index 0000000..33fdb09
--- /dev/null
@@ -0,0 +1,10 @@
+Package: tietoopcom
+Version: 0.5.5-1
+Section: user/network
+Priority: extra
+Architecture: i386
+Depends: libqt4-gui (>= 4.6.2~git20100401-0maemo1+0m5), libqt4-core (>= 4.6.2~git20100401-0maemo1+0m5), libqt4-dbus (>= 4.6.2~git20100401-0maemo1+0m5), libqttapioca0 (>= 0.1.0)
+Installed-Size: 608
+Maintainer: Konrad Ciekot <konrad.ciekot@tieto.com>
+Description: Client for the Telepathy communication framework.
+Maemo-Display-Name: Tieto Open Communicator
diff --git a/debian/tietoopcom/DEBIAN/md5sums b/debian/tietoopcom/DEBIAN/md5sums
new file mode 100644 (file)
index 0000000..a6eb9b4
--- /dev/null
@@ -0,0 +1,32 @@
+2201a24c4cca9145980248592e9fae1e  usr/bin/tietoopcom
+774e5143da1b3d3c233d873f56b0c36a  usr/share/applications/hildon/tietoopcom.desktop
+9778117aea9792898bad6a18311236fb  usr/share/tietoopcom/licence/copyright
+bef9900a21b15d087f9308ed71871081  usr/share/tietoopcom/stylesheets/default.qss
+204db55de012bbc14aeb053c2b80c9bf  usr/share/tietoopcom/stylesheets/my.qss
+610883ccf2039334b16df37e2c370944  usr/share/tietoopcom/emoticons/face-kiss32x32.png
+e313d30b3faa415224b6f5bde47aca97  usr/share/tietoopcom/emoticons/face-glasses24x24.png
+d0c28e0763e913e7a2ca72134e29bb97  usr/share/tietoopcom/emoticons/face-glasses32x32.png
+a28b8e63383ff3fa8cae34a51afc8b6b  usr/share/tietoopcom/emoticons/face-surprise32x32.png
+126a3f2379a264508de3433dbe40bf38  usr/share/tietoopcom/emoticons/face-surprise24x24.png
+476ad893421bb70a91b41a9d949636d4  usr/share/tietoopcom/emoticons/face-monkey32x32.png
+2f7ccdab0208b00fdcce723dc9ea45bb  usr/share/tietoopcom/emoticons/face-wink32x32.png
+cfdf854bb5f406446a62b890428728bb  usr/share/tietoopcom/emoticons/face-angel24x24.png
+56bb43564b5fa19b19439a45ff14140b  usr/share/tietoopcom/emoticons/face-smile32x32.png
+e81630eabeb1021e4da1fa3aee532393  usr/share/tietoopcom/emoticons/face-sad32x32.png
+f623839d7576846950ebbc411cf60901  usr/share/tietoopcom/emoticons/face-crying32x32.png
+f57fe3c810fc6ab0a356b92b2a20a994  usr/share/tietoopcom/emoticons/face-smile-big24x24.png
+846c8b9a0094fe5e2285585f019616c2  usr/share/tietoopcom/emoticons/face-plain32x32.png
+899b4c17a59fa2293d46c100f00c5afd  usr/share/tietoopcom/emoticons/face-smile-big32x32.png
+0882a65810ac487058d7ae6a129d6ae7  usr/share/tietoopcom/emoticons/face-grin24x24.png
+e1b8256e837f593c9f9f8a39a16cf841  usr/share/tietoopcom/emoticons/face-plain24x24.png
+387eb9b031e76bb238da7b583edd12bd  usr/share/tietoopcom/emoticons/face-angel32x32.png
+1ed3bb43e8dfc6aedb5ee25e615db5cf  usr/share/tietoopcom/emoticons/face-wink24x24.png
+665c60c4c90ba626d47de8b163a8cfd3  usr/share/tietoopcom/emoticons/face-devilish24x24.png
+1187404feabd05c78e5a796527c62521  usr/share/tietoopcom/emoticons/face-monkey24x24.png
+b683df0b94b5cb353774654056b22366  usr/share/tietoopcom/emoticons/face-grin32x32.png
+a30955a7d0319dd4f0c5468a3876e930  usr/share/tietoopcom/emoticons/face-smile24x24.png
+161c423b048b3859408da864e69ed637  usr/share/tietoopcom/emoticons/face-sad24x24.png
+0bf570cb454ffde04c434a5889cb80b7  usr/share/tietoopcom/emoticons/face-kiss24x24.png
+7b043e8ad9055fb809304d1b3be693d1  usr/share/tietoopcom/emoticons/face-devilish32x32.png
+a0ac6652e80f503357354f4b52dc0cb6  usr/share/tietoopcom/emoticons/face-crying24x24.png
+984b677d70a11ab34d14641e3459f853  usr/share/dbus-1/services/com.tieto.tietoopcom.service
diff --git a/debian/tietoopcom/usr/bin/tietoopcom b/debian/tietoopcom/usr/bin/tietoopcom
new file mode 100644 (file)
index 0000000..c3d1f89
Binary files /dev/null and b/debian/tietoopcom/usr/bin/tietoopcom differ
diff --git a/debian/tietoopcom/usr/share/applications/hildon/tietoopcom.desktop b/debian/tietoopcom/usr/share/applications/hildon/tietoopcom.desktop
new file mode 100644 (file)
index 0000000..c0bfd08
--- /dev/null
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=0.5.5
+Type=Application
+Name=Tieto Open Communicator
+Comment=Realtime communicator for Maemo/Telepathy
+Exec=/usr/bin/tietoopcom
+Icon=jabber
+X-Icon-path=/usr/share/pixmaps/
+X-Maemo-Category=Main
+X-Window-Icon=jabber
+X-Window-Icon-Dimmed=jabber
+X-Osso-Service=com.tieto.tietoopcom
diff --git a/debian/tietoopcom/usr/share/dbus-1/services/com.tieto.tietoopcom.service b/debian/tietoopcom/usr/share/dbus-1/services/com.tieto.tietoopcom.service
new file mode 100644 (file)
index 0000000..fa159b5
--- /dev/null
@@ -0,0 +1,4 @@
+# Service description file
+[D-BUS Service]
+Name=com.tieto.tietoopcom
+Exec=/usr/bin/tietoopcom 
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-angel24x24.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-angel24x24.png
new file mode 100644 (file)
index 0000000..1163195
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-angel24x24.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-angel32x32.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-angel32x32.png
new file mode 100644 (file)
index 0000000..8604e09
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-angel32x32.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-crying24x24.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-crying24x24.png
new file mode 100644 (file)
index 0000000..609020f
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-crying24x24.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-crying32x32.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-crying32x32.png
new file mode 100644 (file)
index 0000000..6599fe7
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-crying32x32.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-devilish24x24.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-devilish24x24.png
new file mode 100644 (file)
index 0000000..9abf970
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-devilish24x24.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-devilish32x32.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-devilish32x32.png
new file mode 100644 (file)
index 0000000..eaeacc2
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-devilish32x32.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-glasses24x24.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-glasses24x24.png
new file mode 100644 (file)
index 0000000..a3e736d
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-glasses24x24.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-glasses32x32.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-glasses32x32.png
new file mode 100644 (file)
index 0000000..316405c
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-glasses32x32.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-grin24x24.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-grin24x24.png
new file mode 100644 (file)
index 0000000..39e53dd
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-grin24x24.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-grin32x32.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-grin32x32.png
new file mode 100644 (file)
index 0000000..6494af3
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-grin32x32.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-kiss24x24.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-kiss24x24.png
new file mode 100644 (file)
index 0000000..3d43359
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-kiss24x24.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-kiss32x32.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-kiss32x32.png
new file mode 100644 (file)
index 0000000..c746a81
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-kiss32x32.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-monkey24x24.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-monkey24x24.png
new file mode 100644 (file)
index 0000000..86e7b00
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-monkey24x24.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-monkey32x32.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-monkey32x32.png
new file mode 100644 (file)
index 0000000..d95f91d
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-monkey32x32.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-plain24x24.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-plain24x24.png
new file mode 100644 (file)
index 0000000..64c8b10
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-plain24x24.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-plain32x32.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-plain32x32.png
new file mode 100644 (file)
index 0000000..9e884b1
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-plain32x32.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-sad24x24.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-sad24x24.png
new file mode 100644 (file)
index 0000000..bd9b495
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-sad24x24.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-sad32x32.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-sad32x32.png
new file mode 100644 (file)
index 0000000..d953d88
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-sad32x32.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile-big24x24.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile-big24x24.png
new file mode 100644 (file)
index 0000000..2026d20
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile-big24x24.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile-big32x32.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile-big32x32.png
new file mode 100644 (file)
index 0000000..5d3cfc2
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile-big32x32.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile24x24.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile24x24.png
new file mode 100644 (file)
index 0000000..7cce2a0
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile24x24.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile32x32.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile32x32.png
new file mode 100644 (file)
index 0000000..b2fb1d1
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-smile32x32.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-surprise24x24.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-surprise24x24.png
new file mode 100644 (file)
index 0000000..eb887f4
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-surprise24x24.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-surprise32x32.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-surprise32x32.png
new file mode 100644 (file)
index 0000000..c30cefe
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-surprise32x32.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-wink24x24.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-wink24x24.png
new file mode 100644 (file)
index 0000000..00a44a4
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-wink24x24.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-wink32x32.png b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-wink32x32.png
new file mode 100644 (file)
index 0000000..4923c12
Binary files /dev/null and b/debian/tietoopcom/usr/share/tietoopcom/emoticons/face-wink32x32.png differ
diff --git a/debian/tietoopcom/usr/share/tietoopcom/licence/copyright b/debian/tietoopcom/usr/share/tietoopcom/licence/copyright
new file mode 100644 (file)
index 0000000..9f70f45
--- /dev/null
@@ -0,0 +1,30 @@
+This package was debianized by Konrad Ciekot <konrad.ciekot@tieto.com> on
+Wed,  22 Oct 2008 10:57:00 +0100.
+
+
+Tieto Open Communicator
+Copyright (c) 2010, Tieto Corporation
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+       Redistributions of source code must retain the above copyright notice,
+       this list of conditions and the following disclaimer.
+       Redistributions in binary form must reproduce the above copyright notice,
+       this list of conditions and the following disclaimer in the documentation
+       and/or other materials provided with the distribution.
+       Neither the name of the Tieto Corporation nor the names of its contributors 
+       may be used to endorse or promote products derived from this software without
+       specific prior written permission.
+       
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
diff --git a/debian/tietoopcom/usr/share/tietoopcom/stylesheets/default.qss b/debian/tietoopcom/usr/share/tietoopcom/stylesheets/default.qss
new file mode 100644 (file)
index 0000000..05ad448
--- /dev/null
@@ -0,0 +1,97 @@
+QFrame { 
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff);
+}
+
+QComboBox {
+       color: black;
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff);
+}
+
+QLineEdit {
+       color: black;
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff);
+}
+
+QPushButton {
+       border: 5px solid darkgrey;
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #a00, stop: 0.55 #b00, stop: 0.56 #b00, stop: 1 #f00);
+       color: white;
+}
+
+QPushButton#contactsButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa);
+       color: white;
+}
+
+QPushButton#settingsButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa);
+       color: white;
+}
+
+QPushButton#statusAreaButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa);
+       color: white;
+}
+
+QLabel#statusAreaLabel:enabled {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa);
+       color: white;
+}
+
+QLabel#statusAreaLabel:!enabled {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #a00, stop: 0.55 #b00, stop: 0.56 #b00, stop: 1 #f00);
+       color: white;
+}
+
+QPushButton#scrollUpButton:!enabled {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff);
+       color: white;
+}
+
+QPushButton#scrollDownButton:!enabled {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff);
+       color: white;
+}
+
+QMenu::item {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #a00, stop: 0.55 #b00, stop: 0.56 #b00, stop: 1 #f00);
+       color: white;
+}
+
+QMenu::separator {
+       background: grey;
+}
+
+QMessageBox {
+       background: white;
+}
+
+QMessageBox > QLabel {
+       background: none;
+}
+
+QListView::item:selected:active {
+       background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #a00, stop: 0.55 #b00, stop: 0.56 #b00, stop: 1 #f00);
+}
+
+QListView::item:selected:!active {
+       background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #a00, stop: 0.55 #b00, stop: 0.56 #b00, stop: 1 #f00);
+}
+
+TocContactListWidget {
+       qproperty-logoColor: "red";
+}
diff --git a/debian/tietoopcom/usr/share/tietoopcom/stylesheets/my.qss b/debian/tietoopcom/usr/share/tietoopcom/stylesheets/my.qss
new file mode 100644 (file)
index 0000000..8265e69
--- /dev/null
@@ -0,0 +1,69 @@
+QFrame { 
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0, 
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff); 
+} 
+QComboBox { 
+       color: black; 
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0, 
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff); 
+}
+QLineEdit {
+       color: black;
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff); 
+}
+QPushButton {
+       border: 5px solid darkgrey;
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #0a0, stop: 0.55 #0b0, stop: 0.56 #0b0, stop: 1 #0f0); 
+       color: white;
+}
+QPushButton#contactsButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa); 
+       color: white;
+}
+QPushButton#settingsButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa); 
+       color: white;
+}
+QPushButton#statusAreaButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa); 
+       color: white;
+}
+QLabel#statusAreaLabel[checked="true"] {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa); 
+       color: white;
+}
+TecMainToolbar > QLabel {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #0a0, stop: 0.55 #0b0, stop: 0.56 #0b0, stop: 1 #0f0); 
+       color: white;
+}
+QMenu::item {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #0a0, stop: 0.55 #0b0, stop: 0.56 #0b0, stop: 1 #0f0); 
+       color: white;
+}
+QListView::item:selected:active {
+       background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #0b0, stop: 0.55 #0b0, stop: 0.56 #0b0, stop: 1 #0f0);
+}
+QListView::item:selected:!active {
+       background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #0a0, stop: 0.55 #0b0, stop: 0.56 #0b0, stop: 1 #0f0);
+}
+QMessageBox {
+       background: white;
+}
+
+QMessageBox > QLabel {
+       background: none;
+}
+
+TocContactListWidget {
+       qproperty-logoColor: "green";
+}
\ No newline at end of file
diff --git a/debian/tmp/usr/bin/tietoopcom b/debian/tmp/usr/bin/tietoopcom
new file mode 100644 (file)
index 0000000..d1a5301
Binary files /dev/null and b/debian/tmp/usr/bin/tietoopcom differ
diff --git a/debian/tmp/usr/share/applications/hildon/tietoopcom.desktop b/debian/tmp/usr/share/applications/hildon/tietoopcom.desktop
new file mode 100644 (file)
index 0000000..c0bfd08
--- /dev/null
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=0.5.5
+Type=Application
+Name=Tieto Open Communicator
+Comment=Realtime communicator for Maemo/Telepathy
+Exec=/usr/bin/tietoopcom
+Icon=jabber
+X-Icon-path=/usr/share/pixmaps/
+X-Maemo-Category=Main
+X-Window-Icon=jabber
+X-Window-Icon-Dimmed=jabber
+X-Osso-Service=com.tieto.tietoopcom
diff --git a/debian/tmp/usr/share/dbus-1/services/com.tieto.tietoopcom.service b/debian/tmp/usr/share/dbus-1/services/com.tieto.tietoopcom.service
new file mode 100644 (file)
index 0000000..fa159b5
--- /dev/null
@@ -0,0 +1,4 @@
+# Service description file
+[D-BUS Service]
+Name=com.tieto.tietoopcom
+Exec=/usr/bin/tietoopcom 
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-angel24x24.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-angel24x24.png
new file mode 100644 (file)
index 0000000..1163195
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-angel24x24.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-angel32x32.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-angel32x32.png
new file mode 100644 (file)
index 0000000..8604e09
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-angel32x32.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-crying24x24.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-crying24x24.png
new file mode 100644 (file)
index 0000000..609020f
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-crying24x24.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-crying32x32.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-crying32x32.png
new file mode 100644 (file)
index 0000000..6599fe7
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-crying32x32.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-devilish24x24.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-devilish24x24.png
new file mode 100644 (file)
index 0000000..9abf970
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-devilish24x24.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-devilish32x32.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-devilish32x32.png
new file mode 100644 (file)
index 0000000..eaeacc2
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-devilish32x32.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-glasses24x24.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-glasses24x24.png
new file mode 100644 (file)
index 0000000..a3e736d
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-glasses24x24.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-glasses32x32.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-glasses32x32.png
new file mode 100644 (file)
index 0000000..316405c
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-glasses32x32.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-grin24x24.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-grin24x24.png
new file mode 100644 (file)
index 0000000..39e53dd
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-grin24x24.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-grin32x32.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-grin32x32.png
new file mode 100644 (file)
index 0000000..6494af3
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-grin32x32.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-kiss24x24.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-kiss24x24.png
new file mode 100644 (file)
index 0000000..3d43359
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-kiss24x24.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-kiss32x32.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-kiss32x32.png
new file mode 100644 (file)
index 0000000..c746a81
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-kiss32x32.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-monkey24x24.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-monkey24x24.png
new file mode 100644 (file)
index 0000000..86e7b00
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-monkey24x24.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-monkey32x32.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-monkey32x32.png
new file mode 100644 (file)
index 0000000..d95f91d
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-monkey32x32.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-plain24x24.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-plain24x24.png
new file mode 100644 (file)
index 0000000..64c8b10
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-plain24x24.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-plain32x32.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-plain32x32.png
new file mode 100644 (file)
index 0000000..9e884b1
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-plain32x32.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-sad24x24.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-sad24x24.png
new file mode 100644 (file)
index 0000000..bd9b495
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-sad24x24.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-sad32x32.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-sad32x32.png
new file mode 100644 (file)
index 0000000..d953d88
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-sad32x32.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-smile-big24x24.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-smile-big24x24.png
new file mode 100644 (file)
index 0000000..2026d20
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-smile-big24x24.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-smile-big32x32.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-smile-big32x32.png
new file mode 100644 (file)
index 0000000..5d3cfc2
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-smile-big32x32.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-smile24x24.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-smile24x24.png
new file mode 100644 (file)
index 0000000..7cce2a0
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-smile24x24.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-smile32x32.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-smile32x32.png
new file mode 100644 (file)
index 0000000..b2fb1d1
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-smile32x32.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-surprise24x24.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-surprise24x24.png
new file mode 100644 (file)
index 0000000..eb887f4
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-surprise24x24.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-surprise32x32.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-surprise32x32.png
new file mode 100644 (file)
index 0000000..c30cefe
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-surprise32x32.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-wink24x24.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-wink24x24.png
new file mode 100644 (file)
index 0000000..00a44a4
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-wink24x24.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/emoticons/face-wink32x32.png b/debian/tmp/usr/share/tietoopcom/emoticons/face-wink32x32.png
new file mode 100644 (file)
index 0000000..4923c12
Binary files /dev/null and b/debian/tmp/usr/share/tietoopcom/emoticons/face-wink32x32.png differ
diff --git a/debian/tmp/usr/share/tietoopcom/licence/copyright b/debian/tmp/usr/share/tietoopcom/licence/copyright
new file mode 100644 (file)
index 0000000..9f70f45
--- /dev/null
@@ -0,0 +1,30 @@
+This package was debianized by Konrad Ciekot <konrad.ciekot@tieto.com> on
+Wed,  22 Oct 2008 10:57:00 +0100.
+
+
+Tieto Open Communicator
+Copyright (c) 2010, Tieto Corporation
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+       Redistributions of source code must retain the above copyright notice,
+       this list of conditions and the following disclaimer.
+       Redistributions in binary form must reproduce the above copyright notice,
+       this list of conditions and the following disclaimer in the documentation
+       and/or other materials provided with the distribution.
+       Neither the name of the Tieto Corporation nor the names of its contributors 
+       may be used to endorse or promote products derived from this software without
+       specific prior written permission.
+       
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
diff --git a/debian/tmp/usr/share/tietoopcom/stylesheets/default.qss b/debian/tmp/usr/share/tietoopcom/stylesheets/default.qss
new file mode 100644 (file)
index 0000000..05ad448
--- /dev/null
@@ -0,0 +1,97 @@
+QFrame { 
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff);
+}
+
+QComboBox {
+       color: black;
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff);
+}
+
+QLineEdit {
+       color: black;
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff);
+}
+
+QPushButton {
+       border: 5px solid darkgrey;
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #a00, stop: 0.55 #b00, stop: 0.56 #b00, stop: 1 #f00);
+       color: white;
+}
+
+QPushButton#contactsButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa);
+       color: white;
+}
+
+QPushButton#settingsButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa);
+       color: white;
+}
+
+QPushButton#statusAreaButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa);
+       color: white;
+}
+
+QLabel#statusAreaLabel:enabled {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa);
+       color: white;
+}
+
+QLabel#statusAreaLabel:!enabled {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #a00, stop: 0.55 #b00, stop: 0.56 #b00, stop: 1 #f00);
+       color: white;
+}
+
+QPushButton#scrollUpButton:!enabled {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff);
+       color: white;
+}
+
+QPushButton#scrollDownButton:!enabled {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff);
+       color: white;
+}
+
+QMenu::item {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #a00, stop: 0.55 #b00, stop: 0.56 #b00, stop: 1 #f00);
+       color: white;
+}
+
+QMenu::separator {
+       background: grey;
+}
+
+QMessageBox {
+       background: white;
+}
+
+QMessageBox > QLabel {
+       background: none;
+}
+
+QListView::item:selected:active {
+       background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #a00, stop: 0.55 #b00, stop: 0.56 #b00, stop: 1 #f00);
+}
+
+QListView::item:selected:!active {
+       background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #a00, stop: 0.55 #b00, stop: 0.56 #b00, stop: 1 #f00);
+}
+
+TocContactListWidget {
+       qproperty-logoColor: "red";
+}
diff --git a/debian/tmp/usr/share/tietoopcom/stylesheets/my.qss b/debian/tmp/usr/share/tietoopcom/stylesheets/my.qss
new file mode 100644 (file)
index 0000000..8265e69
--- /dev/null
@@ -0,0 +1,69 @@
+QFrame { 
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0, 
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff); 
+} 
+QComboBox { 
+       color: black; 
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0, 
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff); 
+}
+QLineEdit {
+       color: black;
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff); 
+}
+QPushButton {
+       border: 5px solid darkgrey;
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #0a0, stop: 0.55 #0b0, stop: 0.56 #0b0, stop: 1 #0f0); 
+       color: white;
+}
+QPushButton#contactsButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa); 
+       color: white;
+}
+QPushButton#settingsButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa); 
+       color: white;
+}
+QPushButton#statusAreaButton:checked {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa); 
+       color: white;
+}
+QLabel#statusAreaLabel[checked="true"] {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #fff, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #aaa); 
+       color: white;
+}
+TecMainToolbar > QLabel {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #0a0, stop: 0.55 #0b0, stop: 0.56 #0b0, stop: 1 #0f0); 
+       color: white;
+}
+QMenu::item {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #0a0, stop: 0.55 #0b0, stop: 0.56 #0b0, stop: 1 #0f0); 
+       color: white;
+}
+QListView::item:selected:active {
+       background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #0b0, stop: 0.55 #0b0, stop: 0.56 #0b0, stop: 1 #0f0);
+}
+QListView::item:selected:!active {
+       background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+       stop: 0 #0a0, stop: 0.55 #0b0, stop: 0.56 #0b0, stop: 1 #0f0);
+}
+QMessageBox {
+       background: white;
+}
+
+QMessageBox > QLabel {
+       background: none;
+}
+
+TocContactListWidget {
+       qproperty-logoColor: "green";
+}
\ No newline at end of file
diff --git a/description b/description
new file mode 100644 (file)
index 0000000..498b267
--- /dev/null
@@ -0,0 +1 @@
+Unnamed repository; edit this file 'description' to name the repository.
diff --git a/hooks/applypatch-msg.sample b/hooks/applypatch-msg.sample
new file mode 100755 (executable)
index 0000000..8b2a2fe
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+#
+# An example hook script to check the commit log message taken by
+# applypatch from an e-mail message.
+#
+# The hook should exit with non-zero status after issuing an
+# appropriate message if it wants to stop the commit.  The hook is
+# allowed to edit the commit message file.
+#
+# To enable this hook, rename this file to "applypatch-msg".
+
+. git-sh-setup
+test -x "$GIT_DIR/hooks/commit-msg" &&
+       exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"}
+:
diff --git a/hooks/commit-msg.sample b/hooks/commit-msg.sample
new file mode 100755 (executable)
index 0000000..6ef1d29
--- /dev/null
@@ -0,0 +1,24 @@
+#!/bin/sh
+#
+# An example hook script to check the commit log message.
+# Called by git-commit with one argument, the name of the file
+# that has the commit message.  The hook should exit with non-zero
+# status after issuing an appropriate message if it wants to stop the
+# commit.  The hook is allowed to edit the commit message file.
+#
+# To enable this hook, rename this file to "commit-msg".
+
+# Uncomment the below to add a Signed-off-by line to the message.
+# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
+# hook is more suited to it.
+#
+# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
+# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
+
+# This example catches duplicate Signed-off-by lines.
+
+test "" = "$(grep '^Signed-off-by: ' "$1" |
+        sort | uniq -c | sed -e '/^[   ]*1[    ]/d')" || {
+       echo >&2 Duplicate Signed-off-by lines.
+       exit 1
+}
diff --git a/hooks/post-commit.sample b/hooks/post-commit.sample
new file mode 100755 (executable)
index 0000000..2266821
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+#
+# An example hook script that is called after a successful
+# commit is made.
+#
+# To enable this hook, rename this file to "post-commit".
+
+: Nothing
diff --git a/hooks/post-receive.sample b/hooks/post-receive.sample
new file mode 100755 (executable)
index 0000000..7a83e17
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+#
+# An example hook script for the "post-receive" event.
+#
+# The "post-receive" script is run after receive-pack has accepted a pack
+# and the repository has been updated.  It is passed arguments in through
+# stdin in the form
+#  <oldrev> <newrev> <refname>
+# For example:
+#  aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master
+#
+# see contrib/hooks/ for a sample, or uncomment the next line and
+# rename the file to "post-receive".
+
+#. /usr/share/doc/git-core/contrib/hooks/post-receive-email
diff --git a/hooks/post-update.sample b/hooks/post-update.sample
new file mode 100755 (executable)
index 0000000..5323b56
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+#
+# An example hook script to prepare a packed repository for use over
+# dumb transports.
+#
+# To enable this hook, rename this file to "post-update".
+
+exec git-update-server-info
diff --git a/hooks/pre-applypatch.sample b/hooks/pre-applypatch.sample
new file mode 100755 (executable)
index 0000000..b1f187c
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# An example hook script to verify what is about to be committed
+# by applypatch from an e-mail message.
+#
+# The hook should exit with non-zero status after issuing an
+# appropriate message if it wants to stop the commit.
+#
+# To enable this hook, rename this file to "pre-applypatch".
+
+. git-sh-setup
+test -x "$GIT_DIR/hooks/pre-commit" &&
+       exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"}
+:
diff --git a/hooks/pre-commit.sample b/hooks/pre-commit.sample
new file mode 100755 (executable)
index 0000000..439eefd
--- /dev/null
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
+# An example hook script to verify what is about to be committed.
+# Called by git-commit with no arguments.  The hook should
+# exit with non-zero status after issuing an appropriate message if
+# it wants to stop the commit.
+#
+# To enable this hook, rename this file to "pre-commit".
+
+if git-rev-parse --verify HEAD >/dev/null 2>&1
+then
+       against=HEAD
+else
+       # Initial commit: diff against an empty tree object
+       against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
+fi
+
+# If you want to allow non-ascii filenames set this variable to true.
+allownonascii=$(git config hooks.allownonascii)
+
+# Cross platform projects tend to avoid non-ascii filenames; prevent
+# them from being added to the repository. We exploit the fact that the
+# printable range starts at the space character and ends with tilde.
+if [ "$allownonascii" != "true" ] &&
+       # Note that the use of brackets around a tr range is ok here, (it's
+       # even required, for portability to Solaris 10's /usr/bin/tr), since
+       # the square bracket bytes happen to fall in the designated range.
+       test "$(git diff --cached --name-only --diff-filter=A -z $against |
+         LC_ALL=C tr -d '[ -~]\0')"
+then
+       echo "Error: Attempt to add a non-ascii file name."
+       echo
+       echo "This can cause problems if you want to work"
+       echo "with people on other platforms."
+       echo
+       echo "To be portable it is advisable to rename the file ..."
+       echo
+       echo "If you know what you are doing you can disable this"
+       echo "check using:"
+       echo
+       echo "  git config hooks.allownonascii true"
+       echo
+       exit 1
+fi
+
+exec git diff-index --check --cached $against --
diff --git a/hooks/pre-rebase.sample b/hooks/pre-rebase.sample
new file mode 100755 (executable)
index 0000000..be1b06e
--- /dev/null
@@ -0,0 +1,169 @@
+#!/bin/sh
+#
+# Copyright (c) 2006, 2008 Junio C Hamano
+#
+# The "pre-rebase" hook is run just before "git-rebase" starts doing
+# its job, and can prevent the command from running by exiting with
+# non-zero status.
+#
+# The hook is called with the following parameters:
+#
+# $1 -- the upstream the series was forked from.
+# $2 -- the branch being rebased (or empty when rebasing the current branch).
+#
+# This sample shows how to prevent topic branches that are already
+# merged to 'next' branch from getting rebased, because allowing it
+# would result in rebasing already published history.
+
+publish=next
+basebranch="$1"
+if test "$#" = 2
+then
+       topic="refs/heads/$2"
+else
+       topic=`git symbolic-ref HEAD` ||
+       exit 0 ;# we do not interrupt rebasing detached HEAD
+fi
+
+case "$topic" in
+refs/heads/??/*)
+       ;;
+*)
+       exit 0 ;# we do not interrupt others.
+       ;;
+esac
+
+# Now we are dealing with a topic branch being rebased
+# on top of master.  Is it OK to rebase it?
+
+# Does the topic really exist?
+git show-ref -q "$topic" || {
+       echo >&2 "No such branch $topic"
+       exit 1
+}
+
+# Is topic fully merged to master?
+not_in_master=`git-rev-list --pretty=oneline ^master "$topic"`
+if test -z "$not_in_master"
+then
+       echo >&2 "$topic is fully merged to master; better remove it."
+       exit 1 ;# we could allow it, but there is no point.
+fi
+
+# Is topic ever merged to next?  If so you should not be rebasing it.
+only_next_1=`git-rev-list ^master "^$topic" ${publish} | sort`
+only_next_2=`git-rev-list ^master           ${publish} | sort`
+if test "$only_next_1" = "$only_next_2"
+then
+       not_in_topic=`git-rev-list "^$topic" master`
+       if test -z "$not_in_topic"
+       then
+               echo >&2 "$topic is already up-to-date with master"
+               exit 1 ;# we could allow it, but there is no point.
+       else
+               exit 0
+       fi
+else
+       not_in_next=`git-rev-list --pretty=oneline ^${publish} "$topic"`
+       perl -e '
+               my $topic = $ARGV[0];
+               my $msg = "* $topic has commits already merged to public branch:\n";
+               my (%not_in_next) = map {
+                       /^([0-9a-f]+) /;
+                       ($1 => 1);
+               } split(/\n/, $ARGV[1]);
+               for my $elem (map {
+                               /^([0-9a-f]+) (.*)$/;
+                               [$1 => $2];
+                       } split(/\n/, $ARGV[2])) {
+                       if (!exists $not_in_next{$elem->[0]}) {
+                               if ($msg) {
+                                       print STDERR $msg;
+                                       undef $msg;
+                               }
+                               print STDERR " $elem->[1]\n";
+                       }
+               }
+       ' "$topic" "$not_in_next" "$not_in_master"
+       exit 1
+fi
+
+exit 0
+
+################################################################
+
+This sample hook safeguards topic branches that have been
+published from being rewound.
+
+The workflow assumed here is:
+
+ * Once a topic branch forks from "master", "master" is never
+   merged into it again (either directly or indirectly).
+
+ * Once a topic branch is fully cooked and merged into "master",
+   it is deleted.  If you need to build on top of it to correct
+   earlier mistakes, a new topic branch is created by forking at
+   the tip of the "master".  This is not strictly necessary, but
+   it makes it easier to keep your history simple.
+
+ * Whenever you need to test or publish your changes to topic
+   branches, merge them into "next" branch.
+
+The script, being an example, hardcodes the publish branch name
+to be "next", but it is trivial to make it configurable via
+$GIT_DIR/config mechanism.
+
+With this workflow, you would want to know:
+
+(1) ... if a topic branch has ever been merged to "next".  Young
+    topic branches can have stupid mistakes you would rather
+    clean up before publishing, and things that have not been
+    merged into other branches can be easily rebased without
+    affecting other people.  But once it is published, you would
+    not want to rewind it.
+
+(2) ... if a topic branch has been fully merged to "master".
+    Then you can delete it.  More importantly, you should not
+    build on top of it -- other people may already want to
+    change things related to the topic as patches against your
+    "master", so if you need further changes, it is better to
+    fork the topic (perhaps with the same name) afresh from the
+    tip of "master".
+
+Let's look at this example:
+
+                  o---o---o---o---o---o---o---o---o---o "next"
+                 /       /           /           /
+                /   a---a---b A     /           /
+               /   /               /           /
+              /   /   c---c---c---c B         /
+             /   /   /             \         /
+            /   /   /   b---b C     \       /
+           /   /   /   /             \     /
+    ---o---o---o---o---o---o---o---o---o---o---o "master"
+
+
+A, B and C are topic branches.
+
+ * A has one fix since it was merged up to "next".
+
+ * B has finished.  It has been fully merged up to "master" and "next",
+   and is ready to be deleted.
+
+ * C has not merged to "next" at all.
+
+We would want to allow C to be rebased, refuse A, and encourage
+B to be deleted.
+
+To compute (1):
+
+       git-rev-list ^master ^topic next
+       git-rev-list ^master        next
+
+       if these match, topic has not merged in next at all.
+
+To compute (2):
+
+       git-rev-list master..topic
+
+       if this is empty, it is fully merged to "master".
diff --git a/hooks/prepare-commit-msg.sample b/hooks/prepare-commit-msg.sample
new file mode 100755 (executable)
index 0000000..3652424
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# An example hook script to prepare the commit log message.
+# Called by git-commit with the name of the file that has the
+# commit message, followed by the description of the commit
+# message's source.  The hook's purpose is to edit the commit
+# message file.  If the hook fails with a non-zero status,
+# the commit is aborted.
+#
+# To enable this hook, rename this file to "prepare-commit-msg".
+
+# This hook includes three examples.  The first comments out the
+# "Conflicts:" part of a merge commit.
+#
+# The second includes the output of "git diff --name-status -r"
+# into the message, just before the "git status" output.  It is
+# commented because it doesn't cope with --amend or with squashed
+# commits.
+#
+# The third example adds a Signed-off-by line to the message, that can
+# still be edited.  This is rarely a good idea.
+
+case "$2,$3" in
+  merge,)
+    perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;
+
+# ,|template,)
+#   perl -i.bak -pe '
+#      print "\n" . `git diff --cached --name-status -r`
+#       if /^#/ && $first++ == 0' "$1" ;;
+
+  *) ;;
+esac
+
+# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
+# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
diff --git a/hooks/update.sample b/hooks/update.sample
new file mode 100755 (executable)
index 0000000..fd63b2d
--- /dev/null
@@ -0,0 +1,128 @@
+#!/bin/sh
+#
+# An example hook script to blocks unannotated tags from entering.
+# Called by git-receive-pack with arguments: refname sha1-old sha1-new
+#
+# To enable this hook, rename this file to "update".
+#
+# Config
+# ------
+# hooks.allowunannotated
+#   This boolean sets whether unannotated tags will be allowed into the
+#   repository.  By default they won't be.
+# hooks.allowdeletetag
+#   This boolean sets whether deleting tags will be allowed in the
+#   repository.  By default they won't be.
+# hooks.allowmodifytag
+#   This boolean sets whether a tag may be modified after creation. By default
+#   it won't be.
+# hooks.allowdeletebranch
+#   This boolean sets whether deleting branches will be allowed in the
+#   repository.  By default they won't be.
+# hooks.denycreatebranch
+#   This boolean sets whether remotely creating branches will be denied
+#   in the repository.  By default this is allowed.
+#
+
+# --- Command line
+refname="$1"
+oldrev="$2"
+newrev="$3"
+
+# --- Safety check
+if [ -z "$GIT_DIR" ]; then
+       echo "Don't run this script from the command line." >&2
+       echo " (if you want, you could supply GIT_DIR then run" >&2
+       echo "  $0 <ref> <oldrev> <newrev>)" >&2
+       exit 1
+fi
+
+if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
+       echo "Usage: $0 <ref> <oldrev> <newrev>" >&2
+       exit 1
+fi
+
+# --- Config
+allowunannotated=$(git config --bool hooks.allowunannotated)
+allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
+denycreatebranch=$(git config --bool hooks.denycreatebranch)
+allowdeletetag=$(git config --bool hooks.allowdeletetag)
+allowmodifytag=$(git config --bool hooks.allowmodifytag)
+
+# check for no description
+projectdesc=$(sed -e '1q' "$GIT_DIR/description")
+case "$projectdesc" in
+"Unnamed repository"* | "")
+       echo "*** Project description file hasn't been set" >&2
+       exit 1
+       ;;
+esac
+
+# --- Check types
+# if $newrev is 0000...0000, it's a commit to delete a ref.
+zero="0000000000000000000000000000000000000000"
+if [ "$newrev" = "$zero" ]; then
+       newrev_type=delete
+else
+       newrev_type=$(git-cat-file -t $newrev)
+fi
+
+case "$refname","$newrev_type" in
+       refs/tags/*,commit)
+               # un-annotated tag
+               short_refname=${refname##refs/tags/}
+               if [ "$allowunannotated" != "true" ]; then
+                       echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
+                       echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
+                       exit 1
+               fi
+               ;;
+       refs/tags/*,delete)
+               # delete tag
+               if [ "$allowdeletetag" != "true" ]; then
+                       echo "*** Deleting a tag is not allowed in this repository" >&2
+                       exit 1
+               fi
+               ;;
+       refs/tags/*,tag)
+               # annotated tag
+               if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
+               then
+                       echo "*** Tag '$refname' already exists." >&2
+                       echo "*** Modifying a tag is not allowed in this repository." >&2
+                       exit 1
+               fi
+               ;;
+       refs/heads/*,commit)
+               # branch
+               if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
+                       echo "*** Creating a branch is not allowed in this repository" >&2
+                       exit 1
+               fi
+               ;;
+       refs/heads/*,delete)
+               # delete branch
+               if [ "$allowdeletebranch" != "true" ]; then
+                       echo "*** Deleting a branch is not allowed in this repository" >&2
+                       exit 1
+               fi
+               ;;
+       refs/remotes/*,commit)
+               # tracking branch
+               ;;
+       refs/remotes/*,delete)
+               # delete tracking branch
+               if [ "$allowdeletebranch" != "true" ]; then
+                       echo "*** Deleting a tracking branch is not allowed in this repository" >&2
+                       exit 1
+               fi
+               ;;
+       *)
+               # Anything else (is there anything else?)
+               echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
+               exit 1
+               ;;
+esac
+
+# --- Finished
+exit 0
diff --git a/include/TocEngine/TocBaseEngine b/include/TocEngine/TocBaseEngine
new file mode 100644 (file)
index 0000000..11d6dbc
--- /dev/null
@@ -0,0 +1 @@
+#include "tocbaseengine.h"
diff --git a/include/TocEngine/TocEngine b/include/TocEngine/TocEngine
new file mode 100644 (file)
index 0000000..27eafbb
--- /dev/null
@@ -0,0 +1 @@
+#include "tocengine.h"
diff --git a/include/TocEngine/TocEngine.pri b/include/TocEngine/TocEngine.pri
new file mode 100644 (file)
index 0000000..b778ed3
--- /dev/null
@@ -0,0 +1,11 @@
+DEPENDPATH += \
+       $$PWD
+
+INCLUDEPATH += \
+       $$PWD
+
+HEADERS += \
+       TocBaseEngine \
+    tocbaseengine.h \
+    TocEngine \
+    tocengine.h
diff --git a/include/TocEngine/tocbaseengine.h b/include/TocEngine/tocbaseengine.h
new file mode 100644 (file)
index 0000000..8a990bb
--- /dev/null
@@ -0,0 +1,191 @@
+/** \file TocBaseEngine.h
+ * \brief Declaration of TocBaseEngine class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef TOCBASEENGINE_H
+#define TOCBASEENGINE_H
+
+#include "defs.h"
+
+QT_BEGIN_NAMESPACE
+
+/** \brief TocBaseEngine class
+ * 
+ * Abstract class representing the engine's public interface
+ * this interface is used by TocBaseUi
+ */
+class TocBaseEngine : public QObject
+{
+       Q_OBJECT
+
+public:
+
+       /**
+        * Public Constructor
+        */
+       TocBaseEngine( QObject * parent = 0 );
+
+       /**
+        * Destructor
+        */
+       ~TocBaseEngine();
+
+signals:
+
+       /** \brief Notifies about connection status change
+        * 
+        * Useful when the server disconnects us
+        * without our request to show the information to the user.
+        * 
+        * @param status Connection status
+        * @param reason Status change reason
+        */
+       void statusChanged(Status status, Reason reason);
+       
+       /** \brief Notifies about user presence change
+        * 
+        * Used to confirm presence change request.
+        * 
+        * @param presence User presence
+        * @param description Presence description
+        */
+       void presenceUpdated(Presence presence, QString description);
+
+       /** \brief Notifies about user presence change
+        * 
+        * @param uid Contact's user ID
+        * @param presence Contact's presence
+        * @param description Presence description
+        */
+       void contactPresenceUpdated(QString uid, Presence presence, QString description);
+
+       /** \brief Notifies about incoming messages
+        * 
+        * Emited when there is a new pending message to be handled.
+        * 
+        * @param uid Contact's user ID
+        * @param message Message to be handled
+        */
+       void incomingMessage(QString uid, Message message);
+       
+       /** \brief Notifies if there is a new ContactList ready 
+        * 
+        * Full contact list is sent only on TocEngine's startup,
+        * then it sends only the elements that have changed. ( TODO: to be discussed )
+        * 
+        * @param contactList New contact list to be displayed
+        */
+       void contactListReceived(const TocContactList& contactList);
+
+       /** \brief Notifies about accepted subscription
+        * 
+        * This signal tells us if the contact we wanted to add
+        * to our contact list, authorized our request.
+        * 
+        * @param uid ID of the contact that accepted our subscription request
+        */
+       void subscriptionAccepted(QString uid);
+
+       /** \brief Notifies about authorization request from contact
+        * 
+        * This signal tells us that there is a contact that requested
+        * our authorization to let him add our ID to his contact list.
+        * 
+        * @param uid ID of a contact that requested our authorization
+        */
+       void authorizationRequest(QString uid);
+
+public slots:
+
+       /** \brief Used to initialize engine's parameters on startup 
+        * 
+        * This slot also needs to be called when account or connection settings have changed.
+        */
+       virtual void initializeFromSettings() = 0;
+
+       /** \brief Used to handle status change request from the UI
+        * 
+        * @param presence Requested presence
+        * @param description Requested description
+        */
+       virtual void onPresenceChange(Presence presence, QString description) = 0;
+       
+       /** \brief Closes the channel(s) created for the given contact
+        * 
+        * When user wants to quit the conversation this slot should be called.
+        * 
+        * @param uid User ID of the contact
+        */
+       virtual void onSessionClosed(QString uid) = 0;
+
+       /** \brief Called when User wants to send a message to the contact
+        * 
+        * @param uid Contact's ID
+        * @param message Message to be sent
+        */
+       virtual void onNewMessageReady(QString uid, Message message) = 0;
+
+       /** \brief Used to add contact to the contact list
+        * 
+        * @param pContact      Pointer to a contact to be added.
+        */
+       virtual void onAddContactRequest(TocContact *pContact) = 0;
+
+       /** \brief Used to edit existing contact data
+        * 
+        * We also allow user to change the ID of the contact.
+        * 
+        * @param pContact      Pointer to a contact to be altered.
+        * @param uid   Contact's old ID
+        */
+       virtual void onEditContactRequest(TocContact *pContact, QString oldUid) = 0;
+
+       /** \brief This slot removes a contact from contact list
+        * 
+        * @param uid Contact's ID
+        */
+       virtual void onRemoveContactRequest(QString uid) = 0;
+
+       /** \brief Used when we want to change contacts subscription to our account 
+        *
+        * If we want to grant our authorization to the contact's subscritpion request,
+        * set the `authorized` flag to true,
+        * if we do not want the contact to have subscription to our account
+        * set the `authorized` flag to false.
+        * 
+        * @param uid ID of a contact which sibscription we want to change
+        * @param bAuthorized Authorization status
+        */
+       virtual void onSubscriptionAccepted(QString uid, bool bAuthorized) = 0;
+};
+
+QT_END_NAMESPACE
+
+#endif // TOCBASEENGINE_H
diff --git a/include/TocEngine/tocengine.h b/include/TocEngine/tocengine.h
new file mode 100644 (file)
index 0000000..0510037
--- /dev/null
@@ -0,0 +1,239 @@
+/** \file TocBaseEngine.h
+ * \brief Declaration of TocBaseEngine class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef TOCENGINE_H
+#define TOCENGINE_H
+
+#include "TocBaseEngine"
+#include <QtTapioca/Connection>
+#include <QtTapioca/TextChannel>
+
+namespace QtTapioca {
+       class ContactBase;
+};
+
+using namespace QtTapioca;
+
+QT_BEGIN_NAMESPACE
+
+/** \brief TocEngine class
+ * 
+ * Wrapper around the QtTapioca/QtTelepathy communication framework,
+ * responsible for managing opened channels and connection(s),
+ * and for synchronizaion beetween our contact list and the one we get from the telepathy.
+ */
+class TocEngine : public TocBaseEngine
+{
+       Q_OBJECT
+
+public:
+
+       /**
+        * Public Constructor
+        */
+       TocEngine( QObject * parent = 0 );
+
+       /**
+        * Destructor
+        */
+       ~TocEngine();
+
+signals:
+       
+public slots:
+
+       /** \brief Reimplemented from TocBaseEngine
+        * 
+        */     
+       void onPresenceChange(Presence presence, QString description);
+
+       /** \brief Reimplemented from TocBaseEngine
+        * 
+        */     
+       void onAddContactRequest(TocContact* pContact);
+
+       /** \brief Reimplemented from TocBaseEngine
+        * 
+        */     
+       void onEditContactRequest(TocContact* pContact, QString oldUid);
+
+       /** \brief Reimplemented from TocBaseEngine
+        * 
+        */     
+       void onRemoveContactRequest(QString uid);
+
+       /** \brief Reimplemented from TocBaseEngine
+        * 
+        */     
+       void onSubscriptionAccepted(QString /*uid*/, bool /*bAuthorized*/) {}
+       
+       /** \brief Reimplemented from TocBaseEngine
+        * 
+        */
+       void initializeFromSettings();
+
+       /** \brief Called when User wants to send a message to the contact
+        * 
+        * @param uid Contact's ID
+        * @param message Message to be sent
+        */
+       virtual void onNewMessageReady(QString uid, Message message);
+
+       /** \brief Closes the channel(s) created for the given contact
+        * 
+        * When user wants to quit the conversation this slot should be called.
+        * 
+        * @param uid User ID of the contact
+        */
+       virtual void onSessionClosed(QString uid);
+
+private slots:
+
+       /** \brief Used when connection status was changed
+        * 
+        * @param pConnection Handler to QtTapioca connection
+        * @param status Status of connection
+        * @param reason Reason of status change 
+        */
+       void onStatusChange(QtTapioca::Connection *pConnection, QtTapioca::Connection::Status status, QtTapioca::Connection::Reason reason);
+       
+       /** \brief Used when contact presence was changed
+        *
+        * @param pContact Contact item which changed its presence  
+        * @param presence Actual contact's presence
+        * @param presenceMessage Actual contact's presence message
+        */
+       void onPresenceUpdated(QtTapioca::ContactBase *pContact, QtTapioca::ContactBase::Presence presence, const QString &presenceMessage);
+
+       /** \brief Used when user presence was changed
+        *
+        * @param pContact Contact item which changed its presence
+        * @param presence Actual users's presence
+        * @param presenceMessage Actual users's presence message
+        */
+       void onSelfPresenceUpdated(QtTapioca::ContactBase *pContact, QtTapioca::ContactBase::Presence presence, const QString &presenceMessage);
+
+       /** \brief Used when user receives message
+        *
+        * @param pTextChannel Channel from whom we recieved message
+        * @param message received message
+        */
+       void onMessageReceived(const QtTapioca::TextChannel* pTextChannel, const QtTapioca::TextChannel::Message &message);
+
+       /** \brief Used when message has not been sent
+        * 
+        * When an error occured this slot prepares a Message with a proper 'error' field value
+        * 
+        * @param message Message for which an error occured
+        * @param error Error type
+        */
+       void onMessageDeliveryError(const QtTapioca::TextChannel::Message &message, QtTapioca::TextChannel::Message::DeliveryError error);
+
+       /** \brief Called when someone wants to initiate chat with user
+        * 
+        * To receive message that initiated this channel one should call pendingMessages method
+        * 
+        * @param pConnection Connection on which new channel is created
+        * @param pChannel Newly created channel
+        * @param bSuppresHandler Used to notify other channel handlers that they should not use this channel object
+        */
+       void onChannelCreated(QtTapioca::Connection* pConnection, QtTapioca::Channel* pChannel, bool bSuppresHandler);
+
+
+       /** \brief Authorizes a contact and add it to users list
+        * 
+        * TODO: this should be implemented in a way that authorization
+        * depends on user settings
+        * 
+        * @param pContact Contact to be authorized
+        */
+       void onAuthorizationRequested(QtTapioca::Contact *pContact);
+       
+private: //Methods
+
+       /** \brief Synchronizes server and local contact lists
+        * 
+        * Lists should be synchronized according to 
+        * the synchronization priority set by user. (NO LONGER TRUE AS THE SYNC PRORITY WILL BE REMOVED)
+        */
+       void synchronizeContactLists();
+
+       /** \brief Adds pending contacts to the list on the server
+        * 
+        */
+       void addPendingContacts();
+
+       /** \brief Removes pending contacts from the list on the server
+        * 
+        */
+       void removePendingContacts();
+
+       /** \brief  Syncronizes contacts from server to the local list
+        * 
+        * When contacts from server are edited in a different client
+        *
+        * Note that this function SHOULD NOT be run alone,
+        * but ONLY AFTER addition and removal of pending contacts from server
+        */
+       void syncContactsFromServer();
+       
+       /** \brief Returns true if a user with the given Uid is already on the list
+        *
+        * @param uid Uid of the searched contact 
+        * @return index of the contact or -1 if not found
+        */
+       int indexForUid( QString uid );
+       
+       /** \brief Removes contact from local contact list
+        * 
+        * @param uid Uid of the contact to be removed
+        */
+       void removeContact( QString uid );
+
+       /** \brief Adds contact to the local list
+        * 
+        * @param contact Pointer to the QtTapioca::Contact instance
+        */
+       void addContact( const Contact* contact );
+
+private: //Members
+
+       bool                                                            _bNewUserContact;                       /// Indicates that this is the first status change after initializeFromSettings
+       bool                                                            _bContactListSynchronized;      /// Indicates if contact list has been already sent to the UI
+       QtTapioca::Connection*                          _pConnection;                           /// Active connection
+       TocContactList*                                         _pTocContactList;                       /// Current contact list
+       QStringList*                                            _pAddedContacts;                        /// Contacts to be added
+       QStringList*                                            _pRemovedContacts;                      /// Contacts to be removed
+};
+
+QT_END_NAMESPACE
+
+#endif // TOCENGINE_H
diff --git a/include/TocSettings b/include/TocSettings
new file mode 100644 (file)
index 0000000..ba373fc
--- /dev/null
@@ -0,0 +1 @@
+#include "tocsettings.h"
diff --git a/include/TocUi/IconProvider b/include/TocUi/IconProvider
new file mode 100644 (file)
index 0000000..9be71d7
--- /dev/null
@@ -0,0 +1 @@
+#include "iconprovider.h"
diff --git a/include/TocUi/TocAccountIntermediateWidget b/include/TocUi/TocAccountIntermediateWidget
new file mode 100644 (file)
index 0000000..7cecde7
--- /dev/null
@@ -0,0 +1 @@
+#include "tocaccountintermediatewidget.h"
diff --git a/include/TocUi/TocAccountSettingsWidget b/include/TocUi/TocAccountSettingsWidget
new file mode 100644 (file)
index 0000000..0fd9f79
--- /dev/null
@@ -0,0 +1 @@
+#include "tocaccountsettingswidget.h"
diff --git a/include/TocUi/TocBaseMainWindow b/include/TocUi/TocBaseMainWindow
new file mode 100644 (file)
index 0000000..75c1ce7
--- /dev/null
@@ -0,0 +1 @@
+#include "tocbasemainwindow.h"
diff --git a/include/TocUi/TocChatWidget b/include/TocUi/TocChatWidget
new file mode 100644 (file)
index 0000000..14db31f
--- /dev/null
@@ -0,0 +1 @@
+#include "tocchatwidget.h"
diff --git a/include/TocUi/TocContactListWidget b/include/TocUi/TocContactListWidget
new file mode 100644 (file)
index 0000000..3506b90
--- /dev/null
@@ -0,0 +1 @@
+#include "toccontactlistwidget.h"
diff --git a/include/TocUi/TocEmoticonsDialog b/include/TocUi/TocEmoticonsDialog
new file mode 100644 (file)
index 0000000..21fbfaa
--- /dev/null
@@ -0,0 +1 @@
+#include "tocemoticonsdialog.h"
diff --git a/include/TocUi/TocGeneralSettingsWidget b/include/TocUi/TocGeneralSettingsWidget
new file mode 100644 (file)
index 0000000..95d5785
--- /dev/null
@@ -0,0 +1 @@
+#include "tocgeneralsettingswidget.h"
diff --git a/include/TocUi/TocMainToolbar b/include/TocUi/TocMainToolbar
new file mode 100644 (file)
index 0000000..dd25b90
--- /dev/null
@@ -0,0 +1 @@
+#include "tocmaintoolbar.h"
diff --git a/include/TocUi/TocMainWindow b/include/TocUi/TocMainWindow
new file mode 100644 (file)
index 0000000..69fd066
--- /dev/null
@@ -0,0 +1 @@
+#include "tocmainwindow.h"
diff --git a/include/TocUi/TocSettingsWidget b/include/TocUi/TocSettingsWidget
new file mode 100644 (file)
index 0000000..a16687f
--- /dev/null
@@ -0,0 +1 @@
+#include "tocsettingswidget.h"
diff --git a/include/TocUi/TocThemesSettingsWidget b/include/TocUi/TocThemesSettingsWidget
new file mode 100644 (file)
index 0000000..c57cb56
--- /dev/null
@@ -0,0 +1 @@
+#include "tocthemessettingswidget.h"
diff --git a/include/TocUi/TocUi.pri b/include/TocUi/TocUi.pri
new file mode 100644 (file)
index 0000000..a0e1889
--- /dev/null
@@ -0,0 +1,28 @@
+DEPENDPATH += $$PWD
+INCLUDEPATH += $$PWD
+HEADERS += TocBaseMainWindow \
+    tocbasemainwindow.h \
+    TocMainWindow \
+    tocmainwindow.h \
+    TocContactListWidget \
+    toccontactlistwidget.h \
+    TocChatWidget \
+    tocchatwidget.h \
+    TocUserInfoWidget \
+    tocuserinfowidget.h \
+    TocSettingsWidget \
+    tocsettingswidget.h \
+    TocGeneralSettingsWidget \
+    tocgeneralsettingswidget.h \
+    TocAccountSettingsWidget \
+    tocaccountsettingswidget.h \
+    TocAccountIntermediateWidget \
+    tocaccountintermediatewidget.h \
+    TocThemesSettingsWidget \
+    tocthemessettingswidget.h \
+    TocMainToolbar \
+    tocmaintoolbar.h \
+    IconProvider \
+    iconprovider.h \
+    TocEmoticonsDialog \
+    tocemoticonsdialog.h
diff --git a/include/TocUi/TocUserInfoWidget b/include/TocUi/TocUserInfoWidget
new file mode 100644 (file)
index 0000000..946a544
--- /dev/null
@@ -0,0 +1 @@
+#include "tocuserinfowidget.h"
diff --git a/include/TocUi/iconprovider.h b/include/TocUi/iconprovider.h
new file mode 100644 (file)
index 0000000..ee883ce
--- /dev/null
@@ -0,0 +1,126 @@
+/** \file IconProvider.h
+ * \brief Declaration of IconProvider class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef ICONPROVIDER_H
+#define ICONPROVIDER_H
+
+#include <QMap>
+
+#include "defs.h"
+
+QT_BEGIN_NAMESPACE
+
+/** \brief IconProvider class
+ * 
+ * Purpose of this class is to create centralize way to access icons for contacts.
+ * It contains repository of all contact icons both default and custom marged with status frames.
+ */
+class IconProvider
+{
+
+public:
+
+       /** \brief Static public constructor
+        * 
+        * @return Pointer to the static instance
+        */
+       static IconProvider* getInstance();
+
+       /**
+        * Destructor
+        */
+       ~IconProvider();
+       
+       /** \brief This method finds suitable icon for a given contact and its presence.
+        *
+        * Function looks for an icon inside one of maps _defaultIcons when no custom icon
+        * was set (customIconPath field is empty) and _customIcons when setCustomIcon
+        * function was called for a given contact. 
+        *
+        * @param pContact Contact for which image is requested.
+        * @return Pointer to an image of user's Avatar composed with presence information (green, red or yellow frame)
+        */     
+       QImage* matchIcon(const TocContact* pContact) const;
+
+       /** \brief This method finds suitable default icon for a given gender.
+        *
+        * It's convenience function for cases when there's no possibility to set Qt::DecorationRole.
+        *
+        * @param gender Gender for which icon needs to be matched.
+        * @return Default icon for a given gender.
+        */             
+       QIcon matchIcon(Gender gender) const;
+       
+       /** \brief Extends repository of custom icons for a given contact.
+        *
+        * This method adds new set of images to _customIcons map for a contact. It also assigns _customIconId.
+        * Icon id is used later by matchIcon method to access right image. New image is created out of file
+        * from customIconPath.
+        *
+        * @param pContact Contact for which new custom icons are going to be added.
+        */             
+       void setCustomIcon(TocContact* pContact);
+
+
+private: // Methods
+
+       /** \brief Private constructor
+        * 
+        */
+       IconProvider();
+       
+       /** \brief Used to compose presence picture in case presence was changed
+        * 
+        * This method is used to compose picture showed in contact list.
+        * It use contactImage and Presence to create resultImage which is used in contact list.
+        *
+        * @param contactImage Image of user's Avatar
+        * @param presence Presence which will be displayed on resultImage
+        * @return resultImage Image of user's Avatar composed with presence information
+        */
+       QImage* addStatusFrame(const QImage* baseImage, Presence presence) const;
+
+private: // Members
+       
+       static IconProvider* mp_self;
+       
+       QMap<int,QImage*>       _customIcons;   ///Map of custom images. Created at the begining out of contacts from settings or updated by setCustomIcon. 
+       QMap<int,QImage*>       _defaultIcons;  ///Map of default images. Created inside the constructor. Used for contacts with no custom icon assign.
+       int                     _customIconId;  ///This id 'generated' by incrementation when adding new custom icon inside setCustomIcon and enables fast access to images in _customIcons map.
+       
+       QString _defaultMaleImagePath;
+       QString _defaultFemaleImagePath;
+       QString _defaultUnknownImagePath;
+};
+
+QT_END_NAMESPACE
+
+#endif // ICONPROVIDER_H
diff --git a/include/TocUi/tocaccountintermediatewidget.h b/include/TocUi/tocaccountintermediatewidget.h
new file mode 100644 (file)
index 0000000..cac22f1
--- /dev/null
@@ -0,0 +1,108 @@
+/** \file TocAccountIntermediateWidget.h
+ * \brief Declaration of TocAccountIntermediateWidget class
+ * 
+ * TOQ - Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef TOCACCOUNTINTERMEDIATEWIDGET_H
+#define TOCACCOUNTINTERMEDIATEWIDGET_H
+
+#include <QWidget>
+
+class QPushButton;
+class QFrame;
+
+QT_BEGIN_NAMESPACE
+
+/** \brief TocAccountIntermediateWidget class
+ * 
+ * Window to select account settings mode. 
+ */
+class TocAccountIntermediateWidget : public QWidget
+{
+       Q_OBJECT
+
+public:
+
+       /**
+        * Public Constructor
+        * 
+        * @param create Indicates if widget shoulb be in `Create mode`
+        */
+       TocAccountIntermediateWidget( QWidget * parent = 0, Qt::WindowFlags flags = 0 );
+
+       /**
+        * Destructor
+        */
+       ~TocAccountIntermediateWidget();
+
+       /** \brief Allows enabling/disabling FTU mode during runtime
+        * 
+        * Method for switching `FTU mode` on and off
+        * 
+        * @param bool ftu Indicates if widget should enter FTU mode
+        */
+       void enableFTUMode( bool ftu );
+
+signals:
+
+       /** \brief Emited when user clicks createButton
+        * 
+        */
+       void createClicked();
+
+       /** \brief Emited when user clicks createButton
+        * 
+        */
+       void editClicked();
+
+       /** \brief Emited when user clicks backButton
+        * 
+        */
+       void backClicked();
+
+private: // Methods
+
+       /** \brief Sets style sheets for each widget
+        * 
+        * Used to overload style sheet properties that could come from main style sheet,
+        * to forbid corruption of the application layout from the external style sheets. 
+        */
+       void setupStyles();
+
+private: // Members
+
+       QPushButton*            _pBackButton;                   /// Create Account Settings button
+       QPushButton*            _pCreateButton;                 /// Create Account Settings button
+       QPushButton*            _pEditButton;                   /// Edit Account Settings button
+       QFrame*                 _pIntermediateFrame;            /// Background frame of window
+};
+
+QT_END_NAMESPACE
+
+#endif // TOCACCOUNTINTERMEDIATEWIDGET_H
diff --git a/include/TocUi/tocaccountsettingswidget.h b/include/TocUi/tocaccountsettingswidget.h
new file mode 100644 (file)
index 0000000..1328243
--- /dev/null
@@ -0,0 +1,204 @@
+/** \file TocAccountSettingsWidget.h
+ * \brief Declaration of TocAccountSettingsWidget class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef TOCACCOUNTSETTINGSWIDGET_H
+#define TOCACCOUNTSETTINGSWIDGET_H
+
+#include <QWidget>
+#include "defs.h"
+
+class Ui_TocAccountSettingsWidgetClass;
+
+QT_BEGIN_NAMESPACE
+
+/** \brief TocAccountSettingsWidget class
+ * 
+ * Configuration window for account settings. 
+ */
+class TocAccountSettingsWidget : public QWidget
+{
+       Q_OBJECT
+
+public:
+
+       /**
+        * Public Constructor
+        */
+       TocAccountSettingsWidget( QWidget * parent = 0, Qt::WindowFlags flags = 0 );
+
+       /**
+        * Destructor
+        */
+       ~TocAccountSettingsWidget();
+
+       /** \brief Virtual method called when widget is about to be shown
+        * 
+        * Overloaded method used to reload account list, when widget is shown
+        * 
+        * @param type of show event
+        */
+       void showEvent(QShowEvent *event);      
+       
+       /** \brief Checks wheter or not widget is in Ftu mode
+        * 
+        * Returns true if `Create mode` is enabled, otherwise false
+        * 
+        */
+       inline bool createMode() const;
+
+       /** \brief Allows enabling/disabling Create mode during runtime
+        * 
+        * Method for switching `Create mode` on and off
+        * 
+        * @param bool create Indicates if widget should enter Create mode
+        */
+       void setCreateMode( bool create );
+
+       /** \brief Connects server and protocol hints
+        * 
+        * Used to enable server and protocol hints
+        */
+       void connectHints();
+
+
+signals:
+
+       /** \brief Emited when user clicks 'Ok' button
+        * 
+        * This signal is emited when user changes settings by pressing 'Ok' button
+        * and new settings differs from previous.
+        * Settings of account are already changed, when signal is emitted.
+        * 
+        */
+       void accountSettingsChanged();
+
+       /** \brief Emited when user clicks 'Create' button during `Create mode`
+        * 
+        * This signal is emited when user creates settings by pressing 'Create' button.
+        * Settings of account are already saved, when signal is emitted.
+        * 
+        */
+       void newAccountSettingsCreated();
+
+       /** \brief Emited when user clicks 'Ok' or 'Create' button
+        * 
+        * This signal is emited when user chooses to close widget by pressing 'Ok' or 'Create' button
+        * regardless if current account was changed.
+        *
+        */
+       void finished();
+
+       /** \brief Emited when user wants to go to the previous screen
+        * 
+        */
+       void backClicked();
+
+public slots:
+
+       /** \brief Reloads accounts list
+        * 
+        * This method is used to reload account data when it has changed.
+        * 
+        */
+       void reload();
+
+private slots:
+
+       /** \brief Commits new data 
+        * 
+        * Verifies data and either triggers creation of new account or stores altered data. 
+       */
+       void onOkButton();
+
+       /** \brief Allows to change password 
+        * 
+        * Shows layout for password change.
+       */
+       void onChangePasswordButton();
+       
+       /** \brief Connected to textEdited signal from loginLineEdit 
+        * 
+        * Sets text for serverLineEdit and portLineEdit according to new login 
+        * 
+        * @param newLogin new login received from signal
+       */      
+       void loginEdited(const QString& newLogin);
+
+       /** \brief Connected to currentIndexChanged signal from protocolComboBox 
+        * 
+        * Sets text for serverLineEdit and portLineEdit according to new protocol 
+        * 
+        * @param newProtocol new protocol name received from signal
+       */      
+       void protocolEdited(const QString& newProtocol);
+       
+       /** \brief Disconnects server and protocol hints
+        * 
+        * Used to disable server and protocol hints when user already changed the server
+        * (It would be annoying if hints reset his personaly chosen server and port) 
+        */
+       void disconnectHints();
+
+private: // Methods
+
+       /** \brief Displays error message 
+        * 
+        * @param errorText text of error to be displayed
+        */
+       void handleError(QString errorText);
+       
+       /** \brief Validates corectness of entered data
+        * 
+        * @return True if data is corect
+        */     
+       bool dataVerified();
+
+       /** \brief Saves edited data
+        * 
+        * If no property was changed it does nothing
+        */
+       void saveAccountData();
+
+       /** \brief Creates new account from the data
+        * 
+        */
+       void createNewAccount();
+
+private: // Members
+
+       Ui_TocAccountSettingsWidgetClass* ui;           /// Ui definition header
+       bool _bCreateMode;                                                      /// Tells if widget is in `Create mode`
+       
+};
+
+QT_END_NAMESPACE
+
+#endif // TOCACCOUNTSETTINGSWIDGET_H
diff --git a/include/TocUi/tocbasemainwindow.h b/include/TocUi/tocbasemainwindow.h
new file mode 100644 (file)
index 0000000..bf0ca9f
--- /dev/null
@@ -0,0 +1,192 @@
+/** \file TocBaseMainWindow.h
+ * \brief Declaration of TocBaseMainWindow class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef TOCBASEMAINWINDOW_H
+#define TOCBASEMAINWINDOW_H
+
+#include <QtGui/QMainWindow>
+#include "defs.h"
+
+class TocBaseEngine;
+
+/** \brief TocBaseMainWindow class
+ * 
+ * A base class for any Ui class that 
+ * wants to comunicate with TocEngine.  
+ *
+ */
+class TocBaseMainWindow : public QMainWindow
+{
+    Q_OBJECT
+
+public:
+    TocBaseMainWindow( TocBaseEngine* engine, QWidget * parent = 0, Qt::WindowFlags flags = 0 );
+    ~TocBaseMainWindow();
+
+signals:
+
+       /** \brief Emited when a user wants to change presence
+        * 
+        * This signal is emited when user changes presence in TocMainToolbar.
+        * Note: this is only a request, You should wait for the PresenceUpdated signal from TocEngine
+        * to actualy show to the user his new presence.
+        * 
+        * @param presence Requested presence
+        * @param desc Requested description
+        */
+       void presenceChanged(Presence presence, QString desc);
+
+       /** \brief Emited when a session is finished
+        * 
+        * This signal is emited when a TocChatWidget is closed.
+        * 
+        * @param uid Contact's ID
+        */
+       void sessionClosed(QString uid);
+
+       /** \brief Emited when a new message is ready to send
+        * 
+        * This signal is emited when user sends a message in one of chatwindows.
+        * 
+        * @param uid Contact's ID
+        * @param message Message to be sent
+        */
+       void newMessageReady(QString uid, Message message);
+
+       /** \brief Emited when user adds a new contact
+        * 
+        * This should be emited when user prepares new contact data
+        * using TocUserInfoWidget in "Add mode".
+        * 
+        * @param pContact      Pointer to a contact to be added.
+        */
+       void addContact(TocContact* pContact);
+
+       /** \brief Emited when user edits an existing contact
+        * 
+        * This signal is emited when user changes contact data
+        * using TocUserInfoWidget in "Edit mode".
+        * 
+        * @param pContact      Pointer to a contact to be altered.
+        * @param oldUid Previous Contact's ID
+        */
+       void editContact(TocContact* pContact, QString oldUid);
+
+       /** \brief Emited when user deletes an existing contact
+        * 
+        * This should be emited when user removes a contact from contact list.
+        * 
+        * @param uid Contact's ID
+        */
+       void removeContact(QString uid);
+
+       /** \brief Emited when user creates a new account
+        * 
+        * This signal is emited when user decides to accept or deny request for subscription from someone. 
+        * 
+        * @param uid User ID of the new account
+        * @param authorized Flag that indicates the answer 
+        */     
+       void subscriptionAccepted(QString uid, bool authorized);
+
+       /** \brief Emited when user changes the account settings
+        * 
+        */
+       void accountSettingsChanged();
+       
+protected slots:
+
+       /** \brief Slot invoked when someone wants to add us to his contact list
+        *
+        * We just received request for subsciption and need to decide whether accept it 
+        * or discard. This should be connected to the TocEngine's `AuthorizationRequest` signal.
+        * 
+        * @param uid An identificator of a peer that wants to subscribe our account to his contact list
+        */
+       virtual void onAuthorizationRequest(QString uid) = 0;
+       
+       /** \brief Slot invoked when our request for subscription has been accepted
+        * 
+        * This should be connected to the TocEngine's `SubscriptionAccepted` signal.
+        * 
+        * @param uid An identificator of a contact that was requested for subscription  
+        */     
+       virtual void onSubscriptionAccepted(QString uid) = 0;
+       
+       /** \brief Slot handling own status change
+        * 
+        * Thanks this UI can be informed about change in account status.
+        * This should be connected to the TocEngine's `StatusChanged` signal.
+        * 
+        * @param status New status of the account
+        * @param reason The reason of the change
+        */
+       virtual void onStatusChange(Status status, Reason reason) = 0;
+
+       /** \brief Slot handling own presence change
+        * 
+        * This should be connected to the TocEngine's `PresenceUpdated` signal.
+        * 
+        * @param presence New presence of the account
+        * @param desc New presence description of the account
+        */
+       virtual void onPresenceUpdate(Presence presence, QString desc) = 0;
+
+       /** \brief Slot handling contact's presence change
+        * 
+        * This should be connected to the TocEngine's `ContactPresenceUpdated` signal.
+        * 
+        * @param uid Contact's ID
+        * @param presence New presence of the contact
+        * @param desc New presence description of the contact
+        */
+       virtual void onContactPresenceUpdate(QString uid, Presence presence, QString desc) = 0;
+
+       /** \brief Slot handling incoming message
+        * 
+        * This should be connected to the TocEngine's `MessageReceived` signal.
+        * 
+        * @param uid Contact's ID
+        * @param message New message to be handled
+        */
+       virtual void onIncomingMessage(QString uid, Message message) = 0;
+       
+       /** \brief Invoked when new contact list is available
+        * 
+        * This should be connected to the TocEngine's `NewContactList` signal.
+        * 
+        * @param cList New contact list to be used
+        */ 
+       virtual void onContactListReceived(const TocContactList& cList) = 0;
+
+};
+
+#endif // TOCBASEMAINWINDOW_H
diff --git a/include/TocUi/tocchatwidget.h b/include/TocUi/tocchatwidget.h
new file mode 100644 (file)
index 0000000..9ee3480
--- /dev/null
@@ -0,0 +1,194 @@
+/** \file TocChatWidget.h
+ * \brief Declaration of TocChatWidget class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef TOCCHATWIDGET_H
+#define TOCCHATWIDGET_H
+
+#include <QWidget>
+
+#include "defs.h"
+
+class Ui_TocChatWidgetClass;
+
+QT_BEGIN_NAMESPACE
+
+/** \brief TocChatWidget class
+ * 
+ * Widget used as a conversation window. Enables sending of messages
+ * and notifies about presence changes of the contact by textual information
+ * and conversion window border color.
+ */
+class TocChatWidget : public QWidget
+{
+       Q_OBJECT
+
+public:
+       
+       /**
+        * Public Constructor
+        */
+       TocChatWidget( const QString& uid, const QString& name, Presence presence, QWidget * parent = 0, const Message& message = Message() );
+
+       /**
+        * Destructor
+        */
+       ~TocChatWidget();
+       
+       /** \brief Used to read uid property
+        * 
+        * @return ID of the Contact for which the chat was created   
+        */
+       QString uid() const { return _uid; }
+       
+       /** \brief Used to read name property
+        * 
+        * @return Name of the Contact for which the chat was created   
+        */
+       QString name() const { return _name; }
+       
+       /** \brief Used to set name property
+        * 
+        * @param New name of the Contact   
+        */
+       void onDisplayedNameChange(const QString& newName) { _name = newName; }
+       
+       /** \brief Used to handle contact's presence change
+        * 
+        * This method is used when status of the Contact has changed.
+        * It gives textual and graphical notification to the user.
+        * 
+        * @param presence New contact's presence
+        * @param description New contact's presence description
+        */
+       void onContactPresenceUpdate(Presence presence, const QString& description);
+
+       /** \brief Used to update contact's presence
+        * 
+        * This is used when the chat window was closed and did not
+        * recieved Contact Presence Updates, so it can show the current status properly.
+        */
+       void updateContactPresence(Presence presence);
+       
+       /** \brief Used to handle incoming message
+        * 
+        * @param message Message to be displayed in chat
+        */
+       void appendMessage(const Message& message);
+       
+protected:
+       
+       /** \brief Used to filter incoming events
+        * 
+        * This method is used to filter keyboards event. 
+        * If Enter key is pressed, typed message is send (as pressing Send button).
+        * If Enter key is pressed with Shift key modifier new line in entered.
+        * 
+        * @param *object Pointer to the object on which an event appears.
+        * @param *event Pointer to the event.
+        * 
+        * @return If the event is a key event Enter without Shift modifier 
+        * method returns true, otherwise false.
+        *  
+        */     
+       bool eventFilter(QObject *object, QEvent *event);
+
+       /** \brief Reimplemented from QWidget
+        * 
+        */
+       virtual void showEvent(QShowEvent* event);
+
+signals:
+
+       /** \brief Emited when new message is ready to be sent
+        *
+        * This signal is emited when user want's to send a prepared message.
+        * 
+        * @param uid Contact's ID
+        * @param message Message to be sent
+        */ 
+       void newMessageReady(const QString& uid, Message message);
+
+       /** \brief Emited Smile button clicked.
+        *
+        * This signal is emited when user clicks on Smile button in Chat view,
+        * to choose emoticon.
+        * 
+        */
+       void smileButtonClicked();
+
+private slots:
+
+       /** \brief Send message slot
+       *
+       * Invoked when message from chatWidget needs to be sent.
+       * It composes a message, emits a signal and wipes out a text from messageTextEdit.  
+       * 
+       */
+       void pressedSendButton();
+       /** \brief Shows emoticons dialog window.
+       *
+       */      
+       void showEmoticonsDialog();
+       
+
+private: // Methods
+
+       /** \brief Returns a human readable string for the given error type
+        * 
+        * @param error Error id
+        * @return Human readable error description
+        */
+       QString errorString(MessageDeliveryError error);
+
+       /** \brief Appends new message to the chat dialog edit with parsed emoticons
+        * 
+        */
+       /** \brief Inserts emoticons.
+        * 
+        * Checks user message text for emoticons aliases and replace them with 
+        * corresponding inage. 
+        *  
+        * @param message Message from user message text edit box.
+        * 
+        */     
+       void insertEmoticons(const QString& message);
+
+private: // Members
+       
+       QString _uid;                           /// User ID.
+       QString _name;                          /// User name.
+       
+       Ui_TocChatWidgetClass* ui;      /// Pointer to the TocChatWidgetClass form.
+};
+
+QT_END_NAMESPACE
+
+#endif // TOCCHATWIDGET_H
diff --git a/include/TocUi/toccontactlistwidget.h b/include/TocUi/toccontactlistwidget.h
new file mode 100644 (file)
index 0000000..d3f9b19
--- /dev/null
@@ -0,0 +1,284 @@
+/** \file TocContactListWidget.h
+ * \brief Declaration of TocContactListWidget class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef TOCCONTACTLISTWIDGET_H
+#define TOCCONTACTLISTWIDGET_H
+
+#include <QtGui/QListWidget>
+#include <QAction>
+#include <QColor>
+
+#include "defs.h"
+#include "TocSettings"
+
+QT_BEGIN_NAMESPACE
+
+/** \brief TocContactListWidget class
+ * 
+ * Widget representing the list of current account contact's.
+ * QListWidget is used in `IconMode`, and allows user to show a unique
+ * avatar for each contact. It allows user to delete add and change contact's data,
+ * and to start conversation with the contact. 
+ */
+class TocContactListWidget : public QListWidget
+{
+       Q_OBJECT
+       // Property holding color of the logo.
+       // It's a Q_PROPERTY to enable easy setting of the color with style sheet's.
+       Q_PROPERTY(QColor logoColor READ logoColor WRITE setLogoColor NOTIFY logoColorChanged)
+
+public:
+
+       /**
+        * Public Constructor
+        */
+       TocContactListWidget( QWidget * parent = 0 );
+
+       /**
+        * Destructor
+        */
+       ~TocContactListWidget();
+
+       /** \brief Method used when contact's presence has changed
+        * 
+        * This method handles presence change of a contact.
+        * 
+        * @param uid Contact's ID
+        * @param presence Contact's new presence
+        * @param description Contact's new presence description
+        */
+       void onContactPresenceUpdate(const QString& uid, Presence presence, const QString& description);
+
+       /** \brief This method translates Contact's ID to its Name
+        * 
+        * This method is used when TocMainWindow needs the Name for
+        * the given Uid, in order to create a new TocChatWidget. 
+        * 
+        * @param uid Contact's ID
+        * @return Displayed Name of the contact
+        */
+       QString getDisplayedName(const QString& uid);
+
+       /** \brief This method is used to find specific contact on the list by contact's uid
+        * 
+        * It searches for the user in contact list and returns it's item,
+        * if there is no such contact it returns 0. It's possible to exlude particular
+        * item from search. It's used when editing an exisiting contact because contact data
+        * are associated with the same QListWidgetItem pointer.
+        * 
+        * @param item Item to be excluded from searching
+        * @param uid Contact's ID
+        * @param pExcludedItem Item from the list 
+        * @return Pointer to found item
+        */
+       QListWidgetItem* findItem(const QString& uid, const QListWidgetItem* pExcludedItem = 0);
+
+       /** \brief Clears statuses of contacts
+        * 
+        * Typicaly used to clear statuses after setting the self-status to Offline
+        */
+       void clearStatuses();
+       
+       /** \brief Getter for logoColor property
+        * 
+        */
+       QColor logoColor() const;
+       
+       /** \brief Setter for logoColor property
+        * 
+        */
+       void setLogoColor(QColor rgb);
+
+protected:
+
+       /** \brief Implementation of the interface that allows to handle mouse double click event
+        */
+       void mouseDoubleClickEvent(QMouseEvent *event);
+       
+       /** \brief Implementation of the interface that allows to handle context menu event
+        * 
+        *  It creates context menu for managing contact items on the list.
+        */     
+       void contextMenuEvent(QContextMenuEvent *event);
+       
+       /** \brief Implementation of the interface that allows to handle custom paint events
+        * 
+        *  It allows to paint Tieto logo in contact list view.
+        */     
+       void paintEvent(QPaintEvent * event);
+
+
+signals:
+
+       /** \brief Emited when user chooses a contact to chat with 
+        * 
+        * This signal is emited when user selects and then clicks an item on the list.
+        * 
+        * @param uid Contact's ID
+        * @param name Contact's name
+        * @param presence Contact's presence
+        * 
+        */
+       void triggered(const QString& uid, const QString& name, Presence presence);
+
+       /** \brief Emited when user requests to see a contact info 
+        * 
+        * This signal is emited when user selects to edit contact's data
+        * or if the user wants to add new contact to the list ( then *item == QListWidgetItem() ).
+        * 
+        * @param pItem Contact item to be edited or added
+        */
+       void contactInfoRequest(QListWidgetItem* pItem);
+
+       /** \brief Emited when contact is removed
+        * 
+        * This signal is emited when user wants to delete the contact with given Uid.
+        * Note that the contact should be already deleted from the TocListWidget
+        * before it's emision. 
+        * 
+        * @param uid Contact's ID
+        */
+       void removedContact(const QString& uid);
+
+       /** \brief Emited when user commits the changes
+        * 
+        * This signal is emited when user finished adding contact. 
+        * 
+        * @param pContact      Pointer to a contact to be added.
+        */
+       void addContact(TocContact* pContact);
+       
+       /** \brief Emited when user commits the changes
+        * 
+        * This signal is emited when user finished editing contact data. 
+        * 
+        * @param pContact      Pointer to a contact to be altered.
+        * @param oldUid Previous ID of a contact (omited if widget is in "Add Mode")
+        */
+       void editContact(TocContact* pContact, QString oldUid);
+       
+       /** \brief Emited when name of the contact has been changed 
+        * 
+        * This signal is emited to notify that user chas changed the displayed name
+        * of the contact so it can be used to change the name at runtime
+        * in TocChatWindow and in active sessions menu of TocMainToolbar.
+        * 
+        * @param uid Contact's ID
+        * @param name New displayed name of the contact
+        */
+       void displayedNameChanged( const QString& uid, const QString& name);
+       
+       /** \brief Emited when name of the logoCount property has been changed 
+        * 
+        * When logoCount property is changed, this signal is emited, with new value as a parameter.
+        * 
+        * @param rgb new value of logoColor property
+        */
+       void logoColorChanged(QColor rgb);
+       
+public slots:
+
+       /** \brief Used to set a contact list to the widget
+        * 
+        * This slot is used when a new TocContactList has arived from TocEngine.
+        * Data from the list should be copied to QListWidgetItem's.
+        * 
+        * @param contactList New contact list to be handled
+        */
+       void onNewContactList(const TocContactList& contactList);
+
+       /** \brief Used when user finishes editing new contact data
+        * 
+        * This slot is used when user actualy commits new contact's addition
+        * from the TocUserInfoWidget. It adds created item to the contact list.
+        * 
+        * @param pNewItem Item to be added
+        */
+       void commitAdd(QListWidgetItem* pNewItem);
+
+       /** \brief Used when user finishes edition of contact data
+        * 
+        * This slot is used when user actualy commits changes to the contact
+        * from the TocUserInfoWidget.
+        * 
+        * @param pEditedItem Item with changed data
+        */
+       void commitEdit(QListWidgetItem* pEditedItem);
+
+private slots:
+
+       /** \brief Slot that reacts on Edit action from context menu
+        * 
+        * It extracts QListWidgetItem from sender and posts it to UserInfoWidget
+        * for edition.
+        */
+       void onEditRequested();
+
+       /** \brief Slot that reacts on Remove action from context menu
+        * 
+        * It extracts QListWidgetItem from sender, removes it from the contacts list
+        * and notifies engine about it.
+        */     
+       void onRemoveRequested();
+       
+       /** \brief Slot that sets the color of the logo
+        * 
+        * This method paints the logo with the color provided.
+        * 
+        * @param rgb Color to be set for the logo
+        */
+       void changeLogoColor(QColor rgb);
+
+private: // Methods
+
+       /** \brief Sorts all the items in the list widget
+        * 
+        * This method sorts all the items in the list widget according to
+        * the specified order.
+        * TODO: only Literal sorting is now implemented, implement other methods as well
+        * 
+        * @param order Order to sort by
+        */
+       void sortItems(SortOrder order = Alphabetical);
+
+private: // Members
+
+       TocContact                      _currentEditedContact;  /// Temporary TocContact used in the process of editing an item
+       QListWidgetItem*                _pCurrentEditedItem;    /// Temporary item used in the process of editing an item       
+       QAction                         _editAction;            /// An action from context menu that triggers edition of selected item. It's connected to onEditRequested() slot
+       QAction                         _removeAction;          /// An action from context menu that triggers deletion of selected item. It's connected to onRemoveRequested() slot
+       QImage*                         _logo;                  /// Logo image mask. Created inside constructor.
+       QColor                          _logoColor;             /// Color in RGB of the logo. (Q_PROPERTY logoColor)
+};
+
+QT_END_NAMESPACE
+
+#endif // TOCCONTACTLISTWIDGET_H
diff --git a/include/TocUi/tocemoticonsdialog.h b/include/TocUi/tocemoticonsdialog.h
new file mode 100644 (file)
index 0000000..f24a5b4
--- /dev/null
@@ -0,0 +1,97 @@
+/** \file TocEmoticonsDialog.h
+ * \brief Declaration of TocEmoticonsDialog class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef TOCEMOTICONSDIALOG_H
+#define TOCEMOTICONSDIALOG_H
+
+#include <QDialog>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_TocEmoticonsDialogClass;
+class QListWidgetItem;
+
+class TocEmoticonsDialog : public QDialog
+{
+    Q_OBJECT
+
+public:
+          
+       /** \brief Static public constructor
+        * 
+        * @param parent Emoticons dialog parent widget for application style inheretance.
+        * 
+        * @return Pointer to the static instance
+        */
+       
+       static TocEmoticonsDialog* getInstance(QWidget* parent);
+       
+       /** \brief Emoticon alias method.
+        * 
+        * @return String alias for the selected emoticon.
+        */     
+       QString getSelectedEmoticonAlias();
+       
+private:
+       
+       /**
+        * Private Constructor
+        */     
+    TocEmoticonsDialog(QWidget *parent = 0);
+    
+       /**
+        * Destructor
+        */
+    ~TocEmoticonsDialog();     
+       
+private slots:
+
+       /** \brief Emoticon selected slot
+       *
+       * Invoked when user selects an emoticon from the emoticons dialog window.
+       *
+       * @param pItem Selected emoticon from the list. 
+       *   
+       */
+       void onEmoticonSelected(QListWidgetItem* pItem);
+       
+private:
+       
+       static TocEmoticonsDialog* _pSelf;      /// Static pointer to TocEmoticonDialog class.
+       
+       QString _selectedEmoticonAlias;         /// Selected emoticon string alias.
+       
+    Ui_TocEmoticonsDialogClass* ui;            /// Pointer to the TocEmoticonsDialogClass form.
+};
+
+QT_END_NAMESPACE
+
+#endif // TOCEMOTICONSDIALOG_H
diff --git a/include/TocUi/tocgeneralsettingswidget.h b/include/TocUi/tocgeneralsettingswidget.h
new file mode 100644 (file)
index 0000000..7f524ed
--- /dev/null
@@ -0,0 +1,90 @@
+/** \file TocGeneralSettingsWidget.h
+ * \brief Declaration of TocGeneralSettingsWidget class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef TOCGENERALSETTINGSWIDGET_H
+#define TOCGENERALSETTINGSWIDGET_H
+
+#include <QWidget>
+#include "defs.h"
+
+class Ui_TocGeneralSettingsWidgetClass;
+
+QT_BEGIN_NAMESPACE
+
+/** \brief TocGeneralSettingsWidget class
+ * 
+ * Configuration window for general application settings. 
+ */
+class TocGeneralSettingsWidget : public QWidget
+{
+       Q_OBJECT
+
+public:
+
+       /**
+        * Public Constructor
+        */
+       TocGeneralSettingsWidget( QWidget * parent = 0, Qt::WindowFlags flags = 0 );
+
+       /**
+        * Destructor
+        */
+       ~TocGeneralSettingsWidget();
+
+signals:
+
+       /** \brief Signal connected to returnToContacts() slot in TocMainWindow
+        * 
+        */
+       void finished();
+
+       /** \brief Signal connected to returnToSettings() slot in TocMainWindow
+        * 
+        */
+       void backClicked();
+
+private slots:
+
+       /** \brief Used to save general settings
+        * 
+        * This slot is used when user clicks on the Ok button.
+        * Information in UI are saved into TocSettings 
+        */
+       void saveGeneralSettings();
+
+private: // Members
+
+       Ui_TocGeneralSettingsWidgetClass* ui;                   /// Ui definition header
+};
+
+QT_END_NAMESPACE
+
+#endif // TOCGENERALSETTINGSWIDGET_H
diff --git a/include/TocUi/tocmaintoolbar.h b/include/TocUi/tocmaintoolbar.h
new file mode 100644 (file)
index 0000000..dcd054c
--- /dev/null
@@ -0,0 +1,456 @@
+/** \file TocMainToolbar.h
+ * \brief Declaration of TocMainToolbar class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef TOCMAINTOOLBAR_H
+#define TOCMAINTOOLBAR_H
+
+#include <QWidget>
+#include <QWidgetAction>
+#include <QHBoxLayout>
+
+#include "defs.h"
+#include "uidefs.h"
+
+class QPushButton;
+class QMenu;
+class QAction;
+class QLabel;
+class ActiveSessions;
+class ScrollWidget;
+
+QT_BEGIN_NAMESPACE
+
+/** \brief TocMainToolbar class
+ * 
+ * Applications  main toolbar used to control window switching, presence changes
+ * and management of active chat windows.
+ * It also shows current activity name, notifies about incoming messages
+ * and allows to quickly switch between converstion and contact list and back.
+ * The main toolbar is allways visible in applications window.
+ */
+class TocMainToolbar : public QWidget
+{
+       Q_OBJECT
+
+public:
+
+       /**
+        * Public Constructor
+        */
+       TocMainToolbar( QWidget * parent = 0, Qt::WindowFlags flags = 0 );
+
+       /**
+        * Destructor
+        */
+       ~TocMainToolbar();
+       
+       /** \brief This method is used when new message arives
+        * 
+        * When the message arives, `Active Sessions` button should notify this
+        * by changing color of the button and the corresponding menu action.
+        * If action doesn't exist, it must create it.
+        * 
+        * @param uid Contact's uid
+        * @param name Contact's name
+        * @param presence Contact's current presence
+        */
+       void onNewMessage(const QString& uid, const QString& name = "", Presence presence = Unspecified);
+       
+       /** \brief This method is used when current window changes
+        * 
+        * It is used only if window changes without the knowledge of TocMainToolbar
+        * (i.e. when not triggered by toolbar but by settings window or contact list).
+        * 
+        * @param viewType Type of the window
+        * @param text Text to be displayed in notification area
+        */
+       void onCurrentView(ViewType viewType, const QString& text = QString() );
+       
+       /** \brief This method is used to handle contacts dislayed name changes
+        * 
+        * It changes the name of the corresponding action.
+        * 
+        * @param uid Contact's uid
+        * @param name New contact's name
+        */
+       void onDisplayedNameChange(const QString& uid, const QString& name);
+       
+       /** \brief This method is used to handle contacts presence changes
+        * 
+        * It changes the presence icon of the corresponding action.
+        * 
+        * @param uid Contact's uid
+        * @param name New contact's name
+        */
+       void onContactPresenceUpdate(const QString& uid, Presence presence);
+       
+       /** \brief This method is used to handle account presence changes
+        * 
+        * It should follow the `presenceUpdated` signal if presence change
+        * was succesfull.
+        * 
+        * @param presence Own presence
+        * @param desc Own presence description
+        */
+        void onPresenceUpdate(Presence presence, const QString& desc);
+
+        
+        /** \brief Used to close all sessions at once
+         * 
+         * Closes all sessions at once on request from outside of the toolbar.
+         * Typicaly useful when user changes account data
+         * and the previous sessions needs to be cleared.
+         */
+        void clearAllSessions();
+
+signals:
+
+       /** \brief Emited when user chooses a conversation window from active sessions menu
+        * 
+        * This signal is emited when user triggers an action in `Active Sessions` menu.
+        * 
+        * @param uid Contact's ID
+        * @param name Contact's name
+        */
+       void activeSessionTriggered(const QString& uid, const QString& name);
+
+       /** \brief Emited when user closes the chat window
+        * 
+        * This signal is emited when user chooses to close current chat window.
+        * 
+        * @param uid Contact's ID for which the window was created
+        */
+       void finishedSession(const QString& uid);
+
+       /** \brief Emited when user closes all chat windows
+        * 
+        * This signal is emited when user chooses to close all chat windows
+        * using `Close All Sessions` button in `Active Sessions` menu.
+        */
+       void finishedAllSessions();
+
+       /** \brief Emited when user chooses contact list
+        * 
+        * This signal is emited when user clicks contacts button.
+        */
+       void contactsClicked();
+
+       /** \brief Emited when user chooses settings window
+        * 
+        * This signal is emited when user clicks settings button.
+        */
+       void settingsClicked();
+
+       /** \brief Emited when user changes presence 
+        * 
+        * This signal is emited when user requests presence change using
+        * presence button's menu.
+        * 
+        * @param presence Requested presence
+        * @param desc Requested presence description
+        */
+       void presenceUpdate(Presence presence, const QString& desc);
+
+public slots:
+
+       /** \brief This slot is used when user requests a new session
+        * 
+        * When new session is started at user request, main toolbar should react for this
+        * by displaying the name of a contact and disabling the corresponding menu action.
+        * If action doesn't exist, main toolbar must create it.
+        * 
+        * @param uid Contact's uid
+        * @param name Contact's name
+        * @param presence Contact's current presence
+        */
+       void onNewSession(const QString& uid, const QString& name, Presence presence);
+
+private slots:
+
+       /** \brief Used to close current session
+        * 
+        * Connected to the notification area button when in "Close role".
+        */
+       void closeCurrentSession();
+
+       /** \brief Used to close all sessions at once
+        * 
+        * Connected to the close all sessions action, and closes all sessions in one run.
+        */
+       void closeAllSessions();
+
+       /** \brief Used to return to the last chat window
+        * 
+        * Connected to the notification area button when in "Return role".
+        */
+       void restoreCurrentSession();
+
+       /** \brief Used when user clicks on a name in active sessions menu
+        * 
+        * Handles user clicks in action's from active sessions menu,
+        * it does nothing when action is Close All Sessions action.
+        * 
+        * @param action The action triggered
+        */ 
+       void onActiveSessionTriggered(QAction* pAction);
+
+       /** \brief Used when user clicks on a presence in presence button's menu
+        * 
+        * Handles user clicks in action's from presence button's menu.
+        * 
+        * @param action The action triggered
+        */ 
+       void onTriggeredPresence(QAction* action);
+       
+       /** \brief Used to handle `Contacts Button` click action
+        * 
+        * If user clicks `Contacts Button` the toolbar should change
+        * the `Label Button` text to "" and disable it, but if there is chat window active
+        * the `Label Button` should display Name of the Contact the chat is active for,
+        * and change it's mode to "Restore Chat".
+        */
+       void onContactsClicked();
+       
+       /** \brief Used to handle `Settings Button` click action
+        * 
+        * If user clicks `Contacts Button` the toolbar should change
+        * the `Label Button` text to "Settings" and disable it.
+        * It should also disconnect all the connections made for `Label Button`.
+        */
+       void onSettingsClicked();
+
+       
+private: // Methods
+       
+       /** \brief Sets style sheets for each widget
+        * 
+        * Used to overload style sheet properties that could come from main style sheet,
+        * to forbid corruption of the application layout from the external style sheets. 
+        */
+       void setupStyles();
+       
+       /** \brief Returns an action with the given Uid
+        * 
+        * If the action is not on the list it retruns 0.
+        * 
+        * @param uid Contact's ID
+        */
+       QAction* action( const QString& uid );
+       
+       /** \bried Highlights the selected button
+        * 
+        * @param button Button to be highlighted
+        */
+       void highlightButton(const QPushButton* button);
+
+private: // Members
+
+       QPushButton*    statusButton;                   /// Button for the presence menu
+       QPushButton*    statusAreaButton;               /// Notification area button ("Eduardo button")
+       QLabel*                 statusAreaLabel;                /// Notification area label ("Eduardo label")
+       QPushButton*    activeSessionsButton;   /// Button for the active sessions menu
+       QPushButton*    settingsButton;                 /// Settings button
+       QPushButton*    contactsButton;                 /// Contact list button
+       QMenu*                  statusMenu;                             /// Status selection menu
+       QAction*                onlineAction;                   /// Action for online presence
+       QAction*                awayAction;                             /// Action for away presence
+       QAction*                busyAction;                             /// Action for busy presence
+       QAction*                hiddenAction;                   /// Action for hidden presence
+       QAction*                offlineAction;                  /// Action for offline presence
+       
+       ActiveSessions* _pActiveSessions;               /// Pointer to an object that manages active sesssions
+       
+};
+
+
+/** \brief ActiveSessions class
+ * 
+ * Class that encapsulates active sessions menu. The main role of this class it to ensure that 
+ * there aren't to many actions displayed on the screen at the same time and allows to scroll
+ * them. 
+ */
+
+class ActiveSessions: public QWidget
+{
+       Q_OBJECT
+       
+public:
+
+       /**
+        * Public Constructor
+        */
+       ActiveSessions(QWidget * parent = 0);
+       
+       /** \brief It adds an action to _pActiveSessionsMenu
+        * 
+        * When adding new action this function takes into account how many actions can be shown 
+        * at the same time (_visibleActionsAllowed) and also when to show additional itmes like
+        * _pCloseAllSessionsAction or _pScrollAction.
+        * 
+        * @param pAction action to be added
+        */
+       void addAction(QAction *pAction);
+       
+       /** \brief It removes an action from _pActiveSessionsMenu
+        * 
+        * When removing an action this function takes into account how many actions can be shown 
+        * at the same time (_visibleActionsAllowed) and also when to show additional itmes like
+        * _pCloseAllSessionsAction or _pScrollAction.
+        * 
+        * @param pAction action to be added
+        */
+       void removeAction(QAction *pAction);
+       
+       /** \brief Removes currently selected action from the menu selects a new one and returns a pointer to it
+        * 
+        */
+       QAction* closeCurrentSession();
+
+       /** \brief Returns a disabled action
+        * 
+        * If there is no disabled action it retruns 0.
+        */
+       QAction* disabledAction() const;
+       
+       /** \brief Returns an action with the given Uid
+        * 
+        * If the action is not on the list it retruns 0.
+        * 
+        * @param uid Contact's ID
+        */
+       QAction* action(const QString& uid) const;
+       
+       /** \brief Returns a list of an actions from _pActiveSessionsMenu
+        * 
+        */
+       QList<QAction*> actions() const;
+       
+       /** \brief Clears all actions from _pActiveSessionsMenu
+        * 
+        */
+       void clear();
+       
+       /** \brief Returns a pointer to _pActiveSessionsMenu
+        * 
+        */
+       QMenu* menu() const {return _pActiveSessionsMenu;} 
+       
+       /** \brief Handles change of a presence
+        * 
+        * It resets an icon according to new presence
+        * 
+        * @param uid Contact's uid
+        * @param presence New presence 
+        */
+       void onContactPresenceUpdate(const QString& uid, Presence presence);
+       
+       /** \brief Handles new message event
+        * 
+        * It checks for an action for given uid and eventually creats a new one
+        * 
+        * @param uid Uid of a contact for which new message come
+        * @param name Contact's name 
+        * @param presence Contact's presence 
+        */
+       void onNewMessage(const QString& uid, const QString& name, Presence presence);
+       
+       /** \brief This slot is used when user requests a new session
+        * 
+        * This function selects an action with given uid or if it doesn't exist adds it to menu.
+        * 
+        * @param uid Contact's uid
+        * @param name Contact's name
+        * @param presence Contact's current presence
+        */
+       void onNewSession(const QString& uid, const QString& name, Presence presence);  
+       
+private:
+
+       /** \brief Enables or disables scroll up and down buttons according to currently visible actions
+        * 
+        */
+       void checkScrollButtonsState(); 
+
+private slots:
+
+       /** \brief Scrolls up actions from _actionsList that are visible in _pActiveSessionsMenu
+        * 
+        */
+       void scrollUp();
+       
+       /** \brief Scrolls down actions from _actionsList that are visible in _pActiveSessionsMenu
+        * 
+        */     
+       void scrollDown();
+       
+private:
+       
+       QMenu*                                          _pActiveSessionsMenu;           /// Menu for chat window selection
+       QAction*                                        _pCloseAllSessionsAction;       /// Action to close all active sessions
+       QAction*                                        _pSeparatorAction;                      /// Action for separator
+       QWidgetAction*                          _pScrollAction;                         /// Action from _pActiveSessionsMenu that is associated with _pScrollWidget
+       ScrollWidget*                           _pScrollWidget;                         /// Widget with two buttons that enables scrolling
+       QList<QAction*>                         _actionsList;                           ///     List of actions that not includes 'Close all', separator and scroll
+       const int                                       _visibleActionsAllowed;         /// Variable that limits amount of active session actions present on _pActiveSessionsMenu
+       QList<QAction*>::iterator       _firstVisibleAction;            /// Iterator that is fixed on first active session action from _pActiveSessionsMenu
+       QList<QAction*>::iterator       _lastVisibleAction;                     /// Iterator that is fixed on last active session action from _pActiveSessionsMenu
+       
+};
+
+
+/** \brief ScrollWidget class
+ * 
+ * This small widget was meant as a part of active sessions menu to provide a way to scroll it. 
+ */
+
+class ScrollWidget: public QWidget
+{
+       Q_OBJECT
+       
+public:
+       /**
+        * Public Constructor
+        */
+       ScrollWidget(QWidget *parent = 0);
+       
+       QPushButton*    scrollUpButton() const { return _pScrollUpButton; }
+       QPushButton*    scrollDownButton() const { return _pScrollDownButton; } 
+       
+private:
+       QPushButton*    _pScrollUpButton;
+       QPushButton*    _pScrollDownButton;
+       QHBoxLayout*    _pLayout;
+};
+
+
+QT_END_NAMESPACE
+
+#endif // TOCMAINTOOLBAR_H
diff --git a/include/TocUi/tocmainwindow.h b/include/TocUi/tocmainwindow.h
new file mode 100644 (file)
index 0000000..9637f7d
--- /dev/null
@@ -0,0 +1,322 @@
+/** \file TocMainWindow.h
+ * \brief Declaration of TocMainWindow class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef TOCMAINWINDOW_H
+#define TOCMAINWINDOW_H
+
+#include <QMainWindow>
+#include <QListWidgetItem>
+#include "TocBaseMainWindow"
+#include "defs.h"
+
+class TocBaseEngine;
+class QStackedLayout;
+class TocChatWidget;
+class TocMainToolbar;
+class TocContactListWidget;
+class TocUserInfoWidget;
+class TocSettingsWidget;
+class TocGeneralSettingsWidget;
+class TocAccountSettingsWidget;
+class TocAccountIntermediateWidget;
+class TocNetworkSettingsWidget;
+class TocThemesSettingsWidget;
+class QCloseEvent;
+
+QT_BEGIN_NAMESPACE
+
+/** \brief TocMainWindow class
+ * 
+ * Class responsible for user GUI management
+ * and for communication with TocEngine.
+ */
+class TocMainWindow : public TocBaseMainWindow
+{
+       Q_OBJECT
+       Q_CLASSINFO("D-Bus Interface", "org.indt.tietoopcom")
+
+public:
+
+       /**
+        * Public Constructor
+        */
+       TocMainWindow( TocBaseEngine* engine, QWidget * parent = 0, Qt::WindowFlags flags = 0 );
+
+       /**
+        * Destructor
+        */
+       ~TocMainWindow();
+
+protected:
+       
+       /** \brief Reimplemented from QWidget
+        * 
+        */
+       virtual void closeEvent(QCloseEvent* event);
+       
+public slots:
+       Q_SCRIPTABLE int top_application();
+       
+protected slots:
+
+       /** \brief Reimplemented from TocBaseMainWindow
+        * 
+        */
+       void onAuthorizationRequest(QString uid);
+       
+       /** \brief Reimplemented from TocBaseMainWindow
+        * 
+        */
+       void onSubscriptionAccepted(QString uid);
+       
+       /** \brief Reimplemented from TocBaseMainWindow
+        * 
+        */
+       void onStatusChange(Status status, Reason reason);
+
+       /** \brief Reimplemented from TocBaseMainWindow
+        * 
+        */
+       void onPresenceUpdate(Presence presence, QString desc);
+
+       /** \brief Reimplemented from TocBaseMainWindow
+        * 
+        */
+       void onContactPresenceUpdate(QString uid, Presence presence, QString desc);
+
+       /** \brief Reimplemented from TocBaseMainWindow
+        * 
+        */
+       void onIncomingMessage(QString uid, Message message);
+       
+       /** \brief Reimplemented from TocBaseMainWindow
+        * 
+        */
+       void onContactListReceived(const TocContactList& cList);        
+
+private slots:
+
+       /** \brief Shows chat window for the given Uid
+        * 
+        * If the chat with Uid is already created, just show it,
+        * if not, create a chat with the given Uid and Name
+        * and emit newSessionStarted(Uid) signal.
+        * Note that this is overloaded SLOT, take caution with that.
+        * 
+        * @param uid Contact's ID
+        * @param name Contact's name
+        * @param presence Contact's current presence
+        */
+       void showChat(const QString& uid, const QString& name, Presence presence = Offline);
+
+
+       /** \brief Closes a chat for the given Uid
+        * 
+        * This slot closes a chat for the given Uid
+        * and emits sessionClosed(Uid) signal to the engine.
+        * 
+        * @param uid Contact's ID
+        */
+       void closeChat(const QString& uid);
+
+       /** \brief Closes all active chat windows
+        * 
+        * This slot closes all open chat windows
+        * and emits sessionClosed(Uid) signal for each chat.
+        */
+       void closeAllOpenChats();
+
+       /** \brief Closes all active chat windows
+        * 
+        * This slot closes and deletes all created chat windows
+        * and emits sessionClosed(Uid) signal for each chat.
+        * This is typicaly useful when user changes account data.
+        */
+       void clearAllChats();
+
+       /** \brief Shows window of a given type
+        * 
+        * Shows a TocWidget of the type == ViewType (except for TocChatWidget)
+        * `ViewType` is static-casted to `int` in a signal emission in the TocSettingsWidget
+        * si it could use a QSignalMapper class.
+        * 
+        * @param type Type of the view to be shown 
+        */
+       void showView(/*ViewType*/int type);
+
+       /** \brief Shows TocUserInfoWidget
+        * 
+        * Creates and displays TocUserInfoWidget with the data provided by the signal.
+        * 
+        * @param item Item with contact's data (*item==QListWidgetItem() if You want TocUserInfoWidget to be run in "Add mode")
+        */
+       void showUserInfo(QListWidgetItem* item);
+       
+       /** \brief Shows TocContactListWidget
+        * 
+        * Displays TocContactListWidget.
+        */
+       void showContacts();
+       
+       /** \brief Shows TocContactListWidget
+        * 
+        * Displays TocContactListWidget.
+        * Also informs TocMainToolbar about the change.
+        */
+       void returnToContacts();
+       
+       /** \brief Shows TocSettingsWidget
+        * 
+        * Creates if necessary and displays TocSettingsWidget.
+        */
+       void showSettings();
+       
+       /** \brief Shows TocSettingsWidget
+        * 
+        * Displays TocSettingsWidget .
+        * Also informs TocMainToolbar about the change.
+        */
+       void returnToSettings();
+       
+       /** \brief Shows TocAccountSettingsWidget
+        * 
+        * Creates if necessary and displays TocAccountSettingsWidget.
+        */
+       void showAccount();
+       
+       /** \brief Shows TocAccountIntermediateWidget
+        * 
+        * Creates if necessary and displays TocAccountIntermediateWidget .
+        */
+       void returnToIntermediate();
+
+       /** \brief Shows TocAccountSettingsWidget in `Create mode`
+        * 
+        * Creates if necessary and displays TocAccountSettingsWidget.
+        * When user clicks `Create` button the account settings are
+        * saved in TocSettings and the `_register` flag of TocSettings is set to "true".
+        */
+       void showAccountCreate();
+       
+       /** \brief Changes the displayed name in the application on user request
+        * 
+        * If a user changes the displayed name using TocUserInfoView in editing mode
+        * the slot changes the name in the TocContactListWidget and, if needed,
+        * in TocMainToolbar and TocChatWidget.
+        * 
+        * @param uid Contact's ID
+        * @param name Contact's new name
+        */
+       void onDisplayedNameChange(const QString& uid, const QString& name);    
+
+       /** \brief Reloads the displayed application theme
+        * 
+        * Reads file URL from settings and sets the stylesheet as the current one.
+        */     
+       void reloadTheme();
+
+       /** \brief This slot prepares Toc for the account details change
+        * 
+        * It disconnects, clears the contact list and active sessions list.
+        */
+       void onAccountSettingsChanged();
+
+       /** \brief This slot prepares Toc for the new account creation
+        * 
+        * It disconnects, clears the contact list and active sessions list.
+        * Then it connects with the `_register` parameter set to true,
+        * when the connection is successfull the account has been created.
+        */
+       void onAccountSettingsCreated();
+
+       /** \brief Shows About info widget
+        * 
+        */
+       void showAbout();
+       
+private: // Methods
+
+       /** \brief Returns cached TocChatWidget for the given Uid
+        * 
+        * If there is a chached chat with the given uid then
+        * it returns pointer to this chat, if not it returns 0.
+        * 
+        * @param uid Contact's ID
+        * @return Pointer to the chached TocChatWidget or 0 if there is no active chat.
+        */
+       TocChatWidget* chatForUid(const QString& uid);
+
+       /** \brief Returns active/open TocChatWidget for the given Uid
+        * 
+        * If there is a active/open chat with the given uid then
+        * it returns pointer to this chat, if not it returns 0.
+        * 
+        * @param uid Contact's ID
+        * @return Pointer to the active/open TocChatWidget or 0 if there is no active chat.
+        */
+       TocChatWidget* openChatForUid(const QString& uid);
+
+       /** \brief Checks if this is FTU
+        * 
+        * returns true if settings on which FirstTimeUse case is based, are empty
+        * 
+        * @return bool value indicating FTU use case
+        */
+       bool isFtu();
+
+       /** \brief Returns an error string for the given error
+        * 
+        * @param reason Reason of the error
+        * @return Human readable error string
+        */
+       QString errorString(Reason reason);
+
+private: // Members
+       QString                         _defaultStyle;          /// Default application style sheet
+
+       QList<TocChatWidget*>*          _pChatList;             /// List of cached chat widgets
+       QList<TocChatWidget*>*          _pOpenChatList;         /// List of active/open chat widgets
+       TocMainToolbar*                 _pMainToolbar;          /// Pointer to a toolbar that allows user to control the UI
+       QStackedLayout*                 _pMainLayout;           ///     Layout displaying all the "following" widgets
+       QWidget*                        _pCentralWidget;        /// Main Window's Central Widget 
+       TocContactListWidget*           _pContactList;          /// Widget displaying list of contacts 
+       TocUserInfoWidget*              _pUserInfoWidget;       /// Widget displaying contact info
+       TocSettingsWidget*              _pSettingsWidget;       /// Widget displaying settings window
+       TocGeneralSettingsWidget*       _pGeneralWidget;        /// Widget displaying general settings
+       TocAccountSettingsWidget*       _pAccountWidget;        /// Widget displaying account settings
+       TocAccountIntermediateWidget*   _pIntermediateWidget;   /// Widget that lets user to choose account settings mode 
+       TocThemesSettingsWidget*        _pThemesWidget;         /// Widget displaying themes setting
+       bool                            _register;              /// Flag indicating if TietoOpCom is in "Create Account Mode"
+};
+
+QT_END_NAMESPACE
+
+#endif // TOCMAINWINDOW_H
diff --git a/include/TocUi/tocsettingswidget.h b/include/TocUi/tocsettingswidget.h
new file mode 100644 (file)
index 0000000..34c790f
--- /dev/null
@@ -0,0 +1,97 @@
+/** \file TocSettingsWidget.h
+ * \brief Declaration of TocSettingsWidget class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef TOCSETTINGSWIDGET_H
+#define TOCSETTINGSWIDGET_H
+
+#include <QWidget>
+#include "defs.h"
+
+class QSignalMapper;
+class QPushButton;
+class QFrame;
+
+QT_BEGIN_NAMESPACE
+
+/** \brief TocSettingsWidget class
+ * 
+ * Widged used to display available configuration windows and
+ * to choose between them.
+ */
+class TocSettingsWidget : public QWidget
+{
+       Q_OBJECT
+
+public:
+
+       /**
+        * Public Constructor
+        */
+       TocSettingsWidget( QWidget * parent = 0, Qt::WindowFlags flags = 0 );
+
+       /**
+        * Destructor
+        */
+       ~TocSettingsWidget();
+
+signals:
+
+       /** \brief Emited when user selects settings subsection
+        * 
+        * ViewType is casted to int because TocSettingsWidget
+        * uses a QSignalMapper for convenience.
+        * 
+        * @param viewType ViewType casted to int of the selected settings
+        */
+       void triggered(/*ViewType*/int viewType);
+
+private: // Methods
+
+       /** \brief Sets style sheets for each widget
+        * 
+        * Used to overload style sheet properties that could come from main style sheet,
+        * to forbid corruption of the application layout from the external style sheets. 
+        */
+       void setupStyles();
+
+private: // Members
+
+       QSignalMapper*                          signalMapper;   /// QSignalMapper used for convenience
+       QPushButton*                            generalButton;  /// General Settings button
+       QPushButton*                            accountButton;  /// Account Settings button
+       QPushButton*                            backButton;             /// Back button
+       QPushButton*                            themesButton;   /// Themes Settings button
+       QFrame*                                         settingsFrame;  /// Background frame of window
+};
+
+QT_END_NAMESPACE
+
+#endif // TOCSETTINGSWIDGET_H
diff --git a/include/TocUi/tocthemessettingswidget.h b/include/TocUi/tocthemessettingswidget.h
new file mode 100644 (file)
index 0000000..928f044
--- /dev/null
@@ -0,0 +1,105 @@
+/** \file TocThemesSettingsWidget.h
+ * \brief Declaration of TocThemesSettingsWidget class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef TOCTHEMESSETTINGSWIDGET_H
+#define TOCTHEMESSETTINGSWIDGET_H
+
+#include "defs.h"
+
+#include <QtGui/QWidget>
+
+class Ui_TocThemesSettingsWidgetClass;
+
+class QShowEvent;
+
+QT_BEGIN_NAMESPACE
+
+/** \brief TocThemesSettingsWidget class
+ * 
+ * Configuration window for application themes settings. 
+ */
+class TocThemesSettingsWidget : public QWidget
+{
+       Q_OBJECT
+
+public:
+
+       /**
+        * Public Constructor
+        */
+       TocThemesSettingsWidget(QWidget* parent = 0, Qt::WindowFlags flags = 0);
+
+       /**
+        * Destructor
+        */
+       ~TocThemesSettingsWidget();
+
+signals:
+
+       /** \brief Emited when user wants to close Theme view and without saving changes.
+        *
+        */
+       void backClicked();     
+       
+       /** \brief Emited when user wants to change application theme.
+        *
+        */
+       void currentThemeChanged();
+
+protected:
+
+       /** \brief Reimplemented from QWidget
+        * 
+        */
+       virtual void showEvent( QShowEvent* event );
+
+private slots:
+
+       /** \brief Used to save the themes settings
+        * 
+        * This slot is used when apply button is pressed. 
+        * Data from the Theme list (active theme and all the themes)
+        * are stored in TocSettings.
+        * 
+        * If Theme has been changed it emits currenThemeChanged() signal.
+        */
+       void saveThemesSettings();
+
+private: // Methods
+
+private: // Members
+
+       Ui_TocThemesSettingsWidgetClass* ui;                    /// Ui definition header
+};
+
+QT_END_NAMESPACE
+
+#endif // TOCTHEMESSETTINGSWIDGET_H
diff --git a/include/TocUi/tocuserinfowidget.h b/include/TocUi/tocuserinfowidget.h
new file mode 100644 (file)
index 0000000..07b4091
--- /dev/null
@@ -0,0 +1,122 @@
+/** \file TocUserInfoWidget.h
+ * \brief Declaration of TocUserInfoWidget class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef TOCUSERINFOWIDGET_H
+#define TOCUSERINFOWIDGET_H
+
+#include "defs.h"
+
+#include <QWidget>
+
+
+class Ui_TocUserInfoWidgetClass;
+class IconProvider;
+class TocContactListWidget;
+class QListWidgetItem;
+
+QT_BEGIN_NAMESPACE
+
+/** \brief TocUserInfoWidget class
+ * 
+ */
+class TocUserInfoWidget : public QWidget
+{
+       Q_OBJECT
+
+public:
+
+       /**
+        * Public Constructor
+        */
+       TocUserInfoWidget( QListWidgetItem * contactItem, TocContactListWidget * parent, Qt::WindowFlags flags = 0 );
+
+       /**
+        * Destructor
+        */
+       ~TocUserInfoWidget();
+
+signals:
+       
+       /** \brief Emited when user commits the changes
+        * 
+        * This signal is emited when user finished editing or creating contacts data. 
+        * 
+        * @param contactItem Newly created item or edited item representing the contact 
+        */
+       void contactChanged(QListWidgetItem* contactItem);
+
+       /** \brief Emited when user confirms or discards the changes
+        * 
+        * This signal is emited when user clicked OK or Cancel button. 
+        */
+       void finished();
+
+protected:
+
+       /** \brief Reimplemented from QWidget
+        * 
+        */
+       virtual void showEvent(QShowEvent* event);
+       
+private slots:
+
+       /** \brief Used when user finishes editing contacts data
+        * 
+        * When user adds new contact this slot should create a new QListWidgetItem AND
+        * TocContact with the data provided, and emit it with contactChanged( QListWidgetItem* ) signal.
+        * If user edits contact's data it should save the data in an item AND it's
+        * TocContact provided and emit them with contactChanged( QListWidgetItem* ) signal.
+        */
+       void okClicked();
+       
+       /** \brief Used to react on changes to the Gender ComboBox
+        * 
+        * When user changes the combo box selection, this slot should change
+        * an icon (if no custom icon is set by the user).
+        * 
+        * @param index Current changed index
+        */
+       void onCurrentIndexChanged( int index );
+
+private: // Members
+
+       Ui_TocUserInfoWidgetClass*      ui;                                     /// Ui definition header
+       QListWidgetItem*                        _pContactItem;                  /// Item given to the constructor
+       QString                                         _customPicturePath;             /// Contact's PictureUrl
+       QString                                         _newCustomPicturePath;  /// Contact's PictureUrl
+       int                                             _currentIndex;                  /// Previous index
+       IconProvider*                           _pIconProvider;                 /// Class that provides contact icons
+       TocContactListWidget*           _pContactList;                  /// Contact list for which the widget is displayed
+};
+
+QT_END_NAMESPACE
+
+#endif // TOCUSERINFOWIDGET_H
diff --git a/include/defs.h b/include/defs.h
new file mode 100644 (file)
index 0000000..fddadb6
--- /dev/null
@@ -0,0 +1,123 @@
+/** \file defs.h
+ * \brief Declarations of global typedefs and enumerators.
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef DEFS_H
+#define DEFS_H
+
+#include <QVariant>
+
+
+enum Status {
+       Connected = 0,
+       Connecting,
+       Disconnected
+};
+
+Q_DECLARE_METATYPE(Status);
+
+enum Presence {
+       Unspecified = 0,
+       Offline = 1, //must be 1 to be inline with Tapioca
+       Available,
+       Away,
+       XA,
+       Hidden,
+       Busy
+};
+
+Q_DECLARE_METATYPE(Presence);
+
+enum Reason {
+    NoneSpecified = 0,
+    Requested,
+    NetworkError,
+    AuthenticationFailed,
+    EncryptionError,
+    NameInUse,
+    CertificateNotProvided,
+    CertificateUntrusted,
+    CertificateExpired,
+    CertificateNotActivated,
+    CertificateHostnameMismatch,
+    CertificateFingerPrintMismatch,
+    CertificateSigned,
+    CertificateOtherError
+};
+
+Q_DECLARE_METATYPE(Reason);
+
+enum Gender {
+       NotSpecified,
+       Male,
+       Female
+};
+
+Q_DECLARE_METATYPE(Gender);
+
+struct TocContact
+{
+       QString         uid;
+       QString         name;
+       QString         customIconPath;
+       int             customIconId;
+       Gender          gender;
+       Presence        presence;
+       QString         description;
+};
+
+typedef QList<TocContact*> TocContactList;
+
+Q_DECLARE_METATYPE(TocContactList);
+
+enum MessageDeliveryError {
+       Unknown = 0,
+       ContactOffline,
+       InvalidContact,
+       PermissionDenied,
+       MessageTooLong,
+       UserOffline,
+       NotOnContactList,
+       CannotCreateChannel,
+       NoError
+};
+
+Q_DECLARE_METATYPE(MessageDeliveryError);
+
+struct Message
+{ 
+       QString                                 contents;
+       uint                                    timestamp;
+       MessageDeliveryError    error;
+};
+
+Q_DECLARE_METATYPE(Message);
+
+#endif // DEFS_H
diff --git a/include/include.pri b/include/include.pri
new file mode 100644 (file)
index 0000000..588533d
--- /dev/null
@@ -0,0 +1,12 @@
+DEPENDPATH += $$PWD
+INCLUDEPATH += $$PWD
+
+# Input
+HEADERS += version.h \
+       defs.h \
+       macros.h \
+       TocSettings \
+       tocsettings.h
+
+include(TocUi/TocUi.pri)
+include(TocEngine/TocEngine.pri)
diff --git a/include/macros.h b/include/macros.h
new file mode 100644 (file)
index 0000000..c0bdc02
--- /dev/null
@@ -0,0 +1,46 @@
+/** \file macros.h
+ * \brief Definitions of macros used in project
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef MACROS_H
+#define MACROS_H
+
+#ifdef QT_NO_DEBUG
+       
+       #define CONNECT(a, b, c, d) QObject::connect(a, b, c, d); 
+
+#else
+
+       #define CONNECT(a, b, c, d) Q_ASSERT( QObject::connect(a, b, c, d) );
+
+#endif
+
+#endif // MACROS_H
+
diff --git a/include/tocsettings.h b/include/tocsettings.h
new file mode 100644 (file)
index 0000000..89cb20c
--- /dev/null
@@ -0,0 +1,334 @@
+/** \file TocSettings.h\r
+ * \brief Declaration of TocSettings class\r
+ * \r
+ * Tieto Open Communicator - Client for the Telepathy communications framework.\r
+ * Copyright (c) 2010, Tieto Corporation\r
+ *\r
+ * All rights reserved.\r
+ * Redistribution and use in source and binary forms, with or without modification,\r
+ * are permitted provided that the following conditions are met:\r
+ *\r
+ *     Redistributions of source code must retain the above copyright notice,\r
+ *     this list of conditions and the following disclaimer.\r
+ *     Redistributions in binary form must reproduce the above copyright notice,\r
+ *     this list of conditions and the following disclaimer in the documentation\r
+ *     and/or other materials provided with the distribution.\r
+ *     Neither the name of the Tieto Corporation nor the names of its contributors \r
+ *     may be used to endorse or promote products derived from this software without\r
+ *     specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\r
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\r
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ * \r
+ */\r
+\r
+#ifndef TOCSETTINGS_H\r
+#define TOCSETTINGS_H\r
+\r
+#include "defs.h"\r
+\r
+#include <QMap>\r
+#include <QStringList>\r
+\r
+enum SortOrder {\r
+       Alphabetical,\r
+       ByStatus,\r
+       None\r
+};\r
+\r
+Q_DECLARE_METATYPE(SortOrder);\r
+\r
+enum AuthorizationRule {\r
+       Ask,\r
+       AlwaysAccept,\r
+       AlwaysDeny\r
+};\r
+\r
+Q_DECLARE_METATYPE(AuthorizationRule);\r
+\r
+class TocSettings {\r
+\r
+public:\r
+\r
+       /** \brief Static public constructor\r
+        * \r
+        * @return Pointer to the static instance\r
+        */\r
+       static TocSettings* getInstance();\r
+\r
+       /** \brief Public destructor\r
+        * \r
+        */\r
+       ~TocSettings();\r
+\r
+       /** \brief Getter for current account name\r
+        * \r
+        * @return Account name\r
+        */\r
+       const QString& accountName();\r
+\r
+       /** \brief Setter for current account name\r
+        * \r
+        * @param accountName New account name\r
+        */\r
+       void setAccountName(const QString& accountName);\r
+\r
+       /** \brief Getter for current account uid\r
+        * \r
+        * @return Account uid\r
+        */\r
+       const QString& accountUid();\r
+\r
+       /** \brief Setter for current account uid\r
+        * \r
+        * @param uid New account uid\r
+        */\r
+       void setAccountUid(const QString& uid);\r
+\r
+       /** \brief Getter for current account password\r
+        * \r
+        * @return Account password\r
+        */\r
+       const QString& accountPasswd();\r
+\r
+       /** \brief Setter for current account password\r
+        * \r
+        * @param password New account password\r
+        */\r
+       void setAccountPasswd(const QString& password);\r
+\r
+       /** \brief Getter for current protocol\r
+        * \r
+        * @return Protocol used\r
+        */\r
+       const QString& protocol();\r
+\r
+       /** \brief Setter for current protocol\r
+        * \r
+        * @param protocol Protocol name\r
+        */\r
+       void setProtocol(const QString& protocol);\r
+\r
+       /** \brief Getter for protocol common name\r
+        * \r
+        * @return Protocol common used name\r
+        */\r
+       const QString protocolCommonName();\r
+\r
+       /** \brief Setter for current protocol by service name\r
+        * \r
+        * @param service Service name\r
+        */\r
+       void setProtocolByName(const QString& service);\r
+\r
+       /** \brief Getter for available protocols\r
+        * \r
+        * @return Available protocols\r
+        */\r
+       const QStringList& protocols();\r
+\r
+       /** \brief Setter for availabe protocols\r
+        * \r
+        * @param protocols List of protocols names\r
+        */\r
+       void setProtocols(const QStringList& protocols);\r
+\r
+       /** \brief Getter for current server\r
+        * \r
+        * @return Server name\r
+        */\r
+       const QString& server();\r
+\r
+       /** \brief Setter for current server\r
+        * \r
+        * @param server Server name\r
+        */\r
+       void setServer(const QString& server);\r
+\r
+       /** \brief Getter for currently used port\r
+        * \r
+        * @return Port number\r
+        */\r
+       int port();\r
+\r
+       /** \brief Setter for currently used port\r
+        * \r
+        * @param port Port number\r
+        */\r
+       void setPort(int port);\r
+\r
+       /** \brief Getter for `old-ssl` connection property\r
+        * \r
+        * @return True if connection needs `old-ssl` enabled\r
+        */\r
+       bool isOldSslEnabled();\r
+\r
+       /** \brief Setter for `old-ssl` connection property\r
+        * \r
+        * @param bEnabled True if connection needs `old-ssl` enabled \r
+        */\r
+       void setOldSslEnabled(bool bEnabled);\r
+\r
+       /** \brief Getter for `ignore-ssl-errors` connection property\r
+        * \r
+        * @return True if connection needs `ignore-ssl-errors` enabled\r
+        */\r
+       bool isIgnoreSslErrorsEnabled();\r
+\r
+       /** \brief Setter for `ignore-ssl-errors` connection property\r
+        * \r
+        * @param bEnabled True if connection needs `ignore-ssl-errors` enabled \r
+        */\r
+       void setIgnoreSslErrorsEnabled(bool bEnabled);\r
+\r
+       /** \brief Getter for saved contact list\r
+        * \r
+        * @return List of TocContact's\r
+        */\r
+       TocContactList* contactList();\r
+       \r
+       /** \brief Getter for list of contacts to be added to server\r
+        * \r
+        * @return List of Uids to be added\r
+        */\r
+       QStringList* contactsToAdd();\r
+\r
+       /** \brief Getter for list of contacts to be removed from server\r
+        * \r
+        * @return List of Uids to be removed\r
+        */\r
+       QStringList* contactsToRemove();\r
+\r
+       /** \brief Getter for sort order policy\r
+        * \r
+        * @return Sorting order policy\r
+        */\r
+       SortOrder sortOrder();\r
+\r
+       /** \brief Setter for sort order policy\r
+        * \r
+        * @param sortOrder Sorting order policy\r
+        */\r
+       void setSortOrder(SortOrder sortOrder);\r
+\r
+       /** \brief Getter for authorization rule\r
+        * \r
+        * @return Authorization rule\r
+        */\r
+       AuthorizationRule authorizationRule();\r
+\r
+       /** \brief Setter for authorization rule\r
+        * \r
+        * @param rule Authorization rule\r
+        */\r
+       void setAuthorizationRule(AuthorizationRule rule);\r
+\r
+       /** \brief Getter for current ui theme\r
+        * \r
+        * @return File name of the style sheet file\r
+        */\r
+       const QString& currentTheme();\r
+\r
+       /** \brief Setter for current ui theme\r
+        * \r
+        * @param theme File name of the style sheet file\r
+        */\r
+       void setCurrentTheme(const QString& theme);\r
+\r
+       /** \brief Returns a server hint for given data\r
+        * \r
+        * @param uid Account login\r
+        * @param serviceName Common name of the service/protocol (eg. Jabber, Google Talk, SIP)\r
+        * @return Default server for the data\r
+        */\r
+       const QString& serverHint( const QString& uid, const QString& serviceName);\r
+\r
+       /** \brief Returns a port hint for given data\r
+        * \r
+        * @param uid Account login\r
+        * @param serviceName Common name of the service/protocol (eg. Jabber, Google Talk, SIP)\r
+        * @return Default server for the data\r
+        */\r
+       int portHint( const QString& uid, const QString& serviceName);\r
+\r
+       /** \brief Returns true if such protocol is already supported\r
+        * \r
+        * @param protocol Protocol to check\r
+        * @return True if protocol already exist\r
+        */\r
+       bool isProtocolInstalled(const QString& protocol);\r
+\r
+       /** \brief Add a new protocol to the list of supported protocols\r
+        * \r
+        * @param commonName    Protocol's common name\r
+        * @param protocol              Protocol's identifier (according to the Telepathy spec)\r
+        */\r
+       void installProtocol(const QString& commonName, const QString& protocol);\r
+\r
+       /** \brief One shot getter for the `register` parameter of the connection\r
+        * \r
+        * When it returns the "true" value it sets it immediately to "false".\r
+        * \r
+        * @return true if user wants to register an account instead of logging in\r
+        */\r
+       bool isRegister();\r
+\r
+       /** \brief Setter for the `register` parameter of the connection\r
+        * \r
+        * When it is invoked it sets the `register` parameter to "true"\r
+        *\r
+        */\r
+       void setRegister();\r
+\r
+private:\r
+       \r
+       /** \brief Private constructor\r
+        * \r
+        */\r
+       TocSettings();\r
+\r
+       /** \brief Used to read settings with QSettings\r
+        * \r
+        *  It's meant to be used only in destructor. That's why it's private. \r
+        */\r
+       void read();\r
+       \r
+       \r
+       /** \brief Used to save settings with QSettings\r
+        * \r
+        *  It's meant to be used only when creating an instance. That's why it's private. \r
+        */\r
+       void save();    \r
+       \r
+       static TocSettings*             _pSelf;\r
+\r
+       QString                                 _accountName;\r
+       QString                                 _accountUid;\r
+       QString                                 _accountPasswd;\r
+       QString                                 _protocol;\r
+       QStringList                             _protocols;\r
+       QString                                 _protocolCommonName;\r
+       QString                                 _server;\r
+       QString                                 _serverHint;\r
+       int                                             _port;\r
+       int                                             _portHint;\r
+       bool                                    _bOldSsl;\r
+       bool                                    _bIgnoreSslErrors;\r
+       QList<TocContact*>*             _pContactList;\r
+       QStringList                             _addedContacts;\r
+       QStringList                             _removedContacts;\r
+       AuthorizationRule               _authorizationRule;\r
+       SortOrder                               _sortOrder;\r
+       QString                                 _currentTheme;\r
+       QMap<QString, QString>* _pProtocolMap;\r
+       bool                                    _register;\r
+};\r
+\r
+#endif  // TOCSETTINGS_H\r
diff --git a/include/uidefs.h b/include/uidefs.h
new file mode 100644 (file)
index 0000000..1612a7a
--- /dev/null
@@ -0,0 +1,113 @@
+/** \file uidefs.h
+ * \brief Declarations of global typedefs and enumerators for UI.
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#ifndef UIDEFS_H
+#define UIDEFS_H
+
+#define STYLESHEET_ONLINE      "QFrame { background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,"\
+"stop: 0 #00aa00, stop: 0.55 #00aa00,"\
+"stop: 0.56 #00bb00, stop: 1 #00ff00);}"
+
+#define STYLESHEET_AWAY        "QFrame { background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,"\
+"stop: 0 #999900, stop: 0.55 #aaaa00,"\
+"stop: 0.56 #bbbb00, stop: 1 #ffff00);}"
+
+#define STYLESHEET_BUSY        "QFrame { background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,"\
+"stop: 0 #990000, stop: 0.55 #aa0000,"\
+"stop: 0.56 #bb0000, stop: 1 #ff0000);}"
+
+#define STYLESHEET_OFFLINE     "QFrame { background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,"\
+"stop: 0 #999, stop: 0.55 #aaa,"\
+"stop: 0.56 #bbb, stop: 1 #fff);}"
+
+#define LOGO_BLUE              qRgb(  0, 128, 197)
+#define LOGO_LIGHT_BLUE                qRgb(118, 206, 234)
+#define LOGO_GREEN             qRgb(153, 204,  51)
+#define LOGO_ORANGE            qRgb(255, 153,  51)
+#define LOGO_RED               qRgb(230,  40,  88)
+
+enum ViewType {
+       Login,
+       Contacts,
+       Chat,
+       UserInfo,
+       Settings,
+       General,
+       Account,
+       AccountCreate,
+       AccountIntermediate,
+       FTU,
+       Themes
+};
+
+Q_DECLARE_METATYPE(ViewType);
+
+enum TecUserRole {
+       DisplayRole,
+       DecorationRole,                         ///An icon merged with status frame
+       ContactRole = Qt::UserRole
+};
+
+#ifdef QT_NO_DEBUG
+  #define emotsPath            QString("/usr/share/tietoopcom/emoticons/")
+#else
+  #define emotsPath            QString("./data/emoticons/")
+#endif //QT_NO_DEBUG
+
+#define emotSmile_32x32        emotsPath + "face-smile32x32.png"
+#define emotSad_32x32          emotsPath + "face-sad32x32.png"
+#define emotWink_32x32         emotsPath + "face-wink32x32.png"
+#define emotGrin_32x32         emotsPath + "face-grin32x32.png"
+#define emotSurprise_32x32     emotsPath + "face-surprise32x32.png"
+#define emotPlain_32x32        emotsPath + "face-plain32x32.png"
+#define emotKiss_32x32         emotsPath + "face-kiss32x32.png"
+#define emotAngel_32x32        emotsPath + "face-angel32x32.png"
+#define emotDevil_32x32        emotsPath + "face-devilish32x32.png"
+#define emotMonkey_32x32       emotsPath + "face-monkey32x32.png"
+#define emotCrying_32x32       emotsPath + "face-crying32x32.png"
+#define emotGlasses_32x32      emotsPath + "face-glasses32x32.png"
+#define emotSmileBig_32x32     emotsPath + "face-smile-big32x32.png"
+
+#define emotSmile_24x24        emotsPath + "face-smile24x24.png"
+#define emotSad_24x24          emotsPath + "face-sad24x24.png"
+#define emotWink_24x24         emotsPath + "face-wink24x24.png"
+#define emotGrin_24x24         emotsPath + "face-grin24x24.png"
+#define emotSurprise_24x24     emotsPath + "face-surprise24x24.png"
+#define emotPlain_24x24        emotsPath + "face-plain24x24.png"
+#define emotKiss_24x24         emotsPath + "face-kiss24x24.png"
+#define emotAngel_24x24        emotsPath + "face-angel24x24.png"
+#define emotDevil_24x24        emotsPath + "face-devilish24x24.png"
+#define emotMonkey_24x24       emotsPath + "face-monkey24x24.png"
+#define emotCrying_24x24       emotsPath + "face-crying24x24.png"
+#define emotGlasses_24x24      emotsPath + "face-glasses24x24.png"
+#define emotSmileBig_24x24     emotsPath + "face-smile-big24x24.png"
+
+#endif // UIDEFS_H
diff --git a/include/version.h b/include/version.h
new file mode 100644 (file)
index 0000000..8e91446
--- /dev/null
@@ -0,0 +1,8 @@
+#ifndef __version_h__
+#define __version_h__
+
+#define APP_NAME       "Tieto Open Communicator"
+#define VERSION                "0.5.@REVISION@"
+#define TARGET         "tietoopcom"
+
+#endif
diff --git a/include/version.in b/include/version.in
new file mode 100644 (file)
index 0000000..d50c13e
--- /dev/null
@@ -0,0 +1,8 @@
+#ifndef __version_h__
+#define __version_h__
+
+#define APP_NAME       "Tieto Open Communicator"
+#define VERSION                "0.5.@REVISION@"
+#define TARGET         "@TARGET@"
+
+#endif
diff --git a/info/exclude b/info/exclude
new file mode 100644 (file)
index 0000000..2c87b72
--- /dev/null
@@ -0,0 +1,6 @@
+# git-ls-files --others --exclude-from=.git/info/exclude
+# Lines that start with '#' are comments.
+# For a project mostly in C, the following would be a good set of
+# exclude patterns (uncomment them if you want to use them):
+# *.[oa]
+# *~
diff --git a/resources/account.png b/resources/account.png
new file mode 100644 (file)
index 0000000..cfa19d2
Binary files /dev/null and b/resources/account.png differ
diff --git a/resources/activesessions.png b/resources/activesessions.png
new file mode 100644 (file)
index 0000000..1fb7609
Binary files /dev/null and b/resources/activesessions.png differ
diff --git a/resources/addcontact.png b/resources/addcontact.png
new file mode 100644 (file)
index 0000000..33b4f35
Binary files /dev/null and b/resources/addcontact.png differ
diff --git a/resources/away.png b/resources/away.png
new file mode 100644 (file)
index 0000000..75baace
Binary files /dev/null and b/resources/away.png differ
diff --git a/resources/busy.png b/resources/busy.png
new file mode 100644 (file)
index 0000000..d677155
Binary files /dev/null and b/resources/busy.png differ
diff --git a/resources/close.png b/resources/close.png
new file mode 100644 (file)
index 0000000..5b8622e
Binary files /dev/null and b/resources/close.png differ
diff --git a/resources/contactfemale.png b/resources/contactfemale.png
new file mode 100644 (file)
index 0000000..747bbde
Binary files /dev/null and b/resources/contactfemale.png differ
diff --git a/resources/contactmale.png b/resources/contactmale.png
new file mode 100644 (file)
index 0000000..18d02de
Binary files /dev/null and b/resources/contactmale.png differ
diff --git a/resources/contacts.png b/resources/contacts.png
new file mode 100644 (file)
index 0000000..9b04437
Binary files /dev/null and b/resources/contacts.png differ
diff --git a/resources/enter.png b/resources/enter.png
new file mode 100644 (file)
index 0000000..3f7ff88
Binary files /dev/null and b/resources/enter.png differ
diff --git a/resources/general.png b/resources/general.png
new file mode 100644 (file)
index 0000000..6ce5e27
Binary files /dev/null and b/resources/general.png differ
diff --git a/resources/greenframe.png b/resources/greenframe.png
new file mode 100644 (file)
index 0000000..0d7414e
Binary files /dev/null and b/resources/greenframe.png differ
diff --git a/resources/hidden.png b/resources/hidden.png
new file mode 100644 (file)
index 0000000..0d25f3b
Binary files /dev/null and b/resources/hidden.png differ
diff --git a/resources/jabber.png b/resources/jabber.png
new file mode 100644 (file)
index 0000000..10681a9
Binary files /dev/null and b/resources/jabber.png differ
diff --git a/resources/network.png b/resources/network.png
new file mode 100644 (file)
index 0000000..921ae4b
Binary files /dev/null and b/resources/network.png differ
diff --git a/resources/offline.png b/resources/offline.png
new file mode 100644 (file)
index 0000000..db2870d
Binary files /dev/null and b/resources/offline.png differ
diff --git a/resources/online.png b/resources/online.png
new file mode 100644 (file)
index 0000000..7f2cc8d
Binary files /dev/null and b/resources/online.png differ
diff --git a/resources/redframe.png b/resources/redframe.png
new file mode 100644 (file)
index 0000000..e723b78
Binary files /dev/null and b/resources/redframe.png differ
diff --git a/resources/restore.png b/resources/restore.png
new file mode 100644 (file)
index 0000000..0a93131
Binary files /dev/null and b/resources/restore.png differ
diff --git a/resources/settings.png b/resources/settings.png
new file mode 100644 (file)
index 0000000..c646c36
Binary files /dev/null and b/resources/settings.png differ
diff --git a/resources/themes.png b/resources/themes.png
new file mode 100644 (file)
index 0000000..65c07ec
Binary files /dev/null and b/resources/themes.png differ
diff --git a/resources/tieto-logo.png b/resources/tieto-logo.png
new file mode 100644 (file)
index 0000000..6012713
Binary files /dev/null and b/resources/tieto-logo.png differ
diff --git a/resources/unknown.png b/resources/unknown.png
new file mode 100644 (file)
index 0000000..8344961
Binary files /dev/null and b/resources/unknown.png differ
diff --git a/resources/yellowframe.png b/resources/yellowframe.png
new file mode 100644 (file)
index 0000000..4010f71
Binary files /dev/null and b/resources/yellowframe.png differ
diff --git a/src/Makefile b/src/Makefile
new file mode 100644 (file)
index 0000000..44e127f
--- /dev/null
@@ -0,0 +1,155 @@
+#############################################################################
+# Makefile for building: ../bin/tietoopcom
+# Generated by qmake (2.01a) (Qt 4.6.2) on: Thu Jul 8 08:48:05 2010
+# Project:  src.pro
+# Template: app
+# Command: /usr/bin/qmake -unix -o Makefile src.pro
+#############################################################################
+
+first: release
+install: release-install
+uninstall: release-uninstall
+MAKEFILE      = Makefile
+QMAKE         = /usr/bin/qmake
+DEL_FILE      = rm -f
+CHK_DIR_EXISTS= test -d
+MKDIR         = mkdir -p
+COPY          = cp -f
+COPY_FILE     = $(COPY)
+COPY_DIR      = $(COPY) -r
+INSTALL_FILE  = install -m 644 -p
+INSTALL_PROGRAM = install -m 755 -p
+INSTALL_DIR   = $(COPY_DIR)
+DEL_FILE      = rm -f
+SYMLINK       = ln -f -s
+DEL_DIR       = rmdir
+MOVE          = mv -f
+CHK_DIR_EXISTS= test -d
+MKDIR         = mkdir -p
+SUBTARGETS    =  \
+               release \
+               debug
+
+release: $(MAKEFILE).Release FORCE
+       $(MAKE) -f $(MAKEFILE).Release
+release-make_default: $(MAKEFILE).Release FORCE
+       $(MAKE) -f $(MAKEFILE).Release 
+release-make_first: $(MAKEFILE).Release FORCE
+       $(MAKE) -f $(MAKEFILE).Release first
+release-all: $(MAKEFILE).Release FORCE
+       $(MAKE) -f $(MAKEFILE).Release all
+release-clean: $(MAKEFILE).Release FORCE
+       $(MAKE) -f $(MAKEFILE).Release clean
+release-distclean: $(MAKEFILE).Release FORCE
+       $(MAKE) -f $(MAKEFILE).Release distclean
+release-install: $(MAKEFILE).Release FORCE
+       $(MAKE) -f $(MAKEFILE).Release install
+release-uninstall: $(MAKEFILE).Release FORCE
+       $(MAKE) -f $(MAKEFILE).Release uninstall
+debug: $(MAKEFILE).Debug FORCE
+       $(MAKE) -f $(MAKEFILE).Debug
+debug-make_default: $(MAKEFILE).Debug FORCE
+       $(MAKE) -f $(MAKEFILE).Debug 
+debug-make_first: $(MAKEFILE).Debug FORCE
+       $(MAKE) -f $(MAKEFILE).Debug first
+debug-all: $(MAKEFILE).Debug FORCE
+       $(MAKE) -f $(MAKEFILE).Debug all
+debug-clean: $(MAKEFILE).Debug FORCE
+       $(MAKE) -f $(MAKEFILE).Debug clean
+debug-distclean: $(MAKEFILE).Debug FORCE
+       $(MAKE) -f $(MAKEFILE).Debug distclean
+debug-install: $(MAKEFILE).Debug FORCE
+       $(MAKE) -f $(MAKEFILE).Debug install
+debug-uninstall: $(MAKEFILE).Debug FORCE
+       $(MAKE) -f $(MAKEFILE).Debug uninstall
+
+Makefile: src.pro  /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/linux-g++/qmake.conf /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/g++.conf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/unix.conf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/linux.conf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/qconfig.pri \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt_functions.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt_config.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/default_pre.prf \
+               TocUi/TocUi.pri \
+               TocEngine/TocEngine.pri \
+               ../include/TocUi/TocUi.pri \
+               ../include/TocEngine/TocEngine.pri \
+               ../include/include.pri \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/release.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/debug_and_release.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/default_post.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qdbus.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/moc.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/dbusinterfaces.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/dbusadaptors.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/warn_on.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/unix/thread.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/resources.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/uic.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/yacc.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/lex.prf \
+               /usr/lib/libQtDBus.prl \
+               /usr/lib/libQtXml.prl \
+               /usr/lib/libQtCore.prl \
+               /usr/lib/libQtGui.prl
+       $(QMAKE) -unix -o Makefile src.pro
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/g++.conf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/unix.conf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/linux.conf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/qconfig.pri:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt_functions.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt_config.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/exclusive_builds.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/default_pre.prf:
+TocUi/TocUi.pri:
+TocEngine/TocEngine.pri:
+../include/TocUi/TocUi.pri:
+../include/TocEngine/TocEngine.pri:
+../include/include.pri:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/release.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/debug_and_release.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/default_post.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qdbus.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/moc.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/dbusinterfaces.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/dbusadaptors.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/warn_on.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/unix/thread.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/resources.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/uic.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/yacc.prf:
+/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/lex.prf:
+/usr/lib/libQtDBus.prl:
+/usr/lib/libQtXml.prl:
+/usr/lib/libQtCore.prl:
+/usr/lib/libQtGui.prl:
+qmake: qmake_all FORCE
+       @$(QMAKE) -unix -o Makefile src.pro
+
+qmake_all: FORCE
+
+make_default: release-make_default debug-make_default FORCE
+make_first: release-make_first debug-make_first FORCE
+all: release-all debug-all FORCE
+clean: release-clean debug-clean FORCE
+distclean: release-distclean debug-distclean FORCE
+       -$(DEL_FILE) Makefile
+
+release-mocclean: $(MAKEFILE).Release
+       $(MAKE) -f $(MAKEFILE).Release mocclean
+debug-mocclean: $(MAKEFILE).Debug
+       $(MAKE) -f $(MAKEFILE).Debug mocclean
+mocclean: release-mocclean debug-mocclean
+
+release-mocables: $(MAKEFILE).Release
+       $(MAKE) -f $(MAKEFILE).Release mocables
+debug-mocables: $(MAKEFILE).Debug
+       $(MAKE) -f $(MAKEFILE).Debug mocables
+mocables: release-mocables debug-mocables
+FORCE:
+
+$(MAKEFILE).Release: Makefile
+$(MAKEFILE).Debug: Makefile
diff --git a/src/Makefile.Debug b/src/Makefile.Debug
new file mode 100644 (file)
index 0000000..9002273
--- /dev/null
@@ -0,0 +1,555 @@
+#############################################################################
+# Makefile for building: ../bin/tietoopcom_debug
+# Generated by qmake (2.01a) (Qt 4.6.2) on: Thu Jul 8 08:48:05 2010
+# Project:  src.pro
+# Template: app
+#############################################################################
+
+####### Compiler, tools and options
+
+CC            = gcc
+CXX           = g++
+DEFINES       = -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+CFLAGS        = -pipe -g -Wall -W -D_REENTRANT $(DEFINES)
+CXXFLAGS      = -pipe -g -Wall -W -D_REENTRANT $(DEFINES)
+INCPATH       = -I/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/linux-g++ -I. -I/targets/FREMANTLE_X86/usr/include/QtCore -I/targets/FREMANTLE_X86/usr/include/QtGui -I/targets/FREMANTLE_X86/usr/include -I/targets/FREMANTLE_X86/usr/include/QtDBus -I. -ITocUi -ITocEngine -I../include -I../include/TocUi -I../include/TocEngine -I../build/debug -I../build/debug
+LINK          = g++
+LFLAGS        = -Wl,-rpath,/usr/lib
+LIBS          = $(SUBLIBS)  -L/usr/lib -lQtTapioca -lQtDBus -L/usr/lib -lQtXml -lQtGui -L/usr/X11R6/lib -lQtCore -lpthread 
+AR            = ar cqs
+RANLIB        = 
+QMAKE         = /usr/bin/qmake
+TAR           = tar -cf
+COMPRESS      = gzip -9f
+COPY          = cp -f
+SED           = sed
+COPY_FILE     = $(COPY)
+COPY_DIR      = $(COPY) -r
+STRIP         = strip
+INSTALL_FILE  = install -m 644 -p
+INSTALL_DIR   = $(COPY_DIR)
+INSTALL_PROGRAM = install -m 755 -p
+DEL_FILE      = rm -f
+SYMLINK       = ln -f -s
+DEL_DIR       = rmdir
+MOVE          = mv -f
+CHK_DIR_EXISTS= test -d
+MKDIR         = mkdir -p
+
+####### Output directory
+
+OBJECTS_DIR   = ../build/debug/
+
+####### Files
+
+SOURCES       = main.cpp \
+               TocSettings.cpp \
+               TocUi/TocBaseMainWindow.cpp \
+               TocUi/TocMainWindow.cpp \
+               TocUi/TocContactListWidget.cpp \
+               TocUi/TocChatWidget.cpp \
+               TocUi/TocUserInfoWidget.cpp \
+               TocUi/TocSettingsWidget.cpp \
+               TocUi/TocGeneralSettingsWidget.cpp \
+               TocUi/TocAccountSettingsWidget.cpp \
+               TocUi/TocAccountIntermediateWidget.cpp \
+               TocUi/TocThemesSettingsWidget.cpp \
+               TocUi/TocMainToolbar.cpp \
+               TocUi/IconProvider.cpp \
+               TocUi/TocEmoticonsDialog.cpp \
+               TocEngine/TocBaseEngine.cpp \
+               TocEngine/TocEngine.cpp ../build/debug/moc_tocbasemainwindow.cpp \
+               ../build/debug/moc_tocmainwindow.cpp \
+               ../build/debug/moc_toccontactlistwidget.cpp \
+               ../build/debug/moc_tocchatwidget.cpp \
+               ../build/debug/moc_tocuserinfowidget.cpp \
+               ../build/debug/moc_tocsettingswidget.cpp \
+               ../build/debug/moc_tocgeneralsettingswidget.cpp \
+               ../build/debug/moc_tocaccountsettingswidget.cpp \
+               ../build/debug/moc_tocaccountintermediatewidget.cpp \
+               ../build/debug/moc_tocthemessettingswidget.cpp \
+               ../build/debug/moc_tocmaintoolbar.cpp \
+               ../build/debug/moc_tocemoticonsdialog.cpp \
+               ../build/debug/moc_tocbaseengine.cpp \
+               ../build/debug/moc_tocengine.cpp \
+               ../build/debug/qrc_application.cpp
+OBJECTS       = ../build/debug/main.o \
+               ../build/debug/TocSettings.o \
+               ../build/debug/TocBaseMainWindow.o \
+               ../build/debug/TocMainWindow.o \
+               ../build/debug/TocContactListWidget.o \
+               ../build/debug/TocChatWidget.o \
+               ../build/debug/TocUserInfoWidget.o \
+               ../build/debug/TocSettingsWidget.o \
+               ../build/debug/TocGeneralSettingsWidget.o \
+               ../build/debug/TocAccountSettingsWidget.o \
+               ../build/debug/TocAccountIntermediateWidget.o \
+               ../build/debug/TocThemesSettingsWidget.o \
+               ../build/debug/TocMainToolbar.o \
+               ../build/debug/IconProvider.o \
+               ../build/debug/TocEmoticonsDialog.o \
+               ../build/debug/TocBaseEngine.o \
+               ../build/debug/TocEngine.o \
+               ../build/debug/moc_tocbasemainwindow.o \
+               ../build/debug/moc_tocmainwindow.o \
+               ../build/debug/moc_toccontactlistwidget.o \
+               ../build/debug/moc_tocchatwidget.o \
+               ../build/debug/moc_tocuserinfowidget.o \
+               ../build/debug/moc_tocsettingswidget.o \
+               ../build/debug/moc_tocgeneralsettingswidget.o \
+               ../build/debug/moc_tocaccountsettingswidget.o \
+               ../build/debug/moc_tocaccountintermediatewidget.o \
+               ../build/debug/moc_tocthemessettingswidget.o \
+               ../build/debug/moc_tocmaintoolbar.o \
+               ../build/debug/moc_tocemoticonsdialog.o \
+               ../build/debug/moc_tocbaseengine.o \
+               ../build/debug/moc_tocengine.o \
+               ../build/debug/qrc_application.o
+DIST          = /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/g++.conf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/unix.conf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/linux.conf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/qconfig.pri \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt_functions.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt_config.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/default_pre.prf \
+               TocUi/TocUi.pri \
+               TocEngine/TocEngine.pri \
+               ../include/TocUi/TocUi.pri \
+               ../include/TocEngine/TocEngine.pri \
+               ../include/include.pri \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/debug.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/debug_and_release.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/default_post.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/build_pass.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qdbus.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/moc.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/dbusinterfaces.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/dbusadaptors.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/warn_on.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/unix/thread.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/resources.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/uic.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/yacc.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/lex.prf \
+               src.pro
+QMAKE_TARGET  = tietoopcom_debug
+DESTDIR       = ../bin/
+TARGET        = ../bin/tietoopcom_debug
+
+first: all
+####### Implicit rules
+
+.SUFFIXES: .o .c .cpp .cc .cxx .C
+
+.cpp.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cc.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cxx.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.C.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.c.o:
+       $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
+
+####### Build rules
+
+all: Makefile.Debug $(TARGET)
+
+$(TARGET): ../build/debug/ui_TocChatWidget.h ../build/debug/ui_TocUserInfoWidget.h ../build/debug/ui_TocGeneralSettingsWidget.h ../build/debug/ui_TocAccountSettingsWidget.h ../build/debug/ui_TocThemesSettingsWidget.h ../build/debug/ui_TocEmoticonsDialog.h $(OBJECTS)  
+       @$(CHK_DIR_EXISTS) ../bin/ || $(MKDIR) ../bin/ 
+       $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
+
+qmake:  FORCE
+       @$(QMAKE) -unix -o Makefile.Debug src.pro
+
+dist: 
+       @$(CHK_DIR_EXISTS) ../build/debug/tietoopcom_debug1.0.0 || $(MKDIR) ../build/debug/tietoopcom_debug1.0.0 
+       $(COPY_FILE) --parents $(SOURCES) $(DIST) ../build/debug/tietoopcom_debug1.0.0/ && $(COPY_FILE) --parents ../include/version.h ../include/defs.h ../include/macros.h ../include/TocSettings ../include/tocsettings.h ../include/TocUi/TocBaseMainWindow ../include/TocUi/tocbasemainwindow.h ../include/TocUi/TocMainWindow ../include/TocUi/tocmainwindow.h ../include/TocUi/TocContactListWidget ../include/TocUi/toccontactlistwidget.h ../include/TocUi/TocChatWidget ../include/TocUi/tocchatwidget.h ../include/TocUi/TocUserInfoWidget ../include/TocUi/tocuserinfowidget.h ../include/TocUi/TocSettingsWidget ../include/TocUi/tocsettingswidget.h ../include/TocUi/TocGeneralSettingsWidget ../include/TocUi/tocgeneralsettingswidget.h ../include/TocUi/TocAccountSettingsWidget ../include/TocUi/tocaccountsettingswidget.h ../include/TocUi/TocAccountIntermediateWidget ../include/TocUi/tocaccountintermediatewidget.h ../include/TocUi/TocThemesSettingsWidget ../include/TocUi/tocthemessettingswidget.h ../include/TocUi/TocMainToolbar ../include/TocUi/tocmaintoolbar.h ../include/TocUi/IconProvider ../include/TocUi/iconprovider.h ../include/TocUi/TocEmoticonsDialog ../include/TocUi/tocemoticonsdialog.h ../include/TocEngine/TocBaseEngine ../include/TocEngine/tocbaseengine.h TocEngine ../include/TocEngine/tocengine.h ../build/debug/tietoopcom_debug1.0.0/ && $(COPY_FILE) --parents application.qrc ../build/debug/tietoopcom_debug1.0.0/ && $(COPY_FILE) --parents main.cpp TocSettings.cpp TocUi/TocBaseMainWindow.cpp TocUi/TocMainWindow.cpp TocUi/TocContactListWidget.cpp TocUi/TocChatWidget.cpp TocUi/TocUserInfoWidget.cpp TocUi/TocSettingsWidget.cpp TocUi/TocGeneralSettingsWidget.cpp TocUi/TocAccountSettingsWidget.cpp TocUi/TocAccountIntermediateWidget.cpp TocUi/TocThemesSettingsWidget.cpp TocUi/TocMainToolbar.cpp TocUi/IconProvider.cpp TocUi/TocEmoticonsDialog.cpp TocEngine/TocBaseEngine.cpp TocEngine/TocEngine.cpp ../build/debug/tietoopcom_debug1.0.0/ && $(COPY_FILE) --parents TocUi/TocChatWidget.ui TocUi/TocUserInfoWidget.ui TocUi/TocGeneralSettingsWidget.ui TocUi/TocAccountSettingsWidget.ui TocUi/TocThemesSettingsWidget.ui TocUi/TocEmoticonsDialog.ui ../build/debug/tietoopcom_debug1.0.0/ && (cd `dirname ../build/debug/tietoopcom_debug1.0.0` && $(TAR) tietoopcom_debug1.0.0.tar tietoopcom_debug1.0.0 && $(COMPRESS) tietoopcom_debug1.0.0.tar) && $(MOVE) `dirname ../build/debug/tietoopcom_debug1.0.0`/tietoopcom_debug1.0.0.tar.gz . && $(DEL_FILE) -r ../build/debug/tietoopcom_debug1.0.0
+
+
+clean:compiler_clean 
+       -$(DEL_FILE) $(OBJECTS)
+       -$(DEL_FILE) *~ core *.core
+
+
+####### Sub-libraries
+
+distclean: clean
+       -$(DEL_FILE) $(TARGET) 
+       -$(DEL_FILE) Makefile.Debug
+
+
+mocclean: compiler_moc_header_clean compiler_moc_source_clean
+
+mocables: compiler_moc_header_make_all compiler_moc_source_make_all
+
+compiler_moc_header_make_all: ../build/debug/moc_tocbasemainwindow.cpp ../build/debug/moc_tocmainwindow.cpp ../build/debug/moc_toccontactlistwidget.cpp ../build/debug/moc_tocchatwidget.cpp ../build/debug/moc_tocuserinfowidget.cpp ../build/debug/moc_tocsettingswidget.cpp ../build/debug/moc_tocgeneralsettingswidget.cpp ../build/debug/moc_tocaccountsettingswidget.cpp ../build/debug/moc_tocaccountintermediatewidget.cpp ../build/debug/moc_tocthemessettingswidget.cpp ../build/debug/moc_tocmaintoolbar.cpp ../build/debug/moc_tocemoticonsdialog.cpp ../build/debug/moc_tocbaseengine.cpp ../build/debug/moc_tocengine.cpp
+compiler_moc_header_clean:
+       -$(DEL_FILE) ../build/debug/moc_tocbasemainwindow.cpp ../build/debug/moc_tocmainwindow.cpp ../build/debug/moc_toccontactlistwidget.cpp ../build/debug/moc_tocchatwidget.cpp ../build/debug/moc_tocuserinfowidget.cpp ../build/debug/moc_tocsettingswidget.cpp ../build/debug/moc_tocgeneralsettingswidget.cpp ../build/debug/moc_tocaccountsettingswidget.cpp ../build/debug/moc_tocaccountintermediatewidget.cpp ../build/debug/moc_tocthemessettingswidget.cpp ../build/debug/moc_tocmaintoolbar.cpp ../build/debug/moc_tocemoticonsdialog.cpp ../build/debug/moc_tocbaseengine.cpp ../build/debug/moc_tocengine.cpp
+../build/debug/moc_tocbasemainwindow.cpp: ../include/defs.h \
+               ../include/TocUi/tocbasemainwindow.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocbasemainwindow.h -o ../build/debug/moc_tocbasemainwindow.cpp
+
+../build/debug/moc_tocmainwindow.cpp: ../include/TocUi/TocBaseMainWindow \
+               ../include/TocUi/tocbasemainwindow.h \
+               ../include/defs.h \
+               ../include/TocUi/tocmainwindow.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocmainwindow.h -o ../build/debug/moc_tocmainwindow.cpp
+
+../build/debug/moc_toccontactlistwidget.cpp: ../include/defs.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/TocUi/toccontactlistwidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/toccontactlistwidget.h -o ../build/debug/moc_toccontactlistwidget.cpp
+
+../build/debug/moc_tocchatwidget.cpp: ../include/defs.h \
+               ../include/TocUi/tocchatwidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocchatwidget.h -o ../build/debug/moc_tocchatwidget.cpp
+
+../build/debug/moc_tocuserinfowidget.cpp: ../include/defs.h \
+               ../include/TocUi/tocuserinfowidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocuserinfowidget.h -o ../build/debug/moc_tocuserinfowidget.cpp
+
+../build/debug/moc_tocsettingswidget.cpp: ../include/defs.h \
+               ../include/TocUi/tocsettingswidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocsettingswidget.h -o ../build/debug/moc_tocsettingswidget.cpp
+
+../build/debug/moc_tocgeneralsettingswidget.cpp: ../include/defs.h \
+               ../include/TocUi/tocgeneralsettingswidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocgeneralsettingswidget.h -o ../build/debug/moc_tocgeneralsettingswidget.cpp
+
+../build/debug/moc_tocaccountsettingswidget.cpp: ../include/defs.h \
+               ../include/TocUi/tocaccountsettingswidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocaccountsettingswidget.h -o ../build/debug/moc_tocaccountsettingswidget.cpp
+
+../build/debug/moc_tocaccountintermediatewidget.cpp: ../include/TocUi/tocaccountintermediatewidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocaccountintermediatewidget.h -o ../build/debug/moc_tocaccountintermediatewidget.cpp
+
+../build/debug/moc_tocthemessettingswidget.cpp: ../include/defs.h \
+               ../include/TocUi/tocthemessettingswidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocthemessettingswidget.h -o ../build/debug/moc_tocthemessettingswidget.cpp
+
+../build/debug/moc_tocmaintoolbar.cpp: ../include/defs.h \
+               ../include/uidefs.h \
+               ../include/TocUi/tocmaintoolbar.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocmaintoolbar.h -o ../build/debug/moc_tocmaintoolbar.cpp
+
+../build/debug/moc_tocemoticonsdialog.cpp: ../include/TocUi/tocemoticonsdialog.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocemoticonsdialog.h -o ../build/debug/moc_tocemoticonsdialog.cpp
+
+../build/debug/moc_tocbaseengine.cpp: ../include/defs.h \
+               ../include/TocEngine/tocbaseengine.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocEngine/tocbaseengine.h -o ../build/debug/moc_tocbaseengine.cpp
+
+../build/debug/moc_tocengine.cpp: ../include/TocEngine/TocBaseEngine \
+               ../include/TocEngine/tocbaseengine.h \
+               ../include/defs.h \
+               ../include/TocEngine/tocengine.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocEngine/tocengine.h -o ../build/debug/moc_tocengine.cpp
+
+compiler_dbus_interface_source_make_all:
+compiler_dbus_interface_source_clean:
+compiler_dbus_adaptor_source_make_all:
+compiler_dbus_adaptor_source_clean:
+compiler_rcc_make_all: ../build/debug/qrc_application.cpp
+compiler_rcc_clean:
+       -$(DEL_FILE) ../build/debug/qrc_application.cpp
+../build/debug/qrc_application.cpp: application.qrc \
+               ../resources/offline.png \
+               ../resources/close.png \
+               ../resources/addcontact.png \
+               ../resources/contactfemale.png \
+               ../resources/away.png \
+               ../resources/themes.png \
+               ../resources/yellowframe.png \
+               ../resources/online.png \
+               ../resources/restore.png \
+               ../resources/redframe.png \
+               ../resources/general.png \
+               ../resources/settings.png \
+               ../resources/hidden.png \
+               ../resources/busy.png \
+               ../resources/greenframe.png \
+               ../resources/contactmale.png \
+               ../resources/network.png \
+               ../resources/tieto-logo.png \
+               ../resources/activesessions.png \
+               ../resources/contacts.png \
+               ../resources/unknown.png \
+               ../resources/account.png
+       /usr/bin/rcc -name application application.qrc -o ../build/debug/qrc_application.cpp
+
+compiler_image_collection_make_all: qmake_image_collection.cpp
+compiler_image_collection_clean:
+       -$(DEL_FILE) qmake_image_collection.cpp
+compiler_moc_source_make_all:
+compiler_moc_source_clean:
+compiler_dbus_interface_header_make_all:
+compiler_dbus_interface_header_clean:
+compiler_dbus_interface_moc_make_all:
+compiler_dbus_interface_moc_clean:
+compiler_dbus_adaptor_header_make_all:
+compiler_dbus_adaptor_header_clean:
+compiler_dbus_adaptor_moc_make_all:
+compiler_dbus_adaptor_moc_clean:
+compiler_uic_make_all: ../build/debug/ui_TocChatWidget.h ../build/debug/ui_TocUserInfoWidget.h ../build/debug/ui_TocGeneralSettingsWidget.h ../build/debug/ui_TocAccountSettingsWidget.h ../build/debug/ui_TocThemesSettingsWidget.h ../build/debug/ui_TocEmoticonsDialog.h
+compiler_uic_clean:
+       -$(DEL_FILE) ../build/debug/ui_TocChatWidget.h ../build/debug/ui_TocUserInfoWidget.h ../build/debug/ui_TocGeneralSettingsWidget.h ../build/debug/ui_TocAccountSettingsWidget.h ../build/debug/ui_TocThemesSettingsWidget.h ../build/debug/ui_TocEmoticonsDialog.h
+../build/debug/ui_TocChatWidget.h: TocUi/TocChatWidget.ui
+       /usr/bin/uic TocUi/TocChatWidget.ui -o ../build/debug/ui_TocChatWidget.h
+
+../build/debug/ui_TocUserInfoWidget.h: TocUi/TocUserInfoWidget.ui
+       /usr/bin/uic TocUi/TocUserInfoWidget.ui -o ../build/debug/ui_TocUserInfoWidget.h
+
+../build/debug/ui_TocGeneralSettingsWidget.h: TocUi/TocGeneralSettingsWidget.ui
+       /usr/bin/uic TocUi/TocGeneralSettingsWidget.ui -o ../build/debug/ui_TocGeneralSettingsWidget.h
+
+../build/debug/ui_TocAccountSettingsWidget.h: TocUi/TocAccountSettingsWidget.ui
+       /usr/bin/uic TocUi/TocAccountSettingsWidget.ui -o ../build/debug/ui_TocAccountSettingsWidget.h
+
+../build/debug/ui_TocThemesSettingsWidget.h: TocUi/TocThemesSettingsWidget.ui
+       /usr/bin/uic TocUi/TocThemesSettingsWidget.ui -o ../build/debug/ui_TocThemesSettingsWidget.h
+
+../build/debug/ui_TocEmoticonsDialog.h: TocUi/TocEmoticonsDialog.ui
+       /usr/bin/uic TocUi/TocEmoticonsDialog.ui -o ../build/debug/ui_TocEmoticonsDialog.h
+
+compiler_yacc_decl_make_all:
+compiler_yacc_decl_clean:
+compiler_yacc_impl_make_all:
+compiler_yacc_impl_clean:
+compiler_lex_make_all:
+compiler_lex_clean:
+compiler_clean: compiler_moc_header_clean compiler_rcc_clean compiler_uic_clean 
+
+####### Compile
+
+../build/debug/main.o: main.cpp ../include/TocUi/TocMainWindow \
+               ../include/TocUi/tocmainwindow.h \
+               ../include/TocUi/TocBaseMainWindow \
+               ../include/TocUi/tocbasemainwindow.h \
+               ../include/defs.h \
+               TocEngine
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/main.o main.cpp
+
+../build/debug/TocSettings.o: TocSettings.cpp ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/defs.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/TocSettings.o TocSettings.cpp
+
+../build/debug/TocBaseMainWindow.o: TocUi/TocBaseMainWindow.cpp ../include/TocUi/TocBaseMainWindow \
+               ../include/TocUi/tocbasemainwindow.h \
+               ../include/defs.h \
+               ../include/TocEngine/TocBaseEngine \
+               ../include/TocEngine/tocbaseengine.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/TocBaseMainWindow.o TocUi/TocBaseMainWindow.cpp
+
+../build/debug/TocMainWindow.o: TocUi/TocMainWindow.cpp ../include/TocUi/TocMainWindow \
+               ../include/TocUi/tocmainwindow.h \
+               ../include/TocUi/TocBaseMainWindow \
+               ../include/TocUi/tocbasemainwindow.h \
+               ../include/defs.h \
+               ../include/TocUi/TocMainToolbar \
+               ../include/TocUi/tocmaintoolbar.h \
+               ../include/uidefs.h \
+               ../include/TocUi/TocContactListWidget \
+               ../include/TocUi/toccontactlistwidget.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/TocUi/TocChatWidget \
+               ../include/TocUi/tocchatwidget.h \
+               ../include/TocUi/TocUserInfoWidget \
+               ../include/TocUi/tocuserinfowidget.h \
+               ../include/TocUi/TocSettingsWidget \
+               ../include/TocUi/tocsettingswidget.h \
+               ../include/TocUi/TocGeneralSettingsWidget \
+               ../include/TocUi/tocgeneralsettingswidget.h \
+               ../include/TocUi/TocAccountSettingsWidget \
+               ../include/TocUi/tocaccountsettingswidget.h \
+               ../include/TocUi/TocAccountIntermediateWidget \
+               ../include/TocUi/tocaccountintermediatewidget.h \
+               ../include/TocUi/TocThemesSettingsWidget \
+               ../include/TocUi/tocthemessettingswidget.h \
+               ../include/macros.h \
+               ../include/version.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/TocMainWindow.o TocUi/TocMainWindow.cpp
+
+../build/debug/TocContactListWidget.o: TocUi/TocContactListWidget.cpp ../include/TocUi/TocContactListWidget \
+               ../include/TocUi/toccontactlistwidget.h \
+               ../include/defs.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/TocUi/IconProvider \
+               ../include/TocUi/iconprovider.h \
+               ../include/uidefs.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/TocContactListWidget.o TocUi/TocContactListWidget.cpp
+
+../build/debug/TocChatWidget.o: TocUi/TocChatWidget.cpp ../build/debug/ui_TocChatWidget.h \
+               ../include/TocUi/TocEmoticonsDialog \
+               ../include/TocUi/tocemoticonsdialog.h \
+               ../include/TocUi/TocChatWidget \
+               ../include/TocUi/tocchatwidget.h \
+               ../include/defs.h \
+               ../include/uidefs.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/TocChatWidget.o TocUi/TocChatWidget.cpp
+
+../build/debug/TocUserInfoWidget.o: TocUi/TocUserInfoWidget.cpp ../include/TocUi/TocContactListWidget \
+               ../include/TocUi/toccontactlistwidget.h \
+               ../include/defs.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/TocUi/TocUserInfoWidget \
+               ../include/TocUi/tocuserinfowidget.h \
+               ../include/TocUi/IconProvider \
+               ../include/TocUi/iconprovider.h \
+               ../build/debug/ui_TocUserInfoWidget.h \
+               ../include/uidefs.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/TocUserInfoWidget.o TocUi/TocUserInfoWidget.cpp
+
+../build/debug/TocSettingsWidget.o: TocUi/TocSettingsWidget.cpp ../include/TocUi/TocSettingsWidget \
+               ../include/TocUi/tocsettingswidget.h \
+               ../include/defs.h \
+               ../include/uidefs.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/TocSettingsWidget.o TocUi/TocSettingsWidget.cpp
+
+../build/debug/TocGeneralSettingsWidget.o: TocUi/TocGeneralSettingsWidget.cpp ../include/TocUi/TocGeneralSettingsWidget \
+               ../include/TocUi/tocgeneralsettingswidget.h \
+               ../include/defs.h \
+               ../build/debug/ui_TocGeneralSettingsWidget.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/TocGeneralSettingsWidget.o TocUi/TocGeneralSettingsWidget.cpp
+
+../build/debug/TocAccountSettingsWidget.o: TocUi/TocAccountSettingsWidget.cpp ../include/TocUi/TocAccountSettingsWidget \
+               ../include/TocUi/tocaccountsettingswidget.h \
+               ../include/defs.h \
+               ../build/debug/ui_TocAccountSettingsWidget.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/TocAccountSettingsWidget.o TocUi/TocAccountSettingsWidget.cpp
+
+../build/debug/TocAccountIntermediateWidget.o: TocUi/TocAccountIntermediateWidget.cpp ../include/TocUi/TocAccountIntermediateWidget \
+               ../include/TocUi/tocaccountintermediatewidget.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/TocAccountIntermediateWidget.o TocUi/TocAccountIntermediateWidget.cpp
+
+../build/debug/TocThemesSettingsWidget.o: TocUi/TocThemesSettingsWidget.cpp ../include/TocUi/TocThemesSettingsWidget \
+               ../include/TocUi/tocthemessettingswidget.h \
+               ../include/defs.h \
+               ../build/debug/ui_TocThemesSettingsWidget.h \
+               ../include/macros.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/TocThemesSettingsWidget.o TocUi/TocThemesSettingsWidget.cpp
+
+../build/debug/TocMainToolbar.o: TocUi/TocMainToolbar.cpp ../include/TocUi/TocMainToolbar \
+               ../include/TocUi/tocmaintoolbar.h \
+               ../include/defs.h \
+               ../include/uidefs.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/TocMainToolbar.o TocUi/TocMainToolbar.cpp
+
+../build/debug/IconProvider.o: TocUi/IconProvider.cpp ../include/TocUi/IconProvider \
+               ../include/TocUi/iconprovider.h \
+               ../include/defs.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/IconProvider.o TocUi/IconProvider.cpp
+
+../build/debug/TocEmoticonsDialog.o: TocUi/TocEmoticonsDialog.cpp ../build/debug/ui_TocEmoticonsDialog.h \
+               ../include/TocUi/TocEmoticonsDialog \
+               ../include/TocUi/tocemoticonsdialog.h \
+               ../include/macros.h \
+               ../include/uidefs.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/TocEmoticonsDialog.o TocUi/TocEmoticonsDialog.cpp
+
+../build/debug/TocBaseEngine.o: TocEngine/TocBaseEngine.cpp ../include/TocEngine/TocBaseEngine \
+               ../include/TocEngine/tocbaseengine.h \
+               ../include/defs.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/TocBaseEngine.o TocEngine/TocBaseEngine.cpp
+
+../build/debug/TocEngine.o: TocEngine/TocEngine.cpp ../include/TocEngine/TocEngine \
+               ../include/TocEngine/tocengine.h \
+               ../include/TocEngine/TocBaseEngine \
+               ../include/TocEngine/tocbaseengine.h \
+               ../include/defs.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/TocEngine.o TocEngine/TocEngine.cpp
+
+../build/debug/moc_tocbasemainwindow.o: ../build/debug/moc_tocbasemainwindow.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/moc_tocbasemainwindow.o ../build/debug/moc_tocbasemainwindow.cpp
+
+../build/debug/moc_tocmainwindow.o: ../build/debug/moc_tocmainwindow.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/moc_tocmainwindow.o ../build/debug/moc_tocmainwindow.cpp
+
+../build/debug/moc_toccontactlistwidget.o: ../build/debug/moc_toccontactlistwidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/moc_toccontactlistwidget.o ../build/debug/moc_toccontactlistwidget.cpp
+
+../build/debug/moc_tocchatwidget.o: ../build/debug/moc_tocchatwidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/moc_tocchatwidget.o ../build/debug/moc_tocchatwidget.cpp
+
+../build/debug/moc_tocuserinfowidget.o: ../build/debug/moc_tocuserinfowidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/moc_tocuserinfowidget.o ../build/debug/moc_tocuserinfowidget.cpp
+
+../build/debug/moc_tocsettingswidget.o: ../build/debug/moc_tocsettingswidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/moc_tocsettingswidget.o ../build/debug/moc_tocsettingswidget.cpp
+
+../build/debug/moc_tocgeneralsettingswidget.o: ../build/debug/moc_tocgeneralsettingswidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/moc_tocgeneralsettingswidget.o ../build/debug/moc_tocgeneralsettingswidget.cpp
+
+../build/debug/moc_tocaccountsettingswidget.o: ../build/debug/moc_tocaccountsettingswidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/moc_tocaccountsettingswidget.o ../build/debug/moc_tocaccountsettingswidget.cpp
+
+../build/debug/moc_tocaccountintermediatewidget.o: ../build/debug/moc_tocaccountintermediatewidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/moc_tocaccountintermediatewidget.o ../build/debug/moc_tocaccountintermediatewidget.cpp
+
+../build/debug/moc_tocthemessettingswidget.o: ../build/debug/moc_tocthemessettingswidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/moc_tocthemessettingswidget.o ../build/debug/moc_tocthemessettingswidget.cpp
+
+../build/debug/moc_tocmaintoolbar.o: ../build/debug/moc_tocmaintoolbar.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/moc_tocmaintoolbar.o ../build/debug/moc_tocmaintoolbar.cpp
+
+../build/debug/moc_tocemoticonsdialog.o: ../build/debug/moc_tocemoticonsdialog.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/moc_tocemoticonsdialog.o ../build/debug/moc_tocemoticonsdialog.cpp
+
+../build/debug/moc_tocbaseengine.o: ../build/debug/moc_tocbaseengine.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/moc_tocbaseengine.o ../build/debug/moc_tocbaseengine.cpp
+
+../build/debug/moc_tocengine.o: ../build/debug/moc_tocengine.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/moc_tocengine.o ../build/debug/moc_tocengine.cpp
+
+../build/debug/qrc_application.o: ../build/debug/qrc_application.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/debug/qrc_application.o ../build/debug/qrc_application.cpp
+
+####### Install
+
+install_target: first FORCE
+       @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/usr/bin/ || $(MKDIR) $(INSTALL_ROOT)/usr/bin/ 
+       -$(INSTALL_PROGRAM) "../bin/$(QMAKE_TARGET)" "$(INSTALL_ROOT)/usr/bin/$(QMAKE_TARGET)"
+
+uninstall_target:  FORCE
+       -$(DEL_FILE) "$(INSTALL_ROOT)/usr/bin/$(QMAKE_TARGET)"
+       -$(DEL_DIR) $(INSTALL_ROOT)/usr/bin/ 
+
+
+install:  install_target  FORCE
+
+uninstall: uninstall_target   FORCE
+
+FORCE:
+
diff --git a/src/Makefile.Release b/src/Makefile.Release
new file mode 100644 (file)
index 0000000..92ebdb1
--- /dev/null
@@ -0,0 +1,556 @@
+#############################################################################
+# Makefile for building: ../bin/tietoopcom
+# Generated by qmake (2.01a) (Qt 4.6.2) on: Thu Jul 8 08:48:04 2010
+# Project:  src.pro
+# Template: app
+#############################################################################
+
+####### Compiler, tools and options
+
+CC            = gcc
+CXX           = g++
+DEFINES       = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+CFLAGS        = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
+CXXFLAGS      = -pipe -O2 -DQT_NO_DEBUG_OUTPUT -Wall -W -D_REENTRANT $(DEFINES)
+INCPATH       = -I/targets/FREMANTLE_X86/usr/share/qt4/mkspecs/linux-g++ -I. -I/targets/FREMANTLE_X86/usr/include/QtCore -I/targets/FREMANTLE_X86/usr/include/QtGui -I/targets/FREMANTLE_X86/usr/include -I/targets/FREMANTLE_X86/usr/include/QtDBus -I. -ITocUi -ITocEngine -I../include -I../include/TocUi -I../include/TocEngine -I../build/release -I../build/release
+LINK          = g++
+LFLAGS        = -Wl,-O1 -Wl,-rpath,/usr/lib
+LIBS          = $(SUBLIBS)  -L/usr/lib -lQtTapioca -lQtDBus -L/usr/lib -lQtXml -lQtGui -L/usr/X11R6/lib -lQtCore -lpthread 
+AR            = ar cqs
+RANLIB        = 
+QMAKE         = /usr/bin/qmake
+TAR           = tar -cf
+COMPRESS      = gzip -9f
+COPY          = cp -f
+SED           = sed
+COPY_FILE     = $(COPY)
+COPY_DIR      = $(COPY) -r
+STRIP         = strip
+INSTALL_FILE  = install -m 644 -p
+INSTALL_DIR   = $(COPY_DIR)
+INSTALL_PROGRAM = install -m 755 -p
+DEL_FILE      = rm -f
+SYMLINK       = ln -f -s
+DEL_DIR       = rmdir
+MOVE          = mv -f
+CHK_DIR_EXISTS= test -d
+MKDIR         = mkdir -p
+
+####### Output directory
+
+OBJECTS_DIR   = ../build/release/
+
+####### Files
+
+SOURCES       = main.cpp \
+               TocSettings.cpp \
+               TocUi/TocBaseMainWindow.cpp \
+               TocUi/TocMainWindow.cpp \
+               TocUi/TocContactListWidget.cpp \
+               TocUi/TocChatWidget.cpp \
+               TocUi/TocUserInfoWidget.cpp \
+               TocUi/TocSettingsWidget.cpp \
+               TocUi/TocGeneralSettingsWidget.cpp \
+               TocUi/TocAccountSettingsWidget.cpp \
+               TocUi/TocAccountIntermediateWidget.cpp \
+               TocUi/TocThemesSettingsWidget.cpp \
+               TocUi/TocMainToolbar.cpp \
+               TocUi/IconProvider.cpp \
+               TocUi/TocEmoticonsDialog.cpp \
+               TocEngine/TocBaseEngine.cpp \
+               TocEngine/TocEngine.cpp ../build/release/moc_tocbasemainwindow.cpp \
+               ../build/release/moc_tocmainwindow.cpp \
+               ../build/release/moc_toccontactlistwidget.cpp \
+               ../build/release/moc_tocchatwidget.cpp \
+               ../build/release/moc_tocuserinfowidget.cpp \
+               ../build/release/moc_tocsettingswidget.cpp \
+               ../build/release/moc_tocgeneralsettingswidget.cpp \
+               ../build/release/moc_tocaccountsettingswidget.cpp \
+               ../build/release/moc_tocaccountintermediatewidget.cpp \
+               ../build/release/moc_tocthemessettingswidget.cpp \
+               ../build/release/moc_tocmaintoolbar.cpp \
+               ../build/release/moc_tocemoticonsdialog.cpp \
+               ../build/release/moc_tocbaseengine.cpp \
+               ../build/release/moc_tocengine.cpp \
+               ../build/release/qrc_application.cpp
+OBJECTS       = ../build/release/main.o \
+               ../build/release/TocSettings.o \
+               ../build/release/TocBaseMainWindow.o \
+               ../build/release/TocMainWindow.o \
+               ../build/release/TocContactListWidget.o \
+               ../build/release/TocChatWidget.o \
+               ../build/release/TocUserInfoWidget.o \
+               ../build/release/TocSettingsWidget.o \
+               ../build/release/TocGeneralSettingsWidget.o \
+               ../build/release/TocAccountSettingsWidget.o \
+               ../build/release/TocAccountIntermediateWidget.o \
+               ../build/release/TocThemesSettingsWidget.o \
+               ../build/release/TocMainToolbar.o \
+               ../build/release/IconProvider.o \
+               ../build/release/TocEmoticonsDialog.o \
+               ../build/release/TocBaseEngine.o \
+               ../build/release/TocEngine.o \
+               ../build/release/moc_tocbasemainwindow.o \
+               ../build/release/moc_tocmainwindow.o \
+               ../build/release/moc_toccontactlistwidget.o \
+               ../build/release/moc_tocchatwidget.o \
+               ../build/release/moc_tocuserinfowidget.o \
+               ../build/release/moc_tocsettingswidget.o \
+               ../build/release/moc_tocgeneralsettingswidget.o \
+               ../build/release/moc_tocaccountsettingswidget.o \
+               ../build/release/moc_tocaccountintermediatewidget.o \
+               ../build/release/moc_tocthemessettingswidget.o \
+               ../build/release/moc_tocmaintoolbar.o \
+               ../build/release/moc_tocemoticonsdialog.o \
+               ../build/release/moc_tocbaseengine.o \
+               ../build/release/moc_tocengine.o \
+               ../build/release/qrc_application.o
+DIST          = /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/g++.conf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/unix.conf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/common/linux.conf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/qconfig.pri \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt_functions.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt_config.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/default_pre.prf \
+               TocUi/TocUi.pri \
+               TocEngine/TocEngine.pri \
+               ../include/TocUi/TocUi.pri \
+               ../include/TocEngine/TocEngine.pri \
+               ../include/include.pri \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/release.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/debug_and_release.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/default_post.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/build_pass.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qdbus.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/moc.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/dbusinterfaces.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/dbusadaptors.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/warn_on.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/qt.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/unix/thread.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/resources.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/uic.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/yacc.prf \
+               /targets/FREMANTLE_X86/usr/share/qt4/mkspecs/features/lex.prf \
+               src.pro
+QMAKE_TARGET  = tietoopcom
+DESTDIR       = ../bin/
+TARGET        = ../bin/tietoopcom
+
+first: all
+####### Implicit rules
+
+.SUFFIXES: .o .c .cpp .cc .cxx .C
+
+.cpp.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cc.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cxx.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.C.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.c.o:
+       $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
+
+####### Build rules
+
+all: Makefile.Release $(TARGET)
+
+$(TARGET): ../build/release/ui_TocChatWidget.h ../build/release/ui_TocUserInfoWidget.h ../build/release/ui_TocGeneralSettingsWidget.h ../build/release/ui_TocAccountSettingsWidget.h ../build/release/ui_TocThemesSettingsWidget.h ../build/release/ui_TocEmoticonsDialog.h $(OBJECTS)  
+       @$(CHK_DIR_EXISTS) ../bin/ || $(MKDIR) ../bin/ 
+       $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
+
+qmake:  FORCE
+       @$(QMAKE) -unix -o Makefile.Release src.pro
+
+dist: 
+       @$(CHK_DIR_EXISTS) ../build/release/tietoopcom1.0.0 || $(MKDIR) ../build/release/tietoopcom1.0.0 
+       $(COPY_FILE) --parents $(SOURCES) $(DIST) ../build/release/tietoopcom1.0.0/ && $(COPY_FILE) --parents ../include/version.h ../include/defs.h ../include/macros.h ../include/TocSettings ../include/tocsettings.h ../include/TocUi/TocBaseMainWindow ../include/TocUi/tocbasemainwindow.h ../include/TocUi/TocMainWindow ../include/TocUi/tocmainwindow.h ../include/TocUi/TocContactListWidget ../include/TocUi/toccontactlistwidget.h ../include/TocUi/TocChatWidget ../include/TocUi/tocchatwidget.h ../include/TocUi/TocUserInfoWidget ../include/TocUi/tocuserinfowidget.h ../include/TocUi/TocSettingsWidget ../include/TocUi/tocsettingswidget.h ../include/TocUi/TocGeneralSettingsWidget ../include/TocUi/tocgeneralsettingswidget.h ../include/TocUi/TocAccountSettingsWidget ../include/TocUi/tocaccountsettingswidget.h ../include/TocUi/TocAccountIntermediateWidget ../include/TocUi/tocaccountintermediatewidget.h ../include/TocUi/TocThemesSettingsWidget ../include/TocUi/tocthemessettingswidget.h ../include/TocUi/TocMainToolbar ../include/TocUi/tocmaintoolbar.h ../include/TocUi/IconProvider ../include/TocUi/iconprovider.h ../include/TocUi/TocEmoticonsDialog ../include/TocUi/tocemoticonsdialog.h ../include/TocEngine/TocBaseEngine ../include/TocEngine/tocbaseengine.h TocEngine ../include/TocEngine/tocengine.h ../build/release/tietoopcom1.0.0/ && $(COPY_FILE) --parents application.qrc ../build/release/tietoopcom1.0.0/ && $(COPY_FILE) --parents main.cpp TocSettings.cpp TocUi/TocBaseMainWindow.cpp TocUi/TocMainWindow.cpp TocUi/TocContactListWidget.cpp TocUi/TocChatWidget.cpp TocUi/TocUserInfoWidget.cpp TocUi/TocSettingsWidget.cpp TocUi/TocGeneralSettingsWidget.cpp TocUi/TocAccountSettingsWidget.cpp TocUi/TocAccountIntermediateWidget.cpp TocUi/TocThemesSettingsWidget.cpp TocUi/TocMainToolbar.cpp TocUi/IconProvider.cpp TocUi/TocEmoticonsDialog.cpp TocEngine/TocBaseEngine.cpp TocEngine/TocEngine.cpp ../build/release/tietoopcom1.0.0/ && $(COPY_FILE) --parents TocUi/TocChatWidget.ui TocUi/TocUserInfoWidget.ui TocUi/TocGeneralSettingsWidget.ui TocUi/TocAccountSettingsWidget.ui TocUi/TocThemesSettingsWidget.ui TocUi/TocEmoticonsDialog.ui ../build/release/tietoopcom1.0.0/ && (cd `dirname ../build/release/tietoopcom1.0.0` && $(TAR) tietoopcom1.0.0.tar tietoopcom1.0.0 && $(COMPRESS) tietoopcom1.0.0.tar) && $(MOVE) `dirname ../build/release/tietoopcom1.0.0`/tietoopcom1.0.0.tar.gz . && $(DEL_FILE) -r ../build/release/tietoopcom1.0.0
+
+
+clean:compiler_clean 
+       -$(DEL_FILE) $(OBJECTS)
+       -$(DEL_FILE) *~ core *.core
+
+
+####### Sub-libraries
+
+distclean: clean
+       -$(DEL_FILE) $(TARGET) 
+       -$(DEL_FILE) Makefile.Release
+
+
+mocclean: compiler_moc_header_clean compiler_moc_source_clean
+
+mocables: compiler_moc_header_make_all compiler_moc_source_make_all
+
+compiler_moc_header_make_all: ../build/release/moc_tocbasemainwindow.cpp ../build/release/moc_tocmainwindow.cpp ../build/release/moc_toccontactlistwidget.cpp ../build/release/moc_tocchatwidget.cpp ../build/release/moc_tocuserinfowidget.cpp ../build/release/moc_tocsettingswidget.cpp ../build/release/moc_tocgeneralsettingswidget.cpp ../build/release/moc_tocaccountsettingswidget.cpp ../build/release/moc_tocaccountintermediatewidget.cpp ../build/release/moc_tocthemessettingswidget.cpp ../build/release/moc_tocmaintoolbar.cpp ../build/release/moc_tocemoticonsdialog.cpp ../build/release/moc_tocbaseengine.cpp ../build/release/moc_tocengine.cpp
+compiler_moc_header_clean:
+       -$(DEL_FILE) ../build/release/moc_tocbasemainwindow.cpp ../build/release/moc_tocmainwindow.cpp ../build/release/moc_toccontactlistwidget.cpp ../build/release/moc_tocchatwidget.cpp ../build/release/moc_tocuserinfowidget.cpp ../build/release/moc_tocsettingswidget.cpp ../build/release/moc_tocgeneralsettingswidget.cpp ../build/release/moc_tocaccountsettingswidget.cpp ../build/release/moc_tocaccountintermediatewidget.cpp ../build/release/moc_tocthemessettingswidget.cpp ../build/release/moc_tocmaintoolbar.cpp ../build/release/moc_tocemoticonsdialog.cpp ../build/release/moc_tocbaseengine.cpp ../build/release/moc_tocengine.cpp
+../build/release/moc_tocbasemainwindow.cpp: ../include/defs.h \
+               ../include/TocUi/tocbasemainwindow.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocbasemainwindow.h -o ../build/release/moc_tocbasemainwindow.cpp
+
+../build/release/moc_tocmainwindow.cpp: ../include/TocUi/TocBaseMainWindow \
+               ../include/TocUi/tocbasemainwindow.h \
+               ../include/defs.h \
+               ../include/TocUi/tocmainwindow.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocmainwindow.h -o ../build/release/moc_tocmainwindow.cpp
+
+../build/release/moc_toccontactlistwidget.cpp: ../include/defs.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/TocUi/toccontactlistwidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/toccontactlistwidget.h -o ../build/release/moc_toccontactlistwidget.cpp
+
+../build/release/moc_tocchatwidget.cpp: ../include/defs.h \
+               ../include/TocUi/tocchatwidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocchatwidget.h -o ../build/release/moc_tocchatwidget.cpp
+
+../build/release/moc_tocuserinfowidget.cpp: ../include/defs.h \
+               ../include/TocUi/tocuserinfowidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocuserinfowidget.h -o ../build/release/moc_tocuserinfowidget.cpp
+
+../build/release/moc_tocsettingswidget.cpp: ../include/defs.h \
+               ../include/TocUi/tocsettingswidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocsettingswidget.h -o ../build/release/moc_tocsettingswidget.cpp
+
+../build/release/moc_tocgeneralsettingswidget.cpp: ../include/defs.h \
+               ../include/TocUi/tocgeneralsettingswidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocgeneralsettingswidget.h -o ../build/release/moc_tocgeneralsettingswidget.cpp
+
+../build/release/moc_tocaccountsettingswidget.cpp: ../include/defs.h \
+               ../include/TocUi/tocaccountsettingswidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocaccountsettingswidget.h -o ../build/release/moc_tocaccountsettingswidget.cpp
+
+../build/release/moc_tocaccountintermediatewidget.cpp: ../include/TocUi/tocaccountintermediatewidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocaccountintermediatewidget.h -o ../build/release/moc_tocaccountintermediatewidget.cpp
+
+../build/release/moc_tocthemessettingswidget.cpp: ../include/defs.h \
+               ../include/TocUi/tocthemessettingswidget.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocthemessettingswidget.h -o ../build/release/moc_tocthemessettingswidget.cpp
+
+../build/release/moc_tocmaintoolbar.cpp: ../include/defs.h \
+               ../include/uidefs.h \
+               ../include/TocUi/tocmaintoolbar.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocmaintoolbar.h -o ../build/release/moc_tocmaintoolbar.cpp
+
+../build/release/moc_tocemoticonsdialog.cpp: ../include/TocUi/tocemoticonsdialog.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocUi/tocemoticonsdialog.h -o ../build/release/moc_tocemoticonsdialog.cpp
+
+../build/release/moc_tocbaseengine.cpp: ../include/defs.h \
+               ../include/TocEngine/tocbaseengine.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocEngine/tocbaseengine.h -o ../build/release/moc_tocbaseengine.cpp
+
+../build/release/moc_tocengine.cpp: ../include/TocEngine/TocBaseEngine \
+               ../include/TocEngine/tocbaseengine.h \
+               ../include/defs.h \
+               ../include/TocEngine/tocengine.h
+       /usr/bin/moc $(DEFINES) $(INCPATH) ../include/TocEngine/tocengine.h -o ../build/release/moc_tocengine.cpp
+
+compiler_dbus_interface_source_make_all:
+compiler_dbus_interface_source_clean:
+compiler_dbus_adaptor_source_make_all:
+compiler_dbus_adaptor_source_clean:
+compiler_rcc_make_all: ../build/release/qrc_application.cpp
+compiler_rcc_clean:
+       -$(DEL_FILE) ../build/release/qrc_application.cpp
+../build/release/qrc_application.cpp: application.qrc \
+               ../resources/offline.png \
+               ../resources/close.png \
+               ../resources/addcontact.png \
+               ../resources/contactfemale.png \
+               ../resources/away.png \
+               ../resources/themes.png \
+               ../resources/yellowframe.png \
+               ../resources/online.png \
+               ../resources/restore.png \
+               ../resources/redframe.png \
+               ../resources/general.png \
+               ../resources/settings.png \
+               ../resources/hidden.png \
+               ../resources/busy.png \
+               ../resources/greenframe.png \
+               ../resources/contactmale.png \
+               ../resources/network.png \
+               ../resources/tieto-logo.png \
+               ../resources/activesessions.png \
+               ../resources/contacts.png \
+               ../resources/unknown.png \
+               ../resources/account.png
+       /usr/bin/rcc -name application application.qrc -o ../build/release/qrc_application.cpp
+
+compiler_image_collection_make_all: qmake_image_collection.cpp
+compiler_image_collection_clean:
+       -$(DEL_FILE) qmake_image_collection.cpp
+compiler_moc_source_make_all:
+compiler_moc_source_clean:
+compiler_dbus_interface_header_make_all:
+compiler_dbus_interface_header_clean:
+compiler_dbus_interface_moc_make_all:
+compiler_dbus_interface_moc_clean:
+compiler_dbus_adaptor_header_make_all:
+compiler_dbus_adaptor_header_clean:
+compiler_dbus_adaptor_moc_make_all:
+compiler_dbus_adaptor_moc_clean:
+compiler_uic_make_all: ../build/release/ui_TocChatWidget.h ../build/release/ui_TocUserInfoWidget.h ../build/release/ui_TocGeneralSettingsWidget.h ../build/release/ui_TocAccountSettingsWidget.h ../build/release/ui_TocThemesSettingsWidget.h ../build/release/ui_TocEmoticonsDialog.h
+compiler_uic_clean:
+       -$(DEL_FILE) ../build/release/ui_TocChatWidget.h ../build/release/ui_TocUserInfoWidget.h ../build/release/ui_TocGeneralSettingsWidget.h ../build/release/ui_TocAccountSettingsWidget.h ../build/release/ui_TocThemesSettingsWidget.h ../build/release/ui_TocEmoticonsDialog.h
+../build/release/ui_TocChatWidget.h: TocUi/TocChatWidget.ui
+       /usr/bin/uic TocUi/TocChatWidget.ui -o ../build/release/ui_TocChatWidget.h
+
+../build/release/ui_TocUserInfoWidget.h: TocUi/TocUserInfoWidget.ui
+       /usr/bin/uic TocUi/TocUserInfoWidget.ui -o ../build/release/ui_TocUserInfoWidget.h
+
+../build/release/ui_TocGeneralSettingsWidget.h: TocUi/TocGeneralSettingsWidget.ui
+       /usr/bin/uic TocUi/TocGeneralSettingsWidget.ui -o ../build/release/ui_TocGeneralSettingsWidget.h
+
+../build/release/ui_TocAccountSettingsWidget.h: TocUi/TocAccountSettingsWidget.ui
+       /usr/bin/uic TocUi/TocAccountSettingsWidget.ui -o ../build/release/ui_TocAccountSettingsWidget.h
+
+../build/release/ui_TocThemesSettingsWidget.h: TocUi/TocThemesSettingsWidget.ui
+       /usr/bin/uic TocUi/TocThemesSettingsWidget.ui -o ../build/release/ui_TocThemesSettingsWidget.h
+
+../build/release/ui_TocEmoticonsDialog.h: TocUi/TocEmoticonsDialog.ui
+       /usr/bin/uic TocUi/TocEmoticonsDialog.ui -o ../build/release/ui_TocEmoticonsDialog.h
+
+compiler_yacc_decl_make_all:
+compiler_yacc_decl_clean:
+compiler_yacc_impl_make_all:
+compiler_yacc_impl_clean:
+compiler_lex_make_all:
+compiler_lex_clean:
+compiler_clean: compiler_moc_header_clean compiler_rcc_clean compiler_uic_clean 
+
+####### Compile
+
+../build/release/main.o: main.cpp ../include/TocUi/TocMainWindow \
+               ../include/TocUi/tocmainwindow.h \
+               ../include/TocUi/TocBaseMainWindow \
+               ../include/TocUi/tocbasemainwindow.h \
+               ../include/defs.h \
+               TocEngine
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/main.o main.cpp
+
+../build/release/TocSettings.o: TocSettings.cpp ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/defs.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/TocSettings.o TocSettings.cpp
+
+../build/release/TocBaseMainWindow.o: TocUi/TocBaseMainWindow.cpp ../include/TocUi/TocBaseMainWindow \
+               ../include/TocUi/tocbasemainwindow.h \
+               ../include/defs.h \
+               ../include/TocEngine/TocBaseEngine \
+               ../include/TocEngine/tocbaseengine.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/TocBaseMainWindow.o TocUi/TocBaseMainWindow.cpp
+
+../build/release/TocMainWindow.o: TocUi/TocMainWindow.cpp ../include/TocUi/TocMainWindow \
+               ../include/TocUi/tocmainwindow.h \
+               ../include/TocUi/TocBaseMainWindow \
+               ../include/TocUi/tocbasemainwindow.h \
+               ../include/defs.h \
+               ../include/TocUi/TocMainToolbar \
+               ../include/TocUi/tocmaintoolbar.h \
+               ../include/uidefs.h \
+               ../include/TocUi/TocContactListWidget \
+               ../include/TocUi/toccontactlistwidget.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/TocUi/TocChatWidget \
+               ../include/TocUi/tocchatwidget.h \
+               ../include/TocUi/TocUserInfoWidget \
+               ../include/TocUi/tocuserinfowidget.h \
+               ../include/TocUi/TocSettingsWidget \
+               ../include/TocUi/tocsettingswidget.h \
+               ../include/TocUi/TocGeneralSettingsWidget \
+               ../include/TocUi/tocgeneralsettingswidget.h \
+               ../include/TocUi/TocAccountSettingsWidget \
+               ../include/TocUi/tocaccountsettingswidget.h \
+               ../include/TocUi/TocAccountIntermediateWidget \
+               ../include/TocUi/tocaccountintermediatewidget.h \
+               ../include/TocUi/TocThemesSettingsWidget \
+               ../include/TocUi/tocthemessettingswidget.h \
+               ../include/macros.h \
+               ../include/version.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/TocMainWindow.o TocUi/TocMainWindow.cpp
+
+../build/release/TocContactListWidget.o: TocUi/TocContactListWidget.cpp ../include/TocUi/TocContactListWidget \
+               ../include/TocUi/toccontactlistwidget.h \
+               ../include/defs.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/TocUi/IconProvider \
+               ../include/TocUi/iconprovider.h \
+               ../include/uidefs.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/TocContactListWidget.o TocUi/TocContactListWidget.cpp
+
+../build/release/TocChatWidget.o: TocUi/TocChatWidget.cpp ../build/release/ui_TocChatWidget.h \
+               ../include/TocUi/TocEmoticonsDialog \
+               ../include/TocUi/tocemoticonsdialog.h \
+               ../include/TocUi/TocChatWidget \
+               ../include/TocUi/tocchatwidget.h \
+               ../include/defs.h \
+               ../include/uidefs.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/TocChatWidget.o TocUi/TocChatWidget.cpp
+
+../build/release/TocUserInfoWidget.o: TocUi/TocUserInfoWidget.cpp ../include/TocUi/TocContactListWidget \
+               ../include/TocUi/toccontactlistwidget.h \
+               ../include/defs.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/TocUi/TocUserInfoWidget \
+               ../include/TocUi/tocuserinfowidget.h \
+               ../include/TocUi/IconProvider \
+               ../include/TocUi/iconprovider.h \
+               ../build/release/ui_TocUserInfoWidget.h \
+               ../include/uidefs.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/TocUserInfoWidget.o TocUi/TocUserInfoWidget.cpp
+
+../build/release/TocSettingsWidget.o: TocUi/TocSettingsWidget.cpp ../include/TocUi/TocSettingsWidget \
+               ../include/TocUi/tocsettingswidget.h \
+               ../include/defs.h \
+               ../include/uidefs.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/TocSettingsWidget.o TocUi/TocSettingsWidget.cpp
+
+../build/release/TocGeneralSettingsWidget.o: TocUi/TocGeneralSettingsWidget.cpp ../include/TocUi/TocGeneralSettingsWidget \
+               ../include/TocUi/tocgeneralsettingswidget.h \
+               ../include/defs.h \
+               ../build/release/ui_TocGeneralSettingsWidget.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/TocGeneralSettingsWidget.o TocUi/TocGeneralSettingsWidget.cpp
+
+../build/release/TocAccountSettingsWidget.o: TocUi/TocAccountSettingsWidget.cpp ../include/TocUi/TocAccountSettingsWidget \
+               ../include/TocUi/tocaccountsettingswidget.h \
+               ../include/defs.h \
+               ../build/release/ui_TocAccountSettingsWidget.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/TocAccountSettingsWidget.o TocUi/TocAccountSettingsWidget.cpp
+
+../build/release/TocAccountIntermediateWidget.o: TocUi/TocAccountIntermediateWidget.cpp ../include/TocUi/TocAccountIntermediateWidget \
+               ../include/TocUi/tocaccountintermediatewidget.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/TocAccountIntermediateWidget.o TocUi/TocAccountIntermediateWidget.cpp
+
+../build/release/TocThemesSettingsWidget.o: TocUi/TocThemesSettingsWidget.cpp ../include/TocUi/TocThemesSettingsWidget \
+               ../include/TocUi/tocthemessettingswidget.h \
+               ../include/defs.h \
+               ../build/release/ui_TocThemesSettingsWidget.h \
+               ../include/macros.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/TocThemesSettingsWidget.o TocUi/TocThemesSettingsWidget.cpp
+
+../build/release/TocMainToolbar.o: TocUi/TocMainToolbar.cpp ../include/TocUi/TocMainToolbar \
+               ../include/TocUi/tocmaintoolbar.h \
+               ../include/defs.h \
+               ../include/uidefs.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/TocMainToolbar.o TocUi/TocMainToolbar.cpp
+
+../build/release/IconProvider.o: TocUi/IconProvider.cpp ../include/TocUi/IconProvider \
+               ../include/TocUi/iconprovider.h \
+               ../include/defs.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/IconProvider.o TocUi/IconProvider.cpp
+
+../build/release/TocEmoticonsDialog.o: TocUi/TocEmoticonsDialog.cpp ../build/release/ui_TocEmoticonsDialog.h \
+               ../include/TocUi/TocEmoticonsDialog \
+               ../include/TocUi/tocemoticonsdialog.h \
+               ../include/macros.h \
+               ../include/uidefs.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/TocEmoticonsDialog.o TocUi/TocEmoticonsDialog.cpp
+
+../build/release/TocBaseEngine.o: TocEngine/TocBaseEngine.cpp ../include/TocEngine/TocBaseEngine \
+               ../include/TocEngine/tocbaseengine.h \
+               ../include/defs.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/TocBaseEngine.o TocEngine/TocBaseEngine.cpp
+
+../build/release/TocEngine.o: TocEngine/TocEngine.cpp ../include/TocEngine/TocEngine \
+               ../include/TocEngine/tocengine.h \
+               ../include/TocEngine/TocBaseEngine \
+               ../include/TocEngine/tocbaseengine.h \
+               ../include/defs.h \
+               ../include/TocSettings \
+               ../include/tocsettings.h \
+               ../include/macros.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/TocEngine.o TocEngine/TocEngine.cpp
+
+../build/release/moc_tocbasemainwindow.o: ../build/release/moc_tocbasemainwindow.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/moc_tocbasemainwindow.o ../build/release/moc_tocbasemainwindow.cpp
+
+../build/release/moc_tocmainwindow.o: ../build/release/moc_tocmainwindow.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/moc_tocmainwindow.o ../build/release/moc_tocmainwindow.cpp
+
+../build/release/moc_toccontactlistwidget.o: ../build/release/moc_toccontactlistwidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/moc_toccontactlistwidget.o ../build/release/moc_toccontactlistwidget.cpp
+
+../build/release/moc_tocchatwidget.o: ../build/release/moc_tocchatwidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/moc_tocchatwidget.o ../build/release/moc_tocchatwidget.cpp
+
+../build/release/moc_tocuserinfowidget.o: ../build/release/moc_tocuserinfowidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/moc_tocuserinfowidget.o ../build/release/moc_tocuserinfowidget.cpp
+
+../build/release/moc_tocsettingswidget.o: ../build/release/moc_tocsettingswidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/moc_tocsettingswidget.o ../build/release/moc_tocsettingswidget.cpp
+
+../build/release/moc_tocgeneralsettingswidget.o: ../build/release/moc_tocgeneralsettingswidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/moc_tocgeneralsettingswidget.o ../build/release/moc_tocgeneralsettingswidget.cpp
+
+../build/release/moc_tocaccountsettingswidget.o: ../build/release/moc_tocaccountsettingswidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/moc_tocaccountsettingswidget.o ../build/release/moc_tocaccountsettingswidget.cpp
+
+../build/release/moc_tocaccountintermediatewidget.o: ../build/release/moc_tocaccountintermediatewidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/moc_tocaccountintermediatewidget.o ../build/release/moc_tocaccountintermediatewidget.cpp
+
+../build/release/moc_tocthemessettingswidget.o: ../build/release/moc_tocthemessettingswidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/moc_tocthemessettingswidget.o ../build/release/moc_tocthemessettingswidget.cpp
+
+../build/release/moc_tocmaintoolbar.o: ../build/release/moc_tocmaintoolbar.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/moc_tocmaintoolbar.o ../build/release/moc_tocmaintoolbar.cpp
+
+../build/release/moc_tocemoticonsdialog.o: ../build/release/moc_tocemoticonsdialog.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/moc_tocemoticonsdialog.o ../build/release/moc_tocemoticonsdialog.cpp
+
+../build/release/moc_tocbaseengine.o: ../build/release/moc_tocbaseengine.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/moc_tocbaseengine.o ../build/release/moc_tocbaseengine.cpp
+
+../build/release/moc_tocengine.o: ../build/release/moc_tocengine.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/moc_tocengine.o ../build/release/moc_tocengine.cpp
+
+../build/release/qrc_application.o: ../build/release/qrc_application.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../build/release/qrc_application.o ../build/release/qrc_application.cpp
+
+####### Install
+
+install_target: first FORCE
+       @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/usr/bin/ || $(MKDIR) $(INSTALL_ROOT)/usr/bin/ 
+       -$(INSTALL_PROGRAM) "../bin/$(QMAKE_TARGET)" "$(INSTALL_ROOT)/usr/bin/$(QMAKE_TARGET)"
+       -$(STRIP) "$(INSTALL_ROOT)/usr/bin/$(QMAKE_TARGET)"
+
+uninstall_target:  FORCE
+       -$(DEL_FILE) "$(INSTALL_ROOT)/usr/bin/$(QMAKE_TARGET)"
+       -$(DEL_DIR) $(INSTALL_ROOT)/usr/bin/ 
+
+
+install:  install_target  FORCE
+
+uninstall: uninstall_target   FORCE
+
+FORCE:
+
diff --git a/src/TocEngine/TocBaseEngine.cpp b/src/TocEngine/TocBaseEngine.cpp
new file mode 100644 (file)
index 0000000..af91351
--- /dev/null
@@ -0,0 +1,39 @@
+/** \file TocBaseEngine.cpp
+ * \brief Implementation of TocBaseEngine class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#include "TocBaseEngine"
+
+TocBaseEngine::TocBaseEngine( QObject * parent )
+       : QObject( parent ) {
+}
+
+TocBaseEngine::~TocBaseEngine() {
+}
diff --git a/src/TocEngine/TocEngine.cpp b/src/TocEngine/TocEngine.cpp
new file mode 100644 (file)
index 0000000..4dfbf45
--- /dev/null
@@ -0,0 +1,535 @@
+/** \file TocEngine.cpp
+ * \brief Implementation of TocEngine class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#include "TocEngine"
+#include "TocSettings"
+#include "macros.h"
+
+#include <QString>
+#include <QDebug>
+
+#include <QtTapioca/ConnectionManager>
+#include <QtTapioca/ConnectionManagerFactory>
+#include <QtTapioca/Contact>
+#include <QtTapioca/ContactList>
+#include <QtTapioca/TextChannel>
+
+using namespace QtTapioca;
+
+Q_DECLARE_METATYPE(QtTapioca::Connection*);
+Q_DECLARE_METATYPE(QtTapioca::ContactBase*);
+Q_DECLARE_METATYPE(QtTapioca::Connection::Status);
+Q_DECLARE_METATYPE(QtTapioca::Connection::Reason);
+Q_DECLARE_METATYPE(QtTapioca::ContactBase::Presence);
+
+TocEngine::TocEngine( QObject * parent ): 
+       TocBaseEngine( parent ), 
+       _bNewUserContact(true), 
+       _bContactListSynchronized(false), 
+       _pConnection(0) 
+{
+
+       qRegisterMetaType<QtTapioca::Connection::Status>();
+       qRegisterMetaType<QtTapioca::Connection::Reason>();
+       qRegisterMetaType<QtTapioca::ContactBase::Presence>();
+       qRegisterMetaType<TocContactList>();
+
+       TocSettings* pSettings = TocSettings::getInstance();
+       _pTocContactList = pSettings->contactList();
+       _pAddedContacts = pSettings->contactsToAdd();
+       _pRemovedContacts = pSettings->contactsToRemove();
+       
+}
+
+TocEngine::~TocEngine() {
+       if(_pConnection)
+               _pConnection->disconnect();
+
+       delete _pConnection;
+       
+       TocSettings *pSettings = TocSettings::getInstance();
+       delete pSettings;
+}
+
+void TocEngine::initializeFromSettings() {
+
+       _bNewUserContact = true;
+
+       TocSettings* pSettings = TocSettings::getInstance();
+
+       // Disconnect first
+       if(_pConnection) {
+               _pConnection->disconnect();
+               delete _pConnection;
+               _pConnection = 0;
+       }
+       // Reset the UserContact flag
+       _bNewUserContact = true;
+       
+       ConnectionManagerFactory *pFactory = ConnectionManagerFactory::self();
+
+       // Find new available protocols
+       QList<ConnectionManager*> connectionManagers = pFactory->getAllConnectionManagers();
+       ConnectionManager *pConnectionManager;
+       foreach ( pConnectionManager, connectionManagers ) {
+               QString protocol;
+               QStringList protocols = pConnectionManager->supportedProtocols();
+               foreach (protocol, protocols) {
+                       if( !pSettings->isProtocolInstalled( protocol ) )
+                               pSettings->installProtocol( pConnectionManager->name() + "/" + protocol, protocol );
+               }
+       }
+
+       // Get Connection Manager
+       pConnectionManager = pFactory->getConnectionManager( pSettings->protocol() );
+       if (!pConnectionManager) {
+               _pConnection = 0;
+               return;
+       }
+       
+       // Search for "lost" connection
+       QList<Connection *> connectionsList = pConnectionManager->connections();
+       if( !connectionsList.empty() ) {
+               Connection *pConnection;
+               QString account = static_cast<QString>(pSettings->protocol() ) + "." +
+                               static_cast<QString>(pSettings->accountUid()).replace("@", "_40").replace(".", "_2e");
+               foreach(pConnection, connectionsList) {
+                       if( pConnection->serviceName().contains(account) ) {
+
+                               // This doesn't always work... why?
+                               pConnection->disconnect();
+
+                               _pConnection = pConnection;
+                               CONNECT(_pConnection, SIGNAL(statusChanged(QtTapioca::Connection*,QtTapioca::Connection::Status,QtTapioca::Connection::Reason)), this, SLOT(onStatusChange(QtTapioca::Connection*,QtTapioca::Connection::Status,QtTapioca::Connection::Reason)));
+                               CONNECT(_pConnection, SIGNAL(channelCreated(QtTapioca::Connection*,QtTapioca::Channel*,bool)),
+                                               this, SLOT(onChannelCreated(QtTapioca::Connection*,QtTapioca::Channel*,bool)));
+                       
+                               return;
+                       }
+               }
+       }
+
+       // Setup connection parameters
+       QList<ConnectionManager::Parameter> parameters;
+       parameters.append(ConnectionManager::Parameter("account", pSettings->accountUid()));
+       parameters.append(ConnectionManager::Parameter("password", pSettings->accountPasswd()));
+       if( !pSettings->server().isEmpty() )
+               parameters.append(ConnectionManager::Parameter("server", pSettings->server()));
+       if( pSettings->port() > 0 )
+               parameters.append(ConnectionManager::Parameter("port", QVariant( (uint)pSettings->port() )));
+       if( pSettings->isOldSslEnabled() )
+               parameters.append(ConnectionManager::Parameter("old-ssl", QVariant(true)));
+       if( pSettings->isIgnoreSslErrorsEnabled() )
+               parameters.append(ConnectionManager::Parameter("ignore-ssl-errors", QVariant(true)));
+       if( pSettings->isRegister() )
+               parameters.append(ConnectionManager::Parameter("register", QVariant(true)));
+
+       _pConnection = pConnectionManager->requestConnection( pSettings->protocol(), parameters );
+       
+       if( !_pConnection ) {
+               return;
+       }
+
+       CONNECT(_pConnection, SIGNAL(statusChanged(QtTapioca::Connection*,QtTapioca::Connection::Status,QtTapioca::Connection::Reason)), 
+               this, SLOT(onStatusChange(QtTapioca::Connection*,QtTapioca::Connection::Status,QtTapioca::Connection::Reason)));        
+       CONNECT(_pConnection, SIGNAL(channelCreated(QtTapioca::Connection*,QtTapioca::Channel*,bool)),
+               this, SLOT(onChannelCreated(QtTapioca::Connection*,QtTapioca::Channel*,bool)));
+}
+
+void TocEngine::onPresenceChange(Presence presence, QString description) {
+       
+       if( !_pConnection )
+               initializeFromSettings();
+
+       if( !_pConnection )
+               return;
+
+       if( _pConnection->status() == QtTapioca::Connection::Connected && _pConnection->userContact())
+               _pConnection->userContact()->setPresenceWithMessage(static_cast <QtTapioca::ContactBase::Presence> (presence), static_cast <QString> (description));
+       
+       else if( _pConnection->status() == QtTapioca::Connection::Disconnected )
+               if(presence == Offline)
+                               _bContactListSynchronized = false; // Just to be sure
+               else
+                       _pConnection->connect(static_cast <QtTapioca::ContactBase::Presence> (presence), static_cast <QString> (description));
+}
+
+void TocEngine::onStatusChange(QtTapioca::Connection* pConnection, QtTapioca::Connection::Status status, QtTapioca::Connection::Reason reason) {
+       
+       Q_UNUSED(pConnection);
+       
+       emit statusChanged(static_cast <Status> (status), static_cast <Reason> (reason));
+               
+       if( _bNewUserContact && _pConnection->userContact() && _pConnection->contactList() && _pConnection->status() == QtTapioca::Connection::Connected) {
+
+               CONNECT(_pConnection->userContact(), SIGNAL(presenceUpdated(QtTapioca::ContactBase*,QtTapioca::ContactBase::Presence,QString)), this, SLOT(onSelfPresenceUpdated(QtTapioca::ContactBase*,QtTapioca::ContactBase::Presence,QString)));
+
+               // disconnect for safety of double connections because we don't really know if it's the same object or not..
+               disconnect(_pConnection->contactList(), SIGNAL(authorizationRequested(QtTapioca::Contact*)), this, SLOT(onAuthorizationRequested(QtTapioca::Contact*)));
+               
+               CONNECT(_pConnection->contactList(), SIGNAL(authorizationRequested(QtTapioca::Contact*)), this, SLOT(onAuthorizationRequested(QtTapioca::Contact*)));
+               _bNewUserContact = false;
+               
+       } else if(_pConnection->status() == QtTapioca::Connection::Disconnected) {
+               
+               _bContactListSynchronized = false;
+//             delete _pConnection; // TODO: Why does it crash??
+               _pConnection = 0;
+       }
+}
+
+void TocEngine::onPresenceUpdated(QtTapioca::ContactBase* pContact, QtTapioca::ContactBase::Presence presence, const QString &presenceMessage) {
+
+       emit contactPresenceUpdated(pContact->uri(), static_cast <Presence> (presence), presenceMessage);
+}
+
+void TocEngine::onSelfPresenceUpdated(QtTapioca::ContactBase* pContact, QtTapioca::ContactBase::Presence presence, const QString &presenceMessage) {
+
+       Q_UNUSED(pContact);
+
+       emit presenceUpdated(static_cast <Presence> (presence), presenceMessage);
+
+       if(!_bContactListSynchronized) {
+               synchronizeContactLists();
+               _bContactListSynchronized = true;
+               
+       } else if(presence == QtTapioca::ContactBase::Offline) {
+                       _bContactListSynchronized = false;
+                       _pConnection->disconnect();
+       }
+}
+
+void TocEngine::onAddContactRequest(TocContact* pContact){
+
+       _pTocContactList->append(pContact);
+       _pAddedContacts->append( pContact->uid );
+       _pRemovedContacts->removeOne( pContact->uid );
+
+       addPendingContacts();
+}
+
+void TocEngine::addPendingContacts() {
+
+       if( _pConnection && _pConnection->status() == Connection::Connected ) {
+
+               while( !_pAddedContacts->isEmpty() ) {
+                       QString uid = _pAddedContacts->takeFirst();
+                       Contact* pContact = _pConnection->contactList()->addContact( uid );
+                       if( pContact ) { // If it suceeded
+                               pContact->authorize(true); //TODO: This should be removed when we have the facility to grant authorization at a later time
+                               pContact->subscribe(true); // Ask for subscription
+                               
+                               CONNECT(pContact, SIGNAL(presenceUpdated(QtTapioca::ContactBase*,QtTapioca::ContactBase::Presence,const QString&)),
+                                               this, SLOT(onPresenceUpdated(QtTapioca::ContactBase*, QtTapioca::ContactBase::Presence, const QString&)));
+                       } else {}
+                               // TODO: Notify UI about the error (usually UID not valid for the protocol)
+               }
+       }
+}
+
+
+void TocEngine::onEditContactRequest(TocContact* pContact, QString oldUid){
+
+       if( pContact->uid != oldUid ) {
+               
+               if(!_pAddedContacts->removeOne( oldUid ))
+                       _pRemovedContacts->append( oldUid );
+               
+               _pAddedContacts->append( pContact->uid );
+               _pRemovedContacts->removeOne( pContact->uid );
+               removePendingContacts();
+               addPendingContacts();
+       }
+}
+
+void TocEngine::onRemoveContactRequest(QString uid) {
+
+       if(!_pTocContactList) return;
+       
+       for(int i = 0; i < _pTocContactList->count(); ++i)
+               if( _pTocContactList->at(i)->uid == uid ) {
+                       _pTocContactList->removeAt(i);
+                       //TODO: remove cached picture if needed
+               }
+
+       if(!_pAddedContacts->removeOne( uid ))
+               _pRemovedContacts->append( uid );
+
+       removePendingContacts();
+}
+
+void TocEngine::removePendingContacts() {
+
+       if( _pConnection && _pConnection->status() == Connection::Connected ) {
+
+               while( !_pRemovedContacts->isEmpty() ) {
+                       QString uid = _pRemovedContacts->takeFirst();
+                       Contact* pContact = _pConnection->contactList()->contact( uid );
+                       if( pContact )
+                               _pConnection->contactList()->removeContact( pContact );
+               }
+       }
+}
+
+int TocEngine::indexForUid( QString uid ) {
+
+       for(int i = 0; i < _pTocContactList->count(); ++i)
+               if( _pTocContactList->at(i)->uid == uid ) {
+                       return i;
+               }
+       
+       return -1;
+}
+
+void TocEngine::removeContact( QString uid ) {
+       
+       int i = indexForUid(uid);
+       if( i != -1 ) {
+               _pTocContactList->removeAt(i);
+               //TODO: remove cached picture if needed
+       }
+}
+
+void TocEngine::addContact( const Contact* pContact ) {
+       
+       TocContact* pTocContact = new TocContact;
+       pTocContact->uid = pContact->uri();
+       pTocContact->name = pContact->alias(); // That's TOO BAD! I cann't set it to MY OWN selected name.. because of lack of support by telepathy
+       pTocContact->customIconId = 0;
+       pTocContact->customIconPath = "";
+       pTocContact->gender = NotSpecified;
+       pTocContact->presence = Offline;
+
+       _pTocContactList->append(pTocContact);
+}
+
+void TocEngine::syncContactsFromServer() {
+
+       QStringList localContactsList;
+
+       QList<Contact*> serverContactsList = _pConnection->contactList()->knownContacts();
+
+       for(int i = 0; i < _pTocContactList->count(); ++i)
+               localContactsList.append( _pTocContactList->at(i)->uid );
+
+       // Find differences
+       int idx = 0;
+       while( idx < serverContactsList.count() ) {
+
+               int idy = localContactsList.indexOf( serverContactsList.at(idx)->uri() );
+
+               if( idy != -1 ) {
+                       serverContactsList.removeAt(idx);
+                       localContactsList.removeAt(idy);
+                       --idx;
+               }
+
+               ++idx;
+       }
+       
+       // Now we're left with two lists,
+       // one with contacts to be removed 
+       // and one to be added to our local list.
+
+       // To add
+       Contact* pContact;      
+       foreach(pContact, serverContactsList) {
+
+               addContact(pContact);
+               
+               CONNECT(pContact, SIGNAL(presenceUpdated(QtTapioca::ContactBase*,QtTapioca::ContactBase::Presence,const QString&)),
+                               this, SLOT(onPresenceUpdated(QtTapioca::ContactBase*, QtTapioca::ContactBase::Presence, const QString&)));
+                                               
+       }
+
+       // To remove //TODO: Maybe add an option to turn off removal of contacts that are removed on server by other clients
+       QString uid;    
+       
+       foreach(uid, localContactsList) {
+
+               removeContact(uid);
+       }
+}
+
+void TocEngine::synchronizeContactLists() {
+       
+       Contact* pContact;
+       foreach(pContact, _pConnection->contactList()->knownContacts())
+               CONNECT(pContact, SIGNAL(presenceUpdated(QtTapioca::ContactBase*,QtTapioca::ContactBase::Presence,const QString&)),
+                               this, SLOT(onPresenceUpdated(QtTapioca::ContactBase*, QtTapioca::ContactBase::Presence, const QString&)));
+
+       addPendingContacts();
+       removePendingContacts();
+       syncContactsFromServer();
+
+       emit contactListReceived(*_pTocContactList);
+       _bContactListSynchronized = true;
+
+}
+
+void TocEngine::onNewMessageReady(QString uid, Message message) {
+       
+       if( !_pConnection || _pConnection->status() != QtTapioca::Connection::Connected) {
+               message.error = UserOffline;
+               emit incomingMessage(uid, message);
+               return; // Message that You cann't send messages when offline
+       }
+
+       Channel* pDestinationChannel = NULL;
+       bool bNewChannel = false;
+       
+       QList<Channel*> pChannels = _pConnection->openChannels();
+       int i;
+       for(i = 0; i < pChannels.count(); ++i)
+               if(pChannels[i]->target()->uri() == uid)
+                       break;
+
+       if(i == pChannels.count()) { //not found, create new channel
+               Contact* pContact = _pConnection->contactList()->contact(uid);
+               if(!pContact) {
+                       message.error = NotOnContactList;
+                       emit incomingMessage(uid, message);
+                       return; // Message that You cann't send messages to the contact not on users contact list
+               }
+               pDestinationChannel = _pConnection->createChannel(Channel::Text, pContact);
+               if(pDestinationChannel)
+                       bNewChannel = true;
+               else { // Channel could not be created
+                       message.error = CannotCreateChannel;
+                       emit incomingMessage(uid, message);
+                       return; // Message that Channel could not be created
+               }
+       } else {
+               pDestinationChannel = pChannels[i];
+       }
+       
+       if(pDestinationChannel->type() == Channel::Text) {
+               
+               TextChannel* pTextChannel = dynamic_cast<TextChannel*>(pDestinationChannel);
+               
+               if(bNewChannel) {
+                       
+                       CONNECT(pTextChannel, SIGNAL(messageReceived(const QtTapioca::TextChannel*,const QtTapioca::TextChannel::Message&)),
+                                       this, SLOT(onMessageReceived(const QtTapioca::TextChannel*,const QtTapioca::TextChannel::Message&)));
+                       CONNECT(pTextChannel, SIGNAL(messageDeliveryError(const QtTapioca::TextChannel::Message&, QtTapioca::TextChannel::Message::DeliveryError)),
+                                       this, SLOT(onMessageDeliveryError(const QtTapioca::TextChannel::Message&, QtTapioca::TextChannel::Message::DeliveryError)));
+               }
+               
+               QtTapioca::TextChannel::Message mess(message.contents);
+               pTextChannel->sendMessage(mess);
+       }
+}
+
+void TocEngine::onMessageReceived(const QtTapioca::TextChannel* pTextChannel, const QtTapioca::TextChannel::Message& message) {
+
+       struct Message tecMessage;
+       tecMessage.contents = message.contents();
+       tecMessage.timestamp = message.timestamp();
+       tecMessage.error = NoError;
+       
+       if(pTextChannel) {
+               emit incomingMessage(pTextChannel->target()->uri(), tecMessage);
+               const_cast<QtTapioca::TextChannel*>(pTextChannel)->acknowledge(message);
+       }
+}
+
+void TocEngine::onMessageDeliveryError(const QtTapioca::TextChannel::Message &message, QtTapioca::TextChannel::Message::DeliveryError error) {
+       
+       struct Message tecMessage;
+       tecMessage.contents = message.contents();
+       tecMessage.timestamp = message.timestamp();
+       tecMessage.error = static_cast<MessageDeliveryError>(error);
+       
+       QObject* pSender = sender();
+       if(pSender) {
+               TextChannel* pTextChannel = dynamic_cast<TextChannel*>(pSender);
+               emit incomingMessage(pTextChannel->target()->uri(), tecMessage);
+       }
+}
+
+void TocEngine::onChannelCreated(QtTapioca::Connection* pConnection, QtTapioca::Channel* pChannel, bool bSuppressHandler) {
+       
+       Q_UNUSED(pConnection);
+       Q_UNUSED(bSuppressHandler);
+
+       if(pChannel->type() == Channel::Text) {
+               TextChannel* pTextChannel = dynamic_cast<TextChannel*>(pChannel);
+               CONNECT(pTextChannel, SIGNAL(messageReceived (const QtTapioca::TextChannel*,const QtTapioca::TextChannel::Message&)),
+                               this, SLOT(onMessageReceived(const QtTapioca::TextChannel*,const QtTapioca::TextChannel::Message&)));
+               CONNECT(pTextChannel, SIGNAL(messageDeliveryError(const QtTapioca::TextChannel::Message&, QtTapioca::TextChannel::Message::DeliveryError)),
+                                                       this, SLOT(onMessageDeliveryError(const QtTapioca::TextChannel::Message&, QtTapioca::TextChannel::Message::DeliveryError)));
+
+               QList<TextChannel::Message> messages = pTextChannel->pendingMessages();
+               if(messages.count()) {
+                       int i;
+                       struct Message message;
+                       message.error = NoError;
+                       for(i = 0; i < messages.count(); ++i) {
+                               message.contents = messages.at(i).contents();
+                               message.timestamp = messages.at(i).timestamp();
+                               emit incomingMessage(pChannel->target()->uri(), message);
+                       }
+               }
+       }
+}
+
+void TocEngine::onSessionClosed(QString uid) {
+       
+       if( !_pConnection )
+               return;
+
+       QList<Channel*> pChannels = _pConnection->openChannels();
+       int i;
+       for(i = 0; i < pChannels.count(); ++i)
+               if(pChannels[i]->target()->uri() == uid)
+                       break;
+
+       if(i < pChannels.count()) {
+               pChannels.at(i)->close();
+       }
+}
+
+void TocEngine::onAuthorizationRequested(QtTapioca::Contact *pContact) {
+       
+       // TODO: should be dependent on user pSettings
+       pContact->authorize( true );
+       pContact->subscribe( true );
+
+       for(int i = 0; i < _pTocContactList->count(); ++i)
+               if(_pTocContactList->at(i)->uid == pContact->uri())
+                       return; // Return if the contact is already on our contact list
+
+       addContact(pContact); // Add Contact to notify user
+       CONNECT(pContact, SIGNAL(presenceUpdated(QtTapioca::ContactBase*,QtTapioca::ContactBase::Presence,const QString&)),
+               this, SLOT(onPresenceUpdated(QtTapioca::ContactBase*, QtTapioca::ContactBase::Presence, const QString&)));
+
+       emit contactListReceived(*_pTocContactList);
+}
diff --git a/src/TocEngine/TocEngine.pri b/src/TocEngine/TocEngine.pri
new file mode 100644 (file)
index 0000000..e050735
--- /dev/null
@@ -0,0 +1,9 @@
+DEPENDPATH += \
+       $$PWD
+
+INCLUDEPATH += \
+       $$PWD
+
+SOURCES += \
+       TocBaseEngine.cpp \
+    TocEngine.cpp
diff --git a/src/TocSettings.cpp b/src/TocSettings.cpp
new file mode 100644 (file)
index 0000000..12a2d36
--- /dev/null
@@ -0,0 +1,380 @@
+/** \file TocSettings.cpp\r
+ * \brief Implementation of TocSettings class\r
+ * \r
+ * Tieto Open Communicator - Client for the Telepathy communications framework.\r
+ * Copyright (c) 2010, Tieto Corporation\r
+ *\r
+ * All rights reserved.\r
+ * Redistribution and use in source and binary forms, with or without modification,\r
+ * are permitted provided that the following conditions are met:\r
+ *\r
+ *     Redistributions of source code must retain the above copyright notice,\r
+ *     this list of conditions and the following disclaimer.\r
+ *     Redistributions in binary form must reproduce the above copyright notice,\r
+ *     this list of conditions and the following disclaimer in the documentation\r
+ *     and/or other materials provided with the distribution.\r
+ *     Neither the name of the Tieto Corporation nor the names of its contributors \r
+ *     may be used to endorse or promote products derived from this software without\r
+ *     specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\r
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\r
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ * \r
+ */\r
+\r
+#include "TocSettings"\r
+\r
+#include <QSettings>\r
+#include <QDebug>\r
+\r
+// Initialize static objects\r
+TocSettings* TocSettings::_pSelf = 0;\r
+\r
+TocSettings* TocSettings::getInstance() {\r
+\r
+       if (!_pSelf)\r
+               _pSelf = new TocSettings();\r
+\r
+       return _pSelf;\r
+}\r
+\r
+TocSettings::TocSettings() \r
+       : _register(false) {\r
+               \r
+       _pProtocolMap = new QMap<QString, QString>();\r
+       _pProtocolMap->insert("Jabber", "jabber");\r
+       _pProtocolMap->insert("SIP", "sip");\r
+       _pProtocolMap->insert("Google Talk", "jabber");\r
+\r
+       _pContactList = new TocContactList();\r
+\r
+       read();\r
+}\r
+\r
+TocSettings::~TocSettings() {\r
+\r
+       save();\r
+       \r
+       delete _pProtocolMap;\r
+       delete _pContactList;\r
+}\r
+\r
+void TocSettings::read() {\r
+       \r
+       QSettings settings("Tieto", "tietoopcom");\r
+       settings.beginGroup("Account");\r
+       _accountName            = settings.value("account/name").toString();\r
+       _accountUid             = settings.value("account/uid").toString();\r
+       _accountPasswd          = settings.value("account/pass").toString();\r
+       _protocol                       = settings.value("server/protocol").toString();\r
+       _protocols                      = _pProtocolMap->keys();\r
+       _protocolCommonName = settings.value("server/protocol-name").toString();\r
+       _server                         = settings.value("server/server").toString();\r
+       _serverHint                     = "";\r
+       _port                           = settings.value("server/port").toInt();\r
+       _portHint                       = 0;\r
+       _bOldSsl                        = settings.value("server/old-ssl", false).toBool();\r
+       _bIgnoreSslErrors       = settings.value("server/ignore-ssl-errors", false).toBool();\r
+       \r
+       settings.endGroup();\r
+       \r
+       settings.beginGroup("Contact_List");\r
+       _authorizationRule      = static_cast<AuthorizationRule>(settings.value("list/authorization-rule", Ask).toInt());\r
+       _sortOrder              = static_cast<SortOrder>(settings.value("list/sort-order", Alphabetical).toInt());\r
+\r
+       if(!_pContactList)\r
+               _pContactList = new TocContactList();\r
+       else\r
+               _pContactList->clear();\r
+       \r
+       settings.beginGroup("Contacts");\r
+       \r
+       QStringList contactsList = settings.childKeys();\r
+       \r
+       foreach(QString entry, contactsList) {\r
+               \r
+               QStringList contactFields = settings.value(entry).toString().split("|");\r
+               \r
+               TocContact* pContact = new TocContact();\r
+               pContact->uid = entry;\r
+               pContact->name = contactFields[0];\r
+               pContact->customIconPath = contactFields[1];\r
+               pContact->customIconId = 0;\r
+               pContact->gender = static_cast<Gender>(contactFields[2].toInt());\r
+               pContact->presence = Offline;\r
+               \r
+               _pContactList->append(pContact);\r
+       }\r
+       \r
+       \r
+       settings.endGroup();\r
+       settings.endGroup();\r
+\r
+       settings.beginGroup("Pending_Contact_Lists");\r
+\r
+       settings.beginGroup("Added");\r
+       _addedContacts = settings.childKeys();\r
+       \r
+       settings.endGroup();\r
+\r
+       settings.beginGroup("Removed");\r
+       _removedContacts = settings.childKeys();\r
+       \r
+       settings.endGroup();\r
+       settings.endGroup();\r
+       \r
+       settings.beginGroup("Themes");\r
+       \r
+#ifdef QT_NO_DEBUG\r
+  #define ssPath       QString("/usr/share/tietoopcom/stylesheets/")\r
+#else\r
+  #define ssPath       QString("./data/stylesheets/")\r
+#endif //QT_NO_DEBUG\r
+       \r
+       _currentTheme = settings.value("theme", ssPath + "/default.qss").toString();\r
+       settings.endGroup();\r
+}\r
+\r
+void TocSettings::save() {\r
+\r
+       QSettings settings("Tieto", "tietoopcom");\r
+               \r
+       settings.beginGroup("Account");\r
+       settings.setValue("account/name", _accountName);\r
+       settings.setValue("account/uid", _accountUid);\r
+       settings.setValue("account/pass", _accountPasswd);\r
+       settings.setValue("server/protocol", _protocol);\r
+       settings.setValue("server/protocol-name", _protocolCommonName);\r
+       settings.setValue("server/server", _server);\r
+       settings.setValue("server/port", _port);\r
+       settings.setValue("server/old-ssl", _bOldSsl);\r
+       settings.setValue("server/ignore-ssl-errors", _bIgnoreSslErrors);\r
+       settings.endGroup();\r
+       \r
+       settings.beginGroup("Contact_List");\r
+       settings.setValue("list/authorization-rule", _authorizationRule);\r
+       settings.setValue("list/sort-order", _sortOrder);\r
+       \r
+               \r
+       settings.beginGroup("Contacts");\r
+       settings.remove("");\r
+       \r
+       QString entry;\r
+       TocContact* pContact = 0;\r
+\r
+       foreach(pContact, *_pContactList) {\r
+\r
+               entry =  pContact->name + "|" +  pContact->customIconPath + "|" +  QString::number(static_cast<int>(pContact->gender)); \r
+               settings.setValue(pContact->uid, entry);\r
+       }\r
+\r
+       settings.endGroup();\r
+       settings.endGroup();\r
+\r
+       settings.beginGroup("Pending_Contact_Lists");\r
+       settings.beginGroup("Added");\r
+       settings.remove("");\r
+       \r
+       foreach(QString added, _addedContacts)\r
+               settings.setValue(added, 0);\r
+       \r
+       settings.endGroup ();\r
+\r
+       settings.beginGroup("Removed");\r
+       settings.remove("");\r
+       \r
+       foreach(QString removed, _removedContacts)\r
+               settings.setValue(removed, 0);\r
+       \r
+       settings.endGroup();\r
+       settings.endGroup();\r
+       \r
+       settings.beginGroup("Themes");\r
+       settings.setValue("theme", _currentTheme);\r
+       settings.endGroup();\r
+}\r
+\r
+const QString& TocSettings::accountName() {\r
+       return _accountName;\r
+}\r
+\r
+void TocSettings::setAccountName(const QString& accountName) {\r
+       _accountName = accountName;\r
+}\r
+\r
+const QString& TocSettings::accountUid() {\r
+       return _accountUid;\r
+}\r
+\r
+void TocSettings::setAccountUid(const QString& uid) {\r
+       _accountUid = uid;\r
+}\r
+\r
+const QString& TocSettings::accountPasswd() {\r
+       return _accountPasswd;\r
+}\r
+\r
+void TocSettings::setAccountPasswd(const QString& password) {\r
+       _accountPasswd = password;\r
+}\r
+\r
+const QString& TocSettings::protocol() {\r
+       return _protocol;\r
+}\r
+\r
+void TocSettings::setProtocol(const QString& protocol) {\r
+       _protocol = protocol;\r
+}\r
+\r
+void TocSettings::setProtocolByName(const QString& service) {\r
+       \r
+       _protocol = _pProtocolMap->value(service);\r
+       _protocolCommonName = service;\r
+\r
+       if(service == "Jabber") {\r
+               _bOldSsl                        = false;\r
+               _bIgnoreSslErrors       = false;\r
+       } else if( service == "Google Talk") {\r
+               _bOldSsl                        = true;\r
+               _bIgnoreSslErrors       = true;\r
+       } else if( service == "SIP") {\r
+               _bOldSsl                        = false;\r
+               _bIgnoreSslErrors       = false;\r
+       } else {\r
+               _bOldSsl                        = false;\r
+               _bIgnoreSslErrors       = false;\r
+       }\r
+}\r
+\r
+const QStringList& TocSettings::protocols() {\r
+       return _protocols;\r
+}\r
+\r
+void TocSettings::setProtocols(const QStringList& protocols) {\r
+       _protocols = protocols;\r
+}\r
+\r
+const QString& TocSettings::server() {\r
+       return _server;\r
+}\r
+\r
+void TocSettings::setServer(const QString& server) {\r
+       _server = server;\r
+}\r
+\r
+int TocSettings::port() {\r
+       return _port;\r
+}\r
+\r
+void TocSettings::setPort(int port) {\r
+       _port = port;\r
+}\r
+\r
+bool TocSettings::isOldSslEnabled() {\r
+       return _bOldSsl;\r
+}\r
+\r
+void TocSettings::setOldSslEnabled(bool bEnabled) {\r
+       _bOldSsl = bEnabled;\r
+}\r
+\r
+bool TocSettings::isIgnoreSslErrorsEnabled() {\r
+       return _bIgnoreSslErrors;\r
+}\r
+\r
+void TocSettings::setIgnoreSslErrorsEnabled(bool bEnabled) {\r
+       _bIgnoreSslErrors = bEnabled;\r
+}\r
+\r
+QList<TocContact*>* TocSettings::contactList() {\r
+       return _pContactList;\r
+}\r
+\r
+QStringList* TocSettings::contactsToAdd() {\r
+       return &_addedContacts;\r
+}\r
+\r
+QStringList* TocSettings::contactsToRemove() {\r
+       return &_removedContacts;\r
+}\r
+\r
+SortOrder TocSettings::sortOrder() {\r
+       return _sortOrder;\r
+}\r
+\r
+void TocSettings::setSortOrder(SortOrder sortOrder) {\r
+       _sortOrder = sortOrder;\r
+}\r
+\r
+AuthorizationRule TocSettings::authorizationRule() {\r
+       return _authorizationRule;\r
+}\r
+\r
+void TocSettings::setAuthorizationRule(AuthorizationRule rule) {\r
+       _authorizationRule = rule;\r
+}\r
+\r
+const QString& TocSettings::currentTheme() {\r
+       return _currentTheme;\r
+}\r
+\r
+void TocSettings::setCurrentTheme(const QString& theme) {\r
+       _currentTheme = theme;\r
+}\r
+\r
+bool TocSettings::isProtocolInstalled(const QString& protocol) {\r
+       return !_pProtocolMap->key(protocol).isEmpty();\r
+}\r
+\r
+void TocSettings::installProtocol(const QString& commonName, const QString& protocol) {\r
+       _pProtocolMap->insert(commonName, protocol);\r
+       _protocols = _pProtocolMap->keys();\r
+}\r
+\r
+const QString TocSettings::protocolCommonName() {\r
+       return _protocolCommonName;\r
+}\r
+\r
+int TocSettings::portHint(const QString& uid, const QString& serviceName) {\r
+       \r
+       Q_UNUSED(uid);\r
+       \r
+       if( serviceName == "Jabber")\r
+               return _portHint = 5222;\r
+       if( serviceName == "Google Talk")\r
+               return _portHint = 5223;\r
+       if( serviceName == "SIP")\r
+               return _portHint = 5060;\r
+\r
+       return _portHint = 0;\r
+}\r
+\r
+const QString& TocSettings::serverHint(const QString& uid, const QString& serviceName) {\r
+       \r
+       if(serviceName == "Jabber")\r
+               if(uid.contains("@"))\r
+                       return _serverHint = uid.split("@").at(1);\r
+       if(serviceName == "Google Talk")\r
+               return _serverHint = "talk.google.com";\r
+       if(serviceName == "SIP")\r
+               return _serverHint = "";\r
+\r
+       return _serverHint = "";\r
+}\r
+\r
+bool TocSettings::isRegister() {\r
+       bool bRet = _register;\r
+       _register = false;\r
+       return bRet;\r
+}\r
+\r
+void TocSettings::setRegister() {\r
+       _register = true;\r
+}\r
diff --git a/src/TocUi/ChangePasswordDialog.ui b/src/TocUi/ChangePasswordDialog.ui
new file mode 100644 (file)
index 0000000..d19ece7
--- /dev/null
@@ -0,0 +1,386 @@
+<!--
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ *
+-->
+
+<ui version="4.0" >
+ <class>ChangePasswordDialogClass</class>
+ <widget class="QDialog" name="ChangePasswordDialogClass" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>468</width>
+    <height>341</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Dialog</string>
+  </property>
+  <property name="styleSheet" >
+   <string notr="true" >QDialog {
+       background-color: rgb(212, 255, 185);
+    background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+                                       stop: 0 #00aa00, stop: 0.55 #00bb00,
+                                       stop: 0.56 #00bb00, stop: 1 #00ff00);
+}</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout_7" >
+   <item row="0" column="0" >
+    <widget class="QFrame" name="frame" >
+     <property name="enabled" >
+      <bool>true</bool>
+     </property>
+     <property name="sizePolicy" >
+      <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="styleSheet" >
+      <string notr="true" >QFrame {
+       background-color: rgb(212, 255, 185);
+    background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+                                       stop: 0 #00aa00, stop: 0.55 #00bb00,
+                                       stop: 0.56 #00bb00, stop: 1 #00ff00);
+}</string>
+     </property>
+     <property name="frameShape" >
+      <enum>QFrame::Box</enum>
+     </property>
+     <property name="frameShadow" >
+      <enum>QFrame::Sunken</enum>
+     </property>
+     <property name="lineWidth" >
+      <number>1</number>
+     </property>
+     <layout class="QGridLayout" name="gridLayout_6" >
+      <item row="0" column="0" >
+       <layout class="QGridLayout" name="gridLayout_5" >
+        <item row="0" column="1" colspan="3" >
+         <widget class="QLineEdit" name="lineEdit_6" >
+          <property name="sizePolicy" >
+           <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="minimumSize" >
+           <size>
+            <width>0</width>
+            <height>30</height>
+           </size>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QLineEdit {
+       background-color: rgb(238, 255, 224);
+}</string>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="1" colspan="3" >
+         <widget class="QLineEdit" name="lineEdit_7" >
+          <property name="sizePolicy" >
+           <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="minimumSize" >
+           <size>
+            <width>0</width>
+            <height>30</height>
+           </size>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QLineEdit {
+       background-color: rgb(238, 255, 224);
+}</string>
+          </property>
+         </widget>
+        </item>
+        <item rowspan="2" row="4" column="1" colspan="3" >
+         <widget class="QLineEdit" name="lineEdit_8" >
+          <property name="sizePolicy" >
+           <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="minimumSize" >
+           <size>
+            <width>0</width>
+            <height>30</height>
+           </size>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QLineEdit {
+       background-color: rgb(238, 255, 224);
+}</string>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="0" colspan="4" >
+         <spacer name="verticalSpacer" >
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0" >
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item row="3" column="0" colspan="4" >
+         <spacer name="verticalSpacer_2" >
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0" >
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item row="6" column="0" colspan="4" >
+         <spacer name="verticalSpacer_3" >
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0" >
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item row="0" column="0" >
+         <widget class="QLabel" name="label_8" >
+          <property name="sizePolicy" >
+           <sizepolicy vsizetype="Preferred" hsizetype="Maximum" >
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="minimumSize" >
+           <size>
+            <width>100</width>
+            <height>0</height>
+           </size>
+          </property>
+          <property name="maximumSize" >
+           <size>
+            <width>140</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QLabel {
+       background-color: none;
+       color: rgb(255, 255, 255);
+}</string>
+          </property>
+          <property name="text" >
+           <string>Old password:</string>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="0" >
+         <widget class="QLabel" name="label_9" >
+          <property name="sizePolicy" >
+           <sizepolicy vsizetype="Preferred" hsizetype="Maximum" >
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="minimumSize" >
+           <size>
+            <width>100</width>
+            <height>0</height>
+           </size>
+          </property>
+          <property name="maximumSize" >
+           <size>
+            <width>140</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QLabel {
+       background-color: none;
+       color: rgb(255, 255, 255);
+}</string>
+          </property>
+          <property name="text" >
+           <string>New password:</string>
+          </property>
+         </widget>
+        </item>
+        <item rowspan="2" row="4" column="0" >
+         <widget class="QLabel" name="label_10" >
+          <property name="sizePolicy" >
+           <sizepolicy vsizetype="Preferred" hsizetype="Maximum" >
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="minimumSize" >
+           <size>
+            <width>100</width>
+            <height>0</height>
+           </size>
+          </property>
+          <property name="maximumSize" >
+           <size>
+            <width>140</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QLabel {
+       background-color: none;
+       color: rgb(255, 255, 255);
+}</string>
+          </property>
+          <property name="text" >
+           <string>Confirm password:</string>
+          </property>
+         </widget>
+        </item>
+        <item rowspan="2" row="7" column="0" colspan="4" >
+         <layout class="QHBoxLayout" name="horizontalLayout" >
+          <item>
+           <widget class="QPushButton" name="pushButton_2" >
+            <property name="layoutDirection" >
+             <enum>Qt::LeftToRight</enum>
+            </property>
+            <property name="styleSheet" >
+             <string notr="true" > QPushButton {
+       color: rgb(255, 255, 255);
+    border: 0px;
+
+    background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+                                       stop: 0 #009900, stop: 0.55 #00aa00,
+                                       stop: 0.56 #00bb00, stop: 1 #00ff00);
+       min-height: 80px;
+       min-width: 80px;
+       max-height: 80px;
+       max-width: 100px;
+ }
+
+QPushButton:pressed {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+                                       stop: 0 #00ff00, stop: 0.55 #00bb00,
+                                       stop: 0.56 #00aa00, stop: 1 #009900);
+ }</string>
+            </property>
+            <property name="text" >
+             <string>Change</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QPushButton" name="pushButton" >
+            <property name="layoutDirection" >
+             <enum>Qt::LeftToRight</enum>
+            </property>
+            <property name="styleSheet" >
+             <string notr="true" > QPushButton {
+       color: rgb(255, 255, 255);
+    border: 0px;
+
+    background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+                                       stop: 0 #009900, stop: 0.55 #00aa00,
+                                       stop: 0.56 #00bb00, stop: 1 #00ff00);
+       min-height: 80px;
+       min-width: 80px;
+       max-height: 80px;
+       max-width: 100px;
+ }
+
+QPushButton:pressed {
+       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
+                                       stop: 0 #00ff00, stop: 0.55 #00bb00,
+                                       stop: 0.56 #00aa00, stop: 1 #009900);
+ }</string>
+            </property>
+            <property name="text" >
+             <string>Cancel</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>pushButton</sender>
+   <signal>clicked()</signal>
+   <receiver>ChangePasswordDialogClass</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>355</x>
+     <y>288</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>419</x>
+     <y>337</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>pushButton_2</sender>
+   <signal>clicked()</signal>
+   <receiver>ChangePasswordDialogClass</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>184</x>
+     <y>278</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>194</x>
+     <y>337</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
diff --git a/src/TocUi/IconProvider.cpp b/src/TocUi/IconProvider.cpp
new file mode 100644 (file)
index 0000000..307b91e
--- /dev/null
@@ -0,0 +1,263 @@
+/** \file IconProvider.cpp\r
+ * \brief Implementation of IconProvider class\r
+ * \r
+ * Tieto Open Communicator - Client for the Telepathy communications framework.\r
+ * Copyright (c) 2010, Tieto Corporation\r
+ *\r
+ * All rights reserved.\r
+ * Redistribution and use in source and binary forms, with or without modification,\r
+ * are permitted provided that the following conditions are met:\r
+ *\r
+ *     Redistributions of source code must retain the above copyright notice,\r
+ *     this list of conditions and the following disclaimer.\r
+ *     Redistributions in binary form must reproduce the above copyright notice,\r
+ *     this list of conditions and the following disclaimer in the documentation\r
+ *     and/or other materials provided with the distribution.\r
+ *     Neither the name of the Tieto Corporation nor the names of its contributors \r
+ *     may be used to endorse or promote products derived from this software without\r
+ *     specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\r
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\r
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ * \r
+ */\r
\r
+#include <QPainter>\r
+#include <QIcon>\r
+#include <QDebug>\r
+\r
+#include "IconProvider"\r
+#include "TocSettings"\r
+\r
+\r
+// Initialize static object\r
+IconProvider* IconProvider::mp_self = 0;\r
+\r
+// ---------------------------------------------------------------------------\r
+// getInstance\r
+// ---------------------------------------------------------------------------\r
+//\r
+IconProvider* IconProvider::getInstance() \r
+{\r
+       if ( !mp_self)\r
+               mp_self = new IconProvider();\r
+\r
+       return mp_self;\r
+}\r
+\r
+// ---------------------------------------------------------------------------\r
+// Constructor\r
+// ---------------------------------------------------------------------------\r
+//\r
+IconProvider::IconProvider():\r
+       _customIconId(1),\r
+       _defaultMaleImagePath(":/contactmale.png"),\r
+       _defaultFemaleImagePath(":/contactfemale.png"),\r
+       _defaultUnknownImagePath(":/unknown.png")\r
+{\r
+       //Initialize _defaultIcons map according to gender and status\r
+       \r
+       //Male\r
+       QImage* pNoFrame = new QImage(_defaultMaleImagePath);\r
+       QImage* pRed    = addStatusFrame(pNoFrame, Busy);\r
+       QImage* pYellow = addStatusFrame(pNoFrame, Away);\r
+       QImage* pGreen  = addStatusFrame(pNoFrame, Available);\r
+       \r
+       _defaultIcons[Male << 8 | Hidden]       = pNoFrame;\r
+       _defaultIcons[Male << 8 | Offline]      = pNoFrame;\r
+       _defaultIcons[Male << 8 | Available]= pGreen;\r
+       _defaultIcons[Male << 8 | Busy]         = pRed;\r
+       _defaultIcons[Male << 8 | XA]           = pYellow;\r
+       _defaultIcons[Male << 8 | Away]         = pYellow;\r
+\r
+       //Female\r
+       pNoFrame = new QImage(_defaultFemaleImagePath);\r
+       pRed    = addStatusFrame(pNoFrame, Busy);\r
+       pYellow = addStatusFrame(pNoFrame, Away);\r
+       pGreen  = addStatusFrame(pNoFrame, Available);\r
+       \r
+       _defaultIcons[Female << 8 | Hidden]     = pNoFrame;\r
+       _defaultIcons[Female << 8 | Offline]    = pNoFrame;\r
+       _defaultIcons[Female << 8 | Available]  = pGreen;\r
+       _defaultIcons[Female << 8 | Busy]               = pRed;\r
+       _defaultIcons[Female << 8 | XA]                 = pYellow;\r
+       _defaultIcons[Female << 8 | Away]               = pYellow;\r
+\r
+       //NotSpecified\r
+       pNoFrame = new QImage(_defaultUnknownImagePath);\r
+       pRed    = addStatusFrame(pNoFrame, Busy);\r
+       pYellow = addStatusFrame(pNoFrame, Away);\r
+       pGreen  = addStatusFrame(pNoFrame, Available);\r
+       \r
+       _defaultIcons[NotSpecified << 8 | Hidden]       = pNoFrame;\r
+       _defaultIcons[NotSpecified << 8 | Offline]      = pNoFrame;\r
+       _defaultIcons[NotSpecified << 8 | Available]= pGreen;\r
+       _defaultIcons[NotSpecified << 8 | Busy]         = pRed;\r
+       _defaultIcons[NotSpecified << 8 | XA]           = pYellow;\r
+       _defaultIcons[NotSpecified << 8 | Away]         = pYellow;\r
+               \r
+\r
+       //Initialize _customIcons map from TocSettings\r
+       TocSettings *pSettings = TocSettings::getInstance();\r
+       \r
+       TocContactList *pContacts = pSettings->contactList();\r
+       \r
+       foreach(TocContact* pContact, *pContacts)\r
+       {\r
+               if(!pContact->customIconPath.isEmpty())\r
+                       setCustomIcon(pContact);\r
+       }\r
+}\r
+\r
+// ---------------------------------------------------------------------------\r
+// Destructor\r
+// ---------------------------------------------------------------------------\r
+//\r
+IconProvider::~IconProvider()\r
+{\r
+       QList<int> defaultIconsKeys = _defaultIcons.uniqueKeys();\r
+       \r
+       foreach(int key, defaultIconsKeys)\r
+       {\r
+               QImage* pImage = _defaultIcons.value(key);\r
+               if(pImage)\r
+               {\r
+                       delete pImage;\r
+               }\r
+       }\r
+       \r
+       \r
+       QList<int> customIconsKeys = _defaultIcons.uniqueKeys();\r
+       \r
+       foreach(int key, customIconsKeys)\r
+       {\r
+               QImage* pImage = _customIcons.value(key);\r
+               if(pImage)\r
+               {\r
+                       delete pImage;\r
+               }\r
+       }       \r
+}\r
+\r
+// ---------------------------------------------------------------------------\r
+// matchIcon\r
+// ---------------------------------------------------------------------------\r
+//\r
+QImage* IconProvider::matchIcon(const TocContact* pContact) const\r
+{\r
+       if(pContact->customIconId)\r
+               return _customIcons.value(pContact->customIconId << 8 | pContact->presence);\r
+       else\r
+               return _defaultIcons.value(pContact->gender << 8 | pContact->presence);\r
+}\r
+\r
+// ---------------------------------------------------------------------------\r
+// matchIcon\r
+// ---------------------------------------------------------------------------\r
+//\r
+QIcon IconProvider::matchIcon(Gender gender) const\r
+{\r
+       switch( static_cast<int>(gender) ) \r
+       {\r
+\r
+               case NotSpecified:\r
+                       return QIcon(_defaultUnknownImagePath);\r
+\r
+               case Male:\r
+                       return QIcon(_defaultMaleImagePath);            \r
+\r
+               case Female:\r
+                       return QIcon(_defaultFemaleImagePath);          \r
+\r
+               default:\r
+                       return QIcon(_defaultUnknownImagePath);\r
+       }\r
+}\r
+\r
+// ---------------------------------------------------------------------------\r
+// setCustomIcon\r
+// ---------------------------------------------------------------------------\r
+//\r
+void IconProvider::setCustomIcon(TocContact* pContact)\r
+{\r
+       //Check if there's something to be set\r
+       if(pContact->customIconPath.isEmpty())\r
+       \r
+       //Check if this pContact has some custom icon already associated \r
+       if(_customIcons[pContact->customIconId])\r
+       {\r
+               //if yes, remove it from the list\r
+               _customIcons.remove(pContact->customIconId << 8 | Hidden);\r
+               _customIcons.remove(pContact->customIconId << 8 | Offline);\r
+               _customIcons.remove(pContact->customIconId << 8 | Available);\r
+               _customIcons.remove(pContact->customIconId << 8 | Busy);\r
+               _customIcons.remove(pContact->customIconId << 8 | XA);\r
+               _customIcons.remove(pContact->customIconId << 8 | Away);\r
+       }\r
+       \r
+       QImage* pNoFrame = new QImage(pContact->customIconPath);\r
+       QImage* pRed    = addStatusFrame(pNoFrame, Busy);\r
+       QImage* pYellow = addStatusFrame(pNoFrame, Away);\r
+       QImage* pGreen  = addStatusFrame(pNoFrame, Available);\r
+               \r
+       _customIcons[_customIconId << 8 | Hidden]               = pNoFrame;\r
+       _customIcons[_customIconId << 8 | Offline]              = pNoFrame;\r
+       _customIcons[_customIconId << 8 | Available]    = pGreen;\r
+       _customIcons[_customIconId << 8 | Busy]                 = pRed;\r
+       _customIcons[_customIconId << 8 | XA]                   = pYellow;\r
+       _customIcons[_customIconId << 8 | Away]                 = pYellow;\r
+       \r
+       pContact->customIconId = _customIconId++;\r
+}\r
+\r
+// ---------------------------------------------------------------------------\r
+// addStatusFrame\r
+// ---------------------------------------------------------------------------\r
+//\r
+QImage* IconProvider::addStatusFrame(const QImage *baseImage, Presence presence) const\r
+{\r
+       QImage contactImage(*baseImage);\r
+       QImage *pResultImage = new QImage(QSize::QSize(72,72), QImage::Format_ARGB32_Premultiplied);\r
+               \r
+       QImage presenceFrame;\r
+    \r
+       switch(presence)\r
+       {\r
+               case Hidden:\r
+               case Offline:\r
+                       break;\r
+                       \r
+               case Available:\r
+                       presenceFrame = QImage(":greenframe.png");\r
+                       break;\r
+                       \r
+               case Busy:\r
+                       presenceFrame = QImage(":redframe.png");\r
+                       break;\r
+                       \r
+               case XA:\r
+               case Away:\r
+                       presenceFrame = QImage(":yellowframe.png");\r
+       }\r
+       \r
+       QPainter painter(pResultImage);\r
+       \r
+       painter.setCompositionMode(QPainter::CompositionMode_Source);\r
+    painter.fillRect(pResultImage->rect(), Qt::transparent);\r
+    \r
+    painter.setCompositionMode(QPainter::CompositionMode_SourceOver);\r
+    painter.drawImage(0, 0, contactImage);\r
+\r
+    painter.setCompositionMode(QPainter::CompositionMode_DestinationOver);\r
+    painter.drawImage(0, 0, presenceFrame);\r
+    painter.end();\r
+    \r
+    return pResultImage;\r
+}\r
diff --git a/src/TocUi/TocAccountIntermediateWidget.cpp b/src/TocUi/TocAccountIntermediateWidget.cpp
new file mode 100644 (file)
index 0000000..672d64c
--- /dev/null
@@ -0,0 +1,154 @@
+/** \file TocAccountIntermediateWidget.cpp
+ * \brief Implementation of TocAccountIntermediateWidget class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+#include "TocAccountIntermediateWidget"
+#include <QPushButton>
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QFrame>
+#include "macros.h"
+
+TocAccountIntermediateWidget::TocAccountIntermediateWidget(QWidget * parent, Qt::WindowFlags flags)
+       : QWidget(parent, flags) { 
+
+       setContentsMargins( -10, -10, -10, -10 );
+       setObjectName("intermediateWidget");
+
+    QGridLayout* gridLayout = new QGridLayout(this);
+    _pIntermediateFrame = new QFrame( this );
+    _pIntermediateFrame->setObjectName("intermediateFrame");
+    gridLayout->addWidget( _pIntermediateFrame );
+    
+    QHBoxLayout* mainHorizontalLayout = new QHBoxLayout( _pIntermediateFrame );
+
+    //1st layout - vertical - back button + strech
+    QVBoxLayout* vLayout1 = new QVBoxLayout();
+
+    vLayout1->addStretch(1);
+    
+    _pBackButton = new QPushButton(tr("Back"), this);
+    _pBackButton->setObjectName("backButton");
+    vLayout1->addWidget(_pBackButton);
+    
+    mainHorizontalLayout->addLayout(vLayout1);
+    
+    //2nd layout - vertical - for Create and Edit buttons
+    QVBoxLayout* vLayout2 = new QVBoxLayout();
+
+    vLayout2->addStretch(1);
+    
+    QHBoxLayout* hLayout1 = new QHBoxLayout();
+
+    hLayout1->addStretch(1);
+    
+    _pCreateButton = new QPushButton(tr("Create\nnew"), this);
+    _pCreateButton->setObjectName("createButton");
+    hLayout1->addWidget(_pCreateButton);
+    
+    hLayout1->addStretch(1);    
+
+    _pEditButton = new QPushButton(tr("Edit"), this);
+    _pEditButton->setObjectName("editButton");
+    hLayout1->addWidget(_pEditButton);
+    
+    hLayout1->addStretch(1);
+
+    vLayout2->addLayout( hLayout1 );
+    vLayout2->addStretch(2);
+        
+    mainHorizontalLayout->addLayout(vLayout2);
+
+    //3rd layout - horizontal - just to add stretch
+    QHBoxLayout* hLayout3 = new QHBoxLayout();
+    QSpacerItem* spacer = new QSpacerItem(_pBackButton->width(), 0);
+    hLayout3->addItem(spacer);
+    
+    mainHorizontalLayout->addLayout(hLayout3);
+        
+    
+    setupStyles();
+
+    CONNECT(_pBackButton, SIGNAL(clicked()), this, SIGNAL(backClicked()));
+    CONNECT(_pEditButton, SIGNAL(clicked()), this, SIGNAL(editClicked()));
+    CONNECT(_pCreateButton, SIGNAL(clicked()), this, SIGNAL(createClicked()));
+}
+
+TocAccountIntermediateWidget::~TocAccountIntermediateWidget() {
+
+}
+
+void TocAccountIntermediateWidget::setupStyles() {
+       setStyleSheet("QPushButton {  }");
+       _pCreateButton->setStyleSheet(
+               "QPushButton {"
+                       "font: bold 16px;"
+               "border-radius: 5px;"
+                       "min-height: 120px;"
+                       "min-width: 140px;"
+                       "max-height: 120px;"
+                       "max-width: 140px;"
+               "}"
+       );
+
+       _pEditButton->setStyleSheet(
+               "QPushButton {"
+                       "font: bold 16px;"
+               "border-radius: 5px;"
+                       "min-height: 120px;"
+                       "min-width: 140px;"
+                       "max-height: 120px;"
+                       "max-width: 140px;"
+               "}"
+       );
+
+       _pBackButton->setStyleSheet(
+               "QPushButton {"
+                       "font: bold 16px;"
+               "border-radius: 5px;"
+                       "min-height: 80px;"
+                       "min-width: 80px;"
+                       "max-height: 80px;"
+                       "max-width: 80px;"
+               "}"
+       );
+}
+
+void TocAccountIntermediateWidget::enableFTUMode( bool ftu ) {
+       _pBackButton->setHidden(ftu);
+
+       if(ftu) {
+               _pEditButton->setText(tr("Use\nexisting"));
+       } else {
+               _pEditButton->setText(tr("Edit"));
+       }
+}
diff --git a/src/TocUi/TocAccountSettingsWidget.cpp b/src/TocUi/TocAccountSettingsWidget.cpp
new file mode 100644 (file)
index 0000000..2d581fa
--- /dev/null
@@ -0,0 +1,234 @@
+/** \file TocAccountSettingsWidget.cpp
+ * \brief Implementation of TocAccountSettingsWidget class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+#include <QMessageBox>
+#include <QtDebug>
+
+#include "TocAccountSettingsWidget"
+#include "ui_TocAccountSettingsWidget.h"
+#include "TocSettings"
+#include "macros.h"
+
+
+
+TocAccountSettingsWidget::TocAccountSettingsWidget(QWidget * parent, Qt::WindowFlags flags)
+       : QWidget(parent, flags), _bCreateMode(false) {
+
+       ui = new Ui_TocAccountSettingsWidgetClass();
+       ui->setupUi( this );
+       setContentsMargins( -10, -10, -10, -10 );
+       setObjectName("accountSettings");
+
+       ui->editVCardButton->hide();
+       ui->changePasswordButton->hide();
+
+       TocSettings* pSettings = TocSettings::getInstance();
+       QStringList prot =  pSettings->protocols();
+       for(int i = 0; i < prot.count(); ++i)
+               ui->protocolComboBox->addItem(prot[i]);
+       
+       CONNECT(ui->backButton, SIGNAL(clicked()), this, SIGNAL(backClicked()));
+}
+
+TocAccountSettingsWidget::~TocAccountSettingsWidget() {
+       delete ui;
+}
+
+void TocAccountSettingsWidget::loginEdited(const QString& newLogin) {
+       TocSettings* pSettings = TocSettings::getInstance();
+       ui->serverLineEdit->setText(pSettings->serverHint(newLogin, ui->protocolComboBox->currentText()));
+       ui->portLineEdit->setText(QString("%1").arg(pSettings->portHint(newLogin, ui->protocolComboBox->currentText())));
+}
+
+void TocAccountSettingsWidget::protocolEdited(const QString& newProtocol) {
+       TocSettings* pSettings = TocSettings::getInstance();
+       ui->serverLineEdit->setText(pSettings->serverHint(ui->loginLineEdit->text(), newProtocol));
+       ui->portLineEdit->setText(QString("%1").arg(pSettings->portHint(ui->loginLineEdit->text(), newProtocol)));
+}
+
+void TocAccountSettingsWidget::disconnectHints() {
+       disconnect(ui->loginLineEdit, SIGNAL(textEdited(QString)), this, SLOT(loginEdited(QString)));
+       disconnect(ui->protocolComboBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(protocolEdited(QString)));
+       disconnect(ui->serverLineEdit, SIGNAL(textEdited(QString)), this, SLOT(disconnectHints()));
+       disconnect(ui->portLineEdit, SIGNAL(textEdited(QString)), this, SLOT(disconnectHints()));
+}
+
+void TocAccountSettingsWidget::connectHints() {
+       // disconnect first to ensure double connections are not made..
+       disconnectHints();
+       CONNECT(ui->loginLineEdit, SIGNAL(textEdited(QString)), this, SLOT(loginEdited(QString)));
+       CONNECT(ui->protocolComboBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(protocolEdited(QString)));
+       CONNECT(ui->serverLineEdit, SIGNAL(textEdited(QString)), this, SLOT(disconnectHints()));
+       CONNECT(ui->portLineEdit, SIGNAL(textEdited(QString)), this, SLOT(disconnectHints()));
+
+}
+
+void TocAccountSettingsWidget::reload() {
+       connectHints();
+
+       if(createMode()) {
+               ui->loginLineEdit->setText(     "" );
+               ui->passwordLineEdit->setText( "" );
+               ui->passwordConfirmLineEdit->setText( "" );
+               ui->serverLineEdit->setText( "" );
+               ui->protocolComboBox->setCurrentIndex( -1 );
+               ui->portLineEdit->setText( "" );
+       } else {
+               TocSettings* pSettings = TocSettings::getInstance();
+               ui->loginLineEdit->setText(     pSettings->accountUid() );
+               ui->passwordLineEdit->setText( pSettings->accountPasswd() );
+               ui->serverLineEdit->setText( pSettings->server() );
+               ui->portLineEdit->setText(QString("%1").arg( pSettings->port() ));
+               QString s = pSettings->protocolCommonName();
+               ui->protocolComboBox->setCurrentIndex(
+                               ui->protocolComboBox->findText( s, Qt::MatchExactly ));
+       }
+}
+
+void TocAccountSettingsWidget::showEvent(QShowEvent *event){
+       reload();
+       QWidget::showEvent(event);
+}
+
+void TocAccountSettingsWidget::handleError(QString errorText) {
+       QMessageBox::information( this, "Invalid value", errorText);
+}
+
+bool TocAccountSettingsWidget::createMode() const {
+       return _bCreateMode;
+}
+
+void TocAccountSettingsWidget::setCreateMode(bool enable) {
+
+       _bCreateMode = enable;
+
+       ui->passwordConfirmLabel->setVisible(enable);
+       ui->passwordConfirmLineEdit->setVisible(enable);
+       ui->changePasswordButton->setVisible(!enable);
+
+       if(enable) {
+               ui->okButton->setText(tr("Create"));
+               ui->backButton->setText(tr("Back"));
+       } else {
+               ui->okButton->setText(tr("Ok"));
+               ui->backButton->setText(tr("Back"));
+       }
+}
+
+bool TocAccountSettingsWidget::dataVerified() {
+       if(!ui->loginLineEdit->text().length()) {
+               handleError(tr("Please provide login"));
+               return false;
+       }
+       if(!ui->passwordLineEdit->text().length()) {
+               handleError(tr("Please provide password"));
+               return false;
+       }
+       if(createMode() && ui->passwordLineEdit->text() != ui->passwordConfirmLineEdit->text()) {
+               handleError(tr("Passwords do not match"));
+               return false;
+       }
+       if(!ui->serverLineEdit->text().length()) {
+               handleError(tr("Please provide server name"));
+               return false;
+       }
+       if(!ui->portLineEdit->text().toInt()) {
+               handleError(tr("Please provide port number"));
+               return false;
+       }
+
+       return true;
+}
+
+void TocAccountSettingsWidget::onChangePasswordButton(){
+       // TODO: finish implementation
+}
+
+void TocAccountSettingsWidget::onOkButton(){
+       if(!dataVerified())
+               return;
+
+       if(createMode())
+               createNewAccount();
+       else {
+               saveAccountData();
+               emit finished(); // Close the view when not in `Create mode`
+       }
+}
+
+void TocAccountSettingsWidget::saveAccountData() {
+
+       bool settingsChanged = false;
+
+       TocSettings* pSettings = TocSettings::getInstance();
+
+       if(ui->loginLineEdit->text() != pSettings->accountUid()) {
+               pSettings->setAccountUid(ui->loginLineEdit->text());
+               settingsChanged = true;
+       }
+
+       if(ui->passwordLineEdit->text() != pSettings->accountPasswd()) {
+               pSettings->setAccountPasswd(ui->passwordLineEdit->text());
+//             settingsChanged = true; // This is not needed for only the password
+       }
+
+       if(ui->protocolComboBox->currentText() != pSettings->protocolCommonName()) {
+               pSettings->setProtocolByName(ui->protocolComboBox->currentText());
+               settingsChanged = true;
+       }
+
+       if(ui->serverLineEdit->text() != pSettings->server()) {
+               pSettings->setServer(ui->serverLineEdit->text());
+               settingsChanged = true;
+       }
+
+       if(ui->portLineEdit->text().toInt() != pSettings->port()) {
+               pSettings->setPort(ui->portLineEdit->text().toInt());
+               settingsChanged = true;
+       }
+
+       if(settingsChanged) {
+               emit accountSettingsChanged();
+       }
+}
+
+void TocAccountSettingsWidget::createNewAccount() {
+
+       TocSettings* pSettings = TocSettings::getInstance();
+       pSettings->setAccountUid(ui->loginLineEdit->text());
+       pSettings->setAccountPasswd(ui->passwordLineEdit->text());
+       pSettings->setServer(ui->serverLineEdit->text());
+       pSettings->setPort(ui->portLineEdit->text().toInt());
+       pSettings->setProtocolByName(ui->protocolComboBox->currentText());
+       pSettings->setRegister();
+
+       emit newAccountSettingsCreated();
+}
diff --git a/src/TocUi/TocAccountSettingsWidget.ui b/src/TocUi/TocAccountSettingsWidget.ui
new file mode 100644 (file)
index 0000000..38e64be
--- /dev/null
@@ -0,0 +1,609 @@
+<!--
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ *
+-->
+
+<ui version="4.0" >
+ <class>TocAccountSettingsWidgetClass</class>
+ <widget class="QWidget" name="TocAccountSettingsWidgetClass" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>609</width>
+    <height>388</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Form</string>
+  </property>
+  <property name="styleSheet" >
+   <string notr="true" />
+  </property>
+  <layout class="QHBoxLayout" name="horizontalLayout_2" >
+   <item>
+    <widget class="QFrame" name="frame" >
+     <property name="enabled" >
+      <bool>true</bool>
+     </property>
+     <property name="sizePolicy" >
+      <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="maximumSize" >
+      <size>
+       <width>16777215</width>
+       <height>16777215</height>
+      </size>
+     </property>
+     <property name="styleSheet" >
+      <string notr="true" />
+     </property>
+     <property name="frameShape" >
+      <enum>QFrame::Box</enum>
+     </property>
+     <property name="frameShadow" >
+      <enum>QFrame::Sunken</enum>
+     </property>
+     <property name="lineWidth" >
+      <number>1</number>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout" >
+      <item>
+       <layout class="QVBoxLayout" name="applyButtonLayout_2" >
+        <property name="spacing" >
+         <number>-1</number>
+        </property>
+        <property name="sizeConstraint" >
+         <enum>QLayout::SetMinimumSize</enum>
+        </property>
+        <item>
+         <widget class="QPushButton" name="editVCardButton" >
+          <property name="enabled" >
+           <bool>false</bool>
+          </property>
+          <property name="minimumSize" >
+           <size>
+            <width>80</width>
+            <height>80</height>
+           </size>
+          </property>
+          <property name="maximumSize" >
+           <size>
+            <width>80</width>
+            <height>80</height>
+           </size>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QPushButton{
+       font: bold 16px;
+       border-radius: 5px;
+       min-height: 80px;
+       min-width: 80px;
+       max-height: 80px;
+       max-width: 80px;
+}</string>
+          </property>
+          <property name="text" >
+           <string>Edit
+VCard</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer name="verticalSpacer_6" >
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0" >
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QPushButton" name="backButton" >
+          <property name="minimumSize" >
+           <size>
+            <width>80</width>
+            <height>80</height>
+           </size>
+          </property>
+          <property name="maximumSize" >
+           <size>
+            <width>80</width>
+            <height>80</height>
+           </size>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QPushButton{
+       font: bold 16px;
+       border-radius: 5px;
+       min-height: 80px;
+       min-width: 80px;
+       max-height: 80px;
+       max-width: 80px;
+}</string>
+          </property>
+          <property name="text" >
+           <string>Back</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout_2" >
+        <item>
+         <layout class="QFormLayout" name="formLayout" >
+          <item row="0" column="0" >
+           <widget class="QLabel" name="loginLabel" >
+            <property name="styleSheet" >
+             <string notr="true" >QLabel {
+       background: none;
+       min-height: 48px;
+       font: bold 14px;
+}</string>
+            </property>
+            <property name="text" >
+             <string>Login</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1" >
+           <widget class="QLineEdit" name="loginLineEdit" >
+            <property name="styleSheet" >
+             <string notr="true" >QLineEdit{
+       border-radius: 5px;
+       min-height: 48px;
+       font: bold 14px;
+}</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="0" >
+           <widget class="QLabel" name="passwordLabel" >
+            <property name="styleSheet" >
+             <string notr="true" >QLabel{
+       background: none;
+       min-height: 48px;
+       font: bold 14px;
+}</string>
+            </property>
+            <property name="text" >
+             <string>Password</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="1" >
+           <widget class="QLineEdit" name="passwordLineEdit" >
+            <property name="styleSheet" >
+             <string notr="true" >QLineEdit{
+       border-radius: 5px;
+       min-height: 48px;
+       font: bold 14px;
+}</string>
+            </property>
+            <property name="echoMode" >
+             <enum>QLineEdit::Password</enum>
+            </property>
+           </widget>
+          </item>
+          <item row="4" column="0" >
+           <widget class="QLabel" name="passwordConfirmLabel" >
+            <property name="styleSheet" >
+             <string notr="true" >QLabel{
+       background: none;
+       min-height: 48px;
+       font: bold 14px;
+}</string>
+            </property>
+            <property name="text" >
+             <string>Confirm Password</string>
+            </property>
+            <property name="wordWrap" >
+             <bool>true</bool>
+            </property>
+            <property name="indent" >
+             <number>-1</number>
+            </property>
+           </widget>
+          </item>
+          <item row="4" column="1" >
+           <widget class="QLineEdit" name="passwordConfirmLineEdit" >
+            <property name="styleSheet" >
+             <string notr="true" >QLineEdit{
+       border-radius: 5px;
+       min-height: 48px;
+       font: bold 14px;
+}</string>
+            </property>
+            <property name="echoMode" >
+             <enum>QLineEdit::Password</enum>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="0" >
+           <spacer name="verticalSpacer_5" >
+            <property name="orientation" >
+             <enum>Qt::Vertical</enum>
+            </property>
+            <property name="sizeType" >
+             <enum>QSizePolicy::Maximum</enum>
+            </property>
+            <property name="sizeHint" stdset="0" >
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item row="3" column="0" >
+           <spacer name="verticalSpacer_4" >
+            <property name="orientation" >
+             <enum>Qt::Vertical</enum>
+            </property>
+            <property name="sizeType" >
+             <enum>QSizePolicy::Maximum</enum>
+            </property>
+            <property name="sizeHint" stdset="0" >
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <spacer name="verticalSpacer_3" >
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeType" >
+           <enum>QSizePolicy::Maximum</enum>
+          </property>
+          <property name="sizeHint" stdset="0" >
+           <size>
+            <width>20</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <layout class="QHBoxLayout" name="horizontalLayout_4" >
+          <item>
+           <widget class="QLabel" name="protocolLabel" >
+            <property name="styleSheet" >
+             <string notr="true" >QLabel{
+       background: none;
+       min-height: 48px;
+       font: bold 14px;
+}</string>
+            </property>
+            <property name="text" >
+             <string>Protocol</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QComboBox" name="protocolComboBox" >
+            <property name="minimumSize" >
+             <size>
+              <width>79</width>
+              <height>52</height>
+             </size>
+            </property>
+            <property name="styleSheet" >
+             <string notr="true" >QComboBox {
+       min-height: 48px;
+       font: bold 16px;
+}
+</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QLabel" name="serverLabel" >
+            <property name="styleSheet" >
+             <string notr="true" >QLabel{
+       background: none;
+       min-height: 48px;
+       font: bold 14px;
+}</string>
+            </property>
+            <property name="text" >
+             <string>Server</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QLineEdit" name="serverLineEdit" >
+            <property name="styleSheet" >
+             <string notr="true" >QLineEdit{
+       border-radius: 5px;
+       min-height: 48px;
+       font: bold 14px;
+}</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QLabel" name="portLabel" >
+            <property name="styleSheet" >
+             <string notr="true" >QLabel{
+       background: none;
+       min-height: 48px;
+       font: bold 14px;
+}</string>
+            </property>
+            <property name="text" >
+             <string>Port</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QLineEdit" name="portLineEdit" >
+            <property name="maximumSize" >
+             <size>
+              <width>80</width>
+              <height>16777215</height>
+             </size>
+            </property>
+            <property name="styleSheet" >
+             <string notr="true" >QLineEdit{
+       border-radius: 5px;
+       min-height: 48px;
+       min-width: 48px;
+       font: bold 14px;
+}</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <spacer name="verticalSpacer_2" >
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0" >
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QVBoxLayout" name="applyButtonLayout" >
+        <property name="spacing" >
+         <number>-1</number>
+        </property>
+        <property name="sizeConstraint" >
+         <enum>QLayout::SetMinimumSize</enum>
+        </property>
+        <item>
+         <widget class="QPushButton" name="changePasswordButton" >
+          <property name="enabled" >
+           <bool>false</bool>
+          </property>
+          <property name="minimumSize" >
+           <size>
+            <width>80</width>
+            <height>80</height>
+           </size>
+          </property>
+          <property name="maximumSize" >
+           <size>
+            <width>80</width>
+            <height>80</height>
+           </size>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QPushButton{
+       font: bold 16px;
+       border-radius: 5px;
+       min-height: 80px;
+       min-width: 80px;
+       max-height: 80px;
+       max-width: 80px;
+}</string>
+          </property>
+          <property name="text" >
+           <string>Change
+password</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer name="verticalSpacer" >
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0" >
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QPushButton" name="okButton" >
+          <property name="minimumSize" >
+           <size>
+            <width>80</width>
+            <height>80</height>
+           </size>
+          </property>
+          <property name="maximumSize" >
+           <size>
+            <width>80</width>
+            <height>80</height>
+           </size>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QPushButton{
+       font: bold 16px;
+       border-radius: 5px;
+       min-height: 80px;
+       min-width: 80px;
+       max-height: 80px;
+       max-width: 80px;
+}</string>
+          </property>
+          <property name="text" >
+           <string>Ok</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>loginLineEdit</sender>
+   <signal>textEdited(QString)</signal>
+   <receiver>TocAccountSettingsWidgetClass</receiver>
+   <slot>loginEdited(QString)</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>348</x>
+     <y>60</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>535</x>
+     <y>254</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>protocolComboBox</sender>
+   <signal>currentIndexChanged(QString)</signal>
+   <receiver>TocAccountSettingsWidgetClass</receiver>
+   <slot>protocolEdited(QString)</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>259</x>
+     <y>329</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>535</x>
+     <y>260</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>okButton</sender>
+   <signal>clicked()</signal>
+   <receiver>TocAccountSettingsWidgetClass</receiver>
+   <slot>onOkButton()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>587</x>
+     <y>366</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>535</x>
+     <y>331</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>changePasswordButton</sender>
+   <signal>clicked()</signal>
+   <receiver>TocAccountSettingsWidgetClass</receiver>
+   <slot>onChangePasswordButton()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>510</x>
+     <y>64</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>535</x>
+     <y>70</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>serverLineEdit</sender>
+   <signal>textEdited(QString)</signal>
+   <receiver>TocAccountSettingsWidgetClass</receiver>
+   <slot>disconnectHints()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>352</x>
+     <y>307</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>535</x>
+     <y>133</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>portLineEdit</sender>
+   <signal>textEdited(QString)</signal>
+   <receiver>TocAccountSettingsWidgetClass</receiver>
+   <slot>disconnectHints()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>498</x>
+     <y>327</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>535</x>
+     <y>173</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+ <slots>
+  <slot>loginEdited(QString)</slot>
+  <slot>protocolEdited(QString)</slot>
+  <slot>disconnectHints()</slot>
+  <slot>onOkButton()</slot>
+  <slot>onChangePasswordButton()</slot>
+  <signal>finished()</signal>
+ </slots>
+</ui>
diff --git a/src/TocUi/TocBaseMainWindow.cpp b/src/TocUi/TocBaseMainWindow.cpp
new file mode 100644 (file)
index 0000000..c6e486d
--- /dev/null
@@ -0,0 +1,71 @@
+/** \file TocBaseMainWindow.cpp
+ * \brief Implementation of TocBaseMainWindow class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+#include "TocBaseMainWindow"
+#include "TocBaseEngine"
+#include "macros.h"
+
+TocBaseMainWindow::TocBaseMainWindow(TocBaseEngine* engine, QWidget *parent, Qt::WindowFlags flags)
+    : QMainWindow(parent, flags)
+{
+       if(!engine)
+               return;
+
+       qRegisterMetaType<Status>();
+       qRegisterMetaType<Reason>();
+       qRegisterMetaType<Presence>();
+       qRegisterMetaType<Message>();
+       qRegisterMetaType<TocContactList>();
+       qRegisterMetaType<Gender>();
+
+       //Connections from Engine
+       CONNECT(engine, SIGNAL(statusChanged(Status,Reason)), this, SLOT(onStatusChange(Status,Reason)));
+       CONNECT(engine, SIGNAL(presenceUpdated(Presence,QString)), this, SLOT(onPresenceUpdate(Presence,QString)));
+       CONNECT(engine, SIGNAL(contactPresenceUpdated(QString,Presence,QString)), this, SLOT(onContactPresenceUpdate(QString,Presence,QString)));
+       CONNECT(engine, SIGNAL(incomingMessage(QString,Message)), this, SLOT(onIncomingMessage(QString,Message)));
+       CONNECT(engine, SIGNAL(contactListReceived(TocContactList)), this, SLOT(onContactListReceived(TocContactList)));
+       CONNECT(engine, SIGNAL(subscriptionAccepted(QString)), this, SLOT(onSubscriptionAccepted(QString)));
+       CONNECT(engine, SIGNAL(authorizationRequest(QString)), this, SLOT(onAuthorizationRequest(QString)));
+       
+       //Connections to engine
+       CONNECT(this, SIGNAL(presenceChanged(Presence,QString)), engine, SLOT(onPresenceChange(Presence,QString)));
+       CONNECT(this, SIGNAL(sessionClosed(QString)), engine, SLOT(onSessionClosed(QString)));
+       CONNECT(this, SIGNAL(newMessageReady(QString,Message)), engine, SLOT(onNewMessageReady(QString,Message)));
+       CONNECT(this, SIGNAL(addContact(TocContact*)), engine, SLOT(onAddContactRequest(TocContact*)));
+       CONNECT(this, SIGNAL(editContact(TocContact*,QString)), engine, SLOT(onEditContactRequest(TocContact*,QString)));
+       CONNECT(this, SIGNAL(removeContact(QString)), engine, SLOT(onRemoveContactRequest(QString)));
+       CONNECT(this, SIGNAL(subscriptionAccepted(QString,bool)), engine, SLOT(onSubscriptionAccepted(QString,bool)));
+}
+
+TocBaseMainWindow::~TocBaseMainWindow()
+{
+
+}
diff --git a/src/TocUi/TocChatWidget.cpp b/src/TocUi/TocChatWidget.cpp
new file mode 100644 (file)
index 0000000..f6f13d5
--- /dev/null
@@ -0,0 +1,362 @@
+/** \file TocChatWidget.cpp
+ * \brief Implementation of TocChatWidget class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+#include <QDateTime>
+#include <QKeyEvent>
+
+#include "ui_TocChatWidget.h"
+#include "TocEmoticonsDialog"
+#include "TocChatWidget"
+#include "uidefs.h"
+#include "macros.h"
+
+TocChatWidget::TocChatWidget( const QString& uid, const QString& name, Presence presence, QWidget * parent, const Message& message )
+       : QWidget(parent) 
+{
+       ui = new Ui_TocChatWidgetClass();
+       ui->setupUi( this );
+       setContentsMargins( -10, -10, -10, -10 );
+       
+       CONNECT(ui->smileButton,SIGNAL(clicked()),this,SLOT(showEmoticonsDialog()));
+       
+       _uid = uid;
+       _name = name;
+       
+       switch(presence)
+       {
+       case Available:
+               ui->frame->setStyleSheet(STYLESHEET_ONLINE);
+               break;
+       case XA:
+       case Away:
+               ui->frame->setStyleSheet(STYLESHEET_AWAY);
+               break;
+       case Busy:
+               ui->frame->setStyleSheet(STYLESHEET_BUSY);
+               break;
+       case Hidden:    
+       case Offline:  
+               ui->frame->setStyleSheet(STYLESHEET_OFFLINE);
+               break;
+       default:
+               ui->frame->setStyleSheet(STYLESHEET_OFFLINE);
+       }
+
+       appendMessage(message);
+       
+       //Event filter for sending on Enter support  
+       ui->messageTextEdit->installEventFilter(this);
+       ui->messageTextEdit->setFocus();
+}
+
+TocChatWidget::~TocChatWidget() {
+       delete ui;
+}
+
+void TocChatWidget::onContactPresenceUpdate(Presence presence, const QString& description) {
+       QFont font = ui->chatTextEdit->currentFont();
+       QFont smallFont;
+       smallFont.setPointSize(static_cast<int>( font.pointSize() * 0.85) );
+       smallFont.setItalic(true);
+       ui->chatTextEdit->setCurrentFont(smallFont);
+       ui->chatTextEdit->setTextColor( Qt::darkGreen );
+       
+       QString status;
+       switch(presence)
+       {
+               case Available:
+                       status = tr("Online");  
+                       ui->frame->setStyleSheet(STYLESHEET_ONLINE);
+                       break;
+               case XA:
+               case Away:
+                       status = tr("Away"); 
+                       ui->frame->setStyleSheet(STYLESHEET_AWAY);
+                       break;
+               case Busy:
+                       status = tr("Do not Disturb"); 
+                       ui->frame->setStyleSheet(STYLESHEET_BUSY);
+                       break;
+               case Hidden:
+               case Offline:
+                       status = tr("Offline"); 
+                       ui->frame->setStyleSheet(STYLESHEET_OFFLINE);
+                       break;
+               default:
+                       status = tr("Unknown"); 
+                       ui->frame->setStyleSheet(STYLESHEET_OFFLINE);
+       }
+       
+       if(description.size())
+               ui->chatTextEdit->append(tr("%1 changed status to %2 (%3)").arg(_name).arg(status).arg(description));
+       else
+               ui->chatTextEdit->append(tr("%1 changed status to %2").arg(_name).arg(status));
+       
+       ui->chatTextEdit->moveCursor(QTextCursor::End);
+       ui->chatTextEdit->setCurrentFont(font);
+}
+
+void TocChatWidget::updateContactPresence(Presence presence) {
+       switch(presence)
+       {
+       case Available:
+               ui->frame->setStyleSheet(STYLESHEET_ONLINE);
+               break;
+       case XA:
+       case Away:
+               ui->frame->setStyleSheet(STYLESHEET_AWAY);
+               break;
+       case Busy:
+               ui->frame->setStyleSheet(STYLESHEET_BUSY);
+               break;
+       case Hidden:    
+       case Offline:  
+               ui->frame->setStyleSheet(STYLESHEET_OFFLINE);
+               break;
+       default:
+               ui->frame->setStyleSheet(STYLESHEET_OFFLINE);
+       }
+}
+
+void TocChatWidget::appendMessage(const Message& message) {
+       if(message.contents.isEmpty())
+               return;
+
+       QDateTime messageTime( QDateTime::fromTime_t( message.timestamp ) );
+       QDateTime currentTime( QDateTime::currentDateTime() );
+
+       QString format;
+       if( messageTime.date() < currentTime.date() )
+               format = "ddd: yyyy-MM-dd hh:mm:ss";
+       else
+               format = "hh:mm:ss";
+       
+       if(message.error == NoError) {
+
+               ui->chatTextEdit->setTextColor(Qt::blue);
+               ui->chatTextEdit->setFontItalic(true);
+               ui->chatTextEdit->append( _name + " " + currentTime.toString("hh:mm:ss")
+                               + " (" + messageTime.toString(format) + "): ");
+               ui->chatTextEdit->setFontItalic(false);
+               insertEmoticons(message.contents);
+               
+       } else { 
+               
+               // If error occured
+               ui->chatTextEdit->setTextColor(Qt::red);
+               ui->chatTextEdit->setFontItalic(true);
+               ui->chatTextEdit->append( tr("Message \"%1\" sent on %2 was not delivered %3"
+                               ).arg(message.contents).arg(messageTime.toString(format)).arg(errorString(message.error)));
+       }
+       
+       ui->chatTextEdit->moveCursor(QTextCursor::End);
+}
+
+QString TocChatWidget::errorString(MessageDeliveryError error) {
+       
+       switch(error) {
+       case Unknown:
+               return tr("because of unknown error.");
+
+       case ContactOffline:
+               return tr("because contact was offline.");
+
+       case InvalidContact:
+               return tr("because contact is invalid.");
+
+       case PermissionDenied:
+               return tr("because permission was denied.");
+
+       case MessageTooLong:
+               return tr("because message was too long.");
+
+       case UserOffline:
+               return tr("because You are offline, connect to be able to send messages.");
+
+       case NotOnContactList:
+               return tr("because the contact is not on Your contact list.");
+       
+       case CannotCreateChannel:
+               return tr("because the channel with the contact could not be created.");
+
+       case NoError:
+               return tr("because there was no error :).");
+
+       default:
+               return tr("because of unknown error.");
+       }
+}
+
+void TocChatWidget::pressedSendButton() {
+       
+       if(ui->messageTextEdit->toPlainText().size()) {
+               QDateTime time(QDateTime::currentDateTime());
+
+               ui->chatTextEdit->setTextColor(Qt::black);
+               ui->chatTextEdit->setFontItalic(true);
+               ui->chatTextEdit->append( tr("me") + " (" + time.toString("hh:mm:ss") + "): " );
+               ui->chatTextEdit->setFontItalic(false);
+               
+               insertEmoticons(ui->messageTextEdit->toPlainText());
+               
+               Message message;
+               message.contents = ui->messageTextEdit->toPlainText();
+               message.timestamp = time.toTime_t();
+               emit newMessageReady(_uid, message);
+               ui->messageTextEdit->clear();
+               
+               ui->chatTextEdit->moveCursor(QTextCursor::End);
+       }
+} 
+
+bool TocChatWidget::eventFilter(QObject *object, QEvent *event) {
+       
+       if (object == ui->messageTextEdit) {
+               
+               if (event->type() == QEvent::KeyPress) {
+                       
+                       QKeyEvent *k = static_cast<QKeyEvent*>(event);                          
+                       if (k->key() == Qt::Key_Enter || k->key() == Qt::Key_Return) {
+                               
+                               if ((!(k->modifiers() == (Qt::KeypadModifier | Qt::ShiftModifier)))     && 
+                                       (!(k->modifiers() == Qt::ShiftModifier))) {
+                                       
+                                       pressedSendButton();                    
+                                       return true;
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+void TocChatWidget::insertEmoticons(const QString& message) {
+       
+    int pos = 0, last = 0, delta = 1;
+    QString emot;
+   
+    while (pos+1 < message.length()) {
+       
+        // checking for ":)" or ":-)" type smilies...
+        if(message.at(pos) == ':') {
+
+            if(message.at(pos+1) == '-' && pos+2 < message.length()) { // checking for :-) type...
+                delta = 2;
+            }
+            if(message.at(pos+delta) == ')') {
+                delta++; emot = emotSmile_24x24;
+            } 
+            else if(message.at(pos+delta) == '(') {
+                delta++; emot = emotSad_24x24;
+            }
+            else if(message.at(pos+delta) == '|') {
+                delta++; emot = emotPlain_24x24;
+            }
+            else if(message.at(pos+delta) == 'D') {
+                delta++; emot = emotGrin_24x24;
+            }
+            else if(message.at(pos+delta) == 'O') {
+                delta++; emot = emotSurprise_24x24;
+            }
+            else if(message.at(pos+delta) == '*') {
+                delta++; emot = emotKiss_24x24;
+            }
+            else
+                delta = 1;
+        }
+        
+        // checking for ";)" or ";-)" type smilies...
+        else if(message.at(pos) == ';') {
+               
+            if(message.at(pos+1) == '-' && pos+2 < message.length()) { // checking for ;-) type...
+                delta = 2;
+            }
+            if(message.at(pos+delta) == ')') {
+                delta++; emot = emotWink_24x24;
+            }
+            else
+                delta = 1;
+        }
+        
+        // checking for "<emoticon>" type smilies...
+        else if(message.at(pos) == '<') {
+               
+            if(message.right(message.length()-pos).startsWith("<angel>")) {
+                delta = 7; emot = emotAngel_24x24;
+            }
+            else if(message.right(message.length()-pos).startsWith("<devil>")) {
+                delta = 7; emot = emotDevil_24x24;
+            }
+            else if(message.right(message.length()-pos).startsWith("<monkey>")) {
+                delta = 8; emot = emotMonkey_24x24;
+            } 
+            else if(message.right(message.length()-pos).startsWith("<crying>")) {
+                delta = 8; emot = emotCrying_24x24;
+            }   
+            else if(message.right(message.length()-pos).startsWith("<glasses>")) {
+                delta = 9; emot = emotGlasses_24x24;
+            }   
+            else if(message.right(message.length()-pos).startsWith("<bigsmile>")) {
+                delta = 10; emot = emotSmileBig_24x24;
+            }   
+            else
+                delta = 1;
+        }
+        
+        //OK, emoticon found ... inserting into chatView
+        if(delta>1) {
+            ui->chatTextEdit->insertPlainText(message.mid(last, pos-last));
+            ui->chatTextEdit->insertHtml("<img source=\"" + emot + "\">");
+            pos += delta; last = pos; delta = 1;
+        }
+        else {
+            pos += delta;
+        }
+    }
+    ui->chatTextEdit->insertPlainText(message.mid(last));
+}
+
+void TocChatWidget::showEmoticonsDialog() {
+       
+       TocEmoticonsDialog* emoticonsDialog = TocEmoticonsDialog::getInstance(this);
+
+       if ((*emoticonsDialog).exec() == QDialog::Accepted) {
+       
+               QString alias = emoticonsDialog->getSelectedEmoticonAlias();    
+               ui->messageTextEdit->insertPlainText(alias);
+       }
+       ui->messageTextEdit->setFocus();
+}
+
+void TocChatWidget::showEvent( QShowEvent* event ) {
+       ui->messageTextEdit->setFocus();
+       event->accept();
+}
diff --git a/src/TocUi/TocChatWidget.ui b/src/TocUi/TocChatWidget.ui
new file mode 100644 (file)
index 0000000..e1ff2c6
--- /dev/null
@@ -0,0 +1,257 @@
+<!--
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ *
+-->
+
+<ui version="4.0" >
+ <class>TocChatWidgetClass</class>
+ <widget class="QWidget" name="TocChatWidgetClass" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>718</width>
+    <height>431</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Form</string>
+  </property>
+  <property name="styleSheet" >
+   <string notr="true" />
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout" >
+   <item>
+    <widget class="QFrame" name="chatFrame" >
+     <property name="frameShape" >
+      <enum>QFrame::StyledPanel</enum>
+     </property>
+     <property name="frameShadow" >
+      <enum>QFrame::Raised</enum>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_2" >
+      <property name="spacing" >
+       <number>0</number>
+      </property>
+      <item>
+       <widget class="QFrame" name="frame" >
+        <property name="styleSheet" >
+         <string notr="true" />
+        </property>
+        <property name="frameShape" >
+         <enum>QFrame::StyledPanel</enum>
+        </property>
+        <property name="frameShadow" >
+         <enum>QFrame::Plain</enum>
+        </property>
+        <layout class="QGridLayout" name="gridLayout" >
+         <property name="margin" >
+          <number>3</number>
+         </property>
+         <property name="verticalSpacing" >
+          <number>-1</number>
+         </property>
+         <item row="0" column="0" >
+          <widget class="QTextEdit" name="chatTextEdit" >
+           <property name="sizePolicy" >
+            <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="styleSheet" >
+            <string notr="true" >QTextEdit {
+       background-color: none;
+}</string>
+           </property>
+           <property name="frameShape" >
+            <enum>QFrame::Box</enum>
+           </property>
+           <property name="frameShadow" >
+            <enum>QFrame::Sunken</enum>
+           </property>
+           <property name="lineWidth" >
+            <number>1</number>
+           </property>
+           <property name="horizontalScrollBarPolicy" >
+            <enum>Qt::ScrollBarAlwaysOff</enum>
+           </property>
+           <property name="readOnly" >
+            <bool>true</bool>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </widget>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_2" >
+        <property name="spacing" >
+         <number>4</number>
+        </property>
+        <property name="leftMargin" >
+         <number>0</number>
+        </property>
+        <property name="topMargin" >
+         <number>0</number>
+        </property>
+        <item>
+         <widget class="QPushButton" name="smileButton" >
+          <property name="font" >
+           <font>
+            <pointsize>14</pointsize>
+            <weight>75</weight>
+            <bold>true</bold>
+           </font>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QPushButton{
+       border-radius: 5px;
+       min-height: 80px;
+       min-width: 80px;
+       max-height: 80px;
+       max-width: 80px;
+}</string>
+          </property>
+          <property name="text" >
+           <string>Smile</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QTextEdit" name="messageTextEdit" >
+          <property name="sizePolicy" >
+           <sizepolicy vsizetype="MinimumExpanding" hsizetype="MinimumExpanding" >
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="maximumSize" >
+           <size>
+            <width>16777215</width>
+            <height>80</height>
+           </size>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QTextEdit {
+       background-color: none;
+}</string>
+          </property>
+          <property name="frameShape" >
+           <enum>QFrame::Box</enum>
+          </property>
+          <property name="verticalScrollBarPolicy" >
+           <enum>Qt::ScrollBarAsNeeded</enum>
+          </property>
+          <property name="horizontalScrollBarPolicy" >
+           <enum>Qt::ScrollBarAlwaysOff</enum>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QPushButton" name="sendButton" >
+          <property name="sizePolicy" >
+           <sizepolicy vsizetype="MinimumExpanding" hsizetype="Preferred" >
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="maximumSize" >
+           <size>
+            <width>80</width>
+            <height>80</height>
+           </size>
+          </property>
+          <property name="font" >
+           <font>
+            <pointsize>14</pointsize>
+            <weight>75</weight>
+            <bold>true</bold>
+           </font>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QPushButton{
+       border-radius: 5px;
+       min-height: 80px;
+       min-width: 80px;
+       max-height: 80px;
+       max-width: 80px;
+}
+</string>
+          </property>
+          <property name="text" >
+           <string>Send</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>sendButton</sender>
+   <signal>clicked()</signal>
+   <receiver>TocChatWidgetClass</receiver>
+   <slot>pressedSendButton()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>672</x>
+     <y>318</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>715</x>
+     <y>285</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>sendButton</sender>
+   <signal>clicked()</signal>
+   <receiver>messageTextEdit</receiver>
+   <slot>setFocus()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>620</x>
+     <y>328</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>516</x>
+     <y>337</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+ <slots>
+  <slot>pressedSendButton()</slot>
+ </slots>
+</ui>
diff --git a/src/TocUi/TocContactListWidget.cpp b/src/TocUi/TocContactListWidget.cpp
new file mode 100644 (file)
index 0000000..db1a117
--- /dev/null
@@ -0,0 +1,417 @@
+/** \file TocContactListWidget.cpp
+ * \brief Implementation of TocContactListWidget class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#include <QMenu>
+#include <QMouseEvent>
+#include <QMessageBox>
+#include <QPainter>
+#include <QDebug>
+#include <QCommonStyle>
+
+#include "TocContactListWidget"
+#include "IconProvider"
+#include "uidefs.h"
+#include "macros.h"
+
+Q_DECLARE_METATYPE(TocContact*);
+
+TocContactListWidget::TocContactListWidget(QWidget * parent)
+       : QListWidget(parent),
+       _editAction(tr("Edit"), 0),
+       _removeAction(tr("Remove"), 0)
+{
+       setStyle(new QCommonStyle());
+       setFlow( QListView::LeftToRight );
+       setViewMode( QListView::IconMode );
+       setGridSize( QSize(109, 113) );
+       setIconSize(QSize(68,68));
+       setDragEnabled( false );
+       setVerticalScrollMode( QAbstractItemView::ScrollPerItem );
+       setWrapping( true );
+       setWordWrap( true );
+       setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
+       setResizeMode( QListView::Adjust );
+       QFont currentFont(font());
+       currentFont.setPixelSize(14);
+       setFont(currentFont);
+
+       // 'Add contact' item
+       (new QListWidgetItem(QIcon(":/addcontact.png"), tr("Add Contact"), this))->setFlags( Qt::ItemIsEnabled );
+
+       TocSettings *pSettings = TocSettings::getInstance();
+       
+       QList<TocContact*> *pContactsList = pSettings->contactList();
+       
+       IconProvider *pIconProvider = IconProvider::getInstance();
+       
+       foreach(TocContact* pContact, *pContactsList)
+       {
+               if(!pContact->customIconPath.isEmpty())
+                       pIconProvider->setCustomIcon(pContact);
+
+               QString displayedText;
+               if(pContact->name.isEmpty())
+                       displayedText = pContact->uid;
+               else
+                       displayedText = pContact->name;
+
+               QListWidgetItem* pItem = new QListWidgetItem(displayedText, this);
+               
+               pItem->setData( Qt::DecorationRole, *(pIconProvider->matchIcon(pContact)) );
+               pItem->setData( ContactRole, QVariant::fromValue(pContact));
+               
+               pItem->setFlags( Qt::ItemIsEnabled );
+                       
+               addItem(pItem);
+       }
+       
+       // Load logo image
+       _logo = new QImage(":/tieto-logo.png");
+
+       sortItems(Alphabetical); // Sort items alphabetically
+
+       //CONNECT SIGNALS
+       CONNECT(&_editAction, SIGNAL(triggered(bool)), this, SLOT(onEditRequested()));
+       CONNECT(&_removeAction, SIGNAL(triggered(bool)), this, SLOT(onRemoveRequested()));
+       CONNECT(this, SIGNAL(logoColorChanged(QColor)), this, SLOT(changeLogoColor(QColor)));
+}
+
+TocContactListWidget::~TocContactListWidget() {
+       delete _logo;
+}
+
+void TocContactListWidget::onNewContactList(const TocContactList& contactList) {
+
+       QListWidgetItem* pAddContactItem = takeItem( 0 );
+       clear();
+
+       IconProvider *pIconProvider = IconProvider::getInstance();      
+       
+       foreach(TocContact* pContact, contactList)
+       {
+               QString displayedText;
+               if(pContact->name.isEmpty())
+                       displayedText = pContact->uid;
+               else
+                       displayedText = pContact->name;
+
+               QListWidgetItem* pNewItem = new QListWidgetItem(displayedText, this);
+
+               pNewItem->setData(DecorationRole, *(pIconProvider->matchIcon(pContact)));
+               pNewItem->setData(ContactRole, QVariant::fromValue(pContact));
+
+               //make it not selectable
+               pNewItem->setFlags( Qt::ItemIsEnabled );
+       }
+
+       insertItem(0, pAddContactItem);
+
+       sortItems(Alphabetical);
+}
+
+void TocContactListWidget::onContactPresenceUpdate(const QString& uid, Presence presence, const QString& description) {
+
+       IconProvider *pIconProvider = IconProvider::getInstance();
+
+       QListWidgetItem* pItem = findItem(uid);
+
+       if( !pItem )
+               return;
+       
+       TocContact *pContact = pItem->data(ContactRole).value<TocContact*>();
+
+       pContact->presence = presence;
+       pContact->description = description;
+
+       pItem->setData(Qt::DecorationRole, *(pIconProvider->matchIcon(pContact)));
+}
+
+QString TocContactListWidget::getDisplayedName(const QString& uid) {
+       
+       QListWidgetItem* pItem = findItem(uid);
+       
+       if(pItem)
+               return pItem->data(DisplayRole).toString();
+       
+       return QString();
+}
+
+void TocContactListWidget::clearStatuses() {
+
+       IconProvider *pIconProvider = IconProvider::getInstance();
+
+       for(int i = 1; i < count(); ++i) {
+
+               QListWidgetItem* pItem = this->item(i);
+
+               TocContact *pContact = pItem->data(ContactRole).value<TocContact*>();
+               pContact->presence = Offline;
+//             pContact->description = ""; // TODO: Clear description also? Some clients remember last descr
+
+               pItem->setData(Qt::DecorationRole, *(pIconProvider->matchIcon(pContact)));
+       }
+}
+
+Q_DECLARE_METATYPE(QListWidgetItem*);
+
+
+void TocContactListWidget::mouseDoubleClickEvent(QMouseEvent *event)
+{
+       QPoint itemPos = event->pos();
+       
+       QListWidgetItem* pClickedItem = itemAt(itemPos);
+       if(!pClickedItem)
+               return;
+
+       QListWidgetItem* pAddContactItem = item(0);
+
+       if(pAddContactItem == pClickedItem)
+               emit contactInfoRequest(0);
+       else
+       {
+               TocContact *pContact = pClickedItem->data(ContactRole).value<TocContact*>();
+               QString uid = pContact->uid;
+               QString name = pClickedItem->text(); // Using Text instead of pContact->name because the latter can be empty
+
+               emit triggered(uid, name, pContact->presence);
+       }
+}
+
+void TocContactListWidget::contextMenuEvent(QContextMenuEvent *event)
+{
+       QPoint itemPos = event->pos();
+       
+       QListWidgetItem* pClickedItem = itemAt(itemPos);
+               
+       //if it applies to Add Contact then skip it
+       QListWidgetItem* pAddContactItem = item(0);
+       if(pClickedItem == pAddContactItem || pClickedItem == 0) return;
+                               
+       //create menu
+       QMenu contextMenu(this);
+
+       contextMenu.setStyleSheet(
+                       "QMenu {"
+                               "margin-left: 0px;"
+                               "margin-top: 0px;"
+                               "margin-right: 0px;"
+                               "margin-bottom: 0px;"
+                               "font: bold 16px;"
+                       "}"
+                       "QMenu::item {"
+                               "margin-left: 0px;"
+                               "margin-top: 0px;"
+                               "margin-right: 0px;"
+                               "margin-bottom: 0px;"
+                               "padding: 0px 10px 0px 30px;"
+                               "min-height: 60px;"
+                               "min-width: 80px;"
+                               "max-height: 60px;"
+                               "border-radius: 5px;"
+                       "}");
+       
+       _editAction.setData(QVariant::fromValue(pClickedItem));
+       _removeAction.setData(QVariant::fromValue(pClickedItem));
+       
+       contextMenu.addAction(&_editAction);
+       contextMenu.addAction(&_removeAction);
+       
+       contextMenu.exec(mapToGlobal(itemPos));
+}
+
+
+void TocContactListWidget::onEditRequested() {
+
+       //extract data from sender
+       QObject* pObject = QObject::sender();
+       _pCurrentEditedItem = (static_cast<QAction*>(pObject))->data().value<QListWidgetItem*>();
+
+       _currentEditedContact = *(_pCurrentEditedItem->data(ContactRole).value<TocContact*>());
+
+       if(_pCurrentEditedItem)
+               emit contactInfoRequest(_pCurrentEditedItem);
+}
+
+void TocContactListWidget::onRemoveRequested() {
+       
+       //extract data from sender
+       QObject* pObject = QObject::sender();
+       QListWidgetItem* pItem = (static_cast<QAction*>(pObject))->data().value<QListWidgetItem*>();
+       
+       if(!pItem) return;
+       
+       TocContact* pContact = pItem->data(ContactRole).value<TocContact*>();
+       QMessageBox::StandardButton clickedButton = QMessageBox::question(this, "TEC", tr("Are you sure you want to remove\ncontact: %1").arg(pContact->name), QMessageBox::Yes | QMessageBox::No);
+       if(clickedButton == QMessageBox::No) return;
+       
+       //Remove from list
+       if(takeItem(row(pItem)))
+       {
+               //Removing went successfuly
+               //Lets notify the engine
+               QString uid = pItem->data(ContactRole).value<TocContact*>()->uid;
+               
+               emit removedContact(uid);
+       }
+       
+}
+
+void TocContactListWidget::commitAdd(QListWidgetItem* pNewItem) {
+       
+       TocContact *pNewContact = pNewItem->data(ContactRole).value<TocContact*>();
+       QString uid = pNewContact->uid;
+       
+       //ensure that item is not already present
+       if(findItem(uid))
+               return;
+       
+       //add to list
+       addItem(pNewItem);
+
+       // sortItems now
+       sortItems(Alphabetical);
+       
+       //notify engine
+       emit addContact(pNewContact);
+}
+
+void TocContactListWidget::commitEdit(QListWidgetItem* pEditedItem) {
+
+       TocContact* pEditedContact = pEditedItem->data(ContactRole).value<TocContact*>();
+
+       QString newUid = pEditedContact->uid;
+       QString newName = pEditedContact->name;
+
+       QString oldUid = _currentEditedContact.uid;
+       QString oldName = _currentEditedContact.name;
+       
+       if( newUid != oldUid )//If Uid has changed ensure that item with such uid is not already present
+               if( findItem(newUid, pEditedItem) ) {
+                       pEditedContact->uid = oldUid;
+                       return;
+               }
+
+       if( newName != oldName )
+               if(newName.isEmpty())
+                       emit displayedNameChanged( newUid, newUid );
+               else
+                       emit displayedNameChanged( newUid, newName );
+
+       // sort items now
+       sortItems(Alphabetical);
+
+       IconProvider *pIconProvider = IconProvider::getInstance();
+       pEditedItem->setData(Qt::DecorationRole, *(pIconProvider->matchIcon(pEditedContact)));
+
+       emit editContact(pEditedContact, oldUid);
+}
+
+QListWidgetItem* TocContactListWidget::findItem(const QString& requestedUid, const QListWidgetItem* pExcludedItem) {
+       
+       QString uid;
+       
+       for(int i=1; i < count(); i++)
+       {
+               QListWidgetItem* pRequestedItem = item(i);
+               if( pExcludedItem == pRequestedItem )
+                       continue;
+
+               uid = pRequestedItem->data(ContactRole).value<TocContact*>()->uid;
+               
+               if(uid == requestedUid)
+                       return pRequestedItem;
+       }
+               
+       return 0;
+}
+
+void TocContactListWidget::sortItems(SortOrder order) {
+       
+       QListWidgetItem* pAddContactItem = 0;
+       
+       switch(order) {
+       
+               case Alphabetical:
+                       pAddContactItem = takeItem( 0 );
+                       QListWidget::sortItems(Qt::AscendingOrder);
+                       insertItem(0, pAddContactItem);
+                       break;
+
+               case ByStatus:
+                       // TODO: sort by status
+                       break;
+
+               case None:
+                       // TODO: disable sorting and enable drag & drop events
+                       break;
+       }
+}
+
+void TocContactListWidget::paintEvent(QPaintEvent * event) {
+       Q_UNUSED(event);
+
+       QPainter painter(this->viewport());
+       painter.drawImage(this->width() - _logo->width(), this->height() - _logo->height(), *_logo);
+
+       QListWidget::paintEvent(event);
+}
+
+QColor TocContactListWidget::logoColor() const {
+       return _logoColor;
+}
+
+void TocContactListWidget::setLogoColor(QColor color) {
+       _logoColor = color;
+       emit logoColorChanged( _logoColor );
+}
+
+void TocContactListWidget::changeLogoColor(QColor color) {
+       QColor lColor;
+       QString colorName = color.name();
+
+       if( colorName == "#0000ff" )
+             lColor = LOGO_BLUE;
+       else if( colorName == "#add8e6" )
+             lColor = LOGO_LIGHT_BLUE;
+       else if( colorName == "#008000" )
+             lColor = LOGO_GREEN;
+       else if( colorName == "#ffa500" )
+             lColor = LOGO_ORANGE;
+       else if( colorName == "#ff0000" )
+             lColor = LOGO_RED;
+       else
+             lColor = LOGO_RED;
+
+       for(int i = 0; i < _logo->width(); ++i)
+               for(int j = 0; j < _logo->height(); ++j)
+                        if(_logo->pixel(i, j) >> 24)
+                               _logo->setPixel(i,j, lColor.rgb());
+}
diff --git a/src/TocUi/TocEmoticonsDialog.cpp b/src/TocUi/TocEmoticonsDialog.cpp
new file mode 100644 (file)
index 0000000..0e30a62
--- /dev/null
@@ -0,0 +1,114 @@
+/** \file TocEmoticonsDialog.cpp
+ * \brief Implementation of TocEmoticonsDialog class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+#include "ui_TocEmoticonsDialog.h"
+#include "TocEmoticonsDialog"
+#include "macros.h"
+#include "uidefs.h"
+
+// Initialize static objects
+TocEmoticonsDialog* TocEmoticonsDialog::_pSelf = 0;
+
+TocEmoticonsDialog* TocEmoticonsDialog::getInstance(QWidget* parent) {
+
+       if (!_pSelf)
+               _pSelf = new TocEmoticonsDialog(parent);
+
+       return _pSelf;
+}
+
+TocEmoticonsDialog::TocEmoticonsDialog(QWidget *parent)
+    : QDialog(parent)
+{
+       ui = new Ui_TocEmoticonsDialogClass();
+       ui->setupUi(this);
+       setContentsMargins(-10, -10, -10, -10);
+       
+       CONNECT(ui->backButton,SIGNAL(clicked()),this,SLOT(reject()));
+       CONNECT(ui->emoticonsListWidget,SIGNAL(itemClicked(QListWidgetItem*)),this,SLOT(onEmoticonSelected(QListWidgetItem*)));
+
+       ui->emoticonsListWidget->setFlow(QListView::LeftToRight);
+       ui->emoticonsListWidget->setViewMode(QListView::IconMode);
+       ui->emoticonsListWidget->setGridSize(QSize(80, 80));
+       ui->emoticonsListWidget->setIconSize(QSize(32, 32));
+       ui->emoticonsListWidget->setDragEnabled(false);
+       ui->emoticonsListWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerItem);
+       ui->emoticonsListWidget->setWrapping(true);
+       ui->emoticonsListWidget->setWordWrap(true);
+       ui->emoticonsListWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+       ui->emoticonsListWidget->setResizeMode(QListView::Adjust);
+       
+       QFont currentFont(ui->emoticonsListWidget->font());
+       currentFont.setPixelSize(14);
+       ui->emoticonsListWidget->setFont(currentFont);
+
+       ui->emoticonsListWidget->addItem(new QListWidgetItem(QIcon(emotSmile_32x32), 
+                       tr(":)"),                 ui->emoticonsListWidget));
+       ui->emoticonsListWidget->addItem(new QListWidgetItem(QIcon(emotSad_32x32),
+                       tr(":("),                 ui->emoticonsListWidget));
+       ui->emoticonsListWidget->addItem(new QListWidgetItem(QIcon(emotPlain_32x32),
+                       tr(":|"),                 ui->emoticonsListWidget));
+       ui->emoticonsListWidget->addItem(new QListWidgetItem(QIcon(emotSurprise_32x32),
+                       tr(":O"),                 ui->emoticonsListWidget));
+       ui->emoticonsListWidget->addItem(new QListWidgetItem(QIcon(emotGrin_32x32),
+                       tr(":D"),                 ui->emoticonsListWidget));
+       ui->emoticonsListWidget->addItem(new QListWidgetItem(QIcon(emotWink_32x32),
+                       tr(";)"),                 ui->emoticonsListWidget));
+       ui->emoticonsListWidget->addItem(new QListWidgetItem(QIcon(emotKiss_32x32),
+                       tr(":*"),                 ui->emoticonsListWidget));
+       ui->emoticonsListWidget->addItem(new QListWidgetItem(QIcon(emotAngel_32x32),
+                       tr("<angel>"),    ui->emoticonsListWidget));
+       ui->emoticonsListWidget->addItem(new QListWidgetItem(QIcon(emotDevil_32x32),
+                       tr("<devil>"),    ui->emoticonsListWidget));
+       ui->emoticonsListWidget->addItem(new QListWidgetItem(QIcon(emotMonkey_32x32),
+                       tr("<monkey>"),   ui->emoticonsListWidget));
+       ui->emoticonsListWidget->addItem(new QListWidgetItem(QIcon(emotCrying_32x32),
+                       tr("<crying>"),   ui->emoticonsListWidget));
+       ui->emoticonsListWidget->addItem(new QListWidgetItem(QIcon(emotGlasses_32x32),
+                       tr("<glasses>"),  ui->emoticonsListWidget));
+       ui->emoticonsListWidget->addItem(new QListWidgetItem(QIcon(emotSmileBig_32x32),
+                       tr("<bigsmile>"), ui->emoticonsListWidget));
+}
+
+TocEmoticonsDialog::~TocEmoticonsDialog()
+{
+       delete ui;
+}
+
+void TocEmoticonsDialog::onEmoticonSelected(QListWidgetItem* pItem) {
+       
+       _selectedEmoticonAlias = pItem->text();
+       accept();
+}
+
+QString TocEmoticonsDialog::getSelectedEmoticonAlias() {
+       return _selectedEmoticonAlias;
+}
diff --git a/src/TocUi/TocEmoticonsDialog.ui b/src/TocUi/TocEmoticonsDialog.ui
new file mode 100644 (file)
index 0000000..6f080aa
--- /dev/null
@@ -0,0 +1,125 @@
+<!--
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ *
+-->
+
+<ui version="4.0" >
+ <class>TocEmoticonsDialogClass</class>
+ <widget class="QDialog" name="TocEmoticonsDialogClass" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>418</width>
+    <height>310</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Emoticons</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout" >
+   <property name="leftMargin" >
+    <number>0</number>
+   </property>
+   <property name="topMargin" >
+    <number>9</number>
+   </property>
+   <property name="rightMargin" >
+    <number>9</number>
+   </property>
+   <property name="bottomMargin" >
+    <number>0</number>
+   </property>
+   <property name="spacing" >
+    <number>0</number>
+   </property>
+   <item row="0" column="0" colspan="3" >
+    <widget class="QListWidget" name="emoticonsListWidget" >
+     <property name="showDropIndicator" stdset="0" >
+      <bool>false</bool>
+     </property>
+     <property name="spacing" >
+      <number>10</number>
+     </property>
+     <property name="viewMode" >
+      <enum>QListView::ListMode</enum>
+     </property>
+     <property name="currentRow" >
+      <number>-1</number>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="0" >
+    <spacer name="horizontalSpacer" >
+     <property name="orientation" >
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeHint" stdset="0" >
+      <size>
+       <width>142</width>
+       <height>77</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="1" column="1" >
+    <widget class="QPushButton" name="backButton" >
+     <property name="styleSheet" >
+      <string notr="true" >QPushButton{
+       font: bold 16px;
+       border-radius: 5px;
+       min-height: 40px;
+       min-width: 80px;
+       max-height: 40px;
+       max-width: 80px;
+}</string>
+     </property>
+     <property name="text" >
+      <string>Back</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="2" >
+    <spacer name="horizontalSpacer_2" >
+     <property name="orientation" >
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeHint" stdset="0" >
+      <size>
+       <width>40</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+  </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/TocUi/TocGeneralSettingsWidget.cpp b/src/TocUi/TocGeneralSettingsWidget.cpp
new file mode 100644 (file)
index 0000000..8b5771b
--- /dev/null
@@ -0,0 +1,119 @@
+/** \file TocGeneralSettingsWidget.cpp
+ * \brief Implementation of TocGeneralSettingsWidget class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+#include "TocGeneralSettingsWidget"
+#include "ui_TocGeneralSettingsWidget.h"
+
+#include "TocSettings"
+#include "macros.h"
+
+#include <QtDebug>
+#include <QCommonStyle>
+
+TocGeneralSettingsWidget::TocGeneralSettingsWidget(QWidget * parent, Qt::WindowFlags flags)
+       : QWidget(parent, flags) {
+       
+         
+       setStyle(new QCommonStyle());
+       ui = new Ui_TocGeneralSettingsWidgetClass();
+       ui->setupUi( this );
+       setContentsMargins( -10, -10, -10, -10 );
+
+       TocSettings* pSettings = TocSettings::getInstance();
+
+       /*ui->alphaRadioButton->setAttribute(Qt::WA_TranslucentBackground, true);
+       ui->presenceRadioButton->setAttribute(Qt::WA_TranslucentBackground, false);
+       ui->dragDropRadioButton->setAttribute(Qt::WA_TranslucentBackground, false);
+       ui->acceptRadioButton->setAttribute(Qt::WA_TranslucentBackground, false);
+       ui->askRadioButton->setAttribute(Qt::WA_TranslucentBackground, false);
+       ui->denyRadioButton->setAttribute(Qt::WA_TranslucentBackground, false);*/
+       
+       switch( pSettings->sortOrder() ) {
+       case Alphabetical:
+               ui->alphaRadioButton->setChecked( true );
+               break;
+       //TODO: To be implemented.
+       /*case ByStatus:
+               ui->presenceRadioButton->setChecked( true );
+               break;
+       case None:
+               ui->dragDropRadioButton->setChecked( true );
+               break;*/
+       default:
+               ui->alphaRadioButton->setChecked( true );
+       }
+
+       switch( pSettings->authorizationRule() ) {
+       case AlwaysAccept:
+               ui->acceptRadioButton->setChecked( true );
+               break;
+       //TODO: To be implemented.
+       /*case Ask:
+               ui->askRadioButton->setChecked( true );
+               break;
+       case AlwaysDeny:
+               ui->denyRadioButton->setChecked( true );
+               break;*/
+       default:
+               //TODO: Change to the commented one when implementation will be done. 
+               //ui->askRadioButton->setChecked( true );
+               ui->acceptRadioButton->setChecked( true );
+       }
+
+       CONNECT(ui->okButton, SIGNAL(clicked()), this, SLOT(saveGeneralSettings()));
+       CONNECT(ui->backButton, SIGNAL(clicked()), this, SIGNAL(backClicked()));
+       
+}
+
+TocGeneralSettingsWidget::~TocGeneralSettingsWidget() {
+       delete ui;
+}
+
+void TocGeneralSettingsWidget::saveGeneralSettings() {
+
+       TocSettings* pSettings = TocSettings::getInstance();
+
+       if( ui->alphaRadioButton->isChecked() )
+               pSettings->setSortOrder( Alphabetical );
+       else if( ui->presenceRadioButton->isChecked() )
+               pSettings->setSortOrder( ByStatus );
+       else if( ui->dragDropRadioButton->isChecked() )
+               pSettings->setSortOrder( None );
+
+       if( ui->askRadioButton->isChecked() )
+               pSettings->setAuthorizationRule( Ask );
+       else if( ui->acceptRadioButton->isChecked() )
+               pSettings->setAuthorizationRule( AlwaysAccept );
+       else if( ui->denyRadioButton->isChecked() )
+               pSettings->setAuthorizationRule( AlwaysDeny );
+
+       emit finished();
+}
diff --git a/src/TocUi/TocGeneralSettingsWidget.ui b/src/TocUi/TocGeneralSettingsWidget.ui
new file mode 100644 (file)
index 0000000..cb1da34
--- /dev/null
@@ -0,0 +1,454 @@
+<!--
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ *
+-->
+
+<ui version="4.0" >
+ <class>TocGeneralSettingsWidgetClass</class>
+ <widget class="QWidget" name="TocGeneralSettingsWidgetClass" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>773</width>
+    <height>441</height>
+   </rect>
+  </property>
+  <property name="sizeHint" stdset="0" >
+   <size>
+    <width>705</width>
+    <height>568</height>
+   </size>
+  </property>
+  <property name="windowTitle" >
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout" >
+   <item>
+    <widget class="QFrame" name="generalSettingsFrame" >
+     <property name="frameShape" >
+      <enum>QFrame::StyledPanel</enum>
+     </property>
+     <property name="frameShadow" >
+      <enum>QFrame::Raised</enum>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout" >
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout_2" >
+        <item>
+         <spacer name="verticalSpacer" >
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0" >
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QPushButton" name="backButton" >
+          <property name="styleSheet" >
+           <string notr="true" >QPushButton {
+                       font: bold 16px;
+               border-radius: 5px;
+                       min-height: 80px;
+                       min-width: 80px;
+                       max-height: 80px;
+                       max-width: 80px;
+}</string>
+          </property>
+          <property name="text" >
+           <string>Back</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <widget class="QGroupBox" name="sortingGroupBox" >
+        <property name="enabled" >
+         <bool>false</bool>
+        </property>
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Preferred" hsizetype="MinimumExpanding" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="styleSheet" >
+         <string notr="true" >QGroupBox {
+       font: bold 12px;
+}</string>
+        </property>
+        <property name="title" >
+         <string>Contact list sorting</string>
+        </property>
+        <layout class="QGridLayout" name="gridLayout_4" >
+         <item row="4" column="0" >
+          <spacer name="verticalSpacer_3" >
+           <property name="orientation" >
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" stdset="0" >
+            <size>
+             <width>20</width>
+             <height>75</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item row="1" column="0" >
+          <spacer name="verticalSpacer_2" >
+           <property name="orientation" >
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" stdset="0" >
+            <size>
+             <width>20</width>
+             <height>85</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item row="7" column="0" >
+          <spacer name="verticalSpacer_4" >
+           <property name="orientation" >
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" stdset="0" >
+            <size>
+             <width>20</width>
+             <height>75</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item row="11" column="0" >
+          <spacer name="verticalSpacer_5" >
+           <property name="orientation" >
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" stdset="0" >
+            <size>
+             <width>20</width>
+             <height>40</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item row="2" column="0" >
+          <widget class="QRadioButton" name="alphaRadioButton" >
+           <property name="sizePolicy" >
+            <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="minimumSize" >
+            <size>
+             <width>0</width>
+             <height>25</height>
+            </size>
+           </property>
+           <property name="styleSheet" >
+            <string notr="true" >QRadioButton {
+       font: bold 16px;
+       background-color: none;
+       min-height: 25px;
+}</string>
+           </property>
+           <property name="text" >
+            <string>Sort alphabeticaly</string>
+           </property>
+           <property name="checked" >
+            <bool>true</bool>
+           </property>
+          </widget>
+         </item>
+         <item row="9" column="0" >
+          <widget class="QRadioButton" name="dragDropRadioButton" >
+           <property name="minimumSize" >
+            <size>
+             <width>0</width>
+             <height>25</height>
+            </size>
+           </property>
+           <property name="styleSheet" >
+            <string notr="true" >QRadioButton {
+       font: bold 16px;
+       background-color: none;
+       min-height: 25px;
+}</string>
+           </property>
+           <property name="text" >
+            <string>Disable sorting</string>
+           </property>
+          </widget>
+         </item>
+         <item row="5" column="0" >
+          <widget class="QRadioButton" name="presenceRadioButton" >
+           <property name="enabled" >
+            <bool>false</bool>
+           </property>
+           <property name="styleSheet" >
+            <string notr="true" >QRadioButton {
+       font: bold 16px;
+       background-color: none;
+       min-height: 25px;
+}</string>
+           </property>
+           <property name="text" >
+            <string>Sort by status</string>
+           </property>
+          </widget>
+         </item>
+         <item row="3" column="0" >
+          <widget class="QLabel" name="alphaLabel" >
+           <property name="font" >
+            <font>
+             <pointsize>-1</pointsize>
+             <weight>50</weight>
+             <italic>false</italic>
+             <bold>false</bold>
+            </font>
+           </property>
+           <property name="styleSheet" >
+            <string notr="true" >QLabel {
+       background: none;
+       font: 14px;
+}</string>
+           </property>
+           <property name="text" >
+            <string>Sorts contact list items alphabetically</string>
+           </property>
+          </widget>
+         </item>
+         <item row="6" column="0" >
+          <widget class="QLabel" name="presence" >
+           <property name="font" >
+            <font>
+             <pointsize>-1</pointsize>
+             <weight>50</weight>
+             <italic>false</italic>
+             <bold>false</bold>
+            </font>
+           </property>
+           <property name="styleSheet" >
+            <string notr="true" >QLabel {
+       background: none;
+       font: 14px;
+}</string>
+           </property>
+           <property name="text" >
+            <string>Sorts contact list items by status</string>
+           </property>
+          </widget>
+         </item>
+         <item row="10" column="0" >
+          <widget class="QLabel" name="dragDropLabel" >
+           <property name="styleSheet" >
+            <string notr="true" >QLabel {
+       background: none;
+       font: 14px;
+}</string>
+           </property>
+           <property name="text" >
+            <string>Disables sorting and enables drag
+and dropping</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </widget>
+      </item>
+      <item>
+       <widget class="QGroupBox" name="authorizationGroupBox" >
+        <property name="enabled" >
+         <bool>false</bool>
+        </property>
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Preferred" hsizetype="MinimumExpanding" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="styleSheet" >
+         <string notr="true" >QGroupBox {
+       font: bold 12px;
+}</string>
+        </property>
+        <property name="title" >
+         <string>Contact authorization rule</string>
+        </property>
+        <property name="alignment" >
+         <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+        </property>
+        <layout class="QGridLayout" name="gridLayout_5" >
+         <item row="2" column="0" >
+          <widget class="QRadioButton" name="askRadioButton" >
+           <property name="styleSheet" >
+            <string notr="true" >QRadioButton {
+       font: bold 16px;
+
+       min-height: 48px;
+}</string>
+           </property>
+           <property name="text" >
+            <string>Ask</string>
+           </property>
+           <property name="checked" >
+            <bool>true</bool>
+           </property>
+          </widget>
+         </item>
+         <item row="6" column="0" >
+          <widget class="QRadioButton" name="denyRadioButton" >
+           <property name="styleSheet" >
+            <string notr="true" >QRadioButton {
+       font: bold 16px;
+       min-height: 48px;
+}</string>
+           </property>
+           <property name="text" >
+            <string>Always deny</string>
+           </property>
+          </widget>
+         </item>
+         <item row="4" column="0" >
+          <widget class="QRadioButton" name="acceptRadioButton" >
+           <property name="styleSheet" >
+            <string notr="true" >QRadioButton {
+       font: bold 16px;
+       min-height: 48px;
+}</string>
+           </property>
+           <property name="text" >
+            <string>Always accept</string>
+           </property>
+          </widget>
+         </item>
+         <item row="3" column="0" >
+          <spacer name="verticalSpacer_7" >
+           <property name="orientation" >
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" stdset="0" >
+            <size>
+             <width>20</width>
+             <height>40</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item row="5" column="0" >
+          <spacer name="verticalSpacer_8" >
+           <property name="orientation" >
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" stdset="0" >
+            <size>
+             <width>20</width>
+             <height>40</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item row="1" column="0" >
+          <spacer name="verticalSpacer_6" >
+           <property name="orientation" >
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" stdset="0" >
+            <size>
+             <width>20</width>
+             <height>40</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item row="7" column="0" >
+          <spacer name="verticalSpacer_9" >
+           <property name="orientation" >
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" stdset="0" >
+            <size>
+             <width>20</width>
+             <height>40</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </widget>
+      </item>
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout_3" >
+        <item>
+         <spacer name="verticalSpacer_1" >
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0" >
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QPushButton" name="okButton" >
+          <property name="styleSheet" >
+           <string notr="true" >QPushButton {
+                       font: bold 16px;
+               border-radius: 5px;
+                       min-height: 80px;
+                       min-width: 80px;
+                       max-height: 80px;
+                       max-width: 80px;
+}</string>
+          </property>
+          <property name="text" >
+           <string>Ok</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/TocUi/TocMainToolbar.cpp b/src/TocUi/TocMainToolbar.cpp
new file mode 100644 (file)
index 0000000..e8c87ca
--- /dev/null
@@ -0,0 +1,980 @@
+/** \file TocMainToolbar.cpp
+ * \brief Implementation of TocMainToolbar class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+#include "TocMainToolbar"
+#include "macros.h"
+#include <QPushButton> 
+#include <QHBoxLayout>
+#include <QMenu>
+#include <QLabel>
+#include <QEvent>
+#include <QDebug>
+#include <QThread>
+
+
+TocMainToolbar::TocMainToolbar(QWidget * parent, Qt::WindowFlags flags)
+       : QWidget(parent, flags) {
+       
+       setObjectName("mainToolbar");
+       QHBoxLayout* horizontalLayout = new QHBoxLayout( this );
+       horizontalLayout->setSpacing( 0 );
+       setContentsMargins( -10, -10, -10, -10 );
+
+       statusButton = new QPushButton( QIcon(":/offline.png"), "", this );
+       statusButton->setObjectName("statusButton");
+       statusButton->setIconSize( QSize( 72, 72 ) );
+       horizontalLayout->addWidget( statusButton );
+       statusMenu = new QMenu( this );
+       statusMenu->setObjectName("statusMenu");
+       onlineAction = statusMenu->addAction( QIcon(":/online.png"), tr("Online") );
+       onlineAction->setData( QVariant::fromValue( Available ) );
+       awayAction = statusMenu->addAction( QIcon(":/away.png"), tr("Away") );
+       awayAction->setData( QVariant::fromValue( Away ) );
+       busyAction = statusMenu->addAction( QIcon(":/busy.png"), tr("Do not Disturb") );
+       busyAction->setData( QVariant::fromValue( Busy ) );
+       hiddenAction = statusMenu->addAction( QIcon(":/hidden.png"), tr("Hidden") );
+       hiddenAction->setData( QVariant::fromValue( Hidden ) );
+       offlineAction = statusMenu->addAction( QIcon(":/offline.png"), tr("Offline") );
+       offlineAction->setData( QVariant::fromValue( Offline ) );
+       statusButton->setMenu( statusMenu );
+       CONNECT( statusMenu, SIGNAL(triggered(QAction*)), this, SLOT(onTriggeredPresence(QAction*)) );
+
+       statusAreaLabel = new QLabel( this );
+       statusAreaLabel->setObjectName("statusAreaLabel");
+       statusAreaLabel->setWordWrap( true );
+       statusAreaLabel->setProperty("checked", false);
+       statusAreaLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
+       horizontalLayout->addWidget( statusAreaLabel );
+
+       statusAreaButton = new QPushButton( this );
+       statusAreaButton->setObjectName("statusAreaButton");
+       statusAreaButton->setEnabled( false );
+       statusAreaButton->setCheckable( true );
+       horizontalLayout->addWidget( statusAreaButton );
+
+       activeSessionsButton = new QPushButton( QIcon(":/activesessions.png"), "", this );
+       activeSessionsButton->setObjectName("activeSessionsButton");
+       activeSessionsButton->setIconSize( QSize( 72, 72 ) );
+       activeSessionsButton->setEnabled(false);
+       horizontalLayout->addWidget( activeSessionsButton );
+       
+
+       _pActiveSessions = new ActiveSessions(this);
+       
+       activeSessionsButton->setMenu( _pActiveSessions->menu() );
+       activeSessionsButton->setObjectName("activeSessionsButton");
+       
+       settingsButton = new QPushButton( QIcon(":/settings.png"), "", this );
+       settingsButton->setObjectName("settingsButton");
+       settingsButton->setIconSize( QSize( 72, 72 ) );
+       settingsButton->setCheckable( true );
+       horizontalLayout->addWidget( settingsButton );
+       CONNECT( settingsButton, SIGNAL(clicked()), this, SLOT(onSettingsClicked()) );
+
+       contactsButton = new QPushButton( QIcon(":/contacts.png"), "", this );
+       contactsButton->setObjectName("contactsButton");
+       contactsButton->setIconSize( QSize( 72, 72 ) );
+       contactsButton->setCheckable( true );
+
+       horizontalLayout->addWidget( contactsButton );
+       CONNECT( contactsButton, SIGNAL(clicked()), this, SLOT(onContactsClicked()) );
+       highlightButton(contactsButton);
+
+       setupStyles();
+}
+
+TocMainToolbar::~TocMainToolbar() {
+}
+
+void TocMainToolbar::highlightButton(const QPushButton* button) {
+       
+       contactsButton->setChecked(button == contactsButton);
+       settingsButton->setChecked(button == settingsButton);
+       statusAreaButton->setChecked(button == statusAreaButton);
+       statusAreaLabel->setEnabled(button == statusAreaButton);
+}
+
+void TocMainToolbar::restoreCurrentSession() {
+       
+       if( QAction* action = _pActiveSessions->disabledAction() ) {
+               
+               highlightButton(statusAreaButton);
+               
+               emit activeSessionTriggered( action->data().toString(), action->text() );
+               
+               statusAreaButton->setIcon( QIcon(":/close.png"));
+               
+               disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(restoreCurrentSession()) );
+               disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(closeCurrentSession()) );
+               CONNECT( statusAreaButton, SIGNAL(clicked()), this, SLOT(closeCurrentSession()) );
+       }
+}
+
+void TocMainToolbar::closeCurrentSession() {
+       qDebug() << __PRETTY_FUNCTION__;
+       
+       QAction* pAction = _pActiveSessions->disabledAction();
+       
+       if( pAction ) {
+       
+               QAction *pNewCurrentAction = _pActiveSessions->closeCurrentSession();
+       
+               if( pNewCurrentAction ) {
+               
+                       statusAreaButton->setChecked(true);
+                       statusAreaLabel->setText( pNewCurrentAction->text() );
+               
+                       emit activeSessionTriggered( pNewCurrentAction->data().toString(), pNewCurrentAction->text() );
+       
+               } else {
+               
+                       activeSessionsButton->setEnabled(false);
+                       statusAreaLabel->setText("");
+                       statusAreaButton->setIcon( QIcon() );
+                       statusAreaButton->setEnabled( false );
+                       disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(closeCurrentSession()) );
+                       highlightButton(contactsButton);
+                       emit contactsClicked();
+               }
+               
+               emit finishedSession( pAction->data().toString() );
+       }
+               
+}
+
+void TocMainToolbar::closeAllSessions() {
+       
+       activeSessionsButton->setEnabled(false);
+               
+       _pActiveSessions->clear();
+       
+       statusAreaLabel->setText("");
+       
+       statusAreaButton->setIcon( QIcon() );
+       statusAreaButton->setEnabled( false );
+       
+       disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(restoreCurrentSession()) );
+       disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(closeCurrentSession()) );
+       
+       emit finishedAllSessions();
+       
+       highlightButton(contactsButton);
+       
+       emit contactsClicked();
+}
+
+void TocMainToolbar::clearAllSessions() {
+
+       activeSessionsButton->setEnabled(false);
+       _pActiveSessions->clear();
+
+       statusAreaLabel->setText("");
+       statusAreaButton->setIcon( QIcon() );
+       statusAreaButton->setEnabled( false );
+       
+       disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(restoreCurrentSession()) );
+       disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(closeCurrentSession()) );   
+}
+
+
+void TocMainToolbar::onTriggeredPresence(QAction* action) {
+       
+       emit presenceUpdate( action->data().value<Presence>(), "opisik" );
+}
+
+void TocMainToolbar::onPresenceUpdate(Presence presence, const QString& description) {
+       
+       Q_UNUSED(description);
+       
+       if( presence == onlineAction->data().value<Presence>() )
+               statusButton->setIcon( onlineAction->icon() );
+       
+       else if( presence == awayAction->data().value<Presence>() )
+               statusButton->setIcon( awayAction->icon() );
+       
+       else if( presence == busyAction->data().value<Presence>() )
+               statusButton->setIcon( busyAction->icon() );
+       
+       else if( presence == hiddenAction->data().value<Presence>() )
+               statusButton->setIcon( hiddenAction->icon() );
+       
+       else if( presence == offlineAction->data().value<Presence>() )
+               statusButton->setIcon( offlineAction->icon() );
+}
+
+void TocMainToolbar::onContactPresenceUpdate(const QString& uid, Presence presence) {
+       
+       _pActiveSessions->onContactPresenceUpdate(uid, presence);
+
+}
+
+void TocMainToolbar::onNewMessage(const QString& uid, const QString& name, Presence presence) {
+       
+       qDebug()<<__PRETTY_FUNCTION__;
+       
+       if( QAction* pAction = _pActiveSessions->action( uid ) ) {
+               
+               if( pAction != _pActiveSessions->disabledAction() ) {
+
+                       activeSessionsButton->setChecked( true );
+                       //TODO: activeSessionsButton->startBlinking()
+                       
+               } else {
+                       
+                       if( statusAreaButton->icon().cacheKey() == QIcon( ":/restore.png" ).cacheKey() )//
+                               statusAreaButton->setChecked( true );
+               }
+               
+       } else {
+               
+               activeSessionsButton->setEnabled(true);
+               //TODO: activeSessionsButton->startBlinking()
+       }
+       
+       _pActiveSessions->onNewMessage( uid, name, presence );
+}
+
+void TocMainToolbar::onNewSession(const QString& uid, const QString& name, Presence presence) {
+
+       qDebug()<<__PRETTY_FUNCTION__;
+       
+       highlightButton(statusAreaButton);
+
+       QAction* pDisabledAction = _pActiveSessions->disabledAction(); 
+       
+       if( QAction* pAction = _pActiveSessions->action( uid ) ) {
+               if( pAction != pDisabledAction ) {
+
+                       statusAreaLabel->setText( pAction->text() );
+                       statusAreaButton->setIcon( QIcon(":/close.png"));
+                       statusAreaButton->setEnabled( true );
+                       
+                       disconnect( statusAreaButton, SIGNAL(clicked()), 
+                                                                       this, SLOT(restoreCurrentSession()) );
+                       disconnect( statusAreaButton, SIGNAL(clicked()),
+                                                                       this, SLOT(closeCurrentSession()) );
+                       CONNECT( statusAreaButton, SIGNAL(clicked()),
+                                                                       this, SLOT(closeCurrentSession()) );
+
+               } else {
+
+                       statusAreaButton->setIcon( QIcon(":/close.png"));
+                       
+                       disconnect( statusAreaButton, SIGNAL(clicked()),
+                                                                       this, SLOT(restoreCurrentSession()) );
+                       disconnect( statusAreaButton, SIGNAL(clicked()),
+                                                                       this, SLOT(closeCurrentSession()) );
+                       CONNECT( statusAreaButton, SIGNAL(clicked()),
+                                                                       this, SLOT(closeCurrentSession()) );
+               }
+               
+       } else {
+
+               statusAreaLabel->setText( name );
+               
+               statusAreaButton->setIcon( QIcon(":/close.png"));
+               statusAreaButton->setEnabled( true );
+               activeSessionsButton->setEnabled(true);
+               
+               disconnect( statusAreaButton, SIGNAL(clicked()),
+                                                               this, SLOT(restoreCurrentSession()) );
+               disconnect( statusAreaButton, SIGNAL(clicked()),
+                                                               this, SLOT(closeCurrentSession()) );
+               CONNECT( statusAreaButton, SIGNAL(clicked()),
+                                                               this, SLOT(closeCurrentSession()) );
+       }
+       
+       _pActiveSessions->onNewSession( uid, name, presence );
+       
+}
+
+void TocMainToolbar::onCurrentView(ViewType viewType, const QString& text) {
+       
+       if( QAction* pAction = _pActiveSessions->disabledAction() ) { // If there is an active window
+               
+               if( viewType == Contacts ) {
+                       
+                       statusAreaButton->setIcon( QIcon(":/restore.png") );
+                       disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(restoreCurrentSession()) );
+                       disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(closeCurrentSession()) );
+                       CONNECT( statusAreaButton, SIGNAL(clicked()), this, SLOT(restoreCurrentSession()) );
+                       highlightButton(contactsButton);
+                       
+               } else {
+                       pAction->setEnabled( true );
+                       statusAreaLabel->setText( text );
+                       statusAreaButton->setIcon( QIcon() );
+                       statusAreaButton->setEnabled( false );
+                       disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(restoreCurrentSession()) );
+                       disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(closeCurrentSession()) );
+                       // Deselect highlight from all buttons but leave settingsButton as is (highlighted or not)
+                       contactsButton->setChecked(false);
+                       contactsButton->setChecked(false);
+                       statusAreaButton->setChecked(false);
+                       statusAreaLabel->setEnabled(false);
+               }
+       } else if( viewType == Contacts ) {
+               highlightButton(contactsButton);
+               statusAreaLabel->setText( text );       
+       }
+       else { // If there is no conversation at that time and the viewType != contacts
+               statusAreaLabel->setText( text );
+               statusAreaButton->setIcon( QIcon() );
+               statusAreaButton->setEnabled( false );
+               disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(restoreCurrentSession()) );
+               disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(closeCurrentSession()) );
+               // Deselect highlight from all buttons but leave settingsButton as is (highlighted or not)
+               contactsButton->setChecked(false);
+               contactsButton->setChecked(false);
+               statusAreaButton->setChecked(false);
+               statusAreaLabel->setEnabled(false);
+       }
+}
+
+void TocMainToolbar::onDisplayedNameChange(const QString& uid, const QString& name) {
+       
+       if( QAction* pAction = _pActiveSessions->action( uid ) )
+               pAction->setText( name );
+}
+
+void TocMainToolbar::onContactsClicked() {
+       
+       highlightButton(contactsButton);
+
+       if( _pActiveSessions->disabledAction() ) {
+               
+               statusAreaButton->setIcon( QIcon(":/restore.png") );
+               disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(restoreCurrentSession()) );
+               disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(closeCurrentSession()) );
+               CONNECT( statusAreaButton, SIGNAL(clicked()), this, SLOT(restoreCurrentSession()) );
+               
+       } else {
+               
+               statusAreaLabel->setText("");
+               statusAreaButton->setIcon( QIcon() );
+               statusAreaButton->setEnabled( false );
+       }
+
+       emit contactsClicked();
+}
+
+void TocMainToolbar::onSettingsClicked() {
+       
+       highlightButton(settingsButton);
+
+       if( QAction* pAction = _pActiveSessions->disabledAction() ) {
+               
+               pAction->setEnabled( true );
+               
+               disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(restoreCurrentSession()) );
+               disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(closeCurrentSession()) );           
+       }
+
+       statusAreaLabel->setText( tr("Settings") );
+       statusAreaButton->setIcon( QIcon() );
+       statusAreaButton->setEnabled( false );
+
+       emit settingsClicked();
+}
+
+void TocMainToolbar::onActiveSessionTriggered(QAction* pAction)
+{
+       if(pAction->text() == "")
+               return;
+
+       if( QAction* pDisabledAction = _pActiveSessions->disabledAction() )
+               pDisabledAction->setEnabled( true );
+       
+       pAction->setChecked( false );
+       pAction->setEnabled( false );
+       
+       statusAreaLabel->setText( pAction->text() );
+       statusAreaButton->setIcon( QIcon(":/close.png"));
+       statusAreaButton->setEnabled( true );
+       
+       disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(restoreCurrentSession()) );
+       disconnect( statusAreaButton, SIGNAL(clicked()), this, SLOT(closeCurrentSession()) );
+       CONNECT( statusAreaButton, SIGNAL(clicked()), this, SLOT(closeCurrentSession()) );
+       
+       highlightButton(statusAreaButton);
+       
+       emit activeSessionTriggered( pAction->data().toString(), pAction->text() );     
+}
+
+
+void TocMainToolbar::setupStyles() {
+
+       statusButton->setStyleSheet(
+                       "QPushButton {\
+    border: none;\
+       min-height: 80px;\
+       min-width: 100px;\
+       max-height: 80px;\
+       max-width: 100px;\
+ }"
+       );
+
+       statusAreaLabel->setStyleSheet(" QLabel {\
+       font: bold 20px; \
+       border: none;\
+       border-radius: 0px;\
+       min-height: 80px;\
+       min-width: 100px;\
+       max-height: 80px;\
+ }");
+       
+       statusAreaButton->setStyleSheet(" QPushButton {\
+    border: none;\
+       border-radius: 0px;\
+       min-height: 80px;\
+       min-width: 80px;\
+       max-height: 80px;\
+       max-width: 80px;\
+ }");
+
+       activeSessionsButton->setStyleSheet(" QPushButton {\
+    border: none;\
+       min-height: 80px;\
+       min-width: 100px;\
+       max-height: 80px;\
+       max-width: 100px;"
+"}"
+       " QPushButton:checked {\
+                       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,\
+                                               stop: 0 #999900, stop: 0.55 #aaaa00,\
+                                                           stop: 0.56 #bbbb00, stop: 1 #ffff00);}"
+       );
+
+       settingsButton->setStyleSheet(" QPushButton {\
+    border: none;\
+       min-height: 80px;\
+       min-width: 100px;\
+       max-height: 80px;\
+       max-width: 100px;\
+ }"
+       );
+
+       contactsButton->setStyleSheet(" QPushButton {\
+    border: none;\
+       min-height: 80px;\
+       min-width: 100px;\
+       max-height: 80px;\
+       max-width: 100px;\
+ }"
+       );
+
+       statusMenu->setStyleSheet("QMenu {\
+                       margin-left: 0px;\
+                       margin-top: 0px;\
+                       margin-right: 0px;\
+                       margin-bottom: 0px;\
+               font: bold 16px; \
+ }\
+ QMenu::item {\
+                       margin-left: 0px;\
+                       margin-top: 0px;\
+                       margin-right: 0px;\
+                       margin-bottom: 0px;\
+                       padding: 0px 10px 0px 40px;\
+                       min-height: 68px;\
+                       min-width: 80px;\
+                       max-height: 68px;\
+                       border-radius: 5px;\
+ }"
+       );
+
+       setStyleSheet(
+               "QMenu {\
+                       margin-left: 0px;\
+                       margin-top: 0px;\
+                       margin-right: 0px;\
+                       margin-bottom: 0px;"
+               "       color: none; "
+               "       font: bold 16px; "
+               "       min-width: 180px; "
+               "}\
+\
+               QMenu::item {\
+                       margin-left: 0px;\
+                       margin-top: 0px;\
+                       margin-right: 0px;\
+                       margin-bottom: 0px;\
+                       padding: 0px 10px 0px 20px;\
+                       min-height: 68px;\
+                       min-width: 180px;\
+                       max-height: 68px;\
+                       border-radius: 5px;\
+               }\
+\
+QMenu::item:checked {\
+                       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,\
+                                       stop: 0 #999900, stop: 0.55 #aaaa00,\
+                                                  stop: 0.56 #bbbb00, stop: 1 #ffff00);}\
+ QMenu::item:disabled {\
+                       background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,\
+                                       stop: 0 #999, stop: 0.55 #aaa,\
+                                       stop: 0.56 #bbb, stop: 1 #fff);}\
+ QMenu::separator {\
+             height: 10px;\
+             margin-left: 5px;\
+             margin-right: 5px;\
+         }"
+       );
+
+       _pActiveSessions->setStyleSheet(
+               "QPushButton {"
+                       "font: bold 16px;"
+                       "border: none;"
+                       "border-radius: 5px;"
+                       "min-height: 60px;"
+                       "min-width: 100px;"
+                       "max-height: 60px;"
+                       "max-width: 100px;"
+               "}"
+       );      
+       
+       
+}
+
+
+//--------------------------------------------------------
+//ActiveStatusesMenu
+//--------------------------------------------------------
+
+ActiveSessions::ActiveSessions(QWidget * parent):
+       QWidget(parent),
+       _visibleActionsAllowed(3),
+       _firstVisibleAction(0),
+       _lastVisibleAction(0)
+{
+       _pActiveSessionsMenu = new QMenu( this );
+       _pActiveSessionsMenu->setObjectName("activeSessionsMenu");
+
+       _pSeparatorAction = new QAction(this);
+       _pSeparatorAction->setSeparator(true);
+
+       _pCloseAllSessionsAction = new QAction( QIcon(":/close.png"), tr("Close all"), this );
+       
+       CONNECT( _pCloseAllSessionsAction, SIGNAL(triggered()), parent, SLOT(closeAllSessions()) );
+       CONNECT( _pActiveSessionsMenu, SIGNAL(triggered(QAction*)), parent, SLOT(onActiveSessionTriggered(QAction*)) );
+       
+       _pScrollAction = new QWidgetAction(this);
+       _pScrollWidget = new ScrollWidget(this);
+       _pScrollAction->setDefaultWidget( _pScrollWidget );
+       
+       CONNECT( _pScrollWidget->scrollUpButton(), SIGNAL(clicked()), this, SLOT(scrollUp()) );
+       CONNECT( _pScrollWidget->scrollDownButton(), SIGNAL(clicked()), this, SLOT(scrollDown()) );
+}
+
+
+QAction* ActiveSessions::closeCurrentSession() {
+
+       qDebug()<<__PRETTY_FUNCTION__;
+       
+       QAction* pAction = disabledAction();
+       
+       if( pAction ) 
+       {
+               removeAction( pAction );
+                               
+               QAction* pNewCurrentAction = 0;
+
+               
+               if( _actionsList.count() > 0 ) 
+               {
+                       pNewCurrentAction = _actionsList.last();
+                       pNewCurrentAction->setEnabled( false );
+               }
+               
+               if( _actionsList.size() == 1 ) 
+               {
+                       _pActiveSessionsMenu->removeAction( _pCloseAllSessionsAction );
+                       _pActiveSessionsMenu->removeAction( _pSeparatorAction );
+               }
+
+               return pNewCurrentAction;
+       }
+       else 
+               return 0;
+}
+
+
+void ActiveSessions::clear() {
+               
+       _pActiveSessionsMenu->clear();
+       _actionsList.clear();
+} 
+
+QList<QAction*> ActiveSessions::actions() const {
+       
+       return _pActiveSessionsMenu->actions();
+}
+
+QAction* ActiveSessions::disabledAction() const {
+               
+       foreach( QAction* pAction, _actionsList ) {
+       
+               if( !pAction->isEnabled() )
+                       return pAction;
+       }
+       return 0;
+}
+
+QAction* ActiveSessions::action( const QString& uid ) const {
+       
+       if(uid.isEmpty()) return 0;
+       
+       QList<QAction*> actionsList = _pActiveSessionsMenu->actions();
+       
+       foreach( QAction* pAction, actionsList ) {
+               
+               if( pAction->data().toString() == uid )
+                       return pAction;
+       }
+       return 0;
+}
+
+void ActiveSessions::onContactPresenceUpdate(const QString& uid, Presence presence) {
+       
+       if( QAction* pAction = action( uid ) ) {
+               
+               switch( presence ) {
+               
+                       case Available:
+                               pAction->setIcon( QIcon(":/online.png") );
+                               break;
+                       case XA:
+                       case Away:
+                               pAction->setIcon( QIcon(":/away.png") );
+                               break;
+                       case Busy:
+                               pAction->setIcon( QIcon(":/busy.png") );
+                               break;
+                       case Hidden:
+                               pAction->setIcon( QIcon(":/hidden.png") );
+                               break;
+                       case Offline:
+                               pAction->setIcon( QIcon(":/offline.png") );
+                               break;
+                       default:
+                               pAction->setIcon( QIcon() );
+               }
+       }
+}
+
+void ActiveSessions::onNewMessage(const QString& uid, const QString& name, Presence presence) {
+
+       //If such action already exists - set it checked
+       if( QAction* pAction = action( uid ) ) {
+               
+               if( pAction != disabledAction() )
+                       pAction->setChecked( true );
+                                               
+       } else { //create a new one
+               
+               QIcon icon;
+
+               switch( presence ) {
+               
+                       case Available:
+                               icon = QIcon(":/online.png");
+                               break;
+                       case XA:
+                       case Away:
+                               icon = QIcon(":/away.png");
+                               break;
+                       case Busy:
+                               icon = QIcon(":/busy.png");
+                               break;
+                       case Hidden:
+                               icon = QIcon(":/hidden.png");
+                               break;
+                       case Offline:
+                               icon = QIcon(":/offline.png");
+                               break;
+               }
+
+               pAction = new QAction( icon, name, this );
+               pAction->setData( QVariant::fromValue( uid ) );
+               pAction->setCheckable( true );
+               pAction->setChecked( true );
+               
+               addAction( pAction );
+
+               
+               if( _pActiveSessionsMenu->actions().count() == 2) {
+
+                       _pActiveSessionsMenu->addAction( _pSeparatorAction );
+                       _pActiveSessionsMenu->addAction( _pCloseAllSessionsAction );
+               }
+       }
+
+}
+       
+void ActiveSessions::onNewSession(const QString& uid, const QString& name, Presence presence) {
+
+       QAction* pDisabledAction = disabledAction(); 
+       
+       if( QAction* pAction = action( uid ) ) {
+
+               if( pAction != pDisabledAction ) {
+
+                       if(pDisabledAction)
+                               pDisabledAction->setEnabled( true );
+                       
+                       pAction->setChecked( false );
+                       pAction->setEnabled( false );
+               }
+
+       } else {
+
+               QIcon icon;
+               switch( presence ) {
+                       
+                       case Available:
+                               icon = QIcon(":/online.png");
+                               break;
+                       case XA:
+                       case Away:
+                               icon = QIcon(":/away.png");
+                               break;
+                       case Busy:
+                               icon = QIcon(":/busy.png");
+                               break;
+                       case Hidden:
+                               icon = QIcon(":/hidden.png");
+                               break;
+                       case Offline:
+                               icon = QIcon(":/offline.png");
+                               break;
+                       default: 
+                               icon = QIcon(":/offline.png");
+               }
+               
+               if( pDisabledAction )
+                       pDisabledAction->setEnabled( true );
+               
+               pAction = new QAction( icon, name, this );
+               pAction->setData( QVariant::fromValue( uid ) );
+               pAction->setCheckable( true );
+               pAction->setEnabled( false );
+               
+               addAction( pAction );
+
+               _pActiveSessionsMenu->setEnabled(true);
+               
+
+               if( _pActiveSessionsMenu->actions().count() == 2) {
+                       
+                       _pActiveSessionsMenu->addAction( _pSeparatorAction );
+                       _pActiveSessionsMenu->addAction( _pCloseAllSessionsAction );
+               }
+
+       }       
+}
+
+void ActiveSessions::addAction(QAction *pAction) {
+               
+       QList<QAction*> currentlyVisibleActions = _pActiveSessionsMenu->actions();
+       
+       if( currentlyVisibleActions.count( _pScrollAction ) )
+               _pActiveSessionsMenu->insertAction( _pScrollAction, pAction );
+
+       else if( currentlyVisibleActions.count( _pSeparatorAction ) )
+               _pActiveSessionsMenu->insertAction( _pSeparatorAction, pAction );
+       else
+               _pActiveSessionsMenu->addAction( pAction );
+       
+       _actionsList.append(pAction);
+       
+       //set iterators
+       _lastVisibleAction = _actionsList.end() - 1;
+
+       if( _actionsList.size() > _visibleActionsAllowed )
+               _firstVisibleAction = _actionsList.end() - _visibleActionsAllowed;
+       else
+               _firstVisibleAction = _actionsList.begin();
+
+       
+       if( _actionsList.size() > _visibleActionsAllowed )
+       {
+               //add scroll action
+               _pActiveSessionsMenu->insertAction( _pSeparatorAction, _pScrollAction );        
+               
+               //remove one action from top to keep constant menu size
+               if( _actionsList.size() > _visibleActionsAllowed )
+               {
+                       QAction *pRemoveMe = *( _firstVisibleAction - 1 );
+                       if(pRemoveMe)
+                               _pActiveSessionsMenu->removeAction( pRemoveMe );
+               }
+               
+               checkScrollButtonsState();
+       }
+
+}
+
+void ActiveSessions::removeAction(QAction *pAction) {
+               
+       _actionsList.removeOne(pAction);
+               
+       _lastVisibleAction = _actionsList.end() - 1;
+       
+       //Reset iterators
+       if( _actionsList.size() > _visibleActionsAllowed )
+               _firstVisibleAction = _actionsList.end() - _visibleActionsAllowed;
+       else
+               _firstVisibleAction = _actionsList.begin();
+
+       //Remove all stuff above _pScrollAction or _pSeparatorAction
+       QList<QAction*> visibleItems = _pActiveSessionsMenu->actions();
+       QList<QAction*>::iterator it = visibleItems.begin();
+
+       while( it != visibleItems.end() )
+       {
+               if( *it == _pScrollAction || *it == _pSeparatorAction) break;
+                       
+               _pActiveSessionsMenu->removeAction((*it));
+               
+               ++it;
+       }
+       
+       //...and add it back again
+       it = _firstVisibleAction;
+       
+       while( it != (_lastVisibleAction + 1) )
+       {
+               if( visibleItems.count( _pScrollAction ) )
+                       _pActiveSessionsMenu->insertAction( _pScrollAction, *it );
+
+               else if( visibleItems.count( _pSeparatorAction ) )
+                       _pActiveSessionsMenu->insertAction( _pSeparatorAction, *it );
+               else
+                       _pActiveSessionsMenu->addAction( *it );         
+                       
+               ++it;
+       }
+       
+       if( _actionsList.count() <= _visibleActionsAllowed  && _pScrollAction->isVisible())
+               _pActiveSessionsMenu->removeAction( _pScrollAction );
+
+       
+       if( _actionsList.isEmpty() ) return;
+
+       //Reset visible actions
+       QList<QAction*> visibleActions = _pActiveSessionsMenu->actions();
+       QAction *pFirstVisible = visibleActions[0];
+
+
+       _firstVisibleAction = _actionsList.begin() + _actionsList.indexOf(pFirstVisible);
+       
+       if(_actionsList.count() >= _visibleActionsAllowed )
+               _lastVisibleAction = _firstVisibleAction + _visibleActionsAllowed - 1;
+       else
+               _lastVisibleAction = _firstVisibleAction + _actionsList.size() - 1;
+       
+       checkScrollButtonsState();
+}
+
+
+void ActiveSessions::scrollDown() {
+       
+       //Is there something below?
+       if( _lastVisibleAction == (_actionsList.end() - 1) ) return;
+
+       _pActiveSessionsMenu->removeAction( *_firstVisibleAction );
+       
+       //Add an item from the bottom
+       if( _pScrollAction->isVisible() )
+               _pActiveSessionsMenu->insertAction( _pScrollAction, *(_lastVisibleAction + 1) );
+       else
+               _pActiveSessionsMenu->addAction( *(_lastVisibleAction + 1) );
+       
+       //adjust iterators
+       ++_firstVisibleAction;
+       ++_lastVisibleAction;
+       
+       checkScrollButtonsState();
+}
+
+void ActiveSessions::scrollUp() {
+       
+       //Is there something above?
+       if( _firstVisibleAction == _actionsList.begin() ) return;
+
+       //Add an item from the top
+       _pActiveSessionsMenu->insertAction(*_firstVisibleAction, *(_firstVisibleAction - 1) );
+       
+       //Hide an item from the bottom
+       _pActiveSessionsMenu->removeAction( *_lastVisibleAction );
+       
+       //adjust iterators
+       --_firstVisibleAction;
+       --_lastVisibleAction;
+       
+       checkScrollButtonsState();
+}
+
+void ActiveSessions::checkScrollButtonsState() {
+       
+       if( _firstVisibleAction != _actionsList.begin() )
+               _pScrollWidget->scrollUpButton()->setEnabled( true );
+       else
+               _pScrollWidget->scrollUpButton()->setEnabled( false );
+       
+       
+       if( _lastVisibleAction != _actionsList.end() - 1)
+               _pScrollWidget->scrollDownButton()->setEnabled( true );
+       else
+               _pScrollWidget->scrollDownButton()->setEnabled( false );
+}
+
+//--------------------------------------------------------
+//     ScrollWidget
+//--------------------------------------------------------
+ScrollWidget::ScrollWidget(QWidget* parent):
+       QWidget(parent)
+{
+       setObjectName("scrollWidget");
+       setContentsMargins( -10, -10, -10, -10 );
+
+       _pLayout = new QHBoxLayout(this);
+       _pLayout->setSpacing(0);
+       _pScrollUpButton = new QPushButton(tr("up"), this);
+       _pScrollUpButton->setObjectName("scrollUpButton");
+       _pScrollDownButton = new QPushButton(tr("down"), this);
+       _pScrollDownButton->setObjectName("scrollDownButton");
+               
+       _pLayout->addWidget(_pScrollUpButton);
+       _pLayout->addWidget(_pScrollDownButton);
+       
+       show();
+}
diff --git a/src/TocUi/TocMainWindow.cpp b/src/TocUi/TocMainWindow.cpp
new file mode 100644 (file)
index 0000000..b2935e0
--- /dev/null
@@ -0,0 +1,613 @@
+/** \file TocMainWindow.cpp
+ * \brief Implementation of TocMainWindow class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#include "TocMainWindow"
+
+#include "TocMainToolbar"
+#include "TocContactListWidget"
+#include "TocChatWidget"
+#include "TocUserInfoWidget"
+#include "TocSettingsWidget"
+#include "TocGeneralSettingsWidget"
+#include "TocAccountSettingsWidget"
+#include "TocAccountIntermediateWidget"
+#include "TocThemesSettingsWidget"
+#include "TocSettings"
+#include "macros.h"
+#include "version.h"
+
+#include <QStackedLayout>
+#include <QList>
+#include <QDebug>
+#include <QMessageBox>
+#include <QMenuBar>
+#include <QFile>
+#include <QCloseEvent>
+
+
+Q_DECLARE_METATYPE(TocContact*);
+
+TocMainWindow::TocMainWindow(TocBaseEngine* engine, QWidget * parent, Qt::WindowFlags flags) :
+       TocBaseMainWindow(engine, parent, flags), _register(false) {
+       
+       setWindowTitle("Tieto Open Communicator");
+       setContentsMargins( -20, 0, -20, -5 );
+       _pCentralWidget = new QWidget( this );
+       _pCentralWidget->setObjectName("_pCentralWidget");
+
+       QAction* pAboutAct = new QAction(tr("About"), this);
+       pAboutAct->setStatusTip(tr("Show About info"));
+       CONNECT(pAboutAct, SIGNAL(triggered()), this, SLOT(showAbout()));
+
+       QAction* pExitAct = new QAction(tr("Exit"), this);
+       pExitAct->setStatusTip(tr("Close application"));
+       CONNECT(pExitAct, SIGNAL(triggered()), this, SLOT(close()));
+
+       menuBar()->addAction(pAboutAct);
+       menuBar()->addAction(pExitAct);
+
+       setCentralWidget( _pCentralWidget );
+       QVBoxLayout* verticalLayout = new QVBoxLayout( _pCentralWidget );
+       verticalLayout->setSpacing( 0 );
+
+       _pMainToolbar = new TocMainToolbar( _pCentralWidget );
+       CONNECT( _pMainToolbar, SIGNAL(contactsClicked()), this, SLOT(showContacts()) );
+       CONNECT( _pMainToolbar, SIGNAL(settingsClicked()), this, SLOT(showSettings()) );
+       CONNECT( _pMainToolbar, SIGNAL(finishedSession(const QString&)), this, SLOT(closeChat(const QString&)) );
+       CONNECT( _pMainToolbar, SIGNAL(finishedAllSessions()), this, SLOT(closeAllOpenChats()) );
+       CONNECT( _pMainToolbar, SIGNAL(activeSessionTriggered(QString,QString)), this, SLOT(showChat(QString,QString)) );
+       CONNECT( _pMainToolbar, SIGNAL(presenceUpdate(Presence,QString)), this, SIGNAL(presenceChanged(Presence,QString)) );
+
+       verticalLayout->addWidget( _pMainToolbar );
+       _pMainLayout = new QStackedLayout( verticalLayout );
+       _pMainLayout->setSpacing( 0 );
+
+       _pChatList = new QList<TocChatWidget*>();
+       _pOpenChatList = new QList<TocChatWidget*>();
+
+       _pSettingsWidget = new TocSettingsWidget( _pCentralWidget );
+       _pMainLayout->addWidget( _pSettingsWidget );
+       CONNECT(_pSettingsWidget, SIGNAL(triggered(int)), this, SLOT(showView(int)));
+
+       _pContactList = new TocContactListWidget( _pCentralWidget );
+       _pMainLayout->addWidget( _pContactList );
+
+       CONNECT( _pContactList, SIGNAL(triggered(QString,QString,Presence)), _pMainToolbar, SLOT(onNewSession(QString,QString,Presence)) );
+       CONNECT( _pContactList, SIGNAL(contactInfoRequest(QListWidgetItem*)), this, SLOT(showUserInfo(QListWidgetItem*)) );
+       CONNECT( _pContactList, SIGNAL(triggered(QString,QString,Presence)), this, SLOT(showChat(QString,QString,Presence)) );
+       CONNECT( _pContactList, SIGNAL(addContact(TocContact*)),
+                       this, SIGNAL(addContact(TocContact*)));
+       CONNECT( _pContactList, SIGNAL(removedContact(QString)),
+                       this, SIGNAL(removeContact(QString)));  
+       CONNECT( _pContactList, SIGNAL(editContact(TocContact*,QString)),
+                       this, SIGNAL(editContact(TocContact*,QString)));
+       CONNECT( _pContactList, SIGNAL(displayedNameChanged(QString,QString)),
+                       this, SLOT(onDisplayedNameChange(QString,QString)) );
+
+       _pUserInfoWidget = 0;
+       _pGeneralWidget = 0;
+       _pAccountWidget = 0;
+       _pIntermediateWidget = 0;
+       _pThemesWidget = 0;
+
+       if(isFtu())
+               showView( static_cast<int>( FTU ) );
+       else
+               _pMainLayout->setCurrentWidget( _pContactList );
+
+       setStyleSheet(
+//                     "TocMainToolbar > QPushButton { background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,"
+//                     "stop: 0 #aa0, stop: 0.55 #bb0, stop: 0.56 #bb0, stop: 1 #ff0); }"
+//                     "QPushButton#okButton { background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,"
+//                     "stop: 0 #0aa, stop: 0.55 #0bb, stop: 0.56 #0bb, stop: 1 #0ff); }"
+//                     "QPushButton#cancelButton { background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,"
+//                     "stop: 0 #0aa, stop: 0.55 #0bb, stop: 0.56 #0bb, stop: 1 #0ff); }"
+//                     "QPushButton#generalButton { background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,"
+//                     "stop: 0 #0aa, stop: 0.55 #0bb, stop: 0.56 #0bb, stop: 1 #0ff); }"
+//                     "QPushButton#themesButton { background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,"
+//                     "stop: 0 #0aa, stop: 0.55 #0bb, stop: 0.56 #0bb, stop: 1 #0ff); }"
+//                     "QPushButton#accountButton { background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,"
+//                     "stop: 0 #0aa, stop: 0.55 #0bb, stop: 0.56 #0bb, stop: 1 #0ff); }"
+//                     "QPushButton#networkButton { background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,"
+//                     "stop: 0 #0aa, stop: 0.55 #0bb, stop: 0.56 #0bb, stop: 1 #0ff); }"
+//                     "QPushButton#statusButton { background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,"
+//                     "stop: 0 #aaa, stop: 0.55 #bbb, stop: 0.56 #bbb, stop: 1 #fff); }"
+//                     "QPushButton#settingsButton { background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,"
+//                     "stop: 0 #0aa, stop: 0.55 #0bb, stop: 0.56 #0bb, stop: 1 #0ff); }"
+//                     "*[mandatoryField=\"true\"] {background-color: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,"
+//                     "stop: 0 #aa0, stop: 0.55 #bb0, stop: 0.56 #bb0, stop: 1 #ff0); }"
+
+                       "QMessageBox QPushButton {"
+                       "border: none;"
+                       "min-width: 80px;"
+                       "min-height: 40px;"
+                       "}"
+                       "QMenuBar {"
+                       "max-height: 0px;"
+                       "}"
+       );
+
+       _defaultStyle = styleSheet();
+       reloadTheme();
+}
+
+TocMainWindow::~TocMainWindow() {
+
+       delete _pChatList;
+       delete _pOpenChatList;
+}
+
+TocChatWidget* TocMainWindow::chatForUid(const QString& uid) {
+       foreach( TocChatWidget* chat, *_pChatList )
+               if ( chat->uid() == uid )
+                       return chat;
+       return 0;
+}
+
+TocChatWidget* TocMainWindow::openChatForUid(const QString& uid) {
+       foreach( TocChatWidget* chat, *_pOpenChatList )
+               if ( chat->uid() == uid )
+                       return chat;
+       return 0;
+}
+
+void TocMainWindow::onPresenceUpdate(Presence presence, QString desc) {
+       _pMainToolbar->onPresenceUpdate( presence, desc );
+       if( presence == Offline )
+               _pContactList->clearStatuses();
+}
+
+void TocMainWindow::onContactPresenceUpdate(QString uid, Presence presence, QString desc) {
+       if ( TocChatWidget* chat = openChatForUid( uid ) ) {
+               chat->onContactPresenceUpdate( presence, desc );
+               _pMainToolbar->onContactPresenceUpdate( uid, presence );
+       }       
+
+       _pContactList->onContactPresenceUpdate( uid, presence, desc );
+}
+
+void TocMainWindow::onIncomingMessage(QString uid, Message message) {
+
+       TocChatWidget* chat;
+       if ( chat = chatForUid( uid ) ) {
+               _pOpenChatList->append( chat );
+               chat->appendMessage( message );
+               QListWidgetItem* pItem = _pContactList->findItem( uid );
+               if( pItem ) {
+                       QString name = pItem->data( DisplayRole ).toString();
+                       TocContact *pContact = pItem->data(ContactRole).value<TocContact*>();
+                       _pMainToolbar->onNewMessage( uid, name, pContact->presence );
+               } else {
+                       _pMainToolbar->onNewMessage( uid, uid, static_cast<Presence>(0) );
+               }
+       } else {
+               QListWidgetItem* pItem = _pContactList->findItem( uid );
+               if( !pItem ) {
+                       chat = new TocChatWidget( uid, uid, static_cast<Presence>(0), _pCentralWidget, message );
+                       _pChatList->append( chat );
+                       _pOpenChatList->append( chat );
+                       _pMainLayout->addWidget( chat );
+                       _pMainToolbar->onNewMessage( uid, uid, static_cast<Presence>(0) );
+               } else {
+                       QString name = pItem->data( DisplayRole ).toString();
+                       TocContact *pContact = pItem->data(ContactRole).value<TocContact*>();
+                       chat = new TocChatWidget( uid, name, pContact->presence, _pCentralWidget, message );
+                       _pChatList->append( chat );
+                       _pOpenChatList->append( chat );
+                       _pMainLayout->addWidget( chat );
+                       _pMainToolbar->onNewMessage( uid, name, pContact->presence );
+               }
+               CONNECT(chat, SIGNAL(newMessageReady(QString,Message)), this, SIGNAL(newMessageReady(QString,Message)));
+       }
+}
+
+void TocMainWindow::closeChat(const QString& uid) {
+
+       if ( TocChatWidget* chat = openChatForUid( uid ) ) {
+               _pOpenChatList->removeOne( chat );
+               emit sessionClosed( uid );
+       }
+}
+
+void TocMainWindow::closeAllOpenChats() {
+
+       foreach( TocChatWidget* chat, *_pOpenChatList ) {
+               emit sessionClosed( chat->uid() );
+       }
+       _pOpenChatList->clear();
+}
+
+void TocMainWindow::clearAllChats() {
+
+       // First close open chats
+       closeAllOpenChats();
+
+       foreach( TocChatWidget* chat, *_pChatList ) {
+               _pMainLayout->removeWidget( chat );
+               delete chat;
+       }
+
+       _pChatList->clear();
+}
+
+void TocMainWindow::showChat(const QString& uid, const QString& name, Presence presence) {
+
+       if ( TocChatWidget* chat = chatForUid( uid ) ) {
+               if(!openChatForUid(uid)) {
+                       _pOpenChatList->append( chat );
+                       chat->updateContactPresence( presence );
+               }
+
+               _pMainLayout->setCurrentWidget( chat );
+       } else {
+               chat = new TocChatWidget( uid, name, presence, _pCentralWidget );
+               _pChatList->append( chat );
+               _pOpenChatList->append( chat );
+               _pMainLayout->addWidget( chat );
+               _pMainLayout->setCurrentWidget( chat );
+               CONNECT(chat, SIGNAL(newMessageReady(QString,Message)), this, SIGNAL(newMessageReady(QString,Message)));
+       }
+}
+
+void TocMainWindow::showContacts() {
+       _pMainLayout->setCurrentWidget( _pContactList );
+}
+
+void TocMainWindow::returnToContacts() {
+       _pMainLayout->setCurrentWidget( _pContactList );
+       _pMainToolbar->onCurrentView( Contacts );
+}
+
+void TocMainWindow::showSettings() {
+       _pMainLayout->setCurrentWidget( _pSettingsWidget );
+}
+
+void TocMainWindow::returnToSettings() {
+       _pMainLayout->setCurrentWidget( _pSettingsWidget );
+       _pMainToolbar->onCurrentView( Settings, tr("Settings") );
+}
+
+void TocMainWindow::reloadTheme() {
+       QString current = styleSheet();
+       QString theme;
+
+       TocSettings* pSettings = TocSettings::getInstance();
+
+       QFile file(pSettings->currentTheme());
+
+       file.open(QIODevice::ReadOnly | QIODevice::Text);
+       if (file.exists()) {
+               theme = file.readAll();
+               file.close();
+       } else
+               return;
+
+       if (theme + _defaultStyle != current) {
+               if (theme.isEmpty())
+                       setStyleSheet(_defaultStyle);
+               else
+                       setStyleSheet(theme + _defaultStyle);
+       }
+}
+
+void TocMainWindow::returnToIntermediate() {
+       if(isFtu())
+               showView( static_cast<int>( FTU ) );
+       else
+               showView( static_cast<int>( AccountIntermediate ) );
+}
+
+void TocMainWindow::showAccount() {
+       showView( static_cast<int>( Account ) );
+}
+
+void TocMainWindow::showAccountCreate() {
+       showView( static_cast<int>( AccountCreate ) );
+}
+
+void TocMainWindow::showView(int type) {
+       ViewType viewType = static_cast<ViewType>( type );
+
+       switch( viewType ) {
+
+       case Contacts:
+               showContacts();
+               _pMainToolbar->onCurrentView( Contacts );
+               break;
+
+       case Chat:
+               /* Do nothing */
+               break;
+
+       case UserInfo:
+               showUserInfo( 0 );
+               break;
+
+       case Settings:
+               showSettings();
+               break;
+
+       case General:
+               if( !_pGeneralWidget ) {
+                       _pGeneralWidget = new TocGeneralSettingsWidget( _pCentralWidget );
+                       CONNECT(_pGeneralWidget, SIGNAL(backClicked()), this, SLOT(returnToSettings()));
+                       CONNECT(_pGeneralWidget, SIGNAL(finished()), this, SLOT(returnToContacts()));
+                       _pMainLayout->addWidget( _pGeneralWidget );
+               }
+               _pMainToolbar->onCurrentView( viewType, tr("General Settings") );
+               _pMainLayout->setCurrentWidget( _pGeneralWidget );
+               break;
+
+       case FTU:
+               if( !_pIntermediateWidget ) {
+                       _pIntermediateWidget = new TocAccountIntermediateWidget( _pCentralWidget );
+                       CONNECT(_pIntermediateWidget, SIGNAL(backClicked()), this, SLOT(returnToSettings()));
+                       CONNECT(_pIntermediateWidget, SIGNAL(editClicked()), this, SLOT(showAccount()));
+                       CONNECT(_pIntermediateWidget, SIGNAL(createClicked()), this, SLOT(showAccountCreate()));
+                       _pMainLayout->addWidget( _pIntermediateWidget );
+               }
+               _pIntermediateWidget->enableFTUMode( true );
+               _pMainToolbar->onCurrentView( viewType, tr("Account Settings") );
+               _pMainLayout->setCurrentWidget( _pIntermediateWidget );
+               break;
+       
+       case AccountIntermediate:
+               if( !_pIntermediateWidget ) {
+                       _pIntermediateWidget = new TocAccountIntermediateWidget( _pCentralWidget );
+                       CONNECT(_pIntermediateWidget, SIGNAL(backClicked()), this, SLOT(returnToSettings()));
+                       CONNECT(_pIntermediateWidget, SIGNAL(editClicked()), this, SLOT(showAccount()));
+                       CONNECT(_pIntermediateWidget, SIGNAL(createClicked()), this, SLOT(showAccountCreate()));
+                       _pMainLayout->addWidget( _pIntermediateWidget );
+               }
+               _pIntermediateWidget->enableFTUMode( false );
+               _pMainToolbar->onCurrentView( viewType, tr("Account Settings") );
+               _pMainLayout->setCurrentWidget( _pIntermediateWidget );
+               break;
+
+       case AccountCreate:
+               if( !_pAccountWidget ) {
+                       _pAccountWidget = new TocAccountSettingsWidget( _pCentralWidget );
+                       CONNECT(_pAccountWidget, SIGNAL(newAccountSettingsCreated()), this, SLOT(onAccountSettingsCreated()));
+                       CONNECT(_pAccountWidget, SIGNAL(accountSettingsChanged()), this, SLOT(onAccountSettingsChanged()));                     CONNECT(_pAccountWidget, SIGNAL(finished()), this, SLOT(returnToContacts()));
+                       CONNECT(_pAccountWidget, SIGNAL(finished()), this, SLOT(returnToContacts()));
+                       CONNECT(_pAccountWidget, SIGNAL(backClicked()), this, SLOT(returnToIntermediate()));
+                       _pMainLayout->addWidget( _pAccountWidget );
+               }
+               _pAccountWidget->setCreateMode(true);
+               _pMainToolbar->onCurrentView( viewType, tr("Create Account") );
+               _pMainLayout->setCurrentWidget( _pAccountWidget );
+               break;
+
+       case Account:
+               if( !_pAccountWidget ) {
+                       _pAccountWidget = new TocAccountSettingsWidget( _pCentralWidget );
+                       CONNECT(_pAccountWidget, SIGNAL(newAccountSettingsCreated()), this, SLOT(onAccountSettingsCreated()));
+                       CONNECT(_pAccountWidget, SIGNAL(accountSettingsChanged()), this, SLOT(onAccountSettingsChanged()));
+                       CONNECT(_pAccountWidget, SIGNAL(finished()), this, SLOT(returnToContacts()));
+                       CONNECT(_pAccountWidget, SIGNAL(backClicked()), this, SLOT(returnToIntermediate()));
+                       _pMainLayout->addWidget( _pAccountWidget );
+               }
+               _pAccountWidget->setCreateMode(false);
+               _pMainToolbar->onCurrentView( viewType, tr("Account Settings") );
+               _pMainLayout->setCurrentWidget( _pAccountWidget );
+               break;
+
+       case Themes:
+               if( !_pThemesWidget ) {
+                       _pThemesWidget = new TocThemesSettingsWidget( _pCentralWidget );
+                       _pMainLayout->addWidget( _pThemesWidget );
+                       CONNECT(_pThemesWidget, SIGNAL(backClicked()), this, SLOT(returnToSettings()));
+                       CONNECT(_pThemesWidget, SIGNAL(currentThemeChanged()), this, SLOT(reloadTheme()));
+               }       
+               _pMainToolbar->onCurrentView( viewType, tr("Themes Settings") );
+               _pMainLayout->setCurrentWidget( _pThemesWidget );
+               break;
+
+       default:
+               /* Do nothing */
+               break;
+       }
+}
+
+void TocMainWindow::showUserInfo(QListWidgetItem* item) {
+       
+       _pMainLayout->removeWidget( _pUserInfoWidget );
+       delete _pUserInfoWidget;
+       
+       _pUserInfoWidget = new TocUserInfoWidget( item, _pContactList );
+
+       if ( item == 0 ) {
+               CONNECT(_pUserInfoWidget, SIGNAL(contactChanged(QListWidgetItem*)),
+                               _pContactList, SLOT(commitAdd(QListWidgetItem*)));
+
+               _pMainToolbar->onCurrentView( UserInfo, tr("Create Contact") );
+
+       } else {
+               CONNECT(_pUserInfoWidget, SIGNAL(contactChanged(QListWidgetItem*)),
+                               _pContactList, SLOT(commitEdit(QListWidgetItem*)));
+
+               QString name = item->data( DisplayRole ).toString();
+               _pMainToolbar->onCurrentView( UserInfo, tr("Edit %1").arg( name ) );
+       }
+
+       CONNECT(_pUserInfoWidget, SIGNAL(finished()), this, SLOT(returnToContacts()));
+
+       _pMainLayout->addWidget( _pUserInfoWidget );
+       _pMainLayout->setCurrentWidget( _pUserInfoWidget );
+}
+
+void TocMainWindow::onDisplayedNameChange(const QString& uid, const QString& name) {
+
+       if ( TocChatWidget* chat = chatForUid( uid ) ) {
+               chat->onDisplayedNameChange( name );
+               _pMainToolbar->onDisplayedNameChange( uid, name );
+       }
+}
+
+void TocMainWindow::onContactListReceived(const TocContactList& cList)
+{
+       _pContactList->onNewContactList(cList);
+}
+
+void TocMainWindow::onAuthorizationRequest(QString /*uid*/) {
+       //TODO: finish implementation
+}
+
+void TocMainWindow::onSubscriptionAccepted(QString /*uid*/) {
+       //TODO: finish implementation
+}
+
+void TocMainWindow::onStatusChange(Status status, Reason reason) {
+       switch(status) {
+       case Disconnected:
+               if(reason != Requested)
+                       if(_register) {
+                               QMessageBox::critical(this, tr("TEC"), errorString(reason) + "\nCannot create account");
+                               _register = false;
+                       } else
+                               QMessageBox::critical(this, tr("TEC"), errorString(reason));
+
+               _pMainToolbar->onPresenceUpdate( Offline, "" );
+
+               break;
+       case Connected:
+               if(_register) {
+                       QMessageBox::information(this, tr("TEC"), tr("Account created successfully!"));
+                       _register = false;
+                       returnToContacts();
+               } break;
+       case Connecting:
+               /* Do nothing */
+               break;
+       default:
+               /* Do nothing */
+               break;
+       }
+}
+
+QString TocMainWindow::errorString(Reason reason) {
+       switch(reason) {
+       case NoneSpecified:
+               return tr("Disconnected because of unknown reason.");
+
+       case Requested:
+               return tr("Disconnected because it was requested.");
+
+       case NetworkError:
+               return tr("Disconnected because of network error.");
+
+       case AuthenticationFailed:
+               return tr("Disconnected because the username or password was invalid.");
+
+       case EncryptionError:
+               return tr("Disconnected because of encryption error.");
+
+       case NameInUse:
+               return tr("Could not create account or connect because username is already in use.");
+
+       case CertificateNotProvided:
+               return tr("Disconnected because certificate was not provided.");
+
+       case CertificateUntrusted:
+               return tr("Disconnected because certificate is untrusted.");
+
+       case CertificateExpired:
+               return tr("Disconnected because certificate has expired.");
+
+       case CertificateNotActivated:
+               return tr("Disconnected because certificate has not been activated.");
+
+       case CertificateHostnameMismatch:
+               return tr("Disconnected because of certificate hostname mismatch.");
+
+       case CertificateFingerPrintMismatch:
+               return tr("Disconnected because of certificate finger print mismatch.");
+
+       case CertificateSigned:
+               return tr("Disconnected because certificate was self-signed.");
+
+       case CertificateOtherError:
+               return tr("Disconnected because of non specified certificate error.");
+
+       default:
+               return tr("Disconnected because of unknown reason.");
+       }
+}
+
+bool TocMainWindow::isFtu() {
+       TocSettings *set = TocSettings::getInstance();
+       if(!set->accountUid().length() && !set->accountPasswd().length())
+               return true;
+       return false;
+}
+
+void TocMainWindow::showAbout() {
+       QMessageBox::about(this, tr("About Tieto Open Communicator"), tr(       
+                               "Tieto Open Communicator %1 - Instant Message Communicator for Telepathy framework\n\n"
+                               "Copyright: (c) 2010, Tieto Corporation\n"
+                               "License: see `/usr/share/%2/licence/copyright`."
+                                               ).arg(VERSION).arg(TARGET));
+}
+
+void TocMainWindow::onAccountSettingsChanged() {
+       _register = false;
+       emit presenceChanged(Offline, "");
+
+       // Clear chat widgets and active sessions
+       clearAllChats();
+       _pMainToolbar->clearAllSessions();
+
+       // Empty the contact list
+       TocSettings *pSettings = TocSettings::getInstance();
+       pSettings->contactList()->clear();
+       _pContactList->onNewContactList(*pSettings->contactList());
+}
+
+void TocMainWindow::onAccountSettingsCreated() {
+       onAccountSettingsChanged();
+
+       _pMainToolbar->onCurrentView(AccountCreate, tr("Create Account"));
+       _register = true;
+       // Request to create account
+       emit presenceChanged(Available, "");
+       QMessageBox::information(this, tr("TEC"),
+               tr("To be able to fully use Your new account:\nplease reconnect."));
+}
+
+void TocMainWindow::closeEvent( QCloseEvent* event ) {
+       Q_UNUSED(event)
+       hide();
+}
+
+int TocMainWindow::top_application() {
+    show();
+    return 0;
+}
diff --git a/src/TocUi/TocSettingsWidget.cpp b/src/TocUi/TocSettingsWidget.cpp
new file mode 100644 (file)
index 0000000..67701d4
--- /dev/null
@@ -0,0 +1,129 @@
+/** \file TocSettingsWidget.cpp
+ * \brief Implementation of TocSettingsWidget class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#include "TocSettingsWidget"
+#include <QSignalMapper>
+#include <QGridLayout>
+#include <QPushButton>
+#include <QSpacerItem>
+#include <QFrame>
+#include "uidefs.h"
+#include "macros.h"
+
+TocSettingsWidget::TocSettingsWidget(QWidget * parent, Qt::WindowFlags flags) :
+       QWidget(parent, flags) {
+
+       setContentsMargins(-10, -10, -10, -10);
+       setObjectName("settingsWidget");
+
+       QGridLayout* gridLayout = new QGridLayout(this);
+       settingsFrame = new QFrame(this);
+       settingsFrame->setObjectName("settingsFrame");
+       gridLayout->addWidget(settingsFrame);
+       QVBoxLayout* vLayout = new QVBoxLayout(settingsFrame);
+
+       vLayout->addStretch(1);
+
+       QHBoxLayout* hLayout = new QHBoxLayout();
+
+       generalButton = new QPushButton(tr("General"), this);
+       generalButton->setObjectName("generalButton");
+       hLayout->addWidget(generalButton);
+
+       accountButton = new QPushButton(tr("Account"), this);
+       accountButton->setObjectName("accountButton");
+       hLayout->addWidget(accountButton);
+
+       themesButton = new QPushButton(tr("Themes"), this);
+       themesButton->setObjectName("themesButton");
+       hLayout->addWidget(themesButton);
+
+       vLayout->addLayout(hLayout);
+       vLayout->addStretch(2);
+
+       signalMapper = new QSignalMapper(this);
+       signalMapper->setMapping(generalButton, static_cast<int>(General));
+       signalMapper->setMapping(accountButton, static_cast<int>(AccountIntermediate));
+       signalMapper->setMapping(themesButton, static_cast<int>(Themes));
+
+       CONNECT(generalButton, SIGNAL(clicked()), signalMapper, SLOT(map()));
+       CONNECT(accountButton, SIGNAL(clicked()), signalMapper, SLOT(map()));
+       CONNECT(themesButton, SIGNAL(clicked()), signalMapper, SLOT(map()));
+
+       CONNECT(signalMapper, SIGNAL(mapped(int)), this, SIGNAL(triggered(int)));
+
+       setupStyles();
+}
+
+TocSettingsWidget::~TocSettingsWidget() {
+}
+
+void TocSettingsWidget::setupStyles() {
+
+       generalButton->setStyleSheet("QPushButton {"
+               "font: bold 16px;"
+               "text-align: bottom;"
+               "border-radius: 5px;"
+               "background-image: url(:/general.png);"
+               "background-repeat:no-repeat;"
+               "background-position:center center;"
+               "min-height: 120px;"
+               "min-width: 140px;"
+               "max-height: 120px;"
+               "max-width: 140px;"
+               "}");
+
+       accountButton->setStyleSheet("QPushButton {"
+               "font: bold 16px;"
+               "text-align: bottom;"
+               "border-radius: 5px;"
+               "background-image: url(:/account.png);"
+               "background-repeat:no-repeat;"
+               "background-position:center center;"
+               "min-height: 120px;"
+               "min-width: 140px;"
+               "max-height: 120px;"
+               "max-width: 140px;"
+               "}");
+
+       themesButton->setStyleSheet("QPushButton {"
+               "font: bold 16px;"
+               "text-align: bottom;"
+               "border-radius: 5px;"
+               "background-image: url(:/themes.png);"
+               "background-repeat:no-repeat;"
+               "background-position:center center;"
+               "min-height: 120px;"
+               "min-width: 140px;"
+               "max-height: 120px;"
+               "max-width: 140px;"
+               "}");
+}
diff --git a/src/TocUi/TocThemesSettingsWidget.cpp b/src/TocUi/TocThemesSettingsWidget.cpp
new file mode 100644 (file)
index 0000000..6d502ab
--- /dev/null
@@ -0,0 +1,102 @@
+/** \file TocThemesSettingsWidget.cpp
+ * \brief Implementation of TocThemesSettingsWidget class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#include "TocThemesSettingsWidget"
+#include "ui_TocThemesSettingsWidget.h"
+#include "macros.h"
+
+#include <TocSettings>
+#include <QListWidgetItem>
+#include <QShowEvent>
+#include <QDebug>
+
+
+TocThemesSettingsWidget::TocThemesSettingsWidget(QWidget *parent, Qt::WindowFlags flags)
+       : QWidget(parent, flags) {
+       
+       ui = new Ui_TocThemesSettingsWidgetClass();
+       ui->setupUi(this);
+       setContentsMargins(-10, -10, -10, -10);
+       
+       ui->applyThemeButton->setText(tr("Apply"));
+       ui->backThemeButton->setText(tr("Back"));
+
+       //TODO: functionality is not implemented. Add Theme button is hidden. 
+       ui->addThemeButton->setVisible(false);
+       ui->addThemeButton->setText(tr("Add theme"));
+
+#ifdef QT_NO_DEBUG
+  #define ssPath       QString("/usr/share/tietoopcom/stylesheets/")
+#else
+  #define ssPath       QString("./data/stylesheets/")
+#endif
+
+       qDebug() << ssPath;
+
+       QListWidgetItem* pItem = new QListWidgetItem("Default theme", ui->themesListWidget);
+       pItem->setToolTip(ssPath + "default.qss");
+
+       pItem = new QListWidgetItem("My theme", ui->themesListWidget);
+       pItem->setToolTip(ssPath + "my.qss");
+
+       CONNECT(ui->backThemeButton,SIGNAL(clicked()),this,SIGNAL(backClicked()));
+       CONNECT(ui->applyThemeButton,SIGNAL(clicked()),this,SLOT(saveThemesSettings()));
+}
+
+TocThemesSettingsWidget::~TocThemesSettingsWidget() {
+       delete ui;
+}
+
+void TocThemesSettingsWidget::showEvent( QShowEvent* event ) {
+
+       TocSettings* pSettings = TocSettings::getInstance();
+       for(int i = 0; i < ui->themesListWidget->count(); ++i)
+               if(ui->themesListWidget->item(i)->toolTip() == pSettings->currentTheme()) {
+                       ui->themesListWidget->setCurrentRow(i);
+               }
+       event->accept();
+}
+
+void TocThemesSettingsWidget::saveThemesSettings() {
+
+       TocSettings* pSettings = TocSettings::getInstance();
+
+       QListWidgetItem* pThemesListItem = ui->themesListWidget->currentItem();
+       if(!pThemesListItem)
+               return;
+
+       QString themeUrl = pThemesListItem->toolTip();
+       if(themeUrl == pSettings->currentTheme())
+               return;
+
+       pSettings->setCurrentTheme(themeUrl);
+       emit currentThemeChanged();
+}
diff --git a/src/TocUi/TocThemesSettingsWidget.ui b/src/TocUi/TocThemesSettingsWidget.ui
new file mode 100644 (file)
index 0000000..94f206f
--- /dev/null
@@ -0,0 +1,255 @@
+<!--
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ *
+-->
+
+<ui version="4.0" >
+ <class>TocThemesSettingsWidgetClass</class>
+ <widget class="QWidget" name="TocThemesSettingsWidgetClass" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>593</width>
+    <height>405</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Form</string>
+  </property>
+  <property name="styleSheet" >
+   <string notr="true" />
+  </property>
+  <layout class="QGridLayout" name="gridLayout_2" >
+   <item row="0" column="0" >
+    <widget class="QFrame" name="frame" >
+     <property name="enabled" >
+      <bool>true</bool>
+     </property>
+     <property name="sizePolicy" >
+      <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="styleSheet" >
+      <string notr="true" />
+     </property>
+     <property name="frameShape" >
+      <enum>QFrame::Box</enum>
+     </property>
+     <property name="frameShadow" >
+      <enum>QFrame::Sunken</enum>
+     </property>
+     <property name="lineWidth" >
+      <number>1</number>
+     </property>
+     <layout class="QGridLayout" name="gridLayout" >
+      <item row="0" column="0" >
+       <layout class="QVBoxLayout" name="verticalLayout_3" >
+        <item>
+         <spacer name="verticalSpacer_2" >
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0" >
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QPushButton" name="backThemeButton" >
+          <property name="styleSheet" >
+           <string notr="true" >QPushButton {
+                       font: bold 16px;
+               border-radius: 5px;
+                       min-height: 80px;
+                       min-width: 80px;
+                       max-height: 80px;
+                       max-width: 80px;
+}</string>
+          </property>
+          <property name="text" >
+           <string>Back</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item row="0" column="1" >
+       <layout class="QVBoxLayout" name="verticalLayout" >
+        <item>
+         <widget class="QListWidget" name="themesListWidget" >
+          <property name="sizePolicy" >
+           <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="autoFillBackground" >
+           <bool>true</bool>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QListView {
+       font: bold 30px;
+}
+
+</string>
+          </property>
+          <property name="lineWidth" >
+           <number>1</number>
+          </property>
+          <property name="midLineWidth" >
+           <number>1</number>
+          </property>
+          <property name="showDropIndicator" stdset="0" >
+           <bool>false</bool>
+          </property>
+          <property name="alternatingRowColors" >
+           <bool>false</bool>
+          </property>
+          <property name="selectionMode" >
+           <enum>QAbstractItemView::SingleSelection</enum>
+          </property>
+          <property name="selectionBehavior" >
+           <enum>QAbstractItemView::SelectItems</enum>
+          </property>
+          <property name="iconSize" >
+           <size>
+            <width>0</width>
+            <height>0</height>
+           </size>
+          </property>
+          <property name="textElideMode" >
+           <enum>Qt::ElideMiddle</enum>
+          </property>
+          <property name="horizontalScrollMode" >
+           <enum>QAbstractItemView::ScrollPerItem</enum>
+          </property>
+          <property name="movement" >
+           <enum>QListView::Static</enum>
+          </property>
+          <property name="flow" >
+           <enum>QListView::TopToBottom</enum>
+          </property>
+          <property name="isWrapping" stdset="0" >
+           <bool>false</bool>
+          </property>
+          <property name="resizeMode" >
+           <enum>QListView::Adjust</enum>
+          </property>
+          <property name="spacing" >
+           <number>5</number>
+          </property>
+          <property name="viewMode" >
+           <enum>QListView::ListMode</enum>
+          </property>
+          <property name="modelColumn" >
+           <number>0</number>
+          </property>
+          <property name="wordWrap" >
+           <bool>true</bool>
+          </property>
+          <property name="selectionRectVisible" >
+           <bool>true</bool>
+          </property>
+          <property name="currentRow" >
+           <number>-1</number>
+          </property>
+          <property name="sortingEnabled" >
+           <bool>false</bool>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item row="0" column="2" >
+       <layout class="QVBoxLayout" name="verticalLayout_2" >
+        <item>
+         <widget class="QPushButton" name="addThemeButton" >
+          <property name="styleSheet" >
+           <string notr="true" >QPushButton {
+                       font: bold 16px;
+               border-radius: 5px;
+                       min-height: 80px;
+                       min-width: 80px;
+                       max-height: 80px;
+                       max-width: 80px;
+}</string>
+          </property>
+          <property name="text" >
+           <string>Add theme</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer name="verticalSpacer" >
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0" >
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QPushButton" name="applyThemeButton" >
+          <property name="autoFillBackground" >
+           <bool>false</bool>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QPushButton {
+                       font: bold 16px;
+               border-radius: 5px;
+                       min-height: 80px;
+                       min-width: 80px;
+                       max-height: 80px;
+                       max-width: 80px;
+}</string>
+          </property>
+          <property name="text" >
+           <string>Apply</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/TocUi/TocUi.pri b/src/TocUi/TocUi.pri
new file mode 100644 (file)
index 0000000..c8e0663
--- /dev/null
@@ -0,0 +1,21 @@
+DEPENDPATH += $$PWD
+INCLUDEPATH += $$PWD
+SOURCES += TocBaseMainWindow.cpp \
+    TocMainWindow.cpp \
+    TocContactListWidget.cpp \
+    TocChatWidget.cpp \
+    TocUserInfoWidget.cpp \
+    TocSettingsWidget.cpp \
+    TocGeneralSettingsWidget.cpp \
+    TocAccountSettingsWidget.cpp \
+    TocAccountIntermediateWidget.cpp \
+    TocThemesSettingsWidget.cpp \
+    TocMainToolbar.cpp \
+    IconProvider.cpp \
+    TocEmoticonsDialog.cpp
+FORMS += TocChatWidget.ui \
+    TocUserInfoWidget.ui \
+    TocGeneralSettingsWidget.ui \
+    TocAccountSettingsWidget.ui \
+    TocThemesSettingsWidget.ui \
+    TocEmoticonsDialog.ui
diff --git a/src/TocUi/TocUserInfoWidget.cpp b/src/TocUi/TocUserInfoWidget.cpp
new file mode 100644 (file)
index 0000000..46e8fcf
--- /dev/null
@@ -0,0 +1,250 @@
+/** \file.cpp
+ * \brief Implementation of TocUserInfoWidget class
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#include <QDebug>
+#include <QFontMetrics>
+#include <TocContactListWidget>
+#include <QMessageBox>
+#include <QShowEvent>
+#include <QListWidgetItem>
+
+#include "TocUserInfoWidget"
+#include "IconProvider"
+#include "ui_TocUserInfoWidget.h"
+#include "uidefs.h"
+#include "macros.h"
+
+Q_DECLARE_METATYPE(TocContact*);
+
+
+TocUserInfoWidget::TocUserInfoWidget(QListWidgetItem * contactItem, TocContactListWidget * parent, Qt::WindowFlags flags)
+       : QWidget(parent, flags), _pContactList(parent)
+{
+
+       ui = new Ui_TocUserInfoWidgetClass();
+       ui->setupUi(this);
+       setContentsMargins(-10, -10, -10, -10 );
+
+       ui->resolveButton->hide(); //TODO: implement resolving contact's name functionality
+
+       //Adjust labels size to their content
+       QFontMetrics fm(ui->uidLabel->font());
+
+       //Find the widest 
+       QList<int> list;
+       list << fm.boundingRect(ui->uidLabel->text()).width();
+       list << fm.boundingRect(ui->nameLabel->text()).width();
+       list << fm.boundingRect(ui->genderLabel->text()).width();
+       qSort(list.begin(), list.end());
+
+       //Set minimum width
+       ui->uidLabel->setMinimumWidth(list.last());
+       ui->nameLabel->setMinimumWidth(list.last());
+       ui->genderLabel->setMinimumWidth(list.last());
+
+       _newCustomPicturePath = "";
+
+       _pContactItem = contactItem;
+
+       ui->genderComboBox->addItem(tr("Unknown") );
+       ui->genderComboBox->setItemData(0, NotSpecified);
+
+       ui->genderComboBox->addItem(tr("Male") );
+       ui->genderComboBox->setItemData(1, Male);
+
+       ui->genderComboBox->addItem(tr("Female"));
+       ui->genderComboBox->setItemData(2, Female);     
+
+       CONNECT(ui->genderComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(onCurrentIndexChanged(int)));
+       CONNECT(ui->okButton, SIGNAL(clicked()),this,SLOT(okClicked()));
+       CONNECT(ui->cancelButton,SIGNAL(clicked()),this,SIGNAL(finished()));
+
+       _pIconProvider = IconProvider::getInstance();
+
+       if (!contactItem) {
+               ui->pictureButton->setIcon(_pIconProvider->matchIcon(NotSpecified));
+               return;
+       }
+
+       ui->nameLineEdit->setText(contactItem->data(ContactRole).value<TocContact*>()->name);
+       ui->uidLineEdit->setText(contactItem->data(ContactRole).value<TocContact*>()->uid);
+
+
+       Gender gender = contactItem->data(ContactRole).value<TocContact*>()->gender;
+
+       int idx = ui->genderComboBox->findData(gender);
+
+       if (idx >= 0 && idx <= 2) {
+               ui->genderComboBox->setCurrentIndex(idx);
+               _currentIndex = idx;
+       }
+
+       _customPicturePath = _newCustomPicturePath = contactItem->data(ContactRole).value<TocContact*>()->customIconPath;
+
+       // Get picture
+       QIcon icon;
+       if(_customPicturePath.isEmpty())
+               icon = _pIconProvider->matchIcon(gender);
+       else
+               icon = QIcon(_customPicturePath);
+
+       ui->pictureButton->setIcon(icon);
+}
+
+TocUserInfoWidget::~TocUserInfoWidget() {
+       delete ui;
+}
+
+void TocUserInfoWidget::onCurrentIndexChanged (int index) {
+
+       Gender gender = static_cast<Gender>(ui->genderComboBox->itemData(index).value<int>());
+
+       // Get picture
+       QIcon icon;
+       if(_newCustomPicturePath.isEmpty())
+               icon = _pIconProvider->matchIcon(gender);
+       else
+               icon = QIcon(_customPicturePath);
+
+       ui->pictureButton->setIcon(icon);
+}
+
+void TocUserInfoWidget::okClicked() {
+
+       if(_pContactItem) { // Edit an existing item
+
+               Gender gender;
+               QString uid = ui->uidLineEdit->text();
+
+               if(uid.isEmpty()) {
+                       QMessageBox::warning(this, tr("TEC"), tr("User ID is empty.\nCannot commit changes."));
+                       return; 
+               }
+
+               // Check if UID is not already on contact list
+               if(_pContactList->findItem(uid, _pContactItem)) {
+                       QMessageBox::warning(this, tr("TEC"), tr("The given user ID already exists on Your contact list.\nCannot commit changes."));
+                       return;
+               }
+
+               QString name = ui->nameLineEdit->text();
+               int idx = ui->genderComboBox->currentIndex();
+
+               // Check if something has changed
+               bool changed = false;
+               if(_pContactItem->data(ContactRole).value<TocContact*>()->uid != uid)
+                       changed = true;
+               else if(_pContactItem->text() != name)
+                       changed = true;
+               else if(_currentIndex != idx)
+                       changed = true;
+               else if(_customPicturePath != _newCustomPicturePath)
+                       changed = true;
+
+               // If yes: save changes and emit signal to notify TocContactListWidget (commitEdit)
+               if(changed) {
+                       gender = static_cast<Gender>(ui->genderComboBox->itemData(idx).value<int>());
+
+                       //Get contact from QListWidgetItem
+                       TocContact *pContact = _pContactItem->data(ContactRole).value<TocContact*>();
+
+                       if(name.isEmpty())
+                               _pContactItem->setText(uid);
+                       else
+                               _pContactItem->setText(name);
+
+                       pContact->uid = uid;
+                       pContact->name = name;
+                       pContact->gender = gender;
+
+                       _pContactItem->setData(Qt::DecorationRole, *(_pIconProvider->matchIcon(pContact)));
+                       emit contactChanged(_pContactItem);
+               }
+       } else { // Create new item
+
+               // Collect data for the new contact
+               // Get uid
+               QString uid = ui->uidLineEdit->text();
+
+               if(uid.isEmpty()) {
+                       QMessageBox::warning(this, tr("TEC"), tr("User ID is empty.\nCannot commit changes."));
+                       return; 
+               }
+
+               // Check if UID is not already on contact list
+               if(_pContactList->findItem(uid)) {
+                       QMessageBox::warning(this, tr("TEC"), tr("The given user ID already exists on Your contact list.\nCannot commit changes."));
+                       return;
+               }
+
+               // Get name
+               QString name = ui->nameLineEdit->text();
+
+               // ... and gender
+               int idx = ui->genderComboBox->currentIndex();
+               Gender gender = static_cast<Gender>(ui->genderComboBox->itemData(idx).value<int>());            
+
+               // Create QListWidgetItem and emit it to notify TocContactListWidget (commitAdd)
+               QString displayedText;
+               if(name.isEmpty())
+                       displayedText = uid;
+               else
+                       displayedText = name;
+               
+               QListWidgetItem* pNewItem = new QListWidgetItem(displayedText, 0);
+
+               // Create new  contact structure...
+               TocContact* pNewContact = new TocContact;
+
+               pNewContact->uid = uid;
+               pNewContact->name = name;
+               pNewContact->gender = gender;
+               pNewContact->customIconId = 0;
+               pNewContact->customIconPath = "";
+               pNewContact->presence = Offline;
+
+               // ... and associate it with QListWidgetItem
+               pNewItem->setData(ContactRole, QVariant::fromValue(pNewContact));
+
+               pNewItem->setData(Qt::DecorationRole, *(_pIconProvider->matchIcon(pNewContact)));
+               pNewItem->setFlags(Qt::ItemIsEnabled);
+
+               emit contactChanged(pNewItem);
+       }
+
+       // Emit this to finish the job
+       emit finished();        
+}
+
+void TocUserInfoWidget::showEvent(QShowEvent* event) {
+       ui->uidLineEdit->setFocus();
+       event->accept();
+}
diff --git a/src/TocUi/TocUserInfoWidget.ui b/src/TocUi/TocUserInfoWidget.ui
new file mode 100644 (file)
index 0000000..44bcee0
--- /dev/null
@@ -0,0 +1,497 @@
+<!--
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ *
+-->
+
+<ui version="4.0" >
+ <class>TocUserInfoWidgetClass</class>
+ <widget class="QWidget" name="TocUserInfoWidgetClass" >
+  <property name="windowModality" >
+   <enum>Qt::NonModal</enum>
+  </property>
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>544</width>
+    <height>256</height>
+   </rect>
+  </property>
+  <property name="focusPolicy" >
+   <enum>Qt::ClickFocus</enum>
+  </property>
+  <property name="windowTitle" >
+   <string>Form</string>
+  </property>
+  <property name="styleSheet" >
+   <string notr="true" />
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout_5" >
+   <item>
+    <widget class="QFrame" name="userInfoFrame" >
+     <property name="sizePolicy" >
+      <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="styleSheet" >
+      <string notr="true" >QFrame{
+border:none;
+}</string>
+     </property>
+     <property name="frameShape" >
+      <enum>QFrame::StyledPanel</enum>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout" >
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout" >
+        <item>
+         <widget class="QPushButton" name="pictureButton" >
+          <property name="sizePolicy" >
+           <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="minimumSize" >
+           <size>
+            <width>80</width>
+            <height>80</height>
+           </size>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QPushButton{
+       border-radius: 5px;
+       min-height: 80px;
+       min-width: 80px;
+       max-height: 80px;
+       max-width: 80px;
+}</string>
+          </property>
+          <property name="text" >
+           <string/>
+          </property>
+          <property name="iconSize" >
+           <size>
+            <width>68</width>
+            <height>68</height>
+           </size>
+          </property>
+          <property name="flat" >
+           <bool>false</bool>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer name="verticalSpacer" >
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0" >
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QPushButton" name="cancelButton" >
+          <property name="minimumSize" >
+           <size>
+            <width>80</width>
+            <height>80</height>
+           </size>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QPushButton{
+       font: bold 16px;
+       border-radius: 5px;
+       min-height: 80px;
+       min-width: 80px;
+       max-height: 80px;
+       max-width: 80px;
+}</string>
+          </property>
+          <property name="text" >
+           <string>Cancel</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout_3" >
+        <item>
+         <layout class="QHBoxLayout" name="horizontalLayout_2" >
+          <item>
+           <widget class="QLabel" name="uidLabel" >
+            <property name="minimumSize" >
+             <size>
+              <width>30</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="styleSheet" >
+             <string notr="true" >QLabel{
+       border-radius: none;
+       background: none;
+       font: bold 12px;
+}</string>
+            </property>
+            <property name="frameShape" >
+             <enum>QFrame::StyledPanel</enum>
+            </property>
+            <property name="text" >
+             <string>User id:</string>
+            </property>
+            <property name="alignment" >
+             <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QLineEdit" name="uidLineEdit" >
+            <property name="sizePolicy" >
+             <sizepolicy vsizetype="Maximum" hsizetype="Expanding" >
+              <horstretch>48</horstretch>
+              <verstretch>48</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="minimumSize" >
+             <size>
+              <width>0</width>
+              <height>48</height>
+             </size>
+            </property>
+            <property name="font" >
+             <font>
+              <pointsize>-1</pointsize>
+              <weight>75</weight>
+              <italic>false</italic>
+              <bold>true</bold>
+             </font>
+            </property>
+            <property name="styleSheet" >
+             <string notr="true" >QLineEdit{
+       border-radius: 5px;
+       min-height: 48px;
+       font: bold 14px;
+}</string>
+            </property>
+            <property name="text" >
+             <string/>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <spacer name="horizontalSpacer_4" >
+            <property name="orientation" >
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeType" >
+             <enum>QSizePolicy::Maximum</enum>
+            </property>
+            <property name="sizeHint" stdset="0" >
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <layout class="QHBoxLayout" name="horizontalLayout_4" >
+          <item>
+           <widget class="QLabel" name="nameLabel" >
+            <property name="minimumSize" >
+             <size>
+              <width>30</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="styleSheet" >
+             <string notr="true" >QLabel{
+       border-radius: none;
+       background: none;
+       font: bold 12px;
+}</string>
+            </property>
+            <property name="text" >
+             <string>Name:</string>
+            </property>
+            <property name="alignment" >
+             <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QLineEdit" name="nameLineEdit" >
+            <property name="sizePolicy" >
+             <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+              <horstretch>0</horstretch>
+              <verstretch>48</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="minimumSize" >
+             <size>
+              <width>0</width>
+              <height>48</height>
+             </size>
+            </property>
+            <property name="font" >
+             <font>
+              <pointsize>-1</pointsize>
+              <weight>75</weight>
+              <italic>false</italic>
+              <bold>true</bold>
+             </font>
+            </property>
+            <property name="layoutDirection" >
+             <enum>Qt::LeftToRight</enum>
+            </property>
+            <property name="styleSheet" >
+             <string notr="true" >QLineEdit{
+       border-radius: 5px;
+       min-height: 48px;
+       font: bold 14px;
+}</string>
+            </property>
+            <property name="text" >
+             <string/>
+            </property>
+            <property name="readOnly" >
+             <bool>false</bool>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <spacer name="horizontalSpacer_3" >
+            <property name="orientation" >
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeType" >
+             <enum>QSizePolicy::Maximum</enum>
+            </property>
+            <property name="sizeHint" stdset="0" >
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item>
+           <widget class="QPushButton" name="resolveButton" >
+            <property name="minimumSize" >
+             <size>
+              <width>80</width>
+              <height>40</height>
+             </size>
+            </property>
+            <property name="maximumSize" >
+             <size>
+              <width>80</width>
+              <height>40</height>
+             </size>
+            </property>
+            <property name="font" >
+             <font>
+              <pointsize>-1</pointsize>
+              <weight>75</weight>
+              <italic>false</italic>
+              <bold>true</bold>
+             </font>
+            </property>
+            <property name="styleSheet" >
+             <string notr="true" >QPushButton{
+       font: bold 16px;
+       border-radius: 5px;
+       min-height: 40px;
+       min-width: 80px;
+       max-height: 40px;
+       max-width: 80px;
+}</string>
+            </property>
+            <property name="text" >
+             <string>Resolve</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <layout class="QHBoxLayout" name="horizontalLayout_5" >
+          <item>
+           <widget class="QLabel" name="genderLabel" >
+            <property name="minimumSize" >
+             <size>
+              <width>30</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="styleSheet" >
+             <string notr="true" >QLabel{
+       border-radius: none;
+       background: none;
+       font: bold 12px;
+}</string>
+            </property>
+            <property name="text" >
+             <string>Gender:</string>
+            </property>
+            <property name="alignment" >
+             <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QComboBox" name="genderComboBox" >
+            <property name="sizePolicy" >
+             <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+              <horstretch>0</horstretch>
+              <verstretch>48</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="minimumSize" >
+             <size>
+              <width>110</width>
+              <height>52</height>
+             </size>
+            </property>
+            <property name="font" >
+             <font>
+              <pointsize>-1</pointsize>
+              <weight>75</weight>
+              <italic>false</italic>
+              <bold>true</bold>
+             </font>
+            </property>
+            <property name="autoFillBackground" >
+             <bool>false</bool>
+            </property>
+            <property name="styleSheet" >
+             <string notr="true" >QComboBox {
+       min-height: 48px;
+       font: bold 16px;
+}
+</string>
+            </property>
+            <property name="currentIndex" >
+             <number>-1</number>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <spacer name="horizontalSpacer_6" >
+            <property name="orientation" >
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeType" >
+             <enum>QSizePolicy::Expanding</enum>
+            </property>
+            <property name="sizeHint" stdset="0" >
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <spacer name="verticalSpacer_3" >
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0" >
+           <size>
+            <width>327</width>
+            <height>35</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout_2" >
+        <item>
+         <spacer name="verticalSpacer_2" >
+          <property name="orientation" >
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0" >
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QPushButton" name="okButton" >
+          <property name="minimumSize" >
+           <size>
+            <width>80</width>
+            <height>80</height>
+           </size>
+          </property>
+          <property name="styleSheet" >
+           <string notr="true" >QPushButton{
+       font: bold 16px;
+       border-radius: 5px;
+       min-height: 80px;
+       min-width: 80px;
+       max-height: 80px;
+       max-width: 80px;
+}</string>
+          </property>
+          <property name="text" >
+           <string>OK</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+ <slots>
+  <slot>compareName()</slot>
+  <slot>compareUID()</slot>
+ </slots>
+</ui>
diff --git a/src/application.qrc b/src/application.qrc
new file mode 100644 (file)
index 0000000..fc756c4
--- /dev/null
@@ -0,0 +1,26 @@
+<RCC>
+    <qresource prefix="/" >
+       <file alias="tieto-logo.png" >../resources/tieto-logo.png</file>
+        <file alias="account.png" >../resources/account.png</file>
+        <file alias="activesessions.png" >../resources/activesessions.png</file>
+        <file alias="addcontact.png" >../resources/addcontact.png</file>
+        <file alias="away.png" >../resources/away.png</file>
+        <file alias="busy.png" >../resources/busy.png</file>
+        <file alias="close.png" >../resources/close.png</file>
+        <file alias="contactfemale.png" >../resources/contactfemale.png</file>
+        <file alias="contactmale.png" >../resources/contactmale.png</file>
+        <file alias="contacts.png" >../resources/contacts.png</file>
+        <file alias="general.png" >../resources/general.png</file>
+        <file alias="greenframe.png" >../resources/greenframe.png</file>
+        <file alias="hidden.png" >../resources/hidden.png</file>
+        <file alias="network.png" >../resources/network.png</file>
+        <file alias="offline.png" >../resources/offline.png</file>
+        <file alias="online.png" >../resources/online.png</file>
+        <file alias="redframe.png" >../resources/redframe.png</file>
+        <file alias="restore.png" >../resources/restore.png</file>
+        <file alias="settings.png" >../resources/settings.png</file>
+        <file alias="themes.png" >../resources/themes.png</file>
+        <file alias="unknown.png" >../resources/unknown.png</file>
+        <file alias="yellowframe.png" >../resources/yellowframe.png</file>
+    </qresource>
+</RCC>
diff --git a/src/main.cpp b/src/main.cpp
new file mode 100644 (file)
index 0000000..966d3f6
--- /dev/null
@@ -0,0 +1,67 @@
+/** \file main.h
+ * \brief Implementation of programĀ“s main function
+ * 
+ * Tieto Open Communicator - Client for the Telepathy communications framework.
+ * Copyright (c) 2010, Tieto Corporation
+ *
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     Redistributions of source code must retain the above copyright notice,
+ *     this list of conditions and the following disclaimer.
+ *     Redistributions in binary form must reproduce the above copyright notice,
+ *     this list of conditions and the following disclaimer in the documentation
+ *     and/or other materials provided with the distribution.
+ *     Neither the name of the Tieto Corporation nor the names of its contributors 
+ *     may be used to endorse or promote products derived from this software without
+ *     specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+#include "TocMainWindow"
+#include "TocEngine"
+
+#include <QtGui>
+#include <QApplication>
+#include <QtDBus>
+
+int main(int argc, char *argv[])
+{
+    QApplication app(argc, argv);
+    app.setAttribute(Qt::AA_DontShowIconsInMenus, false);
+    
+    TocEngine* engine = new TocEngine(&app);
+    TocMainWindow w(engine);
+    
+      if (!QDBusConnection::sessionBus().isConnected()) {
+       qWarning("Cannot connect to the D-Bus session bus.");
+       exit(1);
+    }
+    if (!QDBusConnection::sessionBus().registerService("org.indt.tietoopcom")) {
+       qWarning("%s", qPrintable(QDBusConnection::sessionBus().lastError().message()));
+       exit(2);
+    }
+    if (!QDBusConnection::sessionBus().registerObject("/org/indt/tietoopcom", &w,
+       QDBusConnection::ExportScriptableSlots)) {
+       qWarning("%s", qPrintable(QDBusConnection::sessionBus().lastError().message()));
+       exit(3);
+    }
+    
+    w.show();
+    bool ret = app.exec();
+    delete engine;
+    return ret;
+}
diff --git a/src/src.pro b/src/src.pro
new file mode 100644 (file)
index 0000000..2ad9930
--- /dev/null
@@ -0,0 +1,36 @@
+TEMPLATE = app
+TARGET = ../bin/tietoopcom
+LIBS += -lQtTapioca
+
+PREFIX = /usr
+CONFIG += debug_and_release \
+    maemo_sdk qdbus
+QMAKE_CXXFLAGS_RELEASE += -DQT_NO_DEBUG_OUTPUT
+CONFIG(debug, debug|release) { 
+    TARGET = $$join(TARGET,,,_debug)
+    MOC_DIR = ../build/debug
+    OBJECTS_DIR = ../build/debug
+    UI_DIR = ../build/debug
+    RCC_DIR = ../build/debug
+}
+CONFIG(release, debug|release) { 
+    MOC_DIR = ../build/release
+    OBJECTS_DIR = ../build/release
+    UI_DIR = ../build/release
+    RCC_DIR = ../build/release
+}
+CONFIG(maemo_sdk) {
+
+}
+target.path = $$PREFIX/bin
+INSTALLS += target
+DEPENDPATH += .
+INCLUDEPATH += .
+
+SOURCES += main.cpp \
+               TocSettings.cpp
+RESOURCES += application.qrc
+
+include(TocUi/TocUi.pri)
+include(TocEngine/TocEngine.pri)
+include(../include/include.pri)
diff --git a/tieto-logo.png b/tieto-logo.png
new file mode 100644 (file)
index 0000000..cae81c6
Binary files /dev/null and b/tieto-logo.png differ
diff --git a/tietoopcom.pro b/tietoopcom.pro
new file mode 100644 (file)
index 0000000..10c4300
--- /dev/null
@@ -0,0 +1,33 @@
+QMAKEVERSION = $$[QMAKE_VERSION]
+ISQT4 = $$find(QMAKEVERSION, ^[2-9])
+isEmpty( ISQT4 ) {
+error("Use the qmake include with Qt4.4 or greater, on Debian that is qmake-qt4");
+}
+
+SUBDIRS += src
+TEMPLATE = subdirs
+CONFIG += debug_and_release
+QT += core \
+    gui
+
+PREFIX=/usr
+
+service.files = ./data/com.tieto.tietoopcom.service
+service.path = $$PREFIX/share/dbus-1/services
+
+desktop.files = ./data/tietoopcom.desktop
+desktop.path = $$PREFIX/share/applications/hildon
+
+logo.files = ./data/icons/jabber.png
+logo.path = $$PREFIX/share/pixmap
+
+emoticons.files = ./data/emoticons/*
+emoticons.path = $$PREFIX/share/$$TARGET/emoticons
+
+stylesheets.files = ./data/stylesheets/*
+stylesheets.path = $$PREFIX/share/$$TARGET/stylesheets
+
+licence.files = ./data/copyright
+licence.path = $$PREFIX/share/$$TARGET/licence
+
+INSTALLS += service emoticons desktop logo stylesheets licence