src/gui/styles/qwindowsmobilestyle.cpp
changeset 0 1918ee327afb
child 3 41300fa6a67c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gui/styles/qwindowsmobilestyle.cpp	Mon Jan 11 14:00:40 2010 +0000
@@ -0,0 +1,7247 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtGui module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights.  These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qwindowsmobilestyle.h"
+#include "qwindowsmobilestyle_p.h"
+
+#if !defined(QT_NO_STYLE_WINDOWSMOBILE) || defined(QT_PLUGIN)
+
+#include "qpainterpath.h"
+#include "qapplication.h"
+#include "qdesktopwidget.h"
+#include "qwidget.h"
+#include "qdockwidget.h"
+#include "qframe.h"
+#include "qmenu.h"
+#include "qpaintengine.h"
+#include "qpainter.h"
+#include "qgroupbox.h"
+#include "qstyleoption.h"
+#include "qlistview.h"
+#include "qdrawutil.h"
+#include "qtoolbar.h"
+#include "qabstractscrollarea.h"
+#include "qabstractbutton.h"
+#include "qcombobox.h"
+#include "qabstractscrollarea.h"
+#include "qframe.h"
+#include "qscrollbar.h"
+#include "qabstractitemview.h"
+#include "qmenubar.h"
+#include "qtoolbutton.h"
+#include "qtextedit.h"
+#include "qdialog.h"
+#include "qdebug.h"
+#include "qtabwidget.h"
+
+#ifdef Q_WS_WINCE
+#include "qt_windows.h"
+#include "qguifunctions_wince.h"
+extern bool qt_wince_is_high_dpi();          //defined in qguifunctions_wince.cpp
+extern bool qt_wince_is_smartphone();        //defined in qguifunctions_wince.cpp
+extern bool qt_wince_is_windows_mobile_65(); //defined in qguifunctions_wince.cpp
+#endif // Q_WS_WINCE
+
+QT_BEGIN_NAMESPACE
+
+static const int windowsItemFrame        =  1; // menu item frame width
+
+static const int windowsMobileitemViewCheckBoxSize   = 13;
+static const int windowsMobileFrameGroupBoxOffset    = 9;
+static const int windowsMobileIndicatorSize          = 14;
+static const int windowsMobileExclusiveIndicatorSize = 14;
+static const int windowsMobileSliderThickness        = 6;
+static const int windowsMobileIconSize               = 16;
+static const int PE_IndicatorArrowUpBig         = 0xf000101;
+static const int PE_IndicatorArrowDownBig       = 0xf000102;  
+static const int PE_IndicatorArrowLeftBig       = 0xf000103;
+static const int PE_IndicatorArrowRightBig      = 0xf000104;
+
+/* XPM */
+static const char *const radiobutton_xpm[] = {
+    "30 30 2 1",
+    " 	c None",
+    ".	c #000000",
+    "           ........           ",
+    "        ..............        ",
+    "       ....        ....       ",
+    "     ....            ....     ",
+    "    ...                ...    ",
+    "   ...                  ...   ",
+    "   ..                    ..   ",
+    "  ..                      ..  ",
+    " ...                      ... ",
+    " ..                        .. ",
+    " ..                        .. ",
+    "..                          ..",
+    "..                          ..",
+    "..                          ..",
+    "..                          ..",
+    "..                          ..",
+    "..                          ..",
+    "..                          ..",
+    "..                          ..",
+    " ..                        .. ",
+    " ..                        .. ",
+    " ...                      ... ",
+    "  ..                      ..  ",
+    "   ..                    ..   ",
+    "   ...                  ...   ",
+    "    ...                ...    ",
+    "     ....            ....     ",
+    "       ....        ....       ",
+    "        ..............        ",
+    "           ........           "};
+
+/* XPM */
+static const char * const radiobutton_low_xpm[] = {
+    "15 15 2 1",
+    " 	c None",
+    ".	c #000000",
+    "     .....     ",
+    "   ..     ..   ",
+    "  .         .  ",
+    " .           . ",
+    " .           . ",
+    ".             .",
+    ".             .",
+    ".             .",
+    ".             .",
+    ".             .",
+    " .           . ",
+    " .           . ",
+    "  .         .  ",
+    "   ..     ..   ",
+    "     .....     "};
+
+/* XPM */
+    static const char * const arrowleft_big_xpm[] = {
+        "9 17 2 1",
+        "  c None",
+        ". c #000000",
+        "        .",
+        "       ..",
+        "      ...",
+        "     ....",
+        "    .....",
+        "   ......",
+        "  .......",
+        " ........",
+        ".........",
+        " ........",
+        "  .......",
+        "   ......",
+        "    .....",
+        "     ....",
+        "      ...",
+        "       ..",
+        "        ."};
+
+/* XPM */
+     static const char * const arrowleft_xpm[] = {
+        "8 15 2 1",
+        "  c None",
+        ". c #000000",
+        "       .",
+        "      ..",
+        "     ...",
+        "    ....",
+        "   .....",
+        "  ......",
+        " .......",
+        "........",
+        " .......",
+        "  ......",
+        "   .....",
+        "    ....",
+        "     ...",
+        "      ..",
+        "       ."};
+
+
+
+/* XPM */
+static const char *const horlines_xpm[] = {
+    "2 2 2 1",
+    "  c None",
+    ". c #000000",
+    "  ",
+    ".."};
+
+/* XPM */
+static const char *const vertlines_xpm[] = {
+    "2 2 2 1",
+    "  c None",
+    ". c #000000",
+    ". ",
+    ". "};
+
+/* XPM */
+static const char *const radiochecked_xpm[] = {
+    "18 18 2 1",
+    " 	c None",
+    ".	c #000000",
+    "      ......      ",
+    "    ..........    ",
+    "  ..............  ",
+    "  ..............  ",
+    " ................ ",
+    " ................ ",
+    "..................",
+    "..................",
+    "..................",
+    "..................",
+    "..................",
+    "..................",
+    " ................ ",
+    " ................ ",
+    "  ..............  ",
+    "  ..............  ",
+    "    ..........    ",
+    "      ......      "};
+
+/* XPM */
+static const char * const radiochecked_low_xpm[] = {
+    "9 9 2 1",
+    "         c None",
+    ".        c #000000", 
+    "   ...   ",
+    " ....... ",
+    " ....... ",
+    ".........",
+    ".........",
+    ".........",
+    " ....... ",
+    " ....... ",
+    "   ...   "};
+
+static const char *const arrowdown_xpm[] = {
+    "15 8 2 1",
+    " 	c None",
+    ".	c #000000",
+    "...............",
+    " ............. ",
+    "  ...........  ",
+    "   .........   ",
+    "    .......    ",
+    "     .....     ",
+    "      ...      ",
+    "       .       "};
+
+
+static const char *const arrowdown_big_xpm[] = {
+    "17 9 2 1",
+    " 	c None",
+    ".	c #000000",
+    ".................",
+    " ............... ",
+    "  .............  ",
+    "   ...........   ",
+    "    .........    ",
+    "     .......     ",
+    "      .....      ",
+    "       ...       ",
+    "        .        "};
+
+
+/* XPM */
+static const char *const checkedlight_xpm[] = {
+    "24 24 2 1",
+    " 	c None",
+    ".	c #000000",
+    "                        ",
+    "                        ",
+    "                        ",
+    "                        ",
+    "                        ",
+    "                  .     ",
+    "                 ..     ",
+    "                ...     ",
+    "               ....     ",
+    "              .....     ",
+    "             ......     ",
+    "    .       ......      ",
+    "    ..     ......       ",
+    "    ...   ......        ",
+    "    .... ......         ",
+    "    ..........          ",
+    "    .........           ",
+    "     .......            ",
+    "      .....             ",
+    "       ...              ",
+    "        .               ",
+    "                        ",
+    "                        ",
+    "                        "};
+
+
+/* XPM */
+static const char *const checkedbold_xpm[] = {
+    "26 26 2 1",
+    " 	c None",
+    ".	c #000000",
+    "                          ",
+    "                          ",
+    "                          ",
+    "                          ",
+    "                          ",
+    "                          ",
+    "                    ..    ",
+    "                   ...    ",
+    "                  ....    ",
+    "                 .....    ",
+    "    ..          ......    ",
+    "    ...        .......    ",
+    "    ....      .......     ",
+    "    .....    .......      ",
+    "    ......  .......       ",
+    "    ..............        ",
+    "     ............         ",
+    "      ..........          ",
+    "       ........           ",
+    "        ......            ",
+    "         ....             ",
+    "          ..              ",
+    "                          ",
+    "                          ",
+    "                          ",
+    "                          "};
+
+/* XPM */
+static const char * const checkedbold_low_xpm[] = {
+    "9 8 2 1",
+    " 	c None",
+    ".	c #000000",
+    "        .",
+    "       ..",
+    ".     ...",
+    "..   ... ",
+    "... ...  ",
+    " .....   ",
+    "  ...    ",
+    "   .     "};
+
+/* XPM */
+static const char * const checkedlight_low_xpm[] = {
+    "8 8 2 1",
+    " 	c None",
+    ".	c #000000",
+    "       .",
+    "      ..",
+    "     ...",
+    ".   ... ",
+    ".. ...  ",
+    ".....   ",
+    " ...    ",
+    "  .     "};
+
+/* XPM */
+static const char * const highlightedradiobutton_xpm[] = {
+    "30 30 3 1",
+    " 	c None",
+    ".	c #000000",
+    "+	c #0078CC",
+    "           ........           ",
+    "        ..............        ",
+    "       ....++++++++....       ",
+    "     ....++++++++++++....     ",
+    "    ...++++        ++++...    ",
+    "   ...+++            +++...   ",
+    "   ..++                ++..   ",
+    "  ..++                  ++..  ",
+    " ...++                  ++... ",
+    " ..++                    ++.. ",
+    " ..++                    ++.. ",
+    "..++                      ++..",
+    "..++                      ++..",
+    "..++                      ++..",
+    "..++                      ++..",
+    "..++                      ++..",
+    "..++                      ++..",
+    "..++                      ++..",
+    "..++                      ++..",
+    " ..++                    ++.. ",
+    " ..++                    ++.. ",
+    " ...++                  ++... ",
+    "  ..++                  ++..  ",
+    "   ..++                ++..   ",
+    "   ...+++            +++...   ",
+    "    ...++++        ++++...    ",
+    "     ....++++++++++++....     ",
+    "       ....++++++++....       ",
+    "        ..............        ",
+    "           ........           "};
+
+/* XPM */
+static const char * const highlightedradiobutton_low_xpm[] = {
+    "15 15 3 1",
+    " 	c None",
+    ".	c #000000",
+    "+	c #3192D6",
+    "     .....     ",
+    "   ..+++++..   ",
+    "  .++     ++.  ",
+    " .+         +. ",
+    " .+         +. ",
+    ".+           +.",
+    ".+           +.",
+    ".+           +.",
+    ".+           +.",
+    ".+           +.",
+    " .+         +. ",
+    " .+         +. ",
+    "  .++     ++.  ",
+    "   ..+++++..   ",
+    "     .....     "};
+
+/* XPM */
+static const char * const cross_big_xpm[] = {
+"28 28 4 1",
+" 	c #09454A",
+".	c #218C98",
+"+	c #47D8E5",
+"@	c #FDFFFC",
+"                            ",
+"                            ",
+"  ++++++++++++++++++++++++  ",
+"  ++++++++++++++++++++++++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++..@@@..........@@@..++  ",
+"  ++..@@@@........@@@@..++  ",
+"  ++..@@@@@......@@@@@..++  ",
+"  ++...@@@@@....@@@@@...++  ",
+"  ++....@@@@@..@@@@@....++  ",
+"  ++.....@@@@@@@@@@.....++  ",
+"  ++......@@@@@@@@......++  ",
+"  ++.......@@@@@@.......++  ",
+"  ++.......@@@@@@.......++  ",
+"  ++......@@@@@@@@......++  ",
+"  ++.....@@@@@@@@@@.....++  ",
+"  ++....@@@@@..@@@@@....++  ",
+"  ++...@@@@@....@@@@@...++  ",
+"  ++..@@@@@......@@@@@..++  ",
+"  ++..@@@@........@@@@..++  ",
+"  ++..@@@..........@@@..++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++++++++++++++++++++++++  ",
+"  ++++++++++++++++++++++++  ",
+"                            ",
+"                            "};
+
+/* XPM */
+static const char * const cross_small_xpm[] = {
+"14 14 4 1",
+" 	c #09454A",
+".	c #218C98",
+"+	c #47D8E5",
+"@	c #FCFFFC",
+"              ",
+" ++++++++++++ ",
+" +..........+ ",
+" +.@@....@@.+ ",
+" +.@@@..@@@.+ ",
+" +..@@@@@@..+ ",
+" +...@@@@...+ ",
+" +...@@@@...+ ",
+" +..@@@@@@..+ ",
+" +.@@@..@@@.+ ",
+" +.@@....@@.+ ",
+" +..........+ ",
+" ++++++++++++ ",
+"              "};
+
+/* XPM */
+static const char * const max_big_xpm[] = {
+"28 28 4 1",
+" 	c #09454A",
+".	c #218C98",
+"+	c #47D8E5",
+"@	c #FDFFFC",
+"                            ",
+"                            ",
+"  ++++++++++++++++++++++++  ",
+"  ++++++++++++++++++++++++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++..@@@@@@@@@@@@@@@@..++  ",
+"  ++..@@@@@@@@@@@@@@@@..++  ",
+"  ++..@@@@@@@@@@@@@@@@..++  ",
+"  ++..@@@@@@@@@@@@@@@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@@@@@@@@@@@@@@@..++  ",
+"  ++..@@@@@@@@@@@@@@@@..++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++++++++++++++++++++++++  ",
+"  ++++++++++++++++++++++++  ",
+"                            ",
+"                            "};
+
+/* XPM */
+static const char * const max_small_xpm[] = {
+"14 14 4 1",
+" 	c #09454A",
+".	c #218C98",
+"+	c #47D8E5",
+"@	c #FCFFFC",
+"              ",
+" ++++++++++++ ",
+" +..........+ ",
+" +..........+ ",
+" +.@@@@@@@@.+ ",
+" +.@@@@@@@@.+ ",
+" +.@......@.+ ",
+" +.@......@.+ ",
+" +.@......@.+ ",
+" +.@@@@@@@@.+ ",
+" +..........+ ",
+" +..........+ ",
+" ++++++++++++ ",
+"              "};
+
+/* XPM */
+static const char * const normal_big_xpm[] = {
+"28 28 4 1",
+" 	c #09454A",
+".	c #218C98",
+"+	c #47D8E5",
+"@	c #FDFFFC",
+"                            ",
+"                            ",
+"  ++++++++++++++++++++++++  ",
+"  ++++++++++++++++++++++++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++..@@@@@@@@@@@@@@@@..++  ",
+"  ++..@@@@@@@@@@@@@@@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@............@@..++  ",
+"  ++..@@@@@@@@@@@@@@@@..++  ",
+"  ++..@@@@@@@@@@@@@@@@..++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++++++++++++++++++++++++  ",
+"  ++++++++++++++++++++++++  ",
+"                            ",
+"                            "};
+
+/* XPM */
+static const char * const normal_small_xpm[] = {
+"14 14 4 1",
+" 	c #09454A",
+".	c #218C98",
+"+	c #47D8E5",
+"@	c #FCFFFC",
+"              ",
+" ++++++++++++ ",
+" +..........+ ",
+" +.@@@@@@@@.+ ",
+" +.@......@.+ ",
+" +.@......@.+ ",
+" +.@......@.+ ",
+" +.@......@.+ ",
+" +.@......@.+ ",
+" +.@......@.+ ",
+" +.@@@@@@@@.+ ",
+" +..........+ ",
+" ++++++++++++ ",
+"              "};
+
+
+/* XPM */
+static const char * const min_big_xpm[] = {
+"28 28 4 1",
+" 	c #09454A",
+".	c #218C98",
+"+	c #47D8E5",
+"@	c #FDFFFC",
+"                            ",
+"                            ",
+"  ++++++++++++++++++++++++  ",
+"  ++++++++++++++++++++++++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++..@@@@@@@@@@@@@@@@..++  ",
+"  ++..@@@@@@@@@@@@@@@@..++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++....................++  ",
+"  ++++++++++++++++++++++++  ",
+"  ++++++++++++++++++++++++  ",
+"                            ",
+"                            "};
+
+/* XPM */
+static const char * const min_small_xpm[] = {
+"14 14 4 1",
+" 	c #09454A",
+".	c #218C98",
+"+	c #47D8E5",
+"@	c #FCFFFC",
+"              ",
+" ++++++++++++ ",
+" +..........+ ",
+" +..........+ ",
+" +..........+ ",
+" +..........+ ",
+" +..........+ ",
+" +..........+ ",
+" +..........+ ",
+" +.@@@@@@@@.+ ",
+" +..........+ ",
+" +..........+ ",
+" ++++++++++++ ",
+"              "};
+
+#ifdef Q_WS_WINCE_WM
+
+static char * sbhandleup_xpm[] = {
+"26 41 45 1",
+" 	c None",
+".	c #000000",
+"+	c #E7E7E7",
+"@	c #D6D7D6",
+"#	c #949294",
+"$	c #737573",
+"%	c #636563",
+"&	c #636163",
+"*	c #5A5D5A",
+"=	c #5A595A",
+"-	c #525552",
+";	c #525152",
+">	c #4A4D4A",
+",	c #7B797B",
+"'	c #CECFCE",
+")	c #CED3CE",
+"!	c #6B6D6B",
+"~	c #6B696B",
+"{	c #737173",
+"]	c #7B7D7B",
+"^	c #848684",
+"/	c #848284",
+"(	c #8C8A8C",
+"_	c #8C8E8C",
+":	c #B5B2B5",
+"<	c #FFFFFF",
+"[	c #949694",
+"}	c #B5B6B5",
+"|	c #9C9A9C",
+"1	c #ADAEAD",
+"2	c #9C9E9C",
+"3	c #BDBABD",
+"4	c #BDBEBD",
+"5	c #F7F3F7",
+"6	c #C6C3C6",
+"7	c #C6C7C6",
+"8	c #A5A2A5",
+"9	c #CECBCE",
+"0	c #FFFBFF",
+"a	c #ADAAAD",
+"b	c #A5A6A5",
+"c	c #D6D3D6",
+"d	c #B5BAB5",
+"e	c #DEDFDE",
+"f	c #DEDBDE",
+"..........................",
+"+@#$%%&&&**===---;;;;>=,'+",
+"+@#$%%&&&**===---;;;;>=$'+",
+")$!!~~%%&&&**===---;;;;>;'",
+"#{$]],,$${{{!!~~%%%&&&*-;]",
+"#{$]],,$${{{!!~~%%%&&&*-;]",
+",$^//]],,$${{{!!~~%%%&&*;*",
+",,(^^//]],$${!!!!!~~%%%&-*",
+",,(^^//]],$${!!!!!~~%%%&-*",
+"]]_((^^//]$!%%~!{{!!~~%%-*",
+"//#__((^^]{:<<:~!{{{!!~~=*",
+"//#__((^^]{:<<:~!{{{!!~~=&",
+"//###__(/$:<<<<:~{${{!!~*&",
+"^^[[##_^]:<<<<<<}!{$${{!*%",
+"^^[[##_^]:<<<<<<}!{$${{!*%",
+"((|[[#_/:<<<<<<<<}!$$${{&~",
+"((||[#^1<<<<1:<<<<}!$$$$&~",
+"((||[#^1<<<<1:<<<<}!$$$$&~",
+"__2|#(1<<<<}],}<<<<}{$,$%~",
+"##2|_1<<<<}^((]3<<<<}{$,~!",
+"##2|_1<<<<}^((]3<<<<}{$,~!",
+"##2#1<<<<3^###(/4<<<<}{,~{",
+"##2#1<<<<3^###(/4<<<<}{,~!",
+"[[2_5<<<4(#|[[#_/6<<<<,,!{",
+"[|2_5<<4_[||||[[_/7<<<,]{$",
+"[|2_5<<4_[||||[[_/7<<<,]{$",
+"||8_5<6#|2222|||[_/9<<,]{$",
+"228#06[28888222||[_/'<,/$,",
+"228#06[28888222||[_/'<,/$,",
+"22a|6[8bbbb88822||[(/c](,]",
+"881b8baaabbbb88222|[(^(_,]",
+"881b8baaabbbb88222|[(^(_,]",
+"88111111aaabbb88822|[###]/",
+"bb:::11111aaabbb8822||[[/^",
+"bb:::11111aaabbb8822||[[//",
+"bb:::::1111aaabbb8822||[/(",
+"3a1::::::1111aaabb8822|_^8",
+"da1::::::1111aaabb8822|_^8",
+"e1aaabbbb888822||[[##__((@",
+"+e4:aaabbbb88822||[[[#[b@+",
+"+e4:aaabbbb88822||[[[#[bf+"};
+
+static char * sbhandledown_xpm[] = {
+"26 40 46 1",
+" 	c None",
+".	c #E7E7E7",
+"+	c #DEDFDE",
+"@	c #BDBEBD",
+"#	c #B5B2B5",
+"$	c #ADAAAD",
+"%	c #A5A6A5",
+"&	c #A5A2A5",
+"*	c #9C9E9C",
+"=	c #9C9A9C",
+"-	c #949694",
+";	c #949294",
+">	c #D6D7D6",
+",	c #DEDBDE",
+"'	c #D6DBD6",
+")	c #ADAEAD",
+"!	c #8C8E8C",
+"~	c #8C8A8C",
+"{	c #BDBABD",
+"]	c #848684",
+"^	c #B5BAB5",
+"/	c #848284",
+"(	c #848A84",
+"_	c #7B7D7B",
+":	c #7B797B",
+"<	c #C6C3C6",
+"[	c #D6D3D6",
+"}	c #FFFBFF",
+"|	c #CECFCE",
+"1	c #FFFFFF",
+"2	c #737573",
+"3	c #F7F3F7",
+"4	c #CECBCE",
+"5	c #737173",
+"6	c #C6C7C6",
+"7	c #6B6D6B",
+"8	c #B5B6B5",
+"9	c #6B696B",
+"0	c #636563",
+"a	c #636163",
+"b	c #5A5D5A",
+"c	c #5A595A",
+"d	c #525552",
+"e	c #525152",
+"f	c #4A4D4A",
+"g	c #C6CBC6",
+".+@#$$$%%%%&&&**==---;-%>.",
+".+@#$$$%%%%&&&**==---;-%,.",
+"')$$$%%%%&&&&**==--;;!!~~>",
+"{$)######))))$$$%%&&**=!]&",
+"^$)######))))$$$%%&&**=!]&",
+"%%#####))))$$$%%%&&**==-/(",
+"%%###)))))$$$%%%&&**==--/]",
+"%%###)))))$$$%%%&&**==--//",
+"&&))))))$$$%%%&&&**=-;;;_/",
+"&&)%&%$$$%%%%&&***=-~]~!:_",
+"&&)%&%$$$%%%%&&***=-~]~!:_",
+"**$=<-&%%%%&&&**==-~/[_~:_",
+"**&;}<-*&&&&***==-!/|1:/2:",
+"**&;}<-*&&&&***==-!/|1:/2:",
+"==&!31<;=****===-!/411:_5:",
+"-=*!311@!-====--!/6111:_52",
+"-=*!311@!-====--!/6111:_52",
+"--*!3111@~;=--;!/<1111::75",
+";;*;)1111{];;;~/@111185:95",
+";;*;)1111{];;;~/@111185:97",
+";;*=!)11118]~~_{1111852:97",
+";;*=!)11118]~~_{1111852:97",
+"!!*=;~)11118_:81111852:207",
+"~~==-;])1111)#1111872222a9",
+"~~==-;])1111)#1111872222a9",
+"~~=--;!/#111111118722255a0",
+"]]--;;!]_#11111187522557b0",
+"]]--;;!]_#11111187522557b0",
+"//;;;!!~/2#1111#95255779ba",
+"//;!!~~]]_5#11#975557799cb",
+"//;!!~~]]_5#11#975557799ca",
+"__!~~]]//_27009755779900db",
+"::~]]//__:2257777799000adb",
+"::~]]//__:2257777799000adb",
+":2]//__::225557799000aabeb",
+";52__::225557799000aaabde_",
+";52__::225557799000aaabde_",
+"[2779900aaabbcccdddeeeefeg",
+".>;200aaabbcccdddeeeefc:|.",
+".>;200aaabbcccdddeeeefc2|."};
+
+static char * sbgripdown_xpm[] = {
+"26 34 39 1",
+" 	c None",
+".	c #949294",
+"+	c #9C9E9C",
+"@	c #9C9A9C",
+"#	c #949694",
+"$	c #8C8E8C",
+"%	c #8C8A8C",
+"&	c #848684",
+"*	c #848284",
+"=	c #7B7D7B",
+"-	c #7B797B",
+";	c #6B696B",
+">	c #636563",
+",	c #737573",
+"'	c #636163",
+")	c #737173",
+"!	c #5A5D5A",
+"~	c #6B6D6B",
+"{	c #5A595A",
+"]	c #B5B6B5",
+"^	c #BDBEBD",
+"/	c #ADAEAD",
+"(	c #BDBABD",
+"_	c #525552",
+":	c #313031",
+"<	c #525152",
+"[	c #ADAAAD",
+"}	c #BDBAB5",
+"|	c #4A4D4A",
+"1	c #4A494A",
+"2	c #C6C3C6",
+"3	c #C6CBC6",
+"4	c #E7E7E7",
+"5	c #DEDFDE",
+"6	c #E7E3E7",
+"7	c #DEE3DE",
+"8	c #CECBCE",
+"9	c #8C928C",
+"0	c #CECFCE",
+"..+++@@@###...$$%&&**==-;>",
+"$.++@@@@##...$$%%&**==-->>",
+"$$+@@@@###..$$%%&&*==--,>>",
+"$$@@@@###..$$%%&&**==-,,>'",
+"%%@@@###..$$$%&&**==--,,''",
+"%%@@###..$$$%&&**==--,,)''",
+"%%@###...$$%%&&*==--,,))'!",
+"&&###...$$%%&&**==--,)))!!",
+"&&##...$$%%&&**==--,,))~!!",
+"&&#...$$%%&&**==--,,))~~!{",
+"**...$$%%&&**==--,,))~~;!{",
+"**..$$%%&&**===--,)))~~;{{",
+"**.$$%%&]^&===//,,))~~;;{{",
+"==$$%%&&]^*==-((,))~~;;>{_",
+"==$%%&&***::--,,::~~;;;>__",
+"==%%&&&**=::-,,)::~~;;>>__",
+"--%&&&**==--,,)))~~;;>>>__",
+"--&&&**==--,,)))~~;;>>>'_<",
+",-&&**==]^-,))[[~;;>>>''<<",
+",,&**==-]^-)))}};;>>>'''<<",
+",,**==--,,::)~~;::>>'''!<<",
+"))*==--,,)::~~;;::>'''!!<|",
+"))==--,,)))~~;;;>>'''!!!||",
+"))=--,,)))~~;;;>>'''!!!{||",
+"~~--,,)))~~;;;>>'''!!!{{||",
+"~~-,,)))~~;;>>>'''!!!{{{|1",
+";;,,)))~~;;>>>'''!!!{{{_1<",
+"~;,)))~~;;>>>'''!!!{{{__1'",
+"%>~))~~;;>>>'''!!!{{{__|1$",
+"2>>~~~;;>>>''!!!{{{{__<113",
+"4%'';;;>>>''!!!{{{{__<11%4",
+"45-!!'>>>''!!!{{{{_<|11)64",
+"447+!{{___<<<||||1111|+444",
+"444489~__<<<||||111>$04444"};
+
+static char * sbgripup_xpm[] = {
+"26 34 38 1",
+" 	c None",
+".	c #E7E7E7",
+"+	c #D6DBD6",
+"@	c #C6C7C6",
+"#	c #B5B6B5",
+"$	c #ADAEAD",
+"%	c #ADAAAD",
+"&	c #A5A6A5",
+"*	c #A5A2A5",
+"=	c #BDBEBD",
+"-	c #DEDFDE",
+";	c #C6CBC6",
+">	c #9C9E9C",
+",	c #E7E3E7",
+"'	c #BDBABD",
+")	c #B5B2B5",
+"!	c #9C9A9C",
+"~	c #DEE3DE",
+"{	c #949694",
+"]	c #D6D7D6",
+"^	c #949294",
+"/	c #DEDBDE",
+"(	c #8C8E8C",
+"_	c #8C8A8C",
+":	c #848684",
+"<	c #D6D3CE",
+"[	c #CECBCE",
+"}	c #D6D3D6",
+"|	c #848284",
+"1	c #313031",
+"2	c #7B7D7B",
+"3	c #CECFCE",
+"4	c #CECBC6",
+"5	c #7B797B",
+"6	c #737573",
+"7	c #737173",
+"8	c #6B6D6B",
+"9	c #6B696B",
+"....+@#$$%%%%&&&***$=-....",
+"...;$$$$$%%%&&&&**>>>>@...",
+".,'$$)#'#####)))$$$%*!!$~.",
+".=$)#'''####))))$$$%%*!{'.",
+"]$$''''#####)))$$$%%%&*{^/",
+"=$#'''#####)))$$$$%%&&&!^#",
+"$$'''#####))))$$$%%%&&*>(!",
+"$$''#####))))$$$%%%&&&*>(^",
+"$$######))))$$$$%%&&&**>(_",
+"%$#####))))$$$$%%%&&***>__",
+"%$####))))$$$$%%%&&&**>>__",
+"%%###)))))$$$%%%&&&**>>>_:",
+"%%##))))<])$$%[[&&***>>!::",
+"%%#)))))<]$$%%}<&&**>>!!:|",
+"&%)))))$$$11%%&&11*>>>!!:|",
+"&&))))$$$$11%&&&11*>>!!{||",
+"&&)))$$$$$%%%&&&**>>!!!{|2",
+"&&))$$$$$%%%&&&**>>>!!{{|2",
+"*&)$$$$$3]%&&&4@*>>!!{{{22",
+"**$$$$$%3]%&&&<<>>!!!{{^25",
+"**$$$$%%%%11&**>11!!{{^^25",
+"**$$$%%%%&11***>11!!{{^^55",
+"**$$%%%%&&&***>>!!!{{^^(55",
+">>$%%%%&&&***>>>!!{{^^((56",
+">>%%%%&&&&***>>!!!{{^^((66",
+">>%%%&&&&***>>!!!{{^^((_67",
+"!>%%&&&&***>>>!!{{{^^(__67",
+"!!%&&&&***>>>!!!{{^^((_:77",
+"!!&&&&***>>>!!!{{^^((__:77",
+"!!&&&****>>!!!{{^^^(__::78",
+"{!&&****>>>!!{{{^^((_::|88",
+"{{&****>>>!!!{{^^((__:||88",
+"{{****>>>!!!{{^^^(__::|289",
+"{{***>>>!!!{{{^^((_::||289"};
+
+static char * sbgripmiddle_xpm[] = {
+"26 2 12 1",
+" 	c None",
+".	c #949294",
+"+	c #A5A2A5",
+"@	c #9C9E9C",
+"#	c #9C9A9C",
+"$	c #949694",
+"%	c #8C8E8C",
+"&	c #8C8A8C",
+"*	c #848684",
+"=	c #848284",
+"-	c #7B7D7B",
+";	c #6B696B",
+"..++@@@###$$$..%%&&*==--;;",
+"..++@@@###$$$..%%&&*==--;;"};
+
+
+static char * listviewhighmiddle_xpm[] = {
+"8 46 197 2",
+"  	c None",
+". 	c #66759E",
+"+ 	c #6C789D",
+"@ 	c #6A789E",
+"# 	c #6B789E",
+"$ 	c #6A779D",
+"% 	c #6C789C",
+"& 	c #6F7D9B",
+"* 	c #6F7D9A",
+"= 	c #9DB6EE",
+"- 	c #9DB6ED",
+"; 	c #9CB6ED",
+"> 	c #A1B6EF",
+", 	c #A2B6F0",
+"' 	c #93AAE9",
+") 	c #95ABEA",
+"! 	c #94ABEA",
+"~ 	c #94A9E8",
+"{ 	c #8BA8EA",
+"] 	c #8BA7EA",
+"^ 	c #8AA7EA",
+"/ 	c #8EAAE8",
+"( 	c #8FAAE8",
+"_ 	c #88A2E7",
+": 	c #8CA3E8",
+"< 	c #8BA3E7",
+"[ 	c #8BA3E8",
+"} 	c #8BA2E7",
+"| 	c #8CA2E7",
+"1 	c #8DA2E7",
+"2 	c #87A1E8",
+"3 	c #87A1E9",
+"4 	c #86A0E8",
+"5 	c #86A1E7",
+"6 	c #87A2E7",
+"7 	c #859EE9",
+"8 	c #849DE9",
+"9 	c #869EE9",
+"0 	c #869FE9",
+"a 	c #7C9BEA",
+"b 	c #7C9CEA",
+"c 	c #7B9CEA",
+"d 	c #7C9BE9",
+"e 	c #7E9CE9",
+"f 	c #7B9AEA",
+"g 	c #7C99E9",
+"h 	c #7C9AEA",
+"i 	c #7B9AE8",
+"j 	c #7A9AEA",
+"k 	c #7996E1",
+"l 	c #7C96E4",
+"m 	c #7B96E3",
+"n 	c #7B95E3",
+"o 	c #7E95E5",
+"p 	c #7E95E6",
+"q 	c #7292E1",
+"r 	c #7490DF",
+"s 	c #7591E0",
+"t 	c #7590DF",
+"u 	c #7392E1",
+"v 	c #6D8CDE",
+"w 	c #6F8EDD",
+"x 	c #6E8DDD",
+"y 	c #6E8DDE",
+"z 	c #6F8EDE",
+"A 	c #6E8EDE",
+"B 	c #718EDD",
+"C 	c #728EDD",
+"D 	c #6B89E0",
+"E 	c #6C89DF",
+"F 	c #6D89E0",
+"G 	c #6D89DF",
+"H 	c #6C88DF",
+"I 	c #6D88DF",
+"J 	c #6D86DD",
+"K 	c #6086E0",
+"L 	c #6686E0",
+"M 	c #6586E0",
+"N 	c #6486E0",
+"O 	c #6485E0",
+"P 	c #6786DF",
+"Q 	c #5F85E0",
+"R 	c #6583DE",
+"S 	c #6683DE",
+"T 	c #6682DD",
+"U 	c #6086DF",
+"V 	c #5F86E0",
+"W 	c #567ED7",
+"X 	c #567ED8",
+"Y 	c #557DD7",
+"Z 	c #5A7FD8",
+"` 	c #6281DA",
+" .	c #5379D9",
+"..	c #5278D9",
+"+.	c #547BD8",
+"@.	c #4C73D7",
+"#.	c #4B72D2",
+"$.	c #4C73D4",
+"%.	c #4C73D3",
+"&.	c #4B72D4",
+"*.	c #4F75D3",
+"=.	c #5074D2",
+"-.	c #4971D0",
+";.	c #4871D0",
+">.	c #335ECF",
+",.	c #325ECB",
+"'.	c #335ECD",
+").	c #335ECE",
+"!.	c #325DCD",
+"~.	c #2E59C9",
+"{.	c #3059C9",
+"].	c #2F59C9",
+"^.	c #2F59C8",
+"/.	c #2B59CA",
+"(.	c #3355C6",
+"_.	c #3354C5",
+":.	c #3156C7",
+"<.	c #3056C7",
+"[.	c #3355C7",
+"}.	c #3355C5",
+"|.	c #254EBF",
+"1.	c #1F51C1",
+"2.	c #234FC0",
+"3.	c #234FBF",
+"4.	c #2350C0",
+"5.	c #1E50BE",
+"6.	c #1D50C0",
+"7.	c #264DBE",
+"8.	c #264CBD",
+"9.	c #254DBE",
+"0.	c #244EBF",
+"a.	c #254DBF",
+"b.	c #234CBF",
+"c.	c #244CC0",
+"d.	c #244BC0",
+"e.	c #234BC0",
+"f.	c #234BBF",
+"g.	c #234CBE",
+"h.	c #2049B7",
+"i.	c #2A49B5",
+"j.	c #2749B5",
+"k.	c #2749B6",
+"l.	c #2D49B4",
+"m.	c #2649B6",
+"n.	c #2946B5",
+"o.	c #2A48B6",
+"p.	c #2947B5",
+"q.	c #2946B6",
+"r.	c #2848B6",
+"s.	c #2549B5",
+"t.	c #2648B6",
+"u.	c #2744B5",
+"v.	c #2744B4",
+"w.	c #2744AF",
+"x.	c #2543B4",
+"y.	c #2543B2",
+"z.	c #2442B2",
+"A.	c #2442B3",
+"B.	c #2442B5",
+"C.	c #2543B3",
+"D.	c #1F40B1",
+"E.	c #1E40B1",
+"F.	c #243EAE",
+"G.	c #273BAC",
+"H.	c #263DAC",
+"I.	c #253CAB",
+"J.	c #273CAB",
+"K.	c #273CAC",
+"L.	c #263BAA",
+"M.	c #253CAE",
+"N.	c #263BA6",
+"O.	c #253BA5",
+"P.	c #253AA5",
+"Q.	c #253BA6",
+"R.	c #253CA7",
+"S.	c #263AA6",
+"T.	c #243CA6",
+"U.	c #253CA5",
+"V.	c #273BA8",
+"W.	c #2F4DA4",
+"X.	c #2F4DA3",
+"Y.	c #1B2F85",
+"Z.	c #B5B5B6",
+"`.	c #B5B5B5",
+" +	c #B5B6B6",
+".+	c #B5B4B6",
+"++	c #C2C3C5",
+"@+	c #C0C3C3",
+"#+	c #C1C3C4",
+"$+	c #E3E3E3",
+"%+	c #E3E3E4",
+"&+	c #E4E3E4",
+"*+	c #E2E3E4",
+"=+	c #ECEEEB",
+"-+	c #EBEDEA",
+";+	c #EEF0ED",
+">+	c #EFF0EE",
+". + @ @ # # $ % ",
+"& & * & & & & & ",
+"= = - = = ; > , ",
+"' ) ! ! ! ) ' ~ ",
+"{ ] { { { ^ / ( ",
+"_ : < [ : } | 1 ",
+"2 2 2 3 2 4 5 6 ",
+"7 7 7 7 7 8 9 0 ",
+"a b a a a c d e ",
+"f g h h h h i j ",
+"k l m m m n o p ",
+"q q q q q q q q ",
+"r r s s s t q u ",
+"v w x y z A B C ",
+"D E F F G F H I ",
+"J K L M N O P Q ",
+"R R S S S T U V ",
+"W W X X X Y Z ` ",
+" . . . . ...+.W ",
+" . . . . ..... .",
+"@.#.$.$.%.&.*.=.",
+"-.-.;.-.-.-.-.-.",
+">.,.'.).).!.!.>.",
+"~.{.].^.].^././.",
+"(.(.(.(.(._.:.<.",
+"(.(.[.[.[.[.(.}.",
+"|.1.2.3.3.4.5.6.",
+"7.7.7.7.7.8.9.0.",
+"a.b.c.d.c.e.f.g.",
+"h.i.j.k.j.k.l.m.",
+"n.o.p.q.r.p.s.t.",
+"u.u.v.u.u.u.u.u.",
+"w.x.y.z.A.y.B.C.",
+"D.D.E.D.D.D.D.D.",
+"D.D.E.D.D.D.D.D.",
+"F.G.H.I.J.K.L.M.",
+"N.N.O.N.N.P.Q.R.",
+"N.N.S.N.N.N.N.N.",
+"T.N.T.T.T.U.N.V.",
+"W.W.X.W.W.W.W.W.",
+"W.W.W.W.W.W.W.W.",
+"Y.Y.Y.Y.Y.Y.Y.Y.",
+"Z.`. + +.+Z.`.`.",
+"++@+#+#+#+#+@+@+",
+"$+%+&+&+*+%+%+%+",
+"=+-+;+-+-+>+-+-+"};
+
+
+
+static char * listviewhighcornerleft_xpm[] = {
+"100 46 1475 2",
+"  	c None",
+". 	c #FBFBFC",
+"+ 	c #E8EAE7",
+"@ 	c #758DC3",
+"# 	c #42599E",
+"$ 	c #28418A",
+"% 	c #19418F",
+"& 	c #3F5695",
+"* 	c #415896",
+"= 	c #435A98",
+"- 	c #445C99",
+"; 	c #465E9B",
+"> 	c #48609B",
+", 	c #49629C",
+"' 	c #4A639D",
+") 	c #49639D",
+"! 	c #4A629D",
+"~ 	c #4B639D",
+"{ 	c #4B649D",
+"] 	c #4C659D",
+"^ 	c #4D669D",
+"/ 	c #4E689D",
+"( 	c #506A9D",
+"_ 	c #516A9D",
+": 	c #536B9C",
+"< 	c #546C9C",
+"[ 	c #566D9B",
+"} 	c #576D9B",
+"| 	c #586E9C",
+"1 	c #5B6F9D",
+"2 	c #61739D",
+"3 	c #63749E",
+"4 	c #64749E",
+"5 	c #68769E",
+"6 	c #6A779E",
+"7 	c #6B789E",
+"8 	c #66759E",
+"9 	c #6C789D",
+"0 	c #EEF0ED",
+"a 	c #D0D3DC",
+"b 	c #3E51A3",
+"c 	c #28428B",
+"d 	c #29428C",
+"e 	c #425996",
+"f 	c #455C99",
+"g 	c #485F9C",
+"h 	c #49619E",
+"i 	c #4A63A0",
+"j 	c #4B64A1",
+"k 	c #4B65A1",
+"l 	c #4C66A2",
+"m 	c #4D67A2",
+"n 	c #4F69A1",
+"o 	c #516AA1",
+"p 	c #536CA0",
+"q 	c #556DA1",
+"r 	c #576EA0",
+"s 	c #586F9F",
+"t 	c #586E9F",
+"u 	c #596F9E",
+"v 	c #5A6F9E",
+"w 	c #5C709E",
+"x 	c #5E719E",
+"y 	c #5F729F",
+"z 	c #62739F",
+"A 	c #63739E",
+"B 	c #64749D",
+"C 	c #65749E",
+"D 	c #69769D",
+"E 	c #6C799E",
+"F 	c #6D799F",
+"G 	c #707D9F",
+"H 	c #717F9E",
+"I 	c #6E7AA1",
+"J 	c #6C789E",
+"K 	c #6F7C9C",
+"L 	c #6F7D9B",
+"M 	c #2A4AA0",
+"N 	c #4971D0",
+"O 	c #4C72D8",
+"P 	c #5472C0",
+"Q 	c #5573BF",
+"R 	c #5774BF",
+"S 	c #5875BF",
+"T 	c #5976C1",
+"U 	c #5A76C1",
+"V 	c #5C78C2",
+"W 	c #5E7AC2",
+"X 	c #607CC3",
+"Y 	c #627EC3",
+"Z 	c #637FC4",
+"` 	c #6581C5",
+" .	c #6682C6",
+"..	c #6783C7",
+"+.	c #6984C8",
+"@.	c #6B85C9",
+"#.	c #6D87CA",
+"$.	c #6F89CB",
+"%.	c #718CCD",
+"&.	c #748ECF",
+"*.	c #7690D0",
+"=.	c #7992D2",
+"-.	c #7A93D3",
+";.	c #7C95D5",
+">.	c #7F98D7",
+",.	c #8099D8",
+"'.	c #859CDB",
+").	c #8AA0DD",
+"!.	c #8DA3DF",
+"~.	c #8FA5E0",
+"{.	c #90A5E0",
+"].	c #91A6E1",
+"^.	c #91A5E1",
+"/.	c #90A4E0",
+"(.	c #8EA3DE",
+"_.	c #92A6E2",
+":.	c #8FA4DF",
+"<.	c #90A5DE",
+"[.	c #90A5DC",
+"}.	c #90A6DB",
+"|.	c #91A6E0",
+"1.	c #93A7E2",
+"2.	c #95AAE6",
+"3.	c #99AEEA",
+"4.	c #9AB2EA",
+"5.	c #99B1E9",
+"6.	c #99B1E7",
+"7.	c #98AFE6",
+"8.	c #93A8E2",
+"9.	c #97ACE7",
+"0.	c #9AB3EB",
+"a.	c #9DB5ED",
+"b.	c #9DB6EE",
+"c.	c #375095",
+"d.	c #4056AD",
+"e.	c #506DCD",
+"f.	c #4360CC",
+"g.	c #345ED6",
+"h.	c #335ECF",
+"i.	c #355ED6",
+"j.	c #355FD6",
+"k.	c #365FD6",
+"l.	c #355FD0",
+"m.	c #3760D5",
+"n.	c #3A63D4",
+"o.	c #3C63D1",
+"p.	c #3B63CD",
+"q.	c #3B63C9",
+"r.	c #3B62C9",
+"s.	c #3D63C8",
+"t.	c #4065C5",
+"u.	c #4567C5",
+"v.	c #496BC5",
+"w.	c #4F70C7",
+"x.	c #5273C8",
+"y.	c #5475CA",
+"z.	c #5777CB",
+"A.	c #5879CD",
+"B.	c #5A7BCE",
+"C.	c #5D7DCF",
+"D.	c #5F7ECF",
+"E.	c #617FD0",
+"F.	c #6381D1",
+"G.	c #6583D2",
+"H.	c #6785D2",
+"I.	c #6886D3",
+"J.	c #6A88D4",
+"K.	c #6C89D5",
+"L.	c #6E8BD6",
+"M.	c #708CD7",
+"N.	c #718DD8",
+"O.	c #738EDA",
+"P.	c #748FDB",
+"Q.	c #7691DC",
+"R.	c #7893DD",
+"S.	c #7994DD",
+"T.	c #7A96DE",
+"U.	c #7B97DF",
+"V.	c #7C98E0",
+"W.	c #7E9AE2",
+"X.	c #7F9BE3",
+"Y.	c #829DE4",
+"Z.	c #849FE5",
+"`.	c #87A0E6",
+" +	c #88A1E7",
+".+	c #89A2E6",
+"++	c #8CA3E7",
+"@+	c #8EA5E9",
+"#+	c #8EA6E9",
+"$+	c #8FA7E9",
+"%+	c #8FA8E8",
+"&+	c #8FA9E8",
+"*+	c #91A9E8",
+"=+	c #90A7E8",
+"-+	c #8FA8EA",
+";+	c #90AAEA",
+">+	c #93ABEA",
+",+	c #95ABEA",
+"'+	c #93ABE9",
+")+	c #94ABEA",
+"!+	c #90A9EA",
+"~+	c #93AAE9",
+"{+	c #273E7E",
+"]+	c #345ED5",
+"^+	c #3D60CE",
+"/+	c #3D60CF",
+"(+	c #345ECF",
+"_+	c #335ED0",
+":+	c #355FD3",
+"<+	c #3A60CE",
+"[+	c #3A5FCB",
+"}+	c #385FC9",
+"|+	c #3B60C8",
+"1+	c #3C63CB",
+"2+	c #3E64CB",
+"3+	c #4166CA",
+"4+	c #4568C9",
+"5+	c #4A6CC7",
+"6+	c #4F71C8",
+"7+	c #5172CA",
+"8+	c #5475CE",
+"9+	c #5678D3",
+"0+	c #597CD6",
+"a+	c #5C7ED7",
+"b+	c #5E7FD8",
+"c+	c #6181D9",
+"d+	c #6383DA",
+"e+	c #6585DA",
+"f+	c #6786DB",
+"g+	c #6988DC",
+"h+	c #6B8ADD",
+"i+	c #6D8BDE",
+"j+	c #6F8DDE",
+"k+	c #718EDF",
+"l+	c #728FE0",
+"m+	c #7390E1",
+"n+	c #7390E2",
+"o+	c #7491E3",
+"p+	c #7592E4",
+"q+	c #7693E4",
+"r+	c #7794E5",
+"s+	c #7894E5",
+"t+	c #7995E6",
+"u+	c #7B96E6",
+"v+	c #7C97E7",
+"w+	c #7D9AE8",
+"x+	c #7F9CE9",
+"y+	c #829DE9",
+"z+	c #849EE9",
+"A+	c #859EE9",
+"B+	c #87A0E7",
+"C+	c #8AA2E7",
+"D+	c #8BA3E8",
+"E+	c #89A2E7",
+"F+	c #8CA6EA",
+"G+	c #8BA6EA",
+"H+	c #8BA7EA",
+"I+	c #8CA3E8",
+"J+	c #8BA8EA",
+"K+	c #8CA7EA",
+"L+	c #8CA8EA",
+"M+	c #4659C7",
+"N+	c #355ECF",
+"O+	c #3660CF",
+"P+	c #3860CE",
+"Q+	c #3961CD",
+"R+	c #3B61CB",
+"S+	c #3B61CA",
+"T+	c #3D62CA",
+"U+	c #3D63CA",
+"V+	c #4165CB",
+"W+	c #456ACB",
+"X+	c #4B6FCD",
+"Y+	c #5174CE",
+"Z+	c #5275D1",
+"`+	c #5477D4",
+" @	c #5678D9",
+".@	c #587ADB",
+"+@	c #597BDB",
+"@@	c #5B7DDC",
+"#@	c #5E7FDC",
+"$@	c #6081DD",
+"%@	c #6283DE",
+"&@	c #6484DF",
+"*@	c #6787E0",
+"=@	c #6989E1",
+"-@	c #6B8BE1",
+";@	c #6D8DE2",
+">@	c #6F8EE3",
+",@	c #718FE4",
+"'@	c #7290E4",
+")@	c #7491E5",
+"!@	c #7692E6",
+"~@	c #7793E5",
+"{@	c #7894E6",
+"]@	c #7895E7",
+"^@	c #7996E8",
+"/@	c #7A97E8",
+"(@	c #7B98E9",
+"_@	c #7D99E8",
+":@	c #7F9AE8",
+"<@	c #7F9BE9",
+"[@	c #7F9CEA",
+"}@	c #859EE8",
+"|@	c #859FE8",
+"1@	c #85A0E9",
+"2@	c #869FE9",
+"3@	c #86A1E7",
+"4@	c #86A0E9",
+"5@	c #87A1E7",
+"6@	c #88A2E7",
+"7@	c #87A1E9",
+"8@	c #5A6FCA",
+"9@	c #365FCF",
+"0@	c #345ED0",
+"a@	c #385FCC",
+"b@	c #385FCE",
+"c@	c #3A61CC",
+"d@	c #3B62CD",
+"e@	c #3E64CD",
+"f@	c #4167CF",
+"g@	c #4469CF",
+"h@	c #486CD1",
+"i@	c #4D71D2",
+"j@	c #5175D4",
+"k@	c #5376D6",
+"l@	c #5578DA",
+"m@	c #5679DC",
+"n@	c #587BDD",
+"o@	c #5A7DDE",
+"p@	c #5D80DE",
+"q@	c #5F82DF",
+"r@	c #6284DF",
+"s@	c #6585E0",
+"t@	c #6787E1",
+"u@	c #6988E2",
+"v@	c #6B8AE2",
+"w@	c #6D8CE3",
+"x@	c #6E8DE3",
+"y@	c #708EE4",
+"z@	c #718FE3",
+"A@	c #7391E4",
+"B@	c #7592E5",
+"C@	c #7895E5",
+"D@	c #7996E6",
+"E@	c #7A97E6",
+"F@	c #7B98E7",
+"G@	c #7A98E8",
+"H@	c #7B99E9",
+"I@	c #7E9AE9",
+"J@	c #7D9AE9",
+"K@	c #7E9AEA",
+"L@	c #809CE9",
+"M@	c #819DE8",
+"N@	c #7F9BEA",
+"O@	c #819DE9",
+"P@	c #819CE9",
+"Q@	c #839EE9",
+"R@	c #839EE8",
+"S@	c #839DEA",
+"T@	c #859FE9",
+"U@	c #87A0E8",
+"V@	c #86A0E8",
+"W@	c #87A1E8",
+"X@	c #3760CF",
+"Y@	c #3A61CE",
+"Z@	c #3A62CD",
+"`@	c #3F66CE",
+" #	c #4368D0",
+".#	c #466CD2",
+"+#	c #496DD5",
+"@#	c #4E72D6",
+"##	c #5175D8",
+"$#	c #5276DA",
+"%#	c #5578DC",
+"&#	c #577ADC",
+"*#	c #597CDD",
+"=#	c #5B7DDD",
+"-#	c #5D7FDE",
+";#	c #5E81DE",
+">#	c #6183DF",
+",#	c #6386DF",
+"'#	c #6687E0",
+")#	c #6888E0",
+"!#	c #6A89E1",
+"~#	c #6C8AE1",
+"{#	c #6E8CE2",
+"]#	c #6F8DE2",
+"^#	c #7390E4",
+"/#	c #7390E3",
+"(#	c #7491E4",
+"_#	c #7693E5",
+":#	c #7895E6",
+"<#	c #7896E6",
+"[#	c #7997E7",
+"}#	c #7B97E7",
+"|#	c #7B98E8",
+"1#	c #7C98E8",
+"2#	c #7E9BE9",
+"3#	c #809CEA",
+"4#	c #819CEA",
+"5#	c #839DE9",
+"6#	c #365FD0",
+"7#	c #3660D0",
+"8#	c #3961CF",
+"9#	c #3B63CF",
+"0#	c #3D64D0",
+"a#	c #4067D0",
+"b#	c #4469D2",
+"c#	c #466BD3",
+"d#	c #496ED5",
+"e#	c #4C71D6",
+"f#	c #4E72D8",
+"g#	c #5074D9",
+"h#	c #5376DB",
+"i#	c #5578DB",
+"j#	c #587ADC",
+"k#	c #5B7CDC",
+"l#	c #5D7EDD",
+"m#	c #5F80DD",
+"n#	c #6081DE",
+"o#	c #6383DE",
+"p#	c #6686DF",
+"q#	c #6887E0",
+"r#	c #6988E0",
+"s#	c #6B89E1",
+"t#	c #6C8AE0",
+"u#	c #6E8CE1",
+"v#	c #708EE2",
+"w#	c #718FE2",
+"x#	c #7290E3",
+"y#	c #7391E2",
+"z#	c #7492E1",
+"A#	c #7592E2",
+"B#	c #7691E3",
+"C#	c #7591E3",
+"D#	c #7692E3",
+"E#	c #7693E3",
+"F#	c #7793E4",
+"G#	c #7893E4",
+"H#	c #7994E5",
+"I#	c #7D97E8",
+"J#	c #7E98E8",
+"K#	c #7D98E8",
+"L#	c #7D99E9",
+"M#	c #7D9BEA",
+"N#	c #7D9CEA",
+"O#	c #7E99E8",
+"P#	c #7D9AEA",
+"Q#	c #7C9BEA",
+"R#	c #7C9CEA",
+"S#	c #355FCF",
+"T#	c #3860D0",
+"U#	c #3A62D0",
+"V#	c #3C64D1",
+"W#	c #4167D1",
+"X#	c #4369D3",
+"Y#	c #466BD4",
+"Z#	c #486DD5",
+"`#	c #4A6ED7",
+" $	c #4C70D8",
+".$	c #5478D9",
+"+$	c #577BDA",
+"@$	c #597DDB",
+"#$	c #5B7EDB",
+"$$	c #5D7FDC",
+"%$	c #6182DE",
+"&$	c #6284DE",
+"*$	c #6485DF",
+"=$	c #6586DF",
+"-$	c #6787DF",
+";$	c #6888DF",
+">$	c #6A8ADF",
+",$	c #6C8BE0",
+"'$	c #6D8CE0",
+")$	c #6E8DE1",
+"!$	c #6F8DE1",
+"~$	c #708EE1",
+"{$	c #718FE0",
+"]$	c #728FE1",
+"^$	c #7390E0",
+"/$	c #738FE0",
+"($	c #7490E1",
+"_$	c #7590E1",
+":$	c #7591E1",
+"<$	c #7592E1",
+"[$	c #7692E2",
+"}$	c #7794E2",
+"|$	c #7894E3",
+"1$	c #7996E3",
+"2$	c #7A96E5",
+"3$	c #7B98E6",
+"4$	c #7B9AE8",
+"5$	c #7C99E8",
+"6$	c #7C96E5",
+"7$	c #7D97E7",
+"8$	c #7C99E9",
+"9$	c #7B9AE9",
+"0$	c #7B9AEA",
+"a$	c #5B6DCF",
+"b$	c #305EC8",
+"c$	c #335ECE",
+"d$	c #305ECA",
+"e$	c #345FCF",
+"f$	c #3761D0",
+"g$	c #3A62D1",
+"h$	c #3C64D2",
+"i$	c #4066D3",
+"j$	c #466BD5",
+"k$	c #486ED6",
+"l$	c #4A6ED6",
+"m$	c #4D71D8",
+"n$	c #4F72D9",
+"o$	c #5073D9",
+"p$	c #4F72D8",
+"q$	c #5074D8",
+"r$	c #5276D9",
+"s$	c #587ADA",
+"t$	c #5B7CDB",
+"u$	c #5D7EDC",
+"v$	c #5F7FDD",
+"w$	c #6081DC",
+"x$	c #6182DD",
+"y$	c #6283DD",
+"z$	c #6484DE",
+"A$	c #6585DD",
+"B$	c #6787DE",
+"C$	c #6988DF",
+"D$	c #6A89DE",
+"E$	c #6C8ADF",
+"F$	c #6D8BDF",
+"G$	c #6E8CE0",
+"H$	c #6F8DE0",
+"I$	c #718EE0",
+"J$	c #728FDF",
+"K$	c #728FDE",
+"L$	c #7290E0",
+"M$	c #7190E0",
+"N$	c #7291E0",
+"O$	c #7191E0",
+"P$	c #7392E1",
+"Q$	c #7493E1",
+"R$	c #7594E1",
+"S$	c #7594E2",
+"T$	c #7694E2",
+"U$	c #7695E2",
+"V$	c #7A96E4",
+"W$	c #7895E2",
+"X$	c #7A96E2",
+"Y$	c #7A96E3",
+"Z$	c #7B96E3",
+"`$	c #7996E1",
+" %	c #7C96E4",
+".%	c #305EC9",
+"+%	c #315ECC",
+"@%	c #325ECE",
+"#%	c #3760D0",
+"$%	c #3962D1",
+"%%	c #3E66D3",
+"&%	c #4268D4",
+"*%	c #446BD5",
+"=%	c #476CD6",
+"-%	c #496ED7",
+";%	c #4B6FD7",
+">%	c #4C70D7",
+",%	c #4E71D7",
+"'%	c #5074D7",
+")%	c #5276D8",
+"!%	c #5376D8",
+"~%	c #5779DA",
+"{%	c #597ADA",
+"]%	c #5A7BDB",
+"^%	c #5B7CDA",
+"/%	c #5D7EDB",
+"(%	c #5E7FDB",
+"_%	c #6182DB",
+":%	c #6384DC",
+"<%	c #6586DD",
+"[%	c #6686DC",
+"}%	c #6887DD",
+"|%	c #6988DD",
+"1%	c #6A8ADE",
+"2%	c #6B8BDE",
+"3%	c #6C8CDE",
+"4%	c #6E8DDF",
+"5%	c #6E8CDF",
+"6%	c #6D8DDF",
+"7%	c #6C8BDF",
+"8%	c #6F8DDF",
+"9%	c #718FDF",
+"0%	c #7290DF",
+"a%	c #7391E0",
+"b%	c #7491E0",
+"c%	c #7292E1",
+"d%	c #3959C5",
+"e%	c #345BC5",
+"f%	c #315EC8",
+"g%	c #355BC5",
+"h%	c #325EC8",
+"i%	c #315ECB",
+"j%	c #345DCC",
+"k%	c #335ECD",
+"l%	c #345ECD",
+"m%	c #355FCE",
+"n%	c #3862D0",
+"o%	c #3E66D2",
+"p%	c #456BD5",
+"q%	c #476CD5",
+"r%	c #4B6ED7",
+"s%	c #4B6FD6",
+"t%	c #4B6FD5",
+"u%	c #4D71D6",
+"v%	c #5073D7",
+"w%	c #5174D7",
+"x%	c #5275D8",
+"y%	c #5577D8",
+"z%	c #5678D8",
+"A%	c #5779D9",
+"B%	c #587AD8",
+"C%	c #597CD9",
+"D%	c #5B7DD9",
+"E%	c #5D7FDA",
+"F%	c #5F80DB",
+"G%	c #6182DC",
+"H%	c #6484DC",
+"I%	c #6585DC",
+"J%	c #6787DD",
+"K%	c #6988DE",
+"L%	c #6B8ADE",
+"M%	c #6B8ADF",
+"N%	c #6989DE",
+"O%	c #6B89DE",
+"P%	c #6E8BDF",
+"Q%	c #708CDE",
+"R%	c #708DDF",
+"S%	c #708FDF",
+"T%	c #728EDF",
+"U%	c #6F8EDD",
+"V%	c #728EDD",
+"W%	c #7390DF",
+"X%	c #7490DF",
+"Y%	c #335DC8",
+"Z%	c #3759C5",
+"`%	c #3859C5",
+" &	c #335EC8",
+".&	c #325DCA",
+"+&	c #345CCB",
+"@&	c #335DCC",
+"#&	c #345DCD",
+"$&	c #355FCD",
+"%&	c #3861D0",
+"&&	c #3B64D1",
+"*&	c #3E65D2",
+"=&	c #4168D3",
+"-&	c #456AD5",
+";&	c #4B6ED5",
+">&	c #4C6FD4",
+",&	c #4D70D5",
+"'&	c #4F72D6",
+")&	c #5173D6",
+"!&	c #5375D7",
+"~&	c #5476D8",
+"{&	c #5577D7",
+"]&	c #5477D8",
+"^&	c #5677D8",
+"/&	c #5879D9",
+"(&	c #597AD9",
+"_&	c #5C7DDA",
+":&	c #6080DC",
+"<&	c #6080DB",
+"[&	c #6181DC",
+"}&	c #6282DC",
+"|&	c #6383DD",
+"1&	c #6484DD",
+"2&	c #6686DE",
+"3&	c #6685DE",
+"4&	c #6786DE",
+"5&	c #6687DE",
+"6&	c #6887DE",
+"7&	c #6987DE",
+"8&	c #6788DF",
+"9&	c #6785DF",
+"0&	c #6B89DF",
+"a&	c #6C89DF",
+"b&	c #6F8DDD",
+"c&	c #6D8CDE",
+"d&	c #445BBB",
+"e&	c #3759BE",
+"f&	c #375AC6",
+"g&	c #355CC8",
+"h&	c #345CCA",
+"i&	c #355ECC",
+"j&	c #365FCD",
+"k&	c #3761CE",
+"l&	c #3A63D0",
+"m&	c #3D65D1",
+"n&	c #466AD4",
+"o&	c #476BD4",
+"p&	c #486CD3",
+"q&	c #4A6ED4",
+"r&	c #4B6ED4",
+"s&	c #4E71D6",
+"t&	c #4F71D5",
+"u&	c #5072D6",
+"v&	c #5274D7",
+"w&	c #5273D7",
+"x&	c #5274D6",
+"y&	c #5476D7",
+"z&	c #5779D8",
+"A&	c #587AD9",
+"B&	c #5A7CDA",
+"C&	c #5C7DDB",
+"D&	c #5D7EDA",
+"E&	c #6081DA",
+"F&	c #6181DB",
+"G&	c #6283DC",
+"H&	c #6483DD",
+"I&	c #6483DE",
+"J&	c #6585DE",
+"K&	c #6786DF",
+"L&	c #6886DE",
+"M&	c #6887DF",
+"N&	c #6987DF",
+"O&	c #6A88DF",
+"P&	c #6786E0",
+"Q&	c #6A86DE",
+"R&	c #6B89E0",
+"S&	c #365BC8",
+"T&	c #365CC8",
+"U&	c #375DCA",
+"V&	c #375FCB",
+"W&	c #3860CD",
+"X&	c #3C63D0",
+"Y&	c #4167D2",
+"Z&	c #4268D2",
+"`&	c #4368D2",
+" *	c #4367D2",
+".*	c #4568D2",
+"+*	c #466AD2",
+"@*	c #496CD3",
+"#*	c #4A6DD3",
+"$*	c #4A6DD4",
+"%*	c #4D70D4",
+"&*	c #4F72D5",
+"**	c #4C70D4",
+"=*	c #4E72D5",
+"-*	c #5173D5",
+";*	c #5375D6",
+">*	c #597BDA",
+",*	c #5B7DDA",
+"'*	c #5C7EDB",
+")*	c #5D7FDB",
+"!*	c #5E80DB",
+"~*	c #5E81DA",
+"{*	c #5F81DB",
+"]*	c #5F82DB",
+"^*	c #6384DD",
+"/*	c #6384DE",
+"(*	c #6585DF",
+"_*	c #6486E0",
+":*	c #6583DD",
+"<*	c #6386E0",
+"[*	c #6686E0",
+"}*	c #6B86DD",
+"|*	c #6D86DD",
+"1*	c #6086E0",
+"2*	c #5573CD",
+"3*	c #3959C3",
+"4*	c #3959C4",
+"5*	c #3759C0",
+"6*	c #375BC7",
+"7*	c #365CC7",
+"8*	c #395FCC",
+"9*	c #3B62CE",
+"0*	c #3E64D0",
+"a*	c #4066D1",
+"b*	c #4166D1",
+"c*	c #4064CF",
+"d*	c #4065CF",
+"e*	c #4266D0",
+"f*	c #4468D1",
+"g*	c #4569D1",
+"h*	c #476BD2",
+"i*	c #466AD1",
+"j*	c #476AD2",
+"k*	c #456AD1",
+"l*	c #496DD2",
+"m*	c #4A6FD3",
+"n*	c #496ED2",
+"o*	c #4B70D4",
+"p*	c #4D71D4",
+"q*	c #4E72D4",
+"r*	c #5073D4",
+"s*	c #5174D5",
+"t*	c #5175D5",
+"u*	c #5276D6",
+"v*	c #5377D6",
+"w*	c #5478D7",
+"x*	c #5579D7",
+"y*	c #567AD8",
+"z*	c #577BD9",
+"A*	c #597CD8",
+"B*	c #5A7DD9",
+"C*	c #5A7ED9",
+"D*	c #5B7FDA",
+"E*	c #5C80DA",
+"F*	c #5D80DA",
+"G*	c #5E81DB",
+"H*	c #5D80DB",
+"I*	c #6082DC",
+"J*	c #6183DD",
+"K*	c #6183DE",
+"L*	c #6082DB",
+"M*	c #6282DE",
+"N*	c #6682DE",
+"O*	c #6583DE",
+"P*	c #3759BF",
+"Q*	c #375AC2",
+"R*	c #375AC1",
+"S*	c #375AC4",
+"T*	c #395DCA",
+"U*	c #3A5ECA",
+"V*	c #3C60CC",
+"W*	c #3D61CD",
+"X*	c #3D61CC",
+"Y*	c #3C61CD",
+"Z*	c #3E62CD",
+"`*	c #3F64CE",
+" =	c #4266CF",
+".=	c #4468D0",
+"+=	c #4267CF",
+"@=	c #4166CE",
+"#=	c #4065CE",
+"$=	c #4166CD",
+"%=	c #4267CE",
+"&=	c #456AD0",
+"*=	c #4368CE",
+"==	c #4468CF",
+"-=	c #4569D0",
+";=	c #486BD1",
+">=	c #4B6FD3",
+",=	c #4C70D3",
+"'=	c #4F73D4",
+")=	c #5275D5",
+"!=	c #5477D6",
+"~=	c #577BD7",
+"{=	c #587CD8",
+"]=	c #577CD8",
+"^=	c #597DD9",
+"/=	c #5A7DDA",
+"(=	c #597DDA",
+"_=	c #587CDA",
+":=	c #5A7EDA",
+"<=	c #567BD8",
+"[=	c #557AD9",
+"}=	c #567BD9",
+"|=	c #577CD9",
+"1=	c #587DD9",
+"2=	c #587ED9",
+"3=	c #577ED8",
+"4=	c #587DD8",
+"5=	c #587ED8",
+"6=	c #567ED7",
+"7=	c #526ABD",
+"8=	c #3759C1",
+"9=	c #385BC7",
+"0=	c #395CC8",
+"a=	c #3B5DC9",
+"b=	c #3B5ECA",
+"c=	c #3A5FCA",
+"d=	c #3B60CC",
+"e=	c #3C61CC",
+"f=	c #3D62CD",
+"g=	c #3E63CD",
+"h=	c #3C61CB",
+"i=	c #3C61CA",
+"j=	c #3D62CB",
+"k=	c #3F64CC",
+"l=	c #4065CD",
+"m=	c #4669D0",
+"n=	c #476AD0",
+"o=	c #496BD1",
+"p=	c #4A6DD2",
+"q=	c #4B6ED2",
+"r=	c #4D71D3",
+"s=	c #4E73D4",
+"t=	c #4F74D4",
+"u=	c #5075D5",
+"v=	c #5276D5",
+"w=	c #5377D7",
+"x=	c #5278D7",
+"y=	c #5277D6",
+"z=	c #5378D7",
+"A=	c #5379D8",
+"B=	c #5379D9",
+"C=	c #5278D8",
+"D=	c #5178D7",
+"E=	c #3355C0",
+"F=	c #3556C1",
+"G=	c #395AC6",
+"H=	c #385AC7",
+"I=	c #395BC7",
+"J=	c #395EC9",
+"K=	c #395FCA",
+"L=	c #3B60CA",
+"M=	c #3B60CB",
+"N=	c #375DC7",
+"O=	c #385EC8",
+"P=	c #395FC9",
+"Q=	c #3A60CA",
+"R=	c #3D63CC",
+"S=	c #4367CF",
+"T=	c #476BD1",
+"U=	c #4A6ED2",
+"V=	c #4B6FD2",
+"W=	c #4C6FD2",
+"X=	c #4D70D1",
+"Y=	c #4E71D2",
+"Z=	c #4E72D2",
+"`=	c #4E74D4",
+" -	c #4E75D5",
+".-	c #4E75D4",
+"+-	c #4F75D3",
+"@-	c #5075D2",
+"#-	c #5075D3",
+"$-	c #5177D7",
+"%-	c #5178D8",
+"&-	c #4F75D5",
+"*-	c #5076D5",
+"=-	c #4F76D6",
+"--	c #5279D9",
+";-	c #3C52B1",
+">-	c #3656C3",
+",-	c #3757C5",
+"'-	c #3758C6",
+")-	c #3759C6",
+"!-	c #375BC6",
+"~-	c #385CC7",
+"{-	c #385DC8",
+"]-	c #365CC6",
+"^-	c #355BC6",
+"/-	c #355CC6",
+"(-	c #365DC7",
+"_-	c #375EC8",
+":-	c #375CC6",
+"<-	c #385EC6",
+"[-	c #3A5FC7",
+"}-	c #3C60C8",
+"|-	c #3D61C9",
+"1-	c #3E62CA",
+"2-	c #4063CC",
+"3-	c #4165CE",
+"4-	c #4268D0",
+"5-	c #4269D1",
+"6-	c #436AD2",
+"7-	c #446AD2",
+"8-	c #456BD2",
+"9-	c #496CD1",
+"0-	c #4C6CD0",
+"a-	c #4D6CCF",
+"b-	c #4E6DD0",
+"c-	c #4F6ECF",
+"d-	c #4E6FCF",
+"e-	c #4C70CF",
+"f-	c #4A71D0",
+"g-	c #4F6FCF",
+"h-	c #4B71D0",
+"i-	c #4A72D1",
+"j-	c #4B73D4",
+"k-	c #4F70D0",
+"l-	c #4C73D3",
+"m-	c #4C73D6",
+"n-	c #4B72D2",
+"o-	c #4B71D1",
+"p-	c #4C73D7",
+"q-	c #3354C0",
+"r-	c #3152BE",
+"s-	c #3052BE",
+"t-	c #3051BF",
+"u-	c #2E4FBF",
+"v-	c #2E4FBE",
+"w-	c #2E50BF",
+"x-	c #2F50BF",
+"y-	c #3156C4",
+"z-	c #2F56C5",
+"A-	c #2E57C5",
+"B-	c #2F57C5",
+"C-	c #3057C6",
+"D-	c #3258C6",
+"E-	c #3459C7",
+"F-	c #365AC7",
+"G-	c #385BC8",
+"H-	c #3B5DCA",
+"I-	c #3B5DCB",
+"J-	c #3C5ECC",
+"K-	c #3C60CD",
+"L-	c #3C62CE",
+"M-	c #3D65D0",
+"N-	c #3D66D1",
+"O-	c #4166D2",
+"P-	c #4667D2",
+"Q-	c #4A67D1",
+"R-	c #4C68D0",
+"S-	c #4C69CF",
+"T-	c #4D6BCE",
+"U-	c #4E6DCD",
+"V-	c #4E6ECE",
+"W-	c #4E6DCE",
+"X-	c #4970D0",
+"Y-	c #4770D0",
+"Z-	c #4B6BCE",
+"`-	c #4A6CCE",
+" ;	c #496DCF",
+".;	c #476FD0",
+"+;	c #4870D0",
+"@;	c #486DCF",
+"#;	c #242F79",
+"$;	c #2F41AC",
+"%;	c #2040B8",
+"&;	c #2041B8",
+"*;	c #2243B3",
+"=;	c #2243B8",
+"-;	c #2343B8",
+";;	c #2444B8",
+">;	c #2445B8",
+",;	c #2445B6",
+"';	c #2445B7",
+");	c #2444B9",
+"!;	c #2949BE",
+"~;	c #2649BF",
+"{;	c #234BBF",
+"];	c #224CBF",
+"^;	c #224AC0",
+"/;	c #244CC0",
+"(;	c #254DC0",
+"_;	c #254DC1",
+":;	c #264DC2",
+"<;	c #274EC3",
+"[;	c #274CC3",
+"};	c #274DC4",
+"|;	c #254DC5",
+"1;	c #214EC5",
+"2;	c #204FC6",
+"3;	c #1F50C8",
+"4;	c #2151C9",
+"5;	c #2B53C8",
+"6;	c #3154C7",
+"7;	c #3255C6",
+"8;	c #2F57C7",
+"9;	c #2C58C9",
+"0;	c #2D59CA",
+"a;	c #2D58C9",
+"b;	c #2E5BCC",
+"c;	c #325ECC",
+"d;	c #325ECB",
+"e;	c #1F40B1",
+"f;	c #1F40B2",
+"g;	c #1F40B3",
+"h;	c #2A44BD",
+"i;	c #2845BE",
+"j;	c #2745BE",
+"k;	c #2646BF",
+"l;	c #2546BE",
+"m;	c #2347BF",
+"n;	c #2147BF",
+"o;	c #2048C0",
+"p;	c #1D48C0",
+"q;	c #1C48C0",
+"r;	c #1B47C0",
+"s;	c #1C48BF",
+"t;	c #1E49BE",
+"u;	c #214ABD",
+"v;	c #244CBD",
+"w;	c #264DBE",
+"x;	c #254EC0",
+"y;	c #214FC2",
+"z;	c #1B51C5",
+"A;	c #1C51C7",
+"B;	c #2250C8",
+"C;	c #2A52C8",
+"D;	c #3254C6",
+"E;	c #3355C5",
+"F;	c #3154C8",
+"G;	c #3355C6",
+"H;	c #2F57C8",
+"I;	c #2E58C9",
+"J;	c #2E59C9",
+"K;	c #3059C9",
+"L;	c #2040B6",
+"M;	c #2743BB",
+"N;	c #2844BC",
+"O;	c #2743BD",
+"P;	c #2844BE",
+"Q;	c #2844BD",
+"R;	c #2346BE",
+"S;	c #2047BF",
+"T;	c #1E48C0",
+"U;	c #1D47C0",
+"V;	c #1D49BF",
+"W;	c #1F49BF",
+"X;	c #204ABE",
+"Y;	c #254DBF",
+"Z;	c #234EC0",
+"`;	c #2050C1",
+" >	c #1C51C3",
+".>	c #1F51C6",
+"+>	c #2651C8",
+"@>	c #2D53C7",
+"#>	c #3155C6",
+"$>	c #3155C7",
+"%>	c #3355C7",
+"&>	c #3254C7",
+"*>	c #1E40B1",
+"=>	c #2141B8",
+"->	c #2442B9",
+";>	c #2744BB",
+">>	c #2945BB",
+",>	c #2A45BB",
+"'>	c #2944BA",
+")>	c #2745BB",
+"!>	c #2545BC",
+"~>	c #2246BD",
+"{>	c #2047BE",
+"]>	c #1F47BD",
+"^>	c #1D48BE",
+"/>	c #1E49C0",
+"(>	c #1F4AC0",
+"_>	c #214BBF",
+":>	c #244CBE",
+"<>	c #254DBE",
+"[>	c #244DBE",
+"}>	c #224FBF",
+"|>	c #2051C1",
+"1>	c #2151C3",
+"2>	c #2252C5",
+"3>	c #2151C1",
+"4>	c #2851C6",
+"5>	c #2A50C6",
+"6>	c #2E54C6",
+"7>	c #1F51C2",
+"8>	c #1D52C5",
+"9>	c #2651C9",
+"0>	c #2950C7",
+"a>	c #2D40A5",
+"b>	c #2040B0",
+"c>	c #1F40B0",
+"d>	c #223CAE",
+"e>	c #233CAE",
+"f>	c #253BAC",
+"g>	c #253BAD",
+"h>	c #233CB0",
+"i>	c #213EB2",
+"j>	c #1F3FB4",
+"k>	c #1E40B6",
+"l>	c #1F3FB7",
+"m>	c #1E3EB8",
+"n>	c #1F3FB8",
+"o>	c #2040B7",
+"p>	c #2141B6",
+"q>	c #2140B7",
+"r>	c #2241B6",
+"s>	c #2342B5",
+"t>	c #2442B6",
+"u>	c #2543B5",
+"v>	c #2643B4",
+"w>	c #2544B6",
+"x>	c #2346B8",
+"y>	c #2247B9",
+"z>	c #2048BC",
+"A>	c #1F48BF",
+"B>	c #2049C0",
+"C>	c #214AC0",
+"D>	c #224BBF",
+"E>	c #234CBE",
+"F>	c #244DBF",
+"G>	c #234CBF",
+"H>	c #264DC0",
+"I>	c #274EBF",
+"J>	c #264DBF",
+"K>	c #254EBF",
+"L>	c #2050C0",
+"M>	c #1F51C1",
+"N>	c #1E42A4",
+"O>	c #263BA6",
+"P>	c #253BA7",
+"Q>	c #253CA7",
+"R>	c #1E41A5",
+"S>	c #1F40AF",
+"T>	c #273AAC",
+"U>	c #1E40B0",
+"V>	c #1F40B5",
+"W>	c #1F40B6",
+"X>	c #1F40B8",
+"Y>	c #1E40B8",
+"Z>	c #1F3EB8",
+"`>	c #203FB7",
+" ,	c #2240B6",
+".,	c #2341B7",
+"+,	c #2345B9",
+"@,	c #2147BB",
+"#,	c #2148BA",
+"$,	c #2049BB",
+"%,	c #2049BD",
+"&,	c #2049BF",
+"*,	c #224BBE",
+"=,	c #244DBD",
+"-,	c #244CBF",
+";,	c #182969",
+">,	c #273BAD",
+",,	c #2739AB",
+"',	c #263AAC",
+"),	c #243CAE",
+"!,	c #233DAE",
+"~,	c #213EAF",
+"{,	c #1F3FB0",
+"],	c #2040B4",
+"^,	c #1F3FB6",
+"/,	c #1E3EB7",
+"(,	c #2240B7",
+"_,	c #2341B6",
+":,	c #2543B4",
+"<,	c #2644B3",
+"[,	c #2544B5",
+"},	c #2545B5",
+"|,	c #2547B6",
+"1,	c #2548B7",
+"2,	c #2349BA",
+"3,	c #1F49BE",
+"4,	c #2149BD",
+"5,	c #2049BE",
+"6,	c #214BBE",
+"7,	c #2249BE",
+"8,	c #234CBD",
+"9,	c #2149BE",
+"0,	c #1E49BF",
+"a,	c #253BA9",
+"b,	c #253BAB",
+"c,	c #263AAB",
+"d,	c #213DAF",
+"e,	c #203EAF",
+"f,	c #1D40AF",
+"g,	c #1D40B0",
+"h,	c #1E40B4",
+"i,	c #2241B7",
+"j,	c #2643B6",
+"k,	c #2744B5",
+"l,	c #2643B5",
+"m,	c #2346B6",
+"n,	c #2147B7",
+"o,	c #2644B6",
+"p,	c #2247B7",
+"q,	c #2248B8",
+"r,	c #2647B7",
+"s,	c #2549B7",
+"t,	c #2645B7",
+"u,	c #2148B8",
+"v,	c #2847B6",
+"w,	c #2549B6",
+"x,	c #2849B6",
+"y,	c #2049B7",
+"z,	c #2A49B5",
+"A,	c #243BA4",
+"B,	c #253BA5",
+"C,	c #253BA6",
+"D,	c #263AA7",
+"E,	c #263AA8",
+"F,	c #2739AA",
+"G,	c #243CAD",
+"H,	c #223DAE",
+"I,	c #1F3EAF",
+"J,	c #1E3FB0",
+"K,	c #1D40B1",
+"L,	c #1E3FB1",
+"M,	c #1F3FB3",
+"N,	c #1F3FB5",
+"O,	c #2140B6",
+"P,	c #2140B8",
+"Q,	c #2744B4",
+"R,	c #2746B6",
+"S,	c #2947B6",
+"T,	c #2946B5",
+"U,	c #2A48B6",
+"V,	c #3551A8",
+"W,	c #1F399C",
+"X,	c #143D9F",
+"Y,	c #263BA5",
+"Z,	c #273BA8",
+"`,	c #273BAA",
+" '	c #263AAD",
+".'	c #233CAD",
+"+'	c #213DAE",
+"@'	c #203FB2",
+"#'	c #2342B6",
+"$'	c #2443B6",
+"%'	c #2543B6",
+"&'	c #2644B5",
+"*'	c #133D9E",
+"='	c #263BA7",
+"-'	c #263BA9",
+";'	c #273BA9",
+">'	c #263AAA",
+",'	c #2539AB",
+"''	c #2639AB",
+")'	c #253AAC",
+"!'	c #243BAD",
+"~'	c #223DAF",
+"{'	c #203FB0",
+"]'	c #2040B1",
+"^'	c #2140B3",
+"/'	c #2543B1",
+"('	c #2744AF",
+"_'	c #1A3CA0",
+":'	c #1D3BA2",
+"<'	c #233BA4",
+"['	c #263AA5",
+"}'	c #253AA5",
+"|'	c #263AA6",
+"1'	c #263BA4",
+"2'	c #243BA5",
+"3'	c #263BA8",
+"4'	c #223EAF",
+"5'	c #3B4CA5",
+"6'	c #1D379A",
+"7'	c #1E389C",
+"8'	c #1E399F",
+"9'	c #1F3BA2",
+"0'	c #1F3BA3",
+"a'	c #213BA4",
+"b'	c #233AA3",
+"c'	c #243AA3",
+"d'	c #2539A4",
+"e'	c #253AA6",
+"f'	c #243BA7",
+"g'	c #253CAA",
+"h'	c #253CAC",
+"i'	c #253CAD",
+"j'	c #253CAE",
+"k'	c #243DAE",
+"l'	c #213FAF",
+"m'	c #223FAF",
+"n'	c #2040AF",
+"o'	c #253D93",
+"p'	c #1D3894",
+"q'	c #1F379A",
+"r'	c #1E389B",
+"s'	c #1D399C",
+"t'	c #1C3A9D",
+"u'	c #1B3A9D",
+"v'	c #183B9E",
+"w'	c #163C9E",
+"x'	c #153C9E",
+"y'	c #163B9D",
+"z'	c #173B9D",
+"A'	c #193A9D",
+"B'	c #1C3A9E",
+"C'	c #1F3AA1",
+"D'	c #223AA4",
+"E'	c #253BA8",
+"F'	c #273BA7",
+"G'	c #263CAB",
+"H'	c #263CAC",
+"I'	c #243EAE",
+"J'	c #273BAC",
+"K'	c #2A3795",
+"L'	c #1F389B",
+"M'	c #1D389B",
+"N'	c #1C399C",
+"O'	c #1B399C",
+"P'	c #1A3A9D",
+"Q'	c #1D399B",
+"R'	c #1B399B",
+"S'	c #1A3A9C",
+"T'	c #1B3A9F",
+"U'	c #1D3AA0",
+"V'	c #203BA2",
+"W'	c #203BA3",
+"X'	c #2639A6",
+"Y'	c #1B3692",
+"Z'	c #1C3794",
+"`'	c #1D3796",
+" )	c #1E3898",
+".)	c #1E389A",
+"+)	c #1F399B",
+"@)	c #1A399C",
+"#)	c #193A9E",
+"$)	c #1A3BA0",
+"%)	c #1C3BA2",
+"&)	c #1D3CA3",
+"*)	c #203CA4",
+"=)	c #223BA5",
+"-)	c #3C4699",
+";)	c #2B4595",
+">)	c #1C3793",
+",)	c #1D3895",
+"')	c #1E3897",
+"))	c #1F3998",
+"!)	c #1F3999",
+"~)	c #1F399A",
+"{)	c #1E399C",
+"])	c #1C3B9E",
+"^)	c #1D3BA0",
+"/)	c #1E3CA2",
+"()	c #223CA5",
+"_)	c #243CA6",
+":)	c #596FA9",
+"<)	c #3B4894",
+"[)	c #314993",
+"})	c #29499F",
+"|)	c #28489E",
+"1)	c #2B4BA1",
+"2)	c #2C4BA1",
+"3)	c #2D4CA2",
+"4)	c #2E4CA3",
+"5)	c #2F4CA4",
+"6)	c #2E4CA4",
+"7)	c #2F4DA3",
+"8)	c #2F4DA4",
+"9)	c #D3D5D2",
+"0)	c #3B4794",
+"a)	c #314791",
+"b)	c #304892",
+"c)	c #304893",
+"d)	c #2F4995",
+"e)	c #2F4997",
+"f)	c #2D4A9A",
+"g)	c #2A4A9D",
+"h)	c #294A9F",
+"i)	c #284AA0",
+"j)	c #294AA0",
+"k)	c #2B4AA1",
+"l)	c #2D4CA3",
+"m)	c #C9CAC9",
+"n)	c #455D9B",
+"o)	c #242F78",
+"p)	c #1B2F85",
+"q)	c #C6C3C8",
+"r)	c #B5B2B6",
+"s)	c #B5B7B4",
+"t)	c #B5B7B3",
+"u)	c #B5B2B5",
+"v)	c #B5B3B4",
+"w)	c #B5B5B4",
+"x)	c #B5B6B3",
+"y)	c #B5B4B4",
+"z)	c #B5B3B5",
+"A)	c #B5B4B5",
+"B)	c #B5B5B5",
+"C)	c #B5B5B3",
+"D)	c #B5B5B6",
+"E)	c #BAC3BE",
+"F)	c #B9C3BD",
+"G)	c #C1C3C4",
+"H)	c #BFC3C2",
+"I)	c #B9C3BE",
+"J)	c #BBC3BF",
+"K)	c #BDC3C1",
+"L)	c #C0C3C3",
+"M)	c #BEC3C1",
+"N)	c #C2C3C5",
+"O)	c #E6E3E8",
+"P)	c #E0E2DF",
+"Q)	c #E1E1E1",
+"R)	c #E2E1E3",
+"S)	c #E4E1E6",
+"T)	c #E4E2E7",
+"U)	c #E4E2E6",
+"V)	c #E3E3E4",
+"W)	c #E2E3E3",
+"X)	c #E1E3E2",
+"Y)	c #E3E3E3",
+"Z)	c #E3E3E2",
+"`)	c #EBEDEA",
+" !	c #EAECE9",
+".!	c #E9EBE8",
+"+!	c #ECEEEB",
+". . + @ # $ $ $ $ $ $ $ % $ $ $ $ $ % $ $ $ $ $ $ % $ $ $ $ $ % $ $ $ $ $ $ $ $ $ % $ $ & * = - ; > , , ' ) ! ! ~ { ] ^ / ( _ : < [ } | | 1 2 3 3 4 4 4 4 4 4 4 5 6 4 4 4 5 6 7 8 9 4 5 6 7 8 9 6 7 8 9 ",
+"0 a b % $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ c d d d d $ $ $ $ $ c d e f g h i i i i j k l m n o p q r s t u v w x y z 4 A B C D 9 9 E 9 E F G H I F J K L L L L J K L L L L L L L L ",
+"@ % M N O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O P Q R S T U V W X Y Z `  ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.b.b.b.b.b.",
+"c.$ d.O e.f.g.g.g.h.g.g.g.g.g.h.h.g.g.g.g.g.h.h.g.g.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+++@+#+$+@+$+%+&+*+=+$+-+;+>+,+'+)+!+;+>+,+~+,+>+,+~+,+",
+"$ {+N N f.f.f.f.h.h.h.g.f.f.h.h.h.h.g.f.f.h.h.h.h.]+^+/+(+h._+:+<+[+}+|+1+2+3+4+5+6+7+8+9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+.+C+D+E+D+F+G+H+C+I+F+G+J+K+L+H+F+G+J+K+L+H+J+H+J+H+",
+"{+{+N N M+M+h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.N+N+h.h.(+O+P+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@[@y+}@|@1@A+1@2@3@ +2@4@2@5@C+D+6@D+7@5@C+D+6@I+C+D+6@I+",
+"{+{+8@N M+M+h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.9@9@0@N+a@b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@A@B@q+r+C@D@E@F@G@H@_@I@J@K@<@L@M@N@O@P@Q@R@S@T@A+A+U@V@W@W@A+2@U@V@W@W@U@V@W@W@",
+"{+{+8@N f.M+h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.(+(+(+9@9@X@Y@Z@e@`@ #.#+#@###$#%#&#*#=#-#;#>#,#'#)#!#~#{#]#z@^#/#(#p+_#r+:#s+t+<#[#}#|#|#1#_@|#_@_@2#L@3#4#y+y+5#z+z+z+5#z+z+z+z+A+A+A+A+A+",
+"{+{+8@8@f.f.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.(+6#7#8#9#0#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#&@p#q#r#s#t#u#v#w#x#x#y#y#z#A#B#C#D#E#E#F#G#H#F#H#H#u+v+I#J#K#L#J@J@M#N#O#P#M#M#M#N#M#Q#Q#R#",
+"$ {+8@e.f.f.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.S#l.7#T#U#V#W#X#Y#Z#`# $f#g###.$+$@$#$$$$@%$&$*$=$-$;$>$,$'$)$!$~$~${$]$^$/$($($_$_$:$<$_$<$[$}$|$|$1$2$2$3$}#4$5$6$7$8$8$9$8$8$8$0$8$",
+"$ {+a$e.f.f.h.h.h.h.h.h.h.h.h.b$h.c$c$c$c$c$d$c$c$c$c$c$c$c$c$c$c$e$e$7#f$g$h$i$X#j$k$l$m$n$o$p$q$r$l@s$t$u$v$w$x$y$z$A$B$C$D$E$F$G$G$H$I$J$J$K$K$J$L$L$L$L$L$M$N$O$P$Q$R$S$T$U$1$V$T$W$X$Y$1$V$Y$Z$`$ %",
+"$ $ a$a$f.f.b$b$b$b$b$b$b$b$b$b$b$b$b$b$b$b$b$b$.%b$b$b$.%d$+%+%@%h.e$l.#%$%h$%%&%*%=%-%;%>%,%'%)%!% @ @~%{%]%^%/%(%w$_%:%<%[%}%|%D$1%2%3%4%5%4%4%6%5%5%4%4%4%5%7%5%8%9%L$0%a%a%a%P$b%P$P$z#z#z#P$c%c%c%",
+"$ $ 8@e.f.f.d%b$b$b$b$b$d%b$b$b$b$b$b$e%f%b$b$b$b$b$g%h%b$.%i%i%j%k%l%m%X@n%h$o%&%p%q%`#r%s%t%u%v%w%x%y% @z%A%B%C%D%E%F%G%:%H%I%[%J%}%K%|%D$K%D$D$L%M%M%M%M%M%D$N%O%i+P%j+Q%R%S%T%0%U%V%W%W%W%W%X%X%X%X%",
+"$ $ 8@8@f.f.d%d%b$b$b$b$d%d%b$b$b$h%Y%Z%Z%h%f%f%h%Y%`%`% &h%h%.&+&@&#&$&X@%&&&*&=&-&j$Z#+#;&>&,&'&)&)&!&~&{&]&^&/&(&^%_&(%:&<&[&}&|&1&A$A$2&3&4&4&5&B$6&7&B$7&8&9&6&7&0&a&a&i+i+i+b&a&a&j+U%c&U%j+U%c&U%",
+"$ $ 8@8@d&e&d%d%d%d%d%d%d%d%d%d%d%`%d%d%d%d%`%`%`%d%d%d%d%`%`%f&g&h&j%i&j&k&l&m&=&X#Y#n&o&p&q&r&>&s&t&t&u&v&w&x&y&{&z&A&B&C&D&(%(%F%F%E&F&}&}&|&G&|&H&1&I%I&A$1&}&z$z$J&K&L&M&N&O&0&P&Q&0&a&R&a&a&a&R&a&",
+"{+$ 8@8@e&e&d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%`%f&S&T&U&V&W&Y@X&Y&Z&`& *.*+*@*#*@*r&$*#*r&%*&***=*-*;*y&z%A%z&A&A&>*B&,*,*'*)*!*!*~*{*F&}&{*}&{*]*G%G%y$^*/*J&(*2&_*:*<*=$[*}*<*=$<*|*1*",
+"{+{+8@2*e&e&d%d%d%d%d%d%d%d%d%e&3*4*4*4*4*4*5*4*4*4*4*4*4*4*4*4*`%f&6*6*7*8*9*0*a*b*c*d*e*f*g*h*i*j*+*k*h*l*m*n*m*o*p*q*r*s*t*u*v*w*x*y*y*z*A*B*C*D*E*F*G*E*G*F*H*G*F*~*]*{*I*x$J*K*L*G%K*M*o#o#I&N*O*O*",
+"{+{+8@2*e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&P*e&e&e&e&e&e&P*P*e&e&e&P*P*5*Q*R*S*T*U*V*W*X*Y*Z*`*d* =.=+=@=#=$=%=g@&=*===-=i*;=l*>=,=q*'=s*)=k@!=x*~={=]=^=/=(=_=:=(=<=<=]=[=}=|=]=]=1=2=3=|=4=5=2=2=2=3=6=6=6=",
+"{+{+7=e.e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&P*P*8=9=0=a=b=U*c=d=e=f=e@#=g=h=i=i=j=k=k=l=%===m=n=o=p=q=,=r=s=t=u=v=v*w=x=x=y=z=z=A=z=A=B=C=B=D=C=B=x=B=B=B=B=B=B=B=B=B=B=B=B=B=B=",
+"{+{+7=7=e&e&e&e&E=E=e&e&e&e&E=E=E=e&e&e&e&E=E=E=e&e&e&e&E=E=e&e&e&e&E=E=E=F=d%G=G=H=I=J=K=L=M=R+}+N=O=P=Q=j=i=h=R=e@@=S=-=T=h@l*U=V=W=X=Y=Z=`= - - -.-+-@- -#-$-%-$-&-*-$-=-%-----C=$-%---------B=B=B=B=",
+"{+{+7=7=;-;-E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=E=>-,-'-)-!-6*~-{-{-]-^-/-/-(-_-:-N=<-[-}-|-1-2-3- =4-5-6-7-8-9-0-0-a-b-c-d-e-f-g-h-h-i-j-k-h-h-i-j-l-m-n-o-i-j-l-m-n-j-l-p-n-",
+"{+{+7=7=;-;-E=E=E=E=E=E=E=E=q-r-s-t-t-u-u-v-v-v-u-w-x-u-u-u-u-u-u-u-u-v-v-u-u-u-u-u-v-v-u-u-u-u-v-v-u-y-z-A-B-C-D-E-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-U-V-W-V-e-X-Y-Z-`- ;.;Y-N N +;@;.;Y-N N N N N N N ",
+"#;#;d&d&$;$;%;%;%;%;%;%;%;%;&;*;=;-;-;-;;;>;,;>;>;>;;;>;>;>;>;>;>;>;>;>;';);>;>;>;>;>;';>;>;>;>;>;';);!;~;{;];^;/;(;_;_;:;<;[;};};|;1;2;3;4;5;6;7;8;9;9;0;a;0;0;b;h.a;0;0;b;h.c;h.d;0;b;h.c;h.d;h.c;h.d;",
+"#;#;;-;-$;$;e;e;e;e;e;e;e;e;e;e;e;f;f;f;f;e;e;e;f;f;f;f;f;f;f;f;f;f;f;f;g;%;f;f;f;f;f;g;f;f;f;f;f;g;%;h;i;j;k;l;m;n;o;p;q;r;r;s;t;u;v;w;x;y;z;A;B;C;6;D;E;F;G;G;H;I;F;G;G;H;I;J;J;K;G;H;I;J;J;K;I;J;J;K;",
+"#;#;;-;-$;$;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;L;e;e;e;e;e;e;e;e;e;e;e;e;L;M;N;O;P;Q;i;i;k;R;S;T;U;q;q;V;W;X;{;Y;Z;`; >.>+>@>#>+>$>6;#>#>+>%>&>G;G;G;G;G;&>G;G;G;G;G;G;G;G;G;",
+"#;#;d.;-$;$;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;*>e;e;e;e;e;e;e;e;e;e;e;e;*>=>->;>>>,>'>'>)>!>~>{>]>^>^>V;V;/>(>_>:><>[>}>|>1>2>3>2>4>5>6>7>8>9>0>G;G;G;G;9>0>G;G;G;G;G;G;G;G;",
+"#;#;d.d.a>a>e;e;e;e;e;e;e;e;e;e;b>b>c>c>c>c>c>b>e;e;e;e;e;e;e;e;e;e;e;e;e;e;d>e>f>g>h>i>j>k>l>l>m>m>n>n>o>o>p>q>r>r>s>t>u>v>v>u>w>';x>y>z>t;A>B>C>D>E>E>F>G>F>H>H>I>F>Y;J>w;K>L>K>M>J>w;K>L>K>M>K>L>K>M>",
+"#;#;d.d.a>a>N>e;N>O>O>O>N>e;N>O>O>P>Q>R>S>R>Q>O>O>O>N>e;N>O>O>O>N>e;N>N>O>T>e;e;e;U>U>U>U>f;V>W>o>o>o>o>X>X>Y>Y>n>n>Z>Z>`> ,.,t>t>u>u>w>+,@,#,$,%,A>&,*,=,B>[>-,w;<>C>[>-,w;w;w;w;w;-,w;w;w;w;w;w;w;w;w;",
+"#;;,;-;-a>a>N>N>N>O>O>O>N>N>N>O>O>O>O>N>N>N>O>O>O>O>N>N>N>O>O>O>N>N>N>N>O>>,,,,,,,',g>),!,~,{,{,*>U>e;f;],o>%;o>^,^,/,/,l>q>(,_,t>u>:,<,v>[,},|,1,2,%,%,3,4,5,6,7,8,9,5,6,0,G>G>Y;G>6,0,G>G>Y;G>G>G>Y;G>",
+";,;,;-;-O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>P>a,b,',',c,c,f>),e>d,e,{,{,U>U>f,f,U>U>g,g,*>g;h,^,^,`>`>q>i,t>j,k,k,l,w>m,n,o,p,q,r,s,t,p,u,v,w,x,y,z,u,v,w,x,y,z,w,x,y,z,",
+";,;,b b O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>A,A,A,B,C,D,E,F,c,',g>G,!,H,~,e,{,I,J,J,K,K,U>f,f,J,L,M,N,L;O,i,P,.,l,Q,k,k,k,k,k,k,R,v,k,k,k,R,v,S,T,U,k,R,v,S,T,U,v,S,T,U,",
+";,;,b V,W,W,X,X,O>X,X,X,X,X,O>X,X,X,X,X,X,O>X,X,X,X,X,X,O>X,X,X,X,X,O>X,X,O>O>O>O>B,B,B,B,Y,O>O>Z,`,T>T> '',g>.'+'e,{,{,e,+'+'e,e,{,J,K,e;@'N,O,#'$'%'%'j,%'j,&'k,k,%'j,&'k,k,k,k,k,&'k,k,k,k,k,k,k,k,k,",
+";,;,b V,W,W,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,*'O>O>O>O>O>O>O>O>B,B,A,A,B,C,='-'`,;'>'>',''')'!'!'e>e>~'~'~,~,{'{,*>*>e;]']']']']']'^'/']']']'^'/':,(':,]'^'/':,(':,/':,(':,",
+";,;,V,V,W,W,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,_':'<'['}'|'|'O>O>O>O>O>O>O>Y,Y,1'1'B,B,2'2'C,3'-'>'c,)')'!'),4'{'e;]'e;*>*>e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;e;",
+";,;,5'5'W,W,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,W,6'6'6'7'8'9'0'a'b'c'd'd'}'}'O>O>O>O>O>O>O>O>Y,1'1'['['e'e'f'g'h'i'j'k'G,),!,l'j'm'n'b>b>),m'b>e;e;e;e;e;b>e;e;e;e;e;e;e;e;e;",
+";,;,b b o'o'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'W,q'q'q'r's't'u'v'w'x'y'z'A'B'C'D'2'2'B,B,O>O>O>O>O>O>O>O>O>O>O>Y,Y,C,C,='='='E'F'3'3'3'G'Z,='F'F'G'H'I'J'F'F'G'H'I'J'G'H'I'J'",
+";,;,b b K'K'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'W,W,W,W,W,L'L'q'r'M'N'O'P'u'N's'Q'R'S'A'T'U'C'V'9'0'W'D'}'X'|'O>O>B,B,O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>",
+";,;,b b K'K'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'p'Y'Y'Y'Z'`' ).)+)+)+)W,W,W,W,L'L'q'q'r'r's'M'N'P'@)A'#)$)%)&)*)=)B,|'|'O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>O>",
+"{+;,$ -);)K'p'p'o'p'p'p'p'p'o'p'p'p'p'p'p'o'p'p'p'p'p'p'o'p'p'p'p'p'o'o'p'p'p'p'p'p'p'p'p'p'>)>)Y'Y'>)Z',)')))!)~)+)W,W,W,W,W,W,W,W,W,W,W,L'L'{)s't'])^)/)])/)/)O>()])/)/)O>()O>_)O>/)O>()O>_)O>()O>_)O>",
+":);,;,;)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)[)M M M M M M M M M M M M M M M M M M })})|)|)})M M 1)2)3)4)5)6)6)6)7)7)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)",
+"9)#;;,;,$ -)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)<)0)a)a)a)b)c)d)e)f)g)h)i)i)j)j)M M M M M M M M M M M })})})})M k)k)M M k)l)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)8)",
+"+ 9)m)n)$ #;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;#;o)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)p)",
+"+ + 9)a m)q)r)s)r)s)r)s)r)s)r)r)s)r)s)r)s)r)r)s)r)s)r)s)r)s)r)s)r)s)r)s)r)t)u)v)w)x)x)w)y)z)A)A)B)B)B)B)w)w)C)C)w)w)B)B)B)B)B)w)w)w)w)B)B)B)B)B)B)B)B)B)B)B)B)B)B)B)B)B)B)B)B)B)D)B)B)B)B)B)D)B)B)B)D)B)",
+". + + 9)9)9)q)E)q)E)q)E)q)E)q)q)E)q)E)q)E)q)q)E)q)E)q)E)q)E)q)E)q)E)q)E)q)F)G)H)E)I)J)K)H)L)L)L)L)L)L)L)H)H)M)M)H)H)L)L)G)L)L)H)H)H)H)L)L)L)L)L)L)L)L)L)L)L)L)L)L)L)L)L)L)L)L)L)N)L)L)L)L)L)N)L)L)L)N)L)",
+". . 0 . + O)P)O)P)O)P)O)P)O)P)P)O)P)O)P)O)P)P)O)P)O)P)O)P)O)P)O)P)O)P)O)P)O)Q)R)S)T)U)V)W)X)W)W)V)V)V)V)V)V)V)V)Y)Y)Z)Z)Y)Z)Z)Y)Y)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)Y)V)V)V)V)V)Y)V)V)V)Y)V)",
+". . . 0 0 0 . 0 0 0 + 0 + 0 + 0 + 0 + 0 + 0 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 0 `) !+ + + .! !`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)`)+!`)`)`)`)`)+!`)`)`)+!`)"};
+
+
+static char * listviewhighcornerright_xpm[] = {
+"100 46 780 2",
+"  	c None",
+". 	c #6A779D",
+"+ 	c #6C789C",
+"@ 	c #6C789D",
+"# 	c #6B789D",
+"$ 	c #6A779E",
+"% 	c #66759E",
+"& 	c #64749E",
+"* 	c #63749E",
+"= 	c #61739D",
+"- 	c #576D9B",
+"; 	c #556C9C",
+"> 	c #4D679D",
+", 	c #4A649D",
+"' 	c #49629D",
+") 	c #465E9C",
+"! 	c #40579C",
+"~ 	c #3B5394",
+"{ 	c #2C4E97",
+"] 	c #314993",
+"^ 	c #2B4595",
+"/ 	c #1B4296",
+"( 	c #253D93",
+"_ 	c #19418F",
+": 	c #0F3C96",
+"< 	c #42599E",
+"[ 	c #758DC3",
+"} 	c #E8EAE7",
+"| 	c #EEF0ED",
+"1 	c #FBFBFC",
+"2 	c #6F7D9B",
+"3 	c #6F7D9A",
+"4 	c #6E7B9C",
+"5 	c #67759E",
+"6 	c #63739E",
+"7 	c #62739D",
+"8 	c #596F9C",
+"9 	c #4A639D",
+"0 	c #47609C",
+"a 	c #445B9F",
+"b 	c #3E5697",
+"c 	c #2E509A",
+"d 	c #2D509A",
+"e 	c #2D4F99",
+"f 	c #2D4F98",
+"g 	c #28418A",
+"h 	c #3E51A3",
+"i 	c #D0D3DC",
+"j 	c #A1B6EF",
+"k 	c #A2B6F0",
+"l 	c #A1B6F0",
+"m 	c #A3B6F0",
+"n 	c #A0B6EF",
+"o 	c #9DB6EE",
+"p 	c #9CB5EF",
+"q 	c #9CB2F0",
+"r 	c #9FB5EE",
+"s 	c #9CB4EB",
+"t 	c #9AB3EC",
+"u 	c #9AB0EC",
+"v 	c #9DB3EB",
+"w 	c #9BB4EC",
+"x 	c #9BB4EE",
+"y 	c #9BB1EF",
+"z 	c #9BB0F0",
+"A 	c #90ACF0",
+"B 	c #93ABEE",
+"C 	c #91A8EB",
+"D 	c #8BA3E8",
+"E 	c #88A1E7",
+"F 	c #809DE9",
+"G 	c #7A99E8",
+"H 	c #7491E5",
+"I 	c #698AE4",
+"J 	c #6184E3",
+"K 	c #507EDC",
+"L 	c #4E7CDB",
+"M 	c #4F7DDC",
+"N 	c #5479DA",
+"O 	c #567BDC",
+"P 	c #577CDD",
+"Q 	c #5074DA",
+"R 	c #5174DB",
+"S 	c #5175DC",
+"T 	c #5276DD",
+"U 	c #4D71DE",
+"V 	c #4C72D8",
+"W 	c #3A6CE0",
+"X 	c #2B49A6",
+"Y 	c #E0E2DF",
+"Z 	c #93AAE9",
+"` 	c #94A9E8",
+" .	c #94AAE9",
+"..	c #93A9E9",
+"+.	c #92AAE9",
+"@.	c #8DA9E8",
+"#.	c #8CA7E9",
+"$.	c #92ABE9",
+"%.	c #8EAAE9",
+"&.	c #8EA9E9",
+"*.	c #8FAAE9",
+"=.	c #8CA8E9",
+"-.	c #8CA2E7",
+";.	c #86A1E6",
+">.	c #839EE9",
+",.	c #7F9CE9",
+"'.	c #7A97E8",
+").	c #7693E7",
+"!.	c #6E8EE8",
+"~.	c #678AE9",
+"{.	c #5D84E3",
+"].	c #577CDF",
+"^.	c #4E77DF",
+"/.	c #4A70DB",
+"(.	c #4870DB",
+"_.	c #4870DC",
+":.	c #4770E3",
+"<.	c #496FDC",
+"[.	c #486EDB",
+"}.	c #466FE4",
+"|.	c #466EE3",
+"1.	c #4167D9",
+"2.	c #4066D8",
+"3.	c #3F66D8",
+"4.	c #3D64D7",
+"5.	c #3960DA",
+"6.	c #476DD9",
+"7.	c #446EE5",
+"8.	c #305EC8",
+"9.	c #8EAAE8",
+"0.	c #8FAAE8",
+"a.	c #91AAE9",
+"b.	c #8FA9E8",
+"c.	c #8BA8E8",
+"d.	c #8AA7E9",
+"e.	c #8BA5EA",
+"f.	c #8AA7E8",
+"g.	c #87A2E6",
+"h.	c #859FE8",
+"i.	c #7F9DE8",
+"j.	c #7C9AE8",
+"k.	c #7B95E7",
+"l.	c #7090E8",
+"m.	c #6B8BE9",
+"n.	c #6386E6",
+"o.	c #5881E1",
+"p.	c #5479DE",
+"q.	c #4D74DE",
+"r.	c #476EDB",
+"s.	c #446EE1",
+"t.	c #446EE0",
+"u.	c #446EDF",
+"v.	c #446DE0",
+"w.	c #426ADF",
+"x.	c #3C64DA",
+"y.	c #4360CC",
+"z.	c #D3D5D2",
+"A.	c #E6E3E8",
+"B.	c #8DA2E7",
+"C.	c #8CA6EA",
+"D.	c #8DA3E9",
+"E.	c #88A2E7",
+"F.	c #87A1E7",
+"G.	c #8AA1E7",
+"H.	c #849EE9",
+"I.	c #7D9AE9",
+"J.	c #7B98E8",
+"K.	c #7796E5",
+"L.	c #7191E7",
+"M.	c #688CE9",
+"N.	c #6687E5",
+"O.	c #5C83E1",
+"P.	c #557BDE",
+"Q.	c #4F76DE",
+"R.	c #4C72DE",
+"S.	c #456EDF",
+"T.	c #426AD9",
+"U.	c #4269D9",
+"V.	c #4269D8",
+"W.	c #3D64D9",
+"X.	c #3A61DA",
+"Y.	c #345ED6",
+"Z.	c #335ECF",
+"`.	c #C6C3C8",
+" +	c #86A1E7",
+".+	c #87A2E7",
+"++	c #87A0E7",
+"@+	c #859EE8",
+"#+	c #849DE9",
+"$+	c #7E9BE9",
+"%+	c #7A99E9",
+"&+	c #7A95E5",
+"*+	c #7593E7",
+"=+	c #6F8EE9",
+"-+	c #668AE5",
+";+	c #6386E0",
+">+	c #5B82DF",
+",+	c #5379DE",
+"'+	c #5075DE",
+")+	c #4B6FDC",
+"!+	c #446AD7",
+"~+	c #4269D6",
+"{+	c #4269D5",
+"]+	c #3E65D7",
+"^+	c #C9CAC9",
+"/+	c #869EE9",
+"(+	c #859FE9",
+"_+	c #849FE9",
+":+	c #829DE8",
+"<+	c #819DE8",
+"[+	c #7B9AE9",
+"}+	c #7A96E6",
+"|+	c #7290E8",
+"1+	c #698CE6",
+"2+	c #6689E0",
+"3+	c #5D84E0",
+"4+	c #587FDF",
+"5+	c #5377DD",
+"6+	c #4B74DE",
+"7+	c #496BD8",
+"8+	c #7C9BE9",
+"9+	c #7E9CE9",
+"0+	c #7D9AEA",
+"a+	c #7D9BEA",
+"b+	c #7D98E8",
+"c+	c #7C98E8",
+"d+	c #7796E4",
+"e+	c #7592E6",
+"f+	c #7390E1",
+"g+	c #698DE0",
+"h+	c #6588DE",
+"i+	c #5E84E0",
+"j+	c #5880DF",
+"k+	c #5479DC",
+"l+	c #4F75DE",
+"m+	c #4A6FDB",
+"n+	c #436AD7",
+"o+	c #3F65D7",
+"p+	c #BAC3BE",
+"q+	c #7B9AE8",
+"r+	c #7B9AEA",
+"s+	c #7A9AEA",
+"t+	c #7B99E9",
+"u+	c #7D97E7",
+"v+	c #7D95E6",
+"w+	c #7D95E5",
+"x+	c #7C95E6",
+"y+	c #7493E3",
+"z+	c #7290DF",
+"A+	c #6C8DDE",
+"B+	c #6B89E1",
+"C+	c #6486DF",
+"D+	c #5D81DF",
+"E+	c #567DDE",
+"F+	c #4F73DE",
+"G+	c #496EDA",
+"H+	c #355ED6",
+"I+	c #345ED5",
+"J+	c #7E95E5",
+"K+	c #7C97E8",
+"L+	c #7C97E7",
+"M+	c #7B94E6",
+"N+	c #7A95E4",
+"O+	c #7695E5",
+"P+	c #7694E4",
+"Q+	c #7994E6",
+"R+	c #7995E4",
+"S+	c #7594E4",
+"T+	c #7391E2",
+"U+	c #6E8EDE",
+"V+	c #6B8ADE",
+"W+	c #6688DF",
+"X+	c #5F84E0",
+"Y+	c #5980E0",
+"Z+	c #4D72DD",
+"`+	c #456BD7",
+" @	c #4168D6",
+".@	c #3C64D7",
+"+@	c #335ED0",
+"@@	c #4659C7",
+"#@	c #7292E1",
+"$@	c #7392E1",
+"%@	c #7492E1",
+"&@	c #718FDF",
+"*@	c #6F8EDE",
+"=@	c #6D8BDE",
+"-@	c #6B88DF",
+";@	c #597FDF",
+">@	c #557ADD",
+",@	c #5176DC",
+"'@	c #4D74DD",
+")@	c #496DDA",
+"!@	c #3860D8",
+"~@	c #7391E0",
+"{@	c #7290DE",
+"]@	c #6D8EDD",
+"^@	c #6D8DDD",
+"/@	c #7190E0",
+"(@	c #6C8DDD",
+"_@	c #6B89DF",
+":@	c #6487E0",
+"<@	c #6085DF",
+"[@	c #5F81DE",
+"}@	c #567EDE",
+"|@	c #4F74D9",
+"1@	c #466BD7",
+"2@	c #4067D5",
+"3@	c #3C63D7",
+"4@	c #335ED3",
+"5@	c #335ED1",
+"6@	c #718EDD",
+"7@	c #728EDD",
+"8@	c #748EDD",
+"9@	c #708EDD",
+"0@	c #6F8DDD",
+"a@	c #6E8DDD",
+"b@	c #6C8ADE",
+"c@	c #6C89DF",
+"d@	c #6988DF",
+"e@	c #6387DF",
+"f@	c #6282DE",
+"g@	c #5681E0",
+"h@	c #577BDD",
+"i@	c #5277DB",
+"j@	c #4D73D8",
+"k@	c #4A70D8",
+"l@	c #436AD5",
+"m@	c #3F66D6",
+"n@	c #3C63D8",
+"o@	c #3960D8",
+"p@	c #3860D7",
+"q@	c #335ED2",
+"r@	c #345ED4",
+"s@	c #6C88DF",
+"t@	c #6D88DF",
+"u@	c #6B89DE",
+"v@	c #6888DF",
+"w@	c #6587E0",
+"x@	c #6989DF",
+"y@	c #6687E0",
+"z@	c #6287E0",
+"A@	c #6281DD",
+"B@	c #5881E0",
+"C@	c #557ADB",
+"D@	c #5176D9",
+"E@	c #4E75D7",
+"F@	c #4A6FD8",
+"G@	c #476BD6",
+"H@	c #4067D6",
+"I@	c #3C62D7",
+"J@	c #3C60D4",
+"K@	c #365ED1",
+"L@	c #345ED3",
+"M@	c #6786DF",
+"N@	c #5F85E0",
+"O@	c #5F86E0",
+"P@	c #6186DF",
+"Q@	c #6286E0",
+"R@	c #6284DF",
+"S@	c #6384DF",
+"T@	c #5B7FDE",
+"U@	c #577DDC",
+"V@	c #557BDA",
+"W@	c #5278D8",
+"X@	c #4E76D6",
+"Y@	c #4C72D7",
+"Z@	c #486DD8",
+"`@	c #4469D6",
+" #	c #3F62D2",
+".#	c #3C60CF",
+"+#	c #345ECF",
+"@#	c #6086DF",
+"##	c #6085E0",
+"$#	c #6285DF",
+"%#	c #6383DD",
+"&#	c #6481DC",
+"*#	c #6380DD",
+"=#	c #6183DE",
+"-#	c #6083DD",
+";#	c #6081DC",
+">#	c #6080DD",
+",#	c #6083DE",
+"'#	c #6181DC",
+")#	c #6280DD",
+"!#	c #577EDB",
+"~#	c #557CD7",
+"{#	c #4F76D6",
+"]#	c #4E74D7",
+"^#	c #466CD7",
+"/#	c #3B64D6",
+"(#	c #4261CD",
+"_#	c #375FCE",
+":#	c #5A7FD8",
+"<#	c #6281DA",
+"[#	c #5F81D8",
+"}#	c #5C80D8",
+"|#	c #557DD7",
+"1#	c #577ED8",
+"2#	c #567ED7",
+"3#	c #587DD8",
+"4#	c #577DD8",
+"5#	c #587ED8",
+"6#	c #567DD8",
+"7#	c #5379D9",
+"8#	c #5177D7",
+"9#	c #4D74D5",
+"0#	c #486ED9",
+"a#	c #4068D4",
+"b#	c #3D65D2",
+"c#	c #4361CC",
+"d#	c #345ECE",
+"e#	c #325DCF",
+"f#	c #2C5AD1",
+"g#	c #3959C5",
+"h#	c #547BD8",
+"i#	c #567DD7",
+"j#	c #557BD8",
+"k#	c #5279D9",
+"l#	c #5278D9",
+"m#	c #4D74D6",
+"n#	c #4B71D8",
+"o#	c #496CD8",
+"p#	c #4669D7",
+"q#	c #3D66D3",
+"r#	c #3F62CF",
+"s#	c #4260CC",
+"t#	c #5379D8",
+"u#	c #4E75D4",
+"v#	c #4C73D7",
+"w#	c #476CD7",
+"x#	c #4869D0",
+"y#	c #4067D2",
+"z#	c #3D64D1",
+"A#	c #4261CC",
+"B#	c #395FCE",
+"C#	c #4F75D3",
+"D#	c #5074D2",
+"E#	c #5174D1",
+"F#	c #5175D1",
+"G#	c #4F74D3",
+"H#	c #4C73D5",
+"I#	c #4C73D4",
+"J#	c #4A72D1",
+"K#	c #4B70CF",
+"L#	c #506CCC",
+"M#	c #4D6BCE",
+"N#	c #4167D0",
+"O#	c #3D65D1",
+"P#	c #3F63CF",
+"Q#	c #3B5FCD",
+"R#	c #3159CD",
+"S#	c #4971D0",
+"T#	c #4870CF",
+"U#	c #4C6FCF",
+"V#	c #4E6CCE",
+"W#	c #4E6BCE",
+"X#	c #4769CF",
+"Y#	c #3D66D0",
+"Z#	c #3C65D1",
+"`#	c #4062CE",
+" $	c #3D5FCD",
+".$	c #365FCF",
+"+$	c #325DCD",
+"@$	c #2D5AD0",
+"#$	c #3859C5",
+"$$	c #355FCF",
+"%$	c #355ECF",
+"&$	c #335ECE",
+"*$	c #305CCD",
+"=$	c #2B5ACE",
+"-$	c #3056C9",
+";$	c #2553C6",
+">$	c #2153C8",
+",$	c #1F4FC7",
+"'$	c #274CC5",
+")$	c #214AC7",
+"!$	c #1C48C8",
+"~$	c #1244C9",
+"{$	c #1043C9",
+"]$	c #1144C9",
+"^$	c #2A45BE",
+"/$	c #2744B5",
+"($	c #1D49C0",
+"_$	c #2B58DE",
+":$	c #002D94",
+"<$	c #2B59CA",
+"[$	c #2A59CA",
+"}$	c #2E57C8",
+"|$	c #3255C6",
+"1$	c #3355C5",
+"2$	c #1C52C8",
+"3$	c #1D50C7",
+"4$	c #234FC6",
+"5$	c #264CC5",
+"6$	c #1D48C7",
+"7$	c #1245C8",
+"8$	c #1F44C2",
+"9$	c #2945BE",
+"0$	c #2A45BD",
+"a$	c #2040BF",
+"b$	c #3156C7",
+"c$	c #3056C7",
+"d$	c #3354C5",
+"e$	c #3355C6",
+"f$	c #3255C5",
+"g$	c #3254C5",
+"h$	c #1952C7",
+"i$	c #1951C8",
+"j$	c #2050C7",
+"k$	c #274CC4",
+"l$	c #244CC6",
+"m$	c #1F49C7",
+"n$	c #1E47C5",
+"o$	c #2045C3",
+"p$	c #1C44BF",
+"q$	c #2045BE",
+"r$	c #2040B8",
+"s$	c #3254C6",
+"t$	c #3055C6",
+"u$	c #2A54C6",
+"v$	c #2353C7",
+"w$	c #3054C5",
+"x$	c #2F55C5",
+"y$	c #2A54C5",
+"z$	c #2553C5",
+"A$	c #2F54C5",
+"B$	c #3155C6",
+"C$	c #2A54C7",
+"D$	c #1A52C8",
+"E$	c #204FC2",
+"F$	c #264DC6",
+"G$	c #234BC5",
+"H$	c #1D48C1",
+"I$	c #1E48BF",
+"J$	c #2646BE",
+"K$	c #2B45BD",
+"L$	c #1E43BE",
+"M$	c #2643BF",
+"N$	c #2243BF",
+"O$	c #3049BC",
+"P$	c #1E50BE",
+"Q$	c #1D50C0",
+"R$	c #1D50BF",
+"S$	c #1852C1",
+"T$	c #1E51C0",
+"U$	c #214FBF",
+"V$	c #2050C0",
+"W$	c #244EBF",
+"X$	c #2151C0",
+"Y$	c #234FBF",
+"Z$	c #2350C0",
+"`$	c #2351C0",
+" %	c #244FBF",
+".%	c #2250C0",
+"+%	c #2051C0",
+"@%	c #1E50C0",
+"#%	c #244DBE",
+"$%	c #274DBF",
+"%%	c #244CBF",
+"&%	c #1C48C0",
+"*%	c #2247BF",
+"=%	c #2C44BD",
+"-%	c #1C44BE",
+";%	c #1444BF",
+">%	c #1841BF",
+",%	c #1F40BF",
+"'%	c #254DBE",
+")%	c #224FBE",
+"!%	c #224FBF",
+"~%	c #234EBF",
+"{%	c #254CBD",
+"]%	c #244DBD",
+"^%	c #244CBD",
+"/%	c #264DBE",
+"(%	c #264DBD",
+"_%	c #214BC0",
+":%	c #1D48C0",
+"<%	c #2347BF",
+"[%	c #2B44BD",
+"}%	c #2444BE",
+"|%	c #0F42BF",
+"1%	c #0641BF",
+"2%	c #0F41BF",
+"3%	c #1741BE",
+"4%	c #1F40BD",
+"5%	c #234BBF",
+"6%	c #234CBE",
+"7%	c #214BBE",
+"8%	c #244CBE",
+"9%	c #214ABE",
+"0%	c #214ABF",
+"a%	c #1F48C0",
+"b%	c #2746BE",
+"c%	c #1F43BE",
+"d%	c #0941BE",
+"e%	c #0342BA",
+"f%	c #0242BC",
+"g%	c #1241B8",
+"h%	c #1F40B7",
+"i%	c #2F41AC",
+"j%	c #2644AE",
+"k%	c #2D49B4",
+"l%	c #2649B6",
+"m%	c #2949B7",
+"n%	c #2849B5",
+"o%	c #2149B8",
+"p%	c #1E49B9",
+"q%	c #1F48B8",
+"r%	c #1F49B9",
+"s%	c #2545B6",
+"t%	c #2744B7",
+"u%	c #2844B7",
+"v%	c #2043B8",
+"w%	c #1241B7",
+"x%	c #1340B8",
+"y%	c #0D41B8",
+"z%	c #1941B8",
+"A%	c #1F40B8",
+"B%	c #203FB8",
+"C%	c #2549B5",
+"D%	c #2648B6",
+"E%	c #2547B7",
+"F%	c #2248B7",
+"G%	c #2048B7",
+"H%	c #2346B6",
+"I%	c #2146B6",
+"J%	c #2247B7",
+"K%	c #2148B7",
+"L%	c #2743B4",
+"M%	c #2643B5",
+"N%	c #2542B6",
+"O%	c #1D42B7",
+"P%	c #0E42B8",
+"Q%	c #0C41B8",
+"R%	c #1341B8",
+"S%	c #1740B8",
+"T%	c #1C41B8",
+"U%	c #1F40B1",
+"V%	c #2644B5",
+"W%	c #2544B5",
+"X%	c #2544B4",
+"Y%	c #2444B5",
+"Z%	c #2444B4",
+"`%	c #2744B4",
+" &	c #2241B7",
+".&	c #1D41B8",
+"+&	c #0B42B8",
+"@&	c #0942B8",
+"#&	c #0C42B8",
+"$&	c #0F41B8",
+"%&	c #1641B8",
+"&&	c #2442B5",
+"*&	c #2543B3",
+"=&	c #2342B2",
+"-&	c #2341B4",
+";&	c #2141B3",
+">&	c #2141B5",
+",&	c #2140B5",
+"'&	c #2040B5",
+")&	c #1C40B7",
+"!&	c #1B41B3",
+"~&	c #0142B6",
+"{&	c #0E41B7",
+"]&	c #1141B7",
+"^&	c #1440B2",
+"/&	c #113FB0",
+"(&	c #1440B0",
+"_&	c #213EAF",
+":&	c #233DAE",
+"<&	c #223EAF",
+"[&	c #1E40B1",
+"}&	c #173EAD",
+"|&	c #1440AF",
+"1&	c #0D40AF",
+"2&	c #0941B0",
+"3&	c #0D3FAE",
+"4&	c #1B3CAC",
+"5&	c #233CAD",
+"6&	c #203FB0",
+"7&	c #273BAD",
+"8&	c #1D40B0",
+"9&	c #2040B1",
+"0&	c #1E40B0",
+"a&	c #1C40B0",
+"b&	c #1B3DAC",
+"c&	c #143DAC",
+"d&	c #193DAD",
+"e&	c #1B3DAD",
+"f&	c #173DAD",
+"g&	c #153DAC",
+"h&	c #1C3CAC",
+"i&	c #243CAD",
+"j&	c #213FB0",
+"k&	c #263BAA",
+"l&	c #253CAE",
+"m&	c #273AAC",
+"n&	c #273AAD",
+"o&	c #253BAD",
+"p&	c #1D3CAC",
+"q&	c #243BAD",
+"r&	c #1E3CAC",
+"s&	c #263BAD",
+"t&	c #1A3DAC",
+"u&	c #143DAB",
+"v&	c #163DAC",
+"w&	c #1A3CAC",
+"x&	c #1F3CAD",
+"y&	c #263BAB",
+"z&	c #263BA6",
+"A&	c #1E42A4",
+"B&	c #2D40A5",
+"C&	c #253BA6",
+"D&	c #253CA7",
+"E&	c #263AA5",
+"F&	c #253BA7",
+"G&	c #1E3BA6",
+"H&	c #193DA6",
+"I&	c #173DA5",
+"J&	c #143DA6",
+"K&	c #1A3DA7",
+"L&	c #133DA6",
+"M&	c #123DA5",
+"N&	c #1A3CA7",
+"O&	c #243BA6",
+"P&	c #263AA7",
+"Q&	c #273BA7",
+"R&	c #263AA6",
+"S&	c #223BA6",
+"T&	c #1D3BA6",
+"U&	c #173CA6",
+"V&	c #133DA5",
+"W&	c #1B3DA6",
+"X&	c #193DA5",
+"Y&	c #123DA4",
+"Z&	c #163CA5",
+"`&	c #213CA6",
+" *	c #273BA8",
+".*	c #263BA7",
+"+*	c #253BA5",
+"@*	c #263BA5",
+"#*	c #1C3BA6",
+"$*	c #1B3BA9",
+"%*	c #133BA8",
+"&*	c #0A3BA7",
+"**	c #083AA6",
+"=*	c #123CA5",
+"-*	c #0839A8",
+";*	c #0239A6",
+">*	c #123AA8",
+",*	c #1F49C8",
+"'*	c #2F4DA4",
+")*	c #2E4DA3",
+"!*	c #384CA4",
+"~*	c #3C4DA7",
+"{*	c #394EA7",
+"]*	c #3B4CA5",
+"^*	c #3C52B1",
+"/*	c #3551A8",
+"(*	c #3759BE",
+"_*	c #4161C7",
+":*	c #0033A8",
+"<*	c #596FA9",
+"[*	c #2F4DA3",
+"}*	c #2D4BA5",
+"|*	c #2E4CA4",
+"1*	c #2C4AA5",
+"2*	c #2D4BA4",
+"3*	c #354DA4",
+"4*	c #3A4BA4",
+"5*	c #394DA6",
+"6*	c #4056AD",
+"7*	c #445BBB",
+"8*	c #B5B7B4",
+"9*	c #1B2F85",
+"0*	c #242F79",
+"a*	c #B5B5B5",
+"b*	c #B5B2B6",
+"c*	c #C0C3C3",
+"d*	c #E3E3E4",
+"e*	c #EBEDEA",
+". + @ + # $ % & # $ % & # $ % & # $ % & & * = - ; > , ' ) ! ~ { { { { { { { ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ / / / ( / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / _ _ / / : / < [ } | | | 1 1 ",
+"2 2 2 2 3 2 4 @ 3 2 4 @ 3 2 4 @ 3 2 4 @ # 5 6 7 8 ; > 9 0 a b c d e f { { { ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ( ( ( ( ( ( ( ( ( / / / / / / / / / / / / / / / / / _ _ _ _ _ _ _ _ _ _ _ g g _ / / : : : h i } 1 | 1 ",
+"j k l m n o p q n o p q r s t u v w x y z A B C D E F G H I J K L M N O P O O Q R S T T T T T T T T T T T T T T T T T T U U U U U U U U U U U U U U U U U U U U U U U U U U U U V V V U U W X : [ Y | | ",
+"Z `  . ...+.@.#...+.@.#.Z $.%.&.Z $.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.7.8.: h Y } 1 ",
+"9.0.a.b.c.c.d.e.f.c.d.e.f.c.d.e.f.c.d.e.g.h.i.j.k.l.m.n.o.p.q.r.s.s.t.u.u.v.w.x.4.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.y.5.7.6.: / z.A.} ",
+"-.B.C.D.-.E.g.F.G.E.g.F.G.E.g.F.G.E.g.F.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.V.U.U.W.X.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Z.y.Y.7.7.: : `.z.} ",
+" +.+g.;.++F.@+#+++F.@+#+++F.@+#+++F.@+#+$+%+&+*+=+-+;+>+,+'+)+!+~+{+]+{+{+4.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.Y.Y.5.5.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Z.Z.Z.y.y.5.7.7.: : ^+z.Y ",
+"/+(+_+#+H.H.>.:+H.H.>.:+H.H.>.:+H.H.>.<+[+}+*+|+1+2+3+4+5+6+7+{+{+4.4.4.4.4.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.Y.Y.Y.Y.Y.Y.Y.5.Y.Y.Y.Y.Y.Y.Y.Y.5.Y.Y.5.5.5.5.Y.Y.Y.Y.Y.Y.Z.Z.Z.Z.y.y.y.y.y.y.7.7.: : ^+i } ",
+"8+9+0+0+a+0+0+b+a+0+0+b+a+0+0+b+a+0+0+c+d+e+f+g+h+i+j+k+l+m+n+o+4.4.4.4.5.5.5.5.5.5.Y.Y.5.5.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Y.Y.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.7.7.: : p+z.Y ",
+"q+r+r+s+t+u+v+w+t+u+v+w+t+u+v+w+t+u+x+&+y+z+A+B+C+D+E+5+F+G+~+4.4.4.4.5.5.5.5.5.H+Y.Y.Y.Y.Y.Y.Y.Y.I+Y.Z.Y.Y.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.7.7.: : `.z.A.",
+"J+v+K+L+M+N+O+P+Q+R+O+P+Q+R+O+P+Q+R+O+S+T+U+V+W+X+Y+P.T Z+`+ @4.4..@5.5.5.5.5.5.Y.Y.Y.I+I+I+I+I++@+@Z.Z.Y.Y.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.@@Z.7.7.: : p+z.Y ",
+"#@$@$@%@%@$@#@&@#@#@#@&@#@#@#@&@#@#@#@*@=@-@;+i+;@>@,@'@)@ @4.X.5.5.H+Y.Y.Y.!@Y.Y.I++@+@Z.Z.+@Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.y.Z.6.6.: : `.z.A.",
+"#@$@~@~@~@{@]@^@/@{@]@^@/@{@]@^@/@{@]@(@_@:@<@[@}@k+|@V 1@2@3@5.5.5.Y.Y.I+4@I+5@+@Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.y.Z.6.6.: : p+z.Y ",
+"6@7@8@9@0@a@b@c@a@a@b@c@a@a@b@c@a@a@b@d@e@<@f@g@h@i@j@k@l@m@n@o@o@p@Y.I+q@q@r@+@Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.y.Z.6.6.: : `.z.A.",
+"s@t@u@_@_@v@w@w@x@v@w@w@x@v@y@y@x@v@:@z@A@B@P C@D@E@F@G@H@I@J@K@5@+@+@+@r@I+L@Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.@@Z.W W : : p+z.Y ",
+"M@N@O@P@C+Q@Q@R@C+;+Q@R@C+;+;+S@C+Q@Q@R@T@U@V@W@X@Y@Z@`@4. #.#+#Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.8.Z.Z.Z.Z.8.8.Z.Z.y.@@@@W W : : `.z.A.",
+"@#O@O@##$#%#&#*#=#-#;#>#,#-#;#>#,#-#'#)#!#~#W@{#]#k@^#H@/#(#_#Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.8.8.Z.Z.Z.Z.Z.Z.Z.8.8.8.8.8.8.8.8.8.8.8.Z.Z.y.y.@@W W : : p+z.Y ",
+":#<#[#}#|#1#2#3#4#5#1#4#4#1#1#4#4#1#1#6#7#8#9#V 0#`+a#b#c#d#e#Z.Z.Z.f#Z.Z.Z.f#f#f#f#f#f#f#f#f#f#g#g#g#g#g#8.8.8.8.8.8.8.8.8.g#g#g#g#8.g#8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.y.y.@@W W : : `.z.A.",
+"h#2#i#6#|#j#7#k#|#j#7#7#|#j#7#7#|#j#7#l#8#m#n#n#o#p#q#r#s#d#e#Z.Z.Z.f#f#f#f#Z.f#f#g#g#g#g#g#g#g#g#g#g#g#g#8.8.8.g#g#8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.y.y.y.y.8.8.8.y.y.@@W W : : p+z.Y ",
+"l#7#7#l#7#7#7#W@7#7#7#W@7#7#k#W@t#7#7#W@u#v#n#w#x#y#z#A#B#Z.e#f#f#Z.f#f#f#Z.Z.g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#8.8.8.g#g#g#g#8.8.g#g#g#g#g#g#8.8.g#8.8.y.8.8.y.y.8.y.y.y.y.@@W W : : `.z.A.",
+"C#D#E#F#G#H#I#J#G#H#I#J#G#H#I#J#G#H#I#J#K#L#M#N#O#P#s#Q#+#f#R#f#f#f#f#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#@@@@y.y.@@@@y.y.W W : : p+z.Y ",
+"S#S#S#S#S#T#S#U#S#T#S#U#S#T#S#U#S#T#S#U#V#W#X#Y#Z#`# $.$+$@$#$g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#g#@@@@@@@@@@@@@@@@@@y.y.W W : : `.z.A.",
+"+$Z..$$$%$+$&$*$%$+$&$*$%$+$&$*$%$+$&$*$=$-$;$>$,$'$)$!$~${$]$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$/$/$/$/$($($_$_$:$:$p+z.Y ",
+"<$<$<$<$<$[$}$|$<$[$}$|$<$[$}$|$<$[$}$|$1$2$3$4$5$)$6$7$8$9$0$a$a$a$a$a$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$/$/$/$^$^$^$/$/$/$/$/$/$/$/$/$/$/$/$/$/$($($_$_$:$:$`.z.A.",
+"b$c$c$c$d$e$e$f$g$|$|$1$d$e$e$1$d$e$e$1$h$i$j$k$l$m$n$o$p$9$q$a$a$a$a$a$a$a$a$^$a$a$^$^$^$^$^$^$a$r$r$r$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$^$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$($($_$_$:$:$p+z.Y ",
+"e$1$s$s$1$t$u$v$w$x$y$z$A$x$u$v$g$B$C$>$D$E$F$G$H$I$J$K$L$M$N$a$a$a$a$a$a$a$a$^$r$r$a$^$^$^$a$r$r$r$r$r$/$^$r$^$^$^$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$O$($_$_$:$:$`.z.A.",
+"P$Q$R$S$T$U$V$W$X$Y$Z$W$`$ %.%W$+%U$@%#%$%%%&%($*%=%-%;%>%>%,%r$r$r$r$r$a$a$a$/$/$/$r$r$r$r$r$r$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$O$($_$_$:$:$p+z.Y ",
+"'%W$)%!%~%{%'%]%~%^%'%]%~%^%'%]%~%^%/%(%_%&%:%<%[%}%|%1%2%3%4%r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$/$r$/$/$r$r$r$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$/$r$/$/$/$/$/$O$($_$_$:$:$`.z.A.",
+"5%6%'%'%6%7%8%9%6%7%8%9%6%7%8%9%6%7%8%0%&%a%<%b%[%c%d%e%f%g%h%r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$/$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$/$/$/$/$/$/$/$/$/$/$/$/$/$/$r$r$/$/$r$r$/$r$i%j%O$($_$_$:$:$p+z.Y ",
+"k%l%m%n%o%o%p%q%o%o%r%q%o%o%r%q%o%o%p%q%s%t%/$u%v%w%x%y%z%A%B%r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$/$/$/$/$/$/$/$r$r$i%i%i%r$r$i%i%i%i%i%i%i%i%i%i%i%i%r$/$/$j%j%j%j%j%j%j%j%j%O$($_$_$:$:$`.z.A.",
+"C%D%E%F%G%H%I%J%K%H%I%J%K%H%I%J%K%H%I%J%L%M%N%O%P%Q%R%S%T%A%B%r$r$r$r$r$r$r$r$r$r$r$r$r$r$r$U%U%r$r$i%i%/$/$r$r$/$/$/$/$r$r$i%i%i%i%i%i%i%i%i%i%i%i%i%i%j%i%j%j%j%j%j%j%j%j%j%j%j%j%j%O$($_$_$:$:$p+z.Y ",
+"/$/$/$/$V%V%W%X%W%Y%Y%Z%W%W%Y%Z%W%W%W%`%`% &B%.&+&@&#&$&%&A%B%r$r$r$U%U%U%U%r$U%U%U%U%U%U%U%U%U%U%i%i%i%i%i%i%i%i%/$/$/$i%i%i%i%i%i%i%i%i%j%j%j%j%i%i%i%i%i%j%j%j%i%i%j%j%j%j%j%j%j%j%O$($_$_$:$:$`.z.A.",
+"&&*&=&-&=&;&>&,&=&;&>&,&=&;&>&,&=&;&>&'&)&!&~&{&]&^&/&(&_&:&<&U%U%U%U%U%U%U%U%U%U%U%U%U%i%i%U%U%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%O$($_$_$:$:$p+z.Y ",
+"U%U%U%U%U%U%U%U%U%U%U%U%U%U%U%U%U%U%U%U%[&}&|&1&2&3&4&5&_&6&U%7&U%U%U%U%U%U%U%U%i%i%U%U%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%O$O$_$_$:$:$`.z.A.",
+"U%U%U%U%U%U%[&8&U%9&[&0&U%9&[&0&U%9&[&a&:&b&c&d&e&f&g&h&i&<&j&U%U%U%U%U%U%U%U%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%O$O$_$_$:$:$p+z.Y ",
+"k&l&m&7&7&n&o&p&7&n&q&r&s&s&q&r&s&n&o&p&t&u&u&g&v&w&x&q&n&m&y&7&7&U%U%7&z&7&z&U%A&B&i%i%B&B&i%i%B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&i%B&O$O$_$_$:$:$`.z.A.",
+"C&D&E&z&z&E&F&G&z&E&F&G&z&E&F&G&z&E&F&G&H&I&J&K&L&M&N&O&P&Q&z&z&z&z&z&z&z&z&z&z&z&z&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&O$O$_$_$:$:$p+z.Y ",
+"z&z&z&z&R&S&T&U&R&S&T&U&R&S&T&U&R&S&T&U&V&V&W&X&Y&Z&`&C&R&z&z&z&z&z&z&z&z&z&z&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&O$O$_$_$:$:$^+z.A.",
+"z& *.*+*@*#*$*%*@*#*$*%*@*#*$*%*@*#*$*%*&***=*-*;*>*k&P&+*z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&z&B&B&B&B&z&z&z&B&B&B&z&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&B&/$O$O$@@_$,*:$/ ^+z.Y ",
+"'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*)*'*!*~*{*]*^*^*^*/*/*/*/*/*/*/*^*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*^*/*/*/*/*/*h h ^*h h ^*^*h h ^*^*^*^*h ^*^*^*^*h ^*^*^*(*_*_*_*_*_$:*:$<*`.z.} ",
+"'*'*'*'*'*[*}*|*'*[*}*|*'*[*}*|*'*[*}*|*1*1*2*}*}*2*[*)*3*4*5*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*h h h h h h h h h h h h h h h h 6*7*_*_*_*_*^*:*:$: 8*z.Y } ",
+"9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*( <*8*^+z.Y } 1 ",
+"a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*8*b*8*b*8*b*8*b*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*b*8*8*8*8*b*8*`.z.A.Y | | ",
+"c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*c*p+`.p+`.p+`.p+`.`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+`.p+^+`.^+^+z.z.Y Y | | 1 ",
+"d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*d*A.Y A.Y A.Y A.Y Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y A.Y } } | | | | 1 1 ",
+"e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*e*} | } | } | } | | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | } | | | | 1 | | | 1 1 1 "};
+
+
+static char * tabmiddle_xpm[] = {
+"33 42 32 1",
+" 	c None",
+".	c #CECFEF",
+"+	c #CECBE7",
+"@	c #C6C7E7",
+"#	c #C6CBE7",
+"$	c #BDBEDE",
+"%	c #BDC3DE",
+"&	c #CECBEF",
+"*	c #B5B6D6",
+"=	c #ADAECE",
+"-	c #ADB2CE",
+";	c #BDBAD6",
+">	c #B5BAD6",
+",	c #C6C3DE",
+"'	c #ADAAC6",
+")	c #B5B2CE",
+"!	c #B5B6CE",
+"~	c #A5A2BD",
+"{	c #A5A6BD",
+"]	c #9C9EB5",
+"^	c #9CA2BD",
+"/	c #ADAEC6",
+"(	c #C6C3E7",
+"_	c #9C9AB5",
+":	c #A5A6C6",
+"<	c #949AAD",
+"[	c #A5AAC6",
+"}	c #9496AD",
+"|	c #BDBADE",
+"1	c #BDBED6",
+"2	c #9CA2B5",
+"3	c #A5AABD",
+"..........................+@.#.#.",
+"........................$@%&#.#..",
+"......................**$$@@&#.#.",
+".....................=-;>,%+@.#..",
+"....................'')!$$@@&#.#.",
+"...................~{=)$$@@&#.#..",
+"..................]^'/;;(%&#.#...",
+"................._]:/*>,%&@.#.#..",
+".................<{[)!$%+@.#.#...",
+"................}~{=!$%@@.#......",
+"................]^/-|$@@.#.......",
+"................]'/*;@@&#........",
+"...............<~[)>,%&#.#.......",
+"...............]~=)$%+#.#........",
+"...............]'/;1@@.#.........",
+"...............~{)*,%&#..........",
+"...............2/-$$@#...........",
+"...............~[*>(@&#..........",
+"...............^=)$%+#...........",
+"...............{'*>(@.#..........",
+"...............^=)$%+#...........",
+"...............{'*>(@.#..........",
+"...............^=)$%+#...........",
+"...............{'*>(@.#..........",
+"...............^=)$%+#...........",
+"...............{'*>(@.#..........",
+"...............^=)$%+#...........",
+"...............{'*>@@.#..........",
+"...............^=!$%&#...........",
+"...............{/*;@@.#..........",
+"...............{)!$%&#...........",
+"..............]'/;1@@.#..........",
+"..............23)>,%&#...........",
+"..............~=-$$@@.#..........",
+".............]{/*;@@.#...........",
+"............<^[)>,%&#............",
+"............]{/!$%@@.#...........",
+"..........]^[-!$%@@.#............",
+".........]^3/!>$@@.#.............",
+".......<]^3/!>$@@&#..............",
+".....<]2{[/!>$%@&#.#.............",
+"}<<_]2{3/-!>$%@&#.#.............."};
+
+
+static char * tabselectedbeginn_xpm[] = {
+"33 39 28 1",
+" 	c None",
+".	c #CECFEF",
+"+	c #EFF3EF",
+"@	c #FFFBFF",
+"#	c #F7FBF7",
+"$	c #FFFFFF",
+"%	c #EFEFEF",
+"&	c #F7F7F7",
+"*	c #DEDFDE",
+"=	c #E7E7E7",
+"-	c #D6D3D6",
+";	c #DEE3DE",
+">	c #EFEBEF",
+",	c #F7F3F7",
+"'	c #CECBCE",
+")	c #CECFCE",
+"!	c #D6D7D6",
+"~	c #DEDBDE",
+"{	c #E7EBE7",
+"]	c #C6C7C6",
+"^	c #E7E3E7",
+"/	c #BDC3BD",
+"(	c #CED3CE",
+"_	c #BDBABD",
+":	c #C6C3C6",
+"<	c #C6CBC6",
+"[	c #D6DBD6",
+"}	c #BDBEBD",
+"..........................+@#$#$$",
+"........................%%&&@#$#$",
+"......................*==%%&&@#$$",
+"....................--*;>%,&@#$#$",
+"...................')!~={,+@#$#$$",
+"...................]-!^=%%&&@#$#$",
+"................../'(~;>%&&@#$#$$",
+"................._])!*={,&@#$#$$$",
+"................_])~*>%&&$#$$$$$$",
+"................:<![={&&@#$$$$$$$",
+"................:)!^=,+@#$$$$$$$$",
+"...............}'(*^%+@#$#$$$$$$$",
+"...............:<!*>%&&$#$$$$$$$$",
+".............../)!^{,&@#$$$$$$$$$",
+"...............](*^%+@#$$$$$$$$$$",
+"...............]!~=%&&$$$$$$$$$$$",
+"...............'(*=,+@#$$$$$$$$$$",
+"...............<!*>%&&$$$$$$$$$$$",
+"...............'-^=,+@#$$$$$$$$$$",
+"...............<!*>%&#$$$$$$$$$$$",
+"...............'-^=,+@#$$$$$$$$$$",
+"...............<!*>%&#$$$$$$$$$$$",
+"...............'-^=,+@#$$$$$$$$$$",
+"...............<!*>%&#$$$$$$$$$$$",
+"...............'-^=,+@#$$$$$$$$$$",
+"...............<!*>%&#$$$$$$$$$$$",
+"...............'!^=,&@#$$$$$$$$$$",
+"...............<~*>%&#$$$$$$$$$$$",
+"...............)!^{,&@#$$$$$$$$$$",
+"..............])~;%+@#$$$$$$$$$$$",
+"..............]-[={&&$#$$$$$$$$$$",
+".............])!^=,&@#$$$$$$$$$$$",
+"............:'-*^%+@#$$$$$$$$$$$$",
+"............])~*>%&&$#$$$$$$$$$$$",
+"...........:'!*={,&@#$$$$$$$$$$$$",
+"..........:'-~^=,+@#$$$$$$$$$$$$$",
+".......}]'-~^=%,&@#$$$$$$$$$$$$$$",
+".....}:])-~^=%,+@#$#$$$$$$$$$$$$$",
+"}}}:]')-!*^=%,&@#$#$$$$$$$$$$$$$$"};
+
+
+static char * tabselectedend_xpm[] = {
+"33 42 33 1",
+" 	c None",
+".	c #FFFFFF",
+"+	c #CECBE7",
+"@	c #C6C7E7",
+"#	c #CECFEF",
+"$	c #C6CBE7",
+"%	c #BDBEDE",
+"&	c #BDC3DE",
+"*	c #CECBEF",
+"=	c #B5B6D6",
+"-	c #ADAECE",
+";	c #ADB2CE",
+">	c #BDBAD6",
+",	c #B5BAD6",
+"'	c #C6C3DE",
+")	c #ADAAC6",
+"!	c #B5B2CE",
+"~	c #B5B6CE",
+"{	c #A5A2BD",
+"]	c #A5A6BD",
+"^	c #9C9EB5",
+"/	c #9CA2BD",
+"(	c #ADAEC6",
+"_	c #C6C3E7",
+":	c #9C9AB5",
+"<	c #A5A6C6",
+"[	c #949AAD",
+"}	c #A5AAC6",
+"|	c #9496AD",
+"1	c #BDBADE",
+"2	c #BDBED6",
+"3	c #9CA2B5",
+"4	c #A5AABD",
+"..........................+@#$#$#",
+"........................%@&*$#$##",
+"......................==%%@@*$#$#",
+".....................-;>,'&+@#$##",
+"....................))!~%%@@*$#$#",
+"...................{]-!%%@@*$#$##",
+"..................^/)(>>_&*$#$###",
+".................:^<(=,'&*@#$#$##",
+".................[]}!~%&+@#$#$###",
+"................|{]-~%&@@#$######",
+"................^/(;1%@@#$#######",
+"................^)(=>@@*$########",
+"...............[{}!,'&*$#$#######",
+"...............^{-!%&+$#$########",
+"...............^)(>2@@#$#########",
+"...............{]!='&*$##########",
+"...............3(;%%@$###########",
+"...............{}=,_@*$##########",
+".............../-!%&+$###########",
+"...............])=,_@#$##########",
+".............../-!%&+$###########",
+"...............])=,_@#$##########",
+".............../-!%&+$###########",
+"...............])=,_@#$##########",
+".............../-!%&+$###########",
+"...............])=,_@#$##########",
+".............../-!%&+$###########",
+"...............])=,@@#$##########",
+".............../-~%&*$###########",
+"...............](=>@@#$##########",
+"...............]!~%&*$###########",
+"..............^)(>2@@#$##########",
+"..............34!,'&*$###########",
+"..............{-;%%@@#$##########",
+".............^](=>@@#$###########",
+"............[/}!,'&*$############",
+"............^](~%&@@#$###########",
+"..........^/};~%&@@#$############",
+".........^/4(~,%@@#$#############",
+".......[^/4(~,%@@*$##############",
+".....[^3]}(~,%&@*$#$#############",
+"|[[:^3]4(;~,%&@*$#$##############"};
+
+
+static char * tabend_xpm[] = {
+"33 42 3 1",
+" 	c None",
+".	c #CECFEF",
+"+	c #FFFFFF",
+"..........................+++++++",
+"........................+++++++++",
+"......................+++++++++++",
+".....................++++++++++++",
+"....................+++++++++++++",
+"...................++++++++++++++",
+"..................+++++++++++++++",
+".................++++++++++++++++",
+".................++++++++++++++++",
+"................+++++++++++++++++",
+"................+++++++++++++++++",
+"................+++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"...............++++++++++++++++++",
+"..............+++++++++++++++++++",
+"..............+++++++++++++++++++",
+"..............+++++++++++++++++++",
+".............++++++++++++++++++++",
+"............+++++++++++++++++++++",
+"............+++++++++++++++++++++",
+"..........+++++++++++++++++++++++",
+".........++++++++++++++++++++++++",
+".......++++++++++++++++++++++++++",
+".....++++++++++++++++++++++++++++",
+"+++++++++++++++++++++++++++++++++"};
+
+
+
+
+QColor fromHsl(QColor c)
+{
+    const qreal h = c.hueF();
+    const qreal s = c.saturationF();
+    const qreal l = c.valueF();
+
+    qreal ca[3] = {0, 0, 0};
+
+    if (s == 0 || h == 1) {
+        // achromatic case 
+        ca[0] = ca[1] = ca[2] = l;
+    } else { 
+        // chromatic case 
+        qreal temp2; 
+        if (l < qreal(0.5)) 
+            temp2 = l * (qreal(1.0) + s); 
+        else 
+            temp2 = l + s - (l * s); 
+
+        const qreal temp1 = (qreal(2.0) * l) - temp2; 
+        qreal temp3[3] = { h + (qreal(1.0) / qreal(3.0)), 
+            h, 
+            h - (qreal(1.0) / qreal(3.0)) }; 
+
+        for (int i = 0; i != 3; ++i) { 
+            if (temp3[i] < qreal(0.0)) 
+                temp3[i] += qreal(1.0); 
+            else if (temp3[i] > qreal(1.0)) 
+                temp3[i] -= qreal(1.0);
+
+            const qreal sixtemp3 = temp3[i] * qreal(6.0);
+
+            if (sixtemp3 < qreal(1.0)) 
+                ca[i] = ((temp1 + (temp2 - temp1) * sixtemp3)); 
+            else if ((temp3[i] * qreal(2.0)) < qreal(1.0)) 
+                ca[i] = (temp2); 
+            else if ((temp3[i] * qreal(3.0)) < qreal(2.0)) 
+                ca[i] = temp1 + (temp2 -temp1) * (qreal(2.0) /qreal(3.0) - temp3[i]) * qreal(6.0);
+            else ca[i] = temp1;
+        }
+    }
+    
+    return QColor::fromRgbF(ca[0], ca[1], ca[2]);
+}
+
+#define Q_MAX_3(a, b, c) ( ( a > b && a > c) ? a : (b > c ? b : c) )
+#define Q_MIN_3(a, b, c) ( ( a < b && a < c) ? a : (b < c ? b : c) )
+
+QColor toHsl(QColor c)
+{
+    QColor color; 
+    qreal h;
+    qreal s;
+    qreal l;
+
+    const qreal r = c.redF();
+    const qreal g = c.greenF();
+    const qreal b = c.blueF();
+    const qreal max = Q_MAX_3(r, g, b); 
+    const qreal min = Q_MIN_3(r, g, b); 
+    const qreal delta = max - min;  
+    const qreal delta2 = max + min; 
+    const qreal lightness = qreal(0.5) * delta2; 
+    l = (lightness);
+    if (qFuzzyIsNull(delta)) { 
+        // achromatic case, hue is undefined 
+        h = 0;
+        s = 0; 
+    } else {
+        // chromatic case 
+        qreal hue = 0; 
+        if (lightness < qreal(0.5)) 
+            s = ((delta / delta2)); 
+        else 
+            s = ((delta / (qreal(2.0) - delta2))); 
+        if (qFuzzyCompare(r, max)) { 
+            hue = ((g - b) /delta); 
+        } else if (qFuzzyCompare(g, max)) { 
+            hue = (2.0 + (b - r) / delta); 
+        } else if (qFuzzyCompare(b, max)) { 
+            hue = (4.0 + (r - g) / delta); 
+        } else { 
+            Q_ASSERT_X(false, "QColor::toHsv", "internal error"); 
+        }
+        hue *= 60.0; 
+        if (hue < 0.0) 
+            hue += 360.0; 
+        h = (hue * 100); 
+    }
+
+    h = h / 36000;
+
+    return QColor::fromHsvF(h, s, l);
+}
+
+void tintColor(QColor &color, QColor tintColor, qreal _saturation)
+{
+    tintColor = toHsl(tintColor);
+    color = toHsl(color);
+    qreal hue = tintColor.hueF();
+
+    qreal saturation = color.saturationF();
+    if (_saturation)
+        saturation = _saturation;
+    qreal lightness = color.valueF();
+    color.setHsvF(hue, saturation, lightness);
+
+    color = fromHsl(color);
+    color.toRgb();
+}
+
+void tintImagePal(QImage *image, QColor color, qreal saturation)
+{
+    QVector<QRgb> colorTable = image->colorTable();
+    for (int i=2;i< colorTable.size();i++) {
+        QColor c(toHsl(colorTable.at(i)));
+        tintColor(c, color, saturation);
+        colorTable[i] = c.rgb();
+    }
+    image->setColorTable(colorTable);
+}
+
+
+void tintImage(QImage *image, QColor color, qreal saturation)
+{
+    *image = image->convertToFormat(QImage::Format_RGB32);
+
+    for (int x = 0; x < image->width(); x++)
+        for (int y = 0; y < image->height(); y++) {
+            QColor c(image->pixel(x,y));
+            tintColor(c, color, saturation);
+            image->setPixel(x, y, c.rgb());
+        }
+}
+
+#endif //Q_WS_WINCE_WM
+
+
+enum QSliderDirection { SliderUp, SliderDown, SliderLeft, SliderRight };
+
+#ifdef Q_WS_WINCE_WM
+
+void QWindowsMobileStylePrivate::tintImagesButton(QColor color)
+{
+       if (currentTintButton == color)
+        return;
+
+       imageTabEnd = QImage(tabend_xpm);
+       imageTabSelectedEnd = QImage(tabselectedend_xpm);
+       imageTabSelectedBegin = QImage(tabselectedbeginn_xpm);
+       imageTabMiddle = QImage(tabmiddle_xpm);
+       tintImage(&imageTabEnd, color, 0.0);
+       tintImage(&imageTabSelectedEnd, color, 0.0);
+       tintImage(&imageTabSelectedBegin, color, 0.0);
+       tintImage(&imageTabMiddle, color, 0.0);
+
+       if (!doubleControls) {
+           int height = imageTabMiddle.height() / 2 + 1;
+           imageTabEnd = imageTabEnd.scaledToHeight(height);
+           imageTabMiddle = imageTabMiddle.scaledToHeight(height);
+           imageTabSelectedEnd = imageTabSelectedEnd.scaledToHeight(height);
+           imageTabSelectedBegin = imageTabSelectedBegin.scaledToHeight(height);
+       }
+}
+
+void QWindowsMobileStylePrivate::tintImagesHigh(QColor color)
+{
+    if (currentTintHigh == color)
+        return;
+    currentTintHigh = color;
+    tintListViewHighlight(color);
+    imageScrollbarHandleUpHigh = imageScrollbarHandleUp;
+    imageScrollbarHandleDownHigh = imageScrollbarHandleDown;
+    tintImagePal(&imageScrollbarHandleDownHigh, color, qreal(0.8));
+    tintImagePal(&imageScrollbarHandleUpHigh, color, qreal(0.8));
+}
+
+void QWindowsMobileStylePrivate::tintListViewHighlight(QColor color)
+{
+    imageListViewHighlightCornerRight = QImage(listviewhighcornerright_xpm);
+    tintImage(&imageListViewHighlightCornerRight, color, qreal(0.0));
+
+    imageListViewHighlightCornerLeft = QImage(listviewhighcornerleft_xpm);
+    tintImage(&imageListViewHighlightCornerLeft, color, qreal(0.0));
+
+    imageListViewHighlightMiddle = QImage(listviewhighmiddle_xpm);
+    tintImage(&imageListViewHighlightMiddle, color, qreal(0.0));
+     
+     int height = imageListViewHighlightMiddle.height();
+     if (!doubleControls) {
+         height = height / 2;
+         imageListViewHighlightCornerRight = imageListViewHighlightCornerRight.scaledToHeight(height);
+         imageListViewHighlightCornerLeft = imageListViewHighlightCornerLeft.scaledToHeight(height);
+         imageListViewHighlightMiddle = imageListViewHighlightMiddle.scaledToHeight(height);
+     }
+}
+
+#endif //Q_WS_WINCE_WM
+
+void QWindowsMobileStylePrivate::setupWindowsMobileStyle65()
+{
+#ifdef Q_WS_WINCE_WM
+    wm65 = qt_wince_is_windows_mobile_65();
+    if (wm65) {
+        imageScrollbarHandleUp =  QImage(sbhandleup_xpm);
+        imageScrollbarHandleDown = QImage(sbhandledown_xpm);
+        imageScrollbarGripUp = QImage(sbgripup_xpm);
+        imageScrollbarGripDown = QImage(sbgripdown_xpm);
+        imageScrollbarGripMiddle = QImage(sbgripmiddle_xpm);
+
+        if (!doubleControls) {
+            imageScrollbarHandleUp = imageScrollbarHandleUp.scaledToHeight(imageScrollbarHandleUp.height() / 2);
+            imageScrollbarHandleDown = imageScrollbarHandleDown.scaledToHeight(imageScrollbarHandleDown.height() / 2);
+            imageScrollbarGripMiddle = imageScrollbarGripMiddle.scaledToHeight(imageScrollbarGripMiddle.height() / 2);
+            imageScrollbarGripUp = imageScrollbarGripUp.scaledToHeight(imageScrollbarGripUp.height() / 2);
+            imageScrollbarGripDown = imageScrollbarGripDown.scaledToHeight(imageScrollbarGripDown.height() / 2);
+        } else {
+        }
+        tintImagesHigh(Qt::blue);
+    }
+#endif //Q_WS_WINCE_WM
+}
+
+void QWindowsMobileStylePrivate::drawTabBarTab(QPainter *painter, const QStyleOptionTab *tab)
+{
+#ifdef Q_WS_WINCE_WM
+    if (wm65) {
+        tintImagesButton(tab->palette.button().color());
+        QRect r;
+        r.setTopLeft(tab->rect.topRight() - QPoint(imageTabMiddle.width(), 0));
+        r.setBottomRight(tab->rect.bottomRight());
+        if (tab->state & QStyle::State_Selected) {
+            painter->fillRect(tab->rect, tab->palette.window());
+        } else {
+            painter->fillRect(tab->rect, QColor(imageTabMiddle.pixel(0,0)));
+        }
+        if  (tab->selectedPosition ==  QStyleOptionTab::NextIsSelected) {
+            painter->drawImage(r, imageTabSelectedBegin);
+        } else if (tab->position == QStyleOptionTab::End ||
+            tab->position == QStyleOptionTab::OnlyOneTab) {
+                if (!(tab->state & QStyle::State_Selected)) {
+                    painter->drawImage(r, imageTabEnd);
+                }
+        } else if (tab->state & QStyle::State_Selected) {
+            painter->drawImage(r, imageTabSelectedEnd);
+        } else {
+            painter->drawImage(r, imageTabMiddle);
+        }
+        if (tab->position == QStyleOptionTab::Beginning && ! (tab->state & QStyle::State_Selected)) {
+            painter->drawImage(tab->rect.topLeft() - QPoint(imageTabMiddle.width() * 0.60, 0), imageTabSelectedEnd);
+        }
+        //imageTabBarBig
+        return;
+    }
+#endif //Q_WS_WINCE_WM
+    painter->save();
+    painter->setPen(tab->palette.shadow().color());
+    if (doubleControls) {
+        QPen pen = painter->pen();
+        pen.setWidth(2);
+        pen.setCapStyle(Qt::FlatCap);
+        painter->setPen(pen);
+    }
+    if(tab->shape == QTabBar::RoundedNorth) {
+        if (tab->state & QStyle::State_Selected) {
+            painter->fillRect(tab->rect, tab->palette.light());
+            painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
+        }
+        else {
+            painter->fillRect(tab->rect, tab->palette.button());
+            painter->drawLine(tab->rect.bottomLeft() , tab->rect.bottomRight());
+            painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
+        }
+    }
+    else if(tab->shape == QTabBar::RoundedSouth) {
+        if (tab->state & QStyle::State_Selected) {
+            painter->fillRect(tab->rect.adjusted(0,-2,0,0), tab->palette.light());
+            painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
+        }
+        else {
+            painter->fillRect(tab->rect, tab->palette.button());
+            if (doubleControls)
+                painter->drawLine(tab->rect.topLeft() + QPoint(0,1), tab->rect.topRight() + QPoint(0,1));
+            else
+                painter->drawLine(tab->rect.topLeft(), tab->rect.topRight());
+            painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
+        }
+    }
+    else if(tab->shape == QTabBar::RoundedEast) {
+        if (tab->state & QStyle::State_Selected) {
+            painter->fillRect(tab->rect, tab->palette.light());
+            painter->drawLine(tab->rect.topLeft(), tab->rect.topRight());
+        }
+        else {
+            painter->fillRect(tab->rect, tab->palette.button());
+            painter->drawLine(tab->rect.topLeft(), tab->rect.bottomLeft());
+            painter->drawLine(tab->rect.topLeft(), tab->rect.topRight());
+        }
+    }
+    else if(tab->shape == QTabBar::RoundedWest) {
+        if (tab->state & QStyle::State_Selected) {
+            painter->fillRect(tab->rect, tab->palette.light());
+            painter->drawLine(tab->rect.bottomLeft(), tab->rect.bottomRight());
+        }
+        else {
+            painter->fillRect(tab->rect, tab->palette.button());
+            painter->drawLine(tab->rect.topRight(), tab->rect.bottomRight());
+            painter->drawLine(tab->rect.bottomLeft(), tab->rect.bottomRight());
+        }
+    }
+    painter->restore();
+}
+
+void QWindowsMobileStylePrivate::drawPanelItemViewSelected(QPainter *painter, const QStyleOptionViewItemV4 *option, QRect rect)
+{
+#ifdef Q_WS_WINCE_WM
+    if (wm65) {
+        QRect r;
+        if (rect.isValid())
+            r = rect;
+        else 
+            r = option->rect;
+        tintImagesHigh(option->palette.highlight().color());
+
+        painter->setPen(QColor(Qt::lightGray));
+
+        if (option->viewItemPosition ==  QStyleOptionViewItemV4::Middle) {
+            painter->drawImage(r, imageListViewHighlightMiddle);
+        } else if (option->viewItemPosition ==  QStyleOptionViewItemV4::Beginning) {
+            painter->drawImage(r.adjusted(10, 0, 0, 0), imageListViewHighlightMiddle);
+        } else if (option->viewItemPosition ==  QStyleOptionViewItemV4::End) {
+            painter->drawImage(r.adjusted(0, 0, -10, 0), imageListViewHighlightMiddle);
+        } else {
+            painter->drawImage(r.adjusted(10, 0, -10, 0), imageListViewHighlightMiddle);
+        }
+
+        QImage cornerLeft = imageListViewHighlightCornerLeft;
+        QImage cornerRight = imageListViewHighlightCornerRight;
+
+        int width = r.width() > cornerRight.width() ? r.width() : cornerRight.width();
+
+        if ((width * 2) > r.width()) {
+            width = (r.width() - 5) / 2;
+        }
+
+        cornerLeft = cornerLeft.scaled(width, r.height());
+        cornerRight = cornerRight.scaled(width, r.height());
+
+        if ((option->viewItemPosition ==  QStyleOptionViewItemV4::Beginning) || (option->viewItemPosition ==  QStyleOptionViewItemV4::OnlyOne) || !option->viewItemPosition) {
+            painter->drawImage(r.topLeft(), cornerLeft);
+        }
+        if ((option->viewItemPosition ==  QStyleOptionViewItemV4::End) || (option->viewItemPosition ==  QStyleOptionViewItemV4::OnlyOne) || !option->viewItemPosition) {
+            painter->drawImage(r.topRight() - QPoint(cornerRight.width(),0), cornerRight);
+        }
+        return;
+    }
+#endif //Q_WS_WINCE_WM
+    QPalette::ColorGroup cg = option->state & QStyle::State_Enabled
+                                      ? QPalette::Normal : QPalette::Disabled;
+
+    if (rect.isValid())
+        painter->fillRect(rect, option->palette.brush(cg, QPalette::Highlight));
+    else
+        painter->fillRect(option->rect, option->palette.brush(cg, QPalette::Highlight));
+}
+
+void QWindowsMobileStylePrivate::drawScrollbarGrip(QPainter *p, QStyleOptionSlider *newScrollbar, const QStyleOptionComplex *option, bool drawCompleteFrame)
+{
+#ifdef Q_WS_WINCE_WM
+    if (wm65) {
+        if (newScrollbar->orientation == Qt::Horizontal) {
+            QTransform transform;
+            transform.rotate(-90);
+            QRect r = newScrollbar->rect;
+            p->drawImage(r.adjusted(10, 0, -10, 0), imageScrollbarGripMiddle.transformed(transform));
+            p->drawImage(r.topLeft(), imageScrollbarGripUp.transformed(transform));
+            p->drawImage(r.topRight() - QPoint(imageScrollbarGripDown.height() - 1, 0), imageScrollbarGripDown.transformed(transform));
+        } else {
+            QRect r = newScrollbar->rect;
+            p->drawImage(r.adjusted(0, 10, 0, -10), imageScrollbarGripMiddle);
+            p->drawImage(r.topLeft(), imageScrollbarGripUp);
+            p->drawImage(r.bottomLeft() - QPoint(0, imageScrollbarGripDown.height() - 1), imageScrollbarGripDown);
+        }
+        return ;
+    }
+#endif
+        if (newScrollbar->orientation == Qt::Horizontal) {
+            p->fillRect(newScrollbar->rect,option->palette.button());
+            QRect r = newScrollbar->rect;
+            p->drawLine(r.topLeft(), r.bottomLeft());
+            p->drawLine(r.topRight(), r.bottomRight());
+            if (smartphone) {
+                p->drawLine(r.topLeft(), r.topRight());
+                p->drawLine(r.bottomLeft(), r.bottomRight());
+            }
+        }
+        else {
+            p->fillRect(newScrollbar->rect,option->palette.button());
+            QRect r = newScrollbar->rect;
+            p->drawLine(r.topLeft(), r.topRight());
+            p->drawLine(r.bottomLeft(), r.bottomRight());
+            if (smartphone) {
+                p->drawLine(r.topLeft(), r.bottomLeft());
+                p->drawLine(r.topRight(), r.bottomRight());
+            }
+        }
+        if (newScrollbar->state & QStyle::State_HasFocus) {
+            QStyleOptionFocusRect fropt;
+            fropt.QStyleOption::operator=(*newScrollbar);
+            fropt.rect.setRect(newScrollbar->rect.x() + 2, newScrollbar->rect.y() + 2,
+                newScrollbar->rect.width() - 5,
+                newScrollbar->rect.height() - 5);
+        }
+    int gripMargin = doubleControls ? 4 : 2;
+    int doubleLines = doubleControls ? 2 : 1;
+    //If there is a frame around the scrollbar (abstractScrollArea),
+    //then the margin is different, because of the missing frame
+    int gripMarginFrame = doubleControls ? 3 : 1;
+    if (drawCompleteFrame)
+        gripMarginFrame = 0;
+    //draw grips
+    if (!smartphone)
+        if (newScrollbar->orientation == Qt::Horizontal) {
+            for (int i = -3; i < 3; i += 2) {
+                p->drawLine(
+                    QPoint(newScrollbar->rect.center().x() + i * doubleLines + 1,
+                    newScrollbar->rect.top() + gripMargin +gripMarginFrame),
+                    QPoint(newScrollbar->rect.center().x() + i * doubleLines + 1,
+                    newScrollbar->rect.bottom() - gripMargin));
+            }
+        } else {
+            for (int i = -2; i < 4 ; i += 2) {
+                p->drawLine(
+                    QPoint(newScrollbar->rect.left() + gripMargin + gripMarginFrame ,
+                    newScrollbar->rect.center().y() + 1 + i * doubleLines - 1),
+                    QPoint(newScrollbar->rect.right() - gripMargin,
+                    newScrollbar->rect.center().y() + 1 + i * doubleLines - 1));
+            }
+        }
+        if (!smartphone) {
+            QRect r;
+            if (doubleControls)
+                r = option->rect.adjusted(1, 1, -1, 0);
+            else
+                r = option->rect.adjusted(0, 0, -1, 0);
+            if (drawCompleteFrame && doubleControls)
+                r.adjust(0, 0, 0, -1);
+            //Check if the scrollbar is part of an abstractItemView and draw the frame according
+            if (drawCompleteFrame)
+                p->drawRect(r);
+            else
+                if (newScrollbar->orientation == Qt::Horizontal)
+                    p->drawLine(r.topLeft(), r.topRight());
+                else
+                    p->drawLine(r.topLeft(), r.bottomLeft());
+        }
+}
+
+void QWindowsMobileStylePrivate::drawScrollbarHandleUp(QPainter *p, QStyleOptionSlider *opt, bool completeFrame, bool )
+{
+#ifdef Q_WS_WINCE_WM
+    if (wm65) {
+        tintImagesHigh(opt->palette.highlight().color());
+        QRect r = opt->rect;
+         if (opt->orientation == Qt::Horizontal) {
+            QTransform transform;
+            transform.rotate(-90);
+            if (opt->state & QStyle::State_Sunken)
+                p->drawImage(r.topLeft(), imageScrollbarHandleUpHigh.transformed(transform));
+            else
+                p->drawImage(r.topLeft(), imageScrollbarHandleUp.transformed(transform));
+         } else {
+             if (opt->state & QStyle::State_Sunken)
+                 p->drawImage(r.topLeft(), imageScrollbarHandleUpHigh);
+             else
+                 p->drawImage(r.topLeft(), imageScrollbarHandleUp);
+         }
+        return ;
+    }
+#endif //Q_WS_WINCE_WM
+
+    QBrush fill = opt->palette.button();
+    if (opt->state & QStyle::State_Sunken)
+        fill = opt->palette.shadow();
+
+    QStyleOption arrowOpt = *opt;
+    if (doubleControls)
+        arrowOpt.rect = opt->rect.adjusted(4, 6, -5, -3);
+    else
+        arrowOpt.rect = opt->rect.adjusted(5, 6, -4, -3);
+
+    bool horizontal = (opt->orientation == Qt::Horizontal);
+
+    if (horizontal) {
+        p->fillRect(opt->rect,fill);
+        QRect r = opt->rect.adjusted(0,0,1,0);
+        p->drawLine(r.topRight(), r.bottomRight());
+        if (doubleControls)
+            arrowOpt.rect.adjust(0, -2 ,0, -2);
+        q_func()->proxy()->drawPrimitive(QStyle::PE_IndicatorArrowLeft, &arrowOpt, p, 0);
+    } else {
+        p->fillRect(opt->rect,fill);
+        QRect r = opt->rect.adjusted(0, 0, 0, 1);
+        p->drawLine(r.bottomLeft(), r.bottomRight());
+        if (completeFrame)
+            arrowOpt.rect.adjust(-2, 0, -2, 0);
+        if (doubleControls)
+            arrowOpt.rect.adjust(0, -4 , 0, -4);
+        if (completeFrame && doubleControls)
+            arrowOpt.rect.adjust(2, 0, 2, 0);
+        q_func()->proxy()->drawPrimitive(QStyle::PE_IndicatorArrowUp, &arrowOpt, p, 0);
+    }
+}
+
+void QWindowsMobileStylePrivate::drawScrollbarHandleDown(QPainter *p, QStyleOptionSlider *opt, bool completeFrame, bool secondScrollBar)
+{
+
+#ifdef Q_WS_WINCE_WM
+    if (wm65) {
+        tintImagesHigh(opt->palette.highlight().color());
+        QRect r = opt->rect;
+        if (opt->orientation == Qt::Horizontal) {
+            QTransform transform;
+            transform.rotate(-90);
+            if (opt->state & QStyle::State_Sunken)
+                p->drawImage(r.topLeft(), imageScrollbarHandleDownHigh.transformed(transform));
+            else
+                p->drawImage(r.topLeft(), imageScrollbarHandleDown.transformed(transform));
+        } else {
+            if (opt->state & QStyle::State_Sunken)
+                p->drawImage(r.topLeft(), imageScrollbarHandleDownHigh);
+            else
+                p->drawImage(r.topLeft(), imageScrollbarHandleDown);
+        }
+        return ;
+    }
+#endif //Q_WS_WINCE_WM
+
+    QBrush fill = opt->palette.button();
+    if (opt->state & QStyle::State_Sunken)
+        fill = opt->palette.shadow();
+
+    QStyleOption arrowOpt = *opt;
+    if (doubleControls)
+        arrowOpt.rect = opt->rect.adjusted(4, 0, -5, 3);
+    else
+        arrowOpt.rect = opt->rect.adjusted(5, 6, -4, -3);
+
+    bool horizontal = (opt->orientation == Qt::Horizontal);
+
+    if (horizontal) {
+        p->fillRect(opt->rect,fill);
+        QRect r = opt->rect.adjusted(0, 0, 0, 0);
+        p->drawLine(r.topLeft(), r.bottomLeft());
+        if (secondScrollBar)
+            p->drawLine(r.topRight(), r.bottomRight());
+        if (doubleControls)
+            arrowOpt.rect.adjust(0, 4, 0, 4 );
+        q_func()->proxy()->drawPrimitive(QStyle::PE_IndicatorArrowRight, &arrowOpt, p, 0);
+    } else {
+        p->fillRect(opt->rect,fill);
+        QRect r = opt->rect.adjusted(0, -1, 0, -1);
+        p->drawLine(r.topLeft(), r.topRight());
+        if (secondScrollBar)
+            p->drawLine(r.bottomLeft() + QPoint(0,1), r.bottomRight() + QPoint(0, 1));
+        if (completeFrame)
+            arrowOpt.rect.adjust(-2, 0, -2, 0);
+        if (doubleControls)
+            arrowOpt.rect.adjust(1, 0, 1, 0 );
+        if (completeFrame && doubleControls)
+            arrowOpt.rect.adjust(1, 0, 1, 0);
+        q_func()->proxy()->drawPrimitive(QStyle::PE_IndicatorArrowDown, &arrowOpt, p, 0);
+    }
+}
+
+void QWindowsMobileStylePrivate::drawScrollbarGroove(QPainter *p,const QStyleOptionSlider *opt)
+{
+#ifdef Q_OS_WINCE_WM
+    if (wm65) {
+        p->fillRect(opt->rect, QColor(231, 231, 231));
+        return ;
+    }
+#endif
+            QBrush fill;
+            if (smartphone) {
+                fill = opt->palette.light();
+                p->fillRect(opt->rect, fill);
+                fill = opt->palette.button();
+                QImage image;
+#ifndef QT_NO_IMAGEFORMAT_XPM
+                if (opt->orientation == Qt::Horizontal)
+                  image = QImage(vertlines_xpm);
+                else
+                  image = QImage(horlines_xpm);
+#endif
+                image.setColor(1, opt->palette.button().color().rgb());
+                fill.setTextureImage(image);
+            }
+            else {
+              fill = opt->palette.light();
+            }
+            p->fillRect(opt->rect, fill);
+}
+
+QWindowsMobileStyle::QWindowsMobileStyle(QWindowsMobileStylePrivate &dd) : QWindowsStyle(dd) {
+    qApp->setEffectEnabled(Qt::UI_FadeMenu, false);
+    qApp->setEffectEnabled(Qt::UI_AnimateMenu, false);
+}
+
+QWindowsMobileStyle::QWindowsMobileStyle() : QWindowsStyle(*new QWindowsMobileStylePrivate) {
+    qApp->setEffectEnabled(Qt::UI_FadeMenu, false);
+    qApp->setEffectEnabled(Qt::UI_AnimateMenu, false);
+}
+
+QWindowsMobileStylePrivate::QWindowsMobileStylePrivate() :QWindowsStylePrivate() {
+
+#ifdef Q_WS_WINCE
+   doubleControls = qt_wince_is_high_dpi();
+   smartphone = qt_wince_is_smartphone();
+#else
+   doubleControls = false;
+   smartphone = false;
+#endif //Q_WS_WINCE
+
+#ifndef QT_NO_IMAGEFORMAT_XPM
+
+   imageArrowDown = QImage(arrowdown_xpm);
+   imageArrowUp = QImage(arrowdown_xpm).mirrored();
+   imageArrowLeft = QImage(arrowleft_xpm);
+   imageArrowRight = QImage(arrowleft_xpm).mirrored(true, false);
+   if (doubleControls) {
+       imageRadioButton = QImage(radiobutton_xpm);
+       imageRadioButtonChecked = QImage(radiochecked_xpm);
+       imageChecked = QImage(checkedlight_xpm);
+       imageCheckedBold = QImage(checkedbold_xpm);
+       imageRadioButtonHighlighted = QImage(highlightedradiobutton_xpm);
+       imageClose = QImage(cross_big_xpm);
+       imageMaximize = QImage(max_big_xpm);
+       imageMinimize = QImage(min_big_xpm);
+       imageNormalize = QImage(normal_big_xpm);
+   } else {
+       imageRadioButton = QImage(radiobutton_low_xpm);
+       imageRadioButtonChecked = QImage(radiochecked_low_xpm);
+       imageChecked = QImage(checkedlight_low_xpm);
+       imageCheckedBold = QImage(checkedbold_low_xpm);
+       imageRadioButtonHighlighted = QImage(highlightedradiobutton_low_xpm);
+       imageClose = QImage(cross_small_xpm);
+       imageMaximize = QImage(max_small_xpm);
+       imageMinimize = QImage(min_small_xpm);
+       imageNormalize = QImage(normal_small_xpm);
+   }
+
+   setupWindowsMobileStyle65();
+
+
+   imageArrowDownBig = QImage(arrowdown_big_xpm);
+   imageArrowUpBig = QImage(arrowdown_big_xpm).mirrored();
+   imageArrowLeftBig = QImage(arrowleft_big_xpm);
+   imageArrowRightBig = QImage(arrowleft_big_xpm).mirrored(true, false);
+
+#endif
+}
+
+void QWindowsMobileStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option,
+                                    QPainter *painter, const QWidget *widget) const {
+
+   QWindowsMobileStylePrivate *d = const_cast<QWindowsMobileStylePrivate*>(d_func());
+
+    bool doRestore = false;
+    QRect rect = option->rect;
+    painter->setClipping(false);
+
+    switch (element) {
+    case PE_PanelButtonTool: {
+        int penSize = 1;
+        if (d->doubleControls)
+            penSize = 2;
+        if (widget)
+            if (QWidget *parent = widget->parentWidget())
+#ifndef QT_NO_TABWIDGET
+                if (qobject_cast<QTabWidget *>(parent->parentWidget())) {
+#else
+                if (false) {
+#endif //QT_NO_TABBAR
+                    rect.adjust(0,2*penSize,0,-1*penSize);
+                        qDrawPlainRect(painter, rect, option->palette.shadow().color(), penSize, &option->palette.light());
+                    if (option->state & (State_Sunken))
+                        qDrawPlainRect(painter, rect, option->palette.shadow().color(), penSize, &option->palette.shadow());
+                }
+                else {
+                    if (!(option->state & State_AutoRaise) || (option->state & (State_Sunken | State_On)))
+                        qDrawPlainRect(painter,option->rect.adjusted(0, penSize, 0, -1 * penSize) ,
+                                       option->palette.button().color(), 0, &option->palette.button());
+                    if (option->state & (State_Sunken)) {
+                        qDrawPlainRect(painter, rect, option->palette.shadow().color(), penSize, &option->palette.light());
+                    }
+                    if (option->state & (State_On)){
+                        QBrush fill = QBrush(option->palette.light().color());
+                        painter->fillRect(rect.adjusted(windowsItemFrame , windowsItemFrame ,
+                                          -windowsItemFrame , -windowsItemFrame ), fill);
+                        qDrawPlainRect(painter, rect, option->palette.shadow().color(), penSize, &option->palette.light());
+                    }
+                }
+                break; }
+    case PE_IndicatorButtonDropDown:
+        if (d->doubleControls)
+          qDrawPlainRect(painter, option->rect, option->palette.shadow().color(), 2, &option->palette.button());
+        else
+          qDrawPlainRect(painter, option->rect, option->palette.shadow().color(), 1, &option->palette.button());
+        break;
+#ifndef QT_NO_TABBAR
+    case PE_IndicatorTabTear:
+        if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(option)) {
+            bool rtl = tab->direction == Qt::RightToLeft;
+            QRect rect = tab->rect;
+            QPainterPath path;
+            rect.setTop(rect.top() + ((tab->state & State_Selected) ? 1 : 3));
+            rect.setBottom(rect.bottom() - ((tab->state & State_Selected) ? 0 : 2));
+            path.moveTo(QPoint(rtl ? rect.right() : rect.left(), rect.top()));
+            int count = 3;
+            for(int jags = 1; jags <= count; ++jags, rtl = !rtl)
+                path.lineTo(QPoint(rtl ? rect.left() : rect.right(), rect.top() + jags * rect.height()/count));
+            painter->setPen(QPen(tab->palette.light(), qreal(.8)));
+            painter->setBrush(tab->palette.background());
+            painter->setRenderHint(QPainter::Antialiasing);
+            painter->drawPath(path);
+        }
+        break;
+#endif //QT_NO_TABBAR
+
+#ifndef QT_NO_TOOLBAR
+    case PE_IndicatorToolBarSeparator: {
+            painter->save();
+            QPoint p1, p2;
+            if (option->state & State_Horizontal) {
+                p1 = QPoint(option->rect.width()/2, 0);
+                p2 = QPoint(p1.x(), option->rect.height());
+            } else {
+                p1 = QPoint(0, option->rect.height()/2);
+                p2 = QPoint(option->rect.width(), p1.y());
+            }
+
+
+            painter->setPen(option->palette.mid().color());
+            if (d->doubleControls) {
+                QPen pen = painter->pen();
+                pen.setWidth(2);
+                pen.setCapStyle(Qt::FlatCap);
+                painter->setPen(pen);
+            }
+            painter->drawLine(p1, p2);
+            painter->restore();
+            break; }
+#endif // QT_NO_TOOLBAR
+    case PE_IndicatorToolBarHandle:
+        painter->save();
+        painter->translate(option->rect.x(), option->rect.y());
+        if (option->state & State_Horizontal) {
+            int x = option->rect.width() / 2 - 4;
+            if (QApplication::layoutDirection() == Qt::RightToLeft)
+                x -= 2;
+            if (option->rect.height() > 4) {
+                qDrawWinButton(painter,x-1,0,7,option->rect.height(), option->palette, false,  0);
+
+                qDrawShadePanel(painter, x, 1, 3, option->rect.height() - 1,
+                    option->palette, false,  0);
+                qDrawShadePanel(painter, x + 3, 1, 3, option->rect.height() - 1,
+                    option->palette, false,  0);
+                painter->setPen(option->palette.button().color());
+            }
+        } else {
+            if (option->rect.width() > 4) {
+                int y = option->rect.height() / 2 - 4;
+                qDrawShadePanel(painter, 2, y, option->rect.width() - 2, 3,
+                    option->palette, false,  0);
+                qDrawShadePanel(painter, 2, y + 3, option->rect.width() - 2, 3,
+                    option->palette, false,  0);
+            }
+        }
+        painter->restore();
+        break;
+
+#ifndef QT_NO_PROGRESSBAR
+    case PE_IndicatorProgressChunk: {
+            bool vertical = false;
+            if (const QStyleOptionProgressBarV2 *pb2 = qstyleoption_cast<const QStyleOptionProgressBarV2 *>(option))
+                vertical = (pb2->orientation == Qt::Vertical);
+            if (!vertical) {
+                painter->fillRect(option->rect.x(), option->rect.y()+2, option->rect.width(), option->rect.height()-4,
+                            option->palette.brush(QPalette::Highlight));
+            } else {
+                painter->fillRect(option->rect.x()+2, option->rect.y(), option->rect.width()-4, option->rect.height(),
+                            option->palette.brush(QPalette::Highlight));
+            }
+        }
+        break;
+#endif // QT_NO_PROGRESSBAR
+
+    case PE_FrameButtonTool: {
+#ifndef QT_NO_DOCKWIDGET
+            if (widget && widget->inherits("QDockWidgetTitleButton")) {
+                if (const QDockWidget *dw = qobject_cast<const QDockWidget *>(widget->parent()))
+                    if (dw->isFloating()){
+                        qDrawPlainRect(painter,option->rect.adjusted(1, 1, 0, 0),
+                                       option->palette.shadow().color(),1,&option->palette.button());
+                        return;
+                    }
+            }
+#endif // QT_NO_DOCKWIDGET
+        QBrush fill;
+        bool stippled;
+        bool panel = (element == PE_PanelButtonTool);
+        if ((!(option->state & State_Sunken ))
+            && (!(option->state & State_Enabled)
+            || ((option->state & State_Enabled ) && !(option->state & State_MouseOver)))
+            && (option->state & State_On)) {
+                fill = QBrush(option->palette.light().color(), Qt::Dense4Pattern);
+                stippled = true;
+        } else {
+            fill = option->palette.brush(QPalette::Button);
+            stippled = false;
+        }
+        if (option->state & (State_Raised | State_Sunken | State_On)) {
+            if (option->state & State_AutoRaise) {
+                if(option->state & (State_Enabled | State_Sunken | State_On)){
+                    if (panel)
+                        qDrawPlainRect(painter, option->rect,option->palette.shadow().color(),d->doubleControls, &fill);
+                    else
+                        qDrawPlainRect(painter, option->rect,option->palette.shadow().color(),d->doubleControls, &fill);
+                }
+                if (stippled) {
+                    painter->setPen(option->palette.button().color());
+                    painter->drawRect(option->rect.adjusted(1, 1, -2, -2));
+                }
+            } else {
+                qDrawPlainRect(painter, option->rect,option->palette.shadow().color(),d->doubleControls, &fill);
+            }
+        } else {
+            painter->fillRect(option->rect, fill);
+        }
+        break; }
+
+    case PE_FrameFocusRect:
+        if (const QStyleOptionFocusRect *fropt = qstyleoption_cast<const QStyleOptionFocusRect *>(option)) {
+            //### check for d->alt_down
+            int penSize;
+            d->doubleControls ? penSize = 2 : penSize = 1;
+            bool alternateFocusStyle = false;
+            if (!widget)
+                alternateFocusStyle = true;
+#ifndef QT_NO_COMBOBOX
+            if (qobject_cast<const QComboBox*>(widget))
+                alternateFocusStyle = true;
+#endif
+            if (!(fropt->state & State_KeyboardFocusChange) && !styleHint(SH_UnderlineShortcut, option))
+                return;
+            QRect r = option->rect;
+            painter->save();
+            painter->setBackgroundMode(Qt::TransparentMode);
+            if (alternateFocusStyle) {
+                QColor bg_col = fropt->backgroundColor;
+                if (!bg_col.isValid())
+                    bg_col = painter->background().color();
+                // Create an "XOR" color.
+                QColor patternCol((bg_col.red() ^ 0xff) & 0xff,
+                    (bg_col.green() ^ 0xff) & 0xff,
+                    (bg_col.blue() ^ 0xff) & 0xff);
+                painter->setBrush(QBrush(patternCol, Qt::Dense4Pattern));
+                painter->setBrushOrigin(r.topLeft());
+            }
+            else {
+                painter->setPen(option->palette.highlight().color());
+                painter->setBrush(option->palette.highlight());
+            }
+            painter->setPen(Qt::NoPen);
+            painter->setBrushOrigin(r.topLeft());
+            painter->drawRect(r.left(), r.top(), r.width(), penSize);    // Top
+            painter->drawRect(r.left(), r.bottom(), r.width() + penSize - 1, penSize); // Bottom
+            painter->drawRect(r.left(), r.top(), penSize, r.height());   // Left
+            painter->drawRect(r.right(), r.top(), penSize, r.height());  // Right
+            painter->restore();
+        }
+        break;
+
+    case PE_PanelButtonBevel: {
+        QBrush fill;
+        bool panel = element != PE_FrameButtonBevel;
+        painter->setBrushOrigin(option->rect.topLeft());
+        if (!(option->state & State_Sunken) && (option->state & State_On))
+            fill = QBrush(option->palette.light().color(), Qt::Dense4Pattern);
+        else
+            fill = option->palette.brush(QPalette::Button);
+
+        if (option->state & (State_Raised | State_On | State_Sunken)) {
+            if (d->doubleControls)
+              qDrawPlainRect(painter, option->rect,option->palette.shadow().color(),2,&fill);
+            else
+              qDrawPlainRect(painter, option->rect,option->palette.shadow().color(),1,&fill);
+        } else {
+            if (panel)
+                painter->fillRect(option->rect, fill);
+            else
+                painter->drawRect(option->rect);
+        }
+        break; }
+
+    case PE_FrameGroupBox:
+        if (const QStyleOptionFrame *frame = qstyleoption_cast<const QStyleOptionFrame *>(option)) {
+
+            const QStyleOptionFrameV2 *frame2 = qstyleoption_cast<const QStyleOptionFrameV2 *>(option);
+            if (frame2 && !(frame2->features & QStyleOptionFrameV2::Flat)) {
+              QPen oldPen = painter->pen();
+              QRect r = frame->rect;
+              painter->setPen(frame->palette.shadow().color());
+              painter->fillRect(r.x(), r.y(), r.x() + r.width()-1,
+                                r.y() + r.height() - windowsMobileFrameGroupBoxOffset,
+              frame->palette.light());
+              painter ->drawLine(r.topLeft() + QPoint(-2, 1), r.topRight()+ QPoint(0, 1));
+              if (d->doubleControls)
+                painter ->drawLine(r.topLeft() + QPoint(-2, 2), r.topRight()+ QPoint(0, 2));
+              painter->setPen(oldPen);
+            }
+        }
+        break;
+
+   case PE_IndicatorCheckBox: {
+        QBrush fill;
+        QRect r = d->doubleControls ? option->rect.adjusted(0,1,0,-1) : option->rect;
+        if (option->state & State_NoChange)
+            fill = QBrush(option->palette.shadow().color(), Qt::Dense4Pattern);
+        else if (option->state & State_Sunken)
+            fill = option->palette.button();
+        else if (option->state & State_Enabled)
+            fill = option->palette.base();
+        else
+            fill = option->palette.background();
+        painter->save();
+        doRestore = true;
+        if (d->doubleControls && (option->state & State_NoChange))
+            painter->fillRect(r, fill);
+        else
+            painter->fillRect(option->rect, fill);
+        painter->setPen(option->palette.shadow().color());
+        painter->drawLine(r.topLeft(), r.topRight());
+        painter->drawLine(r.topRight(), r.bottomRight());
+        painter->drawLine(r.bottomLeft(), r.bottomRight());
+        painter->drawLine(r.bottomLeft(), r.topLeft());
+        if (d->doubleControls) {
+            QRect r0 = r.adjusted(1, 1, -1, -1);
+            painter->drawLine(r0.topLeft(), r0.topRight());
+            painter->drawLine(r0.topRight(), r0.bottomRight());
+            painter->drawLine(r0.bottomLeft(), r0.bottomRight());
+            painter->drawLine(r0.bottomLeft(), r0.topLeft());
+        }
+        if (option->state & State_HasFocus) {
+            painter->setPen(option->palette.highlight().color());
+            QRect r2 = d->doubleControls ? r.adjusted(2, 2, -2, -2) : r.adjusted(1, 1, -1, -1);
+            painter->drawLine(r2.topLeft(), r2.topRight());
+            painter->drawLine(r2.topRight(), r2.bottomRight());
+            painter->drawLine(r2.bottomLeft(), r2.bottomRight());
+            painter->drawLine(r2.bottomLeft(), r2.topLeft());
+            if (d->doubleControls) {
+                QRect r3 = r2.adjusted(1, 1, -1, -1);
+                painter->drawLine(r3.topLeft(), r3.topRight());
+                painter->drawLine(r3.topRight(), r3.bottomRight());
+                painter->drawLine(r3.bottomLeft(), r3.bottomRight());
+                painter->drawLine(r3.bottomLeft(), r3.topLeft());
+            }
+            painter->setPen(option->palette.shadow().color());
+        }
+        //fall through...
+    }
+    case PE_IndicatorViewItemCheck:
+    case PE_Q3CheckListIndicator: {
+        if (!doRestore) {
+            painter->save();
+            doRestore = true;
+        }
+        if (element == PE_Q3CheckListIndicator || element == PE_IndicatorViewItemCheck) {
+            painter->setPen(option->palette.shadow().color());
+            if (option->state & State_NoChange)
+                painter->setBrush(option->palette.brush(QPalette::Button));
+            if (d->doubleControls) {
+                QRect r = QRect(option->rect.x(), option->rect.y(), windowsMobileitemViewCheckBoxSize * 2, windowsMobileitemViewCheckBoxSize * 2);
+                qDrawPlainRect(painter, r, option->palette.shadow().color(), 2);
+            } else {
+                QRect r = QRect(option->rect.x(), option->rect.y(), windowsMobileitemViewCheckBoxSize, windowsMobileitemViewCheckBoxSize);
+                qDrawPlainRect(painter, r, option->palette.shadow().color(), 1);
+            }            
+            if (option->state & State_Enabled)
+                d->imageChecked.setColor(1, option->palette.shadow().color().rgba());
+            else
+              d->imageChecked.setColor(1, option->palette.dark().color().rgba());
+            if (!(option->state & State_Off)) {
+                if (d->doubleControls)
+                    painter->drawImage(option->rect.x(), option->rect.y(), d->imageChecked);
+                else
+                    painter->drawImage(option->rect.x() + 3, option->rect.y() + 3, d->imageChecked);
+            }
+        }
+        else {
+            if (option->state & State_NoChange)
+                d->imageCheckedBold.setColor(1, option->palette.dark().color().rgba());
+            else if (option->state & State_Enabled)
+                d->imageCheckedBold.setColor(1, option->palette.shadow().color().rgba());
+            else
+                d->imageCheckedBold.setColor(1, option->palette.dark().color().rgba());
+            if (!(option->state & State_Off)) {
+                if (d->doubleControls)
+                    painter->drawImage(option->rect.x() + 2, option->rect.y(), d->imageCheckedBold);
+                else
+                    painter->drawImage(option->rect.x() + 3, option->rect.y() + 3, d->imageCheckedBold);
+            }
+        }
+        if (doRestore)
+            painter->restore();
+        break; }
+    case PE_IndicatorRadioButton: {
+        painter->save();
+
+        if (option->state & State_HasFocus) {
+            d->imageRadioButtonHighlighted.setColor(1, option->palette.shadow().color().rgba());
+            d->imageRadioButtonHighlighted.setColor(2, option->palette.highlight().color().rgba());
+            painter->drawImage(option->rect.x(), option->rect.y(), d->imageRadioButtonHighlighted);
+        }
+        else {
+            d->imageRadioButton.setColor(1, option->palette.shadow().color().rgba());
+            painter->drawImage(option->rect.x(), option->rect.y(), d->imageRadioButton);
+        }
+        if (option->state & (State_Sunken | State_On)) {
+            if  (option->state & State_Enabled)
+                d->imageRadioButtonChecked.setColor(1, option->palette.shadow().color().rgba());
+            else
+                d->imageRadioButtonChecked.setColor(1, option->palette.dark().color().rgba());
+
+            static const int offset = d->doubleControls ? 6 : 3;
+            painter->drawImage(option->rect.x() + offset, option->rect.y() + offset, d->imageRadioButtonChecked);
+        }
+        painter->restore();
+        break; }
+   case PE_PanelButtonCommand:
+       if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
+           QBrush fill;
+           State flags = option->state;
+           QPalette pal = option->palette;
+           QRect r = option->rect;
+           if ((flags & State_Sunken || flags & State_On) )
+               fill = pal.brush(QPalette::Shadow);
+           else
+               fill = pal.brush(QPalette::Button);
+            int singleLine = 1;
+            int doubleLine = 2;
+            if (d->doubleControls) {
+                singleLine = 2;
+                doubleLine = 4;
+            }
+           if (button->features & QStyleOptionButton::DefaultButton && flags & State_Sunken) {
+               if (d->doubleControls) {
+                 qDrawPlainRect(painter, r, pal.shadow().color(), 1, &fill);
+                 qDrawPlainRect(painter, r.adjusted(1, 1, -1, 1), pal.shadow().color(), 1, &fill);
+               }
+               else {
+                    qDrawPlainRect(painter, r, pal.shadow().color(), 1, &fill);
+               }
+           } else if (flags & (State_Raised | State_Sunken | State_On | State_Sunken)) {
+               qDrawPlainRect(painter, r, pal.shadow().color(), singleLine, &fill);
+           } else {
+               painter->fillRect(r, fill);
+           }
+       }
+       break;
+   case PE_FrameDefaultButton: {
+       painter->save();
+       painter->setPen(option->palette.shadow().color());
+       QRect rect = option->rect;
+       if (d->doubleControls) {
+           rect.adjust(1, 1, -2, -2);
+           painter->drawRect(rect);
+           painter->drawRect(rect.adjusted(1, 1, -1, -1));
+       }
+
+       else {
+            rect.adjust(2, 2, -3, -3);
+            painter->drawRect(rect);
+       }
+       painter->restore();
+       break; }
+   case PE_IndicatorSpinPlus:
+   case PE_IndicatorSpinMinus: {
+       QRect r = option->rect;
+       int fw = proxy()->pixelMetric(PM_DefaultFrameWidth, option, widget)+2;
+       QRect br = r.adjusted(fw, fw, -fw, -fw);
+       int offset = (option->state & State_Sunken) ? 1 : 0;
+       int step = (br.width() + 4) / 5;
+       painter->fillRect(br.x() + offset, br.y() + offset +br.height() / 2 - step / 2,
+                         br.width(), step, option->palette.buttonText());
+       if (element == PE_IndicatorSpinPlus)
+           painter->fillRect(br.x() + br.width() / 2 - step / 2 + offset, br.y() + offset+4,
+                             step, br.height() - 7, option->palette.buttonText());
+       break; }
+    case PE_IndicatorSpinUp:
+    case PE_IndicatorSpinDown: {
+        painter->save();
+            QPoint points[7];
+            switch (element) {
+                case PE_IndicatorSpinUp:
+                    points[0] = QPoint(-2, -4);
+                    points[1] = QPoint(-2, 2);
+                    points[2] = QPoint(-1, -3);
+                    points[3] = QPoint(-1, 1);
+                    points[4] = QPoint(0, -2);
+                    points[5] = QPoint(0, 0);
+                    points[6] = QPoint(1, -1);
+                break;
+                case PE_IndicatorSpinDown:
+                    points[0] = QPoint(0, -4);
+                    points[1] = QPoint(0, 2);
+                    points[2] = QPoint(-1, -3);
+                    points[3] = QPoint(-1, 1);
+                    points[4] = QPoint(-2, -2);
+                    points[5] = QPoint(-2, 0);
+                    points[6] = QPoint(-3, -1);
+                break;
+                default:
+                break;
+            }
+            if (option->state & State_Sunken)
+                painter->translate(proxy()->pixelMetric(PM_ButtonShiftHorizontal),
+                proxy()->pixelMetric(PM_ButtonShiftVertical));
+            if (option->state & State_Enabled) {
+                painter->translate(option->rect.x() + option->rect.width() / 2,
+                                   option->rect.y() + option->rect.height() / 2);
+                painter->setPen(option->palette.buttonText().color());
+                painter->drawLine(points[0], points[1]);
+                painter->drawLine(points[2], points[3]);
+                painter->drawLine(points[4], points[5]);
+                painter->drawPoint(points[6]);
+            } else {
+                painter->translate(option->rect.x() + option->rect.width() / 2 + 1,
+                                   option->rect.y() + option->rect.height() / 2 + 1);
+                painter->setPen(option->palette.light().color());
+                painter->drawLine(points[0], points[1]);
+                painter->drawLine(points[2], points[3]);
+                painter->drawLine(points[4], points[5]);
+                painter->drawPoint(points[6]);
+                painter->translate(-1, -1);
+                painter->setPen(option->palette.mid().color());
+                painter->drawLine(points[0], points[1]);
+                painter->drawLine(points[2], points[3]);
+                painter->drawLine(points[4], points[5]);
+                painter->drawPoint(points[6]);
+            }
+        painter->restore();
+        break; }
+
+    case PE_IndicatorArrowUpBig:
+    case PE_IndicatorArrowDownBig:
+    case PE_IndicatorArrowLeftBig:
+    case PE_IndicatorArrowRightBig:
+
+    case PE_IndicatorArrowUp:
+    case PE_IndicatorArrowDown:
+    case PE_IndicatorArrowRight:
+    case PE_IndicatorArrowLeft: {
+            painter->save();
+
+            if (d->doubleControls) {
+                QColor color;
+                if (option->state & State_Sunken)
+                    color = option->palette.light().color();
+                else
+                    color = option->palette.buttonText().color();
+                QImage image;
+                int xoffset, yoffset;
+                switch (element) {
+                    case PE_IndicatorArrowUp:
+                          image = d->imageArrowUp;
+                          xoffset = 1;
+                          yoffset = 12;
+                          break;
+                    case PE_IndicatorArrowDown:
+                          image = d->imageArrowDown;
+                          xoffset = 1;
+                          yoffset =12;
+                          break;
+                    case PE_IndicatorArrowLeft:
+                          image = d->imageArrowLeft;
+                          xoffset = 8;
+                          yoffset = 2;
+                          break;
+                    case PE_IndicatorArrowRight:
+                          image = d->imageArrowRight;
+                          xoffset = 8;
+                          yoffset = 2;
+                          break;
+                     case PE_IndicatorArrowUpBig:
+                          image = d->imageArrowUpBig;
+                          xoffset = 3;
+                          yoffset = 12;
+                          break;
+                    case PE_IndicatorArrowDownBig:
+                          image = d->imageArrowDownBig;
+                          xoffset = 2;
+                          yoffset =12;
+                          break;
+                    case PE_IndicatorArrowLeftBig:
+                          image = d->imageArrowLeftBig;
+                          xoffset = 8;
+                          yoffset = 2;
+                          break;
+                    case PE_IndicatorArrowRightBig:
+                          image = d->imageArrowRightBig;
+                          xoffset = 8;
+                          yoffset = 2;
+                          break;
+                    default:
+                          break;
+                }
+                image.setColor(1, color.rgba());
+                painter->drawImage(option->rect.x() + xoffset, option->rect.y() + yoffset, image);
+            }
+            else {                
+                 QPoint points[7];
+                 switch (element) {
+                     case PE_IndicatorArrowUp:
+                     case PE_IndicatorArrowUpBig:
+                          points[0] = QPoint(-3, 1);
+                          points[1] = QPoint(3, 1);
+                          points[2] = QPoint(-2, 0);
+                          points[3] = QPoint(2, 0);
+                          points[4] = QPoint(-1, -1);
+                          points[5] = QPoint(1, -1);
+                          points[6] = QPoint(0, -2);
+                          break;
+                     case PE_IndicatorArrowDown:
+                     case PE_IndicatorArrowDownBig:
+                         points[0] = QPoint(-3, -1);
+                         points[1] = QPoint(3, -1);
+                         points[2] = QPoint(-2, 0);
+                         points[3] = QPoint(2, 0);
+                         points[4] = QPoint(-1, 1);
+                         points[5] = QPoint(1, 1);
+                         points[6] = QPoint(0, 2);
+                         break;
+                     case PE_IndicatorArrowRight:
+                     case PE_IndicatorArrowRightBig:
+                         points[0] = QPoint(-2, -3);
+                         points[1] = QPoint(-2, 3);
+                         points[2] = QPoint(-1, -2);
+                         points[3] = QPoint(-1, 2);
+                         points[4] = QPoint(0, -1);
+                         points[5] = QPoint(0, 1);
+                         points[6] = QPoint(1, 0);
+                         break;
+                     case PE_IndicatorArrowLeft:
+                     case PE_IndicatorArrowLeftBig:
+                         points[0] = QPoint(0, -3);
+                         points[1] = QPoint(0, 3);
+                         points[2] = QPoint(-1, -2);
+                         points[3] = QPoint(-1, 2);
+                         points[4] = QPoint(-2, -1);
+                         points[5] = QPoint(-2, 1);
+                         points[6] = QPoint(-3, 0);
+                         break;
+                     default:
+                     break;
+                    }
+                    if (option->state & State_Sunken)
+                        painter->setPen(option->palette.light().color());
+                    else
+                        painter->setPen(option->palette.buttonText().color());
+                    if (option->state & State_Enabled) {
+                        painter->translate(option->rect.x() + option->rect.width() / 2,
+                            option->rect.y() + option->rect.height() / 2 - 1);
+                        painter->drawLine(points[0], points[1]);
+                        painter->drawLine(points[2], points[3]);
+                        painter->drawLine(points[4], points[5]);
+                        painter->drawPoint(points[6]);
+                    } else {
+                        painter->translate(option->rect.x() + option->rect.width() / 2,
+                            option->rect.y() + option->rect.height() / 2 - 1);
+                        painter->setPen(option->palette.mid().color());
+                        painter->drawLine(points[0], points[1]);
+                        painter->drawLine(points[2], points[3]);
+                        painter->drawLine(points[4], points[5]);
+                        painter->drawPoint(points[6]);
+                    }                
+            }
+        painter->restore();
+        break; }
+#ifndef QT_NO_TABWIDGET
+    case PE_FrameTabWidget:
+        if (const QStyleOptionTabWidgetFrame *tab = qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(option)) {
+          QRect rect = option->rect;
+        QPalette pal = option->palette;
+        painter->save();
+        QBrush fill = pal.light();
+          painter->fillRect(rect, fill);
+          painter->setPen(pal.shadow().color());
+          if (d->doubleControls) {
+              QPen pen = painter->pen();
+              pen.setWidth(2);
+              pen.setCapStyle(Qt::FlatCap);
+              painter->setPen(pen);
+          }
+          switch (tab->shape) {
+            case QTabBar::RoundedNorth:
+#ifdef Q_WS_WINCE_WM
+                if (!d->wm65)
+#endif
+                {
+                if (d->doubleControls)
+                    painter->drawLine(rect.topLeft() + QPoint(0, 1), rect.topRight() + QPoint(0, 1));
+                else
+                    painter->drawLine(rect.topLeft(), rect.topRight());
+                }
+                break;
+            case QTabBar::RoundedSouth:
+#ifdef Q_WS_WINCE_WM
+                if (!d->wm65)
+#endif
+                {
+                if (d->doubleControls)
+                  painter->drawLine(rect.bottomLeft(), rect.bottomRight());
+                else
+                  painter->drawLine(rect.bottomLeft(), rect.bottomRight());
+                }
+                break;
+            case QTabBar::RoundedEast:
+#ifdef Q_WS_WINCE_WM
+                if (!d->wm65)
+#endif
+                painter->drawLine(rect.topRight(), rect.bottomRight());
+                break;
+            case QTabBar::RoundedWest:
+#ifdef Q_WS_WINCE_WM
+                if (!d->wm65)
+#endif
+                painter->drawLine(rect.topLeft(), rect.bottomLeft());
+                break;
+            case QTabBar::TriangularWest:
+            case QTabBar::TriangularEast:
+            case QTabBar::TriangularSouth:
+            case QTabBar::TriangularNorth:
+                if (d->doubleControls)
+                  qDrawPlainRect(painter, rect.adjusted(0,-2,0,0), option->palette.shadow().color(),2,&pal.light());
+                else
+                  qDrawPlainRect(painter, rect, option->palette.shadow().color(),1,&pal.light());
+                break;
+            default:
+                break;
+            }
+            painter->restore();
+        }
+        break;
+#endif //QT_NO_TABBAR
+#ifndef QT_NO_ITEMVIEWS
+    case PE_PanelItemViewRow:
+        if (const QStyleOptionViewItemV4 *vopt = qstyleoption_cast<const QStyleOptionViewItemV4 *>(option)) {
+            QPalette::ColorGroup cg = vopt->state & QStyle::State_Enabled
+                                      ? QPalette::Normal : QPalette::Disabled;
+            if (cg == QPalette::Normal && !(vopt->state & QStyle::State_Active))
+                cg = QPalette::Inactive;
+
+            if ((vopt->state & QStyle::State_Selected) &&  proxy()->styleHint(QStyle::SH_ItemView_ShowDecorationSelected, option, widget))
+                 d->drawPanelItemViewSelected(painter, vopt);
+            else if (vopt->features & QStyleOptionViewItemV2::Alternate)
+                painter->fillRect(vopt->rect, vopt->palette.brush(cg, QPalette::AlternateBase));
+            else if (!(vopt->state & QStyle::State_Enabled))
+                painter->fillRect(vopt->rect, vopt->palette.brush(cg, QPalette::Base));
+        }
+        break;
+    case PE_PanelItemViewItem:
+        if (const QStyleOptionViewItemV4 *vopt = qstyleoption_cast<const QStyleOptionViewItemV4 *>(option)) {
+            QPalette::ColorGroup cg = vopt->state & QStyle::State_Enabled
+                                      ? QPalette::Normal : QPalette::Disabled;
+            if (cg == QPalette::Normal && !(vopt->state & QStyle::State_Active))
+                cg = QPalette::Inactive;
+
+            if (vopt->showDecorationSelected && (vopt->state & QStyle::State_Selected)) {
+                d->drawPanelItemViewSelected(painter, vopt);
+            } else {
+                if (vopt->backgroundBrush.style() != Qt::NoBrush) {
+                    QPointF oldBO = painter->brushOrigin();
+                    painter->setBrushOrigin(vopt->rect.topLeft());
+                    painter->fillRect(vopt->rect, vopt->backgroundBrush);
+                    painter->setBrushOrigin(oldBO);
+                }
+
+                if (vopt->state & QStyle::State_Selected) {
+                    QRect textRect = proxy()->subElementRect(QStyle::SE_ItemViewItemText,  option, widget);
+                    d->drawPanelItemViewSelected(painter, vopt, textRect);
+                }
+            }
+        }
+        break;
+#endif //QT_NO_ITEMVIEWS
+
+    case PE_FrameWindow: {
+        QPalette popupPal = option->palette;
+        popupPal.setColor(QPalette::Light, option->palette.background().color());
+        popupPal.setColor(QPalette::Midlight, option->palette.light().color());
+        if (d->doubleControls)
+            qDrawPlainRect(painter, option->rect, popupPal.shadow().color(),2,0);
+        else
+            qDrawPlainRect(painter, option->rect, popupPal.shadow().color(),1,0);
+        break; }
+    case PE_FrameTabBarBase: {
+        break; }
+    case PE_Widget:
+        break;
+    case PE_IndicatorMenuCheckMark: {
+        int markW = option->rect.width() > 7 ? 7 : option->rect.width();
+        int markH = markW;
+        if (d->doubleControls)
+            markW*=2;
+            markH*=2;
+        int posX = option->rect.x() + (option->rect.width() - markW)/2 + 1;
+        int posY = option->rect.y() + (option->rect.height() - markH)/2;
+
+        QVector<QLineF> a;
+        a.reserve(markH);
+
+        int i, xx, yy;
+        xx = posX;
+        yy = 3 + posY;
+        for (i = 0; i < markW/2; ++i) {
+            a << QLineF(xx, yy, xx, yy + 2);
+            ++xx;
+            ++yy;
+        }
+        yy -= 2;
+        for (; i < markH; ++i) {
+            a << QLineF(xx, yy, xx, yy + 2);
+            ++xx;
+            --yy;
+        }
+        if (!(option->state & State_Enabled) && !(option->state & State_On)) {
+            int pnt;
+            painter->setPen(option->palette.highlightedText().color());
+            QPoint offset(1, 1);
+            for (pnt = 0; pnt < a.size(); ++pnt)
+                a[pnt].translate(offset.x(), offset.y());
+            painter->drawLines(a);
+            for (pnt = 0; pnt < a.size(); ++pnt)
+                a[pnt].translate(offset.x(), offset.y());
+        }
+        painter->setPen(option->palette.text().color());
+        painter->drawLines(a);
+        break; }
+    case PE_Frame:
+       if (d->doubleControls)
+            qDrawPlainRect(painter, option->rect, option->palette.shadow().color(),2,&option->palette.light());
+        else
+            qDrawPlainRect(painter, option->rect, option->palette.shadow().color(),1,&option->palette.light());
+        break;
+    case PE_FrameLineEdit:
+    case PE_FrameMenu:
+        if (d->doubleControls)
+            qDrawPlainRect(painter, option->rect, option->palette.shadow().color(),2);
+        else
+            qDrawPlainRect(painter, option->rect, option->palette.shadow().color(),1);
+        break;
+    case PE_FrameStatusBar:
+        if (d->doubleControls)
+            qDrawPlainRect(painter, option->rect, option->palette.shadow().color(),2,0);
+        else
+            qDrawPlainRect(painter, option->rect, option->palette.shadow().color(),1,0);
+        break;
+
+    default:
+        QWindowsStyle::drawPrimitive(element, option, painter, widget);
+        break;
+    }
+}
+
+void QWindowsMobileStyle::drawControl(ControlElement element, const QStyleOption *option,
+                                      QPainter *painter, const QWidget *widget) const {
+
+
+   QWindowsMobileStylePrivate *d = const_cast<QWindowsMobileStylePrivate*>(d_func());
+
+   
+   painter->setClipping(false);
+   switch (element) {
+   case CE_MenuBarEmptyArea:
+        painter->setClipping(true);
+        QWindowsStyle::drawControl(element, option, painter, widget);
+        break;
+   case CE_PushButtonBevel:
+        if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
+            QRect br = button->rect;
+            int dbi = proxy()->pixelMetric(PM_ButtonDefaultIndicator, button, widget);
+
+            if (button->features & QStyleOptionButton::AutoDefaultButton)
+                br.setCoords(br.left() + dbi, br.top() + dbi, br.right() - dbi, br.bottom() - dbi);
+            QStyleOptionButton tmpBtn = *button;
+            tmpBtn.rect = br;
+            proxy()->drawPrimitive(PE_PanelButtonCommand, &tmpBtn, painter, widget);
+            if (button->features & QStyleOptionButton::HasMenu) {
+                int mbi = proxy()->pixelMetric(PM_MenuButtonIndicator, button, widget);
+                QRect ir = button->rect;
+                QStyleOptionButton newButton = *button;
+                if (d->doubleControls)
+                    newButton.rect = QRect(ir.right() - mbi, ir.height() - 30, mbi, ir.height() - 4);
+                else
+                    newButton.rect = QRect(ir.right() - mbi, ir.height() - 20, mbi, ir.height() - 4);
+                proxy()->drawPrimitive(PE_IndicatorArrowDown, &newButton, painter, widget);
+            }
+            if (button->features & QStyleOptionButton::DefaultButton)
+                proxy()->drawPrimitive(PE_FrameDefaultButton, option, painter, widget);
+        }
+        break;
+   case CE_RadioButton:
+   case CE_CheckBox:
+       if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
+           bool isRadio = (element == CE_RadioButton);
+           QStyleOptionButton subopt = *button;
+           subopt.rect = proxy()->subElementRect(isRadio ? SE_RadioButtonIndicator
+               : SE_CheckBoxIndicator, button, widget);
+           proxy()->drawPrimitive(isRadio ? PE_IndicatorRadioButton : PE_IndicatorCheckBox,
+               &subopt, painter, widget);
+           subopt.rect = proxy()->subElementRect(isRadio ? SE_RadioButtonContents
+               : SE_CheckBoxContents, button, widget);
+           proxy()->drawControl(isRadio ? CE_RadioButtonLabel : CE_CheckBoxLabel, &subopt, painter, widget);
+           if (button->state & State_HasFocus) {
+               QStyleOptionFocusRect fropt;
+               fropt.QStyleOption::operator=(*button);
+               fropt.rect = proxy()->subElementRect(isRadio ? SE_RadioButtonFocusRect
+                   : SE_CheckBoxFocusRect, button, widget);
+               proxy()->drawPrimitive(PE_FrameFocusRect, &fropt, painter, widget);
+           }
+       }
+       break;
+   case CE_RadioButtonLabel:
+   case CE_CheckBoxLabel:
+       if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
+           uint alignment = visualAlignment(button->direction, Qt::AlignLeft | Qt::AlignVCenter);
+           if (!styleHint(SH_UnderlineShortcut, button, widget))
+               alignment |= Qt::TextHideMnemonic;
+           QPixmap pix;
+           QRect textRect = button->rect;
+           if (!button->icon.isNull()) {
+               pix = button->icon.pixmap(button->iconSize, button->state & State_Enabled ? QIcon::Normal : QIcon::Disabled);
+               proxy()->drawItemPixmap(painter, button->rect, alignment, pix);
+               if (button->direction == Qt::RightToLeft)
+                   textRect.setRight(textRect.right() - button->iconSize.width() - 4);
+               else
+                   textRect.setLeft(textRect.left() + button->iconSize.width() + 4);
+           }
+           if (!button->text.isEmpty()){
+               if (button->state & State_Enabled)
+                   proxy()->drawItemText(painter, textRect, alignment | Qt::TextShowMnemonic,
+                   button->palette, false, button->text, QPalette::WindowText);
+               else
+                   proxy()->drawItemText(painter, textRect, alignment | Qt::TextShowMnemonic,
+                   button->palette, false, button->text, QPalette::Mid);
+           }
+       }
+       break;
+#ifndef QT_NO_PROGRESSBAR
+    case CE_ProgressBarGroove:
+        if (d->doubleControls)
+            qDrawPlainRect(painter, option->rect, option->palette.shadow().color(), 2, &option->palette.brush(QPalette::Window));
+        else
+            qDrawPlainRect(painter, option->rect, option->palette.shadow().color(), 1, &option->palette.brush(QPalette::Window));
+        break;
+#endif //QT_NO_PROGRESSBAR
+#ifndef QT_NO_TABBAR
+    case CE_TabBarTab:
+        if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(option)) {
+            proxy()->drawControl(CE_TabBarTabShape, tab, painter, widget);
+            proxy()->drawControl(CE_TabBarTabLabel, tab, painter, widget);
+        }
+        break;
+    case CE_TabBarTabShape:
+        if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(option)) {
+            
+            if (tab->shape == QTabBar::RoundedNorth || tab->shape == QTabBar::RoundedEast ||
+                tab->shape == QTabBar::RoundedSouth || tab->shape == QTabBar::RoundedWest) {
+                    d->drawTabBarTab(painter, tab);
+            } else {
+                QCommonStyle::drawControl(element, option, painter, widget);
+            }
+            break; }
+
+#endif // QT_NO_TABBAR
+
+#ifndef QT_NO_TOOLBAR
+    case CE_ToolBar:
+        if (const QStyleOptionToolBar *toolBar = qstyleoption_cast<const QStyleOptionToolBar *>(option)) {
+        QRect rect = option->rect;
+        painter->save();
+        painter->setPen(option->palette.dark().color());
+        painter->fillRect(rect,option->palette.button());
+        if (d->doubleControls) {
+            QPen pen = painter->pen();
+            pen.setWidth(4);
+            painter->setPen(pen);
+        }
+        if (toolBar->toolBarArea == Qt::TopToolBarArea)
+            painter->drawLine(rect.bottomLeft(), rect.bottomRight());
+        else
+            painter->drawLine(rect.topLeft(), rect.topRight());
+        painter->restore();
+        break; }
+#endif //QT_NO_TOOLBAR
+    case CE_Header:
+        if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(option)) {
+            QRegion clipRegion = painter->clipRegion();
+            painter->setClipRect(option->rect);
+            proxy()->drawControl(CE_HeaderSection, header, painter, widget);
+            QStyleOptionHeader subopt = *header;
+            subopt.rect = proxy()->subElementRect(SE_HeaderLabel, header, widget);
+            if (header->state & State_Sunken) 
+                subopt.palette.setColor(QPalette::ButtonText, header->palette.brightText().color());
+            subopt.state |= QStyle::State_On;
+            if (subopt.rect.isValid())
+                proxy()->drawControl(CE_HeaderLabel, &subopt, painter, widget);
+            if (header->sortIndicator != QStyleOptionHeader::None) {
+                subopt.rect = proxy()->subElementRect(SE_HeaderArrow, option, widget);
+                proxy()->drawPrimitive(PE_IndicatorHeaderArrow, &subopt, painter, widget);
+            }
+            painter->setClipRegion(clipRegion);
+        }
+        break;
+
+    case CE_HeaderSection:
+        if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(option)) {
+            QBrush fill;
+            QColor color;
+            QRect rect = option->rect;
+            painter->setPen(option->palette.shadow().color());
+
+            int penSize = 1;
+
+            if (d->doubleControls) {
+                penSize = 2;
+                QPen pen = painter->pen();
+                pen.setWidth(2);
+                pen.setCapStyle(Qt::FlatCap);
+                painter->setPen(pen);
+            }
+
+            //fix Frame
+
+            if (header->position == QStyleOptionHeader::End
+                || (header->position == QStyleOptionHeader::OnlyOneSection
+                && !header->text.isEmpty()))
+                if (Qt::Horizontal == header->orientation )
+                  rect.adjust(0, 0, penSize, 0);
+                else
+                  rect.adjust(0, 0, 0, penSize);
+
+            if (option->state & State_Sunken) {
+                fill = option->palette.brush(QPalette::Shadow);
+                color = option->palette.light().color();
+                painter->drawLine(rect.bottomLeft(), rect.bottomRight());
+                painter->drawLine(rect.topRight(), rect.bottomRight());
+                rect.adjust(0, 0, -penSize, -penSize);
+            }
+            else {
+                fill = option->palette.brush(QPalette::Button);
+                color = option->palette.shadow().color();
+                if (Qt::Horizontal == header->orientation )
+                    rect.adjust(-penSize, 0, 0, 0);
+                else
+                  rect.adjust(0, -penSize, 0, 0);
+            }
+            if (Qt::Horizontal == header->orientation )
+                    rect.adjust(0,-penSize,0,0);
+                else
+                  rect.adjust(-penSize, 0, 0, 0);
+
+            if (option->state & State_Sunken) {
+                qDrawPlainRect(painter, rect, color, penSize, &fill);
+            } else {
+                //Corner
+                rect.adjust(-penSize, 0, 0, 0);
+                qDrawPlainRect(painter, rect, color, penSize, &fill);
+            }
+
+            //Hack to get rid of some double lines... StyleOptions need a clean flag for that
+             rect = option->rect;
+#ifndef QT_NO_SCROLLAREA
+             if (const QAbstractScrollArea *abstractScrollArea = qobject_cast<const QAbstractScrollArea *> (widget) ) {
+                 QRect rectScrollArea = abstractScrollArea->geometry();
+                 if (Qt::Horizontal == header->orientation )
+                     if ((rectScrollArea.right() - rect.right() ) > 1)
+                         painter->drawLine(rect.topRight(), rect.bottomRight());
+                     else ;
+                 else
+                     if ((rectScrollArea.bottom() - rect.bottom() ) > 1)
+                         painter->drawLine(rect.bottomLeft(), rect.bottomRight());
+             }
+#endif // QT_NO_SCROLLAREA
+            break;
+        }
+#ifndef QT_NO_COMBOBOX
+    case CE_ComboBoxLabel:
+        // This is copied from qcommonstyle.cpp with the difference, that
+        // the editRect isn't adjusted when calling drawItemText.
+        if (const QStyleOptionComboBox *cb = qstyleoption_cast<const QStyleOptionComboBox *>(option)) {
+            QRect editRect = proxy()->subControlRect(CC_ComboBox, cb, SC_ComboBoxEditField, widget);
+            painter->save();
+            painter->setClipRect(editRect);
+            if (!cb->currentIcon.isNull()) {
+                QIcon::Mode mode = cb->state & State_Enabled ? QIcon::Normal
+                                                             : QIcon::Disabled;
+                QPixmap pixmap = cb->currentIcon.pixmap(cb->iconSize, mode);
+                QRect iconRect(editRect);
+                iconRect.setWidth(cb->iconSize.width() + 4);
+                iconRect = alignedRect(cb->direction,
+                                       Qt::AlignLeft | Qt::AlignVCenter,
+                                       iconRect.size(), editRect);
+                if (cb->editable)
+                    painter->fillRect(iconRect, option->palette.brush(QPalette::Base));
+                proxy()->drawItemPixmap(painter, iconRect, Qt::AlignCenter, pixmap);
+
+                if (cb->direction == Qt::RightToLeft)
+                    editRect.translate(-4 - cb->iconSize.width(), 0);
+                else
+                    editRect.translate(cb->iconSize.width() + 4, 0);
+            }
+            if (!cb->currentText.isEmpty() && !cb->editable) {
+                proxy()->drawItemText(painter, editRect,
+                             visualAlignment(cb->direction, Qt::AlignLeft | Qt::AlignVCenter),
+                             cb->palette, cb->state & State_Enabled, cb->currentText);
+            }
+            painter->restore();
+        }
+        break;
+#endif // QT_NO_COMBOBOX
+#ifndef QT_NO_DOCKWIDGET
+    case CE_DockWidgetTitle:
+        if (const QStyleOptionDockWidget *dwOpt = qstyleoption_cast<const QStyleOptionDockWidget *>(option)) {
+            const QStyleOptionDockWidgetV2 *v2
+                = qstyleoption_cast<const QStyleOptionDockWidgetV2*>(option);
+            bool verticalTitleBar = v2 == 0 ? false : v2->verticalTitleBar;
+
+            QRect rect = dwOpt->rect;
+            QRect r = rect;
+
+            if (verticalTitleBar) {
+                QSize s = r.size();
+                s.transpose();
+                r.setSize(s);
+
+                painter->save();
+                painter->translate(r.left(), r.top() + r.width());
+                painter->rotate(-90);
+                painter->translate(-r.left(), -r.top());
+            }
+
+            bool floating = false;
+            bool active = dwOpt->state & State_Active;
+            int menuOffset = 0; //used to center text when floated
+            QColor inactiveCaptionTextColor = option->palette.highlightedText().color();
+            if (dwOpt->movable) {
+                QColor left, right;
+
+                //Titlebar gradient
+                if (widget && widget->isWindow()) {
+                    floating = true;
+                    if (active) {
+                        right = option->palette.highlight().color();
+                        left = right.lighter(125);
+                    } else {
+                        left  = option->palette.highlight().color().lighter(125);
+                        right = QColor(0xff, 0xff, 0xff);
+                    }
+                    menuOffset = 2;
+                    QBrush fillBrush(left);
+                    if (left != right) {
+                        QPoint p1(r.x(), r.top() + r.height()/2);
+                        QPoint p2(rect.right(), r.top() + r.height()/2);
+                        QLinearGradient lg(p1, p2);
+                        lg.setColorAt(0, left);
+                        lg.setColorAt(1, right);
+                        fillBrush = lg;
+                    }
+                    painter->fillRect(r.adjusted(0, 0, 0, -3), fillBrush);
+                } else {
+                    painter->fillRect(r.adjusted(0, 0, 0, -3), option->palette.button().color());
+                }
+                painter->setPen(dwOpt->palette.color(QPalette::Light));
+                if (!widget || !widget->isWindow()) {
+                    painter->drawLine(r.topLeft(), r.topRight());
+                    painter->setPen(dwOpt->palette.color(QPalette::Dark));
+                    painter->drawLine(r.bottomLeft(), r.bottomRight());            }
+            }
+            if (!dwOpt->title.isEmpty()) {
+                QFont oldFont = painter->font();
+                QFont newFont = oldFont;
+                if (newFont.pointSize() > 2)
+                    newFont.setPointSize(newFont.pointSize() - 2);
+                if (floating)
+                    newFont.setBold(true);
+                painter->setFont(newFont);
+                QPalette palette = dwOpt->palette;
+                palette.setColor(QPalette::Window, inactiveCaptionTextColor);
+                QRect titleRect = proxy()->subElementRect(SE_DockWidgetTitleBarText, option, widget);
+                if (verticalTitleBar) {
+                    titleRect = QRect(r.left() + rect.bottom()
+                                        - titleRect.bottom(),
+                                    r.top() + titleRect.left() - rect.left(),
+                                    titleRect.height(), titleRect.width());
+                }
+                proxy()->drawItemText(painter, titleRect,
+                            Qt::AlignLeft | Qt::AlignVCenter | Qt::TextShowMnemonic, palette,
+                            dwOpt->state & State_Enabled, dwOpt->title,
+                            floating ? (active ? QPalette::BrightText : QPalette::Window) : QPalette::WindowText);
+                painter->setFont(oldFont);
+            }
+            if (verticalTitleBar)
+                painter->restore();
+        }
+        return;
+#endif // QT_NO_DOCKWIDGET
+
+    case CE_PushButtonLabel:
+        if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
+            painter->save();
+            QRect ir = button->rect;
+            QPalette::ColorRole colorRole;
+            uint tf = Qt::AlignVCenter | Qt::TextShowMnemonic;
+            if (!styleHint(SH_UnderlineShortcut, button, widget))
+                tf |= Qt::TextHideMnemonic;
+
+            if (button->state & (State_On | State_Sunken))
+                colorRole = QPalette::Light;
+            else
+                colorRole = QPalette::ButtonText;
+
+            if (!button->icon.isNull()) {
+                QIcon::Mode mode = button->state & State_Enabled ? QIcon::Normal
+                    : QIcon::Disabled;
+                if (mode == QIcon::Normal && button->state & State_HasFocus)
+                    mode = QIcon::Active;
+                QIcon::State state = QIcon::Off;
+                if (button->state & State_On)
+                    state = QIcon::On;
+                QPixmap pixmap = button->icon.pixmap(button->iconSize, mode, state);
+                int pixw = pixmap.width();
+                int pixh = pixmap.height();
+                //Center the icon if there is no text
+
+                QPoint point;
+                if (button->text.isEmpty()) {
+                    point = QPoint(ir.x() + ir.width() / 2 - pixw / 2,
+                        ir.y() + ir.height() / 2 - pixh / 2);
+                } else {
+                    point = QPoint(ir.x() + 2, ir.y() + ir.height() / 2 - pixh / 2);
+                }
+                if (button->direction == Qt::RightToLeft)
+                    point.rx() += pixw;
+
+                if ((button->state & (State_On | State_Sunken)) && button->direction == Qt::RightToLeft)
+                    point.rx() -= proxy()->pixelMetric(PM_ButtonShiftHorizontal, option, widget) * 2;
+
+                painter->drawPixmap(visualPos(button->direction, button->rect, point), pixmap);
+
+                if (button->direction == Qt::RightToLeft)
+                    ir.translate(-4, 0);
+                else
+                    ir.translate(pixw + 4, 0);
+                ir.setWidth(ir.width() - (pixw + 4));
+                // left-align text if there is
+                if (!button->text.isEmpty())
+                    tf |= Qt::AlignLeft;
+            } else {
+                tf |= Qt::AlignHCenter;
+            }
+            if (button->state & State_Enabled)
+                proxy()->drawItemText(painter, ir, tf, button->palette, true, button->text, colorRole);
+            else
+            proxy()->drawItemText(painter, ir, tf, button->palette, true, button->text, QPalette::Mid);
+            painter->restore();
+        }
+        break;
+        default:
+            QWindowsStyle::drawControl(element, option, painter, widget);
+            break;
+    }
+}
+
+void QWindowsMobileStyle::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option,
+                                             QPainter *painter, const QWidget *widget) const {
+
+    painter->setClipping(false);
+    QWindowsMobileStylePrivate *d = const_cast<QWindowsMobileStylePrivate*>(d_func());
+
+    switch (control) {
+#ifndef QT_NO_SLIDER
+    case CC_Slider:
+        if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(option)) {
+            int thickness  = proxy()->pixelMetric(PM_SliderControlThickness, slider, widget);
+            int len        = proxy()->pixelMetric(PM_SliderLength, slider, widget);
+            int ticks = slider->tickPosition;
+            QRect groove = proxy()->subControlRect(CC_Slider, slider, SC_SliderGroove, widget);
+            QRect handle = proxy()->subControlRect(CC_Slider, slider, SC_SliderHandle, widget);
+
+            if ((slider->subControls & SC_SliderGroove) && groove.isValid()) {
+                int mid = thickness / 2;
+                if (ticks & QSlider::TicksAbove)
+                    mid += len / 8;
+                if (ticks & QSlider::TicksBelow)
+                    mid -= len / 8;
+
+                painter->setPen(slider->palette.shadow().color());
+                if (slider->orientation == Qt::Horizontal) {
+                    qDrawPlainRect(painter, groove.x(), groove.y() + mid - 2,
+                        groove.width(), 4, option->palette.shadow().color(),1,0);
+                } else {
+                    qDrawPlainRect(painter, groove.x()+mid-2, groove.y(),
+                        4, groove.height(), option->palette.shadow().color(),1,0);
+                }
+            }
+            if (slider->subControls & SC_SliderTickmarks) {
+                QStyleOptionSlider tmpSlider = *slider;
+                tmpSlider.subControls = SC_SliderTickmarks;
+                QCommonStyle::drawComplexControl(control, &tmpSlider, painter, widget);
+            }
+
+            if (slider->subControls & SC_SliderHandle) {
+                const QColor c0 = slider->palette.shadow().color();
+                const QColor c1 = slider->palette.dark().color();
+                const QColor c3 = slider->palette.midlight().color();
+                const QColor c4 = slider->palette.dark().color();
+                QBrush handleBrush;
+
+                if (slider->state & State_Enabled) {
+                    handleBrush = slider->palette.color(QPalette::Light);
+                } else {
+                    handleBrush = QBrush(slider->palette.color(QPalette::Shadow),
+                        Qt::Dense4Pattern);
+                }
+                int x = handle.x(), y = handle.y(),
+                    wi = handle.width(), he = handle.height();
+                int x1 = x;
+                int x2 = x+wi-1;
+                int y1 = y;
+                int y2 = y+he-1;
+
+                Qt::Orientation orient = slider->orientation;
+                bool tickAbove = slider->tickPosition == QSlider::TicksAbove;
+                bool tickBelow = slider->tickPosition == QSlider::TicksBelow;
+
+                if (slider->state & State_HasFocus) {
+                    QStyleOptionFocusRect fropt;
+                    fropt.QStyleOption::operator=(*slider);
+                    fropt.rect = proxy()->subElementRect(SE_SliderFocusRect, slider, widget);
+                    proxy()->drawPrimitive(PE_FrameFocusRect, &fropt, painter, widget);
+                }
+                if ((tickAbove && tickBelow) || (!tickAbove && !tickBelow)) {
+                    Qt::BGMode oldMode = painter->backgroundMode();
+                    painter->setBackgroundMode(Qt::OpaqueMode);
+                    qDrawPlainRect(painter, QRect(x, y, wi, he)
+                        ,slider->palette.shadow().color(),1,&handleBrush);
+                    painter->setBackgroundMode(oldMode);
+                    QBrush fill = QBrush(option->palette.light().color(), Qt::Dense4Pattern);
+                    if (slider->state & State_Sunken)
+                        painter->fillRect(QRectF(x1 + 2, y1 + 2, x2 - x1 - 3, y2 - y1 - 3),fill);
+                    return;
+                }
+                QSliderDirection dir;
+                if (orient == Qt::Horizontal)
+                    if (tickAbove)
+                        dir = SliderUp;
+                    else
+                        dir = SliderDown;
+                else
+                    if (tickAbove)
+                        dir = SliderLeft;
+                    else
+                        dir = SliderRight;
+                QPolygon polygon;
+                int d = 0;
+                switch (dir) {
+                  case SliderUp:
+                      x2++;
+                      y1 = y1 + wi / 2;
+                      d =  (wi + 1) / 2 - 1;
+                      polygon.setPoints(5, x1, y1, x1, y2, x2, y2, x2, y1, x1 + d,y1 - d);
+                      break;
+                  case SliderDown:
+                      x2++;
+                      y2 = y2 - wi/2;
+                      d =  (wi + 1) / 2 - 1;
+                      polygon.setPoints(5, x1, y1, x1, y2, x1 + d,y2 + d, x2, y2, x2, y1);
+                  break;
+                      case SliderLeft:
+                      d =  (he + 1) / 2 - 1;
+                      x1 = x1 + he/2;
+                      polygon.setPoints(5, x1, y1, x1 - d, y1 + d, x1,y2, x2, y2, x2, y1);
+                      y1--;
+                      break;
+                  case SliderRight:
+                      d =  (he + 1) / 2 - 1;
+                      x2 = x2 - he/2;
+                      polygon.setPoints(5, x1, y1, x1, y2, x2,y2, x2 + d, y1 + d, x2, y1);
+                      y1--;
+                      break;
+                }
+                QBrush oldBrush = painter->brush();
+                painter->setPen(Qt::NoPen);
+                painter->setBrush(handleBrush);
+                Qt::BGMode oldMode = painter->backgroundMode();
+                painter->setBackgroundMode(Qt::OpaqueMode);
+                painter->drawRect(x1, y1, x2-x1+1, y2-y1+1);
+                painter->drawPolygon(polygon);
+                QBrush fill = QBrush(option->palette.button().color(), Qt::Dense4Pattern);
+                painter->setBrush(oldBrush);
+                painter->setBackgroundMode(oldMode);
+                if (slider->state & State_Sunken)
+                    painter->fillRect(QRectF(x1, y1, x2 - x1 + 1, y2 - y1 + 1),fill);
+
+                if (dir != SliderUp) {
+                    painter->setPen(c0);
+                    painter->drawLine(x1, y1, x2, y1);
+                }
+                if (dir != SliderLeft) {
+                    painter->setPen(c0);
+                    painter->drawLine(x1, y1, x1, y2);
+                }
+                if (dir != SliderRight) {
+                    painter->setPen(c0);
+                    painter->drawLine(x2, y1, x2, y2);
+                }
+                if (dir != SliderDown) {
+                    painter->setPen(c0);
+                    painter->drawLine(x1, y2, x2, y2);
+                }
+                switch (dir) {
+                  case SliderUp:
+                      if (slider->state & State_Sunken)
+                          painter->fillRect(QRectF(x1 + 3, y1 - d + 2, x2 - x1 - 4, y1),fill);
+                      painter->setPen(c0);
+                      painter->drawLine(x1, y1, x1 + d, y1 - d);
+                      d = wi - d - 1;
+                      painter->drawLine(x2, y1, x2 -d , y1 -d );
+                      d--;
+                      break;
+                  case SliderDown:
+                      if (slider->state & State_Sunken)
+                      painter->fillRect(QRectF(x1+3, y2 - d, x2 - x1  -4,y2 - 8),fill);
+                      painter->setPen(c0);
+                      painter->drawLine(x1, y2, x1 + d, y2 + d);
+                      d = wi - d - 1;
+                      painter->drawLine(x2, y2, x2 - d, y2 + d);
+                      d--;
+                      break;
+                  case SliderLeft:
+                      if (slider->state & State_Sunken)
+                          painter->fillRect(QRectF(x1 - d + 2, y1 + 2, x1, y2 - y1 - 3),fill);
+                      painter->setPen(c0);
+                      painter->drawLine(x1, y1, x1 - d, y1 + d);
+                      d = he - d - 1;
+                      painter->drawLine(x1, y2, x1 - d, y2 - d);
+                      d--;
+                      break;
+                  case SliderRight:
+                      if (slider->state & State_Sunken)
+                          painter->fillRect(QRectF(x2 - d - 4, y1 + 2, x2 - 4, y2 - y1 - 3),fill);
+                      painter->setPen(c0);
+                      painter->drawLine(x2, y1, x2 + d, y1 + d);
+                      painter->setPen(c0);
+                      d = he - d - 1;
+                      painter->drawLine(x2, y2, x2 + d, y2 - d);
+                      d--;
+                      break;
+                }
+            }
+        }
+        break;
+#endif //QT_NO_SLIDER
+#ifndef QT_NO_SCROLLBAR
+    case CC_ScrollBar:
+        painter->save();
+        painter->setPen(option->palette.shadow().color());
+        if (d->doubleControls) {
+            QPen pen = painter->pen();
+            pen.setWidth(2);
+            pen.setCapStyle(Qt::SquareCap);
+            painter->setPen(pen);
+        }
+        if (const QStyleOptionSlider *scrollbar = qstyleoption_cast<const QStyleOptionSlider *>(option)) {
+            d->drawScrollbarGroove(painter, scrollbar);
+            // Make a copy here and reset it for each primitive.
+            QStyleOptionSlider newScrollbar = *scrollbar;
+            State saveFlags = scrollbar->state;
+            //Check if the scrollbar is part of an abstractItemView and draw the frame according
+            bool drawCompleteFrame = true;
+            bool secondScrollBar = false;
+            if (widget)
+                if (QWidget *parent = widget->parentWidget()) {
+                    if (QAbstractScrollArea *abstractScrollArea = qobject_cast<QAbstractScrollArea *>(parent->parentWidget())) {
+                        drawCompleteFrame = (abstractScrollArea->frameStyle() == QFrame::NoFrame) ||  (abstractScrollArea->frameStyle() == QFrame::StyledPanel);
+                        secondScrollBar = (abstractScrollArea->horizontalScrollBar()->isVisible()
+                            && abstractScrollArea->verticalScrollBar()->isVisible()) ;
+                    }
+#ifndef QT_NO_LISTVIEW
+                    if (QListView *listView = qobject_cast<QListView *>(parent->parentWidget()))
+                            drawCompleteFrame = false;
+#endif
+                }
+                if (scrollbar->minimum == scrollbar->maximum)
+                    saveFlags |= State_Enabled;
+                if (scrollbar->subControls & SC_ScrollBarSubLine) {
+                    newScrollbar.state = saveFlags;
+                    newScrollbar.rect = proxy()->subControlRect(control, &newScrollbar, SC_ScrollBarSubLine, widget);
+                    if (newScrollbar.rect.isValid()) {
+                        if (!(scrollbar->activeSubControls & SC_ScrollBarSubLine))
+                            newScrollbar.state &= ~(State_Sunken | State_MouseOver);
+                        d->drawScrollbarHandleUp(painter, &newScrollbar, drawCompleteFrame, secondScrollBar);
+                    }
+                }
+                if (scrollbar->subControls & SC_ScrollBarAddLine) {
+                    newScrollbar.rect = scrollbar->rect;
+                    newScrollbar.state = saveFlags;
+                    newScrollbar.rect = proxy()->subControlRect(control, &newScrollbar, SC_ScrollBarAddLine, widget);
+                    if (newScrollbar.rect.isValid()) {
+                        if (!(scrollbar->activeSubControls & SC_ScrollBarAddLine))
+                            newScrollbar.state &= ~(State_Sunken | State_MouseOver);
+                        d->drawScrollbarHandleDown(painter, &newScrollbar, drawCompleteFrame, secondScrollBar);
+                    }
+                }
+                if (scrollbar->subControls & SC_ScrollBarSlider) {
+
+                      newScrollbar.rect = scrollbar->rect;
+                      newScrollbar.state = saveFlags;
+                      newScrollbar.rect = proxy()->subControlRect(control, &newScrollbar, SC_ScrollBarSlider, widget);
+
+                      if (newScrollbar.rect.isValid()) {
+                          if (!(scrollbar->activeSubControls & SC_ScrollBarSlider))
+                              newScrollbar.state &= ~(State_Sunken | State_MouseOver);
+                          d->drawScrollbarGrip(painter, &newScrollbar, option, drawCompleteFrame);
+                      }
+                }
+        }
+        painter->restore();
+        break;
+#endif // QT_NO_SCROLLBAR
+    case CC_ToolButton:
+        if (const QStyleOptionToolButton *toolbutton
+                = qstyleoption_cast<const QStyleOptionToolButton *>(option)) {
+            QRect button, menuarea;
+            bool isTabWidget = false;
+#ifndef QT_NO_TABWIDGET
+            if (widget)
+                if (QWidget *parent = widget->parentWidget())
+                    isTabWidget = (qobject_cast<QTabWidget *>(parent->parentWidget()));
+#endif //QT_NO_TABWIDGET
+
+            button = proxy()->subControlRect(control, toolbutton, SC_ToolButton, widget);
+            menuarea = proxy()->subControlRect(control, toolbutton, SC_ToolButtonMenu, widget);
+            State buttonFlags = toolbutton->state;
+            if (buttonFlags & State_AutoRaise) {
+                if (!(buttonFlags & State_MouseOver)) {
+                    buttonFlags &= ~State_Raised;
+                }
+            }
+            State menuFlags = buttonFlags;
+            if (toolbutton->activeSubControls & SC_ToolButton)
+                buttonFlags |= State_Sunken;
+            if (toolbutton->activeSubControls & SC_ToolButtonMenu)
+                menuFlags |= State_On;
+            QStyleOption tool(0);
+            tool.palette = toolbutton->palette;
+            if (toolbutton->subControls & SC_ToolButton) {
+                    tool.rect = button;
+                    tool.state = buttonFlags;
+                    proxy()->drawPrimitive(PE_PanelButtonTool, &tool, painter, widget);
+            }
+            if (toolbutton->subControls & SC_ToolButtonMenu) {
+                tool.rect = menuarea;
+                tool.state = buttonFlags & State_Enabled;
+                QStyleOption toolMenu(0);
+                toolMenu = *toolbutton;
+                toolMenu.state = menuFlags;
+                if (buttonFlags & State_Sunken)
+                  proxy()->drawPrimitive(PE_PanelButtonTool, &toolMenu, painter, widget);
+                QStyleOption arrowOpt(0);
+                arrowOpt.rect = tool.rect;
+                arrowOpt.palette = tool.palette;
+                State flags = State_None;
+                if (menuFlags & State_Enabled)
+                    flags |= State_Enabled;
+                if ((menuFlags & State_On) && !(buttonFlags & State_Sunken)) {
+                    flags |= State_Sunken;
+                    painter->fillRect(menuarea, option->palette.shadow());
+                }
+                arrowOpt.state = flags;
+                proxy()->drawPrimitive(PE_IndicatorArrowDown, &arrowOpt, painter, widget);
+            }
+            if (toolbutton->state & State_HasFocus) {
+                QStyleOptionFocusRect focusRect;
+                focusRect.QStyleOption::operator=(*toolbutton);
+                focusRect.rect.adjust(3, 3, -3, -3);
+                if (toolbutton->features & QStyleOptionToolButton::Menu)
+                    focusRect.rect.adjust(0, 0, -proxy()->pixelMetric(QStyle::PM_MenuButtonIndicator,
+                                                         toolbutton, widget), 0);
+                proxy()->drawPrimitive(PE_FrameFocusRect, &focusRect, painter, widget);
+            }
+            QStyleOptionToolButton label = *toolbutton;
+            if (isTabWidget)
+                label.state = toolbutton->state;
+            else
+              label.state = toolbutton->state & State_Enabled;
+            int fw = proxy()->pixelMetric(PM_DefaultFrameWidth, option, widget);
+            label.rect = button.adjusted(fw, fw, -fw, -fw);
+            proxy()->drawControl(CE_ToolButtonLabel, &label, painter, widget);
+        }
+        break;
+
+#ifndef QT_NO_GROUPBOX
+    case CC_GroupBox:
+        if (const QStyleOptionGroupBox *groupBox = qstyleoption_cast<const QStyleOptionGroupBox *>(option)) {
+            // Draw frame
+            painter->save();
+            QFont font = painter->font();
+            font.setBold(true);
+            painter->setFont(font);
+            QStyleOptionGroupBox groupBoxFont = *groupBox;
+            groupBoxFont.fontMetrics = QFontMetrics(font);
+            QRect textRect = proxy()->subControlRect(CC_GroupBox, &groupBoxFont, SC_GroupBoxLabel, widget);
+            QRect checkBoxRect = proxy()->subControlRect(CC_GroupBox, option, SC_GroupBoxCheckBox, widget).adjusted(0,0,0,0);
+            if (groupBox->subControls & QStyle::SC_GroupBoxFrame) {
+                QStyleOptionFrameV2 frame;
+                frame.QStyleOption::operator=(*groupBox);
+                frame.features = groupBox->features;
+                frame.lineWidth = groupBox->lineWidth;
+                frame.midLineWidth = groupBox->midLineWidth;
+                frame.rect = proxy()->subControlRect(CC_GroupBox, option, SC_GroupBoxFrame, widget);
+                painter->save();
+                QRegion region(groupBox->rect);
+                if (!groupBox->text.isEmpty()) {
+                    bool ltr = groupBox->direction == Qt::LeftToRight;
+                    QRect finalRect = checkBoxRect.united(textRect);
+                    if (groupBox->subControls & QStyle::SC_GroupBoxCheckBox)
+                        finalRect.adjust(ltr ? -4 : 0, 0, ltr ? 0 : 4, 0);
+                    region -= finalRect;
+                }
+                proxy()->drawPrimitive(PE_FrameGroupBox, &frame, painter, widget);
+                painter->restore();
+            }
+             // Draw checkbox
+            if (groupBox->subControls & SC_GroupBoxCheckBox) {
+                QStyleOptionButton box;
+                box.QStyleOption::operator=(*groupBox);
+                box.rect = checkBoxRect;
+                proxy()->drawPrimitive(PE_IndicatorCheckBox, &box, painter, widget);
+            }
+            // Draw title
+            if ((groupBox->subControls & QStyle::SC_GroupBoxLabel) && !groupBox->text.isEmpty()) {
+                QColor textColor = groupBox->textColor;
+                if (textColor.isValid())
+                    painter->setPen(textColor);
+                else
+                    painter->setPen(groupBox->palette.link().color());
+                painter->setPen(groupBox->palette.link().color());
+
+                int alignment = int(groupBox->textAlignment);
+                if (!styleHint(QStyle::SH_UnderlineShortcut, option, widget))
+                    alignment |= Qt::TextHideMnemonic;
+
+                if (groupBox->state & State_Enabled)
+                    proxy()->drawItemText(painter, textRect,  Qt::TextShowMnemonic | Qt::AlignHCenter | alignment,
+                    groupBox->palette, true, groupBox->text,
+                    textColor.isValid() ? QPalette::NoRole : QPalette::Link);
+                else
+                    proxy()->drawItemText(painter, textRect,  Qt::TextShowMnemonic | Qt::AlignHCenter | alignment,
+                    groupBox->palette, true, groupBox->text, QPalette::Mid);
+                if (groupBox->state & State_HasFocus) {
+                    QStyleOptionFocusRect fropt;
+                    fropt.QStyleOption::operator=(*groupBox);
+                    fropt.rect = textRect;
+                    proxy()->drawPrimitive(PE_FrameFocusRect, &fropt, painter, widget);
+                }
+            }
+            painter->restore();
+        }
+        break;
+#endif //QT_NO_GROUPBOX
+
+#ifndef QT_NO_COMBOBOX
+    case CC_ComboBox:
+        if (const QStyleOptionComboBox *cmb = qstyleoption_cast<const QStyleOptionComboBox *>(option)) {
+            QBrush editBrush = cmb->palette.brush(QPalette::Base);
+            if ((cmb->subControls & SC_ComboBoxFrame) && cmb->frame)
+                qDrawPlainRect(painter, option->rect, option->palette.shadow().color(), proxy()->pixelMetric(PM_ComboBoxFrameWidth, option, widget), &editBrush);
+            else
+                painter->fillRect(option->rect, editBrush);
+            State flags = State_None;
+            QRect ar = proxy()->subControlRect(CC_ComboBox, cmb, SC_ComboBoxArrow, widget);
+            if ((option->state & State_On)) {
+                painter->fillRect(ar.adjusted(0, 0, 1, 1),cmb->palette.brush(QPalette::Shadow));
+            }
+            if (d->doubleControls)
+                ar.adjust(5, 0, 5, 0);
+            else
+                ar.adjust(2, 0, -2, 0);
+            if (option->state & State_Enabled)
+                flags |= State_Enabled;
+            if (option->state & State_On)
+                flags |= State_Sunken;
+            QStyleOption arrowOpt(0);
+            arrowOpt.rect = ar;
+            arrowOpt.palette = cmb->palette;
+            arrowOpt.state = flags;
+            proxy()->drawPrimitive(PrimitiveElement(PE_IndicatorArrowDownBig), &arrowOpt, painter, widget);
+            if (cmb->subControls & SC_ComboBoxEditField) {
+                QRect re = proxy()->subControlRect(CC_ComboBox, cmb, SC_ComboBoxEditField, widget);
+                if (cmb->state & State_HasFocus && !cmb->editable)
+                    painter->fillRect(re.x(), re.y(), re.width(), re.height(),
+                 cmb->palette.brush(QPalette::Highlight));
+                 if (cmb->state & State_HasFocus) {
+                    painter->setPen(cmb->palette.highlightedText().color());
+                    painter->setBackground(cmb->palette.highlight());
+                 } else {
+                    painter->setPen(cmb->palette.text().color());
+                    painter->setBackground(cmb->palette.background());
+                 }
+                 if (cmb->state & State_HasFocus && !cmb->editable) {
+                    QStyleOptionFocusRect focus;
+                    focus.QStyleOption::operator=(*cmb);
+                    focus.rect = proxy()->subElementRect(SE_ComboBoxFocusRect, cmb, widget);
+                    focus.state |= State_FocusAtBorder;
+                    focus.backgroundColor = cmb->palette.highlight().color();
+                    if ((option->state & State_On))
+                      proxy()->drawPrimitive(PE_FrameFocusRect, &focus, painter, widget);
+               }
+            }
+        }
+        break;
+#endif // QT_NO_COMBOBOX
+
+
+#ifndef QT_NO_SPINBOX
+    case CC_SpinBox:
+        if (const QStyleOptionSpinBox *spinBox = qstyleoption_cast<const QStyleOptionSpinBox *>(option)) {
+            QStyleOptionSpinBox copy = *spinBox;
+            //PrimitiveElement primitiveElement;
+            int primitiveElement;
+
+            if (spinBox->frame && (spinBox->subControls & SC_SpinBoxFrame)) {
+                QRect r = proxy()->subControlRect(CC_SpinBox, spinBox, SC_SpinBoxFrame, widget);
+                qDrawPlainRect(painter, r, option->palette.shadow().color(), proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget),0);
+            }
+            QPalette shadePal(option->palette);
+            shadePal.setColor(QPalette::Button, option->palette.light().color());
+            shadePal.setColor(QPalette::Light, option->palette.base().color());
+            if (spinBox->subControls & SC_SpinBoxUp) {
+                copy.subControls = SC_SpinBoxUp;
+                QPalette pal2 = spinBox->palette;
+                if (!(spinBox->stepEnabled & QAbstractSpinBox::StepUpEnabled)) {
+                    pal2.setCurrentColorGroup(QPalette::Disabled);
+                    copy.state &= ~State_Enabled;
+                }
+                copy.palette = pal2;
+                if (spinBox->activeSubControls == SC_SpinBoxUp && (spinBox->state & State_Sunken)) {
+                    copy.state |= State_On;
+                    copy.state |= State_Sunken;
+                } else {
+                    copy.state |= State_Raised;
+                    copy.state &= ~State_Sunken;
+                }
+                primitiveElement = (spinBox->buttonSymbols == QAbstractSpinBox::PlusMinus ? PE_IndicatorArrowUpBig
+                    : PE_IndicatorArrowUpBig);
+                copy.rect = proxy()->subControlRect(CC_SpinBox, spinBox, SC_SpinBoxUp, widget);
+                if (copy.state & (State_Sunken | State_On))
+                    qDrawPlainRect(painter, copy.rect, option->palette.shadow().color(), proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget), &copy.palette.brush(QPalette::Shadow));
+                else
+                  qDrawPlainRect(painter, copy.rect, option->palette.shadow().color(), proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget), &copy.palette.brush(QPalette::Base));
+                copy.rect.adjust(proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget), 0, -pixelMetric(PM_SpinBoxFrameWidth, option, widget), 0);
+                proxy()->drawPrimitive(PrimitiveElement(primitiveElement), &copy, painter, widget);
+            }
+            if (spinBox->subControls & SC_SpinBoxDown) {
+                copy.subControls = SC_SpinBoxDown;
+                copy.state = spinBox->state;
+                QPalette pal2 = spinBox->palette;
+                if (!(spinBox->stepEnabled & QAbstractSpinBox::StepDownEnabled)) {
+                    pal2.setCurrentColorGroup(QPalette::Disabled);
+                    copy.state &= ~State_Enabled;
+                }
+                copy.palette = pal2;
+                if (spinBox->activeSubControls == SC_SpinBoxDown && (spinBox->state & State_Sunken)) {
+                    copy.state |= State_On;
+                    copy.state |= State_Sunken;
+                } else {
+                    copy.state |= State_Raised;
+                    copy.state &= ~State_Sunken;
+                }
+                primitiveElement = (spinBox->buttonSymbols == QAbstractSpinBox::PlusMinus ? PE_IndicatorArrowDownBig
+                                                                       : PE_IndicatorArrowDownBig);
+                copy.rect = proxy()->subControlRect(CC_SpinBox, spinBox, SC_SpinBoxDown, widget);
+                qDrawPlainRect(painter, copy.rect, option->palette.shadow().color(), proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget), &copy.palette.brush(QPalette::Base));
+                if (copy.state & (State_Sunken | State_On))
+                    qDrawPlainRect(painter, copy.rect, option->palette.shadow().color(), proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget), &copy.palette.brush(QPalette::Shadow));
+                else
+                    qDrawPlainRect(painter, copy.rect, option->palette.shadow().color(), proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget), &copy.palette.brush(QPalette::Base));
+                copy.rect.adjust(3, 0, -4, 0);
+                if (primitiveElement == PE_IndicatorArrowUp || primitiveElement == PE_IndicatorArrowDown) {
+                    int frameWidth = proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget);
+                    copy.rect = copy.rect.adjusted(frameWidth, frameWidth, -frameWidth, -frameWidth);
+                    proxy()->drawPrimitive(PrimitiveElement(primitiveElement), &copy, painter, widget);
+                }
+                else {
+                    proxy()->drawPrimitive(PrimitiveElement(primitiveElement), &copy, painter, widget);
+                }
+                if (spinBox->frame && (spinBox->subControls & SC_SpinBoxFrame)) {
+                    QRect r = proxy()->subControlRect(CC_SpinBox, spinBox, SC_SpinBoxEditField, widget);
+                }
+            }
+        }
+        break;
+#endif // QT_NO_SPINBOX
+
+    default:
+        QWindowsStyle::drawComplexControl(control, option, painter, widget);
+        break;
+    }
+}
+
+QSize QWindowsMobileStyle::sizeFromContents(ContentsType type, const QStyleOption *option,
+                                            const QSize &size, const QWidget *widget) const {
+
+    QSize newSize = QWindowsStyle::sizeFromContents(type, option, size, widget);
+    switch (type) {
+    case CT_PushButton:
+       if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
+            newSize = QWindowsStyle::sizeFromContents(type, option, size, widget);
+            int w = newSize.width(),
+                h = newSize.height();
+            int defwidth = 0;
+            if (button->features & QStyleOptionButton::AutoDefaultButton)
+                defwidth = 2 * proxy()->pixelMetric(PM_ButtonDefaultIndicator, button, widget);
+            if (w < 75 + defwidth && button->icon.isNull())
+                w = 75 + defwidth;
+            if (h < 23 + defwidth)
+                h = 23 + defwidth;
+            newSize = QSize(w + 4, h + 4);
+        }
+        break;
+
+#ifndef QT_NO_GROUPBOX
+    case CT_GroupBox:
+        if (const QGroupBox *grb = static_cast<const QGroupBox *>(widget)) {
+            newSize = size + QSize(!grb->isFlat() ? 16 : 0, !grb->isFlat() ? 16 : 0);
+        }
+        break;
+#endif // QT_NO_GROUPBOX
+
+    case CT_RadioButton:
+    case CT_CheckBox:
+        newSize = size;
+        if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
+            bool isRadio = (type == CT_RadioButton);
+            QRect irect = visualRect(button->direction, button->rect,
+                                     proxy()->subElementRect(isRadio ? SE_RadioButtonIndicator
+                                                            : SE_CheckBoxIndicator, button, widget));
+            int h = proxy()->pixelMetric(isRadio ? PM_ExclusiveIndicatorHeight
+                                        : PM_IndicatorHeight, button, widget);
+            int margins = (!button->icon.isNull() && button->text.isEmpty()) ? 0 : 10;
+             if (d_func()->doubleControls)
+                 margins *= 2;
+            newSize += QSize(irect.right() + margins, 1);
+            newSize.setHeight(qMax(newSize.height(), h));
+        }
+        break;
+#ifndef QT_NO_COMBOBOX
+    case CT_ComboBox:
+        if (const QStyleOptionComboBox *comboBox = qstyleoption_cast<const QStyleOptionComboBox *>(option)) {
+            int fw = comboBox->frame ? proxy()->pixelMetric(PM_ComboBoxFrameWidth, option, widget) * 2 : 0;
+            newSize = QSize(newSize.width() + fw + 9, newSize.height() + fw); //Nine is a magic Number - See CommonStyle for real magic (23)
+        }
+        break;
+#endif
+#ifndef QT_NO_SPINBOX
+    case CT_SpinBox:
+        if (const QStyleOptionSpinBox *spinBox = qstyleoption_cast<const QStyleOptionSpinBox *>(option)) {
+            int fw = spinBox->frame ? proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget) * 2 : 0;
+            newSize = QSize(newSize.width() + fw-5, newSize.height() + fw-6);
+        }
+        break;
+#endif
+#ifndef QT_NO_LINEEDIT
+    case CT_LineEdit:
+        newSize += QSize(0,1);
+        break;
+#endif
+    case CT_ToolButton:
+        newSize = QSize(newSize.width() + 1, newSize.height());
+        break;
+    case CT_TabBarTab:
+        if (d_func()->doubleControls)
+            newSize = QSize(newSize.width(), 42);
+        else
+            newSize = QSize(newSize.width(), 21);
+        break;
+    case CT_HeaderSection:
+        newSize += QSize(4, 2);
+        break;
+#ifndef QT_NO_ITEMVIEWS
+#ifdef Q_WS_WINCE_WM
+    case CT_ItemViewItem:
+        if (d_func()->wm65)
+            if (d_func()->doubleControls)
+                newSize.setHeight(46);
+            else
+                newSize.setHeight(23);
+        break;
+#endif //Q_WS_WINCE_WM
+#endif //QT_NO_ITEMVIEWS
+    default:
+        break;
+    }
+    return newSize;
+}
+
+QRect QWindowsMobileStyle::subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const {
+
+    QWindowsMobileStylePrivate *d = const_cast<QWindowsMobileStylePrivate*>(d_func());
+    QRect rect = QWindowsStyle::subElementRect(element, option, widget);
+    switch (element) {
+#ifndef QT_NO_TABWIDGET
+    case SE_TabWidgetTabBar:
+        if (d->doubleControls)
+            rect.adjust(-2, 0, 2, 0);
+        else
+            rect.adjust(-2, 0, 2, 0);
+        break;
+#endif //QT_NO_TABWIDGET
+    case SE_CheckBoxFocusRect:
+        rect.adjust(1,0,-2,-1);
+        break;
+    case SE_RadioButtonFocusRect:
+        rect.adjust(1,1,-2,-2);
+        break;
+    default:
+        break;
+#ifndef QT_NO_SLIDER
+    case SE_SliderFocusRect:
+        if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(option)) {
+            rect = slider->rect;
+        }
+        break;
+    case SE_PushButtonFocusRect:
+        if (d->doubleControls)
+            rect.adjust(-1, -1, 0, 0);
+        break;
+#endif // QT_NO_SLIDER
+#ifndef QT_NO_ITEMVIEWS
+        case SE_ItemViewItemFocusRect:
+#ifdef Q_WS_WINCE_WM
+            if (d->wm65)
+                rect = QRect();
+#endif
+        break;
+#endif //QT_NO_ITEMVIEWS
+    }
+    return rect;
+}
+
+QRect QWindowsMobileStyle::subControlRect(ComplexControl control, const QStyleOptionComplex *option,
+                                          SubControl subControl, const QWidget *widget) const {
+
+    QWindowsMobileStylePrivate *d = const_cast<QWindowsMobileStylePrivate*>(d_func());
+
+    QRect rect = QCommonStyle::subControlRect(control, option, subControl, widget);
+    switch (control) {
+
+#ifndef QT_NO_SCROLLBAR
+    case CC_ScrollBar:
+        if (const QStyleOptionSlider *scrollbar = qstyleoption_cast<const QStyleOptionSlider *>(option)) {
+            int sliderButtonExtent = proxy()->pixelMetric(PM_ScrollBarExtent, scrollbar, widget);
+            float stretchFactor = 1.4f;
+            int sliderButtonExtentDir = int (sliderButtonExtent * stretchFactor);
+
+#ifdef Q_WS_WINCE_WM
+            if (d->wm65)
+            {
+                sliderButtonExtent = d->imageScrollbarHandleUp.width();
+                sliderButtonExtentDir = d->imageScrollbarHandleUp.height();
+            }
+#endif //Q_WS_WINCE_WM
+
+            int sliderlen;
+            int maxlen = ((scrollbar->orientation == Qt::Horizontal) ?
+                scrollbar->rect.width() : scrollbar->rect.height()) - (sliderButtonExtentDir * 2);
+            // calculate slider length
+            if (scrollbar->maximum != scrollbar->minimum) {
+                uint range = scrollbar->maximum - scrollbar->minimum;
+                sliderlen = (qint64(scrollbar->pageStep) * maxlen) / (range + scrollbar->pageStep);
+
+                int slidermin = proxy()->pixelMetric(PM_ScrollBarSliderMin, scrollbar, widget);
+                if (sliderlen < slidermin || range > INT_MAX / 2)
+                    sliderlen = slidermin;
+                if (sliderlen > maxlen)
+                    sliderlen = maxlen;
+            } else {
+                sliderlen = maxlen;
+            }
+            int sliderstart = sliderButtonExtentDir + sliderPositionFromValue(scrollbar->minimum,
+                scrollbar->maximum,
+                scrollbar->sliderPosition,
+                maxlen - sliderlen,
+                scrollbar->upsideDown);
+            if (d->smartphone) {
+                sliderstart -= sliderButtonExtentDir;
+                sliderlen += 2*sliderButtonExtent;
+            }
+            switch (subControl) {
+            case SC_ScrollBarSubLine:            // top/left button
+                if (scrollbar->orientation == Qt::Horizontal) {
+                    int buttonWidth = qMin(scrollbar->rect.width() / 2, sliderButtonExtentDir );
+                    rect.setRect(0, 0, buttonWidth, sliderButtonExtent);
+                } else {
+                    int buttonHeight = qMin(scrollbar->rect.height() / 2, sliderButtonExtentDir);
+                    rect.setRect(0, 0, sliderButtonExtent, buttonHeight);
+                }
+                if (d->smartphone)
+                    rect.setRect(0, 0, 0, 0);
+                break;
+            case SC_ScrollBarAddLine:            // bottom/right button
+                if (scrollbar->orientation == Qt::Horizontal) {
+                    int buttonWidth = qMin(scrollbar->rect.width()/2, sliderButtonExtentDir);
+                    rect.setRect(scrollbar->rect.width() - buttonWidth, 0, buttonWidth, sliderButtonExtent);
+                } else {
+                    int buttonHeight = qMin(scrollbar->rect.height()/2, sliderButtonExtentDir );
+                    rect.setRect(0, scrollbar->rect.height() - buttonHeight, sliderButtonExtent, buttonHeight);
+                }
+                if (d->smartphone)
+                    rect.setRect(0, 0, 0, 0);
+                break;
+            case SC_ScrollBarSubPage:            // between top/left button and slider
+                if (scrollbar->orientation == Qt::Horizontal)
+                    if (d->smartphone)
+                       rect.setRect(0, 0, sliderstart, sliderButtonExtent);
+                    else
+                      rect.setRect(sliderButtonExtent, 0, sliderstart - sliderButtonExtent, sliderButtonExtent);
+                else
+                    if (d->smartphone)
+                      rect.setRect(0, 0, sliderButtonExtent, sliderstart);
+                    else
+                      rect.setRect(0, sliderButtonExtent, sliderButtonExtent, sliderstart - sliderButtonExtent);
+                break;
+            case SC_ScrollBarAddPage:            // between bottom/right button and slider
+                if (scrollbar->orientation == Qt::Horizontal)
+                    if (d->smartphone)
+                      rect.setRect(sliderstart + sliderlen, 0,
+                                  maxlen - sliderstart - sliderlen + 2*sliderButtonExtent, sliderButtonExtent);
+                    else
+                      rect.setRect(sliderstart + sliderlen, 0,
+                                   maxlen - sliderstart - sliderlen + sliderButtonExtent, sliderButtonExtent);
+                else
+                    if (d->smartphone)
+                      rect.setRect(0, sliderstart + sliderlen, sliderButtonExtent,
+                                  maxlen - sliderstart - sliderlen + 2*sliderButtonExtent);
+                    else
+                       rect.setRect(0, sliderstart + sliderlen, sliderButtonExtent,
+                                  maxlen - sliderstart - sliderlen + sliderButtonExtent);
+                break;
+            case SC_ScrollBarGroove:
+                if (scrollbar->orientation == Qt::Horizontal)
+                    rect.setRect(sliderButtonExtent, 0, scrollbar->rect.width() - sliderButtonExtent * 2,
+                                scrollbar->rect.height());
+                else
+                    rect.setRect(0, sliderButtonExtent, scrollbar->rect.width(),
+                                scrollbar->rect.height() - sliderButtonExtent * 2);
+                break;
+            case SC_ScrollBarSlider:
+                if (scrollbar->orientation == Qt::Horizontal)
+                    rect.setRect(sliderstart, 0, sliderlen, sliderButtonExtent);
+                else
+                    rect.setRect(0, sliderstart, sliderButtonExtent, sliderlen);
+                break;
+            default:
+                break;
+            }
+            rect = visualRect(scrollbar->direction, scrollbar->rect, rect);
+        }
+        break;
+#endif // QT_NO_SCROLLBAR
+
+
+
+#ifndef QT_NO_TOOLBUTTON
+    case CC_ToolButton:
+        if (const QStyleOptionToolButton *toolButton = qstyleoption_cast<const QStyleOptionToolButton *>(option)) {
+            int mbi = proxy()->pixelMetric(PM_MenuButtonIndicator, toolButton, widget);
+            rect = toolButton->rect;
+            switch (subControl) {
+            case SC_ToolButton:
+                if ((toolButton->features
+                     & (QStyleOptionToolButton::Menu | QStyleOptionToolButton::PopupDelay))
+                    == QStyleOptionToolButton::Menu)
+                    rect.adjust(0, 0, -mbi, 0);
+                break;
+            case SC_ToolButtonMenu:
+                if ((toolButton->features
+                     & (QStyleOptionToolButton::Menu | QStyleOptionToolButton::PopupDelay))
+                    == QStyleOptionToolButton::Menu)
+                    rect.adjust(rect.width() - mbi, 1, 0, 1);
+                break;
+            default:
+                break;
+            }
+            rect = visualRect(toolButton->direction, toolButton->rect, rect);
+        }
+        break;
+#endif // QT_NO_TOOLBUTTON
+
+#ifndef QT_NO_SLIDER
+        case CC_Slider:
+        if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(option)) {
+            int tickOffset = proxy()->pixelMetric(PM_SliderTickmarkOffset, slider, widget);
+            int thickness = proxy()->pixelMetric(PM_SliderControlThickness, slider, widget);
+            switch (subControl) {
+            case SC_SliderHandle: {
+                int sliderPos = 0;
+                int len = proxy()->pixelMetric(PM_SliderLength, slider, widget);
+                bool horizontal = slider->orientation == Qt::Horizontal;
+                sliderPos = sliderPositionFromValue(slider->minimum, slider->maximum,
+                                                    slider->sliderPosition,
+                                                    (horizontal ? slider->rect.width()
+                                                                : slider->rect.height()) - len,
+                                                    slider->upsideDown);
+                if (horizontal)
+                    rect.setRect(slider->rect.x() + sliderPos, slider->rect.y() + tickOffset, len, thickness);
+                else
+                    rect.setRect(slider->rect.x() + tickOffset, slider->rect.y() + sliderPos, thickness, len);
+                break; }
+            default:
+                break;
+            }
+            rect = visualRect(slider->direction, slider->rect, rect);
+        }
+        break;
+#endif //QT_NO_SLIDER
+#ifndef QT_NO_COMBOBOX
+    case CC_ComboBox:
+        if (const QStyleOptionComboBox *comboBox = qstyleoption_cast<const QStyleOptionComboBox *>(option)) {
+        int x = comboBox->rect.x(),
+            y = comboBox->rect.y(),
+            wi = comboBox->rect.width(),
+            he = comboBox->rect.height();
+        int xpos = x;
+        int margin = comboBox->frame ? (d->doubleControls ? 2 : 1) : 0;
+        int bmarg = comboBox->frame ? (d->doubleControls ? 2 : 1) :  0;
+        if (subControl == SC_ComboBoxArrow)
+          xpos += wi - int((he - 2*bmarg)*0.9) - bmarg;
+        else
+          xpos += wi - (he - 2*bmarg) - bmarg;
+        switch (subControl) {
+        case SC_ComboBoxArrow:
+            rect.setRect(xpos, y + bmarg, he - 2*bmarg, he - 2*bmarg);
+            break;
+        case SC_ComboBoxEditField:
+            rect.setRect(x + margin, y + margin, wi - 2 * margin - int((he - 2*bmarg) * 0.84f), he - 2 * margin);
+            if (d->doubleControls) {
+                if (comboBox->editable)
+                    rect.adjust(2, 0, 0, 0);
+                else
+                    rect.adjust(4, 2, 0, -2);
+            } else if (!comboBox->editable) {
+                rect.adjust(2, 1, 0, -1);
+            }
+            break;
+        case SC_ComboBoxFrame:
+            rect = comboBox->rect;
+            break;
+        default:
+        break;
+        }
+    }
+#endif //QT_NO_COMBOBOX
+#ifndef QT_NO_SPINBOX
+    case CC_SpinBox:
+        if (const QStyleOptionSpinBox *spinBox = qstyleoption_cast<const QStyleOptionSpinBox *>(option)) {
+            QSize bs;
+            int fw = spinBox->frame ? proxy()->pixelMetric(PM_SpinBoxFrameWidth, spinBox, widget) : 0;
+            bs.setHeight(qMax(d->doubleControls ? 28 : 14, (spinBox->rect.height())));
+            // 1.6 -approximate golden mean
+            bs.setWidth(qMax(d->doubleControls ? 28 : 14, qMin((bs.height()*7/8), (spinBox->rect.width() / 8))));
+            bs = bs.expandedTo(QApplication::globalStrut());
+            int x, lx, rx;
+            x = spinBox->rect.width() - bs.width()*2;
+            lx = fw;
+            rx = x - fw;
+            switch (subControl) {
+            case SC_SpinBoxUp:
+                rect = QRect(x + proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget), 0 , bs.width(), bs.height());
+                break;
+            case SC_SpinBoxDown:
+                rect = QRect(x + bs.width(), 0, bs.width(), bs.height());
+                break;
+            case SC_SpinBoxEditField:
+                if (spinBox->buttonSymbols == QAbstractSpinBox::NoButtons) {
+                    rect = QRect(lx, fw, spinBox->rect.width() - 2*fw - 2, spinBox->rect.height() - 2*fw);
+                } else {
+                    rect = QRect(lx, fw, rx-2, spinBox->rect.height() - 2*fw);
+                }
+                break;
+            case SC_SpinBoxFrame:
+                rect = spinBox->rect;
+            default:
+                break;
+          }
+          rect = visualRect(spinBox->direction, spinBox->rect, rect);
+        }
+        break;
+#endif // Qt_NO_SPINBOX
+#ifndef QT_NO_GROUPBOX
+    case CC_GroupBox: {
+        if (const QStyleOptionGroupBox *groupBox = qstyleoption_cast<const QStyleOptionGroupBox *>(option)) {
+            switch (subControl) {
+            case SC_GroupBoxFrame:
+                // FALL THROUGH
+            case SC_GroupBoxContents: {
+                int topMargin = 0;
+                int topHeight = 0;
+                int bottomMargin = 0;
+                int labelMargin = 2;
+
+                QRect frameRect = groupBox->rect;
+                int verticalAlignment = styleHint(SH_GroupBox_TextLabelVerticalAlignment, groupBox, widget);
+                if (groupBox->text.size()) {
+                    topHeight = groupBox->fontMetrics.height();
+                    if (verticalAlignment & Qt::AlignVCenter)
+                        topMargin = topHeight+5;
+                    else if (verticalAlignment & Qt::AlignTop)
+                        topMargin = -topHeight+5;
+                }
+                if (subControl == SC_GroupBoxFrame) {
+                    frameRect.setTop(topMargin);
+                    frameRect.setBottom(frameRect.height() + bottomMargin);
+                    rect = frameRect;
+                    break;
+                }
+                int frameWidth = 0;
+                if (groupBox->text.size()) {
+                    frameWidth = proxy()->pixelMetric(PM_DefaultFrameWidth, groupBox, widget);
+                    rect = frameRect.adjusted(frameWidth, frameWidth + topHeight + labelMargin, -frameWidth, -frameWidth);
+                }
+                else {
+                   rect = groupBox->rect;
+                }
+                break;
+            }
+            case SC_GroupBoxCheckBox:
+                // FALL THROUGH
+            case SC_GroupBoxLabel: {
+                QFontMetrics fontMetrics = groupBox->fontMetrics;
+                int h = fontMetrics.height();
+                int textWidth = fontMetrics.size(Qt::TextShowMnemonic, groupBox->text + QLatin1Char(' ')).width();
+                int margX = (groupBox->features & QStyleOptionFrameV2::Flat) ? 0 : 2;
+                int margY = (groupBox->features & QStyleOptionFrameV2::Flat) ? 0 : 2;
+                rect = groupBox->rect.adjusted(margX, margY, -margX, 0);
+                if (groupBox->text.size())
+                    rect.setHeight(h);
+                else
+                  rect.setHeight(0);
+                int indicatorWidth = proxy()->pixelMetric(PM_IndicatorWidth, option, widget);
+                int indicatorSpace = proxy()->pixelMetric(PM_CheckBoxLabelSpacing, option, widget) - 1;
+                bool hasCheckBox = groupBox->subControls & QStyle::SC_GroupBoxCheckBox;
+                int checkBoxSize = hasCheckBox ? (indicatorWidth + indicatorSpace) : 0;
+
+                // Adjusted rect for label + indicatorWidth + indicatorSpace
+                QRect totalRect = alignedRect(groupBox->direction, groupBox->textAlignment,
+                                              QSize(textWidth + checkBoxSize, h), rect);
+
+                // Adjust totalRect if checkbox is set
+                if (hasCheckBox) {
+                    bool ltr = groupBox->direction == Qt::LeftToRight;
+                    int left = 2;
+                    // Adjust for check box
+                    if (subControl == SC_GroupBoxCheckBox) {
+                        int indicatorHeight = proxy()->pixelMetric(PM_IndicatorHeight, option, widget);
+                        left = ltr ? totalRect.left() : (totalRect.right() - indicatorWidth);
+                        int top = totalRect.top() + (fontMetrics.height() - indicatorHeight) / 2;
+                        totalRect.setRect(left, top, indicatorWidth, indicatorHeight);
+                    // Adjust for label
+                    } else {
+                        left = ltr ? (totalRect.left() + checkBoxSize - 2) : totalRect.left();
+                        totalRect.setRect(left, totalRect.top(),
+                                          totalRect.width() - checkBoxSize, totalRect.height());
+                    }
+                }
+                  if ((subControl== SC_GroupBoxLabel))
+                      totalRect.adjust(-2,0,6,0);
+                  rect = totalRect;
+                break;
+            }
+            default:
+                break;
+            }
+        }
+        break;
+    }
+#endif // QT_NO_GROUPBOX
+    default:
+        break;
+    }
+    return rect;
+}
+
+QPalette QWindowsMobileStyle::standardPalette() const {
+    QPalette palette (Qt::black,QColor(198, 195, 198), QColor(222, 223, 222 ),
+                      QColor(132, 130, 132), QColor(198, 195, 198), Qt::black, Qt::white, Qt::white, QColor(198, 195, 198));
+    palette.setColor(QPalette::Window, QColor(206, 223, 239));
+    palette.setColor(QPalette::Link, QColor(8,77,123)); //Alternate TextColor for labels...
+    palette.setColor(QPalette::Base, Qt::white);
+    palette.setColor(QPalette::Button, QColor(206, 223, 239));
+    palette.setColor(QPalette::Highlight, QColor(49, 146, 214));
+    palette.setColor(QPalette::Light, Qt::white);
+    palette.setColor(QPalette::Text, Qt::black);
+    palette.setColor(QPalette::ButtonText, Qt::black);
+    palette.setColor(QPalette::Midlight, QColor(222, 223, 222 ));
+    palette.setColor(QPalette::Dark, QColor(132, 130, 132));
+    palette.setColor(QPalette::Mid, QColor(189, 190, 189));
+    palette.setColor(QPalette::Shadow, QColor(0, 0, 0));
+    palette.setColor(QPalette::BrightText, QColor(33, 162, 33)); //color for ItemView checked indicator (arrow)
+    return palette;
+}
+
+
+/*! \reimp */
+void QWindowsMobileStyle::polish(QApplication *application) {
+    QWindowsStyle::polish(application);
+}
+
+/*! \reimp */
+void QWindowsMobileStyle::polish(QWidget *widget) {
+
+#ifndef QT_NO_TOOLBAR
+    if (QToolBar *toolBar = qobject_cast<QToolBar*>(widget)) {
+        QPalette pal = toolBar->palette();
+        pal.setColor(QPalette::Background, pal.button().color());
+        toolBar->setPalette(pal);
+    }
+    else
+#endif //QT_NO_TOOLBAR
+
+#ifndef QT_NO_PROPERTIES
+        if (QAbstractButton *pushButton = qobject_cast<QAbstractButton*>(widget)) {
+            QVariant oldFont = widget->property("_q_styleWindowsMobileFont");
+            if (!oldFont.isValid()) {
+                QFont f = pushButton->font();
+                widget->setProperty("_q_styleWindowsMobileFont", f);
+                f.setBold(true);
+                int p = f.pointSize();
+                if (p > 2)
+                    f.setPointSize(p-1);
+                pushButton->setFont(f);
+            }
+        }
+#endif
+        QWindowsStyle::polish(widget);
+}
+
+void QWindowsMobileStyle::unpolish(QWidget *widget)
+{
+#ifndef QT_NO_PROPERTIES
+    if (QAbstractButton *pushButton = qobject_cast<QAbstractButton*>(widget)) {
+        QVariant oldFont = widget->property("_q_styleWindowsMobileFont");
+        if (oldFont.isValid()) {
+            widget->setFont(qVariantValue<QFont>(oldFont));
+        widget->setProperty("_q_styleWindowsMobileFont", QVariant());
+        }
+    }
+#endif
+    QWindowsStyle::unpolish(widget);
+}
+
+void QWindowsMobileStyle::unpolish(QApplication *app)
+{
+    QWindowsStyle::unpolish(app);
+}
+
+/*! \reimp */
+void QWindowsMobileStyle::polish(QPalette &palette) {
+    QWindowsStyle::polish(palette);
+}
+
+int QWindowsMobileStyle::pixelMetric(PixelMetric pm, const QStyleOption *opt, const QWidget *widget) const {
+
+    QWindowsMobileStylePrivate *d = const_cast<QWindowsMobileStylePrivate*>(d_func());
+    int ret;
+
+    switch (pm) {
+    case PM_DefaultTopLevelMargin:
+        ret =0;
+        break;
+    case PM_DefaultLayoutSpacing:
+        d->doubleControls ? ret = 8 : ret = 4;
+        break;
+    case PM_HeaderMargin:
+        d->doubleControls ? ret = 2 : ret = 1;
+        break;
+    case PM_DefaultChildMargin:
+        d->doubleControls ? ret = 10 : ret = 5;
+        break;
+    case PM_ToolBarSeparatorExtent:
+        d->doubleControls ? ret = 6 : ret = 3;
+        break;
+    case PM_DefaultFrameWidth:
+        d->doubleControls ? ret = 2 : ret = 1;
+        break;
+    case PM_MenuVMargin:
+        ret = 1;
+        break;
+    case PM_MenuHMargin:
+        ret = 1;
+        break;
+    case PM_MenuButtonIndicator:
+        ret = d->doubleControls ? 24 : 14;
+        break;
+    case PM_ComboBoxFrameWidth:
+        d->doubleControls ? ret = 2 : ret = 1;
+        break;
+    case PM_SpinBoxFrameWidth:
+        d->doubleControls ? ret = 2 : ret = 1;
+        break;
+    case PM_ButtonDefaultIndicator:
+    case PM_ButtonShiftHorizontal:
+    case PM_ButtonShiftVertical:
+        d->doubleControls ? ret = 2 : ret = 1;
+        break;
+#ifndef QT_NO_TABBAR
+   case PM_TabBarTabShiftHorizontal:
+        ret = 0;
+        break;
+    case PM_TabBarTabShiftVertical:
+        ret = 0;
+        break;
+#endif
+    case PM_MaximumDragDistance:
+        ret = 60;
+        break;
+   case PM_TabBarTabVSpace:
+        ret = d->doubleControls ? 12 : 6;
+        break;
+   case PM_TabBarBaseHeight:
+       ret = 0;
+       break;
+      case PM_IndicatorWidth:
+          ret = d->doubleControls ? windowsMobileIndicatorSize * 2 : windowsMobileIndicatorSize;
+        break;
+    case PM_IndicatorHeight:
+        ret = d->doubleControls ? windowsMobileIndicatorSize * 2 : windowsMobileIndicatorSize;
+        break;
+    case PM_ExclusiveIndicatorWidth:
+        ret = d->doubleControls ? windowsMobileExclusiveIndicatorSize * 2 + 4: windowsMobileExclusiveIndicatorSize + 2;
+        break;
+    case PM_ExclusiveIndicatorHeight:
+        ret = d->doubleControls ? windowsMobileExclusiveIndicatorSize * 2 + 4: windowsMobileExclusiveIndicatorSize + 2;
+        break;
+#ifndef QT_NO_SLIDER
+    case PM_SliderLength:
+        ret = d->doubleControls ? 16 : 8;
+        break;
+    case PM_FocusFrameHMargin:
+        ret = d->doubleControls ? 1 : 2;
+        break;
+    case PM_SliderThickness:
+        ret = d->doubleControls ? windowsMobileSliderThickness * 2: windowsMobileSliderThickness;
+        break;
+     case PM_TabBarScrollButtonWidth:
+         ret = d->doubleControls ? 14 * 2 : 18;
+      case PM_CheckBoxLabelSpacing:
+      case PM_RadioButtonLabelSpacing:
+        ret = d->doubleControls ? 6 * 2 : 6;
+        break;
+        // Returns the number of pixels to use for the business part of the
+        // slider (i.e., the non-tickmark portion). The remaining space is shared
+        // equally between the tickmark regions.
+    case PM_SliderControlThickness:
+        if (const QStyleOptionSlider *sl = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
+            int space = (sl->orientation == Qt::Horizontal) ? sl->rect.height() : sl->rect.width();
+            int ticks = sl->tickPosition;
+            int n = 0;
+            if (ticks & QSlider::TicksAbove)
+                ++n;
+            if (ticks & QSlider::TicksBelow)
+                ++n;
+            if (!n) {
+                ret = space;
+                break;
+            }
+            int thick = 8;
+            if (ticks != QSlider::TicksBothSides && ticks != QSlider::NoTicks)
+                thick += proxy()->pixelMetric(PM_SliderLength, sl, widget) / 4;
+
+            space -= thick;
+            if (space > 0)
+                thick += (space * 2) / (n + 2);
+            ret = thick;
+        } else {
+            ret = 0;
+        }
+        break;
+#endif // QT_NO_SLIDER
+#ifndef QT_NO_MENU
+    case PM_SmallIconSize:
+        d->doubleControls ? ret = windowsMobileIconSize * 2 : ret = windowsMobileIconSize;
+        break;
+    case PM_ButtonMargin:
+        d->doubleControls ? ret = 8 : ret = 4;
+        break;
+    case PM_LargeIconSize:
+        d->doubleControls ? ret = 64 : ret = 32;
+        break;
+    case PM_IconViewIconSize:
+        ret = proxy()->pixelMetric(PM_LargeIconSize, opt, widget);
+        break;
+    case PM_ToolBarIconSize:
+        d->doubleControls ? ret = 2 * windowsMobileIconSize : ret = windowsMobileIconSize;
+        break;
+    case PM_DockWidgetTitleMargin:
+        ret = 2;
+        break;
+#if defined(Q_WS_WIN)
+#else
+    case PM_DockWidgetFrameWidth:
+        ret = 4;
+        break;
+#endif // Q_WS_WIN
+    break;
+#endif // QT_NO_MENU
+
+   case PM_TitleBarHeight:
+        d->doubleControls ? ret = 42 : ret = 21;
+        break;
+   case PM_ScrollBarSliderMin:
+#ifdef Q_WS_WINCE_WM
+       if (d->wm65)
+#else
+       if (false)
+#endif
+       {
+           d->doubleControls ? ret = 68 : ret = 34;
+       } else {
+           d->doubleControls ? ret = 36 : ret = 18;
+       }
+        break;
+   case PM_ScrollBarExtent: {
+       
+       if (d->smartphone)
+           ret = 9;
+       else
+         d->doubleControls ? ret = 25 : ret = 13;
+
+#ifdef Q_WS_WINCE_WM
+       if (d->wm65)
+#else
+       if (false)
+#endif
+       {
+           d->doubleControls ? ret = 26 : ret = 13;
+           break;
+       }
+
+#ifndef QT_NO_SCROLLAREA
+       //Check if the scrollbar is part of an abstractItemView and set size according
+       if (widget)
+       if (QWidget *parent = widget->parentWidget())
+           if (qobject_cast<QAbstractScrollArea *>(parent->parentWidget()))
+               if (d->smartphone)
+                 ret = 8;
+               else
+                 d->doubleControls ? ret = 24 : ret = 12;
+#endif
+       }
+       break;
+    case PM_SplitterWidth:
+        ret = qMax(4, QApplication::globalStrut().width());
+        break;
+
+#if defined(Q_WS_WIN)
+    case PM_MDIFrameWidth:
+        ret = 1;
+        break;
+#endif
+    case PM_ToolBarExtensionExtent:
+        d->doubleControls ? ret = 32 : ret = 16;
+        break;
+    case PM_ToolBarItemMargin:
+        d->doubleControls ? ret = 2 : ret = 1;
+        break;
+    case PM_ToolBarItemSpacing:
+        d->doubleControls ? ret = 2 : ret = 1;
+        break;
+    case PM_ToolBarHandleExtent:
+        d->doubleControls ? ret = 16 : ret = 8;
+        break;
+    case PM_ButtonIconSize:
+        d->doubleControls ? ret = 32 : ret = 16;
+        break;
+    case PM_TextCursorWidth:
+        ret = 2;
+        break;
+    case PM_TabBar_ScrollButtonOverlap:
+        ret = 0;
+        break;
+    default:
+        ret = QWindowsStyle::pixelMetric(pm, opt, widget);
+        break;
+    }
+    return ret;
+}
+
+int QWindowsMobileStyle::styleHint(StyleHint hint, const QStyleOption *opt, const QWidget *widget,
+                                   QStyleHintReturn *returnData) const {
+
+    int ret;
+    switch (hint) {
+    case SH_Menu_MouseTracking:
+    case SH_ComboBox_ListMouseTracking:
+    case SH_EtchDisabledText:
+        ret = 0;
+        break;
+    case SH_DitherDisabledText:
+        ret = 0;
+        break;
+    case SH_ItemView_ShowDecorationSelected:
+        ret = 0;
+        break;
+#ifndef QT_NO_TABWIDGET
+    case SH_TabWidget_DefaultTabPosition:
+        ret = QTabWidget::South;
+        break;
+#endif
+    case SH_ToolBar_Movable:
+        ret = false;
+        break;
+    case SH_ScrollBar_ContextMenu:
+        ret = false;
+        break;
+    case SH_MenuBar_AltKeyNavigation:
+        ret = false;
+        break;
+    case SH_RequestSoftwareInputPanel:
+        ret = RSIP_OnMouseClick;
+        break;
+    default:
+          ret = QWindowsStyle::styleHint(hint, opt, widget, returnData);
+       break;
+    }
+    return ret;
+}
+
+QPixmap QWindowsMobileStyle::standardPixmap(StandardPixmap sp, const QStyleOption *option,
+                                     const QWidget *widget) const {
+
+    QWindowsMobileStylePrivate *d = const_cast<QWindowsMobileStylePrivate*>(d_func());
+    switch (sp) {
+#ifndef QT_NO_IMAGEFORMAT_XPM
+    case SP_ToolBarHorizontalExtensionButton: {
+        QPixmap pixmap = QCommonStyle::standardPixmap(sp, option, widget);
+        if (d->doubleControls)
+            return pixmap.scaledToHeight(pixmap.height() * 2);
+        else
+          return pixmap;
+     }
+     case SP_TitleBarMaxButton:
+     case SP_TitleBarCloseButton:
+     case SP_TitleBarNormalButton:
+     case SP_TitleBarMinButton: {
+         QImage image;
+         switch (sp) {
+            case SP_TitleBarMaxButton:
+                image = d->imageMaximize;
+            break;
+            case SP_TitleBarCloseButton:
+                image = d->imageClose;
+            break;
+            case SP_TitleBarNormalButton:
+                image = d->imageNormalize;
+            break;
+            case SP_TitleBarMinButton:
+                image = d->imageMinimize;
+            break;
+            default:
+            break;
+         }
+         if (option) {
+             image.setColor(0, option->palette.shadow().color().rgba());
+             image.setColor(1, option->palette.highlight().color().rgba());
+             image.setColor(2, option->palette.highlight().color().lighter(150).rgba());
+             image.setColor(3, option->palette.highlightedText().color().rgba());
+         }
+
+         return QPixmap::fromImage(image);
+     }
+
+#endif
+    default:
+        return QWindowsStyle::standardPixmap(sp, option, widget);
+    }
+}
+
+QPixmap QWindowsMobileStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap,
+                                                 const QStyleOption *option) const {
+
+    switch (iconMode) {
+    case QIcon::Selected: {
+#ifdef Q_WS_WINCE_WM
+        if (d_func()->wm65)
+            return pixmap;
+#endif //Q_WS_WINCE_WM
+        QImage img = pixmap.toImage().convertToFormat(QImage::Format_ARGB32);
+        int imgh = img.height();
+        int imgw = img.width();
+        for (int y = 0; y < imgh; y += 2) {
+            for (int x = 0; x < imgw; x += 2) {
+                QColor c = option->palette.highlight().color().rgb();
+                c.setAlpha( qAlpha(img.pixel(x, y)));
+                QRgb pixel = c.rgba();
+                img.setPixel(x, y, pixel);
+            }
+        }
+        return QPixmap::fromImage(img);
+    }
+    default:
+    break;
+    }
+    return QWindowsStyle::generatedIconPixmap(iconMode, pixmap, option);
+}
+
+
+bool QWindowsMobileStyle::doubleControls() const {
+
+    QWindowsMobileStylePrivate *d = const_cast<QWindowsMobileStylePrivate*>(d_func());
+
+    return d->doubleControls;
+}
+
+void QWindowsMobileStyle::setDoubleControls(bool doubleControls) {
+
+   QWindowsMobileStylePrivate *d = const_cast<QWindowsMobileStylePrivate*>(d_func());
+
+   d->doubleControls = doubleControls;
+}
+
+QT_END_NAMESPACE
+
+#endif // QT_NO_STYLE_WINDOWSMOBILE
+