clt debugger
Review URL: https://codereview.appspot.com/6267043
git-svn-id: http://skia.googlecode.com/svn/trunk@4404 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/debugger/QT/SkCanvasWidget.cpp b/debugger/QT/SkCanvasWidget.cpp
new file mode 100644
index 0000000..6e82656
--- /dev/null
+++ b/debugger/QT/SkCanvasWidget.cpp
@@ -0,0 +1,73 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#include "SkPicture.h"
+#include "SkStream.h"
+#include "SkCanvasWidget.h"
+#include <iostream>
+
+SkCanvasWidget::SkCanvasWidget(QWidget *parent) :
+ QWidget(parent) {
+
+ fBitmap = new SkBitmap();
+ fBitmap->setConfig(SkBitmap::kARGB_8888_Config, 800, 800);
+ fBitmap->allocPixels();
+ fBitmap->eraseColor(0);
+ fDevice = new SkDevice(*fBitmap);
+ fCanvas = new SkCanvas(fDevice);
+ fDebugCanvas = new SkDebugCanvas();
+ this->setStyleSheet("QWidget {background-color: white; border: 1px solid #cccccc;}");
+}
+
+SkCanvasWidget::~SkCanvasWidget() {}
+
+void SkCanvasWidget::drawTo(int index) {
+ delete fCanvas;
+ fCanvas = new SkCanvas(fDevice);
+ fDebugCanvas->drawTo(fCanvas, index+1);
+ this->update();
+}
+
+void SkCanvasWidget::loadPicture(QString filename) {
+ SkStream *stream = new SkFILEStream(filename.toAscii());
+ SkPicture *picture = new SkPicture(stream);
+
+ delete fDebugCanvas;
+ fDebugCanvas = new SkDebugCanvas();
+
+ picture->draw(fDebugCanvas);
+ fDebugCanvas->draw(fCanvas);
+
+ /* NOTE(chudy): This was a test to determine if the canvas size is accurately
+ * saved in the bounds of the recorded picture. It is not. Everyone of the
+ * sample GM images is 1000x1000. Even the one that claims it is
+ * 2048x2048.
+ std::cout << "Width: " << picture->width();
+ std::cout << " Height: " << picture->height() << std::endl; */
+
+ /* NOTE(chudy): Updated style sheet without a background specified to
+ * draw over our SkCanvas. */
+ this->setStyleSheet("QWidget {border: 1px solid #cccccc;}");
+ this->update();
+}
+
+void SkCanvasWidget::paintEvent(QPaintEvent *event) {
+ QPainter painter(this);
+ QStyleOption opt;
+ opt.init(this);
+
+ if (fBitmap) {
+ const QPoint origin(0,0);
+ QImage image((uchar *)fBitmap->getPixels(), fBitmap->width(), fBitmap->height(), QImage::Format_ARGB32_Premultiplied);
+ painter.drawImage(origin,image);
+ }
+
+ style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this);
+ painter.end();
+}
diff --git a/debugger/QT/SkCanvasWidget.h b/debugger/QT/SkCanvasWidget.h
new file mode 100644
index 0000000..a7e1c8a
--- /dev/null
+++ b/debugger/QT/SkCanvasWidget.h
@@ -0,0 +1,118 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef SKCANVASWIDGET_H
+#define SKCANVASWIDGET_H
+
+#include "SkBitmap.h"
+#include "SkCanvas.h"
+#include "SkDebugCanvas.h"
+#include "SkDevice.h"
+#include "SkPicture.h"
+#include <QApplication>
+#include <QtGui>
+#include <QWidget>
+
+/** \class SkCanvasWidget
+
+ The QtWidget encompasses all skia screen drawing elements. It initializes
+ an SkBitmap in memory that our SkCanvas draws to directly in memory.
+ Then using QImage and QPainter we draw those pixels on the screen in
+ this widget.
+ */
+class SkCanvasWidget : public QWidget {
+ Q_OBJECT
+
+public:
+ /**
+ Constructs a widget with the specified parent for layout purposes.
+ @param parent The parent container of this widget
+ */
+ SkCanvasWidget(QWidget *parent);
+
+ ~SkCanvasWidget();
+
+ /**
+ Executes all saved draw commands up to the specified index.
+ @param index The position of the command we draw up to.
+ */
+ void drawTo(int index);
+
+ /**
+ Returns the height of the bitmap.
+ */
+ int getBitmapHeight() { return fBitmap->height(); }
+
+
+ /*
+ Returns the width of the bitmap.
+ */
+ int getBitmapWidth() { return fBitmap->width(); }
+
+ /**
+ TODO(chudy): Refactor into a struct of char**
+ Returns parameter information about the ith draw command.
+ @param: i The index of the draw command we are accessing
+ */
+ std::vector<std::string>* getCurrentCommandInfo(int i) {
+ return fDebugCanvas->getCommandInfoAt(i);
+ }
+
+ /**
+ Returns a vector of strings with all the current canvas draw
+ commands.
+ */
+ std::vector<std::string>* getDrawCommands() {
+ return fDebugCanvas->getDrawCommandsAsStrings();
+ }
+
+ /**
+ Loads a skia picture located at filename.
+ @param filename The name of the file we are loading.
+ */
+ void loadPicture(QString filename);
+
+ /**
+ Toggles the visibility / execution of the draw command at index i.
+ */
+ void toggleCommand(int index) {
+ fDebugCanvas->toggleCommand(index);
+ }
+
+ /**
+ Toggles the visibility / execution of the draw command at index i with
+ the value of toggle.
+ */
+ void toggleCommand(int index, bool toggle) {
+ fDebugCanvas->toggleCommand(index, toggle);
+ }
+
+ /**
+ Toggles drawing filter on all drawing commands previous to current.
+ */
+ void toggleCurrentCommandFilter(bool toggle) {
+ fDebugCanvas->toggleFilter(toggle);
+ }
+
+
+protected:
+ /**
+ Draws the current state of the widget.
+ @param event The event intercepted by Qt
+ */
+ void paintEvent(QPaintEvent *event);
+
+private:
+ SkBitmap* fBitmap;
+ SkCanvas* fCanvas;
+ SkDebugCanvas* fDebugCanvas;
+ SkDevice* fDevice;
+};
+
+#endif
diff --git a/debugger/QT/SkDebuggerGUI.cpp b/debugger/QT/SkDebuggerGUI.cpp
new file mode 100644
index 0000000..9c98f48
--- /dev/null
+++ b/debugger/QT/SkDebuggerGUI.cpp
@@ -0,0 +1,593 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include <iostream>
+#include "SkDebuggerGUI.h"
+#include <QListWidgetItem>
+
+SkDebuggerGUI::SkDebuggerGUI(QWidget *parent) :
+ QMainWindow(parent) {
+
+ setupUi(this);
+ connect(fListWidget, SIGNAL(currentItemChanged(QListWidgetItem*,
+ QListWidgetItem*)), this, SLOT(registerListClick(QListWidgetItem *)));
+ connect(fActionOpen, SIGNAL(triggered()), this, SLOT(openFile()));
+ connect(fActionDirectory, SIGNAL(triggered()), this, SLOT(toggleDirectory()));
+ connect(fDirectoryWidget, SIGNAL(currentItemChanged(QListWidgetItem*,
+ QListWidgetItem*)), this, SLOT(loadFile(QListWidgetItem *)));
+ connect(fActionDelete, SIGNAL(triggered()), this, SLOT(actionDelete()));
+ connect(fActionReload, SIGNAL(triggered()), this, SLOT(actionReload()));
+ connect(fListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(toggleBreakpoint()));
+ connect(fActionRewind, SIGNAL(triggered()), this, SLOT(actionRewind()));
+ connect(fActionPlay, SIGNAL(triggered()), this, SLOT(actionPlay()));
+ connect(fActionStepBack, SIGNAL(triggered()), this, SLOT(actionStepBack()));
+ connect(fActionStepForward, SIGNAL(triggered()), this, SLOT(actionStepForward()));
+ connect(fActionBreakpoint, SIGNAL(triggered()), this, SLOT(actionBreakpoints()));
+ connect(fActionInspector, SIGNAL(triggered()), this, SLOT(actionInspector()));
+ connect(fFilter, SIGNAL(activated(QString)), this, SLOT(toggleFilter(QString)));
+ connect(fActionCancel, SIGNAL(triggered()), this, SLOT(actionCancel()));
+ connect(fActionClose, SIGNAL(triggered()), this, SLOT(actionClose()));
+ connect(fActionSettings, SIGNAL(triggered()), this, SLOT(actionSettings()));
+ connect(fActionToggleCurrentCommand, SIGNAL(triggered()), this, SLOT(actionCommandFilter()));
+}
+
+SkDebuggerGUI::~SkDebuggerGUI() {
+}
+
+void SkDebuggerGUI::actionBreakpoints() {
+ if(!fBreakpointsActivated) {
+ fBreakpointsActivated = true;
+ } else {
+ fBreakpointsActivated = false;
+ }
+
+ for(int row=0; row<fListWidget->count(); row++) {
+ QListWidgetItem *item = fListWidget->item(row);
+
+ if (item->checkState() == Qt::Unchecked && fBreakpointsActivated) {
+ item->setHidden(true);
+ } else {
+ item->setHidden(false);
+ }
+ }
+}
+
+void SkDebuggerGUI::actionCancel() {
+ for(int row=0; row<fListWidget->count(); row++) {
+ fListWidget->item(row)->setHidden(false);
+ }
+}
+
+void SkDebuggerGUI::actionCommandFilter() {
+ if (fActionToggleCurrentCommand->text() == "Show Filter") {
+ fCanvasWidget->toggleCurrentCommandFilter(true);
+ fActionToggleCurrentCommand->setText("Hide Filter");
+ } else {
+ fActionToggleCurrentCommand->setText("Show Filter");
+ fCanvasWidget->toggleCurrentCommandFilter(false);
+ }
+
+ fCanvasWidget->drawTo(fListWidget->currentRow());
+
+}
+
+void SkDebuggerGUI::actionClose() {
+ this->close();
+}
+
+void SkDebuggerGUI::actionDelete() {
+ QListWidgetItem* item = fListWidget->currentItem();
+
+ if(item->data(Qt::UserRole + 2) == true) {
+ item->setData(Qt::UserRole + 2, false);
+ item->setData(Qt::DecorationRole,
+ QPixmap(":/images/Icons/delete.png"));
+
+ } else {
+ item->setData(Qt::UserRole + 2, true);
+ if(item->checkState() == Qt::Unchecked) {
+ item->setData(Qt::DecorationRole,
+ QPixmap(":/images/Icons/blank.png"));
+ } else {
+ item->setData(Qt::DecorationRole,
+ QPixmap(":/images/Icons/breakpoint_16x16.png"));
+ }
+
+ }
+
+ int currentRow = fListWidget->currentRow();
+
+ // NOTE(chudy): Forces a redraw up to current selected command.
+ if (fCanvasWidget) {
+ fCanvasWidget->toggleCommand(currentRow);
+ fCanvasWidget->drawTo(currentRow);
+ }
+}
+
+void SkDebuggerGUI::actionInspector() {
+ if (fInspectorWidget->isHidden()) {
+ fInspectorWidget->setHidden(false);
+ } else {
+ fInspectorWidget->setHidden(true);
+ }
+}
+
+void SkDebuggerGUI::actionPlay() {
+ for(int row=fListWidget->currentRow()+1; row<fListWidget->count(); row++) {
+ QListWidgetItem *item = fListWidget->item(row);
+ if (item->checkState() == Qt::Checked) {
+ fListWidget->setCurrentItem(item);
+ return;
+ }
+ }
+
+ fListWidget->setCurrentRow(fListWidget->count() - 1);
+}
+
+void SkDebuggerGUI::actionReload() {
+ for(int row=0; row<fListWidget->count(); row++) {
+ QListWidgetItem* item = fListWidget->item(row);
+ item->setData(Qt::UserRole + 2, true);
+ item->setData(Qt::DecorationRole,
+ QPixmap(":/images/Icons/blank.png"));
+ fCanvasWidget->toggleCommand(row, true);
+ }
+
+ fCanvasWidget->drawTo(fListWidget->currentRow());
+}
+
+void SkDebuggerGUI::actionRewind() {
+ /* NOTE(chudy): Hack. All skps opened so far start with save and concat
+ * commands that don't clear or reset the canvas. */
+ fListWidget->setCurrentRow(2);
+}
+
+void SkDebuggerGUI::actionSettings() {
+ if (fSettingsWidget->isHidden()) {
+ fSettingsWidget->setHidden(false);
+ } else {
+ fSettingsWidget->setHidden(true);
+ }
+}
+
+void SkDebuggerGUI::actionStepBack() {
+ int currentRow = fListWidget->currentRow();
+ if (currentRow != 0) {
+ fListWidget->setCurrentRow(currentRow - 1);
+ }
+}
+
+void SkDebuggerGUI::actionStepForward() {
+ int currentRow = fListWidget->currentRow();
+
+ QString curRow = QString::number(currentRow);
+ QString curCount = QString::number(fListWidget->count());
+
+
+ if (currentRow < fListWidget->count() - 1) {
+ fListWidget->setCurrentRow(currentRow + 1);
+ }
+}
+
+void SkDebuggerGUI::loadFile(QListWidgetItem *item) {
+ if (fDirectoryWidgetActive) {
+ QString fileName;
+ fileName.append(fPath);
+ fileName.append("/");
+ fileName.append(item->text());
+ loadPicture(fileName);
+ }
+}
+
+void SkDebuggerGUI::openFile() {
+ QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
+ "",
+ tr("Files (*.*)"));
+ fDirectoryWidgetActive = false;
+ if (!fileName.isNull()) {
+
+ QFileInfo pathInfo(fileName);
+ fPath = pathInfo.path();
+ loadPicture(fileName);
+ setupDirectoryWidget();
+ }
+ /* TODO(chudy): Need something here that sets the active directory
+ * widget selection to what was opened. OR we can just add a new function
+ * to change the directory (would be much easier).
+ */
+ fDirectoryWidgetActive = true;
+}
+
+void SkDebuggerGUI::registerListClick(QListWidgetItem *item) {
+ int currentRow = fListWidget->currentRow();
+
+ // NOTE(chudy): Prevents initialization errors.
+ if (fCanvasWidget) {
+ fCanvasWidget->drawTo(currentRow);
+ std::vector<std::string> *v =
+ fCanvasWidget->getCurrentCommandInfo(currentRow);
+
+
+ /* TODO(chudy): Add command type before parameters. Rename v
+ * to something more informative. */
+ if (v) {
+ std::vector<std::string>::iterator it;
+
+ QString info;
+ info.append("<b>Parameters: </b><br/>");
+ for (it = v->begin(); it != v->end(); ++it) {
+ info.append(QString((*it).c_str()));
+ info.append("<br/>");
+ }
+ fInspectorWidget->setDetailText(info);
+ }
+ }
+}
+
+void SkDebuggerGUI::toggleBreakpoint() {
+ QListWidgetItem* item = fListWidget->currentItem();
+ if (item->checkState() == Qt::Unchecked) {
+ item->setCheckState(Qt::Checked);
+
+
+ /* NOTE(chudy): If the command is toggled as hidden that takes
+ * precendence over the breakpoint icon.
+ */
+ if(item->data(Qt::UserRole + 2) == false) {
+ item->setData(Qt::DecorationRole,
+ QPixmap(":/images/Icons/delete.png"));
+ } else {
+ item->setData(Qt::DecorationRole,
+ QPixmap(":/images/Icons/breakpoint_16x16.png"));
+ }
+
+ } else {
+
+ /* NOTE(chudy): When untoggling as a breakpoint if the command
+ * is hidden then the portraying icon should remain the delete icon.
+ */
+ item->setCheckState(Qt::Unchecked);
+
+ if(item->data(Qt::UserRole + 2) == false) {
+ item->setData(Qt::DecorationRole,
+ QPixmap(":/images/Icons/delete.png"));
+ } else {
+ item->setData(Qt::DecorationRole,
+ QPixmap(":/images/Icons/blank.png"));
+ }
+
+ }
+}
+
+void SkDebuggerGUI::toggleDirectory() {
+ if (fDirectoryWidget->isHidden()) {
+ fDirectoryWidget->setHidden(false);
+ } else {
+ fDirectoryWidget->setHidden(true);
+ }
+}
+
+void SkDebuggerGUI::toggleFilter(QString string) {
+ for(int row=0; row<fListWidget->count(); row++) {
+ QListWidgetItem *item = fListWidget->item(row);
+ if (item->text() == string) {
+ item->setHidden(false);
+ } else {
+ item->setHidden(true);
+ }
+ }
+}
+
+void SkDebuggerGUI::setupUi(QMainWindow *SkDebuggerGUI) {
+ QIcon windowIcon;
+ windowIcon.addFile(QString::fromUtf8(":/images/Icons/skia.png"), QSize(), QIcon::Normal, QIcon::Off);
+ SkDebuggerGUI->setObjectName(QString::fromUtf8("SkDebuggerGUI"));
+ SkDebuggerGUI->resize(1200, 1000);
+ SkDebuggerGUI->setWindowIcon(windowIcon);
+
+ QIcon open;
+ open.addFile(QString::fromUtf8(":/images/Icons/package-br32.png"), QSize(), QIcon::Normal, QIcon::Off);
+ fActionOpen = new QAction(SkDebuggerGUI);
+ fActionOpen->setObjectName(QString::fromUtf8("actionOpen"));
+ fActionOpen->setIcon(open);
+
+ QIcon directory;
+ directory.addFile(QString::fromUtf8(":/images/Icons/drawer-open-icon.png"), QSize(), QIcon::Normal, QIcon::Off);
+ fActionDirectory = new QAction(SkDebuggerGUI);
+ fActionDirectory->setObjectName(QString::fromUtf8("actionDirectory"));
+ fActionDirectory->setIcon(directory);
+ fActionDirectory->setText("Toggle Directory");
+
+ QIcon rewind;
+ rewind.addFile(QString::fromUtf8(":/images/Icons/rewind.png"), QSize(), QIcon::Normal, QIcon::Off);
+ fActionRewind = new QAction(SkDebuggerGUI);
+ fActionRewind->setObjectName(QString::fromUtf8("actionRewind"));
+ fActionRewind->setIcon(rewind);
+ fActionRewind->setText("Rewind");
+
+ QIcon stepBack;
+ stepBack.addFile(QString::fromUtf8(":/images/Icons/back.png"), QSize(), QIcon::Normal, QIcon::Off);
+ fActionStepBack = new QAction(SkDebuggerGUI);
+ fActionStepBack->setObjectName(QString::fromUtf8("actionStepBack"));
+ fActionStepBack->setIcon(stepBack);
+ fActionStepBack->setText("Step Back");
+
+ QIcon stepForward;
+ stepForward.addFile(QString::fromUtf8(":/images/Icons/go-next.png"), QSize(), QIcon::Normal, QIcon::Off);
+ fActionStepForward = new QAction(SkDebuggerGUI);
+ fActionStepForward->setObjectName(QString::fromUtf8("actionStepBack"));
+ fActionStepForward->setIcon(stepForward);
+ fActionStepForward->setText("Step Forward");
+
+ QIcon play;
+ play.addFile(QString::fromUtf8(":/images/Icons/play.png"), QSize(), QIcon::Normal, QIcon::Off);
+ fActionPlay = new QAction(SkDebuggerGUI);
+ fActionPlay->setObjectName(QString::fromUtf8("actionPlay"));
+ fActionPlay->setIcon(play);
+ fActionPlay->setText("Play");
+
+ QIcon breakpoint;
+ breakpoint.addFile(QString::fromUtf8(":/images/Icons/breakpoint.png"), QSize(), QIcon::Normal, QIcon::Off);
+ fActionBreakpoint = new QAction(SkDebuggerGUI);
+ fActionBreakpoint->setObjectName(QString::fromUtf8("actionBreakpoint"));
+ fActionBreakpoint->setIcon(breakpoint);
+ fActionBreakpoint->setText("Show Breakpoints");
+
+ QIcon inspector;
+ inspector.addFile(QString::fromUtf8(":/images/Icons/inspector.png"), QSize(), QIcon::Normal, QIcon::Off);
+ fActionInspector = new QAction(SkDebuggerGUI);
+ fActionInspector->setObjectName(QString::fromUtf8("actionInspector"));
+ fActionInspector->setIcon(inspector);
+ fActionInspector->setText("Inspector");
+
+ QIcon deleteIcon;
+ deleteIcon.addFile(QString::fromUtf8(":/images/Icons/delete.png"), QSize(), QIcon::Normal, QIcon::Off);
+ fActionDelete = new QAction(SkDebuggerGUI);
+ fActionDelete->setObjectName(QString::fromUtf8("actionDelete"));
+ fActionDelete->setIcon(deleteIcon);
+ fActionDelete->setText("Delete Command");
+
+ QIcon reload;
+ reload.addFile(QString::fromUtf8(":/images/Icons/reload.png"), QSize(), QIcon::Normal, QIcon::Off);
+ fActionReload = new QAction(SkDebuggerGUI);
+ fActionReload->setObjectName(QString::fromUtf8("actionReload"));
+ fActionReload->setIcon(reload);
+ fActionReload->setText("Reset Picture");
+
+ QIcon settings;
+ settings.addFile(QString::fromUtf8(":/images/Icons/settings.png"), QSize(), QIcon::Normal, QIcon::Off);
+ fActionSettings = new QAction(SkDebuggerGUI);
+ fActionSettings->setObjectName(QString::fromUtf8("actionSettings"));
+ fActionSettings->setIcon(settings);
+ fActionSettings->setText("Settings");
+
+ QIcon cancel;
+ cancel.addFile(QString::fromUtf8(":/images/Icons/reset.png"), QSize(), QIcon::Normal, QIcon::Off);
+ fActionCancel = new QAction(SkDebuggerGUI);
+ fActionCancel->setObjectName(QString::fromUtf8("actionCancel"));
+ fActionCancel->setIcon(cancel);
+ fActionCancel->setText("Clear Filter");
+
+ fCentralWidget = new QWidget(SkDebuggerGUI);
+ fCentralWidget->setObjectName(QString::fromUtf8("centralWidget"));
+
+ fHorizontalLayout = new QHBoxLayout(fCentralWidget);
+ fHorizontalLayout->setSpacing(6);
+ fHorizontalLayout->setContentsMargins(11, 11, 11, 11);
+ fHorizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
+
+ fVerticalLayout = new QVBoxLayout();
+ fVerticalLayout->setSpacing(6);
+ fVerticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+
+ fVerticalLayout_2 = new QVBoxLayout();
+ fVerticalLayout_2->setSpacing(6);
+ fVerticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
+
+ fListWidget = new QListWidget(fCentralWidget);
+ fListWidget->setItemDelegate(new SkListWidget(fListWidget));
+ fListWidget->setObjectName(QString::fromUtf8("listWidget"));
+ fListWidget->setMaximumWidth(250);
+
+ fInspectorWidget = new SkInspectorWidget();
+ fInspectorWidget->setObjectName(QString::fromUtf8("inspectorWidget"));
+ fInspectorWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ fInspectorWidget->setMaximumHeight(300);
+
+ fFilter = new QComboBox(fCentralWidget);
+ fFilter->setObjectName(QString::fromUtf8("comboBox"));
+ fFilter->addItem("--Filter By Available Commands--");
+
+ fDirectoryWidget = new QListWidget(fCentralWidget);
+ fDirectoryWidget->setObjectName(QString::fromUtf8("listWidget_2"));
+ fDirectoryWidget->setMaximumWidth(250);
+ fDirectoryWidget->setStyleSheet("QListWidget::Item {padding: 5px;}");
+
+ fVerticalLayout_2->addWidget(fListWidget);
+ fVerticalLayout_2->addWidget(fDirectoryWidget);
+
+ fCanvasWidget = new SkCanvasWidget(fCentralWidget);
+ fCanvasWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+
+ fSettingsWidget = new SkSettingsWidget(fCentralWidget);
+ fSettingsWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ fSettingsWidget->setMaximumWidth(250);
+ fSettingsWidget->setHidden(true);
+
+ fHorizontalLayout_2 = new QHBoxLayout();
+ fHorizontalLayout_2->setSpacing(6);
+
+ fHorizontalLayout_2->addWidget(fCanvasWidget);
+ fHorizontalLayout_2->addWidget(fSettingsWidget);
+
+ fVerticalLayout->addLayout(fHorizontalLayout_2);
+ fVerticalLayout->addWidget(fInspectorWidget);
+
+ fHorizontalLayout->addLayout(fVerticalLayout_2);
+ fHorizontalLayout->addLayout(fVerticalLayout);
+
+ SkDebuggerGUI->setCentralWidget(fCentralWidget);
+ fStatusBar = new QStatusBar(SkDebuggerGUI);
+ fStatusBar->setObjectName(QString::fromUtf8("statusBar"));
+ SkDebuggerGUI->setStatusBar(fStatusBar);
+ fToolBar = new QToolBar(SkDebuggerGUI);
+ fToolBar->setObjectName(QString::fromUtf8("toolBar"));
+ fToolBar->setIconSize(QSize(24, 24));
+ //fToolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
+ SkDebuggerGUI->addToolBar(Qt::TopToolBarArea, fToolBar);
+
+ QWidget *spacer = new QWidget();
+ spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+
+ fToolBar->addAction(fActionOpen);
+ fToolBar->addSeparator();
+ fToolBar->addAction(fActionDirectory);
+ fToolBar->addSeparator();
+ fToolBar->addAction(fActionRewind);
+ fToolBar->addAction(fActionStepBack);
+ fToolBar->addAction(fActionStepForward);
+ fToolBar->addAction(fActionPlay);
+ fToolBar->addSeparator();
+ fToolBar->addAction(fActionBreakpoint);
+ fToolBar->addAction(fActionInspector);
+ fToolBar->addSeparator();
+ fToolBar->addAction(fActionDelete);
+ fToolBar->addAction(fActionReload);
+ fToolBar->addSeparator();
+ fToolBar->addAction(fActionSettings);
+ fToolBar->addWidget(spacer);
+ fToolBar->addWidget(fFilter);
+ fToolBar->addAction(fActionCancel);
+
+ // TODO(chudy): Remove static call.
+ fDirectoryWidgetActive = false;
+ fPath= "/usr/local/google/home/chudy/trunk-linux/debugger/skp";
+ setupDirectoryWidget();
+ fDirectoryWidgetActive = true;
+
+ fMenuBar = new QMenuBar(SkDebuggerGUI);
+
+ // File
+ fMenuFile = new QMenu(SkDebuggerGUI);
+ fMenuFile->setTitle("File");
+
+ fActionClose = new QAction(SkDebuggerGUI);
+ fActionClose->setText("Close");
+
+ fMenuFile->addAction(fActionOpen);
+ fMenuFile->addAction(fActionClose);
+
+ // View
+ fMenuView = new QMenu(SkDebuggerGUI);
+ fMenuView->setTitle("View");
+
+ fActionToggleCurrentCommand = new QAction(SkDebuggerGUI);
+ fActionToggleCurrentCommand->setText("Show Filter");
+
+ fMenuView->addAction(fActionToggleCurrentCommand);
+
+ // Navigate
+ fMenuNavigate = new QMenu(SkDebuggerGUI);
+ fMenuNavigate->setTitle("Navigate");
+
+ fActionGoToLine = new QAction(SkDebuggerGUI);
+ fActionGoToLine->setText("Go to Line...");
+ fActionGoToLine->setDisabled(true);
+
+ fMenuNavigate->addAction(fActionGoToLine);
+
+ // Menu Bar
+ fMenuBar->addAction(fMenuFile->menuAction());
+ fMenuBar->addAction(fMenuView->menuAction());
+ fMenuBar->addAction(fMenuNavigate->menuAction());
+
+ SkDebuggerGUI->setMenuBar(fMenuBar);
+
+ retranslateUi(SkDebuggerGUI);
+ QMetaObject::connectSlotsByName(SkDebuggerGUI);
+}
+
+void SkDebuggerGUI::setupDirectoryWidget() {
+ fDir = new QDir(fPath);
+ QRegExp r(".skp");
+ fDirectoryWidget->clear();
+ const QStringList files = fDir->entryList();
+ foreach (QString f, files) {
+ if (f.contains(r)) fDirectoryWidget->addItem(f);
+ }
+}
+
+// TODO(chudy): Is this necessary?
+void SkDebuggerGUI::retranslateUi(QMainWindow *SkDebuggerGUI) {
+ SkDebuggerGUI->setWindowTitle(QApplication::translate("SkDebuggerGUI", "SkDebuggerGUI", 0, QApplication::UnicodeUTF8));
+ fActionOpen->setText(QApplication::translate("SkDebuggerGUI", "Open", 0, QApplication::UnicodeUTF8));
+ fToolBar->setWindowTitle(QApplication::translate("SkDebuggerGUI", "toolBar", 0, QApplication::UnicodeUTF8));
+}
+
+void SkDebuggerGUI::loadPicture(QString fileName) {
+ fCanvasWidget->loadPicture(fileName);
+ std::vector<std::string> *cv = fCanvasWidget->getDrawCommands();
+ setupListWidget(cv);
+ setupComboBox(cv);
+}
+
+void SkDebuggerGUI::setupListWidget(std::vector<std::string>* cv) {
+ fListWidget->clear();
+ int counter = 0;
+ for (unsigned int i = 0; i < cv->size(); i++) {
+ QListWidgetItem *item = new QListWidgetItem();
+ item->setData(Qt::DisplayRole, (*cv)[i].c_str());
+ item->setData(Qt::UserRole + 1, counter++);
+ item->setData(Qt::UserRole + 2, true);
+ fListWidget->addItem(item);
+ }
+}
+
+void SkDebuggerGUI::setupComboBox(std::vector<std::string>* cv) {
+ fFilter->clear();
+ fFilter->addItem("--Filter By Available Commands--");
+
+ std::map<std::string, int> map;
+ for (unsigned int i = 0; i < cv->size(); i++) {
+ map[(*cv)[i]]++;
+ }
+
+ QString overview;
+ int counter;
+ for(std::map<std::string, int>::iterator it = map.begin(); it != map.end(); ++it) {
+ overview.append((it->first).c_str());
+ overview.append(": ");
+ overview.append(QString::number(it->second));
+ overview.append("<br/>");
+ counter+=it->second;
+ fFilter->addItem((it->first).c_str());
+ }
+ QString total;
+ total.append("Total Draw Commands: ");
+ total.append(QString::number(counter));
+ total.append("<br/>");
+ overview.insert(0, total);
+
+ overview.append("<br/>");
+ overview.append("SkBitmap Width: ");
+ // NOTE(chudy): This is where we can pull out the SkPictures width.
+ overview.append(QString::number(fCanvasWidget->getBitmapWidth()));
+ overview.append("px<br/>");
+ overview.append("SkBitmap Height: ");
+ overview.append(QString::number(fCanvasWidget->getBitmapHeight()));
+ overview.append("px");
+ fInspectorWidget->setOverviewText(overview);
+
+ // NOTE(chudy): Makes first item unselectable.
+ QStandardItemModel* model =
+ qobject_cast<QStandardItemModel*>(fFilter->model());
+ QModelIndex firstIndex = model->index(0, fFilter->modelColumn(),
+ fFilter->rootModelIndex());
+ QStandardItem* firstItem = model->itemFromIndex(firstIndex);
+ firstItem->setSelectable(false);
+}
diff --git a/debugger/QT/SkDebuggerGUI.h b/debugger/QT/SkDebuggerGUI.h
new file mode 100644
index 0000000..520aaa8
--- /dev/null
+++ b/debugger/QT/SkDebuggerGUI.h
@@ -0,0 +1,229 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef SKDEBUGGERUI_H
+#define SKDEBUGGERUI_H
+
+
+#include "SkCanvas.h"
+#include "SkDebugCanvas.h"
+#include "SkListWidget.h"
+#include "SkInspectorWidget.h"
+#include "SkCanvasWidget.h"
+#include "SkSettingsWidget.h"
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QHBoxLayout>
+#include <QtGui/QHeaderView>
+#include <QtGui/QListView>
+#include <QtGui/QListWidget>
+#include <QtGui/QMainWindow>
+#include <QtGui/QStatusBar>
+#include <QtGui/QToolBar>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+#include <QtGui/QMenu>
+#include <QtGui/QMenuBar>
+#include <vector>
+
+/** \class SkDebuggerGUI
+
+ Container for the UI and it's functions.
+ */
+class SkDebuggerGUI : public QMainWindow {
+ Q_OBJECT
+
+public:
+ /**
+ Constructs the view of the application.
+ @param parent The parent container of this widget.
+ */
+ SkDebuggerGUI(QWidget *parent = 0);
+
+ ~SkDebuggerGUI();
+
+private slots:
+ /**
+ Toggles breakpoint view in the list widget.
+ */
+ void actionBreakpoints();
+
+ /**
+ Cancels the command filter in the list widget.
+ */
+ void actionCancel();
+
+ /**
+ Applies a visible filter to all drawing commands other than the previous.
+ */
+ void actionCommandFilter();
+
+ /**
+ Closes the application.
+ */
+ void actionClose();
+
+ /**
+ Deletes the command in question.
+ */
+ void actionDelete();
+
+ /**
+ Toggles the visibility of the inspector widget.
+ */
+ void actionInspector();
+
+ /**
+ Plays from the current step to the next breakpoint if it exists, otherwise
+ executes all remaining draw commands.
+ */
+ void actionPlay();
+
+ /**
+ Resets all deleted commands.
+ */
+ void actionReload();
+
+ /**
+ Rewinds from the current step back to the start of the commands.
+ */
+ void actionRewind();
+
+ /**
+ Toggles the settings widget visibility.
+ */
+ void actionSettings();
+
+ /**
+ Steps forward to the next draw command.
+ */
+ void actionStepBack();
+
+ /**
+ Steps backwards to the next draw command.
+ */
+ void actionStepForward();
+
+ /**
+ Loads an skpicture selected from the directory.
+ */
+ void loadFile(QListWidgetItem *item);
+
+ /**
+ Toggles a dialog with a file browser for navigating to a skpicture. Loads
+ the seleced file.
+ */
+ void openFile();
+
+ /**
+ Executes draw commands up to the selected command
+ */
+ void registerListClick(QListWidgetItem *item);
+
+ /**
+ Toggles a breakpoint on the current step in the list widget.
+ */
+ void toggleBreakpoint();
+
+ /**
+ Toggles the visibility of the directory widget.
+ */
+ void toggleDirectory();
+
+ /**
+ Filters the list widgets command visibility based on the currently
+ active selection.
+ */
+ void toggleFilter(QString string);
+
+private:
+ QAction* fActionOpen;
+ QAction* fActionDirectory;
+ QAction* fActionRewind;
+ QAction* fActionStepBack;
+ QAction* fActionStepForward;
+ QAction* fActionPlay;
+ QAction* fActionBreakpoint;
+ QAction* fActionInspector;
+ QAction* fActionDelete;
+ QAction* fActionReload;
+ QAction* fActionClose;
+ QAction* fActionSettings;
+
+ QComboBox* fFilter;
+ QAction* fActionCancel;
+
+ QWidget* fCentralWidget;
+ QHBoxLayout* fHorizontalLayout;
+ QHBoxLayout* fHorizontalLayout_2;
+ QVBoxLayout* fVerticalLayout;
+ QVBoxLayout* fVerticalLayout_2;
+ QListWidget* fListWidget;
+ QListWidget* fDirectoryWidget;
+ QListView* fListView;
+ QStatusBar* fStatusBar;
+ QToolBar* fToolBar;
+
+ SkCanvasWidget* fCanvasWidget;
+ SkInspectorWidget* fInspectorWidget;
+ SkSettingsWidget* fSettingsWidget;
+
+ QDir* fDir;
+ QString fPath;
+ bool fDirectoryWidgetActive;
+ QMenuBar* fMenuBar;
+
+ QMenu* fMenuFile;
+ QAction* fActionQuit;
+ QAction* fActionTemp;
+
+ QMenu* fMenuView;
+ QAction* fActionToggleCurrentCommand;
+
+ QMenu* fMenuNavigate;
+ QAction *fActionGoToLine;
+
+ bool fBreakpointsActivated;
+
+ /**
+ Creates the entire UI.
+ */
+ void setupUi(QMainWindow *SkDebuggerGUI);
+
+ /**
+ Placeholder function for executing new commands on window translate
+ and resize.
+ */
+ void retranslateUi(QMainWindow *SkDebuggerGUI);
+
+ /**
+ Pipes a QString in with the location of the filename, proceeds to updating
+ the listwidget, combowidget and inspectorwidget.
+ */
+ void loadPicture(QString fileName);
+
+ /**
+ Populates the list widget with the vector of strings passed in.
+ */
+ void setupListWidget(std::vector<std::string>* cv);
+
+ /**
+ Populates the combo box widget with the vector of strings passed in.
+ */
+ void setupComboBox(std::vector<std::string>* cv);
+
+ /**
+ Updates the directory widget with the latest directory path stored in
+ the global class variable fPath.
+ */
+ void setupDirectoryWidget();
+};
+
+#endif // SKDEBUGGERUI_H
diff --git a/debugger/QT/SkIcons.qrc b/debugger/QT/SkIcons.qrc
new file mode 100644
index 0000000..53f456f
--- /dev/null
+++ b/debugger/QT/SkIcons.qrc
@@ -0,0 +1,18 @@
+<RCC>
+ <qresource prefix="/images">
+ <file>Icons/package-br32.png</file>
+ <file>Icons/drawer-open-icon.png</file>
+ <file>Icons/rewind.png</file>
+ <file>Icons/back.png</file>
+ <file>Icons/go-next.png</file>
+ <file>Icons/play.png</file>
+ <file>Icons/breakpoint.png</file>
+ <file>Icons/breakpoint_16x16.png</file>
+ <file>Icons/inspector.png</file>
+ <file>Icons/reset.png</file>
+ <file>Icons/skia.png</file>
+ <file>Icons/delete.png</file>
+ <file>Icons/reload.png</file>
+ <file>Icons/settings.png</file>
+ </qresource>
+</RCC>
diff --git a/debugger/QT/SkInspectorWidget.cpp b/debugger/QT/SkInspectorWidget.cpp
new file mode 100644
index 0000000..76dce91
--- /dev/null
+++ b/debugger/QT/SkInspectorWidget.cpp
@@ -0,0 +1,127 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#include "SkInspectorWidget.h"
+#include <iostream>
+
+SkInspectorWidget::SkInspectorWidget(QWidget *parent) : QWidget(parent) {
+ // NOTE(chudy): Keeps the inspector widget fully expanded.
+ fHorizontalLayout = new QHBoxLayout(this);
+ fHorizontalLayout->setSpacing(6);
+ fHorizontalLayout->setContentsMargins(11, 11, 11, 11);
+
+ fTabWidget = new QTabWidget();
+
+ fOverviewTab = new QWidget();
+ fOverviewLayout = new QHBoxLayout(fOverviewTab);
+ fOverviewLayout->setSpacing(6);
+ fOverviewLayout->setContentsMargins(11, 11, 11, 11);
+ fOverviewText = new QTextEdit();
+ fOverviewText->setReadOnly(true);
+ fOverviewLayout->addWidget(fOverviewText);
+
+ fDetailTab = new QWidget();
+ fDetailLayout = new QHBoxLayout(fDetailTab);
+ fDetailLayout->setSpacing(6);
+ fDetailLayout->setContentsMargins(11,11,11,11);
+ fDetailText = new QTextEdit();
+ fDetailText->setReadOnly(true);
+ fDetailLayout->addWidget(fDetailText);
+
+ fTabWidget->addTab(fOverviewTab, QString("Overview"));
+ fTabWidget->addTab(fDetailTab, QString("Details"));
+
+ fHorizontalLayout->setAlignment(Qt::AlignTop);
+ fHorizontalLayout->addWidget(fTabWidget);
+
+ /* NOTE(chudy): We add all the line edits to (this). Then we lay them out
+ * by adding them to horizontal layouts.
+ *
+ * We will have 1 big vertical layout, 3 horizontal layouts and then 3
+ * line edits in each horizontal layout.
+ */
+
+ fMatrixAndClipWidget = new QWidget(this);
+ fMatrixAndClipWidget->setFixedSize(200,300);
+ fMatrixAndClipWidget->setDisabled(true);
+
+ fVerticalLayout = new QVBoxLayout(fMatrixAndClipWidget);
+ fVerticalLayout->setAlignment(Qt::AlignVCenter);
+ fVerticalLayout->addLayout(currentMatrix());
+ fVerticalLayout->addLayout(currentClip());
+ fHorizontalLayout->addWidget(fMatrixAndClipWidget);
+
+
+}
+
+SkInspectorWidget::~SkInspectorWidget() {}
+
+QString SkInspectorWidget::getDetailText() {
+ return fDetailText->toHtml();
+}
+
+QString SkInspectorWidget::getOverviewText() {
+ return fOverviewText->toHtml();
+}
+
+void SkInspectorWidget::setDetailText(QString text) {
+ fDetailText->setHtml(text);
+}
+
+void SkInspectorWidget::setOverviewText(QString text) {
+ fOverviewText->setHtml(text);
+}
+
+QVBoxLayout* SkInspectorWidget::currentMatrix() {
+ fMatrixLabel = new QLabel(this);
+ fMatrixLabel->setText("Current Matrix");
+ fMatrixLabel->setAlignment(Qt::AlignHCenter);
+ fMatrixLayout = new QVBoxLayout();
+ fMatrixLayout->setSpacing(6);
+ fMatrixLayout->setContentsMargins(11,11,11,0);
+ fMatrixLayout->setAlignment(Qt::AlignTop | Qt::AlignHCenter);
+ fMatrixLayout->addWidget(fMatrixLabel);
+
+ for(int i =0; i<9; i++) {
+ fMatrixEntry[i] = new QLineEdit();
+ fMatrixEntry[i]->setMinimumSize(QSize(50,25));
+ fMatrixEntry[i]->setMaximumSize(QSize(50,16777215));
+ fMatrixEntry[i]->setReadOnly(true);
+
+ if(!(i%3)) fMatrixRow[i/3] = new QHBoxLayout();
+ fMatrixRow[i/3]->addWidget(fMatrixEntry[i]);
+ if(i%3 == 2) fMatrixLayout->addLayout(fMatrixRow[i/3]);
+ }
+
+ return fMatrixLayout;
+}
+
+QVBoxLayout* SkInspectorWidget::currentClip() {
+ fClipLabel = new QLabel(this);
+ fClipLabel->setText("Current Clip");
+ fClipLabel->setAlignment(Qt::AlignHCenter);
+ fClipLayout = new QVBoxLayout();
+ fClipLayout->setSpacing(6);
+ fClipLayout->setContentsMargins(11,11,11,0);
+ fClipLayout->setAlignment(Qt::AlignTop | Qt::AlignHCenter);
+ fClipLayout->addWidget(fClipLabel);
+
+ for(int i =0; i<4; i++) {
+ fClipEntry[i] = new QLineEdit();
+ fClipEntry[i]->setMinimumSize(QSize(50,25));
+ fClipEntry[i]->setMaximumSize(QSize(50,16777215));
+ fClipEntry[i]->setReadOnly(true);
+
+ if(!(i%2)) fClipRow[i/2] = new QHBoxLayout();
+ fClipRow[i/2]->addWidget(fClipEntry[i]);
+ if(i%2 == 1) fClipLayout->addLayout(fClipRow[i/2]);
+ }
+
+ return fClipLayout;
+}
diff --git a/debugger/QT/SkInspectorWidget.h b/debugger/QT/SkInspectorWidget.h
new file mode 100644
index 0000000..1025f4a
--- /dev/null
+++ b/debugger/QT/SkInspectorWidget.h
@@ -0,0 +1,86 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef SKINSPECTORWIDGET_H_
+#define SKINSPECTORWIDGET_H_
+
+#include <QWidget>
+#include <QTabWidget>
+#include <QTextEdit>
+#include <QHBoxLayout>
+#include <QLabel>
+#include <QLineEdit>
+
+/** \class SkInspectorWidget
+
+ The InspectorWidget contains the overview and details tab. These contain
+ information about the whole picture and details about each draw command.
+ */
+class SkInspectorWidget : public QWidget {
+ Q_OBJECT
+
+public:
+ /**
+ Constructs a widget with the specified parent for layout purposes.
+ @param parent The parent container of this widget
+ */
+ SkInspectorWidget(QWidget *parent = NULL);
+
+ ~SkInspectorWidget();
+
+ /**
+ Returns a QString representation of the text currently in the detail tab.
+ */
+ QString getDetailText();
+
+ /**
+ Returns a QString representation of the text currently in the overview tab.
+ */
+ QString getOverviewText();
+
+ /**
+ Sets the text in the detail tab.
+ @param text
+ */
+ void setDetailText(QString text);
+
+ /**
+ Sets the text in the overview tab.
+ @param text
+ */
+ void setOverviewText(QString text);
+
+private:
+ QWidget* fDetailTab;
+ QTextEdit* fDetailText;
+ QHBoxLayout* fDetailLayout;
+ QHBoxLayout* fHorizontalLayout;
+ QWidget* fOverviewTab;
+ QTextEdit* fOverviewText;
+ QHBoxLayout* fOverviewLayout;
+ QTabWidget* fTabWidget;
+
+ QWidget* fMatrixAndClipWidget;
+ QVBoxLayout* fVerticalLayout;
+
+ QVBoxLayout* fMatrixLayout;
+ QLabel* fMatrixLabel;
+ QHBoxLayout* fMatrixRow[3];
+ QLineEdit* fMatrixEntry[9];
+
+ QVBoxLayout* fClipLayout;
+ QLabel* fClipLabel;
+ QHBoxLayout* fClipRow[2];
+ QLineEdit* fClipEntry[4];
+
+ QVBoxLayout* currentMatrix();
+ QVBoxLayout* currentClip();
+};
+
+#endif
diff --git a/debugger/QT/SkListWidget.cpp b/debugger/QT/SkListWidget.cpp
new file mode 100644
index 0000000..348321c
--- /dev/null
+++ b/debugger/QT/SkListWidget.cpp
@@ -0,0 +1,80 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#include "SkListWidget.h"
+
+SkListWidget::SkListWidget(QObject *parent) {}
+
+SkListWidget::~SkListWidget() {}
+
+void SkListWidget::paint (QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const {
+ /*
+ * NOTE(chudy): We adjust the initial position of the list item so that
+ * we don't have overlapping top and bottom borders of concurrent
+ * widget items.
+ */
+ QRect r = option.rect;
+ r.adjust(-1,-1,1,0);
+
+ QPen linePen(QColor::fromRgb(211,211,211), 1, Qt::SolidLine);
+ QPen fontPen(QColor::fromRgb(51,51,51), 1, Qt::SolidLine);
+ QPen fontMarkedPen(Qt::white, 1, Qt::SolidLine);
+
+ // NOTE(chudy): If selected.
+ if(option.state & QStyle::State_Selected){
+ QLinearGradient gradientSelected(r.left(),r.top(),r.left(),r.height()+r.top());
+ gradientSelected.setColorAt(0.0, QColor::fromRgb(119,213,247));
+ gradientSelected.setColorAt(0.9, QColor::fromRgb(27,134,183));
+ gradientSelected.setColorAt(1.0, QColor::fromRgb(0,120,174));
+ painter->setBrush(gradientSelected);
+ painter->drawRect(r);
+
+ painter->setPen(linePen);
+ painter->drawLine(r.topLeft(),r.topRight());
+ painter->drawLine(r.topRight(),r.bottomRight());
+ painter->drawLine(r.bottomLeft(),r.bottomRight());
+ painter->drawLine(r.topLeft(),r.bottomLeft());
+
+ painter->setPen(fontMarkedPen);
+
+ } else {
+ // NOTE(chudy): Alternating background.
+ painter->setBrush( (index.row() % 2) ? Qt::white : QColor(252,252,252) );
+ painter->drawRect(r);
+
+ painter->setPen(linePen);
+ painter->drawLine(r.topLeft(),r.topRight());
+ painter->drawLine(r.topRight(),r.bottomRight());
+ painter->drawLine(r.bottomLeft(),r.bottomRight());
+ painter->drawLine(r.topLeft(),r.bottomLeft());
+
+ painter->setPen(fontPen);
+ }
+
+ QIcon ic = QIcon(qvariant_cast<QPixmap>(index.data(Qt::DecorationRole)));
+ QString title = index.data(Qt::DisplayRole).toString();
+ QString description = index.data(Qt::UserRole + 1).toString();
+ QString hidden = index.data(Qt::UserRole + 2).toString();
+
+ int imageSpace = 35;
+ r = option.rect.adjusted(5, 10, -10, -10);
+ ic.paint(painter, r, Qt::AlignVCenter|Qt::AlignLeft);
+
+ // NOTE(chudy): Draw command.
+ r = option.rect.adjusted(imageSpace, 0, -10, -7);
+ painter->drawText(r.left(), r.top(), r.width(), r.height(), Qt::AlignBottom|Qt::AlignRight, title, &r);
+
+ // NOTE(chudy): Number of draw command.
+ r = option.rect.adjusted(imageSpace, 0, -10, -7);
+ painter->drawText(r.left(), r.top(), r.width(), r.height(), Qt::AlignBottom|Qt::AlignLeft, description, &r);
+}
+
+QSize SkListWidget::sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const{
+ return QSize(200, 30);
+}
diff --git a/debugger/QT/SkListWidget.h b/debugger/QT/SkListWidget.h
new file mode 100644
index 0000000..12a2120
--- /dev/null
+++ b/debugger/QT/SkListWidget.h
@@ -0,0 +1,43 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef SKLISTWIDGET_H_
+#define SKLISTWIDGET_H_
+
+#include <QAbstractItemDelegate>
+#include <QPainter>
+
+/** \class SkListWidget
+
+ This widget contains the draw commands.
+ */
+class SkListWidget : public QAbstractItemDelegate {
+public:
+ /**
+ Constructs the list widget with the specified parent for layout purposes.
+ @param parent The parent container of this widget
+ */
+ SkListWidget(QObject* parent = NULL);
+
+ ~SkListWidget();
+
+ /**
+ Draws the current state of the widget. Overriden from QWidget.
+ */
+ void paint (QPainter* painter, const QStyleOptionViewItem& option,
+ const QModelIndex& index ) const;
+
+ /**
+ Returns the default size of the widget. Overriden from QWidget.
+ */
+ QSize sizeHint (const QStyleOptionViewItem& option,
+ const QModelIndex& index) const;
+};
+
+#endif
diff --git a/debugger/QT/SkSettingsWidget.cpp b/debugger/QT/SkSettingsWidget.cpp
new file mode 100644
index 0000000..0c94b3d
--- /dev/null
+++ b/debugger/QT/SkSettingsWidget.cpp
@@ -0,0 +1,77 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#include "SkSettingsWidget.h"
+
+SkSettingsWidget::SkSettingsWidget(QWidget *parent) : QWidget(parent) {
+ mainFrameLayout = new QVBoxLayout(this);
+ mainFrameLayout->setSpacing(6);
+ mainFrameLayout->setContentsMargins(0,0,0,0);
+
+
+ mainFrame = new QFrame();
+ mainFrame->setFrameShape(QFrame::StyledPanel);
+ mainFrame->setFrameShadow(QFrame::Raised);
+
+ mainFrameLayout->addWidget(mainFrame);
+
+ fVerticalLayout = new QVBoxLayout(mainFrame);
+ fVerticalLayout->setContentsMargins(11,11,11,11);
+ fVerticalLayout->setAlignment(Qt::AlignTop);
+
+ fVisibility = new QLabel();
+ fVisibility->setText("Visibility Filter");
+
+ fFrame = new QFrame();
+ fFrame->setFrameShape(QFrame::StyledPanel);
+ fFrame->setFrameShadow(QFrame::Raised);
+
+ fVerticalLayout_2 = new QVBoxLayout(fFrame);
+ fVerticalLayout_2->setSpacing(6);
+ fVerticalLayout_2->setContentsMargins(11,11,11,11);
+
+ fVerticalLayout->addWidget(fVisibility);
+ fVerticalLayout->addWidget(fFrame);
+
+ fVisibleOn = new QRadioButton(fFrame);
+ fVisibleOn->setText("On");
+ fVisibleOff = new QRadioButton(fFrame);
+ fVisibleOff->setText("Off");
+
+ fVisibleOff->setChecked(true);
+
+ fVerticalLayout_2->addWidget(fVisibleOn);
+ fVerticalLayout_2->addWidget(fVisibleOff);
+
+ fCommandToggle = new QLabel();
+ fCommandToggle->setText("Command Scrolling Preferences");
+
+ fCommandFrame = new QFrame();
+ fCommandFrame->setFrameShape(QFrame::StyledPanel);
+ fCommandFrame->setFrameShadow(QFrame::Raised);
+
+ fCommandLayout = new QVBoxLayout(fCommandFrame);
+ fCommandLayout->setSpacing(6);
+ fCommandLayout->setContentsMargins(11,11,11,11);
+
+ fVerticalLayout->addWidget(fCommandToggle);
+ fVerticalLayout->addWidget(fCommandFrame);
+
+ fCommandCheckBox = new QCheckBox(fCommandFrame);
+ fCommandCheckBox->setText("Toggle Sticky Activate");
+ fCommandSingleDraw = new QCheckBox(fCommandFrame);
+ fCommandSingleDraw->setText("Display Single Command");
+
+ fCommandLayout->addWidget(fCommandCheckBox);
+ fCommandLayout->addWidget(fCommandSingleDraw);
+
+ this->setDisabled(true);
+}
+
+SkSettingsWidget::~SkSettingsWidget() {}
diff --git a/debugger/QT/SkSettingsWidget.h b/debugger/QT/SkSettingsWidget.h
new file mode 100644
index 0000000..97d2101
--- /dev/null
+++ b/debugger/QT/SkSettingsWidget.h
@@ -0,0 +1,60 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef SKSETTINGSWIDGET_H_
+#define SKSETTINGSWIDGET_H_
+
+#include <QWidget>
+#include <QHBoxLayout>
+#include <QTextEdit>
+#include <QFrame>
+#include <QLabel>
+#include <QRadioButton>
+#include <QCheckBox>
+
+/** \class SkSettingsWidget
+
+ The SettingsWidget contains multiple checkboxes and toggles for altering
+ the visibility.
+ */
+class SkSettingsWidget : public QWidget {
+ Q_OBJECT
+
+public:
+ /**
+ Constructs a widget with the specified parent for layout purposes.
+ @param parent The parent container of this widget
+ */
+ SkSettingsWidget(QWidget *parent = NULL);
+ ~SkSettingsWidget();
+
+private:
+ QHBoxLayout* fHorizontalLayout;
+
+ QVBoxLayout* mainFrameLayout;
+
+ QVBoxLayout* fVerticalLayout;
+ QVBoxLayout* fVerticalLayout_2;
+ QTextEdit* fText;
+ QFrame* fFrame;
+ QFrame* mainFrame;
+
+ QLabel* fVisibility;
+ QRadioButton* fVisibleOn;
+ QRadioButton* fVisibleOff;
+
+ QLabel* fCommandToggle;
+ QFrame* fCommandFrame;
+ QVBoxLayout* fCommandLayout;
+
+ QCheckBox* fCommandCheckBox;
+ QCheckBox* fCommandSingleDraw;
+};
+
+#endif /* SKSETTINGSWIDGET_H_ */
diff --git a/debugger/QT/moc_SkCanvasWidget.cpp b/debugger/QT/moc_SkCanvasWidget.cpp
new file mode 100644
index 0000000..f8ddf6b7
--- /dev/null
+++ b/debugger/QT/moc_SkCanvasWidget.cpp
@@ -0,0 +1,69 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'SkCanvasWidget.h'
+**
+** Created: Thu Jun 28 17:18:47 2012
+** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "SkCanvasWidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'SkCanvasWidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_SkCanvasWidget[] = {
+
+ // content:
+ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_SkCanvasWidget[] = {
+ "SkCanvasWidget\0"
+};
+
+const QMetaObject SkCanvasWidget::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_SkCanvasWidget,
+ qt_meta_data_SkCanvasWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &SkCanvasWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *SkCanvasWidget::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *SkCanvasWidget::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_SkCanvasWidget))
+ return static_cast<void*>(const_cast< SkCanvasWidget*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int SkCanvasWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/debugger/QT/moc_SkDebuggerGUI.cpp b/debugger/QT/moc_SkDebuggerGUI.cpp
new file mode 100644
index 0000000..d09f636
--- /dev/null
+++ b/debugger/QT/moc_SkDebuggerGUI.cpp
@@ -0,0 +1,123 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'SkDebuggerGUI.h'
+**
+** Created: Thu Jun 28 17:18:47 2012
+** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "SkDebuggerGUI.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'SkDebuggerGUI.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_SkDebuggerGUI[] = {
+
+ // content:
+ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 18, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 15, 14, 14, 14, 0x08,
+ 35, 14, 14, 14, 0x08,
+ 50, 14, 14, 14, 0x08,
+ 72, 14, 14, 14, 0x08,
+ 86, 14, 14, 14, 0x08,
+ 101, 14, 14, 14, 0x08,
+ 119, 14, 14, 14, 0x08,
+ 132, 14, 14, 14, 0x08,
+ 147, 14, 14, 14, 0x08,
+ 162, 14, 14, 14, 0x08,
+ 179, 14, 14, 14, 0x08,
+ 196, 14, 14, 14, 0x08,
+ 221, 216, 14, 14, 0x08,
+ 248, 14, 14, 14, 0x08,
+ 259, 216, 14, 14, 0x08,
+ 295, 14, 14, 14, 0x08,
+ 314, 14, 14, 14, 0x08,
+ 339, 332, 14, 14, 0x08,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_SkDebuggerGUI[] = {
+ "SkDebuggerGUI\0\0actionBreakpoints()\0"
+ "actionCancel()\0actionCommandFilter()\0"
+ "actionClose()\0actionDelete()\0"
+ "actionInspector()\0actionPlay()\0"
+ "actionReload()\0actionRewind()\0"
+ "actionSettings()\0actionStepBack()\0"
+ "actionStepForward()\0item\0"
+ "loadFile(QListWidgetItem*)\0openFile()\0"
+ "registerListClick(QListWidgetItem*)\0"
+ "toggleBreakpoint()\0toggleDirectory()\0"
+ "string\0toggleFilter(QString)\0"
+};
+
+const QMetaObject SkDebuggerGUI::staticMetaObject = {
+ { &QMainWindow::staticMetaObject, qt_meta_stringdata_SkDebuggerGUI,
+ qt_meta_data_SkDebuggerGUI, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &SkDebuggerGUI::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *SkDebuggerGUI::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *SkDebuggerGUI::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_SkDebuggerGUI))
+ return static_cast<void*>(const_cast< SkDebuggerGUI*>(this));
+ return QMainWindow::qt_metacast(_clname);
+}
+
+int SkDebuggerGUI::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QMainWindow::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: actionBreakpoints(); break;
+ case 1: actionCancel(); break;
+ case 2: actionCommandFilter(); break;
+ case 3: actionClose(); break;
+ case 4: actionDelete(); break;
+ case 5: actionInspector(); break;
+ case 6: actionPlay(); break;
+ case 7: actionReload(); break;
+ case 8: actionRewind(); break;
+ case 9: actionSettings(); break;
+ case 10: actionStepBack(); break;
+ case 11: actionStepForward(); break;
+ case 12: loadFile((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+ case 13: openFile(); break;
+ case 14: registerListClick((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+ case 15: toggleBreakpoint(); break;
+ case 16: toggleDirectory(); break;
+ case 17: toggleFilter((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 18;
+ }
+ return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/debugger/QT/moc_SkInspectorWidget.cpp b/debugger/QT/moc_SkInspectorWidget.cpp
new file mode 100644
index 0000000..4449556
--- /dev/null
+++ b/debugger/QT/moc_SkInspectorWidget.cpp
@@ -0,0 +1,69 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'SkInspectorWidget.h'
+**
+** Created: Thu Jun 28 17:18:47 2012
+** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "SkInspectorWidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'SkInspectorWidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_SkInspectorWidget[] = {
+
+ // content:
+ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_SkInspectorWidget[] = {
+ "SkInspectorWidget\0"
+};
+
+const QMetaObject SkInspectorWidget::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_SkInspectorWidget,
+ qt_meta_data_SkInspectorWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &SkInspectorWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *SkInspectorWidget::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *SkInspectorWidget::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_SkInspectorWidget))
+ return static_cast<void*>(const_cast< SkInspectorWidget*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int SkInspectorWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/debugger/QT/moc_SkQtWidget.cpp b/debugger/QT/moc_SkQtWidget.cpp
new file mode 100644
index 0000000..dcaeb79
--- /dev/null
+++ b/debugger/QT/moc_SkQtWidget.cpp
@@ -0,0 +1,69 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'SkQtWidget.h'
+**
+** Created: Tue Jun 26 16:43:31 2012
+** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "SkQtWidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'SkQtWidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_SkQtWidget[] = {
+
+ // content:
+ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_SkQtWidget[] = {
+ "SkQtWidget\0"
+};
+
+const QMetaObject SkQtWidget::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_SkQtWidget,
+ qt_meta_data_SkQtWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &SkQtWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *SkQtWidget::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *SkQtWidget::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_SkQtWidget))
+ return static_cast<void*>(const_cast< SkQtWidget*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int SkQtWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/debugger/QT/moc_SkSettingsWidget.cpp b/debugger/QT/moc_SkSettingsWidget.cpp
new file mode 100644
index 0000000..ec5c63d
--- /dev/null
+++ b/debugger/QT/moc_SkSettingsWidget.cpp
@@ -0,0 +1,69 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'SkSettingsWidget.h'
+**
+** Created: Thu Jun 28 17:18:47 2012
+** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "SkSettingsWidget.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'SkSettingsWidget.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_SkSettingsWidget[] = {
+
+ // content:
+ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_SkSettingsWidget[] = {
+ "SkSettingsWidget\0"
+};
+
+const QMetaObject SkSettingsWidget::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_SkSettingsWidget,
+ qt_meta_data_SkSettingsWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &SkSettingsWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *SkSettingsWidget::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *SkSettingsWidget::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_SkSettingsWidget))
+ return static_cast<void*>(const_cast< SkSettingsWidget*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int SkSettingsWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/debugger/QT/qrc_SkIcons.cpp b/debugger/QT/qrc_SkIcons.cpp
new file mode 100644
index 0000000..158ef93
--- /dev/null
+++ b/debugger/QT/qrc_SkIcons.cpp
@@ -0,0 +1,1725 @@
+/****************************************************************************
+** Resource object code
+**
+** Created: Thu Jun 28 16:19:27 2012
+** by: The Resource Compiler for Qt version 4.8.1
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include <QtCore/qglobal.h>
+
+static const unsigned char qt_resource_data[] = {
+ // /usr/local/google/home/chudy/Icons/skia.png
+ 0x0,0x0,0x4,0x1e,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x20,0x0,0x0,0x0,0x20,0x8,0x3,0x0,0x0,0x0,0x44,0xa4,0x8a,0xc6,
+ 0x0,0x0,0x1,0x80,0x50,0x4c,0x54,0x45,0xff,0xff,0xff,0x0,0x55,0xac,0x2,0x64,
+ 0xc4,0x8d,0x8d,0x83,0x0,0x61,0xbb,0x8d,0x8d,0x83,0x8d,0x8d,0x83,0x8d,0x8d,0x83,
+ 0x7,0x86,0xfd,0x5,0x76,0xe1,0x1,0x5b,0xb4,0x5,0x7a,0xe7,0x3,0x6b,0xcf,0x0,
+ 0x55,0xac,0x6,0x84,0xf8,0x6,0x7d,0xee,0x5,0x7a,0xe7,0x6,0x80,0xf1,0x3,0x6e,
+ 0xd5,0x3,0x6b,0xcf,0x0,0x58,0xad,0x6,0x80,0xf1,0x4,0x74,0xde,0x6,0x7d,0xee,
+ 0x3,0x6e,0xd5,0xb6,0xb6,0xb3,0xb6,0xb6,0xb3,0x95,0x95,0x8c,0x8d,0x8d,0x83,0x7,
+ 0x86,0xfd,0xb6,0xb6,0xb3,0xb6,0xb6,0xb3,0x9c,0x9c,0x94,0x7,0x86,0xfd,0x1,0x72,
+ 0xce,0x2,0x6b,0xc5,0x3,0x6b,0xcf,0x35,0xa3,0xdc,0x5,0x7a,0xe7,0x6,0x7d,0xee,
+ 0x4,0x74,0xde,0x3a,0xa6,0xdf,0x6,0x80,0xf1,0x0,0x69,0xbc,0xff,0xce,0xa,0xfc,
+ 0xb8,0x29,0x3,0x6e,0xd5,0x5,0x76,0xe1,0x2e,0xa8,0x46,0x3a,0xae,0xed,0x36,0x9f,
+ 0xd6,0x0,0x55,0xac,0x6,0x84,0xf8,0x0,0x84,0x3d,0x2,0x9a,0x3a,0x0,0x61,0xbb,
+ 0x95,0x95,0x8c,0xae,0xae,0xa9,0x6d,0xb6,0xdf,0x69,0xac,0xcf,0x18,0x92,0x86,0xe,
+ 0x75,0xcd,0x3b,0xb2,0xf1,0x83,0xd0,0xff,0x2,0x7b,0xd5,0x8d,0x8d,0x83,0x42,0xbb,
+ 0xff,0x3,0x73,0xd5,0x0,0x58,0xad,0x2,0x64,0xc4,0x6f,0xca,0xff,0x39,0xaa,0xe6,
+ 0x59,0xbc,0x9b,0x31,0xad,0xd0,0x43,0xb0,0x57,0x59,0x98,0xd0,0x22,0xa4,0x43,0x0,
+ 0x8c,0x3b,0x96,0xd7,0xff,0x3f,0xb9,0xfd,0x87,0xbf,0xdf,0x8c,0xd3,0xff,0x33,0xaa,
+ 0x48,0xe,0x71,0xc6,0x75,0xcc,0xff,0xd,0x83,0x32,0x99,0xab,0x8e,0x33,0x99,0xcc,
+ 0x70,0xad,0xcf,0x51,0xc0,0xff,0x0,0x94,0x3a,0x0,0x7b,0x3f,0x0,0x62,0xb6,0x9,
+ 0x9c,0x3c,0x83,0xaf,0xc7,0x66,0xb4,0xdf,0xf,0x9e,0x3d,0xa5,0xa5,0x9f,0x59,0xc3,
+ 0xff,0x1,0x5b,0xb4,0x57,0xaf,0xdf,0x9c,0x9c,0x94,0x13,0x7d,0xd8,0x1a,0x84,0xe0,
+ 0x47,0x75,0x9e,0x3d,0xb5,0xf6,0x18,0xa5,0x82,0x27,0x8c,0x39,0xa,0x82,0x5c,0x0,
+ 0x7b,0xac,0xc,0x6b,0xbc,0x39,0xac,0x4a,0x7,0x86,0xfd,0x29,0xa6,0x45,0x1,0x94,
+ 0x66,0x63,0xc6,0xff,0x82,0xb3,0xcf,0x7b,0xce,0xff,0x1a,0xa2,0x41,0x22,0x8b,0xe8,
+ 0x0,0x7b,0x67,0xfe,0xc1,0x17,0x1,0x8d,0x66,0x0,0x82,0x67,0x6a,0xc8,0xff,0x49,
+ 0xbe,0xff,0x3e,0xb6,0xf7,0x13,0x9f,0x3f,0xa2,0xb1,0x27,0x7c,0x0,0x0,0x0,0x22,
+ 0x74,0x52,0x4e,0x53,0x0,0x44,0x44,0x44,0x44,0x66,0xbb,0xdd,0x44,0x44,0x44,0x88,
+ 0x88,0x22,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x88,0x88,0x88,0x88,0x99,0xbb,0x22,
+ 0x22,0x22,0x22,0x33,0x33,0x33,0xc3,0x29,0x6b,0x68,0x0,0x0,0x2,0x2b,0x49,0x44,
+ 0x41,0x54,0x78,0x5e,0x95,0x93,0x65,0x73,0xdb,0x40,0x18,0x6,0x65,0x3b,0x55,0x92,
+ 0xda,0x29,0xdb,0x49,0x53,0x48,0x2b,0x66,0x33,0x33,0x33,0x63,0x98,0x99,0xa9,0xc,
+ 0x7f,0xbd,0xef,0x9d,0x9a,0xa8,0x93,0x49,0x3b,0xd3,0xd5,0xc7,0xdd,0x79,0x4e,0x9a,
+ 0x39,0x11,0xff,0xc9,0x5c,0x38,0x3c,0xf7,0x2f,0x3d,0xbb,0x1d,0x4a,0x6f,0xcf,0xbe,
+ 0xfb,0xab,0x5e,0x4f,0x93,0x16,0xb,0x9,0x89,0xe5,0x5e,0x1d,0xe,0x91,0x58,0x40,
+ 0x12,0x22,0xef,0xae,0xbc,0x7d,0x19,0xe,0x8d,0x3f,0xb8,0x89,0x1f,0x8c,0x87,0x42,
+ 0xe4,0xab,0x7b,0xb5,0x91,0xa4,0xd3,0xe4,0x6b,0xdd,0xbe,0xb7,0xdb,0x47,0xd5,0xea,
+ 0x9e,0xdd,0x6e,0x9f,0x9e,0xb6,0x5a,0xad,0xe,0x87,0x63,0x66,0xc6,0x66,0xb3,0xed,
+ 0x1,0x36,0xdb,0x14,0x41,0xbc,0x39,0x43,0x48,0x67,0x3e,0x49,0xe2,0x79,0x8e,0x73,
+ 0x3a,0x5,0x41,0xd3,0x18,0x86,0x66,0xf2,0xc1,0xa0,0xd7,0x9b,0x9b,0x22,0x26,0x40,
+ 0xfb,0x0,0xe9,0x36,0xc8,0xa2,0x80,0xc9,0x43,0xb0,0xb9,0xe9,0x35,0x11,0x13,0x3e,
+ 0xf0,0x1f,0x11,0xbb,0xc0,0xe,0x10,0xdf,0x89,0xc7,0xbb,0xdd,0x93,0x93,0x6e,0x1e,
+ 0x7,0x8f,0xc0,0x57,0xaf,0x5a,0xad,0x56,0x24,0x12,0x59,0x5d,0xdd,0xda,0x12,0x45,
+ 0x91,0xf5,0x78,0x3c,0x43,0x60,0x57,0xc6,0x1,0xcc,0xaf,0x34,0x1a,0x8d,0x76,0x3b,
+ 0x79,0x5d,0xf8,0x76,0xb9,0x31,0xff,0x3d,0xd3,0xfc,0xb1,0xef,0xe,0xab,0xa5,0xa2,
+ 0x48,0xe5,0xf4,0x40,0xba,0x42,0x41,0x32,0xd9,0x2b,0x5c,0xa2,0xa0,0x9,0xc1,0x40,
+ 0x51,0x3e,0x47,0xcb,0x59,0x14,0x3c,0xf5,0x49,0x10,0xb4,0xc1,0x5f,0xf7,0xd0,0xc0,
+ 0x7c,0xa6,0xd9,0xdc,0x4f,0x28,0x8a,0xa2,0xe,0x3c,0x29,0x1c,0xc0,0xeb,0x8f,0x74,
+ 0x6f,0x9c,0x90,0x50,0x15,0x55,0x5d,0x19,0xa6,0xbc,0x38,0xe0,0xf9,0x51,0xf2,0xc6,
+ 0x6f,0xcc,0x67,0x70,0x10,0x1d,0xa8,0xeb,0x2c,0x8b,0x83,0xc7,0x3c,0xcf,0x47,0x41,
+ 0xf7,0x4a,0xa5,0x4a,0xe7,0xbc,0x76,0x50,0xce,0x80,0x4f,0xb8,0x45,0x37,0x2b,0xb2,
+ 0x14,0xe,0x38,0x9e,0x8b,0x16,0x22,0xa5,0x4a,0xa5,0x3,0xfe,0xc3,0xcf,0xe5,0x3,
+ 0x8,0xdc,0xee,0x62,0xb1,0xc8,0xb2,0x59,0x14,0x3c,0xe1,0x38,0xae,0x5a,0xaa,0x9c,
+ 0x9e,0x76,0x5c,0xd8,0x7,0x2,0x17,0xe5,0x84,0xee,0x61,0x41,0xf,0x9c,0x2e,0xa4,
+ 0x5d,0x35,0xe4,0x97,0x17,0x80,0x58,0xb9,0x58,0x14,0x59,0x76,0x28,0xa3,0xaf,0x98,
+ 0x74,0x3a,0x9d,0x87,0x2e,0xd7,0x39,0xcc,0x23,0x1f,0x0,0x5f,0xaf,0xd7,0x8f,0x62,
+ 0xb1,0xd8,0xd1,0x22,0x5e,0x98,0x14,0x4,0xe1,0xb0,0x56,0x43,0x7a,0xd,0xf6,0x75,
+ 0xef,0xf7,0xfb,0x17,0x1,0x3d,0xc8,0xa,0x42,0x1f,0x2c,0xe8,0xbb,0x5e,0xf,0x9e,
+ 0x9,0x9a,0xd0,0x5f,0x3,0x8b,0xb5,0xe1,0x8d,0x40,0xd3,0xb4,0x7e,0x0,0xa1,0x6b,
+ 0xc3,0x1b,0x41,0xd6,0xbf,0xb0,0xa0,0x6b,0xc3,0x63,0x18,0x14,0x3c,0x87,0xdb,0x73,
+ 0x7c,0x81,0xf9,0x82,0xf8,0xa,0x7c,0xd2,0x39,0xe,0x7a,0x73,0x10,0x50,0xc,0x43,
+ 0xa5,0x7e,0x43,0xa5,0x28,0x8a,0xa2,0x29,0x9a,0xce,0xa3,0x7,0xee,0xe4,0x92,0x89,
+ 0x30,0x33,0x29,0xa,0xc1,0xd0,0x18,0x59,0xe,0xca,0x4b,0xb7,0xc8,0xb0,0x40,0xe4,
+ 0x69,0x86,0xa2,0x6f,0x34,0xf6,0x6,0x39,0x2f,0x1,0x98,0xc7,0xcc,0xe6,0x31,0xcc,
+ 0x43,0xe0,0x85,0xe9,0xf,0xe0,0xb7,0xf8,0x5,0xfe,0x47,0xd1,0xc6,0x31,0x88,0x99,
+ 0xe7,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /usr/local/google/home/chudy/Icons/back.png
+ 0x0,0x0,0x4,0xb0,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x20,0x0,0x0,0x0,0x20,0x8,0x6,0x0,0x0,0x0,0x73,0x7a,0x7a,0xf4,
+ 0x0,0x0,0x0,0x4,0x73,0x42,0x49,0x54,0x8,0x8,0x8,0x8,0x7c,0x8,0x64,0x88,
+ 0x0,0x0,0x4,0x67,0x49,0x44,0x41,0x54,0x58,0x85,0xed,0x96,0x6d,0x68,0xd5,0x55,
+ 0x1c,0xc7,0x3f,0xe7,0x9c,0xff,0x7f,0xbb,0xce,0xcc,0x8a,0x1c,0xa4,0x22,0xc3,0xb4,
+ 0x15,0x11,0x14,0x59,0xb3,0xdd,0xa9,0x65,0x56,0x9b,0xd9,0x83,0x4a,0xb,0x2,0x53,
+ 0x12,0x4d,0x7b,0x91,0xd8,0xe6,0x5e,0xc6,0x20,0xa4,0x5e,0xa8,0x41,0x41,0xd0,0x13,
+ 0xcc,0x37,0x45,0x4d,0xca,0x30,0xf0,0x45,0x4a,0x96,0xe8,0x45,0x3,0x89,0x5,0xea,
+ 0x16,0x65,0xea,0x7c,0xda,0x75,0xde,0x3d,0xde,0xbb,0x7b,0xef,0x79,0xe8,0xc5,0xff,
+ 0xbf,0xdb,0xbd,0xd7,0xad,0xf6,0x40,0xef,0xf6,0x85,0x1f,0xbf,0x3f,0xe7,0xcf,0xf9,
+ 0xfd,0xbe,0xe7,0xf7,0x74,0xe,0x4c,0x61,0xa,0x93,0xc4,0xe2,0x46,0x55,0x5f,0xdd,
+ 0xe0,0xb9,0x89,0xee,0x97,0x93,0xf0,0x2d,0xa2,0x3b,0xbc,0x9d,0xb,0xee,0xba,0x7f,
+ 0xaf,0xef,0x95,0x4e,0xd8,0xc8,0x84,0x8,0x3c,0xdd,0xc8,0xf4,0x9a,0x26,0xef,0xc0,
+ 0xe2,0xfb,0x56,0xbc,0xf5,0xfa,0xb,0x6f,0x47,0x3c,0xe5,0x4f,0x98,0x80,0x37,0xde,
+ 0xd,0x55,0x4d,0xcc,0x4d,0xe2,0x1f,0x5a,0xb3,0x74,0xd3,0xfc,0x45,0xf7,0x2e,0xf3,
+ 0x95,0x54,0x13,0x76,0xe,0xe3,0x8c,0x40,0x75,0xa3,0xf7,0xd8,0x74,0xef,0xd6,0xb6,
+ 0x37,0x56,0xbf,0xb3,0xf0,0xe1,0xca,0x25,0x7e,0x7b,0xd7,0x49,0xac,0xd3,0x93,0x22,
+ 0x30,0xe6,0x8,0x44,0x1b,0xd4,0xfa,0x59,0x33,0x67,0x7f,0xb4,0xf5,0xc5,0xe6,0x32,
+ 0xe5,0x2b,0x3a,0xba,0x4e,0x92,0x31,0x69,0x1c,0x20,0xc0,0xfc,0x7f,0x4,0x9a,0x91,
+ 0xd1,0xa4,0xb7,0xbb,0x72,0xce,0x43,0x5b,0x36,0xd4,0xed,0x88,0xf4,0x65,0xe2,0x9c,
+ 0xef,0xfe,0x1d,0x63,0x35,0xce,0x59,0x70,0xe,0x7,0x6a,0x2c,0x9d,0x70,0x7c,0xb7,
+ 0x16,0xe3,0x22,0x10,0x6d,0x62,0x6,0x83,0xde,0xfe,0x9a,0x7,0xea,0xaa,0x9f,0x8b,
+ 0x6e,0x88,0x5c,0xea,0x69,0x27,0x91,0xba,0x8a,0x75,0x6,0x6b,0xd,0xc6,0x69,0xa4,
+ 0x90,0x34,0xbf,0xf6,0x9,0xd6,0x59,0x1c,0x6,0xeb,0x6c,0x28,0x6,0x17,0x6a,0x63,
+ 0xd,0xef,0xb6,0xbc,0x39,0x34,0xae,0x8,0xd4,0x6c,0x8f,0xcc,0x77,0xc2,0x1c,0x5e,
+ 0xbb,0x6c,0xe3,0x9c,0x45,0x95,0x4f,0xf8,0x1d,0x5d,0x27,0x48,0x66,0xfa,0x70,0xb8,
+ 0x9c,0x61,0xeb,0xc,0xb1,0xbf,0xbe,0xc5,0x58,0x8d,0xb1,0x1a,0x1d,0x6a,0x63,0xb3,
+ 0x68,0x9b,0xcd,0xe9,0xe5,0xf7,0xbc,0x3a,0xea,0x21,0x47,0x24,0x50,0xd3,0xe8,0x3d,
+ 0x5e,0xe2,0xfb,0xdf,0xad,0xab,0xdb,0x31,0x63,0xf6,0x9d,0xf3,0x44,0xdb,0xe5,0x1f,
+ 0xc9,0x9a,0x74,0xf8,0xd7,0xe1,0xb0,0x20,0x1c,0x16,0x83,0xc5,0xe0,0xa4,0xc6,0xa2,
+ 0x71,0x2e,0xd0,0xc3,0xe4,0xac,0x33,0x38,0x2c,0xce,0x8d,0x9e,0x9d,0x9b,0x8,0x44,
+ 0x1b,0xfc,0x2d,0x77,0xcc,0x2c,0xdf,0xb3,0xae,0x76,0xfb,0x34,0xe9,0x43,0xdb,0xe5,
+ 0x23,0x41,0xae,0x85,0x40,0x8,0x10,0x12,0x10,0x0,0x16,0x2b,0xc,0x16,0x1b,0x90,
+ 0x10,0x1a,0x27,0xd,0xe4,0xa5,0x27,0x8,0xbf,0x6,0x2c,0xe,0x46,0xec,0xd7,0x2,
+ 0x2,0xd1,0x26,0xff,0xab,0x8a,0xf2,0xca,0xe7,0xd7,0xaf,0x6c,0x8c,0x5c,0xea,0x3b,
+ 0x4b,0x67,0xf7,0x59,0x4,0x2,0x21,0x4,0x52,0x6,0x5a,0x0,0x42,0x10,0x9c,0xc,
+ 0x4b,0xca,0xf4,0x93,0xcc,0xf4,0x32,0xa4,0x93,0x68,0x93,0xc6,0x1a,0x87,0x70,0xa,
+ 0xe9,0x7c,0x14,0x25,0x61,0x6d,0x58,0x70,0x8c,0x38,0xad,0xa,0x8,0x58,0x6b,0xab,
+ 0x85,0x7,0x83,0x99,0x4,0x7d,0x43,0xd7,0xd1,0x26,0x3,0x4,0xce,0x95,0x10,0x1,
+ 0x19,0x1c,0x83,0x99,0x1e,0xfa,0x33,0x71,0xfa,0xb3,0xd7,0xc9,0xd8,0x54,0xd0,0x9,
+ 0xe,0x9c,0x5,0x6b,0x1d,0x56,0x3b,0xac,0x71,0x18,0xed,0xf0,0x88,0x90,0xd6,0xa9,
+ 0xb1,0xa5,0x60,0xee,0x79,0x53,0x71,0x8e,0xb3,0xbb,0x3e,0xde,0xbf,0x73,0xf3,0xb3,
+ 0x4b,0x5f,0x2a,0x53,0xd2,0xe7,0xcc,0xb5,0x18,0xa5,0x25,0x3e,0xd2,0x3,0x43,0x1a,
+ 0x2d,0xd2,0x20,0xd,0x52,0x9,0x84,0x14,0x78,0x52,0xe0,0x10,0xe0,0x1c,0xd6,0x82,
+ 0x30,0x61,0x86,0x0,0xe7,0x20,0x9b,0x4d,0xe5,0x13,0x50,0x14,0xcd,0x8c,0x82,0x49,
+ 0xd8,0xda,0x8a,0x39,0xb6,0x4b,0x6f,0xef,0xed,0x4b,0x6c,0xdd,0xf7,0xc3,0xde,0xa4,
+ 0x6f,0xca,0xdc,0xa3,0x15,0x75,0xa4,0xed,0x20,0x3,0xd9,0x6e,0x32,0xc,0x22,0x94,
+ 0x45,0x79,0x12,0xe5,0x89,0x40,0x7c,0x81,0xe7,0x8b,0x7f,0xd6,0x94,0x40,0x7a,0x2,
+ 0xa9,0x4,0x52,0x81,0x54,0x5,0xad,0xef,0x53,0x54,0xb,0x23,0x8d,0x62,0x19,0xdb,
+ 0x63,0xbe,0xee,0xbf,0x92,0xa9,0xfd,0xfe,0xa7,0x7d,0x89,0x2b,0x57,0xaf,0xea,0x27,
+ 0x17,0xae,0xe7,0xb6,0xb2,0x59,0xa1,0xd1,0xc0,0x81,0xf2,0x24,0xca,0x17,0x28,0x5f,
+ 0xa2,0x7c,0x89,0xf4,0x43,0xc7,0x39,0xe7,0x41,0xea,0x82,0xda,0x29,0x88,0x78,0x41,
+ 0xd4,0x47,0x6a,0x43,0x9,0xc8,0x53,0x2d,0xba,0x6d,0xde,0x12,0x96,0x1c,0xb3,0x87,
+ 0x5b,0x6f,0x24,0xba,0xee,0x5e,0x5a,0xf5,0x4a,0xe9,0x6f,0xdd,0x7,0x89,0xa7,0xff,
+ 0x44,0xe5,0x39,0x59,0x59,0xd1,0x0,0x8e,0xb0,0x6,0x82,0x34,0x4,0xda,0x61,0x75,
+ 0x58,0x13,0xc6,0x15,0xd8,0xe,0xc5,0x8e,0x46,0x20,0x87,0xb,0x47,0x89,0xf7,0x76,
+ 0xe8,0x55,0xba,0xbe,0x6d,0x4f,0x4f,0x5f,0xa2,0x76,0xd5,0x53,0x6b,0x23,0x9d,0x43,
+ 0xbf,0x72,0x7e,0xf0,0x97,0x80,0x84,0x17,0xd4,0xc1,0x7b,0x1f,0x34,0xff,0x9b,0x99,
+ 0x7c,0x8c,0x69,0x14,0xbb,0x90,0x9d,0x3,0x6c,0xef,0x35,0x86,0x4e,0x7c,0x68,0xb6,
+ 0x65,0x37,0x76,0x6e,0xfe,0x62,0xa0,0xa5,0x61,0xcd,0xaa,0xfa,0xc8,0xed,0xe5,0xe5,
+ 0x9c,0xee,0x3f,0x84,0x50,0x26,0x97,0xe3,0xe3,0xbb,0x75,0x14,0xd0,0xa1,0x64,0xf3,
+ 0x24,0x93,0xf7,0x6d,0xf3,0xec,0xe7,0x42,0x52,0xc,0x53,0x24,0x1a,0xd0,0xa7,0x3e,
+ 0xd7,0x9f,0x76,0x9e,0xee,0xd9,0xf4,0xe5,0x37,0x2d,0x3,0x83,0x71,0xe7,0xaa,0xca,
+ 0xeb,0x99,0xe6,0xdf,0x12,0xc,0xa6,0x0,0x49,0x60,0x8,0x48,0x17,0x39,0xd5,0x79,
+ 0x62,0xc2,0xb5,0x1c,0x46,0x7b,0x4d,0xb8,0x11,0xbe,0x5d,0xfc,0x8c,0xbb,0x20,0x15,
+ 0x7,0x2f,0xa7,0xce,0xac,0x88,0xa8,0xb2,0xb2,0x47,0x16,0x3c,0xa3,0x4a,0x54,0x29,
+ 0x47,0x63,0x47,0xb8,0x18,0xb3,0xef,0x17,0x9d,0xb8,0x98,0x44,0x36,0x24,0x57,0xd0,
+ 0x86,0xa3,0xd5,0x80,0xb,0xd,0xd8,0x3c,0xd1,0x80,0x77,0xee,0x67,0xdd,0x3e,0x70,
+ 0x89,0xe5,0xce,0x1e,0xfd,0xac,0xab,0x3b,0x5e,0xb5,0xba,0xb6,0x3e,0x92,0x17,0x81,
+ 0xe1,0xf0,0x16,0x47,0x70,0x98,0xd0,0x4d,0x97,0xc2,0x7f,0xbd,0xa7,0x86,0x1d,0x9b,
+ 0x70,0xb3,0x1,0x74,0x32,0x41,0xea,0x62,0xcc,0xb6,0x96,0x2e,0xb8,0x31,0xbd,0xe3,
+ 0x8f,0xf6,0x7,0x93,0x43,0x3,0xde,0xc5,0x98,0xdd,0x59,0x74,0xf2,0x74,0x9e,0x4c,
+ 0xee,0xd9,0x54,0x4,0x11,0x12,0xf7,0x0,0x7f,0xf1,0x36,0xf5,0x72,0xf8,0x18,0xf1,
+ 0xc3,0xb5,0xdc,0x75,0x35,0x85,0x29,0x8c,0x5,0x7f,0x3,0x8d,0x63,0x46,0xa6,0x8c,
+ 0x98,0x19,0x1a,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /usr/local/google/home/chudy/Icons/delete.png
+ 0x0,0x0,0x5,0x87,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x20,0x0,0x0,0x0,0x20,0x8,0x6,0x0,0x0,0x0,0x73,0x7a,0x7a,0xf4,
+ 0x0,0x0,0x0,0x4,0x73,0x42,0x49,0x54,0x8,0x8,0x8,0x8,0x7c,0x8,0x64,0x88,
+ 0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xa,0xf0,0x0,0x0,0xa,0xf0,
+ 0x1,0x42,0xac,0x34,0x98,0x0,0x0,0x0,0x18,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,
+ 0x74,0x77,0x61,0x72,0x65,0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x46,0x69,0x72,0x65,
+ 0x77,0x6f,0x72,0x6b,0x73,0x4f,0xb3,0x1f,0x4e,0x0,0x0,0x5,0x5,0x49,0x44,0x41,
+ 0x54,0x58,0x85,0xc5,0x97,0x5d,0x6c,0x54,0x45,0x14,0xc7,0xff,0x67,0xe6,0xee,0x6e,
+ 0x3f,0xb7,0xd0,0x52,0xa,0xba,0x18,0x40,0x81,0x2,0x9a,0xd0,0xa6,0x2d,0xf1,0xb,
+ 0x5b,0xe5,0x81,0x25,0x25,0x6b,0xfb,0x62,0x8c,0x10,0xa3,0xc4,0xf8,0x80,0x31,0x68,
+ 0xa2,0x4,0x9f,0x4c,0x48,0xd4,0x7,0x13,0x24,0x7e,0x24,0x3e,0xa8,0x60,0xc4,0x68,
+ 0x4c,0x1b,0x4d,0xb0,0x54,0x25,0x88,0x89,0x89,0x1f,0x58,0x8a,0xa9,0x2,0x96,0x96,
+ 0x60,0xd5,0x7e,0xb1,0xbb,0x94,0x76,0x5b,0xee,0xee,0x9d,0x99,0xe3,0x43,0xdb,0xb5,
+ 0xbb,0xbd,0xfb,0x51,0x8d,0xe1,0x24,0x27,0xb9,0xb9,0x33,0xe7,0xfc,0x7f,0x33,0x73,
+ 0x66,0xcf,0x5d,0x62,0x66,0xdc,0x48,0x13,0x37,0x54,0x1d,0x80,0x95,0x69,0xe0,0x57,
+ 0x6f,0x49,0x69,0x41,0xed,0xca,0x97,0x49,0x8a,0x4a,0x15,0x8d,0xbd,0xba,0xf6,0xfc,
+ 0xa5,0xd3,0xb,0x4d,0xde,0xdf,0xb0,0xf1,0x45,0xe1,0xf3,0x6c,0x54,0x31,0xfb,0xe8,
+ 0x9a,0xee,0xb,0x9f,0xba,0xcd,0x21,0xb7,0x23,0xe8,0xb9,0x29,0x50,0x56,0xbc,0x7e,
+ 0xf9,0x9,0x63,0x74,0x1d,0xc,0x83,0x3c,0x32,0xe1,0x84,0xc7,0xb7,0x55,0x9f,0xed,
+ 0xfd,0x3a,0x5f,0xf1,0xbe,0x2d,0x9b,0xda,0xc9,0xb2,0x5a,0x58,0x29,0x8,0xaf,0x7,
+ 0xda,0x76,0x76,0xaf,0xf9,0xf6,0xec,0xbb,0x39,0x1,0xba,0x56,0xac,0x28,0xf3,0xaf,
+ 0x5f,0x7e,0x42,0x8d,0xc5,0xea,0xe2,0xa3,0x57,0x1,0x66,0x58,0xfe,0x62,0xf8,0xaa,
+ 0x16,0x27,0x9c,0x68,0x2c,0xb8,0xe1,0xcc,0x85,0x93,0xb9,0xc4,0x7b,0x9b,0x6a,0xdb,
+ 0x8d,0xa3,0x5a,0xe2,0x83,0x61,0xb0,0x36,0x10,0x5,0x3e,0x14,0x6,0x2a,0x61,0x14,
+ 0xef,0x5e,0xf7,0x4d,0x57,0xa,0x44,0xa,0xc0,0xd9,0x9a,0xea,0xb2,0xc2,0x25,0xfe,
+ 0xaf,0x12,0x63,0xb1,0xfa,0x78,0x78,0xc,0xc2,0x92,0x0,0x0,0xd6,0x6,0xb2,0xc8,
+ 0x87,0xc2,0xaa,0xf2,0x44,0x22,0x1a,0xb,0xde,0xd1,0xed,0xe,0x41,0x20,0x9c,0x6f,
+ 0xac,0x69,0xd7,0x8e,0x6a,0xb1,0x87,0x22,0x80,0x10,0x20,0x2,0xd8,0x30,0x48,0xa,
+ 0x14,0x5,0x96,0x82,0x41,0x3b,0xd7,0x9f,0x3c,0x7d,0x74,0x36,0x26,0xa5,0x8,0x65,
+ 0x49,0xe1,0x63,0xd7,0xaf,0xc6,0xea,0x27,0xaf,0x8c,0x41,0x4b,0x9,0x87,0x1,0x87,
+ 0x1,0x25,0x4,0xec,0xc9,0x38,0x26,0x86,0xa3,0x5e,0x59,0x5e,0xd2,0x71,0xa6,0x66,
+ 0xdd,0xfd,0x6e,0x0,0xbf,0x34,0xd6,0xb4,0x25,0x12,0xaa,0x65,0x62,0x30,0x2,0x25,
+ 0x4,0x14,0x66,0xe2,0x89,0xe0,0x28,0x8d,0x89,0xbf,0xae,0x40,0x25,0x12,0x87,0xba,
+ 0x9b,0x6a,0xa5,0x2b,0x40,0xec,0xca,0xd8,0xd4,0x64,0x74,0x1c,0xc6,0x92,0xd0,0x40,
+ 0x8a,0x1b,0x29,0x10,0x9f,0x8a,0x63,0x62,0x38,0xea,0xf3,0x96,0xfb,0x3b,0x7e,0xaa,
+ 0xa9,0x4e,0x42,0x10,0x8,0x3d,0x8d,0xb5,0xed,0x4e,0x42,0xb5,0x4e,0xc,0x45,0x60,
+ 0xa4,0x98,0x17,0xaf,0x85,0x98,0x86,0x18,0x8e,0x4e,0xe9,0x71,0x9b,0x5d,0x1,0x74,
+ 0x49,0xe9,0x11,0x23,0x45,0xa7,0x2,0xe0,0xe6,0x5a,0xa,0xd8,0x53,0x36,0xc6,0x87,
+ 0x23,0x3e,0x6f,0x79,0x69,0xc7,0xf7,0xb5,0xeb,0xee,0x5,0x80,0xee,0xc6,0x9a,0xb6,
+ 0x84,0xa3,0x5a,0xae,0xd,0x85,0xa1,0x25,0xb9,0xc6,0x2a,0x0,0x8a,0x48,0x1b,0xcb,
+ 0x7a,0xa2,0xae,0xeb,0x9c,0x49,0xc2,0xa7,0x17,0x61,0xe7,0xe6,0xd,0xd2,0x17,0x9d,
+ 0x38,0xc6,0x86,0xb7,0xb9,0x6d,0x33,0x8,0x60,0x65,0xe0,0x29,0xf2,0xc1,0xbf,0xac,
+ 0x62,0xc,0xc0,0xcf,0x8e,0x1d,0xbf,0x6f,0x7c,0x30,0xc,0x92,0xd2,0x35,0x64,0x26,
+ 0x4e,0x93,0x10,0xa1,0xa6,0xde,0x81,0xcf,0x53,0x5e,0xbb,0x5d,0xc3,0xe3,0x9b,0x1b,
+ 0xa4,0x27,0x32,0x74,0x8c,0x39,0x3,0x4,0xa6,0xb,0xd3,0x5b,0x5c,0x80,0x2,0x7f,
+ 0x31,0xae,0xd,0x45,0x20,0x84,0x0,0x28,0xa3,0xbc,0x26,0x21,0x43,0x5b,0x2f,0xfe,
+ 0xfe,0x79,0xfa,0x80,0x2b,0x0,0x0,0x7c,0x76,0x4f,0xbd,0xf4,0xe,0xf,0x1f,0x43,
+ 0x36,0x8,0xc3,0x60,0x63,0x92,0xb7,0x25,0xa3,0xb8,0x94,0xa1,0x6d,0xbd,0xf3,0xc5,
+ 0xb3,0x2,0x0,0x40,0xdb,0xdd,0x75,0xd2,0x3b,0x32,0x92,0x15,0x22,0x87,0x69,0x92,
+ 0x32,0xd4,0x9c,0x41,0x3c,0x27,0x0,0x0,0x7c,0xdc,0x50,0x23,0xbd,0x91,0xf0,0xbf,
+ 0x81,0xd0,0x24,0x45,0xe8,0xc1,0x8b,0x3,0x19,0xc5,0x81,0x3c,0x9a,0xd1,0x43,0x3f,
+ 0x76,0xeb,0x68,0xf3,0x23,0x41,0x4d,0xd4,0x9e,0xb1,0xba,0xe7,0x7b,0xcc,0x48,0xf9,
+ 0x40,0x2e,0xf1,0xbc,0x0,0x0,0x60,0xf7,0xa1,0x57,0xa0,0x8,0x71,0xd,0x46,0x9e,
+ 0x6e,0x12,0xc4,0x53,0xf9,0xe4,0xce,0x79,0x4,0x0,0xf0,0xc1,0xad,0x81,0x76,0x30,
+ 0xb7,0x2c,0xe4,0xcb,0x81,0x80,0x38,0x84,0xc,0xee,0xec,0x1b,0xc8,0xda,0xc0,0x72,
+ 0x2,0x1c,0x59,0x1d,0x68,0x63,0xe6,0xd6,0x5,0x68,0xcf,0xb5,0x38,0x49,0x19,0x7c,
+ 0x34,0xb,0x44,0x56,0x80,0x77,0x56,0x2f,0x7c,0xe5,0xf3,0x4,0xa6,0x21,0xb6,0x3f,
+ 0xde,0x37,0xe0,0xde,0xc0,0x32,0x1,0xbc,0xfd,0xdf,0x56,0x9e,0x2a,0x42,0xd3,0xc7,
+ 0xf1,0xa4,0xcb,0x4e,0xb8,0x2,0xbc,0xb1,0x2a,0xd0,0x86,0x7c,0xc4,0x9,0x93,0x44,
+ 0x74,0x8e,0xd,0xd7,0xe7,0x31,0x37,0x4e,0x42,0x6,0xf7,0xf4,0xa7,0x42,0xa4,0xdc,
+ 0x82,0xf7,0xef,0xaa,0xb3,0xe,0xad,0xa,0xb4,0x69,0x36,0xad,0xd9,0xaa,0x5c,0x81,
+ 0xa1,0x0,0x6d,0x84,0x6c,0xdd,0x73,0xe9,0xcf,0x6,0x4d,0xd4,0xa9,0x72,0xdd,0xc,
+ 0x66,0x9f,0xd2,0xfa,0xf8,0xeb,0xb7,0xdd,0xb2,0x25,0x23,0x40,0x64,0x74,0x74,0x97,
+ 0x62,0xd3,0x9a,0xeb,0x9e,0x6b,0x40,0xb3,0x14,0xa1,0xa7,0xfb,0x7,0xbe,0x4,0x0,
+ 0x5e,0xba,0x78,0x87,0x21,0xca,0xd8,0x45,0xff,0x71,0xf6,0x39,0x5a,0x1f,0x7e,0xad,
+ 0x7a,0x75,0x52,0x37,0x5,0xc0,0x61,0x2e,0x77,0x72,0x26,0x81,0x36,0x52,0x86,0x9e,
+ 0xe9,0xff,0x23,0xf9,0x23,0xb3,0xf7,0x87,0x1e,0x65,0x2f,0x5b,0xd6,0xac,0x89,0x3a,
+ 0x73,0xc5,0x3b,0xcc,0x8b,0xe2,0xb6,0x9d,0x6c,0x5b,0x29,0x0,0x54,0x50,0x78,0xd8,
+ 0x8,0xd9,0xe3,0x30,0xa0,0xd2,0xdc,0x61,0x40,0x81,0x8c,0x11,0x32,0xf4,0xdc,0x1c,
+ 0xf1,0x59,0x7b,0xe1,0xbb,0x2e,0x6d,0x57,0x54,0x36,0x1b,0x50,0xa7,0x5b,0xbc,0x9a,
+ 0x8e,0x7,0x7b,0xbc,0xcf,0xef,0xbb,0x3c,0xa8,0x93,0x9a,0xe9,0x45,0xf8,0xd6,0x9d,
+ 0x75,0x15,0x91,0x91,0x91,0x53,0xac,0xf5,0xed,0x73,0x47,0x8,0x50,0x1e,0xcb,0xda,
+ 0xb1,0xbf,0x7f,0xa0,0x33,0x5d,0x3c,0xdd,0xe,0xac,0xbc,0xb9,0x83,0x99,0x83,0x29,
+ 0xf1,0x44,0xf0,0x78,0x7d,0x4f,0xed,0xef,0xbd,0xf4,0x66,0xca,0xa2,0x99,0x19,0x16,
+ 0xd1,0x8c,0x6,0x84,0x62,0xd6,0x2f,0xd5,0x6d,0xaa,0xb4,0x23,0xe1,0x53,0xc4,0x66,
+ 0x3,0x18,0x0,0x91,0x1e,0x37,0xfc,0xf0,0xc1,0x81,0xc1,0x4f,0x2c,0xa2,0xb2,0x99,
+ 0xb9,0xe9,0xdd,0x9f,0x1,0x40,0x3,0x89,0x4d,0xcb,0xab,0xcc,0x76,0x8f,0xe8,0xb0,
+ 0x88,0x9a,0xc0,0xc,0x10,0xc1,0x58,0x9e,0x67,0xf,0xf4,0x5d,0x3e,0x48,0x44,0x52,
+ 0x2,0x6,0x0,0x2b,0xe6,0x24,0x40,0x1,0x80,0xa,0x0,0xa5,0x0,0x7c,0x1a,0x88,
+ 0xaf,0xf5,0x97,0x6,0xb6,0xfa,0x8b,0xf7,0x59,0xc0,0xa2,0xdf,0xec,0xc4,0x87,0x5f,
+ 0x84,0xa3,0x27,0x24,0xb0,0x64,0xce,0xb1,0xb9,0x2,0x0,0x60,0xd,0x5c,0x2f,0xb0,
+ 0x2c,0xb9,0xab,0xaa,0x62,0x6f,0x11,0xd1,0xca,0x11,0x6d,0x8e,0x7f,0x34,0x34,0xfa,
+ 0x1e,0x80,0x62,0x9,0x38,0x0,0x26,0x0,0x44,0x14,0xb3,0x3d,0xb,0x60,0x1,0x28,
+ 0x2,0xe0,0x3,0xe0,0x1,0xe0,0xd1,0xd3,0xdf,0x92,0x71,0x0,0x12,0x80,0x47,0x4e,
+ 0xc3,0xcd,0xa,0xd3,0x9c,0xe7,0x14,0xf1,0xb9,0x3b,0x31,0x23,0xc4,0x0,0xc,0x1,
+ 0x45,0x62,0xa6,0xe,0x67,0xf2,0x4e,0x29,0x66,0x95,0x57,0x33,0x2,0x30,0x7b,0x4c,
+ 0xe9,0x96,0xe,0x90,0x34,0x95,0x67,0xde,0xbc,0x1,0xfe,0x2f,0xbb,0xe1,0xff,0x8e,
+ 0xff,0x6,0xd,0xb3,0xf2,0x0,0x51,0x1b,0x2c,0x34,0x0,0x0,0x0,0x0,0x49,0x45,
+ 0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /usr/local/google/home/chudy/Icons/inspector.png
+ 0x0,0x0,0x4,0x7c,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x20,0x0,0x0,0x0,0x20,0x8,0x3,0x0,0x0,0x0,0x44,0xa4,0x8a,0xc6,
+ 0x0,0x0,0x1,0xcb,0x50,0x4c,0x54,0x45,0xff,0xff,0xff,0x82,0xd0,0xff,0x63,0xc6,
+ 0xff,0x5a,0xc3,0xff,0x19,0xae,0xff,0x11,0xac,0xff,0x1,0x8b,0xce,0x4,0x91,0xd8,
+ 0x4,0x93,0xdb,0x1,0x8b,0xce,0x2,0x8e,0xd4,0xb,0xa2,0xf0,0x9,0x9e,0xec,0x82,
+ 0xd0,0xff,0x7b,0xce,0xff,0x5a,0xc3,0xff,0x52,0xc1,0xff,0x19,0xae,0xff,0x11,0xac,
+ 0xff,0xe,0xa8,0xfb,0xc,0xa5,0xf6,0x74,0xcc,0xff,0x6a,0xc8,0xff,0x1,0x8b,0xce,
+ 0x1,0x8b,0xce,0x52,0xc1,0xff,0x4a,0xbe,0xff,0x23,0xb2,0xff,0x1f,0xb0,0xff,0x9,
+ 0x9e,0xec,0x8,0x9b,0xe6,0x6,0x95,0xdf,0x4,0x93,0xdb,0x82,0xd0,0xff,0x1,0x8b,
+ 0xce,0x7,0x98,0xe3,0x31,0xb6,0xff,0x2a,0xb4,0xff,0x8,0x9b,0xe6,0x4a,0xbe,0xff,
+ 0x6,0x95,0xdf,0x42,0xbb,0xff,0xe,0xa8,0xfb,0x2,0x8e,0xd4,0x1,0x8b,0xce,0x39,
+ 0xb8,0xff,0x4,0x91,0xd8,0x1,0x8b,0xce,0x42,0xbb,0xff,0x82,0xd0,0xff,0x31,0xb6,
+ 0xff,0x6a,0xc8,0xff,0x63,0xc6,0xff,0xc,0xa5,0xf6,0xe,0xa3,0xf1,0x7b,0xce,0xff,
+ 0x74,0xcc,0xff,0x8,0x8d,0xcf,0xe3,0xe0,0xd0,0xdf,0xdd,0xcd,0x39,0xb8,0xff,0x2a,
+ 0xb4,0xff,0xb,0xa2,0xf0,0x9,0x9e,0xec,0x17,0x95,0xd4,0x6,0x95,0xdf,0x8,0x8d,
+ 0xcf,0xc,0xa5,0xf6,0x4a,0xbe,0xff,0x19,0xae,0xff,0x1,0x8b,0xce,0xe7,0xe5,0xd6,
+ 0x31,0xb6,0xff,0xf0,0xee,0xe3,0x23,0xb2,0xff,0x29,0xb0,0xf7,0x1f,0xb0,0xff,0xee,
+ 0xec,0xdf,0x11,0xac,0xff,0x45,0x9f,0xcb,0xe,0xa8,0xfb,0x11,0x91,0xd1,0xe,0xa3,
+ 0xf1,0x85,0xcd,0xee,0x27,0x9c,0xd7,0x21,0x9a,0xd6,0x5a,0xc3,0xff,0x8,0x9b,0xe6,
+ 0x52,0xc0,0xff,0x14,0x95,0xd5,0x52,0xc1,0xff,0xea,0xe8,0xda,0x4,0x93,0xdb,0x4,
+ 0x91,0xd8,0x2,0x8e,0xd4,0x42,0xbb,0xff,0x3c,0xba,0xff,0x43,0xb5,0xee,0x7,0x98,
+ 0xe3,0x21,0xa4,0xe8,0x82,0xd0,0xff,0xdf,0xe1,0xd7,0x7b,0xce,0xff,0x74,0xcc,0xff,
+ 0x41,0x97,0xc0,0x6a,0xc8,0xff,0x63,0xc6,0xff,0x73,0xa4,0xb7,0x10,0x99,0xe0,0x5e,
+ 0xc3,0xfa,0xec,0xea,0xdd,0x3e,0xab,0xe0,0xdc,0xd9,0xcb,0xd1,0xd8,0xce,0x48,0xa5,
+ 0xd4,0x8d,0xd0,0xef,0x23,0xa6,0xec,0x4c,0xbc,0xf6,0x28,0x9f,0xdc,0x47,0xa2,0xcf,
+ 0x42,0xb5,0xf7,0x16,0xa8,0xf5,0x5e,0x98,0xb2,0x2a,0xa3,0xe2,0x43,0x9c,0xc6,0x11,
+ 0xa7,0xf7,0x17,0xa4,0xee,0x79,0xcb,0xf4,0x74,0xbb,0xd8,0x24,0xa0,0xe0,0x1e,0xa0,
+ 0xe4,0x7d,0xc9,0xec,0x75,0xa7,0xba,0x97,0xc4,0xd7,0x40,0xaf,0xe5,0x5f,0xbe,0xf0,
+ 0xe1,0xe7,0xe0,0x8a,0xb2,0xc3,0x44,0x8f,0xb6,0x77,0xb5,0xd2,0x34,0x8f,0xc0,0x9a,
+ 0xd5,0xf1,0x91,0xd1,0xef,0x6e,0xb2,0xce,0x10,0x94,0xde,0x20,0xac,0xf6,0x26,0xaa,
+ 0xf0,0xe6,0xec,0xe5,0x88,0xa7,0xb3,0x2b,0xa6,0xe6,0x83,0xb8,0xd0,0x76,0xad,0xc3,
+ 0x5,0x81,0xbe,0xcd,0x29,0x6a,0xe2,0x0,0x0,0x0,0x3a,0x74,0x52,0x4e,0x53,0x0,
+ 0x11,0x11,0x11,0x11,0x11,0x33,0x33,0x33,0x44,0x44,0x44,0x44,0x44,0x44,0x55,0x55,
+ 0x55,0x55,0x55,0x55,0x66,0x66,0x77,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0xaa,0xaa,0xaa,0xbb,0xbb,0xbb,0xbb,
+ 0xbb,0xbb,0xbb,0xbb,0xcc,0xcc,0xdd,0xdd,0xee,0x90,0x3a,0x2a,0x30,0x0,0x0,0x2,
+ 0x26,0x49,0x44,0x41,0x54,0x78,0x5e,0x6d,0xd0,0x65,0x5b,0x1b,0x51,0x10,0x5,0xe0,
+ 0xa9,0x37,0xd4,0x75,0x53,0x15,0xa8,0xd2,0x2,0x55,0x61,0xdd,0xe2,0xee,0x2e,0xb8,
+ 0xbb,0xd6,0xdd,0xdd,0xfb,0x73,0x3b,0x77,0xee,0x42,0xc8,0x53,0x4e,0x3e,0xbe,0x67,
+ 0x67,0xe6,0x6,0xd6,0x64,0xe3,0x9e,0x23,0x17,0xae,0x76,0x9c,0x3d,0xb6,0x6f,0x33,
+ 0xac,0x97,0x43,0x37,0x46,0xb3,0x45,0xbb,0x26,0x2b,0xc1,0x70,0xb4,0xfd,0xc0,0x7f,
+ 0xbc,0xeb,0xce,0xd0,0xc8,0x68,0x36,0x6f,0xd7,0x65,0x45,0xf1,0x44,0xe3,0xd6,0xad,
+ 0x1d,0xcd,0x7e,0xa6,0x7f,0x88,0xa,0xb5,0xba,0x5f,0x9,0xb2,0x82,0xa5,0x9e,0x58,
+ 0xc3,0x1b,0xae,0xf5,0xf,0xa2,0xe3,0x86,0xfc,0xdc,0x13,0x39,0xcc,0xa,0xaa,0xaa,
+ 0x9d,0x6f,0x14,0xd0,0xf9,0x80,0x89,0x1f,0x81,0xc8,0xdb,0x90,0x27,0x4e,0x85,0x5c,
+ 0x5b,0x63,0x3e,0xf7,0xac,0xfd,0x29,0x10,0x88,0x44,0x3e,0x44,0x59,0x41,0xd3,0x72,
+ 0xbd,0xa7,0xb8,0xef,0x1e,0x74,0x3c,0x4f,0x85,0xc9,0xdf,0x74,0x82,0x96,0xcb,0x19,
+ 0xc6,0x76,0x2a,0xdc,0x45,0xe6,0x5e,0x9b,0xc0,0x1,0x3,0x1f,0x9d,0xd,0xbd,0x46,
+ 0xb9,0x93,0xf9,0xe1,0x11,0x64,0xee,0x35,0xf9,0xcd,0xbb,0x9f,0xef,0x1f,0xd1,0x0,
+ 0x2a,0x54,0x5a,0xb0,0x70,0x93,0xb8,0x48,0x4e,0x6f,0x64,0x6f,0xa0,0xd,0x58,0xb8,
+ 0xc,0xb0,0x29,0x8b,0x29,0x72,0xff,0x3c,0x97,0x4a,0xa5,0x5e,0x84,0x1a,0x3,0xaa,
+ 0x5e,0x80,0xbd,0x88,0x79,0x1b,0xb9,0x2e,0xfb,0x5f,0xd,0x4c,0x96,0x4a,0xa5,0x59,
+ 0x67,0x0,0x15,0x5c,0x70,0xd4,0xb6,0x89,0xd9,0x7f,0x1c,0x4c,0xa1,0xfb,0x66,0x93,
+ 0xab,0x3,0xaa,0x5e,0x1,0x2e,0xd5,0x48,0x65,0x3f,0x7a,0x78,0x1,0xdd,0xb7,0x44,
+ 0x4f,0xe0,0x1b,0xbc,0x6e,0xe8,0x60,0xe8,0x67,0x1c,0xf4,0x78,0x16,0x7c,0x98,0x25,
+ 0xf4,0x95,0x1,0xa6,0x0,0xd7,0xf1,0x5b,0xe2,0x30,0xde,0xbf,0xcc,0xa,0x31,0x72,
+ 0xa3,0xc2,0x6,0x24,0xdc,0x70,0x4e,0xe,0x2a,0x61,0x54,0xe4,0x78,0xbc,0x7,0x5d,
+ 0x8c,0xb1,0x5,0x65,0xb6,0x0,0xb,0x2,0x1c,0x57,0x10,0x91,0x99,0x5b,0x3d,0x3e,
+ 0x51,0x14,0x63,0x8e,0xb3,0x82,0xee,0x86,0xfd,0x4a,0x94,0x10,0xd9,0xb2,0x7a,0x44,
+ 0xcc,0xc3,0x55,0xc7,0x82,0xb,0xb6,0x78,0x3c,0x88,0xc4,0xaa,0xfa,0x9a,0xa,0xcc,
+ 0x2b,0xe4,0x89,0x6e,0x0,0x68,0xf,0x21,0x12,0xab,0x1a,0x2f,0x70,0x67,0xc9,0xb4,
+ 0x62,0xe1,0xe0,0xb7,0x7b,0x56,0x52,0x65,0xac,0x69,0x53,0xe8,0xd2,0x30,0xba,0x97,
+ 0xf,0xc0,0xd,0x98,0xdb,0xa1,0x24,0x29,0xbe,0x6e,0x4a,0x94,0x24,0x69,0x18,0xf7,
+ 0xf3,0x1,0xe9,0x2e,0x60,0xd9,0xf9,0xf8,0x3b,0x29,0x1e,0xff,0x54,0xc2,0xdc,0x47,
+ 0xa6,0x64,0xcc,0xad,0x40,0x39,0x39,0x3f,0xcf,0x18,0x7d,0x46,0x92,0xa6,0xa7,0x67,
+ 0xbe,0x70,0xd7,0x75,0x1,0x9c,0xb4,0xf5,0xf5,0xe1,0x7f,0x6f,0x18,0x7f,0x5e,0xb2,
+ 0x8c,0x8d,0xfd,0xa5,0xef,0xe9,0x42,0x27,0x17,0x9f,0xff,0x1a,0x2f,0xd3,0xf1,0x2b,
+ 0xe3,0xcd,0xb4,0x8e,0xde,0xc8,0xe9,0xf1,0x7,0xcf,0xbe,0x56,0x1b,0x9c,0x49,0x9b,
+ 0x2,0x34,0x65,0x5b,0x67,0x61,0x71,0x31,0x53,0x48,0x98,0xa6,0x59,0xd0,0xd3,0xe9,
+ 0x44,0x17,0xdd,0xd7,0x94,0x96,0x2b,0xa6,0x9e,0xa1,0x24,0xba,0x5b,0x5d,0xb0,0x6e,
+ 0x5c,0x82,0x9b,0xfd,0x9a,0xf4,0x1f,0x2a,0x86,0xf6,0x67,0x8d,0x17,0xbd,0x4f,0x0,
+ 0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /usr/local/google/home/chudy/Icons/breakpoint_16x16.png
+ 0x0,0x0,0x4,0x54,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x10,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0x1f,0xf3,0xff,0x61,
+ 0x0,0x0,0x4,0x1b,0x49,0x44,0x41,0x54,0x38,0x11,0x1,0x10,0x4,0xef,0xfb,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xd3,0x40,0xc,
+ 0xcf,0x14,0x4d,0x5c,0x30,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfa,0xe4,0xdf,
+ 0x0,0x1e,0xe4,0xb9,0x3,0x1,0xab,0x0,0xfe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xd5,0x39,0xe,0x12,0xe3,0x7e,
+ 0x57,0xff,0xf4,0xd5,0xcb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xde,0x68,
+ 0x3c,0xff,0xcc,0x3d,0xb,0xed,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xcd,0x49,0x1c,0xfd,0xa,
+ 0x16,0x19,0x2,0x14,0x2d,0x30,0x0,0xf5,0xda,0xd1,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x1,0x0,0xc,
+ 0x58,0x79,0x0,0xf6,0xbb,0xa0,0x0,0xe2,0xbb,0xbb,0x31,0x3b,0xcb,0xf5,0xd0,0x0,
+ 0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0xbe,0x33,0xa,0x4a,0x12,0x25,0x28,0x2,
+ 0x23,0x92,0xb7,0x0,0xf2,0xd5,0xce,0x0,0xfd,0xfb,0xfd,0x0,0xfd,0xfb,0xfd,0x0,
+ 0xfd,0xfb,0xfd,0x0,0xfd,0xfb,0xfd,0x0,0xfd,0xfb,0xfd,0x0,0xfc,0xfa,0xfc,0x0,
+ 0xfe,0xdb,0xc8,0x0,0xf2,0xe1,0xe1,0x0,0x4,0xc,0x9,0xcf,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x0,0x6f,0x3c,0x29,0xda,0xfe,0xd,0x16,
+ 0x0,0xf8,0xb8,0x9c,0x0,0xfb,0xf8,0xf9,0x0,0xfe,0xfe,0xfe,0x0,0xfe,0xfe,0xfe,
+ 0x0,0xfe,0xfe,0xfe,0x0,0xfe,0xfe,0xfe,0x0,0xfe,0xfe,0xfe,0x0,0xfe,0xfe,0xfe,
+ 0x0,0xf7,0xe1,0xdc,0x0,0x1c,0x8a,0xb0,0x0,0xff,0xda,0xc9,0x0,0x4d,0xfb,0xe8,
+ 0xf9,0xa3,0xe8,0xfc,0xc4,0x2,0xb4,0x2c,0xa,0x9d,0x7,0x5,0x4,0x0,0x16,0x5d,
+ 0x70,0x0,0xf6,0xef,0xf3,0x0,0xfc,0xfa,0xfd,0x0,0xfc,0xfa,0xfd,0x0,0xfc,0xfa,
+ 0xfd,0x0,0xfc,0xfa,0xfd,0x0,0xfc,0xfa,0xfd,0x0,0xfc,0xfa,0xfd,0x0,0xfc,0xfa,
+ 0xfd,0x0,0xfc,0xfa,0xfd,0x0,0xe8,0x84,0x62,0x0,0xef,0xf1,0xfc,0x0,0xd,0x1a,
+ 0x1c,0x87,0x0,0x0,0x0,0x0,0x1,0xc7,0x50,0x2c,0xff,0x11,0x4a,0x5b,0x0,0xfa,
+ 0xb9,0xa3,0x0,0xfd,0xfe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x13,0x7f,0xa0,0x0,0xef,
+ 0x83,0x63,0x0,0xda,0xd4,0xdc,0xc4,0x4,0xea,0xe7,0xed,0x0,0x4,0xa3,0x8d,0x0,
+ 0xf2,0xb,0x17,0x0,0x7,0xe9,0xe0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfd,0xff,0x0,0x0,0xa,0xdb,0xd2,0x0,
+ 0xfd,0xfe,0xff,0x0,0xfa,0xfe,0x2,0x6d,0x2,0xe6,0xe5,0xf0,0x1b,0xfa,0xa,0x13,
+ 0x0,0x15,0x6d,0x81,0x0,0xf9,0xfb,0xff,0x0,0xfa,0xfb,0xff,0x0,0xfa,0xfb,0xff,
+ 0x0,0xfa,0xfb,0xff,0x0,0xfa,0xfb,0xff,0x0,0xfa,0xfb,0xff,0x0,0xfa,0xfb,0xff,
+ 0x0,0xfa,0xfb,0xff,0x0,0xfa,0xfb,0xff,0x0,0x5,0x59,0x70,0x0,0xe7,0x83,0x6f,
+ 0x0,0xcf,0xd0,0xdd,0xf4,0x5b,0xdb,0xf5,0xd0,0x2,0x69,0xe4,0xf7,0xe6,0xce,0xd6,
+ 0xe2,0xde,0xeb,0x74,0x5e,0x0,0x0,0x48,0x5b,0x0,0xfc,0xfc,0x0,0x0,0xfc,0xfc,
+ 0x0,0x0,0xfc,0xfc,0x0,0x0,0xfc,0xfc,0x0,0x0,0xfc,0xfc,0x0,0x0,0xfc,0xfc,
+ 0x0,0x0,0xfc,0xfc,0x0,0x0,0xf6,0xfa,0x0,0x0,0x4,0xe5,0xdb,0x0,0xfc,0x16,
+ 0x1d,0x0,0xd,0xa,0xf7,0x13,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x6d,
+ 0xe3,0xf7,0x23,0xf6,0x13,0x1b,0x0,0x6,0xfc,0xf8,0x0,0xf8,0xfa,0x0,0x0,0xfb,
+ 0xfc,0x0,0x0,0xfb,0xfc,0x0,0x0,0xfb,0xfc,0x0,0x0,0xfb,0xfc,0x0,0x0,0xfb,
+ 0xfc,0x0,0x0,0xfb,0xfc,0x0,0x0,0xe,0x8c,0xa4,0x0,0xef,0xba,0xb8,0x0,0xd1,
+ 0xd4,0xdf,0xc4,0x56,0xd5,0x0,0xfa,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x2d,0xf6,0xf5,0x18,0xf,0xde,0xda,0x34,0x5,0x7a,0x8c,0x0,
+ 0xeb,0xb9,0xb9,0x0,0xf6,0xfa,0x0,0x0,0xf6,0xfa,0x0,0x0,0xf6,0xfa,0x0,0x0,
+ 0xf6,0xfa,0x0,0x0,0xf9,0x8,0xe,0x0,0x9,0xc6,0xb8,0x0,0xe9,0xfc,0x2,0x0,
+ 0x68,0xe0,0xf2,0x1f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9d,0x24,0x14,0xff,0x1e,0xfc,0xf8,
+ 0x0,0x4,0x2,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf2,0x2,0x6,0x0,0xcf,0xef,0xf4,
+ 0x6d,0x80,0xed,0xf9,0x94,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x12,0x0,0x0,0x0,0xa,0x5b,0xa,0x5,0x48,0x22,0x6,
+ 0x1,0x9b,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x83,0xf0,
+ 0xfa,0x27,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf0,0x0,0x0,0x0,0xf2,0x1,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0xfa,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe1,
+ 0xf,0x4b,0x5c,0x44,0xc0,0xce,0x74,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,
+ 0x42,0x60,0x82,
+ // /usr/local/google/home/chudy/Icons/reload.png
+ 0x0,0x0,0x7,0x8c,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x20,0x0,0x0,0x0,0x20,0x8,0x6,0x0,0x0,0x0,0x73,0x7a,0x7a,0xf4,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd9,0x4,0xdc,0xb2,0xda,0x2,
+ 0x0,0x0,0x7,0x43,0x49,0x44,0x41,0x54,0x78,0x9c,0xbd,0x97,0x5b,0x6c,0x14,0xe7,
+ 0x15,0xc7,0x7f,0x33,0xb3,0x37,0xdf,0xd8,0xd8,0x5e,0xdb,0x80,0xc1,0xc0,0x62,0x9c,
+ 0x14,0x62,0x1b,0xe8,0x25,0x45,0x11,0x14,0x8,0xa8,0xa1,0xa1,0x22,0x55,0x89,0x1a,
+ 0x45,0x8,0xaa,0x34,0x6a,0x5a,0xa9,0x52,0x22,0x1a,0x52,0xb5,0xaa,0x94,0xf4,0xad,
+ 0x69,0xa9,0xd2,0x94,0x46,0x8a,0xf2,0x10,0x25,0x69,0x8b,0xa8,0x12,0xf1,0xd0,0x82,
+ 0xa0,0x50,0x10,0x9,0x57,0x3,0x6,0x9b,0x9b,0xaf,0x6b,0x63,0xe3,0xc5,0xde,0xf5,
+ 0x7a,0x77,0xbd,0xbb,0xde,0x99,0xd9,0x9d,0x99,0xaf,0xf,0xb3,0x63,0x6f,0x5d,0xd4,
+ 0x46,0x90,0xf4,0x48,0x47,0x33,0xda,0x39,0xf3,0x9d,0xdf,0x39,0xe7,0xff,0xcd,0xcc,
+ 0x4a,0x3c,0xa0,0x95,0x41,0xed,0xc6,0x65,0x7c,0xcb,0x32,0x90,0xd,0x83,0x58,0x28,
+ 0x41,0x7f,0x7f,0x86,0x7e,0x20,0xf7,0x59,0xee,0x77,0x3d,0x28,0xc0,0xfa,0x20,0x1b,
+ 0xdf,0xdc,0xbd,0x69,0xaf,0x55,0x5a,0x2f,0x6b,0x89,0xd1,0xc4,0x60,0x68,0x60,0xb0,
+ 0xad,0x23,0x74,0xf6,0x1f,0x9d,0xe2,0x70,0x7b,0x8a,0x8b,0xf,0xba,0xfe,0xff,0xb4,
+ 0x17,0x5a,0xf9,0xad,0x88,0x1e,0x13,0xb6,0xa9,0x42,0x18,0x63,0x42,0x44,0x3e,0x11,
+ 0xea,0xb1,0x57,0xc5,0xdf,0x7e,0xb4,0xf0,0xe4,0xba,0xb9,0x6c,0xf9,0x42,0x1,0x9e,
+ 0x6f,0xe1,0xd,0x31,0x70,0x40,0x8,0x35,0x26,0x44,0x7a,0x58,0x88,0xf4,0x1d,0x21,
+ 0xb2,0x51,0x21,0xf2,0x49,0x21,0xa6,0xba,0x44,0xee,0xc4,0x2b,0xe2,0xcd,0xad,0xde,
+ 0xf7,0x2b,0xa0,0xfa,0x5e,0xf7,0xcb,0x9f,0xb,0x85,0xa1,0x42,0x3e,0x3,0xb9,0xc,
+ 0xe4,0x52,0x90,0x8d,0xc2,0xe4,0x8,0xe8,0x12,0xee,0x35,0x2f,0xf1,0xf2,0xdb,0x7f,
+ 0xde,0x75,0x68,0x77,0xc3,0x3f,0x17,0x78,0x69,0xfc,0x2,0x1,0xd2,0x36,0x44,0x7e,
+ 0x6a,0xc6,0xf5,0xa4,0xd,0x52,0xfe,0x8,0xeb,0xf6,0xbc,0xb3,0xf2,0xa3,0x97,0x83,
+ 0x87,0xab,0xa0,0xfe,0xf3,0x7,0x10,0x6,0x8,0xd3,0xf6,0x69,0x98,0x22,0xa0,0xcc,
+ 0x18,0x8,0x3f,0x5f,0x7f,0xf1,0xb5,0xa6,0x7d,0xcf,0xf9,0xdf,0x7,0xdc,0xce,0xad,
+ 0xca,0x83,0xe6,0x6e,0xad,0x63,0xf3,0xb6,0x86,0xa1,0xc7,0x9,0x5f,0x46,0x9a,0x1a,
+ 0x6,0x6f,0x29,0xb8,0xcb,0x6d,0x10,0x53,0x7,0x33,0x7,0x96,0x6e,0x83,0x78,0x2,
+ 0x34,0x37,0x96,0x4,0xbb,0xcf,0xb4,0x45,0x6f,0xc6,0xed,0x1d,0xe2,0x0,0xf8,0x0,
+ 0xe3,0x7e,0x0,0x9a,0x6b,0xd8,0xbc,0xb6,0x7c,0xfc,0xf1,0xf8,0x40,0x3f,0x5a,0xdf,
+ 0x25,0x94,0xa1,0x93,0xb8,0xdd,0x1a,0x3c,0x14,0xb4,0x93,0x9b,0x1a,0x58,0x79,0xfb,
+ 0x3c,0x3f,0x5,0xd5,0xb,0x59,0x92,0xef,0x6c,0x79,0xf7,0xd3,0xc4,0x87,0x80,0xaa,
+ 0x2c,0xf5,0xb3,0xfa,0xd4,0x2b,0xf5,0x27,0xb7,0xb6,0x94,0x3d,0xbd,0xb8,0x24,0xb3,
+ 0x44,0xc9,0xe3,0x8a,0xa7,0x99,0xd4,0x41,0xfd,0x2c,0x0,0xab,0xe6,0xb1,0x65,0xdb,
+ 0x72,0xd6,0x18,0x32,0xe4,0x25,0x48,0x4e,0xe6,0xb0,0x6e,0x5f,0xa7,0xd4,0x13,0x87,
+ 0xc0,0x97,0xc0,0xd0,0xec,0x4e,0x58,0xb9,0xc2,0x51,0x62,0x7e,0x95,0x34,0xe7,0xca,
+ 0x99,0x8e,0xde,0xde,0x24,0x57,0x95,0x46,0x3f,0x1b,0x7f,0xf9,0x93,0xf5,0x2f,0x34,
+ 0x3d,0xf5,0xc3,0x25,0x4f,0xac,0x5d,0xbe,0x7e,0xe7,0xfa,0x79,0x3b,0x9f,0xfd,0xaa,
+ 0x67,0xd7,0xba,0x5,0xb9,0x4d,0xf5,0x5e,0xb5,0x41,0x98,0x90,0xc9,0x90,0xd2,0x41,
+ 0xbb,0x17,0x40,0x22,0x8b,0xe7,0x76,0x92,0x40,0x57,0x8c,0x49,0xc3,0xc2,0x3b,0xdf,
+ 0x4f,0x89,0x9,0x18,0xa3,0x83,0x94,0x6,0xca,0xa1,0x6c,0x1e,0x18,0xd9,0x19,0x0,
+ 0x53,0x83,0x52,0xf,0xc9,0xbe,0x8b,0xe2,0x70,0x97,0x71,0xc0,0x65,0x2,0x56,0x74,
+ 0x10,0xb9,0x7e,0xa,0x5c,0x1,0xe4,0x86,0x3a,0x82,0x8b,0x1f,0x9b,0x1b,0xdc,0x90,
+ 0x79,0xf2,0xbb,0x99,0xc8,0x93,0x66,0x74,0x88,0xc1,0xd0,0x60,0xf8,0x6a,0xf7,0xc8,
+ 0x95,0xb3,0x3d,0x99,0x53,0xe7,0xfb,0x39,0x77,0x31,0xca,0x4d,0x20,0xd,0x30,0x9c,
+ 0xe6,0xd0,0x3b,0xed,0x9c,0x1,0x1e,0x2,0x82,0xeb,0x17,0xf1,0x9d,0x9f,0xad,0x65,
+ 0x67,0x4b,0x35,0x73,0xf4,0xbe,0x13,0x78,0xab,0x97,0x82,0x9,0x8,0x1,0xa2,0x40,
+ 0xed,0x91,0x59,0xf5,0x70,0xa0,0x19,0x46,0xfc,0x2e,0xcb,0x44,0x18,0xe9,0x28,0x1e,
+ 0x6d,0x1c,0x2c,0xc9,0xe,0x4,0x90,0x24,0x70,0x7,0x50,0x16,0xd6,0xd1,0xb8,0xe8,
+ 0xcb,0xf5,0x8d,0xdf,0xc8,0xd4,0x3f,0xa3,0x8e,0x7f,0xdb,0x18,0x1f,0x61,0x60,0xf0,
+ 0xce,0xf0,0x95,0x9e,0xc8,0xc5,0xb3,0x5d,0x53,0xa7,0xcf,0xf7,0x71,0xa6,0x3d,0xc6,
+ 0x75,0x20,0x9,0xdc,0x3e,0x35,0xc4,0xb9,0xeb,0x11,0xce,0xbf,0xb7,0x8d,0x3f,0x6c,
+ 0xaa,0x8d,0x56,0xa3,0xe,0x81,0xbb,0x6,0x4c,0xc3,0x6,0xb0,0x4,0x48,0x5e,0x2,
+ 0x55,0x15,0x35,0x5e,0x8,0xb8,0x26,0xf3,0x8c,0x27,0xe2,0x49,0x51,0xa7,0x8e,0x4b,
+ 0xc8,0x65,0x85,0xed,0x4,0xd3,0xb8,0x92,0x0,0x9,0x90,0x25,0xf0,0x56,0xe1,0x5a,
+ 0x14,0xa0,0x29,0xd8,0xdc,0xd0,0xb4,0x61,0xaa,0xe1,0x59,0x35,0xb6,0x3d,0x17,0x1d,
+ 0xa5,0x6f,0x60,0x34,0xd4,0xde,0x9d,0xb8,0x74,0xe0,0x7c,0xf6,0x2f,0x47,0xba,0x39,
+ 0x34,0xa1,0xb1,0xff,0xe7,0x27,0xa8,0x5b,0xd5,0x28,0x7e,0x57,0x6a,0xc6,0x25,0x94,
+ 0x12,0xb0,0x8c,0x42,0x17,0x24,0xc8,0x4d,0x22,0xeb,0x51,0x45,0x80,0xdb,0x15,0x4e,
+ 0x31,0x74,0x77,0x22,0x97,0xac,0x53,0xc7,0x2a,0xf1,0xd4,0xd9,0x81,0x14,0x0,0x24,
+ 0xec,0x27,0x85,0x5c,0x68,0x9f,0x10,0xf6,0x5e,0x71,0x80,0x3c,0x95,0x78,0x16,0x55,
+ 0xb3,0xa2,0xb1,0x65,0xe9,0x8a,0xcd,0x83,0x4b,0x97,0x55,0x9f,0x5e,0x7d,0xa4,0xdb,
+ 0x38,0xe,0xe8,0xb7,0x62,0x7c,0xf0,0xc9,0x8,0xbb,0x76,0x78,0xf2,0xad,0x58,0xa9,
+ 0x2,0x80,0x4,0x42,0x86,0xd8,0x5,0xd0,0x27,0x4,0x80,0x2b,0x7,0x63,0xa1,0x18,
+ 0xe1,0x55,0xd9,0x48,0x25,0x52,0x19,0x98,0x79,0x3b,0x81,0x24,0xa,0x9b,0xd4,0xe9,
+ 0xc4,0x2c,0x28,0xcb,0x99,0xa9,0x2,0xda,0x28,0xdc,0xea,0x20,0xd4,0x6f,0x64,0x9d,
+ 0x48,0x20,0x53,0x5b,0x5b,0x2a,0xe3,0x92,0x40,0x4b,0xda,0xc9,0x2d,0xb,0x12,0xb7,
+ 0x40,0x1d,0x46,0xf2,0xd8,0x41,0x2e,0x20,0xdd,0x3f,0xc1,0x0,0xea,0xc4,0xa3,0xb8,
+ 0x6b,0x6d,0xb5,0xca,0x80,0xe2,0x28,0xa6,0x70,0x94,0x99,0xd1,0x87,0x10,0x76,0x1e,
+ 0x45,0x82,0xec,0x8,0xfa,0xe5,0x5e,0xb2,0x63,0x60,0x29,0x28,0xd8,0x92,0xe3,0x7b,
+ 0xad,0x7c,0xff,0x89,0x8d,0xf3,0x9b,0x31,0x34,0x7b,0xd,0x53,0x85,0x54,0x3f,0x68,
+ 0x71,0xf0,0xce,0x34,0xda,0x5,0x88,0x9e,0x18,0x7d,0x64,0x26,0xc0,0x1b,0x3,0x45,
+ 0x29,0x54,0x6a,0xd9,0xb5,0x58,0x85,0xaa,0x9d,0x11,0x38,0xf5,0xc9,0x16,0x24,0xc2,
+ 0x64,0x2f,0x47,0x88,0x8f,0x83,0xe6,0x86,0x83,0x5d,0x1c,0x5,0xf2,0x5b,0x1a,0xd9,
+ 0xba,0x6f,0x8f,0x7f,0xaf,0x52,0x35,0x7,0xb4,0x4,0xe8,0x9,0xc8,0x8e,0xda,0xdd,
+ 0xf5,0xd8,0xec,0x93,0x49,0xb2,0x39,0xd0,0x5c,0x0,0xfd,0x9,0x7a,0xcd,0x54,0xa,
+ 0x45,0xee,0x84,0xd2,0x2a,0xf0,0x55,0x80,0xe4,0x9a,0x19,0x85,0x25,0xec,0xa3,0x63,
+ 0x92,0x4,0x7a,0x14,0xf5,0x46,0x9c,0x68,0x14,0x26,0xf2,0x68,0xbf,0x3a,0xce,0x9f,
+ 0x6,0xe2,0x9c,0xf8,0xe3,0xe,0xe9,0xed,0x1f,0x3c,0x33,0xe7,0x45,0xdf,0xbc,0x2a,
+ 0x85,0x6c,0x18,0x72,0x49,0xc8,0xeb,0x76,0xa9,0xe,0x7c,0xa,0x42,0x77,0x89,0x0,
+ 0x71,0x17,0xc0,0x70,0x82,0x50,0x5c,0x45,0xd4,0x54,0xea,0x12,0xda,0x28,0x58,0x11,
+ 0xf0,0x96,0x80,0xc7,0x67,0x83,0xc8,0xca,0xbf,0x4d,0x3,0x1,0xb8,0x5d,0x78,0xbf,
+ 0x56,0xc1,0xdc,0x47,0x72,0x58,0xa3,0x26,0xaf,0x37,0xf3,0xcd,0xe5,0x4b,0x94,0xe7,
+ 0x7d,0x75,0x6e,0x5,0xd3,0x0,0x75,0x18,0x2c,0xd3,0xd6,0x91,0x4,0x58,0xce,0x18,
+ 0x41,0x8c,0xc2,0xf9,0xbb,0x74,0x2,0x29,0x17,0x40,0x64,0x92,0xa1,0xd1,0x34,0x89,
+ 0x1a,0x17,0x55,0x48,0x80,0x62,0x81,0x98,0x2,0x73,0xa,0xf2,0x8e,0x0,0x64,0x90,
+ 0x64,0x5b,0x4c,0x85,0x2e,0xc8,0x5e,0xf0,0xcd,0x83,0xe0,0x2,0xc9,0x87,0x6c,0x35,
+ 0x60,0xe6,0xc1,0xd0,0xed,0x64,0x2e,0x5b,0x9f,0x58,0x5,0x37,0x1,0xf,0x88,0x10,
+ 0x84,0xef,0xc2,0xf1,0x10,0x47,0x1d,0xd,0xa0,0x43,0x74,0x70,0x82,0x70,0x8b,0xe2,
+ 0x0,0x14,0xae,0x38,0xae,0x58,0xf6,0xcc,0xe5,0x19,0x16,0x14,0x66,0x5e,0x65,0x96,
+ 0x33,0x1a,0xec,0x17,0xad,0x28,0x78,0x71,0x72,0x2f,0x10,0x6,0xb5,0xf,0x8e,0x87,
+ 0xb9,0x75,0x63,0x8c,0xe3,0xd3,0x0,0x40,0xba,0x37,0x46,0x8,0x89,0x66,0x5c,0xb3,
+ 0x12,0x78,0x98,0x16,0xe,0x72,0x51,0x65,0x8e,0x3b,0xbf,0x4b,0x14,0x89,0xb5,0x8,
+ 0x40,0x14,0xae,0xf,0x41,0xe6,0x2,0x44,0x2c,0xf8,0xfd,0x59,0xf6,0x1,0x91,0x62,
+ 0x0,0xd1,0x13,0xa5,0xf,0xab,0x68,0x61,0xb9,0x40,0xad,0xda,0xe4,0x4,0x81,0xd2,
+ 0xa2,0x4a,0x1d,0x50,0xc7,0x67,0x3,0x38,0x93,0xcb,0x1,0x9d,0x90,0x6c,0x87,0xbc,
+ 0x7,0xde,0x6a,0xe3,0xe0,0xb5,0xbb,0xec,0x2f,0x44,0xcc,0x7c,0x96,0xf7,0xc6,0xe8,
+ 0xb1,0x74,0x90,0xcb,0xb,0x0,0x3e,0x60,0x12,0xb2,0x57,0x21,0x9d,0x84,0xca,0x41,
+ 0xf0,0x3c,0xc,0x2c,0x5,0xfc,0x45,0xd5,0xcf,0xee,0x80,0xa3,0xf4,0x3c,0x30,0xc,
+ 0x46,0x1b,0xc4,0xc3,0x20,0x55,0xc0,0xfb,0x5d,0x5c,0xda,0x77,0x9a,0x5f,0x0,0xa9,
+ 0xff,0x0,0x18,0x8e,0x13,0x4a,0xa4,0xb1,0xaa,0xeb,0x90,0x71,0x3,0x63,0x90,0xbe,
+ 0x6,0x93,0x2,0x64,0x3f,0x44,0x52,0xe0,0x3d,0x7,0x73,0xae,0x83,0x2f,0x8,0x2c,
+ 0x3,0x2,0x85,0xae,0x14,0x2b,0x5d,0x3,0x62,0x90,0xef,0x85,0x74,0x37,0x68,0x1a,
+ 0x48,0x7e,0x78,0xb7,0x83,0xd3,0xaf,0x1f,0xe1,0x25,0xa0,0x87,0x22,0x9b,0x6,0x18,
+ 0x9b,0xe4,0xce,0x58,0x82,0x78,0xb5,0x42,0x80,0xdb,0x90,0xec,0x81,0x5c,0x9,0x9c,
+ 0xa,0x73,0xfb,0xd4,0x0,0x9d,0xbb,0x56,0xb2,0xb1,0xc9,0x4f,0xc5,0x84,0x6,0xdc,
+ 0x0,0xdf,0x1d,0xf0,0xcd,0x5,0x77,0x0,0xa4,0x52,0xbb,0xb,0x96,0x6,0xf9,0x38,
+ 0xe8,0x51,0x30,0xd2,0xf6,0xee,0x1d,0x11,0xa8,0x7b,0x8f,0xb2,0xff,0xa3,0xab,0xfc,
+ 0x1a,0xe8,0x67,0x96,0x4d,0x3,0xe8,0x10,0x1d,0x18,0x21,0xbc,0xfc,0xa,0x81,0x44,
+ 0x1c,0xf2,0x65,0xf0,0x71,0x3f,0x9d,0x3f,0xfd,0x3b,0xbb,0x75,0x9d,0x8e,0xbf,0x76,
+ 0xb0,0x76,0x7b,0xb,0xcf,0x6d,0x7f,0x94,0xd,0x2b,0xaa,0xa9,0x29,0x1,0xcc,0x8,
+ 0x30,0x61,0xef,0x4e,0x45,0xb6,0x9f,0x55,0x1e,0x9,0xc,0x13,0xfa,0x54,0xd2,0x1f,
+ 0xdf,0xe4,0xec,0x7b,0x6d,0x7c,0x90,0x98,0xe2,0x30,0x85,0xef,0x87,0xd9,0x26,0x15,
+ 0x9f,0xff,0xe6,0x29,0xe,0xfe,0x78,0x5,0x4f,0xa7,0x15,0x78,0xab,0x9d,0x63,0x6f,
+ 0x1c,0x63,0xf,0x70,0xad,0x28,0xc6,0xf,0xb4,0xb6,0x2e,0x64,0xed,0x9a,0x6,0xbe,
+ 0xd2,0x5a,0x4f,0xb0,0xa6,0x8c,0xca,0x39,0x3e,0x3c,0x53,0x39,0xf2,0x9,0x95,0x54,
+ 0x57,0x84,0x3b,0x17,0x86,0xe9,0x6c,0x1b,0xe2,0xd3,0x5c,0x8e,0x4b,0x40,0xf4,0x5e,
+ 0x89,0xef,0x69,0xdb,0x57,0xf2,0x5a,0xd7,0xab,0xe8,0x3b,0x1e,0xe3,0x43,0x60,0xd1,
+ 0x7f,0x9,0x95,0x81,0x4a,0xa0,0x11,0x58,0x5,0xac,0x1,0x56,0x3,0x4d,0xd8,0xca,
+ 0xb8,0xef,0xff,0x9c,0x8b,0xcb,0x3d,0x6c,0x3,0x6a,0xef,0x77,0x81,0x7,0x35,0x19,
+ 0xfb,0xb1,0xf3,0x7f,0xb3,0x7f,0x1,0xfb,0x37,0x68,0x56,0x8b,0xb9,0xb7,0x1f,0x0,
+ 0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /usr/local/google/home/chudy/Icons/breakpoint.png
+ 0x0,0x0,0x8,0xc7,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x20,0x0,0x0,0x0,0x20,0x8,0x6,0x0,0x0,0x1,0x4,0x7d,0x4a,0x62,
+ 0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+ 0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd7,
+ 0xfb,0x6f,0x33,0x18,0x1,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6c,
+ 0x9b,0x0,0x0,0x72,0x6f,0x0,0x0,0xf6,0xae,0x0,0x0,0x85,0x83,0x0,0x0,0x6e,
+ 0xf7,0x0,0x0,0xe8,0x41,0x0,0x0,0x31,0x74,0x0,0x0,0x17,0x6c,0xa1,0xb6,0x2d,
+ 0x9b,0x0,0x0,0x8,0x3d,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0xfc,0xff,0xff,0x3f,
+ 0x3,0x32,0x60,0x61,0x60,0x60,0x60,0xf8,0x7a,0x62,0xeb,0xff,0xd7,0x73,0x1a,0x19,
+ 0x7e,0x89,0xaa,0x30,0x30,0x2e,0x53,0xe3,0x3c,0xac,0x22,0x23,0x64,0xc3,0xcc,0xcd,
+ 0xcb,0xf0,0xe7,0xd3,0x7b,0x6,0x86,0xff,0xff,0xff,0x33,0xec,0x5b,0xb7,0xfa,0xff,
+ 0x16,0x45,0xae,0xff,0x3b,0x54,0xb8,0xfe,0x3,0x0,0x0,0x0,0xff,0xff,0x62,0x44,
+ 0x37,0x83,0xf1,0x98,0x25,0xf7,0x16,0x49,0x2d,0x2d,0x6f,0x6,0x6,0x6,0x6,0x85,
+ 0x39,0xa7,0x18,0x19,0xaf,0x2f,0x9c,0xf4,0xff,0xeb,0xf2,0x9,0x10,0x1b,0x64,0x94,
+ 0x18,0x18,0xbb,0x44,0x59,0xd,0xb4,0x78,0x58,0xcf,0x33,0x30,0x30,0x30,0x78,0xdf,
+ 0xfb,0xca,0x8,0x0,0x0,0x0,0xff,0xff,0x82,0x9b,0xf1,0xb8,0xcc,0xfb,0xff,0xcb,
+ 0x3b,0x4f,0xe0,0x66,0xf1,0xfe,0xff,0xc8,0xa0,0xbe,0xfe,0x1,0x23,0xe3,0xff,0xff,
+ 0xff,0x19,0x2e,0x5,0x6b,0xff,0x67,0x63,0x63,0x86,0xda,0xc2,0x8,0xa5,0x18,0x19,
+ 0x18,0xf8,0x4,0x19,0x18,0xff,0xff,0xff,0xcf,0xb0,0xdf,0x50,0xe0,0xff,0xbf,0x9f,
+ 0xbf,0x51,0x5c,0xf3,0x53,0x42,0x8e,0xe1,0xf7,0xe7,0xf,0x10,0x5,0x8c,0x8c,0x8c,
+ 0x4c,0x6b,0xc,0x95,0xfe,0xf2,0xb2,0xb2,0xc1,0x15,0x1c,0xbd,0x73,0xef,0x5e,0xe3,
+ 0xdb,0x9f,0xca,0x0,0x0,0x0,0x0,0xff,0xff,0xc2,0xf0,0x7,0x3a,0x60,0x61,0x60,
+ 0x60,0x60,0xb8,0x64,0xcd,0x9d,0xf9,0x4b,0x5c,0x65,0x1a,0x4c,0x90,0x9b,0x87,0x9d,
+ 0x41,0x73,0xd1,0x29,0x46,0x6,0x6,0x6,0x88,0x15,0xf7,0x52,0x2d,0xff,0x33,0xfd,
+ 0xff,0x8b,0xd0,0xc5,0xcd,0xc5,0xf0,0xed,0xf3,0x77,0x6,0xb5,0x79,0x27,0x19,0x99,
+ 0x76,0x59,0x8,0x7f,0xe6,0xd0,0xb3,0x62,0xf8,0xf1,0xed,0x27,0xc3,0x8f,0xaf,0x3f,
+ 0x18,0x7e,0x7c,0xfd,0xc1,0xf0,0xe5,0xf5,0x7b,0x6,0x16,0xbb,0x70,0x86,0x2d,0x6,
+ 0x5c,0xd2,0x8c,0xc7,0x8c,0xb8,0xff,0x33,0x71,0x72,0x32,0xb0,0xf0,0xf2,0x31,0x30,
+ 0x32,0x33,0x33,0xfc,0xff,0xfb,0x97,0xe1,0xff,0xdf,0x7f,0xc,0x5f,0x3f,0x7e,0x66,
+ 0x60,0x97,0x96,0x61,0x60,0xba,0xfc,0xe6,0x5f,0x25,0x7b,0xf3,0x32,0x86,0xf,0xf,
+ 0x5f,0x30,0xbc,0xbf,0xf7,0x94,0xe1,0xc3,0xc3,0x17,0xc,0x1f,0x9f,0xbc,0x62,0x60,
+ 0x65,0x60,0x60,0xb0,0x58,0x77,0x1,0x12,0x50,0x7b,0x4c,0xa4,0xff,0xff,0x7c,0xf7,
+ 0x1,0xee,0x86,0xff,0xbe,0x91,0xc,0x37,0xd7,0x2c,0xff,0x5b,0xfc,0xf4,0x2b,0xb,
+ 0xe3,0xff,0xff,0xff,0x19,0x14,0x19,0x19,0x5,0x66,0x9a,0x69,0xbc,0x47,0xf6,0x9e,
+ 0xfb,0xa9,0x1b,0xec,0xff,0xff,0xff,0xff,0x5,0x20,0x94,0xec,0x41,0x12,0xa,0xa3,
+ 0x30,0xfc,0x7c,0xf8,0x57,0x69,0xa4,0x9,0xa1,0x4b,0x4e,0x12,0x54,0x50,0x12,0x41,
+ 0x63,0x21,0x41,0xb9,0x38,0x35,0x44,0x63,0x5b,0x18,0x8d,0xd5,0x52,0x20,0x84,0x53,
+ 0x53,0x83,0x6e,0x6d,0x77,0x8,0x22,0xa8,0xa0,0xa1,0x1f,0x34,0x70,0xac,0x1c,0xc2,
+ 0x96,0x74,0xc8,0x8a,0x9b,0x95,0x18,0x7a,0x43,0x3,0xfd,0x5a,0xf2,0x56,0x28,0xf5,
+ 0xc2,0xe1,0x3d,0xcb,0x79,0x87,0xe7,0x3d,0x4d,0x1c,0xd2,0xe3,0xb6,0xbf,0xc1,0x48,
+ 0xe1,0xef,0x4f,0x94,0xce,0xf4,0xfe,0x7f,0x6,0x64,0x43,0x7e,0x29,0x5d,0x5e,0x3a,
+ 0x5e,0x6e,0x40,0xd6,0x9b,0x6e,0x7b,0x36,0xe,0x78,0xc,0xcf,0xa1,0x26,0xe3,0xd1,
+ 0xd1,0xa4,0xb6,0xa0,0x7,0xa4,0x7,0x85,0xd9,0x34,0x39,0x5d,0xed,0xa,0xcc,0x53,
+ 0x56,0x22,0xd4,0x1b,0xa1,0xd,0x17,0x42,0xdf,0x5d,0xcb,0x31,0xd4,0xcd,0x45,0x72,
+ 0xa9,0xeb,0xdb,0x89,0xb,0xcd,0x2b,0xf6,0x6,0xac,0xc3,0x7d,0x63,0x23,0x57,0xce,
+ 0x95,0x18,0xf9,0xd5,0x19,0x40,0x2,0xa2,0x85,0x7f,0xcb,0x3e,0x35,0x4b,0xfe,0x50,
+ 0xe1,0x3e,0x9b,0xab,0x9,0x29,0x25,0x89,0xa0,0x4f,0x3a,0x3c,0x1e,0x9e,0x4e,0x8f,
+ 0x31,0x9b,0x4,0xff,0xc9,0xbd,0x1d,0xe7,0x39,0x14,0x20,0xa3,0x96,0x14,0x9d,0x81,
+ 0xe2,0x73,0xcb,0xde,0x4e,0x23,0x5,0xad,0x8e,0x45,0x2b,0xb6,0xe6,0x7,0xd8,0xc3,
+ 0x51,0xaa,0x5b,0x6b,0xa4,0xb2,0x6a,0x70,0xe9,0xa1,0xb2,0xff,0xb,0x62,0xc4,0x6d,
+ 0x7d,0x1d,0x6a,0x13,0xdd,0x86,0xd8,0x6e,0xeb,0xcf,0x3c,0xda,0xe1,0xfd,0xfc,0x84,
+ 0xcb,0xcc,0x9d,0x73,0xfd,0x4d,0x16,0x74,0x88,0x42,0x8,0x23,0x60,0x5,0x6c,0x80,
+ 0x3,0x68,0xff,0x1a,0xb,0x60,0x0,0x6a,0xc0,0x7,0x50,0x1,0x8a,0x80,0x6,0x14,
+ 0xa5,0x94,0xe5,0x4f,0x42,0xaa,0x26,0x24,0xaa,0x28,0xa,0x7f,0x77,0x9c,0x9f,0xe7,
+ 0xbc,0xe1,0x8d,0x3e,0x9d,0x81,0x71,0xb0,0xd2,0x46,0x14,0x4b,0x71,0x48,0x1c,0x6a,
+ 0x84,0x82,0x6a,0x11,0x12,0x41,0xed,0x92,0x5c,0x95,0xe4,0xaa,0x88,0x5a,0x44,0x41,
+ 0xf4,0xb3,0x88,0x70,0x21,0x24,0xe6,0x36,0x50,0x74,0xd3,0x26,0x6c,0xe3,0xa2,0xda,
+ 0x48,0x50,0x10,0x95,0xda,0x8f,0x36,0xd,0x8a,0x39,0x68,0xcc,0xbc,0x19,0xc7,0xe7,
+ 0x9b,0x77,0xdf,0x7d,0xf3,0x5a,0xcc,0x4f,0x4f,0xa6,0x71,0x2e,0x7c,0x9c,0x73,0x16,
+ 0xe7,0xbb,0xdc,0xfb,0x9d,0xf3,0x55,0xdc,0x87,0x4a,0xc7,0x6a,0x2e,0x16,0x4e,0xb8,
+ 0x4e,0x5b,0x80,0xd9,0xbd,0x1a,0xda,0xdf,0x6e,0x93,0xb2,0x4,0x5c,0xe0,0xd0,0xec,
+ 0x4e,0x9a,0x82,0x52,0xfd,0x9f,0xf6,0xa6,0xe8,0xeb,0x68,0xc5,0x97,0x30,0x3f,0xd4,
+ 0x39,0x27,0x3f,0x2b,0xf4,0x58,0xa,0xc9,0x87,0x30,0x3f,0x66,0xab,0xe6,0xd1,0x36,
+ 0x3c,0xd,0xff,0x3e,0x37,0xfc,0x8d,0xc2,0xae,0xb8,0x3f,0xd8,0x86,0xf4,0x1f,0x9,
+ 0x8e,0x3,0x7,0xc7,0xcc,0x97,0x16,0x9,0xc4,0xd0,0xf1,0x21,0xeb,0x91,0x33,0x88,
+ 0x3d,0x1c,0x80,0x2a,0xab,0x25,0x90,0x57,0xa2,0x68,0x79,0x34,0x1,0xae,0x56,0xc4,
+ 0xbb,0x10,0x3f,0xb3,0x8b,0xe0,0x4d,0x88,0x5f,0xd6,0x36,0x62,0x70,0x8a,0x6e,0x68,
+ 0xaa,0x6,0xa6,0x31,0x30,0xa6,0xe7,0xa2,0x9,0xab,0x37,0xfb,0xa0,0x35,0x6,0x21,
+ 0x76,0x75,0xf7,0x7d,0x3d,0x4c,0xec,0x0,0x60,0x99,0xe9,0x72,0xfa,0xfd,0x3d,0xbd,
+ 0x81,0xba,0xeb,0x23,0xd8,0x98,0x1a,0x5,0xa3,0xc,0x4c,0xd3,0xc1,0x54,0x2d,0x97,
+ 0x17,0x6a,0xca,0xa0,0x2a,0x14,0xee,0xee,0x30,0x58,0x4a,0x42,0xd4,0xea,0x8c,0x3,
+ 0x0,0x79,0x15,0xf6,0x31,0x8f,0xc7,0x53,0x55,0xdf,0xde,0xa,0x79,0x69,0xd1,0x34,
+ 0xf7,0x66,0x79,0x49,0xb1,0x26,0x84,0xc0,0x75,0xf9,0x1,0x32,0x2f,0x46,0xf1,0x6d,
+ 0xee,0x7d,0xd0,0x5a,0xdf,0xe0,0xaf,0x12,0x8e,0x9e,0xc4,0xfa,0xf4,0x38,0x6c,0x9c,
+ 0x3,0xc4,0xce,0xc1,0x62,0xcd,0x89,0x43,0xf2,0x46,0x6a,0x68,0x14,0x0,0x90,0xa5,
+ 0x2a,0xc,0x4a,0xc1,0xd7,0x78,0x21,0x7d,0xfe,0x8,0x45,0xd3,0x9f,0x92,0xe7,0xcd,
+ 0xdc,0x64,0x53,0x8d,0xed,0xa2,0xfb,0xee,0x38,0xa4,0xfb,0x83,0x15,0x7,0x87,0x3a,
+ 0xdd,0x10,0x6b,0x5d,0x90,0x14,0x1d,0xa7,0x5e,0xff,0x24,0x96,0x81,0x88,0xd2,0x9f,
+ 0x16,0xbc,0xa0,0x53,0x23,0x90,0xb3,0x76,0x30,0x6a,0xec,0x9,0xcf,0x93,0x49,0x28,
+ 0xdb,0xa,0x7e,0x45,0xd6,0x6f,0x17,0x55,0x58,0x5e,0x5a,0x3b,0xb7,0x15,0x89,0x42,
+ 0x1c,0x9e,0x0,0xcb,0xa2,0x2c,0x32,0x9d,0xbd,0x90,0xae,0x9e,0x45,0x24,0x96,0xc4,
+ 0xe0,0xca,0xce,0xe3,0x22,0xc1,0xb5,0xdf,0x99,0x97,0xf3,0x12,0xd3,0xe5,0x1b,0xfd,
+ 0x90,0x7d,0x1,0x30,0x8a,0x12,0x50,0x15,0x70,0x5,0x7b,0x60,0x8,0x1e,0x6c,0x26,
+ 0x33,0xc1,0x92,0x51,0x4e,0xc6,0x93,0x5e,0x99,0x6f,0x88,0xbb,0x2e,0x5c,0x82,0xd1,
+ 0xd2,0xf1,0xdf,0xf7,0xa7,0xae,0x9c,0xc7,0xbc,0x9a,0x4d,0xdc,0xd9,0xa4,0x9f,0x4a,
+ 0x4c,0x95,0x10,0x62,0xbb,0x27,0x3a,0xbe,0x1f,0xb,0x34,0x35,0x97,0xfb,0xc0,0x44,
+ 0x2a,0x85,0x5b,0x3f,0x62,0x75,0x6b,0xb9,0x55,0xce,0x9a,0xfd,0xa0,0x1a,0x80,0x90,
+ 0xf7,0x3,0x21,0xef,0x5,0x1c,0x0,0x5b,0xbe,0x57,0x3,0xa0,0x2,0x50,0x0,0x24,
+ 0x0,0x6c,0x1,0x48,0x1b,0x86,0xa1,0xfd,0x65,0xbd,0x5c,0x43,0x9a,0x8c,0xc2,0x38,
+ 0xfe,0x3f,0xdb,0xde,0xdd,0xde,0x6d,0xba,0x4d,0x27,0x39,0x15,0xd3,0xd6,0xc5,0x12,
+ 0x2c,0x56,0x94,0xd4,0x87,0xca,0xbe,0x74,0x81,0x12,0x8a,0x40,0x30,0xc8,0xa0,0x12,
+ 0x24,0xca,0x3e,0xa4,0x41,0xd1,0x45,0xa4,0x48,0xa9,0x28,0xb,0x53,0x8c,0xa2,0xa2,
+ 0x24,0xe8,0xe6,0x97,0xae,0x94,0x62,0x11,0x6a,0x66,0x77,0x67,0x99,0xe8,0xa6,0x6e,
+ 0x66,0x6d,0xee,0x7d,0xdb,0xfb,0xee,0x72,0xfa,0x90,0xc5,0xa2,0x2c,0xe7,0x7a,0xe0,
+ 0x7c,0x3a,0xf0,0xfc,0x1f,0xce,0xf3,0x9c,0xff,0xef,0x9c,0xa8,0xfd,0x20,0xda,0x90,
+ 0x8d,0xb9,0xb3,0x8e,0x48,0x5f,0xba,0x34,0x2d,0xfa,0xa5,0xab,0xb3,0xa4,0x6a,0xcd,
+ 0x84,0x92,0x8b,0x7d,0xdd,0xf0,0xb4,0x35,0xb5,0xcf,0x32,0x71,0x56,0x5c,0x9,0xe3,
+ 0x77,0xf8,0x1d,0xf9,0xd3,0x9,0xbc,0xce,0x8e,0x31,0xf8,0x59,0xc6,0x66,0xcc,0xce,
+ 0x31,0xf0,0x7d,0xdd,0x30,0x17,0x9f,0x4,0x9b,0x61,0x8d,0x48,0xdc,0x7e,0xae,0x2,
+ 0xe2,0xe3,0x6b,0x90,0x19,0xe2,0xe1,0x6c,0xbc,0x3d,0xac,0xa,0x48,0x2d,0x19,0xcd,
+ 0xee,0xe1,0x7f,0x16,0xd0,0x3c,0x4f,0x93,0xa5,0x8c,0xd3,0xb7,0x24,0xcc,0xb6,0x4a,
+ 0x47,0xec,0x76,0xa4,0x95,0xd7,0xc3,0x73,0xb1,0xc,0x5c,0xe7,0xf3,0x71,0x8b,0x13,
+ 0x42,0x10,0xbb,0x66,0x33,0x2,0xa,0x3,0x86,0xcf,0x95,0x41,0x39,0xc9,0xc,0xc7,
+ 0xa3,0xfb,0xc1,0x80,0x10,0xb4,0x66,0x3f,0xf5,0xb6,0x8f,0x59,0xc0,0x3,0x2b,0xbb,
+ 0x22,0x36,0x25,0xe9,0x96,0x3e,0x39,0x5,0x1c,0xef,0xc7,0xd4,0x8a,0xab,0x70,0x1e,
+ 0x2a,0x80,0xd0,0xdf,0x37,0xa1,0x16,0xe8,0x16,0x2c,0x83,0x6a,0x49,0x1e,0x7a,0xf6,
+ 0xe6,0x43,0x93,0x68,0xc6,0x40,0xcb,0x13,0x70,0x1e,0x7e,0xe5,0xe2,0x16,0xae,0xe1,
+ 0xb7,0x2,0xee,0xce,0x51,0xef,0x32,0x4e,0xb1,0x94,0x6b,0x63,0x35,0x10,0x54,0xf1,
+ 0x48,0xdd,0x75,0x1c,0xae,0x7d,0xeb,0x21,0x72,0x7c,0x54,0x43,0xc6,0xa6,0x4d,0x43,
+ 0xcc,0xe6,0xc3,0xe8,0xda,0x99,0xb,0x5d,0x9c,0x1e,0x43,0x9d,0x36,0x78,0x9c,0xae,
+ 0x92,0x9c,0xb6,0xef,0x4e,0x40,0x28,0xa5,0x68,0xc8,0x64,0x6b,0x12,0xb3,0x32,0xb,
+ 0x14,0x21,0x3f,0xa8,0x65,0x2e,0x4c,0x2b,0xd7,0x63,0xb8,0x72,0x1b,0x82,0xc1,0x50,
+ 0xe4,0x8a,0x3f,0x38,0x16,0x16,0x72,0xa3,0x9,0xc6,0xdd,0x75,0xf8,0x50,0x9a,0xf,
+ 0x56,0x26,0xc2,0x3d,0x38,0x84,0xa1,0x1e,0x7b,0xed,0x8a,0x17,0xdc,0x26,0x52,0x3f,
+ 0x4d,0xd5,0x98,0x34,0x23,0x7d,0xa1,0x32,0x28,0x40,0xb5,0x6a,0x23,0xe4,0x71,0x93,
+ 0xe0,0xbd,0x70,0x18,0x13,0xd1,0xfe,0x5b,0x30,0x8c,0x1c,0xba,0xd2,0x6a,0xb8,0x2f,
+ 0x1e,0x43,0xe8,0x7d,0x7,0xbc,0x5f,0x5,0x38,0xde,0xf7,0x36,0xc9,0xc4,0x90,0xa4,
+ 0xc8,0xd9,0xff,0xe9,0x59,0x62,0x8c,0x12,0x23,0xe7,0x2b,0x60,0xa8,0xbc,0x1,0x17,
+ 0x47,0xa0,0x18,0xfc,0xf8,0xdf,0xc4,0x83,0x14,0x50,0x2c,0xcf,0x3,0x63,0xeb,0x0,
+ 0x77,0xef,0x3a,0xe4,0x29,0xa9,0x70,0x7c,0x74,0x40,0xc,0x49,0x8a,0x8,0xa5,0x14,
+ 0xa7,0x93,0xd5,0x66,0x95,0x56,0xf1,0xce,0x92,0x92,0xc0,0x52,0xa7,0x1d,0xba,0x83,
+ 0x67,0xe1,0xbc,0x52,0xb,0xd2,0xfa,0x10,0x24,0x5a,0xf1,0x10,0xc0,0x6e,0xd8,0xe,
+ 0x75,0x88,0xc7,0x97,0x4b,0xd5,0x50,0x4e,0xb6,0xe0,0x55,0xc7,0x3b,0xaf,0xe8,0xc7,
+ 0xf4,0x2d,0xbd,0xbc,0xfd,0xe7,0x10,0xd6,0xcf,0x22,0xf2,0x41,0x8f,0xea,0xf5,0x8c,
+ 0x29,0x49,0xe9,0x64,0xc0,0xe,0x6d,0x61,0x29,0x46,0x7a,0x7a,0xe0,0xbf,0x79,0x1,
+ 0x92,0x9,0x56,0x21,0x86,0x0,0xfd,0xee,0xa3,0x60,0x5a,0xef,0xc2,0x7d,0xa7,0x1,
+ 0xc4,0x9c,0x8c,0x37,0x6f,0xbb,0xbb,0x12,0x62,0x84,0x99,0x6b,0x5f,0x52,0xf1,0x8f,
+ 0x3e,0x50,0x99,0xa8,0x6a,0x9c,0x9a,0x9e,0xbc,0x90,0x71,0x3a,0xc0,0x2e,0xcf,0x5,
+ 0x6f,0x4a,0x85,0x50,0x53,0x1,0xa9,0x24,0x42,0x71,0x9,0x3,0xe3,0x91,0x3a,0x90,
+ 0x33,0x65,0xe0,0x6d,0x36,0xf8,0xb4,0x7a,0x74,0xf5,0xe,0x34,0xed,0xe8,0xf7,0x2d,
+ 0xfa,0xa7,0x13,0x96,0xc7,0x2b,0xab,0x52,0xcd,0xf1,0x5b,0xb5,0xee,0x2f,0x60,0xe7,
+ 0x2f,0x80,0xb0,0x34,0x17,0xae,0x3d,0xc5,0x18,0x2f,0x37,0xa4,0x3a,0x1d,0x4c,0x87,
+ 0xaa,0x20,0x39,0x50,0x4,0x1f,0xef,0xc3,0x67,0x22,0x43,0xaf,0xcb,0x7d,0xaa,0xc4,
+ 0xe5,0x2b,0x1c,0x97,0x15,0x3,0xc0,0x7e,0xa3,0x72,0x5b,0x92,0x41,0x7b,0xd4,0x20,
+ 0x8,0xd0,0x48,0x29,0x64,0x11,0xf6,0xc1,0x17,0xa0,0x10,0xe5,0xa,0x38,0x44,0x3f,
+ 0x6,0x39,0xa1,0x68,0xef,0x90,0xef,0xc4,0x98,0x2c,0x20,0x84,0x90,0xb0,0x27,0x35,
+ 0x33,0xa,0x29,0x26,0x4f,0xcd,0xe4,0xa4,0xc9,0x49,0x75,0x34,0x43,0xd8,0x19,0xa0,
+ 0x85,0x97,0xbd,0xfe,0x7b,0x0,0x2,0xa3,0xeb,0x7,0x96,0x47,0x28,0xa5,0x34,0x62,
+ 0x1c,0x8f,0xb2,0x9f,0x9,0x7b,0xf0,0xfd,0xf2,0x4f,0xa6,0x94,0xfa,0x22,0xc9,0xf7,
+ 0x6d,0x0,0xe,0x19,0xb9,0x2a,0xab,0x3b,0x72,0x2d,0x0,0x0,0x0,0x0,0x49,0x45,
+ 0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /usr/local/google/home/chudy/Icons/play.png
+ 0x0,0x0,0x5,0xd3,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x20,0x0,0x0,0x0,0x20,0x8,0x6,0x0,0x0,0x0,0x73,0x7a,0x7a,0xf4,
+ 0x0,0x0,0x0,0x4,0x73,0x42,0x49,0x54,0x8,0x8,0x8,0x8,0x7c,0x8,0x64,0x88,
+ 0x0,0x0,0x5,0x8a,0x49,0x44,0x41,0x54,0x58,0x85,0xed,0x56,0x5b,0x6c,0x54,0x55,
+ 0x14,0x5d,0xf7,0x35,0x33,0x9d,0x69,0x99,0xb6,0xb4,0xd3,0x17,0xad,0x16,0x6b,0x69,
+ 0x2b,0x54,0x6d,0xa1,0x52,0x40,0x90,0xf0,0x4a,0x15,0x10,0x1,0x3f,0x4c,0x8c,0x11,
+ 0x35,0x84,0xc4,0xa0,0x12,0x8b,0xf8,0x63,0x6c,0xd4,0xf,0x81,0x4a,0x4d,0xc,0x89,
+ 0xf2,0x61,0x4c,0x24,0x41,0x1b,0x85,0x18,0xb0,0x8,0x4,0x68,0x2a,0x33,0x6d,0x79,
+ 0x86,0x58,0xa0,0xf,0xe9,0x8b,0x3e,0x67,0x3a,0xed,0x3c,0xda,0xce,0xcc,0xbd,0xf7,
+ 0x9c,0xe3,0x7,0x9d,0xf1,0xce,0x30,0x53,0xaa,0x92,0xf8,0xc3,0x4e,0x76,0xee,0x39,
+ 0xeb,0xec,0x7d,0xd6,0xda,0xfb,0xdc,0x7b,0x66,0x80,0x87,0xf6,0x3f,0x1b,0x37,0xd3,
+ 0xc0,0xf2,0x5d,0x48,0xe6,0x78,0x7e,0x9b,0xa8,0xe7,0xd7,0x31,0x8a,0x5,0xc,0xe0,
+ 0x39,0x9e,0xf9,0x0,0xae,0x95,0x4,0xd8,0x51,0x46,0xc9,0x4f,0x8d,0x35,0x18,0x7d,
+ 0xe0,0x2,0x4a,0xb7,0x43,0xd2,0x27,0x8a,0x9f,0xea,0x5,0xdd,0xce,0xf9,0xc5,0xf3,
+ 0x85,0xac,0xec,0xc,0x7d,0x6a,0xb2,0x5,0xbc,0xc0,0x43,0x51,0x65,0x38,0x9d,0x4e,
+ 0x74,0x75,0xf7,0xf8,0x6f,0xdd,0x6a,0x55,0x29,0x21,0x35,0x2e,0xa3,0xfa,0xd9,0x8d,
+ 0x2a,0xc8,0xf,0x44,0x40,0xf9,0x2e,0x24,0x4b,0x71,0xd2,0xa9,0x27,0xb,0xcb,0xe6,
+ 0x2f,0x5c,0x58,0x62,0x70,0xb3,0x3e,0x8c,0xf8,0xbb,0xe1,0x55,0xec,0x20,0x4c,0x85,
+ 0xc8,0xeb,0x60,0x96,0xd2,0x61,0x31,0x3c,0x6,0x49,0x31,0xe3,0x42,0x63,0x83,0xaf,
+ 0xa3,0xb3,0xad,0x95,0x9f,0xa4,0xeb,0x7e,0xff,0xa,0x8e,0xff,0x24,0xa0,0xb4,0xa,
+ 0xc6,0x44,0x35,0xa1,0x65,0xcd,0xf2,0xe7,0xb3,0x73,0xf3,0x72,0x44,0x67,0xa0,0x17,
+ 0x84,0x29,0xa0,0x4c,0xc5,0xb8,0xea,0x84,0xc3,0xdf,0x9,0x85,0x6,0xc0,0x18,0x3,
+ 0x51,0x18,0x4c,0x48,0x45,0xfe,0xac,0xe5,0x68,0x6d,0x6b,0x53,0x2e,0x5e,0x6d,0xec,
+ 0xe7,0x40,0x8a,0xad,0xfb,0xe0,0xbd,0x9f,0x0,0x21,0xd6,0x42,0xc1,0xb2,0xb8,0x1f,
+ 0x5e,0xa9,0xd8,0xb1,0xc8,0x32,0x27,0x51,0xba,0xd3,0xdf,0xcb,0x5a,0x6f,0xfe,0x39,
+ 0xde,0xd9,0xd6,0x33,0xe9,0x1a,0x99,0x60,0x89,0x86,0x74,0xa9,0x28,0x6d,0x19,0x14,
+ 0x35,0x80,0xb1,0x9,0x3b,0x94,0x0,0xc5,0xb8,0xcf,0x8b,0xfe,0xb1,0xe,0xcc,0x4b,
+ 0x2f,0x11,0x78,0x5e,0x34,0xda,0x47,0xec,0x8b,0xee,0x58,0xd9,0xe1,0x7f,0xd5,0x81,
+ 0xf2,0x3d,0xc2,0x6b,0xaf,0xae,0x7a,0xf7,0x1b,0x53,0x2a,0xa7,0x3f,0x7e,0xfa,0x98,
+ 0x7f,0x68,0xb4,0xf7,0x24,0x55,0xd9,0xf7,0xa0,0xfc,0x0,0xe3,0x69,0xa1,0x20,0x72,
+ 0xef,0x99,0xcd,0x89,0xf9,0xeb,0xd7,0x6e,0x30,0xe,0xf9,0x3b,0xd0,0x39,0x72,0xd,
+ 0xaa,0x4c,0xa1,0x2a,0xc,0x3c,0xd1,0xa3,0xfc,0x91,0xcd,0x38,0x6b,0x3d,0xe1,0x75,
+ 0x8c,0x8d,0x6e,0x6b,0xde,0x4f,0x7e,0xfe,0x47,0x2,0x4a,0xb7,0x43,0x5a,0xfe,0x4c,
+ 0x85,0xbd,0xa8,0xb0,0xc0,0x7c,0xf4,0xcc,0x61,0xbb,0xc7,0xe5,0x5a,0x6f,0xad,0x51,
+ 0x2e,0x47,0xc6,0x2d,0xfd,0x80,0xdf,0xa1,0xd7,0x1b,0xf7,0x6f,0xaa,0xd8,0x1a,0xdf,
+ 0x62,0x3f,0x8f,0x11,0xcf,0x10,0xa8,0xca,0x0,0x0,0xe9,0x9,0x73,0x91,0x16,0x97,
+ 0x8f,0x33,0xd,0x27,0xba,0x6d,0xfb,0xe8,0x5c,0x0,0x2c,0x96,0x0,0x3e,0x12,0x48,
+ 0xcd,0x4a,0x79,0x23,0x33,0x25,0x27,0xfe,0x9c,0xed,0x94,0x6b,0x6c,0xcc,0xb1,0x38,
+ 0x1a,0x39,0x0,0x58,0xf7,0xd1,0xaf,0x7d,0x13,0x93,0x1f,0x36,0x34,0xd6,0x7b,0xf3,
+ 0xcd,0x4b,0x43,0xe4,0x0,0x30,0xec,0xed,0x82,0x39,0x21,0x9,0x89,0xe6,0xa4,0xa4,
+ 0x25,0xbb,0xc5,0x35,0xd3,0x75,0x20,0x52,0x0,0x57,0x92,0xbb,0xe2,0x73,0x97,0xc7,
+ 0x25,0xf4,0xc,0xb6,0x6f,0x6a,0xfa,0x12,0xdd,0xd3,0x25,0x37,0x1e,0xa0,0x7,0x7,
+ 0xed,0xbd,0x83,0x72,0x80,0x22,0xd9,0x98,0x11,0xc2,0x19,0x18,0x86,0x3c,0xb7,0x91,
+ 0x9b,0x9d,0x97,0x0,0xe,0x2f,0xcc,0x58,0xc0,0x86,0x4f,0xd2,0x8b,0x5c,0x13,0xa3,
+ 0xe6,0x5b,0x7d,0x4d,0xa7,0x6c,0x5f,0xa8,0xd,0xd3,0x25,0x6,0x8d,0x2a,0x38,0x70,
+ 0xa7,0xbf,0xcb,0x67,0x89,0xcf,0xd,0xc3,0x5d,0xbe,0x61,0x58,0x92,0xd3,0x79,0x8e,
+ 0xd1,0x99,0xb,0x98,0x93,0x56,0xf0,0x9c,0xca,0xfc,0xbe,0x61,0xfb,0xc0,0x47,0x33,
+ 0x21,0x7,0x0,0x5e,0xa4,0xf5,0x83,0x43,0x43,0x24,0xc9,0x98,0x16,0x86,0x7b,0x2,
+ 0x4e,0x98,0xe3,0x53,0xc0,0x18,0x97,0x16,0x23,0x15,0x0,0x20,0x6a,0x27,0x3e,0x79,
+ 0x74,0x73,0x40,0x96,0x7b,0x63,0x9d,0x7b,0x34,0x53,0x7d,0x18,0xf4,0x48,0xa3,0x3a,
+ 0xa3,0x64,0xe,0xc7,0x89,0xc,0x49,0xd4,0x81,0x31,0xe8,0x67,0x26,0xa0,0xa,0x7c,
+ 0x40,0x74,0xb,0xe3,0x1e,0x75,0x6f,0x64,0xd0,0x92,0x4a,0x58,0xc0,0x84,0x3a,0x6,
+ 0x94,0x46,0xdb,0x44,0x51,0x14,0x8,0xbc,0x18,0x6d,0x9,0x0,0xa4,0xf2,0xf7,0x85,
+ 0xa8,0x5f,0x1,0x7,0x7c,0x17,0xca,0x2a,0x1d,0x80,0x61,0x32,0xc9,0xdd,0xe9,0xf5,
+ 0xfa,0xeb,0x23,0x3,0x6d,0xd5,0xb0,0x57,0xec,0x24,0x4b,0x3d,0x6,0xe1,0x5b,0xa3,
+ 0x29,0x61,0xd3,0x8a,0xc5,0x2b,0x8d,0x7a,0x7d,0x1c,0x24,0x5e,0xf,0x49,0xd0,0x43,
+ 0x14,0x74,0xf7,0x6e,0xce,0x71,0x10,0x5,0x9,0xaf,0x6f,0x7d,0x3b,0xc,0x97,0xfd,
+ 0x32,0x8e,0x9f,0xaf,0xf5,0x4d,0x4c,0xba,0xaa,0xad,0xd5,0xf4,0xe3,0xd0,0x3d,0x50,
+ 0x5c,0x9,0xd3,0x9c,0xc,0xf1,0x9d,0x3a,0xaf,0xba,0x17,0x55,0xa0,0xb1,0xca,0x29,
+ 0xaf,0xe4,0x77,0x4b,0x3a,0x5d,0x55,0xe9,0xd3,0xb,0x8d,0x92,0x1,0xb8,0xed,0xbc,
+ 0xa,0x42,0xd5,0x58,0xe1,0x0,0x0,0x81,0x97,0xf0,0x54,0xd6,0x6a,0xb0,0x80,0x80,
+ 0xb3,0xd6,0xdf,0x26,0x89,0x1a,0x78,0xeb,0xc2,0x7e,0x72,0x4,0xd0,0x5c,0xc5,0xc3,
+ 0x6b,0x41,0x1e,0x4f,0xd0,0xe5,0x75,0xec,0x51,0xaf,0x4d,0xb7,0x59,0x9f,0x8d,0xd9,
+ 0x32,0xcb,0x70,0x65,0x60,0xb0,0xef,0xc5,0x4,0x53,0xbc,0x94,0x63,0x99,0xc7,0x79,
+ 0x2,0x23,0x20,0x54,0x89,0x1a,0x6f,0x10,0x4d,0x28,0xcb,0x59,0x8f,0x31,0xa7,0x9b,
+ 0xd5,0xdb,0x4e,0x7b,0x65,0x95,0x54,0x34,0x56,0x93,0xba,0x90,0xb8,0xe0,0x60,0xe3,
+ 0x2e,0xc4,0x63,0x82,0x63,0xed,0xbf,0xd2,0xfe,0x18,0xdc,0x3c,0xee,0xde,0x9c,0x7c,
+ 0x5f,0x23,0xed,0xca,0x2c,0xa1,0xc7,0x46,0xc6,0x9c,0x2f,0x11,0x42,0xd,0x79,0x59,
+ 0x4f,0x8,0x3e,0x75,0x1c,0x32,0xf1,0x85,0x25,0xcc,0x32,0xa4,0xa0,0x2c,0x67,0x23,
+ 0xda,0xbb,0xda,0xe4,0x4b,0xd7,0xad,0x43,0xc,0x6a,0x79,0x53,0x35,0xbd,0x1e,0xd6,
+ 0x9d,0xe0,0xa0,0x60,0x6d,0x5c,0x1a,0x58,0xa0,0xa7,0xfd,0x4,0x82,0xa5,0x70,0x53,
+ 0xeb,0x2,0xee,0xbe,0xac,0xc1,0xa7,0x8,0x40,0xec,0xbf,0x8,0x77,0x5c,0x32,0x3b,
+ 0xac,0x48,0xde,0x65,0x6e,0xb7,0x3b,0x25,0x2f,0xbb,0x50,0x62,0x20,0xf0,0x29,0xe3,
+ 0x0,0x80,0xd9,0xa6,0x2c,0x14,0x67,0xac,0xc2,0xe5,0xeb,0x36,0x7f,0x5b,0x67,0x4b,
+ 0x8b,0x6f,0x84,0x2c,0xbf,0x74,0x10,0xf7,0x14,0x17,0x12,0x50,0xb4,0xc5,0x60,0xf8,
+ 0xe5,0x4d,0xd9,0x35,0x55,0x29,0x1f,0x83,0x3c,0x4c,0x84,0xb3,0x1d,0x8a,0xfb,0xf,
+ 0xf6,0xa3,0xa9,0x20,0x90,0xe1,0x70,0x38,0xe6,0x65,0x67,0xe6,0x4a,0x71,0x3a,0x23,
+ 0xe2,0x74,0x9,0xc8,0x9a,0x55,0x4,0x6b,0x73,0xfd,0xe4,0xc0,0x70,0xff,0xc9,0xd6,
+ 0x73,0x64,0x4b,0x57,0x1d,0x26,0xa6,0x8a,0xa,0x3a,0xb,0x13,0xb0,0x60,0xb5,0xcc,
+ 0xdd,0xac,0x83,0xaa,0x21,0x17,0x35,0x22,0x84,0x8,0xf2,0xd0,0x5c,0x96,0x21,0xf4,
+ 0x37,0xb1,0xb3,0xc9,0x5,0xaa,0xd3,0x31,0x6a,0x7f,0x36,0x75,0x76,0x9a,0x64,0xd6,
+ 0x5b,0xd0,0xd4,0xdc,0x38,0xe9,0x76,0xb9,0xf,0x36,0xd5,0xd0,0x4a,0xff,0x20,0x48,
+ 0x4,0x79,0xd0,0x58,0xe8,0x33,0x1c,0x77,0x84,0x2a,0xf,0x3a,0x17,0x31,0x8f,0xe5,
+ 0x1c,0x0,0x5c,0x39,0x44,0x6b,0xb,0x5f,0x26,0x9d,0x2d,0xe4,0xe6,0x11,0x70,0xbc,
+ 0xde,0xef,0x56,0x2b,0xaf,0x1c,0xa2,0xb5,0xf8,0xfb,0xb6,0x8d,0xf6,0xd3,0xcf,0xb4,
+ 0xa0,0x76,0x53,0xe1,0x3e,0xf3,0x48,0x8c,0x4d,0x39,0x7d,0x74,0x25,0x32,0x4d,0xa9,
+ 0x82,0xe5,0x46,0x2d,0x69,0x6,0x40,0x1,0x90,0xa9,0xa7,0xd6,0x43,0x98,0x56,0x40,
+ 0x64,0xc5,0xd1,0x48,0x23,0xbb,0xa3,0x6d,0x69,0x48,0x84,0xe6,0x19,0xcd,0xb5,0x82,
+ 0x88,0xf6,0xfe,0xc,0x26,0x21,0x2,0xb,0xe2,0x5a,0xf2,0x68,0xe7,0xa9,0x8d,0xd7,
+ 0xe6,0x45,0x13,0x14,0x14,0x11,0xf3,0x4f,0x69,0x64,0x37,0x38,0x44,0xaf,0x3a,0x9a,
+ 0x80,0x68,0xdd,0x8,0x8e,0x89,0x66,0x1e,0x75,0x83,0x58,0x62,0x22,0xc9,0x67,0x22,
+ 0x40,0x4b,0x1e,0x46,0xfa,0xa0,0x2d,0xda,0x51,0x3c,0xb4,0x19,0xdb,0x5f,0x6d,0x2d,
+ 0x80,0x5,0xee,0xde,0x7d,0x6d,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,
+ 0x60,0x82,
+ // /usr/local/google/home/chudy/Icons/reset.png
+ 0x0,0x0,0x9,0xf2,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x20,0x0,0x0,0x0,0x20,0x8,0x6,0x0,0x0,0x0,0x73,0x7a,0x7a,0xf4,
+ 0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+ 0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xb1,
+ 0x8e,0x7c,0xfb,0x51,0x93,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x7a,
+ 0x25,0x0,0x0,0x80,0x83,0x0,0x0,0xf9,0xff,0x0,0x0,0x80,0xe9,0x0,0x0,0x75,
+ 0x30,0x0,0x0,0xea,0x60,0x0,0x0,0x3a,0x98,0x0,0x0,0x17,0x6f,0x92,0x5f,0xc5,
+ 0x46,0x0,0x0,0x9,0x68,0x49,0x44,0x41,0x54,0x78,0xda,0xc4,0x97,0x79,0x90,0x14,
+ 0xd5,0x1d,0xc7,0x3f,0xef,0x75,0xf7,0x74,0xf7,0xcc,0xce,0xcc,0xb2,0x33,0x2c,0x87,
+ 0xc8,0xb1,0x20,0x82,0x18,0x4,0x3c,0x2a,0x51,0x8c,0x16,0x6a,0xf0,0x42,0xad,0xb2,
+ 0x44,0xc,0x62,0xa,0x4b,0x42,0x12,0x8f,0x2a,0xf1,0x8a,0x29,0x91,0x98,0x68,0x69,
+ 0xc5,0x94,0xc4,0x44,0x72,0x54,0x34,0x46,0xd0,0x78,0x51,0x91,0x4,0x31,0x4a,0x3c,
+ 0x59,0x4,0xb9,0xa2,0x80,0x2c,0xb,0x5,0x72,0x2d,0xb2,0xec,0xee,0xec,0x2e,0x73,
+ 0xf7,0x4c,0xf7,0x7b,0xf9,0x63,0x66,0x97,0x5,0x31,0x9a,0xfc,0x93,0x57,0xf5,0x6a,
+ 0xaa,0xe7,0x75,0xf7,0xef,0xdb,0xdf,0xdf,0xef,0xfd,0xbe,0xdf,0x27,0xb5,0xd6,0xfc,
+ 0x3f,0xa7,0xc9,0xd7,0x1c,0x1f,0xa,0x11,0xd,0xc1,0x79,0x6,0xf6,0x14,0x67,0xd0,
+ 0xa0,0x9,0xa1,0x41,0x3,0x87,0x1b,0xb5,0xb5,0xfd,0x10,0x42,0x4,0xdd,0xdd,0x5d,
+ 0xde,0xa1,0xd6,0x7d,0xa5,0xd6,0xd6,0xcd,0x5a,0x15,0xde,0xd3,0xd0,0x78,0xa6,0xd6,
+ 0x47,0xbe,0xce,0x7b,0x85,0xd6,0xfa,0x3f,0xde,0xb0,0x42,0x88,0x7e,0x3,0xe1,0xd6,
+ 0xc8,0xe8,0x71,0xb3,0xeb,0xae,0xbb,0xb6,0x21,0xfc,0xed,0xf3,0xb1,0x86,0x9e,0x8c,
+ 0x8c,0x46,0x11,0x56,0x5,0xbf,0xf6,0x7d,0x54,0x26,0x8b,0xdf,0x72,0x90,0xdc,0xea,
+ 0xd5,0x74,0xbe,0xf2,0xea,0xfe,0x7c,0xd3,0xd6,0x25,0x39,0x78,0xf2,0x7c,0xad,0xdb,
+ 0xff,0x27,0x0,0x42,0x8,0xb1,0x1e,0xa6,0xc7,0x47,0x8f,0x7b,0x38,0x71,0xc7,0xed,
+ 0xa3,0xa2,0x17,0x5d,0x88,0x8c,0x45,0xd1,0x5e,0x9,0xe5,0x95,0xd0,0x41,0x0,0x4a,
+ 0x55,0x6e,0x96,0x2,0x61,0x18,0xc8,0x50,0x8,0x6c,0x1b,0x9d,0xcd,0x91,0x5d,0xd5,
+ 0x48,0xfb,0x53,0x8b,0xf6,0xa7,0xb7,0xfc,0xeb,0xa7,0xe7,0xc0,0x9f,0xf5,0x97,0x4,
+ 0x3a,0x21,0x80,0xe9,0x42,0x18,0xf7,0x21,0x1f,0x1b,0x30,0xfb,0xe6,0xbb,0x93,0xb7,
+ 0xdf,0x86,0xac,0xa9,0x21,0x48,0xa7,0xd1,0xe5,0x32,0x42,0x8,0xd0,0x1a,0xd,0x20,
+ 0x24,0xa0,0xa1,0xef,0x3b,0xb4,0x46,0x98,0x26,0x32,0x16,0x43,0x17,0x8b,0x74,0xfe,
+ 0xf1,0x19,0x5a,0x17,0x3d,0xf5,0xdb,0xe5,0x4,0x77,0x2e,0xd0,0xba,0xf4,0x95,0x0,
+ 0xa6,0xb,0x61,0xfc,0xd8,0x72,0x9e,0x3b,0xf9,0xc1,0x5,0x33,0xa3,0xd3,0xae,0x24,
+ 0xc8,0xa4,0xd1,0x9e,0x7,0x42,0x20,0x0,0xe1,0x38,0x8,0xd7,0x45,0x18,0x12,0x7a,
+ 0x1e,0x15,0xa0,0x83,0x0,0x5d,0x28,0xa0,0xb,0xc5,0xca,0xdf,0x5a,0x23,0x42,0x21,
+ 0x8c,0x78,0x9c,0xec,0xca,0xb7,0x39,0x38,0xff,0xc1,0x65,0xab,0xbc,0xec,0x8c,0xdb,
+ 0xb5,0xf6,0xbe,0x14,0x80,0x10,0x42,0x6e,0x40,0x3e,0x3e,0xf4,0x81,0x5,0xf3,0x6a,
+ 0xae,0x98,0x4a,0xd0,0x9e,0x42,0x6b,0x85,0xe8,0x59,0x77,0x5d,0x54,0x67,0x17,0xc5,
+ 0xa6,0x26,0x8a,0xbb,0x76,0x5,0x7e,0x67,0x77,0x1e,0xc0,0x8c,0xc7,0x5c,0x7b,0x54,
+ 0x83,0xe9,0x8e,0x3f,0x3,0x73,0xf0,0x20,0x54,0x2e,0x87,0x2a,0x16,0xab,0xd8,0x4,
+ 0x46,0x32,0x41,0xee,0x83,0x46,0xf6,0xcf,0xff,0xc9,0xd3,0x67,0xa9,0x60,0xae,0xd6,
+ 0x5a,0x7d,0x1,0x80,0x10,0x42,0xac,0x85,0xeb,0x6,0x5f,0x33,0xfd,0xe5,0xba,0x5b,
+ 0xe7,0x12,0xb4,0xb5,0xa3,0xb5,0xee,0xd,0x2e,0x63,0x51,0x72,0xef,0xad,0xd2,0x2d,
+ 0xaf,0x2d,0x5d,0xbb,0x73,0xef,0x67,0xaf,0x6d,0x87,0xa6,0x1d,0xd0,0xa1,0x40,0x9d,
+ 0x2,0xc9,0xb1,0x70,0xda,0x29,0x76,0x64,0xda,0xe0,0x8b,0xa6,0x5c,0x50,0x3b,0x73,
+ 0xa6,0x10,0x35,0x11,0x54,0x3a,0xd3,0xfb,0x71,0x66,0x7d,0x3d,0xdd,0x4b,0x5e,0xa0,
+ 0xe5,0xf9,0x67,0xe7,0x7c,0xb,0x9e,0xe9,0xa9,0x89,0xde,0x6d,0xf8,0x1c,0xd4,0xc5,
+ 0x4e,0x6a,0xf8,0x45,0x7c,0xfa,0xb5,0x94,0xf7,0x1f,0x40,0x97,0x8e,0x4d,0x97,0x30,
+ 0x24,0x5a,0x5,0xa4,0xf7,0x7e,0xb6,0x6d,0x26,0x2c,0x6,0x4a,0x40,0x50,0x5d,0xde,
+ 0x5,0x6c,0xc4,0xcb,0xbd,0xf2,0xeb,0x37,0x96,0x5f,0x70,0xee,0xda,0x8f,0xee,0x1b,
+ 0x3a,0xef,0xae,0x6f,0x58,0xc3,0x87,0xa2,0xd2,0x69,0x0,0x4a,0x85,0x3c,0xd1,0x2b,
+ 0x2f,0xa7,0x76,0xcd,0xda,0x87,0x5f,0xfc,0xac,0xf9,0xd,0xe0,0x73,0x0,0xd9,0x43,
+ 0xfd,0x18,0xb8,0xad,0x76,0xda,0x95,0xc3,0x54,0xd1,0x23,0xe8,0x48,0xa1,0xd2,0x99,
+ 0x63,0x66,0x69,0x7f,0xb,0xce,0xb8,0x71,0x62,0xf4,0xec,0xef,0xcf,0x59,0x8f,0xf1,
+ 0x20,0x90,0xed,0x33,0xd3,0xc0,0x11,0x20,0x75,0x7,0xfc,0xe3,0xf6,0xae,0xf6,0xe9,
+ 0xbb,0x1f,0xfe,0xf9,0x7,0xde,0xb6,0x66,0x34,0x82,0x20,0x9d,0x21,0x48,0x75,0x11,
+ 0xa4,0xd3,0xc4,0xaf,0x9e,0x36,0x60,0x24,0xe6,0xbd,0x42,0x8,0xd9,0xb,0xe0,0x51,
+ 0x88,0x87,0xfb,0xf,0xb9,0xc5,0x1e,0x33,0x1a,0xff,0xc0,0x1,0x82,0x4c,0x96,0x20,
+ 0x9b,0x45,0xab,0x4a,0xb7,0x52,0xd9,0x2c,0x2a,0x9b,0xa3,0xdc,0x72,0x10,0x77,0xe2,
+ 0x19,0xc,0x9a,0xf5,0xbd,0x5b,0x37,0x49,0x6b,0x61,0x35,0x85,0x5a,0x6b,0xad,0xb4,
+ 0xd6,0x65,0xa0,0x8,0xa4,0xd7,0xc2,0xc1,0x79,0x5e,0xee,0x96,0x96,0xa7,0x7e,0xb3,
+ 0x59,0xa5,0x52,0xa0,0x2,0x54,0x26,0x4b,0xf9,0x40,0xb,0xf6,0x88,0xe1,0xd4,0xc,
+ 0x19,0x76,0xe3,0xb3,0x50,0x5f,0xd9,0xc1,0x42,0x88,0x73,0x60,0x72,0xcd,0xa4,0x89,
+ 0x43,0xb4,0xa,0x8,0x72,0xb9,0x2a,0xfd,0x2,0xaf,0x69,0x1b,0xfe,0xbe,0x3,0x68,
+ 0xdf,0xc7,0xef,0xec,0xc4,0x6f,0x6b,0xc3,0xfb,0xb4,0x9,0x73,0xf0,0x60,0xea,0xa6,
+ 0x5c,0x72,0xdb,0x6,0xcc,0xc7,0x84,0x10,0xe2,0xe8,0xe,0xd4,0x5a,0x6b,0xed,0x3,
+ 0xf9,0xb5,0x70,0x78,0x4d,0xb6,0x6b,0x7e,0xf7,0xd2,0xbf,0x6,0xc2,0xa,0xa1,0x4b,
+ 0x25,0x74,0xa1,0x80,0x2a,0x95,0x89,0x9c,0x3d,0x29,0x31,0x1c,0xe3,0x62,0x21,0x84,
+ 0x30,0x1,0x19,0x91,0xf6,0x14,0x73,0x40,0x3d,0xa5,0xe6,0x9d,0x94,0xf6,0xee,0x3,
+ 0xdf,0x47,0x7,0x1,0xa9,0x4f,0x3f,0x5d,0x5f,0xec,0xec,0xce,0xc,0x3a,0x73,0xd2,
+ 0x45,0x41,0xfa,0x8,0x41,0xaa,0xb,0xb4,0x2,0xd,0xe6,0x80,0x1,0x44,0x87,0x8f,
+ 0xbc,0x67,0xe3,0xde,0xbd,0x86,0x10,0xe2,0x9e,0xbe,0x95,0xad,0xb5,0xe,0x84,0x10,
+ 0x85,0x3b,0x60,0xf5,0x9a,0x2d,0x5b,0x57,0x9a,0xcb,0x57,0x5c,0xa6,0x35,0xe8,0x72,
+ 0x19,0x6b,0xd8,0xc9,0x48,0x27,0x82,0x23,0xed,0x8b,0x51,0xf9,0x97,0x24,0x60,0x98,
+ 0xc2,0x9c,0xe0,0x35,0xef,0x20,0xf3,0xe6,0x4a,0xa,0xeb,0xd6,0x53,0x6e,0x6b,0xa3,
+ 0xb8,0x7d,0x3b,0x3b,0xbb,0x3a,0x97,0xcc,0xd1,0x85,0x1f,0xb5,0x6d,0xda,0xd8,0x28,
+ 0x4c,0xb,0x19,0xad,0x1,0x21,0x40,0xa,0xfc,0x8e,0x76,0xa4,0xeb,0x12,0x6d,0x18,
+ 0x31,0x6f,0x13,0xf6,0xa3,0x7d,0x99,0xa8,0x8e,0x0,0x28,0xee,0x47,0xbd,0x54,0xdc,
+ 0xde,0x8c,0x4a,0x1f,0xc1,0x6b,0x6e,0xa6,0xb0,0x6a,0x35,0xde,0xce,0x1d,0xd8,0xd2,
+ 0x38,0x1d,0x30,0x24,0x20,0x4d,0xc3,0x18,0x26,0xac,0x10,0x48,0x89,0x8c,0x46,0x31,
+ 0x6a,0x6b,0xd1,0x4a,0x5,0x1d,0x2a,0xf8,0xa4,0x19,0xda,0xee,0xd6,0xde,0xec,0xd4,
+ 0x8e,0x1d,0x1f,0x19,0xb5,0xb5,0x98,0xf5,0xfd,0x91,0x8e,0x83,0xb4,0x6d,0x54,0x26,
+ 0x83,0x8c,0xc5,0x88,0x8e,0x1a,0x79,0xef,0x46,0x42,0x8f,0x1c,0x9f,0xe,0xa0,0xbc,
+ 0x1b,0xf1,0x89,0xf6,0x83,0x82,0x11,0x8b,0x61,0xc4,0x62,0x8,0xdb,0x46,0x46,0x22,
+ 0x18,0xa6,0x1c,0x0,0x48,0x9,0x48,0xc3,0x32,0xe3,0x32,0xec,0x22,0xec,0x10,0x22,
+ 0x12,0x46,0x38,0xe,0x3a,0x50,0xb9,0x43,0x18,0xad,0x40,0x6e,0xd,0x1c,0x7e,0x38,
+ 0xc8,0xdf,0x9c,0xda,0xb6,0x6d,0xb5,0x8c,0x44,0x30,0x92,0xc9,0x4a,0x37,0x74,0x1c,
+ 0x54,0x36,0x87,0xac,0x4b,0x10,0x3d,0x75,0xcc,0xfd,0x1b,0x9,0x1d,0xcf,0x84,0xda,
+ 0x47,0xa9,0x3d,0x8,0x82,0x34,0xb6,0x8d,0xc,0x87,0xc1,0xb1,0x2b,0x20,0x2c,0x2b,
+ 0xd2,0xd3,0xcc,0x41,0x1a,0x42,0xd8,0x36,0xd2,0x76,0x2a,0xd3,0xb2,0x10,0xd2,0xd0,
+ 0x71,0x84,0xf,0xf8,0x40,0x61,0x5,0x1c,0x78,0xa4,0x9c,0x9d,0x93,0xda,0xb2,0x75,
+ 0x83,0xc,0x87,0x31,0x12,0x89,0xa,0x13,0x8e,0x83,0xce,0xe7,0xb1,0x6,0xc,0x20,
+ 0x36,0x66,0xec,0x7d,0x1b,0x8,0x2d,0xe8,0x3,0x42,0xbb,0xa0,0x90,0x86,0x96,0xa1,
+ 0x50,0x95,0x39,0x7,0x61,0xdb,0x8,0xa3,0xd2,0x82,0x24,0x80,0x42,0xa7,0x31,0x24,
+ 0x32,0x1c,0xae,0x2c,0xda,0x21,0xa4,0xeb,0x46,0x86,0x10,0xd4,0xf5,0x14,0x15,0x50,
+ 0x58,0xe,0x2d,0xf3,0x4b,0x99,0x9b,0x52,0x1f,0x6f,0x58,0x2f,0x1d,0x1b,0x23,0x51,
+ 0x87,0x70,0x6c,0x84,0x63,0xa3,0xa,0x79,0xac,0xa1,0x43,0xa8,0x3d,0xed,0xf4,0x5,
+ 0xeb,0x31,0x1f,0xea,0x1,0x71,0xa,0x76,0xdc,0x72,0xed,0x18,0x55,0xa5,0x94,0x61,
+ 0x17,0xc,0x3,0xad,0x55,0xbe,0x17,0x40,0xb9,0x54,0x6a,0x1,0x90,0xd1,0x1a,0xa4,
+ 0xeb,0x20,0xa4,0x81,0x99,0x4c,0x98,0x83,0x61,0x7c,0x45,0x6a,0x8e,0x82,0x58,0x9,
+ 0x2d,0x4f,0x16,0xcb,0xb7,0x74,0xac,0xfb,0x68,0xa3,0xb0,0x42,0x98,0xc9,0x24,0xd2,
+ 0x75,0x2b,0x4c,0x14,0x3d,0xac,0x91,0x23,0xe8,0x37,0x7e,0xc2,0xfc,0x8d,0x98,0xf,
+ 0x0,0x72,0x24,0xfe,0x18,0xa3,0xae,0x2e,0x2c,0x2d,0x13,0xe9,0x54,0xf2,0x2f,0xc,
+ 0x89,0x57,0x2e,0xb7,0xf7,0x0,0x50,0xb9,0xb2,0xb7,0x4d,0x7b,0x25,0x8c,0xda,0x78,
+ 0x45,0x70,0x94,0x22,0x34,0x6c,0x28,0xfd,0x84,0xf5,0xdd,0x1e,0x90,0x7d,0x41,0xbc,
+ 0x40,0x69,0xef,0x43,0xc5,0xcc,0x4d,0x1d,0x8d,0x8d,0x9f,0x20,0x25,0x46,0xff,0x24,
+ 0x22,0x1c,0x46,0xb8,0x2e,0xba,0x5c,0xc6,0x1e,0x3b,0x96,0xf8,0xf8,0x89,0x3f,0x5b,
+ 0x83,0xbc,0xb3,0x3e,0xd6,0xef,0x6,0xeb,0xe4,0x93,0xd0,0x4a,0x23,0x5c,0x17,0x19,
+ 0x8f,0xa3,0xcb,0x3e,0x5e,0xb1,0xb8,0x1d,0xd0,0x12,0x50,0x87,0x95,0xff,0x41,0xd0,
+ 0xde,0x8e,0x11,0x8f,0x57,0x18,0x0,0xcc,0x64,0x82,0x48,0xc3,0x88,0x29,0x2b,0x31,
+ 0x2f,0x38,0xae,0xba,0x3,0x20,0xbf,0x2,0x5a,0x16,0x7a,0x85,0xd9,0xed,0xef,0xbf,
+ 0xbb,0x9,0xa5,0x31,0x13,0x75,0x48,0xd7,0x41,0x3a,0x36,0xba,0xe4,0xe1,0x4e,0x18,
+ 0x4f,0xfd,0x59,0xdf,0x7c,0x3c,0x3e,0x72,0xd4,0xf5,0x46,0x5d,0x2,0x94,0x42,0xba,
+ 0xe,0x46,0x6d,0x9c,0x20,0x95,0xa2,0x53,0x79,0xab,0x0,0x25,0x81,0xe0,0x75,0x82,
+ 0xd5,0xf9,0xdd,0x7b,0xe,0x63,0x19,0x88,0x9a,0x1a,0x84,0xeb,0xa0,0x3,0x9f,0xc8,
+ 0xf9,0xe7,0x1a,0xf5,0x6e,0xcd,0x2f,0xff,0x0,0xb1,0xbe,0x1b,0xbc,0x7,0xc4,0x5f,
+ 0x28,0xef,0x7e,0x22,0x9f,0xbe,0xb9,0xed,0xad,0xb7,0xb6,0xe2,0x7,0x18,0x89,0xc4,
+ 0xd1,0xdd,0xe1,0x97,0x71,0x27,0x4d,0xc4,0x99,0x34,0x41,0x80,0x46,0xb8,0xe,0x22,
+ 0x12,0x41,0x3a,0xe,0x85,0x5d,0xbb,0xd3,0xef,0xa1,0xde,0x5,0x2,0x9,0xa8,0xc5,
+ 0xd0,0xd9,0xda,0xdd,0xf1,0xb2,0xdf,0xf2,0x39,0x66,0x32,0x81,0x74,0x5d,0x90,0x6,
+ 0x32,0x1a,0xa5,0x6e,0xda,0x15,0x13,0xce,0x36,0x9c,0x97,0xfe,0x24,0x44,0xf4,0x44,
+ 0x20,0x5e,0x84,0x3d,0x4f,0x14,0x8e,0xdc,0xd8,0xfa,0xfa,0xf2,0xad,0xba,0xec,0x63,
+ 0xd6,0xd5,0x55,0x6b,0xc2,0x45,0xfb,0x3e,0x68,0x5d,0xb9,0x76,0x5d,0xcc,0x64,0x82,
+ 0xf2,0xe1,0xc3,0xa4,0xda,0x5a,0x97,0x3d,0x1,0x87,0x80,0x40,0x56,0x1b,0x46,0xe9,
+ 0x79,0xfc,0x45,0x99,0x75,0x1b,0x5a,0xa5,0x6d,0x57,0xc,0xa7,0xeb,0xa2,0x95,0x22,
+ 0x34,0x6c,0x18,0xfd,0xaf,0x9f,0x71,0xe9,0x59,0x35,0xf1,0x95,0xeb,0x84,0x98,0x7c,
+ 0xa2,0x74,0xbc,0x8,0x7b,0xee,0xcf,0x1f,0xb9,0xfe,0xf3,0xa5,0xaf,0xae,0x53,0xc5,
+ 0x22,0x46,0x6d,0xbc,0x37,0xa8,0x74,0xdd,0x4a,0xee,0x6b,0x6a,0x90,0xe1,0x30,0x99,
+ 0x8f,0xd6,0x77,0xbd,0x46,0x79,0x21,0x50,0xd2,0x5a,0x6b,0xa1,0xb5,0xa6,0x2a,0x8d,
+ 0x91,0xa5,0xc8,0x9b,0x27,0x9d,0x77,0xe1,0xaf,0x22,0x97,0x5e,0x82,0x3a,0x72,0xd4,
+ 0x55,0x4b,0xd7,0x45,0x65,0x32,0x64,0xdf,0x79,0x37,0xc8,0x35,0x6d,0x5f,0xe6,0x5,
+ 0x85,0x17,0x4a,0xb0,0xd9,0x82,0xe,0x2a,0x7a,0x9c,0x2c,0x1a,0xc6,0x84,0xa4,0xe5,
+ 0xcc,0x1d,0x34,0xed,0xaa,0xef,0x38,0x63,0xc7,0xa0,0xf2,0x85,0x63,0xfa,0xb2,0x8c,
+ 0xc7,0xc8,0xbf,0xbf,0x9a,0x2d,0xef,0xbc,0xf9,0xe0,0xd5,0xa8,0x27,0x81,0xac,0xd6,
+ 0x5a,0xf5,0x75,0x44,0x16,0x10,0x7f,0x7,0x6b,0xe1,0x29,0x33,0x66,0xdc,0xe8,0x4e,
+ 0x9a,0xd8,0x6b,0x26,0x0,0x8,0x59,0x8,0x2b,0x84,0xdf,0xd6,0x46,0x79,0xd7,0x6e,
+ 0x4a,0x87,0xe,0x15,0x54,0xbe,0xd0,0xd,0x68,0xe1,0x3a,0xf1,0xd0,0xc0,0x81,0x91,
+ 0x50,0x43,0x3,0x66,0xa2,0xae,0x42,0x7d,0xdf,0xe0,0xd1,0x28,0xc5,0xa6,0xed,0xec,
+ 0x59,0xbc,0x78,0xd9,0xe5,0xba,0x34,0x37,0xb,0xdd,0xba,0x6a,0x50,0x8f,0xb1,0x64,
+ 0x80,0x9d,0x80,0xc4,0xdf,0x43,0xce,0x33,0x43,0x67,0xcc,0x9c,0xea,0x9e,0x75,0x26,
+ 0x2a,0x97,0x3,0xdf,0xaf,0x88,0x10,0x40,0x28,0x84,0xb4,0xed,0x5e,0x7,0x5c,0x7d,
+ 0xb8,0xd2,0x77,0x4b,0x25,0xf0,0xbc,0xa3,0x6b,0xa6,0x89,0x8c,0x44,0x28,0x6e,0xde,
+ 0x42,0xcb,0xf3,0x4b,0x1a,0x7f,0xe8,0xe5,0x66,0x7d,0xc,0x6d,0x40,0xb1,0xc7,0x92,
+ 0x7d,0xc1,0x94,0x2,0x4e,0x3,0x24,0x9f,0xc6,0x7a,0x6c,0xc4,0xd4,0xa9,0x37,0x44,
+ 0x2f,0xbf,0xc,0x61,0x59,0xa8,0x42,0x1,0x82,0xe0,0x28,0x90,0x3e,0x81,0x8f,0xb7,
+ 0xe5,0x48,0x89,0xac,0xd6,0x50,0xee,0x9f,0x6f,0xb3,0x67,0xf9,0xdf,0x96,0xdd,0xa3,
+ 0xfd,0xbb,0x36,0xc0,0x61,0xa0,0x70,0x42,0x53,0x7a,0x3c,0x8,0x20,0xf6,0x2a,0xcc,
+ 0x1e,0x33,0x6c,0xd4,0x1d,0x89,0x69,0x57,0xe,0xb4,0x4f,0x1f,0x57,0x51,0x40,0xcf,
+ 0xab,0x50,0xac,0xf4,0xb1,0xc,0x48,0x51,0x39,0xf,0x84,0x2c,0x54,0xd9,0xc7,0xdb,
+ 0xde,0x4c,0xf7,0xeb,0x2b,0x52,0x3b,0x77,0xed,0x58,0x74,0xd,0xea,0xf7,0x55,0xdb,
+ 0x76,0x4c,0xf0,0x2f,0x3d,0x98,0x54,0x41,0x84,0x80,0x9a,0x59,0x30,0x7c,0x16,0xf2,
+ 0x7,0x27,0xd,0x1f,0x79,0x55,0x74,0xf2,0xe4,0xfe,0xce,0x98,0xd1,0x18,0xc9,0x24,
+ 0xd2,0x71,0xaa,0x62,0xa,0x28,0x85,0x2e,0x16,0xf1,0x53,0x9d,0x78,0x3b,0x77,0x90,
+ 0xf9,0x70,0x4d,0xe7,0xc1,0x5d,0xbb,0x57,0x2c,0xa3,0xfc,0xbb,0x45,0x15,0xc3,0x9a,
+ 0x5,0xbc,0xe3,0x83,0x7f,0xe5,0xd1,0xac,0xea,0x9a,0x1d,0x20,0x3c,0x3,0x6,0x5f,
+ 0x6,0x93,0x87,0x58,0x91,0x73,0x6b,0x13,0x89,0x53,0x9d,0x7e,0x75,0xf5,0x56,0xb4,
+ 0x26,0x82,0x10,0x94,0xb2,0xd9,0xbc,0xd7,0xd9,0xd1,0x9e,0xe9,0xe8,0xdc,0x79,0xb0,
+ 0x9c,0x5b,0xfb,0x26,0x34,0x2e,0x81,0x16,0x20,0x5f,0xf5,0x89,0xe5,0xff,0xea,0x68,
+ 0x76,0x2,0x36,0xcc,0x2a,0x23,0x76,0xf5,0xd7,0xac,0x6a,0x44,0xaf,0xec,0x2,0xaa,
+ 0x2a,0xdd,0xa5,0x3e,0xb3,0x7c,0xa2,0xaf,0xee,0x3b,0xfe,0x3d,0x0,0x7,0x55,0xe9,
+ 0xbb,0xb5,0xef,0xa6,0xb2,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,
+ 0x82,
+ // /usr/local/google/home/chudy/Icons/package-br32.png
+ 0x0,0x0,0x3,0x9d,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x20,0x0,0x0,0x0,0x20,0x8,0x3,0x0,0x0,0x0,0x44,0xa4,0x8a,0xc6,
+ 0x0,0x0,0x1,0x4d,0x50,0x4c,0x54,0x45,0xff,0xff,0xff,0xab,0x71,0x3b,0xab,0x71,
+ 0x3b,0xab,0x71,0x3b,0xa6,0x72,0x41,0xab,0x71,0x3b,0xab,0x71,0x3b,0xab,0x71,0x3b,
+ 0xab,0x71,0x3b,0xab,0x71,0x3b,0xa6,0x72,0x41,0xab,0x71,0x3b,0xab,0x71,0x3b,0xcc,
+ 0x96,0x5c,0xaa,0x76,0x41,0xab,0x71,0x3b,0xa6,0x72,0x41,0xae,0x7c,0x48,0xc5,0x94,
+ 0x5c,0xb8,0x85,0x4f,0xb5,0x82,0x4c,0xb2,0x7f,0x4a,0xcc,0x96,0x5c,0xad,0x78,0x43,
+ 0xc2,0x8d,0x55,0xbe,0x8b,0x53,0xba,0x86,0x50,0xab,0x71,0x3b,0xab,0x71,0x3b,0xab,
+ 0x71,0x3b,0xcc,0x96,0x5c,0xc2,0x8d,0x55,0xad,0x78,0x43,0xaa,0x76,0x41,0xa3,0x6d,
+ 0x3a,0xbe,0x8b,0x53,0xba,0x86,0x50,0xb8,0x85,0x4f,0xb5,0x82,0x4c,0xb2,0x7f,0x4a,
+ 0xae,0x7c,0x48,0xff,0xcc,0x0,0xa6,0x72,0x41,0xc5,0x94,0x5c,0xd1,0x9c,0x60,0xfe,
+ 0xc5,0xe,0xfe,0xb7,0x6,0xfe,0xb6,0x0,0xd9,0xb2,0x75,0xfd,0xb0,0x17,0xfd,0xae,
+ 0xf,0xd7,0xad,0x72,0xd3,0xa8,0x6b,0xd3,0x9d,0x61,0xcd,0x9f,0x59,0xc6,0x95,0x43,
+ 0xdd,0xb7,0x7c,0xa6,0x71,0x3d,0xfe,0xc6,0xa,0x99,0x63,0x37,0x97,0x60,0x2f,0x93,
+ 0x58,0x26,0xff,0xd5,0x33,0xc2,0x91,0x39,0xfe,0xc8,0x23,0xd6,0xad,0x6e,0xc0,0x8d,
+ 0x38,0xfd,0xab,0x2,0xe5,0xb0,0x13,0xfd,0xb4,0x23,0xfc,0xa3,0xa,0xcf,0xa3,0x69,
+ 0xff,0xd1,0x19,0xd9,0xb3,0x78,0xcc,0x9d,0x52,0xca,0x9a,0x4d,0x9d,0x69,0x37,0x9d,
+ 0x66,0x34,0xff,0xce,0xa,0xfe,0xb9,0xf,0xc7,0x96,0x47,0xdb,0xb4,0x76,0xff,0xd3,
+ 0x27,0xfe,0xcf,0x45,0xc7,0x97,0x5f,0xff,0xd3,0x24,0xff,0xdf,0x64,0xfe,0xcd,0x3a,
+ 0xff,0xdd,0x59,0xff,0xdb,0x53,0xe8,0xb5,0x12,0xff,0xd9,0x48,0xbf,0x8b,0x34,0xfe,
+ 0xc8,0x26,0xb9,0x88,0x37,0xff,0xd8,0x43,0xfd,0xac,0x5,0xfe,0xc2,0x36,0xff,0xd6,
+ 0x37,0xfe,0xc1,0x2f,0xfc,0xa4,0xf,0xfe,0xbf,0x27,0xab,0x71,0x3b,0xe1,0xa7,0x1a,
+ 0xe2,0xbe,0x81,0xe0,0xa4,0x1f,0xfe,0xbf,0x4,0xde,0xba,0x7d,0xff,0xe0,0x6b,0x91,
+ 0x5c,0x32,0xfe,0xd1,0x4f,0xbd,0x1,0x93,0x12,0x0,0x0,0x0,0x1e,0x74,0x52,0x4e,
+ 0x53,0x0,0x11,0x22,0x33,0x33,0x44,0x55,0x66,0x77,0x88,0x88,0x99,0xaa,0xaa,0xbb,
+ 0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xcc,0xdd,0xee,0x87,
+ 0xac,0x27,0xf6,0x0,0x0,0x1,0xe1,0x49,0x44,0x41,0x54,0x78,0x5e,0x95,0xcf,0x65,
+ 0x73,0xdb,0x40,0x10,0x6,0x60,0xd9,0x89,0x5d,0x39,0x51,0x25,0x27,0xe5,0xc6,0x3e,
+ 0x10,0xa3,0x99,0x29,0xcc,0x58,0x66,0x66,0xfc,0xff,0x1f,0xbb,0xb7,0x97,0x89,0xe3,
+ 0x71,0x3d,0x9d,0xbe,0x2b,0xd9,0x33,0xf7,0xbc,0xb3,0x73,0x52,0xfe,0x33,0x73,0x39,
+ 0x2d,0x35,0x13,0x53,0xd9,0xc5,0xe2,0x4a,0x6e,0x6e,0x86,0xa6,0x55,0xad,0xa8,0x5d,
+ 0x49,0xcd,0x5c,0xbc,0x52,0xc8,0x65,0x25,0x14,0x3e,0x1b,0xc6,0xa2,0x9a,0xcd,0xa4,
+ 0x2f,0x2f,0x36,0xd4,0xcb,0x8b,0xd3,0x99,0x4c,0x4e,0xd5,0x8c,0x42,0xd1,0xd0,0x72,
+ 0x6a,0x5a,0xb9,0x4a,0x48,0x1c,0xc7,0xcd,0x66,0x13,0x7e,0x49,0xfd,0x6b,0xa5,0xb2,
+ 0x1f,0x51,0xcb,0xb2,0x1d,0xd7,0xf5,0x7c,0x9f,0xf3,0xbc,0x72,0x93,0xc8,0x46,0x2c,
+ 0xb,0xf5,0x7b,0x9d,0xbf,0x17,0xd0,0xc9,0xfa,0xf,0x28,0x3c,0xa4,0xb4,0x75,0x70,
+ 0x78,0xd6,0x6e,0xaf,0x6e,0xbc,0xc6,0x2,0x44,0x7a,0x4c,0x1a,0x1d,0x2c,0xb4,0x7e,
+ 0x3e,0x7d,0xf1,0xfe,0xfe,0xde,0x49,0xf0,0x3c,0xd4,0x95,0x65,0x82,0xd,0x1c,0xd2,
+ 0xd8,0x5f,0x87,0x82,0xd5,0x7a,0xfc,0xec,0xcd,0xe8,0x91,0x28,0xc0,0x86,0xe5,0x88,
+ 0x8c,0xb3,0x5b,0x69,0x54,0x44,0xe1,0xf7,0xbb,0xed,0x6a,0xb5,0x54,0x2a,0xe3,0x6,
+ 0x3a,0xf6,0x68,0xb7,0xde,0xa8,0x77,0x22,0xeb,0xe0,0xc1,0x87,0xed,0x6a,0xed,0xb4,
+ 0x5c,0x16,0x1b,0x6e,0x13,0x4a,0x22,0xc9,0x51,0x44,0x23,0x4a,0xe1,0x1b,0xe,0x9f,
+ 0x7c,0xaa,0xd6,0x6a,0x25,0x28,0x84,0x50,0xa0,0x70,0x8c,0x21,0xc0,0xe8,0xf6,0xd9,
+ 0xe8,0xd5,0x5a,0xd2,0xb,0x82,0x60,0xab,0x2b,0xa,0xa2,0x41,0x41,0x2f,0xdc,0x6e,
+ 0xaf,0x7d,0xdc,0xd9,0xd9,0xc,0x82,0xde,0x96,0x89,0x5,0x88,0xd4,0x73,0xb7,0x57,
+ 0xf7,0x4e,0xe1,0x86,0xe5,0xef,0xbd,0x2f,0x50,0xb8,0x63,0x49,0x91,0x8c,0xee,0x6c,
+ 0x24,0x6f,0x37,0x21,0xa5,0x4,0xb,0x36,0x9c,0x52,0x1c,0x11,0x60,0xc7,0x7d,0x79,
+ 0x12,0x40,0x7a,0x49,0xf2,0xd,0xa,0x77,0x6d,0x4b,0x54,0xa4,0x5a,0x8e,0x70,0x37,
+ 0xec,0xf7,0xfb,0xbf,0x30,0xa6,0xae,0x5c,0xb3,0x45,0x2c,0x7c,0x6c,0x64,0xd7,0xf3,
+ 0x7c,0x9f,0x31,0x1e,0x8a,0xc9,0x2b,0xd7,0x1d,0xc7,0x1,0x41,0x95,0x8c,0xce,0xa5,
+ 0x73,0x28,0xb8,0x10,0x20,0x54,0x88,0xe0,0x73,0xf,0xe1,0xd5,0x95,0x1b,0x1e,0xac,
+ 0xf3,0x41,0xa4,0xa2,0x73,0x6,0x24,0x46,0x6c,0x58,0xf2,0xcc,0x2e,0x37,0xbd,0x6e,
+ 0xd7,0x43,0x85,0x30,0x74,0x39,0xb0,0x61,0xc9,0xe7,0xc3,0xa1,0xe9,0xd,0x86,0x88,
+ 0x93,0x8c,0x77,0xb8,0xc5,0x7c,0xf3,0xd8,0x67,0x83,0x1,0x13,0xa,0x3c,0x56,0xf9,
+ 0x15,0x3a,0x67,0x47,0x3,0xc6,0x8e,0x8e,0x11,0xf9,0x4,0xe3,0x25,0xf3,0x3c,0x34,
+ 0xcd,0x90,0x9b,0xa6,0xc4,0xe9,0x82,0x3e,0x7d,0x3a,0x79,0x87,0xf9,0x5,0x75,0xe1,
+ 0xe2,0x99,0xfe,0x9f,0x57,0xfe,0x95,0x3f,0x59,0xc8,0x82,0x48,0xa3,0xb3,0x56,0xf1,
+ 0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /usr/local/google/home/chudy/Icons/rewind.png
+ 0x0,0x0,0x5,0x33,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x20,0x0,0x0,0x0,0x20,0x8,0x6,0x0,0x0,0x0,0x73,0x7a,0x7a,0xf4,
+ 0x0,0x0,0x0,0x4,0x73,0x42,0x49,0x54,0x8,0x8,0x8,0x8,0x7c,0x8,0x64,0x88,
+ 0x0,0x0,0x4,0xea,0x49,0x44,0x41,0x54,0x58,0x85,0xed,0x96,0x6b,0x88,0x55,0x55,
+ 0x14,0xc7,0x7f,0x6b,0xef,0x73,0xc7,0xae,0x5a,0x60,0x29,0x4a,0xf,0x8d,0x12,0x41,
+ 0x49,0x2c,0xad,0xcc,0xf1,0x91,0x61,0x45,0xa2,0x54,0x56,0x43,0x6a,0x51,0xd0,0x83,
+ 0xd2,0x2,0x9,0x1f,0x11,0xf4,0x21,0x9,0x94,0x88,0x82,0x32,0x11,0xa2,0x22,0x7c,
+ 0x44,0x45,0x96,0x15,0xa9,0x24,0xa1,0x1f,0xca,0x82,0x44,0xd3,0x1e,0x48,0x8e,0xc5,
+ 0xa4,0x13,0x8d,0x8e,0xaf,0x79,0xdc,0xb9,0xf7,0x9c,0xbd,0xf7,0xea,0xc3,0x39,0xf7,
+ 0xce,0x75,0x9c,0x87,0xcd,0xa7,0xa0,0x16,0x6c,0xf6,0x3e,0xf7,0x6e,0xd6,0xff,0xb7,
+ 0xd7,0x63,0x9f,0x3,0xff,0xdb,0x7f,0xdd,0x4,0xa0,0x76,0x69,0xa4,0x5d,0xff,0xa8,
+ 0xb9,0xd0,0xe5,0x77,0xbd,0x40,0xb1,0x2f,0x7,0x53,0x97,0xda,0xd9,0x8a,0x6c,0xdd,
+ 0xfd,0x8a,0x93,0xfe,0x0,0x44,0xe5,0xc5,0xaa,0x27,0x37,0x60,0xc4,0x62,0xc4,0xf0,
+ 0xec,0xba,0xf9,0xa5,0xd6,0xe,0x6,0x40,0xef,0x0,0xd3,0x96,0xe7,0x96,0x5c,0x34,
+ 0xe8,0xe2,0xd5,0x6d,0x85,0x16,0xc0,0xf5,0x47,0x1f,0x53,0x59,0xa9,0xb2,0xfb,0xf7,
+ 0xcd,0xa8,0x9e,0x13,0x8c,0x73,0xac,0xae,0xe,0x5b,0xbb,0xcc,0xbe,0x79,0xd9,0xb0,
+ 0xab,0x56,0xaf,0x58,0xf8,0x5a,0x3e,0x17,0xd,0xe8,0x97,0x38,0x54,0x45,0x20,0x10,
+ 0x8,0xc1,0xa3,0xf4,0xe,0x30,0x73,0x31,0x83,0x1b,0x7,0x46,0x9f,0x4e,0x18,0x3d,
+ 0x79,0x4a,0xdd,0x2d,0x8b,0xf2,0x91,0xcd,0xf5,0x5b,0x1c,0xaa,0x22,0xa0,0xaa,0x78,
+ 0x75,0xa8,0xfa,0x1e,0x37,0x4f,0x5e,0xc1,0xe5,0xf1,0xa0,0x68,0xef,0xac,0xeb,0xef,
+ 0x9a,0x7e,0xff,0xac,0xa7,0xf2,0xf5,0xcd,0x7b,0x70,0xbe,0xcf,0x32,0x39,0x5f,0x80,
+ 0x34,0x2,0x41,0x43,0xb7,0x1b,0xa7,0x2d,0xcd,0x4d,0xaa,0xa1,0x66,0xff,0xfd,0xb3,
+ 0x9e,0xb8,0x7a,0xc6,0xb5,0x73,0x73,0x7,0x1a,0x77,0x71,0xaa,0xf0,0x17,0x5e,0x3d,
+ 0x8,0x6e,0xca,0x33,0xe4,0xfb,0x3,0xd0,0x99,0x2,0xf5,0xb8,0x90,0x10,0xba,0x89,
+ 0xc0,0xd4,0x15,0xf6,0xce,0x1a,0x9b,0x7f,0xef,0xa1,0xb9,0x4b,0x6,0xe,0xbd,0x68,
+ 0xb8,0xec,0x6f,0xfc,0x8a,0xd8,0x15,0x9,0xea,0x53,0x70,0xef,0x23,0xb1,0xd1,0x99,
+ 0xda,0x65,0xe7,0x56,0x62,0x64,0x73,0x18,0xb1,0xc4,0x49,0x31,0xdf,0x5d,0xa7,0x54,
+ 0x1,0x4,0x5c,0x88,0xcf,0x1,0x98,0xba,0x2c,0x5a,0x3e,0x64,0xd0,0xb0,0x95,0xf,
+ 0xcf,0x79,0x26,0xef,0x25,0x61,0x7f,0xe3,0xce,0x54,0x58,0x2,0x2a,0x1,0x63,0x85,
+ 0xe7,0x1f,0x59,0x43,0x50,0xcd,0xa9,0x86,0x9c,0x6a,0x20,0x68,0x1a,0x49,0xd5,0x40,
+ 0xe2,0x63,0x40,0x78,0x79,0xfd,0xf2,0xbe,0x23,0xe0,0x43,0x42,0x8,0x29,0x80,0x35,
+ 0x44,0xb5,0xcb,0xec,0x3b,0x57,0xc,0x1f,0x3d,0x7f,0xc1,0xed,0x8b,0xf2,0xc7,0xda,
+ 0x1a,0x38,0x7a,0xfa,0x60,0x7a,0x73,0x18,0x5,0x2,0xa0,0xec,0xfa,0x6d,0x3,0x4a,
+ 0x40,0x9,0x99,0xf,0x87,0xf,0x9e,0x10,0x1c,0x2e,0x38,0x9c,0x8b,0xb9,0x6d,0xcc,
+ 0xe3,0xe7,0x97,0x82,0xc4,0xc7,0x78,0xf5,0xa8,0x52,0x13,0x25,0xd1,0x8e,0x9,0x63,
+ 0x26,0x8f,0x9d,0x7d,0xd3,0xfc,0xb,0xe,0x35,0xef,0xe1,0x44,0xdb,0x51,0x30,0x20,
+ 0x92,0xea,0xab,0x64,0xb5,0x22,0x99,0x38,0x1,0xc5,0xa3,0xc6,0xa3,0xea,0xf1,0x92,
+ 0xa0,0x92,0x3e,0x23,0x3d,0x77,0x56,0x97,0x1a,0xa8,0xa4,0x40,0x6e,0x9e,0x38,0xe7,
+ 0x9a,0x1b,0xc7,0xcd,0xc8,0xed,0x3b,0xba,0x83,0xd6,0xd2,0x9,0x8c,0x11,0x44,0x5,
+ 0x51,0x45,0x8d,0xa4,0x4e,0x45,0x33,0x0,0xcd,0x20,0x3c,0x1,0x8f,0x9a,0x80,0x92,
+ 0x76,0x94,0x8a,0xeb,0x84,0xed,0xd,0xc0,0x87,0x84,0xc4,0x97,0x8,0xea,0x99,0x3f,
+ 0xf7,0x51,0xae,0x1c,0x3a,0x2e,0xf7,0xf5,0xe1,0xcd,0x94,0x5c,0x3b,0x62,0x4,0x83,
+ 0xc1,0x20,0x8,0x4a,0x50,0x88,0x7d,0x81,0x38,0xb4,0x13,0x6b,0x1,0x8f,0xc3,0x6b,
+ 0x8c,0x6a,0x40,0x10,0x44,0x22,0xc,0x11,0xa2,0x6,0x23,0x36,0x4b,0x57,0x1f,0x0,
+ 0x6d,0xa5,0xd3,0x34,0xb7,0x1d,0xa1,0x23,0x69,0xa3,0xe9,0xf4,0x11,0x2e,0x1d,0x32,
+ 0x9a,0x9c,0xad,0xa1,0xb5,0x74,0x2,0xd,0x1e,0xf5,0xe,0x2f,0x31,0x89,0x76,0x90,
+ 0x50,0x40,0x8c,0xa6,0x60,0x6,0x44,0x4,0x31,0x60,0x44,0xd2,0x6b,0x4c,0x1d,0x3e,
+ 0x38,0x54,0x95,0x10,0x14,0xa7,0xa5,0xbe,0x1,0x0,0x62,0x5f,0x24,0x76,0x1d,0xec,
+ 0xfc,0xfa,0x4b,0xe,0xd5,0xff,0x5a,0xbc,0x75,0xca,0x9d,0x17,0xb4,0x94,0x8e,0xd3,
+ 0xd8,0x7a,0x8,0x13,0x9,0xc6,0xa,0xd6,0x4a,0x65,0x6d,0x8c,0x20,0x56,0x10,0x49,
+ 0x6b,0x83,0xac,0xc9,0x54,0x41,0x43,0x3a,0xf0,0x64,0x45,0xdb,0xbd,0x99,0x1e,0x7e,
+ 0x8d,0x1b,0x9b,0x1a,0x3e,0xfb,0x7c,0xd7,0xfb,0x85,0x6b,0x46,0xcc,0x64,0xec,0x88,
+ 0xda,0xec,0xb4,0xa9,0xa0,0x31,0x19,0x80,0x15,0x8c,0x5,0x1b,0xa5,0x50,0x36,0x32,
+ 0xd8,0xc,0xd2,0xda,0xce,0x3d,0x22,0xd2,0xa3,0x5e,0xb7,0x0,0xa2,0x68,0x53,0x43,
+ 0xf2,0xf4,0xf1,0x63,0xc7,0x56,0x7d,0xb4,0x7d,0x7d,0xc7,0x88,0xfc,0x18,0x26,0x5d,
+ 0x76,0x7,0xc6,0xda,0xce,0x53,0x57,0x43,0x64,0xe2,0x26,0x12,0x4c,0x65,0xae,0x6,
+ 0xa8,0xb8,0xce,0x75,0xd5,0x8c,0xba,0x8a,0x97,0xcd,0xb5,0x63,0xbf,0x7b,0xdd,0xad,
+ 0x9d,0xf8,0x58,0xcb,0x9f,0x9b,0xb7,0x6f,0x5c,0x3b,0x67,0xd6,0x3d,0xf9,0x29,0x23,
+ 0xef,0x65,0x6f,0xd3,0x67,0x4,0x93,0xa4,0xb9,0xb7,0x30,0xf7,0xaa,0xe5,0x48,0x56,
+ 0x7,0x65,0x53,0xd5,0xaa,0x34,0x28,0x1a,0x2a,0x29,0x28,0xbf,0xb9,0x62,0x48,0xcb,
+ 0xa5,0x67,0x80,0x22,0x16,0xb0,0x7b,0xdf,0xf2,0xdb,0xc6,0xcd,0x2b,0x2d,0xd8,0xe2,
+ 0x3f,0xd8,0x70,0xdb,0xf4,0xd9,0x83,0xa7,0x8d,0x5c,0x28,0xdf,0x37,0x7d,0x4c,0x42,
+ 0x7b,0x1a,0xd,0x3,0x2f,0xbd,0xb1,0xb2,0x27,0x37,0x5d,0xcd,0x92,0x55,0x45,0x36,
+ 0xf7,0xc,0xa0,0x81,0x72,0x59,0x99,0x5f,0x3e,0xf1,0x3f,0x8c,0xaa,0x95,0xbb,0x77,
+ 0x84,0x2f,0x36,0x4d,0xbe,0x61,0xda,0x25,0xd3,0xc7,0x3f,0x90,0xdb,0x73,0xfc,0x13,
+ 0xa,0xa1,0x19,0x0,0x11,0x49,0xf6,0x6d,0x48,0xee,0x2b,0x34,0x71,0xa,0x48,0xb2,
+ 0x13,0xc6,0xdd,0xac,0xa5,0x6a,0xd0,0x2b,0x80,0x18,0x14,0x3a,0x47,0xc3,0x6e,0xf7,
+ 0x47,0xeb,0x31,0xe6,0x5,0xfd,0xe6,0xed,0x96,0x96,0x33,0x57,0xdf,0x3a,0xa3,0x6e,
+ 0xc0,0x8f,0xa7,0xb6,0x75,0x86,0x5e,0x48,0xb2,0x53,0x79,0xca,0xf7,0x74,0xe7,0x5c,
+ 0x3d,0xa0,0xea,0x62,0xe8,0xbe,0xb,0x0,0x9b,0xa3,0xdc,0x44,0xe5,0xe1,0x4e,0xd6,
+ 0x73,0xe2,0xc0,0x3b,0x6e,0xe1,0xcf,0x3f,0xfe,0xf4,0xcd,0x96,0xad,0x1f,0x16,0xc7,
+ 0xf,0x99,0x5d,0x16,0x57,0x63,0x29,0x92,0x7e,0xc2,0x95,0x4f,0x9b,0x90,0x7e,0xa7,
+ 0xb9,0x2e,0x60,0xe5,0xb9,0x77,0x80,0x68,0x60,0x2a,0xca,0xd9,0x61,0x2c,0xb5,0x9f,
+ 0xa6,0xf5,0xdb,0x35,0x6e,0x71,0xfd,0xa1,0x86,0x4d,0x1b,0x3f,0x7a,0xb7,0xe8,0x4a,
+ 0xe9,0xa1,0x4c,0x8e,0x2,0xd0,0x91,0x8d,0x22,0x50,0xea,0x2,0x93,0x54,0xf9,0xaa,
+ 0xd8,0x59,0x0,0x75,0xd7,0x3d,0x57,0x59,0x5f,0x38,0xaa,0x22,0x5a,0x11,0xcf,0x1c,
+ 0x17,0x81,0xf6,0x3d,0xeb,0xfc,0x8b,0x8d,0xf5,0xcd,0x2b,0xd7,0x6d,0x7c,0xb5,0x43,
+ 0x83,0xd6,0xd8,0x1,0x74,0x40,0x5,0xa2,0xbc,0xaf,0x54,0x5,0x52,0x5e,0x9f,0x75,
+ 0x2b,0x9d,0xcf,0x67,0xb9,0x21,0x6d,0x9f,0x88,0xb4,0x8a,0x4d,0xd5,0x2c,0x13,0x1e,
+ 0xb4,0x33,0x7,0xd,0x97,0xf,0xe,0x6e,0x71,0x23,0x4f,0x1e,0xa6,0x98,0x85,0xb7,
+ 0x3c,0x7c,0x55,0x14,0xba,0xbd,0xe,0xff,0xc9,0xb7,0xbc,0x54,0x89,0xdb,0xaa,0xe7,
+ 0x6a,0x53,0x3a,0x73,0xec,0xe8,0xed,0x2d,0xf4,0xbf,0xfd,0x5b,0xec,0x6f,0xf2,0xd2,
+ 0x8d,0x24,0xb5,0x75,0x15,0xf0,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,
+ 0x60,0x82,
+ // /usr/local/google/home/chudy/Icons/go-next.png
+ 0x0,0x0,0x4,0xc3,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x20,0x0,0x0,0x0,0x20,0x8,0x6,0x0,0x0,0x0,0x73,0x7a,0x7a,0xf4,
+ 0x0,0x0,0x0,0x4,0x73,0x42,0x49,0x54,0x8,0x8,0x8,0x8,0x7c,0x8,0x64,0x88,
+ 0x0,0x0,0x4,0x7a,0x49,0x44,0x41,0x54,0x58,0x85,0xed,0x96,0x7f,0x68,0x55,0x65,
+ 0x18,0xc7,0x3f,0xef,0x7b,0xce,0x71,0xde,0x64,0xea,0xa6,0xce,0x14,0x33,0x53,0xb,
+ 0x8a,0x7e,0x97,0x2e,0xe7,0x28,0x2a,0x13,0x2d,0x9,0xcb,0xfa,0x43,0x8a,0x32,0x23,
+ 0x28,0xc,0x42,0x37,0x23,0x9,0xc2,0xa0,0xa2,0xc8,0xfe,0x91,0x44,0x23,0x2c,0x84,
+ 0xe5,0xf,0xa4,0x85,0x18,0x65,0xac,0x69,0xb3,0x36,0xdc,0x72,0x2a,0xe6,0xaf,0xd0,
+ 0xcd,0x99,0x53,0x37,0x9b,0xda,0xb6,0xbb,0xbb,0x7b,0x7e,0xbc,0xef,0xdb,0x1f,0xf7,
+ 0x9c,0x79,0x77,0xdd,0xe6,0x9c,0xe0,0x5f,0x7b,0xe0,0xb9,0xcf,0xcb,0x3d,0xe7,0x79,
+ 0xbe,0xdf,0xf3,0x7d,0x9e,0xf3,0xbe,0x7,0x6,0x6d,0xd0,0x6,0x68,0x5,0x45,0xb6,
+ 0x99,0x51,0x6c,0x3d,0x77,0xbd,0x75,0xe4,0xf5,0x24,0x4f,0x1e,0x7b,0xe7,0xc6,0xc2,
+ 0x62,0x7b,0x25,0x20,0x6,0x5a,0xc3,0x1a,0x68,0xe2,0x2d,0x5,0x72,0xe5,0x87,0xaf,
+ 0x7d,0x6b,0xc7,0x93,0xad,0x8f,0x30,0xb5,0x6e,0x7a,0xde,0x6c,0xbd,0xed,0xdc,0x6f,
+ 0xf8,0xd7,0x5a,0xe7,0xba,0x14,0x90,0x52,0x30,0xbf,0x70,0xf1,0xd0,0x5,0x8f,0xbd,
+ 0x31,0x27,0x96,0x70,0xf6,0xe5,0xbf,0xcb,0x84,0x1b,0x4a,0xc0,0x53,0x2e,0x47,0x9b,
+ 0xab,0xb8,0x67,0x6a,0xbe,0xf3,0xfa,0xbc,0xf7,0x6f,0x1f,0x66,0x65,0x1f,0x2c,0x28,
+ 0xb6,0x67,0xdc,0x30,0x2,0x5a,0x7,0x24,0x83,0x38,0x47,0x9b,0x2a,0x19,0x39,0x62,
+ 0xb8,0x7c,0xfb,0x85,0x8f,0x72,0x46,0xd,0x1f,0x5b,0x5e,0xb0,0xcc,0x5a,0xd4,0xdf,
+ 0x1a,0x3d,0xe,0x4f,0x41,0x91,0x6d,0x10,0x74,0xf6,0x99,0x69,0x88,0x7d,0xfa,0xd6,
+ 0x77,0x1c,0x68,0x2c,0xc3,0x53,0x2e,0xc6,0x68,0xc6,0x64,0x4f,0x64,0x4c,0x6c,0x12,
+ 0x9b,0xcb,0xd6,0x24,0xeb,0x9b,0xe,0x7f,0x3d,0xbe,0x41,0x2d,0xdd,0xba,0x15,0x35,
+ 0x20,0x2,0x1f,0x2c,0x5e,0x8b,0x65,0x39,0x48,0x24,0x42,0x8,0x4,0x2,0xa2,0x18,
+ 0x66,0x4a,0x61,0xf3,0xe7,0xa9,0x1f,0xf1,0xb5,0x8b,0xd6,0xa,0x83,0x26,0x3b,0x6b,
+ 0x34,0x53,0x46,0x3f,0x48,0x79,0x4d,0x69,0xb2,0xfa,0xe8,0xce,0x3d,0x49,0x19,0xcc,
+ 0xaf,0xfd,0x8c,0xd6,0xde,0x8,0xd8,0xbd,0x53,0x33,0xec,0x3e,0xb1,0x9,0x29,0xac,
+ 0x2e,0x17,0x42,0xa4,0x91,0xb9,0x2c,0x85,0xd6,0x1a,0x6d,0xc,0xda,0x28,0x5a,0x3a,
+ 0x4e,0xd3,0x9e,0xbc,0xc0,0xa3,0xf,0xcd,0x1d,0x3a,0x2a,0x67,0x6c,0xe1,0xcf,0x55,
+ 0x9b,0xff,0xca,0x5f,0x2e,0x9f,0xac,0xfe,0xdc,0x3d,0xde,0x13,0x4c,0xaf,0x33,0xa0,
+ 0x8c,0xc2,0x57,0x1e,0xbe,0xf6,0x8,0xb4,0x87,0xaf,0x5d,0x7c,0x95,0x5a,0x7,0x78,
+ 0x28,0x3c,0x74,0x18,0x95,0xf0,0x50,0xc2,0x45,0x91,0xba,0xde,0xee,0x5e,0xa0,0xe6,
+ 0xd4,0x76,0x26,0x4e,0xb8,0xcd,0x7e,0x69,0xce,0x92,0x9,0xc3,0x9c,0xac,0xda,0x99,
+ 0x45,0xf6,0x53,0xd7,0x44,0xc0,0x18,0x9d,0x2,0x53,0x1e,0xbe,0x72,0xf1,0xb5,0x1b,
+ 0x82,0x84,0x2e,0x7c,0x2,0xe1,0xa1,0x84,0x8f,0x16,0x3e,0xa,0x97,0xb8,0xdf,0xc2,
+ 0xc5,0x64,0x23,0xe7,0x3b,0x4e,0x72,0xae,0xad,0x8e,0xdd,0xc7,0x37,0xe1,0x59,0x71,
+ 0xf1,0xea,0xbc,0x77,0xb2,0x73,0x46,0xe4,0x6d,0x9b,0xb9,0xdc,0x59,0xda,0xef,0x16,
+ 0x68,0xad,0x8,0xb4,0x87,0x40,0x22,0xa5,0xc4,0x16,0x56,0x8a,0xaf,0x94,0x61,0xff,
+ 0x5,0xca,0x4,0x74,0x78,0x97,0x68,0x4b,0xb6,0x90,0xf0,0xdb,0xd1,0x4a,0xa1,0x95,
+ 0x49,0x73,0x68,0xfe,0xbb,0x81,0x3b,0xf2,0xa6,0xf3,0xf2,0xdc,0x25,0xb1,0x6d,0x15,
+ 0x25,0x1f,0x53,0x7c,0x7c,0x56,0xe5,0xaa,0xe0,0x99,0xab,0x12,0xf0,0xb5,0x4b,0xc2,
+ 0x6b,0xc3,0x92,0x36,0x8e,0xe3,0x10,0x68,0x83,0x9,0x14,0x46,0x5,0x4,0xc6,0xc5,
+ 0xd5,0x71,0x3c,0x95,0xc0,0x8,0x0,0x83,0xb4,0x9,0x67,0x4,0x52,0x3f,0x1a,0x63,
+ 0xc,0x46,0x43,0xa0,0x3d,0x3c,0xed,0xa2,0x4d,0x20,0x80,0x29,0xfd,0x52,0x20,0xe1,
+ 0xb5,0xd3,0xd4,0x56,0x8f,0x90,0x60,0x39,0x12,0xcb,0x16,0x58,0xb6,0x40,0xda,0x2,
+ 0x69,0x9,0xa4,0x4,0xe9,0xa4,0xde,0x9,0x83,0xc0,0x68,0x83,0x8e,0xc0,0x85,0x1,
+ 0x23,0xc0,0x8,0xee,0x1e,0xff,0x4,0x79,0xb1,0xc9,0x6c,0xd9,0xb1,0xae,0xb3,0xb5,
+ 0xfd,0xe2,0xea,0xca,0x55,0xc1,0x8a,0xab,0x11,0xe8,0x36,0x17,0xd2,0x12,0x48,0x2b,
+ 0x8c,0xb6,0xc0,0xa,0xa3,0x94,0x2,0x11,0xde,0x69,0xc,0x18,0x1d,0x29,0x60,0x0,
+ 0x83,0x2d,0x62,0x3c,0x3c,0xe9,0x59,0xfc,0xb8,0x36,0xdf,0x97,0x6d,0xe8,0x4c,0x74,
+ 0x74,0xbe,0x59,0xbd,0x5a,0x6d,0x2,0x4c,0x5f,0x4,0x44,0xfa,0x7f,0x42,0xa6,0xf6,
+ 0x7b,0x29,0xc3,0xa7,0x8e,0xc0,0xbb,0x54,0x10,0x21,0x1,0x83,0xd1,0xe1,0x93,0x3,
+ 0xc3,0x9c,0x5c,0xa6,0xdd,0xfc,0x3c,0xf5,0x27,0xeb,0x82,0x8a,0x9a,0xb2,0xb6,0xd6,
+ 0x46,0xb3,0xe0,0xd0,0x66,0x55,0x4b,0xea,0xf0,0x53,0xe9,0x24,0x32,0x9,0xc8,0x74,
+ 0x5,0x5e,0x7c,0x60,0x45,0x17,0x50,0xa4,0x82,0x90,0x29,0xf9,0x85,0x4c,0xf5,0xbb,
+ 0xec,0xcc,0x97,0xf8,0x81,0x8b,0x56,0xa9,0x9a,0x63,0x62,0x13,0xb9,0x37,0xf7,0x69,
+ 0x2a,0xf7,0xee,0xf6,0xe,0x1e,0xa9,0xad,0x3b,0xf5,0x47,0xb0,0xf0,0x4c,0xd,0x67,
+ 0xc3,0xba,0xe1,0x24,0x5f,0xde,0x1d,0x7b,0x6a,0x81,0x0,0x58,0xbb,0xe5,0x93,0x1e,
+ 0x2e,0x75,0xb7,0xe2,0x25,0x2b,0xb0,0x1c,0x81,0xe,0x87,0xef,0xd6,0xec,0xfb,0x98,
+ 0x14,0xcb,0x67,0xfb,0x2f,0xa5,0xc9,0x86,0xd3,0xd,0x3b,0x8f,0x6c,0x54,0xcb,0xda,
+ 0x5b,0x88,0xa7,0xd7,0x25,0x63,0xf7,0xcd,0x24,0x60,0x0,0x5d,0xf5,0x45,0x30,0x1c,
+ 0x18,0x2,0x38,0xa1,0xa7,0xaf,0x1d,0xc0,0x29,0x2c,0xb6,0x2b,0x10,0x64,0x59,0x96,
+ 0x40,0x1b,0x8b,0xbb,0x46,0x3e,0x4e,0xcc,0x1d,0x47,0x49,0xe9,0x6,0xf7,0xdf,0x7f,
+ 0x2e,0xae,0xa9,0xfd,0x46,0xad,0x3,0xfc,0xb0,0x66,0xba,0x77,0x3b,0x1b,0x32,0x9,
+ 0xe8,0xd0,0x15,0x10,0x84,0x6c,0x23,0xef,0x22,0xd8,0x55,0x44,0x8,0x86,0x66,0xdd,
+ 0xc4,0xfd,0xb9,0xb3,0xb8,0x74,0xb6,0xd3,0x94,0xfc,0xb4,0x3e,0x71,0xee,0x58,0x72,
+ 0xe9,0xb1,0x1f,0xd4,0xae,0x30,0x3f,0x72,0x95,0xb6,0xee,0x73,0x8,0x49,0x3,0xbe,
+ 0x42,0x99,0xb4,0x42,0x16,0x80,0x2d,0x86,0x30,0x2d,0x67,0x21,0xfb,0xf7,0xef,0xb,
+ 0x76,0xfd,0xfe,0x6b,0x4b,0xe3,0x3e,0xfd,0xca,0xc9,0x72,0x75,0x22,0x3,0xdc,0x4f,
+ 0x8b,0x57,0x7c,0x31,0xf5,0x44,0xc0,0x0,0x5e,0x8,0x18,0x1,0x7,0xe1,0xbd,0x16,
+ 0xd1,0x20,0x9,0x8c,0xf2,0xa1,0xac,0xa2,0xdc,0x3d,0x70,0x64,0xef,0xc1,0xfa,0x1d,
+ 0xfe,0xa2,0xa6,0xc3,0xfc,0x97,0x41,0x34,0x8a,0x2e,0xf4,0x7c,0x2c,0xf7,0xe7,0x63,
+ 0xd2,0xbe,0x2,0x1c,0x64,0x41,0x91,0x7d,0x21,0x2f,0x77,0x9c,0xdf,0x74,0xfe,0x6c,
+ 0xc9,0xa1,0xf5,0xea,0xbd,0x78,0x9c,0x80,0xcb,0x2d,0x8c,0x48,0xfb,0xbd,0x1,0xf7,
+ 0xa5,0x40,0xa6,0x45,0x52,0x46,0xb3,0xd0,0xf5,0xaa,0x36,0x37,0x37,0x2d,0xdf,0xb3,
+ 0x5a,0x7d,0x45,0xf7,0x1,0x8b,0x54,0x1b,0xb4,0x41,0xeb,0x97,0xfd,0xf,0xcc,0x13,
+ 0x1e,0x29,0xc9,0x8a,0x58,0x89,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,
+ 0x60,0x82,
+ // /usr/local/google/home/chudy/Icons/settings.png
+ 0x0,0x0,0x13,0x7a,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x20,0x0,0x0,0x0,0x20,0x8,0x6,0x0,0x0,0x0,0x73,0x7a,0x7a,0xf4,
+ 0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+ 0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0xa,0x4f,0x69,0x43,0x43,0x50,0x50,0x68,0x6f,
+ 0x74,0x6f,0x73,0x68,0x6f,0x70,0x20,0x49,0x43,0x43,0x20,0x70,0x72,0x6f,0x66,0x69,
+ 0x6c,0x65,0x0,0x0,0x78,0xda,0x9d,0x53,0x67,0x54,0x53,0xe9,0x16,0x3d,0xf7,0xde,
+ 0xf4,0x42,0x4b,0x88,0x80,0x94,0x4b,0x6f,0x52,0x15,0x8,0x20,0x52,0x42,0x8b,0x80,
+ 0x14,0x91,0x26,0x2a,0x21,0x9,0x10,0x4a,0x88,0x21,0xa1,0xd9,0x15,0x51,0xc1,0x11,
+ 0x45,0x45,0x4,0x1b,0xc8,0xa0,0x88,0x3,0x8e,0x8e,0x80,0x8c,0x15,0x51,0x2c,0xc,
+ 0x8a,0xa,0xd8,0x7,0xe4,0x21,0xa2,0x8e,0x83,0xa3,0x88,0x8a,0xca,0xfb,0xe1,0x7b,
+ 0xa3,0x6b,0xd6,0xbc,0xf7,0xe6,0xcd,0xfe,0xb5,0xd7,0x3e,0xe7,0xac,0xf3,0x9d,0xb3,
+ 0xcf,0x7,0xc0,0x8,0xc,0x96,0x48,0x33,0x51,0x35,0x80,0xc,0xa9,0x42,0x1e,0x11,
+ 0xe0,0x83,0xc7,0xc4,0xc6,0xe1,0xe4,0x2e,0x40,0x81,0xa,0x24,0x70,0x0,0x10,0x8,
+ 0xb3,0x64,0x21,0x73,0xfd,0x23,0x1,0x0,0xf8,0x7e,0x3c,0x3c,0x2b,0x22,0xc0,0x7,
+ 0xbe,0x0,0x1,0x78,0xd3,0xb,0x8,0x0,0xc0,0x4d,0x9b,0xc0,0x30,0x1c,0x87,0xff,
+ 0xf,0xea,0x42,0x99,0x5c,0x1,0x80,0x84,0x1,0xc0,0x74,0x91,0x38,0x4b,0x8,0x80,
+ 0x14,0x0,0x40,0x7a,0x8e,0x42,0xa6,0x0,0x40,0x46,0x1,0x80,0x9d,0x98,0x26,0x53,
+ 0x0,0xa0,0x4,0x0,0x60,0xcb,0x63,0x62,0xe3,0x0,0x50,0x2d,0x0,0x60,0x27,0x7f,
+ 0xe6,0xd3,0x0,0x80,0x9d,0xf8,0x99,0x7b,0x1,0x0,0x5b,0x94,0x21,0x15,0x1,0xa0,
+ 0x91,0x0,0x20,0x13,0x65,0x88,0x44,0x0,0x68,0x3b,0x0,0xac,0xcf,0x56,0x8a,0x45,
+ 0x0,0x58,0x30,0x0,0x14,0x66,0x4b,0xc4,0x39,0x0,0xd8,0x2d,0x0,0x30,0x49,0x57,
+ 0x66,0x48,0x0,0xb0,0xb7,0x0,0xc0,0xce,0x10,0xb,0xb2,0x0,0x8,0xc,0x0,0x30,
+ 0x51,0x88,0x85,0x29,0x0,0x4,0x7b,0x0,0x60,0xc8,0x23,0x23,0x78,0x0,0x84,0x99,
+ 0x0,0x14,0x46,0xf2,0x57,0x3c,0xf1,0x2b,0xae,0x10,0xe7,0x2a,0x0,0x0,0x78,0x99,
+ 0xb2,0x3c,0xb9,0x24,0x39,0x45,0x81,0x5b,0x8,0x2d,0x71,0x7,0x57,0x57,0x2e,0x1e,
+ 0x28,0xce,0x49,0x17,0x2b,0x14,0x36,0x61,0x2,0x61,0x9a,0x40,0x2e,0xc2,0x79,0x99,
+ 0x19,0x32,0x81,0x34,0xf,0xe0,0xf3,0xcc,0x0,0x0,0xa0,0x91,0x15,0x11,0xe0,0x83,
+ 0xf3,0xfd,0x78,0xce,0xe,0xae,0xce,0xce,0x36,0x8e,0xb6,0xe,0x5f,0x2d,0xea,0xbf,
+ 0x6,0xff,0x22,0x62,0x62,0xe3,0xfe,0xe5,0xcf,0xab,0x70,0x40,0x0,0x0,0xe1,0x74,
+ 0x7e,0xd1,0xfe,0x2c,0x2f,0xb3,0x1a,0x80,0x3b,0x6,0x80,0x6d,0xfe,0xa2,0x25,0xee,
+ 0x4,0x68,0x5e,0xb,0xa0,0x75,0xf7,0x8b,0x66,0xb2,0xf,0x40,0xb5,0x0,0xa0,0xe9,
+ 0xda,0x57,0xf3,0x70,0xf8,0x7e,0x3c,0x3c,0x45,0xa1,0x90,0xb9,0xd9,0xd9,0xe5,0xe4,
+ 0xe4,0xd8,0x4a,0xc4,0x42,0x5b,0x61,0xca,0x57,0x7d,0xfe,0x67,0xc2,0x5f,0xc0,0x57,
+ 0xfd,0x6c,0xf9,0x7e,0x3c,0xfc,0xf7,0xf5,0xe0,0xbe,0xe2,0x24,0x81,0x32,0x5d,0x81,
+ 0x47,0x4,0xf8,0xe0,0xc2,0xcc,0xf4,0x4c,0xa5,0x1c,0xcf,0x92,0x9,0x84,0x62,0xdc,
+ 0xe6,0x8f,0x47,0xfc,0xb7,0xb,0xff,0xfc,0x1d,0xd3,0x22,0xc4,0x49,0x62,0xb9,0x58,
+ 0x2a,0x14,0xe3,0x51,0x12,0x71,0x8e,0x44,0x9a,0x8c,0xf3,0x32,0xa5,0x22,0x89,0x42,
+ 0x92,0x29,0xc5,0x25,0xd2,0xff,0x64,0xe2,0xdf,0x2c,0xfb,0x3,0x3e,0xdf,0x35,0x0,
+ 0xb0,0x6a,0x3e,0x1,0x7b,0x91,0x2d,0xa8,0x5d,0x63,0x3,0xf6,0x4b,0x27,0x10,0x58,
+ 0x74,0xc0,0xe2,0xf7,0x0,0x0,0xf2,0xbb,0x6f,0xc1,0xd4,0x28,0x8,0x3,0x80,0x68,
+ 0x83,0xe1,0xcf,0x77,0xff,0xef,0x3f,0xfd,0x47,0xa0,0x25,0x0,0x80,0x66,0x49,0x92,
+ 0x71,0x0,0x0,0x5e,0x44,0x24,0x2e,0x54,0xca,0xb3,0x3f,0xc7,0x8,0x0,0x0,0x44,
+ 0xa0,0x81,0x2a,0xb0,0x41,0x1b,0xf4,0xc1,0x18,0x2c,0xc0,0x6,0x1c,0xc1,0x5,0xdc,
+ 0xc1,0xb,0xfc,0x60,0x36,0x84,0x42,0x24,0xc4,0xc2,0x42,0x10,0x42,0xa,0x64,0x80,
+ 0x1c,0x72,0x60,0x29,0xac,0x82,0x42,0x28,0x86,0xcd,0xb0,0x1d,0x2a,0x60,0x2f,0xd4,
+ 0x40,0x1d,0x34,0xc0,0x51,0x68,0x86,0x93,0x70,0xe,0x2e,0xc2,0x55,0xb8,0xe,0x3d,
+ 0x70,0xf,0xfa,0x61,0x8,0x9e,0xc1,0x28,0xbc,0x81,0x9,0x4,0x41,0xc8,0x8,0x13,
+ 0x61,0x21,0xda,0x88,0x1,0x62,0x8a,0x58,0x23,0x8e,0x8,0x17,0x99,0x85,0xf8,0x21,
+ 0xc1,0x48,0x4,0x12,0x8b,0x24,0x20,0xc9,0x88,0x14,0x51,0x22,0x4b,0x91,0x35,0x48,
+ 0x31,0x52,0x8a,0x54,0x20,0x55,0x48,0x1d,0xf2,0x3d,0x72,0x2,0x39,0x87,0x5c,0x46,
+ 0xba,0x91,0x3b,0xc8,0x0,0x32,0x82,0xfc,0x86,0xbc,0x47,0x31,0x94,0x81,0xb2,0x51,
+ 0x3d,0xd4,0xc,0xb5,0x43,0xb9,0xa8,0x37,0x1a,0x84,0x46,0xa2,0xb,0xd0,0x64,0x74,
+ 0x31,0x9a,0x8f,0x16,0xa0,0x9b,0xd0,0x72,0xb4,0x1a,0x3d,0x8c,0x36,0xa1,0xe7,0xd0,
+ 0xab,0x68,0xf,0xda,0x8f,0x3e,0x43,0xc7,0x30,0xc0,0xe8,0x18,0x7,0x33,0xc4,0x6c,
+ 0x30,0x2e,0xc6,0xc3,0x42,0xb1,0x38,0x2c,0x9,0x93,0x63,0xcb,0xb1,0x22,0xac,0xc,
+ 0xab,0xc6,0x1a,0xb0,0x56,0xac,0x3,0xbb,0x89,0xf5,0x63,0xcf,0xb1,0x77,0x4,0x12,
+ 0x81,0x45,0xc0,0x9,0x36,0x4,0x77,0x42,0x20,0x61,0x1e,0x41,0x48,0x58,0x4c,0x58,
+ 0x4e,0xd8,0x48,0xa8,0x20,0x1c,0x24,0x34,0x11,0xda,0x9,0x37,0x9,0x3,0x84,0x51,
+ 0xc2,0x27,0x22,0x93,0xa8,0x4b,0xb4,0x26,0xba,0x11,0xf9,0xc4,0x18,0x62,0x32,0x31,
+ 0x87,0x58,0x48,0x2c,0x23,0xd6,0x12,0x8f,0x13,0x2f,0x10,0x7b,0x88,0x43,0xc4,0x37,
+ 0x24,0x12,0x89,0x43,0x32,0x27,0xb9,0x90,0x2,0x49,0xb1,0xa4,0x54,0xd2,0x12,0xd2,
+ 0x46,0xd2,0x6e,0x52,0x23,0xe9,0x2c,0xa9,0x9b,0x34,0x48,0x1a,0x23,0x93,0xc9,0xda,
+ 0x64,0x6b,0xb2,0x7,0x39,0x94,0x2c,0x20,0x2b,0xc8,0x85,0xe4,0x9d,0xe4,0xc3,0xe4,
+ 0x33,0xe4,0x1b,0xe4,0x21,0xf2,0x5b,0xa,0x9d,0x62,0x40,0x71,0xa4,0xf8,0x53,0xe2,
+ 0x28,0x52,0xca,0x6a,0x4a,0x19,0xe5,0x10,0xe5,0x34,0xe5,0x6,0x65,0x98,0x32,0x41,
+ 0x55,0xa3,0x9a,0x52,0xdd,0xa8,0xa1,0x54,0x11,0x35,0x8f,0x5a,0x42,0xad,0xa1,0xb6,
+ 0x52,0xaf,0x51,0x87,0xa8,0x13,0x34,0x75,0x9a,0x39,0xcd,0x83,0x16,0x49,0x4b,0xa5,
+ 0xad,0xa2,0x95,0xd3,0x1a,0x68,0x17,0x68,0xf7,0x69,0xaf,0xe8,0x74,0xba,0x11,0xdd,
+ 0x95,0x1e,0x4e,0x97,0xd0,0x57,0xd2,0xcb,0xe9,0x47,0xe8,0x97,0xe8,0x3,0xf4,0x77,
+ 0xc,0xd,0x86,0x15,0x83,0xc7,0x88,0x67,0x28,0x19,0x9b,0x18,0x7,0x18,0x67,0x19,
+ 0x77,0x18,0xaf,0x98,0x4c,0xa6,0x19,0xd3,0x8b,0x19,0xc7,0x54,0x30,0x37,0x31,0xeb,
+ 0x98,0xe7,0x99,0xf,0x99,0x6f,0x55,0x58,0x2a,0xb6,0x2a,0x7c,0x15,0x91,0xca,0xa,
+ 0x95,0x4a,0x95,0x26,0x95,0x1b,0x2a,0x2f,0x54,0xa9,0xaa,0xa6,0xaa,0xde,0xaa,0xb,
+ 0x55,0xf3,0x55,0xcb,0x54,0x8f,0xa9,0x5e,0x53,0x7d,0xae,0x46,0x55,0x33,0x53,0xe3,
+ 0xa9,0x9,0xd4,0x96,0xab,0x55,0xaa,0x9d,0x50,0xeb,0x53,0x1b,0x53,0x67,0xa9,0x3b,
+ 0xa8,0x87,0xaa,0x67,0xa8,0x6f,0x54,0x3f,0xa4,0x7e,0x59,0xfd,0x89,0x6,0x59,0xc3,
+ 0x4c,0xc3,0x4f,0x43,0xa4,0x51,0xa0,0xb1,0x5f,0xe3,0xbc,0xc6,0x20,0xb,0x63,0x19,
+ 0xb3,0x78,0x2c,0x21,0x6b,0xd,0xab,0x86,0x75,0x81,0x35,0xc4,0x26,0xb1,0xcd,0xd9,
+ 0x7c,0x76,0x2a,0xbb,0x98,0xfd,0x1d,0xbb,0x8b,0x3d,0xaa,0xa9,0xa1,0x39,0x43,0x33,
+ 0x4a,0x33,0x57,0xb3,0x52,0xf3,0x94,0x66,0x3f,0x7,0xe3,0x98,0x71,0xf8,0x9c,0x74,
+ 0x4e,0x9,0xe7,0x28,0xa7,0x97,0xf3,0x7e,0x8a,0xde,0x14,0xef,0x29,0xe2,0x29,0x1b,
+ 0xa6,0x34,0x4c,0xb9,0x31,0x65,0x5c,0x6b,0xaa,0x96,0x97,0x96,0x58,0xab,0x48,0xab,
+ 0x51,0xab,0x47,0xeb,0xbd,0x36,0xae,0xed,0xa7,0x9d,0xa6,0xbd,0x45,0xbb,0x59,0xfb,
+ 0x81,0xe,0x41,0xc7,0x4a,0x27,0x5c,0x27,0x47,0x67,0x8f,0xce,0x5,0x9d,0xe7,0x53,
+ 0xd9,0x53,0xdd,0xa7,0xa,0xa7,0x16,0x4d,0x3d,0x3a,0xf5,0xae,0x2e,0xaa,0x6b,0xa5,
+ 0x1b,0xa1,0xbb,0x44,0x77,0xbf,0x6e,0xa7,0xee,0x98,0x9e,0xbe,0x5e,0x80,0x9e,0x4c,
+ 0x6f,0xa7,0xde,0x79,0xbd,0xe7,0xfa,0x1c,0x7d,0x2f,0xfd,0x54,0xfd,0x6d,0xfa,0xa7,
+ 0xf5,0x47,0xc,0x58,0x6,0xb3,0xc,0x24,0x6,0xdb,0xc,0xce,0x18,0x3c,0xc5,0x35,
+ 0x71,0x6f,0x3c,0x1d,0x2f,0xc7,0xdb,0xf1,0x51,0x43,0x5d,0xc3,0x40,0x43,0xa5,0x61,
+ 0x95,0x61,0x97,0xe1,0x84,0x91,0xb9,0xd1,0x3c,0xa3,0xd5,0x46,0x8d,0x46,0xf,0x8c,
+ 0x69,0xc6,0x5c,0xe3,0x24,0xe3,0x6d,0xc6,0x6d,0xc6,0xa3,0x26,0x6,0x26,0x21,0x26,
+ 0x4b,0x4d,0xea,0x4d,0xee,0x9a,0x52,0x4d,0xb9,0xa6,0x29,0xa6,0x3b,0x4c,0x3b,0x4c,
+ 0xc7,0xcd,0xcc,0xcd,0xa2,0xcd,0xd6,0x99,0x35,0x9b,0x3d,0x31,0xd7,0x32,0xe7,0x9b,
+ 0xe7,0x9b,0xd7,0x9b,0xdf,0xb7,0x60,0x5a,0x78,0x5a,0x2c,0xb6,0xa8,0xb6,0xb8,0x65,
+ 0x49,0xb2,0xe4,0x5a,0xa6,0x59,0xee,0xb6,0xbc,0x6e,0x85,0x5a,0x39,0x59,0xa5,0x58,
+ 0x55,0x5a,0x5d,0xb3,0x46,0xad,0x9d,0xad,0x25,0xd6,0xbb,0xad,0xbb,0xa7,0x11,0xa7,
+ 0xb9,0x4e,0x93,0x4e,0xab,0x9e,0xd6,0x67,0xc3,0xb0,0xf1,0xb6,0xc9,0xb6,0xa9,0xb7,
+ 0x19,0xb0,0xe5,0xd8,0x6,0xdb,0xae,0xb6,0x6d,0xb6,0x7d,0x61,0x67,0x62,0x17,0x67,
+ 0xb7,0xc5,0xae,0xc3,0xee,0x93,0xbd,0x93,0x7d,0xba,0x7d,0x8d,0xfd,0x3d,0x7,0xd,
+ 0x87,0xd9,0xe,0xab,0x1d,0x5a,0x1d,0x7e,0x73,0xb4,0x72,0x14,0x3a,0x56,0x3a,0xde,
+ 0x9a,0xce,0x9c,0xee,0x3f,0x7d,0xc5,0xf4,0x96,0xe9,0x2f,0x67,0x58,0xcf,0x10,0xcf,
+ 0xd8,0x33,0xe3,0xb6,0x13,0xcb,0x29,0xc4,0x69,0x9d,0x53,0x9b,0xd3,0x47,0x67,0x17,
+ 0x67,0xb9,0x73,0x83,0xf3,0x88,0x8b,0x89,0x4b,0x82,0xcb,0x2e,0x97,0x3e,0x2e,0x9b,
+ 0x1b,0xc6,0xdd,0xc8,0xbd,0xe4,0x4a,0x74,0xf5,0x71,0x5d,0xe1,0x7a,0xd2,0xf5,0x9d,
+ 0x9b,0xb3,0x9b,0xc2,0xed,0xa8,0xdb,0xaf,0xee,0x36,0xee,0x69,0xee,0x87,0xdc,0x9f,
+ 0xcc,0x34,0x9f,0x29,0x9e,0x59,0x33,0x73,0xd0,0xc3,0xc8,0x43,0xe0,0x51,0xe5,0xd1,
+ 0x3f,0xb,0x9f,0x95,0x30,0x6b,0xdf,0xac,0x7e,0x4f,0x43,0x4f,0x81,0x67,0xb5,0xe7,
+ 0x23,0x2f,0x63,0x2f,0x91,0x57,0xad,0xd7,0xb0,0xb7,0xa5,0x77,0xaa,0xf7,0x61,0xef,
+ 0x17,0x3e,0xf6,0x3e,0x72,0x9f,0xe3,0x3e,0xe3,0x3c,0x37,0xde,0x32,0xde,0x59,0x5f,
+ 0xcc,0x37,0xc0,0xb7,0xc8,0xb7,0xcb,0x4f,0xc3,0x6f,0x9e,0x5f,0x85,0xdf,0x43,0x7f,
+ 0x23,0xff,0x64,0xff,0x7a,0xff,0xd1,0x0,0xa7,0x80,0x25,0x1,0x67,0x3,0x89,0x81,
+ 0x41,0x81,0x5b,0x2,0xfb,0xf8,0x7a,0x7c,0x21,0xbf,0x8e,0x3f,0x3a,0xdb,0x65,0xf6,
+ 0xb2,0xd9,0xed,0x41,0x8c,0xa0,0xb9,0x41,0x15,0x41,0x8f,0x82,0xad,0x82,0xe5,0xc1,
+ 0xad,0x21,0x68,0xc8,0xec,0x90,0xad,0x21,0xf7,0xe7,0x98,0xce,0x91,0xce,0x69,0xe,
+ 0x85,0x50,0x7e,0xe8,0xd6,0xd0,0x7,0x61,0xe6,0x61,0x8b,0xc3,0x7e,0xc,0x27,0x85,
+ 0x87,0x85,0x57,0x86,0x3f,0x8e,0x70,0x88,0x58,0x1a,0xd1,0x31,0x97,0x35,0x77,0xd1,
+ 0xdc,0x43,0x73,0xdf,0x44,0xfa,0x44,0x96,0x44,0xde,0x9b,0x67,0x31,0x4f,0x39,0xaf,
+ 0x2d,0x4a,0x35,0x2a,0x3e,0xaa,0x2e,0x6a,0x3c,0xda,0x37,0xba,0x34,0xba,0x3f,0xc6,
+ 0x2e,0x66,0x59,0xcc,0xd5,0x58,0x9d,0x58,0x49,0x6c,0x4b,0x1c,0x39,0x2e,0x2a,0xae,
+ 0x36,0x6e,0x6c,0xbe,0xdf,0xfc,0xed,0xf3,0x87,0xe2,0x9d,0xe2,0xb,0xe3,0x7b,0x17,
+ 0x98,0x2f,0xc8,0x5d,0x70,0x79,0xa1,0xce,0xc2,0xf4,0x85,0xa7,0x16,0xa9,0x2e,0x12,
+ 0x2c,0x3a,0x96,0x40,0x4c,0x88,0x4e,0x38,0x94,0xf0,0x41,0x10,0x2a,0xa8,0x16,0x8c,
+ 0x25,0xf2,0x13,0x77,0x25,0x8e,0xa,0x79,0xc2,0x1d,0xc2,0x67,0x22,0x2f,0xd1,0x36,
+ 0xd1,0x88,0xd8,0x43,0x5c,0x2a,0x1e,0x4e,0xf2,0x48,0x2a,0x4d,0x7a,0x92,0xec,0x91,
+ 0xbc,0x35,0x79,0x24,0xc5,0x33,0xa5,0x2c,0xe5,0xb9,0x84,0x27,0xa9,0x90,0xbc,0x4c,
+ 0xd,0x4c,0xdd,0x9b,0x3a,0x9e,0x16,0x9a,0x76,0x20,0x6d,0x32,0x3d,0x3a,0xbd,0x31,
+ 0x83,0x92,0x91,0x90,0x71,0x42,0xaa,0x21,0x4d,0x93,0xb6,0x67,0xea,0x67,0xe6,0x66,
+ 0x76,0xcb,0xac,0x65,0x85,0xb2,0xfe,0xc5,0x6e,0x8b,0xb7,0x2f,0x1e,0x95,0x7,0xc9,
+ 0x6b,0xb3,0x90,0xac,0x5,0x59,0x2d,0xa,0xb6,0x42,0xa6,0xe8,0x54,0x5a,0x28,0xd7,
+ 0x2a,0x7,0xb2,0x67,0x65,0x57,0x66,0xbf,0xcd,0x89,0xca,0x39,0x96,0xab,0x9e,0x2b,
+ 0xcd,0xed,0xcc,0xb3,0xca,0xdb,0x90,0x37,0x9c,0xef,0x9f,0xff,0xed,0x12,0xc2,0x12,
+ 0xe1,0x92,0xb6,0xa5,0x86,0x4b,0x57,0x2d,0x1d,0x58,0xe6,0xbd,0xac,0x6a,0x39,0xb2,
+ 0x3c,0x71,0x79,0xdb,0xa,0xe3,0x15,0x5,0x2b,0x86,0x56,0x6,0xac,0x3c,0xb8,0x8a,
+ 0xb6,0x2a,0x6d,0xd5,0x4f,0xab,0xed,0x57,0x97,0xae,0x7e,0xbd,0x26,0x7a,0x4d,0x6b,
+ 0x81,0x5e,0xc1,0xca,0x82,0xc1,0xb5,0x1,0x6b,0xeb,0xb,0x55,0xa,0xe5,0x85,0x7d,
+ 0xeb,0xdc,0xd7,0xed,0x5d,0x4f,0x58,0x2f,0x59,0xdf,0xb5,0x61,0xfa,0x86,0x9d,0x1b,
+ 0x3e,0x15,0x89,0x8a,0xae,0x14,0xdb,0x17,0x97,0x15,0x7f,0xd8,0x28,0xdc,0x78,0xe5,
+ 0x1b,0x87,0x6f,0xca,0xbf,0x99,0xdc,0x94,0xb4,0xa9,0xab,0xc4,0xb9,0x64,0xcf,0x66,
+ 0xd2,0x66,0xe9,0xe6,0xde,0x2d,0x9e,0x5b,0xe,0x96,0xaa,0x97,0xe6,0x97,0xe,0x6e,
+ 0xd,0xd9,0xda,0xb4,0xd,0xdf,0x56,0xb4,0xed,0xf5,0xf6,0x45,0xdb,0x2f,0x97,0xcd,
+ 0x28,0xdb,0xbb,0x83,0xb6,0x43,0xb9,0xa3,0xbf,0x3c,0xb8,0xbc,0x65,0xa7,0xc9,0xce,
+ 0xcd,0x3b,0x3f,0x54,0xa4,0x54,0xf4,0x54,0xfa,0x54,0x36,0xee,0xd2,0xdd,0xb5,0x61,
+ 0xd7,0xf8,0x6e,0xd1,0xee,0x1b,0x7b,0xbc,0xf6,0x34,0xec,0xd5,0xdb,0x5b,0xbc,0xf7,
+ 0xfd,0x3e,0xc9,0xbe,0xdb,0x55,0x1,0x55,0x4d,0xd5,0x66,0xd5,0x65,0xfb,0x49,0xfb,
+ 0xb3,0xf7,0x3f,0xae,0x89,0xaa,0xe9,0xf8,0x96,0xfb,0x6d,0x5d,0xad,0x4e,0x6d,0x71,
+ 0xed,0xc7,0x3,0xd2,0x3,0xfd,0x7,0x23,0xe,0xb6,0xd7,0xb9,0xd4,0xd5,0x1d,0xd2,
+ 0x3d,0x54,0x52,0x8f,0xd6,0x2b,0xeb,0x47,0xe,0xc7,0x1f,0xbe,0xfe,0x9d,0xef,0x77,
+ 0x2d,0xd,0x36,0xd,0x55,0x8d,0x9c,0xc6,0xe2,0x23,0x70,0x44,0x79,0xe4,0xe9,0xf7,
+ 0x9,0xdf,0xf7,0x1e,0xd,0x3a,0xda,0x76,0x8c,0x7b,0xac,0xe1,0x7,0xd3,0x1f,0x76,
+ 0x1d,0x67,0x1d,0x2f,0x6a,0x42,0x9a,0xf2,0x9a,0x46,0x9b,0x53,0x9a,0xfb,0x5b,0x62,
+ 0x5b,0xba,0x4f,0xcc,0x3e,0xd1,0xd6,0xea,0xde,0x7a,0xfc,0x47,0xdb,0x1f,0xf,0x9c,
+ 0x34,0x3c,0x59,0x79,0x4a,0xf3,0x54,0xc9,0x69,0xda,0xe9,0x82,0xd3,0x93,0x67,0xf2,
+ 0xcf,0x8c,0x9d,0x95,0x9d,0x7d,0x7e,0x2e,0xf9,0xdc,0x60,0xdb,0xa2,0xb6,0x7b,0xe7,
+ 0x63,0xce,0xdf,0x6a,0xf,0x6f,0xef,0xba,0x10,0x74,0xe1,0xd2,0x45,0xff,0x8b,0xe7,
+ 0x3b,0xbc,0x3b,0xce,0x5c,0xf2,0xb8,0x74,0xf2,0xb2,0xdb,0xe5,0x13,0x57,0xb8,0x57,
+ 0x9a,0xaf,0x3a,0x5f,0x6d,0xea,0x74,0xea,0x3c,0xfe,0x93,0xd3,0x4f,0xc7,0xbb,0x9c,
+ 0xbb,0x9a,0xae,0xb9,0x5c,0x6b,0xb9,0xee,0x7a,0xbd,0xb5,0x7b,0x66,0xf7,0xe9,0x1b,
+ 0x9e,0x37,0xce,0xdd,0xf4,0xbd,0x79,0xf1,0x16,0xff,0xd6,0xd5,0x9e,0x39,0x3d,0xdd,
+ 0xbd,0xf3,0x7a,0x6f,0xf7,0xc5,0xf7,0xf5,0xdf,0x16,0xdd,0x7e,0x72,0x27,0xfd,0xce,
+ 0xcb,0xbb,0xd9,0x77,0x27,0xee,0xad,0xbc,0x4f,0xbc,0x5f,0xf4,0x40,0xed,0x41,0xd9,
+ 0x43,0xdd,0x87,0xd5,0x3f,0x5b,0xfe,0xdc,0xd8,0xef,0xdc,0x7f,0x6a,0xc0,0x77,0xa0,
+ 0xf3,0xd1,0xdc,0x47,0xf7,0x6,0x85,0x83,0xcf,0xfe,0x91,0xf5,0x8f,0xf,0x43,0x5,
+ 0x8f,0x99,0x8f,0xcb,0x86,0xd,0x86,0xeb,0x9e,0x38,0x3e,0x39,0x39,0xe2,0x3f,0x72,
+ 0xfd,0xe9,0xfc,0xa7,0x43,0xcf,0x64,0xcf,0x26,0x9e,0x17,0xfe,0xa2,0xfe,0xcb,0xae,
+ 0x17,0x16,0x2f,0x7e,0xf8,0xd5,0xeb,0xd7,0xce,0xd1,0x98,0xd1,0xa1,0x97,0xf2,0x97,
+ 0x93,0xbf,0x6d,0x7c,0xa5,0xfd,0xea,0xc0,0xeb,0x19,0xaf,0xdb,0xc6,0xc2,0xc6,0x1e,
+ 0xbe,0xc9,0x78,0x33,0x31,0x5e,0xf4,0x56,0xfb,0xed,0xc1,0x77,0xdc,0x77,0x1d,0xef,
+ 0xa3,0xdf,0xf,0x4f,0xe4,0x7c,0x20,0x7f,0x28,0xff,0x68,0xf9,0xb1,0xf5,0x53,0xd0,
+ 0xa7,0xfb,0x93,0x19,0x93,0x93,0xff,0x4,0x3,0x98,0xf3,0xfc,0x63,0x33,0x2d,0xdb,
+ 0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x7a,0x25,0x0,0x0,0x80,0x83,
+ 0x0,0x0,0xf9,0xff,0x0,0x0,0x80,0xe9,0x0,0x0,0x75,0x30,0x0,0x0,0xea,0x60,
+ 0x0,0x0,0x3a,0x98,0x0,0x0,0x17,0x6f,0x92,0x5f,0xc5,0x46,0x0,0x0,0x8,0xa5,
+ 0x49,0x44,0x41,0x54,0x78,0xda,0x8c,0x57,0x4b,0x8c,0x1c,0x47,0x19,0xfe,0xea,0xd1,
+ 0x3d,0xdd,0x3b,0x3b,0xfb,0x98,0x9d,0x68,0xd7,0x1b,0xcb,0xd9,0x75,0x70,0x1c,0x8b,
+ 0xc4,0x49,0xa4,0x60,0x7,0x85,0x60,0x11,0xb,0x12,0x8c,0x8,0x7,0x23,0x42,0x84,
+ 0x2,0x1c,0x12,0x91,0x3,0x82,0x1b,0x12,0x48,0xb9,0xe5,0xc0,0x23,0x42,0x88,0x37,
+ 0x8a,0x22,0xb8,0x24,0x52,0x10,0x48,0x39,0x40,0x8,0x92,0x95,0xc5,0x10,0xc5,0xc6,
+ 0xb2,0x1d,0x43,0x76,0xcd,0xc6,0x56,0xb0,0xd9,0xf1,0x3e,0xb2,0xb3,0x33,0x3b,0xcf,
+ 0xae,0xea,0xaa,0xae,0x2a,0xe,0x9e,0x6a,0xcd,0xac,0x65,0xc8,0x2f,0x95,0xba,0x5b,
+ 0xdd,0x5d,0xdf,0xff,0x7f,0xff,0xb3,0xc8,0x8b,0x2f,0xbe,0x88,0x9d,0xe2,0x9c,0x43,
+ 0x10,0x4,0x28,0x14,0xa,0x70,0xce,0xc1,0x39,0x7,0x6b,0x2d,0x8c,0x31,0xd0,0x5a,
+ 0x23,0xcb,0xb2,0xfc,0x19,0x40,0x99,0x10,0xf2,0x94,0xb5,0x76,0xd5,0x18,0xf3,0xb6,
+ 0x52,0xea,0x5d,0xd3,0x7f,0x41,0x29,0x85,0x10,0x2,0x8b,0x8b,0x8b,0xd0,0x5a,0xe7,
+ 0xff,0x38,0xe7,0x72,0x2c,0xe,0x0,0x84,0x10,0x50,0x4a,0x87,0x14,0x20,0x84,0x0,
+ 0xc0,0x4,0x21,0xe4,0x9,0xe7,0xdc,0xe7,0x1,0xfc,0xb,0xc0,0xf3,0x0,0xae,0xfa,
+ 0xef,0x8,0x21,0x73,0x0,0x5e,0xb6,0xd6,0x7e,0xb4,0xbf,0xb1,0x66,0x8c,0x2d,0x19,
+ 0x63,0x9e,0x70,0xce,0x2d,0x3,0x40,0x9a,0xa6,0xb0,0xd6,0xfa,0xfd,0x6e,0x10,0xce,
+ 0x18,0x83,0x10,0x2,0xdd,0x6e,0x17,0x61,0x18,0xe6,0xd6,0x4e,0x4c,0x4c,0x3c,0x1a,
+ 0x45,0xd1,0x8f,0xb3,0x2c,0xdb,0x67,0xad,0x85,0xb5,0xf6,0x61,0xe7,0xdc,0x13,0x0,
+ 0x7e,0x48,0x8,0xb1,0x84,0x90,0x79,0x0,0x9f,0x34,0xc6,0xcc,0x59,0x6b,0x91,0x65,
+ 0x19,0xb2,0x2c,0xb,0x9c,0x73,0xf7,0x3a,0xe7,0x1e,0x33,0xc6,0x2c,0xa7,0x69,0x8a,
+ 0xb5,0xb5,0xb5,0x21,0x8b,0x6f,0x50,0xc0,0xd3,0x7c,0xe2,0xc4,0x9,0x2c,0x2d,0x2d,
+ 0x21,0x8a,0x22,0x64,0x59,0x86,0x63,0xc7,0x8e,0x7d,0xe3,0xf0,0xe1,0xc3,0xfb,0x94,
+ 0x52,0xe8,0x2b,0x0,0x63,0x4c,0xd9,0x5a,0xfb,0x9c,0x7f,0xf6,0x94,0xee,0x5c,0x8c,
+ 0xb1,0xc7,0xa4,0x94,0xdf,0xef,0x74,0x3a,0x50,0x4a,0x81,0x10,0x72,0x53,0x25,0xa8,
+ 0xb5,0x16,0xe3,0xe3,0xe3,0x38,0x78,0xf0,0x20,0xaa,0xd5,0x2a,0x36,0x37,0x37,0x61,
+ 0x8c,0x41,0xbb,0xdd,0x1e,0xf1,0x6c,0xc,0x2,0xed,0xbc,0xf7,0xcf,0x7d,0x6,0x90,
+ 0x65,0x19,0x84,0x10,0xf,0x12,0x42,0xde,0x60,0x8c,0xdd,0x7b,0x33,0xea,0x87,0x62,
+ 0xa0,0xaf,0x35,0xc2,0x30,0xf4,0xb1,0xc0,0xc7,0xc6,0xc6,0xa6,0xb3,0x2c,0x1b,0x2,
+ 0x75,0xce,0x81,0x52,0xa,0x4a,0x29,0xb4,0xd6,0x79,0x60,0x79,0xb1,0xd6,0x42,0x6b,
+ 0xed,0xff,0xf9,0x44,0x9a,0xa6,0xb,0xce,0xb9,0xdf,0x51,0x4a,0x89,0x73,0x6e,0xb4,
+ 0x1f,0x3f,0xdf,0x1,0x60,0x87,0x14,0xd0,0x5a,0x63,0x6e,0x6e,0xe,0x4f,0x3f,0xfd,
+ 0x34,0x2e,0x5e,0xbc,0x88,0x4a,0xa5,0xf2,0xdc,0x7d,0xf7,0xdd,0xb7,0x5f,0x4a,0x99,
+ 0x2b,0xe0,0x63,0x65,0x79,0x79,0x19,0xd5,0x6a,0x15,0xbd,0x5e,0x17,0xc6,0x58,0x4,
+ 0x41,0x80,0x62,0xb1,0x88,0xc9,0xc9,0x49,0x54,0x2a,0x15,0x50,0x4a,0x61,0x8c,0x41,
+ 0xbd,0x5e,0x47,0xbb,0xdd,0x9e,0x70,0xce,0x3d,0xe5,0x99,0xec,0xbb,0xc1,0x39,0xe7,
+ 0xbe,0x9d,0x7,0xf2,0x4b,0x2f,0xbd,0x4,0x42,0xc8,0x34,0x21,0xe4,0x2e,0x4a,0xe9,
+ 0x87,0x1a,0x8d,0xc6,0x3d,0xc5,0x62,0xf1,0x6b,0xce,0x39,0xea,0x19,0x60,0x8c,0xe1,
+ 0xd2,0xa5,0x4b,0x38,0x7d,0xea,0x14,0xde,0xdf,0xac,0xc1,0xc1,0x81,0x90,0xeb,0x4c,
+ 0x70,0xce,0x11,0x86,0x1,0xc2,0x20,0xc0,0xd8,0xd8,0x18,0x66,0x66,0x66,0x0,0x0,
+ 0xcd,0x66,0x33,0x67,0x65,0xd0,0x95,0xd6,0x5a,0xe3,0x9c,0x7b,0x14,0xc0,0x9,0x0,
+ 0xe0,0x84,0x90,0x90,0x10,0xf2,0x7,0xe7,0xdc,0xfd,0x5a,0x6b,0x94,0x4a,0x25,0x78,
+ 0x60,0x63,0xc,0x28,0xa5,0x38,0x7b,0xf6,0x2c,0x4e,0x9e,0xfc,0xb,0xb2,0xcc,0x42,
+ 0xa4,0xa,0xa9,0x94,0x70,0xce,0x80,0x12,0xa,0xc6,0x18,0x82,0x30,0xc0,0x68,0x71,
+ 0x14,0x94,0x32,0xac,0xad,0xad,0x21,0xc,0x3,0x30,0xc6,0x87,0x6a,0x88,0x5f,0x0,
+ 0x98,0x94,0xf2,0x7b,0xbd,0x5e,0xef,0x7e,0x42,0x88,0xe3,0x0,0x1e,0xb0,0xd6,0xde,
+ 0x3f,0xf8,0x91,0xf7,0x39,0xa5,0x14,0x97,0x2f,0x5f,0xc6,0xc9,0x93,0x27,0x61,0x2c,
+ 0x50,0x6f,0x6c,0xc3,0x64,0xa,0x8c,0x51,0x0,0xe8,0x39,0x42,0x95,0x73,0x36,0x2,
+ 0x5c,0xdc,0xd4,0xdb,0x48,0x92,0x4,0xbb,0x77,0xdf,0x8a,0x38,0x8e,0x6f,0x66,0x3d,
+ 0x8,0x21,0x68,0x34,0x1a,0x2b,0x4a,0x29,0x47,0x8,0x1,0xef,0xf5,0x7a,0xc7,0x47,
+ 0x46,0x46,0x86,0x80,0xfd,0x7d,0x9a,0xa6,0x38,0x73,0xe6,0xc,0x40,0x8,0xea,0xf5,
+ 0x2d,0xa8,0x54,0x68,0x63,0xcc,0x82,0xd6,0xfa,0x94,0x31,0xe6,0x7d,0xe7,0x9c,0xa6,
+ 0x94,0x86,0x41,0x10,0xdc,0x3a,0x32,0x32,0x72,0x98,0x10,0xf2,0x50,0xb5,0x5a,0xd,
+ 0x19,0xe3,0x98,0x99,0x99,0x86,0x94,0x12,0x52,0xca,0x5c,0x9,0x4a,0x29,0x5a,0xad,
+ 0x16,0x7a,0xbd,0xde,0x1f,0x83,0x20,0x80,0x73,0xe,0xbc,0x5e,0xaf,0x3f,0x58,0x2a,
+ 0x95,0xa0,0x94,0x1a,0x8a,0x78,0x42,0x8,0x36,0x36,0x36,0xd0,0x6c,0x36,0xa1,0x75,
+ 0x86,0xa4,0xd7,0x6d,0x2b,0xa5,0x7e,0x92,0x65,0xd9,0xdb,0x0,0x68,0x7f,0x31,0x63,
+ 0x8c,0x34,0xc6,0x6c,0x4b,0x29,0xcf,0x25,0x49,0xf2,0x66,0xa5,0x52,0xf9,0xe6,0xc6,
+ 0xc6,0xfa,0xc4,0x2d,0xb7,0x54,0x10,0xc7,0x31,0x84,0x10,0xf9,0xbe,0xfd,0x12,0xff,
+ 0x5e,0xb9,0x5c,0x7e,0x85,0x73,0x7e,0x3d,0xb,0x2e,0x5d,0xba,0x44,0x29,0xa5,0x98,
+ 0x9e,0x9e,0xce,0x53,0xc8,0xd3,0x5f,0xaf,0xd7,0xaf,0xd7,0xf3,0x24,0x31,0x42,0x88,
+ 0x9f,0x3b,0xe7,0x16,0x0,0xb4,0x0,0x6c,0x3,0x50,0x0,0x18,0x80,0x22,0x80,0x69,
+ 0x0,0xd3,0x52,0xca,0x77,0x37,0x37,0x37,0xbf,0xb,0xe0,0x5b,0xed,0x76,0xbb,0xbc,
+ 0x7b,0xf7,0x6e,0xb4,0xdb,0x6d,0x68,0xad,0xe1,0x9c,0x83,0x52,0xa,0xc5,0x62,0x31,
+ 0x2d,0x14,0xa,0x1d,0x63,0xc,0xd2,0x34,0x5,0x6d,0xb5,0x5a,0xed,0xd3,0xa7,0x4f,
+ 0xe3,0xdc,0xb9,0x73,0x79,0xa,0xf9,0xa5,0x94,0x2,0xe7,0x1c,0x69,0x2a,0xff,0xee,
+ 0x9c,0x7b,0x19,0xc0,0x19,0x0,0x67,0x1,0xbc,0x7,0xa0,0xda,0xcf,0xeb,0x25,0x0,
+ 0x7f,0x5,0xf0,0x37,0x0,0x5d,0xa5,0xd4,0x5a,0xbd,0x5e,0x7f,0xb5,0xd7,0xeb,0x21,
+ 0xc,0x43,0x84,0x61,0x38,0xe4,0x56,0xad,0xf5,0x1d,0xd6,0xda,0xaf,0x8,0x21,0x20,
+ 0xa5,0x4,0x5d,0x58,0x58,0xf8,0xe9,0xc6,0xc6,0xc6,0xe5,0xf5,0xf5,0xf5,0x21,0xf0,
+ 0x2c,0xcb,0xf2,0xd,0xc2,0x30,0x5c,0x0,0xf0,0xe,0x80,0xce,0x4d,0xa,0x5a,0x6,
+ 0xe0,0x1a,0x80,0x53,0x0,0x3a,0x42,0x88,0x65,0xa5,0x54,0x33,0x8,0x82,0xdc,0x28,
+ 0xaf,0x40,0x92,0x24,0x5c,0x6b,0xfd,0x1b,0x4a,0xe9,0xcf,0x8,0x21,0xe3,0x4c,0x8,
+ 0x31,0xbe,0xba,0xba,0x7a,0x7e,0x7c,0x62,0x72,0xe6,0xe0,0xdd,0x77,0xef,0x51,0x4a,
+ 0xe5,0xed,0x56,0x6b,0x8d,0xcd,0xcd,0x4d,0x8c,0x8d,0x8d,0xd5,0xc6,0xc7,0xc7,0x7f,
+ 0x4b,0x29,0xcd,0x63,0xe5,0x26,0x92,0x0,0x10,0x0,0x66,0xe6,0xe7,0xe7,0xef,0x99,
+ 0x9b,0x9b,0xab,0x6c,0x6d,0x6d,0xa1,0xdb,0xed,0xe6,0x5d,0xd6,0x5a,0xeb,0xf7,0xf8,
+ 0x88,0x73,0xee,0x20,0xef,0xf7,0x83,0x66,0xd2,0xeb,0x9d,0x1,0xf0,0xb1,0xc1,0x40,
+ 0x2c,0x16,0x8b,0x28,0x95,0x4a,0x48,0xd3,0xf4,0x58,0xb9,0x5c,0xbe,0x6b,0xef,0xde,
+ 0xbd,0x8b,0x84,0x10,0x48,0x29,0xd1,0xe9,0x74,0x90,0xa6,0x29,0x94,0x52,0x68,0x34,
+ 0x1a,0xf0,0xc,0x2,0xb8,0x46,0x29,0xed,0xed,0xd9,0xb3,0x67,0x8a,0x10,0x82,0x24,
+ 0x49,0xf2,0x72,0x3d,0x58,0x11,0xfb,0x8c,0xec,0xe5,0x0,0xfe,0x31,0x3b,0x3b,0xfb,
+ 0xc8,0xe3,0x8f,0x7f,0xe1,0xab,0x42,0x88,0xbc,0x8,0x65,0x59,0x6,0x0,0x98,0x9d,
+ 0x9d,0x45,0xb5,0x5a,0x8d,0x29,0xa5,0xbf,0xe6,0x9c,0x7f,0x36,0x8e,0xe3,0x8d,0x4a,
+ 0xa5,0x82,0x30,0xc,0xc1,0x39,0x7,0x63,0xc,0x59,0x96,0x61,0x79,0x79,0x19,0x17,
+ 0x2e,0x5c,0x40,0xad,0x56,0x73,0x87,0xe,0x1d,0x7a,0x6c,0x7e,0x7e,0xfe,0x96,0x46,
+ 0xa3,0x81,0x76,0xbb,0x7d,0xd3,0x9a,0x60,0xad,0x5d,0x63,0x47,0x8f,0x1e,0xc5,0xf1,
+ 0xe3,0xc7,0x7f,0x54,0x2a,0x95,0x3e,0xec,0x6b,0xbf,0xef,0x6a,0xc6,0x98,0x7e,0x10,
+ 0xa6,0x70,0xce,0xcd,0x32,0xc6,0x3e,0x43,0x29,0x3d,0x4d,0x8,0x59,0xdf,0x69,0xd,
+ 0xa5,0x14,0x9d,0x4e,0x67,0x64,0xdf,0xbe,0x7d,0xcf,0x1f,0x39,0x72,0xe4,0x29,0xce,
+ 0x39,0x16,0x17,0x17,0x91,0x24,0x49,0x6e,0xbd,0x67,0x77,0xa0,0x79,0xbd,0xce,0x2b,
+ 0x95,0xca,0xbd,0x13,0x13,0x13,0x47,0x93,0x24,0xc9,0xc1,0xfd,0x87,0x4a,0x29,0xac,
+ 0xaf,0xaf,0x43,0x8,0xe1,0x47,0xb4,0x3,0x84,0x90,0x37,0x1,0xbc,0xa,0xe0,0x35,
+ 0x0,0x17,0x1,0xa4,0xce,0xb9,0x29,0x4a,0xe9,0x3,0x87,0xe,0x1d,0xfa,0xd2,0x6d,
+ 0xb7,0xdd,0x76,0xb7,0x31,0x6,0xe7,0xcf,0x9f,0xcf,0xd3,0xd8,0x5b,0x4c,0xe9,0xf5,
+ 0xd2,0x9d,0xa6,0x29,0x92,0x24,0x81,0x94,0xf2,0x2d,0x32,0x33,0x33,0xf3,0xc8,0x33,
+ 0xcf,0x3c,0xf3,0x7a,0xa1,0x50,0x40,0x9a,0xa6,0xc8,0xb2,0xc,0xce,0x39,0x48,0x29,
+ 0xb1,0xb6,0xb6,0x96,0x5b,0x60,0xed,0xf5,0xce,0x37,0x31,0x31,0x81,0x42,0xa1,0x90,
+ 0xb7,0x65,0x4a,0xa9,0xe1,0x9c,0xb3,0x28,0x8a,0x10,0x86,0x21,0xb6,0xb6,0xb6,0xb0,
+ 0xb4,0xb4,0x84,0x76,0xbb,0x3d,0x4,0xe,0x0,0x9c,0x73,0x34,0x9b,0x4d,0x8,0x21,
+ 0x90,0x24,0x9,0x9c,0x73,0x77,0xf2,0x6e,0xb7,0xcb,0x56,0x56,0x56,0xd2,0x3d,0x7b,
+ 0xf6,0x14,0xfc,0x7c,0x28,0xa5,0xc4,0xfa,0xfa,0xfa,0x10,0xb8,0xb5,0x16,0x42,0x8,
+ 0x8,0x21,0x10,0x45,0x11,0x46,0x46,0x46,0x10,0xc7,0x31,0x38,0xe7,0x4c,0x8,0x81,
+ 0xcd,0xcd,0x4d,0xd4,0xeb,0x75,0xd4,0xeb,0xf5,0xdc,0xda,0x9d,0x3d,0xa0,0xd5,0x6a,
+ 0xc1,0x18,0x53,0xd3,0x5a,0xff,0xbb,0x5f,0x37,0xae,0xf0,0x6e,0xb7,0xbb,0x7a,0xe1,
+ 0xc2,0x85,0x33,0x4a,0xa9,0x87,0xa6,0xa6,0xa6,0xd0,0x6e,0xb7,0xb1,0xb2,0xb2,0x2,
+ 0xad,0x35,0xa6,0xa6,0xa6,0xf2,0x94,0xf4,0xfe,0x36,0xc6,0xa0,0xd5,0x6a,0xa1,0xd1,
+ 0x68,0xc,0x4d,0xcb,0xfe,0xbd,0x9f,0x80,0xfc,0x0,0xe3,0xff,0xe5,0x9c,0xa3,0xd5,
+ 0x6a,0x3d,0xbb,0xbd,0xbd,0xfd,0x2,0x80,0xcd,0x28,0x8a,0x1c,0xa5,0x14,0xc,0x40,
+ 0xdc,0xed,0x76,0x47,0xa2,0x28,0xfa,0x78,0xab,0xd5,0xa2,0x57,0xaf,0x5e,0xc5,0x95,
+ 0x2b,0x57,0xd0,0xe9,0x74,0x10,0x45,0x11,0xe2,0x38,0x1e,0x2,0xf0,0xcb,0x7,0xd6,
+ 0x20,0xe8,0x20,0x5b,0x83,0x1,0xea,0x9c,0x43,0x96,0x65,0xe7,0x8d,0x31,0x4f,0x4a,
+ 0x29,0xbb,0xde,0x1d,0x84,0x10,0x30,0x0,0x52,0x29,0x85,0x34,0x4d,0x8b,0x53,0x53,
+ 0x53,0xbb,0x3a,0x9d,0x4e,0xaf,0xdb,0xed,0x76,0x82,0x20,0xd0,0x94,0xd2,0xb8,0x56,
+ 0xab,0x61,0x7c,0x7c,0xfc,0x6,0x4b,0x77,0x2,0xd,0x56,0xbb,0xc1,0x9c,0xf7,0x4c,
+ 0xa4,0x69,0x5a,0xb5,0xd6,0xbe,0xe0,0x4b,0xb3,0x57,0xdc,0xab,0xbe,0x1b,0xc0,0xc3,
+ 0x94,0xd2,0xbd,0xd6,0x5a,0xa,0xc0,0x50,0x4a,0xcb,0xbb,0x76,0xed,0xfa,0x74,0x18,
+ 0x86,0xfb,0xf6,0xef,0xdf,0x9f,0x67,0x88,0x7,0xdb,0x31,0x66,0xd,0x1,0xfb,0xb3,
+ 0xc0,0xa0,0x62,0xc6,0x98,0x86,0x73,0xee,0xce,0x20,0x8,0x6a,0xbe,0xd5,0xe7,0x33,
+ 0x21,0x80,0x35,0x0,0x27,0xac,0xb5,0x25,0x0,0x29,0x0,0x69,0xad,0x2d,0xaf,0xae,
+ 0xae,0x2e,0x95,0x4a,0xa5,0x2f,0x1e,0x38,0x70,0xe0,0x88,0x31,0x86,0xee,0xa4,0xd5,
+ 0x83,0x9,0x21,0xc0,0xf9,0xf5,0x9,0x88,0x31,0x86,0x28,0x8a,0x90,0x24,0x9,0xb2,
+ 0x2c,0x3,0xa5,0x14,0x51,0x14,0xa1,0x58,0x2c,0x2a,0xad,0xb5,0xf6,0xee,0xf2,0x57,
+ 0xaf,0x80,0xed,0x2b,0x31,0x28,0x1b,0x0,0xae,0x74,0x3a,0x9d,0xd5,0x5a,0xad,0x76,
+ 0x47,0xb9,0x5c,0xbe,0x75,0xd0,0x72,0x3f,0xcc,0x5e,0xbb,0x76,0x2d,0x8f,0x15,0x42,
+ 0x8,0xda,0xed,0x36,0x26,0x27,0x27,0x7d,0x9,0x7,0x63,0xc,0x71,0x1c,0x23,0x8a,
+ 0xa2,0x8b,0x69,0x9a,0x36,0x7,0x4f,0x60,0xe8,0xf7,0xf3,0xff,0x25,0x19,0x80,0x5a,
+ 0x14,0x45,0x47,0xe6,0xe7,0xe7,0x6f,0xdf,0xe9,0xfb,0xfe,0xc0,0x72,0x15,0xc0,0x9f,
+ 0x92,0x24,0x79,0xbd,0xd9,0x6c,0xbe,0xe2,0x9c,0xb,0x8a,0xc5,0xe2,0xde,0x38,0x8e,
+ 0xf3,0xc6,0xc5,0x18,0x3b,0x4d,0x8,0xf9,0x3a,0xe7,0xfc,0x7d,0x6f,0xbd,0x5f,0x1c,
+ 0xff,0x5f,0x9a,0x69,0x9a,0xfe,0xb3,0x54,0x2a,0x7d,0x4a,0x4a,0x89,0x6e,0xb7,0x8b,
+ 0x4e,0xa7,0x3,0x29,0x25,0x92,0x24,0xb9,0x22,0x84,0xf8,0x9c,0x10,0xe2,0x1d,0xbf,
+ 0x71,0xaf,0xd7,0xfb,0x45,0x96,0x65,0x5f,0x8e,0xe3,0xf8,0x7,0x42,0x8,0xa6,0xb5,
+ 0x7e,0xd6,0x5a,0xfb,0x2b,0x4a,0xa9,0xda,0x69,0xfd,0x7,0x61,0x0,0x0,0xa0,0x94,
+ 0xea,0x28,0xa5,0xa6,0xad,0xb5,0x23,0x5a,0xeb,0xd1,0x5e,0xaf,0x47,0x85,0x10,0x62,
+ 0x7b,0x7b,0xfb,0x49,0x6b,0xed,0x5b,0x83,0x7,0x5c,0xce,0xb9,0xb5,0xd6,0xbe,0x2d,
+ 0xa5,0xfc,0xbd,0xb5,0xf6,0x97,0x84,0x90,0x3f,0xc7,0x71,0x6c,0x7c,0xf3,0xda,0x29,
+ 0x4,0x1f,0x5c,0x46,0x1,0xec,0x2a,0x14,0xa,0xf3,0x9c,0xf3,0xdb,0xb3,0x2c,0xfb,
+ 0x8f,0xd6,0xfa,0x35,0x1f,0xf9,0xfe,0x38,0xce,0x18,0x43,0xa1,0x50,0xc0,0xe8,0xe8,
+ 0x28,0xc2,0x30,0x4,0x63,0xc,0x63,0x63,0x63,0x18,0x1d,0x1d,0x45,0xa1,0x50,0xb8,
+ 0x61,0xd3,0xff,0xe,0x0,0xa8,0xa6,0xfb,0x9e,0x1e,0x5,0x1b,0x6a,0x0,0x0,0x0,
+ 0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /usr/local/google/home/chudy/Icons/drawer-open-icon.png
+ 0x0,0x0,0x5,0xf1,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x20,0x0,0x0,0x0,0x20,0x8,0x6,0x0,0x0,0x0,0x73,0x7a,0x7a,0xf4,
+ 0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+ 0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+ 0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x5,0x93,0x49,0x44,0x41,0x54,0x78,0xda,0xa4,
+ 0x57,0x5d,0x68,0x1c,0x55,0x14,0xfe,0xee,0x9d,0x9d,0xfd,0xcb,0x7f,0xcc,0x26,0x31,
+ 0xb1,0x15,0x94,0x16,0x21,0x4f,0x15,0xa5,0xb5,0x1a,0xa1,0x46,0xc5,0x7,0x41,0x54,
+ 0x5a,0xb0,0x48,0x51,0xa8,0xbe,0xf8,0x2c,0x45,0x10,0x4a,0xc1,0x17,0xc5,0x9f,0x87,
+ 0xbe,0xf5,0xc1,0xaa,0x94,0xa,0x85,0xd8,0xa,0x82,0x25,0x28,0x55,0x49,0x35,0x69,
+ 0x8d,0x8a,0x54,0x28,0x95,0xb6,0x69,0x4d,0xed,0xa6,0x49,0x93,0x36,0xd9,0x74,0x93,
+ 0xdd,0x9d,0x7b,0x3d,0xe7,0xcc,0xec,0x3a,0xbb,0x49,0x26,0x4d,0x72,0x93,0xc9,0x64,
+ 0x66,0xce,0x7c,0xf7,0xdc,0xf3,0x9d,0xef,0x9c,0x3b,0xca,0x5a,0xb,0x1e,0x4a,0x29,
+ 0x84,0x86,0xfb,0xc5,0x3b,0xcf,0x8c,0xa5,0x1b,0x5a,0xdb,0xe3,0x31,0x85,0xb2,0xcd,
+ 0x6a,0x7,0x63,0x16,0x4a,0x16,0xb9,0xdb,0x37,0x7,0x5f,0x7b,0xff,0xbb,0x1d,0x74,
+ 0xab,0x14,0x7e,0xce,0xb8,0x6a,0x9,0x7,0xdc,0xcf,0xf6,0xf5,0x8d,0x36,0x34,0x77,
+ 0x74,0x6d,0xeb,0x7b,0x1,0x71,0x57,0x93,0x25,0xd6,0x36,0x8,0xb2,0x50,0x34,0x18,
+ 0xfa,0xfe,0x6b,0x4c,0x4f,0x5e,0x3f,0xbe,0xf7,0xa3,0x53,0x3b,0xe9,0xae,0x17,0xe5,
+ 0x80,0x7b,0xf8,0xed,0xa7,0x46,0x1b,0xdb,0xba,0xbb,0xb6,0x3e,0xbb,0x1b,0x7f,0x9f,
+ 0x3a,0x4,0xab,0x34,0xd6,0x33,0x94,0x35,0xd8,0xb4,0xe3,0x4d,0xc,0xf,0x1c,0xc5,
+ 0x54,0xf6,0x9f,0xe3,0x6f,0x7c,0xf2,0x43,0xc5,0x89,0x5a,0x7,0xdc,0xcf,0xf7,0xf5,
+ 0x5d,0x6b,0x6a,0xbf,0x3f,0xf3,0xc8,0x73,0xaf,0xe3,0xe7,0x2f,0xf7,0x43,0x69,0xb7,
+ 0x96,0x9a,0x55,0xf,0xc6,0xb7,0xa6,0x88,0xed,0xaf,0x1c,0xc0,0xaf,0x27,0xf,0x63,
+ 0xf2,0xdf,0xcb,0xdf,0x50,0x24,0x5e,0x64,0x3a,0xf8,0x59,0x2c,0x64,0x5b,0x67,0x3c,
+ 0x93,0xe9,0xe9,0x7d,0x9,0xd7,0x2f,0xfe,0x81,0x7,0x1e,0xdb,0x49,0x93,0x3b,0x12,
+ 0xc6,0xb5,0xba,0x60,0x83,0x3f,0xd6,0x7a,0x82,0xd9,0xd3,0xfb,0x32,0x6,0x8f,0x7d,
+ 0xf8,0x3c,0xdd,0x4d,0xd1,0x31,0xcb,0x8f,0xc3,0xe,0xc4,0xad,0x31,0xa8,0x6f,0xe9,
+ 0xc4,0x50,0xff,0x7,0xd0,0x3a,0x4e,0xe1,0xb7,0x6b,0xe7,0x3f,0x94,0x7,0xca,0x2a,
+ 0x18,0x53,0xc0,0xd3,0x7b,0x3f,0x6,0xcf,0x41,0x23,0xb9,0x94,0x3,0x32,0x97,0xf1,
+ 0x4a,0x88,0x39,0x71,0x78,0x64,0x97,0x6e,0xee,0xf4,0x79,0x5a,0x47,0x4,0x98,0xc2,
+ 0x3b,0xd3,0xe3,0x82,0xc9,0xd8,0xb6,0xe2,0x96,0x3f,0x62,0x8b,0xf8,0x2a,0x15,0xe0,
+ 0x38,0xa,0xb,0x25,0xf,0x1b,0x7b,0xb6,0x63,0x6e,0xfa,0x46,0x90,0x7,0xaa,0x36,
+ 0xb8,0x4b,0x2f,0x37,0x64,0xc3,0x78,0x75,0x2d,0xed,0x38,0xf7,0x53,0x3f,0xa9,0xc9,
+ 0x11,0xec,0x5a,0x49,0xc7,0x6a,0x5d,0x36,0x94,0x30,0x5a,0x6b,0x3a,0x97,0x90,0x4a,
+ 0xa7,0x71,0x65,0xe4,0xc,0x5d,0x3b,0x21,0x70,0x21,0x95,0x7e,0x4d,0xc8,0x11,0x45,
+ 0x4e,0x6a,0x5e,0x6e,0x95,0x9d,0x31,0x1e,0xda,0x7a,0x77,0xd1,0xd9,0x6,0x98,0xc5,
+ 0x45,0xbe,0xd7,0x50,0x40,0x45,0x87,0xc2,0xe4,0x68,0x5f,0xfb,0x66,0x21,0x87,0x74,
+ 0x32,0x41,0x6a,0x70,0x78,0x8a,0xc0,0xc8,0x83,0x72,0x5c,0xb8,0xcd,0xdd,0xec,0xad,
+ 0x7f,0x8f,0xec,0x8b,0xb7,0xae,0xd1,0x23,0x9a,0x80,0x13,0xd7,0x5f,0x3f,0xf1,0xed,
+ 0x9,0x6,0x63,0x31,0xa6,0x15,0xa,0x54,0x54,0x4,0xc8,0x6b,0xaf,0x20,0xde,0xa,
+ 0xf7,0x85,0x59,0xa4,0xc4,0x1,0x1d,0xac,0x8c,0xee,0xd1,0x9c,0xce,0xc3,0x6f,0xc1,
+ 0x6d,0xec,0xa4,0xcb,0xc0,0x1,0x5a,0x7d,0x71,0x26,0xb,0xef,0xb7,0x83,0xb0,0x24,
+ 0xdd,0xb2,0x2d,0x27,0x1c,0x63,0x30,0x96,0x44,0x80,0xb0,0x11,0x45,0x1,0x3f,0x93,
+ 0x8,0x38,0x64,0xc,0xd,0x5d,0x9c,0x93,0x8,0x84,0xb9,0xe5,0x58,0xc,0x5d,0xba,
+ 0x9,0xc7,0x66,0xe9,0x3f,0x13,0xac,0x56,0xc3,0x53,0x2e,0xb6,0x25,0x29,0x79,0xe1,
+ 0x56,0xc5,0x94,0x31,0x18,0x8b,0x31,0x25,0x2,0x91,0x14,0x28,0x5e,0x54,0xc1,0x37,
+ 0xa6,0x9f,0x84,0x9d,0x23,0xc5,0xba,0xd5,0xe,0xa8,0x18,0x32,0x17,0xe,0x61,0x6c,
+ 0x62,0x6,0xe5,0x1a,0xc5,0xa0,0xf7,0x65,0x1a,0x51,0xbf,0xb9,0x1b,0x9e,0xad,0x4e,
+ 0x44,0xc6,0x60,0x2c,0xc1,0x24,0x6c,0xab,0x10,0x4d,0x1,0x3c,0xf,0x9a,0x90,0xb9,
+ 0x4,0x9c,0x39,0x9f,0x25,0x9a,0x4d,0x55,0x86,0xf3,0xa4,0x4e,0xbc,0x9,0x1b,0x36,
+ 0x34,0x57,0xbd,0xca,0x89,0x36,0x72,0x39,0x17,0x5a,0xa1,0xd,0xd2,0x63,0x4e,0xb0,
+ 0x18,0x93,0xb1,0x57,0xa0,0x40,0x49,0xa6,0x3a,0xc2,0x17,0xd5,0xf0,0x2d,0xbd,0x24,
+ 0xc3,0x71,0x3f,0xc3,0x23,0x4,0xb7,0x9c,0x30,0x59,0x29,0x75,0x2d,0x1d,0x18,0x19,
+ 0x38,0xe6,0x63,0x12,0xb6,0xb5,0x51,0x49,0xc8,0x83,0x78,0xd2,0x5a,0xc9,0xca,0xd3,
+ 0x24,0xc3,0xab,0x23,0x67,0x45,0x5,0x6b,0x91,0x21,0xab,0x20,0x23,0x32,0x34,0x82,
+ 0xc9,0xd8,0xb5,0x63,0x51,0x21,0x2,0x47,0xc0,0x71,0x7c,0x36,0x48,0x42,0xa9,0x75,
+ 0xca,0x90,0x31,0x18,0x8b,0x31,0x21,0x11,0x88,0xa0,0xc0,0x58,0x25,0x8d,0x43,0x2b,
+ 0xed,0x97,0xd1,0xe2,0x2c,0xd2,0xa9,0x44,0x5,0x54,0x5,0x32,0xd4,0x24,0xc3,0xb8,
+ 0xc8,0xb0,0x5c,0x58,0x69,0xe3,0x41,0x32,0x34,0x81,0xc,0x6d,0xd8,0x59,0xc2,0x60,
+ 0x2b,0xc1,0xa4,0x6b,0xb3,0x32,0x5,0x7e,0x29,0x66,0xae,0x9c,0xd2,0x1d,0xd4,0xa5,
+ 0x92,0x95,0x1c,0xe0,0x57,0x49,0x50,0x18,0x1a,0x9d,0x22,0x19,0x8e,0x8b,0x43,0xe5,
+ 0x2,0x26,0x32,0xac,0x4b,0x92,0xe4,0xdc,0xa,0x31,0x4c,0x13,0x63,0x8,0x96,0xa3,
+ 0x4,0xfb,0x2e,0x28,0xa0,0x8,0x90,0x64,0x98,0xce,0x98,0x97,0x43,0x6e,0xbe,0xe4,
+ 0x67,0x70,0xd0,0x96,0x35,0xa5,0xb4,0xfa,0xeb,0x20,0xb2,0xb7,0x72,0xd0,0xaa,0x1c,
+ 0x39,0xa0,0xbd,0xb9,0x1e,0x73,0x9b,0xee,0xa5,0xff,0x8b,0x95,0x36,0x6c,0x8,0xaf,
+ 0x89,0x30,0xf8,0x75,0xc6,0x64,0x6c,0xbb,0x52,0x21,0x2,0xf5,0x80,0x18,0x71,0xca,
+ 0xf5,0xff,0xc8,0x89,0x5f,0xf0,0xfb,0xc5,0x9,0x3f,0x81,0x42,0xe9,0xe5,0x68,0x5,
+ 0xa5,0xaa,0xd2,0x92,0xde,0x9d,0xc2,0xc9,0xe1,0x2b,0x55,0x8a,0x60,0x69,0x6e,0x79,
+ 0x30,0x83,0xce,0xd6,0xb4,0x60,0x32,0x76,0x64,0x21,0xe2,0x2a,0xa1,0x6c,0x49,0xbc,
+ 0xe5,0xa0,0xcf,0xe4,0xb,0xb8,0xa7,0x31,0xe9,0xd7,0x85,0xe5,0xf4,0x87,0xa5,0xf5,
+ 0x28,0x6b,0xa1,0xd9,0x18,0xa3,0xb,0x69,0x3f,0xaa,0x84,0x8d,0xa8,0x1c,0xb0,0x22,
+ 0xb1,0xa2,0x24,0x8c,0x47,0x45,0x43,0x25,0x1b,0xd0,0x96,0x6a,0x58,0xf3,0xb6,0x8c,
+ 0xc3,0xed,0x49,0x6d,0xf3,0x13,0x1b,0x42,0xcf,0xa,0xed,0x58,0x2a,0x21,0x85,0xb8,
+ 0x48,0xfb,0x81,0x3d,0x7b,0x5e,0x45,0xfe,0xf6,0x84,0x2f,0xc1,0xd5,0x6f,0x7,0x64,
+ 0xb2,0x54,0x53,0x6,0x3f,0x7e,0x75,0x24,0xa8,0x3,0xde,0xa,0xed,0xd8,0xc2,0xa7,
+ 0x80,0x8c,0x4b,0x54,0x34,0xe2,0x89,0x14,0x2e,0x9d,0x1f,0xf2,0xbb,0x21,0x47,0xc1,
+ 0x56,0x18,0xf7,0x3b,0xa1,0xd,0x4d,0xac,0xca,0x1d,0x33,0x70,0xd6,0xfa,0xdd,0xf0,
+ 0xa1,0x27,0x77,0x9,0x16,0x63,0x32,0x76,0x74,0x33,0x62,0x41,0xd9,0x60,0x3f,0x60,
+ 0xa8,0x1a,0xce,0x73,0x3b,0x8e,0xaf,0x6f,0x3f,0x40,0x18,0x8c,0xc5,0x98,0xe2,0x40,
+ 0x34,0x5,0xec,0xa5,0x17,0xb4,0x63,0x9a,0xb0,0x38,0xe3,0xb7,0x63,0xed,0xfc,0xbf,
+ 0x65,0xb9,0xeb,0xfd,0x80,0x6c,0x30,0x5,0x83,0xb1,0x1c,0x49,0x42,0x2f,0x3a,0x9,
+ 0xf9,0x45,0x57,0x53,0xf,0x8f,0xc5,0x4,0xc2,0x29,0xe5,0xa5,0x14,0x97,0x6b,0x3c,
+ 0x17,0x1e,0x6d,0x35,0x86,0x79,0x3f,0x80,0x6c,0x75,0x21,0xa2,0x2,0xb4,0x95,0x6c,
+ 0xd,0xb5,0x6b,0x1b,0x6c,0x48,0x60,0x63,0x82,0xc1,0x57,0x71,0xc2,0x74,0xb4,0x5d,
+ 0x24,0xa3,0xb0,0x3,0x36,0x37,0x5f,0x3c,0xdd,0xff,0xed,0xc8,0xe3,0xb2,0x85,0xa2,
+ 0x17,0x52,0x2a,0xf,0x5d,0x9f,0xaa,0xa2,0x5a,0x13,0x48,0xc7,0x85,0x4f,0x31,0x76,
+ 0xa3,0x66,0x3f,0xd0,0xde,0x88,0xc6,0xcd,0x5d,0xc4,0x8a,0xaa,0xb2,0x4f,0x10,0x6,
+ 0x63,0x9d,0x18,0xf8,0x53,0x6e,0x50,0x61,0x3b,0x1d,0x4e,0xe3,0xf0,0x97,0x51,0x3,
+ 0x9d,0x36,0xd2,0xd1,0xc6,0xfb,0xf6,0xfd,0xbb,0x1f,0x7d,0xb7,0xa5,0x3e,0xf9,0x44,
+ 0x75,0xe5,0x52,0x81,0x13,0x90,0x2a,0x58,0xce,0xb,0xe6,0xd5,0x58,0x3f,0x25,0x6c,
+ 0x8d,0x4c,0x58,0xc2,0xd3,0xb9,0xf9,0xc1,0x3,0x47,0xcf,0xbe,0x47,0x97,0xf3,0x74,
+ 0x4c,0xd2,0x71,0x95,0xbf,0xb,0x6a,0x3f,0xcd,0x62,0xc1,0x17,0x4b,0x32,0x38,0xb7,
+ 0xd2,0xd1,0xb4,0x64,0xbf,0x58,0xdd,0xe0,0x1e,0x7c,0x9b,0x8e,0x29,0x3a,0xf2,0x81,
+ 0x13,0xf9,0xf2,0xa7,0x99,0x5a,0xe6,0xf3,0xbc,0xec,0x4c,0x42,0xfa,0xcf,0xfa,0x6,
+ 0x67,0xea,0x42,0x79,0xd2,0xda,0x42,0xf5,0x9f,0x0,0x3,0x0,0xc6,0xa2,0x9,0x7b,
+ 0x40,0xbb,0x23,0xf8,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+
+
+};
+
+static const unsigned char qt_resource_name[] = {
+ // images
+ 0x0,0x6,
+ 0x7,0x3,0x7d,0xc3,
+ 0x0,0x69,
+ 0x0,0x6d,0x0,0x61,0x0,0x67,0x0,0x65,0x0,0x73,
+ // Icons
+ 0x0,0x5,
+ 0x0,0x4f,0xa6,0x53,
+ 0x0,0x49,
+ 0x0,0x63,0x0,0x6f,0x0,0x6e,0x0,0x73,
+ // skia.png
+ 0x0,0x8,
+ 0x1,0xf4,0x58,0x7,
+ 0x0,0x73,
+ 0x0,0x6b,0x0,0x69,0x0,0x61,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // back.png
+ 0x0,0x8,
+ 0x7,0x9e,0x5a,0x47,
+ 0x0,0x62,
+ 0x0,0x61,0x0,0x63,0x0,0x6b,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // delete.png
+ 0x0,0xa,
+ 0xc,0xad,0xf,0x7,
+ 0x0,0x64,
+ 0x0,0x65,0x0,0x6c,0x0,0x65,0x0,0x74,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // inspector.png
+ 0x0,0xd,
+ 0xb,0xd1,0x81,0xc7,
+ 0x0,0x69,
+ 0x0,0x6e,0x0,0x73,0x0,0x70,0x0,0x65,0x0,0x63,0x0,0x74,0x0,0x6f,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // breakpoint_16x16.png
+ 0x0,0x14,
+ 0x9,0x1d,0xb7,0x27,
+ 0x0,0x62,
+ 0x0,0x72,0x0,0x65,0x0,0x61,0x0,0x6b,0x0,0x70,0x0,0x6f,0x0,0x69,0x0,0x6e,0x0,0x74,0x0,0x5f,0x0,0x31,0x0,0x36,0x0,0x78,0x0,0x31,0x0,0x36,0x0,0x2e,
+ 0x0,0x70,0x0,0x6e,0x0,0x67,
+ // reload.png
+ 0x0,0xa,
+ 0x5,0x78,0x4f,0x27,
+ 0x0,0x72,
+ 0x0,0x65,0x0,0x6c,0x0,0x6f,0x0,0x61,0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // breakpoint.png
+ 0x0,0xe,
+ 0x1,0x27,0x3,0xa7,
+ 0x0,0x62,
+ 0x0,0x72,0x0,0x65,0x0,0x61,0x0,0x6b,0x0,0x70,0x0,0x6f,0x0,0x69,0x0,0x6e,0x0,0x74,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // play.png
+ 0x0,0x8,
+ 0x2,0x8c,0x59,0xa7,
+ 0x0,0x70,
+ 0x0,0x6c,0x0,0x61,0x0,0x79,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // reset.png
+ 0x0,0x9,
+ 0x9,0xc7,0xa6,0xc7,
+ 0x0,0x72,
+ 0x0,0x65,0x0,0x73,0x0,0x65,0x0,0x74,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // package-br32.png
+ 0x0,0x10,
+ 0x7,0x82,0xce,0xe7,
+ 0x0,0x70,
+ 0x0,0x61,0x0,0x63,0x0,0x6b,0x0,0x61,0x0,0x67,0x0,0x65,0x0,0x2d,0x0,0x62,0x0,0x72,0x0,0x33,0x0,0x32,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // rewind.png
+ 0x0,0xa,
+ 0x0,0x48,0x4e,0x87,
+ 0x0,0x72,
+ 0x0,0x65,0x0,0x77,0x0,0x69,0x0,0x6e,0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // go-next.png
+ 0x0,0xb,
+ 0xc,0x2b,0x1f,0xc7,
+ 0x0,0x67,
+ 0x0,0x6f,0x0,0x2d,0x0,0x6e,0x0,0x65,0x0,0x78,0x0,0x74,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // settings.png
+ 0x0,0xc,
+ 0xb,0xdf,0x21,0x47,
+ 0x0,0x73,
+ 0x0,0x65,0x0,0x74,0x0,0x74,0x0,0x69,0x0,0x6e,0x0,0x67,0x0,0x73,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // drawer-open-icon.png
+ 0x0,0x14,
+ 0x8,0xc6,0x51,0x67,
+ 0x0,0x64,
+ 0x0,0x72,0x0,0x61,0x0,0x77,0x0,0x65,0x0,0x72,0x0,0x2d,0x0,0x6f,0x0,0x70,0x0,0x65,0x0,0x6e,0x0,0x2d,0x0,0x69,0x0,0x63,0x0,0x6f,0x0,0x6e,0x0,0x2e,
+ 0x0,0x70,0x0,0x6e,0x0,0x67,
+
+};
+
+static const unsigned char qt_resource_struct[] = {
+ // :
+ 0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,
+ // :/images
+ 0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2,
+ // :/images/Icons
+ 0x0,0x0,0x0,0x12,0x0,0x2,0x0,0x0,0x0,0xe,0x0,0x0,0x0,0x3,
+ // :/images/Icons/rewind.png
+ 0x0,0x0,0x1,0x46,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x3b,0x2,
+ // :/images/Icons/breakpoint.png
+ 0x0,0x0,0x0,0xd0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1e,0xc9,
+ // :/images/Icons/skia.png
+ 0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,
+ // :/images/Icons/play.png
+ 0x0,0x0,0x0,0xf2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x27,0x94,
+ // :/images/Icons/reload.png
+ 0x0,0x0,0x0,0xb6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x17,0x39,
+ // :/images/Icons/package-br32.png
+ 0x0,0x0,0x1,0x20,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x37,0x61,
+ // :/images/Icons/back.png
+ 0x0,0x0,0x0,0x38,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x4,0x22,
+ // :/images/Icons/drawer-open-icon.png
+ 0x0,0x0,0x1,0x9a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x58,0x7e,
+ // :/images/Icons/breakpoint_16x16.png
+ 0x0,0x0,0x0,0x88,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x12,0xe1,
+ // :/images/Icons/reset.png
+ 0x0,0x0,0x1,0x8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x2d,0x6b,
+ // :/images/Icons/inspector.png
+ 0x0,0x0,0x0,0x68,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xe,0x61,
+ // :/images/Icons/settings.png
+ 0x0,0x0,0x1,0x7c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x45,0x0,
+ // :/images/Icons/go-next.png
+ 0x0,0x0,0x1,0x60,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x40,0x39,
+ // :/images/Icons/delete.png
+ 0x0,0x0,0x0,0x4e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x8,0xd6,
+
+};
+
+QT_BEGIN_NAMESPACE
+
+extern Q_CORE_EXPORT bool qRegisterResourceData
+ (int, const unsigned char *, const unsigned char *, const unsigned char *);
+
+extern Q_CORE_EXPORT bool qUnregisterResourceData
+ (int, const unsigned char *, const unsigned char *, const unsigned char *);
+
+QT_END_NAMESPACE
+
+
+int QT_MANGLE_NAMESPACE(qInitResources_SkIcons)()
+{
+ QT_PREPEND_NAMESPACE(qRegisterResourceData)
+ (0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
+ return 1;
+}
+
+Q_CONSTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qInitResources_SkIcons))
+
+int QT_MANGLE_NAMESPACE(qCleanupResources_SkIcons)()
+{
+ QT_PREPEND_NAMESPACE(qUnregisterResourceData)
+ (0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
+ return 1;
+}
+
+Q_DESTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qCleanupResources_SkIcons))
+
diff --git a/debugger/SkDebugCanvas.cpp b/debugger/SkDebugCanvas.cpp
new file mode 100644
index 0000000..40eb21f
--- /dev/null
+++ b/debugger/SkDebugCanvas.cpp
@@ -0,0 +1,289 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#include <iostream>
+#include "SkDebugCanvas.h"
+#include "SkDrawCommand.h"
+
+SkDebugCanvas::SkDebugCanvas() {
+ // TODO(chudy): Free up memory from all draw commands in destructor.
+ int width = 100;
+ int height = 100;
+ fBm.setConfig(SkBitmap::kNo_Config, width, height);
+ this->setBitmapDevice(fBm);
+ fFilter = false;
+}
+
+SkDebugCanvas::~SkDebugCanvas() {}
+
+void SkDebugCanvas::addDrawCommand(SkDrawCommand* command) {
+ commandVector.push_back(command);
+}
+
+void SkDebugCanvas::draw(SkCanvas* canvas) {
+ if(!commandVector.empty()) {
+ for(it = commandVector.begin(); it != commandVector.end(); ++it) {
+ (*it)->execute(canvas);
+ }
+ }
+}
+
+void SkDebugCanvas::drawTo(SkCanvas* canvas, int index) {
+ int counter = 0;
+ if(!commandVector.empty()) {
+ for(it = commandVector.begin(); it != commandVector.end(); ++it) {
+ if (counter != (index-1)) {
+ if ((*it)->getVisibility()) {
+ (*it)->execute(canvas);
+ }
+ } else {
+ if (fFilter) {
+ SkPaint* p = new SkPaint();
+ p->setColor(0xAAFFFFFF);
+ canvas->save();
+ canvas->resetMatrix();
+ SkRect dump;
+ // TODO(chudy): Replace with a call to QtWidget to get dimensions.
+ dump.set(SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(800), SkIntToScalar(800));
+ canvas->clipRect(dump, SkRegion::kReplace_Op, false );
+ canvas->drawRectCoords(SkIntToScalar(0),SkIntToScalar(0),SkIntToScalar(800),SkIntToScalar(800), *p);
+ canvas->restore();
+ }
+
+ if ((*it)->getVisibility()) {
+ (*it)->execute(canvas);
+ }
+ }
+
+ /* TODO(chudy): Implement a bitmap wide function that will take
+ * ~50 out of each R,G,B. This will make everything but the last
+ * command brighter.
+ */
+ if (++counter == index) return;
+ }
+ }
+}
+
+SkDrawCommand* SkDebugCanvas::getDrawCommandAt(int index) {
+ int counter = 0;
+ if(!commandVector.empty()) {
+ for(it = commandVector.begin(); it != commandVector.end(); ++it) {
+ if (counter==index) {
+ return (*it);
+ }
+ ++counter;
+ }
+ }
+ return NULL;
+}
+
+std::vector<std::string>* SkDebugCanvas::getCommandInfoAt(int index) {
+ std::string info;
+
+ int counter = 0;
+ if(!commandVector.empty()) {
+ for(it = commandVector.begin(); it != commandVector.end(); ++it) {
+ if (counter==index) {
+ return (*it)->Info();
+ }
+ ++counter;
+ }
+ }
+
+ return NULL;
+}
+
+std::vector<SkDrawCommand*> SkDebugCanvas::getDrawCommands() {
+ return commandVector;
+}
+
+// TODO(chudy): Free command string memory.
+std::vector<std::string>* SkDebugCanvas::getDrawCommandsAsStrings() {
+ std::vector<std::string>* commandString = new std::vector<std::string>();
+ if (!commandVector.empty()) {
+ for(it = commandVector.begin(); it != commandVector.end(); ++it) {
+ commandString->push_back((*it)->toString());
+ }
+ }
+ return commandString;
+}
+
+void SkDebugCanvas::toggleFilter(bool toggle) {
+ fFilter = toggle;
+}
+
+void SkDebugCanvas::clear(SkColor color) {
+ addDrawCommand(new Clear(color));
+}
+
+bool SkDebugCanvas::clipPath(const SkPath& path, SkRegion::Op op, bool doAA) {
+ addDrawCommand(new ClipPath(path, op, doAA));
+ return true;
+}
+
+bool SkDebugCanvas::clipRect(const SkRect& rect, SkRegion::Op op, bool doAA) {
+ addDrawCommand(new ClipRect(rect, op, doAA));
+ return true;
+}
+
+bool SkDebugCanvas::clipRegion(const SkRegion& region, SkRegion::Op op) {
+ addDrawCommand(new ClipRegion(region, op));
+ return true;
+}
+
+bool SkDebugCanvas::concat(const SkMatrix& matrix) {
+ addDrawCommand(new Concat(matrix));
+ return true;
+}
+
+void SkDebugCanvas::drawBitmap(const SkBitmap& bitmap, SkScalar left,
+ SkScalar top, const SkPaint* paint = NULL) {
+ addDrawCommand(new DrawBitmap(bitmap, left, top, paint));
+}
+
+void SkDebugCanvas::drawBitmapRect(const SkBitmap& bitmap,
+ const SkIRect* src, const SkRect& dst, const SkPaint* paint) {
+ addDrawCommand(new DrawBitmapRect(bitmap, src, dst, paint));
+}
+
+void SkDebugCanvas::drawBitmapMatrix(const SkBitmap& bitmap,
+ const SkMatrix& matrix, const SkPaint* paint) {
+ addDrawCommand(new DrawBitmapMatrix(bitmap, matrix, paint));
+}
+
+void SkDebugCanvas::drawBitmapNine(const SkBitmap& bitmap,
+ const SkIRect& center, const SkRect& dst, const SkPaint* paint) {
+ addDrawCommand(new DrawBitmapNine(bitmap, center, dst, paint));
+}
+
+void SkDebugCanvas::drawData(const void* data, size_t length) {
+ addDrawCommand(new DrawData(data, length));
+}
+
+void SkDebugCanvas::drawPaint(const SkPaint& paint) {
+ addDrawCommand(new DrawPaint(paint));
+}
+
+void SkDebugCanvas::drawPath(const SkPath& path, const SkPaint& paint) {
+ addDrawCommand(new DrawPath(path, paint));
+}
+
+void SkDebugCanvas::drawPicture(SkPicture& picture) {
+ addDrawCommand(new DrawPicture(picture));
+}
+
+void SkDebugCanvas::drawPoints(PointMode mode, size_t count,
+ const SkPoint pts[], const SkPaint& paint) {
+ addDrawCommand(new DrawPoints(mode, count, pts, paint));
+}
+
+void SkDebugCanvas::drawPosText(const void* text, size_t byteLength,
+ const SkPoint pos[], const SkPaint& paint) {
+ addDrawCommand(new DrawPosText(text, byteLength, pos, paint));
+}
+
+void SkDebugCanvas::drawPosTextH(const void* text, size_t byteLength,
+ const SkScalar xpos[], SkScalar constY, const SkPaint& paint) {
+ addDrawCommand(new DrawPosTextH(text, byteLength, xpos, constY, paint));
+}
+
+void SkDebugCanvas::drawRect(const SkRect& rect, const SkPaint& paint) {
+ // NOTE(chudy): Messing up when renamed to DrawRect... Why?
+ addDrawCommand(new DrawRectC(rect, paint));
+}
+
+void SkDebugCanvas::drawSprite(const SkBitmap& bitmap, int left, int top,
+ const SkPaint* paint = NULL) {
+ addDrawCommand(new DrawSprite(bitmap, left, top, paint));
+}
+
+void SkDebugCanvas::drawText(const void* text, size_t byteLength, SkScalar x,
+ SkScalar y, const SkPaint& paint) {
+ addDrawCommand(new DrawTextC(text, byteLength, x, y, paint));
+}
+
+void SkDebugCanvas::drawTextOnPath(const void* text, size_t byteLength,
+ const SkPath& path, const SkMatrix* matrix, const SkPaint& paint) {
+ addDrawCommand(new DrawTextOnPath(text, byteLength, path, matrix, paint));
+}
+
+void SkDebugCanvas::drawVertices(VertexMode vmode, int vertexCount,
+ const SkPoint vertices[], const SkPoint texs[], const SkColor colors[],
+ SkXfermode*, const uint16_t indices[], int indexCount,
+ const SkPaint& paint) {
+ addDrawCommand(new DrawVertices(vmode, vertexCount, vertices, texs, colors,
+ NULL, indices, indexCount, paint));
+}
+
+void SkDebugCanvas::restore() {
+ addDrawCommand(new Restore());
+}
+
+bool SkDebugCanvas::rotate(SkScalar degrees) {
+ addDrawCommand(new Rotate(degrees));
+ return true;
+}
+
+int SkDebugCanvas::save(SaveFlags flags) {
+ addDrawCommand(new Save(flags));
+ return true;
+}
+
+int SkDebugCanvas::saveLayer(const SkRect* bounds, const SkPaint* paint,
+ SaveFlags flags) {
+ addDrawCommand(new SaveLayer(bounds, paint, flags));
+ return true;
+}
+
+bool SkDebugCanvas::scale(SkScalar sx, SkScalar sy) {
+ addDrawCommand(new Scale(sx, sy));
+ return true;
+}
+
+void SkDebugCanvas::setMatrix(const SkMatrix& matrix) {
+ addDrawCommand(new SetMatrix(matrix));
+}
+
+bool SkDebugCanvas::skew(SkScalar sx, SkScalar sy) {
+ addDrawCommand(new Skew(sx, sy));
+ return true;
+}
+
+bool SkDebugCanvas::translate(SkScalar dx, SkScalar dy) {
+ addDrawCommand(new Translate(dx, dy));
+ return true;
+}
+
+void SkDebugCanvas::toggleCommand(int index) {
+ int counter = 0;
+ if(!commandVector.empty()) {
+ for(it = commandVector.begin(); it != commandVector.end(); ++it) {
+ if (counter == index) {
+ if ((*it)->getVisibility()) {
+ (*it)->setVisibility(false);
+ } else {
+ (*it)->setVisibility(true);
+ }
+ }
+ counter++;
+ }
+ }
+}
+
+void SkDebugCanvas::toggleCommand(int index, bool toggle) {
+ int counter = 0;
+ if(!commandVector.empty()) {
+ for(it = commandVector.begin(); it != commandVector.end(); ++it) {
+ if (counter == index) {
+ (*it)->setVisibility(toggle);
+ }
+ counter++;
+ }
+ }
+}
diff --git a/debugger/SkDebugCanvas.h b/debugger/SkDebugCanvas.h
new file mode 100644
index 0000000..e1bb2ab
--- /dev/null
+++ b/debugger/SkDebugCanvas.h
@@ -0,0 +1,174 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef SKDEBUGCANVAS_H_
+#define SKDEBUGCANVAS_H_
+
+#include <iostream>
+#include "SkCanvas.h"
+#include "SkDrawCommand.h"
+#include "SkPicture.h"
+#include <vector>
+
+class SkDebugCanvas : public SkCanvas {
+public:
+ bool fFilter;
+
+ SkDebugCanvas();
+ ~SkDebugCanvas();
+
+ void toggleFilter(bool toggle);
+
+ /**
+ Executes all draw calls to the canvas.
+ @param canvas The canvas being drawn to
+ */
+ void draw(SkCanvas* canvas);
+
+ /**
+ Executes the draw calls in the specified range.
+ @param canvas The canvas being drawn to
+ @param i The beginning of the range
+ @param j The end of the range
+ TODO(chudy): Implement
+ */
+ void drawRange(SkCanvas* canvas, int i, int j);
+
+ /**
+ Executes the draw calls up to the specified index.
+ @param canvas The canvas being drawn to
+ @param index The index of the final command being executed
+ */
+ void drawTo(SkCanvas* canvas, int index);
+
+ /**
+ Returns the draw command at the given index.
+ @param index The index of the command
+ */
+ SkDrawCommand* getDrawCommandAt(int index);
+
+ /**
+ Returns information about the command at the given index.
+ @param index The index of the command
+ */
+ std::vector<std::string>* getCommandInfoAt(int index);
+
+ /**
+ Returns the vector of draw commands
+ */
+ std::vector<SkDrawCommand*> getDrawCommands();
+
+ /**
+ * Returns the string vector of draw commands
+ */
+ std::vector<std::string>* getDrawCommandsAsStrings();
+
+ /**
+ Toggles the execution of the draw command at index i.
+ */
+ void toggleCommand(int index);
+
+ /**
+ Toggles the visibility / execution of the draw command at index i with
+ the value of toggle.
+ */
+ void toggleCommand(int index, bool toggle);
+
+////////////////////////////////////////////////////////////////////////////////
+// Inherited from SkCanvas
+////////////////////////////////////////////////////////////////////////////////
+
+ virtual void clear(SkColor) SK_OVERRIDE;
+
+ virtual bool clipPath(const SkPath&, SkRegion::Op, bool) SK_OVERRIDE;
+
+ virtual bool clipRect(const SkRect&, SkRegion::Op, bool) SK_OVERRIDE;
+
+ virtual bool clipRegion(const SkRegion& region, SkRegion::Op op) SK_OVERRIDE;
+
+ virtual bool concat(const SkMatrix& matrix) SK_OVERRIDE;
+
+ virtual void drawBitmap(const SkBitmap&, SkScalar left, SkScalar top,
+ const SkPaint*) SK_OVERRIDE;
+
+ virtual void drawBitmapRect(const SkBitmap&, const SkIRect* src,
+ const SkRect& dst, const SkPaint*) SK_OVERRIDE;
+
+ virtual void drawBitmapMatrix(const SkBitmap&, const SkMatrix&,
+ const SkPaint*) SK_OVERRIDE;
+
+ virtual void drawBitmapNine(const SkBitmap& bitmap, const SkIRect& center,
+ const SkRect& dst, const SkPaint*) SK_OVERRIDE;
+
+ virtual void drawData(const void*, size_t) SK_OVERRIDE;
+
+ virtual void drawPaint(const SkPaint& paint) SK_OVERRIDE;
+
+ virtual void drawPath(const SkPath& path, const SkPaint&) SK_OVERRIDE;
+
+ virtual void drawPicture(SkPicture& picture) SK_OVERRIDE;
+
+ virtual void drawPoints(PointMode, size_t count, const SkPoint pts[],
+ const SkPaint&) SK_OVERRIDE;
+
+ virtual void drawPosText(const void* text, size_t byteLength,
+ const SkPoint pos[], const SkPaint&) SK_OVERRIDE;
+
+ virtual void drawPosTextH(const void* text, size_t byteLength,
+ const SkScalar xpos[], SkScalar constY, const SkPaint&) SK_OVERRIDE;
+
+ virtual void drawRect(const SkRect& rect, const SkPaint&) SK_OVERRIDE;
+
+ virtual void drawSprite(const SkBitmap&, int left, int top,
+ const SkPaint*) SK_OVERRIDE;
+
+ virtual void drawText(const void* text, size_t byteLength, SkScalar x,
+ SkScalar y, const SkPaint&) SK_OVERRIDE;
+
+ virtual void drawTextOnPath(const void* text, size_t byteLength,
+ const SkPath& path, const SkMatrix* matrix,
+ const SkPaint&) SK_OVERRIDE;
+
+ virtual void drawVertices(VertexMode, int vertexCount,
+ const SkPoint vertices[], const SkPoint texs[],
+ const SkColor colors[], SkXfermode*,
+ const uint16_t indices[], int indexCount,
+ const SkPaint&) SK_OVERRIDE;
+
+ virtual void restore() SK_OVERRIDE;
+
+ virtual bool rotate(SkScalar degrees) SK_OVERRIDE;
+
+ virtual int save(SaveFlags) SK_OVERRIDE;
+
+ virtual int saveLayer(const SkRect* bounds, const SkPaint*, SaveFlags) SK_OVERRIDE;
+
+ virtual bool scale(SkScalar sx, SkScalar sy) SK_OVERRIDE;
+
+ virtual void setMatrix(const SkMatrix& matrix) SK_OVERRIDE;
+
+ virtual bool skew(SkScalar sx, SkScalar sy) SK_OVERRIDE;
+
+ virtual bool translate(SkScalar dx, SkScalar dy) SK_OVERRIDE;
+
+private:
+ typedef SkCanvas INHERITED;
+ std::vector<SkDrawCommand*> commandVector;
+ std::vector<SkDrawCommand*>::const_iterator it;
+
+ SkBitmap fBm;
+
+ /**
+ Adds the command to the classes vector of commands.
+ @param command The draw command for execution
+ */
+ void addDrawCommand(SkDrawCommand* command);
+};
+
+#endif
diff --git a/debugger/SkDebugger.cpp b/debugger/SkDebugger.cpp
new file mode 100644
index 0000000..86a4574
--- /dev/null
+++ b/debugger/SkDebugger.cpp
@@ -0,0 +1,17 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkDebuggerGUI.h"
+#include <QApplication>
+
+int main(int argc, char *argv[]) {
+ QApplication a(argc, argv);
+ SkDebuggerGUI w;
+ w.show();
+ return a.exec();
+}
diff --git a/debugger/SkDrawCommand.cpp b/debugger/SkDrawCommand.cpp
new file mode 100644
index 0000000..1e569b4
--- /dev/null
+++ b/debugger/SkDrawCommand.cpp
@@ -0,0 +1,491 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#include <cstring>
+#include <iostream>
+#include <string>
+#include "SkDrawCommand.h"
+#include "SkObjectParser.h"
+
+// TODO(chudy): Refactor into non subclass model.
+
+SkDrawCommand::SkDrawCommand() {
+ fVisible = true;
+}
+
+SkDrawCommand::~SkDrawCommand() {
+}
+
+const char* SkDrawCommand::GetCommandString(DrawType type) {
+ switch (type) {
+ case UNUSED: SkDEBUGFAIL("DrawType UNUSED\n"); break;
+ case DRAW_CLEAR: return "Clear";
+ case CLIP_PATH: return "Clip Path";
+ case CLIP_REGION: return "Clip Region";
+ case CLIP_RECT: return "Clip Rect";
+ case CONCAT: return "Concat";
+ case DRAW_BITMAP: return "Draw Bitmap";
+ case DRAW_BITMAP_MATRIX: return "Draw Bitmap Matrix";
+ case DRAW_BITMAP_NINE: return "Draw Bitmap Nine";
+ case DRAW_BITMAP_RECT: return "Draw Bitmap Rect";
+ case DRAW_DATA: return "Draw Data";
+ case DRAW_PAINT: return "Draw Paint";
+ case DRAW_PATH: return "Draw Path";
+ case DRAW_PICTURE: return "Draw Picture";
+ case DRAW_POINTS: return "Draw Points";
+ case DRAW_POS_TEXT: return "Draw Pos Text";
+ case DRAW_POS_TEXT_H: return "Draw Pos Text H";
+ case DRAW_RECT: return "Draw Rect";
+ case DRAW_SPRITE: return "Draw Sprite";
+ case DRAW_TEXT: return "Draw Text";
+ case DRAW_TEXT_ON_PATH: return "Draw Text On Path";
+ case DRAW_VERTICES: return "Draw Vertices";
+ case RESTORE: return "Restore";
+ case ROTATE: return "Rotate";
+ case SAVE: return "Save";
+ case SAVE_LAYER: return "Save Layer";
+ case SCALE: return "Scale";
+ case SET_MATRIX: return "Set Matrix";
+ case SKEW: return "Skew";
+ case TRANSLATE: return "Translate";
+ default:
+ SkDebugf("DrawType error 0x%08x\n", type);
+ SkASSERT(0);
+ break;
+ }
+ SkDEBUGFAIL("DrawType UNUSED\n");
+ return NULL;
+}
+
+std::string SkDrawCommand::toString() {
+ std::stringstream ss;
+ ss << GetCommandString(fDrawType);
+ return ss.str();
+}
+
+Clear::Clear(SkColor color) {
+ this->fColor = color;
+ this->fDrawType = DRAW_CLEAR;
+ this->fInfo.push_back(std::string("No Parameters"));
+}
+
+void Clear::execute(SkCanvas* canvas) {
+ canvas->clear(this->fColor);
+}
+
+ClipPath::ClipPath(const SkPath& path, SkRegion::Op op, bool doAA) {
+ this->fPath = &path;
+ this->fOp = op;
+ this->fDoAA = doAA;
+ this->fDrawType = CLIP_PATH;
+
+ this->fInfo.push_back(SkObjectParser::PathToString(path));
+ this->fInfo.push_back(SkObjectParser::RegionOpToString(op));
+ this->fInfo.push_back(SkObjectParser::BoolToString(doAA));
+}
+
+void ClipPath::execute(SkCanvas* canvas) {
+ canvas->clipPath(*this->fPath, this->fOp, this->fDoAA);
+}
+
+ClipRegion::ClipRegion(const SkRegion& region, SkRegion::Op op) {
+ this->fRegion = ®ion;
+ this->fOp = op;
+ this->fDrawType = CLIP_REGION;
+
+ this->fInfo.push_back(SkObjectParser::RegionToString(region));
+ this->fInfo.push_back(SkObjectParser::RegionOpToString(op));
+}
+
+void ClipRegion::execute(SkCanvas* canvas) {
+ canvas->clipRegion(*this->fRegion, this->fOp);
+}
+
+ClipRect::ClipRect(const SkRect& rect, SkRegion::Op op, bool doAA) {
+ this->fRect = ▭
+ this->fOp = op;
+ this->fDoAA = doAA;
+ this->fDrawType = CLIP_RECT;
+
+ this->fInfo.push_back(SkObjectParser::RectToString(rect));
+ this->fInfo.push_back(SkObjectParser::RegionOpToString(op));
+ this->fInfo.push_back(SkObjectParser::BoolToString(doAA));
+}
+
+void ClipRect::execute(SkCanvas* canvas) {
+ canvas->clipRect(*this->fRect, this->fOp, this->fDoAA);
+}
+
+Concat::Concat(const SkMatrix& matrix) {
+ this->fMatrix = &matrix;
+ this->fDrawType = CONCAT;
+
+ this->fInfo.push_back(SkObjectParser::MatrixToString(matrix));
+}
+
+void Concat::execute(SkCanvas* canvas) {
+ canvas->concat(*this->fMatrix);
+}
+
+DrawBitmap::DrawBitmap(const SkBitmap& bitmap, SkScalar left, SkScalar top,
+ const SkPaint* paint) {
+ this->fBitmap = &bitmap;
+ this->fLeft = left;
+ this->fTop = top;
+ this->fPaint = paint;
+ this->fDrawType = DRAW_BITMAP;
+
+ this->fInfo.push_back(SkObjectParser::BitmapToString(bitmap));
+ this->fInfo.push_back(SkObjectParser::ScalarToString(left, "SkScalar left: "));
+ this->fInfo.push_back(SkObjectParser::ScalarToString(top, "SkScalar top: "));
+}
+
+void DrawBitmap::execute(SkCanvas* canvas) {
+ canvas->drawBitmap(*this->fBitmap, this->fLeft, this->fTop, this->fPaint);
+}
+
+DrawBitmapMatrix::DrawBitmapMatrix(const SkBitmap& bitmap,
+ const SkMatrix& matrix, const SkPaint* paint) {
+ this->fBitmap = &bitmap;
+ this->fMatrix = &matrix;
+ this->fPaint = paint;
+ this->fDrawType = DRAW_BITMAP_MATRIX;
+
+ this->fInfo.push_back(SkObjectParser::BitmapToString(bitmap));
+ this->fInfo.push_back(SkObjectParser::MatrixToString(matrix));
+ if (paint) this->fInfo.push_back(SkObjectParser::PaintToString(*paint));
+}
+
+void DrawBitmapMatrix::execute(SkCanvas* canvas) {
+ canvas->drawBitmapMatrix(*this->fBitmap, *this->fMatrix, this->fPaint);
+}
+
+DrawBitmapNine::DrawBitmapNine(const SkBitmap& bitmap, const SkIRect& center,
+ const SkRect& dst, const SkPaint* paint) {
+ this->fBitmap = &bitmap;
+ this->fCenter = ¢er;
+ this->fDst = &dst;
+ this->fPaint = paint;
+ this->fDrawType = DRAW_BITMAP_NINE;
+
+ this->fInfo.push_back(SkObjectParser::BitmapToString(bitmap));
+ this->fInfo.push_back(SkObjectParser::IRectToString(center));
+ this->fInfo.push_back(SkObjectParser::RectToString(dst));
+ if (paint) this->fInfo.push_back(SkObjectParser::PaintToString(*paint));
+}
+
+void DrawBitmapNine::execute(SkCanvas* canvas) {
+ canvas->drawBitmapNine(*this->fBitmap, *this->fCenter, *this->fDst, this->fPaint);
+}
+
+DrawBitmapRect::DrawBitmapRect(const SkBitmap& bitmap, const SkIRect* src,
+ const SkRect& dst, const SkPaint* paint) {
+ this->fBitmap = &bitmap;
+ this->fSrc = src;
+ this->fDst = &dst;
+ this->fPaint = paint;
+ this->fDrawType = DRAW_BITMAP_RECT;
+
+ this->fInfo.push_back(SkObjectParser::BitmapToString(bitmap));
+ if (src) this->fInfo.push_back(SkObjectParser::IRectToString(*src));
+ this->fInfo.push_back(SkObjectParser::RectToString(dst));
+ if (paint) this->fInfo.push_back(SkObjectParser::PaintToString(*paint));
+}
+
+void DrawBitmapRect::execute(SkCanvas* canvas) {
+ canvas->drawBitmapRect(*this->fBitmap, this->fSrc, *this->fDst, this->fPaint);
+}
+
+DrawData::DrawData(const void* data, size_t length) {
+ this->fData = data;
+ this->fLength = length;
+ this->fDrawType = DRAW_DATA;
+ // TODO(chudy): See if we can't display data and length.
+}
+
+void DrawData::execute(SkCanvas* canvas) {
+ canvas->drawData(this->fData, this->fLength);
+}
+
+DrawPaint::DrawPaint(const SkPaint& paint) {
+ this->fPaint = &paint;
+ this->fDrawType = DRAW_PAINT;
+
+ this->fInfo.push_back(SkObjectParser::PaintToString(paint));
+}
+
+void DrawPaint::execute(SkCanvas* canvas) {
+ canvas->drawPaint(*this->fPaint);
+}
+
+DrawPath::DrawPath(const SkPath& path, const SkPaint& paint) {
+ this->fPath = &path;
+ this->fPaint = &paint;
+ this->fDrawType = DRAW_PATH;
+
+ this->fInfo.push_back(SkObjectParser::PathToString(path));
+ this->fInfo.push_back(SkObjectParser::PaintToString(paint));
+}
+
+void DrawPath::execute(SkCanvas* canvas) {
+ canvas->drawPath(*this->fPath, *this->fPaint);
+}
+
+DrawPicture::DrawPicture(SkPicture& picture) {
+ this->fPicture = &picture;
+ this->fDrawType = DRAW_PICTURE;
+ this->fInfo.push_back(std::string("Data unavailable. To be implemented"));
+}
+
+void DrawPicture::execute(SkCanvas* canvas) {
+ canvas->drawPicture(*this->fPicture);
+}
+
+DrawPoints::DrawPoints(SkCanvas::PointMode mode, size_t count,
+ const SkPoint pts[], const SkPaint& paint) {
+ this->fMode = mode;
+ this->fCount = count;
+ this->fPts = pts;
+ this->fPaint = &paint;
+ this->fDrawType = DRAW_POINTS;
+
+ this->fInfo.push_back(SkObjectParser::PointsToString(pts, count));
+}
+
+void DrawPoints::execute(SkCanvas* canvas) {
+ canvas->drawPoints(this->fMode, this->fCount, this->fPts, *this->fPaint);
+}
+
+DrawPosText::DrawPosText(const void* text, size_t byteLength, const SkPoint pos[],
+ const SkPaint& paint) {
+ this->fText = text;
+ this->fByteLength = byteLength;
+ this->fPos = pos;
+ this->fPaint = &paint;
+ this->fDrawType = DRAW_POS_TEXT;
+
+ this->fInfo.push_back(SkObjectParser::TextToString(text, byteLength));
+ // TODO(chudy): Test that this works.
+ this->fInfo.push_back(SkObjectParser::PointsToString(pos, 1));
+ this->fInfo.push_back(SkObjectParser::PaintToString(paint));
+}
+
+void DrawPosText::execute(SkCanvas* canvas) {
+ canvas->drawPosText(this->fText, this->fByteLength, this->fPos, *this->fPaint);
+}
+
+
+DrawPosTextH::DrawPosTextH(const void* text, size_t byteLength,
+ const SkScalar xpos[], SkScalar constY, const SkPaint& paint) {
+ this->fText = text;
+ this->fByteLength = byteLength;
+ this->fXpos = xpos;
+ this->fConstY = constY;
+ this->fPaint = &paint;
+ this->fDrawType = DRAW_POS_TEXT_H;
+
+ this->fInfo.push_back(SkObjectParser::TextToString(text, byteLength));
+ this->fInfo.push_back(SkObjectParser::ScalarToString(xpos[0], "XPOS: "));
+ this->fInfo.push_back(SkObjectParser::ScalarToString(constY, "SkScalar constY: "));
+ this->fInfo.push_back(SkObjectParser::PaintToString(paint));
+}
+
+void DrawPosTextH::execute(SkCanvas* canvas) {
+ canvas->drawPosTextH(this->fText, this->fByteLength, this->fXpos, this->fConstY,
+ *this->fPaint);
+}
+
+DrawRectC::DrawRectC(const SkRect& rect, const SkPaint& paint) {
+ this->fRect = ▭
+ this->fPaint = &paint;
+ this->fDrawType = DRAW_RECT;
+
+ this->fInfo.push_back(SkObjectParser::RectToString(rect));
+ this->fInfo.push_back(SkObjectParser::PaintToString(paint));
+}
+
+void DrawRectC::execute(SkCanvas* canvas) {
+ canvas->drawRect(*this->fRect, *this->fPaint);
+}
+
+DrawSprite::DrawSprite(const SkBitmap& bitmap, int left, int top,
+ const SkPaint* paint) {
+ this->fBitmap = &bitmap;
+ this->fLeft = left;
+ this->fTop = top;
+ this->fPaint = paint;
+ this->fDrawType = DRAW_SPRITE;
+
+ this->fInfo.push_back(SkObjectParser::BitmapToString(bitmap));
+ this->fInfo.push_back(SkObjectParser::IntToString(left, "Left: "));
+ this->fInfo.push_back(SkObjectParser::IntToString(top, "Top: "));
+}
+
+void DrawSprite::execute(SkCanvas* canvas) {
+ canvas->drawSprite(*this->fBitmap, this->fLeft, this->fTop, this->fPaint);
+}
+
+DrawTextC::DrawTextC(const void* text, size_t byteLength, SkScalar x, SkScalar y,
+ const SkPaint& paint) {
+ this->fText = text;
+ this->fByteLength = byteLength;
+ this->fX = x;
+ this->fY = y;
+ this->fPaint = &paint;
+ this->fDrawType = DRAW_TEXT;
+
+ this->fInfo.push_back(SkObjectParser::TextToString(text, byteLength));
+ this->fInfo.push_back(SkObjectParser::ScalarToString(x, "SkScalar x: "));
+ this->fInfo.push_back(SkObjectParser::ScalarToString(y, "SkScalar y: "));
+ this->fInfo.push_back(SkObjectParser::PaintToString(paint));
+}
+
+void DrawTextC::execute(SkCanvas* canvas) {
+ canvas->drawText(this->fText, this->fByteLength, this->fX, this->fY, *this->fPaint);
+}
+
+DrawTextOnPath::DrawTextOnPath(const void* text, size_t byteLength,
+ const SkPath& path, const SkMatrix* matrix, const SkPaint& paint) {
+ this->fText = text;
+ this->fByteLength = byteLength;
+ this->fPath = &path;
+ this->fMatrix = matrix;
+ this->fPaint = &paint;
+ this->fDrawType = DRAW_TEXT_ON_PATH;
+
+ this->fInfo.push_back(SkObjectParser::TextToString(text, byteLength));
+ this->fInfo.push_back(SkObjectParser::PathToString(path));
+ if (matrix) this->fInfo.push_back(SkObjectParser::MatrixToString(*matrix));
+ this->fInfo.push_back(SkObjectParser::PaintToString(paint));
+}
+
+void DrawTextOnPath::execute(SkCanvas* canvas) {
+ canvas->drawTextOnPath(this->fText, this->fByteLength, *this->fPath,
+ this->fMatrix, *this->fPaint);
+}
+
+DrawVertices::DrawVertices(SkCanvas::VertexMode vmode, int vertexCount,
+ const SkPoint vertices[], const SkPoint texs[], const SkColor colors[],
+ SkXfermode* xfermode, const uint16_t indices[], int indexCount,
+ const SkPaint& paint) {
+ this->fVmode = vmode;
+ this->fVertexCount = vertexCount;
+ this->fTexs = texs;
+ this->fColors = colors;
+ this->fXfermode = xfermode;
+ this->fIndices = indices;
+ this->fIndexCount = indexCount;
+ this->fPaint = &paint;
+ this->fDrawType = DRAW_VERTICES;
+ // TODO(chudy)
+ this->fInfo.push_back(std::string("To be implemented"));
+}
+
+void DrawVertices::execute(SkCanvas* canvas) {
+ canvas->drawVertices(this->fVmode, this->fVertexCount, this->fVertices,
+ this->fTexs, this->fColors, this->fXfermode, this->fIndices,
+ this->fIndexCount, *this->fPaint);
+}
+
+Restore::Restore() {
+ this->fDrawType = RESTORE;
+ this->fInfo.push_back(std::string("No Parameters"));
+}
+
+void Restore::execute(SkCanvas* canvas) {
+ canvas->restore();
+}
+
+Rotate::Rotate(SkScalar degrees) {
+ this->fDegrees = degrees;
+ this->fDrawType = ROTATE;
+
+ this->fInfo.push_back(SkObjectParser::ScalarToString(degrees, "SkScalar degrees: "));
+}
+
+void Rotate::execute(SkCanvas* canvas) {
+ canvas->rotate(this->fDegrees);
+}
+
+Save::Save(SkCanvas::SaveFlags flags) {
+ this->fFlags = flags;
+ this->fDrawType = SAVE;
+
+ this->fInfo.push_back(SkObjectParser::SaveFlagsToString(flags));
+}
+
+void Save::execute(SkCanvas* canvas) {
+ canvas->save(this->fFlags);
+}
+
+SaveLayer::SaveLayer(const SkRect* bounds, const SkPaint* paint,
+ SkCanvas::SaveFlags flags) {
+ this->fBounds = bounds;
+ this->fPaint = paint;
+ this->fFlags = flags;
+ this->fDrawType = SAVE_LAYER;
+
+ if (bounds) this->fInfo.push_back(SkObjectParser::RectToString(*bounds));
+ if (paint) this->fInfo.push_back(SkObjectParser::PaintToString(*paint));
+ this->fInfo.push_back(SkObjectParser::SaveFlagsToString(flags));
+}
+
+void SaveLayer::execute(SkCanvas* canvas) {
+ canvas->saveLayer(this->fBounds, this->fPaint, this->fFlags);
+}
+
+Scale::Scale(SkScalar sx, SkScalar sy) {
+ this->fSx = sx;
+ this->fSy = sy;
+ this->fDrawType = SCALE;
+
+ this->fInfo.push_back(SkObjectParser::ScalarToString(sx, "SkScalar sx: "));
+ this->fInfo.push_back(SkObjectParser::ScalarToString(sy, "SkScalar sy: "));
+}
+
+void Scale::execute(SkCanvas* canvas) {
+ canvas->scale(this->fSx, this->fSy);
+}
+
+SetMatrix::SetMatrix(const SkMatrix& matrix) {
+ this->fMatrix = &matrix;
+ this->fDrawType = SET_MATRIX;
+
+ this->fInfo.push_back(SkObjectParser::MatrixToString(matrix));
+}
+
+void SetMatrix::execute(SkCanvas* canvas) {
+ canvas->setMatrix(*this->fMatrix);
+}
+
+Skew::Skew(SkScalar sx, SkScalar sy) {
+ this->fSx = sx;
+ this->fSy = sy;
+ this->fDrawType = SKEW;
+
+ this->fInfo.push_back(SkObjectParser::ScalarToString(sx, "SkScalar sx: "));
+ this->fInfo.push_back(SkObjectParser::ScalarToString(sy, "SkScalar sy: "));
+}
+
+void Skew::execute(SkCanvas* canvas) {
+ canvas->skew(this->fSx, this->fSy);
+}
+
+Translate::Translate(SkScalar dx, SkScalar dy) {
+ this->fDx = dx;
+ this->fDy = dy;
+ this->fDrawType = TRANSLATE;
+
+ this->fInfo.push_back(SkObjectParser::ScalarToString(dx, "SkScalar dx: "));
+ this->fInfo.push_back(SkObjectParser::ScalarToString(dy, "SkScalar dy: "));
+}
+
+void Translate::execute(SkCanvas* canvas) {
+ canvas->translate(this->fDx, this->fDy);
+}
diff --git a/debugger/SkDrawCommand.h b/debugger/SkDrawCommand.h
new file mode 100644
index 0000000..45d9dd6
--- /dev/null
+++ b/debugger/SkDrawCommand.h
@@ -0,0 +1,346 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef SKDRAWCOMMAND_H_
+#define SKDRAWCOMMAND_H_
+
+#include <iostream>
+#include "SkPictureFlat.h"
+#include "SkCanvas.h"
+#include <sstream>
+#include <vector>
+
+class SkDrawCommand {
+public:
+ /* TODO(chudy): Remove subclasses. */
+ SkDrawCommand();
+
+ virtual ~SkDrawCommand();
+
+ virtual std::string toString();
+
+ virtual const char* toCString() {
+ return GetCommandString(fDrawType);
+ }
+
+ bool getVisibility() const { return fVisible; }
+ void setVisibility(bool toggle) {fVisible = toggle; }
+
+ std::vector<std::string>* Info() {return &fInfo; };
+ virtual void execute(SkCanvas* canvas)=0;
+ DrawType getType() { return fDrawType; };
+
+protected:
+ DrawType fDrawType;
+ std::vector<std::string> fInfo;
+
+private:
+ bool fVisible;
+ static const char* GetCommandString(DrawType type);
+};
+
+class Restore : public SkDrawCommand {
+public:
+ Restore();
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+};
+
+class Clear : public SkDrawCommand {
+public:
+ Clear(SkColor color);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ SkColor fColor;
+};
+
+class ClipPath : public SkDrawCommand {
+public:
+ ClipPath(const SkPath& path, SkRegion::Op op, bool doAA);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkPath* fPath;
+ SkRegion::Op fOp;
+ bool fDoAA;
+};
+
+class ClipRegion : public SkDrawCommand {
+public:
+ ClipRegion(const SkRegion& region, SkRegion::Op op);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkRegion* fRegion;
+ SkRegion::Op fOp;
+};
+
+class ClipRect : public SkDrawCommand {
+public:
+ ClipRect(const SkRect& rect, SkRegion::Op op, bool doAA);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkRect* fRect;
+ SkRegion::Op fOp;
+ bool fDoAA;
+};
+
+class Concat : public SkDrawCommand {
+public:
+ Concat(const SkMatrix& matrix);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkMatrix* fMatrix;
+};
+
+class DrawBitmap : public SkDrawCommand {
+public:
+ DrawBitmap(const SkBitmap& bitmap, SkScalar left, SkScalar top,
+ const SkPaint* paint);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkPaint* fPaint;
+ const SkBitmap* fBitmap;
+ SkScalar fLeft;
+ SkScalar fTop;
+};
+
+class DrawBitmapMatrix : public SkDrawCommand {
+public:
+ DrawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& matrix,
+ const SkPaint* paint);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkPaint* fPaint;
+ const SkBitmap* fBitmap;
+ const SkMatrix* fMatrix;
+};
+
+class DrawBitmapNine : public SkDrawCommand {
+public:
+ DrawBitmapNine(const SkBitmap& bitmap, const SkIRect& center,
+ const SkRect& dst, const SkPaint* paint);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkBitmap* fBitmap;
+ const SkIRect* fCenter;
+ const SkRect* fDst;
+ const SkPaint* fPaint;
+};
+
+class DrawBitmapRect : public SkDrawCommand {
+public:
+ DrawBitmapRect(const SkBitmap& bitmap, const SkIRect* src,
+ const SkRect& dst, const SkPaint* paint);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkIRect* fSrc;
+ const SkPaint* fPaint;
+ const SkBitmap* fBitmap;
+ const SkRect* fDst;
+};
+
+class DrawData : public SkDrawCommand {
+public:
+ DrawData(const void* data, size_t length);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const void* fData;
+ size_t fLength;
+};
+
+class DrawPaint : public SkDrawCommand {
+public:
+ DrawPaint(const SkPaint& paint);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkPaint* fPaint;
+};
+
+class DrawPath : public SkDrawCommand {
+public:
+ DrawPath(const SkPath& path, const SkPaint& paint);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkPath* fPath;
+ const SkPaint* fPaint;
+};
+
+class DrawPicture : public SkDrawCommand {
+public:
+ DrawPicture(SkPicture& picture);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ SkPicture* fPicture;
+};
+
+class DrawPoints : public SkDrawCommand {
+public:
+ DrawPoints(SkCanvas::PointMode mode, size_t count, const SkPoint pts[],
+ const SkPaint& paint);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkPoint* fPts;
+ SkCanvas::PointMode fMode;
+ size_t fCount;
+ const SkPaint* fPaint;
+};
+
+/* TODO(chudy): DrawText is a predefined macro and was breaking something
+ * in the windows build of the debugger.
+ */
+class DrawTextC : public SkDrawCommand {
+public:
+ DrawTextC(const void* text, size_t byteLength, SkScalar x, SkScalar y,
+ const SkPaint& paint);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const void* fText;
+ size_t fByteLength;
+ SkScalar fX;
+ SkScalar fY;
+ const SkPaint* fPaint;
+};
+
+class DrawPosText : public SkDrawCommand {
+public:
+ DrawPosText(const void* text, size_t byteLength, const SkPoint pos[],
+ const SkPaint& paint);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkPoint* fPos;
+ const void* fText;
+ size_t fByteLength;
+ const SkPaint* fPaint;
+};
+
+class DrawTextOnPath : public SkDrawCommand {
+public:
+ DrawTextOnPath(const void* text, size_t byteLength, const SkPath& path,
+ const SkMatrix* matrix, const SkPaint& paint);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkMatrix* fMatrix;
+ const void* fText;
+ size_t fByteLength;
+ const SkPath* fPath;
+ const SkPaint* fPaint;
+};
+
+class DrawPosTextH : public SkDrawCommand {
+public:
+ DrawPosTextH(const void* text, size_t byteLength, const SkScalar xpos[],
+ SkScalar constY, const SkPaint& paint);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkScalar* fXpos;
+ const void* fText;
+ size_t fByteLength;
+ SkScalar fConstY;
+ const SkPaint* fPaint;
+};
+
+class DrawRectC : public SkDrawCommand {
+public:
+ DrawRectC(const SkRect& rect, const SkPaint& paint);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkRect* fRect;
+ const SkPaint* fPaint;
+};
+
+class DrawSprite : public SkDrawCommand {
+public:
+ DrawSprite(const SkBitmap& bitmap, int left, int top, const SkPaint* paint);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkPaint* fPaint;
+ int fLeft;
+ int fTop;
+ const SkBitmap* fBitmap;
+};
+
+class DrawVertices : public SkDrawCommand {
+public:
+ DrawVertices(SkCanvas::VertexMode vmode, int vertexCount,
+ const SkPoint vertices[], const SkPoint texs[], const SkColor colors[],
+ SkXfermode* xfermode, const uint16_t indices[], int indexCount,
+ const SkPaint& paint);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ SkCanvas::VertexMode fVmode;
+ int fVertexCount;
+ int fIndexCount;
+ const SkPoint* fVertices;
+ const SkPoint* fTexs;
+ const SkColor* fColors;
+ const uint16_t* fIndices;
+ SkXfermode* fXfermode;
+ const SkPaint* fPaint;
+};
+
+class Rotate : public SkDrawCommand {
+public:
+ Rotate(SkScalar degrees);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ SkScalar fDegrees;
+};
+
+class Save : public SkDrawCommand {
+public:
+ Save(SkCanvas::SaveFlags flags);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ SkCanvas::SaveFlags fFlags;
+};
+
+class SaveLayer : public SkDrawCommand {
+public:
+ SaveLayer(const SkRect* bounds, const SkPaint* paint,
+ SkCanvas::SaveFlags flags);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkRect* fBounds;
+ const SkPaint* fPaint;
+ SkCanvas::SaveFlags fFlags;
+};
+
+class Scale : public SkDrawCommand {
+public:
+ Scale(SkScalar sx, SkScalar sy);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ SkScalar fSx;
+ SkScalar fSy;
+};
+
+class SetMatrix : public SkDrawCommand {
+public:
+ SetMatrix(const SkMatrix& matrix);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ const SkMatrix* fMatrix;
+};
+
+class Skew : public SkDrawCommand {
+public:
+ Skew(SkScalar sx, SkScalar sy);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ SkScalar fSx;
+ SkScalar fSy;
+};
+
+class Translate : public SkDrawCommand {
+public:
+ Translate(SkScalar dx, SkScalar dy);
+ virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
+private:
+ SkScalar fDx;
+ SkScalar fDy;
+};
+
+#endif
diff --git a/debugger/SkObjectParser.cpp b/debugger/SkObjectParser.cpp
new file mode 100644
index 0000000..0381e7c
--- /dev/null
+++ b/debugger/SkObjectParser.cpp
@@ -0,0 +1,185 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkObjectParser.h"
+
+/* TODO(chudy): Replace all std::strings with char */
+
+std::string SkObjectParser::BitmapToString(const SkBitmap& bitmap) {
+ const char* mBitmap("SkBitmap: Data unavailable");
+ return mBitmap;
+}
+
+std::string SkObjectParser::BoolToString(bool doAA) {
+ if (doAA) {
+ return "bool doAA: True";
+ } else {
+ return "bool doAA: False";
+ }
+}
+
+std::string SkObjectParser::IntToString(int x, const char* text) {
+ std::stringstream ss;
+ ss << text << x;
+ return ss.str();
+}
+
+std::string SkObjectParser::IRectToString(const SkIRect& rect) {
+ std::stringstream ss;
+ ss << "SkIRect: ";
+ ss << "L: " << rect.left() << ",";
+ ss << "T: " << rect.top() << ",";
+ ss << "R: " << rect.right() << ",";
+ ss << "B: " << rect.bottom();
+ return ss.str();
+}
+
+std::string SkObjectParser::MatrixToString(const SkMatrix& matrix) {
+ std::stringstream ss;
+ /* NOTE(chudy): Cleaner looking than loops. */
+ /* TODO(chudy): Decide whether to remove html part in order to really
+ * seperate view / model. */
+ ss << "SkMatrix:<br/>(";
+ ss << matrix.get(0) << "), (";
+ ss << matrix.get(1) << "), (";
+ ss << matrix.get(2) << "), <br/>(";
+ ss << matrix.get(3) << "), (";
+ ss << matrix.get(4) << "), (";
+ ss << matrix.get(5) << "), <br/>(";
+ ss << matrix.get(6) << "), (";
+ ss << matrix.get(7) << "), (";
+ ss << matrix.get(8) << ")";
+ return ss.str();
+}
+
+std::string SkObjectParser::PaintToString(const SkPaint& paint) {
+ std::stringstream ss;
+ SkColor color = paint.getColor();
+ ss << "SkPaint: 0x" << std::hex << std::uppercase << color;
+ return ss.str();
+}
+
+std::string SkObjectParser::PathToString(const SkPath& path) {
+ std::string mPath;
+ std::stringstream ss;
+ mPath.append("SkPath: ");
+
+ for (int i=0; i<path.countPoints(); i++) {
+ ss << "(" << path.getPoint(i).fX << ", " << path.getPoint(i).fY << ") ";
+ mPath.append(ss.str());
+ ss.str("");
+ }
+
+ return mPath;
+}
+
+std::string SkObjectParser::PointsToString(const SkPoint pts[], size_t count) {
+ std::stringstream ss;
+ ss << "SkPoint pts[]: ";
+ for (unsigned int i = 0; i < count; i++) {
+ ss << "(" << pts[i].fX << "," << pts[i].fY << ") ";
+ }
+ return ss.str();
+}
+
+std::string SkObjectParser::RectToString(const SkRect& rect) {
+ std::string mRect("SkRect: ");
+ std::stringstream ss;
+
+ mRect.append("(");
+ ss << rect.left();
+ mRect.append(ss.str());
+
+ ss.str("");
+ mRect.append(", ");
+ ss << rect.top();
+ mRect.append(ss.str());
+
+ ss.str("");
+ mRect.append(", ");
+ ss << rect.right();
+ mRect.append(ss.str());
+
+ ss.str("");
+ mRect.append(", ");
+ ss << rect.bottom();
+ mRect.append(ss.str());
+ mRect.append(")");
+
+ return mRect;
+}
+
+std::string SkObjectParser::RegionOpToString(SkRegion::Op op) {
+ std::string mOp("SkRegion::Op: ");
+
+ if (op == SkRegion::kDifference_Op) {
+ mOp.append("kDifference_Op");
+ } else if (op == SkRegion::kIntersect_Op) {
+ mOp.append("kIntersect_Op");
+ } else if (op == SkRegion::kUnion_Op) {
+ mOp.append("kUnion_Op");
+ } else if (op == SkRegion::kXOR_Op) {
+ mOp.append("kXOR_Op");
+ } else if (op == SkRegion::kReverseDifference_Op) {
+ mOp.append("kReverseDifference_Op");
+ } else if (op == SkRegion::kReplace_Op) {
+ mOp.append("kReplace_Op");
+ } else {
+ mOp.append("Unknown Type");
+ }
+
+ return mOp;
+}
+
+std::string SkObjectParser::RegionToString(const SkRegion& region) {
+ return "SkRegion: Data unavailable.";
+}
+
+std::string SkObjectParser::SaveFlagsToString(SkCanvas::SaveFlags flags) {
+ std::string mFlags;
+ mFlags.append("SkCanvas::SaveFlags: ");
+
+ if(flags == SkCanvas::kMatrixClip_SaveFlag) {
+ mFlags.append("kMatrixClip_SaveFlag");
+ } else if (flags == SkCanvas::kClip_SaveFlag) {
+ mFlags.append("kClip_SaveFlag");
+ } else if (flags == SkCanvas::kHasAlphaLayer_SaveFlag) {
+ mFlags.append("kHasAlphaLayer_SaveFlag");
+ } else if (flags == SkCanvas::kFullColorLayer_SaveFlag) {
+ mFlags.append("kFullColorLayer_SaveFlag");
+ } else if (flags == SkCanvas::kClipToLayer_SaveFlag) {
+ mFlags.append("kClipToLayer_SaveFlag");
+ } else if (flags == SkCanvas::kMatrixClip_SaveFlag) {
+ mFlags.append("kMatrixClip_SaveFlag");
+ } else if (flags == SkCanvas::kARGB_NoClipLayer_SaveFlag) {
+ mFlags.append("kARGB_NoClipLayer_SaveFlag");
+ } else if (flags == SkCanvas::kARGB_ClipLayer_SaveFlag) {
+ mFlags.append("kARGB_ClipLayer_SaveFlag");
+ } else {
+ mFlags.append("Data Unavailable");
+ }
+
+ return mFlags;
+}
+
+std::string SkObjectParser::ScalarToString(SkScalar x, const char* text) {
+ std::string mScalar;
+ mScalar.append(text);
+
+ std::stringstream ss;
+ ss << x;
+ mScalar.append(ss.str());
+ return mScalar;
+}
+
+std::string SkObjectParser::TextToString(const void* text, size_t byteLength) {
+ char result[6+byteLength];
+ strcpy(result,"Text: ");
+ strcat(result, (char*)text);
+ return result;
+}
diff --git a/debugger/SkObjectParser.h b/debugger/SkObjectParser.h
new file mode 100644
index 0000000..5b71abc
--- /dev/null
+++ b/debugger/SkObjectParser.h
@@ -0,0 +1,114 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef SKOBJECTPARSER_H_
+#define SKOBJECTPARSER_H_
+
+#include <iostream>
+#include <sstream>
+#include "SkCanvas.h"
+/** \class SkObjectParser
+
+ The ObjectParser is used to return string information about parameters
+ in each draw command.
+ TODO(chudy): Change std::string to SkString
+ */
+class SkObjectParser {
+public:
+
+ /**
+ Returns a string about a bitmaps bounds and config.
+ @param bitmap SkBitmap
+ */
+ static std::string BitmapToString(const SkBitmap& bitmap);
+
+ /**
+ Returns a string representation of a boolean.
+ @param doAA boolean
+ */
+ static std::string BoolToString(bool doAA);
+
+ /**
+ Returns a string representation of an integer with the text parameter
+ at the front of the string.
+ @param x integer
+ @param text
+ */
+ static std::string IntToString(int x, const char* text);
+ /**
+ Returns a string representation of the SkIRects coordinates.
+ @param rect SkIRect
+ */
+ static std::string IRectToString(const SkIRect& rect);
+
+ /**
+ Returns a string representation of an SkMatrix's contents
+ @param matrix SkMatrix
+ */
+ static std::string MatrixToString(const SkMatrix& matrix);
+
+ /**
+ Returns a string representation of an SkPaint's color
+ @param paint SkPaint
+ */
+ static std::string PaintToString(const SkPaint& paint);
+
+ /**
+ Returns a string representation of a SkPath's points.
+ @param path SkPath
+ */
+ static std::string PathToString(const SkPath& path);
+
+ /**
+ Returns a string representation of the points in the point array.
+ @param pts[] Array of SkPoints
+ @param count
+ */
+ static std::string PointsToString(const SkPoint pts[], size_t count);
+
+ /**
+ Returns a string representation of the SkRects coordinates.
+ @param rect SkRect
+ */
+ static std::string RectToString(const SkRect& rect);
+
+ /**
+ Returns a string representation of the SkRegion enum.
+ @param op SkRegion::op enum
+ */
+ static std::string RegionOpToString(SkRegion::Op op);
+
+ /**
+ Returns a string representation of the SkRegion.
+ @param region SkRegion
+ */
+ static std::string RegionToString(const SkRegion& region);
+
+ /**
+ Returns a string representation of the SkCanvas::SaveFlags enum.
+ @param flags SkCanvas::SaveFlags enum
+ */
+ static std::string SaveFlagsToString(SkCanvas::SaveFlags flags);
+
+ /**
+ Returns a string representation of an SkScalar with the text parameter
+ at the front of the string.
+ @param x SkScalar
+ @param text
+ */
+ static std::string ScalarToString(SkScalar x, const char* text);
+
+ /**
+ Returns a string representation of the char pointer passed in.
+ @param text const void* that will be cast to a char*
+ */
+ static std::string TextToString(const void* text, size_t byteLength);
+};
+
+#endif
diff --git a/debugger/moc.sh b/debugger/moc.sh
new file mode 100755
index 0000000..2d86fc6
--- /dev/null
+++ b/debugger/moc.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# NOTE(chudy): May have to update location of moc binary depending on system.
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+MOC="/usr/bin/moc"
+#MOC="/usr/local/google/home/chudy/tools/Qt/Desktop/Qt/4.8.1/gcc/bin/moc"
+SRC_DIR=$SCRIPT_DIR/QT
+
+$MOC $SRC_DIR/SkDebuggerGUI.h -o $SRC_DIR/moc_SkDebuggerGUI.cpp
+$MOC $SRC_DIR/SkCanvasWidget.h -o $SRC_DIR/moc_SkCanvasWidget.cpp
+$MOC $SRC_DIR/SkInspectorWidget.h -o $SRC_DIR/moc_SkInspectorWidget.cpp
+$MOC $SRC_DIR/SkSettingsWidget.h -o $SRC_DIR/moc_SkSettingsWidget.cpp
diff --git a/gyp/debugger.gyp b/gyp/debugger.gyp
new file mode 100644
index 0000000..0789a96
--- /dev/null
+++ b/gyp/debugger.gyp
@@ -0,0 +1,93 @@
+{
+ 'targets': [
+ {
+ 'target_name': 'debugger',
+ 'type': 'executable',
+ 'include_dirs' : [
+ '../src/core',
+ '../debugger', # To pull SkDebugger.h
+ '../debugger/QT', # For all the QT UI Goodies
+ ],
+ 'sources': [
+ '../debugger/SkDebugCanvas.h',
+ '../debugger/SkDebugCanvas.cpp',
+ '../debugger/SkDebugger.cpp',
+ '../debugger/SkDrawCommand.h',
+ '../debugger/SkDrawCommand.cpp',
+ '../debugger/QT/moc_SkDebuggerGUI.cpp',
+ '../debugger/QT/moc_SkCanvasWidget.cpp',
+ '../debugger/QT/moc_SkInspectorWidget.cpp',
+ '../debugger/QT/moc_SkSettingsWidget.cpp',
+ '../debugger/QT/SkDebuggerGUI.cpp',
+ '../debugger/QT/SkDebuggerGUI.h',
+ '../debugger/QT/SkCanvasWidget.cpp',
+ '../debugger/QT/SkCanvasWidget.h',
+ '../debugger/QT/SkInspectorWidget.h',
+ '../debugger/QT/SkInspectorWidget.cpp',
+ '../debugger/QT/SkListWidget.h',
+ '../debugger/QT/SkListWidget.cpp',
+ '../debugger/SkObjectParser.h',
+ '../debugger/SkObjectParser.cpp',
+ '../debugger/QT/SkSettingsWidget.h',
+ '../debugger/QT/SkSettingsWidget.cpp',
+
+ # To update this file edit SkIcons.qrc and rerun rcc to generate cpp
+ '../debugger/QT/qrc_SkIcons.cpp',
+ ],
+ 'dependencies': [
+ 'core.gyp:core',
+ 'images.gyp:images',
+ 'ports.gyp:ports',
+ 'effects.gyp:effects',
+ ],
+ 'conditions': [
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris"]', {
+ 'include_dirs': [
+ '/usr/include/qt4',
+ '/usr/include/qt4/QtCore',
+ '/usr/include/qt4/QtGui',
+ ],
+ 'link_settings': {
+ 'libraries' : [
+ '/usr/lib/libQtCore.so',
+ '/usr/lib/libQtGui.so',
+ ],
+ },
+ }],
+ [ 'skia_os == "mac"', {
+ 'mac_bundle' : 1,
+ 'include_dirs': [
+ '/Library/Frameworks/QtCore.framework/Headers/',
+ '/Library/Frameworks/QtGui.framework/Headers/',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '/Library/Frameworks/QtCore.framework',
+ '/Library/Frameworks/QtGui.framework',
+ ],
+ },
+ }],
+ [ 'skia_os == "win"', {
+ 'include_dirs': [
+ # TODO(chudy): Dynamically generate these paths?
+ 'C:/Qt/4.6.4/include',
+ 'C:/Qt/4.6.4/include/QtCore',
+ 'C:/Qt/4.6.4/include/QtGui',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ 'C:/Qt/4.6.4/lib/QtCore4.lib',
+ 'C:/Qt/4.6.4/lib/QtGui4.lib',
+ ],
+ },
+ }],
+ ]
+ },
+ ],
+}
+
+# Local Variables:
+# tab-width:2
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=2 shiftwidth=2:
\ No newline at end of file
diff --git a/skia.gyp b/skia.gyp
index 028df4c..68f8ced 100644
--- a/skia.gyp
+++ b/skia.gyp
@@ -28,7 +28,22 @@
],
}],
],
+ 'conditions': [
+ ['skia_debugger == "on"', {
+ 'dependencies': [
+ 'gyp/debugger.gyp:debugger',
+ ],
+ }],
+ ],
},
+ #{
+ # 'target_name': 'debugger',
+ # 'type': 'none',
+ # 'dependencies': [
+ # 'gyp/debugger.gyp:debugger',
+ # ],
+#
+ # },
],
}